/* One type scale across collection, garment, player and information pages. */
:root{
  --display:'Instrument Serif',Georgia,serif;
  --sans:'DM Sans',Arial,sans-serif;
  --mono:var(--sans);
  --type-caption:.75rem;
  --type-label:.875rem;
  --type-body:1rem;
  --type-lead:1.125rem;
  --type-value:1rem;
  --type-card:1.75rem;
  --type-section:2rem;
  --type-feature:clamp(1.75rem,3.2vw,2.625rem);
  --type-page:clamp(2.8rem,4.7vw,5rem);
  --control-font-size:.875rem;
}
body{font:400 var(--type-body)/1.65 var(--sans);font-synthesis:none}
button,input,textarea,select{font-family:var(--sans)}
h1,h2,h3,h4,h5,h6{font-family:var(--display);font-weight:400}

/* Page titles retain the same scale on dress, player and supporting pages. */
.detail-content h1,.player-intro h1,.info-page h1,.not-found h1,.intro h1{
  font:400 var(--type-page)/1.06 var(--display);letter-spacing:-.025em;
}
.story-title,.reference-section h2,.player-collection-heading h2,.info-page h2,
.about-widget .footer-brand>a,.footer-title,.cookie-banner h2{
  font:400 var(--type-section)/1.15 var(--display);letter-spacing:-.02em;text-transform:none;
}
.archive-rail h2,.spotlight h2{
  font:400 var(--type-feature)/1.1 var(--display);letter-spacing:-.02em;
}
.outfit-grid .card-text h3,.outfit-grid[data-view="standard"] .card-text h3,.detail-nav{
  font:400 var(--type-card)/1.15 var(--display);letter-spacing:-.02em;
}

/* Reading text and lead paragraphs. */
.story p,.footer-copy,.about-widget .footer-copy,.info-page p,.info-page li,.info-page address,
.not-found p,.filter-empty,.intro-copy,.spotlight-story,.cookie-banner p{
  font:400 var(--type-body)/1.7 var(--sans);letter-spacing:normal;
}
.detail-deck,.player-bio{font:400 var(--type-lead)/1.65 var(--sans);letter-spacing:normal}
.metadata dd,.player-facts dd{font:400 var(--type-value)/1.5 var(--sans);letter-spacing:normal}

/* The same metadata labels, context lines and navigation on every template. */
.metadata dt,.player-facts dt,
.detail-athlete,.archive-rail .rail-meta,
.outfit-grid .card-athlete,.outfit-grid .card-event,
.outfit-grid[data-view="standard"] .card-athlete,.outfit-grid[data-view="standard"] .card-event,
.outfit-grid[data-view="overview"] .card-athlete,
.breadcrumb,.player-back,.info-page>a:first-child,.detail-nav span,.filter-status{
  font:400 var(--type-label)/1.5 var(--sans);letter-spacing:normal;text-transform:none;
}
.image-caption,.player-portrait figcaption,.source-list a,.reference-link,
.view-note,.match-context-note,.player-fact-note,.player-stats-note,
.footer-bottom,.footer-links,.info-page .info-date,.walk-on-badge,.archive-rail .rail-hint{
  font:400 var(--type-caption)/1.6 var(--sans);letter-spacing:normal;
}

/* Pills and form controls share a weight and size, including the rail/menu. */
.filter-control select,.filter-reset,.view-switch button,.look-views a,.garment-angles a,
.spotlight-angles button,.archive-rail .rail-angle-control button,.archive-rail .rail-step,
header nav .nav-button,header .header-menu .nav-button,.player-instagram,
.cookie-banner .cookie-actions button,.cookie-banner .cookie-actions a,.contact-action{
  font:500 var(--control-font-size)/1.4 var(--sans);letter-spacing:normal;
}
#contact-form label{font:400 var(--type-label)/1.5 var(--sans)}
#contact-form input,#contact-form textarea{font:400 var(--type-body)/1.5 var(--sans)}

/* This one-line header has its own small-screen fitting constraint. */
header .header-description{font:400 var(--type-body)/1.5 var(--sans);letter-spacing:normal}
@media(max-width:1000px){:root{--type-value:.875rem}}
@media(max-width:760px){
  :root{--type-page:clamp(2.5rem,12vw,3.25rem);--type-card:1.5rem;--type-section:1.75rem;--control-font-size:1rem}
  header .header-description{font-size:var(--type-label)}
}
@media(max-width:540px){header .header-description{font-size:clamp(.75rem,calc(5vw - 4px),.875rem)}}
@media(max-width:360px){header .header-description-mobile{letter-spacing:-.015rem}}
