/* Landing page: Community Impact Program terms and electronic sign-on. */
.terms-hero { padding: 72px 0 56px; background: linear-gradient(115deg, #fff 48%, #edf5ff 100%); border-bottom: 1px solid var(--route-border); }
.terms-hero h1 { max-width: 860px; margin-bottom: 24px; }
.terms-hero h1 span { color: var(--route-blue-dark); }
.terms-hero .lead { max-width: 760px; }
.terms-meta { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 28px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--route-muted); }
.terms-meta strong { color: var(--route-ink); }
.terms-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 44px; }
.terms-summary article { padding: 22px; border: 1px solid var(--route-border); border-radius: 14px; background: #fff; }
.terms-summary h2 { margin: 0 0 8px; font-size: 16px; letter-spacing: -.01em; line-height: 1.3; }
.terms-summary p { margin: 0; font-size: 14px; line-height: 1.6; }
.terms-summary-note { margin: 18px 0 0; font-size: 13px; }

.terms-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 72px; align-items: start; }
.terms-toc { position: sticky; top: 110px; max-height: calc(100vh - 130px); overflow-y: auto; padding-right: 8px; }
.terms-toc p { margin-bottom: 14px; color: var(--route-ink); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.terms-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.terms-toc li { counter-increment: toc; }
.terms-toc a { display: flex; gap: 10px; padding: 6px 0; color: var(--route-muted); font-size: 14px; line-height: 1.45; }
.terms-toc a::before { content: counter(toc, decimal-leading-zero); flex-shrink: 0; color: var(--route-blue-dark); font-size: 11px; font-weight: 800; line-height: 2; }
.terms-toc a:hover { color: var(--route-ink); }

.terms-body { max-width: 780px; counter-reset: term; }
.terms-body section { counter-increment: term; padding: 0 0 36px; margin: 0 0 36px; border-bottom: 1px solid var(--route-border); scroll-margin-top: 110px; }
.terms-body section:last-child { border-bottom: 0; margin-bottom: 0; }
.terms-body h2 { display: flex; gap: 14px; align-items: baseline; margin-bottom: 18px; font-size: 26px; letter-spacing: -.03em; line-height: 1.25; }
.terms-body h2::before { content: counter(term) "."; color: var(--route-blue-dark); }
.terms-body p, .terms-body li { color: #3c5069; font-size: 16px; line-height: 1.75; }
.terms-body p { margin-bottom: 16px; }
.terms-body ul, .terms-body ol { margin: 0 0 16px; padding-left: 22px; }
.terms-body li { margin-bottom: 8px; }
.terms-body strong { color: var(--route-ink); }
.terms-body dl { margin: 0 0 16px; }
.terms-body dt { margin-top: 14px; color: var(--route-ink); font-weight: 750; }
.terms-body dd { margin: 4px 0 0; color: #3c5069; line-height: 1.7; }

.sign-section .contact-grid { align-items: start; }
.sign-steps { margin: 28px 0 0; padding-left: 20px; color: #c4d3e5; }
.sign-steps li { margin-bottom: 10px; }
.contact-form .field select { display: block; width: 100%; min-width: 0; border: 1px solid #a8b9cd; border-radius: 6px; padding: 11px; background: #fff; color: var(--route-ink); font: inherit; }
.signature-input { font-family: "Brush Script MT", "Segoe Script", "Snell Roundhand", cursive; font-size: 24px !important; }
.consents { display: grid; gap: 12px; margin: 0 0 22px; padding: 0; border: 0; min-width: 0; }
.consents legend { margin-bottom: 10px; font-size: 14px; font-weight: 750; }
.consent { display: flex; align-items: flex-start; gap: 11px; padding: 12px; border: 1px solid var(--route-border); border-radius: 6px; font-size: 13px; line-height: 1.55; color: var(--route-ink); cursor: pointer; }
.consent:has(input:checked) { border-color: var(--route-blue); background: var(--route-mist); }
.consent input { width: 17px; height: 17px; flex-shrink: 0; margin: 2px 0 0; accent-color: var(--route-blue-dark); }

@media (max-width: 1000px) {
  .terms-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .terms-layout { grid-template-columns: 1fr; gap: 40px; }
  .terms-toc { position: static; max-height: none; padding: 24px; border: 1px solid var(--route-border); border-radius: 14px; background: #f7f9fc; }
  .terms-toc ol { columns: 2; column-gap: 28px; }
}

@media (max-width: 760px) {
  .terms-hero { padding: 46px 0 40px; }
  .terms-summary { grid-template-columns: 1fr; }
  .terms-toc ol { columns: 1; }
  .terms-body h2 { font-size: 22px; }
}

@media print {
  .local-bar, .campaign-header, .terms-toc, .sign-section, footer { display: none; }
  .terms-layout { display: block; }
  .terms-body { max-width: none; }
  .terms-body section { break-inside: avoid-page; }
}
