/* ============================================================
   FULL REPLACEMENT FILE — select ALL text currently in
   Appearance → Customize → Additional CSS, delete it, and paste
   this entire file in as the new complete contents.

   History:
   - Removed the rule that was hiding the desktop primary
     navigation (display: none !important on
     .site-header-item-main-navigation). That rule meant desktop
     visitors at full browser width had NO way to reach
     Services / Who We Help / About / Tools — the nav only
     reappeared once the window was narrow enough to trigger
     Kadence's mobile-menu breakpoint. Nav is restored.
   - Re-added a hide rule for the desktop header "Button" element
     only (.header-button-wrap / .header-button-inner-wrap /
     a.button.header-button) — this is a deliberate choice to keep
     that specific button off the header while keeping the nav
     menu visible. The separate mobile-only button
     (.mobile-header-button-wrap) was never affected either way.
   Everything else (fonts, colors, footer, FAB, steps-line
   mobile/desktop fix) is unchanged.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=DM+Sans:wght@400;600;700&family=DM+Mono:wght@400;500&family=Inter:wght@400;500&display=swap');
/* ============================================================
   Your original site-specific rules (unchanged)
   ============================================================ */
.service-card {
  position: relative;
  box-shadow: 0 4px 12px rgba(62, 80, 121, 0.08);
  border-radius: 12px;
  background: #fff;
  transition: all 0.25s ease;
  cursor: pointer;
  overflow: hidden;
  border-top: 4px solid transparent;
}
.service-card:hover {
  box-shadow: 0 12px 30px rgba(62, 80, 121, 0.12);
  transform: translateY(-4px);
  border-top-color: #d1785c;
}
.service-card a:first-of-type {
  position: static;
}
.service-card a:first-of-type::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
}
.service-card .wp-block-button,
.service-card .wp-block-button a {
  position: relative;
  z-index: 3;
}
.service-card:hover .wp-block-button__link {
  background-color: #b8644c;
}
.trust-badge img {
  max-width: 130px;
  opacity: 0.95;
  padding: 8px;
  background: #ffffff;
  border-radius: 10px;
  box-shadow: 0 3px 10px rgba(62, 80, 121, 0.06);
  transition: all 0.3s ease;
}
.trust-badge img:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(62, 80, 121, 0.10);
}
.trust-section {
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  padding-top: 40px;
}
.process-step {
  transition: all 0.25s ease;
  padding-left: 24px;
  padding-right: 24px;
}
.process-step:hover {
  transform: translateY(-4px);
}
.process-step .wp-block-heading {
  margin-top: 0;
  margin-bottom: 14px;
}
.process-step p {
  max-width: 280px;
  margin-left: auto;
  margin-right: auto;
  color: rgba(0, 0, 0, 0.75);
  line-height: 1.7;
}
.process-step-divider {
  border-right: 1px solid rgba(0, 0, 0, 0.05);
}
.tax-planning-hero {
  overflow: hidden;
}
.tax-planning-hero .wp-block-columns {
  align-items: center;
  gap: 40px;
}
.tax-planning-hero .wp-block-heading,
.tax-planning-hero p,
.tax-planning-hero .wp-block-buttons,
.tax-planning-hero .hero-trust-line {
  max-width: 540px;
}
.tax-planning-hero .wp-block-heading {
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.tax-planning-hero .wp-block-column {
  min-width: 0;
}
.tax-planning-hero .wp-block-column:first-child {
  padding-right: 10px;
}
.tax-planning-hero .wp-block-column:last-child img {
  width: 100%;
  height: auto;
  display: block;
}
.centered-list-section ul {
  max-width: 700px;
  margin: 0 auto;
  text-align: left;
  padding-left: 1.25rem;
}
.centered-list-section p {
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}
.centered-list-section .wp-block-heading {
  text-align: center;
}
/* ============================================================
   CTFS Site-Wide Design System (single copy)
   ============================================================ */
:root {
  --ctfs-slate: #3e5079;
  --ctfs-slate-dark: #2a3a57;
  --ctfs-slate-card: #384c73;
  --ctfs-terracotta: #d1785c;
  --ctfs-terracotta-text: #ad5843;
  --ctfs-sage: #89ce75;
  --ctfs-mist: #edeef2;
  --ctfs-offwhite: #f9f8f6;
  --ctfs-charcoal: #1C1C1E;
  --ctfs-footer-muted: #9fa7ba;
  --font-display: 'DM Serif Display', Georgia, serif;
  --font-heading: 'DM Sans', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-mono: 'DM Mono', monospace;
}
.ctfs-section { position: relative; overflow: hidden; }
.ctfs-section-dark { background: var(--ctfs-slate-dark); color: #fff; }
.ctfs-section-light { background: var(--ctfs-offwhite); color: var(--ctfs-charcoal); }
.ctfs-section-mist { background: var(--ctfs-mist); color: var(--ctfs-charcoal); }
.ctfs-inner { max-width: 1200px; margin: 0 auto; padding: 80px 24px; position: relative; z-index: 2; }
.ctfs-section-dark::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.035;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  z-index: 0;
}
.ctfs-eyebrow { font-family: var(--font-mono); font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ctfs-sage); margin-bottom: 16px; display: block; }
.ctfs-h1 { font-family: var(--font-display); font-weight: 400; line-height: 1.1; font-size: clamp(2.25rem, 5vw, 3.25rem); margin: 0 0 24px; }
.ctfs-h2 { font-family: var(--font-heading); font-weight: 600; line-height: 1.2; font-size: clamp(1.75rem, 3.5vw, 2.25rem); margin: 0 0 16px; }
.ctfs-h3 { font-family: var(--font-heading); font-weight: 600; font-size: 1.15rem; margin: 0 0 10px; }
.ctfs-body { font-family: var(--font-body); font-size: 1.05rem; line-height: 1.65; }
.ctfs-btn { font-family: var(--font-heading); font-weight: 700; font-size: 0.95rem; padding: 14px 30px; border-radius: 6px; text-decoration: none; display: inline-block; transition: transform 0.2s ease, opacity 0.2s ease; }
.ctfs-btn:hover { transform: translateY(-2px); }
.ctfs-btn-fill { background: var(--ctfs-terracotta); color: #fff; }
.ctfs-btn-fill:hover { opacity: 0.92; }
.ctfs-btn-ghost { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,0.35); }
.ctfs-btn-ghost:hover { border-color: var(--ctfs-sage); color: var(--ctfs-sage); }
.ctfs-link-terracotta { color: var(--ctfs-terracotta-text) !important; font-weight: 600; }
.ctfs-link-terracotta:hover { opacity: 0.85; }
.precision-card { clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%); background: var(--ctfs-slate-card); border-top: 2px solid var(--ctfs-sage); box-shadow: 0 4px 18px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.06); padding: 28px 26px; transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease; }
.precision-card:hover { transform: translateY(-4px); background: #3f5580; box-shadow: 0 14px 28px rgba(0,0,0,0.32); }
.ctfs-stat-num { font-family: var(--font-mono); font-weight: 500; font-size: clamp(2.25rem, 4vw, 3rem); color: var(--ctfs-slate); line-height: 1; }
.ctfs-stat-label { font-family: var(--font-body); font-size: 0.85rem; color: #6b7386; margin-top: 8px; }
.ctfs-pull-quote { border-left: 3px solid var(--ctfs-slate); padding-left: 20px; font-family: var(--font-heading); font-style: normal; font-size: 1.15rem; color: var(--ctfs-charcoal); margin: 24px 0 0; }
.ctfs-steps-wrap { position: relative; margin-top: 56px; }
/* Mobile (default): line acts as a left-hand "timeline rail" running
   through the vertical center of each step-number circle. Each step
   panel is padded left to make room for the rail + circle, and the
   circle is pulled out of normal flow so it sits ON the rail with
   text safely to its right — this guarantees the line never crosses
   through any text, regardless of how much text each step has. */
.ctfs-steps-line { position: absolute; top: 22px; bottom: 22px; left: 22px; width: 2px; height: auto; background: var(--ctfs-sage); transition: transform 1.4s cubic-bezier(0.65,0,0.35,1); transform: scaleY(0); transform-origin: top; z-index: 0; }
.ctfs-steps-line.is-visible { transform: scaleY(1); }
.ctfs-steps-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 32px; }
.ctfs-steps-grid > * { position: relative; padding-left: 64px; min-height: 44px; }
.ctfs-steps-grid > * .ctfs-step-num { position: absolute; top: 0; left: 0; margin-bottom: 0; }
/* Desktop (768px+): back to the original layout — circle sits above
   its own text in a centered column, line runs horizontally beneath
   the row of circles. No left padding needed since text is centered
   under its own circle, not offset to the right of a shared rail. */
@media (min-width: 768px) {
  .ctfs-steps-grid { grid-template-columns: 1fr 1fr 1fr; }
  .ctfs-steps-grid > * { padding-left: 0; min-height: 0; }
  .ctfs-steps-grid > * .ctfs-step-num { position: static; margin-bottom: 16px; }
  .ctfs-steps-line { top: 22px; bottom: auto; left: 0; width: 100%; height: 2px; background: var(--ctfs-sage); transform: scaleX(0); transform-origin: left; transition: transform 1.4s cubic-bezier(0.65,0,0.35,1); }
  .ctfs-steps-line.is-visible { transform: scaleX(1); }
}
.ctfs-step-num { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ctfs-slate-dark); border: 2px solid var(--ctfs-sage); color: var(--ctfs-sage); font-family: var(--font-mono); font-size: 0.9rem; font-weight: 500; margin-bottom: 16px; flex-shrink: 0; }
.reveal { opacity: 1; }
.reveal.reveal-armed { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.reveal-armed.is-visible { opacity: 1; transform: translateY(0); }
.ctfs-parallax-accent { position: absolute; z-index: 1; pointer-events: none; background: linear-gradient(135deg, transparent 48%, var(--ctfs-sage) 48%, var(--ctfs-sage) 49.5%, transparent 49.5%); opacity: 0.2; will-change: transform; }
.ctfs-parallax-1 { top: -20%; left: 10%; width: 90%; height: 160%; opacity: 0.08; }
.ctfs-parallax-2 { top: -20%; left: 10%; width: 90%; height: 160%; opacity: 0.08; }
.ctfs-fab-wrap { position: fixed; right: 24px; bottom: 24px; z-index: 999; display: flex; flex-direction: column-reverse; align-items: flex-end; gap: 12px; }
.ctfs-fab-menu { display: flex; flex-direction: column-reverse; gap: 10px; margin-bottom: 4px; }
.ctfs-fab-option { background: var(--ctfs-slate-dark); border: 1.5px solid var(--ctfs-sage); border-radius: 8px; padding: 12px 18px; box-shadow: 0 8px 20px rgba(0,0,0,0.35); opacity: 0; transform: translateY(12px) scale(0.94); pointer-events: none; transition: opacity 0.25s ease, transform 0.25s ease; white-space: nowrap; }
.ctfs-fab-wrap.is-open .ctfs-fab-option { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }
.ctfs-fab-wrap.is-open .ctfs-fab-option:nth-child(1) { transition-delay: 0.06s; }
.ctfs-fab-wrap.is-open .ctfs-fab-option:nth-child(2) { transition-delay: 0.03s; }
.ctfs-fab-wrap.is-open .ctfs-fab-option:nth-child(3) { transition-delay: 0s; }
.ctfs-fab-option a { font-family: var(--font-heading); font-weight: 700; font-size: 0.85rem; color: #fff; text-decoration: none; display: flex; align-items: center; gap: 8px; }
.ctfs-fab-option a::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ctfs-sage); flex-shrink: 0; margin-top: 3px; }
.ctfs-fab-option .ctfs-fab-option-label { display: block; font-size: 0.7rem; font-weight: 500; color: #9aa4b8; margin-top: 2px; font-family: var(--font-mono); text-transform: none; letter-spacing: 0.02em; }
.ctfs-fab-btn-row { display: flex; align-items: center; gap: 10px; }
.ctfs-fab-hint { background: var(--ctfs-slate-dark); border: 1px solid rgba(137,206,117,0.4); color: #e8ebf1; font-family: var(--font-heading); font-weight: 600; font-size: 0.78rem; padding: 8px 14px; border-radius: 20px; box-shadow: 0 4px 14px rgba(0,0,0,0.3); white-space: nowrap; opacity: 0; transform: translateX(6px); transition: opacity 0.35s ease 0.6s, transform 0.35s ease 0.6s; pointer-events: none; }
.ctfs-fab-wrap.is-active .ctfs-fab-hint { opacity: 1; transform: translateX(0); }
.ctfs-fab-wrap.is-open .ctfs-fab-hint { opacity: 0; transition-delay: 0s; }
.ctfs-fab-btn { width: 56px; height: 56px; border-radius: 50%; background: var(--ctfs-terracotta); border: none; box-shadow: 0 8px 22px rgba(0,0,0,0.35); cursor: pointer; position: relative; opacity: 0; transform: scale(0.85); pointer-events: none; transition: opacity 0.35s ease, transform 0.35s ease, background 0.2s ease; flex-shrink: 0; }
.ctfs-fab-wrap.is-active .ctfs-fab-btn { opacity: 1; transform: scale(1); pointer-events: auto; }
.ctfs-fab-btn:hover { background: #c2694c; }
.ctfs-fab-btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.ctfs-fab-option a:focus-visible { outline: 2px solid var(--ctfs-sage); outline-offset: 2px; }
.ctfs-fab-btn.ctfs-fab-pulse::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--ctfs-sage); opacity: 0; animation: ctfsFabPulse 2.4s ease-out 1s 2; }
@keyframes ctfsFabPulse { 0% { transform: scale(1); opacity: 0.7; } 100% { transform: scale(1.6); opacity: 0; } }
.ctfs-fab-btn .ctfs-fab-bar { position: absolute; left: 16px; width: 24px; height: 2.5px; background: #fff; border-radius: 2px; transition: transform 0.3s ease, opacity 0.2s ease, top 0.3s ease; }
.ctfs-fab-btn .ctfs-fab-bar:nth-child(1) { top: 20px; }
.ctfs-fab-btn .ctfs-fab-bar:nth-child(2) { top: 27px; }
.ctfs-fab-btn .ctfs-fab-bar:nth-child(3) { top: 34px; }
.ctfs-fab-wrap.is-open .ctfs-fab-btn .ctfs-fab-bar:nth-child(1) { top: 27px; transform: rotate(45deg); }
.ctfs-fab-wrap.is-open .ctfs-fab-btn .ctfs-fab-bar:nth-child(2) { opacity: 0; }
.ctfs-fab-wrap.is-open .ctfs-fab-btn .ctfs-fab-bar:nth-child(3) { top: 27px; transform: rotate(-45deg); }
@media (max-width: 640px) { .ctfs-fab-wrap { right: 16px; bottom: 16px; } .ctfs-fab-option { max-width: calc(100vw - 64px); white-space: normal; } .ctfs-fab-hint { display: none; } }
/* ============================================================
   Header (Kadence — verified selectors)
   ============================================================ */
header.site-header,
header .site-container {
  position: sticky !important;
  top: 0;
  z-index: 500;
}
header.site-header {
  background: rgba(42, 58, 87, 0.6) !important;
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-bottom: none !important;
  box-shadow: none !important;
  transition: background 0.3s ease;
  transform: none !important;
  animation: none !important;
}
.site-header-main-header-inner-wrap.site-header-row {
  background: transparent !important;
  min-height: 72px !important;
  height: auto !important;
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  transform: none !important;
  animation: none !important;
}
.mobile-header-button-wrap,
.mobile-header-button-inner-wrap,
a.button.mobile-header-button {
  display: none !important;
}
.header-button-wrap,
.header-button-inner-wrap,
a.button.header-button {
  display: none !important;
}
.site-header-section-left img,
.site-header-section-left .site-logo img,
.site-header-section-left svg {
  max-height: 40px !important;
  width: auto !important;
  transition: max-height 0.3s ease;
}
.site-header-section-right .site-header-item,
.site-header-section-right button,
.site-header-section-right svg {
  color: #ffffff !important;
  fill: #ffffff !important;
}
.site-header-section-right button:hover,
.site-header-section-right button:hover svg {
  color: var(--ctfs-sage) !important;
  fill: var(--ctfs-sage) !important;
}
.site-header nav a,
.site-header .main-navigation a {
  color: #ffffff !important;
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 0.9rem !important;
}
.site-header nav a:hover,
.site-header .main-navigation a:hover {
  color: var(--ctfs-sage) !important;
}
.kadence-sticky-header,
.site-header.is-sticky:not(header.site-header) {
  display: none !important;
}
/* ============================================================
   Footer (Kadence — verified selector: #colophon)
   ============================================================ */
#colophon.site-footer {
  background: var(--ctfs-slate-dark) !important;
  color: #d7dce6 !important;
  padding-top: 56px !important;
  padding-bottom: 32px !important;
  position: relative;
  overflow: hidden;
}
#colophon.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.03;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  z-index: 0;
}
#colophon.site-footer * { position: relative; z-index: 1; }
#colophon.site-footer h1,
#colophon.site-footer h2,
#colophon.site-footer h3,
#colophon.site-footer h4 {
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 700 !important;
  color: #ffffff !important;
}
#colophon.site-footer h4,
#colophon.site-footer .widget-title,
#colophon.site-footer .footer-widget-title {
  font-family: 'DM Mono', monospace !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--ctfs-sage) !important;
  font-weight: 500 !important;
  margin-bottom: 14px !important;
}
#colophon.site-footer p,
#colophon.site-footer address {
  font-family: 'Inter', sans-serif !important;
  color: #c3cadb !important;
  line-height: 1.7;
}
#colophon.site-footer a {
  color: #d7dce6 !important;
  font-family: 'Inter', sans-serif !important;
  text-decoration: none !important;
  transition: color 0.2s ease;
}
#colophon.site-footer a:hover {
  color: var(--ctfs-sage) !important;
}
#colophon.site-footer a:focus-visible {
  outline: 2px solid var(--ctfs-sage);
  outline-offset: 2px;
}
#colophon.site-footer .site-info,
#colophon.site-footer .footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1) !important;
  margin-top: 40px !important;
  padding-top: 20px !important;
  font-family: 'DM Mono', monospace !important;
  font-size: 0.78rem !important;
  color: var(--ctfs-footer-muted) !important;
  text-align: center;
}

