/* Shared public typography. Keep decorative headings; give useful text room. */
html:root body {font-size:17px;line-height:1.65}
html:root body :is(.lead,.intro) {font-size:18px!important;line-height:1.75!important}
html:root body :is(.reading p,.card p,.artist-card p,.artist-bio,.artist-bio p,.artist-note p,.partner-card p,.event-ticket p,.step p,.part-card p,.faq p,.institution-panel p,.accordion-discover-detail p,.work-list li) {font-size:16px!important;line-height:1.75!important}
html:root body :is(.eyebrow,.gold,.breadcrumbs,.status,.programme-date span,.score-meta,.artist-country,.artist-role,.gateway-status,.partner-role,.partner-card .partner-role,.partner-out,.partner-card .partner-out,.partner-mark small,.partner-chip small,.festival-path span) {font-size:13px!important;line-height:1.5!important;letter-spacing:.06em!important}
html:root body :is(.text-link,.programme-card-cue,.venue-card-cue,.event-more>summary,.event-hero .facts.event-meta .pill,.venue-days li,.venue-days strong) {font-size:14px!important;line-height:1.5!important}
html:root body :is(.btn,.score-download,.ecosystem-action,.programme-events .program-state-actions button) {font-size:15px!important;line-height:1.35!important;min-height:44px!important;white-space:normal;overflow-wrap:anywhere}
html:root body :is(.foot,.foot p,.foot a) {font-size:14px!important;line-height:1.7!important}
html:root body :is(.history-photo-story figcaption,.history-photo-story .history-small-stack figcaption,.photo-note,.discovery-photo figcaption,.gallery-card figcaption,.gallery-note,.gallery-caption,.gallery-caption p) {font-size:14px!important;line-height:1.55!important}
html:root body :is(.festival-quote,.discovery-thought) {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;font-size:22px!important;font-weight:400;line-height:1.55!important}
html:root body .festival-principles strong {font-size:16px!important}
html:root body .partner-chip strong {font-size:16px!important;line-height:1.35!important}
html:root body :is(.festival-livebar strong,.festival-livebar span,.festival-livebar a) {font-size:14px!important;line-height:1.5!important}

/* Dynamic programme drawer and actions share the same readable scale. */
html:root body .festival-hub-button .companion-button-copy strong {font-size:15px!important;line-height:1.25!important}
html:root body .festival-hub-button .companion-button-copy small {font-size:12px!important;line-height:1.35!important}
html:root body .festival-hub-button b {font-size:13px!important}
html:root body .festival-hub-sheet {width:min(520px,calc(100vw - 32px))!important}
html:root body :is(.festival-hub-head .eyebrow,.companion-head-note,.hub-context strong) {font-size:13px!important;line-height:1.45!important}
html:root body .companion-quick-link {font-size:14px!important;line-height:1.35!important;min-height:44px!important;white-space:normal!important}
html:root body .hub-section h3 {font-size:20px!important;line-height:1.35!important}
html:root body .hub-event-title {font-size:17px!important;line-height:1.45!important}
html:root body .hub-event-meta {font-size:14px!important;line-height:1.5!important}
html:root body :is(.hub-section p,.hub-context p,.hub-empty,.companion-install p) {font-size:15px!important;line-height:1.6!important}
html:root body :is(.hub-mini,.hub-context .text-link) {font-size:14px!important;line-height:1.35!important;min-height:44px!important;padding:10px 13px!important;white-space:normal!important}
html:root body .hub-update a {font-size:16px!important;line-height:1.45!important}
html:root body .hub-update p {font-size:14px!important;line-height:1.55!important;-webkit-line-clamp:unset!important}
html:root body .festival-hub-close {width:44px!important;height:44px!important;flex-shrink:0}

/* Registration labels, help, dates and review stay readable on touch screens. */
html:root body .reg-field label {font-size:15px!important;line-height:1.45!important}
html:root body :is(.reg-field small,.reg-activity small,.reg-activity .reg-activity-meta,.reg-day-chip span small,.reg-event-choice small,.reg-review-lines,.reg-progress-caption,.reg-progress-caption strong,.reg-test-note,.reg-badge,.reg-schedule-note span,.reg-success .reg-receipt strong,.reg-success .reg-receipts:after) {font-size:14px!important;line-height:1.5!important}
html:root body :is(.reg-field input,.reg-field textarea,.reg-field select,.reg-work-row input) {font-size:16px!important}
html:root body .reg-progress-caption {flex-wrap:wrap;gap:6px 16px}
html:root body .reg-progress-caption strong {max-width:100%!important}

/* A second desktop row lets navigation breathe instead of shrinking its text. */
html:root body .brand-copy {min-width:0}
html:root body .brand-copy strong {display:block!important;overflow-wrap:anywhere;font-size:13px!important;line-height:1.4!important}
html:root body .brand-copy em {font-size:11px!important;letter-spacing:.12em!important}
html:root body .search-quick {font-size:14px!important;min-height:44px!important;flex-shrink:0}
html:root body .search-quick small {font-size:12px!important}
html:root body .nav {font-size:15px!important;line-height:1.45!important}
html:root body .nav>a {min-height:44px;display:flex;align-items:center;white-space:normal!important}
html:root body .nav .lang a {font-size:14px!important;min-height:44px;display:inline-flex;align-items:center}
@media(min-width:1121px) {
  html {scroll-padding-top:142px}
  html:root body .header-inner {display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:0 24px!important;padding-block:10px!important}
  html:root body .header-inner .brand {grid-column:1;grid-row:1;min-width:0}
  html:root body .header-inner .search-quick {grid-column:2;grid-row:1;justify-self:end;margin:0!important}
  html:root body .header-inner .nav {grid-column:1/-1;grid-row:2;display:flex!important;justify-content:center!important;flex-wrap:wrap!important;gap:0 24px!important;width:100%!important;margin:3px 0 0!important;flex:none!important}
}
@media(max-width:1120px) {
  html:root body .header-inner {gap:10px!important}
  html:root body .header-inner .brand {flex:1;min-width:0!important}
  html:root body .nav {font-size:17px!important}
  html:root body .nav>a {padding-block:12px!important}
  html:root body :is(.menu,.lang-quick) {min-width:44px!important;min-height:44px!important;flex-shrink:0}
}
@media(max-width:760px) {
  html:root body .festival-hub-sheet {width:calc(100vw - 16px)!important}
  html:root body .companion-quick {grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html:root body :is(.festival-quote,.discovery-thought) {font-size:20px!important;padding:22px}
}
@media(max-width:560px) {
  html:root body .header-inner {gap:6px!important}
  html:root body .brand-copy strong {font-size:11px!important;letter-spacing:0!important}
  html:root body .brand-copy em {font-size:10px!important}
  html:root body .brand {gap:7px!important}
  html:root body .brand-icon {width:34px!important;height:auto!important}
  html:root body .search-quick {width:44px!important;min-width:44px!important;padding:0!important;justify-content:center!important}
  html:root body .search-quick :is(span,small) {display:none!important}
  html:root body .festival-hub-button .companion-button-copy small {display:none!important}
}
