/* Typography roles: retain Georgia display and the established Avenir stack. */
body { font-size: var(--type-body); line-height: 1.65; }
h1, h2, h3 { text-wrap: balance; letter-spacing: -.025em; overflow-wrap: break-word; }
h1 { font-size: var(--type-display); line-height: 1.06; }
h2 { font-size: var(--type-section); line-height: 1.1; }
h3, .stage h3, .correction-note h3 { font-size: var(--type-subheading); line-height: 1.2; }
p { text-wrap: pretty; }
.hero-copy > *, .section-intro > *, .journey > *, .correction-note > *, .closing > * { min-width: 0; }
.section-intro { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; }
.hero-intro p, .section-intro > p:last-child, .stage-bottom p:not(.eyebrow),
.correction-note p, .closing p:last-child, details p { font-size: var(--type-body); line-height: 1.65; max-width: 65ch; }
.hero-intro { max-width: 22rem; }
.hero-intro p { font-size: 1.0625rem; }
.stage-bottom p:not(.eyebrow) { margin: 1rem 0 1.25rem; }
.stage-bottom { padding: 1.5rem .5rem; min-height: 0; }
.stage-caption { margin: 0; padding: .875rem 1rem .625rem; font-size: var(--type-label); line-height: 1.5; letter-spacing: .06em; font-weight: 500; }
nav, .nav-cta, .pill, .stage-bottom a, .room-tabs button, .compare-actions button,
.checkpoints button, summary { font-size: var(--type-control); }
.wordmark { font-size: 1.25rem; }
.wordmark span { font-size: .6875rem; letter-spacing: .06em; }
.step-list button div { font-size: 1.0625rem; line-height: 1.45; }
.step-list small { font-size: var(--type-caption); line-height: 1.5; opacity: 1; color: var(--muted); }
.step-list button[aria-selected=true] small { color: var(--inverse-muted); }
.step-list button > span { font-size: var(--type-label); opacity: 1; font-variant-numeric: tabular-nums; }
.hero-meta, .image-caption, .photo-button > span, .compare-label, .room-images figcaption,
.film-meta { font-size: var(--type-label); line-height: 1.5; letter-spacing: .045em; }
.hero-meta { gap: .75rem 1.5rem; }
.image-caption { gap: 1rem; background: linear-gradient(transparent, var(--overlay-caption)); }
.photo-button > span, .room-images figcaption { gap: .5rem 1rem; flex-wrap: wrap; }
.room-images figcaption span { opacity: 1; color: var(--inverse-muted); }
.comparison-foot, .fine, footer, dialog p { font-size: var(--type-caption); line-height: 1.6; }
.comparison-foot, .film-meta { flex-wrap: wrap; }
#compare-value { min-width: 3.5ch; width: auto; font-variant-numeric: tabular-nums; }
.compare-actions { flex-wrap: wrap; }
.compare-actions button, .room-tabs button { line-height: 1.4; }
.direction-quote { max-width: 48rem; margin: 4rem auto 0; text-align: center; }
.direction-quote blockquote { margin: 0; font: italic clamp(1.5rem, 1rem + 1.2vw, 2rem)/1.4 var(--font-display); text-wrap: balance; }
.direction-quote blockquote p { text-wrap: balance; }
.direction-quote figcaption { margin-top: 1.25rem; font-size: var(--type-label); line-height: 1.5; letter-spacing: .08em; }
.corrections .correction-note p, .corrections .section-intro > p:last-child { line-height: 1.7; }
.closing h3 { font-size: clamp(2rem, 1.4rem + 1.5vw, 3rem); line-height: 1.15; }
summary { gap: 1.5rem; line-height: 1.5; }
summary span { flex-shrink: 0; }
details p { margin-top: 1.25rem; }
.checkpoints button { line-height: 1.4; }
.checkpoints button small { font-size: var(--type-label); }
@media (max-width: 1000px) {
  .section-intro { gap: 1.75rem 2.5rem; }
  .hero-copy { gap: 2rem; }
}
@media (max-width: 700px) {
  .hero-copy { display: block; }
  .hero-intro { max-width: 40rem; }
  .section-intro { display: block; }
  .section-intro h2 { margin: 0 0 1.25rem; }
  .section-intro h2 br, .closing h3 br { display: none; }
  .hero-meta { flex-direction: column; }
  .wordmark { font-size: 1rem; letter-spacing: .1em; }
  .wordmark span { font-size: .6875rem; max-width: 11rem; }
  header { gap: 1rem; flex-wrap: wrap; }
  .image-caption { padding: 3rem .875rem .875rem; }
  .photo-button > span { padding: .75rem .625rem; }
  .comparison-foot { gap: .5rem; }
  .compare-actions button { padding: .625rem .875rem; }
  .room-tabs { flex-wrap: wrap; }
  .room-tabs button { padding: .625rem 1rem; }
  .room-images figcaption { padding: .75rem .625rem; }
  .direction-quote { margin-top: 3rem; }
  footer { align-items: flex-start; }
}
