/* Two families, three sizes. Keep components on these shared tokens. */
:root {
  --type-body: 1.125rem;
  --type-title: 1.875rem;
  --type-display: 3.75rem;
}
body { font-size: var(--type-body); line-height: 1.7; }
button, input, select, textarea, option, code, pre, kbd, samp {
  font-family: var(--sans);
  font-size: var(--type-body);
}
h1, .discover h1 { font-size: var(--type-display); line-height: 1.08; }
h1, h2, h3 { overflow-wrap: anywhere; }
h2, h3, h4, h5, h6 { font-family: var(--serif); font-size: var(--type-title); line-height: 1.18; }
small, sup, sub { font-size: inherit; }
svg text { font-family: var(--sans); }
.brand-name, .masthead .brand-name, .discover-header .brand-name {
  font-family: var(--serif);
  font-size: var(--type-display);
  font-style: italic;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.045em;
  padding: 0;
}
.brand-sub { display: none; }
.masthead { min-height: 104px; gap: 24px; padding-block: 18px; }
.masthead .nav { gap: 12px 20px; }
.masthead .nav a { font-size: var(--type-body); line-height: 1.4; }
.personal-nav .profile-nav, .personal-nav .saved-nav {
  font-size: var(--type-body); line-height: 1.4; padding: 10px 12px;
}
.personal-nav .profile-nav span, .personal-nav .saved-nav span {
  font-size: var(--type-body);
}
.eyebrow, .edition, .card-meta, .idea-card-meta, .swipe-tags {
  letter-spacing: .06em;
  line-height: 1.5;
}
.edition { gap: 24px; text-transform: none; letter-spacing: 0; }
.hero-copy { padding-block: 48px; }
.hero-copy h1 { max-width: 11ch; }
.hero-copy p { max-width: 35ch; line-height: 1.7; }
.hero-copy p br { display: none; }
.hero-caption h2 { font-size: var(--type-title); line-height: 1.18; }
.hero-caption .eyebrow { letter-spacing: .03em; }
.photo-count { letter-spacing: .04em; }
.quick-links { flex-wrap: wrap; }
.quick-links button { white-space: normal; line-height: 1.5; }
.section-head { align-items: end; gap: 24px; }
.section-head h2 { font-size: var(--type-title); line-height: 1.18; max-width: 30ch; }
.section-head p { max-width: 52ch; }
.card h3, .idea-card h2, .wow-card h3, .discover-list h2 { line-height: 1.18; }
.card-bottom, .swipe-bottom { flex-wrap: wrap; line-height: 1.5; }
.card-meta, .credit, .swipe-credit { overflow-wrap: anywhere; }
.article-body, .idea-body { line-height: 1.75; }
.idea-heading h1 { line-height: 1.08; text-wrap: balance; }
.idea-heading .lead { line-height: 1.7; }
.discover-filters { padding: 20px; }
.discover-filters summary, .discover-filters label, .discover-filters .discover-check { line-height: 1.5; }
.discover-pair { grid-template-columns: minmax(0,1fr); }
.discover-status { flex-wrap: wrap; line-height: 1.5; }
.swipe-location span { max-width: 85%; }
.swipe-copy h2 { font-size: var(--type-title); line-height: 1.18; }
.swipe-copy p { line-height: 1.65; }
.swipe-budget summary { flex-wrap: wrap; }
.swipe-budget dl { grid-template-columns: minmax(0,1fr) auto; }
.discover-actions { gap: 20px; }
.discover-actions button { min-width: 0; flex: 1; }
.discover-actions b, .discover-actions .action-been b { font-size: var(--type-title); }
.account-code { font-family: var(--sans); font-variant-numeric: tabular-nums; }
.footer-nav { flex-wrap: wrap; line-height: 1.6; }
.source-table { display: block; max-width: 100%; overflow-x: auto; }
@media (max-width: 1240px) {
  .masthead { gap: 16px 24px; }
  .masthead .nav { padding-top: 12px; }
}
@media (max-width: 600px) {
  :root { --type-body: 1rem; --type-title: 1.625rem; --type-display: 2.5rem; }
  .masthead { padding: 18px 0 12px; gap: 14px; }
  .masthead .nav { gap: 6px 10px !important; padding-top: 12px; }
  .masthead .nav a { line-height: 1.4; }
  .personal-nav .profile-nav, .personal-nav .saved-nav { padding: 8px; }
  .hero-copy { padding: 32px 0; }
  .edition { padding-block: 16px; }
  .hero-caption { padding: 22px; }
  .hero-caption .eyebrow { letter-spacing: 0; }
  .section-head { align-items: start; gap: 16px; }
  .discover-actions { gap: 12px; }
  .discover-tabs { flex-wrap: wrap; }
  .discover-tabs button { padding: 10px 12px; }
  .discover-dialog { padding: 26px 20px; }
}
