/* Shared reading sizes across the portfolio, journal and brief form. */
body { font-size: 17px; line-height: 1.8; }
.intro, .section-head p, .about-layout > div > p:not(.about-lead), .contact p,
.workflow-intro > p, .workflow-step p { font-size: 17px; line-height: 1.9; }
.eyebrow, .edition, .work-note, .breadcrumb, .search-label,
.results-row, .project-info span, .project-type, .image-total,
.category-cards span, .category-cards small, .workflow-label,
.studio-drawing > span { font-size: 14px; line-height: 1.8; }
.eyebrow, .workflow-label { letter-spacing: .08em; }
body > header > nav, .nav-work, .nav-contact, .brief-nav { font-size: 15px; }
.theme-toggle, .mobile-menu { font-size: 14px; }
.nav-work-menu a, .mobile-menu a { font-size: 15px; padding: 9px 12px; }
.nav-work-menu, .mobile-menu > div { min-width: 220px; }
.brand small { font-size: 9px; letter-spacing: .08em; }
.button, .hero .text-link, .about .text-link, .contact-buttons .button,
.dialog-copy .button, .selected-head a, .workflow-intro .button,
.service-extra > a, .contact-float { font-size: 16px; }
.filters button, .category-nav, .search-label input { font-size: 16px; }
.filters small { font-size: 13px; }
.feature-caption, .hero-carousel .feature-caption { font-size: 14px; gap: 16px; line-height: 1.7; }
.feature-caption > * { overflow-wrap: anywhere; }
.hero-bottom { font-size: 16px; flex-wrap: wrap; gap: 12px 24px; }
.hero-bottom a { font-size: 14px; letter-spacing: .03em; }
.project-info h3, .category-cards h3, .selected-head h3 { font-size: 21px; line-height: 1.6; }
.service-row > span { font-size: 14px; }
.service-priced h3, .service-extra h3 { font-size: 22px; line-height: 1.6; }
.service-priced p, .service-extra p, .service-price-note p { font-size: 16px; line-height: 1.85; }
.service-priced .service-price { font-size: 19px; }
.service-extra > strong { font-size: 19px; }
.dialog-copy p { font-size: 17px; line-height: 1.9; }
.dialog-copy .concept-label, .gallery-controls { font-size: 15px; }
.line-id, .copy-line, .copy-status, .contact small { font-size: 15px; }
.line-id b { font-size: 18px; }
footer { font-size: 15px; flex-wrap: wrap; }
footer span { font-size: 14px; letter-spacing: .02em; }
.journal-total, .article-breadcrumb, .article-byline,
.article-card-copy .eyebrow, .article-cover > figcaption { font-size: 14px; line-height: 1.85; }
.article-card-copy > p, .read-link, .article-toc, .article-toc > strong,
.article-related .all-articles, .article-cta .text-link, .article-cta p { font-size: 16px; }
.journal-home .article-card h2 { font-size: 22px; }
.article-prose { font-size: 18px; line-height: 2; }
.article-prose .source-inline, .article-sources { font-size: 16px; line-height: 1.9; }
.article-lead { font-size: 19px; line-height: 1.95; }
/* Brief inputs stay at least 16px to remain readable on mobile browsers. */
body:has(> .topbar) .intro { font-size: 17px; }
body:has(> .topbar) label:not(.channel):not(.checkbox):not(.upload-button),
body:has(> .topbar) input:not([type=radio]):not([type=checkbox]):not([type=file]),
body:has(> .topbar) select, body:has(> .topbar) textarea { font-size: 16px; line-height: 1.8; }
body:has(> .topbar) input::placeholder, body:has(> .topbar) textarea::placeholder { font-size: 15px; }
body:has(> .topbar) .hint, body:has(> .topbar) .privacy,
body:has(> .topbar) .section-title p, body:has(> .topbar) .checkbox,
body:has(> .topbar) .dropzone > span:not(.upload-icon), body:has(> .topbar) .ref-name,
body:has(> .topbar) .channel small, body:has(> .topbar) .deadline-note,
body:has(> .topbar) .remove-ref { font-size: 14px; line-height: 1.85; }
body:has(> .topbar) .calc, body:has(> .topbar) .mini-row,
body:has(> .topbar) .estimate-note, body:has(> .topbar) .human-note,
body:has(> .topbar) .send-info, body:has(> .topbar) .send-info p,
body:has(> .topbar) .price small { font-size: 15px; line-height: 1.85; }
body:has(> .topbar) .primary, body:has(> .topbar) .secondary,
body:has(> .topbar) .chat-link, body:has(> .topbar) .upload-button,
body:has(> .topbar) .channel b, body:has(> .topbar) .dropzone strong,
body:has(> .topbar) .error, body:has(> .topbar) .action-status { font-size: 16px; }
body:has(> .topbar) .file-input { font-size: 14px; max-width: 100%; }
body:has(> .topbar) .flow { font-size: 15px; }
body:has(> .topbar) footer button { font-size: 14px; }
@media (max-width: 1150px) {
  body > header:not(.topbar) > nav { display: none; }
  body > header:not(.topbar) .mobile-menu { display: block; }
}
@media (max-width: 600px) {
  .intro, .section-head p, .about-layout > div > p:not(.about-lead), .contact p,
  .workflow-intro > p, .workflow-step p { font-size: 16px; }
  .project-info h3, .category-cards h3, .selected-head h3 { font-size: 20px; }
  .service-priced h3 { font-size: 20px; }
  .service-priced p { font-size: 15px; }
  .article-prose { font-size: 17px; }
  .article-lead { font-size: 18px; }
  .article-card-copy > p { font-size: 16px; }
  body > header .theme-toggle .theme-label { display: none; }
  body > header .theme-toggle { padding: 7px 10px; }
  body > header .brand { font-size: 18px; }
  body > header .brand small { font-size: 8px; }
  body:has(> .topbar) .flow { font-size: 13px; gap: 8px; flex-wrap: wrap; }
  body:has(> .topbar) .flow b { margin-right: 4px; }
  .brief-nav { font-size: 15px; gap: 12px 18px; }
  .feature-caption { flex-wrap: wrap; }
}
@media (max-width: 380px) {
  body > header .brand { font-size: 16px; }
  body > header .brand img { width: 28px; height: 28px; }
  body > header .header-tools { gap: 8px; }
  body:has(> .topbar) .pair { grid-template-columns: 1fr; }
}
