/* ──────────────────────────────────────────────────────────────────
   KBT — canonical theme CSS
   Tokens + base + ripple lifted token-for-token from shared/globalStyles.js.
   Nav/Footer rules translated from shared/Nav.jsx + shared/Footer.jsx
   (JS hover -> :hover, width switches -> media queries, menuOpen -> body.menu-open).
   ────────────────────────────────────────────────────────────────── */

:root {
  /* Brand parents */
  --indigo: #1E1A3A;
  --rose:   #B0267D;
  --sage:   #1FA090;
  --amber:  #D4952B;

  /* Neutral ink — for muted text on parchment */
  --ink-muted: #6C6A7E;

  /* Parchment — standalone neutral */
  --parchment:        #F7F2EA;
  --parchment-lift:   #FAF8F4;
  --parchment-border: #EDE7DD;
  --parchment-50:     #FDFCFA;
  --parchment-100:    #FBF9F5;
  --parchment-150:    #F2ECE3;
  --parchment-200:    #F7F2EA;
  --parchment-300:    #E3DDD3;
  --parchment-400:    #E3D9C8;
  --parchment-500:    #D4C9B5;
  --parchment-600:    #BFB09A;
  --parchment-700:    #A09080;
  --parchment-800:    #7A6C5E;
  --parchment-900:    #4F4438;

  /* Rich Indigo — chroma-preserved */
  --indigo-100: #EAE6F8;
  --indigo-200: #CFC8EC;
  --indigo-300: #A89FD2;
  --indigo-400: #6E62AA;
  --indigo-500: #1E1A3A;
  --indigo-600: #181530;
  --indigo-700: #131126;
  --indigo-800: #0D0B1C;
  --indigo-900: #070613;

  /* Deep Rose */
  --rose-100: #FBEDF5;
  --rose-200: #F5D1E5;
  --rose-300: #EBA3CB;
  --rose-400: #D55CA2;
  --rose-500: #B0267D;
  --rose-600: #931F6A;
  --rose-700: #761856;
  --rose-800: #581241;
  --rose-900: #3B0C2C;

  /* Moody Sage */
  --sage-100: #E7F7F4;
  --sage-200: #BFEAE4;
  --sage-300: #8FD9CD;
  --sage-400: #4DC2B2;
  --sage-500: #1FA090;
  --sage-600: #1A877A;
  --sage-700: #146E63;
  --sage-800: #0F554D;
  --sage-900: #093733;

  /* Warm Amber */
  --amber-100: #FBF2DF;
  --amber-200: #F5E0B5;
  --amber-300: #EEC97F;
  --amber-400: #E2AE4E;
  --amber-500: #D4952B;
  --amber-600: #B07B1F;
  --amber-700: #8A6117;
  --amber-800: #624510;
  --amber-900: #3D2B0A;

  /* Type */
  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Plus Jakarta Sans', Arial, sans-serif;

  /* Per-page accent defaults — overridden by the .page-* scope below.
     Homepage uses these defaults (no active nav link, no ripple). */
  --nav-active:      var(--ink-muted);
  --ripple-ring:     transparent;
  --ripple-glow:     transparent;
  --ripple-glow-mid: transparent;
  --deeplink-hover:   var(--indigo-500);      /* default: no accent shift */
  --deeplink-arrow:   var(--ink-muted);
  --deeplink-divider: var(--parchment-border);
}

/* Per-page accent scope — Ghost emits body.page-{slug} via {{body_class}}. */
.page-coaching { --nav-active: var(--sage-500);   --ripple-ring: var(--sage-300);  --ripple-glow: rgba(26,135,122,0.28);  --ripple-glow-mid: rgba(26,135,122,0.10); --deeplink-hover: var(--sage-700); --deeplink-arrow: var(--sage-500); --deeplink-divider: var(--sage-300); }
.page-speaking { --nav-active: var(--rose-500);   --ripple-ring: var(--rose-300);  --ripple-glow: rgba(147,31,106,0.32);  --ripple-glow-mid: rgba(147,31,106,0.12); --deeplink-hover: var(--rose-700); --deeplink-arrow: var(--rose-500); --deeplink-divider: var(--rose-300); }
.page-catalyst { --nav-active: var(--amber-500);  --ripple-ring: var(--amber-300); --ripple-glow: rgba(176,123,31,0.30);  --ripple-glow-mid: rgba(176,123,31,0.12); } /* stub — no Catalyst page yet */
.page-notes    { --nav-active: var(--indigo-500); }
.page-thinking { --nav-active: var(--indigo-500); }
.page-about    { --nav-active: var(--rose-500); }

/* ── Base / reset ── */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  background: var(--parchment);
  color: var(--indigo);
  font-family: var(--font-body);
  text-align: left; /* locked safeguard — see handoff "Phase 3 safeguard" */
  -webkit-font-smoothing: antialiased;
}

/* Full-bleed chain — sections self-manage width like the prototype; nothing
   (including Ghost-injected styles) may constrain the wrapper. Inner content
   sets its own max-width internally. */
html, body { width: 100%; margin: 0; padding: 0; overflow-x: hidden; }
.site-main { width: 100%; }
.site-main > section { width: 100%; }

/* Reveal-on-scroll — degrades gracefully. No JS => only position/z-index apply,
   so content is fully visible. The `js` class (set inline in <head>) arms the
   hidden state; the IntersectionObserver in kbt.js adds .visible on scroll-in.
   prefers-reduced-motion shows everything immediately (no opacity:0 trap). */
/* ── Canonical primary button — shared; every page inherits ──
   Two-ground contrast rule. Hover = scale 1.05 + deepen one v3 ramp step.
   All colors are var(--token) refs to real Color System v3.1 stops. Flat: no shadow. */
.btn-primary {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.2px;
  padding: 16px 40px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
}
.btn-primary:hover { transform: scale(1.05); }

/* Dark/saturated grounds (sage/rose/indigo heroes): amber fill, amber-900 text */
.btn-primary--amber { background: var(--amber-500); color: var(--amber-900); }
.btn-primary--amber:hover { background: var(--amber-600); }

/* Light/parchment grounds: indigo fill, parchment text */
.btn-primary--indigo { background: var(--indigo-500); color: var(--parchment); }
.btn-primary--indigo:hover { background: var(--indigo-600); }

/* Closing CTA on the rose band: parchment fill, rose text; hover deepens the
   rose TEXT one step (fill stays — parchment-deepen reads muddy). */
.btn-primary--rose { background: var(--parchment); color: var(--rose-500); }
.btn-primary--rose:hover { color: var(--rose-600); }

/* Placement-only modifier for the mobile drawer (not a color role) */
.btn-primary--drawer { margin-top: 32px; align-self: flex-start; }

@media (prefers-reduced-motion: reduce) {
  .btn-primary:hover { transform: none; } /* drop scale; ramp-step color/bg deepen stays */
}

.fade-up { position: relative; z-index: 1; }
.js .fade-up { opacity: 0; transform: translateY(24px); transition: opacity 0.7s cubic-bezier(0.23,1,0.32,1), transform 0.7s cubic-bezier(0.23,1,0.32,1); }
.js .fade-up.visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .js .fade-up { opacity: 1; transform: none; transition: none; }
}

/* ── Keyframes (verbatim from globalStyles.js) ── */
@keyframes gentle-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
/* spin variant that PRESERVES translate centering (for absolutely-centered
   rings/orbits; a bare rotate() keyframe would wipe their translate(-50%,-50%)
   and throw them off-center). */
@keyframes spin-centered { from { transform: translate(-50%,-50%) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg); } }

/* Thinking hero + belief orbit motion (verbatim from kbt-thinking-v6.jsx) */
@keyframes drift-right { 0%, 100% { transform: translateY(-50%) translateX(-15%); opacity: 0.7; } 50% { transform: translateY(-50%) translateX(35vw); opacity: 1; } }
@keyframes drift-left { 0%, 100% { transform: translateY(-50%) translateX(15%); opacity: 0.7; } 50% { transform: translateY(-50%) translateX(-35vw); opacity: 1; } }
@keyframes center-pulse { 0%, 20%, 80%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); } 40%, 60% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); } }
@keyframes courage-ripple { 0% { transform: translate(-50%, -50%) scale(1); opacity: 0.45; } 100% { transform: translate(-50%, -50%) scale(3.2); opacity: 0; } }
@keyframes float-up { 0%, 100% { transform: translate(-50%,-50%) translateY(0); } 50% { transform: translate(-50%,-50%) translateY(-6px); } }
@keyframes pulse-glow { 0%, 100% { opacity: 0.12; } 50% { opacity: 0.22; } }
@keyframes marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes flame-breath { 0%, 100% { opacity: 0.08; transform: scaleY(1) translateY(0); } 50% { opacity: 0.11; transform: scaleY(1.08) translateY(-2px); } }
@keyframes water-flow { 0%, 100% { opacity: 0.08; transform: translateX(0) scaleX(1); } 50% { opacity: 0.11; transform: translateX(9px) scaleX(1.02); } }
/* Calmed hero glow: opacity-only breath, no scale. The static translate(-50%,-50%)
   centering lives on .hero-graphic__glow and is left untouched (the keyframe no
   longer sets transform, so the base transform keeps it centered). */
@keyframes hero-glow-breathe { 0%, 100% { opacity: 0.58; } 50% { opacity: 0.68; } }
/* Global reduced-motion guard — neutralizes all animation/transition for users
   who ask for less motion. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ── Pillar hero ripple (verbatim from globalStyles.js) ── */
@keyframes ripple-out {
  0%   { transform: translate(-50%, -50%) scale(0.32); opacity: 0; }
  8%   { opacity: 0.16; }
  100% { transform: translate(-50%, -50%) scale(2.4);  opacity: 0; }
}
.ripple {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 280px;
  height: 280px;
  border: 1.5px solid var(--ripple-ring);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0.32);
  opacity: 0;
  pointer-events: none;
  animation: ripple-out 14s cubic-bezier(0.22, 0.61, 0.36, 1) infinite;
}
.ripple-1 { animation-delay: 0s; }
.ripple-2 { animation-delay: 4.67s; }
.ripple-3 { animation-delay: 9.33s; }

.center-glow {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 720px;
  height: 720px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, var(--ripple-glow) 0%, var(--ripple-glow-mid) 35%, transparent 65%);
  border-radius: 50%;
  pointer-events: none;
  filter: blur(20px);
}

@media (prefers-reduced-motion: reduce) {
  .ripple { animation: none; opacity: 0; }
}

/* ── Nav (translated from shared/Nav.jsx) ── */
.site-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: var(--parchment); border-bottom: 1px solid var(--parchment-border); box-shadow: 0 0 0 rgba(30,26,58,0); transition: box-shadow 0.25s ease; }
/* Solid always (locked); gains a soft shadow once the page scrolls — depth, not
   transparency. Toggled by body.is-scrolled (see kbt.js). */
body.is-scrolled .site-nav { box-shadow: 0 4px 20px rgba(30,26,58,0.08); }
.site-nav__inner { max-width: 1120px; margin: 0 auto; padding: 0 32px; height: 72px; display: flex; align-items: center; justify-content: space-between; }
.site-nav__logo { display: flex; align-items: center; }
.site-nav__logo img { height: 38px; width: auto; display: block; }
.site-nav__links { display: flex; gap: 32px; align-items: center; }
.nav-link { font-family: var(--font-body); font-size: 13px; font-weight: 400; color: var(--ink-muted); text-decoration: none; letter-spacing: 0.2px; transition: color 0.2s; }
.nav-link:hover { color: var(--rose); }

/* Active link — brand-coded per page via body.page-{slug} */
.page-coaching .nav-link--coaching,
.page-speaking .nav-link--speaking,
.page-thinking .nav-link--thinking,
.page-notes    .nav-link--notes,
.page-about    .nav-link--about { color: var(--nav-active); font-weight: 600; }

/* Hamburger button — hidden on desktop, shown <=768 */
.site-nav__burger { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; border: none; background: transparent; cursor: pointer; position: relative; z-index: 102; flex-direction: column; gap: 5px; }
.site-nav__burger span { display: block; width: 22px; height: 2px; background: var(--indigo); border-radius: 2px; transition: all 0.3s ease; }
body.menu-open .site-nav__burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.menu-open .site-nav__burger span:nth-child(2) { opacity: 0; }
body.menu-open .site-nav__burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── Mobile drawer + overlay (translated from globalStyles.js, toggled by body.menu-open) ── */
.mobile-overlay { position: fixed; inset: 0; z-index: 99; background: rgba(30,26,58,0.4); backdrop-filter: blur(4px); opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }
body.menu-open .mobile-overlay { opacity: 1; pointer-events: auto; }
.mobile-drawer { position: fixed; top: 0; right: 0; z-index: 101; width: 280px; height: 100%; background: var(--parchment-lift); box-shadow: -8px 0 32px rgba(30,26,58,0.12); transform: translateX(100%); transition: transform 0.35s cubic-bezier(0.23,1,0.32,1); padding: 24px; padding-top: 64px; display: flex; flex-direction: column; }
body.menu-open .mobile-drawer { transform: translateX(0); }
.mobile-drawer__link { font-family: var(--font-body); font-size: 16px; font-weight: 500; color: var(--indigo); text-decoration: none; padding: 16px 0; border-bottom: 1px solid var(--parchment-border); }
/* drawer CTA uses the canonical .btn-primary--indigo + .btn-primary--drawer placement modifier */

/* ── Footer (translated from shared/Footer.jsx) ── */
.site-footer { background: var(--indigo-800); padding: 40px 32px 44px; }
.site-footer__inner { max-width: 1120px; margin: 0 auto; }
.site-footer__logo { display: flex; justify-content: center; }
.site-footer__logo img { width: 170px; height: auto; display: block; }
.site-footer__hairline { height: 1px; background: rgba(247,242,234,0.20); margin: 28px 80px 0; }
.site-footer__row { margin-top: 22px; display: flex; flex-direction: row; align-items: center; justify-content: space-between; }
.site-footer__copyright { font-family: var(--font-body); font-size: 13px; color: var(--indigo-200); }
.site-footer__links { display: flex; gap: 28px; flex-wrap: wrap; justify-content: center; }
.site-footer__links a { font-family: var(--font-body); font-size: 13px; font-weight: 400; color: var(--indigo-300); text-decoration: none; transition: color 0.2s; }
.site-footer__links a:hover { color: var(--sage); }

/* ── Responsive ── */
@media (max-width: 900px) {
  .site-nav__inner { padding: 0 20px; }
  .site-nav__links { gap: 20px; }
  .site-nav__logo img { height: 30px; }
}
@media (max-width: 768px) {
  .site-nav__links { display: none; }
  .site-nav__burger { display: flex; }
  .site-footer { padding: 40px 20px 44px; }
  .site-footer__hairline { margin: 28px 0 0; }
  .site-footer__row { flex-direction: column; align-items: center; gap: 16px; text-align: center; }
}
@media (min-width: 769px) {
  .mobile-overlay, .mobile-drawer { display: none; }
}

/* ── Koenig editor card widths (Ghost standard) ──
   Lets wide/full-width cards in posts (esp. Field Notes blog) break out of the
   content column. .post-content is the content container; --content-width is
   the normal reading measure. */
.post-content {
  --content-width: 720px;
  display: grid;
  grid-template-columns:
    [full-start] minmax(20px, 1fr)
    [wide-start] minmax(0, 160px)
    [content-start] min(var(--content-width), calc(100% - 40px)) [content-end]
    minmax(0, 160px) [wide-end]
    minmax(20px, 1fr) [full-end];
}
.post-content > * {
  grid-column: content-start / content-end;
}
.post-content > .kg-width-wide {
  grid-column: wide-start / wide-end;
}
.post-content > .kg-width-full {
  grid-column: full-start / full-end;
}
.post-content > .kg-width-full img {
  width: 100%;
}

/* ════════════════════════════════════════════════════════════════
   HOMEPAGE (kbt-homepage-v15.jsx)
   ════════════════════════════════════════════════════════════════ */

/* ── Hero ── */
.home-hero { position: relative; overflow: hidden; background: var(--parchment); display: flex; align-items: center; padding: 88px 0 64px; }
.home-hero__bg { position: absolute; inset: 0; opacity: 0.03; pointer-events: none; background-image: radial-gradient(circle at 15% 75%, var(--rose) 0%, transparent 50%), radial-gradient(circle at 85% 25%, var(--sage) 0%, transparent 50%); }
.home-hero__inner { max-width: 1120px; width: 100%; margin: 0 auto; padding: 0 32px; position: relative; display: grid; grid-template-columns: 1fr 420px; gap: 56px; align-items: center; }
.home-hero__text { text-align: left; }
.home-hero__pill { display: inline-block; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rose); background: var(--rose-100); padding: 6px 16px; border-radius: 100px; margin-bottom: 24px; }
.home-hero__deck { font-family: var(--font-display); font-weight: 500; font-style: italic; font-size: 21px; line-height: 1.5; color: var(--indigo-500); max-width: 480px; margin-top: -10px; margin-bottom: 24px; }
.home-hero__h1 { font-family: var(--font-display); font-weight: 700; font-size: 40px; line-height: 1.1; letter-spacing: -0.8px; color: var(--indigo); margin-bottom: 28px; }
.home-hero__narrative { max-width: 520px; margin-bottom: 28px; }
.home-hero__narrative p { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.75; color: var(--indigo-500); }
.home-hero__narrative p + p { margin-top: 20px; }
.home-hero__narrative strong { font-weight: 600; color: var(--indigo); }
.home-hero__narrative .accent-rose { color: var(--rose); }
.home-hero__narrative .accent-sage { color: var(--sage); }
.home-hero__narrative em { font-style: italic; }

/* Rotating tagline */
/* Rotator lines live in normal document flow — only the .is-visible line is
   displayed, so lines can never stack/overlap. JS swaps which one is shown. */
.home-hero__rotator { margin-bottom: 32px; }
.home-hero__rotator-line { display: none; font-family: var(--font-body); font-weight: 600; font-size: 15px; color: var(--rose); letter-spacing: 0.2px; opacity: 0; transition: opacity 0.4s ease; }
.home-hero__rotator-line.is-visible { display: block; opacity: 1; }

/* Figure (headshot + atmospheric graphic) */
.home-hero__figure { order: 2; }
.home-hero__name { text-align: center; margin-top: 24px; font-family: var(--font-body); font-size: 13px; font-weight: 500; color: var(--indigo); letter-spacing: 0.2px; }
.home-hero__role { text-align: center; margin-top: 2px; font-family: var(--font-body); font-size: 11px; font-weight: 400; color: var(--ink-muted); letter-spacing: 0.3px; }
.home-hero__role em { font-style: italic; text-transform: none; }

.hero-graphic { position: relative; width: 340px; height: 340px; margin: 0 auto; }
.hero-graphic__haze { position: absolute; top: 50%; left: 50%; border-radius: 50%; z-index: 0; }
.hero-graphic__haze--sage { width: 98%; height: 98%; transform: translate(-50%,-50%); background: radial-gradient(circle, transparent 55%, rgba(31,160,144,0.48) 75%, transparent 93%); }
.hero-graphic__haze--rose { width: 78%; height: 78%; transform: translate(-50%,-50%); background: radial-gradient(circle, transparent 55%, rgba(176,38,125,0.52) 76%, transparent 93%); }
.hero-graphic__glow { position: absolute; top: 50%; left: 50%; width: 58%; height: 58%; transform: translate(-50%,-50%); border-radius: 50%; z-index: 1; background: radial-gradient(circle, rgba(212,149,43,0.36) 30%, rgba(212,149,43,0.18) 55%, transparent 80%); animation: hero-glow-breathe 6s ease-in-out infinite; }
.hero-graphic__orbit { position: absolute; inset: -20px; width: calc(100% + 40px); height: calc(100% + 40px); z-index: 0; animation: gentle-spin 60s linear infinite; }
.hero-graphic__shot { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 52%; height: 52%; border-radius: 50%; overflow: hidden; border: 3px solid var(--parchment-lift); box-shadow: 0 8px 32px rgba(30,26,58,0.15); z-index: 2; }
.hero-graphic__shot img { width: 100%; height: 100%; object-fit: cover; }

@media (prefers-reduced-motion: reduce) {
  .hero-graphic__haze--sage, .hero-graphic__haze--rose, .hero-graphic__glow, .hero-graphic__orbit { animation: none; }
}

@media (max-width: 1023px) and (min-width: 768px) {
  .home-hero__inner { grid-template-columns: 1fr 300px; gap: 40px; }
  .hero-graphic { width: 280px; height: 280px; }
  .home-hero__h1 { font-size: 34px; }
}
@media (max-width: 767px) {
  .home-hero { padding: 100px 0 56px; }
  .home-hero__inner { display: flex; flex-direction: column; padding: 0 20px; gap: 40px; text-align: center; }
  .home-hero__text { text-align: center; }
  .home-hero__figure { order: -1; } /* graphic first on mobile */
  .home-hero__deck { font-size: 18px; max-width: 100%; margin-left: auto; margin-right: auto; }
  .home-hero__narrative { max-width: 100%; margin-left: auto; margin-right: auto; }
  .home-hero__h1 { font-size: 28px; letter-spacing: -0.5px; }
  .home-hero__narrative p { font-size: 15px; }
  .hero-graphic { width: min(260px, calc(100vw - 80px)); height: min(260px, calc(100vw - 80px)); }
}

/* ── Phrase marquee (rose band) ── */
.phrase-marquee { background: var(--rose); overflow: hidden; padding: 18px 0; }
.phrase-marquee__track { display: flex; align-items: center; width: max-content; animation: marquee-scroll 84s linear infinite; }
.phrase-marquee__item { font-family: var(--font-display); font-weight: 700; font-size: 15px; letter-spacing: 0.5px; color: var(--parchment); white-space: nowrap; padding: 0 32px; }
.phrase-marquee__item em { font-style: italic; }
.phrase-marquee__dot { margin-left: 32px; color: rgba(247,242,234,0.4); }
@media (prefers-reduced-motion: reduce) { .phrase-marquee__track { animation: none; } }

/* ── Kind & Tough definition (two-column, fire/water atmospherics) ── */
.kt-def { background: var(--parchment-lift); padding: 72px 32px 48px; border-top: 1px solid var(--parchment-border); border-bottom: 1px solid var(--parchment-border); }
.kt-def__inner { max-width: 960px; margin: 0 auto; }
.kt-def__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.kt-col { position: relative; min-height: 260px; }
.kt-col__atmos { position: absolute; pointer-events: none; z-index: 0; opacity: 0.1; } /* resting opacity so reduced-motion (animation:none) doesn't render the wash at full strength */
.kt-col__atmos--flame { top: -4px; right: 60px; width: 130px; height: 230px; transform-origin: 50% 100%; animation: flame-breath 3.2s ease-in-out infinite; }
.kt-col__atmos--water { bottom: 70px; left: 10px; width: 230px; height: 140px; animation: water-flow 4.6s ease-in-out infinite; }
.kt-col__body { position: relative; z-index: 1; }
.kt-col__label { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.kt-col__rule { width: 32px; height: 2px; border-radius: 1px; }
.kt-col__tag { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; }
.kt-col__label--kind .kt-col__rule { background: var(--rose); }
.kt-col__label--kind .kt-col__tag { color: var(--rose); }
.kt-col__label--tough .kt-col__rule { background: var(--sage); }
.kt-col__label--tough .kt-col__tag { color: var(--sage); }
.kt-col__lede { font-family: var(--font-display); font-weight: 600; font-style: italic; font-size: 22px; line-height: 1.3; color: var(--indigo); margin-bottom: 12px; }
.kt-col__copy { font-family: var(--font-body); font-weight: 400; font-size: 15px; line-height: 1.7; color: var(--indigo-500); margin-bottom: 16px; }
.kt-col__claim { font-family: var(--font-body); font-weight: 600; font-size: 14px; line-height: 1.6; color: var(--indigo); margin-bottom: 20px; }
.kt-col__link { font-family: var(--font-body); font-size: 13px; font-weight: 500; letter-spacing: 0.2px; text-decoration: none; }
.kt-col__link--kind { color: var(--rose); }
.kt-col__link--tough { color: var(--sage); }

@media (prefers-reduced-motion: reduce) { .kt-col__atmos--flame, .kt-col__atmos--water { animation: none; } }

@media (max-width: 767px) {
  .kt-def { padding: 56px 20px 40px; }
  .kt-def__grid { grid-template-columns: 1fr; gap: 40px; }
  .kt-col { min-height: 190px; } /* room for the atmospheric SVG behind the text */
  /* Atmospherics now render on mobile too, scaled down so they stay subtle. */
  .kt-col__atmos--flame { top: -4px; right: 16px; width: 92px; height: 164px; }
  .kt-col__atmos--water { bottom: 40px; left: 0; width: 164px; height: 100px; }
  .kt-col__lede { font-size: 20px; }
}

/* ── Audience pillars (3 cards on indigo; the only icons on the site) ── */
.audience { background: var(--indigo); padding: 88px 32px 96px; position: relative; overflow: hidden; }
.audience__bg { position: absolute; inset: 0; opacity: 0.04; pointer-events: none; background-image: radial-gradient(circle at 20% 80%, var(--rose) 0%, transparent 40%), radial-gradient(circle at 80% 20%, var(--sage) 0%, transparent 40%); }
.audience__inner { max-width: 1120px; margin: 0 auto; position: relative; }
.audience__eyebrow-wrap { text-align: center; max-width: 480px; margin: 0 auto 16px; }
.audience__eyebrow { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--indigo-200); }
.audience__h2 { font-family: var(--font-display); font-weight: 600; font-size: 30px; line-height: 1.2; color: var(--parchment); text-align: center; margin: 0 auto 56px; max-width: 560px; }
.audience__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

/* Shared pillar card; accent supplied per card via --p-* */
.pillar-card { background: var(--p-bg); border-top: 3px solid var(--p-accent); border-left: 1px solid var(--p-border); border-right: 1px solid var(--p-border); border-bottom: 1px solid var(--p-border); border-radius: 12px; padding: 36px 32px; height: 100%; display: flex; flex-direction: column; transition: transform 0.35s ease, box-shadow 0.35s ease; box-shadow: 0 4px 16px rgba(0,0,0,0.1); cursor: pointer; }
.pillar-card:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(0,0,0,0.25); }
.pillar-card--rose  { --p-accent: var(--rose);  --p-bg: var(--rose-100);  --p-border: var(--rose-200); }
.pillar-card--sage  { --p-accent: var(--sage);  --p-bg: var(--sage-100);  --p-border: var(--sage-200); }
.pillar-card--amber { --p-accent: var(--amber); --p-bg: var(--amber-100); --p-border: var(--amber-200); }

/* Card internals — left-aligned; icon on its own line above heading */
.pillar-card__icon { margin-bottom: 16px; }
.pillar-card__title { font-family: var(--font-display); font-weight: 700; font-size: 24px; line-height: 1.2; color: var(--indigo); margin: 0 0 10px; }
.pillar-card__pill { display: inline-block; align-self: flex-start; font-family: var(--font-body); font-size: 10px; font-weight: 600; letter-spacing: 1.3px; text-transform: uppercase; color: var(--parchment-lift); background: var(--p-accent); padding: 5px 14px; border-radius: 100px; margin-bottom: 20px; }
.pillar-card__truth { font-family: var(--font-body); font-weight: 400; font-size: 15px; line-height: 1.65; color: var(--indigo-500); margin-bottom: 20px; flex: 1; }
.pillar-card__outcome { border-top: 1px solid var(--p-border); padding-top: 16px; margin-top: auto; }
.pillar-card__outcome p { font-family: var(--font-body); font-weight: 500; font-style: italic; font-size: 13px; line-height: 1.55; color: var(--indigo); }
.pillar-card__links { display: flex; flex-direction: column; gap: 8px; margin-top: 18px; }
.pillar-card__links a { font-family: var(--font-body); font-size: 13px; font-weight: 500; letter-spacing: 0.2px; color: var(--p-accent); text-decoration: none; transition: opacity 0.2s; }
.pillar-card__links a.is-secondary { opacity: 0.7; }
.pillar-card__links a.is-secondary:hover { opacity: 1; }

@media (max-width: 767px) {
  .audience { padding: 64px 20px 72px; }
  .audience__h2 { font-size: 24px; margin-bottom: 40px; }
  .audience__grid { grid-template-columns: 1fr; gap: 20px; }
  .pillar-card { padding: 28px 24px; }
  .pillar-card__title { font-size: 22px; }
}

/* ── How we work (3 cards on sage-100; whole card is a link) ── */
.howwork { background: var(--sage-100); padding: 80px 32px 88px; border-top: 1px solid var(--sage-200); }
.howwork__inner { max-width: 1120px; margin: 0 auto; }
.howwork__eyebrow { display: block; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rose); margin-bottom: 12px; }
.howwork__h2 { font-family: var(--font-display); font-weight: 600; font-size: 28px; line-height: 1.2; color: var(--indigo); margin-bottom: 44px; }
.howwork__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

.howwork-card { display: flex; flex-direction: column; height: 100%; background: var(--parchment-lift); border-top: 3px solid var(--p-accent); border-left: 1px solid var(--parchment-border); border-right: 1px solid var(--parchment-border); border-bottom: 1px solid var(--parchment-border); border-radius: 10px; padding: 36px; text-decoration: none; transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; box-shadow: 0 2px 8px rgba(30,26,58,0.03); }
.howwork-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(30,26,58,0.08); border-left-color: var(--p-accent); border-right-color: var(--p-accent); border-bottom-color: var(--p-accent); }
.howwork-card--rose  { --p-accent: var(--rose); }
.howwork-card--sage  { --p-accent: var(--sage); }
.howwork-card--amber { --p-accent: var(--amber); }
.howwork-card__tag { align-self: flex-start; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--parchment); background: var(--p-accent); padding: 4px 12px; border-radius: 100px; margin-bottom: 20px; }
.howwork-card__title { font-family: var(--font-display); font-weight: 600; font-size: 20px; line-height: 1.3; color: var(--indigo); margin-bottom: 12px; }
.howwork-card__copy { font-family: var(--font-body); font-size: 15px; line-height: 1.65; color: var(--indigo-500); margin: 0; flex: 1; }
.howwork-card__bold { display: block; margin-top: 14px; font-weight: 600; color: var(--indigo); }
.howwork-card__outcome { border-top: 1px solid var(--parchment-border); padding-top: 16px; margin-top: 20px; }
.howwork-card__outcome p { font-family: var(--font-body); font-weight: 400; font-style: italic; font-size: 13px; line-height: 1.55; color: var(--ink-muted); margin: 0; }
.howwork-card__link { margin-top: 18px; font-family: var(--font-body); font-size: 14px; font-weight: 500; letter-spacing: 0.2px; color: var(--p-accent); }

@media (max-width: 767px) {
  .howwork { padding: 64px 20px 72px; }
  .howwork__h2 { font-size: 24px; margin-bottom: 32px; }
  .howwork__grid { grid-template-columns: 1fr; gap: 20px; }
  .howwork-card { padding: 28px 24px; }
}

/* ── Proof (indigo band: scrolling logos + career stats) ── */
.proof { background: var(--indigo); overflow: hidden; position: relative; }
.proof__overline-wrap { padding: 64px 20px 48px; }
.proof__overline { font-family: var(--font-body); font-size: 11px; font-weight: 500; letter-spacing: 1.8px; text-transform: uppercase; color: var(--indigo-200); text-align: center; }
.proof__logos { position: relative; padding-bottom: 64px; }
.proof__fade { position: absolute; top: 0; bottom: 0; width: 120px; z-index: 2; pointer-events: none; }
.proof__fade--left { left: 0; background: linear-gradient(to right, var(--indigo), transparent); }
.proof__fade--right { right: 0; background: linear-gradient(to left, var(--indigo), transparent); }
.proof__logos-track { display: flex; align-items: center; gap: 72px; width: max-content; animation: marquee-scroll 42s linear infinite; }
.proof__logo { height: 38px; flex-shrink: 0; object-fit: contain; filter: brightness(0) invert(1); opacity: 0.7; }
.proof__hairline { width: 100%; height: 1px; background: rgba(255,255,255,0.08); }
.proof__stats-wrap { max-width: 1120px; margin: 0 auto; padding: 64px 32px 80px; }
.proof__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; }
.proof__stat { text-align: center; }
.proof__stat-num { font-family: var(--font-display); font-weight: 700; font-size: 52px; color: var(--rose); line-height: 1; margin-bottom: 12px; }
.proof__stat-label { font-family: var(--font-body); font-weight: 400; font-size: 14px; color: var(--indigo-200); line-height: 1.6; }

@media (prefers-reduced-motion: reduce) { .proof__logos-track { animation: none; } }

@media (max-width: 767px) {
  .proof__overline-wrap { padding: 48px 20px 36px; }
  .proof__logos { padding-bottom: 48px; }
  .proof__fade { width: 48px; }
  .proof__logos-track { gap: 48px; }
  .proof__logo { height: 30px; }
  .proof__stats-wrap { padding: 48px 20px 64px; }
  .proof__stats { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  .proof__stat-num { font-size: 36px; }
  .proof__stat-label { font-size: 13px; }
}

/* ── Credentials (cert badges on white chips) ── */
.creds { background: var(--parchment); padding: 52px 32px 60px; border-top: 1px solid var(--parchment-border); border-bottom: 1px solid var(--parchment-border); }
.creds__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.creds__overline { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.8px; text-transform: uppercase; color: var(--indigo-500); margin-bottom: 32px; }
.creds__row { display: flex; justify-content: center; align-items: center; gap: 48px; flex-wrap: wrap; }
/* APPROVED EXCEPTION (1 Jun 2026): pure #fff, not parchment. Certification marks
   (BECI, Gallup) must sit on true white per their brand-usage rules. Scoped to
   these cert chips only — does NOT relax the site-wide parchment-only rule. */
.creds__chip { background: #FFFFFF; border: 1px solid var(--parchment-border); border-radius: 10px; padding: 16px 20px; box-shadow: 0 2px 12px rgba(30,26,58,0.06); display: flex; align-items: center; justify-content: center; }
.creds__badge { height: 100px; object-fit: contain; flex-shrink: 0; }

@media (max-width: 767px) {
  .creds { padding: 40px 20px 48px; }
  .creds__overline { margin-bottom: 24px; }
  .creds__row { gap: 24px; }
  .creds__badge { height: 72px; }
}

/* ── Testimonial carousel (indigo-100 band) ── */
.testi { background: var(--indigo-100); padding: 88px 32px; position: relative; overflow: hidden; }
.testi__bg { position: absolute; inset: 0; opacity: 0.03; pointer-events: none; background-image: radial-gradient(circle at 50% 50%, var(--indigo) 0%, transparent 60%); }
.testi__inner { max-width: 860px; margin: 0 auto; position: relative; }
.testi__eyebrow-wrap { text-align: center; margin-bottom: 44px; }
.testi__eyebrow { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--indigo-500); }
.testi__stage { position: relative; }
.testi__arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(30,26,58,0.12); background: var(--parchment-lift); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 18px; color: var(--ink-muted); transition: background 0.2s, color 0.2s; z-index: 2; }
.testi__arrow:hover { background: var(--indigo); color: var(--parchment); }
.testi__arrow--prev { left: -24px; }
.testi__arrow--next { right: -24px; }
.testi__viewport { margin: 0 32px; }
.testi__card { display: none; flex-direction: column; align-items: center; text-align: center; background: var(--parchment-lift); border-radius: 14px; padding: 52px 64px 44px; box-shadow: 0 4px 32px rgba(30,26,58,0.10); min-height: 280px; justify-content: center; }
.testi__card.is-active { display: flex; animation: testi-fade 0.3s ease; }
@keyframes testi-fade { from { opacity: 0; transform: translateY(6px) scale(0.99); } to { opacity: 1; transform: none; } }
.testi__mark { font-family: var(--font-display); font-size: 64px; line-height: 0.5; color: var(--rose); opacity: 0.2; margin-bottom: 20px; user-select: none; }
.testi__quote { font-family: var(--font-body); font-weight: 400; font-size: 17px; line-height: 1.75; color: var(--indigo); margin: 0 0 28px; padding: 0; border: none; max-width: 600px; }
.testi__divider { width: 40px; height: 2px; background: var(--rose); opacity: 0.3; border-radius: 1px; margin-bottom: 20px; }
.testi__name { font-family: var(--font-body); font-weight: 600; font-size: 14px; color: var(--indigo); }
.testi__type { font-family: var(--font-body); font-weight: 400; font-size: 13px; color: var(--ink-muted); margin-top: 4px; }
.testi__counter { text-align: center; margin-top: 32px; font-family: var(--font-body); font-size: 12px; color: var(--ink-muted); }

@media (prefers-reduced-motion: reduce) { .testi__card.is-active { animation: none; } }

@media (max-width: 767px) {
  .testi { padding: 64px 20px; }
  .testi__eyebrow-wrap { margin-bottom: 32px; }
  .testi__viewport { margin: 0 20px; }
  .testi__card { padding: 36px 28px 32px; min-height: 260px; }
  .testi__quote { font-size: 15px; }
  .testi__mark { font-size: 48px; margin-bottom: 16px; }
  .testi__arrow { width: 36px; height: 36px; font-size: 16px; }
  .testi__arrow--prev { left: 4px; }
  .testi__arrow--next { right: 4px; }
  .testi__counter { margin-top: 24px; }
}

/* ════════════════════════════════════════════════════════════════
   SPEAKING PAGE (kbt-speaking-v1.jsx)
   ════════════════════════════════════════════════════════════════ */

/* ── Hero (rose pillar) ── */
.speaking-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--rose-700) 0%, var(--rose-800) 50%, var(--rose-900) 100%); padding: 168px 32px 96px; min-height: 460px; }
.speaking-hero__inner { max-width: 820px; margin: 0 auto; position: relative; z-index: 2; text-align: center; }
.speaking-hero__eyebrow { display: inline-block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 2px; color: var(--rose-200); margin-bottom: 40px; }
.speaking-hero__eyebrow em { font-style: italic; font-weight: 500; }
.speaking-hero__h1 { font-family: var(--font-display); font-weight: 700; font-size: 56px; line-height: 1.06; letter-spacing: -0.014px; color: var(--parchment); margin-bottom: 28px; text-wrap: balance; }
.speaking-hero__sub { font-family: var(--font-body); font-style: italic; font-weight: 500; font-size: 21px; line-height: 1.4; color: var(--rose-200); letter-spacing: 0.1px; max-width: 660px; margin: 0 auto 48px; text-wrap: balance; }
.speaking-hero__body { max-width: 580px; margin: 0 auto 40px; display: flex; flex-direction: column; gap: 22px; }
.speaking-hero__body p { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.7; color: rgba(247,242,234,0.92); text-wrap: pretty; }
.speaking-hero__thesis { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 20px; line-height: 1.5; color: var(--amber-300); margin: 0 auto 44px; max-width: 600px; text-wrap: balance; letter-spacing: 0.1px; }

@media (max-width: 768px) {
  .speaking-hero { padding: 120px 20px 64px; min-height: auto; }
  .speaking-hero__eyebrow { margin-bottom: 32px; }
  .speaking-hero__h1 { font-size: 36px; margin-bottom: 22px; }
  .speaking-hero__sub { font-size: 17px; margin: 0 auto 36px; }
  .speaking-hero__body { margin: 0 auto 32px; gap: 18px; }
  .speaking-hero__body p { font-size: 15px; }
  .speaking-hero__thesis { font-size: 17px; margin: 0 auto 36px; }
}

/* ── Ways we work together (two stacked offerings, rose-100) ── */
/* Section 2 — intro on parchment (moved down from the hero) */
.speaking-intro { background: var(--parchment); padding: 96px 32px; }
.speaking-intro__inner { max-width: 580px; margin: 0 auto; text-align: center; }
.speaking-intro__eyebrow { display: inline-block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--rose-700); margin-bottom: 32px; }
.speaking-intro__body { display: flex; flex-direction: column; gap: 22px; margin-bottom: 40px; }
.speaking-intro__body p { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.7; color: var(--indigo-500); text-wrap: pretty; }
.speaking-intro__body em { font-style: italic; }
.speaking-intro__thesis { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 20px; line-height: 1.5; color: var(--amber-700); margin: 0 auto 44px; max-width: 600px; text-wrap: balance; letter-spacing: 0.1px; }
@media (max-width: 767px) {
  .speaking-intro { padding: 64px 20px; }
  .speaking-intro__eyebrow { margin-bottom: 24px; }
  .speaking-intro__body { gap: 18px; margin-bottom: 32px; }
  .speaking-intro__body p { font-size: 15px; }
  .speaking-intro__thesis { font-size: 17px; margin: 0 auto 36px; }
}

.speaking-ways { background: var(--rose-100); padding: 96px 32px; }
.speaking-ways__inner { max-width: 1120px; margin: 0 auto; }
.speaking-ways__overline { display: block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--rose-700); text-align: center; max-width: 480px; margin: 0 auto 72px; }
.speaking-ways__offering { max-width: 760px; margin: 0 auto; }
.speaking-ways__h3 { font-family: var(--font-display); font-weight: 700; font-size: 32px; line-height: 1.2; letter-spacing: -0.012px; color: var(--indigo-500); margin-bottom: 20px; }
.speaking-ways__body { font-family: var(--font-body); font-weight: 400; font-size: 17px; line-height: 1.7; color: var(--indigo-500); text-wrap: pretty; }
.speaking-ways__divider { max-width: 760px; margin: 72px auto; border-top: 1px solid var(--rose-300); }

@media (max-width: 768px) {
  .speaking-ways { padding: 64px 20px; }
  .speaking-ways__overline { margin-bottom: 48px; }
  .speaking-ways__h3 { font-size: 26px; margin-bottom: 16px; }
  .speaking-ways__body { font-size: 16px; }
  .speaking-ways__divider { margin: 48px auto; }
}

/* ── Want to know more (two-column deep links; rose accent via --deeplink-*) ── */
.speaking-more { background: var(--parchment); padding: 96px 32px; }
.speaking-more__inner { max-width: 1120px; margin: 0 auto; }
.speaking-more__overline { display: block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--rose-700); text-align: center; max-width: 480px; margin: 0 auto 72px; }
.speaking-more__grid { display: grid; grid-template-columns: 1fr 1px 1fr; align-items: center; justify-items: center; gap: 0; }

@media (max-width: 768px) {
  .speaking-more { padding: 64px 20px; }
  .speaking-more__overline { margin-bottom: 48px; }
  .speaking-more__grid { display: flex; flex-direction: column; gap: 36px; }
}

/* ════════════════════════════════════════════════════════════════
   FIELD NOTES (/notes/ — index.hbs list/splash, post.hbs, tag.hbs)
   ════════════════════════════════════════════════════════════════ */

/* ── Empty-state splash (launch masthead) ── */
.fn-splash { background: var(--parchment); position: relative; overflow: hidden; padding: 128px 32px; min-height: 640px; }
.fn-splash__glow { position: absolute; top: 50%; left: 50%; width: 900px; height: 900px; transform: translate(-50%,-50%); border-radius: 50%; background: radial-gradient(circle, rgba(30,26,58,0.06) 0%, rgba(30,26,58,0.02) 35%, transparent 65%); filter: blur(40px); pointer-events: none; }
.fn-splash__inner { max-width: 720px; margin: 0 auto; text-align: center; position: relative; z-index: 1; }
.fn-splash__rule { width: 64px; height: 1.5px; background: var(--indigo-500); margin: 0 auto 32px; opacity: 0.7; }
.fn-splash__thesis { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 17px; line-height: 1.5; color: var(--ink-muted); margin-bottom: 28px; letter-spacing: 0.1px; }
.fn-splash__eyebrow { display: inline-block; font-family: var(--font-body); font-size: 12px; font-weight: 600; letter-spacing: 2.4px; text-transform: uppercase; color: var(--indigo-500); margin-bottom: 32px; }
.fn-splash__title { font-family: var(--font-display); font-weight: 700; font-size: 80px; line-height: 1.02; letter-spacing: -0.018px; color: var(--indigo-500); margin-bottom: 20px; text-wrap: balance; }
.fn-splash__subhead { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 26px; line-height: 1.4; color: var(--ink-muted); margin-bottom: 18px; letter-spacing: -0.005px; }
.fn-splash__credit { font-family: var(--font-body); font-style: italic; font-weight: 400; font-size: 14px; line-height: 1.5; color: var(--ink-muted); margin-bottom: 44px; letter-spacing: 0.3px; }
.fn-splash__body { display: flex; flex-direction: column; gap: 18px; margin-bottom: 48px; max-width: 560px; margin-left: auto; margin-right: auto; }
.fn-splash__body p { font-family: var(--font-body); font-weight: 400; font-size: 18px; line-height: 1.65; color: var(--indigo-500); text-wrap: pretty; }
.fn-splash__status { font-family: var(--font-body); font-style: italic; font-weight: 600; font-size: 15px; line-height: 1.5; color: var(--amber-500); margin-bottom: 22px; max-width: 560px; margin-left: auto; margin-right: auto; text-wrap: pretty; }
.fn-splash__subscribe { display: inline-block; font-family: var(--font-body); font-size: 14px; font-weight: 600; color: var(--indigo-500); background: var(--amber-500); padding: 15px 36px; border-radius: 6px; text-decoration: none; letter-spacing: 0.2px; transition: background 0.25s ease, transform 0.25s ease; }
.fn-splash__subscribe:hover { background: var(--amber-400); transform: translateY(-1px); }

@media (max-width: 767px) {
  .fn-splash { padding: 80px 20px; min-height: auto; }
  .fn-splash__title { font-size: 48px; }
  .fn-splash__subhead { font-size: 20px; }
  .fn-splash__body p { font-size: 16px; }
}

/* ── Shared bits (orbs, eyebrow, brand washes) ── */
.fn-orb { position: absolute; border-radius: 50%; filter: blur(64px); pointer-events: none; }
.fn-orb--rose   { width: 560px; height: 560px; left: -10%; top: -26%; background: radial-gradient(circle, rgba(176,38,125,0.55) 0%, transparent 66%); }
.fn-orb--sage   { width: 520px; height: 520px; left: 70%;  top: -18%; background: radial-gradient(circle, rgba(31,160,144,0.5) 0%, transparent 66%); }
.fn-orb--amber  { width: 460px; height: 460px; left: 62%;  top: 55%;  background: radial-gradient(circle, rgba(212,149,43,0.4) 0%, transparent 66%); }
.fn-orb--violet { width: 420px; height: 420px; left: 8%;   top: 58%;  background: radial-gradient(circle, rgba(110,98,170,0.5) 0%, transparent 66%); }
.fn-eyebrow { display: inline-block; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.6px; text-transform: uppercase; }
.fn-eyebrow--sage { color: var(--sage-500); }
.fn-eyebrow--amber { color: var(--amber-500); }
.fn-wash { display: block; width: 100%; height: 100%; }
.fn-wash--rose { background: radial-gradient(at 24% 30%, rgba(176,38,125,0.92) 0%, transparent 54%), radial-gradient(at 80% 24%, rgba(31,160,144,0.55) 0%, transparent 50%), linear-gradient(135deg,#1E1A3A,#131126); }
.fn-wash--sage { background: radial-gradient(at 30% 34%, rgba(31,160,144,0.9) 0%, transparent 55%), radial-gradient(at 78% 72%, rgba(212,149,43,0.5) 0%, transparent 50%), linear-gradient(135deg,#131126,#1E1A3A); }

/* ── Masthead (dark orb hero) ── */
.fn-masthead { background: linear-gradient(160deg, #221C44 0%, #14112B 100%); padding: 120px 32px 96px; position: relative; overflow: hidden; }
.fn-masthead__orbs { position: absolute; inset: 0; pointer-events: none; }
.fn-masthead__inner { max-width: 760px; margin: 0 auto; text-align: center; position: relative; z-index: 1; }
.fn-masthead__titlewrap { display: inline-block; }
.fn-masthead__title { font-family: var(--font-display); font-weight: 700; font-size: 78px; line-height: 1.02; letter-spacing: -1.6px; color: var(--parchment); margin-bottom: 18px; }
.fn-masthead__underline { display: block; width: 100%; height: 4px; border-radius: 2px; background: linear-gradient(90deg, var(--rose) 0%, var(--amber) 50%, var(--sage) 100%); }
.fn-masthead__standfirst { font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: 26px; line-height: 1.4; color: rgba(247,242,234,0.82); margin: 28px 0 20px; }
.fn-masthead__descriptor { font-family: var(--font-body); font-weight: 400; font-size: 16.5px; line-height: 1.7; color: rgba(247,242,234,0.7); max-width: 560px; margin: 0 auto; text-wrap: pretty; }
.fn-masthead__subscribe { display: inline-block; margin-top: 34px; font-family: var(--font-body); font-size: 14px; font-weight: 600; letter-spacing: 0.2px; color: var(--indigo); background: var(--amber-500); padding: 14px 34px; border-radius: 6px; text-decoration: none; transition: background 0.25s ease, transform 0.25s ease; box-shadow: 0 6px 20px rgba(212,149,43,0.28); }
.fn-masthead__subscribe:hover { background: var(--amber-400); transform: translateY(-1px); box-shadow: 0 10px 28px rgba(212,149,43,0.4); }
.fn-masthead--tag { padding-bottom: 72px; }

@media (max-width: 767px) {
  .fn-masthead { padding: 76px 20px 60px; }
  .fn-masthead__title { font-size: 46px; }
  .fn-masthead__standfirst { font-size: 19px; }
  .fn-masthead__descriptor { font-size: 15px; }
}

/* ── Library body: featured lead + card grid ── */
.fn-library { background: var(--parchment); padding: 64px 32px 96px; }
.fn-library__inner { max-width: 1080px; margin: 0 auto; }
.fn-library__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 56px; }

.fn-featured { display: grid; grid-template-columns: 1.05fr 1fr; background: var(--parchment-lift); border: 1px solid var(--parchment-border); border-radius: 18px; overflow: hidden; text-decoration: none; transition: transform 0.3s cubic-bezier(0.23,1,0.32,1), box-shadow 0.3s ease; box-shadow: 0 10px 30px rgba(30,26,58,0.08); }
.fn-featured:hover { transform: translateY(-3px); box-shadow: 0 28px 60px rgba(30,26,58,0.16); }
.fn-featured__image { min-height: 360px; overflow: hidden; }
.fn-featured__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fn-featured__body { padding: 48px 44px; display: flex; flex-direction: column; justify-content: center; }
.fn-featured__title { font-family: var(--font-display); font-weight: 700; font-size: 36px; line-height: 1.1; letter-spacing: -0.6px; color: var(--indigo); margin: 14px 0; }
.fn-featured__excerpt { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.65; color: var(--ink-muted); margin-bottom: 22px; }
.fn-featured__meta { display: flex; align-items: center; justify-content: space-between; font-family: var(--font-body); font-size: 12.5px; color: var(--ink-muted); }
.fn-featured__more { font-size: 13px; font-weight: 600; color: var(--indigo); transition: color 0.25s ease; }
.fn-featured:hover .fn-featured__more { color: var(--rose); }

.fn-card { display: flex; }
.fn-card__link { display: flex; flex-direction: column; width: 100%; background: var(--parchment-lift); border: 1px solid var(--parchment-border); border-radius: 14px; overflow: hidden; text-decoration: none; transition: transform 0.3s cubic-bezier(0.23,1,0.32,1), box-shadow 0.3s ease; box-shadow: 0 6px 20px rgba(30,26,58,0.06); }
.fn-card__link:hover { transform: translateY(-3px); box-shadow: 0 22px 48px rgba(30,26,58,0.14); }
.fn-card__image { height: 196px; overflow: hidden; }
.fn-card__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fn-card__body { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.fn-card__title { font-family: var(--font-display); font-weight: 700; font-size: 21px; line-height: 1.18; letter-spacing: -0.3px; color: var(--indigo); }
.fn-card__excerpt { font-family: var(--font-body); font-weight: 400; font-size: 15px; line-height: 1.6; color: var(--ink-muted); flex: 1; }
.fn-card__meta { font-family: var(--font-body); font-size: 12px; color: var(--ink-muted); letter-spacing: 0.2px; margin-top: 4px; }

@media (max-width: 767px) {
  .fn-library { padding: 44px 20px 64px; }
  .fn-featured { grid-template-columns: 1fr; }
  .fn-featured__image { min-height: 210px; }
  .fn-featured__body { padding: 30px 24px; }
  .fn-featured__title { font-size: 27px; }
  .fn-library__grid { grid-template-columns: 1fr; gap: 20px; margin-top: 36px; }
}

/* ── Split CTA (Subscribe | LinkedIn) ── */
.fn-splitcta { background: linear-gradient(160deg, #221C44 0%, #14112B 100%); padding: 84px 32px; position: relative; overflow: hidden; }
.fn-splitcta__orbs { position: absolute; inset: 0; pointer-events: none; }
.fn-splitcta__orbs .fn-orb--rose { width: 440px; height: 440px; left: -6%; top: 30%; background: radial-gradient(circle, rgba(176,38,125,0.45) 0%, transparent 66%); }
.fn-splitcta__orbs .fn-orb--sage { width: 420px; height: 420px; left: 72%; top: -20%; background: radial-gradient(circle, rgba(31,160,144,0.42) 0%, transparent 66%); }
.fn-splitcta__inner { max-width: 1000px; margin: 0 auto; position: relative; display: grid; grid-template-columns: 1fr 1fr; }
.fn-splitcta__col { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 48px; }
.fn-splitcta__col--divider { border-right: 1px solid rgba(247,242,234,0.14); }
.fn-splitcta__h { font-family: var(--font-display); font-weight: 700; font-size: 30px; line-height: 1.2; color: var(--parchment); margin-bottom: 12px; letter-spacing: -0.3px; }
.fn-splitcta__text { font-family: var(--font-body); font-size: 15px; line-height: 1.65; color: rgba(247,242,234,0.78); max-width: 340px; margin: 0 auto 26px; }
.fn-splitcta__btn { display: inline-block; margin-top: auto; font-family: var(--font-body); font-size: 14px; font-weight: 600; letter-spacing: 0.2px; padding: 14px 34px; border-radius: 6px; text-decoration: none; transition: all 0.25s ease; }
.fn-splitcta__btn--amber { color: var(--indigo); background: var(--amber-500); box-shadow: 0 6px 20px rgba(212,149,43,0.28); }
.fn-splitcta__btn--amber:hover { background: var(--amber-400); transform: translateY(-1px); box-shadow: 0 10px 28px rgba(212,149,43,0.4); }
.fn-splitcta__btn--outline { color: var(--parchment); background: transparent; border: 1.5px solid rgba(247,242,234,0.55); padding: 12.5px 32px; }
.fn-splitcta__btn--outline:hover { color: var(--indigo); background: var(--parchment); transform: translateY(-1px); }

@media (max-width: 767px) {
  .fn-splitcta { padding: 56px 20px; }
  .fn-splitcta__inner { grid-template-columns: 1fr; }
  .fn-splitcta__col { padding: 0 0 36px; }
  .fn-splitcta__col--divider { border-right: none; border-bottom: 1px solid rgba(247,242,234,0.14); }
  .fn-splitcta__inner > .fn-splitcta__col:last-child { padding: 36px 0 0; }
}

/* ── Single essay: masthead ── */
.fn-article { background: var(--parchment); }
.fn-art-head { padding: 96px 32px 16px; position: relative; overflow: hidden; }
.fn-art-head__glow { position: absolute; top: -10%; left: 50%; width: 760px; height: 760px; transform: translateX(-50%); background: radial-gradient(circle, rgba(30,26,58,0.05) 0%, transparent 62%); border-radius: 50%; filter: blur(40px); pointer-events: none; }
.fn-art-head__inner { max-width: 740px; margin: 0 auto; text-align: center; position: relative; z-index: 1; }
.fn-art-head__eyebrow { display: inline-block; font-family: var(--font-body); font-size: 12px; font-weight: 600; letter-spacing: 2.2px; text-transform: uppercase; color: var(--rose); text-decoration: none; margin-bottom: 26px; }
.fn-art-head__title { font-family: var(--font-display); font-weight: 700; font-size: 60px; line-height: 1.06; letter-spacing: -1px; color: var(--indigo); margin-bottom: 24px; text-wrap: balance; }
.fn-art-head__standfirst { font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: 23px; line-height: 1.45; color: var(--ink-muted); margin: 0 auto 36px; max-width: 600px; text-wrap: pretty; }
.fn-art-head__byline { display: flex; align-items: center; justify-content: center; gap: 12px; }
.fn-art-head__meta { font-family: var(--font-body); font-size: 13px; color: var(--ink-muted); letter-spacing: 0.2px; }
.fn-art-head__author { color: var(--indigo); font-weight: 600; }

/* ── Feature image ── */
.fn-art-feature { background: var(--parchment); padding: 32px 32px 0; }
.fn-art-feature__frame { max-width: 880px; margin: 0 auto; border-radius: 16px; overflow: hidden; box-shadow: 0 24px 64px rgba(30,26,58,0.18); }
.fn-art-feature__frame img { width: 100%; display: block; }
.fn-art-feature__frame--wash { height: 440px; background: radial-gradient(at 22% 28%, rgba(176,38,125,0.85) 0%, transparent 52%), radial-gradient(at 82% 22%, rgba(31,160,144,0.78) 0%, transparent 48%), radial-gradient(at 60% 92%, rgba(212,149,43,0.68) 0%, transparent 50%), linear-gradient(135deg, #1E1A3A 0%, #131126 100%); }

/* ── Article body — .article-content (Ghost {{content}}) ── */
.fn-art-body { background: var(--parchment); padding: 48px 32px 96px; }
.article-content { max-width: 700px; margin: 0 auto; font-family: var(--font-body); font-weight: 400; font-size: 18px; line-height: 1.85; color: var(--indigo-500); }
.article-content > * + * { margin-top: 24px; }
.article-content p { margin: 0 0 24px; }
.article-content > p:first-child { font-size: 19px; color: var(--indigo); }
.article-content h2 { font-family: var(--font-display); font-weight: 700; font-size: 29px; line-height: 1.2; letter-spacing: -0.4px; color: var(--indigo); margin: 52px 0 18px; }
.article-content h3 { font-family: var(--font-display); font-weight: 700; font-size: 23px; line-height: 1.25; letter-spacing: -0.3px; color: var(--indigo); margin: 40px 0 14px; }
.article-content h4 { font-family: var(--font-display); font-weight: 600; font-size: 19px; line-height: 1.3; color: var(--indigo); margin: 32px 0 12px; }
.article-content a { color: var(--sage-500); text-decoration: underline; text-underline-offset: 2px; }
.article-content em { font-style: italic; }
.article-content strong { font-weight: 600; color: var(--indigo); }
.article-content blockquote { margin: 40px 0; padding-left: 26px; border-left: 3px solid var(--rose); }
.article-content blockquote p { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 24px; line-height: 1.45; color: var(--indigo); margin: 0; }
/* lists */
.article-content ul, .article-content ol { margin: 0 0 24px; padding-left: 26px; }
.article-content li { margin-bottom: 10px; line-height: 1.7; color: var(--indigo-500); }
.article-content ul li::marker { color: var(--rose); }
.article-content ol li::marker { color: var(--sage-500); font-weight: 600; }
/* hr */
.article-content hr { border: none; border-top: 1px solid var(--parchment-border); margin: 48px 0; }
/* images / figures */
.article-content img, .article-content figure { margin: 36px 0; }
.article-content img { border-radius: 12px; }
.article-content figcaption { font-family: var(--font-body); font-size: 13px; color: var(--ink-muted); text-align: center; font-style: italic; margin-top: 10px; }
/* Koenig cards */
.article-content .kg-callout-card { background: var(--parchment-lift); border-left: 4px solid var(--amber); border-radius: 0 8px 8px 0; padding: 20px 24px; margin: 32px 0; display: flex; gap: 12px; }
.article-content .kg-callout-card .kg-callout-text { font-family: var(--font-body); font-size: 16px; line-height: 1.6; color: var(--indigo); }
.article-content .kg-button-card { margin: 36px 0; text-align: center; }
.article-content .kg-button-card .kg-btn { display: inline-block; font-family: var(--font-body); font-size: 14px; font-weight: 600; color: var(--indigo); background: var(--amber-500); padding: 14px 32px; border-radius: 6px; text-decoration: none; transition: background 0.25s ease; }
.article-content .kg-button-card .kg-btn:hover { background: var(--amber-400); }
.article-content .kg-image-card, .article-content .kg-image-card figure { margin: 36px 0; }
.article-content .kg-image-card img { border-radius: 12px; }
.article-content .kg-image-card figcaption { text-align: center; color: var(--ink-muted); font-style: italic; }

@media (max-width: 767px) {
  .fn-art-head { padding: 56px 20px 8px; }
  .fn-art-head__title { font-size: 36px; }
  .fn-art-head__standfirst { font-size: 18px; }
  .fn-art-feature { padding: 24px 20px 0; }
  .fn-art-feature__frame--wash { height: 220px; }
  .fn-art-body { padding: 32px 20px 64px; }
  .article-content { font-size: 16.5px; line-height: 1.8; }
  .article-content > p:first-child { font-size: 17.5px; }
  .article-content h2 { font-size: 25px; margin: 40px 0 14px; }
  .article-content blockquote p { font-size: 21px; }
}

/* ── Author bio ── */
.fn-bio { background: var(--parchment-lift); border-top: 1px solid var(--parchment-border); border-bottom: 1px solid var(--parchment-border); padding: 48px 32px; }
.fn-bio__inner { max-width: 700px; margin: 0 auto; display: flex; gap: 22px; align-items: flex-start; }
.fn-bio__inner .fn-mark { flex-shrink: 0; }
.fn-bio__name { font-family: var(--font-display); font-weight: 700; font-size: 18px; color: var(--indigo); margin-bottom: 6px; }
.fn-bio__blurb { font-family: var(--font-body); font-size: 15px; line-height: 1.7; color: var(--indigo-500); margin-bottom: 12px; }
.fn-bio__blurb em { font-style: italic; }
.fn-bio__links { display: flex; gap: 20px; }
.fn-bio__links a { font-family: var(--font-body); font-size: 13px; font-weight: 600; color: var(--sage-500); text-decoration: none; }

@media (max-width: 767px) {
  .fn-bio { padding: 40px 20px; }
  .fn-bio__inner { flex-direction: column; gap: 16px; }
}

/* ── Subscribe CTA (single post) ── */
.fn-subcta { background: var(--indigo); padding: 80px 32px; position: relative; overflow: hidden; }
.fn-subcta__bg { position: absolute; inset: 0; opacity: 0.1; pointer-events: none; background-image: radial-gradient(circle at 25% 100%, var(--rose) 0%, transparent 45%), radial-gradient(circle at 80% 0%, var(--sage) 0%, transparent 42%); }
.fn-subcta__inner { max-width: 600px; margin: 0 auto; text-align: center; position: relative; }
.fn-subcta__h { font-family: var(--font-display); font-weight: 700; font-size: 34px; line-height: 1.2; color: var(--parchment); margin-bottom: 14px; letter-spacing: -0.3px; }
.fn-subcta__text { font-family: var(--font-body); font-size: 16px; line-height: 1.7; color: rgba(247,242,234,0.82); max-width: 460px; margin: 0 auto 32px; }
.fn-subcta__btn { display: inline-block; font-family: var(--font-body); font-size: 14px; font-weight: 600; letter-spacing: 0.2px; color: var(--indigo); background: var(--amber-500); padding: 15px 38px; border-radius: 6px; text-decoration: none; transition: background 0.25s ease, transform 0.25s ease; box-shadow: 0 6px 20px rgba(212,149,43,0.3); }
.fn-subcta__btn:hover { background: var(--amber-400); transform: translateY(-1px); box-shadow: 0 10px 28px rgba(212,149,43,0.4); }

@media (max-width: 767px) {
  .fn-subcta { padding: 56px 20px; }
  .fn-subcta__h { font-size: 26px; }
}

/* ════════════════════════════════════════════════════════════════
   CONTACT PAGE (kbt-contact-v2.jsx)
   ════════════════════════════════════════════════════════════════ */

.contact { background: var(--parchment); min-height: 100vh; padding: 128px 32px 112px; }
.contact__inner { max-width: 1120px; margin: 0 auto; }
/* Hidden by default; only flexes once JS removes [hidden] on ?sent=1.
   The :not([hidden]) scope ensures the display rule can't override the
   hidden attribute (the bug that left the banner permanently visible). */
.contact__sent[hidden] { display: none; }
.contact__sent:not([hidden]) { display: flex; align-items: center; gap: 12px; max-width: 640px; margin-bottom: 32px; padding: 16px 20px; background: var(--sage-100); border: 1px solid var(--sage-200); border-radius: 10px; font-family: var(--font-body); font-size: 15px; color: var(--indigo); transition: opacity 0.5s ease, transform 0.5s ease; }
.contact__sent--fade { opacity: 0; transform: translateY(-8px); }
.contact__header { margin-bottom: 32px; max-width: 560px; }
/* Primary "book a call" path above the form. Filled indigo button + quiet hint. */
.contact__cta-row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-bottom: 48px; }
.contact__cta-btn { display: inline-block; font-family: var(--font-body); font-size: 14px; font-weight: 600; color: var(--parchment); background: var(--indigo); padding: 15px 28px; border-radius: 6px; text-decoration: none; transition: background 0.25s ease, transform 0.25s ease; }
.contact__cta-btn:hover { background: var(--indigo-600); transform: translateY(-1px); }
.contact__cta-hint { font-family: var(--font-body); font-size: 14px; color: var(--ink-muted); }
.contact__eyebrow { display: inline-block; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rose); background: var(--rose-100); padding: 6px 16px; border-radius: 100px; margin-bottom: 16px; }
.contact__h1 { font-family: var(--font-display); font-weight: 700; font-size: 46px; line-height: 1.15; color: var(--indigo); margin-bottom: 16px; }
.contact__lede { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.75; color: var(--indigo-500); }
.contact__grid { display: grid; grid-template-columns: 1fr 320px; gap: 72px; align-items: start; }
.contact__formwrap { background: var(--parchment-lift); border: 1px solid var(--parchment-border); border-radius: 12px; padding: 40px 36px; }

/* Form (mailto) */
.contact-form { display: flex; flex-direction: column; gap: 20px; }
.contact-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-form__field label { display: block; font-family: var(--font-body); font-size: 13px; font-weight: 500; color: var(--indigo-500); margin-bottom: 6px; letter-spacing: 0.2px; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; background: var(--parchment-lift); border: 1px solid var(--parchment-border); border-radius: 8px; padding: 13px 16px; font-family: var(--font-body); font-size: 15px; color: var(--indigo); outline: none; transition: border-color 0.2s ease, box-shadow 0.2s ease; -webkit-appearance: none; appearance: none; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(176,38,125,0.08); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: var(--ink-muted); }
.contact-form textarea { resize: vertical; }
.contact-form__select { position: relative; }
.contact-form__select select { padding-right: 40px; }
.contact-form__chevron { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.contact-form__submit { align-self: flex-start; font-family: var(--font-body); font-size: 14px; font-weight: 600; color: var(--parchment); background: var(--indigo); border: none; padding: 15px 32px; border-radius: 6px; cursor: pointer; transition: background 0.25s ease, transform 0.25s ease; }
.contact-form__submit:hover { background: var(--indigo-600); transform: translateY(-1px); }
/* Secondary (demoted) variant — outline; the discovery-call button is now primary. */
.contact-form__submit--secondary { background: transparent; color: var(--indigo); border: 1.5px solid var(--indigo); }
.contact-form__submit--secondary:hover { background: var(--indigo); color: var(--parchment); transform: translateY(-1px); }

/* Sidebar */
.contact__sidebar { display: flex; flex-direction: column; gap: 32px; padding-top: 8px; }
.contact__block-label { display: block; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ink-muted); margin-bottom: 14px; }
.contact__loc { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.contact__loc span { font-family: var(--font-body); font-size: 15px; color: var(--indigo-500); }
.contact__loc-sub { padding-left: 22px; display: flex; flex-direction: column; gap: 4px; }
.contact__loc-sub span { font-family: var(--font-body); font-size: 14px; color: var(--ink-muted); }
.contact__divider { width: 100%; height: 1px; background: var(--parchment-border); }
.contact__link { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink-muted); font-family: var(--font-body); font-size: 15px; transition: color 0.2s; }
.contact__link:hover { color: var(--rose); }

/* Newsletter module */
.contact__news { background: var(--indigo-800); border-radius: 10px; padding: 32px 28px; position: relative; overflow: hidden; }
.contact__news-wm { position: absolute; right: -10px; bottom: -14px; width: 150px; height: 150px; opacity: 0.35; pointer-events: none; }
.contact__news-body { position: relative; z-index: 1; }
.contact__news-eyebrow { display: block; font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--rose-500); margin-bottom: 14px; }
.contact__news-eyebrow em { font-style: italic; }
.contact__news-title { font-family: var(--font-display); font-weight: 600; font-size: 22px; line-height: 1.25; letter-spacing: -0.01px; color: var(--parchment); margin-bottom: 10px; }
.contact__news-text { font-family: var(--font-body); font-size: 14px; line-height: 1.65; color: var(--indigo-200); margin-bottom: 22px; }
.contact__news-cta { display: inline-block; font-family: var(--font-body); font-size: 14px; font-weight: 600; color: var(--parchment); background: var(--rose-500); text-decoration: none; padding: 12px 24px; border-radius: 6px; transition: background 0.25s ease, transform 0.25s ease; }
.contact__news-cta:hover { background: var(--rose-600); transform: translateY(-1px); }

@media (max-width: 767px) {
  .contact { padding: 108px 20px 80px; }
  .contact__header { margin-bottom: 24px; }
  .contact__cta-row { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 40px; } /* hint stacks under button */
  .contact__h1 { font-size: 32px; }
  .contact__grid { grid-template-columns: 1fr; gap: 48px; }
  .contact__formwrap { padding: 32px 24px; }
  .contact-form__row { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════════
   THINKING PAGE (kbt-thinking-v6.jsx)
   ════════════════════════════════════════════════════════════════ */

/* ── Hero (indigo; layered glows + dual spinning orbit) ── */
.th-hero { background: var(--indigo); padding: 160px 32px 112px; position: relative; overflow: hidden; min-height: 520px; }
.th-hero__glow { position: absolute; top: 50%; transform: translateY(-50%); border-radius: 50%; pointer-events: none; }
.th-hero__glow--rose { left: 0; width: 450px; height: 450px; background: radial-gradient(circle, rgba(176,38,125,0.35) 0%, rgba(176,38,125,0.12) 40%, transparent 70%); animation: drift-right 24s ease-in-out infinite; }
.th-hero__glow--sage { right: 0; width: 400px; height: 400px; background: radial-gradient(circle, rgba(31,160,144,0.30) 0%, rgba(31,160,144,0.10) 40%, transparent 70%); animation: drift-left 24s ease-in-out infinite; }
.th-hero__glow--center { left: 50%; transform: translate(-50%,-50%); width: 300px; height: 300px; background: radial-gradient(circle, rgba(200,200,255,0.06) 0%, transparent 60%); animation: center-pulse 24s ease-in-out infinite; }
.th-hero__orbit { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 900px; height: 900px; opacity: 0.07; animation: spin-centered 90s linear infinite; pointer-events: none; }
.th-hero__inner { max-width: 800px; margin: 0 auto; position: relative; text-align: center; z-index: 2; }
.th-hero__eyebrow { display: block; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rose-400); margin-bottom: 28px; }
.th-hero__eyebrow em { font-style: italic; }
.th-hero__h1 { font-family: var(--font-display); font-weight: 900; font-size: 48px; line-height: 1.1; color: var(--parchment); margin-bottom: 8px; }
.th-hero__h1--last { margin-bottom: 40px; }
.th-hero__lede { max-width: 560px; margin: 0 auto 16px; display: flex; flex-direction: column; gap: 10px; }
.th-hero__lede p { font-family: var(--font-body); font-weight: 400; font-size: 17px; line-height: 1.75; color: var(--indigo-200); }
.th-hero__lede em { font-style: italic; }
.th-hero__lede-bold { font-weight: 600 !important; color: var(--parchment) !important; }
.th-hero__tagline { font-family: var(--font-body); font-size: 12px; color: rgba(247,242,234,0.45); font-style: italic; margin-bottom: 32px; }
.th-hero__legend { display: flex; gap: 16px; justify-content: center; align-items: center; flex-wrap: wrap; }
.th-hero__legend-item { display: flex; align-items: center; gap: 8px; font-family: var(--font-body); font-size: 13px; font-weight: 500; }
.th-hero__legend-item--rose { color: var(--rose-300); }
.th-hero__legend-item--amber { color: var(--amber-400); }
.th-hero__legend-item--rose .th-hero__dot { background: var(--rose); }
.th-hero__legend-item--amber .th-hero__dot { background: var(--amber); }
.th-hero__dot { width: 6px; height: 6px; border-radius: 50%; }
.th-hero__legend-divider { width: 1px; height: 16px; background: var(--indigo-300); }

@media (prefers-reduced-motion: reduce) { .th-hero__orbit, .th-hero__glow--rose, .th-hero__glow--sage, .th-hero__glow--center { animation: none; } }

@media (max-width: 767px) {
  .th-hero { padding: 120px 20px 80px; min-height: auto; }
  .th-hero__glow--rose { width: 280px; height: 280px; }
  .th-hero__glow--sage { width: 240px; height: 240px; }
  .th-hero__glow--center { width: 200px; height: 200px; }
  .th-hero__orbit { width: 500px; height: 500px; }
  .th-hero__h1 { font-size: 30px; }
  .th-hero__lede p { font-size: 15px; }
}

/* ── Origin (text + 3-slide gallery) ── */
.th-origin { background: var(--parchment); padding: 96px 32px 104px; }
.th-origin__inner { max-width: 1040px; margin: 0 auto; }
.th-origin__label { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.th-origin__rule { width: 32px; height: 2px; background: var(--rose); border-radius: 1px; }
.th-origin__eyebrow { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rose); }
.th-origin__h2 { font-family: var(--font-display); font-weight: 900; font-size: 34px; line-height: 1.15; color: var(--indigo); margin-bottom: 48px; }
.th-origin__grid { display: grid; grid-template-columns: 1fr 400px; gap: 64px; align-items: start; }
.th-origin__p { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.8; color: var(--indigo-500); margin-bottom: 24px; }
.th-origin__p em { font-style: italic; }
.th-origin__pullquote { font-family: var(--font-display); font-weight: 700; font-size: 23px; line-height: 1.3; color: var(--rose); margin-bottom: 32px; }
.th-origin__pullquote em { font-style: italic; }
.th-origin__stats { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; padding: 24px 0; border-top: 1px solid var(--parchment-border); border-bottom: 1px solid var(--parchment-border); margin-bottom: 32px; }
.th-origin__stat-num { font-family: var(--font-display); font-weight: 700; font-size: 32px; line-height: 1.1; }
.th-origin__stat-num--rose { color: var(--rose); }
.th-origin__stat-num--sage { color: var(--sage); }
.th-origin__stat-num--amber { color: var(--amber); }
.th-origin__stat-label { font-family: var(--font-body); font-size: 12px; color: var(--ink-muted); margin-top: 4px; }
.th-origin__close { font-family: var(--font-display); font-weight: 600; font-size: 20px; line-height: 1.4; color: var(--indigo); }
.th-origin__aside { position: sticky; top: 100px; }

/* Gallery carousel */
.th-gallery__viewport { border-radius: 14px; overflow: hidden; box-shadow: 0 16px 56px rgba(30,26,58,0.18); }
.th-gallery__slide { display: none; margin: 0; }
.th-gallery__slide.is-active { display: block; }
.th-gallery__slide img { width: 100%; display: block; object-fit: cover; aspect-ratio: 500 / 404; }
.th-gallery__controls { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; padding: 0 4px; }
.th-gallery__arrow { font-family: var(--font-body); font-size: 18px; background: none; border: none; cursor: pointer; color: var(--ink-muted); padding: 4px 8px; }
.th-gallery__arrow:disabled { color: var(--parchment-300); cursor: default; }
.th-gallery__dots { display: flex; gap: 8px; align-items: center; }
.th-gallery__dot { width: 8px; height: 8px; border-radius: 4px; background: var(--parchment-300); border: none; cursor: pointer; padding: 0; transition: width 0.2s, background 0.2s; }
.th-gallery__dot.is-active { width: 20px; background: var(--rose); }

/* Pull-quote card (gallery slide 1) */
.th-pullquote { background: var(--indigo); border-radius: 14px; padding: 40px 32px; position: relative; aspect-ratio: 500 / 404; display: flex; flex-direction: column; justify-content: center; }
.th-pullquote__mark { font-family: var(--font-display); font-size: 64px; line-height: 0.8; color: var(--rose-500); margin-bottom: 16px; opacity: 0.6; }
.th-pullquote__quote { font-family: var(--font-display); font-weight: 700; font-size: 22px; line-height: 1.35; color: var(--parchment); margin-bottom: 20px; }
.th-pullquote__quote em { font-style: italic; }
.th-pullquote__body { font-family: var(--font-body); font-size: 14px; line-height: 1.65; color: var(--indigo-200); margin-bottom: 28px; }
.th-pullquote__attr { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 20px; }
.th-pullquote__source { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; color: var(--indigo-300); }
.th-pullquote__who { font-family: var(--font-body); font-size: 13px; color: var(--indigo-300); margin-top: 4px; }

@media (max-width: 767px) {
  .th-origin { padding: 64px 20px 72px; }
  .th-origin__h2 { font-size: 26px; margin-bottom: 36px; }
  .th-origin__grid { grid-template-columns: 1fr; gap: 40px; }
  .th-origin__p { font-size: 15px; }
  .th-origin__pullquote { font-size: 19px; }
  .th-origin__stat-num { font-size: 24px; }
  .th-origin__close { font-size: 17px; }
  .th-origin__aside { position: relative; top: 0; }
}

/* ── Data (case for KBT — stat cards + quadrant) ── */
.th-data { background: var(--parchment-lift); padding: 80px 32px 96px; border-top: 1px solid var(--parchment-border); border-bottom: 1px solid var(--parchment-border); }
.th-data__inner { max-width: 1040px; margin: 0 auto; }
.th-data__label { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.th-data__rule { width: 32px; height: 2px; background: var(--rose); border-radius: 1px; }
.th-data__eyebrow { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rose); }
.th-data__h2 { font-family: var(--font-display); font-weight: 900; font-size: 34px; line-height: 1.15; color: var(--indigo); margin-bottom: 12px; max-width: 640px; }
.th-data__intro { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.7; color: var(--indigo-500); margin-bottom: 52px; max-width: 640px; }
.th-data__cards { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; margin-bottom: 24px; }
.th-data__card { background: var(--parchment-lift); border: 1px solid var(--parchment-border); border-top: 3px solid var(--indigo); border-radius: 10px; padding: 36px 32px; display: flex; flex-direction: column; }
.th-data__stat { font-family: var(--font-display); font-weight: 700; font-size: 48px; line-height: 1; margin-bottom: 6px; }
.th-data__stat--rose { color: var(--rose); }
.th-data__card-label { font-family: var(--font-display); font-weight: 600; font-size: 19px; line-height: 1.25; color: var(--indigo); margin-bottom: 16px; }
.th-data__card-body { font-family: var(--font-body); font-size: 14px; font-weight: 400; line-height: 1.65; color: var(--indigo-500); flex: 1; }
.th-data__card-body em { font-style: italic; }

/* Quadrant explainer card */
.th-data__quadrant-card { background: var(--parchment-lift); border: 1px solid var(--parchment-border); border-top: 3px solid var(--indigo); border-radius: 10px; padding: 40px 44px; display: grid; grid-template-columns: auto 1fr; gap: 48px; align-items: center; }
.th-quadrant { position: relative; padding: 0 20px 24px 36px; }
.th-quadrant__grid { display: grid; grid-template-columns: 120px 120px; grid-template-rows: 120px 120px; gap: 3px; }
.th-quadrant__cell { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; line-height: 1.2; position: relative; cursor: default; }
.th-quadrant__cell span { font-family: var(--font-body); font-weight: 500; font-size: 13px; }
.th-quadrant__cell--comfort { background: var(--indigo-100); color: var(--ink-muted); border-radius: 10px 2px 2px 2px; }
.th-quadrant__cell--learning { background: var(--sage); color: var(--parchment); border-radius: 2px 10px 2px 2px; }
.th-quadrant__cell--learning span { font-weight: 700; }
.th-quadrant__cell--apathy { background: var(--parchment-300); color: var(--ink-muted); border-radius: 2px 2px 2px 10px; }
.th-quadrant__cell--anxiety { background: var(--rose-100); color: var(--rose-800); border-radius: 2px 2px 10px 2px; }
.th-quadrant__star-label { font-size: 8px !important; font-weight: 600 !important; letter-spacing: 0.5px; text-transform: uppercase; margin-top: 4px; }
.th-quadrant__cell[data-tip]:hover::after { content: attr(data-tip); position: absolute; left: 50%; bottom: -34px; transform: translateX(-50%); background: var(--indigo); color: var(--parchment); padding: 6px 14px; border-radius: 6px; font-size: 11px; white-space: nowrap; z-index: 5; pointer-events: none; }
.th-quadrant__axis { position: absolute; font-family: var(--font-body); font-size: 8px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-muted); }
.th-quadrant__axis--y { left: -2px; top: 50%; transform: rotate(-90deg) translateX(50%); transform-origin: 0 0; }
.th-quadrant__axis--x { bottom: 0; left: 50%; transform: translateX(-50%); }
.th-data__quadrant-text { /* text column */ }

/* Closing banner */
.th-data__banner { margin-top: 40px; padding: 36px 40px; background: var(--indigo); border-radius: 12px; position: relative; overflow: hidden; }
.th-data__banner::before { content: ""; position: absolute; inset: 0; opacity: 0.06; background-image: radial-gradient(circle at 80% 50%, var(--rose) 0%, transparent 50%); }
.th-data__banner p { font-family: var(--font-body); font-weight: 500; font-size: 20px; line-height: 1.55; color: var(--parchment); position: relative; }

@media (max-width: 767px) {
  .th-data { padding: 56px 20px 64px; }
  .th-data__h2 { font-size: 26px; }
  .th-data__intro { margin-bottom: 36px; }
  .th-data__cards { grid-template-columns: 1fr; gap: 20px; }
  .th-data__card { padding: 28px 24px; }
  .th-data__stat { font-size: 40px; }
  .th-data__card-label { font-size: 17px; }
  .th-data__quadrant-card { grid-template-columns: 1fr; gap: 32px; padding: 28px 24px 40px; }
  .th-quadrant__grid { grid-template-columns: 100px 100px; grid-template-rows: 100px 100px; }
  .th-quadrant__cell span { font-size: 11px; }
  .th-data__banner { margin-top: 28px; padding: 28px 24px; }
  .th-data__banner p { font-size: 17px; }
}

/* ── Definitions (Kind | Tough on indigo) ── */
.th-defs { background: var(--indigo); padding: 88px 32px; position: relative; overflow: hidden; }
.th-defs__bg { position: absolute; inset: 0; opacity: 0.04; pointer-events: none; background-image: radial-gradient(circle at 20% 50%, var(--rose) 0%, transparent 40%), radial-gradient(circle at 80% 50%, var(--sage) 0%, transparent 40%); }
.th-defs__inner { max-width: 960px; margin: 0 auto; position: relative; }
.th-defs__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.th-defs__label { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.th-defs__rule { width: 32px; height: 2px; border-radius: 1px; }
.th-defs__rule--rose { background: var(--rose); }
.th-defs__rule--sage { background: var(--sage); }
.th-defs__eyebrow { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; }
.th-defs__eyebrow--rose { color: var(--rose); }
.th-defs__eyebrow--sage { color: var(--sage); }
.th-defs__h { font-family: var(--font-display); font-weight: 700; font-size: 24px; line-height: 1.3; color: var(--parchment); margin-bottom: 24px; }
.th-defs__list { list-style: none; padding: 0; margin: 0; }
.th-defs__item { position: relative; padding-left: 20px; margin-bottom: 16px; font-family: var(--font-body); font-weight: 400; font-size: 15px; line-height: 1.65; color: var(--indigo-200); }
.th-defs__item::before { content: ""; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; border-radius: 50%; }
.th-defs__item--rose::before { background: var(--rose); }
.th-defs__item--sage::before { background: var(--sage); }
.th-defs__closer { font-family: var(--font-body); font-weight: 600; font-size: 15px; line-height: 1.6; color: var(--parchment); margin-top: 28px; }

@media (max-width: 767px) {
  .th-defs { padding: 64px 20px; }
  .th-defs__grid { grid-template-columns: 1fr; gap: 48px; }
  .th-defs__h { font-size: 20px; }
}

/* ── Belief (human-edge orbit) ── */
.th-belief { background: var(--parchment-lift); padding: 96px 32px 120px; border-top: 1px solid var(--parchment-border); border-bottom: 1px solid var(--parchment-border); }
.th-belief__inner { max-width: 1040px; margin: 0 auto; }
.th-belief__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.th-belief__label { display: flex; align-items: center; gap: 10px; margin-bottom: 24px; }
.th-belief__rule { width: 32px; height: 2px; background: var(--sage); border-radius: 1px; }
.th-belief__eyebrow { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--sage); }
.th-belief__h2 { font-family: var(--font-display); font-weight: 900; font-size: 34px; line-height: 1.2; color: var(--indigo); margin-bottom: 24px; }
.th-belief__p { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.75; color: var(--indigo-500); margin-bottom: 20px; }
.th-belief__p--bold { font-weight: 600; color: var(--indigo); margin-bottom: 32px; }
.th-belief__hint { font-family: var(--font-body); font-size: 12px; font-weight: 400; color: var(--indigo-300); font-style: italic; }

/* Orbit */
.th-orbit { width: 360px; margin: 0 auto; }
.th-orbit__cap { text-align: center; font-family: var(--font-body); }
.th-orbit__cap--top { font-size: 10px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--amber); margin-bottom: 14px; }
.th-orbit__cap--bottom { font-size: 12px; font-weight: 500; color: var(--indigo-300); letter-spacing: 0.3px; font-style: italic; margin-top: 24px; }
.th-orbit__stage { position: relative; width: 360px; height: 360px; }
.th-orbit__ring { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); border-radius: 50%; }
.th-orbit__ring--outer { width: 328px; height: 328px; border: 1.5px dashed var(--amber); opacity: 0.55; animation: spin-centered 50s linear infinite; }
.th-orbit__ring--inner { width: 248px; height: 248px; border: 1px dashed var(--parchment-300); opacity: 0.5; }
/* Courage ripples — 3 rings emanating from the hub, staggered 0/1/2s */
.th-orbit__ripple { position: absolute; top: 50%; left: 50%; width: 136px; height: 136px; border-radius: 50%; border: 1.5px solid var(--rose-300); transform: translate(-50%,-50%) scale(1); opacity: 0; z-index: 1; pointer-events: none; animation: courage-ripple 3s ease-out infinite; }
.th-orbit__ripple--1 { animation-delay: 0s; }
.th-orbit__ripple--2 { animation-delay: 1s; }
.th-orbit__ripple--3 { animation-delay: 2s; }
.th-orbit__center { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 80px; height: 80px; border-radius: 50%; background: linear-gradient(135deg, var(--rose) 0%, var(--sage) 100%); box-shadow: 0 6px 32px rgba(176,38,125,0.3); display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 4; animation: float-up 4s ease-in-out infinite; }
.th-orbit__you { font-family: var(--font-display); font-weight: 700; font-size: 19px; color: var(--parchment); letter-spacing: 0.3px; }
.th-orbit__courage { font-family: var(--font-body); font-size: 8px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(247,242,234,0.65); }
.th-orbit__node { position: absolute; width: 74px; height: 74px; border-radius: 50%; background: var(--parchment-lift); display: flex; align-items: center; justify-content: center; text-align: center; line-height: 1.15; font-family: var(--font-body); font-weight: 600; font-size: 10px; letter-spacing: 0.3px; cursor: pointer; z-index: 3; transition: background 0.2s, color 0.2s, transform 0.2s; padding: 4px; }
.th-orbit__node--rose { border: 2px solid var(--rose); color: var(--rose); }
.th-orbit__node--sage { border: 2px solid var(--sage); color: var(--sage); }
.th-orbit__node--rose.is-active { background: var(--rose); color: var(--parchment); transform: scale(1.08); }
.th-orbit__node--sage.is-active { background: var(--sage); color: var(--parchment); transform: scale(1.08); }
/* cardinal positions on the orbit radius (124px from center) */
.th-orbit__node--top    { top: calc(50% - 124px); left: 50%; transform: translate(-50%,-50%); }
.th-orbit__node--right  { top: 50%; left: calc(50% + 124px); transform: translate(-50%,-50%); }
.th-orbit__node--bottom { top: calc(50% + 124px); left: 50%; transform: translate(-50%,-50%); }
.th-orbit__node--left   { top: 50%; left: calc(50% - 124px); transform: translate(-50%,-50%); }
.th-orbit__node--top.is-active, .th-orbit__node--right.is-active, .th-orbit__node--bottom.is-active, .th-orbit__node--left.is-active { transform: translate(-50%,-50%) scale(1.08); }
/* Tip sits below the whole orbit (under the caption) — a normal-flow block,
   centered, so it never overlaps the diagram or clips the Presence node. */
.th-orbit__tip { margin: 16px auto 0; max-width: 300px; background: var(--indigo); color: var(--parchment); padding: 12px 16px; border-radius: 8px; font-family: var(--font-body); font-size: 12px; line-height: 1.45; text-align: center; box-shadow: 0 8px 24px rgba(30,26,58,0.35); }

@media (prefers-reduced-motion: reduce) {
  .th-orbit__ring--outer, .th-orbit__center { animation: none; }
  .th-orbit__ripple { animation: none; opacity: 0; }
}

@media (max-width: 767px) {
  .th-belief { padding: 64px 20px 100px; }
  .th-belief__grid { grid-template-columns: 1fr; gap: 56px; }
  .th-belief__h2 { font-size: 26px; }
  .th-belief__p { font-size: 15px; }
  .th-orbit, .th-orbit__stage { width: 280px; }
  .th-orbit__stage { height: 280px; }
  .th-orbit__ring--outer { width: 264px; height: 264px; }
  .th-orbit__ring--inner { width: 196px; height: 196px; }
  .th-orbit__center { width: 64px; height: 64px; }
  .th-orbit__node { width: 62px; height: 62px; font-size: 9px; }
  .th-orbit__node--top { top: calc(50% - 98px); }
  .th-orbit__node--right { left: calc(50% + 98px); }
  .th-orbit__node--bottom { top: calc(50% + 98px); }
  .th-orbit__node--left { left: calc(50% - 98px); }
}

/* ── Catalyst Framework (indigo-800) ── */
.th-cat { background: var(--indigo-800); padding: 96px 32px 112px; position: relative; overflow: hidden; }
.th-cat__bg { position: absolute; inset: 0; opacity: 0.05; pointer-events: none; background-image: radial-gradient(circle at 50% 30%, var(--amber) 0%, transparent 55%); }
.th-cat__inner { max-width: 1040px; margin: 0 auto; position: relative; }
.th-cat__header { max-width: 680px; margin-bottom: 56px; }
.th-cat__label { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.th-cat__rule { width: 32px; height: 2px; background: var(--amber); border-radius: 1px; }
.th-cat__eyebrow { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--amber); }
.th-cat__h2 { font-family: var(--font-display); font-weight: 900; font-size: 40px; line-height: 1.1; color: var(--parchment); margin-bottom: 16px; }
.th-cat__sub { font-family: var(--font-display); font-weight: 600; font-size: 19px; line-height: 1.35; color: var(--amber-400); margin-bottom: 20px; }
.th-cat__intro { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.75; color: var(--parchment); }
.th-cat__intro em { font-style: italic; }

/* Ground zero */
.th-cat__ground { background: rgba(212,149,43,0.07); border: 1px solid rgba(212,149,43,0.2); border-left: 4px solid var(--amber); border-radius: 0 10px 10px 0; padding: 36px 40px; margin-bottom: 56px; }
.th-cat__ground-label { font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--amber); margin-bottom: 24px; }
.th-cat__ground-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; margin-bottom: 28px; }
.th-cat__ground-key { font-family: var(--font-body); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--amber-400); margin-bottom: 8px; }
.th-cat__ground-text { font-family: var(--font-body); font-size: 13px; line-height: 1.6; color: var(--indigo-200); }
.th-cat__ground-foot { border-top: 1px solid rgba(212,149,43,0.2); padding-top: 20px; }
.th-cat__ground-foot p { font-family: var(--font-display); font-weight: 700; font-size: 17px; line-height: 1.3; color: var(--parchment); }

/* Four dimensions */
.th-cat__dims-label { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--indigo-200); margin-bottom: 28px; }
.th-cat__dims { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 64px; }
.th-cat__move { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-top: 3px solid var(--amber); border-radius: 10px; padding: 24px 22px; display: flex; flex-direction: column; transition: background 0.25s, border-color 0.25s; cursor: default; }
.th-cat__move.is-active { background: rgba(212,149,43,0.12); border-color: var(--amber); }
.th-cat__move-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.th-cat__move-num { font-family: var(--font-body); font-size: 9px; font-weight: 600; letter-spacing: 1px; color: var(--indigo-300); }
.th-cat__move-verb { font-family: var(--font-body); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--amber); }
.th-cat__move-title { font-family: var(--font-display); font-weight: 700; font-size: 16px; line-height: 1.25; color: var(--parchment); margin-bottom: 12px; }
.th-cat__move-desc, .th-cat__move-detail { font-family: var(--font-body); font-size: 13px; line-height: 1.6; color: var(--indigo-200); flex: 1; }
.th-cat__move-foot { margin-top: 16px; display: flex; align-items: center; gap: 6px; }
.th-cat__move-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--indigo-300); }
.th-cat__move.is-active .th-cat__move-dot { background: var(--amber); }
.th-cat__move-cue { font-family: var(--font-body); font-size: 10px; color: var(--indigo-300); font-style: italic; }
.th-cat__move.is-active .th-cat__move-cue { color: var(--amber-400); font-style: normal; }

/* Human advantage callout */
.th-cat__advantage { background: rgba(255,255,255,0.03); border: 1px solid rgba(212,149,43,0.2); border-left: 3px solid var(--amber); border-radius: 10px; padding: 36px 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.th-cat__advantage-label { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--amber); margin-bottom: 12px; }
.th-cat__advantage-h { font-family: var(--font-display); font-weight: 700; font-size: 22px; line-height: 1.3; color: var(--parchment); }
.th-cat__advantage-body { font-family: var(--font-body); font-weight: 400; font-size: 15px; line-height: 1.7; color: var(--indigo-200); }

/* Coming soon */
.th-cat__soon { margin-top: 52px; padding-top: 40px; border-top: 1px solid rgba(212,149,43,0.2); }
.th-cat__soon-tag { display: block; font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--amber-300); margin-bottom: 14px; }
.th-cat__soon-head { font-family: var(--font-display); font-weight: 600; font-size: 26px; line-height: 1.25; letter-spacing: -0.01px; color: var(--parchment); margin-bottom: 10px; max-width: 600px; }
.th-cat__soon-head a { color: var(--amber); text-decoration: none; border-bottom: 1px solid var(--amber); padding-bottom: 2px; }
.th-cat__soon-note { font-family: var(--font-body); font-size: 14px; line-height: 1.65; color: var(--indigo-200); font-style: italic; }

@media (max-width: 767px) {
  .th-cat { padding: 72px 20px 80px; }
  .th-cat__header { margin-bottom: 40px; }
  .th-cat__h2 { font-size: 28px; }
  .th-cat__sub { font-size: 16px; }
  .th-cat__ground { padding: 28px 24px; }
  .th-cat__ground-grid { grid-template-columns: 1fr 1fr; gap: 20px; }
  .th-cat__ground-foot p { font-size: 15px; }
  .th-cat__dims { grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 48px; }
  .th-cat__move-title { font-size: 14px; }
  .th-cat__move-desc, .th-cat__move-detail { font-size: 12px; }
  .th-cat__advantage { grid-template-columns: 1fr; gap: 24px; padding: 28px 24px; }
  .th-cat__advantage-h { font-size: 18px; }
  .th-cat__soon { margin-top: 40px; padding-top: 32px; }
  .th-cat__soon-head { font-size: 22px; }
}

/* ════════════════════════════════════════════════════════════════
   ABOUT PAGE (kbt-about-v3.jsx)
   ════════════════════════════════════════════════════════════════ */

/* ── Hero (two-column; logo-mark + headshot figure) ── */
.about-hero { background: var(--parchment); padding: 128px 0 96px; }
.about-hero__inner { max-width: 1120px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1fr 360px; gap: 72px; align-items: center; }
.about-hero__text { text-align: left; }
.about-hero__eyebrow { display: inline-block; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--rose); background: var(--rose-100); padding: 6px 16px; border-radius: 100px; margin-bottom: 28px; }
.about-hero__h1 { font-family: var(--font-display); font-weight: 700; font-size: 46px; line-height: 1.1; letter-spacing: -0.8px; color: var(--indigo); margin-bottom: 24px; }
.about-hero__intro { max-width: 520px; margin-bottom: 36px; }
.about-hero__intro p { font-family: var(--font-body); font-weight: 400; font-size: 17px; line-height: 1.8; color: var(--indigo-500); margin-bottom: 16px; }
.about-hero__intro-bold { font-weight: 600 !important; color: var(--indigo) !important; margin-bottom: 0 !important; }

/* Rotator (shared mechanism) */
.about-hero__rotator { position: relative; min-height: 34px; margin-bottom: 32px; }
.about-hero__rotator-line { position: absolute; left: 0; top: 0; font-family: var(--font-body); font-weight: 600; font-size: 18px; color: var(--rose); letter-spacing: 0.2px; opacity: 0; transform: translateY(-8px); transition: opacity 0.6s ease, transform 0.6s ease; }
.about-hero__rotator-line.is-visible { opacity: 1; transform: translateY(0); }

/* Figure */
.about-hero__figure { order: 2; }
.about-graphic { position: relative; width: 360px; height: 360px; margin: 0 auto; }
.about-graphic__glow { position: absolute; inset: -40px; border-radius: 50%; background: radial-gradient(circle, rgba(176,38,125,0.08) 0%, rgba(31,160,144,0.06) 50%, transparent 70%); animation: pulse-glow 4s ease-in-out infinite; }
.about-graphic__orbit { position: absolute; inset: -20px; width: calc(100% + 40px); height: calc(100% + 40px); animation: gentle-spin 60s linear infinite; }
.about-graphic__mark { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; opacity: 0.25; filter: drop-shadow(0 8px 32px rgba(30,26,58,0.1)); }
.about-graphic__shot { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 52%; height: 52%; border-radius: 50%; overflow: hidden; border: 3px solid var(--parchment-lift); box-shadow: 0 8px 32px rgba(30,26,58,0.15); z-index: 2; }
.about-graphic__shot img { width: 100%; height: 100%; object-fit: cover; }
.about-hero__credit { text-align: center; margin-top: 20px; }
.about-hero__name { font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--indigo); letter-spacing: 0.2px; }
.about-hero__role { font-family: var(--font-body); font-weight: 400; font-size: 12px; color: var(--ink-muted); margin-top: 4px; letter-spacing: 0.4px; }
.about-hero__role em { font-style: italic; text-transform: none; }

@media (prefers-reduced-motion: reduce) {
  .about-graphic__glow, .about-graphic__orbit { animation: none; }
}

@media (max-width: 767px) {
  .about-hero { padding: 108px 0 72px; }
  .about-hero__inner { display: flex; flex-direction: column; padding: 0 20px; gap: 40px; }
  .about-hero__h1 { font-size: 30px; }
  .about-hero__intro p { font-size: 15px; }
  .about-hero__figure { order: -1; }
  .about-graphic { width: min(300px, calc(100vw - 80px)); height: min(300px, calc(100vw - 80px)); }
  .about-hero__rotator-line { font-size: 16px; }
}

/* ── Role sections (Executive / Coach / Painter) — single-column reading ── */
.about-role { position: relative; overflow: hidden; padding: 96px 32px; border-bottom: 1px solid var(--parchment-border); }
.about-role--exec { background: var(--parchment-lift); border-top: 1px solid var(--parchment-border); }
.about-role--coach { background: linear-gradient(180deg, var(--sage-100) 0%, var(--parchment-lift) 100%); }
.about-role__accent { position: absolute; pointer-events: none; z-index: 0; border-radius: 50%; }
.about-role__accent--sage { left: -5%; top: 20%; width: 500px; height: 500px; background: radial-gradient(circle, rgba(31,160,144,0.10) 0%, transparent 65%); }
.about-role__watermark { position: absolute; pointer-events: none; user-select: none; z-index: 0; opacity: 0.09; height: auto; }
.about-role__watermark--phoenix { right: -3%; top: 50%; transform: translateY(-50%); width: 520px; }
.about-role__inner { max-width: 760px; margin: 0 auto; position: relative; z-index: 1; }
.about-role__eyebrow { display: inline-block; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 16px; }
.about-role__eyebrow--rose { color: var(--rose); }
.about-role__eyebrow--sage { color: var(--sage); }
.about-role__eyebrow--amber { color: var(--amber); }
.about-role__h2 { font-family: var(--font-display); font-weight: 700; font-size: 42px; line-height: 1.15; letter-spacing: -0.5px; color: var(--indigo); margin-bottom: 32px; }
.about-role__body { display: flex; flex-direction: column; gap: 20px; }
.about-role__body p { font-family: var(--font-body); font-weight: 400; font-size: 17px; line-height: 1.8; color: var(--indigo-500); }
.about-role__body em { font-style: italic; color: var(--indigo); }
.about-role__body strong { font-weight: 600; color: var(--indigo); }

@media (max-width: 767px) {
  .about-role { padding: 64px 20px; }
  .about-role__h2 { font-size: 30px; }
  .about-role__body p { font-size: 15px; }
  .about-role__watermark--phoenix { right: -15%; width: 340px; }
  .about-role__accent--sage { left: -20%; top: 20%; width: 300px; height: 300px; }
}

/* ── The Painter (two-column: text + framed painting) ── */
.about-painter { background: var(--parchment-lift); border-bottom: 1px solid var(--parchment-border); padding: 96px 32px; }
.about-painter__inner { max-width: 1040px; margin: 0 auto; display: grid; grid-template-columns: 1.3fr 1fr; gap: 64px; align-items: center; }
.about-painter__text { text-align: left; }
.about-painter__frame { border-radius: 12px; overflow: hidden; box-shadow: 0 20px 56px rgba(30,26,58,0.15); }
.about-painter__frame img { width: 100%; display: block; border-radius: 10px 10px 0 0; }
.about-painter__caption { padding: 14px 18px; background: var(--parchment); border-top: 1px solid var(--parchment-border); border-radius: 0 0 10px 10px; }
.about-painter__title { font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--indigo); letter-spacing: 0.2px; }
.about-painter__medium { font-family: var(--font-body); font-size: 12px; color: var(--ink-muted); font-style: italic; margin-top: 2px; }

@media (max-width: 767px) {
  .about-painter { padding: 64px 20px; }
  .about-painter__inner { grid-template-columns: 1fr; gap: 40px; }
}

/* ════════════════════════════════════════════════════════════════
   COACHING PAGE (kbt-coaching-v2.jsx)
   ════════════════════════════════════════════════════════════════ */

/* ── Hero ── */
.coaching-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--sage-700) 0%, var(--sage-800) 50%, var(--sage-900) 100%); padding: 168px 32px 96px; min-height: 460px; }
.coaching-hero__inner { max-width: 820px; margin: 0 auto; position: relative; z-index: 2; text-align: center; }
.coaching-hero__eyebrow { display: inline-block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--sage-200); margin-bottom: 40px; }
.coaching-hero__h1 { font-family: var(--font-display); font-weight: 700; font-size: 56px; line-height: 1.06; letter-spacing: -0.014px; color: var(--parchment); margin-bottom: 28px; text-wrap: balance; }
.coaching-hero__sub { font-family: var(--font-body); font-style: italic; font-weight: 500; font-size: 21px; line-height: 1.4; color: var(--sage-200); letter-spacing: 0.1px; max-width: 620px; margin: 0 auto 48px; text-wrap: balance; }
.coaching-hero__body { max-width: 560px; margin: 0 auto 40px; display: flex; flex-direction: column; gap: 22px; }
.coaching-hero__body p { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.7; color: rgba(247,242,234,0.92); text-wrap: pretty; }
.coaching-hero__thesis { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 20px; line-height: 1.5; color: var(--amber-300); margin: 0 auto 44px; max-width: 600px; text-wrap: balance; letter-spacing: 0.1px; }
/* Hero CTA uses the canonical .btn-primary--amber (see shared button block). */

@media (max-width: 768px) {
  .coaching-hero { padding: 120px 20px 64px; min-height: auto; }
  .coaching-hero__eyebrow { margin-bottom: 32px; }
  .coaching-hero__h1 { font-size: 36px; margin-bottom: 22px; }
  .coaching-hero__sub { font-size: 17px; margin: 0 auto 36px; }
  .coaching-hero__body { margin: 0 auto 32px; gap: 18px; }
  .coaching-hero__body p { font-size: 15px; }
  .coaching-hero__thesis { font-size: 17px; margin: 0 auto 36px; }
}

/* ── Audience cards (A + B) ── */
/* Section 2 — intro on parchment (moved down from the hero) */
.coaching-intro { background: var(--parchment); padding: 96px 32px; }
.coaching-intro__inner { max-width: 560px; margin: 0 auto; text-align: center; }
.coaching-intro__eyebrow { display: inline-block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--sage-700); margin-bottom: 32px; }
.coaching-intro__body { display: flex; flex-direction: column; gap: 22px; margin-bottom: 40px; }
.coaching-intro__body p { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.7; color: var(--indigo-500); text-wrap: pretty; }
.coaching-intro__thesis { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 20px; line-height: 1.5; color: var(--amber-700); margin: 0 auto 44px; max-width: 600px; text-wrap: balance; letter-spacing: 0.1px; }
@media (max-width: 767px) {
  .coaching-intro { padding: 64px 20px; }
  .coaching-intro__eyebrow { margin-bottom: 24px; }
  .coaching-intro__body { gap: 18px; margin-bottom: 32px; }
  .coaching-intro__body p { font-size: 15px; }
  .coaching-intro__thesis { font-size: 17px; margin: 0 auto 36px; }
}

.coaching-audience { background: var(--sage-100); padding: 96px 32px; border-top: 1px solid var(--sage-200); }
.coaching-audience__inner { max-width: 1120px; margin: 0 auto; }
.coaching-audience__overline { display: block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--sage-700); text-align: center; max-width: 480px; margin: 0 auto 56px; }
.coaching-audience__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: stretch; }

/* Card A */
.aud-card--a { background: var(--parchment-lift); border-top: 3px solid var(--sage-500); border-left: 1px solid var(--parchment-border); border-right: 1px solid var(--parchment-border); border-bottom: 1px solid var(--parchment-border); border-radius: 10px; padding: 36px; height: 100%; display: flex; flex-direction: column; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(30,26,58,0.04); }
.aud-card--a:hover { border-left-color: var(--sage-500); border-right-color: var(--sage-500); border-bottom-color: var(--sage-500); transform: translateY(-4px); box-shadow: 0 12px 40px rgba(20,110,99,0.12); }

/* Card B — gradient border wrapper + prismatic wash */
/* Rest: rainbow only on the top 3px strip; the other three sides sit at parchment-border
   (mirrors Card A's permanent top accent). Hover: full rainbow perimeter lights up. */
.aud-card--b { background: linear-gradient(90deg, var(--sage-300) 0%, var(--rose-300) 35%, var(--amber-300) 70%, var(--indigo-200) 100%) top / 100% 3px no-repeat, var(--parchment-border); padding: 3px 1.5px 1.5px 1.5px; border-radius: 11.5px; height: 100%; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(176,38,125,0.05); }
.aud-card--b:hover { background: linear-gradient(135deg, var(--sage-400) 0%, var(--rose-400) 35%, var(--amber-400) 70%, var(--indigo-200) 100%); transform: translateY(-4px); box-shadow: 0 12px 40px rgba(176,38,125,0.14); }
.aud-card__b-inner { background: var(--parchment-lift); border-radius: 10px; padding: 36px; position: relative; overflow: hidden; height: 100%; display: flex; flex-direction: column; }
.aud-card__wash { position: absolute; inset: 0; opacity: 0.14; pointer-events: none; background-image: radial-gradient(circle at 15% 20%, var(--sage-300) 0%, transparent 40%), radial-gradient(circle at 85% 30%, var(--rose-300) 0%, transparent 45%), radial-gradient(circle at 70% 85%, var(--amber-300) 0%, transparent 40%), radial-gradient(circle at 20% 80%, var(--indigo-200) 0%, transparent 45%); }
.aud-card__b-body { position: relative; z-index: 1; display: flex; flex-direction: column; height: 100%; }

/* Shared card internals — left-aligned (card internals never centered) */
.aud-card__pill { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--parchment); background: var(--sage-500); padding: 4px 12px; border-radius: 100px; align-self: flex-start; margin-bottom: 20px; }
.aud-card__h3 { font-family: var(--font-display); font-weight: 600; font-size: 26px; line-height: 1.2; color: var(--indigo); margin-bottom: 24px; letter-spacing: -0.005px; }
.aud-card__list { padding: 0; margin: 0; flex: 1; list-style: none; }
.aud-bullet { font-family: var(--font-body); font-weight: 400; font-size: 15px; line-height: 1.65; color: var(--indigo-500); margin-bottom: 16px; padding-left: 20px; position: relative; list-style: none; text-wrap: pretty; }
.aud-bullet::before { content: ""; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--sage-500); }
.aud-bullet--gradient::before { background: linear-gradient(135deg, var(--sage-400), var(--rose-400), var(--amber-400)); }
.aud-bullet strong { font-weight: 600; color: var(--indigo); }
.aud-card__closing { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 17px; line-height: 1.4; color: var(--rose-500); padding-top: 22px; margin-top: 18px; border-top: 1px solid rgba(176,38,125,0.18); margin-bottom: 0; } /* left-aligned per pre-made decision (textAlign:center removed) */

@media (max-width: 768px) {
  .coaching-audience { padding: 64px 20px; }
  .coaching-audience__overline { margin-bottom: 40px; }
  .coaching-audience__grid { grid-template-columns: 1fr; gap: 24px; }
  .aud-card--a, .aud-card__b-inner { padding: 28px 24px; }
  .aud-card__h3 { font-size: 22px; margin-bottom: 20px; }
  .aud-bullet { font-size: 14.5px; margin-bottom: 14px; }
  .aud-bullet::before { top: 7px; }
  .aud-card__closing { font-size: 16px; padding-top: 18px; margin-top: 14px; }
}

/* ── Working together (Partnership — 4 service cards) ── */
.coaching-partner { background: var(--parchment); padding: 96px 32px; }
.coaching-partner__inner { max-width: 1120px; margin: 0 auto; }
.coaching-partner__overline { display: block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--sage-700); text-align: center; max-width: 480px; margin: 0 auto 56px; }
.coaching-partner__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }

.svc-card { background: var(--sage-100); border-top: 3px solid var(--sage-500); border-left: 1px solid var(--sage-200); border-right: 1px solid var(--sage-200); border-bottom: 1px solid var(--sage-200); border-radius: 12px; padding: 36px 32px; height: 100%; display: flex; flex-direction: column; transition: all 0.35s ease; box-shadow: 0 4px 12px rgba(20,110,99,0.06); }
.svc-card:hover { border-left-color: var(--sage-500); border-right-color: var(--sage-500); border-bottom-color: var(--sage-500); transform: translateY(-4px); box-shadow: 0 16px 40px rgba(20,110,99,0.18); }
.svc-card__h3 { font-family: var(--font-display); font-weight: 700; font-size: 24px; line-height: 1.25; letter-spacing: -0.01px; color: var(--indigo-500); margin-bottom: 14px; }
.svc-card__body { font-family: var(--font-body); font-weight: 400; font-size: 15px; line-height: 1.7; color: var(--indigo-500); margin-bottom: 20px; }
.svc-card__body p + p { margin-top: 14px; }
.svc-card__body em { font-style: italic; }
.svc-card__outcome { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--sage-300); }
.svc-card__outcome-label { display: block; font-family: var(--font-body); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--sage-700); margin-bottom: 8px; }
.svc-card__outcome-text { font-family: var(--font-display); font-weight: 500; font-style: italic; font-size: 15px; line-height: 1.5; color: var(--indigo-500); }

@media (max-width: 768px) {
  .coaching-partner { padding: 64px 20px; }
  .coaching-partner__overline { margin-bottom: 40px; }
  .coaching-partner__grid { grid-template-columns: 1fr; gap: 20px; }
  .svc-card { padding: 28px 24px; }
  .svc-card__h3 { font-size: 20px; }
}

/* ── Want to know more (two-column deep links) ── */
.coaching-more { background: var(--parchment); padding: 96px 32px; }
.coaching-more__inner { max-width: 1120px; margin: 0 auto; }
.coaching-more__overline { display: block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--sage-700); text-align: center; max-width: 480px; margin: 0 auto 72px; }
.coaching-more__grid { display: grid; grid-template-columns: 1fr 1px 1fr; align-items: center; justify-items: center; gap: 0; }

/* Shared "Want to know more" deep links — one rule, accent varies by page
   (--deeplink-* set under .page-{slug}). .wtkm-divider shared across pages. */
.wtkm-divider { width: 1px; height: 56px; background: var(--deeplink-divider); justify-self: center; }
.deep-link { text-decoration: none; font-family: var(--font-display); font-weight: 600; font-size: 30px; line-height: 1.2; letter-spacing: -0.012px; color: var(--indigo-500); white-space: nowrap; transition: color 0.25s ease; }
.deep-link:hover { color: var(--deeplink-hover); }
.deep-link__arrow { display: inline-block; margin-left: 8px; color: var(--deeplink-arrow); transition: transform 0.25s ease; }
.deep-link:hover .deep-link__arrow { transform: translateX(6px); }

@media (max-width: 768px) {
  .coaching-more { padding: 64px 20px; }
  .coaching-more__overline { margin-bottom: 48px; }
  .coaching-more__grid { display: flex; flex-direction: column; gap: 36px; }
  .wtkm-divider { display: none; }
  .deep-link { font-size: 24px; }
}

/* ── Closing CTA ── CANONICAL ClosingCTA (Speaking/Homepage/About/Thinking inherit) ── */
.closing-cta { background: var(--rose-500); padding: 80px 32px; position: relative; overflow: hidden; }
.closing-cta__depth { position: absolute; inset: 0; opacity: 0.08; pointer-events: none; background-image: radial-gradient(circle at 30% 100%, var(--indigo) 0%, transparent 50%), radial-gradient(circle at 70% 0%, var(--parchment) 0%, transparent 40%); }
.closing-cta__inner { max-width: 720px; margin: 0 auto; text-align: center; position: relative; }
.closing-cta__h2 { font-family: var(--font-display); font-weight: 700; font-size: 32px; line-height: 1.2; letter-spacing: -0.014px; color: var(--parchment); margin-bottom: 16px; text-wrap: balance; }
.closing-cta__sub { font-family: var(--font-body); font-weight: 400; font-size: 16px; line-height: 1.7; color: rgba(247,242,234,0.8); max-width: 560px; margin: 0 auto 36px; text-wrap: pretty; }
/* Closing CTA uses the canonical .btn-primary--rose (see shared button block). */

@media (max-width: 768px) {
  .closing-cta { padding: 64px 20px; }
  .closing-cta__h2 { font-size: 26px; }
  .closing-cta__sub { font-size: 15px; }
}
