/* CHAINBLOCK FINANCIAL — Brand v6.1 (Smooth, Editorial)
   Matches the original Perplexity Computer preview exactly.
   Off-white background + navy ink + cyan accent + frosted nav.
   Loaded on every page via the child theme.
================================================================ */

:root {
  /* Brand tokens */
  --navy:        #0B1F3A;   /* headlines, button bg */
  --navy-2:      #08182D;
  --ink-soft:    #2B3A55;   /* body text */
  --muted:       #5C6B85;   /* secondary text */
  --teal:        #00B5E2;   /* primary accent (cyan) */
  --teal-2:      #0099C2;   /* hover accent */
  --teal-dark:   #007AA1;
  --teal-tint:   #E6F8FE;
  --cream:       #FAFBFC;   /* body background (named for compat) */
  --cream-2:     #F1F4F9;   /* soft section bg */
  --white:       #FFFFFF;
  --line:        #E3E8F0;   /* card borders, dividers */

  /* Type */
  --font-sans: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, "SF Mono", Menlo, monospace;

  --maxw: 1180px;
  --pad:  clamp(16px, 4vw, 32px);
}

/* ----------------------------------------------------------------
   Base / reset (scoped so we don't fight Kadence too hard)
---------------------------------------------------------------- */

body {
  font-family: var(--font-sans);
  background: var(--cream);
  color: var(--navy);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Kill the Kadence content card on pages so our hero goes edge-to-edge */
body.page .entry-content,
body.page .entry-content-wrap,
body.page .content-container,
body.single .content-container {
  max-width: 100% !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.page .site-main, body.single .site-main { padding: 0 !important; background: transparent !important; }
body.page .content-bg, body.single .content-bg { background: transparent !important; }

/* Page-title hero from Kadence — hidden via Customizer, but belt-and-braces */
.entry-hero, .page-title { display: none !important; }

a { color: var(--teal-dark); text-decoration: none; }
a:hover { color: var(--navy); }

img { max-width: 100%; height: auto; display: block; }

.container { max-width: var(--maxw); margin: 0 auto; padding-inline: var(--pad); }

/* ----------------------------------------------------------------
   Typography
---------------------------------------------------------------- */

.cb-eyebrow {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--teal-dark);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.cb-eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--teal);
  display: inline-block;
}
.cb-eyebrow.on-dark { color: var(--teal); }
.cb-eyebrow.on-dark::before { background: var(--teal); }

.cb-h1 {
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: clamp(2.4rem, 5.6vw, 4.6rem);
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: var(--navy);
  margin: 0.6em 0 0.4em;
}
.cb-h1 .accent { color: var(--teal-dark); }
.cb-h2 {
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: clamp(1.7rem, 3.2vw, 2.6rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--navy);
  margin: 0 0 0.6em;
}
.cb-h3 {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: -0.005em;
  color: var(--navy);
  margin: 0 0 0.4em;
}
.cb-lead {
  font-size: clamp(1.05rem, 1.4vw, 1.25rem);
  line-height: 1.55;
  color: var(--navy);
  max-width: 60ch;
}
.cb-body { font-size: 1rem; line-height: 1.65; color: var(--navy); }
.cb-mute { color: var(--muted); }

/* ----------------------------------------------------------------
   Layout / sections
---------------------------------------------------------------- */

.cb-section { padding: clamp(44px, 6vw, 88px) 0; }
.cb-section--cream { background: var(--cream); }
.cb-section--white { background: var(--white); }
.cb-section--navy {
  background: var(--navy);
  color: var(--white);
}
.cb-section--navy .cb-h1, .cb-section--navy .cb-h2, .cb-section--navy .cb-h3 { color: var(--white); }
.cb-section--navy .cb-lead, .cb-section--navy .cb-body { color: rgba(255,255,255,.85); }

.cb-grid     { display: grid; gap: 28px; }
.cb-grid-2   { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.cb-grid-3   { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.cb-grid-5   { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0; }

/* ----------------------------------------------------------------
   Hero
---------------------------------------------------------------- */

.cb-hero {
  background: var(--cream);
  padding: clamp(64px, 9vw, 128px) 0 clamp(44px, 7vw, 88px);
  position: relative;
  overflow: hidden;
}
.cb-hero::before {
  /* subtle grid pattern */
  content: "";
  position: absolute; inset: 0;
  background-image:
    linear-gradient(to right,  rgba(15,31,54,.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(15,31,54,.05) 1px, transparent 1px);
  background-size: 56px 56px;
  pointer-events: none;
  opacity: .55;
  mask-image: radial-gradient(ellipse at center, #000 50%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 50%, transparent 100%);
}
.cb-hero > .container { position: relative; z-index: 1; }
.cb-hero .cb-h1 { max-width: 18ch; }

/* ----------------------------------------------------------------
   Buttons
---------------------------------------------------------------- */

.cb-btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 1rem;
  padding: 14px 24px;
  border-radius: 4px;
  border: 2px solid transparent;
  transition: transform .15s ease, background .15s ease, color .15s ease;
  cursor: pointer;
  text-decoration: none !important;
}
.cb-btn:hover { transform: translateY(-1px); }
.cb-btn--primary { background: var(--navy); color: var(--white) !important; }
.cb-btn--primary:hover { background: var(--navy-2); }
.cb-btn--ghost   { background: transparent; color: var(--navy) !important; border-color: var(--navy); }
.cb-btn--ghost:hover { background: var(--navy); color: var(--white) !important; }
.cb-btn--teal    { background: var(--teal); color: var(--navy) !important; }
.cb-btn--teal:hover { background: var(--teal-2); }
.cb-btn--ghost-on-dark { background: transparent; color: var(--white) !important; border-color: rgba(255,255,255,.4); }
.cb-btn--ghost-on-dark:hover { background: var(--white); color: var(--navy) !important; }

.cb-btn-row { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }

/* ----------------------------------------------------------------
   Ticker (credentials marquee)
---------------------------------------------------------------- */

.cb-ticker {
  background: var(--navy);
  color: var(--white);
  overflow: hidden;
  padding: 14px 0;
  font-family: var(--font-mono);
  font-size: 0.85rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.cb-ticker__track {
  display: flex; gap: 56px;
  white-space: nowrap;
  animation: cb-ticker 30s linear infinite;
}
.cb-ticker__item { display: inline-flex; align-items: center; gap: 56px; }
.cb-ticker__dot { color: var(--teal); }
@keyframes cb-ticker {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ----------------------------------------------------------------
   Stats bar
---------------------------------------------------------------- */

.cb-stats {
  background: var(--navy);
  color: var(--white);
  position: relative;
}
.cb-stats::before {
  /* subtle dot pattern */
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(0,194,203,.18) 1px, transparent 1px);
  background-size: 24px 24px;
  opacity: .5;
}
.cb-stats > .container { position: relative; }
.cb-stats__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0;
}
.cb-stat {
  padding: 36px 24px;
  border-right: 1px solid rgba(255,255,255,.08);
}
.cb-stat:last-child { border-right: none; }
.cb-stat__num {
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  color: var(--teal);
  line-height: 1;
  margin-bottom: 8px;
}
.cb-stat__label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  line-height: 1.4;
}
.cb-stats__caption {
  margin-top: 28px;
  font-size: 0.92rem;
  color: rgba(255,255,255,.6);
}
.cb-stats__caption a { color: var(--teal); }

/* ----------------------------------------------------------------
   Cards (services, insights, etc.)
---------------------------------------------------------------- */

.cb-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 32px 28px;
  display: flex; flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.cb-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 32px rgba(15,31,54,.08);
  border-color: var(--teal);
}
.cb-card__num {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--teal-dark);
  letter-spacing: 0.14em;
  margin-bottom: 16px;
}
.cb-card__title { margin: 0 0 12px; font-size: 1.2rem; font-weight: 700; color: var(--navy); }
.cb-card__body  { margin: 0 0 20px; color: var(--muted); line-height: 1.6; flex: 1; }
.cb-card__cta   {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--teal-dark);
  display: inline-flex; align-items: center; gap: 6px;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  align-self: flex-start;
}
.cb-card__cta:hover { color: var(--navy); }

/* Insights badge */
.cb-badge {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  background: var(--teal-tint);
  color: var(--teal-dark);
  padding: 4px 8px;
  border-radius: 3px;
  margin-bottom: 8px;
}

/* ----------------------------------------------------------------
   Why-pillars (numbered 01/02/03 columns)
---------------------------------------------------------------- */

.cb-pillar { padding: 8px 0; }
.cb-pillar__num {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  color: var(--teal-dark);
  letter-spacing: 0.12em;
  margin-bottom: 18px;
  border-top: 2px solid var(--teal);
  padding-top: 18px;
  display: block;
}
.cb-pillar__h {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 1.4rem;
  color: var(--navy);
  margin: 0 0 12px;
}
.cb-pillar__body { color: var(--muted); line-height: 1.65; }

/* ----------------------------------------------------------------
   Pricing tiers
---------------------------------------------------------------- */

.cb-tier {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 36px 30px;
  display: flex; flex-direction: column;
  position: relative;
}
.cb-tier--popular {
  border-color: var(--teal);
  border-width: 2px;
}
.cb-tier__badge {
  position: absolute;
  top: -14px; left: 24px;
  background: var(--teal);
  color: var(--navy);
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 3px;
  font-weight: 700;
}
.cb-tier__name {
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: 1.6rem;
  color: var(--navy);
  margin: 0 0 8px;
}
.cb-tier__desc { color: var(--muted); margin-bottom: 24px; min-height: 3em; }
.cb-tier__list {
  list-style: none; padding: 0; margin: 0 0 28px;
  display: flex; flex-direction: column; gap: 10px;
}
.cb-tier__list li {
  font-size: 0.95rem;
  color: var(--navy);
  padding-left: 22px;
  position: relative;
  line-height: 1.5;
}
.cb-tier__list li::before {
  content: "";
  position: absolute;
  left: 0; top: 8px;
  width: 12px; height: 6px;
  border-left: 2px solid var(--teal);
  border-bottom: 2px solid var(--teal);
  transform: rotate(-45deg);
}

/* ----------------------------------------------------------------
   FAQ
---------------------------------------------------------------- */

.cb-faq { border-top: 1px solid var(--line); }
.cb-faq details {
  border-bottom: 1px solid var(--line);
  padding: 22px 0;
}
.cb-faq summary {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--navy);
  cursor: pointer;
  list-style: none;
  display: flex; justify-content: space-between; align-items: center;
}
.cb-faq summary::-webkit-details-marker { display: none; }
.cb-faq summary::after {
  content: "+";
  font-family: var(--font-mono);
  font-size: 1.4rem;
  color: var(--teal-dark);
  margin-left: 16px;
  flex-shrink: 0;
}
.cb-faq details[open] summary::after { content: "−"; }
.cb-faq__a {
  margin-top: 14px;
  color: var(--muted);
  line-height: 1.65;
  max-width: 70ch;
}

/* ----------------------------------------------------------------
   Service detail blocks (services page)
---------------------------------------------------------------- */

.cb-service-block {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 48px;
  padding: 48px 0;
  border-top: 1px solid var(--line);
}
.cb-service-block:first-of-type { border-top: 2px solid var(--navy); }
.cb-service-block__num {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  color: var(--teal-dark);
  letter-spacing: 0.14em;
  font-weight: 600;
}
.cb-service-block__h { margin-top: 0; }
.cb-service-block ul {
  margin: 16px 0 0; padding: 0; list-style: none;
  display: flex; flex-direction: column; gap: 10px;
}
.cb-service-block ul li {
  padding-left: 22px; position: relative;
  color: var(--navy); line-height: 1.6;
}
.cb-service-block ul li::before {
  content: "";
  position: absolute;
  left: 0; top: 11px;
  width: 8px; height: 8px;
  background: var(--teal);
  border-radius: 50%;
}
@media (max-width: 720px) {
  .cb-service-block { grid-template-columns: 1fr; gap: 16px; }
}

/* ----------------------------------------------------------------
   CTA banner (full-width navy)
---------------------------------------------------------------- */

.cb-cta {
  background: var(--navy);
  color: var(--white);
  padding: clamp(56px, 8vw, 96px) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cb-cta::before {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(0,194,203,.22) 1px, transparent 1px);
  background-size: 32px 32px;
  opacity: .4;
}
.cb-cta > .container { position: relative; }
.cb-cta .cb-h2 { color: var(--white); margin-bottom: 14px; }
.cb-cta__sub  { color: rgba(255,255,255,.78); max-width: 60ch; margin: 0 auto 28px; line-height: 1.6; }

/* ----------------------------------------------------------------
   Pull quote (about page)
---------------------------------------------------------------- */

.cb-quote {
  border-left: 4px solid var(--teal);
  padding: 8px 0 8px 28px;
  font-family: var(--font-sans);
  font-style: italic;
  font-size: 1.4rem;
  line-height: 1.45;
  color: var(--navy);
  margin: 36px 0;
  max-width: 60ch;
}

/* ----------------------------------------------------------------
   Credential row
---------------------------------------------------------------- */

.cb-creds {
  display: flex; flex-wrap: wrap; gap: 12px;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--teal-dark);
  margin: 18px 0 12px;
}
.cb-creds span {
  border: 1px solid var(--teal);
  padding: 6px 12px;
  border-radius: 3px;
}

/* ----------------------------------------------------------------
   Team grid
---------------------------------------------------------------- */

.cb-team-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 28px 24px;
  text-align: left;
}
.cb-team-card__avatar {
  width: 64px; height: 64px;
  background: var(--cream);
  border: 2px solid var(--teal);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); color: var(--teal-dark);
  font-size: 1.2rem; font-weight: 700;
  margin-bottom: 18px;
}
.cb-team-card h3 { margin: 0 0 4px; font-size: 1.15rem; }
.cb-team-card .role { font-family: var(--font-mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--teal-dark); margin-bottom: 10px; }
.cb-team-card .creds { font-family: var(--font-mono); font-size: 0.7rem; letter-spacing: 0.14em; color: var(--muted); margin-bottom: 14px; text-transform: uppercase; }
.cb-team-card p { color: var(--muted); line-height: 1.6; font-size: 0.95rem; margin: 0; }

/* ----------------------------------------------------------------
   Footer (used inside last cb-cta only — Kadence handles real footer,
   but we style the on-page contact strip)
---------------------------------------------------------------- */

.cb-link-list { list-style: none; padding: 0; margin: 0; }
.cb-link-list li { padding: 4px 0; }
.cb-link-list a { color: var(--navy); }

/* ----------------------------------------------------------------
   Responsive bits
---------------------------------------------------------------- */

@media (max-width: 720px) {
  .cb-section { padding: 36px 0; }
  .cb-hero    { padding-top: 52px; }
  .cb-stat    { border-right: none; border-bottom: 1px solid rgba(255,255,255,.08); }
}

/* ----------------------------------------------------------------
   v5 ADDITIONS — Tools, Playbook, Who-it's-for, FAQ
---------------------------------------------------------------- */

/* Tools grid (4 utility cards) */
.cb-tools-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 32px;
}
.cb-tool-card {
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 28px;
  transition: border-color .2s ease, transform .2s ease;
}
.cb-tool-card:hover { border-color: var(--teal); transform: translateY(-2px); }
.cb-tool-card .cb-tool-num {
  font-family: var(--mono);
  font-size: .75rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--teal);
}
.cb-tool-card h3 {
  font-size: 1.25rem;
  margin: 8px 0 12px;
  color: var(--navy);
  letter-spacing: -.01em;
}
.cb-tool-card p { color: var(--muted); line-height: 1.6; margin: 0 0 16px; font-size: .95rem; }
.cb-tool-card .cb-tool-cta {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--navy); font-weight: 600; text-decoration: none;
  font-size: .9rem; padding-top: 12px; border-top: 1px solid #F1F3F5;
}
.cb-tool-card .cb-tool-cta::after { content: " \2192"; color: var(--teal); }

/* Who-it's-for (audience segments) */
.cb-audience-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
  margin-top: 32px;
}
.cb-audience-card {
  background: var(--cream);
  border-left: 3px solid var(--teal);
  border-radius: 0 12px 12px 0;
  padding: 28px;
}
.cb-audience-card .cb-aud-tag {
  font-family: var(--mono);
  font-size: .7rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--teal);
}
.cb-audience-card h3 { color: var(--navy); margin: 6px 0 12px; font-size: 1.2rem; }
.cb-audience-card p { color: var(--ink); line-height: 1.6; margin: 0 0 14px; font-size: .95rem; }
.cb-audience-card ul { color: var(--muted); padding-left: 18px; margin: 0; font-size: .9rem; }
.cb-audience-card ul li { padding: 3px 0; }

/* Playbook (article cards on index, article body on detail) */
.cb-playbook-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 28px;
  margin-top: 32px;
}
.cb-playbook-card {
  background: #fff;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 32px;
  transition: border-color .2s ease;
}
.cb-playbook-card:hover { border-color: var(--teal); }
.cb-playbook-card .cb-pb-meta {
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 12px;
}
.cb-playbook-card h3 {
  color: var(--navy);
  font-size: 1.35rem;
  letter-spacing: -.01em;
  margin: 0 0 12px;
  line-height: 1.3;
}
.cb-playbook-card p { color: var(--ink); line-height: 1.65; margin: 0 0 16px; }
.cb-playbook-card a.cb-pb-link {
  color: var(--navy); font-weight: 600; text-decoration: none;
  font-size: .9rem; border-bottom: 2px solid var(--teal); padding-bottom: 2px;
}

/* Long-form article body (playbook detail pages) */
.cb-article {
  max-width: 760px;
  margin: 0 auto;
  padding: 64px 24px 80px;
}
.cb-article .cb-art-eyebrow {
  font-family: var(--mono);
  font-size: .75rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 16px;
}
.cb-article h1 {
  font-size: clamp(2rem, 4vw, 2.75rem);
  letter-spacing: -.02em;
  line-height: 1.15;
  color: var(--navy);
  margin: 0 0 20px;
}
.cb-article .cb-art-lead {
  font-size: 1.2rem;
  line-height: 1.55;
  color: var(--ink);
  margin: 0 0 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid #E5E7EB;
}
.cb-article h2 {
  font-size: 1.6rem;
  color: var(--navy);
  letter-spacing: -.01em;
  margin: 40px 0 14px;
}
.cb-article h3 {
  font-size: 1.2rem;
  color: var(--navy);
  margin: 28px 0 10px;
}
.cb-article p {
  color: var(--ink);
  line-height: 1.75;
  font-size: 1.05rem;
  margin: 0 0 16px;
}
.cb-article ul, .cb-article ol {
  color: var(--ink);
  line-height: 1.75;
  font-size: 1.05rem;
  padding-left: 22px;
  margin: 0 0 20px;
}
.cb-article blockquote {
  border-left: 3px solid var(--teal);
  padding: 8px 0 8px 20px;
  margin: 28px 0;
  color: var(--navy);
  font-size: 1.15rem;
  font-style: italic;
}
.cb-article code {
  background: var(--cream);
  padding: 2px 6px;
  border-radius: 4px;
  font-family: var(--mono);
  font-size: .92em;
  color: var(--navy);
}

/* FAQ (extends existing pricing FAQ) */
.cb-faq-page {
  max-width: 820px;
  margin: 0 auto;
}
.cb-faq-cat-title {
  font-family: var(--mono);
  font-size: .8rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--teal);
  margin: 40px 0 16px;
}

/* Trust strip (logos / featured-on) */
.cb-trust-strip {
  background: var(--cream);
  padding: 32px 0;
  text-align: center;
}
.cb-trust-strip .cb-trust-label {
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 16px;
}
.cb-trust-strip .cb-trust-items {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 36px;
  font-family: var(--mono); font-size: .85rem; color: var(--navy); font-weight: 600;
}

/* ================================================================
   v6 FIXES — Kadence layout, blog/archive, pagination, footer
================================================================ */

/* Kill the giant top gap above .cb-article pages.
   Kadence wraps page content in .site-content / .entry-content with padding —
   our custom hero/.cb-section/.cb-article already handles spacing. */
body.page .site-content,
body.single .site-content,
body.archive .site-content,
body.blog .site-content {
  padding-top: 0;
}
body.page .entry-content,
body.single .entry-content {
  margin-top: 0;
}
/* Kadence entry-hero (the empty light bar that appears above content) */
body .entry-hero-container-inner,
body.page .entry-hero,
body.single-page .entry-hero {
  display: none;
}
/* But keep our own .cb-hero working */
body .cb-hero { display: block; }

/* Article: remove redundant top padding so it doesn't double-stack */
.cb-article {
  padding-top: 32px;
}
@media (max-width: 720px) {
  .cb-article { padding-top: 24px; }
}

/* IRS references row — was getting jumbled. Make it a clean inline strip. */
.cb-article .irs-refs,
.cb-article p:has(> code:first-child) {
  display: block;
  background: var(--cream);
  border-left: 3px solid var(--teal);
  padding: 14px 18px;
  border-radius: 0 8px 8px 0;
  font-size: .95rem;
  margin: 24px 0;
}
.cb-article code {
  background: var(--cream-2);
  border: 1px solid var(--line);
  padding: 2px 8px;
  border-radius: 4px;
  font-family: var(--font-mono);
  font-size: .88em;
  color: var(--navy);
  white-space: nowrap;
}

/* Article CTA box (Need help? ...) */
.cb-article blockquote {
  background: var(--cream);
  border-left: 3px solid var(--teal);
  border-radius: 0 10px 10px 0;
  padding: 24px 28px;
  margin: 36px 0;
  font-style: normal;
  font-size: 1.05rem;
}
.cb-article blockquote strong,
.cb-article blockquote b { color: var(--navy); display: block; margin-bottom: 6px; }
.cb-article blockquote a { color: var(--teal-dark); font-weight: 600; }

/* ----------------------------------------------------------------
   Blog archive (the /blog/ page or category pages)
---------------------------------------------------------------- */
.cb-blog-wrap {
  max-width: 1080px;
  margin: 0 auto;
  padding: clamp(40px, 6vw, 80px) 24px;
}
.cb-blog-header {
  text-align: center;
  margin-bottom: 48px;
}
.cb-blog-header .eyebrow {
  font-family: var(--font-mono);
  font-size: .8rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--teal);
}
.cb-blog-header h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--navy);
  letter-spacing: -.02em;
  margin: 8px 0 12px;
}
.cb-blog-header p {
  color: var(--muted);
  max-width: 580px;
  margin: 0 auto;
  font-size: 1.05rem;
}

/* Kadence's default post grid — restyle to match brand */
body.blog .loop-entry,
body.archive .loop-entry,
body.search .loop-entry {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 28px !important;
  transition: border-color .2s, transform .2s;
}
body.blog .loop-entry:hover,
body.archive .loop-entry:hover { border-color: var(--teal); transform: translateY(-2px); }
body.blog .loop-entry .entry-title,
body.archive .loop-entry .entry-title {
  font-size: 1.3rem;
  line-height: 1.3;
  color: var(--navy);
  margin: 8px 0 12px;
}
body.blog .loop-entry .entry-title a,
body.archive .loop-entry .entry-title a {
  color: var(--navy);
  text-decoration: none;
  border-bottom: none;
}
body.blog .entry-meta,
body.archive .entry-meta {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
}
body.blog .entry-summary,
body.archive .entry-summary {
  color: var(--ink);
  line-height: 1.6;
  font-size: .95rem;
  margin: 12px 0 16px;
}
body.blog .entry-summary p,
body.archive .entry-summary p { margin: 0; }
body.blog .more-link,
body.archive .more-link {
  color: var(--navy);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 2px solid var(--teal);
  padding-bottom: 2px;
  font-size: .9rem;
}

/* ----------------------------------------------------------------
   PAGINATION — the fix
   Kadence uses .pagination .nav-links + .page-numbers
---------------------------------------------------------------- */
.pagination,
.nav-links,
.wp-block-query-pagination,
.kb-query-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin: 48px auto 0;
  padding: 24px 0;
  font-family: var(--font-mono);
  font-size: .85rem;
  letter-spacing: .04em;
}
.pagination .page-numbers,
.nav-links .page-numbers,
.wp-block-query-pagination a,
.wp-block-query-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--navy);
  text-decoration: none;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.pagination .page-numbers:hover,
.nav-links .page-numbers:hover,
.wp-block-query-pagination a:hover {
  border-color: var(--teal);
  color: var(--teal-dark);
}
.pagination .page-numbers.current,
.nav-links .page-numbers.current,
.wp-block-query-pagination .current {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}
.pagination .page-numbers.dots {
  border: none;
  background: transparent;
  color: var(--muted);
}
.pagination .prev,
.pagination .next,
.nav-links .prev,
.nav-links .next {
  font-weight: 600;
  padding: 0 16px;
}

/* Prev/Next links on single posts */
.post-navigation,
.posts-navigation {
  max-width: 760px;
  margin: 48px auto 0;
  padding: 32px 24px;
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.post-navigation .nav-previous,
.post-navigation .nav-next,
.posts-navigation .nav-previous,
.posts-navigation .nav-next {
  font-size: .9rem;
}
.post-navigation .nav-previous a,
.post-navigation .nav-next a {
  color: var(--navy);
  text-decoration: none;
  display: block;
}
.post-navigation .nav-previous a::before { content: "\2190  "; color: var(--teal); }
.post-navigation .nav-next        { text-align: right; }
.post-navigation .nav-next a::after { content: "  \2192"; color: var(--teal); }
.post-navigation .meta-nav {
  display: block;
  font-family: var(--font-mono);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}

/* ----------------------------------------------------------------
   Footer — replace "Kadence WP" branding with Chainblock
---------------------------------------------------------------- */
.site-footer,
.site-footer-wrap {
  background: var(--navy);
  color: #B7C0CC;
}
.site-footer a,
.site-footer-wrap a { color: var(--teal); }
.site-footer .site-info,
.site-footer-wrap .site-info {
  padding: 24px;
  font-family: var(--font-mono);
  font-size: .82rem;
  letter-spacing: .04em;
  text-align: center;
}

/* Single post entry-header on blog post pages — give it room */
body.single-post .entry-header {
  max-width: 760px;
  margin: 0 auto;
  padding: 48px 24px 16px;
}
body.single-post .entry-header .entry-title {
  font-size: clamp(2rem, 4vw, 2.75rem);
  color: var(--navy);
  letter-spacing: -.02em;
  line-height: 1.15;
}
body.single-post .entry-header .entry-meta {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 12px;
}
body.single-post .entry-content {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px 64px;
}
body.single-post .entry-content p {
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--ink);
}
body.single-post .entry-content h2 {
  color: var(--navy);
  font-size: 1.6rem;
  margin: 40px 0 14px;
  letter-spacing: -.01em;
}
body.single-post .entry-content h3 {
  color: var(--navy);
  font-size: 1.2rem;
  margin: 28px 0 10px;
}

/* Hide "Sample Page" / "Hello World" if they ever come back */
.page-id-2, .postid-1 { display: none; }

/* ================================================================
   v6.1 — SMOOTH/EDITORIAL POLISH (matches Perplexity Computer preview)
   This block OVERRIDES earlier rules where they conflict.
================================================================ */

/* Inter OpenType features + antialiasing = the "polished" feel */
html { font-feature-settings: 'cv11', 'ss01', 'ss03'; }
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--cream);
  color: var(--ink-soft);
  font-family: var(--font-sans);
  line-height: 1.6;
}

/* Fluid editorial typography with negative tracking — THE key detail */
.cb-hero-title,
.cb-section-title,
.cb-article h1,
body.single-post .entry-title,
body.page .entry-title,
h1, h2 {
  color: var(--navy);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.03em;
}
h2, .cb-section-title { letter-spacing: -0.025em; line-height: 1.2; }
.cb-hero-title { font-size: clamp(2.5rem, 1rem + 5vw, 5rem); }
.cb-section-title,
body.single-post .entry-title { font-size: clamp(2rem, 1.2rem + 2.5vw, 3.5rem); }

/* Body paragraph color */
p, .cb-hero-sub, .cb-section-sub,
body.single-post .entry-content p,
.cb-article p { color: var(--ink-soft); }

/* Eyebrow labels — uppercase mono with wider tracking + cyan */
.cb-hero-eyebrow,
.cb-section-eyebrow,
.cb-art-eyebrow,
.cb-tool-num,
.cb-pb-meta,
.cb-aud-tag,
.cb-trust-label,
.cb-blog-header .eyebrow {
  color: var(--teal);
  font-family: var(--font-mono);
  letter-spacing: 0.14em;
  font-weight: 600;
  text-transform: uppercase;
}

/* ---- HERO: cyan radial glow + soft grid (top-right quadrant) ---- */
.cb-hero {
  position: relative;
  background: var(--cream);
  padding: clamp(72px, 9vw, 140px) 0 clamp(48px, 7vw, 96px);
  overflow: hidden;
}
.cb-hero::before {
  /* subtle grid */
  content: "";
  position: absolute; inset: 0;
  background-image:
    linear-gradient(to right,  rgba(11,31,58,.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(11,31,58,.05) 1px, transparent 1px);
  background-size: 56px 56px;
  pointer-events: none;
  mask-image: radial-gradient(ellipse 70% 60% at 75% 20%, #000 30%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 75% 20%, #000 30%, transparent 100%);
}
.cb-hero::after {
  /* cyan glow */
  content: "";
  position: absolute;
  top: -10%; right: -10%;
  width: 60%; height: 80%;
  background: radial-gradient(circle, rgba(0,181,226,.18), rgba(0,181,226,.06) 35%, transparent 65%);
  filter: blur(40px);
  pointer-events: none;
  z-index: 0;
}
.cb-hero > * { position: relative; z-index: 1; }

/* ---- BUTTONS: 6px radius, smooth hover lift, hover-to-cyan ---- */
.cb-btn,
.cb-cta-btn,
.cb-tier-cta,
.wp-block-button__link,
button.button-primary {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--navy);
  color: #fff !important;
  border: 1px solid var(--navy);
  border-radius: 6px;
  padding: .8rem 1.5rem;
  font-weight: 600;
  font-size: .95rem;
  text-decoration: none;
  letter-spacing: 0;
  transition: transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .2s ease, color .15s ease;
  box-shadow: 0 1px 2px rgba(11,31,58,.04);
}
.cb-btn:hover,
.cb-cta-btn:hover,
.cb-tier-cta:hover,
.wp-block-button__link:hover {
  background: var(--teal-2);
  border-color: var(--teal-2);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(11,31,58,.10);
}
.cb-btn--ghost {
  background: transparent;
  color: var(--navy) !important;
  border: 1px solid var(--line);
}
.cb-btn--ghost:hover {
  background: var(--white);
  border-color: var(--navy);
}

/* ---- CARDS: white, 12px radius, near-invisible shadow, lift on hover ---- */
.cb-card,
.cb-tool-card,
.cb-playbook-card,
.cb-tier,
.cb-team-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 2rem;
  box-shadow: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position: relative;
}
.cb-card:hover,
.cb-tool-card:hover,
.cb-playbook-card:hover,
.cb-tier:hover,
.cb-team-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 4px 16px rgba(11,31,58,.06), 0 2px 4px rgba(11,31,58,.04);
  border-color: var(--teal);
}
/* Top accent line on service cards */
.cb-card::before,
.cb-tier--popular::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  border-radius: 12px 12px 0 0;
  background: linear-gradient(90deg, var(--teal), transparent);
  opacity: 0;
  transition: opacity .2s ease;
}
.cb-card:hover::before,
.cb-tier--popular::before { opacity: 1; }

/* ---- NAV: frosted glass sticky ---- */
.site-header,
.site-header-wrap,
header.entry-hero-section-1,
header.site-header {
  background: rgba(250,251,252,0.85) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
  box-shadow: none;
}
.site-header a,
.site-header-wrap a {
  color: var(--navy);
  transition: color .15s ease;
}
.site-header a:hover { color: var(--teal-2); }

/* Nav CTA button (Book a consultation) */
.menu-item.menu-button > a,
.menu-button > a,
li.menu-button a {
  background: var(--navy) !important;
  color: #fff !important;
  border-radius: 6px;
  padding: .55rem 1.1rem !important;
  font-weight: 600;
  transition: background .15s ease, transform .15s ease;
}
.menu-item.menu-button > a:hover { background: var(--teal-2) !important; transform: translateY(-1px); }

/* ---- SECTIONS: roomy spacing matches original ---- */
.cb-section { padding: clamp(48px, 7vw, 96px) 0; }
.cb-section--soft { background: var(--cream-2); }

/* ---- LINKS in body: subtle teal underline ---- */
.cb-article a:not(.cb-btn),
body.single-post .entry-content a:not(.wp-block-button__link),
body.page .entry-content a:not(.wp-block-button__link) {
  color: var(--teal-dark);
  text-decoration: none;
  border-bottom: 1px solid rgba(0,181,226,.35);
  transition: border-color .15s ease, color .15s ease;
}
.cb-article a:hover { color: var(--teal-2); border-bottom-color: var(--teal); }

/* ---- ARROW LINKS: → nudges right on hover ---- */
.cb-arrow-link,
.cb-tool-cta,
.cb-pb-link,
.more-link {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--navy);
  font-weight: 600;
  font-size: .9rem;
  text-decoration: none;
  border-bottom: 2px solid var(--teal);
  padding-bottom: 2px;
}
.cb-arrow-link::after,
.cb-tool-cta::after,
.more-link::after {
  content: " \2192";
  color: var(--teal);
  transition: transform .15s ease;
  display: inline-block;
}
.cb-arrow-link:hover::after,
.cb-tool-cta:hover::after,
.more-link:hover::after { transform: translateX(3px); }

/* ---- KILL the empty space Kadence adds above page content ---- */
body.page .site-content,
body.single .site-content,
body.archive .site-content,
body.blog .site-content { padding-top: 0; }
body.page .entry-content,
body.single .entry-content { margin-top: 0; }
body .entry-hero-container-inner,
body.page .entry-hero,
body.single-page .entry-hero { display: none; }

/* Page wrapper: remove default Kadence content max-width clash when our blocks are inside */
body.page .content-container,
body.single .content-container {
  padding: 0;
  max-width: none;
}

/* ---- TICKER + STATS BAR: keep navy band but soften ---- */
.cb-ticker,
.cb-stats {
  background: var(--navy);
  color: #fff;
}
.cb-ticker { padding: 14px 0; border-top: 1px solid rgba(255,255,255,.05); }

/* ---- FOOTER: navy w/ cyan accents ---- */
.site-footer,
.site-footer-wrap {
  background: var(--navy) !important;
  color: #B7C0CC;
}
.site-footer a { color: var(--teal) !important; }
.site-footer .site-info { font-family: var(--font-mono); font-size: .8rem; text-align: center; padding: 24px; }

/* ---- BLOG/ARCHIVE CARDS match service cards ---- */
body.blog .loop-entry,
body.archive .loop-entry,
body.search .loop-entry {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 28px !important;
  box-shadow: none;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
body.blog .loop-entry:hover,
body.archive .loop-entry:hover {
  transform: translateY(-4px);
  border-color: var(--teal);
  box-shadow: 0 4px 16px rgba(11,31,58,.06);
}

/* ---- PAGINATION: soft pills ---- */
.pagination .page-numbers,
.nav-links .page-numbers,
.wp-block-query-pagination a,
.wp-block-query-pagination span {
  border-radius: 6px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--navy);
  transition: all .15s ease;
}
.pagination .page-numbers:hover,
.nav-links .page-numbers:hover { border-color: var(--teal); color: var(--teal-2); }
.pagination .page-numbers.current { background: var(--navy); border-color: var(--navy); color: #fff; }

/* Smooth scroll for anchor links */
html { scroll-behavior: smooth; }
/* =====================================================================
   CHAINBLOCK v7 — Conversion-tuned polish patch
   Appended after site.css. Adds all missing classes + fixes broken
   sections found in the May 2026 audit.
   ===================================================================== */

/* ---------- 1. SERVICE BLOCK: fix broken 220px grid ----------
   Live HTML doesn't include cb-service-block__num, so the title was
   getting jammed into the narrow first column. Force single-column
   stack with proper eyebrow numbering via ::before. */
.cb-service-block {
  display: block !important;
  grid-template-columns: none !important;
  padding: 56px 0 !important;
  border-top: 1px solid var(--line);
}
.cb-service-block:first-of-type {
  border-top: 2px solid var(--navy);
}
.cb-svc-title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(1.6rem, 1rem + 1.4vw, 2.1rem);
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--navy);
  margin: 0 0 18px;
}
.cb-svc-body {
  max-width: 68ch;
}
.cb-svc-body p {
  color: var(--ink-soft);
  line-height: 1.7;
  margin: 0 0 14px;
  font-size: 1.02rem;
}
.cb-svc-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 22px 0 0 !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 10px 28px !important;
  max-width: 100%;
}
.cb-svc-list li {
  position: relative;
  padding-left: 22px;
  color: var(--navy);
  line-height: 1.6;
  font-size: 0.97rem;
  break-inside: avoid;
}
.cb-svc-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 7px;
  height: 7px;
  background: var(--teal);
  border-radius: 50%;
}

/* ---------- 2. STATS BAR: grid layout on navy ---------- */
.cb-stats {
  background: var(--navy);
  color: #fff;
  padding: clamp(40px, 6vw, 64px) 0;
  position: relative;
  overflow: hidden;
}
.cb-stats::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -10%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(0, 181, 226, 0.12) 0%, transparent 60%);
  pointer-events: none;
}
.cb-stats > .container {
  position: relative;
}
.cb-stats-inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 32px 24px;
  align-items: start;
}
.cb-stat {
  text-align: left;
}
.cb-stat-num {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(1.8rem, 1rem + 1.8vw, 2.6rem);
  letter-spacing: -0.025em;
  line-height: 1.1;
  color: var(--teal);
  margin-bottom: 6px;
}
.cb-stat-label {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.4;
}

/* ---------- 3. CTA BAND: visible text on navy ---------- */
.cb-cta {
  background: var(--navy);
  color: #fff;
  padding: clamp(56px, 8vw, 96px) 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cb-cta::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(0, 181, 226, 0.22) 1px, transparent 1px);
  background-size: 32px 32px;
  opacity: 0.35;
  pointer-events: none;
}
.cb-cta > .container {
  position: relative;
  z-index: 2;
}
.cb-cta-title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(1.6rem, 1rem + 1.6vw, 2.4rem);
  letter-spacing: -0.025em;
  line-height: 1.2;
  color: #ffffff !important;
  margin: 0 0 16px;
}
.cb-cta-sub {
  color: rgba(255, 255, 255, 0.88) !important;
  font-size: 1.05rem;
  line-height: 1.6;
  max-width: 60ch;
  margin: 0 auto 32px;
}
.cb-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--teal);
  color: var(--navy) !important;
  padding: 14px 28px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.98rem;
  text-decoration: none !important;
  border: 1px solid var(--teal);
  transition: all 0.18s ease;
  box-shadow: 0 4px 14px rgba(0, 181, 226, 0.25);
}
.cb-cta-btn:hover,
.cb-cta-btn:focus-visible {
  background: #fff;
  color: var(--navy) !important;
  border-color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}

/* ---------- 4. HOMEPAGE SERVICE CARDS (cb-cards / cb-card) ---------- */
.cb-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-top: 36px;
}
.cb-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 28px 26px;
  position: relative;
  transition: all 0.2s ease;
  overflow: hidden;
}
.cb-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--teal);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
.cb-card:hover {
  border-color: var(--teal);
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(11, 31, 58, 0.08);
}
.cb-card:hover::before {
  transform: scaleX(1);
}
.cb-card-eyebrow {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--teal-dark);
  font-weight: 600;
  margin-bottom: 10px;
}
.cb-card-title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: -0.015em;
  line-height: 1.3;
  color: var(--navy);
  margin: 0 0 12px;
}
.cb-card-body {
  color: var(--ink-soft);
  font-size: 0.96rem;
  line-height: 1.6;
  margin: 0 0 16px;
}
.cb-card a {
  color: var(--teal-dark);
  font-weight: 600;
  text-decoration: none;
  font-size: 0.95rem;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s;
}
.cb-card a:hover {
  border-bottom-color: var(--teal-dark);
}

/* ---------- 5. PILLARS (3-up "why us") ---------- */
.cb-pillars {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 32px;
  margin-top: 36px;
}
.cb-pillar {
  padding-top: 24px;
  border-top: 2px solid var(--navy);
}
.cb-pillar h3 {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: -0.015em;
  color: var(--navy);
  margin: 0 0 12px;
}
.cb-pillar p {
  color: var(--ink-soft);
  line-height: 1.65;
  font-size: 0.97rem;
  margin: 0;
}

/* ---------- 6. CREDENTIAL TICKER (auto-scrolling) ---------- */
.cb-ticker {
  background: var(--navy);
  color: #fff;
  padding: 18px 0;
  overflow: hidden;
  position: relative;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.cb-ticker::before,
.cb-ticker::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 80px;
  z-index: 2;
  pointer-events: none;
}
.cb-ticker::before {
  left: 0;
  background: linear-gradient(90deg, var(--navy), transparent);
}
.cb-ticker::after {
  right: 0;
  background: linear-gradient(270deg, var(--navy), transparent);
}
.cb-ticker-track {
  display: flex;
  gap: 48px;
  white-space: nowrap;
  animation: cb-ticker-scroll 40s linear infinite;
  will-change: transform;
  width: max-content;
}
.cb-ticker:hover .cb-ticker-track {
  animation-play-state: paused;
}
.cb-ticker-item {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
  flex-shrink: 0;
}
.cb-ticker-dot {
  display: inline-block;
  width: 4px;
  height: 4px;
  background: var(--teal);
  border-radius: 50%;
  margin: 0 24px;
  vertical-align: middle;
  opacity: 0.7;
}
@keyframes cb-ticker-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .cb-ticker-track {
    animation: none;
    white-space: normal;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px 24px;
  }
}

/* ---------- 7. HERO SUB (the hero paragraph) ---------- */
.cb-hero-sub {
  font-size: 1.1rem;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 60ch;
  margin: 18px 0 28px;
}

/* ---------- 8. SECTION VARIANTS + SUB ---------- */
.cb-section--alt {
  background: var(--cream-2);
}
.cb-section-sub {
  font-size: 1.05rem;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 60ch;
  margin: 14px 0 0;
}

/* ---------- 9. BUTTON SIZES ---------- */
.cb-btn--sm {
  padding: 9px 16px;
  font-size: 0.88rem;
  border-radius: 5px;
}

/* ---------- 10. BRANDED FOOTER OVERRIDE ----------
   Replaces the bare Kadence footer with proper info. */
.site-footer {
  background: var(--navy);
  color: rgba(255, 255, 255, 0.7);
  padding: 0;
}
.site-footer .site-footer-wrap {
  padding: 32px 0 28px;
}
.site-footer .site-container {
  text-align: center;
}
.site-footer .footer-html p {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  margin: 0;
  line-height: 1.6;
}
.site-footer .footer-html a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 181, 226, 0.4);
  transition: border-color 0.2s, color 0.2s;
}
.site-footer .footer-html a:hover {
  color: var(--teal);
  border-bottom-color: var(--teal);
}

/* ---------- 11. NAV POLISH ---------- */
.site-header {
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  background: rgba(250, 251, 252, 0.88) !important;
}

/* ---------- 12. BLOG INDEX HEADER ----------
   Currently blog page lacks an H1 header. Inject one via CSS layer
   using the body class WordPress adds on the posts page. */
.blog .content-area,
.archive .content-area {
  padding-top: clamp(40px, 5vw, 64px);
}
.blog .content-area::before,
.archive .content-area::before {
  content: "Crypto Tax Playbook";
  display: block;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(2rem, 1rem + 2.5vw, 3rem);
  letter-spacing: -0.025em;
  color: var(--navy);
  margin: 0 0 8px;
  text-align: center;
}
.blog .content-area::after,
.archive .content-area::after {
  content: "Plain-English breakdowns of the IRS rules that actually affect your return.";
  display: block;
  font-size: 1.05rem;
  color: var(--ink-soft);
  text-align: center;
  margin: 0 auto 40px;
  max-width: 60ch;
  line-height: 1.6;
}

/* ---------- 13. FOCUS + ACCESSIBILITY ---------- */
a:focus-visible,
button:focus-visible,
.cb-btn:focus-visible,
.cb-cta-btn:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ---------- 14. SMOOTH SCROLL + GENERAL POLISH ---------- */
html {
  scroll-behavior: smooth;
}
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "cv11", "ss01", "ss03";
}

/* ---------- 15. MOBILE TIGHTEN ---------- */
@media (max-width: 640px) {
  .cb-hero-title {
    font-size: clamp(2rem, 1rem + 5vw, 2.6rem);
  }
  .cb-svc-list {
    grid-template-columns: 1fr !important;
  }
  .cb-stats-inner {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 16px;
  }
  .cb-stat-num {
    font-size: 1.6rem;
  }
}

/* ---------- 16. PRINT ---------- */
@media print {
  .cb-cta, .cb-ticker, .site-header, .site-footer { display: none; }
}
