/* Shared public typography: loaded after the page's layout stylesheet. */
:root {
  --public-body-size: 18px;
  --public-control-size: 16px;
  --public-small-size: 14px;
}
body { font-size: var(--public-body-size); line-height: 1.75; }
p, li { font-size: var(--public-body-size); }

.header-action { font-size: 14px; }
.call-copy small { font-size: 12px; }
.call-copy strong { font-size: 16px; }
.header-nav .nav-link { font-size: var(--public-control-size); }
.hero-kicker, .hero-specialties a, .video-eyebrow,
body > section > .container > h2:before { font-size: var(--public-small-size); }
.hero-kicker, .video-eyebrow { letter-spacing: 1px; }
.hero-description, .about li, .services li, .services .card-text,
#bph-info p, #bph-info li, .video-copy p,
#doctor .col-lg-8 > p, #doctor li, .visit-layout #contact p {
  font-size: var(--public-body-size);
  line-height: 1.75;
}
.clinic-button, .hero-text-link { font-size: var(--public-control-size); }
.hero-actions { flex-wrap: wrap; }
.services .row.mb-5 > div > ul > li { font-size: 22px; line-height: 1.5; }
.services .card-title, #doctor h5, .visit-layout #contact h3 {
  font-size: 22px;
  line-height: 1.4;
}
#doctor h4 { font-size: 18px; line-height: 1.5; }
footer p, .admin-link { font-size: var(--public-small-size); line-height: 1.65; }
.contact-float-button {
  min-width: 190px;
  font-size: var(--public-control-size);
  min-height: 52px;
}
.mobile-floating-buttons .btn { font-size: 14px; padding: 8px 2px; margin: 0 3px; }

.inquiry-eyebrow { font-size: var(--public-small-size); letter-spacing: 1px; }
.inquiry-intro-copy { font-size: var(--public-body-size); line-height: 1.75; }
.inquiry-intro-note { font-size: 16px; line-height: 1.65; }
.inquiry-content-heading { flex-wrap: wrap; }
.inquiry-content-heading strong { font-size: 22px; }
.inquiry-content-heading > span { font-size: var(--public-small-size); }
.inquiry-section legend { font-size: 20px; }
.inquiry-field label, .inquiry-field > label:first-child { font-size: 16px; line-height: 1.5; }
.inquiry-field input, .inquiry-field select, .inquiry-field textarea {
  font-size: 17px;
  line-height: 1.5;
}
.inquiry-helper, .inquiry-upload small, .inquiry-file-list, .inquiry-privacy {
  font-size: var(--public-small-size);
  line-height: 1.65;
}
.inquiry-upload { font-size: 16px; }
.inquiry-consent, .inquiry-status { font-size: 16px; line-height: 1.65; }
.inquiry-submit { font-size: 18px; }

.article-header nav, .pagination, .back { font-size: var(--public-control-size); }
.article-header nav { flex-wrap: wrap; }
.eyebrow, .article-grid time, .article-meta, .preview-note,
body:has(.article-header) > footer { font-size: var(--public-small-size); }
.article-grid p, .article-body { font-size: var(--public-body-size); line-height: 1.8; }

@media (max-width: 1199px) {
  .header-main { gap: 14px; }
  .header-action { padding: 6px; gap: 5px; }
  .header-action-call { padding: 8px 12px !important; }
}
@media (max-width: 767px) {
  :root { --public-body-size: 17px; }
  .hero-kicker { font-size: 13px; letter-spacing: .6px; }
  .hero-specialties { max-width: none; }
  .hero-specialties a { font-size: 14px; }
  .hero-actions { gap: 18px; }
  .clinic-button { padding: 14px 18px; gap: 20px; }
  .services .row.mb-5 > div > ul > li { font-size: 20px; }
  .services .card-title, #doctor h5, .visit-layout #contact h3 { font-size: 20px; }
  .contact-float-button { min-width: 180px; min-height: 48px; font-size: 16px; }
  .inquiry-intro h2 { font-size: 30px; }
  .article-header nav { gap: 12px 20px; }
}
@media (max-width: 480px) {
  .services .mt-5 .row > div { width: 100%; }
}
