/* Readable type layer (2026-09-17)
   Loaded last on every page. Raises body copy to 18px and keeps
   secondary text at 15px or more, on both desktop and mobile. */

body { font-size:18px; line-height:1.9; }

/* Header / navigation */
body .brand-tagline { font-size:15px; }
body .header-tel .tel-note { font-size:14px; }
body .globalnav a { font-size:17px; }
body .header-contact .btn { font-size:17px; }

/* Home page body copy */
body :is(.hero-lead, .sec-lead, .unit-text, .detail-text, .svc-body p, .faq-a p, .reason-list p, .staff-text) { font-size:18px; line-height:1.9; }
body .step-list li > p:last-child { font-size:18px; }
body .price-cards p { font-size:17px; line-height:1.8; }
body .check-list li { font-size:17px; }
body .check-list span, body .unit .check-list span { font-size:15px; }
body .news-list .news-title { font-size:18px; }
body .tag, body .tag-list li { font-size:15px; }
body .step-no { font-size:16px; }
body .area-note, body .news-note, body .hero-window-note { font-size:16px; }
body .area-city-main span, body .coverage-map-heading span { font-size:14px; }
body .coverage-map figcaption, body .sample-note { font-size:15px; }
body .points p, body .staff-role { font-size:16px; }
body .staff-role small { font-size:14px; }
body .btn-tel small { font-size:14px; }
body .label { font-size:15px; }
body.page-contact .contact-layout .label { font-size:15px; }

/* Footer */
body .footer-nav a, body.subpage .footer-nav a { font-size:17px; }
body .footer-tagline, body .footer-addr span, body .footer-area-text { font-size:16px; }
body .footer-tel small { font-size:14px; }
body .footer-area-cities li { font-size:16px; }
body .footer-policy a { font-size:15px; }
body .copyright { font-size:14px; }

/* Subpages */
body .page-eyebrow { font-size:14px; }
body .page-name { font-size:17px; }
body .page-lead { font-size:18px; }
body :where(.page-section) :is(p, li), body .definition-list dd { font-size:18px; }
body .page-section .eyebrow { font-size:15px; }
body .faq-jump-desc, body .faq-jump-count { font-size:15px; }
body .faq-more-note { font-size:16px; }
body .article-aside a { font-size:17px; }
body .contact-form :is(.required, .optional) { font-size:15px; }
body .form-help, body .field-note { font-size:16px; }

/* Tablet: nav has less room */
@media (min-width:761px) and (max-width:1150px) {
  body .globalnav a { font-size:15px; }
  body .header-contact .btn { font-size:16px; }
}

/* Mobile */
@media (max-width:760px) {
  body { font-size:18px; }
  body .nav-toggle em { font-size:13px; }
  body .globalnav a { font-size:18px; }
  body :is(.hero-lead, .sec-lead, .unit-text, .detail-text, .svc-body p, .faq-a p, .reason-list p, .staff-text) { font-size:18px; }
  body .step-list li > p:last-child { font-size:18px; }
  body .price-cards p { font-size:17px; }
  body .unit .check-list li { font-size:17px; }
  body .hero-benefits li { font-size:15px; }
  body .page-eyebrow { font-size:13px; }
  body .page-name { font-size:16px; }
  body .page-lead { font-size:18px; }
  body :where(.page-section) :is(p, li), body .definition-list dd { font-size:18px; }
  body .page-jumps a { font-size:17px; }
  body .comparison-table :is(th, td) { font-size:16px; }
  body .note-panel, body .note-panel p { font-size:17px; }
  body .footer-nav a, body.subpage .footer-nav a { font-size:17px; }
  body.page-contact .contact-layout .label { font-size:15px; }
  body .footer-bottom-inner, body .copyright { font-size:14px; }
  body .breadcrumb { font-size:15px; }
}
@media (max-width:360px) {
  body .hero-benefits li { font-size:14px; }
}

/* Step 2 (2026-09-17): headings and FAQ/Q&A text follow the larger body size */
body .page-section h3 { font-size:23px; }
body .faq-qa summary { font-size:20px; }
body .faq-a-text { font-size:18px; }
body .qa-list dt { font-size:20px; }
body .faq-jump-name { font-size:19px; }
body .step-list h3 { font-size:21px; }
body .price-cards h3 { font-size:18px; }
body .text-link { font-size:17px; }
body .comparison-table { font-size:17px; }
@media (max-width:760px) {
  body .page-section h3 { font-size:21px; }
  body .faq-qa summary { font-size:18px; }
  body .faq-a-text { font-size:17px; }
  body .qa-list dt { font-size:18px; }
  body .faq-jump-name { font-size:17px; }
  body .comparison-table :is(th, td) { font-size:16px; }
}

/* Step 2 fixes: beat subpage mobile rules and remaining 14px text */
body.subpage .page-section :is(p, li):not([class]) { font-size:18px; }
body.subpage :is(.info-card, .card-copy, .note-panel) p:not([class]) { font-size:17px; }
body .check-list strong { font-size:16px; }
body .points p { font-size:17px; }
body .breadcrumb, body .breadcrumb a { font-size:15px; }
body .btn-tel small, body .footer-tel small, body .header-tel .tel-note { font-size:15px; }
body .area-city-main span, body .coverage-map-heading span { font-size:15px; }
body .copyright, body .label { font-size:15px; }
body .page-eyebrow { font-size:14px; }
body .nav-toggle em { font-size:14px; }
@media (min-width:761px) and (max-width:1000px) {
  body .globalnav a { font-size:14px; }
}
@media (max-width:760px) {
  body.subpage .page-section :is(p, li):not([class]) { font-size:18px; }
  body.subpage :is(.info-card, .card-copy, .note-panel) p:not([class]) { font-size:17px; }
  body .breadcrumb, body .breadcrumb a { font-size:15px; }
}
body .page-section .label, body.page-contact .contact-layout .label { font-size:15px; }
body .news-head .btn { font-size:16px; }
@media (max-width:760px) {
  body .page-section .label, body.page-contact .contact-layout .label { font-size:15px; }
  body .news-head .btn, body .header-contact .btn { font-size:16px; }
}
/* Home page: section-specific rules (.about-copy .sec-lead etc.) outrank the generic ones */
body.home-page main :is(.sec-lead, .detail-text, .unit-text, .hero-lead, .svc-body p, .faq-a p, .reason-list p, .staff-text) { font-size:18px; }
body.home-page main :is(.area-note, .news-note, .hero-window-note) { font-size:17px; }
body.home-page main .tag-list li { font-size:16px; }
@media (max-width:760px) {
  body.home-page main :is(.sec-lead, .detail-text, .unit-text, .hero-lead, .svc-body p, .faq-a p, .reason-list p, .staff-text) { font-size:18px; }
  body.home-page main :is(.area-note, .news-note) { font-size:16px; }
}
