/* Shared reading contract. Loaded last because recovered route styles contain
   page-specific font sizes. body-copy marks prose, never headings or lockups. */
:root {
  --text-body: 1.125rem;
  --text-support: 1rem;
  --reading-leading: 1.6;
}
body { font-family: 'DM Sans', Arial, sans-serif; }
p.body-copy {
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: var(--text-body) !important;
  line-height: var(--reading-leading) !important;
  max-inline-size: 65ch;
  overflow-wrap: break-word;
}
/* Compact explanatory copy remains readable without competing with headings. */
:is(.cv-coffee-step, .cv-rule-grid, .cv-kit-row, .cv-audience-list,
    .timeline, .impact-grid, .logo-points, .card, .experience,
    .faith-doors, .field-stat, .carousel-message-card, footer) p.body-copy,
p.body-copy:is(.form-note, .free-note, .copyright) {
  font-size: var(--text-support) !important;
}
:is(.not-list, .cv-agenda-list, .activity-body ul, .activity-body ol) li {
  font-size: var(--text-body);
  line-height: var(--reading-leading);
}
:is(.contact-form, .lead-form, .prayer-form, .dark-form) label,
:is(.contact-form, .lead-form, .prayer-form, .dark-form) input,
:is(.contact-form, .lead-form, .prayer-form, .dark-form) textarea,
:is(.contact-form, .lead-form, .prayer-form, .dark-form) select {
  font-family: 'DM Sans', Arial, sans-serif;
  font-size: var(--text-support);
  line-height: 1.5;
}
/* Text can grow at browser zoom and custom text spacing without fixed boxes. */
.carousel-track .carousel-message-card {
  height: auto;
  min-height: clamp(250px, 25vw, 340px);
  overflow: visible;
}
.cv-bike-end { height: auto; min-height: 460px; }
.cv-coffee-step, .cv-rule-grid article, .cv-kit-row > div,
.cv-proposal > div, .cv-process-heading > *, .cv-cta > * { min-width: 0; }
.cv-button { white-space: normal; text-align: center; min-height: 44px; }
@media (max-width: 1100px) and (min-width: 751px) {
  .cv-coffee-grid { column-gap: 20px; grid-template-columns: 1fr .7fr 1fr; }
  .cv-rule-grid { gap: 12px; }
  .cv-rule-grid article { padding: 20px; }
  .canva-mountain .timeline { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 500px) {
  .cv-coffee-grid { grid-template-columns: 1fr; gap: 24px; }
  .cv-cup { grid-area: auto; max-width: 220px; }
  .cv-bike-end { min-height: 350px; }
}

/* Wide comparison data keeps its columns and can be scrolled by keyboard. */
.table-wrap { max-width: 100%; overflow-x: auto; }
.table-wrap:focus-visible { outline: 3px solid #996000; outline-offset: 5px; }
.table-wrap :is(th, td) { font-size: 1rem; line-height: 1.6; }
.check-list li { font-size: var(--text-body); line-height: var(--reading-leading); }

.table-scroll-hint { display: none; }
@media (max-width: 850px) {
  .table-scroll-hint { display: block; font-size: 1rem !important; }
}

/* Content-led grid reflow: long words cannot enlarge their tracks. */
.home-doors, .faith-practice { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-doors > *, .faith-practice > * { min-width: 0; }
.home-doors .door, .faith-practice article { padding-inline: clamp(24px, 3vw, 52px); }
.home-doors h2, .faith-practice span { overflow-wrap: break-word; }
footer div > a { font-size: 1rem; line-height: 1.5; min-height: 24px; }
@media (max-width: 1000px) {
  .home-doors, .faith-practice { grid-template-columns: 1fr; }
  .home-doors .door, .faith-practice article { padding-inline: 7vw; }
}
.field-stat.red strong { font-size: var(--text-support); line-height: var(--reading-leading); }
.field-icon-card p.body-copy { font-size: var(--text-support) !important; }
