/* Readability-first type system for older adults. Display typography and
   approved logo artwork are intentionally preserved. */
:root {
  --text-xs: 1rem;
  --text-sm: 1.125rem;
  --text-base: 1.25rem;
  --text-lg: 1.5rem;
  --text-nav: 1.125rem;
}
body { line-height: 1.7; }
.header { height: auto; min-height: 156px; padding-block: var(--space-3); flex-wrap: wrap; }
.header .nav { flex-wrap: wrap; }
.header-actions { flex-shrink: 0; }
p, li, dd { overflow-wrap: break-word; }
.eyebrow { letter-spacing: .1em; line-height: 1.6; }
.hero .eyebrow { letter-spacing: .12em; }
.hero { max-height: none; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.hero-description { max-width: 28ch; }
.hero-signoff p { font-size: var(--text-xs); line-height: 1.7; }
.hero-buttons { row-gap: var(--space-5); }
.button { min-height: 60px; line-height: 1.5; }
.button > span { flex-shrink: 0; }
.text-link, .source-link, .header .nav a, .footer .footer-site-links a {
  min-height: 48px;
  line-height: 1.6;
}
.source-link { font-size: var(--text-sm); }
.topline { gap: var(--space-6); line-height: 1.5; }
.topline a { flex-shrink: 0; }
.trust-strip a { min-width: 0; }
.trust-strip span { line-height: 1.6; }
.image-label { line-height: 1.6; max-width: 95%; }
.photo-kicker { letter-spacing: .1em; }
.photo-note { bottom: var(--space-16); }
.hero-photo figcaption { max-width: calc(100% - var(--space-12)); line-height: 1.5; }
.section-heading p:last-child, .gallery-side p { font-size: var(--text-base); }
.story-copy p:not(.eyebrow), .service-lede, .policy-copy p, .policy-copy li {
  line-height: 1.75;
}
.policy-copy { max-width: 65ch; }
.service-nav a, .policy-layout nav a { line-height: 1.65; }
.service-content aside { position: static; }
.footer p, .footer .footer-site-links a { font-size: var(--text-sm); }
.footer-bottom { line-height: 1.7; flex-wrap: wrap; }
.footer .footer-license {
  font-size: var(--text-sm);
  line-height: 1.7;
  color: var(--ivory);
  margin-bottom: var(--space-6);
}
.form-field label { line-height: 1.6; margin-bottom: var(--space-3); }
.form-field input, .form-field select, .form-field textarea {
  min-height: 60px;
  line-height: 1.6;
}
.form-grid { row-gap: var(--space-8); }
.form-consent { gap: var(--space-4); }
.form-consent input { width: 24px; height: 24px; flex-basis: 24px; }
.form-consent label { line-height: 1.7; }
.field-foot { flex-wrap: wrap; gap: var(--space-2) var(--space-4); }
.care-form legend { line-height: 1.5; }
.form-status textarea { font-size: var(--text-sm); }
.gallery-controls { flex-wrap: wrap; }
.gallery-controls button { font-size: var(--text-lg); }
dialog:not(#gallery-dialog) { width: min(640px,calc(100% - 32px)); }
dialog .dialog-note { font-size: var(--text-xs); line-height: 1.7; }
dialog a { overflow-wrap: anywhere; }
.care-list summary, .faq-list summary { font-size: var(--text-base); line-height: 1.55; }
.service-num { min-width: 30px; }
.form-introduction, .care-form, .service-article, .policy-copy { min-width: 0; }
@media (max-width: 1250px) {
  .header-tour { display: none; }
}
@media (max-width: 1100px) {
  .form-section { grid-template-columns: .7fr 1.3fr; }
  .form-grid { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  :root { --text-base: 1.1875rem; }
  .header { min-height: 132px; padding-block: var(--space-2); }
  .nav.open { top: 100%; }
  .hero { grid-template-columns: minmax(0,1fr); }
  .hero-description { max-width: 40ch; }
  .form-section { grid-template-columns: 1fr; }
  .service-content .service-article { order: 1; }
  .service-content aside { order: 2; }
  .service-cta .button, .hero-buttons .button { max-width: 100%; }
  .gallery-toolbar { align-items: stretch; }
  .gallery-filters { gap: var(--space-3); }
}
@media (max-width: 480px) {
  .section-wrap { padding-block: var(--space-16); }
  .services-hero { padding-top: var(--space-5); }
  .hero .eyebrow { letter-spacing: .08em; }
  .button { padding-inline: var(--space-4); gap: var(--space-4); }
  .button > span { padding-left: var(--space-3); }
  .hero-buttons .button { gap: var(--space-3); }
  .care-list summary { font-size: var(--text-base); }
  .detail-body { padding-left: 0; padding-right: 0; }
  .photo-note { bottom: var(--space-16); }
  .photo-kicker { letter-spacing: .06em; }
  .footer .footer-site-links { column-gap: var(--space-5); row-gap: var(--space-2); }
  .footer .footer-site-links a { align-items: flex-start; padding-block: var(--space-2); }
  .care-form { padding: var(--space-4); }
  .form-actions .button { align-items: center; }
  .form-actions .button > span { padding-left: var(--space-2); }
  dialog:not(#gallery-dialog) { padding: var(--space-10) var(--space-5) var(--space-6); }
  .gallery-filters button { padding-inline: var(--space-2); line-height: 1.5; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
@media (max-width: 350px) {
  .header { padding-inline: var(--space-2); }
  .header-actions { gap: 0; }
  .menu-toggle { padding-inline: 0; }
}
