/* Alternating white and light-green chapters. */
:root {
  --paper: #ffffff;
  --leaf-paper: #eaf4df;
  --ink: #243c2d;
  --muted: #536650;
  --line: #cdddc4;
  --accent: #436d30;
  --accent-hover: #345723;
  --lime: #dceebc;
}
body, .header-shell, .dark-top, #expertise, #problems, #contact, .footer {
  background: var(--paper);
  color: var(--ink);
}
#results, #about, #formats {
  background: var(--leaf-paper);
  color: var(--ink);
}
.header, .metrics, .metrics > div { border-color: var(--line); }
nav, .hero-description, .metrics span, .portrait-block figcaption { color: var(--muted); }
.header-contact span, h1 span, .expertise-intro h2 em,
.contact-section h2 em, .quote-mark { color: var(--accent); }
.short-line { background: var(--accent); }
nav a:hover, .text-link:hover, .email-link:hover { color: var(--accent-hover); }
.monogram { color: var(--ink); background: var(--lime); }
.header #section-nav { gap: 4px; font-size: 16px; padding: 4px; background: #f3f7ee; border: 1px solid var(--line); border-radius: 8px; }
.header nav a { white-space: nowrap; padding: 9px 11px; min-height: 42px; border-radius: 5px; font-weight: 600; color: var(--ink); transition: background-color .15s, color .15s; }
.header nav a:hover { color: var(--accent-hover); background: #e3efd8; }
.header nav a[aria-current="location"] { color: #ffffff; background: var(--accent); }
@media (min-width: 1000px) and (max-width: 1190px) {
  .header #section-nav { gap: 2px; font-size: 15px; }
  .header nav a { padding-inline: 8px; }
}
.nav-toggle { display: none; }
@media (max-width: 999px) {
  .header .header-contact { display: none; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 14px; color: var(--ink); background: var(--leaf-paper); border: 1px solid var(--line); border-radius: 4px; font-size: 14px; }
  .header #section-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 12px 24px; background: #ffffff; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: 0 10px 18px rgba(67,109,48,.08); gap: 4px; font-size: 17px; }
  .header #section-nav[data-open="true"] { display: flex; flex-direction: column; }
  .header nav a { display: block; min-height: 44px; padding: 10px 8px; border-radius: 4px; }
  .header nav a:hover { background: var(--leaf-paper); }
}
.text-link, .email-link { border-color: #97b486; }
.primary { background: var(--accent); color: #ffffff; }
.primary:hover { background: var(--accent-hover); }
.portrait-frame { background: var(--leaf-paper); }
.portrait-frame img { filter: none; }
.portrait-caption { color: var(--ink); background: linear-gradient(transparent, rgba(255,255,255,.98) 65%); }
.portrait-caption small, .photo-index { color: var(--muted); }
.case, .case.featured { background: #ffffff; border-color: #c4d7b9; }
.case.featured { border-top: 3px solid #719956; padding-top: 20px; }
.case-metric, .case-context strong { color: var(--accent); }
.case-label > span:last-child, .case > p, .case-detail { color: var(--muted); }
.bar-pair i { background: #b5cf9b; }
.bar-pair > div:last-child i { background: var(--accent); }
details, .expertise-list article, .education, .timeline-footer,
.advisory article { border-color: var(--line); }
.expertise-list p, .tagline, .row-number, .advisory > .card-kicker,
.advisory article > span { color: var(--muted); }
.role-card { background: var(--leaf-paper); color: var(--ink); border: 1px solid var(--line); }
.role-card .card-kicker, .role-card li::before { color: var(--accent); }
.role-card > p:not(.card-kicker) { color: var(--muted); }
.role-card .role-location { border-color: #c6d8b9; }
.contact-section .kicker, .contact-lead, .contact-links,
.recommendations, .contact-box > .card-kicker, #topic-description,
.contact-hint { color: var(--muted); }
.contact-box { background: #ffffff; border-color: #c4d7b9; }
.topic-options { background: #f0f6e9; }
.topic-options button { color: var(--muted); }
.topic-options button[aria-pressed=true] { background: #dceebc; color: var(--ink); }
.secondary { background: #ffffff; color: var(--accent); border-color: #8eac7b; }
.secondary:hover { background: #edf5e5; }
.copy-email { color: var(--accent); border-color: #97b486; }
.copy-status { color: var(--accent); }
.footer > .wrap { border-color: var(--line); }
.footer, .footer a { color: var(--muted); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline-color: var(--accent); }
#detail-dialog {
  width: min(560px, calc(100% - 32px));
  max-height: calc(100svh - 48px);
  padding: 28px;
  border: 1px solid #b8cea9;
  border-radius: 8px;
  background: #ffffff;
  color: var(--ink);
  box-shadow: 0 16px 64px rgba(67, 109, 48, .18);
}
#detail-dialog::backdrop { background: rgba(87, 119, 65, .2); backdrop-filter: blur(3px); }
.dialog-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 20px; }
.dialog-heading > span { font-size: 12px; letter-spacing: 1px; color: var(--muted); }
#close-detail { border: 0; border-radius: 4px; width: 40px; height: 40px; background: var(--leaf-paper); color: var(--ink); font-size: 28px; }
#detail-dialog h2 { font-size: 28px; }
#detail-dialog-content { margin-top: 20px; }
#detail-dialog-content .case-detail, #detail-dialog-content .career-description { margin: 0; padding: 0; font-size: 16px; line-height: 1.65; }
.career-period + .career-period { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.career-period h3 { font-size: 19px; color: var(--ink); }
.career-period-date { font-size: 13px; color: var(--muted); margin: 5px 0 12px; }
.career-period ul { margin: 0; padding-left: 20px; }
.career-period li + li { margin-top: 8px; }

@media (min-width: 761px) and (max-height: 700px) {
  #formats .section-head { margin-bottom: 14px; }
  #formats .advisory article { padding-block: 7px; }
  #formats .role-card { padding-block: 20px; }
}

@media screen and (min-width: 1000px) and (max-height: 650px) {
  :root { --section-space: 6px; }
  #formats .section-head { margin-bottom: 6px; }
  #formats .role-card { padding-block: 14px; }
}
