/* WAD heading readability. Loaded after page styles; colors and media stay in
   the existing brand styles. Anton and Archivo Black already have heavy glyphs,
   so display headings use their real 400 weight instead of synthetic bold. */
:root {
  --wad-heading-reading: clamp(1.55rem, 1.1rem + 1.4vw, 2.25rem);
  --wad-heading-section: clamp(1.8rem, 1.2rem + 1.6vw, 2.6rem);
}

:is(h1, h2, h3, h4, h5, h6) {
  text-wrap: balance;
  overflow-wrap: break-word;
  hyphens: none;
}

/* Full sentences need open letterforms and comfortable line spacing. */
body .location-story-section .location-story-copy :is(h1, h2),
body .update-strip h2,
body.event-detail-page .event-detail-info-grid h2,
body.event-detail-page .event-detail-main :is(
  .saturday-landing-heading,
  .saturday-format-copy,
  .event-series-schedule-heading,
  .saturday-calendar-heading,
  .saturday-landing-updates
) h2 {
  max-width: min(100%, 27ch);
  font-family: var(--font-body, sans-serif);
  font-weight: 700;
  font-size: var(--wad-heading-reading);
  line-height: 1.2;
  letter-spacing: -0.02em;
  text-transform: none;
  -webkit-text-stroke: 0;
  text-shadow: none;
}

body :is(.reviews-headline, .section-title-readable),
body .ticket-faq h2 {
  font-family: var(--font-body, sans-serif);
  font-size: var(--wad-heading-section);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  text-transform: none;
  -webkit-text-stroke: 0;
  text-shadow: none;
}

/* Short section names retain the recognisable WAD display face. */
body .tickets-header-row .tickets-title {
  max-width: 100%;
  font-family: var(--font-display, sans-serif);
  font-size: var(--wad-heading-section);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0.01em;
  color: var(--color-ink, #0e0e0e);
  -webkit-text-stroke: 0;
  text-shadow: none;
}

.wad-heading-phrase { white-space: nowrap; }

body .home-calendar-heading h3 {
  font-family: var(--font-display, sans-serif);
  font-size: var(--wad-heading-section);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0;
}

body .polaroid h3,
body .gallery-profile h3 {
  font-family: var(--font-body, sans-serif);
  font-size: clamp(1.1rem, 0.95rem + 0.55vw, 1.45rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-transform: none;
}

body.event-detail-page .event-detail-copy h1 {
  max-width: min(100%, 21ch);
  font-size: clamp(2.15rem, 1.55rem + 2.5vw, 3.85rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0;
  -webkit-text-stroke: 0;
  text-shadow: none;
}

body.v4-page .v4-hero-copy h1 {
  font-size: clamp(2.5rem, 1.45rem + 3.2vw, 4rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: 0;
}

body.v4-page .v4-evening h2 {
  font-size: clamp(1.6rem, 1.35rem + 0.5vw, 1.85rem);
  font-weight: 400;
  line-height: 1.15;
}

body .event-info h3,
body.event-detail-page .event-detail-main .event-info h3 {
  line-height: 1.3;
  letter-spacing: 0;
}

body .show-status-title,
body .showday-status-copy h2 {
  font-family: var(--font-body, sans-serif);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
}

body .card :is(#newsletter-title, #thanks) {
  max-width: 100%;
  font-family: var(--font-body, inherit);
  font-size: clamp(1.75rem, 1.35rem + 1.5vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
  text-transform: none;
}

@media (max-width: 680px) {
  :root {
    --wad-heading-reading: clamp(1.4rem, 1.1rem + 1.3vw, 1.8rem);
    --wad-heading-section: clamp(1.65rem, 1.2rem + 1.5vw, 2rem);
  }
}
