/* Shared visual system for the V32 visual-audit candidate. */
:root {
  --content-width: 720px;
  --page-width: 1120px;
  --card-padding: 24px;
  --card-gap: 24px;
  --audit-paper: #fbfbf9;
  --audit-white: #fff;
  --audit-ink: #26374f;
  --audit-navy: #10264a;
  --audit-red: #b62237;
  --audit-muted: #53647a;
  --audit-line: #d6dee8;
}

html { scroll-behavior: smooth; }
body { color: var(--audit-ink); font-size: 16px; line-height: 1.6; }

/* One measure for the header, body, hero text and footer. */
.mast .wrap,
.hero--home .wrap,
.hero:not(.hero--home) .wrap,
main.wrap,
.foot .wrap {
  width: min(var(--page-width), calc(100% - 36px));
  max-width: var(--page-width);
  margin-inline: auto;
}
.page-about_us .content,
.page-contact_us .content-contact_us,
.page-request_proposal .content,
.page-projects_for_development .content,
.page-sitemap .content { width: min(100%, var(--content-width)); max-width: var(--content-width); margin-left: 0; }
.content-home { width: 100%; max-width: 100%; }

/* Interior pages share one compact navy hero treatment. */
.hero:not(.hero--home) {
  display: flex;
  align-items: center;
  min-height: clamp(248px, 24vw, 300px);
  padding: 2.25rem 0;
  border: 0;
  border-top: 4px solid var(--audit-red);
  background: var(--audit-navy) !important;
  color: #fff !important;
}
.hero:not(.hero--home) .hero-art { opacity: .16; mix-blend-mode: screen; }
.hero:not(.hero--home) h1 {
  max-width: 22ch;
  margin: .35rem 0 .65rem;
  color: #fff !important;
  font: 600 clamp(2.25rem, 5vw, 3rem)/1.12 Georgia, "Times New Roman", serif;
  letter-spacing: -.025em;
}
.hero:not(.hero--home) .kicker,
.hero:not(.hero--home) .eyebrow { color: #f1a2af !important; }
.hero:not(.hero--home) .hero-deck {
  max-width: 64ch;
  margin: 0;
  color: #e5e9ef !important;
  font-size: 1rem;
  line-height: 1.6;
}

/* Readable body type and a consistent heading hierarchy. */
main .content,
main .story-copy,
main .chapter-body,
main .person-feature-copy,
main .people-secondary-copy { font-size: 1rem; line-height: 1.65; }
main .content > p,
main .content > ul,
main .content > h2,
main .content .about-copy,
main .content .sitemap-intro { max-width: 72ch; }
main h2,
main .content h2,
main .section-heading h2,
main .chapter-body h2,
main .profile-connection h2,
main .people-contact h2,
main .cards h3 {
  color: var(--audit-navy);
  font-family: Georgia, "Times New Roman", serif;
}
main .content h2,
main .story-main h2 { line-height: 1.25; }
.eyebrow,
.kicker,
.role,
.chapter-label,
.chapter-mark,
.card-index { font-family: Arial, Helvetica, sans-serif; }

/* One button and one text-link treatment, including profile cross-links. */
a.button,
.hero-actions .button,
.hero--home .button,
.home-endcap .button-light,
.profile-connection .textlink,
.story-index .story-index-cta {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  padding: .65rem 1rem;
  border: 1px solid var(--audit-red) !important;
  border-radius: 2px !important;
  background: var(--audit-red) !important;
  color: #fff !important;
  font: 700 .9375rem/1.25 Arial, Helvetica, sans-serif !important;
  text-decoration: none !important;
  white-space: normal;
}
a.button:hover,
.hero-actions .button:hover,
.hero--home .button:hover,
.home-endcap .button-light:hover,
.profile-connection .textlink:hover,
.story-index .story-index-cta:hover { background: #8d1b2c !important; }
a.button:focus-visible,
.hero-actions .button:focus-visible,
.hero--home .button:focus-visible,
.home-endcap .button-light:focus-visible,
.profile-connection .textlink:focus-visible,
.story-index .story-index-cta:focus-visible {
  outline: 3px solid #f1a2af;
  outline-offset: 3px;
}
main .content a:not(.button),
main .textlink,
main .back-to-people a,
main .story-index a:not(.story-index-cta),
.hero--home .hero-link {
  color: var(--audit-navy) !important;
  font: 600 .875rem/1.45 Arial, Helvetica, sans-serif;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}
.hero--home .hero-link { color: #f1c9cf !important; }
.foot a { font-size: .875rem; }

/* Reusable flat card chrome; nested panels no longer read as a second card. */
main .feature,
main .cards article,
main .person-feature,
main .people-secondary,
main .profile-connection,
main .contact-feature,
main .contact,
main .content-sitemap > section,
main .home-decision,
main .experience-card,
main .study-stop,
main .research-points article,
main .scale-node {
  border: 1px solid var(--audit-line) !important;
  border-radius: 2px !important;
  background: var(--audit-white) !important;
  box-shadow: none !important;
}
main .feature,
main .cards article,
main .person-feature,
main .people-secondary,
main .profile-connection,
main .contact-feature,
main .contact,
main .content-sitemap > section,
main .home-decision,
main .experience-card,
main .study-stop,
main .research-points article,
main .scale-node { padding: var(--card-padding) !important; }
main .decision-panel {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--audit-ink) !important;
}
main .decision-panel h3,
main .decision-panel li,
main .decision-panel a { color: var(--audit-navy) !important; }

/* People profiles form equal cards and use the same cross-profile component. */
.people-index {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--card-gap);
  align-items: stretch;
  width: min(100%, var(--page-width));
  max-width: var(--page-width);
  margin-left: 0;
}
.people-index > .crumb,
.people-index > .people-contact { grid-column: 1 / -1; }
.person-feature,
.people-secondary { display: block; min-width: 0; height: 100%; }
.people-secondary-heading { display: flex; justify-content: space-between; align-items: center; }
.person-feature-mark,
.people-secondary-mark { display: none !important; }
.person-feature-copy,
.people-secondary-copy { max-width: none !important; }
.person-feature h2,
.people-secondary h2 { font-size: 1.5rem !important; }
.profile-connection { margin: 1.5rem 0; }
.profile-connection .textlink { text-decoration: none !important; }
.people-story .crumb { border-color: var(--audit-line); }
main.story-main .story-layout { width: min(100%, var(--content-width)); max-width: var(--content-width); margin-left: 0; }

/* Homepage people area and supporting image align to the same measure. */
.people-band {
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin: 0 !important;
  padding: var(--card-padding) 0 !important;
  border-top: 1px solid var(--audit-line);
  border-bottom: 1px solid var(--audit-line);
  background: transparent !important;
  color: var(--audit-ink) !important;
}
.people-band h2,
.people-band .section-heading h2,
.people-band .cards h3 { color: var(--audit-navy) !important; }
.people-band .eyebrow,
.people-band .cards .role { color: #8d1b2c !important; }
.people-band .cards { gap: var(--card-gap); }
.people-band .cards article { padding: var(--card-padding) !important; }
.people-band .cards p { color: #34445a !important; }
.people-band .cards a { color: var(--audit-navy) !important; }
.home-method { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: var(--card-gap); }
.home-method .method-image { width: 100%; max-width: 100%; margin: 0; box-shadow: none !important; }
.home-endcap { background: var(--audit-navy) !important; }

/* A single sitemap list rhythm, with no alternating feature blocks. */
.content-sitemap .sitemap-intro { padding: 0; background: transparent !important; }
.content-sitemap > section,
.content-sitemap > section.feature {
  margin: 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--audit-line) !important;
  background: transparent !important;
  padding: 1rem 0 !important;
}
.content-sitemap > section h2 { margin: 0 0 .4rem; font-size: 1.4rem; }
.content-sitemap .sitemap { margin: .4rem 0 0; padding-left: 1.15rem; }
.content-sitemap .sitemap li { padding: .25rem 0; }
.content-sitemap .sitemap ul { margin-top: .25rem; }

/* Contact card spans the common content width. */
.page-contact_us .content-contact_us { width: min(100%, var(--content-width)); max-width: var(--content-width); }
.page-contact_us .contact-feature { width: 100%; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--card-gap); }
.page-contact_us .contact-details { min-width: 0; }

@media (max-width: 620px) {
  :root { --card-padding: 20px; --card-gap: 16px; }
  .hero:not(.hero--home) { min-height: 260px; padding: 1.75rem 0; }
  .people-index { grid-template-columns: 1fr; }
  .people-index > .crumb,
  .people-index > .people-contact { grid-column: 1; }
  .page-contact_us .contact-feature { grid-template-columns: 1fr; }
  .home-method { display: flex; flex-direction: column; gap: 1.25rem; }
}

@media (prefers-color-scheme: dark) {
  body { color: #e5e9ef; }
  main .feature,
  main .cards article,
  main .person-feature,
  main .people-secondary,
  main .profile-connection,
  main .contact-feature,
  main .contact,
  main .content-sitemap > section,
  main .home-decision,
  main .experience-card,
  main .study-stop,
  main .research-points article,
  main .scale-node { background: #17263b !important; border-color: #45536a !important; }
  main h2,
  main .content h2,
  main .section-heading h2,
  main .chapter-body h2,
  main .profile-connection h2,
  main .people-contact h2,
  main .cards h3 { color: #f2f4f6 !important; }
  .people-band h2,
  .people-band .section-heading h2,
  .people-band .cards h3,
  main .decision-panel h3,
  main .decision-panel li { color: #f2f4f6 !important; }
  main .content p,
  .people-band .cards p { color: #d0d8e2 !important; }
  main .content a:not(.button),
  main .textlink,
  main .back-to-people a,
  .people-band .cards a,
  main .decision-panel a { color: #f1a2af !important; }
  .people-band { border-color: #45536a; }
  .people-band .cards .role,
  .people-band .eyebrow { color: #f1a2af !important; }
  .people-band .cards a { color: #f1a2af !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Keep both People cards on the same high-contrast light surface in every OS theme. */
main.people-index > .person-feature,
main.people-index > .people-secondary {
  background: #fff !important;
  color: var(--audit-ink) !important;
}
main.people-index > .person-feature h2,
main.people-index > .people-secondary h2 { color: var(--audit-navy) !important; }
main.people-index > .person-feature p:not(.eyebrow),
main.people-index > .people-secondary p:not(.eyebrow) { color: #34445a !important; }
main.people-index > .person-feature .eyebrow,
main.people-index > .people-secondary .eyebrow { color: #8d1b2c !important; }
main.people-index .mini-chapters { display: flex !important; }

/* Profile stories keep their authored light canvas in dark OS mode. */
@media (prefers-color-scheme: dark) {
  body.people-story main.story-main { background: #fff !important; color: #18253a !important; }
  body.people-story main.story-main p:not(.eyebrow) { color: #34445a !important; }
  body.people-story main.story-main h2 { color: #10264a !important; }
  body.people-story main.story-main .eyebrow { color: #8d1b2c !important; }
  body.people-story main.story-main .story-index { background: #f4f6f8 !important; }
  body.people-story main.story-main .story-index a:not(.story-index-cta) { color: #53647a !important; }
  body.people-story main.story-main .story-index a span { color: #10264a !important; }
}

@media (max-width: 620px) {
  main.story-main { width: min(var(--page-width), calc(100% - 36px)); margin-inline: auto; }
  main.story-main .story-layout { width: 100%; }
}
