/* Shared system theme. Geometry and visible copy belong to the original styles. */
:root {
  color-scheme: light dark;
  --ink: #20302c;
  --ink-soft: #3f504b;
  --muted: #45524d;
  --paper: #fbf9f4;
  --paper-deep: #f1eee6;
  --surface: #fffefd;
  --sage-50: #f0f5f1;
  --sage-100: #dbe8df;
  --sage-300: #a8c1b5;
  --sage-600: #376356;
  --sage-700: #2a554a;
  --sage-900: #17352f;
  --sage: #2a554a;
  --sage-dark: #17352f;
  --sage-soft: #f0f5f1;
  --rose: #78333b;
  --rose-soft: #f4e4e2;
  --line: #dbe2dd;
  --control-border: #75837b;
  --field: #fcfdfc;
  --button-bg: #2d584e;
  --button-fg: #fff;
  --header-bg: rgba(251,249,244,.96);
  --focus: #17352f;
  --focus-halo: #fff;
  --warning-bg: #fff4f1;
  --warning-fg: #673c36;
  --success-bg: #e7f5ed;
  --success-fg: #174c3e;
}
body { color: var(--ink); background-color: var(--paper); }
.site-header, .topbar { background: var(--header-bg); }
.desktop-nav, .human-note { color: var(--ink-soft); }
.hero-card, .button-quiet, .contact-form, .experience-badge, .card,
.template, .mobile-menu { background: var(--surface); }
.button-quiet:hover { background: var(--sage-50); }
.brand-mark, .button-primary, .submit-button, .quiz-next,
.button:not(.secondary), .card > a,
.recommended.personal, .consent input:checked + span {
  color: var(--button-fg); background: var(--button-bg);
}
.nav-cta:hover, .button-secondary:hover {
  color: var(--button-fg); background: var(--button-bg);
}
.recommended { color: var(--button-fg); background: var(--rose); }
.card-number { color: #59675e; }
.help-card.parting > svg { color: var(--rose); }
.answer-list label { color: var(--ink-soft); background: var(--surface); }
.answer-list label.selected { color: var(--ink); background: var(--sage-50); }
.answer-list label > span {
  border-color: var(--control-border);
  background: var(--surface);
  box-shadow: inset 0 0 0 5px var(--surface);
}
.answer-list label.selected > span { background: var(--sage-600); border-color: var(--sage-600); }
.field-row input, .field-row select, .field-row textarea {
  color: var(--ink); background: var(--field); border-color: var(--control-border);
  caret-color: var(--ink); accent-color: var(--sage-700);
}
.field-row input::placeholder, .field-row textarea::placeholder { color: var(--muted); opacity: 1; }
.consent > span { border-color: var(--control-border); background: var(--surface); }
.quiz-progress, .quiz-progress::-webkit-progress-bar { background: var(--line); }
.quiz-progress::-webkit-progress-value { background: var(--sage-600); }
.quiz-progress::-moz-progress-bar { background: var(--sage-600); }
.privacy-chip { background: var(--surface); border-color: var(--line); }
.crisis-note, .safety-result, .form-notice.is-error {
  color: var(--warning-fg); background: var(--warning-bg); border-color: var(--rose);
}
.crisis-note h2, .crisis-note > svg { color: var(--warning-fg); }
.form-notice, .form-notice.is-pending { color: var(--ink-soft); background: var(--sage-50); }
.form-notice.is-success { color: var(--success-fg); background: var(--success-bg); }
.form-notice:empty { display: none; }
.local-section { background: #24483f; }
.local-layout > div:first-child > p:not(.eyebrow), .service-area p, .service-area small { color: #edf4ee; }
.steps p { color: #c4d6cd; }
.footer-brand em { color: #edb7b7; }
.direct-contact small, .availability, .footer-top > div > p, .footer-bottom { color: #bfd1c9; }
.card > p:not(.code):not(.label), .lead, .fact span, .updated, .small { color: var(--muted); }
.card .code { color: var(--rose); }
.card .label { color: var(--sage); }
/* Reserve the existing portrait proportions before a lazy image is decoded. */
.about-visual img { aspect-ratio: auto 1205 / 1600; }
.trust-strip, .decision-section, .local-section, .contact-section, .site-footer, .image-lightbox {
  --focus: #fff; --focus-halo: #17352f;
}
.contact-form { --focus: #17352f; --focus-halo: #fff; }
:focus-visible, .field-row input:focus-visible, .field-row select:focus-visible,
.field-row textarea:focus-visible, .answer-list input:focus-visible + span,
.consent input:focus-visible + span {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--focus-halo);
}
.field-row input:focus, .field-row select:focus, .field-row textarea:focus { border-color: var(--sage-600); }
.answer-list label:has(input:focus-visible) {
  outline: 3px solid var(--focus); outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--focus-halo);
}
/* Only the previously overflowing narrow viewport needs a sizing correction. */
@media (max-width: 360px) {
  .hero-copy { min-width: 0; }
  .human-note { gap: 6px; }
  .human-note strong { min-width: 0; overflow-wrap: anywhere; }
}
/* Keyboard focus stays visible under the fixed navigation. */
a, button, input, select, textarea, summary, legend, [tabindex] {
  scroll-margin-block: calc(var(--header-height, 70px) + 24px) 32px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --ink: #edf2ea;
    --ink-soft: #d6e2d8;
    --muted: #c0d0c5;
    --paper: #141e1a;
    --paper-deep: #101914;
    --surface: #1c2b23;
    --sage-50: #22372b;
    --sage-100: #304737;
    --sage-300: #81ab91;
    --sage-600: #b0d8bc;
    --sage-700: #bce0c7;
    --sage: #bce0c7;
    --sage-soft: #22372b;
    --rose: #edb7b7;
    --rose-soft: #422c2d;
    --line: #425a49;
    --control-border: #8baf96;
    --field: #142219;
    --button-bg: #bce0c7;
    --button-fg: #17352f;
    --header-bg: rgba(20,30,26,.97);
    --focus: #fff;
    --focus-halo: #17352f;
    --warning-bg: #3a2423;
    --warning-fg: #f4d4c9;
    --success-bg: #17392b;
    --success-fg: #c7efda;
    --shadow: 0 24px 70px rgba(0,0,0,.25);
  }
  body::before {
    background: radial-gradient(circle at 8% 5%,rgba(83,123,94,.12),transparent 27rem),
      radial-gradient(circle at 94% 20%,rgba(129,79,76,.1),transparent 25rem);
  }
  .brand { color: var(--ink); }
  .site-header, .hero-card, .quiz-card, .card { border-color: var(--line); }
  .help-card.clarity::after { background: #394032; }
  .card-number { color: #bdcdbd; }
  ::selection { color: #102519; background: #c8e5d1; }
  .contact-form { --focus: #fff; --focus-halo: #17352f; }
  .noscript-note { color: #f0dfb9; background: #382f1f; border-color: #a18b5c; }
}
/* Keep OS high-contrast controls discernible, including custom radio/checkbox marks. */
@media (forced-colors: active) {
  :root { --focus: Highlight; --focus-halo: Canvas; }
  .answer-list label > span, .consent > span { border-color: ButtonText; }
  .answer-list label.selected > span {
    forced-color-adjust: none; background: Highlight; border-color: Highlight;
    box-shadow: inset 0 0 0 5px Canvas;
  }
  .consent input:checked + span { forced-color-adjust: none; background: Highlight; color: HighlightText; border-color: Highlight; }
  .button-primary, .submit-button, .quiz-next, .card > a, .button { border: 1px solid ButtonText; }
  :focus-visible, .answer-list label:has(input:focus-visible), .consent input:focus-visible + span { outline-color: Highlight; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media print {
  :root { color-scheme: light; }
  body, body *, body *::before, body *::after {
    color: #000 !important; background-color: #fff !important;
    box-shadow: none !important; text-shadow: none !important;
  }
  body::before { background: none; }
  .topbar { position: static; }
}
