/* Shared reading scale. Display headlines and the logo retain their proportions. */
:root {
  --text-body: 1.125rem;
  --text-reading: 1.125rem;
  --text-secondary: 1rem;
  --text-control: .875rem;
  --text-small: .875rem;
  --text-caption: .75rem;
  --text-eyebrow: .6875rem;
  --card-title-size: 1.625rem;
}
body { font-size: var(--text-body); line-height: 1.7; }
.eyebrow,
.hero-content .eyebrow,
.form-heading .eyebrow,
.scope-box.info-card .eyebrow,
.pricing-apartment .eyebrow { font-size: var(--text-eyebrow); line-height: 1.6; }

/* Copy that previously dropped to caption sizes at narrower breakpoints. */
.hero-bottom > p,
.intro-statement > p:last-child,
.section-heading > p,
.service-story-intro > div > p,
.fresh-care > div > p:not(.eyebrow),
.memphis-band p:not(.eyebrow),
.memphis-grid p,
.fresh-faq details p,
.page-intro > p:not(.eyebrow),
.service-intro-grid p:not(.eyebrow),
.estimate-page > p:not(.eyebrow),
.pricing-lead,
.pricing-section-heading > p,
.pricing-scope-copy > p:not(.eyebrow),
.pricing-unlisted { font-size: var(--text-body); line-height: 1.75; }
.hero-bottom > p { max-width: 570px; }
.intro-statement > p:last-child { max-width: 560px; }
.fresh-faq summary { font-size: var(--text-body); line-height: 1.5; padding-block: 24px; }
.clean-steps strong { font-size: var(--text-body); line-height: 1.5; }
.clean-steps span { font-size: var(--text-secondary); line-height: 1.7; }
.clean-steps b { font-size: var(--text-caption); }
.fresh-cta > div > p:not(.eyebrow) { font-size: var(--text-secondary); line-height: 1.7; }

/* Links, controls and navigation remain compact, with readable labels. */
.button,
.hero-bottom .button,
.form-actions > .button,
.estimate-page > .button,
.scope-box.info-card .button,
.pricing-hero-actions .button,
.pricing-recurring-foot > .button,
.pricing-apartment .button,
.fresh-cta .button,
.cookie-banner .button { font-size: var(--text-control); line-height: 1.5; min-height: 44px; }
.line-link,
.journal-card .line-link,
.article-service-links a,
.pricing-hero-actions .line-link,
.pricing-section-heading > .line-link,
.pricing-service-links .line-link,
.pricing-scope-copy .line-link,
.service-intro-grid .service-pricing-link,
.form-actions > .text-button { font-size: var(--text-control); line-height: 1.6; }
.site-header .section-nav > a { font-size: .875rem; }
.site-header .header-cta { font-size: .8125rem; min-height: 40px; }
.site-header #main-navigation > a { font-size: 1.125rem; line-height: 1.5; }
.breadcrumbs { font-size: var(--text-small); line-height: 1.6; flex-wrap: wrap; }
.image-slide figcaption { font-size: var(--text-secondary); }
.image-slide figcaption > span:first-child,
.carousel-control,
.carousel-count { font-size: var(--text-caption); }
.fresh-footer p { font-size: var(--text-secondary); }
.fresh-footer > div > b,
.fresh-footer a:not(.brand),
.fresh-footer .text-button { font-size: var(--text-small); line-height: 1.7; }
.footer-location,
.footer-bottom,
.footer-bottom .text-button { font-size: var(--text-caption); line-height: 1.7; }

/* One scale for every service, journal and supporting card. */
.content-card .card-description,
.scope-box.info-card .panel-card-content > p:not(.eyebrow),
.scope-box.info-card li,
.article-sources li,
.pricing-card-copy,
.pricing-discount-card .pricing-card-copy,
.pricing-recurring-foot > p { font-size: var(--text-secondary); line-height: 1.7; }
.content-card .card-meta { font-size: var(--text-caption); gap: 8px; flex-wrap: wrap; }
.content-card .cover-category { font-size: var(--text-eyebrow); max-width: calc(100% - 68px); }
.content-card .card-link { font-size: var(--text-control); }
.pricing-card h3,
.pricing-factor-grid h3,
.pricing-apartment h2 { font-size: var(--card-title-size); }

/* The centered article column keeps natural left-aligned reading. */
.prose p,
.legal p { font-size: var(--text-reading); line-height: 1.8; }
.prose li { font-size: var(--text-secondary); line-height: 1.8; }
.prose h2 { font-size: 2.125rem; line-height: 1.25; }
.article-intro > p:not(.eyebrow) { font-size: 1.25rem; line-height: 1.75; }
.article-byline { font-size: var(--text-small); line-height: 1.6; flex-wrap: wrap; }
.prose .guide-takeaway p:last-child { font-size: 1.5rem; line-height: 1.55; }
.prose .guide-takeaway .eyebrow,
.guide-visual-label { font-size: var(--text-eyebrow); }
.prose .guide-visual h3 { font-size: 1.75rem; line-height: 1.3; }
.prose .guide-visual figcaption,
.prose .guide-scroll-note,
.rhythm-key,
.prose .rhythm-notes li { font-size: var(--text-small); line-height: 1.7; }
.guide-matrix th,
.guide-matrix td,
.guide-rhythm th,
.guide-rhythm td { font-size: var(--text-small); line-height: 1.65; }
.guide-matrix thead th,
.guide-rhythm thead th { font-size: var(--text-caption); }
.guide-sequence strong,
.guide-zone strong,
.guide-factor-center,
.guide-factors strong,
.decision-branches strong,
.prose .decision-start { font-size: var(--text-secondary); line-height: 1.6; }
.prose .guide-sequence p,
.prose .guide-timeline p,
.prose .guide-zone p,
.prose .guide-factors p,
.prose .decision-branches p { font-size: var(--text-small); line-height: 1.7; }
.guide-timeline strong { font-size: var(--text-secondary); }
.sequence-node,
.zone-coordinate,
.guide-factors > div > span { font-size: var(--text-caption); }
.guide-reading,
.toc-tree-shell > summary,
.toc-branch-index { font-size: .6875rem; }
.toc-branch > details > summary,
.guide-tree a,
.article-toc .toc-estimate { font-size: .75rem; line-height: 1.65; }
.guide-tree .toc-twigs a { font-size: .6875rem; line-height: 1.65; }

/* Service-story text scales with its available space rather than shrinking away. */
.service-story-chapter > .eyebrow,
.service-story.is-story-ready:not(.is-story-static) .service-story-chapter > .eyebrow { font-size: var(--text-eyebrow); line-height: 1.5; }
.service-story-chapter > p:not(.eyebrow),
.service-story.is-story-ready:not(.is-story-static) .service-story-chapter > p:not(.eyebrow) { font-size: var(--text-body); line-height: 1.7; }
.service-story-chapter ul,
.service-story.is-story-ready:not(.is-story-static) .service-story-chapter ul { font-size: var(--text-small); line-height: 1.6; }
.service-story-chapter > .line-link,
.service-story.is-story-ready:not(.is-story-static) .service-story-chapter > .line-link { font-size: var(--text-control); line-height: 1.6; }
.service-story-caption { font-size: var(--text-small); }
.service-story-caption > [data-story-count],
.service-story-jumps button,
.service-story.is-story-ready:not(.is-story-static) .service-story-jumps button { font-size: var(--text-caption); }

/* Form instructions and consent copy are reading content, too. */
.form-heading > p:last-child { font-size: var(--text-secondary); line-height: 1.7; }
dialog label,
label { font-size: var(--text-small); line-height: 1.6; }
input, select, textarea,
input::placeholder, textarea::placeholder { font-size: 1rem; }
.service-options b { font-size: var(--text-secondary); line-height: 1.4; }
.service-options small { font-size: var(--text-small); line-height: 1.5; }
.step-progress { font-size: var(--text-caption); }
.fine, dialog .fine,
.check,
.form-success .fine,
.estimate-page > .estimate-status,
.preview-notice,
.form-heading .preview-notice,
.pricing-fine,
.pricing-table-notes p,
.pricing-confirmation { font-size: var(--text-small); line-height: 1.7; }
.form-error,
.form-success p,
.cookie-banner p { font-size: var(--text-secondary); line-height: 1.7; }
.estimate-checks p { font-size: var(--text-secondary); }
.pricing-starting dt,
.pricing-starting dd > span,
.pricing-table thead th > span,
.pricing-cell-label { font-size: var(--text-small); }
.pricing-table thead th { font-size: var(--text-secondary); }
.pricing-table tbody td,
.pricing-cell-value { font-size: 1.125rem; }
.pricing-hero-photo figcaption,
.service-intro-grid figcaption { font-size: var(--text-caption); }
#voice-widget.assistant-chat-conversation > .fine,
#voice-dialog.is-chat-unavailable .assistant-chat-fallback { font-size: var(--text-small); }

@media (min-width: 1050px) and (max-width: 1250px) {
  .site-header { gap: 20px; }
  .site-header .header-right { gap: 20px; }
  .site-header .section-nav { gap: 18px; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .service-story.is-story-ready:not(.is-story-static) .service-story-chapter > p:not(.eyebrow) { font-size: 1rem; }
  .service-story.is-story-ready:not(.is-story-static) .service-story-chapter { padding-top: 24px; padding-bottom: 110px; }
}
@media (max-width: 760px) {
  :root {
    --text-body: 1rem;
    --text-reading: 1.0625rem;
    --text-secondary: .9375rem;
    --text-small: .8125rem;
    --card-title-size: 1.5rem;
  }
  .site-header .brand { gap: 8px; }
  .site-header .header-cta { font-size: .75rem; min-width: 0; padding: 9px 8px; white-space: nowrap; flex-shrink: 0; }
  .hero-bottom > p { max-width: 430px; }
  .prose h2 { font-size: 1.875rem; line-height: 1.3; }
  .article-intro > p:not(.eyebrow) { font-size: 1.125rem; }
  .prose .guide-takeaway p:last-child { font-size: 1.375rem; }
  .prose .guide-visual h3 { font-size: 1.5rem; }
  .service-story.is-story-ready:not(.is-story-static) .service-story-chapter > p:not(.eyebrow) { font-size: .9375rem; line-height: 1.6; }
  .service-story.is-story-ready:not(.is-story-static) .service-story-chapter li { padding-block: 4px; }
  .service-story.is-story-ready:not(.is-story-static) .service-story-chapter ul { margin-block: 12px 16px; }
  .service-story.is-story-ready:not(.is-story-static) .service-story-stage:after { background: linear-gradient(180deg,#ffffff02 0%,#ffffff12 10%,#ffffffd9 28%,#fffffff7 45%,#fff 70%); }
  .cookie-banner > div { flex-wrap: wrap; }
  .pricing-hero-photo figcaption { max-width: calc(100% - 28px); }
}
@media (max-width: 380px) {
  .site-header { gap: 6px; }
  .site-header .header-right { gap: 6px; }
  .service-options { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 480px) {
  #estimate-form fieldset[data-step="2"] .field-grid { grid-template-columns: minmax(0,1fr); }
}
