/* Shared public typography. Sizes follow the owner's brand table (1pt = 4/3px). */
* { scrollbar-width: thin; scrollbar-color: rgba(60, 58, 52, .28) transparent; }
@font-face {
  font-family: "Righetto Open Sans";
  src: url("/assets/fonts/open-sans-regular.woff") format("woff");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Righetto Open Sans";
  src: url("/assets/fonts/open-sans-bold.woff") format("woff");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --sans: "Righetto Open Sans", Arial, sans-serif;
  --serif: var(--sans);
  --rh-title-size: 21.333333px;
  --rh-heading-size: 13.333333px;
  --rh-body-size: 13.333333px;
  --rh-body-leading: 1.8;
  --rh-title-spacing: .5em;
  --rh-heading-spacing: .4em;
  --rh-body-spacing: .05em;
  --rh-small-size: 10.666667px;
  --body-size: var(--rh-body-size);
  --small-size: var(--rh-small-size);
  --caption-size: var(--rh-heading-size);
  --caption-spacing: var(--rh-heading-spacing);
  --image-caption-size: var(--rh-small-size);
  --gallery-heading-size: var(--rh-title-size);
  --gallery-heading-spacing: var(--rh-title-spacing);
  --mobile-size-reduction: 0px;
}
/* Phones keep the type sizes but use tighter title and heading tracking. */
@media (max-width: 900px) {
  :root { --rh-title-spacing: .4em; --rh-heading-spacing: .3em; }
}

body {
  font-family: var(--sans);
  font-size: var(--rh-body-size);
  font-weight: 400;
  font-style: normal;
  font-synthesis: none;
  line-height: var(--rh-body-leading);
  letter-spacing: var(--rh-body-spacing);
}

body :where(button, input, textarea, select, summary) { font: inherit; }
body :where(h1, h2, h3, h4, h5, h6, p, a, span, div, section, article, aside,
  nav, header, footer, li, dt, dd, figcaption, label, input, button, textarea,
  select, blockquote, small, strong, b, em) { font-family: var(--sans); }

body :where(p, blockquote, .txt, .intro, .lead, .about-statement, .about-quote,
  .about-ending, .ga-copy, .ga-deck, .project-copy, .lr-authors-intro,
  .lr-authors-sub, .lr-author-bio, .rh-person-bio, .rh-four-dates-flash,
  .rh-four-dates-copy, .door-desc, .door-event, .lr-visiting-banner) {
  font-size: var(--rh-body-size);
  font-weight: 400;
  line-height: var(--rh-body-leading);
  letter-spacing: var(--rh-body-spacing);
}

body :where(h1, .h1, .about-title, .ga-title, #lr-authors-title,
  #visit-title, .home .door-title > span:first-child > span:not(.door-arrow)) {
  font-size: var(--rh-title-size);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: var(--rh-title-spacing);
  overflow-wrap: anywhere;
}

body :where(h2, h3, h4, h5, h6, .h2, .about-label, .contact-eyebrow,
  .kicker, .eyebrow, .living-gallery-eyebrow, .lr-tour-eyebrow,
  .living-rituals-subheading, .lr-author-name, .lr-person-name,
  .group-label, .rh-cover-number, .about-method .defs dt, .ritual-thought > a) {
  font-size: var(--rh-heading-size);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: var(--rh-heading-spacing);
  overflow-wrap: anywhere;
}

/* Titles that use an H2 still belong to the primary-title role. */
body :where(#lr-authors-title, #visit-title) {
  font-size: var(--rh-title-size);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: var(--rh-title-spacing);
}

body :where(strong, b) { font-weight: 700; }
body :where(em, .about-quote em, .rh-person-content blockquote) { font-style: normal; }
body :where(h1, h2, h3, h4, h5, h6) > :where(span, em, a, r-text) {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

/* Category menus use the regular face; only the Studio / Gallery strip is bold. */
body :where(.rh-studio-category-bar a, .rh-gallery-category-bar a,
  .rh-gallery-category-bar summary, .hdr a, .hdr button, .mnav a, .mnav button,
  .about-project-navigation a, .rh-studio-subnav a,
  header > a:not(.logo):not(.mark), header nav a) {
  font-size: 10px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: .16em;
}
body .rh-section-switcher a span { font: inherit; letter-spacing: inherit; }
body .rh-section-switcher a {
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .16em;
}
body .rh-mobile-switch a, body .rh-mobile-sections a {
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .16em;
}
body .rh-mobile-links :where(a, summary) {
  font-size: var(--rh-heading-size);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: var(--rh-heading-spacing);
}
/* The mobile header and its menu read 1px smaller than the desktop bar. */
@media (max-width: 1150px) {
  body .rh-mobile-switch a, body .rh-mobile-sections a { font-size: 9px; }
  body .rh-mobile-links :where(a, summary) { font-size: calc(var(--rh-heading-size) - 1px); }
}
body :where(figcaption, small, .meta, .rh-period, .rh-year-nav,
  .year-nav, .rh-back, .back, .description-back, .lr-author-brand,
  .lr-author-kicker, .lr-authors-eyebrow, .rh-person-eyebrow,
  .boffi-project-info dt, .boffi-project-info dd, .credits-grid,
  .project-return a, .rh-archive-next a) {
  font-size: var(--rh-small-size);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
}
body :where(.credits-grid p, .credits-grid a, .credits-grid button,
  .credits-grid span, .credits-grid .arrow-label) { font: inherit; letter-spacing: inherit; }

/* Footer contacts: 8pt regular with normal tracking. */
body footer :where(p, a, label, input, button, small, .ftr-addr,
  .ftr-contact, .ftr-contact .arrow-label, .newsletter-consent span,
  .social-links, .ftr-note) {
  font-size: var(--rh-small-size);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: normal;
}
body footer .newsletter-title {
  font-size: var(--rh-heading-size);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: var(--rh-heading-spacing);
}

body :where(.logo-tagline, .mark-caption, .brand-tagline, .rh-logo-tagline) {
  font-size: 9.333333px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: normal;
}
body :where(.contract-number, .agreement-number, [data-contract-number]) {
  font-size: var(--rh-body-size);
  font-weight: 400;
  letter-spacing: normal;
}

/* Long labels may wrap at narrow widths without changing the agreed type scale. */
body :where(.rh-person-identity h3, .newsletter-title) { overflow-wrap: anywhere; }
