/* SignalRx — Ripple palette, per brand guidelines v4.0.
   Deliberately single-theme: the brand leads with white and paper. */
:root{
  --sig-deep:#2C5EAD; --sig-sky:#1591DC; --sig-bright:#4BB8FA; --sig-ice:#C4E2F5;
  --sig-ink:#10233F; --sig-slate:#5B6B7B; --sig-line:#D8EAF7; --sig-paper:#F1F8FD;
  --ground:var(--sig-paper); --surface:#FFFFFF; --surface-2:#FAFCFE;
  --text:var(--sig-ink); --muted:var(--sig-slate); --line:var(--sig-line);
  --accent:var(--sig-sky); --accent-quiet:var(--sig-ice); --accent-ink:#0E5F91;
  --display:"Quicksand",ui-rounded,"Trebuchet MS",sans-serif;
  --body:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;
  --measure:66ch;
  --shadow:0 1px 2px rgba(16,35,63,.05),0 8px 24px -12px rgba(16,35,63,.14);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--text);font-family:var(--body);
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.01em;text-wrap:balance;margin:0}
p,ul,dl{margin:0}
a{color:var(--accent-ink)}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;z-index:99;background:var(--surface);padding:10px 16px;
  border:1px solid var(--line);border-radius:8px}

.shell{max-width:1180px;margin:0 auto;padding:0 28px}
.site-head{display:flex;align-items:center;gap:28px;flex-wrap:wrap;
  padding:30px 0 26px;border-bottom:1px solid var(--line)}
.site-head .wordmark{height:34px;width:auto;display:block}
nav.site-nav{display:flex;gap:26px;margin-left:auto;flex-wrap:wrap}
nav.site-nav a{font-size:14.5px;font-weight:500;color:var(--muted);text-decoration:none;
  padding-bottom:2px;border-bottom:1.5px solid transparent}
nav.site-nav a:hover{color:var(--text);border-bottom-color:var(--accent)}
nav.site-nav a[aria-current="page"]{color:var(--text);border-bottom-color:var(--accent)}

main{padding-bottom:96px}
.eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin:0 0 14px}

/* max-width belongs on the individual blocks, never on .hero itself — putting it on the
   container crushed the body copy into a narrow column beside an empty half-screen. */
.hero{padding:0}
.hero h1{font-size:clamp(2rem,4.1vw,2.95rem);line-height:1.14;max-width:26ch}
.hero-sub{max-width:58ch;margin-top:20px;font-size:1.12rem;color:var(--muted)}
.notice{display:inline-flex;align-items:center;gap:9px;margin-top:26px;background:var(--surface);
  border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;
  padding:11px 16px;font-size:14.5px;font-weight:500}

/* The fold: headline left, the details visitors came for on the right. If brand
   photography ever arrives, it replaces the right-hand card here. */
.top-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  gap:44px;align-items:center;padding:52px 0 44px}
/* Hero image. No panel, no radius, no shadow: the artwork has a transparent background
   and floats on the page ground. object-fit:contain so nothing is cropped, and a square
   box so it reads large without stealing width from the headline. */
.hero-media{margin:0;aspect-ratio:1/1}
.hero-media img{display:block;width:100%;height:100%;object-fit:contain}
@media (min-width:1080px){
  /* let it run a little past its column toward the page edge */
  .hero-media{margin-right:-28px;transform:scale(1.08);transform-origin:center right}
}
@media (prefers-reduced-motion:reduce){.hero-media{transform:none}}
.split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;
  align-items:start}
.form-card{max-width:none}
@media (max-width:840px){.split{grid-template-columns:1fr}}
@media (max-width:840px){
  .top-row{grid-template-columns:1fr;gap:32px;padding:44px 0 36px;align-items:start}
}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;
  padding:30px;box-shadow:var(--shadow)}
.card h2{font-size:1.4rem;margin-bottom:6px}
.card-note{color:var(--muted);font-size:15px;margin-bottom:24px}
.form-slot{border:1.5px dashed var(--line);border-radius:10px;padding:34px 24px;text-align:center;
  color:var(--muted);font-size:14.5px;background:var(--surface-2)}
.form-slot strong{display:block;color:var(--text);font-family:var(--display);font-weight:700;
  font-size:1.05rem;margin-bottom:6px}

dl.facts{display:grid;gap:0}
dl.facts>div{padding:17px 0;border-bottom:1px solid var(--line);display:grid;gap:3px}
dl.facts>div:first-child{padding-top:0}
dl.facts>div:last-child{border-bottom:0;padding-bottom:0}
dl.facts dt{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
dl.facts dd{margin:0;font-size:16.5px;font-weight:500;font-variant-numeric:tabular-nums}
dl.facts dd a{text-decoration:none}
dl.facts dd a:hover{text-decoration:underline}
dl.facts dd .addr-line{display:block;font-weight:400;color:var(--muted);font-size:15.5px}

.page-head{padding:64px 0 8px;max-width:var(--measure)}
.page-head h1{font-size:clamp(2.1rem,4.6vw,2.9rem)}
.page-head>p{margin-top:18px;color:var(--muted);font-size:1.08rem}
.count{font-family:var(--display);font-weight:700;font-size:1rem;color:var(--accent-ink);
  background:var(--accent-quiet);border-radius:999px;padding:4px 14px;display:inline-block;
  margin-top:26px;font-variant-numeric:tabular-nums}
ul.states{list-style:none;margin:34px 0 0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:10px;overflow:hidden}
ul.states li{background:var(--surface);padding:13px 16px;font-size:15.5px;font-weight:500}

.doc{display:grid;grid-template-columns:220px minmax(0,1fr);gap:52px;margin-top:44px;align-items:start}
@media (max-width:860px){.doc{grid-template-columns:1fr;gap:28px}.toc{position:static!important}}
.toc{position:sticky;top:28px}
.toc p{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-bottom:10px}
.toc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.toc a{display:block;text-decoration:none;color:var(--muted);font-size:14px;padding:6px 10px;
  border-radius:6px;border-left:2px solid var(--line)}
.toc a:hover{color:var(--text);background:var(--surface);border-left-color:var(--accent)}
.doc-body{max-width:var(--measure)}
.doc-body section{padding-bottom:34px;margin-bottom:34px;border-bottom:1px solid var(--line)}
.doc-body section:last-of-type{border-bottom:0}
.doc-body h2{font-size:1.22rem;margin-bottom:14px}
.doc-body p+p,.doc-body ul+ul,.doc-body p+ul,.doc-body ul+p,.doc-body p+dl{margin-top:14px}
.doc-body ul{padding-left:22px;display:grid;gap:10px}
.doc-body .allcaps{font-size:13.5px;font-weight:600;letter-spacing:.02em;line-height:1.6;
  background:var(--accent-quiet);border-radius:9px;padding:16px 18px;color:#0B3F60}
.meta-row{display:flex;gap:26px;flex-wrap:wrap;color:var(--muted);font-size:14px;margin-top:16px}

/* The Rx lettermark, as the shipped SVG — never retyped as live text (brand v4.0).
   alt="" + aria-hidden: it repeats the wordmark in the header, so it is decoration to a
   screen reader, not a second announcement of the brand name. */
footer.site-foot{border-top:1px solid var(--line);padding:26px 0 54px;color:var(--muted);
  font-size:14px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
footer.site-foot .foot-mark{display:block;height:18px;width:auto;opacity:.85}
/* ---- contact form ---- */
#contact-form{display:grid;gap:18px}
.field{display:grid;gap:6px}
.field label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.field input,.field textarea{
  font:inherit;font-size:16px;color:var(--text);background:var(--surface);
  border:1px solid var(--line);border-radius:8px;padding:11px 13px;width:100%;
  transition:border-color .15s ease,box-shadow .15s ease}
.field textarea{resize:vertical;min-height:120px;line-height:1.55}
.field input:hover,.field textarea:hover{border-color:#BBD8EE}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(21,145,220,.16)}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:#B4472F}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#cf-submit{
  font-family:var(--display);font-weight:700;font-size:16px;cursor:pointer;
  background:var(--accent);color:#fff;border:0;border-radius:8px;padding:13px 26px;
  justify-self:start;transition:background .15s ease}
#cf-submit:hover{background:#1180C4}
#cf-submit:focus-visible{outline:2px solid var(--sig-ink);outline-offset:3px}
#cf-submit[disabled]{opacity:.55;cursor:not-allowed}
.cf-status{font-size:14.5px;font-weight:500;margin:0}
.cf-status:empty{display:none}
.cf-status.is-ok{color:#1B6B3A}
.cf-status.is-err{color:#B4472F}
#contact-form.is-sent .field,#contact-form.is-sent .cf-turnstile,#contact-form.is-sent #cf-submit{display:none}
@media print{nav.site-nav,#contact-form{display:none}body{background:#fff;font-size:11pt}}
