:root {
  color-scheme: light;
  --paper: #f7f9ff;
  --ink: #111b34;
  --muted: #44516b;
  --action: #234bd0;
  --action-hover: #1a3bb2;
  --rule: #cbd4e6;
  --wash: #eaf0ff;
  --inverse: #f7f9ff;
  --inverse-muted: #bccbe8;
  --deep: #0b1530;
  --deep-rule: #405276;
  --deep-edge: #a7b9df;
  --deep-accent: #7897ff;
  --error: #b42318;
  --on-action: #ffffff;
  --field: #ffffff;
  --field-border: #7d8da9;
  --selection: #c9d7ff;
  --deep-focus: #a9bfff;
  --deep-action: #3459e5;
  --deep-action-hover: #284ad1;
  --deep-outline: #8da5e5;
  --deep-hover: #23355e;
  --deep-error: #ffb4a8;
  --text-xs: .875rem;
  --text-sm: .9375rem;
  --weight-body: 500;
  --weight-soft: 550;
  --weight-strong: 700;
  --weight-heavy: 800;
  --display: 'Source Serif 4 Variable', Georgia, serif;
  --body: 'Manrope Variable', sans-serif;
  font-family: var(--body);
  color: var(--ink);
  background: var(--paper);
  line-height: 1.65;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
::selection { color: var(--ink); background: var(--selection); }
:focus-visible { outline: 2px solid var(--action); outline-offset: 5px; }
a { color: inherit; text-underline-offset: .24em; }
a:hover { color: var(--action); }
section[id] { scroll-margin-top: 1.5rem; }
p { margin: 0 0 1rem; max-width: 58ch; color: var(--muted); text-wrap: pretty; }
h1, h2, h3 { margin: 0; font-family: var(--display); font-weight: var(--weight-soft); line-height: 1.07; text-wrap: balance; }
h1 { font-size: clamp(3.05rem, 6.6vw, 6rem); letter-spacing: -.04em; }
h2 { font-size: clamp(2.35rem, 4.2vw, 4rem); letter-spacing: -.034em; }
h3 { font-size: clamp(1.8rem, 2.9vw, 2.75rem); letter-spacing: -.025em; }
.shell { width: min(100% - clamp(2rem, 8vw, 8rem), 78rem); margin-inline: auto; }
.skip { position: absolute; z-index: 2; top: .5rem; left: .5rem; transform: translateY(-150%); background: var(--paper); padding: .5rem 1rem; }
.skip:focus { transform: none; }
.site-header { border-bottom: 1px solid var(--rule); }
.header-inner, .site-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.5rem; }
.wordmark { display: inline-flex; align-items: center; flex: none; min-height: 44px; }
.wordmark img { display: block; width: clamp(7.25rem, 13vw, 9.625rem); height: auto; }
.site-footer .wordmark img { width: 7.25rem; }
h1 span { color: var(--action); }
nav { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); font-size: var(--text-xs); font-weight: var(--weight-strong); }
nav a { text-decoration: none; }
nav a:hover, nav a[aria-current] { text-decoration: underline; }
.header-inner nav { margin-left: auto; margin-right: clamp(.25rem, 1vw, 1rem); }
.menu-toggle { display: none; }
.back-link { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; color: var(--action); font-weight: var(--weight-strong); font-size: var(--text-sm); text-decoration: none; }
.back-link:hover { text-decoration: underline; }
.hero { display: grid; grid-template-columns: minmax(0, 2.3fr) minmax(0, 1fr); align-items: end; gap: clamp(2rem, 5.5vw, 5.5rem); padding-block: clamp(3.5rem, 6vw, 5.25rem); }
.hero h1 { max-width: 19ch; font-size: clamp(2.65rem, 5.1vw, 4.5rem); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem 1.25rem; }
.intro { max-width: 42ch; font-size: clamp(1.05rem, 1.5vw, 1.2rem); margin-block: 1.2rem 1.5rem; }
.button { display: inline-flex; min-height: 3.125rem; align-items: center; justify-content: center; gap: .8rem; border: 1px solid transparent; border-radius: 2px; padding: .7rem 1.05rem; color: var(--on-action); background: var(--action); text-decoration: none; font: var(--weight-strong) var(--text-sm)/1.4 var(--body); cursor: pointer; }
.button:hover { background: var(--action-hover); color: var(--on-action); }
.button-secondary { background: transparent; color: var(--action); border-color: currentColor; }
.button-secondary:hover { background: var(--wash); color: var(--action-hover); }
.button[hidden] { display: none; }
.button:disabled { cursor: wait; opacity: .7; }
.section { padding-block: clamp(3.25rem, 5.6vw, 5.25rem); }
.text-link { color: var(--action); font-weight: var(--weight-strong); }
.split { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(2rem, 6vw, 6rem); }
.questions { border-bottom: 1px solid var(--rule); }
details { border-top: 1px solid var(--rule); }
summary { padding-block: .85rem; color: var(--action); font-weight: var(--weight-strong); cursor: pointer; }
details p { padding-inline-start: 1.1rem; }
.dark-section { --error: var(--deep-error); background: var(--ink); color: var(--inverse); }
.dark-section p, .dark-section label span { color: var(--inverse-muted); }
.dark-section a:hover { color: var(--inverse); }
.dark-section :focus-visible { outline-color: var(--deep-focus); }
.dark-section .button { background: var(--deep-action); color: var(--on-action); }
.dark-section .button:hover { background: var(--deep-action-hover); }
.dark-section .button-secondary { background: transparent; color: var(--inverse); border-color: var(--deep-outline); }
.dark-section .button-secondary:hover { background: var(--deep-hover); }
.hero-section { background: var(--deep); }
.hero-section h1 span { color: var(--deep-accent); }
.contact-title { font-size: clamp(2.8rem, 6vw, 4.5rem); margin-bottom: .9rem; }
.form-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .95rem 1rem; }
label { display: block; font-size: var(--text-xs); font-weight: var(--weight-strong); }
label span { color: var(--muted); font-weight: var(--weight-soft); }
.full-width { grid-column: 1 / -1; }
input, select, textarea { display: block; width: 100%; min-height: 2.85rem; margin-top: .25rem; border: 1px solid var(--field-border); border-radius: 2px; padding: .6rem .7rem; background: var(--field); color: var(--ink); font: var(--weight-body) 1rem/1.4 var(--body); caret-color: var(--action); }
textarea { resize: vertical; }
.form-note, .form-feedback { font-size: var(--text-xs); margin-block: .8rem; }
.form-feedback { min-height: 1.5em; font-weight: var(--weight-strong); margin-bottom: 0; }
.form-feedback:focus { outline: none; }
.form-required { margin-top: 0; }
.field-error, .dark-section .field-error { margin: .35rem 0 0; font-size: var(--text-xs); font-weight: var(--weight-strong); color: var(--error); }
.char-count { margin-block: .35rem 0; text-align: right; max-width: none; }
[aria-invalid="true"] { border-color: var(--error); box-shadow: 0 0 0 1px var(--error); }
.button[aria-disabled="true"] { cursor: progress; opacity: .75; }
.inquiry-challenge { margin-top: 1rem; }
#inquiry-challenge-retry[hidden] { display: none; }
#inquiry button[type="submit"] { margin-top: 1rem; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0 1rem; font-size: var(--text-xs); }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
.reading { max-width: 48rem; padding-block: clamp(3.5rem, 10vw, 8rem); }
.reading h1 { font-size: clamp(2.8rem, 6vw, 4.75rem); }
.service-detail h1 { margin-top: 1.1rem; }
.service-detail h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); margin-block: 2.25rem .8rem; }
.service-detail dl { margin: 0; }
.service-detail dt { font-weight: var(--weight-heavy); border-top: 1px solid var(--rule); padding-top: .8rem; }
.service-detail dd { color: var(--muted); margin: .2rem 0 1rem; }
@media (max-width: 55rem) {
  .header-inner nav { gap: 0 .75rem; }
  .header-inner nav > a { display: inline-flex; align-items: center; min-height: 44px; }
  .hero { gap: 2rem; }
  .split { gap: 2rem; }
  .form-fields { grid-template-columns: 1fr; }
}
@media (max-width: 43rem) {
  .header-inner, .site-footer { min-height: 4.25rem; }
  .site-footer { align-items: flex-start; flex-direction: column; padding-block: .8rem; gap: .35rem; }
  .footer-links { justify-content: flex-start; }
  .header-inner { flex-wrap: wrap; gap: .5rem .6rem; padding-block: .6rem; }
  .header-inner .header-contact { margin-left: auto; min-height: 44px; padding-block: .5rem; }
  .menu-toggle:not([hidden]) { display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; padding: .5rem .8rem; border: 1px solid var(--rule); border-radius: 2px; background: transparent; color: var(--ink); font: var(--weight-strong) var(--text-sm)/1.4 var(--body); cursor: pointer; }
  .menu-toggle:hover { background: var(--wash); }
  .menu-toggle .menu-close, [data-menu-open] .menu-toggle .menu-open { display: none; }
  [data-menu-open] .menu-toggle .menu-close { display: inline; }
  .header-inner nav { order: 4; flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 0; margin: 0 0 .4rem; font-size: 1rem; }
  .header-inner nav > a { border-top: 1px solid var(--rule); }
  .has-menu:not([data-menu-open]) .header-inner nav { display: none; }
  .hero, .split { grid-template-columns: 1fr; }
  .hero { padding-block: 3rem 2.75rem; }
  .hero h1 { max-width: 18ch; }
}
