/* OS preference is the only theme source. No script, storage or toggle. */
@font-face {
  font-family: Manrope;
  src: url('/fonts/manrope-400.woff2') format('woff2');
  font-weight: 400 500;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url('/fonts/manrope-600.woff2') format('woff2');
  font-weight: 600 700;
  font-display: swap;
}
:root {
  color-scheme: light;
  --theme-paper: #f7f6f0;
  --theme-panel: #eeefe7;
  --theme-ink: #203e36;
  --theme-muted: #506156;
  --theme-line: #c9cebf;
  --theme-link: #215f46;
  --theme-focus: #975120;
  --theme-inverse: #f7f6f0;
  --theme-forest: #203e36;
  --theme-on-forest: #f7f6f0;
  --theme-soft-on-forest: #d6e1d7;
  --theme-accent: #dbe6ac;
}
html { scrollbar-color: #748675 var(--theme-paper); }
body {
  background: var(--theme-paper);
  color: var(--theme-ink);
  font-family: Manrope, Arial, sans-serif;
}
::selection { background: var(--theme-accent); color: #203e36; }
a, button, summary { touch-action: manipulation; }
.header nav a, .nav a { min-width: 44px; justify-content: center; }
.header .brand { min-height: 44px; display: inline-flex; align-items: center; }
.hero-aside, .contact, .service-hero, .personal { --theme-focus: #e6bf89; }
a:focus-visible, button:focus-visible, summary:focus-visible {
  outline: 3px solid var(--theme-focus);
  outline-offset: 5px;
}
h1, h2, h3 { letter-spacing: -.035em; }
.service-hero h1 { letter-spacing: -.035em; }
.aside-bottom, .hero-foot, .tool-list dt, .footer-bottom { font-size: 12px; }
.service-context .sheet-label, .person span, .portrait p { font-size: 12px; }
.hero-aside .aside-statement { line-height: 1.35; }
p { max-width: 70ch; }
.brand img { mix-blend-mode: normal; filter: none; }
.person img, .portrait img { filter: none; }
.skip { background: var(--theme-paper); color: var(--theme-ink); }
/* Keep lists editorial after removing decorative counters. */
.expertise-list article { grid-template-columns: 1fr 1.2fr; }
.expertise-list article > div { grid-column: auto; }
.expertise .section-heading { grid-template-columns: 1fr 1.2fr; }
.expertise .section-heading h2 { grid-column: 1; grid-row: 1; }
.expertise .section-heading > p:last-child { grid-column: 2; align-self: end; }
.compliance-note { padding-left: 0; }
.approach-top { grid-template-columns: 1fr 1fr; }
.approach-top > p:last-child { grid-column: auto; }
.expertise { background: var(--theme-panel); }
.expertise-list article, .compliance-note { border-color: var(--theme-line); }
.expertise-list p, .expertise-list .deliverable, .about-copy > p:not(.lead) {
  color: var(--theme-muted);
}
.hero-aside, .contact {
  background: var(--theme-forest);
  color: var(--theme-on-forest);
}
.hero-aside > p:not(.aside-statement), .contact p + p {
  color: var(--theme-soft-on-forest);
}
.hero-aside .aside-statement { font-size: clamp(28px, 2.5vw, 36px); }
.hero-aside > p { max-width: 38ch; }
.button { background: #203e36; color: #f7f6f0; }
.button:hover { background: #30584a; color: #f7f6f0; }
.button-light { background: var(--theme-accent); color: #203e36; }
.button-light:hover { background: #ecf2d1; color: #203e36; }
.contact h2 em, .aside-statement em { color: var(--theme-accent); }
.service-hero, .personal { color: var(--theme-on-forest); }
.service-hero .hero-intro, .service-hero .entry-note, .service-context p,
.cta-layout p { color: var(--theme-soft-on-forest); }
.service-hero .portrait p { color: var(--theme-soft-on-forest); }
.service-hero .button, .cta-layout .button {
  background: var(--theme-accent); color: #203e36;
}
.service-hero .button:hover, .cta-layout .button:hover {
  background: #ecf2d1; color: #203e36;
}
.quickscan-section, .scope-aside, .contact-section {
  background: var(--theme-panel);
}
.output-list li, .steps li { border-color: var(--theme-line); }
.service-context .sheet-label { color: var(--theme-soft-on-forest); }
/* Legal and app information pages keep their exact body content. */
body:not(:has(.header, .site-header)) a { color: var(--theme-link); }
body:not(:has(.header, .site-header)) nav,
body:not(:has(.header, .site-header)) footer { border-color: var(--theme-line); }
body:not(:has(.header, .site-header)) header p { color: var(--theme-muted); }
body:not(:has(.header, .site-header)) .notice {
  background: var(--theme-panel); border-left-width: 1px;
}
body:not(:has(.header, .site-header)) nav a {
  min-height: 44px; display: inline-flex; align-items: center;
}
.email, .contact-address, .footer-bottom a { overflow-wrap: anywhere; }
.wrap > *, .service-hero-grid > *, .scope-grid > *, .hero > * { min-width: 0; }
@media (max-width: 800px) {
  .expertise-list article { grid-template-columns: 1fr; gap: 18px; }
  .expertise .section-heading { display: block; }
  .expertise .section-heading > p:last-child { margin-top: 24px; }
  .approach-top { display: block; }
  .approach-top > p:last-child { margin-top: 24px; }
}
@media (max-width: 700px) {
  .hero h1 { font-size: clamp(36px, 9vw, 62px); }
  .contact h2 { font-size: clamp(36px, 9vw, 52px); }
  .hero-foot { flex-wrap: wrap; }
  .hero-foot a { white-space: normal; }
  .hero-aside { min-height: 0; padding: 28px; }
  .intro, .expertise-list p, .expertise-list .deliverable,
  .about-copy > p:not(.lead), .steps p, .compliance-note p { font-size: 16px; }
  .small-note { font-size: 12px; }
  .hero-aside > p:not(.aside-statement) { font-size: 16px; }
  .header nav { gap: 0 10px; }
  .header nav .nav-contact { font-size: 12px; }
}
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --theme-paper: #14251f;
    --theme-panel: #1c3027;
    --theme-ink: #edf1e5;
    --theme-muted: #bdcdbf;
    --theme-line: #516657;
    --theme-link: #dbe6ac;
    --theme-focus: #e6bf89;
    --theme-forest: #213e32;
    --theme-on-forest: #edf1e5;
    --theme-soft-on-forest: #cbdacb;
    --paper: var(--theme-paper);
    --ink: var(--theme-ink);
    --muted: var(--theme-muted);
    --line: var(--theme-line);
    --accent: var(--theme-accent);
    --forest: #213e32;
    --forest-deep: #1b342b;
  }
  .brand img { background: #f7f6f0; border-radius: 2px; }
  .service-hero, .personal { background: var(--theme-forest); }
  .button { background: #dbe6ac; color: #203e36; }
  .button:hover { background: #ecf2d1; color: #203e36; }
  .nav .nav-cta { background: #dbe6ac; color: #203e36; }
  .nav .nav-cta:hover { background: #ecf2d1; }
  .breadcrumb { color: var(--theme-soft-on-forest); }
  .service-context { border-color: var(--theme-line); }
  .hero-aside, .contact { border-block: 1px solid var(--theme-line); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
