/*
 * Next Level CPA v3 site styles (approved "v3" look, October 2026).
 * Light cream page, forest green + gold, Playfair Display headings, Poppins body,
 * IBM Plex Mono for small labels. One dark "client dashboard" card is the futuristic accent.
 * Used by every static page, including the /ads/ landing pages (except /ads/thank-you/).
 */
:root {
  --deep: #0d2418;
  --forest: #1f5a3d;
  --forest2: #184a32;
  --panel: #1a3d28;
  --gold: #c9a84c;
  --gold2: #e2c47a;
  --goldink: #8a6d1f;
  --paper: #faf7f2;
  --cream: #f3ede2;
  --white: #ffffff;
  --ink: #122d1e;
  --ink2: #46594d;
  --muted: #6f7f74;
  --rule: #e4dccb;
  --line: rgba(201, 168, 76, 0.22);
  --display: "Playfair Display", Georgia, serif;
  --body: "Poppins", system-ui, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;
  --radius: 18px;
  --shadow: 0 30px 60px -36px rgba(13, 36, 24, 0.45);
  color-scheme: light;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body, body.seo-body, body.v3 {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 15.5px/1.6 var(--body);
  -webkit-font-smoothing: antialiased;
}
img, iframe, svg { max-width: 100%; }
a { color: var(--forest); text-underline-offset: 3px; }
a:hover { color: var(--deep); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 6px; }
.v3-wrap, .wrap { width: 100%; max-width: 1140px; margin: 0 auto; padding-inline: 20px; }
.v3-skip { position: absolute; left: -9999px; }
.v3-skip:focus { left: 12px; top: 12px; z-index: 100; background: var(--white); padding: 8px 12px; border-radius: 8px; }

/* ---------- type helpers ---------- */
.eyebrow, .nlcpa-section-label, .v3-eyebrow {
  display: inline-block;
  font: 500 11px/1.5 var(--mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--goldink);
}
.v3-h2, .seo-page h2 {
  font-family: var(--display);
  font-weight: 500;
  color: var(--deep);
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.v3-h2 { font-size: clamp(28px, 3.6vw, 42px); line-height: 1.1; margin: 10px 0 26px; max-width: 24ch; }
h1 em, h2 em, .v3-h2 em { color: var(--forest); font-style: italic; }
.v3-lede { color: var(--ink2); font-size: 17px; max-width: 54ch; margin: 0 0 24px; }
.v3-mono { font-family: var(--mono); }

/* ---------- buttons ---------- */
.v3-btn, .seo-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 11px 22px;
  border: 1px solid var(--forest);
  border-radius: 999px;
  background: var(--forest);
  color: #fff !important;
  font: 600 14px/1.2 var(--body);
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.v3-btn:hover, .seo-button:hover { background: var(--deep); border-color: var(--deep); color: #fff !important; }
.v3-btn:active, .seo-button:active { transform: scale(0.98); }
.v3-btn--gold { background: var(--gold); border-color: var(--gold); color: var(--deep) !important; }
.v3-btn--gold:hover { background: var(--gold2); border-color: var(--gold2); color: var(--deep) !important; }
.v3-btn--line, .seo-button--ghost {
  background: transparent;
  border-color: var(--rule);
  color: var(--ink) !important;
}
.v3-btn--line:hover, .seo-button--ghost:hover { background: var(--white); border-color: var(--forest); color: var(--forest) !important; }
.v3-btn--sm { min-height: 40px; padding: 8px 18px; font-size: 13.5px; }
.v3-ctas, .seo-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 22px; }
.seo-hero__actions:empty { display: none; }

/* ---------- shared header ---------- */
.v3-head {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(250, 247, 242, 0.92);
  -webkit-backdrop-filter: saturate(1.4) blur(10px);
  backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid var(--rule);
}
.v3-head__in { display: flex; align-items: center; gap: 24px; min-height: 68px; }
.v3-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--deep) !important;
  font: 600 16px/1 var(--body);
  text-decoration: none;
  white-space: nowrap;
}
.v3-brand img { width: 30px; height: 30px; display: block; }
.v3-nav { display: flex; gap: 22px; margin-left: auto; }
.v3-nav a { color: var(--ink2); font-size: 13.5px; text-decoration: none; }
.v3-nav a:hover, .v3-nav a[aria-current="page"] { color: var(--forest); }
.v3-phone { font: 500 13px var(--mono); color: var(--forest) !important; text-decoration: none; white-space: nowrap; }
.v3-phone:hover { color: var(--deep) !important; }
.v3-head--lp .v3-phone { margin-left: auto; }
.v3-menu { display: none; position: relative; }
.v3-menu summary {
  list-style: none;
  cursor: pointer;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--rule);
  border-radius: 50%;
  background: var(--white);
}
.v3-menu summary::-webkit-details-marker { display: none; }
.v3-menu summary span, .v3-menu summary span::before, .v3-menu summary span::after {
  display: block; width: 16px; height: 1.5px; background: var(--deep); position: relative; content: "";
}
.v3-menu summary span::before { position: absolute; top: -5px; }
.v3-menu summary span::after { position: absolute; top: 5px; }
.v3-menu[open] summary { background: var(--cream); }
.v3-menu__panel {
  position: absolute;
  right: 0;
  top: 50px;
  width: min(280px, calc(100vw - 32px));
  display: grid;
  gap: 2px;
  padding: 10px;
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: 16px;
  box-shadow: var(--shadow);
}
.v3-menu__panel a { padding: 10px 12px; border-radius: 10px; color: var(--ink); text-decoration: none; font-size: 15px; }
.v3-menu__panel a:hover { background: var(--cream); }
.v3-menu__panel .v3-phone { font-size: 14px; }

/* ---------- reviews ribbon ---------- */
.v3-ribbon { border-block: 1px solid var(--rule); background: var(--white); }
.v3-rib { display: flex; align-items: stretch; gap: 26px; padding-block: 20px; overflow-x: auto; scrollbar-width: thin; }
.v3-score { display: flex; align-items: center; gap: 12px; flex: none; text-decoration: none; }
.v3-score b { font: 500 36px/1 var(--display); color: var(--deep); }
.v3-stars { color: var(--gold); letter-spacing: 2px; font-size: 15px; }
.v3-score small { display: block; font-size: 12px; color: var(--muted); }
.v3-q { flex: 1 1 0; min-width: 230px; margin: 0; font-size: 13.5px; color: var(--ink2); border-left: 1px solid var(--rule); padding-left: 20px; }
.v3-q blockquote { margin: 0; }
.v3-q cite, .v3-q figcaption { display: block; font: 500 11px var(--mono); font-style: normal; color: var(--goldink); margin-top: 6px; }

/* ---------- sections ---------- */
.v3-sec { padding-block: 72px; }
.v3-sec--tight { padding-block: 48px; }
.v3-sec--cream { background: var(--cream); }
.v3-sec + .v3-sec--flush { padding-top: 0; }

/* ---------- hero (homepage + ads) ---------- */
.v3-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 48px; align-items: center; padding-block: 52px 60px; }
.v3-hero h1, .seo-page h1 {
  font: 500 clamp(36px, 5vw, 60px)/1.06 var(--display);
  letter-spacing: -0.015em;
  margin: 14px 0 18px;
  color: var(--deep);
  text-wrap: balance;
}
.v3-hero h1 em, .seo-page h1 em { color: var(--forest); font-style: italic; }
.v3-by { display: flex; align-items: center; gap: 12px; margin-top: 24px; font-size: 13px; color: var(--muted); }
.v3-by img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 1px solid var(--rule); }
.v3-by strong { display: block; color: var(--deep); font-weight: 600; }
.v3-vsl {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: 20px;
  overflow: hidden;
  background: radial-gradient(120% 90% at 30% 20%, #2a6b4a, #0d2418);
  box-shadow: 0 30px 60px -30px rgba(13, 36, 24, 0.5);
}
.v3-vsl iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.v3-vsl-cap { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; font: 500 11.5px var(--mono); letter-spacing: 0.06em; color: var(--muted); }

/* ---------- dark client dashboard (the futuristic accent) ---------- */
.v3-dash {
  position: relative;
  background: linear-gradient(160deg, var(--panel), var(--deep));
  color: #f0e6d0;
  border-radius: 22px;
  padding: 20px;
  box-shadow: 0 40px 80px -40px rgba(13, 36, 24, 0.6), 0 0 0 1px rgba(226, 196, 122, 0.12);
}
.v3-dash__head { display: flex; justify-content: space-between; gap: 10px; font: 500 10.5px var(--mono); letter-spacing: 0.12em; color: #9aab9f; margin-bottom: 14px; }
.v3-pulse { color: var(--gold2); white-space: nowrap; }
.v3-pulse::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--gold2); margin-right: 7px; box-shadow: 0 0 10px var(--gold2); vertical-align: 1px; }
.v3-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.v3-k { border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; background: rgba(13, 36, 24, 0.55); min-width: 0; }
.v3-k small { display: block; font: 500 10px var(--mono); letter-spacing: 0.1em; color: #9aab9f; text-transform: uppercase; }
.v3-k b { display: block; font: 500 clamp(19px, 2.2vw, 24px) var(--mono); font-variant-numeric: tabular-nums; color: #faf7f2; margin-top: 2px; }
.v3-k span { font: 500 11px var(--mono); color: var(--gold2); }
.v3-chart { display: block; width: 100%; height: 96px; margin-top: 12px; border: 1px solid var(--line); border-radius: 14px; background: rgba(13, 36, 24, 0.55); }
.v3-move { margin-top: 10px; border-radius: 14px; padding: 11px 14px; background: rgba(201, 168, 76, 0.12); border: 1px solid var(--line); font-size: 13.5px; }
.v3-move b { display: block; font: 500 10px var(--mono); letter-spacing: 0.12em; color: var(--gold); }
.v3-eg { font: 500 10.5px var(--mono); color: #9aab9f; margin-top: 10px; letter-spacing: 0.06em; }
@media (prefers-reduced-motion: no-preference) {
  .v3-chart .ln { stroke-dasharray: 600; stroke-dashoffset: 600; animation: v3draw 1.4s ease-out 0.2s forwards; }
  @keyframes v3draw { to { stroke-dashoffset: 0; } }
}

/* ---------- "every month" split ---------- */
.v3-month { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 48px; align-items: center; }
.v3-ticks { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.v3-ticks li { display: flex; gap: 12px; align-items: flex-start; }
.v3-ticks li::before { content: ""; flex: none; width: 10px; height: 10px; margin-top: 7px; border-radius: 3px; background: var(--gold); }
.v3-ticks b { display: block; color: var(--deep); font-weight: 600; }
.v3-ticks span { color: var(--ink2); font-size: 14.5px; }

/* ---------- cards ---------- */
.v3-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.v3-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v3-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.v3-card {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  color: var(--ink2);
  text-decoration: none;
  font-size: 14.5px;
  transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
a.v3-card:hover { border-color: var(--forest); transform: translateY(-2px); box-shadow: var(--shadow); color: var(--ink2); }
.v3-card h3, .v3-card strong.v3-card__t { margin: 0; font: 500 21px/1.2 var(--display); color: var(--deep); }
.v3-card p { margin: 0; }
.v3-card ul { margin: 0; padding-left: 18px; }
.v3-card li { margin: 3px 0; }
.v3-tag { margin-top: auto; font: 500 11px var(--mono); letter-spacing: 0.08em; color: var(--muted); text-transform: uppercase; }
.v3-card--mrr { border-color: var(--gold); box-shadow: inset 0 3px 0 var(--gold); }
.v3-card--mrr .v3-tag { color: var(--goldink); }
.v3-num { font: 500 12px var(--mono); color: var(--goldink); letter-spacing: 0.1em; }
.v3-also { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 10px 26px; font-size: 14px; color: var(--ink2); }
.v3-also a { font-weight: 600; }

/* ---------- story / big number ---------- */
.v3-story { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr); gap: 36px; align-items: center; border-radius: 22px; padding: 34px; background: var(--cream); }
.v3-big { font: 500 clamp(56px, 8vw, 96px)/1 var(--display); color: var(--forest); }
.v3-story h3 { margin: 0; font: 500 26px/1.2 var(--display); color: var(--deep); }
.v3-story p { margin: 8px 0 0; font-size: 17px; color: var(--ink2); }
.v3-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-top: 14px; }
.v3-result { background: var(--white); border: 1px solid var(--rule); border-radius: 16px; padding: 18px; font-size: 14px; color: var(--ink2); }
.v3-result strong { display: block; font: 500 30px/1.1 var(--display); color: var(--forest); }
.v3-result h3 { margin: 6px 0 6px; font: 600 15px/1.35 var(--body); color: var(--deep); }
.v3-result p { margin: 0; }
.v3-result .eyebrow { font-size: 10px; }

/* ---------- final CTA / booking band ---------- */
.v3-final { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 36px; align-items: start; border-radius: 26px; padding: 40px; background: var(--forest); color: #faf7f2; }
.v3-final h2 { color: #faf7f2; margin: 8px 0 10px; font: 500 clamp(30px, 3.8vw, 44px)/1.1 var(--display); }
.v3-final p { color: #dfe9e2; }
.v3-final .eyebrow { color: var(--gold2); }
.v3-final .v3-meta { font: 500 13px var(--mono); color: var(--gold2); }
.v3-final a:not(.v3-btn) { color: var(--gold2); }

/* ---------- booking card (GHL calendar) ---------- */
.v3-bookcard, .seo-hero__book {
  position: relative;
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: 22px;
  padding: 22px 20px 18px;
  box-shadow: var(--shadow);
  color: var(--ink2);
  min-width: 0;
}
.v3-bookcard h2, .seo-page .seo-hero__book h2 { margin: 6px 0 6px; font: 500 26px/1.15 var(--display); color: var(--deep); }
.v3-bookcard > p, .seo-page .seo-hero__book > p { margin: 0 0 14px; font-size: 14px; color: var(--ink2); }
.seo-page .seo-hero__book .seo-hero__book-label, .v3-bookcard .eyebrow { margin: 0; font: 500 11px var(--mono); letter-spacing: 0.16em; text-transform: uppercase; color: var(--goldink); }
.v3-frame, .seo-hero__frame {
  height: 640px;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--rule);
  border-radius: 14px;
  background: #fff;
}
.v3-frame::-webkit-scrollbar, .seo-hero__frame::-webkit-scrollbar { width: 8px; }
.v3-frame::-webkit-scrollbar-thumb, .seo-hero__frame::-webkit-scrollbar-thumb { background: rgba(201, 168, 76, 0.55); border-radius: 4px; }
.v3-frame iframe, .seo-hero__frame iframe { display: block; width: 100%; min-height: 700px; border: 0; background: #fff; }
.seo-page .seo-hero__book .seo-hero__book-note, .v3-note { margin: 12px 0 0; font-size: 13px; color: var(--muted); }
.seo-page .seo-hero__book .seo-hero__consent, .v3-consent { margin-top: 8px; font-size: 11px; line-height: 1.5; color: var(--muted); }
.v3-final .v3-bookcard { box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.45); }

/* ---------- FAQ ---------- */
.v3-faq details, .seo-faq details, .faq-list details {
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: 14px;
  margin-bottom: 10px;
  transition: border-color 0.15s ease;
}
.v3-faq details[open], .seo-faq details[open], .faq-list details[open] { border-color: var(--gold); }
.v3-faq summary, .seo-faq summary, .faq-list summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 16px 20px;
  color: var(--deep);
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  list-style: none;
}
.v3-faq summary::-webkit-details-marker, .seo-faq summary::-webkit-details-marker, .faq-list summary::-webkit-details-marker { display: none; }
.v3-faq summary::after, .seo-faq summary::after, .faq-list summary::after { content: "+"; flex: none; color: var(--goldink); font: 400 22px/1 var(--body); }
.v3-faq details[open] summary::after, .seo-faq details[open] summary::after, .faq-list details[open] summary::after { content: "\2212"; }
.v3-faq details > div, .v3-faq details > p, .seo-faq details > div, .faq-list details > p { padding: 0 20px 16px; margin: 0; color: var(--ink2); font-size: 15px; }
.seo-faq details > div p { margin: 0 0 10px; }
.seo-faq details > div p:last-child { margin-bottom: 0; }

/* ---------- shared footer ---------- */
.seo-footer, .v3-foot { margin-top: 24px; background: var(--deep); color: #b9c6bd; font-size: 14px; line-height: 1.7; }
.seo-footer__grid { display: grid; grid-template-columns: 1.3fr repeat(3, minmax(0, 1fr)); gap: 36px; max-width: 1140px; margin: 0 auto; padding: 56px 20px 32px; }
.seo-footer__grid h2 { margin: 0 0 12px; color: var(--gold2); font: 500 11px var(--mono); letter-spacing: 0.16em; text-transform: uppercase; }
.seo-footer__grid ul { margin: 0; padding: 0; list-style: none; }
.seo-footer__grid li { margin: 0 0 4px; }
.seo-footer a { color: #e6ede8; text-decoration: none; }
.seo-footer a:hover { color: var(--gold2); }
.seo-footer address { font-style: normal; }
.seo-footer p { margin: 12px 0 0; }
.seo-footer__brand { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; color: #faf7f2; font: 600 17px var(--body); }
.seo-footer__brand img { width: 30px; height: 30px; }
.seo-footer__cred { font-size: 13px; }
.seo-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; max-width: 1140px; margin: 0 auto; padding: 18px 20px 30px; border-top: 1px solid rgba(226, 196, 122, 0.15); font: 500 11.5px var(--mono); color: #8fa196; }
.seo-footer__legal a { margin-left: 18px; color: #b9c6bd; }

/* ---------- sticky mobile call/book bar ---------- */
.v3-mbar { display: none; }
@media (max-width: 760px) {
  .v3-mbar {
    position: fixed;
    left: 10px;
    right: 82px; /* leaves room for the GHL chat bubble */
    bottom: 12px;
    z-index: 60;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 8px;
    border-radius: 999px;
    background: rgba(13, 36, 24, 0.94);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    box-shadow: 0 16px 40px -12px rgba(0, 0, 0, 0.5);
  }
  .v3-mbar a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    border-radius: 999px;
    font: 600 15px var(--body);
    text-decoration: none;
    color: #faf7f2;
    border: 1px solid rgba(226, 196, 122, 0.35);
  }
  .v3-mbar a + a { background: var(--gold); color: var(--deep); border-color: var(--gold); }
  body.has-mbar { padding-bottom: 84px; }
}

/* =====================================================================
   Static SEO pages (service, city, insights, legal, contact)
   ===================================================================== */
.seo-page { min-height: 100vh; overflow-x: clip; }
.seo-crumbs { max-width: 1140px; margin: 0 auto; padding: 20px 20px 0; font: 500 11.5px var(--mono); color: var(--muted); }
.seo-crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.seo-crumbs li + li::before { content: "/"; margin-right: 8px; color: var(--gold); }
.seo-crumbs a { color: var(--muted); text-decoration: none; }
.seo-crumbs a:hover { color: var(--forest); }

.seo-page .nlcpa-who-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
  gap: 56px;
  align-items: start;
  max-width: 1140px;
  margin: 0 auto;
  padding: 36px 20px 64px;
}
.seo-page .nlcpa-who-hero:not(.seo-hero) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; padding-block: 72px; }
.seo-page .seo-hero--legal { grid-template-columns: 1fr; padding-bottom: 24px; }
.seo-hero__copy { padding-top: 20px; min-width: 0; }
.seo-page .seo-hero__lede { max-width: 58ch; margin: 0 0 22px; color: var(--ink2); font-size: 17px; line-height: 1.65; }
.seo-byline { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.seo-byline img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 1px solid var(--rule); }
.seo-byline strong { display: block; color: var(--deep); font-weight: 600; }
.seo-video { position: relative; margin-top: 26px; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: var(--deep); }
.seo-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.seo-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; max-width: 1140px; margin: 0 auto; padding: 24px 20px 32px; }
.seo-article { min-width: 0; max-width: 740px; color: var(--ink2); font-size: 16.5px; line-height: 1.75; }
.seo-article > section + section { margin-top: 48px; padding-top: 44px; border-top: 1px solid var(--rule); }
.seo-article h2 { margin: 0 0 16px; font-size: clamp(26px, 3vw, 36px); line-height: 1.15; }
.seo-article h3 { margin: 28px 0 8px; color: var(--deep); font: 600 18px/1.4 var(--body); }
.seo-article p { margin: 0 0 16px; }
.seo-article ul, .seo-article ol { margin: 0 0 20px; padding-left: 22px; }
.seo-article li { margin: 0 0 9px; padding-left: 4px; }
.seo-article li::marker { color: var(--gold); }
.seo-article strong { color: var(--deep); font-weight: 600; }
.seo-article a { color: var(--forest); font-weight: 500; }
.seo-note { margin: 24px 0; padding: 20px 22px; border-radius: 16px; background: var(--cream); border: 1px solid var(--rule); box-shadow: inset 3px 0 0 var(--gold); font-size: 15.5px; }
.seo-note p:last-child { margin-bottom: 0; }
.seo-table-wrap { margin: 8px 0 22px; overflow-x: auto; border: 1px solid var(--rule); border-radius: 14px; background: var(--white); }
.seo-table { width: 100%; border-collapse: collapse; font-size: 14.5px; line-height: 1.5; }
.seo-table th, .seo-table td { padding: 12px 16px; border-bottom: 1px solid var(--rule); text-align: left; vertical-align: top; }
.seo-table th { color: var(--goldink); font: 500 11px var(--mono); letter-spacing: 0.1em; text-transform: uppercase; background: var(--cream); }
.seo-table tr:last-child td { border-bottom: 0; }
.seo-table td:last-child { color: var(--deep); font-weight: 600; white-space: nowrap; }
.seo-article .seo-steps { counter-reset: step; list-style: none; padding-left: 0; }
.seo-steps li { position: relative; margin-bottom: 16px; padding-left: 48px !important; }
.seo-steps li::before { counter-increment: step; content: counter(step, decimal-leading-zero); position: absolute; top: 1px; left: 0; width: 34px; height: 26px; display: grid; place-items: center; border-radius: 999px; background: var(--cream); color: var(--goldink); font: 500 12px var(--mono); }
.seo-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 32px; }

.seo-aside { position: relative; min-width: 0; }
.seo-aside__card {
  position: sticky;
  top: 92px;
  padding: 24px;
  border-radius: 20px;
  background: linear-gradient(160deg, var(--panel), var(--deep));
  color: #dfe9e2;
  font-size: 14px;
  line-height: 1.65;
  box-shadow: 0 30px 60px -36px rgba(13, 36, 24, 0.6), 0 0 0 1px rgba(226, 196, 122, 0.12);
}
.seo-page .seo-aside__card h2 { margin: 0 0 10px; color: #faf7f2; font-size: 24px; line-height: 1.2; }
.seo-aside__card p { margin: 0 0 16px; }
.seo-aside__card .seo-button { width: 100%; margin-bottom: 10px; background: var(--gold); border-color: var(--gold); color: var(--deep) !important; }
.seo-aside__card .seo-button:hover { background: var(--gold2); border-color: var(--gold2); }
.seo-aside__card .seo-button--ghost { background: transparent; border-color: rgba(226, 196, 122, 0.4); color: #faf7f2 !important; font-family: var(--mono); font-weight: 500; }
.seo-aside__card .seo-button--ghost:hover { background: rgba(226, 196, 122, 0.1); }
.seo-aside__nap { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(226, 196, 122, 0.18); color: #9aab9f; font-size: 12.5px; font-style: normal; }
.seo-aside__nap strong { color: #faf7f2; }
.seo-aside__card a:not(.seo-button) { color: var(--gold2); }

/* interactive pricing widget (nlcpa-pricing.js): light v3 cards, styled in nlcpa-pricing-v3.css */
.seo-pricing { max-width: 1140px; margin: 8px auto 24px; padding: 0 20px; }

/* reviews */
.seo-reviews h2 { margin-bottom: 6px !important; }
.seo-reviews__meta { margin: 0; color: var(--muted); font-size: 14px; }
.seo-reviews__meta span { margin-right: 6px; color: var(--gold); letter-spacing: 0.08em; }
.seo-reviews__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 18px; }
.seo-reviews figure { margin: 0; padding: 20px; border: 1px solid var(--rule); border-radius: 16px; background: var(--white); display: flex; flex-direction: column; gap: 12px; }
.seo-reviews blockquote { margin: 0; color: var(--ink); font: italic 400 15.5px/1.6 var(--display); }
.seo-reviews figcaption { margin-top: auto; color: var(--goldink); font: 500 11px var(--mono); letter-spacing: 0.06em; }
.seo-reviews__link { margin-top: 14px !important; font-size: 14px; }

/* related */
.seo-related { max-width: 1140px; margin: 0 auto; padding: 48px 20px 0; }
.seo-related > h2, .seo-page .seo-related h2 { margin: 0 0 20px; font-size: clamp(26px, 3vw, 36px); }
.seo-related__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.seo-related__grid a { display: block; padding: 22px; border: 1px solid var(--rule); border-radius: 16px; background: var(--white); color: var(--ink2); text-decoration: none; transition: border-color 0.15s ease, transform 0.15s ease; }
.seo-related__grid a:hover { border-color: var(--forest); transform: translateY(-2px); }
.seo-related__grid strong { display: block; margin-bottom: 6px; color: var(--deep); font: 500 20px/1.25 var(--display); }
.seo-related__grid span { font-size: 14px; line-height: 1.55; }

/* closing book band */
.seo-book { max-width: 1140px; margin: 0 auto; padding: 64px 20px 56px; }
.seo-book__band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 38px; border-radius: 26px; background: var(--forest); color: #dfe9e2; font-size: 15.5px; }
.seo-page .seo-book__band h2 { margin: 6px 0 8px !important; color: #faf7f2; font-size: clamp(26px, 3.2vw, 38px); }
.seo-book__band p { margin: 0; max-width: 56ch; }
.seo-book__band .nlcpa-section-label { color: var(--gold2); }
.seo-book__band .seo-hero__actions { margin-top: 0; }
.seo-book__band .seo-button { background: var(--gold); border-color: var(--gold); color: var(--deep) !important; }
.seo-book__band .seo-button:hover { background: var(--gold2); border-color: var(--gold2); }
.seo-book__band .seo-button--ghost { background: transparent; border-color: rgba(250, 247, 242, 0.4); color: #faf7f2 !important; }
.seo-book__band .seo-button--ghost:hover { background: rgba(250, 247, 242, 0.08); }

.seo-map { margin: 8px 0 22px; border: 1px solid var(--rule); border-radius: 16px; overflow: hidden; background: var(--cream); }
.seo-map iframe { display: block; width: 100%; height: 320px; border: 0; }

/* legal */
.seo-legal { max-width: 1140px; margin: 0 auto; padding: 0 20px 24px; }
.seo-legal__body { max-width: 760px; color: var(--ink2); font-size: 16px; line-height: 1.75; }
.seo-page .seo-legal__body h2 { margin: 40px 0 12px; font-size: clamp(22px, 2.6vw, 28px); }
.seo-page .seo-legal__body h2:first-of-type { margin-top: 8px; }
.seo-legal__body > p:first-child { color: var(--muted); font: 500 12.5px var(--mono); }
.seo-legal__body strong { color: var(--deep); }
.seo-legal__example { margin: 16px 0 20px !important; padding: 16px 18px; border-radius: 14px; background: var(--cream); box-shadow: inset 3px 0 0 var(--gold); font-size: 15px; }

/* contact */
.seo-contact { margin-top: 32px; color: var(--ink2); font-size: 16px; line-height: 1.7; }
.seo-page .seo-contact h2 { margin: 0 0 10px; font-size: 30px; }
.seo-contact p { margin: 0 0 16px; }
.seo-contact strong { color: var(--deep); }

/* 404 */
.seo-page .nlcpa-who-hero__aside .seo-hero__lede { margin-bottom: 14px; }

/* =====================================================================
   Homepage
   ===================================================================== */
.v3-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; }
.v3-stats div { padding: 18px; border: 1px solid var(--rule); border-radius: 16px; background: var(--white); }
.v3-stats strong { display: block; font: 500 22px/1.2 var(--display); color: var(--deep); }
.v3-stats span { font: 500 10.5px var(--mono); letter-spacing: 0.12em; color: var(--muted); text-transform: uppercase; }
.v3-split { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 48px; align-items: start; }
.v3-prose { color: var(--ink2); font-size: 16.5px; line-height: 1.75; }
.v3-prose p { margin: 0 0 14px; }
.v3-prose strong { color: var(--deep); }
.v3-sign { color: var(--forest); font-weight: 600; }
.v3-founder { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 48px; align-items: start; }
.v3-founder img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 22px; }
.v3-team { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.v3-team article { padding: 18px; border: 1px solid var(--rule); border-radius: 18px; background: var(--white); font-size: 13.5px; color: var(--ink2); min-width: 0; }
.v3-team img { display: block; width: 72px; height: 72px; margin-bottom: 12px; border-radius: 50%; object-fit: cover; }
.v3-team h3 { margin: 0 0 4px; font: 500 17px/1.25 var(--display); color: var(--deep); }
.v3-team .eyebrow { font-size: 9.5px; letter-spacing: 0.12em; }
.v3-team p { margin: 8px 0 0; }
.v3-faqwrap { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 48px; align-items: start; }

/* =====================================================================
   /ads/ landing pages
   ===================================================================== */
.lp-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 440px); gap: 52px; align-items: start; padding-block: 40px 56px; }
.lp-hero h1 { font: 500 clamp(34px, 4.6vw, 56px)/1.06 var(--display); letter-spacing: -0.015em; margin: 12px 0 14px; color: var(--deep); text-wrap: balance; }
.lp-sub { margin: 0 0 14px; font: italic 500 clamp(20px, 2.2vw, 25px)/1.3 var(--display); color: var(--forest); }
.lp-lead { margin: 0 0 22px; color: var(--ink2); font-size: 16.5px; max-width: 54ch; }
.lp-anchor { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 10px 18px; border-radius: 999px; background: var(--cream); border: 1px solid var(--rule); color: var(--deep); font-size: 14.5px; }
.lp-anchor b { font: 600 15px var(--body); }
.lp-anchor small { font: 500 11.5px var(--mono); color: var(--goldink); }
.lp-rating { display: flex; align-items: center; gap: 10px; margin-top: 22px; font-size: 13.5px; color: var(--muted); }
.lp-rating b { color: var(--deep); font-weight: 600; }
.lp-urgent { margin: 14px 0 0; font: 500 12px var(--mono); color: var(--goldink); letter-spacing: 0.04em; }
.lp-points { margin: 22px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; font-size: 14.5px; color: var(--ink2); }
.lp-points li { display: flex; gap: 10px; }
.lp-points li::before { content: "\2713"; flex: none; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: var(--forest); color: #fff; font-size: 11px; margin-top: 2px; }
.lp-hero .v3-bookcard { position: sticky; top: 84px; }
.lp-review { margin: 0; padding: 22px; border-radius: 20px; background: var(--cream); color: var(--ink); }
.lp-review blockquote { margin: 0 0 12px; font: italic 400 17px/1.6 var(--display); }
.lp-review figcaption { font: 500 11.5px var(--mono); color: var(--goldink); }
.lp-pains { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.lp-pains article { padding: 18px; border-radius: 16px; border: 1px solid var(--rule); background: var(--white); font-size: 14px; color: var(--ink2); }
.lp-pains h3 { margin: 6px 0 6px; font: 600 15.5px/1.35 var(--body); color: var(--deep); }
.lp-pains p { margin: 0; }
.lp-deliv { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 40px; align-items: center; }
.lp-deliv .v3-cards { grid-template-columns: 1fr; }
.lp-deliv .v3-card { flex-direction: row; gap: 16px; align-items: flex-start; }
.lp-deliv .v3-card h3 { font-size: 20px; margin-bottom: 4px; }
.lp-also { margin: 16px 0 0; font-size: 13.5px; color: var(--muted); }
.lp-also b { color: var(--deep); font-weight: 600; }
.lp-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.lp-steps li { padding: 18px; border-top: 2px solid var(--gold); background: var(--white); border-radius: 0 0 14px 14px; font-size: 14px; color: var(--ink2); }
.lp-steps h3 { margin: 6px 0 4px; font: 600 15px var(--body); color: var(--deep); }
.lp-steps p { margin: 0; }
.lp-packs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.lp-packs--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; }
.lp-packs--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lp-pack { display: flex; flex-direction: column; gap: 8px; padding: 22px; border-radius: 18px; border: 1px solid var(--rule); background: var(--white); color: var(--ink2); font-size: 14px; min-width: 0; }
.lp-pack--feat { border-color: var(--gold); box-shadow: inset 0 3px 0 var(--gold); }
.lp-pack h3 { margin: 0; font: 500 22px/1.2 var(--display); color: var(--deep); }
.lp-pack .lp-price { font: 500 30px/1.1 var(--display); color: var(--forest); }
.lp-pack .lp-price small { font: 500 12px var(--mono); color: var(--muted); }
.lp-pack .lp-annual { font: 500 12px var(--mono); color: var(--goldink); }
.lp-pack p { margin: 0; }
.lp-pack ul { margin: 4px 0 0; padding-left: 18px; }
.lp-pack li { margin: 3px 0; }
.lp-pack .lp-onb { margin-top: auto; padding-top: 10px; border-top: 1px solid var(--rule); font: 500 11.5px var(--mono); color: var(--muted); }
.lp-fine { margin: 16px 0 0; font-size: 12.5px; color: var(--muted); }
.lp-fine p { margin: 0 0 4px; }
.lp-out { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.lp-out article { padding: 22px; border-radius: 18px; background: var(--cream); color: var(--ink2); font-size: 14.5px; }
.lp-out strong { display: block; font: 500 44px/1 var(--display); color: var(--forest); }
.lp-out h3 { margin: 10px 0 4px; font: 600 16px var(--body); color: var(--deep); }
.lp-out p { margin: 0; }
.lp-faq { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 48px; align-items: start; }
.lp-foot { padding: 28px 0 36px; border-top: 1px solid var(--rule); font: 500 11.5px var(--mono); color: var(--muted); }
.lp-foot .v3-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: center; }
.lp-foot a { color: var(--muted); margin-left: 16px; }
.lp-foot .v3-brand { font-size: 14px; }
.lp-foot .v3-brand img { width: 24px; height: 24px; }

/* =====================================================================
   Responsive
   ===================================================================== */
@media (max-width: 1020px) {
  .v3-nav { display: none; }
  .v3-menu { display: block; }
  .v3-head__in > .v3-phone { margin-left: auto; }
  .v3-head--lp .v3-phone { margin-left: auto; }
  .seo-page .nlcpa-who-hero, .seo-page .nlcpa-who-hero:not(.seo-hero) { grid-template-columns: 1fr; gap: 28px; }
  .seo-hero__book { max-width: 640px; }
  .seo-layout { grid-template-columns: 1fr; gap: 36px; }
  .seo-aside__card { position: static; }
  .seo-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-hero { grid-template-columns: 1fr; gap: 28px; }
  .lp-hero .v3-bookcard { position: static; max-width: 640px; }
  .lp-pains, .lp-steps, .lp-packs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-deliv, .lp-faq, .v3-faqwrap { grid-template-columns: 1fr; gap: 28px; }
  .v3-team { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 920px) {
  .v3-hero, .v3-story, .v3-month, .v3-final, .v3-split, .v3-founder { grid-template-columns: 1fr; }
  .v3-cards { grid-template-columns: 1fr 1fr; }
  .v3-founder img { max-width: 240px; }
  .v3-stats { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .v3-head__in { gap: 12px; min-height: 60px; }
  .v3-head .v3-btn { display: none; }
  .v3-head--lp .v3-btn { display: none; }
  .v3-sec { padding-block: 52px; }
  .v3-hero { padding-block: 32px 40px; gap: 28px; }
  .lp-hero { padding-block: 24px 40px; }
  .lp-out, .v3-cards--3 { grid-template-columns: 1fr; }
  .v3-frame, .seo-hero__frame { height: min(620px, 80vh); }
  .seo-page .nlcpa-who-hero { padding: 24px 16px 44px; }
  .seo-crumbs, .seo-layout, .seo-related, .seo-book, .seo-legal, .seo-pricing { padding-left: 16px; padding-right: 16px; }
  .v3-wrap, .wrap { padding-inline: 16px; }
  .seo-columns { grid-template-columns: 1fr; }
  .seo-footer__grid { grid-template-columns: 1fr; gap: 26px; padding: 44px 16px 22px; }
  .seo-footer__legal { padding: 18px 16px 28px; }
  .seo-footer__legal a { margin: 0 16px 0 0; }
  .seo-book__band, .v3-final { padding: 26px 20px; }
  .v3-bookcard, .seo-hero__book { padding: 18px 12px 14px; border-radius: 18px; }
  .v3-bookcard h2, .seo-page .seo-hero__book h2 { font-size: 23px; }
  .seo-table td:last-child { white-space: normal; }
  .v3-team { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .v3-cards, .v3-cards--2, .lp-pains, .lp-steps, .lp-packs, .lp-packs--2, .lp-packs--3 { grid-template-columns: 1fr; }
  .v3-story { padding: 24px; }
  .v3-head .v3-phone { font-size: 12px; }
  .v3-brand { font-size: 15px; }
  .v3-rib { gap: 18px; }
  .v3-q { min-width: 78vw; }
  .lp-anchor { border-radius: 16px; }
}
@media (max-width: 380px) {
  .v3-brand span { display: none; }
}
.v3-prose .v3-stats { grid-template-columns: 1fr 1fr; margin-top: 22px; }
.v3-mbar--full { right: 10px; }
@media (max-width: 760px) {
  /* ad pages: the sticky Call/Book bar replaces the hero buttons so the calendar sits right after the hero */
  .lp-hero .v3-ctas, .lp-hero .lp-urgent { display: none; }
  .lp-hero .lp-rating { margin-top: 14px; }
  .lp-hero h1 { font-size: clamp(31px, 8.4vw, 40px); }
  .lp-sub { font-size: 19px; }
  .lp-lead { font-size: 15.5px; margin-bottom: 16px; }
}
.lp-hero__review { margin-top: 26px; }
.lp-hero__review .lp-review { background: var(--white); border: 1px solid var(--rule); }
.lp-hero__review .lp-review blockquote { font-size: 15.5px; }
@media (max-width: 1020px) { .lp-hero__review { display: none; } }
/* who-we-serve pages share the cream page background */
.seo-page.nlcpa-who-page { background: var(--paper); color: var(--ink); }
.seo-article ul:not(.seo-steps):not(.booked-steps) { list-style: disc; }
.seo-article ol:not(.seo-steps):not(.booked-steps) { list-style: decimal; }

/* =====================================================================
   Homepage, Oct 8 edits: booking band, reviews slider, 3 services +
   who we serve split, team face framing, "where we're based", CTA band
   ===================================================================== */
/* booking band right under the hero (the one calendar on the page) */
.v3-bookband { background: var(--forest); color: #dfe9e2; padding-block: 52px 60px; }
.v3-bookband__head { max-width: 900px; margin: 0 auto 22px; text-align: center; }
.v3-bookband .nlcpa-section-label { color: var(--gold2); }
.v3-bookband .v3-h2 { max-width: none; margin: 8px 0 8px; color: #faf7f2; }
.v3-bookband .v3-meta { margin: 0; font: 500 13px var(--mono); letter-spacing: 0.04em; color: var(--gold2); }
.v3-bookband__card.seo-hero__book { max-width: 900px; margin: 0 auto; padding: 18px; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.45); }
.v3-bookband .seo-hero__frame { height: 680px; }

/* reviews slider */
.v3-reviews__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 28px; }
.v3-reviews__head .v3-h2 { margin-bottom: 0; }
.v3-reviews .v3-score { padding: 10px 20px 10px 16px; border: 1px solid var(--rule); border-radius: 999px; background: var(--white); }
.v3-reviews .v3-score:hover { border-color: var(--forest); }
.v3-slider { margin-top: 26px; }
.v3-slider__track {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  padding: 6px max(20px, calc((100% - 1100px) / 2)) 14px;
  scroll-padding-inline: max(20px, calc((100% - 1100px) / 2));
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}
.v3-slider__track::-webkit-scrollbar { display: none; }
.v3-slider.is-auto .v3-slider__track {
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.v3-rev { flex: 0 0 340px; display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 22px; border: 1px solid var(--rule); border-radius: 16px; background: var(--white); }
.v3-rev::before { content: "\2605\2605\2605\2605\2605"; color: var(--gold); letter-spacing: 2px; font-size: 13px; }
.v3-rev blockquote { margin: 0; color: var(--ink); font: italic 400 16px/1.6 var(--display); }
.v3-rev figcaption { margin-top: auto; color: var(--goldink); font: 500 11px var(--mono); letter-spacing: 0.06em; }
.v3-reviews__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.v3-reviews__foot .seo-reviews__link { margin: 0 !important; font-size: 14px; }
.v3-slider__btns { display: flex; gap: 8px; }
.v3-slider__btn { width: 42px; height: 42px; border: 1px solid var(--rule); border-radius: 50%; background: var(--white); color: var(--deep); font-size: 17px; cursor: pointer; }
.v3-slider__btn:hover { border-color: var(--forest); color: var(--forest); }
@media (prefers-reduced-motion: reduce) {
  .v3-slider__track { scroll-snap-type: x mandatory; }
  .v3-rev { scroll-snap-align: start; }
}

/* services: fractional CFO tier inside the outsourced accounting card */
.v3-tier { display: block; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(201, 168, 76, 0.1); font-size: 13.5px; line-height: 1.5; color: var(--ink2); }
.v3-tier b { display: block; margin-bottom: 2px; color: var(--deep); font-weight: 600; }

/* who we serve split */
.v3-who { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr) minmax(0, 1fr); gap: 14px; margin-top: 34px; }
.v3-who__label { align-self: center; }
.v3-who__label h3 { margin: 6px 0 0; font: 500 26px/1.2 var(--display); color: var(--deep); }
.v3-who__card { display: flex; flex-direction: column; gap: 8px; padding: 22px; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--cream); color: var(--ink2); font-size: 14.5px; text-decoration: none; transition: border-color 0.15s ease, transform 0.15s ease; }
.v3-who__card:hover { border-color: var(--forest); transform: translateY(-2px); color: var(--ink2); }
.v3-who__card strong { font: 500 22px/1.2 var(--display); color: var(--deep); }
.v3-who__card em { font-style: normal; color: var(--goldink); font-weight: 600; }
.v3-who__more { margin-top: auto; padding-top: 4px; color: var(--forest); font-weight: 600; font-size: 14px; }

/* team: every face centred in its circle. The source photos are framed differently
   (two are tight face crops, three are head and shoulders), so each one is zoomed/positioned
   so the eyes sit just above the middle and the face fills about the same share of the circle. */
.v3-face { display: block; width: 84px; height: 84px; margin-bottom: 12px; border-radius: 50%; overflow: hidden; background: var(--cream); box-shadow: 0 0 0 1px var(--rule); }
.v3-team .v3-face img { display: block; width: 100%; height: 100%; margin: 0; border-radius: 0; object-fit: cover; object-position: center center; }
.v3-face--sargis img { transform: none; }
.v3-face--jessica img { transform: scale(1.2); transform-origin: 50% 100%; }
.v3-face--mark img { transform: scale(1.25); transform-origin: 34% 25%; }
.v3-face--monika img { transform: scale(1.4); transform-origin: 54% 15%; }
.v3-face--alina img { transform: scale(1.3); transform-origin: 61% 23%; }

/* where we're based */
.v3-virtual { display: inline-block; margin: -10px 0 18px; padding: 7px 14px; border-radius: 999px; background: var(--cream); border: 1px solid var(--rule); font: 500 12.5px var(--mono); letter-spacing: 0.04em; color: var(--forest); }

/* final CTA band (no second calendar: it scrolls up to #book) */
.v3-final--cta { grid-template-columns: 1fr; justify-items: center; gap: 0; text-align: center; padding: 48px 32px; }
.v3-final--cta p { max-width: 56ch; margin: 0 0 10px; }
.v3-final--cta .v3-meta { max-width: none; }
.v3-final--cta .v3-ctas { justify-content: center; margin-top: 14px; }
.v3-final .nlcpa-section-label { color: var(--gold2); }
.v3-btn--ghostlight { background: transparent; border-color: rgba(250, 247, 242, 0.4); color: #faf7f2 !important; }
.v3-btn--ghostlight:hover { background: rgba(250, 247, 242, 0.08); border-color: #faf7f2; }

@media (max-width: 920px) {
  .v3-who { grid-template-columns: 1fr 1fr; }
  .v3-who__label { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .v3-bookband { padding-block: 36px 40px; }
  .v3-bookband__card.seo-hero__book { padding: 10px 8px 12px; }
  .v3-bookband .seo-hero__frame { height: min(640px, 82vh); }
  .v3-final--cta { padding: 32px 20px; }
}
@media (max-width: 560px) {
  .v3-who { grid-template-columns: 1fr; }
  .v3-rev { flex-basis: 80vw; }
  .v3-slider__track { padding-inline: 16px; scroll-padding-inline: 16px; }
}

/* Areas we serve: short hero copy, so the calendar goes full width underneath (no empty gutter) */
.seo-page .seo-hero--stack { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-bottom: 56px; }
.seo-hero--stack .seo-hero__copy { padding-top: 12px; }
.seo-hero--stack .seo-hero__book { width: 100%; max-width: none; }
.seo-hero--stack .seo-hero__frame { height: 680px; }
/* contact: "where we're based" pill sits under the heading */
.seo-contact .v3-virtual { margin: 0 0 14px; }
@media (max-width: 760px) { .seo-hero--stack .seo-hero__frame { height: min(640px, 82vh); } }
@media (max-width: 560px) { .v3-virtual { border-radius: 14px; } }

/* =====================================================================
   Oct 8 (round 2): who-we-serve strip, team photo framing, booking band
   ===================================================================== */
/* homepage: "Where are you in your business?" is a slim 2 column strip under the 3 solution cards */
.v3-who { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; margin-top: 22px; }
.v3-who__label { grid-column: 1 / -1; align-self: auto; margin: 0 0 10px; font-size: 14px; color: var(--ink2); }
.v3-who__label .eyebrow { margin-right: 10px; }
.v3-who__card { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; padding: 14px 18px; border-radius: 14px; background: transparent; font-size: 13.5px; line-height: 1.5; }
.v3-who__card:hover { transform: none; background: var(--cream); }
.v3-who__card .v3-num { flex-basis: 100%; }
.v3-who__card strong { font: 500 18px/1.25 var(--display); }
.v3-who__card > span:not(.v3-num):not(.v3-who__more) { flex: 1 1 220px; }
.v3-who__more { margin: 0 0 0 auto; padding: 0; font-size: 13px; white-space: nowrap; }
@media (max-width: 920px) { .v3-who { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .v3-who { grid-template-columns: 1fr; gap: 10px; } }

/* team photos: no zoom. Rounded-square portraits that show the whole source photo.
   Sargis and Jessica are tight face crops, so their photo sits smaller, bottom-aligned,
   with the edges faded into a matching background: full head with room around it. */
.v3-face { width: 100%; max-width: 168px; height: auto; aspect-ratio: 1; margin-bottom: 14px; border-radius: 16px; display: flex; align-items: flex-end; justify-content: center; }
.v3-team .v3-face img { transform: none !important; object-fit: cover; object-position: center 30%; }
.v3-face--sargis { background: linear-gradient(#c3c2c2, #d3d1d0); }
.v3-face--jessica { background: linear-gradient(#5a3f2c, #4a3a34); }
.v3-face--alina { background: #d1b49b; }
.v3-face--mark { background: #d9d4c8; }
.v3-team .v3-face--sargis img, .v3-team .v3-face--jessica img, .v3-team .v3-face--alina img {
  width: 80%; height: 80%; object-fit: contain; object-position: center bottom;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14%, #000 86%, transparent 100%), linear-gradient(180deg, transparent 0, #000 16%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0, #000 14%, #000 86%, transparent 100%), linear-gradient(180deg, transparent 0, #000 16%);
  mask-composite: intersect;
}
.v3-team .v3-face--alina img { width: 88%; height: 88%; }
/* founder photo (story section) and small byline avatars: no zoom, face framed a little higher */
.v3-founder__photo { display: flex; align-items: flex-end; justify-content: center; width: 100%; aspect-ratio: 1; border-radius: 22px; overflow: hidden; background: linear-gradient(#c3c2c2, #d3d1d0); }
.v3-founder .v3-founder__photo img { width: 84%; height: 84%; max-width: none; aspect-ratio: auto; border-radius: 0; object-fit: contain; object-position: center bottom;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14%, #000 86%, transparent 100%), linear-gradient(180deg, transparent 0, #000 16%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0, #000 14%, #000 86%, transparent 100%), linear-gradient(180deg, transparent 0, #000 16%);
  mask-composite: intersect; }
@media (max-width: 920px) { .v3-founder__photo { max-width: 240px; } }
.v3-by img, .seo-byline img { object-position: center 30%; background: #e2e2e0; }

/* booking calendar on service, city, insight, contact and area pages: a centred full-width band
   under the hero copy (not a narrow tall right column). /ads/ pages use .lp-hero and are unaffected. */
.seo-page .nlcpa-who-hero.seo-hero { grid-template-columns: minmax(0, 1fr); gap: 36px; }
.seo-page .seo-hero .seo-hero__book { width: 100%; max-width: 980px; margin: 0 auto; padding: 22px 24px 18px; }
.seo-page .seo-hero .seo-hero__frame { height: 680px; }
@media (max-width: 760px) {
  .seo-page .seo-hero .seo-hero__book { padding: 16px 10px 12px; }
  .seo-page .seo-hero .seo-hero__frame { height: min(640px, 82vh); }
}

/* =====================================================================
   v3.1 city pages (Charlotte, Fort Mill, Waxhaw): "at a glance" card in
   the hero (the calendar moved to the booking band under the hero),
   reviews slider on an SEO page, insights cards inside the article
   ===================================================================== */
.seo-glance h2 { margin-bottom: 10px !important; }
.seo-glance dl { margin: 0; }
.seo-glance dl > div { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 12px; padding: 12px 0; border-top: 1px solid var(--rule); font-size: 14.5px; line-height: 1.5; }
.seo-glance dt { padding-top: 2px; font: 500 10.5px/1.5 var(--mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--goldink); }
.seo-glance dd { margin: 0; color: var(--deep); }
.seo-glance__reviews { display: inline-flex; gap: 8px; align-items: center; margin-top: 6px; padding-top: 12px; color: var(--forest); font-weight: 600; font-size: 14px; text-decoration: none; }
.seo-glance__reviews span { color: var(--gold); letter-spacing: 2px; font-size: 13px; }
.seo-glance__reviews:hover { text-decoration: underline; }
.seo-page .seo-cityrev .v3-h2 { margin-top: 8px; }
.seo-related__grid--inline { margin-top: 8px; }
.seo-article .seo-related__grid--inline a { font-weight: 400; }
.seo-article .seo-related__grid--inline strong { font-size: 18px; }
@media (max-width: 560px) {
  .seo-glance dl > div { grid-template-columns: 1fr; gap: 2px; }
}
/* city pages: hero copy left, "at a glance" card right (the calendar is in the band below) */
.seo-page .nlcpa-who-hero.seo-hero.seo-hero--city { grid-template-columns: minmax(0, 1fr) minmax(320px, 410px); gap: 56px; align-items: center; }
.seo-page .seo-hero--city .seo-glance { width: 100%; max-width: none; margin: 0; padding: 22px 24px 14px; }
@media (max-width: 1020px) {
  .seo-page .nlcpa-who-hero.seo-hero.seo-hero--city { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .seo-page .seo-hero--city .seo-glance { max-width: 640px; }
}
@media (max-width: 760px) { .seo-page .seo-hero--city .seo-glance { padding: 16px 16px 10px; } }
.seo-related__grid.seo-related__grid--inline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.seo-article .seo-related__grid--inline span { display: block; line-height: 1.55; }
@media (max-width: 560px) { .seo-related__grid.seo-related__grid--inline { grid-template-columns: 1fr; } }
.seo-table--compare th:first-child, .seo-table--compare td:first-child { width: 22%; }
.seo-table--compare th:not(:first-child), .seo-table--compare td:not(:first-child) { width: 39%; }
.seo-table--compare td:last-child { white-space: normal; font-weight: 400; color: var(--ink2); }

/* Booking calendar: show a friendly loading state while GoHighLevel's widget loads (the iframe stays transparent until it paints). */
iframe[src*="widget/booking"]{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='60'%3E%3Ctext x='130' y='26' text-anchor='middle' font-family='Poppins,Arial,sans-serif' font-size='15' fill='%231f5a3d'%3ELoading available times%E2%80%A6%3C/text%3E%3Ctext x='130' y='48' text-anchor='middle' font-family='Arial,sans-serif' font-size='12' fill='%236f7f74'%3ETakes a few seconds%3C/text%3E%3C/svg%3E") center 90px no-repeat;border-radius:14px}

/* ---------- Client Login link (header + mobile menu) and /clients/ Client Center page (Oct 9 2026) ---------- */
.v3-login {
  display: inline-flex; align-items: center; min-height: 34px; padding: 6px 14px;
  border: 1px solid var(--rule); border-radius: 999px; background: transparent;
  color: var(--ink2) !important; font: 500 13px/1.2 var(--body); text-decoration: none; white-space: nowrap;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.v3-login:hover, .v3-login[aria-current="page"] { border-color: var(--forest); background: var(--white); color: var(--forest) !important; }
.v3-head__in > .v3-login + .v3-phone { margin-left: 0; }
.v3-menu__panel .v3-menu__login { margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--rule); border-radius: 0 0 10px 10px; color: var(--forest); font-weight: 500; }
@media (max-width: 1020px) {
  .v3-head__in > .v3-login { display: none; }
  .v3-head__in > .v3-login + .v3-phone { margin-left: auto; }
}
.cc-main { max-width: 1140px; margin: 0 auto; padding: 0 20px 64px; }
.cc-grid { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: 24px; align-items: start; }
.cc-card {
  min-width: 0; padding: 28px; border: 1px solid var(--rule); border-radius: 20px; background: var(--white);
  box-shadow: var(--shadow);
}
.cc-card h2 { margin: 6px 0 10px; font-size: clamp(24px, 2.6vw, 30px); line-height: 1.15; }
.cc-card p { margin: 0 0 14px; color: var(--ink2); }
.cc-card--portal { background: linear-gradient(160deg, var(--panel), var(--deep)); border-color: transparent; color: #dfe9e2; }
.cc-card--portal h2 { color: #faf7f2; }
.cc-card--portal p { color: #c9d6cd; }
.cc-card--portal .nlcpa-section-label { color: var(--gold2); }
.cc-list { list-style: none; margin: 4px 0 22px; padding: 0; display: grid; gap: 10px; }
.cc-list li { position: relative; padding-left: 26px; color: #e8efe9; }
.cc-list li::before { content: ""; position: absolute; left: 2px; top: 0.55em; width: 12px; height: 7px; border-left: 2px solid var(--gold2); border-bottom: 2px solid var(--gold2); transform: rotate(-45deg); }
.cc-portal-btn { width: 100%; min-height: 54px; font-size: 16px; }
.cc-card__fine { margin: 12px 0 0 !important; font-size: 13px; }
.cc-card--portal .cc-card__fine a { color: var(--gold2); }
.cc-cal { margin-top: 6px; border: 1px solid var(--rule); border-radius: 14px; overflow: hidden; background: var(--paper); }
.cc-cal .calendly-inline-widget { min-width: 320px; height: 700px; }
.cc-new { margin: 28px 0 0; padding: 18px 22px; border-radius: 16px; background: var(--cream); border: 1px solid var(--rule); box-shadow: inset 3px 0 0 var(--gold); color: var(--ink2); font-size: 15px; }
.cc-new a { font-weight: 600; }
@media (max-width: 1020px) { .cc-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .cc-main { padding: 0 16px 48px; } }
@media (max-width: 560px) {
  .cc-card { padding: 22px 18px; border-radius: 18px; }
  .cc-card--book { padding: 22px 0 0; overflow: hidden; }
  .cc-card--book > :not(.cc-cal) { margin-left: 18px; margin-right: 18px; }
  .cc-card--book .cc-cal { border-width: 1px 0 0; border-radius: 0; margin-bottom: 0; }
  .cc-card--book .cc-card__fine { margin: 12px 18px 18px !important; }
}

/* ---------- Explainer videos (Oct 9 2026): service pages + ads LPs ---------- */
.seo-video video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; background: var(--deep); }
.seo-watch .seo-video, .lp-watch .seo-video { margin: 22px 0 0; box-shadow: var(--shadow); }
.seo-transcript { margin-top: 14px; background: var(--white); border: 1px solid var(--rule); border-radius: 14px; transition: border-color 0.15s ease; }
.seo-transcript[open] { border-color: var(--gold); }
.seo-transcript summary { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 14px 20px; color: var(--deep); font-size: 15px; font-weight: 500; line-height: 1.4; cursor: pointer; list-style: none; }
.seo-transcript summary::-webkit-details-marker { display: none; }
.seo-transcript summary::after { content: "+"; flex: none; color: var(--goldink); font: 400 22px/1 var(--body); }
.seo-transcript[open] summary::after { content: "\2212"; }
.seo-transcript > div { padding: 0 20px 16px; color: var(--ink2); font-size: 15px; line-height: 1.7; }
.seo-transcript > div p { margin: 0 0 10px; overflow-wrap: anywhere; }
.seo-transcript > div p:last-child { margin-bottom: 0; }
.seo-transcript .seo-transcript__note { color: var(--muted); font-size: 13px; }
.lp-watch__in { max-width: 860px; min-width: 0; }
.lp-watch .v3-lede { max-width: 62ch; }
@media (max-width: 560px) {
  .seo-watch .seo-video, .lp-watch .seo-video { border-radius: 14px; }
  .seo-transcript summary, .seo-transcript > div { padding-left: 16px; padding-right: 16px; }
}
