/* Wine History readability layer — editorial warmth with practical legibility */
:root {
  --ink-2: #3F3A35;
  --ink-3: #665F58;
  --ink-4: #817A72;
  --pad: 96px;
}

::selection { background: rgba(107, 30, 49, .18); color: var(--ink); }
body { text-rendering: optimizeLegibility; }
h1, h2, h3, h4 { font-weight: 400; letter-spacing: .015em; }
#home-hero h1 { font-weight: 400; }

/* Stronger editorial hierarchy across the whole site */
.sec { position: relative; }
.sec-head { max-width: 780px; margin-bottom: 42px; }
.sec-head h2,
.report-intro h2,
.legal-body > h2 {
  font-size: clamp(29px, 3.35vw, 46px);
  line-height: 1.42;
  letter-spacing: .025em;
}
.sec-head h2 { margin-top: 12px; }
.sec-head .sec-lead { max-width: 680px; margin-top: 18px; }
.sec-cream + .sec-cream,
.sec-ecru + .sec-ecru { border-top: 1px solid rgba(73, 61, 52, .09); }
.prose { max-width: 720px; }
.prose p + p { margin-top: 1.15em; }

.hd-nav a { font-size: 13px; font-weight: 500; letter-spacing: .045em; }
.hd-logo { font-size: 19px; }
.eyebrow {
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .2em;
  color: var(--ink-3);
}
.eyebrow::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 1px;
  margin-right: 10px;
  vertical-align: middle;
  background: currentColor;
  opacity: .65;
}

.page-hero h1 { font-size: clamp(30px, 3.6vw, 48px); line-height: 1.38; }
.page-hero .ph-lead,
.prose p,
.sec-head .sec-lead { font-size: 16.5px; line-height: 1.82; color: var(--ink-2); }

.report-intro > p,
.report-card p,
.report-card li,
.guide-step p,
.guide-step li,
.report-faq details p,
.seo-guide p,
.seo-guide li { font-size: 15.5px !important; line-height: 1.82 !important; color: var(--ink-2) !important; }
.prep-item p,
.flow-item p,
.trouble-card p,
.official-note,
.tool-source,
.legal-note,
.field-help { font-size: 13.5px !important; line-height: 1.75 !important; color: var(--ink-3) !important; }

.concept-card h3,
.feat-card h3,
.demo-link-card h3,
.trouble-card h3,
.prep-item strong {
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: .01em;
}
.concept-card p,
.feat-card p,
.demo-link-card p,
.why-text,
.what-kw span { font-size: 15.5px; line-height: 1.82; color: var(--ink-2); }

.concept-card,
.feat-card,
.demo-link-card,
.report-card,
.prep-item,
.trouble-card {
  border-color: rgba(79, 63, 52, .14) !important;
  box-shadow: 0 16px 44px rgba(39, 29, 24, .065);
}
.concept-card,
.feat-card,
.demo-link-card,
.report-card { position: relative; overflow: hidden; }
.concept-card::before,
.feat-card::before,
.demo-link-card::before,
.report-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--bdx);
  opacity: .82;
}
.report-card { transition: transform .22s ease, box-shadow .22s ease; }
.report-card:hover { transform: translateY(-3px); box-shadow: 0 22px 54px rgba(39,29,24,.10); }

.btn,
.tool-button,
.report-button,
.guide-button { font-size: 14px !important; font-weight: 500 !important; letter-spacing: .04em; }
.btn,
.tool-button,
.report-button,
.guide-button {
  min-height: 50px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 24px rgba(79, 19, 37, .15);
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.btn:hover,
.tool-button:hover,
.report-button:hover,
.guide-button:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(79,19,37,.22); }
.tool-field label { font-size: 13.5px !important; font-weight: 500 !important; }
.tool-input,
.unit-input input { font-size: 16px !important; }
.question > span { font-size: 16px !important; }

.ft-tagline { font-size: 13.5px; color: rgba(245,241,232,.62); }
.ft-nav-group a { font-size: 13px; color: rgba(245,241,232,.68); }
.ft-nav-group h4 { color: rgba(245,241,232,.55); }
.ft-bottom,
.ft-bottom a { color: rgba(245,241,232,.55); }

.sec-green .eyebrow,
.sec-ink .eyebrow { color: rgba(245,241,232,.68); }
.prose-light p { color: rgba(245,241,232,.82); }
.sec-has-photo .eyebrow { color: rgba(245,241,232,.75); }
.sec-has-photo .link-arr { color: rgba(245,241,232,.82); }
body:has(#home-hero.hero-has-photo) #hd:not(.solid) .hd-nav a,
body:has(.page-hero.ph-has-photo) #hd:not(.solid) .hd-nav a { color: rgba(245,241,232,.82); }
#home-hero.hero-has-photo .hero-sub { color: rgba(245,241,232,.86); }
#home-hero.hero-has-photo .hero-trust { color: rgba(245,241,232,.82); }
#home-hero.hero-has-photo h1 {
  color: rgba(250,247,239,.96);
  text-shadow: 0 3px 22px rgba(0,0,0,.58);
}
#home-hero.hero-has-photo .hero-kicker { color: rgba(245,241,232,.78); }

/* Tax support landing page: make the deadline an immediate visual anchor */
.deadline-box {
  grid-template-columns: minmax(210px, 240px) 1fr !important;
  border-left: 4px solid var(--bdx) !important;
  box-shadow: 0 14px 38px rgba(39, 29, 24, .06);
}
.deadline-date { white-space: nowrap; font-size: 32px !important; }
.deadline-date small { letter-spacing: .08em; }
.report-intro > p { max-width: 820px; }
.official-note { margin-top: 18px; }
.report-faq summary { font-size: 16px !important; padding-right: 28px; }
.report-faq details { padding: 24px 0 !important; }

/* Dense utility and legal pages should remain effortless to scan */
.legal-body h2 { font-size: 23px; border-bottom-color: rgba(79,30,45,.18); }
.legal-body p,
.legal-body ul,
.legal-body ol,
.legal-table { font-size: 15.5px; }
.guide-step h3,
.seo-guide h3 { font-size: 20px; margin-top: 32px; }

@media (max-width: 768px) {
  :root { --pad: 70px; }
  .in { padding-left: 24px; padding-right: 24px; }
  .page-hero h1 { font-size: clamp(29px, 8.5vw, 39px); }
  .page-hero .ph-lead,
  .prose p,
  .sec-head .sec-lead { font-size: 16px; line-height: 1.8; }
  .report-intro > p,
  .report-card p,
  .report-card li,
  .guide-step p,
  .guide-step li,
  .report-faq details p { font-size: 15px !important; }
  .eyebrow { font-size: 11px; letter-spacing: .16em; }
  .tool-input { min-height: 48px; }
  .sec-head { margin-bottom: 30px; }
  .sec-head h2,
  .report-intro h2 { font-size: clamp(27px, 7.7vw, 35px); }
  .deadline-box { grid-template-columns: 1fr !important; }
  .deadline-date { text-align: left !important; font-size: 29px !important; }
  .report-button,
  .tool-button,
  .guide-button { width: 100%; }
  .report-card:hover { transform: none; }
}

/* ============================================================
   2026 visual system — mineral gray / charcoal / mustard
   Presentation-only overrides. Existing HTML and application JS stay intact.
   ============================================================ */
:root {
  --cream: #f3f4f2;
  --ecru: #e9ebe9;
  --stone: #eef0ee;
  --white: #ffffff;
  --ink: #222423;
  --ink-2: #454947;
  --ink-3: #686d6a;
  --ink-4: #9ca19e;
  --green: #2b2e2c;
  --bdx: #c8a928;
  --bdx-2: #ae8e13;
  --amber: #c8a928;
  --border: rgba(34, 36, 35, .18);
  --border-lt: rgba(34, 36, 35, .10);
  --wrap: 1180px;
  --pad: 112px;
}

html { font-size: 17px; }
body {
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: .012em;
}
::selection { background: rgba(200, 169, 40, .35); color: var(--ink); }

/* Typography: readable first, expressive only where it adds meaning. */
p, li, dd, dt, label, input, select, textarea, button { font-feature-settings: "palt" 1; }
h1, h2, h3, h4 {
  color: var(--ink);
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: .018em;
  text-wrap: pretty;
}
.sec-head h2,
.report-intro h2,
.legal-body > h2 {
  font-size: clamp(32px, 3.6vw, 50px);
  line-height: 1.38;
}
.page-hero h1 { font-size: clamp(36px, 4.4vw, 58px); line-height: 1.3; }
.page-hero .ph-lead,
.prose p,
.sec-head .sec-lead {
  font-size: 17px;
  line-height: 1.9;
  color: var(--ink-2);
}
.eyebrow {
  color: var(--ink-2);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .18em;
}
.eyebrow::before { width: 30px; height: 2px; background: var(--bdx); opacity: 1; }

/* Calm mineral surfaces; hierarchy comes from space and tone, not decoration. */
.sec-cream { background: var(--cream); }
.sec-ecru { background: var(--ecru); }
.sec-stone { background: var(--stone); }
.sec-green,
.sec-ink { background-color: var(--ink); }
.sec-cream + .sec-cream,
.sec-ecru + .sec-ecru { border-color: var(--border-lt); }

/* Header remains legible on photography and becomes crisp on scroll. */
#hd.solid {
  background: rgba(243, 244, 242, .94);
  box-shadow: 0 1px 0 var(--border-lt);
}
.hd-in { max-width: var(--wrap); }
.hd-logo {
  color: var(--ink);
  font-size: 21px;
  font-style: normal;
  font-weight: 400;
  letter-spacing: .015em;
}
.hd-nav ul { gap: 24px; }
.hd-nav a { color: var(--ink-2); font-size: 12.5px; font-weight: 500; letter-spacing: .035em; }
.hd-nav a:hover,
.hd-nav a.active { color: var(--ink); }
.hd-cta { color: var(--ink) !important; position: relative; }
.hd-cta::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -7px;
  height: 2px;
  background: var(--bdx);
}

/* Photography carries the feeling; neutral overlays preserve depth and type. */
#home-hero.hero-has-photo::before {
  background:
    linear-gradient(90deg, rgba(20, 22, 21, .78) 0%, rgba(20, 22, 21, .50) 47%, rgba(20, 22, 21, .14) 78%),
    linear-gradient(0deg, rgba(20, 22, 21, .18), rgba(20, 22, 21, .04));
}
#home-hero { padding-left: max(32px, calc((100vw - var(--wrap)) / 2 + 60px)); }
.home-hero-in { max-width: 740px; }
#home-hero h1 {
  max-width: 720px;
  font-size: clamp(52px, 7.1vw, 92px);
  line-height: 1.18;
  letter-spacing: .005em;
  text-shadow: 0 3px 26px rgba(0, 0, 0, .38);
}
#home-hero.hero-has-photo h1 { color: #f7f7f4; }
#home-hero.hero-has-photo .hero-kicker,
#home-hero.hero-has-photo .hero-sub,
#home-hero.hero-has-photo .hero-trust { color: rgba(247, 247, 244, .90); }
.hero-kicker { font-size: 13px; font-weight: 500; letter-spacing: .10em; margin-bottom: 38px; }
.hero-rule { width: 58px; margin: 32px 0; border-top-width: 3px; }
#home-hero.hero-has-photo .hero-rule { border-color: var(--bdx); opacity: 1; }
.hero-sub { font-size: clamp(16px, 1.35vw, 19px); line-height: 2; }
.hero-trust { font-size: 13px; margin-bottom: 38px; }
.st-dot { background: var(--bdx) !important; }

/* Mustard signals action. Dark text keeps contrast comfortably readable. */
.btn,
.tool-button,
.report-button,
.guide-button { border-radius: 3px; box-shadow: none; font-weight: 500 !important; }
.btn-bdx,
.tool-button,
.report-button,
.guide-button {
  background: var(--bdx) !important;
  color: var(--ink) !important;
  border-color: var(--bdx) !important;
}
.btn-bdx:hover,
.tool-button:hover,
.report-button:hover,
.guide-button:hover { background: var(--bdx-2) !important; color: var(--ink) !important; }
.btn-outline { border-color: rgba(34, 36, 35, .34); color: var(--ink); }
#home-hero.hero-has-photo .btn-outline { color: #f7f7f4; border-color: rgba(247, 247, 244, .62); }
.link-arr:hover,
.scene-tag--after,
.jprev-cat,
.why-num { color: #866e0f; }

/* Photo / copy rhythm: large images, fewer artificial effects. */
.split-photo-media { min-height: 680px; }
.split-photo-text { padding-top: 112px; padding-bottom: 112px; }
.sec-has-photo::before { background: rgba(20, 22, 21, .62); }
.sec-photo-bold::before { background: linear-gradient(90deg, rgba(20,22,21,.82), rgba(20,22,21,.38)); }
.sec-green h2,
.sec-ink h2,
.sec-has-photo h2 { color: #f7f7f4; }
.sec-green .eyebrow,
.sec-ink .eyebrow,
.sec-has-photo .eyebrow { color: rgba(247,247,244,.82); }
.prose-light p,
.sec-has-photo .prose p { color: rgba(247,247,244,.88); }

/* Cards feel editorial, not like miniature app screenshots. */
.concept-card,
.feat-card,
.demo-link-card,
.report-card,
.prep-item,
.trouble-card,
.scene-card,
.jprev-card {
  border-color: var(--border) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
.concept-card::before,
.feat-card::before,
.demo-link-card::before,
.report-card::before { width: 2px; background: var(--bdx); }
.report-card:hover,
.scene-card:hover,
.jprev-card:hover { transform: translateY(-2px); box-shadow: 0 16px 38px rgba(34,36,35,.08) !important; }
.scene-n,
.demo-link-label,
.jprev-date { color: #75620f; }
.demo-link-card--featured {
  background: var(--cream) !important;
  color: var(--ink) !important;
  border-top-color: var(--bdx) !important;
}
.demo-link-card--featured:hover { background: var(--stone) !important; }

.report-badge,
.tool-hero-badge,
.progress-item.active span,
.progress-item.done span {
  background: var(--bdx) !important;
  border-color: var(--bdx) !important;
  color: var(--ink) !important;
}

/* Forms and tax tools inherit the same palette without changing behavior. */
.tool-input,
.unit-input input,
select,
textarea { background: #fff; border-color: rgba(34,36,35,.24) !important; color: var(--ink); }
.tool-input:focus,
.unit-input input:focus,
select:focus,
textarea:focus { border-color: var(--bdx) !important; box-shadow: 0 0 0 3px rgba(200,169,40,.20) !important; }
.deadline-box { border-left-color: var(--bdx) !important; background: rgba(255,255,255,.54); }

/* Footer: strong closing contrast without introducing another brand color. */
#ft { background: var(--ink); }
.ft-logo { color: #f7f7f4; font-style: normal; }
.ft-tagline,
.ft-nav-group a { color: rgba(247,247,244,.74); }
.ft-nav-group h4,
.ft-bottom,
.ft-bottom a { color: rgba(247,247,244,.55); }

@media (max-width: 900px) {
  :root { --pad: 88px; }
  .hd-nav ul { gap: 17px; }
  .hd-nav a { font-size: 11.5px; }
  .split-photo-media { min-height: 560px; }
}

@media (max-width: 768px) {
  :root { --pad: 76px; }
  html { font-size: 16px; }
  #home-hero { min-height: 92svh; padding: calc(var(--hd-h) + 70px) 24px 112px; background-position: 58% center; }
  #home-hero.hero-has-photo::before {
    background: linear-gradient(90deg, rgba(20,22,21,.80), rgba(20,22,21,.48));
  }
  #home-hero h1 { font-size: clamp(42px, 13.5vw, 62px); line-height: 1.22; }
  .hero-kicker { font-size: 12px; margin-bottom: 30px; }
  .hero-sub { font-size: 16px; line-height: 1.9; }
  .hero-ctas { align-items: stretch; }
  .hero-ctas .btn { width: 100%; }
  .page-hero h1 { font-size: clamp(33px, 9.5vw, 44px); }
  .sec-head h2,
  .report-intro h2 { font-size: clamp(30px, 8.5vw, 40px); }
  .page-hero .ph-lead,
  .prose p,
  .sec-head .sec-lead { font-size: 16px; line-height: 1.85; }
  .split-photo { grid-template-columns: 1fr; min-height: auto; }
  .split-photo-media { min-height: 112vw; max-height: 560px; }
  .split-photo-text { padding: 72px 24px; }
  .split-photo-text .sec-head,
  .split-photo-text .prose { max-width: 560px; width: 100%; margin-left: auto; margin-right: auto; }
  .hd-logo { font-size: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Small-copy legibility pass — keep every supporting label comfortably readable. */
.hd-nav a { font-size: 13.5px; font-weight: 500; }
.hero-kicker { font-size: 14px; font-weight: 500; }
.hero-trust { font-size: 14px; font-weight: 500; }
.eyebrow { font-size: 12.5px; font-weight: 500; }
.link-arr,
.demo-link-arr { font-size: 13.5px; font-weight: 500; }
.demo-link-label,
.card-n,
.jprev-date,
.scene-moment-num { font-size: 12.5px; font-weight: 500; }

.concept-card p,
.feat-card p,
.demo-link-card p,
.scene-card p,
.jprev-card p,
.report-card p,
.report-card li { font-size: 16px !important; line-height: 1.85 !important; }
.concept-card h3,
.feat-card h3,
.demo-link-card h3,
.report-card h3 { font-size: 18px; font-weight: 500; }

.tool-field label { font-size: 14.5px !important; font-weight: 500 !important; }
.tool-field label small,
.field-help,
.tool-source,
.legal-note,
.review-note,
.draft-tools span,
.official-note { font-size: 13px !important; line-height: 1.75 !important; }
.step-lead,
.minor-note,
.consent-box,
.consent-box label { font-size: 14px !important; line-height: 1.8 !important; }
.progress-item { font-size: 12px !important; font-weight: 500 !important; }
.question > span { font-size: 16.5px !important; font-weight: 500; }

.ft-tagline,
.ft-nav-group a { font-size: 14px; line-height: 1.75; }
.ft-nav-group h4 { font-size: 11.5px; font-weight: 500; letter-spacing: .18em; }
.ft-bottom,
.ft-bottom a { font-size: 12.5px; }

@media (max-width: 900px) and (min-width: 769px) {
  .hd-nav a { font-size: 12.5px; }
}

@media (max-width: 768px) {
  .hero-kicker,
  .hero-trust { font-size: 13px; }
  .eyebrow { font-size: 12px; }
  .hd-nav a { font-size: 15px; }
  .ft-tagline,
  .ft-nav-group a { font-size: 13.5px; }
  .tool-field label { font-size: 14px !important; }
  .field-help,
  .tool-source,
  .legal-note,
  .review-note,
  .official-note { font-size: 12.5px !important; }
}

/* Contrast pass — supporting copy must remain clear on every gray surface. */
:root {
  --ink-2: #343735;
  --ink-3: #505552;
  --ink-4: #707672;
}

.sec-stone .prose p,
.sec-ecru .prose p,
.sec-cream .prose p,
.sec-stone .sec-lead,
.sec-ecru .sec-lead,
.sec-cream .sec-lead { color: var(--ink-2); }

.sec-green .eyebrow,
.sec-ink .eyebrow,
.sec-has-photo .eyebrow { color: rgba(255, 255, 252, .92); }
.prose-light p,
.sec-has-photo .prose p,
.sec-green .prose p,
.sec-ink .prose p { color: rgba(255, 255, 252, .94); }
.sec-has-photo .link-arr,
.sec-green .link-arr,
.sec-ink .link-arr { color: rgba(255, 255, 252, .92); }

.ft-tagline,
.ft-nav-group a { color: rgba(255, 255, 252, .86); }
.ft-nav-group h4 { color: rgba(255, 255, 252, .68); }
.ft-bottom,
.ft-bottom a { color: rgba(255, 255, 252, .72); }

.journal-coming,
.journal-preview-coming {
  max-width: 820px;
  padding: clamp(40px, 7vw, 80px);
  background: rgba(255, 255, 255, .52);
  border-top: 3px solid var(--bdx);
}
.journal-coming h2,
.journal-preview-coming h2 {
  margin: 10px 0 22px;
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.4;
}
.journal-coming p,
.journal-preview-coming p {
  max-width: 640px;
  color: var(--ink-2);
  font-size: 17px;
  line-height: 1.9;
}
.journal-preview-coming .link-arr { margin-top: 30px; }

@media (max-width: 768px) {
  .journal-coming,
  .journal-preview-coming { padding: 36px 24px; }
  .journal-coming p,
  .journal-preview-coming p { font-size: 16px; }
}

/* Meaningful geometry: continuity, accumulated time and process. */
.page-home .sec-quiet,
.page-about .page-hero,
.page-features .page-hero,
.page-tools .page-hero,
.page-tools .flow-grid {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.page-home .sec-quiet > *,
.page-about .page-hero > *,
.page-features .page-hero > *,
.page-tools .page-hero > *,
.page-tools .flow-grid > * {
  position: relative;
  z-index: 2;
}

/* TOP: a continuous history line. */
.page-home .history-line-section::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 50%;
  right: -4%;
  width: 46%;
  height: 38%;
  border-top: 2px solid rgba(200, 169, 40, .58);
  border-radius: 52% 0 0 0;
  transform: rotate(-7deg);
  pointer-events: none;
}
.page-home .history-line-section::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: calc(50% - 5px);
  right: 31%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--bdx);
  box-shadow: 108px 17px 0 -2px var(--bdx), 220px 7px 0 -3px var(--bdx);
  pointer-events: none;
}

/* ABOUT: a rational grid crossed by rings of accumulated time. */
.page-about .page-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0 0 0 47%;
  background-image:
    linear-gradient(rgba(34, 36, 35, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(34, 36, 35, .07) 1px, transparent 1px);
  background-size: 30px 30px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 42%);
  mask-image: linear-gradient(90deg, transparent, #000 42%);
  pointer-events: none;
}
.page-about .page-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: -82px;
  right: 7%;
  width: 280px;
  aspect-ratio: 1;
  border: 1px solid rgba(200, 169, 40, .6);
  border-radius: 50%;
  box-shadow:
    0 0 0 34px rgba(200, 169, 40, .10),
    0 0 0 35px rgba(200, 169, 40, .42),
    0 0 0 72px rgba(200, 169, 40, .06),
    0 0 0 73px rgba(200, 169, 40, .25);
  pointer-events: none;
}

/* FEATURES: a single structural axis behind the function sequence. */
.page-features .page-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 50%;
  right: 0;
  bottom: 34%;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(200, 169, 40, .7));
  pointer-events: none;
}
.page-features .page-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  right: 8%;
  bottom: calc(34% - 5px);
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--bdx);
  box-shadow: -110px 0 0 -2px var(--bdx), -220px 0 0 -3px var(--bdx);
  pointer-events: none;
}

/* TAX: a restrained progress rail. */
.page-tools .page-hero::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 0;
  right: clamp(28px, 8vw, 120px);
  width: 72px;
  height: 100%;
  background: rgba(200, 169, 40, .10);
  border-left: 1px solid rgba(200, 169, 40, .45);
  pointer-events: none;
}
.page-tools .flow-grid::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 47px;
  left: 8%;
  right: 8%;
  height: 1px;
  background: rgba(200, 169, 40, .55);
  pointer-events: none;
}

@media (max-width: 760px) {
  /* Bring the promise into the first view quickly on mobile. */
  .page-home #home-hero {
    padding-top: calc(var(--hd-h) + 40px);
  }
  .page-home .home-hero-in {
    transition-duration: .72s;
  }

  /* Keep the practical tax-tool promise in two deliberate lines. */
  .page-tools .page-hero h1 {
    font-size: clamp(31px, 8.2vw, 34px);
    line-height: 1.42;
  }
  .page-tools .tools-hero-line { white-space: nowrap; }

  .page-home .history-line-section::before,
  .page-home .history-line-section::after { opacity: .45; }
  .page-about .page-hero::before { left: 25%; opacity: .62; }
  .page-about .page-hero::after {
    top: -68px;
    right: -112px;
    width: 240px;
    opacity: .38;
  }
  .page-features .page-hero::before,
  .page-features .page-hero::after { opacity: .48; }
  .page-tools .page-hero::after { right: 20px; width: 42px; opacity: .72; }
  .page-tools .flow-grid::before { display: none; }
}

/* Search guides: dense enough to answer, quiet enough to read. */
.seo-guide { max-width: 900px; }
.seo-guide-intro { font-size: 18px; line-height: 1.95; color: var(--ink-2); }
.seo-guide-meta { margin: 24px 0 0; font-size: 13px; color: var(--ink-3); }
.seo-guide-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 42px 0 0;
  background: var(--border);
  border: 1px solid var(--border);
}
.seo-guide-nav a { background: var(--white); padding: 18px 20px; font-size: 14px; font-weight: 500; }
.seo-guide-nav a:hover { background: var(--stone); }
.seo-guide-section { margin-top: 72px; scroll-margin-top: 100px; }
.seo-guide-section h2 { margin-bottom: 24px; font-size: clamp(28px, 3.7vw, 42px); line-height: 1.45; }
.seo-guide-section h3 { margin: 34px 0 14px; font-size: 22px; }
.seo-guide-section p,
.seo-guide-section li { color: var(--ink-2); font-size: 16px; line-height: 1.95; }
.seo-guide-section ul,
.seo-guide-section ol { margin: 18px 0 0; padding-left: 1.4em; }
.seo-guide-section ul { list-style: disc; }
.seo-guide-section ol { list-style: decimal; }
.seo-guide-note {
  margin: 28px 0;
  padding: 22px 24px;
  background: var(--stone);
  border-left: 3px solid var(--bdx);
}
.seo-guide-note strong { display: block; margin-bottom: 6px; }
.seo-guide-cta {
  margin-top: 76px;
  padding: clamp(30px, 5vw, 54px);
  background: var(--ink);
  color: var(--white);
}
.seo-guide-cta h2 { color: var(--white); margin-bottom: 14px; }
.seo-guide-cta p {
  color: rgba(255,255,255,.88) !important;
  margin-bottom: 26px;
}
.seo-guide-cta .btn { margin-right: 10px; margin-bottom: 10px; }
.seo-guide-cta .btn-outline {
  color: var(--white) !important;
  border-color: rgba(255,255,255,.68) !important;
}
.seo-guide-cta .btn-outline:hover,
.seo-guide-cta .btn-outline:focus-visible {
  color: var(--ink) !important;
  background: var(--white);
  border-color: var(--white) !important;
}
.seo-guide-faq details { border-top: 1px solid var(--border); padding: 20px 0; }
.seo-guide-faq details:last-child { border-bottom: 1px solid var(--border); }
.seo-guide-faq summary { cursor: pointer; font-weight: 500; }
.seo-guide-faq details p { margin-top: 12px; }
@media (max-width: 640px) {
  .seo-guide-nav { grid-template-columns: 1fr; }
  .seo-guide-intro { font-size: 16px; }
  .seo-guide-section { margin-top: 56px; }
}
