/* Final shared role tokens. Seven sizes, Georgia headings, DM Sans controls.
   This file deliberately wins over the recovered legacy stylesheets. */
:root {
  --text-small: 13px;
  --text-body: 16px;
  --text-lead: 20px;
  --text-h3: 24px;
  --text-h2: 32px;
  --text-h1: 40px;
  --text-display: 56px;
  --space-half: 4px;
  --space-1: 8px;
  --space-mid: 12px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 48px;
  --space-6: 64px;
  --space-7: 96px;
  --edge: 48px;
}
:root:root:root body { font: 400 var(--text-body)/1.6 'DM Sans', sans-serif; }
:root:root:root body * { font-size: inherit !important; }
:root:root:root body :is(p, li, td, th, input, select, textarea, button, summary, .button, .primary, .secondary, .text-link, .nav-assess) { font-size: var(--text-body) !important; line-height: 1.6; }
:root:root:root:root body :is(.assembly-node strong, .price-card li, .contact-form .button, .closing .button, .fee-details-bottom .button, .stack-hero .primary, .stack-hero .secondary, .home-anchor strong) { font-size: var(--text-body) !important; line-height: 1.6; }
:root:root:root body :is(h1, h2, h3, h4, h5, h6) { font-family: Georgia, serif; font-weight: 400; letter-spacing: -.025em; line-height: 1.2; }
:root:root:root body h1 { font-size: var(--text-h1) !important; }
:root:root:root body h2 { font-size: var(--text-h2) !important; }
:root:root:root body :is(h3, h4, h5, h6) { font-size: var(--text-h3) !important; }
:root:root:root body :is(.brand, .lede, .support, .vendor-price, .proof-lift, .proof-baseline, .guarantee-confidence) { font-size: var(--text-lead) !important; }
:root:root:root body :is(.plan-price, .proof-lead) { font-size: var(--text-display) !important; line-height: 1.1; }
:root:root:root body :is(.diy-total-bar strong, .fees h2) { font-size: var(--text-h1) !important; }
:root:root:root body :is(.plan-price span, .fees h2 span) { font-size: var(--text-body) !important; line-height: 1.5; }
:root:root:root body :is(small, figcaption, caption, .eyebrow, .source-label, .pricing-proof-source, .fee-comparison-note, .merchant-note, .diy-note, .plan-detail, .form-note, .node-number, .home-anchor span, .assembly-title, .assembly-hint, .assembly-outcome span, .story-outputs > span, .layers, footer p, footer a) { font-size: var(--text-small) !important; line-height: 1.6; }
:root:root:root body :is(.eyebrow, .assembly-title, .story-outputs > span, button, .button, .primary, .secondary) { text-transform: none !important; letter-spacing: normal !important; }
:root:root:root body :is(button, .button, .primary, .secondary) { font-family: 'DM Sans', sans-serif !important; }
:root:root:root header { min-height: 80px; }
:root:root:root .section { padding-block: var(--space-6); }
:root:root:root .section-head { margin-bottom: var(--space-4); }
:root:root:root footer { padding-block: var(--space-4); gap: var(--space-3); }
:root:root:root .eyebrow { margin-bottom: var(--space-2); }
:root:root:root :is(a, button, summary, input, select, textarea):focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
:root:root:root body :is(button, summary, .button, .primary, .secondary, .nav-assess) { min-height: 44px; }
:root:root:root body .guarantee-asterisk { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
:root:root:root body * { transition-duration: .2s !important; }
:root:root:root body.pricing-journal .section { padding-block: var(--space-5); }
:root:root:root body.pricing-journal .pricing-intro { padding-top: var(--space-2); padding-bottom: var(--space-4); }
:root:root:root body.pricing-journal .guarantee { padding-block: var(--space-2); }
:root:root:root body.pricing-journal .section-head { display: block; }
:root:root:root body.pricing-journal .section-head > p { margin-top: var(--space-2); }
:root:root:root body.pricing-journal .price-card.featured { border: 2px solid #eac57c; }
:root:root:root body.pricing-journal .price-card.featured .button:hover { background: #eac57c; color: #0b201a; }
:root:root:root body.pricing-journal .vendor summary { min-height: 80px; }
:root:root:root body.pricing-journal .vendor summary:focus-visible { outline-offset: -4px; }
:root:root:root body.pricing-journal .vendor { transition: none !important; }
:root:root:root body.pricing-journal .plan-price { letter-spacing: -.04em; }
::selection { background: #0b201a; color: #eac57c; }
input, select, textarea { accent-color: #0b201a; caret-color: #0b201a; }
@media (max-width: 700px) {
  :root { --edge: 24px; }
  :root:root:root body h1 { font-size: var(--text-h2) !important; }
  :root:root:root body .stack-hero h1 { font-size: var(--text-h1) !important; }
  :root:root:root .section { padding-block: var(--space-5); }
  :root:root:root body.pricing-journal .section { padding-block: var(--space-4); }
  :root:root:root body.pricing-journal .pricing-intro { padding-top: var(--space-2); }
  :root:root:root body.pricing-journal .plan-price { font-size: var(--text-h1) !important; }
}
@media (prefers-reduced-motion: reduce) {
  :root:root:root body *, :root:root:root body *::before, :root:root:root body *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
