:root {
  --bg:#F7F5F0; --surface:#FFFFFF;
  --ink:#0F1418; --ink-2:#5A6069;
  --line:#D8DEE3;
  --navy:#122B4A; --navy-pressed:#0C1D33;
  --active:#2A5745; --needs:#B7791F;
  --warn-bg:#FFF7E6; --warn-border:#F0C98A;
  --serif:'Charter', 'Iowan Old Style', 'Iowan', 'Georgia', 'Cambria', serif;
  --sans:-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --mono:ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace;
}
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body {
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  font-feature-settings:"tnum" 1, "kern" 1;
}
.skip { position:absolute; left:-9999px; top:auto; }
.skip:focus {
  left:8px; top:8px; background:var(--surface); color:var(--ink);
  padding:10px 14px; border:2px solid var(--navy); z-index:100;
  border-radius:4px;
}
a { color:var(--navy); text-underline-offset:2px; }
a:focus-visible { outline:3px solid var(--navy); outline-offset:2px;
                  border-radius:2px; }
h1,h2,h3,h4 {
  font-family:var(--serif); color:var(--ink);
  letter-spacing:-0.01em; margin:0;
}
h1 { font-size:clamp(2rem, 4vw + 0.5rem, 3rem); line-height:1.1;
      letter-spacing:-0.02em; }
h2 { font-size:clamp(1.375rem, 1.5vw + 0.8rem, 1.75rem); line-height:1.2; }
h3 { font-size:1.125rem; line-height:1.35; }
p, li { font-size:1rem; line-height:1.65; color:var(--ink); margin:0; }
p + p { margin-top:0.75rem; }
.eyebrow { font-family:var(--sans); font-size:0.8125rem;
           letter-spacing:0.06em; text-transform:uppercase;
           color:var(--ink-2); margin:0 0 1rem; }
.sub { color:var(--ink-2); font-size:1.125rem; line-height:1.55;
       max-width:56ch; margin:1rem 0 0; }
.container { max-width:960px; margin:0 auto; padding:0 24px; }
.narrow { max-width:640px; margin:0 auto; }
header.site {
  border-bottom:1px solid var(--line); background:var(--bg);
  position:sticky; top:0; z-index:10; backdrop-filter:saturate(1.05);
}
header.site .row {
  max-width:1120px; margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; gap:24px;
}
.brand-mark {
  font-family:var(--serif); font-weight:700; font-size:1.125rem;
  color:var(--ink); text-decoration:none; letter-spacing:-0.02em;
}
.brand-mark:focus-visible { outline:3px solid var(--navy);
                             outline-offset:3px; }
nav.primary { margin-left:auto; display:flex; align-items:center;
              gap:6px; flex-wrap:wrap; }
nav.primary a {
  color:var(--ink); text-decoration:none; padding:10px 12px;
  border-radius:4px; font-size:0.9375rem;
}
nav.primary a[aria-current="page"] { color:var(--navy);
                                       text-decoration:underline; }
nav.primary a:hover { color:var(--navy); }
.cta-primary {
  display:inline-block; background:var(--navy); color:#FFFFFF;
  text-decoration:none; padding:14px 20px; border-radius:4px;
  font-family:var(--sans); font-weight:600; font-size:0.9375rem;
  border:1px solid var(--navy);
}
.cta-primary:hover, .cta-primary:focus { background:var(--navy-pressed);
                                          color:#FFFFFF; }
.cta-primary:focus-visible { outline:3px solid var(--navy);
                              outline-offset:3px; }
main { padding:64px 0 96px; }
section.block { padding:48px 0; border-top:1px solid var(--line); }
section.block:first-of-type { border-top:0; padding-top:0; }
section.block h2 { margin-bottom:12px; }
section.hero { padding:32px 0 48px; }
section.hero .sub { max-width:60ch; }
section.hero .actions { margin-top:32px; display:flex; gap:24px;
                         align-items:center; flex-wrap:wrap; }
section.hero .actions a.link { color:var(--navy); text-decoration:underline;
                                font-size:0.9375rem; }
.card-signal {
  background:var(--surface); border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink); padding:24px;
  display:grid; grid-template-columns: 1fr auto; gap:16px 24px;
  margin:24px 0 0;
}
@media (max-width:640px) {
  .card-signal { grid-template-columns:1fr; padding:20px 16px; }
}
.card-signal .brand-row { font-family:var(--serif); font-size:1.25rem;
                            font-weight:600; }
.card-signal .show-row { color:var(--ink-2); font-size:0.9375rem;
                          margin-top:2px; }
.card-signal .meta { font-family:var(--mono); font-size:0.8125rem;
                       color:var(--ink-2); display:flex; gap:16px;
                       flex-wrap:wrap; margin-top:12px; }
.card-signal .chip {
  align-self:start; justify-self:end; font-family:var(--sans);
  font-size:0.6875rem; letter-spacing:0.08em; text-transform:uppercase;
  padding:6px 10px; border:1px solid var(--warn-border);
  background:var(--warn-bg); color:#8a5a00; border-radius:3px;
}
@media (max-width:640px) {
  .card-signal .chip { justify-self:start; margin-top:-4px; }
}
.confidence { display:inline-flex; gap:3px; align-items:center; }
.confidence .dot { width:8px; height:8px; border-radius:50%;
                     background:var(--line); display:inline-block; }
.confidence .dot.on { background:var(--active); }
.classification { font-family:var(--sans); font-size:0.8125rem;
                    color:var(--ink-2); }
.spec-grid { display:grid; grid-template-columns:repeat(3, 1fr);
              gap:32px; margin-top:24px; }
@media (max-width:720px) {
  .spec-grid { grid-template-columns:1fr; gap:24px; }
}
.spec-grid h3 { font-family:var(--sans); font-size:0.8125rem;
                 letter-spacing:0.06em; text-transform:uppercase;
                 color:var(--ink-2); margin-bottom:8px; font-weight:600; }
ul.plain { list-style:none; padding:0; margin:12px 0 0;
             display:flex; flex-direction:column; gap:10px; }
ul.plain li { padding-left:14px; text-indent:-14px; }
ul.plain li::before { content:"—"; margin-right:6px; color:var(--ink-2); }
.price-block { background:var(--surface); border:1px solid var(--line);
                padding:24px; margin:24px 0; border-radius:4px; }
.price-block .amount { font-family:var(--serif); font-size:2.25rem;
                         font-weight:600; }
.price-block .amount span.usd { color:var(--ink-2); font-size:1.125rem;
                                  vertical-align:top; margin-right:4px; }
.price-block .line { color:var(--ink-2); margin-top:8px; font-size:0.9375rem; }
.synth-banner {
  background:var(--warn-bg); border:1px solid var(--warn-border);
  color:#8a5a00; padding:12px 16px; border-radius:4px;
  font-size:0.875rem; margin:24px 0;
}
form.request { margin-top:24px; display:flex; flex-direction:column;
                 gap:20px; max-width:520px; }
form.request label { display:block; font-size:0.875rem; font-weight:600;
                       color:var(--ink); margin-bottom:6px; }
form.request input, form.request select, form.request textarea {
  width:100%; padding:11px 12px; font-family:var(--sans); font-size:1rem;
  color:var(--ink); background:var(--surface); border:1px solid var(--line);
  border-radius:4px;
}
form.request textarea { min-height:100px; resize:vertical; }
form.request input:focus, form.request select:focus, form.request textarea:focus {
  outline:none; border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(18,43,74,0.15);
}
form.request .honeypot { position:absolute; left:-9999px; }
form.request .consent { font-size:0.875rem; color:var(--ink-2); }
form.request button { align-self:flex-start; background:var(--navy);
                        color:#FFFFFF; border:0; padding:14px 22px;
                        font-family:var(--sans); font-weight:600;
                        font-size:0.9375rem; border-radius:4px;
                        cursor:pointer; }
form.request button:hover, form.request button:focus { background:var(--navy-pressed); }
form.request button:focus-visible { outline:3px solid var(--navy);
                                       outline-offset:3px; }
.confirmation { padding:16px; border:1px solid var(--active);
                 background:#F0F5F2; color:var(--active); border-radius:4px;
                 margin-top:16px; display:none; }
.confirmation.on { display:block; }
.final-cta { margin-top:56px; text-align:left; }
footer.site { border-top:1px solid var(--line); margin-top:64px;
                padding:32px 0 48px; font-size:0.875rem;
                color:var(--ink-2); }
footer.site .row { max-width:1120px; margin:0 auto; padding:0 24px;
                     display:flex; flex-wrap:wrap; gap:24px 40px;
                     align-items:baseline; }
footer.site ul { list-style:none; padding:0; margin:0; display:flex;
                   gap:24px; flex-wrap:wrap; }
footer.site a { color:var(--ink-2); text-decoration:none; }
footer.site a:hover { color:var(--navy); text-decoration:underline; }
footer.site .operator { flex:1 1 320px; min-width:0; }
footer.site .copy { color:var(--ink-2); }
@media (prefers-reduced-motion: reduce) {
  * { animation:none !important; transition:none !important; }
}
