:root {
  --ink: #1c2b27;
  --ink-2: #33433e;
  --muted: #5b6863;
  --line: #dcd9d0;
  --line-soft: #ebe8e0;
  --paper: #ffffff;
  --paper-2: #f6f5f1;
  --primary: #1d5c4d;
  --primary-hover: #164a3e;
  --primary-soft: #e6f0ec;
  --primary-ink: #123d33;
  --primary-line: #b7d3c9;
  --accent: #e8c77a;
  --accent-soft: #fbf3df;
  --ok: #1a7f4b;
  --ok-soft: #e6f4ec;
  --warn: #b45309;
  --warn-soft: #fdf3e3;
  --danger: #b42318;
  --danger-soft: #fdeceb;
  --radius: 8px;
  --shadow: 0 1px 2px rgba(28, 43, 39, 0.06), 0 4px 16px rgba(28, 43, 39, 0.06);
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--paper);
}
img, svg { max-width: 100%; }
a { color: var(--primary); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--primary-hover); }
h1, h2, h3, h4 { line-height: 1.2; letter-spacing: -0.015em; margin: 0 0 0.5em; color: var(--ink); }
h1 { font-size: 2.5rem; font-weight: 750; }
h2 { font-size: 1.75rem; font-weight: 700; }
h3 { font-size: 1.2rem; font-weight: 650; }
p { margin: 0 0 1em; }
ul, ol { padding-left: 1.3em; }
li { margin-bottom: 0.35em; }
strong { font-weight: 650; }
.muted { color: var(--muted); }
.small { font-size: 0.9rem; }
.mono { font-family: var(--mono); }
.wrap { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.narrow { max-width: 760px; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--ink); color: #fff; padding: 8px 12px; border-radius: 4px; z-index: 100; }
.skip:focus { left: 8px; }
:focus-visible { outline: 3px solid #f5b400; outline-offset: 2px; }

/* Independent-provider disclaimer. Quiet, but has to stay readable: small type on a
   tinted bar, with full contrast text rather than grey on grey. */
.disclaimer-bar { background: var(--paper-2); border-bottom: 1px solid var(--line-soft); color: var(--ink-2); font-size: 0.8rem; line-height: 1.45; }
.disclaimer-bar .wrap { padding-top: 7px; padding-bottom: 7px; }
@media (max-width: 700px) { .disclaimer-bar { font-size: 0.75rem; } }

/* Header */
.site-header { border-bottom: 1px solid var(--line-soft); background: var(--paper); position: sticky; top: 0; z-index: 50; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 64px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 1.25rem; color: var(--ink); text-decoration: none; letter-spacing: -0.01em; }
.brand strong { font-weight: 800; }
.nav { display: flex; align-items: center; gap: 22px; font-size: 0.95rem; }
.nav a:not(.btn) { color: var(--ink-2); text-decoration: none; font-weight: 500; }
.nav a:not(.btn):hover { color: var(--primary); }
@media (max-width: 820px) {
  .nav a:not(.btn) { display: none; }
}

/* Buttons */
.btn {
  display: inline-block; font: inherit; font-weight: 650; text-decoration: none; border: 2px solid transparent; border-radius: var(--radius);
  padding: 12px 22px; line-height: 1.2; cursor: pointer; text-align: center; transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.btn-primary { background: var(--primary); color: #fff; border-color: var(--primary); }
.btn-primary:hover { background: var(--primary-hover); border-color: var(--primary-hover); color: #fff; }
.btn-secondary { background: var(--paper); color: var(--ink); border-color: var(--line); }
.btn-secondary:hover { border-color: var(--ink); color: var(--ink); }
.btn-danger { background: var(--danger); color: #fff; border-color: var(--danger); }
.btn-sm { padding: 9px 16px; font-size: 0.92rem; }
.btn-lg { padding: 16px 30px; font-size: 1.1rem; }
.btn-block { display: block; width: 100%; }
.btn:disabled { opacity: 0.6; cursor: default; }

/* Hero */
.hero { padding: 64px 0 56px; background: linear-gradient(180deg, #faf9f5 0%, #ffffff 100%); border-bottom: 1px solid var(--line-soft); }
.hero-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 56px; align-items: center; }
.eyebrow { display: inline-block; font-size: 0.85rem; font-weight: 650; letter-spacing: 0.04em; text-transform: uppercase; color: var(--primary); margin-bottom: 14px; }
.hero h1 { font-size: 3rem; margin-bottom: 18px; }
.hero .lede { font-size: 1.2rem; color: var(--ink-2); max-width: 34em; margin-bottom: 26px; }
.hero-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.cta-note { font-size: 0.9rem; color: var(--muted); }
.hero-proof { display: flex; gap: 12px 22px; flex-wrap: wrap; margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line-soft); font-size: 0.95rem; color: var(--ink-2); }
.hero-proof li { list-style: none; margin: 0; display: flex; align-items: center; gap: 8px; }
.hero-proof ul { display: contents; padding: 0; margin: 0; }
.check { width: 18px; height: 18px; flex: none; border-radius: 50%; background: var(--ok-soft); color: var(--ok); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; }

/* Emphasis */
mark { background: linear-gradient(transparent 55%, #ffe9a8 55%); color: inherit; padding: 0 2px; border-radius: 2px; }

/* Sections */
.section { padding: 64px 0; }
.section-alt { background: var(--paper-2); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.section-head { max-width: 720px; margin-bottom: 36px; }
.section-head p { color: var(--ink-2); font-size: 1.08rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }
.card h3 { margin-bottom: 8px; }
.card p:last-child { margin-bottom: 0; }
.step { position: relative; padding-left: 56px; }
.step-num { position: absolute; left: 0; top: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--ink); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.step p { color: var(--ink-2); }
/* Cards in "How it works": the number sits inside the card, above the title. */
.card.step { padding-left: 24px; }
.card.step .step-num { position: static; width: 36px; height: 36px; margin-bottom: 14px; font-size: 0.95rem; }

/* Reasons list */
.reasons { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 32px; padding: 0; margin: 0; list-style: none; }
.reasons li { display: grid; grid-template-columns: 28px 1fr; gap: 12px; margin: 0; }
.reasons .check { margin-top: 4px; width: 22px; height: 22px; }
.reasons strong { display: block; }
.reasons span.desc { color: var(--ink-2); font-size: 0.97rem; }

/* Next steps line */
.next-steps { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line-soft); }
.next-steps h3 { margin-bottom: 18px; }
.steps-line { list-style: none; padding: 0; margin: 0 0 14px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; position: relative; }
.steps-line::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 2px; background: var(--line); }
.steps-line li { position: relative; padding: 0 16px 0 0; margin: 0; display: grid; gap: 4px; align-content: start; font-size: 0.92rem; }
.steps-line .dot { width: 16px; height: 16px; border-radius: 50%; background: var(--paper); border: 2px solid var(--line); position: relative; z-index: 1; margin-bottom: 8px; }
.steps-line .dot.done { background: var(--ok); border-color: var(--ok); }
.steps-line .dot.now { background: var(--primary); border-color: var(--primary); box-shadow: 0 0 0 5px var(--primary-soft); }
.steps-line strong { color: var(--ink); }
.steps-line span:not(.dot) { color: var(--muted); font-size: 0.88rem; }
.steps-line li:nth-child(2) strong { color: var(--primary); }

/* Letter illustration */
.letter { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 22px 24px; font-family: var(--mono); font-size: 0.8rem; line-height: 1.5; color: var(--ink-2); position: relative; box-shadow: var(--shadow); }
.letter .stamp { position: absolute; top: 14px; right: 16px; font-size: 0.7rem; border: 1px solid var(--line); padding: 2px 6px; border-radius: 3px; color: var(--muted); background: var(--paper-2); }
.letter .ln { height: 8px; background: var(--line-soft); border-radius: 4px; margin: 8px 0; }
.letter .ln.w50 { width: 50%; } .letter .ln.w70 { width: 70%; } .letter .ln.w30 { width: 30%; }
.letter .ein { font-size: 1.1rem; font-weight: 700; color: var(--ink); letter-spacing: 0.08em; margin: 10px 0; }
.letter-caption { font-size: 0.85rem; color: var(--muted); margin-top: 10px; }

/* Pricing */
.price-card { max-width: 520px; margin: 0 auto; background: var(--paper); border: 2px solid var(--ink); border-radius: 12px; padding: 34px 36px; text-align: left; }
.price-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.price-amount { font-size: 3rem; font-weight: 800; letter-spacing: -0.03em; }
.price-amount small { font-size: 1rem; font-weight: 500; color: var(--muted); letter-spacing: 0; }
.price-list { list-style: none; padding: 0; margin: 18px 0 26px; }
.price-list li { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; }
.price-list .check { margin-top: 4px; }
.price-guarantee { margin-top: 14px; font-size: 0.92rem; color: var(--ink-2); background: var(--ok-soft); border-radius: 6px; padding: 10px 12px; }

/* FAQ */
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { cursor: pointer; padding: 18px 36px 18px 0; font-weight: 650; font-size: 1.05rem; list-style: none; position: relative; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 1.5rem; font-weight: 300; color: var(--muted); }
.faq-item[open] summary::after { content: "\2212"; }
.faq-a { padding: 0 0 18px; color: var(--ink-2); max-width: 760px; }
.faq-a p:last-child { margin-bottom: 0; }

/* CTA band */
.cta-band { background: var(--ink); color: #fff; padding: 56px 0; }
.cta-band h2 { color: #fff; margin-bottom: 8px; }
.cta-band p { color: #c9d1e0; margin: 0; max-width: 40em; }
.cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.cta-actions { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.cta-band .cta-note { color: #aeb8ca; }

/* Page header */
.page-head { padding: 48px 0 32px; border-bottom: 1px solid var(--line-soft); background: var(--paper-2); }
.page-head h1 { margin-bottom: 10px; font-size: 2.2rem; }
.page-head p { color: var(--ink-2); font-size: 1.08rem; max-width: 40em; margin: 0; }
.crumbs { font-size: 0.88rem; color: var(--muted); margin-bottom: 14px; }
.crumbs a { color: var(--muted); }

/* Article */
.article { padding: 44px 0 64px; }
.article-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; }
.prose { max-width: 720px; }
.prose h2 { font-size: 1.5rem; margin-top: 2em; }
.prose h3 { margin-top: 1.6em; }
.prose p, .prose li { color: var(--ink-2); }
.prose table { width: 100%; border-collapse: collapse; margin: 1.2em 0; font-size: 0.95rem; }
.prose th, .prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.prose th { background: var(--paper-2); font-weight: 650; }
.prose .note { background: var(--warn-soft); border-left: 4px solid var(--warn); padding: 12px 16px; border-radius: 0 6px 6px 0; font-size: 0.95rem; }
.prose .tip { background: var(--primary-soft); border-left: 4px solid var(--primary); padding: 12px 16px; border-radius: 0 6px 6px 0; font-size: 0.95rem; }
.prose .meta { font-size: 0.88rem; color: var(--muted); }
.aside-card { background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; position: sticky; top: 84px; }
.aside-card h3 { margin-bottom: 6px; }
.aside-card p { font-size: 0.95rem; color: var(--ink-2); }
.aside-card .btn { margin-top: 6px; }
.aside-links { list-style: none; padding: 0; margin: 0; }
.aside-links li { margin: 0 0 10px; font-size: 0.95rem; }
.guide-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.guide-list li { margin: 0; }
.guide-list a { display: block; height: 100%; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); text-decoration: none; color: var(--ink); background: var(--paper); }
.guide-list a:hover { border-color: var(--primary); }
.guide-list h3 { font-size: 1.08rem; margin-bottom: 6px; color: var(--ink); }
.guide-list p { margin: 0; font-size: 0.93rem; color: var(--muted); }

/* Forms */
.form-section { padding: 40px 0 64px; }
.form-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: start; }
fieldset { border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 24px 8px; margin: 0 0 26px; }
legend { font-weight: 700; font-size: 1.05rem; padding: 0 8px; }
.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.field { margin-bottom: 18px; display: flex; flex-direction: column; }
/* Rows put fields side by side; hints differ in length, so push controls to a shared baseline. */
.field > input, .field > select, .field > textarea, .field > .radio-row { margin-top: auto; }
.field-full { grid-column: 1 / -1; }
label { display: block; font-weight: 600; font-size: 0.95rem; margin-bottom: 6px; }
.hint { display: block; font-weight: 400; color: var(--muted); font-size: 0.85rem; margin-top: 2px; }
input[type=text], input[type=email], input[type=tel], input[type=date], input[type=number], input[type=password], input[type=search], select, textarea {
  width: 100%; font: inherit; font-size: 1rem; padding: 10px 12px; border: 1px solid #b9c1cf; border-radius: 6px; background: #fff; color: var(--ink);
}
/* Date, number and select controls each have their own intrinsic height, which leaves
   side-by-side fields visibly out of line. One fixed height keeps every row even. */
input[type=text], input[type=email], input[type=tel], input[type=date], input[type=number], input[type=password], input[type=search], select {
  height: 44px; line-height: 1.2;
}
.radio-row { min-height: 44px; align-items: center; }
input:focus, select:focus, textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); outline: none; }
textarea { min-height: 96px; resize: vertical; }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--danger); }
.error-text { color: var(--danger); font-size: 0.88rem; margin-top: 5px; }
.check-row { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 0.95rem; }
.check-row input { margin-top: 5px; flex: none; width: 18px; height: 18px; }
.radio-row { display: flex; gap: 20px; font-weight: 400; }
.radio-row label { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; }
.alert { padding: 14px 16px; border-radius: var(--radius); margin-bottom: 22px; border: 1px solid; }
.alert-error { background: var(--danger-soft); border-color: #f3b4ae; color: #7a1b13; }
.alert-warn { background: var(--warn-soft); border-color: #f1d29c; color: #6b3a05; }
.alert-ok { background: var(--ok-soft); border-color: #a9dcbd; color: #0f5a33; }
.alert-info { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-ink); }
.alert ul { margin: 6px 0 0; }
.summary-card { background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; position: sticky; top: 84px; }
.summary-card h2 { font-size: 1.1rem; }
.summary-row { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 0.97rem; }
.summary-row:last-of-type { border-bottom: 0; }
.summary-total { font-weight: 700; font-size: 1.2rem; }
.summary-row-tight { border-bottom: 0; padding-bottom: 0; }
.summary-note { font-size: 0.82rem; color: var(--muted); padding: 2px 0 8px; border-bottom: 1px solid var(--line); }
.pay-note { font-size: 0.88rem; color: var(--muted); }
.trust-list { list-style: none; padding: 0; margin: 14px 0 0; font-size: 0.92rem; }
.trust-list li { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 6px; }
.trust-list .check { margin-top: 3px; }
.form-actions { margin-top: 10px; }
.form-actions .cta-note { display: block; margin-top: 10px; }

/* Stepped order form */
.stepbar { display: none; }
.js-steps .stepbar { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; list-style: none; padding: 0; margin: 0 0 28px; counter-reset: step; }
.stepbar li { display: grid; grid-template-columns: 26px 1fr; align-items: center; gap: 8px; margin: 0; padding-top: 10px; border-top: 3px solid var(--line); color: var(--muted); font-size: 0.88rem; }
.stepbar-num { width: 26px; height: 26px; border-radius: 50%; background: var(--line-soft); color: var(--muted); display: grid; place-items: center; font-size: 0.8rem; font-weight: 700; }
.stepbar li[data-state="current"] { border-top-color: var(--primary); color: var(--ink); font-weight: 650; }
.stepbar li[data-state="current"] .stepbar-num { background: var(--primary); color: #fff; }
.stepbar li[data-state="done"] { border-top-color: var(--ok); color: var(--ink-2); }
.stepbar li[data-state="done"] .stepbar-num { background: var(--ok-soft); color: var(--ok); }
.stepbar li[data-state="done"] .stepbar-num { font-size: 0.9rem; }
.stepbar li[data-state="done"] .stepbar-num span { display: none; }
.stepbar li[data-state="done"] .stepbar-num::after { content: "\2713"; }

.js-steps .step:not([data-active]) { display: none; }
.step-nav { display: flex; align-items: flex-start; gap: 12px; margin-top: 4px; flex-wrap: wrap; }
.step-nav-final { align-items: flex-start; flex-wrap: nowrap; }
.step-nav-final .form-actions { flex: 1 1 0; min-width: 0; }
.step-nav .form-actions { margin-top: 0; }
[data-next], [data-prev] { display: none; }
.js-steps [data-next], .js-steps [data-prev] { display: inline-block; }

/* Review list on the final step */
.review { border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; margin-bottom: 22px; background: var(--paper-2); }
.review[hidden] { display: none; }
.review-h { font-size: 1.05rem; margin-bottom: 6px; }
.review-list { display: grid; grid-template-columns: auto 1fr auto; gap: 0; margin: 14px 0 0; font-size: 0.93rem; }
.review-list dt { grid-column: 1; color: var(--muted); padding: 7px 16px 7px 0; border-top: 1px solid var(--line); }
.review-list dd { grid-column: 2 / 4; margin: 0; padding: 7px 0; border-top: 1px solid var(--line); white-space: pre-line; display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.review-list dt:first-of-type, .review-list dt:first-of-type + dd { border-top: 0; }
.review-edit { background: none; border: 0; padding: 0; font: inherit; font-size: 0.85rem; color: var(--primary); cursor: pointer; text-decoration: underline; flex: none; }
.review-edit:hover { color: var(--primary-hover); }

/* Status */
.status-box { border: 1px solid var(--line); border-radius: var(--radius); padding: 26px; background: var(--paper); }
.status-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 24px; margin: 0 0 20px; }
.status-grid dt { font-size: 0.85rem; color: var(--muted); margin-top: 10px; }
.status-grid dd { margin: 0; font-weight: 600; }
.badge { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 0.85rem; font-weight: 650; }
.badge-received, .badge-state_filed, .badge-dissolved, .badge-ein_closure_sent { background: var(--primary-soft); color: var(--primary-ink); }
.badge-waiting_customer { background: var(--accent-soft); color: #6b4a00; }
.badge-archived { background: var(--line-soft); color: var(--muted); }
.badge-completed { background: var(--ok-soft); color: var(--ok); }
.badge-pending_payment { background: var(--warn-soft); color: var(--warn); }
.badge-refunded, .badge-cancelled { background: var(--line-soft); color: var(--muted); }
.timeline { list-style: none; padding: 0; margin: 20px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.timeline li { padding: 12px 14px; border-radius: 6px; background: var(--paper-2); border: 1px solid var(--line); font-size: 0.92rem; color: var(--muted); }
.timeline li.done { background: var(--ok-soft); border-color: #a9dcbd; color: var(--ok); font-weight: 600; }
.timeline li.current { background: var(--primary-soft); border-color: var(--primary-line); color: var(--primary-ink); font-weight: 600; }

/* Legal prose */
.legal { padding: 40px 0 64px; }
.legal .prose h2 { font-size: 1.25rem; margin-top: 1.8em; }
.placeholder { background: #fff3bf; padding: 0 4px; border-radius: 3px; }

/* Admin */
.admin-bar { background: var(--ink); color: #fff; }
.admin-bar .wrap { display: flex; align-items: center; justify-content: space-between; min-height: 52px; gap: 20px; }
.admin-bar a { color: #fff; margin-right: 18px; font-size: 0.95rem; }
.admin-bar form { margin: 0; }
.admin-bar button { background: transparent; color: #c9d1e0; border: 1px solid #55607a; border-radius: 4px; padding: 4px 10px; cursor: pointer; font: inherit; font-size: 0.85rem; }
.admin { padding: 28px 0 64px; font-size: 0.95rem; }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { text-align: left; padding: 10px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.table th { font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); background: var(--paper-2); }
.filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; align-items: center; }
.filters a { padding: 5px 10px; border-radius: 999px; border: 1px solid var(--line); text-decoration: none; color: var(--ink-2); font-size: 0.88rem; }
.filters a.active { background: var(--ink); color: #fff; border-color: var(--ink); }
.filters form { display: flex; gap: 8px; margin-left: auto; }
.filters input { width: 260px; padding: 6px 10px; }
.admin-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 28px; align-items: start; }
.kv { display: grid; grid-template-columns: 160px 1fr; gap: 6px 14px; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; white-space: pre-line; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; margin-bottom: 20px; background: #fff; }
.panel h2 { font-size: 1.1rem; margin-bottom: 12px; }
.events { list-style: none; padding: 0; margin: 0; font-size: 0.9rem; }
.events li { padding: 6px 0; border-bottom: 1px solid var(--line-soft); display: grid; grid-template-columns: 150px 1fr; gap: 12px; }
.events time { color: var(--muted); font-family: var(--mono); font-size: 0.8rem; }
.login-box { max-width: 400px; margin: 64px auto; }
/* Honeypot: invisible to people, filled in by naive bots. Not display:none, which some bots skip. */
.hp-field { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Footer */
.site-footer { border-top: 1px solid var(--line); background: var(--paper-2); padding: 48px 0 28px; font-size: 0.95rem; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 32px; }
.brand-footer { font-size: 1.15rem; margin-bottom: 8px; gap: 0; }
.footer-h { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); margin-bottom: 10px; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin-bottom: 6px; }
.footer-links a { color: var(--ink-2); text-decoration: none; }
.footer-links a:hover { color: var(--primary); text-decoration: underline; }
.footer-legal { margin-top: 36px; padding-top: 22px; border-top: 1px solid var(--line); }

/* Utilities (inline styles are blocked by CSP) */
.h-md { font-size: 1.5rem; }
.h-sm { font-size: 1.15rem; }
.scroll-x { overflow-x: auto; }
.mb-0 { margin-bottom: 0 !important; }
.mb-12 { margin-bottom: 12px; }
.mb-14 { margin-bottom: 14px; }
.mb-28 { margin-bottom: 28px; }
.mt-10 { margin-top: 10px; }
.mt-14 { margin-top: 14px; }
.mt-20 { margin-top: 20px; }
.mt-22 { margin-top: 22px; }
.mt-26 { margin-top: 26px; }
.center { text-align: center; }
.mx-auto { margin-left: auto; margin-right: auto; }
.pad-40 { padding: 40px 20px; }
.static { position: static; }
.align-center { align-items: center; }
.order-no { font-size: 1.3rem; letter-spacing: 0.05em; }

/* Consent notice: a small card in the corner rather than a bar across the page, so it
   stays out of the way of the order CTA. Both buttons are the same size and the same
   style, so rejecting is exactly as easy as accepting. */
.consent { position: fixed; left: 16px; bottom: 16px; z-index: 60; width: min(360px, calc(100vw - 32px)); background: var(--paper); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 6px 24px rgba(28, 43, 39, 0.14); padding: 14px 16px; font-size: 0.85rem; }
.consent[hidden] { display: none; }
.consent-text { margin: 0 0 12px; color: var(--ink-2); line-height: 1.5; }
.consent-actions { display: flex; gap: 8px; }
.consent-actions .btn { flex: 1 1 0; }
@media (max-width: 700px) { .consent { left: 8px; right: 8px; bottom: 8px; width: auto; } }

.check-warn { background: var(--accent-soft); color: #8a5a00; }

.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }

/* Packages */
.packages { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; align-items: stretch; max-width: 820px; margin: 0 auto; }
.package { position: relative; display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 30px 26px 26px; }
.package .price-list { flex: 1; margin-bottom: 22px; }
.package-featured { border: 2px solid var(--primary); box-shadow: var(--shadow); }
.package-tag { position: absolute; top: -12px; left: 22px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; background: var(--primary); color: #fff; border-radius: 999px; padding: 4px 10px; }
.package-tag-alt { background: var(--accent); color: var(--ink); }
.package h3 { margin-bottom: 10px; }
.package-price { font-size: 2.2rem; font-weight: 750; letter-spacing: -0.02em; line-height: 1.1; }
.package-price small { font-size: 0.9rem; font-weight: 600; color: var(--muted); letter-spacing: 0; }
.package-extra { margin: 6px 0 0; font-size: 0.88rem; color: var(--muted); }
.package-excludes { margin: -8px 0 22px; font-size: 0.85rem; color: var(--muted); padding: 10px 12px; background: var(--paper-2); border-radius: var(--radius); }
.package-choice .package-excludes { margin: 8px 0 0; }
.package-short { margin: 10px 0 0; color: var(--ink-2); }

.trust-grid .card h3 { color: var(--primary-ink); }

/* States */
.state-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.state-grid li { margin: 0; }
.state-grid a { display: block; height: 100%; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); color: var(--ink); text-decoration: none; transition: border-color 0.15s; }
.state-grid a:hover { border-color: var(--primary); color: var(--ink); }
.state-name { display: block; font-weight: 650; }
.state-fee { display: block; font-size: 0.9rem; color: var(--primary-ink); }
.state-doc { display: block; font-size: 0.8rem; color: var(--muted); }

/* Order form choices */
.choice-list, .package-choices { display: grid; gap: 10px; margin-top: 6px; }
.choice, .package-choice { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); cursor: pointer; font-weight: 400; transition: border-color 0.15s, background 0.15s; }
.choice input, .package-choice input { margin-top: 5px; flex: none; width: 18px; height: 18px; accent-color: var(--primary); }
.choice:has(input:checked), .package-choice:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); }
.choice-desc { display: block; font-size: 0.9rem; color: var(--ink-2); }
.choice-note { display: block; font-size: 0.82rem; color: var(--primary-ink); margin-top: 6px; font-weight: 600; }
.package-choice-body { flex: 1; }
.package-choice-head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.package-choice-price { font-weight: 750; white-space: nowrap; }
.package-choice-price small { font-weight: 500; color: var(--muted); }
.package-choice-list { margin: 6px 0 0; padding-left: 1.1em; font-size: 0.88rem; color: var(--ink-2); }
.package-choice-list li { margin-bottom: 2px; }
.radio-col { display: grid; gap: 8px; margin-top: 6px; }
.radio-col label { display: inline-flex; align-items: center; gap: 8px; font-weight: 400; }
.fields-stack .field { margin-bottom: 18px; }

/* Authorization */
.auth-doc { max-height: 340px; overflow-y: auto; padding: 18px 20px; margin: 6px 0 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-2); font-size: 0.92rem; line-height: 1.55; }
.auth-doc-h { font-size: 1rem; margin-bottom: 10px; }
.auth-doc ol { padding-left: 1.4em; }
.auth-doc p:last-child { margin-bottom: 0; }
.auth-field { background: var(--accent-soft); border-radius: 3px; padding: 0 1px; font-weight: 600; }
.auth-doc-print { max-height: none; overflow: visible; }
.signature-input { font-family: "Snell Roundhand", "Segoe Script", "Brush Script MT", cursive; font-size: 1.35rem; }
.summary-overdue { margin: 12px 0 0; padding: 10px 12px; font-size: 0.85rem; line-height: 1.45; border-radius: var(--radius); background: var(--accent-soft); color: var(--ink-2); }
.state-note { padding: 10px 12px; border-radius: var(--radius); background: var(--accent-soft); color: var(--ink-2); }
.inline-form { display: inline; margin-left: 8px; }
.print-doc { padding: 32px 0; }
@media print { .print-doc { padding: 0; } }

[hidden] { display: none !important; }

/* Responsive overrides: keep these last so they win over component defaults */
@media (max-width: 900px) {
  h1 { font-size: 2rem; }
  .hero { padding: 40px 0; }
  .hero h1 { font-size: 2.1rem; }
  .hero-grid, .grid-3, .grid-2, .reasons, .article-grid, .form-grid, .guide-list, .admin-grid, .status-grid, .packages { grid-template-columns: 1fr; }
  .grid-4 { grid-template-columns: 1fr 1fr; }
  .packages { gap: 28px; }
  .steps-line { grid-template-columns: 1fr; gap: 14px; }
  .js-steps .stepbar { gap: 6px; }
  .stepbar li { grid-template-columns: 1fr; gap: 0; font-size: 0.72rem; padding-top: 8px; }
  .stepbar .stepbar-num { display: none; }
  .step-nav { flex-direction: column; align-items: stretch; }
  .step-nav .btn { width: 100%; }
  .step-nav-final .form-actions { flex: none; }
  .review-list { grid-template-columns: 1fr; }
  .review-list dt { grid-column: 1; padding-bottom: 0; border-top: 1px solid var(--line); }
  .review-list dd { grid-column: 1; padding-top: 2px; border-top: 0; }
  .steps-line::before { left: 7px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
  .steps-line li { grid-template-columns: 16px 1fr; grid-template-areas: 'dot title' 'dot desc'; column-gap: 12px; }
  .steps-line .dot { grid-area: dot; margin: 2px 0 0; }
  .steps-line strong { grid-area: title; }
  .steps-line span:not(.dot) { grid-area: desc; }
  .hero-grid { gap: 32px; }
  .fields { grid-template-columns: 1fr; }
  .section { padding: 44px 0; }
  .aside-card, .summary-card { position: static; }
  .timeline { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .kv { grid-template-columns: 1fr; }
  .events li { grid-template-columns: 1fr; gap: 2px; }
}
@media (max-width: 560px) {
  .footer-grid, .grid-4 { grid-template-columns: 1fr; }
  .price-card { padding: 24px; }
  .btn-lg { width: 100%; }
}

/* Hero ledger: what an open LLC keeps costing, against closing it once. */
.ledger { margin: 0; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 26px 26px 22px; box-shadow: 0 18px 40px -28px rgba(28, 43, 39, 0.35); }
.ledger-title { font-weight: 700; font-size: 1.05rem; color: var(--ink); margin-bottom: 14px; }
.ledger-list { list-style: none; margin: 0; padding: 0; }
.ledger-list li { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px dashed var(--line); margin: 0; }
.ledger-list li:first-child { border-top: 1px dashed var(--line); }
.ledger-list strong { display: block; font-size: 0.98rem; color: var(--ink); }
.ledger-list span:not(.ledger-when) { display: block; font-size: 0.86rem; color: var(--ink-2); margin-top: 2px; }
.ledger-when { flex: none; display: inline-flex; align-items: center; gap: 5px; font-size: 0.78rem; font-weight: 650; color: #7a5600; background: var(--accent-soft); border: 1px solid #ecd9a8; border-radius: 999px; padding: 3px 9px; white-space: nowrap; }
.ledger-close { position: relative; margin-top: 18px; padding: 16px 148px 16px 16px; background: var(--primary-soft); border: 1px solid var(--primary-line); border-radius: var(--radius); }
.ledger-close strong { display: block; color: var(--primary-ink); font-size: 1rem; }
.ledger-close span:not(.stamp) { display: block; font-size: 0.88rem; color: var(--ink-2); margin-top: 3px; }
/* The state's "filed" stamp, landing once when the page opens. */
.stamp { position: absolute; right: 14px; top: 50%; padding: 6px 10px; font-size: 0.82rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--primary); border: 2px solid var(--primary); border-radius: 6px; box-shadow: inset 0 0 0 2px var(--primary-soft), inset 0 0 0 3px var(--primary); background: transparent; transform: translateY(-50%) rotate(-9deg); opacity: 0.9; animation: stamp 0.45s cubic-bezier(0.2, 0.9, 0.3, 1.2) 0.7s both; }
@keyframes stamp { from { opacity: 0; transform: translateY(-50%) rotate(-9deg) scale(1.6); } to { opacity: 0.9; transform: translateY(-50%) rotate(-9deg) scale(1); } }
@media (prefers-reduced-motion: reduce) { .stamp { animation: none; } }
@media (max-width: 520px) {
  .ledger { padding: 20px 18px 18px; }
  .ledger-list li { flex-direction: column; gap: 6px; }
  .ledger-close { padding-right: 16px; padding-bottom: 54px; }
  .stamp { top: auto; bottom: 12px; transform: rotate(-6deg); animation: none; }
}

/* Small line icons on the trust cards. */
.trust-icon svg { width: 22px; height: 22px; }
.trust-icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; background: var(--primary-soft); color: var(--primary); margin-bottom: 14px; }
