/* Readable text sizes shared by desktop and mobile layouts. */
:root { --header-height: 116px; }
html { scroll-padding-top: calc(var(--header-height) + 20px); }
.header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #fff;
  box-shadow: 0 1px 0 var(--line);
}
body { font-size: 17px; line-height: 1.75; }
.header nav a { font-size: 15px; }
.header nav { gap: 22px; }
.brand span { font-size: 11px; letter-spacing: 1.6px; }
.eyebrow, .hero .eyebrow, .intro-content .eyebrow {
  font-size: 12px; letter-spacing: 1.4px;
}
.hero-topics { font-size: 18px; line-height: 1.7; }
.hero-description { font-size: 17px; line-height: 1.75; max-width: 500px; }
.button { font-size: 15px; padding: 14px 24px; min-height: 48px; }
.text-link, .hero-secondary { font-size: 15px; }
.hero-secondary { display: flex; width: fit-content; margin: 20px 0 0; }
.portrait-caption p { font-size: 14px; line-height: 1.65; }
.side-note { font-size: 11px; letter-spacing: 1.5px; }
.section-heading > p:last-child,
.detail p,
.section-copy p,
.mediation p:not(.eyebrow),
.about p:not(.eyebrow):not(.large-copy),
.contact > div > p:last-child { font-size: 17px; line-height: 1.75; }
h3 { font-size: 22px; }
.number { font-size: 14px; }
.tags { font-size: 12px; letter-spacing: 1px; line-height: 1.8; }
h3 small { font-size: 11px; line-height: 1.5; display: block; width: fit-content; margin: 8px 0 0; }
.specialties-note { font-size: 15px; }
.large-copy { font-size: 22px; line-height: 1.6; }
.address { font-size: 15px; line-height: 1.75; column-gap: 24px; }
.address .text-link { font-size: 14px; }
.footer p, .back-top { font-size: 13px; }
.footer .brand span { font-size: 10px; letter-spacing: 1.2px; }
.footer p { max-width: none; }
@media (max-width: 1200px) {
  :root { --header-height: 104px; }
  .header { min-height: 104px; }
  .menu-toggle { display: flex; align-items: center; gap: 14px; background: white; border: 1px solid var(--line); padding: 9px 16px; min-height: 46px; font-size: 15px; color: var(--blue); }
  .header nav { display: none; position: absolute; top: 104px; left: 0; right: 0; background: white; padding: 20px 36px; z-index: 5; border-bottom: 1px solid var(--line); }
  .header nav.open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .header nav a { font-size: 16px; padding: 12px; }
}
@media (max-width: 900px) {
  :root { --header-height: 100px; }
  .header { min-height: 100px; }
  .header nav { top: 100px; }
  .hero { gap: 36px; }
  .hero .eyebrow { font-size: 11px; letter-spacing: 1px; }
  .hero-description { font-size: 17px; }
  .hero-topics { font-size: 18px; }
  .contact { grid-template-columns: 1fr; gap: 28px; }
  .contact-details { padding-top: 0; }
  .contact-email { font-size: 23px; }
  .footer { flex-wrap: wrap; }
  .footer p { flex-basis: 100%; order: 3; text-align: left; }
}
@media (max-width: 650px) {
  :root { --header-height: 96px; }
  .header { min-height: 96px; }
  .header nav { top: 96px; padding: 15px 20px; }
  .brand span { font-size: 10px; letter-spacing: 1px; }
  .hero .eyebrow, .eyebrow { font-size: 11px; letter-spacing: 1px; }
  .hero-description { margin: 22px 0 28px; }
  .hero-secondary { margin: 18px 0 0; font-size: 15px; }
  .portrait-caption p { font-size: 14px; }
  .side-note { display: none; }
  h3 { font-size: 20px; line-height: 1.45; }
  h3 small { font-size: 11px; }
  .number { font-size: 13px; width: 24px; }
  .detail { padding-left: 0; padding-right: 0; }
  .tags { font-size: 12px; }
  .specialties-note { font-size: 14px; line-height: 1.9; }
  .large-copy { font-size: 21px; }
  .address { font-size: 15px; grid-template-columns: 1fr; gap: 18px; }
  .contact-email { font-size: clamp(18px, 5.3vw, 23px); overflow-wrap: anywhere; gap: 12px; }
  .footer .brand span { font-size: 10px; }
  .footer p { font-size: 12px; }
  .back-top { font-size: 14px; }
}
@media (max-width: 1200px) {
  .header nav {
    top: 100%;
    max-height: calc(100vh - var(--header-height));
    max-height: calc(100dvh - var(--header-height));
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}
