/* Readable text sizes shared by the tools, guides and articles. */
:root {
  --text-body: 1.0625rem;
  --text-ui: 1rem;
  --text-small: .875rem;
  --text-label: .8125rem;
  --muted: #51627a;
}

body { font-size: var(--text-body); line-height: 1.75; }
.hero-description { font-size: 1.125rem; line-height: 1.8; }
.site-header .nav, .header-cta { font-size: var(--text-ui); }
.hero-perks { flex-wrap: wrap; gap: 10px 18px; font-size: var(--text-small); }
.eyebrow, .guide-card .eyebrow, .article-card .eyebrow,
.how-heading .eyebrow { font-size: var(--text-label); letter-spacing: 1px; color: #52677f; }
.network-center strong { font-size: var(--text-ui); }
.network-center span, .network-node, .art-caption { font-size: var(--text-label); }

.checker-title h2 { font-size: 1.375rem; line-height: 1.35; }
.checker-title p { font-size: var(--text-ui); line-height: 1.65; }
.checker-title > div { min-width: 0; }
.small-icon { flex-shrink: 0; }
.live-label { font-size: var(--text-label); color: #5b6c82; }
.target-wrap input { font-size: var(--text-body); }
.input-row select, .primary-button { font-size: var(--text-ui); }
.input-hint, .example-button { font-size: var(--text-small); color: #5b6c82; }
.input-hint { flex-wrap: wrap; line-height: 1.7; }
.request-status:not(:empty), .ip-intro p { font-size: var(--text-ui); }
.back-link, .hero-guide-link { font-size: var(--text-small); color: #52677f; }

.section-header > p, .tool-card p, .how-heading > p:last-child,
.step p, .faq-grid details p { font-size: var(--text-ui); line-height: 1.8; }
.tool-card h3 { font-size: 1.25rem; line-height: 1.35; }
.tool-card p { max-width: none; }
.card-category { position: static; font-size: var(--text-label); margin: -8px 0 12px; color: #5b6c82; }
.card-link { font-size: var(--text-ui); }
.step > span { font-size: var(--text-small); }
.step h3 { font-size: 1.125rem; line-height: 1.4; }
.faq-grid summary { font-size: var(--text-body); }
.faq-grid summary span { font-size: 1.375rem; }
.footer-top p, .footer-links, .footer-bottom { font-size: var(--text-small); color: #5b6c82; }
.footer-links, .footer-bottom { flex-wrap: wrap; gap: 10px 22px; }
.footer-version { color: #5b6c82; }

.results { min-width: 0; }
.result-heading h2 { font-size: 1.5rem; line-height: 1.35; }
.result-heading p { font-size: var(--text-ui); }
.result-meta, .result-target { font-size: var(--text-small); color: #52677f; }
.metric > span { font-size: var(--text-label); color: #52677f; letter-spacing: .5px; }
.metric > strong { font-size: 1.5rem; }
.metric > strong.small-value { font-size: var(--text-ui); }
.metric > p { font-size: var(--text-small); }
.detail-row { font-size: var(--text-ui); grid-template-columns: minmax(0, 160px) minmax(0, 1fr); }
.detail-row dt { color: #52677f; }
.result-note, .notice, .result-warning { font-size: var(--text-small); line-height: 1.8; }
.result-note, .notice { color: #52677f; }
.table-scroll { max-width: 100%; }
table, td.dns-value { font-size: var(--text-ui); }
th { font-size: var(--text-small); color: #52677f; }
.type-badge, .trace-number, .trace-code { font-size: var(--text-label); }
.trace-url { font-size: var(--text-ui); }
.trace-detail { font-size: var(--text-small); color: #52677f; }
.email-check strong, .record-block h3 { font-size: var(--text-ui); }
.email-check p, .record-block pre { font-size: var(--text-ui); }
.ip-display strong { font-size: 1.75rem; }
.copy-button { font-size: var(--text-small); min-height: 44px; }

.document-content p, .contact-panel p, .contact-tips { font-size: var(--text-body); line-height: 1.85; }
.document-content .lead { font-size: 1.25rem; }
.document-content h2 { font-size: 1.5rem; line-height: 1.4; }
.contact-panel h2 { font-size: 1.25rem; }
.guide-teaser p, .guide-card p { font-size: var(--text-ui); line-height: 1.8; }
.guide-teaser h2, .guide-card h2 { font-size: 1.5rem; line-height: 1.35; }
.guide-teaser a, .guide-action { font-size: var(--text-ui); white-space: normal; }
.guide-main > header p:last-child, .guide-steps li, .guide-read dd,
.guide-main > p, .guide-limits p { font-size: var(--text-body); line-height: 1.85; }
.guide-main h3 { font-size: 1.375rem; }
.guide-read dt { font-size: var(--text-body); }
.guide-limits h3, .guide-aside > h3 { font-size: 1.125rem; }
.guide-aside > a, .guide-aside p { font-size: var(--text-ui); line-height: 1.75; }
.guide-sources { font-size: var(--text-small); }
.guide-sources span { font-size: var(--text-label); }

.article-intro, .article-body p, .article-answer p { font-size: var(--text-body); line-height: 1.85; }
.article-body h2 { font-size: 1.625rem; }
.article-answer h2, .article-toc h2 { font-size: 1.25rem; }
.article-meta { font-size: var(--text-small); color: #52677f; }
.article-tool-link, .article-toc a { font-size: var(--text-ui); }
.article-table, .article-table th, .article-table td { font-size: var(--text-ui); }
.article-table thead th { font-size: var(--text-small); }
.article-table tbody th { width: 36%; }
.related-articles h3 { font-size: 1.125rem; }
.related-articles a { font-size: var(--text-ui); }
.article-references h2 { font-size: 1.25rem; }
.article-references p, .article-references a { font-size: var(--text-small); }
.article-hub > p:not(.eyebrow), .article-card p { font-size: var(--text-ui); line-height: 1.8; }
.article-card h3 { font-size: 1.5rem; line-height: 1.35; }

@media (max-width: 1000px) {
  .tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-perks { gap: 10px 16px; }
}

@media (max-width: 760px) {
  .site-header .nav { font-size: .9375rem; gap: 16px; }
  .hero-description { font-size: var(--text-body); }
  .checker-top { align-items: flex-start; }
  .checker-title { align-items: flex-start; }
  .target-wrap input { font-size: var(--text-body); height: 56px; }
  .input-row select { font-size: var(--text-ui); height: 52px; }
  .primary-button { min-height: 54px; }
  .article-header h1 { font-size: 2.125rem; }
  .article-body h2 { font-size: 1.5rem; }
  .article-answer h2, .article-toc h2 { font-size: 1.25rem; }
  .article-body .article-table-help { font-size: var(--text-small); color: #52677f; }
  .article-card h3 { font-size: 1.375rem; }
  .ip-display strong { font-size: 1.5rem; }
}

@media (max-width: 600px) {
  .tools-grid { grid-template-columns: minmax(0, 1fr); }
  .tool-card { padding: 24px; }
  .detail-row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 7px; }
}

@media (max-width: 380px) {
  .site-header .nav { font-size: .875rem; gap: 12px; }
  .hero-perks { font-size: var(--text-small); gap: 8px 14px; }
}
