/* CRAP: strong contrast, repeated components, shared alignment and grouped content. */
.home-page { --home-ink: #142e50; --home-blue: #173b74; --home-muted: #43556c; color: var(--home-ink); }
.home-shell { width: min(1120px, calc(100% - 3rem)); margin-inline: auto; }
.home-page .navbar { background: var(--home-blue); box-shadow: none; }
.home-page .navbar-inner { max-width: 1120px; }
.home-page .search-input { background: #244d87; }
.home-page h1, .home-page h2, .home-page h3 { color: var(--home-ink); }
.home-page h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.15; letter-spacing: -.035em; }
.home-page p { margin: 0; }
.home-eyebrow { color: var(--home-blue); font-size: .75rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.home-hero { background: #edf3fa; border-bottom: 1px solid #d8e3f0; }
.home-hero-grid { display: grid; grid-template-columns: 1.45fr 1fr; align-items: center; gap: 4rem; padding-block: 5.5rem; }
.home-hero h1 { font-size: clamp(2.8rem, 5.2vw, 4.6rem); letter-spacing: -.055em; line-height: 1.04; margin-block: 1rem 1.5rem; }
.home-hero h1 span { color: #2559a2; }
.home-lead { color: var(--home-muted); max-width: 36rem; font-size: 1.125rem; line-height: 1.75; }
.home-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.home-button { display: inline-flex; align-items: center; justify-content: center; gap: .75rem; min-height: 48px; padding: .85rem 1.2rem; border: 1px solid transparent; border-radius: 6px; font-weight: 700; font-size: .9rem; line-height: 1.4; text-decoration: none; }
.home-button-primary { color: #fff; background: var(--home-blue); }
.home-button-primary:hover { background: #102b56; color: #fff; text-decoration: none; }
.home-button-secondary { border-color: #8b9fb9; color: var(--home-blue); background: #fff; }
.home-button-secondary:hover { color: var(--home-blue); background: #e0eaf7; text-decoration: none; }
.home-icon { width: 24px; height: 24px; flex-shrink: 0; }
.home-button .home-icon { width: 18px; height: 18px; }
.home-identity { padding: 2.5rem 2rem; background: #fff; border: 1px solid #d2deee; border-radius: 10px; box-shadow: 10px 10px 0 #dce7f5; }
.home-identity img { width: 100%; height: auto; }
.home-identity p { border-top: 1px solid #dae3ed; margin-top: 1.75rem; padding-top: 1.5rem; color: var(--home-muted); font-size: .95rem; line-height: 1.7; }
.home-identity strong { color: var(--home-ink); }
.home-intro { display: grid; grid-template-columns: 1fr 1.4fr; gap: 5rem; padding-block: 4.5rem; }
.home-intro h2 { margin-top: .9rem; max-width: 24rem; }
.home-body-copy { color: var(--home-muted); font-size: 1rem; line-height: 1.8; }
.home-body-copy p + p { margin-top: 1rem; }
.home-resources { padding-block: 4.5rem; background: #f6f8fb; border-block: 1px solid #e1e7ef; }
.home-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.home-section-heading h2 { margin-top: .8rem; }
.home-section-heading > p { max-width: 18rem; color: var(--home-muted); font-size: .95rem; line-height: 1.7; }
.home-resource-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.home-resource { display: flex; flex-direction: column; align-items: start; padding: 1.75rem; background: #fff; border: 1px solid #cbd6e4; border-radius: 8px; color: var(--home-ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
.home-resource:hover { color: var(--home-ink); text-decoration: none; border-color: #325f9e; box-shadow: 0 5px 16px #142e5010; }
.home-icon-tile { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin-bottom: 1.5rem; color: #214f90; background: #eaf1fb; border-radius: 8px; }
.home-resource h3 { font-size: 1.15rem; line-height: 1.35; margin-bottom: .6rem; }
.home-resource p { font-size: .95rem; line-height: 1.7; color: var(--home-muted); }
.home-card-arrow { margin-top: auto; padding-top: 1.5rem; color: #2559a2; }
.home-archive { display: grid; grid-template-columns: 1.4fr 1fr; align-items: center; gap: 5rem; padding-block: 4.5rem; }
.home-archive-icon { display: inline-flex; color: #2559a2; margin-bottom: 1.25rem; }
.home-archive-icon .home-icon { width: 36px; height: 36px; }
.home-archive h2 { margin-block: .8rem 1rem; }
.home-archive-copy > p:not(.home-eyebrow) { color: var(--home-muted); line-height: 1.8; }
.home-archive .home-button { margin-top: 1.5rem; }
.home-archive-links { border-top: 1px solid #cbd6e4; }
.home-archive-links a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-block: 1.4rem; border-bottom: 1px solid #cbd6e4; color: var(--home-blue); font-weight: 700; font-size: .95rem; }
.home-archive-links .home-icon { width: 18px; height: 18px; }
.home-footer { background: #edf3fa; border-top: 1px solid #d8e3f0; }
.home-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 2rem; font-size: .8rem; line-height: 1.8; color: var(--home-muted); }
.home-footer strong { color: var(--home-ink); }
.home-footer a { display: inline-flex; align-items: center; gap: .5rem; color: var(--home-blue); min-height: 44px; font-weight: 700; }
.home-footer .home-icon { width: 16px; height: 16px; }
@media (max-width: 900px) {
  .home-hero-grid { gap: 2rem; }
  .home-resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-intro, .home-archive { gap: 2.5rem; }
  .home-section-heading { display: block; }
  .home-section-heading > p { max-width: 36rem; margin-top: 1rem; }
  .home-footer-inner { flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .home-shell { width: calc(100% - 2.5rem); }
  .home-hero-grid { grid-template-columns: 1fr; padding-block: 3rem; }
  .home-identity { display: flex; align-items: center; gap: 1.25rem; padding: 1.25rem; box-shadow: 5px 5px 0 #dce7f5; }
  .home-identity img { width: 40%; }
  .home-identity p { border: 0; margin: 0; padding: 0; font-size: .8rem; }
  .home-intro, .home-archive { grid-template-columns: 1fr; padding-block: 3rem; gap: 1.75rem; }
  .home-resources { padding-block: 3rem; }
  .home-resource-grid { grid-template-columns: 1fr; }
  .home-resource { padding: 1.5rem; }
  .home-icon-tile { margin-bottom: 1rem; }
  .home-card-arrow { padding-top: 1rem; }
  .home-footer-inner { display: grid; gap: 1rem; }
}

@media (max-width: 360px) { .home-hero h1 { font-size: 2.5rem; } }
