/* Siris Hill — shared typography rules
   Loaded after page styles. The theme supplies ink/paper contrast; this sheet
   supplies a consistent type hierarchy while leaving page composition intact. */
:root {
  --font-editorial: Williwaw, Georgia, 'Times New Roman', serif;
  --font-interface: Arial, Helvetica, sans-serif;

  /* Display remains reserved for the animated artist wordmark. */
  --type-display: clamp(4rem, 12vw, 12.5rem);
  --type-page-title: clamp(3rem, 6.4vw, 6.75rem);
  --type-section-title: clamp(2.2rem, 4.25vw, 4.5rem);
  --type-card-title: clamp(1.65rem, 2.8vw, 2.7rem);
  --type-lede: clamp(1.4rem, 1.6vw, 1.9rem);
  --type-body: clamp(1.125rem, 1.18vw, 1.4rem);
  --type-quote: clamp(2.2rem, 5.1vw, 6rem);
  --type-caption: clamp(1rem, 1.1vw, 1.125rem);
  --type-label: clamp(.94rem, .95vw, 1.05rem);
  --type-control: 1.0625rem;

  --leading-display: .98;
  --leading-heading: 1.08;
  --leading-reading: 1.68;
  --leading-compact: 1.45;
  --tracking-display: -.035em;
}

/* Page title. The homepage artist wordmark and screen-reader-only headings
   retain their specific design and animation. */
html[data-theme] body main h1:not(.hero-name):not(.sr) {
  font-family: var(--font-editorial) !important;
  font-size: var(--type-page-title) !important;
  font-weight: 400 !important;
  line-height: var(--leading-display) !important;
  letter-spacing: var(--tracking-display) !important;
}

/* Section title. Work-door titles are mapped separately as card titles. */
html[data-theme] body main h2:not(.door h2):not(.chap h2),
html[data-theme] body main .bts-head {
  font-family: var(--font-editorial) !important;
  font-size: var(--type-section-title) !important;
  font-weight: 400 !important;
  line-height: var(--leading-heading) !important;
  letter-spacing: var(--tracking-display) !important;
}

/* Card, exhibition, and process chapter titles. */
html[data-theme] body main :is(.door h2, .chap h2, h3) {
  font-family: var(--font-editorial) !important;
  font-size: var(--type-card-title) !important;
  font-weight: 400 !important;
  line-height: var(--leading-heading) !important;
  letter-spacing: -.025em !important;
}

/* Default reading copy, with labels and short metadata kept in their own roles. */
html[data-theme] body main p:not(:where(.eyebrow, .film-kicker, .film-cap, .cap,
  .lbl, .label, .byline, .cred, .n, .tag, .cnt, .where, .film__credit,
  .quote-final-line)) {
  font-family: var(--font-editorial) !important;
  font-size: var(--type-body) !important;
  line-height: var(--leading-reading) !important;
}

/* Opening summaries and highlighted process statements. */
html[data-theme] body main :is(.lede, .xp-lede, .film-intro,
  .ordinary-description, .ng-film-description, .p-lede, .lead, .card .s, .encounter .excerpt, .home-01 .ordinary-intro p,
  .home-01 .film__copy > p:not(.eyebrow),
  .home-01 .about__copy p:not(.eyebrow),
  .home-01 .exhibition-feature__copy > p:not(.eyebrow)) {
  font-family: var(--font-editorial) !important;
  font-size: var(--type-lede) !important;
  line-height: 1.58 !important;
}

/* Artist and sitter quotations. Their containers and line breaks stay page-owned. */
html[data-theme] body main :is(.quote, .quote p, .w-quote,
  blockquote:not(.said), blockquote:not(.said) p) {
  font-family: var(--font-editorial) !important;
  font-size: var(--type-quote) !important;
  font-weight: 400 !important;
  line-height: 1.12 !important;
  letter-spacing: -.03em !important;
}

/* Captions, credits and labels: interface sans, restrained and readable. */
html[data-theme] body :is(main figcaption, main .cap, main .film-cap, main .ng-film-credit, main .film__credit, main .door .dcap, main .tag,
  main .w-work figcaption, main .first figcaption, main .cat figcaption, main .c1-caps, main .hs-hint,
  main .detail-hint, .opening-caption, main .more summary .pm, main .more summary .t span, main .ud-grid figcaption) {
  font-family: var(--font-interface) !important;
  font-size: var(--type-caption) !important;
  line-height: 1.5 !important;
}
html[data-theme] body :is(main .lbl, main .label, main .statement-label, main .section-label,
  main .film-kicker, main .cred, main .byline, main .event-date, main .cnt,
  main .xp-long footer, main .xp-said footer, main .quote footer, main .alice-voice footer,
  main .hs-sheet span, main .ud-origin, main .prog .count, main .w-index button) {
  font-family: var(--font-interface) !important;
  font-size: var(--type-label) !important;
  line-height: var(--leading-compact) !important;
}

html[data-theme] body.home-01 main :is(.hero__cue, .hero__cue span, .eyebrow, .ordinary-copy .eyebrow) {
  font-family: var(--font-interface) !important;
  font-size: var(--type-label) !important;
  line-height: var(--leading-compact) !important;
}

/* Navigation and calls to action share one interface size. */
html[data-theme] body :is(.sh .sh-links, .sh .theme-btn, .sh .menu-btn,
  .menu-sheet nav a, .menu-sheet .foot, .text-link, .go, .txtlink,
  .w-cue, .w-skip, .ft-site, .ft-site .fieldrow button, .ft-site .ft-base,
  .ft-site .form-status, .site-ft, .ft-base, .footer-base, .contact a, .xp-next a,
   .nb-ctl, main .rail button, .inspection-status, .opening-caption .motion-toggle) {
  font-size: var(--type-control) !important;
}

@media (max-width: 600px) {
  :root {
    --type-page-title: clamp(2.6rem, 12vw, 4rem);
    --type-section-title: clamp(2rem, 8vw, 2.8rem);
    --type-card-title: clamp(1.5rem, 6vw, 2rem);
    --type-lede: 1.35rem;
    --type-body: 1.125rem;
    --type-quote: clamp(2rem, 9vw, 3.2rem);
    --type-caption: .96rem;
    --type-label: .9rem;
  }
}
