/* Stemma's shared 2026 identity, layered after page and imagery styles. */
:root {
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Space Grotesk", "Inter", -apple-system, sans-serif;
  --tracking-wordmark: 0;
  --nav-h: 72px;
  --nav-control-h: 44px;
  --radius: 20px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-xl: 24px;
}
html[data-theme="light"] {
  --bg: #f5f7f6;
  --bg-2: #edf2ef;
  --surface: #ffffff;
  --surface-2: #f1f5f3;
  --text: #142932;
  --muted: #53686d;
  --line: #dce5e1;
  --line-strong: #bacbc5;
  --accent: #147d76;
  --accent-highlight: #106760;
  --accent-dim: rgba(20, 125, 118, .08);
  --accent-contrast: #ffffff;
  --nav-bg: rgba(245, 247, 246, .93);
  --nav-solid: rgba(245, 247, 246, .99);
  --shadow: 0 12px 36px rgba(20, 41, 50, .08), 0 2px 6px rgba(20, 41, 50, .03);
  --shadow-soft: 0 6px 24px rgba(20, 41, 50, .05);
}
html[data-theme="dark"] {
  --bg: #142932;
  --bg-2: #10232b;
  --surface: #1b343d;
  --surface-2: #24414a;
  --text: #f5f7f6;
  --muted: #b5c7c7;
  --line: #35525a;
  --line-strong: #537077;
  --accent: #85d1c4;
  --accent-highlight: #b0e3d9;
  --accent-dim: rgba(133, 209, 196, .11);
  --accent-contrast: #142932;
  --nav-bg: rgba(20, 41, 50, .93);
  --nav-solid: rgba(20, 41, 50, .99);
  --glass: rgba(27, 52, 61, .94);
  --glass-soft: rgba(27, 52, 61, .82);
  --glass-muted: rgba(16, 35, 43, .9);
  --overlay: rgba(20, 41, 50, .94);
  --shadow: 0 12px 36px rgba(0, 14, 18, .24);
  --shadow-soft: 0 6px 24px rgba(0, 14, 18, .15);
}
body {
  font-family: var(--font-body);
  line-height: 1.65;
  letter-spacing: -.01em;
  text-rendering: optimizeLegibility;
}
:is(button, input, select, textarea) { font-family: var(--font-body); letter-spacing: 0; }
:is(h1, h2, h3, h4, h5, h6) { font-family: var(--font-display); font-weight: 600; letter-spacing: -.025em; }
:is(h1, h2) { text-wrap: balance; }
h3, h4 { letter-spacing: -.015em; line-height: 1.3; }
:is(.kicker, .decision-route, .office-region, .footer-col h4, .chip-suggest strong,
  .home-service-card > span:first-child, .instant-panel-label, .est-table th,
  .receipt-label, .receipt-status span, .receipt-title > span) { letter-spacing: .08em; }
.lede { line-height: 1.65; }
.brand-lockup { width: 212px; height: 42px; }
.nav-link { font-size: .875rem; font-weight: 500; border-radius: 12px; }
.nav-link:hover, .nav-link.is-active { background: var(--accent-dim); color: var(--text); }
.theme-trigger { border-radius: 12px; font-weight: 600; }
.theme-menu { border-radius: 16px; box-shadow: var(--shadow); }
.theme-menu strong { font-weight: 600; }
.nav-burger { min-width: 44px; min-height: 44px; border-radius: 12px; }
:is(.btn, .btn.nav-cta, .lead-cta > form button, .receipt-actions button) {
  min-height: 46px;
  padding: 11px 20px;
  border-radius: 12px;
  font-family: var(--font-body);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0;
  transition: background .18s, border-color .18s, box-shadow .18s, transform .18s;
}
.btn.nav-cta { min-height: var(--nav-control-h); padding: 0 18px; }
.btn-lg { min-height: 50px; padding: 13px 24px; font-size: .96rem; border-radius: 12px; }
:is(.btn-accent, .lead-cta > form button) { background: var(--accent); color: var(--accent-contrast); border-color: var(--accent); }
:is(.btn-accent, .lead-cta > form button):hover {
  background: var(--accent-highlight); border-color: var(--accent-highlight);
  box-shadow: 0 4px 12px color-mix(in srgb, var(--accent) 18%, transparent);
  transform: translateY(-1px);
}
:is(.btn-ghost, .btn-outline) { background: var(--surface); color: var(--text); border-color: var(--line-strong); }
:is(.btn-ghost, .btn-outline):hover { background: var(--surface-2); border-color: var(--accent); color: var(--accent); }
:is(.icon-btn, .send-btn, .decision-back, .decision-open-page) { min-height: 44px; border-radius: 12px; }
:is(.icon-btn, .send-btn) { min-width: 44px; }
.send-btn:hover { box-shadow: 0 4px 12px color-mix(in srgb, var(--accent) 18%, transparent); }
.modal-x { min-width: 44px; min-height: 44px; border-radius: 12px; }
:is(.lead-form, .lead-cta > form, .instant-contact-grid, .careers-form, .career-apply-form, .career-offer-form,
  .prepared-ie-fields, .prepared-ie-pin-field, .prepared-ie-client-review,
  .prepared-ie-input-note, .av-field) :is(input, select, textarea) {
  border-radius: 12px;
  font-size: .9375rem;
  line-height: 1.5;
}
:is(.lead-form, .lead-cta > form, .instant-contact-grid, .careers-form, .career-apply-form, .career-offer-form,
  .prepared-ie-fields, .prepared-ie-pin-field, .prepared-ie-client-review,
  .av-field) :is(input, select):not([type="checkbox"]):not([type="radio"]):not([type="range"]) { min-height: 46px; }
:is(.lead-form, .lead-cta > form, .careers-form, .career-apply-form, .career-offer-form, .av-field) :is(input, select, textarea):focus {
  border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-dim);
}
:is(.card, .office-card, .ind-card, .home-service-card, .delivery-outcome,
  .av-card, .career-role-card, .instant-card, .schedule-card, .decision-panel,
  .prepared-ie-app, .modal-card, .corporate-brief) { border-radius: var(--radius); }
:is(.card, .office-card, .ind-card, .home-service-card):hover { transform: translateY(-2px); }
:is(.home-service-card-visual, .capability-card-image) { border-radius: 12px; }
.av-examples button { min-height: 38px; padding: 8px 12px; border-radius: 10px; }
.av-year-picker button { min-height: 40px; border-radius: 10px; }
.av-segment { border-radius: 12px; }
.av-segment span { min-height: 40px; border-radius: 9px; }
.footer-col h4 { font-family: var(--font-body); font-size: .74rem; font-weight: 600; }
.footer-col a { font-size: .875rem; line-height: 1.5; padding-block: 7px; }
.footer-brand p { line-height: 1.65; }

/* Editorial photography remains edge to edge, with deliberate legibility. */
.visual-section :is(h1, h2) { font-weight: 600; letter-spacing: -.035em; }
.visual-section h1 { line-height: 1.08; }
.visual-section .kicker { color: #a5ded3; }
.visual-section .btn-accent { background: #85d1c4; border-color: #85d1c4; color: #142932; }
.visual-section .btn-accent:hover { background: #a5ded3; border-color: #a5ded3; color: #142932; }
html[data-theme] .visual-section .btn-ghost { background: rgba(20, 41, 50, .78); border-color: #96b8ba; color: #f5f7f6; }
html[data-theme] .visual-section .btn-ghost:hover { background: rgba(27, 52, 61, .96); border-color: #a5ded3; color: #ffffff; }
.visual-topics li { border-color: rgba(133, 209, 196, .5); }

/* Shared receipt identity is printable, with an inverse logo for dark screens. */
.receipt-brand { display: block; }
.receipt-brand .brand-lockup { width: 226px; height: 44px; object-fit: contain; object-position: left center; }
.receipt-brand .brand-lockup-dark { display: none; }
html:is([data-theme="dark"], [data-theme="dusk"]) .receipt-brand .brand-lockup-light { display: none; }
html:is([data-theme="dark"], [data-theme="dusk"]) .receipt-brand .brand-lockup-dark { display: block; }
.receipt-brand > span { margin-top: 10px; font-size: .76rem; letter-spacing: 0; text-transform: none; }
.receipt-title h1 { font-family: var(--font-display); font-weight: 600; }
.receipt-row strong, .receipt-foot { min-width: 0; overflow-wrap: anywhere; }
.receipt-accent { background: linear-gradient(90deg, #147d76 0 76%, #85d1c4 76%); }
@media screen {
  html[data-theme="light"]:has(.receipt-sheet) { --ink: #142932; --teal: #147d76; --soft: #f1f5f3; }
  html[data-theme="light"]:has(.receipt-sheet), html[data-theme="light"]:has(.receipt-sheet) body { background: #edf2ef; }
  html[data-theme="dark"]:has(.receipt-sheet) { --ink: var(--text); --teal: var(--accent); --soft: var(--surface-2); }
  html[data-theme="dark"]:has(.receipt-sheet), html[data-theme="dark"]:has(.receipt-sheet) body { background: var(--bg); color: var(--text); }
  html[data-theme="dark"] .receipt-sheet { background: var(--surface); border-color: var(--line); box-shadow: var(--shadow); }
  html[data-theme="dark"] :is(.receipt-row, .receipt-commercials td) { border-color: var(--line); }
  html[data-theme="dark"] :is(.receipt-section > p, .receipt-list-grid ul) { color: var(--muted); }
  html[data-theme="dark"] .receipt-note { background: var(--accent-dim); color: var(--muted); }
  html[data-theme="dark"] .receipt-status .is-status { background: color-mix(in srgb, var(--accent-2) 10%, var(--surface)); border-color: color-mix(in srgb, var(--accent-2) 50%, var(--line)); }
  html[data-theme="dark"] .receipt-status .is-status strong { color: var(--accent-2); }
  html[data-theme="dark"] .receipt-status .is-status.is-paid { background: var(--accent-dim); border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); }
  html[data-theme="dark"] .receipt-status .is-status.is-paid strong { color: var(--accent); }
  html[data-theme="dark"] .receipt-actions button { background: var(--surface-2); border-color: var(--line-strong); color: var(--text); }
  html[data-theme="dark"] .receipt-actions .primary { background: var(--accent); color: var(--accent-contrast); border-color: var(--accent); }
}
@media (max-width: 560px) {
  .brand-lockup { width: 176px; height: 34px; }
  .btn { min-height: 48px; }
  .visual-section .cta-actions { align-items: stretch; }
  .visual-section .cta-actions .btn { justify-content: center; }
}
@media (max-width: 360px) { .brand-lockup { width: 148px; height: 29px; } }
@media print {
  html[data-theme]:has(.receipt-sheet) { --ink: #142932; --teal: #147d76; --soft: #f1f5f3; --text: #142932; --muted: #53686d; --line: #dce5e1; }
  html[data-theme] .receipt-brand .brand-lockup-light { display: block; }
  html[data-theme] .receipt-brand .brand-lockup-dark { display: none; }
  .receipt-brand > span { color: #53686d; }
}
