/* WIHH's supplied, single-weight web fonts. Loaded after the legacy page styles.
   Clean is named "Here Condensed" inside the kit; Rough is for headings only.
   The narrow Black outlines need open tracking and larger small-text sizes. */
:root {
  --font-body: "Here Condensed", "Arial Narrow", Arial, sans-serif;
  --font-heading: "Here Condensed Rough", "Arial Narrow", Arial, sans-serif;
}
/* A deliberate typography boundary overrides the older per-section font stacks. */
body, body :where(*) {
  font-family: var(--font-body) !important;
  font-weight: 900 !important;
  font-synthesis: none;
  font-kerning: normal;
  letter-spacing: .025em !important;
}
body {font-size:18px;line-height:1.5}
button,input,select,textarea {font:inherit}
body :is(h1,h2,h3,h4,h5,h6),
body :is(h1,h2,h3,h4,h5,h6) :where(*) {
  font-family:var(--font-heading) !important;
  letter-spacing:.005em !important;
}
body :is(h1,h2,h3,h4,h5,h6) {line-height:1.12 !important}
/* Small labels use the cleaner cut, even when they are semantic headings. */
body :is(.poster-label,.hello-kicker,.event-eyebrow) {
  font-family:var(--font-body) !important;
  font-size:15px !important;
  line-height:1.5 !important;
}
body :is(.programme-menu summary,.event-view-all,.event-filter,.event-text-link,
 .event-month-label,.event-month-label select,.event-result-count,.event-agenda-link,
 .programme-instagram a,.hello-directions,.poster-directions,.menu-note,
 .hello-workshops strong>span,.hello-city,.poster-muted,.poster-admission,
 .poster-location address>span,.event-card-date,.event-card-more,
 .gallery-top>p,.gallery-top>p>span,.exhibition-caption p,.dialog-caption p,
 .room-note,.room-hint,.index-row,.index-row select,.room-archive-links,
 .curved-gallery #view-work,.curved-gallery #archive-link,
 .programme-event-zone,.programme-weekday,.programme-month,.happening-footer,
 .event-noscript,.event-when span,.event-detail figcaption) {
  font-size:16px !important;
  line-height:1.45 !important;
}
body :is(.hero-meta,.hero-meta .hero-corner-link,.hero-bottom,.hero-bottom a,
 .hero-bottom button,.hero-corner-link,.hero-side) {font-size:16px !important;line-height:1.4}
body :is(.about-section .play-copy>p,.about-section .play-instagram p,
 .event-state-copy p,.programme-event-summary,.programme-event-venue,
 .event-description,.event-preview-notice,.event-when,.poster-days) {
  font-size:19px;
  line-height:1.6;
}
body .about-section .play-copy {max-width:470px}
body .about-section .play-instagram small {font-size:15px;line-height:1.5}
body .menu-main a {line-height:1.18}
body.programme-home .happening-heading h2 {font-size:min(11.5vw,17svh);text-wrap:balance}
body .event-card-title {line-height:1.15 !important}
body.programme-home .event-card-body {padding-top:32px;background:linear-gradient(transparent,rgba(0,0,0,.86))}
body .curved-gallery .room-title>span {line-height:1.15}
body .curved-gallery .position {letter-spacing:.015em !important;font-variant-numeric:tabular-nums}
body .curved-gallery .of {font-size:16px}
body .curved-gallery .room-note,body .curved-gallery .room-hint {font-size:14px}
body .curved-gallery #close-dialog {font-size:18px;min-height:44px}
body .hello-section .hello-email {font-size:clamp(26px,2.8vw,40px)}
body .hello-section .hello-phone {font-size:clamp(26px,2.6vw,38px)}
body .hello-section .hello-street {font-size:clamp(26px,2.8vw,38px)}
body .visit-poster .poster-time {letter-spacing:.015em !important;font-variant-numeric:tabular-nums;line-height:1.15}
body .visit-poster .poster-time>span[aria-hidden] {letter-spacing:0 !important}
body .event-description {max-width:50ch}
@media(max-width:700px) {
  body .programme-menu summary {font-size:16px}
  body .menu-main a {font-size:clamp(30px,8vw,40px);padding:13px 0}
  body .menu-note {font-size:16px;padding-top:24px}
  body .event-agenda-link {font-size:14px}
}
@media(max-width:650px) {
  body.programme-home .happening-heading h2 {font-size:clamp(42px,14.5vw,82px)}
  body .hello-section h2 {font-size:clamp(56px,16vw,92px)}
  body .hello-section .hello-email {font-size:clamp(25px,7vw,34px)}
  body .hello-section .hello-phone {font-size:30px}
  body.visit-page .poster-title>strong {font-size:clamp(40px,13.5vw,82px)}
  body .visit-poster .poster-title>span {font-size:26px}
  body .visit-poster .poster-location address strong {font-size:26px}
  body .programme-event-link {grid-template-columns:minmax(0,1fr) 72px;gap:14px}
  body .programme-day {grid-template-columns:52px minmax(0,1fr)}
  body .programme-event-time>time {font-size:22px}
  body .happening-footer {flex-wrap:wrap}
  body .happening-footer>span {max-width:none}
  body .curved-gallery .room-note,body .curved-gallery .room-hint {font-size:12px}
}
@media(prefers-reduced-motion:reduce) {html {scroll-behavior:auto}}
/* Unboxed header navigation on every page. Keep its generous hit target and
   the existing keyboard focus outline; the icon adapts to light/dark imagery. */
body .programme-menu summary {
  background:transparent;
  border:0;
  box-shadow:none;
}
body.programme-home:not(.dedicated-page) .programme-menu summary {padding:10px 12px}
