
/* =====================================================================
   Feelings Counseling & Coaching Services, PLLC
   Homepage preview v3: the current homepage, in its own order and words,
   modernized. fc-kit.css: every rule is prefixed fc- or fcb- (no Divi selectors).
   Fonts: Fraunces (display) + Figtree (body), linked by the integration.
   Palette: neutral and warm. No pink, rose or blush anywhere.
   Motion: every animation is gated by html[data-fc-motion="on"], which
   fc-kit.js sets (off for reduced motion or Save-Data unless the visitor
   turns it on). Without JavaScript the attribute is absent, so the page
   is static and complete (every slide shown, stacked).
   ===================================================================== */

/* ---------- 1. Tokens ---------- */
:root:not(#fc-wp-boost) {
  --fc-paper: #F7F1E8;
  --fc-card: #FFFCF7;
  --fc-ink: #24213D;
  --fc-ink-soft: #4A4760;
  --fc-purple: #3A3282;
  --fc-purple-deep: #2A2366;
  --fc-mist: #E1EAF0;            /* blue mist: utility row, header, hero sky */
  --fc-blue-mist: #E1EAF0;
  --fc-sage-mist: #E4EADF;
  --fc-sand: #F3E4C6;
  --fc-gold: #F8D9A6;
  --fc-morning: #FBF2E1;
  --fc-night: #1C1A36;
  --fc-night-2: #26244A;
  --fc-slate: #6C7390;
  --fc-cream: #FBF6EE;
  --fc-lime: #C8DA3C;
  --fc-sun: #F1A434;
  --fc-sky: #63CBE1;
  --fc-turq: #30B2C9;
  --fc-sage: #8FA88A;
  --fc-sage-deep: #44604A;
  --fc-bronze: #83561A;          /* labels and eyebrows on light (5.6:1 on Paper) */
  --fc-blue-deep: #2F5470;
  --fc-muted-blue: #7F9BB8;

  --fc-line: rgba(36, 33, 61, .12);
  --fc-line-night: rgba(251, 246, 238, .14);
  --fc-shadow: 0 1px 2px rgba(36, 33, 61, .05), 0 14px 34px -16px rgba(36, 33, 61, .22);
  --fc-shadow-lg: 0 2px 6px rgba(36, 33, 61, .05), 0 28px 56px -24px rgba(36, 33, 61, .32);

  --fc-serif: "Fraunces", "fc-fraunces-fallback", Georgia, "Times New Roman", serif;
  --fc-sans: "Figtree", "fc-figtree-fallback", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  --fc-gutter: 16px;
  --fc-ease-out: cubic-bezier(.22, .61, .36, 1);
  --fc-ease-in-out: cubic-bezier(.65, 0, .35, 1);

  --fc-ease-cine: cubic-bezier(.16, .84, .3, 1);       /* words settling (hero) */
  --fc-ease-dissolve: cubic-bezier(.45, 0, .2, 1);    /* photo cross-dissolve (hero) */
  --fc-ease-in: cubic-bezier(.55, 0, .75, .2);        /* things leaving (deck) */

  /* the stage shape shared by the hero, the break-up deck and the scheduling finale */
  --fc-stage-inset: 8px;
  --fc-stage-radius: 28px;
  --fc-stage-shadow: 0 2px 6px rgba(28, 26, 54, .08), 0 30px 60px -36px rgba(28, 26, 54, .55);
  /* the deck card's finish, for cards on light grounds (Services, Why choose, Compare, client notes) */
  --fc-card-radius: 24px;
  --fc-shadow-card: 0 1px 2px rgba(36, 33, 61, .05), 0 2px 6px rgba(36, 33, 61, .04), 0 28px 48px -30px rgba(36, 33, 61, .42);
}
@media (min-width: 600px) { :root:not(#fc-wp-boost) { --fc-gutter: 24px; --fc-stage-inset: 16px; --fc-stage-radius: 36px; } }
@media (min-width: 1024px) { :root:not(#fc-wp-boost) { --fc-gutter: 40px; --fc-stage-inset: 24px; --fc-stage-radius: 40px; } }

/* Metric-matched fallbacks keep layout shift near zero while the web fonts load */
@font-face { font-family: "fc-fraunces-fallback"; src: local("Georgia"); size-adjust: 103%; ascent-override: 94%; descent-override: 24%; line-gap-override: 0%; }
@font-face { font-family: "fc-figtree-fallback"; src: local("Arial"); size-adjust: 98%; ascent-override: 96%; descent-override: 26%; line-gap-override: 0%; }

/* ---------- 2. Base (scoped) ---------- */
/* color-scheme "light dark" (2026-10-11): browsers that force-darken pages (Chrome/Edge auto dark mode, some phone
   browsers) leave a page alone once it declares a dark scheme of its own; with plain "light" they inverted the whole
   page (his son's laptop in dark mode). Tested: forced dark 82% of the screen changed before, 0.3% after; normal dark
   mode unchanged (0.3%, the art in motion), the e-book form unchanged. The page still paints its own light colors. */
html:has(.fc-page):not(#fc-wp-boost) { scroll-padding-top: 72px; color-scheme: light dark; }
/* --fc-head-h: the sticky header's height once condensed (what anchors and sticky parts must clear). 60 px; from
   1180 px, with the menu as its own row under the logo row (2026-10-10, his own site menu), 56 + 48 = 104 px */
:root:not(#fc-wp-boost) { --fc-head-h: 60px; }
@media (min-width: 1180px) { :root:not(.fc-nav-compact):not(#fc-wp-boost) { --fc-head-h: 104px; } }
@media (min-width: 768px) { html:has(.fc-page):not(#fc-wp-boost) { scroll-padding-top: calc(var(--fc-head-h) + 32px); } }
@media (max-width: 767.98px) { html:has(.fc-page):not(#fc-wp-boost) { scroll-padding-bottom: 88px; } }
/* smooth scrolling of in-page links with Motion on, only once the page has landed (fc-kit.js section 3a adds
   html.fc-smooth): never on the way in, so an address with a #target lands at once instead of a long smooth scroll
   that a late font swap then leaves short of or past its target (2026-10-11); html.fc-landing keeps the content
   unpainted until that single landing (fc-boot.js; at most 1.2 s) */
html.fc-smooth[data-fc-motion="on"]:has(.fc-page):not(#fc-wp-boost) { scroll-behavior: smooth; }
html.fc-js.fc-landing .fc-main:not(#fc-wp-boost) { visibility: hidden; }
body:has(.fc-page):not(#fc-wp-boost) { margin: 0; background: var(--fc-paper); }

.fc-page:not(#fc-wp-boost) {
  position: relative;
  overflow-x: clip;
  background-color: var(--fc-paper);
  color: var(--fc-ink);
  font-family: var(--fc-sans);
  font-size: 17px;
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
@media (min-width: 768px) { .fc-page:not(#fc-wp-boost) { font-size: 18px; } }
/* Resets use :where() so they carry element-level weight only; every component class wins over them. */
:where(.fc-page) *:not(#fc-wp-boost), :where(.fc-page) *:not(#fc-wp-boost)::before, :where(.fc-page) *:not(#fc-wp-boost)::after { box-sizing: border-box; }
:where(.fc-page) :where(h1, h2, h3, h4, h5):not(#fc-wp-boost) { margin: 0; font-weight: inherit; }
:where(.fc-page) p:not(#fc-wp-boost) { margin: 0 0 .9em; }
:where(.fc-page) img:not(#fc-wp-boost) { max-width: 100%; }
:where(.fc-page) a:not(#fc-wp-boost) { color: var(--fc-purple); text-underline-offset: 3px; text-decoration-thickness: 1px; }
:where(.fc-page) a:hover:not(#fc-wp-boost) { text-decoration-style: wavy; text-decoration-thickness: 1px; }
:where(.fc-page) button:not(#fc-wp-boost) { font-family: inherit; }
:where(.fc-page) strong:not(#fc-wp-boost) { font-weight: 700; }
:where(.fc-page) :where(figure, blockquote):not(#fc-wp-boost) { margin: 0; }
:where(.fc-page) address:not(#fc-wp-boost) { font-style: normal; }
.fc-page .fc-img-missing:not(#fc-wp-boost) { visibility: hidden; }
.fc-page [hidden]:not(#fc-wp-boost) { display: none !important; }

.fc-serif:not(#fc-wp-boost), .fc-h1:not(#fc-wp-boost), .fc-h2:not(#fc-wp-boost), .fc-h3:not(#fc-wp-boost), .fc-h4:not(#fc-wp-boost), .fc-h5:not(#fc-wp-boost), .fc-kicker:not(#fc-wp-boost) {
  font-variation-settings: "SOFT" 50, "WONK" 0;
}

.fc-sr:not(#fc-wp-boost) {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.fc-wrap:not(#fc-wp-boost) { width: min(1200px, calc(100% - 2 * var(--fc-gutter))); margin-inline: auto; }
.fc-nowrap:not(#fc-wp-boost) { white-space: nowrap; }
/* standalone text links get a 44 px tap target on phones and touch screens (the visible text is unchanged) */
/* (an inline block, not a flex box: a flex box would drop the space before a nested span, "All common questions") */
@media (max-width: 767.98px), (pointer: coarse) { .fc-page .fc-tap:not(#fc-wp-boost) { display: inline-block; min-height: 44px; padding-block: 11px; } }
.fc-sec:not(#fc-wp-boost) { position: relative; padding-block: 56px; }
@media (min-width: 600px) { .fc-sec:not(#fc-wp-boost) { padding-block: 72px; } }
@media (min-width: 1024px) { .fc-sec:not(#fc-wp-boost) { padding-block: 104px; } }

/* ---------- 3. Focus: the ripple ring ---------- */
.fc-page :focus:not(#fc-wp-boost) { outline: none; }
.fc-page :focus-visible:not(#fc-wp-boost), .fc-skip:focus-visible:not(#fc-wp-boost) {
  outline: 2px solid var(--fc-ink);
  outline-offset: 2px;
  box-shadow: 0 0 0 6px rgba(241, 164, 52, .45);
}
html[data-fc-motion="on"] .fc-page :focus-visible:not(#fc-wp-boost) { animation: fc-halo .25s var(--fc-ease-out); }
.fc-page .fc-night :focus-visible:not(#fc-wp-boost), .fc-page .fc-follow :focus-visible:not(#fc-wp-boost), .fc-page .fc-wcard--cta :focus-visible:not(#fc-wp-boost) {
  outline-color: var(--fc-lime);
  box-shadow: 0 0 0 6px rgba(200, 218, 60, .28);
}
.fc-main:focus:not(#fc-wp-boost) { outline: none; }
@keyframes fc-halo { from { box-shadow: 0 0 0 2px rgba(241, 164, 52, .45); } to { box-shadow: 0 0 0 6px rgba(241, 164, 52, .45); } }

.fc-skip:not(#fc-wp-boost) {
  position: absolute; left: 12px; top: -120px; z-index: 200;
  box-sizing: border-box; min-height: 44px; padding: 12px 20px; border-radius: 999px;
  background: #24213D; color: #FBF6EE;
  font: 600 16px/1.2 "Figtree", system-ui, sans-serif; text-decoration: none;
}
.fc-skip:focus:not(#fc-wp-boost) { top: 12px; }

/* ---------- 4. Type ---------- */
.fc-eyebrow:not(#fc-wp-boost) {
  font: 600 12px/1.3 var(--fc-sans);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--fc-bronze);
  margin: 0 0 14px;
}
@media (min-width: 768px) { .fc-eyebrow:not(#fc-wp-boost) { font-size: 13px; } }

.fc-h2:not(#fc-wp-boost) {
  font-family: var(--fc-serif);
  font-weight: 400;
  font-size: clamp(2rem, 1.35rem + 2.2vw, 3rem);
  line-height: 1.13;
  letter-spacing: -.015em;
  color: var(--fc-ink);
  text-wrap: balance;
}
.fc-h2 em:not(#fc-wp-boost), .fc-h3 em:not(#fc-wp-boost) { font-style: italic; color: var(--fc-purple); }
.fc-h3:not(#fc-wp-boost) {
  font-family: var(--fc-serif);
  font-weight: 600;
  font-size: clamp(1.3125rem, 1.1rem + .7vw, 1.625rem);
  line-height: 1.24;
  letter-spacing: -.005em;
  color: var(--fc-ink);
  text-wrap: balance;
}
.fc-h4:not(#fc-wp-boost) { font-family: var(--fc-serif); font-weight: 600; font-size: 1.2rem; line-height: 1.3; color: var(--fc-ink); margin: 1.2em 0 .45em; }
.fc-kicker:not(#fc-wp-boost) {
  font-family: var(--fc-serif);
  font-style: normal;
  font-weight: 400;
  font-size: clamp(1.1875rem, 1.05rem + .5vw, 1.4375rem);
  line-height: 1.38;
  color: var(--fc-ink-soft);
  margin: 16px 0 0;
}
.fc-lead:not(#fc-wp-boost) { font-size: 1.1em; line-height: 1.6; color: var(--fc-ink-soft); max-width: 62ch; margin: 18px 0 0; }
.fc-small:not(#fc-wp-boost) { font-size: 16.5px; line-height: 1.5; color: var(--fc-ink-soft); }   /* was 15 px; his big-text rule (final review 2026-10-07) */
.fc-micro:not(#fc-wp-boost) { font-size: 15px; line-height: 1.5; color: var(--fc-ink-soft); margin: 16px 0 0; }
.fc-sechead:not(#fc-wp-boost) { max-width: 860px; margin: 0 0 32px; }
@media (min-width: 600px) { .fc-sechead:not(#fc-wp-boost) { margin-bottom: 40px; } }
@media (min-width: 1024px) { .fc-sechead:not(#fc-wp-boost) { margin-bottom: 52px; } }
.fc-sechead--center:not(#fc-wp-boost) { text-align: center; margin-inline: auto; }
.fc-sechead--center .fc-lead:not(#fc-wp-boost) { margin-inline: auto; }
.fc-dot:not(#fc-wp-boost) { margin: 0 10px; color: var(--fc-ink-soft); }

/* the gold mark above every section heading: the hero's light ring and line (one family with the sliders' lower
   thirds). Sun on light grounds, Gold Glow on Night. Drawn once when the heading comes into view (Motion on);
   static with Motion off and without JavaScript. */
.fc-mark:not(#fc-wp-boost) { display: flex; align-items: center; gap: 10px; width: 72px; height: 14px; margin: 0 0 18px; }
.fc-mark:not(#fc-wp-boost)::before { content: ""; flex: none; width: 11px; height: 11px; border-radius: 50%; border: 1.5px solid var(--fc-sun); box-shadow: 0 0 10px rgba(241, 164, 52, .35); }
.fc-mark i:not(#fc-wp-boost) { flex: 1; height: 1.5px; background: linear-gradient(90deg, var(--fc-sun), rgba(241, 164, 52, 0)); transform-origin: 0 50%; }
/* centred headings: a line on each side of the ring */
.fc-mark--c:not(#fc-wp-boost) { margin-inline: auto; width: 96px; }
.fc-mark--c i:not(#fc-wp-boost) { order: -1; background: linear-gradient(90deg, rgba(241, 164, 52, 0), var(--fc-sun)); transform-origin: 100% 50%; }
.fc-mark--c:not(#fc-wp-boost)::after { content: ""; order: 1; flex: 1; height: 1.5px; background: linear-gradient(90deg, var(--fc-sun), rgba(241, 164, 52, 0)); transform-origin: 0 50%; }
.fc-mark--night:not(#fc-wp-boost)::before { border-color: var(--fc-gold); box-shadow: 0 0 10px rgba(241, 164, 52, .55); }
.fc-mark--night i:not(#fc-wp-boost) { background: linear-gradient(90deg, rgba(248, 217, 166, 0), var(--fc-gold)); }
.fc-mark--night:not(#fc-wp-boost)::after { background: linear-gradient(90deg, var(--fc-gold), rgba(248, 217, 166, 0)); }
@media (min-width: 1024px) { .fc-mark:not(#fc-wp-boost) { margin-bottom: 22px; } }

/* ---------- 5. Buttons, links, badges, pause pills, cards ---------- */
.fc-btn:not(#fc-wp-boost) {
  --fc-btn-bg: var(--fc-purple);
  --fc-btn-bg-hover: var(--fc-purple-deep);
  --fc-btn-fg: var(--fc-card);
  --fc-btn-sh: var(--fc-sun);
  --fc-btn-glow: rgba(241, 164, 52, .55);
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 28px;
  border: 2px solid transparent; border-radius: 999px;
  background: var(--fc-btn-bg); color: var(--fc-btn-fg);
  font: 600 17px/1.2 var(--fc-sans); letter-spacing: .005em;
  text-align: center; text-decoration: none; cursor: pointer; text-wrap: balance;
  box-shadow: 0 4px 0 0 var(--fc-btn-sh), 0 14px 26px -12px var(--fc-btn-glow);
  transition: transform .2s var(--fc-ease-out), box-shadow .2s var(--fc-ease-out), background-color .2s;
  -webkit-tap-highlight-color: transparent;
}
.fc-page a.fc-btn:not(#fc-wp-boost), .fc-page a.fc-btn:hover:not(#fc-wp-boost) { color: var(--fc-btn-fg); text-decoration: none; }
.fc-btn:hover:not(#fc-wp-boost) { background: var(--fc-btn-bg-hover); transform: translateY(-2px); box-shadow: 0 6px 0 0 var(--fc-btn-sh), 0 18px 30px -12px var(--fc-btn-glow); }
.fc-btn:active:not(#fc-wp-boost) { transform: translateY(2px); box-shadow: 0 2px 0 0 var(--fc-btn-sh), 0 8px 16px -10px var(--fc-btn-glow); }
.fc-btn--lg:not(#fc-wp-boost) { min-height: 56px; padding: 0 32px; font-size: 18px; }
.fc-btn--sm:not(#fc-wp-boost) { min-height: 44px; padding: 0 20px; font-size: 16px; box-shadow: 0 3px 0 0 var(--fc-btn-sh), 0 10px 20px -12px var(--fc-btn-glow); }
.fc-btn--sm:hover:not(#fc-wp-boost) { box-shadow: 0 5px 0 0 var(--fc-btn-sh), 0 14px 24px -12px var(--fc-btn-glow); }
.fc-btn--block:not(#fc-wp-boost) { display: flex; width: 100%; }
.fc-btn--sun:not(#fc-wp-boost) { --fc-btn-bg: var(--fc-sun); --fc-btn-bg-hover: #F6B557; --fc-btn-fg: var(--fc-night); --fc-btn-sh: #C77F16; --fc-btn-glow: rgba(241, 164, 52, .32); }
.fc-btn--ghost:not(#fc-wp-boost) { background: transparent; color: var(--fc-purple); box-shadow: none; border: 1.5px solid var(--fc-purple); }
.fc-btn--ghost:hover:not(#fc-wp-boost) { background: rgba(58, 50, 130, .07); box-shadow: none; }
.fc-page a.fc-btn--ghost:not(#fc-wp-boost), .fc-page a.fc-btn--ghost:hover:not(#fc-wp-boost) { color: var(--fc-purple); }
.fc-btn--ghostnight:not(#fc-wp-boost) { background: transparent; color: var(--fc-cream); box-shadow: none; border: 1.5px solid rgba(251, 246, 238, .55); }
.fc-btn--ghostnight:hover:not(#fc-wp-boost) { background: rgba(251, 246, 238, .08); box-shadow: none; border-color: var(--fc-cream); }
.fc-btn--ghostnight[aria-disabled="true"]:not(#fc-wp-boost) { opacity: .45; cursor: default; transform: none; background: transparent; border-color: rgba(251, 246, 238, .55); }
@media (max-width: 599.98px) { .fc-btn:not(#fc-wp-boost) { white-space: normal; } }
/* the newsletter button waits, disabled, for fc-kit.js (so the preview form can never send anything) */
.fc-btn[disabled]:not(#fc-wp-boost) { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }
.fc-nojs:not(#fc-wp-boost) { display: none; }
html:not(.fc-js) .fc-nojs:not(#fc-wp-boost) { display: block; margin: 10px 0 0; }

.fc-textlink:not(#fc-wp-boost) {
  color: var(--fc-purple); font-weight: 600;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
}
.fc-textlink:hover:not(#fc-wp-boost) { text-decoration-style: wavy; }
.fc-textlink--strong:not(#fc-wp-boost) { font-size: 1.02em; }

/* icon badge: a soft tinted tile with a line icon (one tint per meaning) */
.fc-badge:not(#fc-wp-boost) {
  display: grid; place-items: center; flex: none; width: 54px; height: 54px; border-radius: 17px;
  background: var(--fc-badge-bg, var(--fc-paper)); color: var(--fc-badge-fg, var(--fc-purple));
  box-shadow: inset 0 0 0 1px rgba(36, 33, 61, .06);
}
.fc-badge svg:not(#fc-wp-boost) { width: 27px; height: 27px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.fc-badge .fc-badge__dot:not(#fc-wp-boost) { fill: currentColor; stroke: none; }
.fc-badge--purple:not(#fc-wp-boost) { --fc-badge-bg: #E7E5F4; --fc-badge-fg: var(--fc-purple); }
.fc-badge--sun:not(#fc-wp-boost) { --fc-badge-bg: #FBEBCB; --fc-badge-fg: #7A4E0E; }
.fc-badge--sky:not(#fc-wp-boost) { --fc-badge-bg: #DCF0F5; --fc-badge-fg: #1D6676; }
.fc-badge--sage:not(#fc-wp-boost) { --fc-badge-bg: #E0E9DC; --fc-badge-fg: var(--fc-sage-deep); }
.fc-badge--lime:not(#fc-wp-boost) { --fc-badge-bg: #EDF3C4; --fc-badge-fg: #4E5A14; }

/* Pause pills (local motion control, one per 3D stage) */
.fc-pause:not(#fc-wp-boost) {
  display: inline-flex; align-items: center; gap: 9px;
  min-height: 44px; padding: 0 16px 0 12px; border-radius: 999px;
  border: 1px solid var(--fc-line); background: rgba(255, 252, 247, .92); color: var(--fc-ink);
  font: 600 14.5px/1 var(--fc-sans); cursor: pointer;
  box-shadow: 0 6px 16px -10px rgba(36, 33, 61, .45);
}
.fc-pause:hover:not(#fc-wp-boost) { background: #fff; }
.fc-pause__icon:not(#fc-wp-boost) { position: relative; width: 14px; height: 14px; flex: none; }
.fc-pause__icon:not(#fc-wp-boost)::before, .fc-pause__icon:not(#fc-wp-boost)::after { content: ""; position: absolute; top: 1px; bottom: 1px; width: 4px; border-radius: 2px; background: currentColor; }
.fc-pause__icon:not(#fc-wp-boost)::before { left: 2px; }
.fc-pause__icon:not(#fc-wp-boost)::after { right: 2px; }
.fc-pause.fc-is-paused .fc-pause__icon:not(#fc-wp-boost)::after { display: none; }
.fc-pause.fc-is-paused .fc-pause__icon:not(#fc-wp-boost)::before {
  left: 3px; top: 0; bottom: 0; width: 0; border-radius: 0; background: none;
  border-left: 11px solid currentColor; border-top: 7px solid transparent; border-bottom: 7px solid transparent;
}
.fc-pause--night:not(#fc-wp-boost) { background: rgba(38, 36, 74, .9); color: var(--fc-cream); border-color: rgba(251, 246, 238, .25); box-shadow: none; }
.fc-pause--night:hover:not(#fc-wp-boost) { background: var(--fc-night-2); border-color: var(--fc-cream); }
html:not(.fc-js) .fc-pause:not(#fc-wp-boost) { display: none; }
/* Hero art replays (kit 2.0.7, fc-kit.js section 13b): once a hero one-shot has played, its pill stays and says "Play
   again" (.fc-is-again). Each piece hides its pill with .is-still when nothing is left to play (0,4,0); this outranks
   that in this one state. Save-Data, late page scripts, forced colours and print still remove the pill (display: none,
   in the piece CSS and section 25). The replay icon: an open ring with an arrowhead, drawn in the same 14 px box. Each
   mark keeps the top left corner of the pause bar it replaces (only its size, borders and transform change), so the
   change of icon is not a layout shift; 13b centres the icon and words in the pinned width with --fc-again-x. */
html.fc-js .fcp-page .fc-pause.fc-is-again[data-fc-pause]:not(#fc-wp-boost) { opacity: 1; visibility: visible; transition: opacity .3s ease, visibility 0s; }
.fc-pause.fc-is-again .fc-pause__icon:not(#fc-wp-boost)::before {
  bottom: auto; width: 12px; height: 12px; box-sizing: border-box; border-radius: 50%; background: none;
  border: 2px solid currentColor; border-top-color: transparent; transform: translateX(-1px) rotate(45deg);
}
.fc-pause.fc-is-again .fc-pause__icon:not(#fc-wp-boost)::after {
  left: 8px; right: auto; bottom: auto; width: 0; height: 0; box-sizing: border-box; border-radius: 0; background: none;
  border-left: 6px solid currentColor; border-top: 4px solid transparent; border-bottom: 4px solid transparent;
  transform: translate(-2px, -3px);
}
.fc-pause.fc-is-again > .fc-pause__icon:not(#fc-wp-boost), .fc-pause.fc-is-again > .fc-pause__label:not(#fc-wp-boost) { transform: translateX(var(--fc-again-x, 0px)); }
/* One artwork held still by its own pill (fc-kit.js section 1; 2026-10-12, his decision: no site-wide Motion switch
   any more, each moving piece keeps its own pause, WCAG 2.2.2). The pill's piece ([data-fc-hold] or its figure) gets
   .fc-is-held: its CSS animations pause where they are (its videos are paused by the script), nothing else on the
   page changes; "Play motion" lets them go on. For this page view only: nothing is stored. */
.fc-is-held:not(#fc-wp-boost), .fc-is-held:not(#fc-wp-boost)::before, .fc-is-held:not(#fc-wp-boost)::after,
.fc-is-held *:not(#fc-wp-boost), .fc-is-held *:not(#fc-wp-boost)::before, .fc-is-held *:not(#fc-wp-boost)::after { animation-play-state: paused !important; }
/* Motion off (the reduced-motion setting or Save-Data): every artwork shows its still picture and nothing of it moves,
   so its pill goes (before 2026-10-12 it said "Play motion" and turned the site-wide switch on; there is no switch
   now, and the visitor's setting is respected) */
html[data-fc-motion="off"] .fc-pause[data-fc-pause]:not(#fc-wp-boost) { display: none !important; }

.fc-card:not(#fc-wp-boost) { background: var(--fc-card); border: 1px solid var(--fc-line); border-radius: 20px; box-shadow: var(--fc-shadow); }
/* the deck card's small gold ring seal, top right */
.fc-seal:not(#fc-wp-boost)::after {
  content: ""; position: absolute; right: 18px; top: 18px; width: 22px; height: 22px; border-radius: 50%; pointer-events: none;
  border: 1.5px solid rgba(241, 164, 52, .7); box-shadow: inset 0 0 0 4px var(--fc-card), inset 0 0 0 5.5px rgba(241, 164, 52, .45);
}
/* the cards' hover: a 2 px lift (fine pointer, Motion on) */
@media (pointer: fine) {
  html[data-fc-motion="on"] .fc-lift:not(#fc-wp-boost) { transition: translate .3s var(--fc-ease-out), box-shadow .3s var(--fc-ease-out); }
  html[data-fc-motion="on"] .fc-lift:hover:not(#fc-wp-boost) { translate: 0 -2px; }
}

/* ---------- 6. Sticky header, with the phone number and email in its logo row ---------- */
/* Kit 2.0.7, his request of 2026-10-11 ("instead of three layers and three lines", "call and info will be visible
   when people scroll down"): the utility row above the header is gone. The phone number and email are a small
   "Quick contact" list inside the sticky header, after the logo: from 1180 px on the logo row between the logo and
   "Book a free call" (still there once the header condenses), from 1024 px beside the Menu button, from 768 to
   1023 px the phone number only (the email is in the Menu drawer's foot, as before), and below 768 px neither: the
   phone header keeps the logo and Menu, the drawer's foot keeps "or call 832-549-2067" and the email, and the bottom
   booking bar keeps Call (2026-10-12: the Motion button is gone, so the logo starts the row at every width). Each link is at least 44 px tall; the icons are the bottom bar's phone and a
   drawn envelope on the menu's small round chip. */
.fc-hcontact:not(#fc-wp-boost) { display: none; }
@media (min-width: 768px) {
  .fc-hcontact:not(#fc-wp-boost) { display: block; flex: none; }
  .fc-hcontact__list:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 0 18px; }
  .fc-page .fc-hcontact__link:not(#fc-wp-boost) {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; white-space: nowrap;
    color: var(--fc-ink); font: 600 15px/1.2 var(--fc-sans); text-decoration: none;
  }
  .fc-page .fc-hcontact__link:hover:not(#fc-wp-boost) { color: var(--fc-purple); text-decoration: underline; text-underline-offset: 4px; }
  .fc-hcontact__icon:not(#fc-wp-boost) {
    flex: none; box-sizing: border-box; width: 30px; height: 30px; padding: 7px; border-radius: 50%;
    background: rgba(58, 50, 130, .075); fill: var(--fc-purple); transition: background-color .2s;
  }
  .fc-hcontact__icon--mail:not(#fc-wp-boost) { fill: none; stroke: var(--fc-purple); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
  .fc-hcontact__link:hover .fc-hcontact__icon:not(#fc-wp-boost) { background: rgba(58, 50, 130, .14); }
}
@media (min-width: 768px) and (max-width: 1023.98px) { .fc-hcontact__mail:not(#fc-wp-boost) { display: none; } }
/* when the row cannot hold them (a visitor's larger text spacing, WCAG 1.4.12, on a tablet), fc-kit.js sets
   html.fc-hcontact-off and they step aside; the Menu drawer's foot still has both (fc-kit.js section 2) */
html.fc-hcontact-off .fc-hcontact:not(#fc-wp-boost) { display: none; }
@media (forced-colors: active) { .fc-hcontact__icon:not(#fc-wp-boost) { background: none; } .fc-hcontact__icon--mail:not(#fc-wp-boost) { stroke: LinkText; } .fc-hcontact__icon:not(.fc-hcontact__icon--mail):not(#fc-wp-boost) { fill: LinkText; } }

.fc-header:not(#fc-wp-boost) {
  position: sticky; top: 0; z-index: 60;
  background: var(--fc-mist);
  transition: background-color .3s, box-shadow .3s;
}
.fc-header.fc-is-condensed:not(#fc-wp-boost) {
  background: rgba(247, 241, 232, .92);
  -webkit-backdrop-filter: saturate(1.15) blur(12px);
  backdrop-filter: saturate(1.15) blur(12px);
  box-shadow: 0 1px 0 var(--fc-line), 0 10px 26px -18px rgba(36, 33, 61, .45);
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { .fc-header.fc-is-condensed:not(#fc-wp-boost) { background: var(--fc-paper); } }
@media (prefers-reduced-transparency: reduce) { .fc-header.fc-is-condensed:not(#fc-wp-boost) { background: var(--fc-paper); -webkit-backdrop-filter: none; backdrop-filter: none; } }
.fc-header__in:not(#fc-wp-boost) { display: flex; align-items: center; gap: 10px; height: 60px; transition: height .25s var(--fc-ease-out), grid-template-rows .25s var(--fc-ease-out); }
@media (min-width: 768px) {
  .fc-header__in:not(#fc-wp-boost) { height: 76px; gap: 14px; }
  .fc-header.fc-is-condensed .fc-header__in:not(#fc-wp-boost) { height: 60px; }
  /* the row shrinks 16 px; the same 16 px goes below it, so nothing under the header moves (no layout shift) */
  .fc-header:not(#fc-wp-boost) { transition: background-color .3s, box-shadow .3s, margin-bottom .25s var(--fc-ease-out); }
  .fc-header.fc-is-condensed:not(#fc-wp-boost) { margin-bottom: 16px; }
}


.fc-logo:not(#fc-wp-boost) { flex: none; display: flex; align-items: center; min-height: 44px; margin-right: auto; text-decoration: none; }
.fc-logo__img:not(#fc-wp-boost) { display: block; height: 42px; width: auto; }
.fc-logo__img--mark:not(#fc-wp-boost) { display: none; height: 40px; }
.fc-header.fc-is-condensed .fc-logo__img--full:not(#fc-wp-boost) { display: none; }
.fc-header.fc-is-condensed .fc-logo__img--mark:not(#fc-wp-boost) { display: block; }
@media (min-width: 768px) {
  .fc-logo__img--full:not(#fc-wp-boost) { height: 56px; }
  .fc-logo__img--mark:not(#fc-wp-boost) { height: 44px; }
}

.fc-menubtn:not(#fc-wp-boost) {
  flex: none; display: inline-flex; align-items: center; gap: 10px;
  min-height: 44px; padding: 0 16px 0 14px; border-radius: 999px;
  border: 1px solid var(--fc-line); background: rgba(255, 252, 247, .85); color: var(--fc-ink);
  font: 600 15px/1 var(--fc-sans); cursor: pointer;
}
.fc-menubtn__bars:not(#fc-wp-boost) { position: relative; width: 18px; height: 12px; }
.fc-menubtn__bars:not(#fc-wp-boost)::before, .fc-menubtn__bars:not(#fc-wp-boost)::after { content: ""; position: absolute; left: 0; right: 0; height: 2px; border-radius: 2px; background: currentColor; transition: transform .25s, top .25s, bottom .25s; }
.fc-menubtn__bars:not(#fc-wp-boost)::before { top: 1px; }
.fc-menubtn__bars:not(#fc-wp-boost)::after { bottom: 1px; }
.fc-menubtn[aria-expanded="true"] .fc-menubtn__bars:not(#fc-wp-boost)::before { top: 5px; transform: rotate(45deg); }
.fc-menubtn[aria-expanded="true"] .fc-menubtn__bars:not(#fc-wp-boost)::after { bottom: 5px; transform: rotate(-45deg); }
html:not(.fc-js) .fc-menubtn:not(#fc-wp-boost) { display: none; }

.fc-header__book:not(#fc-wp-boost) { display: none; flex: none; }
@media (min-width: 768px) { .fc-header__book:not(#fc-wp-boost) { display: inline-flex; } }

/* ---------- 6b. "Book a free call": a soft light sweep (2026-10-12, his request: "so they know they can literally book
   an appointment") ----------
   The header's button (768 px and up) and the phone's bottom-bar button get one soft band of light that sweeps across
   them, left to right, in 1.1 s: first 3 s after the page opens (the bottom bar: 3 s after it slides in, each time it
   does), then every 9 s, four sweeps in all (about half a minute), then it rests, so the page is calm again and
   nothing keeps moving (WCAG 2.2.2). Only a transform and opacity on a pseudo-element inside the button's own rounded box (overflow:
   clip): no layout shift, nothing moves the button. The band (white, at most 22 %) is painted under the words
   (isolation; z-index -1 sits above the button's colour), so the words keep their contrast: cream on the brightest
   point of the band is still 5.5:1 (AA). It pauses and hides while the button is pointed at, focused or pressed
   (the button's own hover lift shows then). Only with JavaScript and Motion on: nothing with the reduced-motion
   setting, Save-Data (html[data-fc-motion="off"], section 24), forced colours or print. */
@keyframes fc-sheen {
  0% { transform: translateX(-120%) skewX(-20deg); opacity: 0; }
  2% { opacity: 1; }
  11% { opacity: 1; }
  12.5%, 100% { transform: translateX(290%) skewX(-20deg); opacity: 0; }
}
.fc-header__book:not(#fc-wp-boost), .fc-bbar__book:not(#fc-wp-boost) { position: relative; isolation: isolate; overflow: hidden; overflow: clip; }
.fc-header__book:not(#fc-wp-boost)::after, .fc-bbar__book:not(#fc-wp-boost)::after {
  content: ""; position: absolute; z-index: -1; top: -2px; bottom: -2px; left: 0; width: 38%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .22) 50%, rgba(255, 255, 255, 0));
  transform: translateX(-120%) skewX(-20deg); opacity: 0; pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
  html.fc-js[data-fc-motion="on"] .fc-header__book:not(#fc-wp-boost)::after { animation: fc-sheen 9s cubic-bezier(.45, .05, .35, 1) 3s 4 both; }
  html.fc-js[data-fc-motion="on"].fc-bbar-on .fc-bbar__book:not(#fc-wp-boost)::after { animation: fc-sheen 9s cubic-bezier(.45, .05, .35, 1) 3s 4 both; }
  html.fc-js .fc-header__book:is(:hover, :focus-visible, :active):not(#fc-wp-boost)::after,
  html.fc-js .fc-bbar__book:is(:hover, :focus-visible, :active):not(#fc-wp-boost)::after { animation-play-state: paused; visibility: hidden; }
}
@media (forced-colors: active) { .fc-header__book:not(#fc-wp-boost)::after, .fc-bbar__book:not(#fc-wp-boost)::after { display: none; } }
@media print { .fc-header__book:not(#fc-wp-boost)::after, .fc-bbar__book:not(#fc-wp-boost)::after { display: none; } }

/* Menus: shared. His own site menu (2026-10-10): plain links, and three links with a list (.fc-sub: Services,
   Workshops & Mindfulness, Blog). Each of the three is the link to its page plus a chevron button (aria-expanded,
   aria-controls) that opens its list. fc-kit.js (section 2, html.fc-sub-js) opens a list with the button (click,
   Enter, Space; ArrowDown also moves into it) and, from 1180 px with a mouse, on hover; Escape, a click elsewhere or
   focus leaving it closes it. Before the kit runs (no JavaScript, or the kit late) a list opens on hover and on
   keyboard focus (desktop); the phone list then shows only the eleven links (round 2: with all three lists open it
   was 1,532 px tall at 390 px; the hub pages list every page). */
.fc-nav__list:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; }
.fc-menu__links:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; }
.fc-page .fc-menu__links a:not(#fc-wp-boost) {
  display: flex; align-items: center; min-height: 44px; padding: 6px 12px; border-radius: 12px;
  color: var(--fc-ink); text-decoration: none; font-size: 16px; line-height: 1.35;
}
.fc-page .fc-menu__links a:hover:not(#fc-wp-boost) { background: var(--fc-paper); color: var(--fc-purple); text-decoration: none; }
.fc-sub__btn:not(#fc-wp-boost) {
  flex: none; display: inline-grid; place-items: center; width: 44px; height: 44px; margin: 0; padding: 0;
  border: 0; border-radius: 999px; background: transparent; color: var(--fc-ink); font: inherit; cursor: pointer;
}
.fc-sub__btn:not(#fc-wp-boost)::before {
  content: ""; width: 7px; height: 7px; margin-top: -4px;
  border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
  transform: rotate(45deg); transition: transform .2s, margin .2s;
}
.fc-sub.is-open > .fc-sub__btn:not(#fc-wp-boost)::before { transform: rotate(-135deg); margin-top: 4px; }
html:not(.fc-js) .fc-sub__btn:not(#fc-wp-boost) { display: none; }
.fc-sub__panel:not(#fc-wp-boost) { display: none; }
.fc-sub.is-open > .fc-sub__panel:not(#fc-wp-boost) { display: block; }
/* the search form (now only in the footer, .fc-search--night) */
.fc-search:not(#fc-wp-boost) { margin-top: 10px; padding: 10px 12px 4px; border-top: 1px solid var(--fc-line); }
.fc-search__label:not(#fc-wp-boost) { display: block; font: 600 14px/1.3 var(--fc-sans); margin-bottom: 6px; }
.fc-search__row:not(#fc-wp-boost) { display: flex; gap: 8px; }
.fc-search__row .fc-input:not(#fc-wp-boost) { min-height: 44px; }
.fc-search__btn:not(#fc-wp-boost) {
  flex: none; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--fc-purple);
  background: transparent; color: var(--fc-purple); font: 600 15px/1 var(--fc-sans); cursor: pointer;
}
.fc-search__btn:hover:not(#fc-wp-boost) { background: rgba(58, 50, 130, .07); }

/* Menus: desktop, from 1180 px. Two rows: the logo, the phone number and email, and "Book a free call" (76 px,
   56 px once condensed; kit 2.0.7: the phone number and email moved here from the utility row above, which is gone,
   so they stay on screen while the header sticks), then his menu across the full width (52 px, 48 px). Every link
   and button is at least 44 x 44 px. Only while the menu row
   fits: when it would not (a visitor's larger text spacing, WCAG 1.4.12, or a much wider fallback font), fc-kit.js
   sets html.fc-nav-compact and the header uses the Menu drawer below instead */
@media (min-width: 1180px) {
  html:not(.fc-nav-compact) .fc-menubtn:not(#fc-wp-boost) { display: none; }
  html:not(.fc-nav-compact) .fc-header__in:not(#fc-wp-boost) {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; grid-template-rows: 76px 52px;
    gap: 0 14px; height: auto; align-items: center;
  }
  html:not(.fc-nav-compact) .fc-header.fc-is-condensed .fc-header__in:not(#fc-wp-boost) { height: auto; grid-template-rows: 56px 48px; }
  /* the header shrinks 24 px when condensed; the same 24 px goes below it, so nothing under it moves */
  html:not(.fc-nav-compact) .fc-header.fc-is-condensed:not(#fc-wp-boost) { margin-bottom: 24px; }
  html:not(.fc-nav-compact) .fc-logo:not(#fc-wp-boost) { grid-area: 1 / 1; margin-right: 0; }
  html:not(.fc-nav-compact) .fc-hcontact:not(#fc-wp-boost) { grid-area: 1 / 3; margin-right: 10px; }
  html:not(.fc-nav-compact) .fc-header__book:not(#fc-wp-boost) { grid-area: 1 / 4; }
  html:not(.fc-nav-compact) .fc-nav:not(#fc-wp-boost) { grid-area: 2 / 1 / 3 / -1; align-self: stretch; display: flex; align-items: center; border-top: 1px solid var(--fc-line); }
  html:not(.fc-nav-compact) .fc-nav__list:not(#fc-wp-boost) { display: flex; align-items: center; justify-content: space-between; width: 100%; }
  html:not(.fc-nav-compact) .fc-nav__item:not(#fc-wp-boost) { position: relative; flex: none; display: flex; align-items: center; border-radius: 999px; transition: background-color .2s; }
  html:not(.fc-nav-compact) .fc-nav__link:not(#fc-wp-boost) {
    display: flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 0 9px;
    border-radius: 999px; font: 600 16px/1 var(--fc-sans); white-space: nowrap;
  }
  html:not(.fc-nav-compact) .fc-page .fc-nav__link:not(#fc-wp-boost) { color: var(--fc-ink); text-decoration: none; }
  html:not(.fc-nav-compact) .fc-sub__link:not(#fc-wp-boost) { padding-right: 0; }
  /* the chevron sits on a small round chip (26 px) centred in its 44 px button, so the space around the chip matches
     the space between the plain links and the button reads as its own control */
  html:not(.fc-nav-compact) .fc-sub__btn:not(#fc-wp-boost) { background: radial-gradient(circle closest-side, rgba(58, 50, 130, .075) 12.5px, rgba(58, 50, 130, 0) 13.5px); }
  html:not(.fc-nav-compact) .fc-sub__btn:hover:not(#fc-wp-boost), html:not(.fc-nav-compact) .fc-sub.is-open > .fc-sub__btn:not(#fc-wp-boost) { background: radial-gradient(circle closest-side, rgba(58, 50, 130, .14) 12.5px, rgba(58, 50, 130, 0) 13.5px); }
  /* one soft pill behind a menu item while it is pointed at or its list is open (the link and its button together) */
  html:not(.fc-nav-compact) .fc-nav__item:hover:not(#fc-wp-boost), html:not(.fc-nav-compact) .fc-sub.is-open:not(#fc-wp-boost) { background: rgba(58, 50, 130, .08); }
  html:not(.fc-nav-compact) .fc-sub__panel:not(#fc-wp-boost) {
    position: absolute; top: calc(100% + 8px); left: 0; z-index: 5;
    width: max-content; min-width: 270px; max-width: min(440px, 92vw); padding: 10px;
    background: var(--fc-card); border: 1px solid var(--fc-line); border-radius: 20px; box-shadow: var(--fc-shadow-lg);
  }
  /* a bridge over the 8 px gap, so the pointer can travel from the item into its list */
  html:not(.fc-nav-compact) .fc-sub__panel:not(#fc-wp-boost)::before { content: ""; position: absolute; left: 0; right: 0; top: -9px; height: 9px; }
  html:not(.fc-nav-compact):not(.fc-sub-js) .fc-sub:hover > .fc-sub__panel:not(#fc-wp-boost),
  html:not(.fc-nav-compact):not(.fc-sub-js) .fc-sub:focus-within > .fc-sub__panel:not(#fc-wp-boost) { display: block; }
  html:not(.fc-nav-compact) .fc-nav__mobilefoot:not(#fc-wp-boost) { display: none; }
}
/* Bold menu with room between the items (kit 2.0.7, his request of 2026-10-11: bold "just like on our existing
   website", "good space between all these menu options"). The words are 600 (the Figtree variable font already loads
   400 to 700, so no new font file) with 9 px inside each link: every gap between two items is 18 px plus an equal
   share of the row's spare room (a link's 9 px each side; after a chevron, its 44 px button's own 9 px beside the
   26 px chip, which stays 9 px from its word). The header and the utility row are at most 1,320 px wide (was
   1,200 px) with 24 px sides from 1,180 px: about 28 px between items from 1,366 px (his old menu: 26 px). The words
   are 16 px from 1,366 px and shrink evenly to 14 px at 1,180 px (15 px at 1,280 px); below 1,280 px 8 px inside each
   link. So the row of eleven stays on one line down to 1,180 px with about 20 px to spare even beside a 15 to 17 px
   scrollbar (18 to 23 px between items there). fc-kit.js still switches to the Menu drawer when a visitor's
   text spacing makes the row too wide. */
@media (min-width: 1180px) {
  html:not(.fc-nav-compact) .fc-header > .fc-wrap:not(#fc-wp-boost), html:not(.fc-nav-compact) .fc-utility > .fc-wrap:not(#fc-wp-boost) { width: min(1320px, calc(100% - 48px)); }
  html:not(.fc-nav-compact) .fc-nav__link:not(#fc-wp-boost) { font-size: clamp(14px, calc(1.312px + 1.0753vw), 16px); }
}
@media (min-width: 1180px) and (max-width: 1279.98px) {
  html:not(.fc-nav-compact) .fc-nav__link:not(#fc-wp-boost) { padding: 0 8px; }
  html:not(.fc-nav-compact) .fc-sub__link:not(#fc-wp-boost) { padding-right: 0; }
}

/* Menus: phone and tablet, a full-height drawer. Its foot ("Book a free 15-minute call" and the phone line) stays at
   the drawer's bottom edge while the eleven items and their lists scroll above it (round 2, review fix: with eleven
   items the button had slipped below the first screen on 375 x 667 and 360 x 740 phones, and the drawer covers the
   bottom booking bar); scroll-padding-bottom keeps a focused item clear of it (WCAG 2.4.11) */
@media (max-width: 1179.98px) {
  .fc-nav:not(#fc-wp-boost) {
    display: none; position: fixed; left: 0; right: 0; top: var(--fc-hh, 60px); bottom: 0; z-index: 59;
    overflow-y: auto; overscroll-behavior: contain; scroll-padding-bottom: 136px;
    padding: 8px var(--fc-gutter) 0; background: var(--fc-paper); border-top: 1px solid var(--fc-line);
  }
  html.fc-nav-open .fc-nav:not(#fc-wp-boost) { display: block; }
  html.fc-nav-open:not(#fc-wp-boost) { overflow: hidden; }
  html:not(.fc-js) .fc-nav:not(#fc-wp-boost) { display: block; position: static; flex: 1 0 100%; border: 0; padding: 0 0 12px; }
  html:not(.fc-js) .fc-header:not(#fc-wp-boost) { position: relative; }
  html:not(.fc-js) .fc-header__in:not(#fc-wp-boost) { flex-wrap: wrap; height: auto; padding-block: 8px; }
  .fc-nav__item:not(#fc-wp-boost) { border-bottom: 1px solid var(--fc-line); }
  .fc-nav__link:not(#fc-wp-boost) {
    display: flex; align-items: center; min-height: 58px; padding: 0 4px;
    font: 600 19px/1.2 var(--fc-sans); color: var(--fc-ink);
  }
  /* without JavaScript the eleven links sit in the page above its heading: 48 px rows (still 44 px targets), so the
     heading stays on the first screen of a 390 x 844 phone (round 2) */
  html:not(.fc-js) .fc-nav__link:not(#fc-wp-boost) { min-height: 48px; }
  .fc-page .fc-nav__link:not(#fc-wp-boost) { color: var(--fc-ink); text-decoration: none; }
  .fc-sub:not(#fc-wp-boost) { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .fc-sub__btn:not(#fc-wp-boost) { width: 52px; height: 52px; margin-right: -4px; color: var(--fc-purple); }
  .fc-sub__btn:not(#fc-wp-boost)::before { content: "+"; width: auto; height: auto; margin: 0; border: 0; transform: none; font: 400 26px/1 var(--fc-sans); }
  .fc-sub.is-open > .fc-sub__btn:not(#fc-wp-boost)::before { content: "\2212 "; margin: 0; transform: none; }
  .fc-sub__panel:not(#fc-wp-boost) { grid-column: 1 / -1; padding: 0 0 14px 12px; }
  .fc-nav__mobilefoot:not(#fc-wp-boost) {
    position: sticky; bottom: 0; z-index: 1; display: grid; gap: 10px;
    margin: 20px calc(-1 * var(--fc-gutter)) 0; padding: 14px var(--fc-gutter) calc(16px + env(safe-area-inset-bottom));
    background: var(--fc-paper); border-top: 1px solid var(--fc-line); box-shadow: 0 -12px 22px -18px rgba(36, 33, 61, .4);
  }
  /* without JavaScript the menu is part of the page: the header's "Book a free call" (from 768 px) and the bottom
     booking bar (below 768 px) already offer the call */
  html:not(.fc-js) .fc-nav__mobilefoot:not(#fc-wp-boost) { display: none; }
  .fc-nav__call:not(#fc-wp-boost) { margin: 0; text-align: center; font-size: 16px; }
}
@media (min-width: 1180px) {
  html.fc-nav-compact .fc-menubtn:not(#fc-wp-boost) { display: inline-flex; }
  html.fc-nav-compact .fc-nav:not(#fc-wp-boost) {
    display: none; position: fixed; left: 0; right: 0; top: var(--fc-hh, 60px); bottom: 0; z-index: 59;
    overflow-y: auto; overscroll-behavior: contain; scroll-padding-bottom: 136px;
    padding: 8px var(--fc-gutter) 0; background: var(--fc-paper); border-top: 1px solid var(--fc-line);
  }
  html.fc-nav-compact.fc-nav-open .fc-nav:not(#fc-wp-boost) { display: block; }
  html.fc-nav-compact.fc-nav-open:not(#fc-wp-boost) { overflow: hidden; }
  html.fc-nav-compact .fc-nav__item:not(#fc-wp-boost) { border-bottom: 1px solid var(--fc-line); }
  html.fc-nav-compact .fc-nav__link:not(#fc-wp-boost) {
    display: flex; align-items: center; min-height: 58px; padding: 0 4px;
    font: 600 19px/1.2 var(--fc-sans); color: var(--fc-ink);
  }
  html.fc-nav-compact .fc-page .fc-nav__link:not(#fc-wp-boost) { color: var(--fc-ink); text-decoration: none; }
  html.fc-nav-compact .fc-sub:not(#fc-wp-boost) { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  html.fc-nav-compact .fc-sub__btn:not(#fc-wp-boost) { width: 52px; height: 52px; margin-right: -4px; color: var(--fc-purple); }
  html.fc-nav-compact .fc-sub__btn:not(#fc-wp-boost)::before { content: "+"; width: auto; height: auto; margin: 0; border: 0; transform: none; font: 400 26px/1 var(--fc-sans); }
  html.fc-nav-compact .fc-sub.is-open > .fc-sub__btn:not(#fc-wp-boost)::before { content: "\2212 "; margin: 0; transform: none; }
  html.fc-nav-compact .fc-sub__panel:not(#fc-wp-boost) { grid-column: 1 / -1; padding: 0 0 14px 12px; }
  html.fc-nav-compact .fc-nav__mobilefoot:not(#fc-wp-boost) {
    position: sticky; bottom: 0; z-index: 1; display: grid; gap: 10px;
    margin: 20px calc(-1 * var(--fc-gutter)) 0; padding: 14px var(--fc-gutter) calc(16px + env(safe-area-inset-bottom));
    background: var(--fc-paper); border-top: 1px solid var(--fc-line); box-shadow: 0 -12px 22px -18px rgba(36, 33, 61, .4);
  }
  html.fc-nav-compact .fc-nav__call:not(#fc-wp-boost) { margin: 0; text-align: center; font-size: 16px; }
}

/* ---------- 6c. Header and footer: the current page (copied 2026-10-11 from inner-pages/src/fcp.css section 4,
   which the homepage does not load; the homepage marks its Home link aria-current="page") ---------- */
.fc-page .fc-nav__link[aria-current="page"]:not(#fc-wp-boost), .fc-page .fc-menu__links a[aria-current="page"]:not(#fc-wp-boost) { color: var(--fc-purple); font-weight: 600; }
.fc-page .fc-menu__links a[aria-current="page"]:not(#fc-wp-boost) { background: rgba(241, 164, 52, .12); }
.fc-page .fc-footer__links a[aria-current="page"]:not(#fc-wp-boost) { color: var(--fc-gold); }
/* desktop row (his site menu, 2026-10-10): the current page's link, and the link whose list holds the current page
   (Services on a service page, Workshops & Mindfulness on a program page, Blog on the article), in purple with the
   sun underline. It takes no width and keeps the row's weight (600 since kit 2.0.7, his bold menu), so the row of
   eleven never grows */
@media (min-width: 1180px) {
  html:not(.fc-nav-compact) .fc-page .fc-nav__link[aria-current="page"]:not(#fc-wp-boost),
  html:not(.fc-nav-compact) .fc-page .fc-sub:has(.fc-sub__panel a[aria-current="page"]) > .fc-sub__link:not(#fc-wp-boost) {
    color: var(--fc-purple); font-weight: 600;
    text-decoration: underline; text-decoration-color: var(--fc-sun); text-decoration-thickness: 2px; text-underline-offset: 7px;
  }
}

/* ---------- 7. Ring rail (desktop) ---------- */
.fc-rail:not(#fc-wp-boost) { display: none; }
@media (min-width: 1360px) {
  .fc-rail:not(#fc-wp-boost) { display: block; position: fixed; right: 16px; top: 50%; translate: 0 -50%; z-index: 40; }
}
.fc-rail:not(#fc-wp-boost) { transition: opacity .35s, visibility 0s linear 0s; }
.fc-rail.fc-is-idle:not(#fc-wp-boost) { opacity: 0; visibility: hidden; transition: opacity .35s, visibility 0s linear .35s; }
html[data-fc-motion="off"] .fc-rail:not(#fc-wp-boost) { transition: none; }
.fc-rail__list:not(#fc-wp-boost) { position: relative; list-style: none; margin: 0; padding: 4px 0; display: grid; gap: 0; }
.fc-rail__list:not(#fc-wp-boost)::before {
  content: ""; position: absolute; z-index: -1; left: 50%; top: 0; bottom: 0; width: 34px; translate: -50% 0;
  background: rgba(247, 241, 232, .78); border: 1px solid var(--fc-line); border-radius: 999px;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transition: background-color .4s, border-color .4s;
}
.fc-page .fc-rail__link:not(#fc-wp-boost) { position: relative; display: grid; place-items: center; width: 44px; height: 44px; text-decoration: none; border-radius: 50%; }
.fc-rail__ring:not(#fc-wp-boost) { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--fc-purple); transition: width .3s var(--fc-ease-out), height .3s var(--fc-ease-out), background-color .4s, border-color .4s, box-shadow .4s; }
.fc-rail__link.fc-is-kept .fc-rail__ring:not(#fc-wp-boost) { background: var(--fc-purple); }
/* the current item: the ring timer's drop inside its first ring */
.fc-rail__link[aria-current="true"] .fc-rail__ring:not(#fc-wp-boost) { width: 16px; height: 16px; background: radial-gradient(circle, var(--fc-sun) 0 3.2px, rgba(241, 164, 52, 0) 3.8px); border-color: var(--fc-sun); box-shadow: 0 0 0 4px rgba(241, 164, 52, .16); }
.fc-rail--night .fc-rail__list:not(#fc-wp-boost)::before { background: rgba(38, 36, 74, .7); border-color: rgba(251, 246, 238, .16); }
.fc-rail--night .fc-rail__ring:not(#fc-wp-boost) { border-color: rgba(251, 246, 238, .8); }
.fc-rail--night .fc-rail__link.fc-is-kept .fc-rail__ring:not(#fc-wp-boost) { background: var(--fc-cream); }
.fc-rail--night .fc-rail__link[aria-current="true"] .fc-rail__ring:not(#fc-wp-boost) { background: radial-gradient(circle, var(--fc-sun) 0 3.2px, rgba(241, 164, 52, 0) 3.8px); border-color: var(--fc-sun); box-shadow: 0 0 0 4px rgba(241, 164, 52, .22); }
.fc-rail__label:not(#fc-wp-boost) {
  position: absolute; right: calc(100% + 10px); top: 50%; translate: 0 -50%;
  padding: 6px 12px; border-radius: 999px; background: var(--fc-ink); color: var(--fc-cream);
  font: 600 13px/1.2 var(--fc-sans); white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .2s;
}
.fc-rail__link:hover .fc-rail__label:not(#fc-wp-boost), .fc-rail__link:focus-visible .fc-rail__label:not(#fc-wp-boost) { opacity: 1; }

/* ---------- 8. The two photo sliders: the control capsule and its ring timer ----------
   Hero ("calm cinema", section 9) and break-up deck ("photo deck", section 12); behaviour in fc-kit.js section 7.
   W3C APG carousel pattern: Pause/Play is the first control, then Previous / Next. The ring timer, the counter and
   the deck's rail are decoration (aria-hidden); each slide is a labelled group ("3 of 13"). Inactive slides stay in
   the HTML, inert + aria-hidden. Every slide shares one grid cell, so nothing moves when the slide changes.
   Without JavaScript: no capsule, and every slide is shown, stacked. */
.fc-capsule:not(#fc-wp-boost) {
  position: relative; z-index: 60;
  display: flex; align-items: center; gap: 4px; padding: 5px;
  border-radius: 999px; border: 1px solid rgba(251, 246, 238, .2);
  background: rgba(20, 18, 42, .68); color: var(--fc-cream);
  -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2);
  box-shadow: 0 14px 30px -18px rgba(0, 0, 0, .6);
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { .fc-capsule:not(#fc-wp-boost) { background: rgba(20, 18, 42, .88); } }
@media (prefers-reduced-transparency: reduce) { .fc-capsule:not(#fc-wp-boost) { background: rgba(20, 18, 42, .92); -webkit-backdrop-filter: none; backdrop-filter: none; } }
html:not(.fc-js) .fc-capsule:not(#fc-wp-boost) { display: none; }
.fc-capsule__play:not(#fc-wp-boost) {
  flex: none; display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 16px 0 15px;
  border: 0; border-radius: 999px; background: transparent; color: inherit;
  font: 600 14.5px/1 var(--fc-sans); cursor: pointer; white-space: nowrap;
}
.fc-capsule__play:hover:not(#fc-wp-boost) { background: rgba(251, 246, 238, .1); }
.fc-capsule__glyph:not(#fc-wp-boost) { position: relative; flex: none; width: 10px; height: 11px; }
.fc-capsule__glyph:not(#fc-wp-boost)::before, .fc-capsule__glyph:not(#fc-wp-boost)::after { content: ""; position: absolute; top: 0; bottom: 0; width: 3.2px; border-radius: 2px; background: currentColor; }
.fc-capsule__glyph:not(#fc-wp-boost)::before { left: 1px; }
.fc-capsule__glyph:not(#fc-wp-boost)::after { right: 1px; }
.is-stopped .fc-capsule__glyph:not(#fc-wp-boost)::after { display: none; }
.is-stopped .fc-capsule__glyph:not(#fc-wp-boost)::before {
  left: 2px; width: 0; border-radius: 0; background: none;
  border-left: 9px solid currentColor; border-top: 5.5px solid transparent; border-bottom: 5.5px solid transparent;
}
.fc-capsule__time:not(#fc-wp-boost) { flex: none; display: block; width: 30px; height: 30px; margin: 0 2px; }
.fc-capsule__count:not(#fc-wp-boost) {
  flex: none; display: flex; align-items: baseline; gap: 6px; margin: 0 8px 0 6px;
  font: 600 14.5px/1 var(--fc-sans); color: rgba(251, 246, 238, .88); white-space: nowrap; font-variant-numeric: tabular-nums;
}
.fc-capsule__now:not(#fc-wp-boost) { display: inline-block; min-width: 1.1ch; text-align: right; font: 400 26px/1 var(--fc-serif); color: var(--fc-gold); font-variant-numeric: tabular-nums; }
.fc-capsule__navs:not(#fc-wp-boost) { flex: none; display: inline-flex; gap: 6px; }
.fc-capsule__nav:not(#fc-wp-boost) {
  display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: 50%;
  border: 1.5px solid rgba(251, 246, 238, .55); background: transparent; color: var(--fc-cream); cursor: pointer;
  transition: background-color .2s, border-color .2s;
}
.fc-capsule__nav:hover:not(#fc-wp-boost) { background: rgba(251, 246, 238, .12); border-color: var(--fc-cream); }
.fc-capsule__nav svg:not(#fc-wp-boost) { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s var(--fc-ease-out); }
html[data-fc-motion="on"] .fc-capsule__nav[data-fc-prev]:hover svg:not(#fc-wp-boost) { transform: translateX(-2px); }
html[data-fc-motion="on"] .fc-capsule__nav[data-fc-next]:hover svg:not(#fc-wp-boost) { transform: translateX(2px); }
/* focus inside the capsule: v2's lime ring (the capsule always sits on Night) */
.fc-page .fc-capsule :focus-visible:not(#fc-wp-boost) { outline: 2px solid var(--fc-lime); outline-offset: 2px; box-shadow: 0 0 0 6px rgba(200, 218, 60, .3); }
@media (max-width: 599.98px) {
  .fc-capsule__time:not(#fc-wp-boost) { width: 26px; height: 26px; }
  .fc-capsule__now:not(#fc-wp-boost) { font-size: 22px; }
}
@media (max-width: 359.98px) { .fc-capsule__time:not(#fc-wp-boost) { display: none; } }

/* the ring timer: the logo's drop and four light rings. The light travels outward, one ring per quarter of the
   slide's time after a 700 ms release (--fc-q = (dwell - 700 ms) / 4, set by fc-kit.js), so the outer ring closes
   exactly when the next slide is due; on a change the four full rings fade (the release) as the new slide arrives.
   It counts only while the carousel ticks (.is-ticking); with Motion off only the dim track and the drop show. */
.fc-emblem:not(#fc-wp-boost) { display: block; width: 100%; height: 100%; overflow: visible; }
.fc-emblem circle:not(#fc-wp-boost) { fill: none; }
.fc-emblem .fc-emblem__drop:not(#fc-wp-boost) { fill: var(--fc-sun); }
.fc-emblem__track circle:not(#fc-wp-boost) { stroke: rgba(248, 217, 166, .34); }
.fc-emblem__arc:not(#fc-wp-boost) { stroke: var(--fc-sun); stroke-linecap: round; stroke-dasharray: 100 100; stroke-dashoffset: 100; }
.fc-emblem .fc-r1:not(#fc-wp-boost) { stroke-width: 2.7; }
.fc-emblem .fc-r2:not(#fc-wp-boost) { stroke-width: 2.2; }
.fc-emblem .fc-r3:not(#fc-wp-boost) { stroke-width: 1.75; }
.fc-emblem .fc-r4:not(#fc-wp-boost) { stroke-width: 1.4; }
.fc-emblem__arc.fc-r2:not(#fc-wp-boost) { --fc-k: 1; }
.fc-emblem__arc.fc-r3:not(#fc-wp-boost) { --fc-k: 2; }
.fc-emblem__arc.fc-r4:not(#fc-wp-boost) { --fc-k: 3; }
@keyframes fc-emblem-arc { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@keyframes fc-emblem-out { from { stroke-dashoffset: 0; opacity: 1; } to { stroke-dashoffset: 0; opacity: 0; } }
html[data-fc-motion="on"] .is-timing .fc-emblem__arc:not(#fc-wp-boost) {
  animation: fc-emblem-arc var(--fc-q, 1575ms) linear calc(700ms + var(--fc-k, 0) * var(--fc-q, 1575ms)) both;
  animation-play-state: paused;
}
html[data-fc-motion="on"] .is-timing.is-rel .fc-emblem__arc:not(#fc-wp-boost) {
  animation: fc-emblem-arc var(--fc-q, 1575ms) linear calc(700ms + var(--fc-k, 0) * var(--fc-q, 1575ms)) both, fc-emblem-out 700ms ease-out;
  animation-play-state: paused;
}
html[data-fc-motion="on"] .is-timing.is-ticking .fc-emblem__arc:not(#fc-wp-boost) { animation-play-state: running; }
/* the counter's numeral rolls in on every change */
@keyframes fc-roll { from { opacity: 0; transform: translateY(.5em); } to { opacity: 1; transform: none; } }
html[data-fc-motion="on"] .fc-capsule__now.is-roll:not(#fc-wp-boost) { animation: fc-roll .55s var(--fc-ease-out) both; }

/* ---------- 9. The hero's wrapper (integrated 2026-10-11) ----------
   The "calm cinema" hero's rules (the .fc-cin classes, about 20 KB) were taken out: hero v4 (section 9b) replaced its
   markup. Only the wrapper around the stage is still used (the booking bar and the WordPress kit find the hero by it). */
.fc-cin-hero:not(#fc-wp-boost) {
  position: relative; padding: 8px var(--fc-stage-inset) 0;
  background: linear-gradient(180deg, var(--fc-mist) 0, #F5F0E5 70%, var(--fc-paper) 100%);
}

/* ---------- 9b. Hero v4 (2026-10-11): Dr. V's three welcome slides, a loop that runs on CSS alone ----------
   Replaces the "calm cinema" markup of section 9 (.fc-cin-hero is still the wrapper; the old .fc-cin rules and
   heroCar() are then unused: the integrated build takes them out, integrated/tools/home_finish.py D1).
   - Rotation, the steady push-in zoom, the cross-fades, the words rising after each picture lands, the slow light
     sweep and the progress line are ONE CSS timeline (28.5 s: 3 slides x 9.5 s, 1.4 s cross-fades). No script is
     needed, so a delayed or blocked script can never freeze it. Every layer uses keyframes generated for that one
     loop, shifted by its slide (--hx-k) and its line (--i), so all of it stays in step.
   - The page opens 2.4 s into slide 1: picture, H1, line and button are in place at first paint (the H1 never
     animates on load); only the gold ripple under "Sugar Land TX" draws, then the light passes.
   - Still first slide, no motion: html[data-fc-motion="off"] (the site's Motion toggle), and reduced motion while
     the visitor has not chosen (no attribute). The page's own rule (section 24) stops the rest of the page the same way.
   - Pause without script: the "Pause slides" checkbox (first in the tab order, as the APG carousel pattern asks; it
     lies exactly over its label in the control bar, so keyboard focus scrolls the visible control into view).
   - Held while the pointer is on the line under the title, the button or the controls, and while keyboard focus is
     inside. With script (fc-kit.js section 7c, review fix 2026-10-11) the hold never starts half-way through a slide
     change: a change that has begun finishes first, and focus or a pointer on the words that are leaving brings that
     slide back, settled. Without script the same holds come from :hover and :has(:focus-visible) straight away. A
     focused button is always shown whole (never clipped or half slid out).
   - Script (fc-kit.js section 7c) also adds: the slide buttons, swipe, pausing off screen, the pointer depth effect,
     aria-current and aria-live.
   - Depth: the picture, its light and the words move apart a little with the mouse (Motion on), and the picture
     drifts slower than the page when it is scrolled away (scroll-driven animation where supported).
   - Speed: only opacity and transform are animated on the pictures and words (the compositor runs them); the
     discrete parts (the words' visibility, the ripple) are separate, small animations. No var() inside keyframes.
   - Lazy pictures without script: a slide's picture layer waits two widths to the right, outside the window (Chrome's
     lazy loading ignores the frame's clip, so one width is not enough), and moves into place, still transparent,
     4 s before its turn; only then is its file fetched. All delays are one
     loop (28.5 s) earlier than the phase they show, so no layer is ever in its before-start state.
   Timing lives in the generated @keyframes at the end of this block (tools/build.py: D, X, the start phase). */
.fc-hx:not(#fc-wp-boost) { position: relative; }
/* motion off: everything still, on the first slide (it restarts in step when motion comes back on) */
html[data-fc-motion="off"] .fc-hx *:not(#fc-wp-boost), html[data-fc-motion="off"] .fc-hx *:not(#fc-wp-boost)::before, html[data-fc-motion="off"] .fc-hx *:not(#fc-wp-boost)::after { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  html:not([data-fc-motion]) .fc-hx *:not(#fc-wp-boost), html:not([data-fc-motion]) .fc-hx *:not(#fc-wp-boost)::before, html:not([data-fc-motion]) .fc-hx *:not(#fc-wp-boost)::after { animation: none !important; }
}
/* the play state every timeline layer reads */
.fc-hx__frame:not(#fc-wp-boost) { --hx-ps: running; }
/* Pause slides (the checkbox; with script also the class, for browsers without :has()) */
.fc-hx__frame:has(.fc-hx__hold:checked):not(#fc-wp-boost), .fc-hx.is-paused .fc-hx__frame:not(#fc-wp-boost) { --hx-ps: paused; }
/* with script: the hold for the pointer and keyboard focus, set by fc-kit.js 7c once no slide change is under way */
.fc-hx.is-hold .fc-hx__frame:not(#fc-wp-boost) { --hx-ps: paused; }
/* without script (the loop runs on CSS alone): the same holds, straight away */
.fc-hx:not(.is-js) .fc-hx__frame:has(.fc-hx__sub:hover, .fc-hx__ctain:hover, .fc-hx__ctrl:hover, .fc-hx__cred:hover):not(#fc-wp-boost) { --hx-ps: paused; }
.fc-hx:not(.is-js) .fc-hx__frame:has(:focus-visible):not(#fc-wp-boost) { --hx-ps: paused; }
.fc-hx.is-off .fc-hx__frame:not(#fc-wp-boost) { --hx-ps: paused; }
/* a chosen slide arriving, or a change finishing before a hold (fc-kit.js 7c) */
.fc-hx.is-going .fc-hx__frame:not(#fc-wp-boost), .fc-hx.is-settling .fc-hx__frame:not(#fc-wp-boost) { --hx-ps: running !important; }
/* a focused button is always shown whole: never clipped by its line or caught half slid out (WCAG 2.4.7, 2.4.11) */
.fc-hx__cta:has(:focus-visible):not(#fc-wp-boost) { overflow: visible; }
.fc-hx__ctain:has(:focus-visible):not(#fc-wp-boost) { transform: none !important; opacity: 1 !important; }
.fc-hx__copy:has(:focus-visible):not(#fc-wp-boost) { visibility: visible !important; }

/* the stage: the rounded Night frame every slide shares */
.fc-hx__frame:not(#fc-wp-boost) {
  --px: max(var(--fc-gutter), calc((100% - 1200px) / 2));
  --hx-mx: 0; --hx-my: 0;
  position: relative; isolation: isolate; overflow: hidden;
  border-radius: var(--fc-stage-radius); box-shadow: var(--fc-stage-shadow);
  background: var(--fc-night); color: var(--fc-cream);
}
/* the pause checkbox lies exactly over its label in the control bar (so keyboard focus scrolls the visible control
   into view); the label is what people see and press */
.fc-hx__holdwrap:not(#fc-wp-boost) { position: relative; flex: none; display: inline-flex; }
.fc-hx__hold:not(#fc-wp-boost) { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; margin: 0; opacity: 0; pointer-events: none; }
.fc-hx__holdwrap .fc-hx__holdbtn:not(#fc-wp-boost) { position: relative; z-index: 1; }

/* slides: all in one grid cell (nothing moves when one changes); the pictures fill the frame (later slides on top) */
.fc-hx__slides:not(#fc-wp-boost) { display: grid; min-width: 0; }
.fc-hx__slide:not(#fc-wp-boost) { grid-area: 1 / 1; display: grid; min-width: 0; }
.fc-hx__media:not(#fc-wp-boost) {
  position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none;
  background: var(--hx-bg, #24223F);
  animation: fc-hx-in 28.5s linear calc(var(--hx-k) * 9.5s - 30.9s) infinite both;
  animation-play-state: var(--hx-ps);
}
.fc-hx__slide:first-child .fc-hx__media:not(#fc-wp-boost) { animation-name: fc-hx-in0; }     /* already there when the loop restarts */
.fc-hx__slide:last-child .fc-hx__media:not(#fc-wp-boost) { animation-name: fc-hx-inout; }    /* fades out over slide 1 */
.fc-hx__move:not(#fc-wp-boost), .fc-hx__drift:not(#fc-wp-boost) { position: absolute; inset: 0; }
.fc-hx__move:not(#fc-wp-boost) { translate: calc(var(--hx-mx) * -14px) calc(var(--hx-my) * -9px); }
.fc-hx__img:not(#fc-wp-boost) {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: var(--hx-pos, 50% 50%);
}
/* the steady push-in: each picture layer names its own generated zoom (fc-hx-z<from>-<to>, in hundredths) */
.fc-hx__z:not(#fc-wp-boost) {
  transform: scale(1); transform-origin: var(--hx-o, 50% 50%); backface-visibility: hidden;
  animation: fc-hx-z100-110 28.5s linear calc(var(--hx-k) * 9.5s - 30.9s) infinite both;
  animation-play-state: var(--hx-ps);
}
/* the slow light: one soft band of pale warm light crosses each picture after it lands (under the scrims, so the
   words never lose contrast). Pale gold only: sun gold at low opacity over Night reads as plum. */
.fc-hx__sweep:not(#fc-wp-boost) {
  position: absolute; inset: -10% -45%; z-index: 2; opacity: 0; mix-blend-mode: screen;
  background: linear-gradient(104deg, rgba(255, 240, 214, 0) 40%, rgba(255, 240, 214, .07) 45%, rgba(255, 240, 214, .26) 50%, rgba(255, 240, 214, .07) 55%, rgba(255, 240, 214, 0) 60%);
  animation: fc-hx-sweep 28.5s linear calc(var(--hx-k) * 9.5s - 30.9s) infinite both;
  animation-play-state: var(--hx-ps);
}
/* scrims: ::before a soft corner light, ::after the soft dark overlay that carries the words (strength --hx-k2) */
.fc-hx__media:not(#fc-wp-boost)::before, .fc-hx__media:not(#fc-wp-boost)::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.fc-hx__media:not(#fc-wp-boost)::before { z-index: 1; }
.fc-hx__media:not(#fc-wp-boost)::after { z-index: 3; }

/* without the timeline (Motion off, reduced motion, no animation support): the slide marked .is-on, still */
.fc-hx__slide:not(.is-on) .fc-hx__media:not(#fc-wp-boost) { opacity: 0; transform: translate3d(200%, 0, 0); }
.fc-hx__slide:not(.is-on) .fc-hx__copy:not(#fc-wp-boost) { visibility: hidden; }
.fc-hx__slide:not(.is-on) .fc-hx__ln:not(#fc-wp-boost) { opacity: 0; }
html[data-fc-motion="off"] .fc-hx__media:not(#fc-wp-boost) { transition: opacity .32s var(--fc-ease-dissolve), transform 0s linear .32s; }
html[data-fc-motion="off"] .fc-hx__slide.is-on .fc-hx__media:not(#fc-wp-boost) { transition: opacity .32s var(--fc-ease-dissolve), transform 0s; }

/* words: one block per slide, bottom aligned, above every picture layer; hidden (not just transparent) while
   another slide shows, so its button cannot be focused or clicked. The page's H1 always stays in the tree. */
.fc-hx__copy:not(#fc-wp-boost) {
  position: relative; z-index: 10; align-self: end; min-width: 0; max-width: var(--hx-cw, 50rem);
  pointer-events: none; translate: calc(var(--hx-mx) * 5px) calc(var(--hx-my) * 3px);
  animation: fc-hx-vis 28.5s linear calc(var(--hx-k) * 9.5s - 30.9s) infinite both;
  animation-play-state: var(--hx-ps);
}
.fc-hx__copy .fc-hx__h1:not(#fc-wp-boost), .fc-hx__copy .fc-hx__h1 .fc-hx__ln:not(#fc-wp-boost) { visibility: visible; }
.fc-hx__ln:not(#fc-wp-boost) {
  display: block; pointer-events: auto;
  animation: fc-hx-ln 28.5s linear calc(var(--hx-k) * 9.5s - 30.9s + var(--i, 0) * .12s) infinite both;
  animation-play-state: var(--hx-ps);
}
.fc-hx__title:not(#fc-wp-boost) {
  margin: 0; font-family: var(--fc-serif); font-weight: 500; color: var(--fc-cream);
  letter-spacing: -.025em; line-height: 1.02; text-wrap: balance; font-variation-settings: "SOFT" 50, "WONK" 0;
  text-shadow: 0 2px 30px rgba(12, 10, 32, .5);
}
.fc-hx__h1:not(#fc-wp-boost) { font-size: clamp(2.5rem, 1.1rem + 4.6vw, 5.5rem); }
.fc-hx__title--s:not(#fc-wp-boost) { font-size: clamp(2.25rem, 1.05rem + 3.6vw, 4.375rem); line-height: 1.04; }
.fc-hx__kick:not(#fc-wp-boost) {
  font-style: italic; font-weight: 400; font-size: clamp(1.375rem, 1.05rem + 1.05vw, 2.125rem); line-height: 1.2;
  letter-spacing: -.005em; color: var(--fc-gold); margin-bottom: .18em;
}
.fc-hx__accent:not(#fc-wp-boost) { font-style: italic; font-weight: 400; color: var(--fc-gold); }
.fc-hx__h1c:not(#fc-wp-boost) { position: relative; width: fit-content; padding-bottom: .14em; }
.fc-hx__ripple:not(#fc-wp-boost) { position: absolute; left: 0; bottom: -.04em; width: 100%; height: .22em; overflow: visible; }
.fc-hx__ripple path:not(#fc-wp-boost) {
  fill: none; stroke: var(--fc-sun); stroke-linecap: round; stroke-dasharray: 100 100; stroke-dashoffset: 0;
  animation: fc-hx-rip 28.5s linear calc(var(--hx-k) * 9.5s - 30.9s) infinite both;
  animation-play-state: var(--hx-ps);
}
.fc-hx__wave1:not(#fc-wp-boost) { stroke-width: 2.6; }
.fc-hx__ripple .fc-hx__wave2:not(#fc-wp-boost) { stroke-width: 1.6; opacity: .6; animation-delay: calc(var(--hx-k) * 9.5s - 30.9s + .3s); }
.fc-hx__sub:not(#fc-wp-boost) {
  margin: 22px 0 0; font-size: clamp(1.1875rem, 1.06rem + .42vw, 1.375rem); line-height: 1.5;
  color: rgba(251, 246, 238, .95); max-width: 40ch; text-wrap: pretty; text-shadow: 0 1px 18px rgba(12, 10, 32, .55);
}
/* the sun button never fades: sun gold at part opacity over Night reads as plum (hard rule 4, found on this hero's
   own transition frames). It slides in at full colour from behind the line's left edge after the words, and back
   out the same way. The line clips it; its padding leaves room for the button's shadow, glow and focus ring. */
.fc-hx__cta:not(#fc-wp-boost) { margin: 16px -24px -40px; padding: 12px 24px 40px; overflow: hidden; pointer-events: none; }
.fc-hx__ctain:not(#fc-wp-boost) { display: inline-block; max-width: 100%; animation-name: fc-hx-cta; }
.fc-hx__cta .fc-btn:not(#fc-wp-boost) { max-width: 100%; }
.fc-hx .fc-btn--sun:not(#fc-wp-boost) { --fc-btn-glow: rgba(248, 217, 166, .18); }
/* the gold mark: the logo's light ring and a line, above the words */
.fc-hx__mark:not(#fc-wp-boost) { display: flex; align-items: center; gap: 10px; width: 80px; height: 14px; margin: 0 0 20px; }
.fc-hx__mark:not(#fc-wp-boost)::before { content: ""; flex: none; width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--fc-gold); box-shadow: 0 0 10px rgba(248, 217, 166, .55); }
.fc-hx__mark i:not(#fc-wp-boost) { flex: 1; height: 1.5px; background: linear-gradient(90deg, var(--fc-gold), rgba(248, 217, 166, 0)); }

/* the bar: the credential line; the controls (Pause slides, the three slide buttons with the progress line) come
   first in the markup and are placed beside it (desktop) or on the picture's lower edge (phones) */
.fc-hx__bar:not(#fc-wp-boost) { position: relative; z-index: 20; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 28px; min-width: 0; }
.fc-hx__cred:not(#fc-wp-boost) { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; font-size: 15.5px; line-height: 1.45; font-weight: 500; color: rgba(251, 246, 238, .92); }
.fc-hx__dot:not(#fc-wp-boost) { margin: 0 10px; color: rgba(251, 246, 238, .7); }
.fc-page .fc-hx__cred a:not(#fc-wp-boost) { color: var(--fc-gold); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.fc-hx__ctrl:not(#fc-wp-boost) {
  display: flex; align-items: center; gap: 4px; padding: 5px; min-width: 0;
  border-radius: 999px; border: 1px solid rgba(251, 246, 238, .2);
  background: rgba(20, 18, 42, .68); color: var(--fc-cream);
  -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2);
  box-shadow: 0 14px 30px -18px rgba(0, 0, 0, .6);
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { .fc-hx__ctrl:not(#fc-wp-boost) { background: rgba(20, 18, 42, .9); } }
@media (prefers-reduced-transparency: reduce) { .fc-hx__ctrl:not(#fc-wp-boost) { background: rgba(20, 18, 42, .92); -webkit-backdrop-filter: none; backdrop-filter: none; } }
.fc-hx__holdbtn:not(#fc-wp-boost) {
  flex: none; display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 16px 0 15px;
  border-radius: 999px; font: 600 14.5px/1 var(--fc-sans); white-space: nowrap; cursor: pointer; user-select: none;
  transition: background-color .2s, box-shadow .2s;
}
.fc-hx__holdbtn:hover:not(#fc-wp-boost) { background: rgba(251, 246, 238, .1); }
.fc-hx__glyph:not(#fc-wp-boost) { position: relative; flex: none; width: 10px; height: 11px; }
.fc-hx__glyph:not(#fc-wp-boost)::before, .fc-hx__glyph:not(#fc-wp-boost)::after { content: ""; position: absolute; top: 0; bottom: 0; width: 3.2px; border-radius: 2px; background: currentColor; }
.fc-hx__glyph:not(#fc-wp-boost)::before { left: 1px; }
.fc-hx__glyph:not(#fc-wp-boost)::after { right: 1px; }
/* paused: the pill is pressed (filled) and its glyph turns into Play */
.fc-hx__hold:checked + .fc-hx__holdbtn:not(#fc-wp-boost) { background: rgba(248, 217, 166, .18); box-shadow: inset 0 0 0 1.5px rgba(248, 217, 166, .7); }
.fc-hx__hold:checked + .fc-hx__holdbtn .fc-hx__glyph:not(#fc-wp-boost)::after { display: none; }
.fc-hx__hold:checked + .fc-hx__holdbtn .fc-hx__glyph:not(#fc-wp-boost)::before {
  left: 2px; width: 0; border-radius: 0; background: none;
  border-left: 9px solid currentColor; border-top: 5.5px solid transparent; border-bottom: 5.5px solid transparent;
}
.fc-page .fc-hx__hold:focus-visible + .fc-hx__holdbtn:not(#fc-wp-boost) { outline: 2px solid var(--fc-lime); outline-offset: 2px; box-shadow: 0 0 0 6px rgba(200, 218, 60, .3); }
.fc-hx__segs:not(#fc-wp-boost) { display: flex; align-items: stretch; gap: 2px; min-width: 0; }
.fc-hx__seg:not(#fc-wp-boost) {
  position: relative; display: flex; flex-direction: column; justify-content: center; gap: 7px;
  min-width: 44px; min-height: 44px; padding: 6px 12px 7px; border: 0; border-radius: 16px;
  background: transparent; color: var(--fc-cream); font: 600 14px/1.1 var(--fc-sans); text-align: left; cursor: default;
}
.fc-hx.is-js .fc-hx__seg:not(#fc-wp-boost) { cursor: pointer; }
.fc-hx.is-js .fc-hx__seg:hover:not(#fc-wp-boost) { background: rgba(251, 246, 238, .1); }
.fc-hx__seglabel:not(#fc-wp-boost) {
  white-space: nowrap; opacity: .72;
  animation: fc-hx-lab 28.5s linear calc(var(--hx-k) * 9.5s - 30.9s) infinite both;
  animation-play-state: var(--hx-ps);
}
.fc-hx__segline:not(#fc-wp-boost) { position: relative; display: block; height: 3px; min-width: 32px; border-radius: 3px; background: rgba(251, 246, 238, .26); overflow: hidden; }
.fc-hx__segline i:not(#fc-wp-boost) {
  position: absolute; inset: 0; border-radius: inherit; background: var(--fc-gold); transform-origin: left center;
  transform: scaleX(0); opacity: 0;
  animation: fc-hx-prog 28.5s linear calc(var(--hx-k) * 9.5s - 30.9s) infinite both;
  animation-play-state: var(--hx-ps);
}
/* still (no timeline): the current slide's button is lit and its line full */
.fc-hx__seg[aria-current="true"] .fc-hx__seglabel:not(#fc-wp-boost), .fc-hx:not(.is-js) .fc-hx__seg:first-child .fc-hx__seglabel:not(#fc-wp-boost) { opacity: 1; }
.fc-hx__seg[aria-current="true"] .fc-hx__segline i:not(#fc-wp-boost), .fc-hx:not(.is-js) .fc-hx__seg:first-child .fc-hx__segline i:not(#fc-wp-boost) { transform: none; opacity: 1; }
.fc-page .fc-hx :focus-visible:not(#fc-wp-boost) { outline: 2px solid var(--fc-lime); outline-offset: 2px; box-shadow: 0 0 0 6px rgba(200, 218, 60, .3); }

/* a fine, still grain over the pictures (it also hides banding in the scrims) */
.fc-hx__grain:not(#fc-wp-boost) {
  position: absolute; inset: 0; z-index: 8; pointer-events: none; opacity: .07; mix-blend-mode: overlay;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E") repeat;
}

/* ---- the three pictures ---- */
/* 1. Town Square (2880 px master): fills the frame, the push-in centred on the clock tower (live site: 1.1 to 1.5) */
.fc-hx__slide--1:not(#fc-wp-boost) { --hx-bg: linear-gradient(180deg, #5F88BE 0%, #6F8FB7 32%, #6A6E6F 55%, #4F4E44 76%, #6F6462 100%); --hx-o: 78% 40%; --hx-pos: 50% 40%; --hx-k2: .9; }
.fc-hx__slide--1 .fc-hx__img:not(#fc-wp-boost) { transform: scale(1.05); animation-name: fc-hx-z105-140; }
/* 2. The neuron (the live slide's own 1366 x 768 file, nothing larger exists): fills the whole frame edge to edge, as
      on the live site (Dr. V, 2026-10-12: not a framed panel), under the same soft dark overlay for the words as the
      other slides. A gentle push-in (1.00 to 1.06; the live site does 1.1 to 1.5), so the picture stays as sharp as
      a 1366 px file can: about 1.04x its own size at 1440 at the start, 1.1x at the end. */
.fc-hx__slide--2:not(#fc-wp-boost) { --hx-bg: #101A22; --hx-k2: .8; --hx-pos: 66% 50%; --hx-o: 66% 52%; }
.fc-hx__slide--2 .fc-hx__img:not(#fc-wp-boost) { transform: scale(1); animation-name: fc-hx-z100-106; }
/* 3. Clay brain + heart (the 3,357 px artwork from library original 31604) on its own flat teal, floating */
.fc-hx__slide--3:not(#fc-wp-boost) { --hx-bg: #35687D; --hx-k2: .74; }
.fc-hx__art:not(#fc-wp-boost) { position: absolute; aspect-ratio: 3628 / 1555; }
.fc-hx__art .fc-hx__img:not(#fc-wp-boost) {
  object-fit: contain; --hx-o: 70% 50%; transform: scale(1); animation-name: fc-hx-z100-115;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%), linear-gradient(180deg, transparent 0, #000 4%, #000 96%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%), linear-gradient(180deg, transparent 0, #000 4%, #000 96%, transparent 100%);
  mask-composite: intersect;
}

/* desktop and large tablet (900 px up; designed at 1440 x 900): words lower left, controls lower right */
@media (min-width: 900px) {
  /* the frame's width and side padding as lengths, so the artwork and the words can share the width without ever
     overlapping (100vw can include a scrollbar: the gaps below keep 20 px spare for it) */
  .fc-hx:not(#fc-wp-boost) {
    --hx-wf: calc(100vw - 2 * var(--fc-stage-inset));
    --hx-pxv: max(var(--fc-gutter), calc((var(--hx-wf) - 1200px) / 2));
    --hx-aw: min(calc(var(--hx-wf) * .52), 800px); --hx-ar: calc(var(--hx-pxv) * .5); --hx-at: 13%;
  }
  /* words beside the artwork (the brain reaches 5.9 % of the artwork's width further left at the end of its zoom);
     slide 2 (the full-frame neuron) keeps the default width, as slide 1 */
  .fc-hx__slide--3:not(#fc-wp-boost) { --hx-cw: min(44rem, calc(var(--hx-wf) - var(--hx-ar) - var(--hx-aw) * 1.059 - var(--hx-pxv) - 36px)); }
  .fc-hx__frame:not(#fc-wp-boost) {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: minmax(0, 1fr) auto;
    padding: 112px var(--px) 30px;
    min-height: clamp(620px, calc(100vh - var(--fc-hx-top, 140px)), 860px);
    min-height: clamp(620px, calc(100svh - var(--fc-hx-top, 140px)), 860px);
  }
  .fc-hx__slides:not(#fc-wp-boost) { grid-row: 1; grid-column: 1 / -1; }
  .fc-hx__bar:not(#fc-wp-boost) { grid-row: 2; grid-column: 1; align-self: center; margin-top: 30px; }
  .fc-hx__ctrl:not(#fc-wp-boost) { grid-row: 2; grid-column: 2; align-self: center; position: relative; z-index: 20; margin: 30px 0 0 28px; }
  /* the soft dark overlay: a light Night veil everywhere, deep on the words' side and along the foot */
  .fc-hx__media:not(#fc-wp-boost)::after {
    opacity: var(--hx-k2, .85);
    background:
      linear-gradient(90deg, rgba(20, 18, 42, .9) 0%, rgba(20, 18, 42, .8) 26%, rgba(20, 18, 42, .5) 46%, rgba(20, 18, 42, .14) 64%, rgba(20, 18, 42, 0) 80%),
      linear-gradient(0deg, rgba(20, 18, 42, .82) 0%, rgba(20, 18, 42, .36) 16%, rgba(20, 18, 42, 0) 34%),
      linear-gradient(180deg, rgba(20, 18, 42, .42) 0%, rgba(20, 18, 42, 0) 20%),
      linear-gradient(rgba(20, 18, 42, .16), rgba(20, 18, 42, .16));
  }
  .fc-hx__media:not(#fc-wp-boost)::before { background: radial-gradient(40% 48% at 88% 8%, rgba(255, 236, 200, .2), rgba(255, 236, 200, 0) 70%); }
  /* the full-frame neuron: the same overlay, carried a little further right, so the end of the title ("PLLC") never
     sits on the bright cell at large sizes */
  .fc-hx__slide--2 .fc-hx__media:not(#fc-wp-boost)::after {
    background:
      linear-gradient(90deg, rgba(20, 18, 42, .9) 0%, rgba(20, 18, 42, .82) 30%, rgba(20, 18, 42, .64) 50%, rgba(20, 18, 42, .3) 62%, rgba(20, 18, 42, 0) 78%),
      linear-gradient(0deg, rgba(20, 18, 42, .82) 0%, rgba(20, 18, 42, .36) 16%, rgba(20, 18, 42, 0) 34%),
      linear-gradient(180deg, rgba(20, 18, 42, .42) 0%, rgba(20, 18, 42, 0) 20%),
      linear-gradient(rgba(20, 18, 42, .16), rgba(20, 18, 42, .16));
  }
  /* the clay brain + heart: right of the words, its own layer (it moves more than the teal behind it) */
  .fc-hx__slide--3 .fc-hx__move:not(#fc-wp-boost) { translate: calc(var(--hx-mx) * -24px) calc(var(--hx-my) * -14px); }
  .fc-hx__art:not(#fc-wp-boost) { right: var(--hx-ar); top: var(--hx-at); width: var(--hx-aw); }
  .fc-hx__slide--3 .fc-hx__media:not(#fc-wp-boost)::before { background: radial-gradient(34% 42% at 72% 33%, rgba(255, 236, 200, .2), rgba(255, 236, 200, 0) 72%); mix-blend-mode: screen; z-index: 1; }
}
@media (min-width: 900px) and (max-width: 1179.98px) {
  .fc-hx:not(#fc-wp-boost) { --hx-aw: calc(var(--hx-wf) * .46); --hx-at: 9%; }
  .fc-hx__seglabel:not(#fc-wp-boost) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .fc-hx__seg:not(#fc-wp-boost) { justify-content: center; padding: 0 10px; }
  .fc-hx__segline:not(#fc-wp-boost) { min-width: 40px; }
}

/* short laptop and tablet screens (1536 x 864, 1366 x 768, 1280 x 720, 1024 x 600 ...; review fix 2026-10-11): the
   room above the words, the titles and the stage's least height follow the screen's height, so the credential line
   and the controls stay on the first screen under the two-row header. Screens taller than 920 px are unchanged; at
   1440 x 900 the stage's least height still decides, so nothing moves there. */
@media (min-width: 900px) and (max-height: 920px) {
  .fc-hx__frame:not(#fc-wp-boost) {
    padding-top: clamp(36px, calc(100vh - 816px), 112px);
    padding-top: clamp(36px, calc(100svh - 816px), 112px);
    min-height: clamp(460px, calc(100vh - var(--fc-hx-top, 140px)), 860px);
    min-height: clamp(460px, calc(100svh - var(--fc-hx-top, 140px)), 860px);
  }
  .fc-hx__h1:not(#fc-wp-boost) { font-size: min(clamp(2.5rem, 1.1rem + 4.6vw, 5.5rem), 9vh); font-size: min(clamp(2.5rem, 1.1rem + 4.6vw, 5.5rem), 9svh); }
  .fc-hx__title--s:not(#fc-wp-boost) { font-size: min(clamp(2.25rem, 1.05rem + 3.6vw, 4.375rem), 7.4vh); font-size: min(clamp(2.25rem, 1.05rem + 3.6vw, 4.375rem), 7.4svh); }
}

/* phone and small tablet: the picture is a frame on top, the controls sit on its lower edge, the words below */
@media (max-width: 899.98px) {
  .fc-hx:not(#fc-wp-boost) { --ph: clamp(270px, 80vw, 460px); }
  .fc-hx__frame:not(#fc-wp-boost) { display: grid; padding: 0 var(--fc-gutter) 26px; }
  .fc-hx__media:not(#fc-wp-boost) { bottom: auto; height: var(--ph); }
  .fc-hx__grain:not(#fc-wp-boost) { bottom: auto; height: var(--ph); }
  .fc-hx__copy:not(#fc-wp-boost) { padding-top: calc(var(--ph) + 50px); }
  .fc-hx__bar:not(#fc-wp-boost) { display: block; position: static; margin-top: 22px; }
  .fc-hx__ctrl:not(#fc-wp-boost) { position: absolute; z-index: 20; top: calc(var(--ph) - 28px); left: var(--fc-gutter); right: var(--fc-gutter); justify-content: space-between; }
  .fc-hx__mark:not(#fc-wp-boost) { display: none; }
  .fc-hx__media:not(#fc-wp-boost)::before { background: linear-gradient(180deg, rgba(20, 18, 42, .34) 0%, rgba(20, 18, 42, 0) 24%); }
  .fc-hx__media:not(#fc-wp-boost)::after { background: linear-gradient(180deg, rgba(28, 26, 54, 0) 54%, rgba(28, 26, 54, .55) 76%, rgba(28, 26, 54, .9) 90%, #1C1A36 100%); }
  .fc-hx__slide--1:not(#fc-wp-boost) { --hx-pos: 78% 45%; }
  .fc-hx__slide--1 .fc-hx__img:not(#fc-wp-boost) { animation-name: fc-hx-z105-130; }
  .fc-hx__art:not(#fc-wp-boost) { left: 5%; right: 5%; top: 44%; translate: 0 -50%; }
  .fc-hx__art .fc-hx__img:not(#fc-wp-boost) { --hx-o: 50% 50%; }
  .fc-hx__sub:not(#fc-wp-boost) { margin-top: 14px; }
  .fc-hx__cta:not(#fc-wp-boost) { margin-top: 10px; }
  .fc-hx__ctain:not(#fc-wp-boost) { display: block; }
  .fc-hx__cta .fc-btn:not(#fc-wp-boost) { width: 100%; padding: 10px 20px; }
  .fc-hx__cred:not(#fc-wp-boost) { font-size: 15px; }
  .fc-hx__seglabel:not(#fc-wp-boost) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .fc-hx__seg:not(#fc-wp-boost) { justify-content: center; padding: 0 8px; }
  .fc-hx__segline:not(#fc-wp-boost) { min-width: 30px; }
}
@media (max-width: 599.98px) {
  .fc-hx__cred:not(#fc-wp-boost) { font-size: 14.5px; }
  .fc-hx__holdbtn:not(#fc-wp-boost) { padding: 0 12px 0 13px; }
}
@media (max-width: 359.98px) { .fc-hx__segline:not(#fc-wp-boost) { min-width: 22px; } .fc-hx__seg:not(#fc-wp-boost) { padding: 0 6px; } }

/* scroll depth (supporting browsers, Motion on): the picture drifts slower than the page as the hero leaves */
@supports (animation-timeline: view()) {
  .fc-hx__drift:not(#fc-wp-boost) { animation: fc-hx-drift linear both; animation-timeline: view(); animation-range: exit 0% exit 100%; }
}
@keyframes fc-hx-drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, 8%, 0); } }

/* forced colours and print */
@media (forced-colors: active) {
  .fc-hx__ctrl:not(#fc-wp-boost), .fc-hx__holdbtn:not(#fc-wp-boost), .fc-hx__seg:not(#fc-wp-boost) { border: 1.5px solid ButtonText; }
  .fc-hx__media:not(#fc-wp-boost)::before, .fc-hx__media:not(#fc-wp-boost)::after, .fc-hx__sweep:not(#fc-wp-boost), .fc-hx__grain:not(#fc-wp-boost) { display: none; }
  .fc-hx__segline:not(#fc-wp-boost) { forced-color-adjust: none; background: GrayText; }
  .fc-hx__segline i:not(#fc-wp-boost) { forced-color-adjust: none; background: Highlight; }
  .fc-hx__art .fc-hx__img:not(#fc-wp-boost) { -webkit-mask-image: none; mask-image: none; }
}
@media print {
  .fc-hx__media:not(#fc-wp-boost), .fc-hx__bar:not(#fc-wp-boost), .fc-hx__ctrl:not(#fc-wp-boost), .fc-hx__grain:not(#fc-wp-boost) { display: none !important; }
  .fc-hx__frame:not(#fc-wp-boost) { background: #fff !important; color: #000 !important; padding: 0 !important; min-height: 0 !important; box-shadow: none !important; }
  .fc-hx__slides:not(#fc-wp-boost) { display: block !important; }
  .fc-hx__copy:not(#fc-wp-boost) { padding: 0 !important; margin: 24px 0 0 !important; translate: none !important; visibility: visible !important; }
  .fc-hx__ln:not(#fc-wp-boost) { opacity: 1 !important; transform: none !important; }
  .fc-hx__title:not(#fc-wp-boost), .fc-hx__sub:not(#fc-wp-boost), .fc-hx__accent:not(#fc-wp-boost), .fc-hx__kick:not(#fc-wp-boost) { color: #000 !important; text-shadow: none !important; }
}
/* hero v4 timeline, generated by tools/build.py: 3 slides x 9.5s (cross-fade 1.4s), loop 28.5s; the page starts 2.4s into slide 1 */
@keyframes fc-hx-in0 {
  0% { opacity: 1; transform: none; }
  38.2456% { opacity: 1; transform: none; }
  38.2807% { opacity: 0; transform: translate3d(200%, 0, 0); }
  85.9649% { opacity: 0; transform: translate3d(200%, 0, 0); }
  86% { opacity: 0; transform: none; }
  100% { opacity: 0; transform: none; }
}
@keyframes fc-hx-in {
  0% { opacity: 0; transform: none; animation-timing-function: cubic-bezier(.45, 0, .2, 1); }
  4.9123% { opacity: 1; transform: none; }
  38.2456% { opacity: 1; transform: none; }
  38.2807% { opacity: 0; transform: translate3d(200%, 0, 0); }
  85.9649% { opacity: 0; transform: translate3d(200%, 0, 0); }
  86% { opacity: 0; transform: none; }
  100% { opacity: 0; transform: none; }
}
@keyframes fc-hx-inout {
  0% { opacity: 0; transform: none; animation-timing-function: cubic-bezier(.45, 0, .2, 1); }
  4.9123% { opacity: 1; transform: none; }
  33.3333% { opacity: 1; transform: none; animation-timing-function: cubic-bezier(.45, 0, .2, 1); }
  38.2456% { opacity: 0; transform: none; }
  38.2807% { opacity: 0; transform: translate3d(200%, 0, 0); }
  85.9649% { opacity: 0; transform: translate3d(200%, 0, 0); }
  86% { opacity: 0; transform: none; }
  100% { opacity: 0; transform: none; }
}
@keyframes fc-hx-z100-106 {
  0% { transform: scale(1); }
  38.2456% { transform: scale(1.06); }
  38.2807% { transform: scale(1); }
  100% { transform: scale(1); }
}
@keyframes fc-hx-z100-110 {
  0% { transform: scale(1); }
  38.2456% { transform: scale(1.1); }
  38.2807% { transform: scale(1); }
  100% { transform: scale(1); }
}
@keyframes fc-hx-z100-115 {
  0% { transform: scale(1); }
  38.2456% { transform: scale(1.15); }
  38.2807% { transform: scale(1); }
  100% { transform: scale(1); }
}
@keyframes fc-hx-z105-130 {
  0% { transform: scale(1.05); }
  38.2456% { transform: scale(1.3); }
  38.2807% { transform: scale(1.05); }
  100% { transform: scale(1.05); }
}
@keyframes fc-hx-z105-140 {
  0% { transform: scale(1.05); }
  38.2456% { transform: scale(1.4); }
  38.2807% { transform: scale(1.05); }
  100% { transform: scale(1.05); }
}
@keyframes fc-hx-vis {
  0% { visibility: hidden; }
  2.4211% { visibility: hidden; }
  2.4561% { visibility: visible; }
  36.3158% { visibility: visible; }
  36.3509% { visibility: hidden; }
  100% { visibility: hidden; }
}
@keyframes fc-hx-ln {
  0% { opacity: 0; transform: translate3d(0, 28px, 0); }
  2.4561% { opacity: 0; transform: translate3d(0, 28px, 0); animation-timing-function: cubic-bezier(.16, .84, .3, 1); }
  5.614% { opacity: 1; transform: none; }
  32.807% { opacity: 1; transform: none; animation-timing-function: cubic-bezier(.55, 0, .75, .2); }
  34.2105% { opacity: 0; transform: translate3d(0, -10px, 0); }
  34.2456% { opacity: 0; transform: translate3d(0, 28px, 0); }
  100% { opacity: 0; transform: translate3d(0, 28px, 0); }
}
@keyframes fc-hx-cta {
  0% { opacity: 1; transform: translate3d(calc(-100% - 40px), 0, 0); }
  2.9825% { opacity: 1; transform: translate3d(calc(-100% - 40px), 0, 0); animation-timing-function: cubic-bezier(.16, .84, .3, 1); }
  6.1404% { opacity: 1; transform: none; }
  32.807% { opacity: 1; transform: none; animation-timing-function: cubic-bezier(.55, 0, .75, .2); }
  34.2105% { opacity: 1; transform: translate3d(calc(-100% - 40px), 0, 0); }
  100% { opacity: 1; transform: translate3d(calc(-100% - 40px), 0, 0); }
}
@keyframes fc-hx-rip {
  0% { stroke-dashoffset: 100; }
  8.5965% { stroke-dashoffset: 100; animation-timing-function: cubic-bezier(.22, .61, .36, 1); }
  12.6316% { stroke-dashoffset: 0; }
  34.2105% { stroke-dashoffset: 0; }
  34.2456% { stroke-dashoffset: 100; }
  100% { stroke-dashoffset: 100; }
}
@keyframes fc-hx-sweep {
  0% { opacity: 0; transform: translate3d(30%, 0, 0); }
  9.1228% { opacity: 0; transform: translate3d(30%, 0, 0); }
  11.9298% { opacity: 1; transform: translate3d(7.50%, 0, 0); }
  17.5439% { opacity: 1; transform: translate3d(-37.50%, 0, 0); }
  20.3509% { opacity: 0; transform: translate3d(-60%, 0, 0); }
  20.386% { opacity: 0; transform: translate3d(30%, 0, 0); }
  100% { opacity: 0; transform: translate3d(30%, 0, 0); }
}
@keyframes fc-hx-prog {
  0% { opacity: 1; transform: scaleX(0); }
  33.3333% { opacity: 1; transform: scaleX(1); animation-timing-function: cubic-bezier(.22, .61, .36, 1); }
  35.4386% { opacity: 0; transform: scaleX(1); }
  35.4737% { opacity: 0; transform: scaleX(0); }
  100% { opacity: 0; transform: scaleX(0); }
}
@keyframes fc-hx-lab {
  0% { opacity: .72; animation-timing-function: cubic-bezier(.22, .61, .36, 1); }
  2.1053% { opacity: 1; }
  33.3333% { opacity: 1; animation-timing-function: cubic-bezier(.22, .61, .36, 1); }
  35.4386% { opacity: .72; }
  100% { opacity: .72; }
}

/* ---------- 9c. The hero's room for the header (integrated 2026-10-11) ----------
   The homepage now has the shared two-row header (128 px tall at the top from 1,180 px, 76 px below; the old utility
   row + header were 33 + 76 = 109 px from 768 px). The hero's --fc-hx-top (default 140 px, set for the old 109 px)
   follows it, so the stage ends where it did: 109 + 31 = 140, 128 + 31 = 159, 76 + 31 = 107. Measured with
   render/quick/plan-hx.json (header and stage boxes at 1,920 to 768 px, before and after). */
@media (min-width: 900px) { .fc-hx:not(#fc-wp-boost) { --fc-hx-top: 107px; } }
@media (min-width: 1180px) { :root:not(.fc-nav-compact) .fc-hx:not(#fc-wp-boost) { --fc-hx-top: 159px; } }

/* ---------- 10. Holistic Wellness (the welcome) ---------- */
.fc-welcome:not(#fc-wp-boost) { background-color: var(--fc-paper); padding-top: 24px; }
@media (min-width: 1024px) { .fc-welcome:not(#fc-wp-boost) { padding-top: 48px; } }
.fc-welcome__head:not(#fc-wp-boost) { max-width: 920px; }
.fc-welcome__text:not(#fc-wp-boost) { display: grid; gap: 22px; }
@media (min-width: 1024px) { .fc-welcome__text:not(#fc-wp-boost) { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 56px; align-items: start; } }
.fc-welcome__intro:not(#fc-wp-boost) { font-family: var(--fc-serif); font-size: clamp(1.25rem, 1.08rem + .6vw, 1.5rem); line-height: 1.5; color: var(--fc-ink); margin: 0; max-width: 68ch; }
.fc-welcome__more:not(#fc-wp-boost) { max-width: 68ch; }
.fc-welcome__body:not(#fc-wp-boost) { margin: 0; color: var(--fc-ink-soft); }
.fc-welcome__more .fc-drawer:not(#fc-wp-boost) { margin-top: 26px; }
/* the four subsections, in the site's order: one column on phones, a real 2 x 2 grid (rows 1-2 and 3-4) from 768 px */
.fc-wcards:not(#fc-wp-boost) { list-style: none; margin: 40px 0 0; padding: 0; display: grid; gap: 16px; }
@media (min-width: 768px) { .fc-wcards:not(#fc-wp-boost) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 1024px) { .fc-wcards:not(#fc-wp-boost) { margin-top: 56px; } }
.fc-wcard:not(#fc-wp-boost) { position: relative; display: flex; flex-direction: column; padding: 26px 26px 24px; }
@media (min-width: 1024px) { .fc-wcard:not(#fc-wp-boost) { padding: 30px 32px 28px; } }
.fc-wcard__h:not(#fc-wp-boost) { font-family: var(--fc-serif); font-weight: 600; font-size: 1.2em; line-height: 1.26; color: var(--fc-ink); margin: 16px 0 8px; font-variation-settings: "SOFT" 50; }
.fc-wcard__lead:not(#fc-wp-boost) { font-weight: 700; font-size: 15.5px; line-height: 1.45; color: var(--fc-purple); margin: 0 0 8px; }
.fc-wcard p:not(#fc-wp-boost) { font-size: 16px; line-height: 1.62; color: var(--fc-ink-soft); }
.fc-wcard > :last-child:not(#fc-wp-boost) { margin-bottom: 0; }
.fc-wcard--cta:not(#fc-wp-boost) { background: var(--fc-purple); border-color: var(--fc-purple); box-shadow: 0 30px 60px -30px rgba(42, 35, 102, .7); }
.fc-wcard--cta .fc-wcard__h:not(#fc-wp-boost) { color: var(--fc-cream); }
.fc-wcard--cta .fc-wcard__lead:not(#fc-wp-boost) { color: var(--fc-gold); }
.fc-wcard--cta p:not(#fc-wp-boost) { color: rgba(251, 246, 238, .9); }
.fc-page .fc-wcard--cta p a:not(.fc-btn):not(#fc-wp-boost) { color: var(--fc-cream); font-weight: 700; }
.fc-wcard__btn:not(#fc-wp-boost) { margin-top: 18px; }

/* ---------- 11. Drawers (native <details>) ---------- */
.fc-drawer:not(#fc-wp-boost) { margin-top: 36px; border-top: 1px solid var(--fc-line); border-bottom: 1px solid var(--fc-line); }
.fc-drawer > summary:not(#fc-wp-boost) { list-style: none; }
.fc-drawer > summary:not(#fc-wp-boost)::-webkit-details-marker { display: none; }
.fc-drawer__sum:not(#fc-wp-boost) {
  display: flex; align-items: center; gap: 14px;
  min-height: 60px; padding: 10px 2px; cursor: pointer;
  font: 600 17px/1.35 var(--fc-sans); color: var(--fc-purple);
}
.fc-drawer__sum:hover:not(#fc-wp-boost) { color: var(--fc-purple-deep); }
.fc-drawer__chev:not(#fc-wp-boost) { position: relative; flex: none; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid currentColor; transition: background-color .3s; }
.fc-drawer__chev:not(#fc-wp-boost)::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px;
  border-right: 1.7px solid currentColor; border-bottom: 1.7px solid currentColor;
  transform: translate(-50%, -70%) rotate(45deg); transition: transform .3s var(--fc-ease-out), border-color .3s;
}
.fc-drawer__chev:not(#fc-wp-boost)::before { content: ""; position: absolute; inset: -1.5px; border-radius: 50%; border: 1.5px solid currentColor; opacity: 0; }
.fc-drawer[open] > .fc-drawer__sum .fc-drawer__chev:not(#fc-wp-boost) { background: currentColor; }
.fc-drawer[open] > .fc-drawer__sum .fc-drawer__chev:not(#fc-wp-boost)::after { border-color: var(--fc-card); transform: translate(-50%, -25%) rotate(-135deg); }
.fc-drawer__body:not(#fc-wp-boost) { padding: 6px 2px 30px; font-size: 17px; line-height: 1.7; color: var(--fc-ink); }
.fc-drawer__body > :last-child:not(#fc-wp-boost) { margin-bottom: 0; }

/* smooth drawer height where the browser supports it */
@supports selector(::details-content) {
  html[data-fc-motion="on"] .fc-page:not(#fc-wp-boost) { interpolate-size: allow-keywords; }
  html[data-fc-motion="on"] .fc-drawer:not(#fc-wp-boost)::details-content,
  html[data-fc-motion="on"] .fc-qa:not(#fc-wp-boost)::details-content { height: 0; overflow: clip; }
  /* the height animates only once the page has landed (html.fc-smooth, fc-kit.js section 3a; 2026-10-11): a drawer
     that the fold snippet closes while the page is still loading closes at once, so it never slides the content
     under a #target for half a second after the landing */
  html.fc-smooth[data-fc-motion="on"] .fc-drawer:not(#fc-wp-boost)::details-content,
  html.fc-smooth[data-fc-motion="on"] .fc-qa:not(#fc-wp-boost)::details-content {
    transition: height .45s var(--fc-ease-out), content-visibility .45s allow-discrete;
  }
  html[data-fc-motion="on"] .fc-drawer[open]:not(#fc-wp-boost)::details-content,
  html[data-fc-motion="on"] .fc-qa[open]:not(#fc-wp-boost)::details-content { height: auto; }
}

/* ---------- 12. The break-up slider: 13 photo cards on an inset Night panel ("photo deck") ----------
   Large photo cards travel sideways together, the neighbours peek, and the words sit on a cream card that floats
   over the front photo's lower edge (at most 36 % of its height). Drag or swipe; a click on a neighbour brings it
   forward. Layout needs html.fc-js (fc-boot.js sets it before the first paint); every movement needs Motion on. */
.fc-night:not(#fc-wp-boost) { background: var(--fc-night); color: var(--fc-cream); }
.fc-night .fc-h2:not(#fc-wp-boost), .fc-night .fc-h3:not(#fc-wp-boost) { color: var(--fc-cream); }
.fc-night p a:not(.fc-btn):not(#fc-wp-boost) { color: var(--fc-sky); }

.fcb-fam:not(#fc-wp-boost) { position: relative; padding: var(--fc-stage-inset) var(--fc-stage-inset) 0; background: var(--fc-paper); }
.fcb-panel:not(#fc-wp-boost) {
  position: relative; isolation: isolate; overflow: hidden;
  border-radius: var(--fc-stage-radius); padding: 44px 0 52px;
  background: var(--fc-night); color: var(--fc-cream);
}
.fcb-panel:not(#fc-wp-boost)::before {
  /* a low glow behind the front card: teal, because deep sun gold at low opacity blends through plum on this navy
     (hard rule: no pink; final review 2026-10-07) */
  content: ""; position: absolute; z-index: -1; left: 50%; top: 42%; width: 120%; height: 90%; translate: -50% -50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(48, 181, 201, .14), rgba(48, 181, 201, .05) 55%, rgba(48, 181, 201, 0));
}
/* the logo's light rings (14 degrees, the logo's radius ratios), faint and still */
.fcb-rings:not(#fc-wp-boost) { display: block; overflow: visible; }
.fcb-rings ellipse:not(#fc-wp-boost) { fill: none; stroke: var(--fc-sun); vector-effect: non-scaling-stroke; }
.fcb-pdecor:not(#fc-wp-boost) { position: absolute; z-index: -1; right: -60px; bottom: -40px; width: 300px; pointer-events: none; }
.fcb-pdecor ellipse:not(#fc-wp-boost) { stroke: var(--fc-gold); stroke-width: 1.3px; opacity: .2; }
.fcb-pdecor ellipse:nth-child(n+3):not(#fc-wp-boost) { opacity: .12; }

.fcb-deck:not(#fc-wp-boost) {
  position: relative; container-type: inline-size;
  /* phone geometry (390 reference): --fcb-k = centre offset as a share of the card width, --fcb-s = scale */
  --fcb-fw: calc(100cqw - 56px); --fcb-fh: calc(var(--fcb-fw) * 1.08);
  --fcb-k1: .968; --fcb-k2: 1.906; --fcb-k3: 2.85; --fcb-s1: .88; --fcb-s2: .88; --fcb-o2: 1; --fcb-dim1: .5; --fcb-dim2: .6;
}
.fcb-dtrack:not(#fc-wp-boost) { position: relative; }
html.fc-js .fcb-dtrack:not(#fc-wp-boost) { display: grid; touch-action: pan-y; }
html.fc-js .fcb-dslide:not(#fc-wp-boost) { grid-area: 1 / 1; min-width: 0; }
.fcb-dslide:not(#fc-wp-boost) { position: relative; }
html:not(.fc-js) .fcb-dslide + .fcb-dslide:not(#fc-wp-boost) { margin-top: 40px; }

/* the photo card */
.fcb-dfig:not(#fc-wp-boost) {
  position: relative; margin: 0 auto; width: var(--fcb-fw); height: var(--fcb-fh);
  border-radius: 24px; overflow: hidden; isolation: isolate;
  background: var(--fcb-ph, #4A4676);
  box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7);
  transform-origin: 50% 50%;
}
.fcb-dfig img:not(#fc-wp-boost) {
  position: absolute; inset: 0; width: 100%; height: 100%; max-width: none;
  object-fit: cover; object-position: var(--fcb-op, 50% 50%);
  transform-origin: var(--fx, 50%) var(--fy, 50%);
  -webkit-user-drag: none; user-select: none;
}
.fcb-dfig:not(#fc-wp-boost)::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: var(--fc-night); opacity: var(--fcb-dim, 0); }
.fcb-dfig:not(#fc-wp-boost)::after { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(251, 246, 238, .14); }

/* the cream card over the photo's lower edge */
.fcb-dcard:not(#fc-wp-boost) {
  position: relative; z-index: 3; margin: -56px auto 0; width: calc(var(--fcb-fw) - 24px);
  padding: 22px 22px 24px; border-radius: 22px;
  background: var(--fc-card); color: var(--fc-ink);
  box-shadow: 0 2px 4px rgba(0, 0, 0, .08), 0 30px 50px -24px rgba(0, 0, 0, .6);
}
html:not(.fc-js) .fcb-dcard:not(#fc-wp-boost) { margin-top: -40px; }
.fcb-dcard:not(#fc-wp-boost)::after {
  /* the small ring seal in the corner */
  content: ""; position: absolute; right: 18px; top: 18px; width: 22px; height: 22px; border-radius: 50%; pointer-events: none;
  border: 1.5px solid rgba(241, 164, 52, .7); box-shadow: inset 0 0 0 4px var(--fc-card), inset 0 0 0 5.5px rgba(241, 164, 52, .45);
}
.fcb-ln:not(#fc-wp-boost) { display: block; }
.fcb-ln > span:not(#fc-wp-boost) { display: block; }
.fcb-dcard__h:not(#fc-wp-boost) {
  margin: 0; padding-right: 30px; font-family: var(--fc-serif); font-weight: 400; color: var(--fc-ink);
  font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem); line-height: 1.12; letter-spacing: -.015em;
  text-wrap: balance; font-variation-settings: "SOFT" 50, "WONK" 0;
}
.fcb-dcard__h--long:not(#fc-wp-boost) { font-size: clamp(1.3125rem, 1.05rem + .9vw, 1.8125rem); line-height: 1.16; }
.fcb-dcard__sub:not(#fc-wp-boost) { margin: 12px 0 0; font-size: 17px; line-height: 1.5; color: var(--fc-ink-soft); max-width: 40ch; }
.fcb-dcard__cta:not(#fc-wp-boost) { margin: 20px 0 0; }
@media (max-width: 599.98px) {
  .fcb-dcard__h:not(#fc-wp-boost) { font-size: 1.625rem; }
  .fcb-dcard__h--long:not(#fc-wp-boost) { font-size: 1.5rem; }
  .fcb-dcard__cta .fc-btn:not(#fc-wp-boost) { width: 100%; padding: 10px 16px; font-size: 16.5px; }
}
/* slide 1, the letter: the four words get a gold strike, drawn one by one when the slide shows */
.fcb-letter:not(#fc-wp-boost) { margin: 0; font-family: var(--fc-serif); font-weight: 400; color: var(--fc-ink); font-variation-settings: "SOFT" 50, "WONK" 0; }
.fcb-letter__dear:not(#fc-wp-boost) { font-style: italic; font-size: clamp(1.25rem, 1.05rem + .6vw, 1.625rem); line-height: 1.42; color: var(--fc-ink-soft); padding-right: 30px; text-wrap: balance; }
.fcb-letter__breakup:not(#fc-wp-boost) { margin-top: .08em; white-space: nowrap; font-size: clamp(2.125rem, 1.4rem + 2.9vw, 3.75rem); line-height: 1.02; letter-spacing: -.025em; color: var(--fc-purple); }
.fcb-w:not(#fc-wp-boost) { position: relative; }
.fcb-strike:not(#fc-wp-boost) { position: absolute; left: -4%; width: 108%; top: calc(50% - .28em); height: .55em; overflow: visible; pointer-events: none; }
.fcb-strike path:not(#fc-wp-boost) { fill: none; stroke: var(--fc-sun); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 100 100; stroke-dashoffset: 0; }
/* focus: lime on the Night panel, ink with an amber halo on the cream card */
.fc-page .fcb-panel :focus-visible:not(#fc-wp-boost) { outline: 2px solid var(--fc-lime); outline-offset: 2px; box-shadow: 0 0 0 6px rgba(200, 218, 60, .28); }
.fc-page .fcb-panel .fcb-dcard :focus-visible:not(#fc-wp-boost) { outline-color: var(--fc-ink); box-shadow: 0 0 0 6px rgba(241, 164, 52, .45); }

/* the capsule on the deck: Night-2, no blur. Phones: two rows (timer, rail and counter above; Play left, Previous /
   Next right); the DOM keeps Play first and none of the first row is focusable. From 600 px: one row above the front
   photo, as wide as it, so the 13-step rail reads as dashes */
.fcb-deck > .fc-capsule:not(#fc-wp-boost) {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px 10px;
  margin: 0 28px 28px; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none;
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
.fcb-deck > .fc-capsule .fc-capsule__time:not(#fc-wp-boost) { grid-row: 1; grid-column: 1; margin: 0; }
.fcb-deck > .fc-capsule .fcb-rail:not(#fc-wp-boost) { grid-row: 1; grid-column: 2; }
.fcb-deck > .fc-capsule .fc-capsule__count:not(#fc-wp-boost) { grid-row: 1; grid-column: 3; justify-self: end; margin: 0; }
.fcb-deck > .fc-capsule .fc-capsule__play:not(#fc-wp-boost) { grid-row: 2; grid-column: 1 / 3; justify-self: start; background: var(--fc-night-2); box-shadow: inset 0 0 0 1px rgba(251, 246, 238, .22); }
.fcb-deck > .fc-capsule .fc-capsule__play:hover:not(#fc-wp-boost) { box-shadow: inset 0 0 0 1px var(--fc-cream); }
.fcb-deck > .fc-capsule .fc-capsule__navs:not(#fc-wp-boost) { grid-row: 2; grid-column: 3; justify-self: end; }
/* the rail: where you are among the 13 (position only; the ring timer shows the time) */
.fcb-rail:not(#fc-wp-boost) { display: flex; gap: 3px; min-width: 0; }
.fcb-seg:not(#fc-wp-boost) { flex: 1 1 0; height: 3px; border-radius: 4px; background: rgba(251, 246, 238, .18); overflow: hidden; }
.fcb-seg i:not(#fc-wp-boost) { display: block; height: 100%; border-radius: inherit; background: var(--fc-sun); transform: scaleX(0); transform-origin: left center; }
.fcb-seg.is-past i:not(#fc-wp-boost), .fcb-seg.is-now i:not(#fc-wp-boost) { transform: scaleX(1); }
html[data-fc-motion="on"] .fcb-seg i:not(#fc-wp-boost) { transition: transform .45s var(--fc-ease-out); }

/* deck positions (JS on): every card sits at its signed distance d from the front card */
html.fc-js .fcb-dfig:not(#fc-wp-boost) { transform: translateX(calc(var(--fcb-x, 0) * 100%)) scale(var(--fcb-sc, 1)); opacity: var(--fcb-o, 1); }
html.fc-js .fcb-dslide[data-d="0"]:not(#fc-wp-boost) { z-index: 7; }
html.fc-js .fcb-dslide[data-d="1"]:not(#fc-wp-boost), html.fc-js .fcb-dslide[data-d="-1"]:not(#fc-wp-boost) { z-index: 6; --fcb-sc: var(--fcb-s1); --fcb-dim: var(--fcb-dim1); }
html.fc-js .fcb-dslide[data-d="2"]:not(#fc-wp-boost), html.fc-js .fcb-dslide[data-d="-2"]:not(#fc-wp-boost) { z-index: 5; --fcb-sc: var(--fcb-s2); --fcb-dim: var(--fcb-dim2); --fcb-o: var(--fcb-o2); }
html.fc-js .fcb-dslide[data-d="3"]:not(#fc-wp-boost), html.fc-js .fcb-dslide[data-d="-3"]:not(#fc-wp-boost) { z-index: 4; --fcb-sc: var(--fcb-s2); --fcb-dim: var(--fcb-dim2); --fcb-o: 0; }
html.fc-js .fcb-dslide[data-d="1"]:not(#fc-wp-boost) { --fcb-x: var(--fcb-k1); }
html.fc-js .fcb-dslide[data-d="-1"]:not(#fc-wp-boost) { --fcb-x: calc(var(--fcb-k1) * -1); }
html.fc-js .fcb-dslide[data-d="2"]:not(#fc-wp-boost) { --fcb-x: var(--fcb-k2); }
html.fc-js .fcb-dslide[data-d="-2"]:not(#fc-wp-boost) { --fcb-x: calc(var(--fcb-k2) * -1); }
html.fc-js .fcb-dslide[data-d="3"]:not(#fc-wp-boost) { --fcb-x: var(--fcb-k3); }
html.fc-js .fcb-dslide[data-d="-3"]:not(#fc-wp-boost) { --fcb-x: calc(var(--fcb-k3) * -1); }
/* far cards do not load their photo until they come within two places */
html.fc-js .fcb-dslide[data-d="3"] img:not(#fc-wp-boost), html.fc-js .fcb-dslide[data-d="-3"] img:not(#fc-wp-boost) { display: none; }
html.fc-js .fcb-dslide:not([data-d="0"]):not(#fc-wp-boost) { pointer-events: none; }
html.fc-js .fcb-dslide:not([data-d="0"]) .fcb-dcard:not(#fc-wp-boost) { opacity: 0; }
html.fc-js .fcb-dslide:not([data-d="0"]):not(.is-out):not(.fcb-keep) .fcb-dcard:not(#fc-wp-boost) { visibility: hidden; }
html.fc-js .fcb-dslide.is-out .fcb-dcard:not(#fc-wp-boost) { opacity: 1; }
html.fc-js .fcb-dtrack:not(#fc-wp-boost) { cursor: grab; }
html.fc-js .fcb-deck[data-hint="next"] .fcb-dslide[data-d="1"]:not(#fc-wp-boost), html.fc-js .fcb-deck[data-hint="prev"] .fcb-dslide[data-d="-1"]:not(#fc-wp-boost) { --fcb-dim: .28; }
html.fc-js .fcb-deck.is-drag .fcb-dtrack:not(#fc-wp-boost) { cursor: grabbing; user-select: none; -webkit-user-select: none; }
html.fc-js .fcb-deck .fcb-dcard:not(#fc-wp-boost) { cursor: auto; }

@media (min-width: 600px) {
  .fcb-deck:not(#fc-wp-boost) {
    --fcb-fw: min(760px, 80cqw); --fcb-fh: calc(var(--fcb-fw) * .6);
    --fcb-k1: .955; --fcb-k2: 1.86; --fcb-k3: 2.77; --fcb-s1: .85; --fcb-s2: .85; --fcb-dim1: .5; --fcb-dim2: .6;
  }
  .fcb-panel:not(#fc-wp-boost) { padding: 56px 0 64px; }
  .fcb-dfig:not(#fc-wp-boost) { border-radius: 28px; }
  .fcb-dcard:not(#fc-wp-boost) { width: calc(var(--fcb-fw) - 64px); margin-top: -72px; padding: 26px 30px 28px; }
  .fcb-pdecor:not(#fc-wp-boost) { width: 420px; right: -90px; bottom: -70px; }
  /* one row, as wide as the front photo and aligned with it: Play, timer, rail, counter, Previous, Next */
  .fcb-deck > .fc-capsule:not(#fc-wp-boost) {
    display: flex; gap: 4px; margin: 0 calc((100cqw - var(--fcb-fw)) / 2) 18px; padding: 5px;
    border: 1px solid rgba(251, 246, 238, .2); border-radius: 999px; background: var(--fc-night-2);
    box-shadow: 0 14px 30px -18px rgba(0, 0, 0, .6);
  }
  .fcb-deck > .fc-capsule .fc-capsule__play:not(#fc-wp-boost) { background: transparent; box-shadow: none; }
  .fcb-deck > .fc-capsule .fc-capsule__play:hover:not(#fc-wp-boost) { background: rgba(251, 246, 238, .1); box-shadow: none; }
  .fcb-deck > .fc-capsule .fc-capsule__time:not(#fc-wp-boost) { margin: 0 2px; }
  .fcb-deck > .fc-capsule .fcb-rail:not(#fc-wp-boost) { flex: 1 1 auto; min-width: 72px; gap: 4px; margin: 0 6px; }
  .fcb-deck > .fc-capsule .fc-capsule__count:not(#fc-wp-boost) { margin: 0 8px 0 6px; }
  .fcb-seg:not(#fc-wp-boost) { height: 4px; }
}
/* desktop: a wide front card; the text card stays in the flow (so the shared cell sizes to the tallest slide) and
   overlaps the photo's lower left corner by at most 36 % of its height */
@media (min-width: 1024px) {
  .fcb-deck:not(#fc-wp-boost) {
    --fcb-fw: min(880px, 66cqw); --fcb-fh: calc(var(--fcb-fw) * .614); --fcb-ov: min(200px, calc(var(--fcb-fh) * .36));
    --fcb-k1: .93; --fcb-k2: 1.75; --fcb-k3: 2.57; --fcb-s1: .78; --fcb-s2: .78; --fcb-o2: 1; --fcb-dim1: .52; --fcb-dim2: .62;
  }
  .fcb-panel:not(#fc-wp-boost) { padding: 56px 0 64px; }
  .fcb-dfig:not(#fc-wp-boost) { border-radius: 30px; }
  .fcb-dslide:not(#fc-wp-boost) { padding-bottom: 0; }
  /* the card sits inside the front photo's lower left corner (28 px in), never out over the neighbour */
  .fcb-dcard:not(#fc-wp-boost) {
    margin: calc(-1 * var(--fcb-ov)) 0 0 calc(50% - var(--fcb-fw) / 2 + 28px);
    width: min(460px, calc(var(--fcb-fw) * .56)); padding: 30px 34px 32px; border-radius: 26px;
  }
  html:not(.fc-js) .fcb-dcard:not(#fc-wp-boost) { margin-top: -64px; }
}
/* small laptops: a wider card, so the booking button keeps to one line */
@media (min-width: 1024px) and (max-width: 1179.98px) {
  .fcb-dcard:not(#fc-wp-boost) { width: min(440px, calc(var(--fcb-fw) * .66)); padding: 26px 28px 28px; }
  .fcb-dcard__cta .fc-btn:not(#fc-wp-boost) { white-space: nowrap; padding-inline: 22px; font-size: 16px; }
}
@media (min-width: 1180px) {
  /* the whole panel (capsule, photo, card) fits a 1440 x 900 screen under the header */
  .fcb-deck:not(#fc-wp-boost) { --fcb-fw: min(880px, 64cqw); --fcb-ov: min(210px, calc(var(--fcb-fh) * .38)); }
  .fcb-panel:not(#fc-wp-boost) { padding: 44px 0 48px; }
}
/* browsers without container-query units (before Safari 16, Chrome 105, Firefox 110): the same sizes from the viewport */
@supports not (width: 1cqw) {
  .fcb-deck:not(#fc-wp-boost) { --fcb-fw: calc(100vw - 72px); }
  @media (min-width: 600px) {
    .fcb-deck:not(#fc-wp-boost) { --fcb-fw: min(760px, 76vw); }
    .fcb-deck > .fc-capsule:not(#fc-wp-boost) { margin-inline: calc((100vw - 32px - var(--fcb-fw)) / 2); }
  }
  @media (min-width: 1024px) { .fcb-deck:not(#fc-wp-boost) { --fcb-fw: min(880px, 63vw); } .fcb-deck > .fc-capsule:not(#fc-wp-boost) { margin-inline: calc((100vw - 48px - var(--fcb-fw)) / 2); } }
  @media (min-width: 1180px) { .fcb-deck:not(#fc-wp-boost) { --fcb-fw: min(880px, 61vw); } }
}

/* Motion on: every timing lives here */
@keyframes fcb-rise { from { transform: translateY(108%); } to { transform: none; } }
@keyframes fcb-up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes fcb-kb { from { transform: scale(1); } to { transform: scale(1.06); } }
@keyframes fcb-draw { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@keyframes fcb-card-fade-out { to { opacity: 0; transform: translateY(10px); filter: blur(2px); } }
@keyframes fcb-card-fade-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
/* cards travel together; the front card's text card fades down and out before the photos cross it, the next one
   rises in once its photo has almost arrived (from .7 s of the 1 s travel; no wipe, so no letter is ever cut) */
html[data-fc-motion="on"] .fcb-dfig:not(#fc-wp-boost) { transition: transform 1s var(--fc-ease-in-out), opacity .8s ease; }
html[data-fc-motion="on"] .fcb-dfig:not(#fc-wp-boost)::before { transition: opacity 1s ease; }
html[data-fc-motion="on"] .fcb-deck.is-drag .fcb-dfig:not(#fc-wp-boost), html[data-fc-motion="on"] .fcb-deck.is-drag .fcb-dfig:not(#fc-wp-boost)::before, html[data-fc-motion="on"] .fcb-deck.is-drag .fcb-dcard:not(#fc-wp-boost) { transition: none; }
/* the slow zoom on the front photo (linear, from its subject), continued on the card that leaves; only while live */
.fcb-dslide:not(#fc-wp-boost) { --fcb-kbdur: 8000ms; }
.fcb-dslide--letter:not(#fc-wp-boost) { --fcb-kbdur: 10000ms; }
html[data-fc-motion="on"] .fcb-dslide[data-d="0"] .fcb-dfig img:not(#fc-wp-boost),
html[data-fc-motion="on"] .fcb-dslide.is-out .fcb-dfig img:not(#fc-wp-boost) { animation: fcb-kb var(--fcb-kbdur) linear both; }
html[data-fc-motion="on"] .fcb-car:not(.is-live) .fcb-dfig img:not(#fc-wp-boost) { animation-play-state: paused; }
html[data-fc-motion="on"] .fcb-dslide.is-out .fcb-dcard:not(#fc-wp-boost) { animation: fcb-card-fade-out .28s var(--fc-ease-in) both; }
html[data-fc-motion="on"] .fcb-dslide.is-in .fcb-dcard:not(#fc-wp-boost) { animation: fcb-card-fade-in .5s var(--fc-ease-out) .7s both; }
html[data-fc-motion="on"] .fcb-dslide.is-in .fcb-ln:not(#fc-wp-boost) { overflow: hidden; padding-bottom: .12em; margin-bottom: -.12em; }
html[data-fc-motion="on"] .fcb-dslide.is-in .fcb-ln > span:not(#fc-wp-boost) { animation: fcb-rise .8s var(--fc-ease-out) both; animation-delay: calc(780ms + var(--i, 0) * 85ms); }
html[data-fc-motion="on"] .fcb-dslide.is-in .fcb-dcard__cta:not(#fc-wp-boost) { animation: fcb-up .6s var(--fc-ease-out) 1s both; }
html[data-fc-motion="on"] .fcb-deck.is-seen .fcb-dslide--letter[data-d="0"] .fcb-strike path:not(#fc-wp-boost) { animation: fcb-draw .6s var(--fc-ease-out) both; animation-delay: calc(1.15s + var(--j, 0) * .38s); }
/* first view: the deck fans out from behind the front card */
html[data-fc-motion="on"] .fcb-deck:not(.is-seen) .fcb-dslide:not([data-d="0"]) .fcb-dfig:not(#fc-wp-boost) { transform: scale(var(--fcb-s1)); opacity: 0; }
html[data-fc-motion="on"] .fcb-deck.is-fanning .fcb-dfig:not(#fc-wp-boost) { transition: transform 1.3s var(--fc-ease-out), opacity .9s ease; }

/* Motion off (reduced motion, or the visitor's choice): the cards cut to their places while the photos cross-fade;
   the old words fade out first, then the new ones fade in, so two headlines never overlap */
html[data-fc-motion="off"] .fcb-dfig:not(#fc-wp-boost) { transition: opacity .35s ease; }
html[data-fc-motion="off"] .fcb-dcard:not(#fc-wp-boost) { transition: opacity .3s ease .2s; }
html[data-fc-motion="off"] .fcb-dslide.is-out .fcb-dcard:not(#fc-wp-boost) { opacity: 0; transition: opacity .18s ease; }

/* ---------- 13. The four service boxes ---------- */
.fc-services:not(#fc-wp-boost) { background-color: var(--fc-paper); }
.fc-svc-grid:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
@media (min-width: 760px) { .fc-svc-grid:not(#fc-wp-boost) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
.fc-svc:not(#fc-wp-boost) {
  position: relative; display: flex; flex-direction: column; padding: 28px 26px 18px; border-radius: var(--fc-card-radius);
  box-shadow: var(--fc-shadow-card);
  transition: translate .3s var(--fc-ease-out), box-shadow .3s var(--fc-ease-out);
}
.fc-svc:not(#fc-wp-boost)::before { content: ""; position: absolute; top: 0; left: 28px; right: 28px; height: 3px; border-radius: 0 0 3px 3px; background: var(--fc-accent, var(--fc-purple)); pointer-events: none; }
.fc-svc:hover:not(#fc-wp-boost), .fc-svc:focus-within:not(#fc-wp-boost) { box-shadow: var(--fc-shadow-lg); }
.fc-svc:not(#fc-wp-boost)::after { top: 26px; right: 24px; }
.fc-svc__h:not(#fc-wp-boost) { font-family: var(--fc-serif); font-weight: 600; font-size: 1.32em; line-height: 1.24; color: var(--fc-ink); margin: 18px 0 10px; font-variation-settings: "SOFT" 50; }
.fc-svc p:not(#fc-wp-boost) { font-size: 16.5px; line-height: 1.62; color: var(--fc-ink-soft); }
.fc-svc__more:not(#fc-wp-boost) { margin: auto 0 0; padding-top: 4px; }
.fc-page .fc-svc__link:not(#fc-wp-boost) {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  font-weight: 700; color: var(--fc-purple); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px;
}
/* the whole card is the link's target (the link text stays "Read more\2026 ") */
.fc-svc__link:not(#fc-wp-boost)::before { content: ""; position: absolute; inset: 0; border-radius: var(--fc-card-radius); }
.fc-svc__link:not(#fc-wp-boost)::after { content: "\2192 "; font-weight: 400; transition: transform .25s var(--fc-ease-out); }
.fc-svc:hover .fc-svc__link:not(#fc-wp-boost)::after { transform: translateX(4px); }
.fc-page .fc-svc__link:focus-visible:not(#fc-wp-boost) { outline: none; box-shadow: none; }
.fc-page .fc-svc__link:focus-visible:not(#fc-wp-boost)::before { outline: 2px solid var(--fc-ink); outline-offset: 2px; box-shadow: 0 0 0 6px rgba(241, 164, 52, .45); }

/* ---------- 14. Mission: why I do what I do ---------- */
.fc-mission:not(#fc-wp-boost) { background-color: var(--fc-blue-mist); }
.fc-mission__head:not(#fc-wp-boost) { max-width: none; margin-bottom: 36px; }
@media (min-width: 1024px) { .fc-mission__head:not(#fc-wp-boost) { margin-bottom: 48px; } }
.fc-mission__grid:not(#fc-wp-boost) { display: grid; gap: 40px; align-items: start; }
@media (min-width: 960px) { .fc-mission__grid:not(#fc-wp-boost) { grid-template-columns: minmax(0, 540px) minmax(0, 1fr); gap: 64px; align-items: center; } }
/* Dr. V's portrait: his whole photo (face, both shoulders, his hand), 4:3 as on his old homepage, in a cream frame
   with a thin gold ring (2026-10-11; was a square that cut his hand and right shoulder). Phones and tablets: up to 560 px. */
.fc-photo:not(#fc-wp-boost) { width: min(100% - 16px, 560px); margin: 12px auto 0; }
@media (min-width: 960px) { .fc-photo:not(#fc-wp-boost) { width: 100%; max-width: 540px; margin: 12px 0 0; } }
.fc-photo__frame:not(#fc-wp-boost) {
  position: relative; box-sizing: content-box; aspect-ratio: 4 / 3; padding: 12px; border-radius: 28px; background: var(--fc-card);
  box-shadow: 0 0 0 1px rgba(36, 33, 61, .08), 0 34px 70px -34px rgba(36, 33, 61, .5);
}
.fc-photo__frame:not(#fc-wp-boost)::after { content: ""; position: absolute; inset: -8px; border-radius: 34px; border: 1.5px solid rgba(241, 164, 52, .75); pointer-events: none; }
@media (min-width: 960px) { .fc-photo__frame:not(#fc-wp-boost)::after { inset: -11px; border-radius: 37px; } }
.fc-photo__frame picture:not(#fc-wp-boost) { display: block; width: 100%; height: 100%; }
.fc-photo__frame img:not(#fc-wp-boost) { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; border-radius: 18px; background: #7D8EA2; }
.fc-mission__bio:not(#fc-wp-boost) { margin: 30px 0 0; font-size: 16.5px; line-height: 1.62; color: var(--fc-ink); max-width: 460px; }
@media (max-width: 959.98px) { .fc-mission__bio:not(#fc-wp-boost) { margin-inline: auto; } }
@media (min-width: 960px) { .fc-mission__bio:not(#fc-wp-boost) { max-width: 540px; } }
.fc-page .fc-mission__name:not(#fc-wp-boost) { font-family: var(--fc-serif); font-weight: 600; font-size: 1.08em; color: var(--fc-ink); text-decoration-color: rgba(58, 50, 130, .4); }
.fc-beliefs:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
@media (min-width: 700px) { .fc-beliefs:not(#fc-wp-boost) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
/* beside the portrait (960 px and up) the beliefs column is too narrow for two cards side by side */
@media (min-width: 960px) { .fc-beliefs:not(#fc-wp-boost) { grid-template-columns: minmax(0, 1fr); gap: 12px; } }
/* small laptops (960 to 1179 px): a 440 px portrait and a smaller gap */
@media (min-width: 960px) and (max-width: 1179.98px) {
  .fc-mission__grid:not(#fc-wp-boost) { grid-template-columns: minmax(0, 440px) minmax(0, 1fr); gap: 48px; }
}
.fc-belief:not(#fc-wp-boost) {
  display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; align-items: start;
  padding: 20px; border-radius: 20px; background: var(--fc-card); border: 1px solid var(--fc-line); box-shadow: var(--fc-shadow);
}
.fc-belief p:not(#fc-wp-boost) { margin: 0; font-size: 16.5px; line-height: 1.55; color: var(--fc-ink); }
.fc-belief__mark:not(#fc-wp-boost) { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--fc-purple); color: var(--fc-cream); box-shadow: 0 0 0 5px rgba(58, 50, 130, .1); }
.fc-belief__mark svg:not(#fc-wp-boost) { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }

.fc-quoteband:not(#fc-wp-boost) {
  position: relative; overflow: hidden; margin: 64px 0 36px; text-align: center;
  padding: clamp(44px, 7vw, 84px) clamp(22px, 6vw, 100px);
  border-radius: 32px; color: var(--fc-cream);
  background:
    radial-gradient(90% 120% at 100% 0%, rgba(99, 203, 225, .12), rgba(99, 203, 225, 0) 55%),
    radial-gradient(70% 55% at 50% 118%, rgba(248, 217, 166, .12), rgba(248, 217, 166, 0) 70%),
    var(--fc-night);
}
@media (min-width: 1024px) { .fc-quoteband:not(#fc-wp-boost) { margin: 88px 0 40px; } }
.fc-quoteband__rings:not(#fc-wp-boost) {
  position: absolute; left: 50%; bottom: -46%; width: 120%; height: 80%; translate: -50% 0; pointer-events: none;
  background: repeating-radial-gradient(ellipse 50% 50% at 50% 50%, rgba(241, 164, 52, 0) 0 22px, rgba(241, 164, 52, .16) 23px 24px);
  -webkit-mask-image: radial-gradient(closest-side, #000 20%, transparent 100%);
  mask-image: radial-gradient(closest-side, #000 20%, transparent 100%);
  transform: scaleY(.32);
}
.fc-quoteband__q:not(#fc-wp-boost) { position: relative; }
.fc-quoteband__q p:not(#fc-wp-boost) { margin: 0 auto; max-width: 34ch; font-family: var(--fc-serif); font-style: italic; font-size: clamp(1.5rem, 1.05rem + 1.9vw, 2.5rem); line-height: 1.32; color: var(--fc-cream); }
.fc-u:not(#fc-wp-boost) { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .2em; text-decoration-skip-ink: none; }
.fc-u--lime:not(#fc-wp-boost) { text-decoration-color: var(--fc-lime); }
.fc-u--sun:not(#fc-wp-boost) { text-decoration-color: var(--fc-sun); }
.fc-u--sky:not(#fc-wp-boost) { text-decoration-color: var(--fc-sky); }
.fc-quoteband__by:not(#fc-wp-boost) { position: relative; margin-top: 22px; font: 600 14px/1.2 var(--fc-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fc-gold); }
.fc-ribbons:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 36px; }
.fc-ribbons li:not(#fc-wp-boost) { position: relative; padding-left: 30px; font-family: var(--fc-serif); font-style: italic; font-size: 1.14em; line-height: 1.4; color: var(--fc-ink); }
.fc-ribbons li:not(#fc-wp-boost)::before { content: ""; position: absolute; left: 0; top: .3em; width: 17px; height: 17px; border-radius: 50%; border: 1.5px solid var(--fc-sun); box-shadow: inset 0 0 0 3px var(--fc-blue-mist), inset 0 0 0 8.5px rgba(241, 164, 52, .55); }

/* ---------- 15. Card sliders: Why choose (9) and the client notes (20) ----------
   A horizontal scroll-snap list (swipe, drag, arrow keys, Previous / Next, no autoplay). Every card stays
   in the reading order; nothing is hidden from screen readers. Without JavaScript: a plain grid. */
.fc-scroller:not(#fc-wp-boost) { position: relative; }
.fc-scroller__list:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
html.fc-js .fc-scroller__list:not(#fc-wp-boost) {
  position: relative; display: flex; gap: 16px; overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-inline: var(--fc-gutter); scrollbar-width: none;
  margin: 0 calc(-1 * var(--fc-gutter)); padding: 8px var(--fc-gutter) 28px;
}
html.fc-js .fc-scroller__list:not(#fc-wp-boost)::-webkit-scrollbar { display: none; }
/* the cut-off card at the right edge fades out instead of ending on a hard line (until the end of the list) */
html.fc-js .fc-scroller:not(.fc-at-end) .fc-scroller__list:not(#fc-wp-boost) {
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 72px), rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(90deg, #000 calc(100% - 72px), rgba(0, 0, 0, 0) 100%);
}
html.fc-js .fc-scroller__item:not(#fc-wp-boost) { flex: 0 0 var(--fc-per, 86%); min-width: 0; scroll-snap-align: start; }
@media (pointer: fine) { html.fc-js .fc-scroller__list:not(#fc-wp-boost) { cursor: grab; } }
html.fc-js .fc-scroller__list.fc-is-dragging:not(#fc-wp-boost) { scroll-snap-type: none; cursor: grabbing; user-select: none; -webkit-user-select: none; }
.fc-scroller__list:focus-visible:not(#fc-wp-boost) { outline-offset: -4px; }
.fc-scroller__bar:not(#fc-wp-boost) { display: flex; align-items: center; gap: 14px; }
html:not(.fc-js) .fc-scroller__bar:not(#fc-wp-boost) { display: none; }
.fc-scroller__btn:not(#fc-wp-boost) {
  flex: none; display: grid; place-items: center; width: 48px; height: 48px; padding: 0;
  border-radius: 50%; border: 1.5px solid var(--fc-purple); background: var(--fc-card); color: var(--fc-purple); cursor: pointer;
  transition: background-color .2s, color .2s;
}
.fc-scroller__btn:hover:not([aria-disabled="true"]):not(#fc-wp-boost) { background: var(--fc-purple); color: var(--fc-card); }
.fc-scroller__btn[aria-disabled="true"]:not(#fc-wp-boost) { opacity: .38; cursor: default; }
/* the chevron is a stroke, not a fill (integrated 2026-10-11; the kit never styled it, so it drew as a black triangle) */
.fc-scroller__btn svg:not(#fc-wp-boost) { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.fc-scroller__rail:not(#fc-wp-boost) { position: relative; flex: 1; height: 4px; border-radius: 4px; background: rgba(36, 33, 61, .12); overflow: hidden; }
.fc-scroller__thumb:not(#fc-wp-boost) { position: absolute; top: 0; bottom: 0; left: 0; width: 33%; border-radius: inherit; background: var(--fc-purple); }
html[data-fc-motion="on"] .fc-scroller__thumb:not(#fc-wp-boost) { transition: left .15s linear, width .15s linear; }
.fc-scroller__count:not(#fc-wp-boost) { flex: none; margin: 0; min-width: 8.2em; white-space: nowrap; text-align: center; font: 600 15px/1 var(--fc-sans); color: var(--fc-ink-soft); font-variant-numeric: tabular-nums; }
.fc-num:not(#fc-wp-boost) { font: 400 24px/1 var(--fc-serif); color: #A86A16; font-variant-numeric: lining-nums tabular-nums; font-variation-settings: "SOFT" 100, "WONK" 0; vertical-align: -2px; }

.fc-why:not(#fc-wp-boost) { background-color: var(--fc-paper); }
.fc-why__scroller:not(#fc-wp-boost) { --fc-per: 86%; }
@media (min-width: 700px) { .fc-why__scroller:not(#fc-wp-boost) { --fc-per: calc((100% - 16px) / 2); } }
@media (min-width: 1024px) { .fc-why__scroller:not(#fc-wp-boost) { --fc-per: calc((100% - 32px) / 3); } }
@media (max-width: 699.98px) { html.fc-js .fc-why__scroller .fc-scroller__list:not(#fc-wp-boost) { align-items: flex-start; } }
.fc-why-card:not(#fc-wp-boost) { display: flex; flex-direction: column; padding: 26px 24px; border-radius: var(--fc-card-radius); background: var(--fc-card); border: 1px solid var(--fc-line); box-shadow: var(--fc-shadow-card); }
.fc-why-card__top:not(#fc-wp-boost) { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
/* the capsule's numeral (Fraunces), in the sun's gold for a light card */
.fc-why-card__n:not(#fc-wp-boost) {
  font: 400 34px/1 var(--fc-serif); font-variant-numeric: lining-nums tabular-nums; font-variation-settings: "SOFT" 100, "WONK" 0;
  color: #B9741A; background: linear-gradient(180deg, #F1A434 0%, #B9741A 85%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.fc-why-card__h:not(#fc-wp-boost) { font-family: var(--fc-serif); font-weight: 600; font-size: 1.28em; line-height: 1.24; color: var(--fc-ink); margin: 0 0 10px; font-variation-settings: "SOFT" 50; }
.fc-why-card p:not(#fc-wp-boost) { margin: 0; font-size: 16.5px; line-height: 1.62; color: var(--fc-ink-soft); }

.fc-notes:not(#fc-wp-boost) { background-color: var(--fc-sage-mist); }
.fc-notes__disc:not(#fc-wp-boost) { margin: 12px 0 0; font-size: 15.5px; color: var(--fc-ink-soft); }
.fc-notes__scroller:not(#fc-wp-boost) { --fc-per: 90%; }
@media (min-width: 760px) { .fc-notes__scroller:not(#fc-wp-boost) { --fc-per: calc((100% - 16px) / 2); } }
.fc-note:not(#fc-wp-boost) {
  position: relative; display: flex; flex-direction: column; justify-content: center; height: 100%; margin: 0;
  padding: 34px 30px; border-radius: var(--fc-card-radius); background: var(--fc-card); border: 1px solid rgba(36, 33, 61, .1); box-shadow: var(--fc-shadow-card);
}
@media (max-width: 599.98px) {
  /* phones: one note per view, read from the top; a slightly tighter measure keeps the longest note shorter */
  .fc-note:not(#fc-wp-boost) { justify-content: flex-start; padding: 26px 22px; }
}
/* desktop: every card is as tall as the taller note beside it; the quote sits in the middle with its mark above it */
.fc-note blockquote:not(#fc-wp-boost) { margin: 0; }
.fc-note blockquote:not(#fc-wp-boost)::before { content: "\201C "; display: block; height: 34px; margin: 0 0 10px -3px; font-family: var(--fc-serif); font-size: 72px; line-height: 1; color: var(--fc-sun); }
.fc-note blockquote p:not(#fc-wp-boost) { margin: 0; font-family: var(--fc-serif); color: var(--fc-ink); font-variation-settings: "SOFT" 50; }
.fc-note blockquote p:not(#fc-wp-boost) { font-size: 1.1875rem; line-height: 1.6; }
@media (max-width: 599.98px) { .fc-note blockquote p:not(#fc-wp-boost) { font-size: 17px; line-height: 1.56; } }
@media (max-width: 759.98px) { html.fc-js .fc-notes__scroller .fc-scroller__list:not(#fc-wp-boost) { align-items: flex-start; } }

/* ---------- 15b. What I Help With: specialties in depth (card slider, 15; added 2026-10-11) ----------
   The section 15 card slider (.fc-scroller, fc-kit.js section 8) with its own cards: a numeral, the services that
   offer it, the title, a short line of approaches, his 2 to 3 sentences, topic chips and a link to his page.
   Card text is 20 px from 1024 px and 18.5 px below (his big-text rule). One tint per card, from the site palette:
   purple = counseling, sky = hypnotherapy, sage = mindfulness, sun = life coaching, lime = yoga and breathing.
   Without JavaScript the list stays one row that scrolls sideways (with its native scrollbar), not a grid.
   Round 3 (Dr. V, 2026-10-12): every topic chip is a link (a chip with a small arrow, no underline, that grows a
   little on hover and keyboard focus, like the About page chips); the controls (arrows and "1 to 3 of 15") sit ABOVE
   the cards and the next card always peeks in, so the 15 are obvious; on phones each card is only as tall as its
   own words (no empty space after the tags). */
.fc-spec:not(#fc-wp-boost) { background-color: var(--fc-sage-mist); }
.fc-spec .fc-sechead:not(#fc-wp-boost) { margin-bottom: 28px; }
@media (min-width: 1024px) { .fc-spec .fc-sechead:not(#fc-wp-boost) { margin-bottom: 40px; } }
.fc-spec__scroller:not(#fc-wp-boost) { --fc-per: 82%; }
/* the next card always peeks in: 1 and a peek on phones, 2 and a quarter, 3 and a quarter from 1200 px */
@media (min-width: 700px) { .fc-spec__scroller:not(#fc-wp-boost) { --fc-per: calc((100% - 32px) / 2.25); } }
@media (min-width: 1200px) { .fc-spec__scroller:not(#fc-wp-boost) { --fc-per: calc((100% - 48px) / 3.25); } }
/* the peek fades over 40 px only (the kit's other sliders: 72 px), so it reads as a card */
html.fc-js .fc-spec__scroller:not(.fc-at-end) .fc-spec__list:not(#fc-wp-boost) {
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 40px), rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(90deg, #000 calc(100% - 40px), rgba(0, 0, 0, 0) 100%);
}
/* the controls above the cards: both arrows always shown (Previous at the start is dimmed, never hidden), the count
   a little larger */
.fc-spec__bar:not(#fc-wp-boost) { margin: 0 0 6px; }
.fc-spec__bar .fc-scroller__count:not(#fc-wp-boost) { font-size: 16px; }
.fc-spec__bar .fc-scroller__btn[aria-disabled="true"]:not(#fc-wp-boost) { opacity: .5; }
/* every card in the row is as tall as the tallest (the link line sits at the same height on each card while
   swiping); the texts are kept within about 60 px of each other, so no card has a large empty space */
/* no JavaScript: one sideways row (fc-scroller__list is a grid by default) */
html:not(.fc-js) .fc-spec__list:not(#fc-wp-boost) {
  display: flex; gap: 16px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory;
  padding: 8px 2px 30px; scrollbar-color: rgba(58, 50, 130, .45) transparent;
}
html:not(.fc-js) .fc-spec__list > .fc-scroller__item:not(#fc-wp-boost) { flex: 0 0 var(--fc-per); min-width: 0; scroll-snap-align: start; }
/* no JavaScript: a part of the next card shows, so the row reads as "more to the side" */
@media (min-width: 700px) { html:not(.fc-js) .fc-spec__scroller:not(#fc-wp-boost) { --fc-per: calc((100% - 32px) / 2.25); } }
@media (min-width: 1200px) { html:not(.fc-js) .fc-spec__scroller:not(#fc-wp-boost) { --fc-per: calc((100% - 48px) / 3.25); } }
.fc-spec__nojs:not(#fc-wp-boost) { font-size: 16.5px; color: var(--fc-ink-soft); }

.fc-spec-card:not(#fc-wp-boost) {
  --fc-spec-accent: var(--fc-purple); --fc-spec-bg: #E7E5F4; --fc-spec-fg: var(--fc-purple);
  position: relative; display: flex; flex-direction: column;
  padding: 24px 22px 20px; border-radius: var(--fc-card-radius); background: var(--fc-card);
  border: 1px solid var(--fc-line);
  box-shadow: inset 0 5px 0 0 var(--fc-spec-accent), var(--fc-shadow-card);
}
@media (min-width: 1024px) { .fc-spec-card:not(#fc-wp-boost) { padding: 30px 28px 24px; } }
.fc-spec-card--purple:not(#fc-wp-boost) { --fc-spec-accent: var(--fc-purple); --fc-spec-bg: #E7E5F4; --fc-spec-fg: var(--fc-purple); }
.fc-spec-card--sky:not(#fc-wp-boost) { --fc-spec-accent: var(--fc-turq); --fc-spec-bg: #DCF0F5; --fc-spec-fg: #1D6676; }
.fc-spec-card--sage:not(#fc-wp-boost) { --fc-spec-accent: var(--fc-sage); --fc-spec-bg: #E0E9DC; --fc-spec-fg: var(--fc-sage-deep); }
.fc-spec-card--sun:not(#fc-wp-boost) { --fc-spec-accent: var(--fc-sun); --fc-spec-bg: #FBEBCB; --fc-spec-fg: #7A4E0E; }
.fc-spec-card--lime:not(#fc-wp-boost) { --fc-spec-accent: var(--fc-lime); --fc-spec-bg: #EDF3C4; --fc-spec-fg: #4E5A14; }

.fc-spec-card__top:not(#fc-wp-boost) { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
/* the numeral: the Why choose cards' Fraunces gold */
.fc-spec-card__n:not(#fc-wp-boost) {
  flex: none; font: 400 38px/1 var(--fc-serif); font-variant-numeric: lining-nums tabular-nums; font-variation-settings: "SOFT" 100, "WONK" 0;
  color: #B9741A; background: linear-gradient(180deg, #F1A434 0%, #B9741A 85%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
/* which services offer it: a small tinted label, right-aligned */
.fc-spec-card__svc:not(#fc-wp-boost) {
  min-width: 0; padding: 5px 12px; border-radius: 999px; background: var(--fc-spec-bg); color: var(--fc-spec-fg);
  font: 600 14.5px/1.3 var(--fc-sans); text-align: right;
}
.fc-spec-card__h:not(#fc-wp-boost) {
  margin: 0 0 8px; font-family: var(--fc-serif); font-weight: 600; font-size: 1.4rem; line-height: 1.2; color: var(--fc-ink);
  font-variation-settings: "SOFT" 50; text-wrap: balance;
}
@media (min-width: 1024px) { .fc-spec-card__h:not(#fc-wp-boost) { font-size: 1.5rem; } }
.fc-spec-card__how:not(#fc-wp-boost) { margin: 0 0 14px; font-size: 16.5px; line-height: 1.45; color: var(--fc-ink-soft); }
.fc-spec-card__k:not(#fc-wp-boost) {
  margin-right: 4px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--fc-bronze);
}
.fc-spec-card__p:not(#fc-wp-boost) { margin: 0 0 18px; font-size: 18.5px; line-height: 1.55; color: var(--fc-ink); }
@media (min-width: 1024px) { .fc-spec-card__p:not(#fc-wp-boost) { font-size: 20px; line-height: 1.55; } }
.fc-spec-card__p a:not(#fc-wp-boost) { color: var(--fc-purple); font-weight: 600; }

/* topic chips: each a link to the page or part that covers it (data-fc-topic kept for later self-check pages) */
.fc-spec-card__tags:not(#fc-wp-boost) { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; padding: 0; }
.fc-spec-tag:not(#fc-wp-boost) {
  display: inline-flex; align-items: center; min-height: 34px; padding: 4px 13px; border-radius: 999px;
  background: var(--fc-card); border: 1.5px solid var(--fc-spec-bg); box-shadow: inset 0 0 0 1px rgba(36, 33, 61, .05);
  color: var(--fc-ink); font: 500 16px/1.25 var(--fc-sans);
}
/* linked chips (as About's A23): purple words, a soft border in the card's colour and a small arrow at the end, no
   underline; on hover (a mouse) and keyboard focus a little larger (transform only, so nothing around it moves), ink
   words with a slightly fuller stroke (text-shadow, so no line rewraps), a firmer border, about 180 ms. Motion off or
   reduced motion: no growth, only the colour and border. Purple #3A3282 and ink #24213D on #FFFCF7: 11 : 1 and more. */
.fc-page a.fc-spec-tag:not(#fc-wp-boost) {
  position: relative; gap: 8px; min-height: 44px; padding: 4px 15px; font-size: 16.5px;
  color: var(--fc-purple); text-decoration: none;
  border-color: rgba(58, 50, 130, .35);
  border-color: color-mix(in srgb, var(--fc-spec-fg) 42%, transparent);
  transition: color .18s ease-out, border-color .18s ease-out, box-shadow .18s ease-out, text-shadow .18s ease-out, transform .18s ease-out;
}
.fc-page a.fc-spec-tag:not(#fc-wp-boost)::after {
  content: ""; flex: none; width: 6px; height: 6px; margin-left: 1px;
  border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; transform: rotate(-45deg); opacity: .75;
}
.fc-page a.fc-spec-tag:focus-visible:not(#fc-wp-boost) {
  z-index: 1; color: var(--fc-ink); text-shadow: 0 0 .6px currentColor;
  border-color: var(--fc-spec-fg); box-shadow: 0 6px 16px -10px rgba(36, 33, 61, .45);
}
@media (hover: hover) {
  .fc-page a.fc-spec-tag:hover:not(#fc-wp-boost) {
    z-index: 1; color: var(--fc-ink); text-shadow: 0 0 .6px currentColor;
    border-color: var(--fc-spec-fg); box-shadow: 0 6px 16px -10px rgba(36, 33, 61, .45);
  }
  html.fc-js[data-fc-motion="on"] .fc-page a.fc-spec-tag:hover:not(#fc-wp-boost) { transform: scale(1.05); }
}
html.fc-js[data-fc-motion="on"] .fc-page a.fc-spec-tag:focus-visible:not(#fc-wp-boost) { transform: scale(1.05); }
@media (pointer: coarse) { .fc-page a.fc-spec-tag:not(#fc-wp-boost) { min-height: 44px; } }

.fc-spec-card__more:not(#fc-wp-boost) { margin: auto 0 0; padding-top: 14px; border-top: 1px solid var(--fc-line); }
/* an inline block (not flex): when the words wrap, the arrow stays after the last word; 44 px tall to tap */
.fc-spec-card__link:not(#fc-wp-boost) {
  display: inline-block; min-height: 44px; padding-block: 9px 7px; color: var(--fc-purple); font-weight: 600; font-size: 17.5px; line-height: 1.5;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px;
}
.fc-spec-card__link:hover:not(#fc-wp-boost) { text-decoration-style: wavy; }
.fc-spec-card__arrow:not(#fc-wp-boost) {
  display: inline-block; position: relative; width: 26px; height: 26px; margin-left: 10px; vertical-align: -7px;
  border-radius: 50%; background: var(--fc-spec-bg);
}
.fc-spec-card__arrow:not(#fc-wp-boost)::before {
  content: ""; position: absolute; left: 8px; top: 8.5px; width: 7px; height: 7px;
  border-top: 2px solid var(--fc-spec-fg); border-right: 2px solid var(--fc-spec-fg); transform: rotate(45deg);
}
html[data-fc-motion="on"] .fc-spec-card__arrow:not(#fc-wp-boost) { transition: translate .25s var(--fc-ease-out); }
html[data-fc-motion="on"] .fc-spec-card__link:hover .fc-spec-card__arrow:not(#fc-wp-boost) { translate: 3px 0; }

@media (max-width: 599.98px) {
  .fc-spec-card__n:not(#fc-wp-boost) { font-size: 34px; }
  .fc-spec-card__svc:not(#fc-wp-boost) { font-size: 14px; }
}
/* phones: each card only as tall as its own words, so no empty space opens after the tags, and with script the row
   follows the card in view (fc-kit.js 15b), so none opens under it either; a little less air inside the card */
@media (max-width: 699.98px) {
  .fc-spec__list:not(#fc-wp-boost) { align-items: flex-start; }
  /* with script the row takes the height of the card in view (fc-kit.js 15b); a taller peek is cut, never scrolled */
  html.fc-js .fc-spec__list:not(#fc-wp-boost) { overflow-y: hidden; }
  html.fc-js[data-fc-motion="on"] .fc-spec__list:not(#fc-wp-boost) { transition: height .3s var(--fc-ease-out); }
  .fc-spec-card:not(#fc-wp-boost) { padding: 20px 18px 12px; }
  .fc-spec-card__top:not(#fc-wp-boost) { margin-bottom: 10px; }
  .fc-spec-card__how:not(#fc-wp-boost) { margin-bottom: 10px; }
  .fc-spec-card__p:not(#fc-wp-boost) { margin-bottom: 14px; }
  .fc-spec-card__tags:not(#fc-wp-boost) { margin-bottom: 12px; }
  .fc-spec-card__more:not(#fc-wp-boost) { margin-top: 0; padding-top: 4px; }
}
@media (forced-colors: active) {
  .fc-spec-card:not(#fc-wp-boost) { border: 1px solid CanvasText; }
  .fc-spec-tag:not(#fc-wp-boost), .fc-spec-card__svc:not(#fc-wp-boost) { border: 1px solid CanvasText; }
  .fc-page a.fc-spec-tag:not(#fc-wp-boost) { border-color: LinkText; }
  .fc-spec-card__arrow:not(#fc-wp-boost) { background: none; }
}
@media print {
  .fc-spec__list:not(#fc-wp-boost) { display: block !important; overflow: visible !important; }
  .fc-spec__nojs:not(#fc-wp-boost) { display: none !important; }
  .fc-spec-card:not(#fc-wp-boost) { box-shadow: none !important; border: 1px solid #999; break-inside: avoid; }
}

/* ---------- 16. Choose a service: three cards, side by side ---------- */
.fc-compare:not(#fc-wp-boost) { background-color: var(--fc-paper); }
.fc-goal:not(#fc-wp-boost) {
  max-width: 920px; margin: 0 0 44px; padding: 22px 26px 24px; border-radius: var(--fc-card-radius);
  background: var(--fc-card); border: 1px solid var(--fc-line); font-size: 17px; line-height: 1.62; box-shadow: var(--fc-shadow-card);
}
.fc-goal .fc-mark:not(#fc-wp-boost) { margin-bottom: 12px; }
.fc-goal__q:not(#fc-wp-boost) { display: block; margin-bottom: 4px; font-family: var(--fc-serif); font-style: italic; font-weight: 600; font-size: 1.25em; color: var(--fc-purple); }
.fc-plans:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
@media (min-width: 900px) { .fc-plans:not(#fc-wp-boost) { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; } }
.fc-plan:not(#fc-wp-boost) { position: relative; display: flex; flex-direction: column; border-radius: var(--fc-card-radius); background: var(--fc-card); border: 1px solid var(--fc-line); box-shadow: var(--fc-shadow-card); overflow: hidden; }
.fc-plan:not(#fc-wp-boost)::after { top: 22px; right: 22px; }
.fc-plan--c:not(#fc-wp-boost) { --fc-cap: var(--fc-purple); --fc-plan-tint: #ECEAF6; }
.fc-plan--l:not(#fc-wp-boost) { --fc-cap: var(--fc-sun); --fc-plan-tint: #FBEFD6; }
.fc-plan--m:not(#fc-wp-boost) { --fc-cap: var(--fc-sage); --fc-plan-tint: #E5EDE2; }
.fc-plan__head:not(#fc-wp-boost) { padding: 26px 24px 20px; background: linear-gradient(180deg, var(--fc-plan-tint), rgba(255, 252, 247, 0)); border-bottom: 1px solid var(--fc-line); }
.fc-plan__cap:not(#fc-wp-boost) { display: block; width: 32px; height: 32px; margin-bottom: 14px; border-radius: 50%; border: 2px solid var(--fc-cap); box-shadow: inset 0 0 0 5px #fff, inset 0 0 0 32px var(--fc-cap); }
.fc-plan__h:not(#fc-wp-boost) { margin: 0; font-family: var(--fc-serif); font-weight: 600; font-size: 1.5em; line-height: 1.2; color: var(--fc-ink); font-variation-settings: "SOFT" 50; }
.fc-plan__tag:not(#fc-wp-boost) { margin: 6px 0 0; font-family: var(--fc-serif); font-style: italic; font-size: 1.1em; line-height: 1.35; color: var(--fc-purple); }
.fc-plan__facts:not(#fc-wp-boost) { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.fc-plan__facts li:not(#fc-wp-boost) { padding: 4px 12px; border-radius: 999px; background: var(--fc-card); border: 1px solid var(--fc-line); font-size: 13.5px; font-weight: 600; line-height: 1.4; color: var(--fc-ink); }
/* each card's answers come in three blocks: the shared first row (Model & Approach), the four rows that differ from
   card to card, and the three shared last rows (Who is it for?, Confidentiality, Age group) */
.fc-plan__dl:not(#fc-wp-boost) { margin: 0; padding: 0 24px; }
.fc-plan__dl--top:not(#fc-wp-boost) { padding-top: 4px; }
.fc-plan__dl--end:not(#fc-wp-boost) { padding-bottom: 6px; }
.fc-plan__dl > div:not(#fc-wp-boost) { padding: 14px 0; border-bottom: 1px solid var(--fc-line); }
.fc-plan__dl--end > div:last-child:not(#fc-wp-boost) { border-bottom: 0; }
.fc-plan__dl dt:not(#fc-wp-boost) { margin: 0 0 4px; font: 700 12.5px/1.35 var(--fc-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--fc-bronze); }
.fc-plan__dl dd:not(#fc-wp-boost) { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--fc-ink); }
.fc-plan__cta:not(#fc-wp-boost) { margin: auto 0 0; padding: 8px 24px 26px; }
/* side by side (900 px up): the shared rows line up across the cards (subgrid), so Model & Approach, Who is it for?,
   Confidentiality, Age group and Book Now align; the four rows in between have different questions in each card, so
   they flow as one block per card and its spare space is shared out evenly among them (no single large hole) */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 900px) {
    .fc-plans:not(#fc-wp-boost) { grid-template-rows: repeat(7, auto); row-gap: 0; }           /* head, top, middle, the 3 end rows, Book Now */
    .fc-plan:not(#fc-wp-boost) { display: grid; grid-row: span 7; grid-template-rows: subgrid; row-gap: 0; }
    .fc-plan__dl--mid:not(#fc-wp-boost) { display: flex; flex-direction: column; }
    .fc-plan__dl--mid > div:not(#fc-wp-boost) { flex: 1 0 auto; }
    .fc-plan__dl--end:not(#fc-wp-boost) { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; }
    .fc-plan__cta:not(#fc-wp-boost) { align-self: end; }
  }
}

/* a much longer answer is shortened (fc-kit.js 9c, 900 px up): its text box gets a soft fade and "Read more" */
.fc-plan__clip:not(#fc-wp-boost) { display: block; }
.fc-plan__clip:focus:not(#fc-wp-boost) { outline: none; }
.fc-plan__dl > div.is-clamped .fc-plan__clip:not(#fc-wp-boost) {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 3.1em), rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(180deg, #000 calc(100% - 3.1em), rgba(0, 0, 0, 0) 100%);
}
.fc-plan__clip.is-opening:not(#fc-wp-boost) { overflow: hidden; transition: max-height .45s var(--fc-ease-out); }
.fc-plan__more:not(#fc-wp-boost) {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: 6px 0 0; padding: 0 2px;
  border: 0; background: none; color: var(--fc-purple); cursor: pointer;
  font: 700 15px/1.2 var(--fc-sans); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px;
}
.fc-plan__more:hover:not(#fc-wp-boost) { text-decoration-style: wavy; }
.fc-plan__more[hidden]:not(#fc-wp-boost) { display: none; }
.fc-plan__morechev:not(#fc-wp-boost) { width: 8px; height: 8px; margin-top: -3px; border-right: 1.8px solid currentColor; border-bottom: 1.8px solid currentColor; rotate: 45deg; transition: rotate .3s var(--fc-ease-out), margin .3s; }
.fc-plan__more[aria-expanded="true"] .fc-plan__morechev:not(#fc-wp-boost) { rotate: -135deg; margin-top: 3px; }

/* ---------- 17. The video: the whole YouTube picture, click to play (2026-10-11) ----------
   The video's own picture, whole (16:9, nothing cropped: a self-hosted copy of YouTube's largest thumbnail, whose
   black bars above and below are part of the picture), with the title and "Watch on YouTube" under it, as on the
   Resources page. fc-kit.js section 16 makes the player (youtube-nocookie.com) in the same box only when play is
   pressed. The play button's red is YouTube's own, in the rule for .ct-yt-play__bg (the one red the colour check
   allows by name, as on the Contact and Resources pages). The box is black like the picture's bars, so the corners
   and a player that is still loading never show a seam. */
.fc-vid:not(#fc-wp-boost) { background-color: var(--fc-paper); }
.fc-vid__in:not(#fc-wp-boost) { max-width: 1100px; }
.fc-vid__h:not(#fc-wp-boost) { text-align: center; margin: 0 0 28px; }
@media (min-width: 1024px) { .fc-vid__h:not(#fc-wp-boost) { margin-bottom: 36px; } }
/* Choose a service and the video share the paper ground: one section gap between them, not two */
.fc-compare + .fc-vid:not(#fc-wp-boost), .fc-sc + .fc-vid:not(#fc-wp-boost) { padding-top: 0; }
.fc-vid .ct-yt:not(#fc-wp-boost) {
  position: relative; isolation: isolate; aspect-ratio: 16 / 9; overflow: hidden;
  border-radius: var(--fc-stage-radius); background: #000; box-shadow: var(--fc-stage-shadow);
}
.fc-vid .ct-yt__poster:not(#fc-wp-boost), .fc-vid .ct-yt iframe:not(#fc-wp-boost) {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; border: 0;
}
.fc-vid .ct-yt__poster:not(#fc-wp-boost) { object-fit: contain; }
.fc-page .fc-vid a.ct-yt__play:not(#fc-wp-boost) {
  position: absolute; inset: 0; z-index: 1; display: block; color: #fff; text-decoration: none; cursor: pointer;
  border-radius: inherit;
}
.fc-vid .ct-yt__btn:not(#fc-wp-boost) {
  position: absolute; left: 50%; top: 50%; width: 68px; height: 48px; transform: translate(-50%, -50%);
  filter: drop-shadow(0 6px 16px rgba(0, 0, 0, .35)); transition: transform .2s var(--fc-ease-out);
}
.fc-vid .ct-yt__btn svg:not(#fc-wp-boost) { display: block; width: 100%; height: 100%; }
@media (min-width: 768px) { .fc-vid .ct-yt__btn:not(#fc-wp-boost) { width: 84px; height: 59px; } }
.fc-vid .ct-yt-play__bg:not(#fc-wp-boost) { fill: #FF0000; }
.fc-vid .ct-yt-play__tri:not(#fc-wp-boost) { fill: #FFFFFF; }
html[data-fc-motion="on"] .fc-vid .ct-yt__play:hover .ct-yt__btn:not(#fc-wp-boost) { transform: translate(-50%, -50%) scale(1.06); }
/* the focus ring: an outline (it survives Windows high contrast), inside the rounded picture, with a dark line around it */
.fc-page .fc-vid a.ct-yt__play:focus-visible:not(#fc-wp-boost) { outline: 4px solid var(--fc-lime); outline-offset: -6px; box-shadow: inset 0 0 0 6px #0F0F0F; animation: none; }
.fc-vid .ct-yt.is-playing:not(#fc-wp-boost) { background: #000; }
.fc-vid .ct-yt__fail:not(#fc-wp-boost) {
  position: absolute; z-index: 3; left: 50%; bottom: 16px; transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px);
  margin: 0; padding: 10px 14px; border-radius: 10px; background: rgba(15, 15, 15, .9); color: #fff;
  font: 600 16px/1.4 var(--fc-sans); text-align: center;
}
/* the title and "Watch on YouTube" under the picture */
.fc-video__bar:not(#fc-wp-boost) { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 24px; margin: 16px 4px 0; }
.fc-video__title:not(#fc-wp-boost) {
  flex: 1 1 24ch; min-width: 0; margin: 0; font: 600 clamp(1.1875rem, 1.07rem + .45vw, 1.375rem)/1.35 var(--fc-serif);
  color: var(--fc-ink); font-variation-settings: "SOFT" 50, "WONK" 0; text-wrap: pretty;
}
.fc-video__alt:not(#fc-wp-boost) { flex: none; margin: 0; font-size: 18.5px; line-height: 1.4; }
@media (min-width: 1024px) { .fc-video__alt:not(#fc-wp-boost) { font-size: 20px; } }
.fc-page a.fc-video__watch:not(#fc-wp-boost) { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: var(--fc-purple); }
.fc-page a.fc-video__watch:hover:not(#fc-wp-boost) { color: var(--fc-ink); }
@media (max-width: 599.98px) {
  .fc-video__bar:not(#fc-wp-boost) { display: block; margin: 12px 2px 0; }
  .fc-video__alt:not(#fc-wp-boost) { margin-top: 2px; }
}
@media (forced-colors: active) {
  .fc-vid .ct-yt:not(#fc-wp-boost) { border: 1px solid CanvasText; }
  .fc-page .fc-vid a.ct-yt__play:focus-visible:not(#fc-wp-boost) { outline: 3px solid Highlight; outline-offset: -4px; }
}
@media print {
  .fc-vid .ct-yt__btn:not(#fc-wp-boost) { display: none !important; }
  .fc-vid .ct-yt:not(#fc-wp-boost) { box-shadow: none !important; border: 1px solid #999; break-inside: avoid; }
}

/* ---------- 18. FAQs ---------- */
.fc-faq:not(#fc-wp-boost) { background-color: var(--fc-blue-mist); }
.fc-faq__grid:not(#fc-wp-boost) { display: grid; gap: 32px; }
/* two columns from 1180 px (at 1024 the intro column was too narrow: its heading broke into four lines) */
@media (min-width: 1180px) {
  .fc-faq__grid:not(#fc-wp-boost) { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 72px; align-items: start; }
  .fc-faq__intro:not(#fc-wp-boost) { position: sticky; top: calc(var(--fc-head-h) + 50px); }
}
@media (min-width: 768px) and (max-width: 1179.98px) { .fc-faq__intro:not(#fc-wp-boost) { max-width: 720px; } }
.fc-faq__intro .fc-h2:not(#fc-wp-boost) { margin-bottom: 18px; }
.fc-chatbot:not(#fc-wp-boost) { margin: 22px 0; padding: 18px 20px; border-radius: 18px; background: var(--fc-card); border: 1px solid var(--fc-line); }
html:not(.fc-js) .fc-chatbot:not(#fc-wp-boost) { display: none; }
.fc-chatbot .fc-small:not(#fc-wp-boost) { margin: 10px 0 0; }
.fc-chatbot__note:not(#fc-wp-boost) { margin: 10px 0 0; font-size: 15px; line-height: 1.5; color: var(--fc-blue-deep); font-weight: 600; }
.fc-qa:not(#fc-wp-boost) { margin-bottom: 10px; border-radius: 18px; background: var(--fc-card); border: 1px solid var(--fc-line); transition: box-shadow .3s; }
.fc-qa[open]:not(#fc-wp-boost) { box-shadow: var(--fc-shadow); }
.fc-qa > summary:not(#fc-wp-boost) { list-style: none; }
.fc-qa > summary:not(#fc-wp-boost)::-webkit-details-marker { display: none; }
.fc-qa__q:not(#fc-wp-boost) {
  display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 14px 18px; cursor: pointer;
  font-family: var(--fc-serif); font-weight: 600; font-size: 1.06em; line-height: 1.35; color: var(--fc-ink);
}
.fc-qa__q:hover:not(#fc-wp-boost) { color: var(--fc-purple); }
.fc-qa__ring:not(#fc-wp-boost) { position: relative; flex: none; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--fc-purple); background: var(--fc-blue-mist); transition: background-color .3s; }
.fc-qa__ring:not(#fc-wp-boost)::before, .fc-qa__ring:not(#fc-wp-boost)::after { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 1.8px; margin: -.9px 0 0 -5.5px; border-radius: 2px; background: var(--fc-purple); transition: transform .3s var(--fc-ease-out), background-color .3s; }
.fc-qa__ring:not(#fc-wp-boost)::after { transform: rotate(90deg); }
.fc-qa[open] .fc-qa__ring:not(#fc-wp-boost) { background: var(--fc-purple); }
.fc-qa[open] .fc-qa__ring:not(#fc-wp-boost)::before, .fc-qa[open] .fc-qa__ring:not(#fc-wp-boost)::after { background: var(--fc-card); }
.fc-qa[open] .fc-qa__ring:not(#fc-wp-boost)::after { transform: rotate(0deg); }
.fc-qa__a:not(#fc-wp-boost) { padding: 0 22px 20px 60px; font-size: 16.5px; line-height: 1.65; }
.fc-qa__a p:last-child:not(#fc-wp-boost) { margin-bottom: 0; }
@media (max-width: 599.98px) { .fc-qa__a:not(#fc-wp-boost) { padding: 0 18px 18px; } }
#good-faith-estimate:not(#fc-wp-boost) { scroll-margin-top: 100px; }

/* ---------- 19. Scheduling + the newsletter ---------- */
.fc-schedule:not(#fc-wp-boost) {
  background-color: var(--fc-morning);
  background-image: radial-gradient(60% 40% at 85% 12%, rgba(248, 217, 166, .6), rgba(248, 217, 166, 0) 70%);
}
.fc-schedule__grid:not(#fc-wp-boost) { display: grid; gap: 36px; align-items: start; }
@media (min-width: 1024px) { .fc-schedule__grid:not(#fc-wp-boost) { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; } }
.fc-schedule__text .fc-h2:not(#fc-wp-boost) { margin-bottom: 24px; }
.fc-schedule__text p:not(#fc-wp-boost) { max-width: 64ch; }
.fc-schedule__lead:not(#fc-wp-boost) { font-family: var(--fc-serif); font-size: 1.24em; line-height: 1.45; color: var(--fc-purple); }
.fc-schedule__lead strong:not(#fc-wp-boost) { font-weight: 600; }
.fc-schedule__hl:not(#fc-wp-boost) { display: inline-block; padding: 10px 18px; border-radius: 999px; background: var(--fc-card); border: 1px solid rgba(241, 164, 52, .55); }
.fc-schedule__btns:not(#fc-wp-boost) { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
/* the booking card (2026-10-06, his decision, "less is more"): the emblem, ONE button "Book a free 15-minute call
   with Dr. V" and the hours. The phone number stays in the header's utility row and the footer. */
.fc-bookcard:not(#fc-wp-boost) { position: relative; padding: 32px 30px 28px; border-radius: 28px; background: var(--fc-card); border: 1px solid var(--fc-line); box-shadow: var(--fc-shadow-lg); }
.fc-bookcard__ring:not(#fc-wp-boost) { display: block; width: 52px; height: 52px; margin-bottom: 20px; }
.fc-bookcard__ring .fc-emblem__track circle:not(#fc-wp-boost) { stroke: rgba(241, 164, 52, .62); transition: stroke .5s ease; }
.fc-bookcard__ring .fc-emblem__drop:not(#fc-wp-boost) { transition: filter .5s ease; }
html.fc-sunwarm .fc-bookcard__ring .fc-emblem__track circle:not(#fc-wp-boost) { stroke: var(--fc-sun); }
html.fc-sunwarm .fc-bookcard__ring .fc-emblem__drop:not(#fc-wp-boost) { filter: drop-shadow(0 0 4px rgba(241, 164, 52, .8)); }
.fc-bookcard__lead:not(#fc-wp-boost) { margin: 0 0 24px; font-size: 17px; line-height: 1.6; }
/* the one button is the clear focus: taller, a little larger type, its label kept whole ("15-minute", "Dr. V") */
.fc-bookcard__btn.fc-btn:not(#fc-wp-boost) { min-height: 64px; padding: 12px 26px; font-size: 18.5px; line-height: 1.25; }
/* from 360 px the first phrase is kept whole while it fits, so a wrap reads "...call" / "with Dr. V"; an inline block,
   not nowrap, so a phone's larger text setting still wraps it inside the button (review fix 2026-10-06) */
@media (min-width: 360px) { .fc-bookcard__p:not(#fc-wp-boost) { display: inline-block; } }
.fc-bookcard__hours:not(#fc-wp-boost) { margin: 26px 0 0; padding-top: 20px; border-top: 1px solid var(--fc-line); display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 10px 18px; align-items: baseline; }
.fc-bookcard__hours > div:not(#fc-wp-boost) { display: contents; }
.fc-bookcard__hours dt:not(#fc-wp-boost) { font: 700 16.5px/1.5 var(--fc-sans); color: var(--fc-bronze); }
.fc-bookcard__hours dd:not(#fc-wp-boost) { margin: 0; font-size: 17px; line-height: 1.5; color: var(--fc-ink); text-wrap: pretty; }
/* the solo card (booking band, service pages): the emblem centred above the button, in a soft morning light */
.fc-bookcard--solo:not(#fc-wp-boost) { padding: 36px 32px 30px; background: radial-gradient(120% 64% at 50% 0%, rgba(248, 217, 166, .42), rgba(248, 217, 166, 0) 64%), var(--fc-card); }
.fc-bookcard--solo .fc-bookcard__ring:not(#fc-wp-boost) { width: 68px; height: 68px; margin: 0 auto 24px; }
@media (max-width: 419.98px) {
  .fc-bookcard:not(#fc-wp-boost), .fc-bookcard--solo:not(#fc-wp-boost) { padding: 28px 22px 24px; }
  .fc-bookcard--solo .fc-bookcard__ring:not(#fc-wp-boost) { width: 60px; height: 60px; margin-bottom: 20px; }
  .fc-bookcard__btn.fc-btn:not(#fc-wp-boost) { padding-inline: 20px; }
  .fc-bookcard__hours:not(#fc-wp-boost) { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
  .fc-bookcard__hours dd + dt:not(#fc-wp-boost) { margin-top: 10px; }
}

/* the finale: the 3D logo assembles once above the booking card (master plan 5.3, Act 2). fc-3d.js draws it live
   (three.js loads only when this stage approaches); otherwise the posters and the CSS below do it. States, on the
   stage: data-fc-state="rest" (faint rings on the water) until it is about 35 % in view, then "assembled" (rings
   settle, the figure rises, the sun lights, the clouds glide in), then it idles. Motion off, reduced motion and no
   JavaScript: the assembled still. The booking buttons warm its sun (html.fc-sunwarm). */
.fc-schedule__side:not(#fc-wp-boost) { display: grid; gap: 22px; align-content: start; min-width: 0; }
.fc-finale:not(#fc-wp-boost) { position: relative; margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; column-gap: 16px; }
.fc-finale > .fc-finale__stage:not(#fc-wp-boost) { grid-row: 1; grid-column: 1 / -1; }
.fc-stage:not(#fc-wp-boost) { isolation: isolate; }
.fc-stage > canvas:not(#fc-wp-boost) { position: absolute; inset: 0; width: 100%; height: 100%; display: block; z-index: 6; }
.fc-stage__poster:not(#fc-wp-boost) { display: block; transition: opacity .7s ease; }
.fc-stage > [data-fc-fallback]:not(#fc-wp-boost) { transition: opacity .7s ease, visibility 0s linear 0s; }
.fc-stage.fc-kit-live > [data-fc-fallback]:not(#fc-wp-boost) { opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility 0s linear .7s; }
.fc-finale__stage:not(#fc-wp-boost) {
  --fc-hz: 69%;
  position: relative; overflow: hidden; aspect-ratio: 4 / 3;
  border-radius: var(--fc-stage-radius); box-shadow: var(--fc-stage-shadow);
  /* a still morning: blue mist sky, cream, a gold horizon, calm light water */
  background:
    radial-gradient(46% 26% at 50% var(--fc-hz), rgba(255, 228, 172, .6), rgba(255, 228, 172, 0) 72%),
    linear-gradient(180deg, rgba(241, 190, 110, 0) calc(var(--fc-hz) - 1.6%), rgba(232, 172, 84, .42) var(--fc-hz), rgba(248, 217, 166, .12) calc(var(--fc-hz) + 1.2%), rgba(248, 217, 166, 0) calc(var(--fc-hz) + 4%)),
    radial-gradient(30px 1.4px at 22% 80%, rgba(255, 255, 255, .8), transparent),
    radial-gradient(22px 1.2px at 74% 77%, rgba(255, 255, 255, .7), transparent),
    radial-gradient(40px 1.6px at 84% 88%, rgba(255, 255, 255, .6), transparent),
    radial-gradient(26px 1.3px at 12% 92%, rgba(255, 255, 255, .6), transparent),
    linear-gradient(180deg, #D3E2EC 0%, #E4ECEF 24%, #F4EEE0 50%, #F6E2BC calc(var(--fc-hz) - .4%), #F1E3C6 calc(var(--fc-hz) + .4%), #F6EBD6 84%, #FAF2E3 100%);
}
@media (min-width: 600px) and (max-width: 1023.98px) { .fc-finale__stage:not(#fc-wp-boost) { aspect-ratio: 16 / 9; } }
@media (min-width: 1024px) { .fc-finale__stage:not(#fc-wp-boost) { aspect-ratio: 5 / 4; } }
/* the logo sits with air above the sun and below the rings (the live 3D frames itself on the poster's box) */
.fc-finale__stage > .fc-stage__poster:not(#fc-wp-boost), .fc-finale__layer:not(#fc-wp-boost), .fc-finale__ping:not(#fc-wp-boost) {
  position: absolute; top: 7%; left: 50%; translate: -50% 0; z-index: 2;
  height: 86%; width: auto; aspect-ratio: 816 / 900; max-width: none;
}
.fc-finale__stage > .fc-stage__poster:not(#fc-wp-boost), .fc-finale__layer:not(#fc-wp-boost) { object-fit: contain; }
.fc-finale__layer:not(#fc-wp-boost) { display: none; opacity: 0; }
.fc-finale__rings:not(#fc-wp-boost) { transform-origin: 50% 85%; }
.fc-finale__figure:not(#fc-wp-boost) { z-index: 3; }
/* the sun's soft glow on the sky (sun centre: 48.9 % x, 16.9 % y of the poster box); it lights with the sun */
.fc-finale__glow:not(#fc-wp-boost) {
  position: absolute; z-index: 1; left: 49.6%; top: calc(7% + .169 * 86%); height: 46%; aspect-ratio: 1; translate: -50% -50%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 214, 140, .8) 0%, rgba(255, 200, 110, .34) 34%, rgba(255, 196, 110, 0) 70%);
  opacity: 1; transition: opacity 1.2s ease, transform .6s var(--fc-ease-out), filter .6s var(--fc-ease-out);
}
html.fc-sunwarm .fc-finale__stage[data-fc-state="assembled"] .fc-finale__glow:not(#fc-wp-boost) { filter: brightness(1.25) saturate(1.1); }
html.fc-sunwarm[data-fc-motion="on"] .fc-finale__stage[data-fc-state="assembled"] .fc-finale__glow:not(#fc-wp-boost) { transform: scale(1.16); }
/* the CTA's ring on the water (poster tier; the live scene sends its own) */
.fc-finale__ping:not(#fc-wp-boost) { z-index: 4; overflow: visible; pointer-events: none; }
.fc-finale__ping circle:not(#fc-wp-boost) { fill: none; stroke: var(--fc-sun); stroke-width: 1.6px; vector-effect: non-scaling-stroke; opacity: 0; transform-box: fill-box; transform-origin: center; }
/* Motion on, not yet assembled: the resting rings show (the assembled still waits) */
html.fc-js[data-fc-motion="on"] .fc-finale__stage[data-fc-state="rest"] > .fc-stage__poster:not(#fc-wp-boost) { opacity: 0; }
html.fc-js[data-fc-motion="on"] .fc-finale__stage[data-fc-state="rest"] > .fc-finale__rest:not(#fc-wp-boost) { display: block; opacity: 1; }
html.fc-js[data-fc-motion="on"] .fc-finale__stage[data-fc-state="rest"] .fc-finale__glow:not(#fc-wp-boost) { opacity: 0; }
/* the poster tier loads the two layers of its CSS assembly ahead of time; a late fallback loads them when it starts */
html.fc-js[data-fc-motion="on"][data-fc-tier="0"] .fc-finale__stage[data-fc-state="rest"] > .fc-finale__layer:not(#fc-wp-boost),
.fc-finale__stage.fc-is-assembling > .fc-finale__layer:not(#fc-wp-boost) { display: block; }
/* while the 3D draws it: the sky's glow follows the scene's own timing (the sun lights at +4 s) */
.fc-finale__stage[data-fc-live][data-fc-state="assembled"] .fc-finale__glow:not(#fc-wp-boost) { transition: opacity 1.2s ease 4s, transform .6s var(--fc-ease-out), filter .6s var(--fc-ease-out); }
.fc-finale__stage.fc-is-assembling .fc-finale__glow:not(#fc-wp-boost) { transition: opacity 1.4s ease 3.6s; }
html[data-fc-motion="off"] .fc-finale__glow:not(#fc-wp-boost) { transition: none !important; }
/* its caption fades in once the logo has assembled */
.fc-finale__cap:not(#fc-wp-boost) {
  grid-row: 2; grid-column: 1 / -1;
  display: flex; gap: 12px; align-items: flex-start; margin: 16px 4px 0;
  font-family: var(--fc-serif); font-style: italic; font-size: 1.02em; line-height: 1.45; color: var(--fc-ink-soft);
}
.fc-finale__capring:not(#fc-wp-boost) { flex: none; width: 20px; height: 20px; margin-top: .2em; border-radius: 50%; border: 1.5px solid var(--fc-sun); box-shadow: inset 0 0 0 4px var(--fc-morning), inset 0 0 0 10px var(--fc-sun); }
html.fc-js[data-fc-motion="on"] .fc-finale:has(.fc-finale__stage[data-fc-state="rest"]) .fc-finale__cap:not(#fc-wp-boost) { opacity: 0; }
html.fc-js[data-fc-motion="on"] .fc-finale__cap:not(#fc-wp-boost) { transition: opacity .9s ease 5s; }
/* its local Pause (the same as the header's Motion toggle; first in the DOM, so it comes before the stage), on the
   stage's top right corner in the sliders' Night glass, clear of the logo */
.fc-page .fc-finale__pause:not(#fc-wp-boost) {
  position: absolute; z-index: 8; top: 12px; right: 12px; margin: 0;
  border-color: rgba(251, 246, 238, .22); background: rgba(20, 18, 42, .6); color: var(--fc-cream);
  -webkit-backdrop-filter: blur(12px) saturate(1.2); backdrop-filter: blur(12px) saturate(1.2);
  box-shadow: 0 10px 24px -14px rgba(0, 0, 0, .55);
}
.fc-page .fc-finale__pause:hover:not(#fc-wp-boost) { background: rgba(20, 18, 42, .78); }
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) { .fc-page .fc-finale__pause:not(#fc-wp-boost) { background: rgba(20, 18, 42, .86); } }
@media (max-width: 599.98px) { .fc-page .fc-finale__pause:not(#fc-wp-boost) { top: 8px; right: 8px; } }

.fc-ebook:not(#fc-wp-boost) {
  display: grid; gap: 26px; align-items: center; margin-top: 64px; padding: clamp(22px, 4vw, 44px);
  background: linear-gradient(135deg, var(--fc-card) 0%, #FBF1DC 100%); border-radius: 28px; scroll-margin-top: 100px;
}
@media (min-width: 900px) { .fc-ebook:not(#fc-wp-boost) { grid-template-columns: 200px minmax(0, 1fr); gap: 48px; } }
.fc-ebook__cover:not(#fc-wp-boost) { justify-self: center; width: min(170px, 60%); }
@media (min-width: 900px) { .fc-ebook__cover:not(#fc-wp-boost) { width: 100%; } }
.fc-ebook__cover img:not(#fc-wp-boost) { display: block; width: 100%; height: auto; border-radius: 6px 14px 14px 6px; box-shadow: 0 30px 50px -24px rgba(42, 35, 102, .5), 0 0 0 1px rgba(36, 33, 61, .06); transition: transform .5s var(--fc-ease-out); }
html[data-fc-motion="on"] .fc-ebook__cover img:hover:not(#fc-wp-boost) { transform: translateY(-4px) rotate(-2deg); }
.fc-ebook__body .fc-h3:not(#fc-wp-boost) { margin-bottom: 6px; }
.fc-ebook__title:not(#fc-wp-boost) { margin: 6px 0 2px; font-family: var(--fc-serif); font-style: italic; font-size: 1.2em; line-height: 1.35; color: var(--fc-purple); }
.fc-form:not(#fc-wp-boost) { margin-top: 16px; }
.fc-form__row:not(#fc-wp-boost) { display: grid; gap: 12px; margin-bottom: 12px; }
@media (min-width: 600px) { .fc-form__row:not(#fc-wp-boost) { grid-template-columns: 1fr 1fr; } }
.fc-field__label:not(#fc-wp-boost) { display: block; margin-bottom: 6px; font: 600 16px/1.3 var(--fc-sans); color: var(--fc-ink); }
.fc-input:not(#fc-wp-boost) {
  width: 100%; min-height: 48px; padding: 10px 14px; border-radius: 14px;
  border: 1.5px solid rgba(36, 33, 61, .3); background: #fff; color: var(--fc-ink);
  font: 400 17px/1.3 var(--fc-sans);
}
.fc-input:hover:not(#fc-wp-boost) { border-color: rgba(58, 50, 130, .5); }
.fc-input:focus-visible:not(#fc-wp-boost) { border-color: var(--fc-purple); }
.fc-form .fc-small:not(#fc-wp-boost) { margin: 0 0 14px; }
.fc-form__msg:not(#fc-wp-boost) { margin: 14px 0 0; font-weight: 600; font-size: 18px; line-height: 1.45; color: var(--fc-sage-deep); }
/* empty: no height and no margin, but still rendered, so the role=status line is in the accessibility tree before its
   first message and screen readers announce that message (display: none took it out of the tree until then) */
.fc-form__msg:empty:not(#fc-wp-boost) { margin: 0; }
/* 2026-10-10 (his MailerLite settings kept: Last name required, reCAPTCHA on): Last name beside First name, Email on
   the full row below (one column under 600 px). The slot for Google's "I'm not a robot" check holds the check's
   height from the first paint, so nothing moves when it arrives: 78 px (Google's normal size, 304 x 78), or 144 px
   when the slot is narrower than 304 px (fc-kit.js section 10 sets is-compact by the slot's width and asks Google for
   the compact size, 164 x 144). If the slot later gets narrower than the drawn check (a phone turned, a very narrow
   screen, large text), fc-kit.js scales the check down to fit, as MailerLite's own embed does on phones, and sets
   the slot's height to match. Without JavaScript there is no check: the slot goes and the note with MailerLite's own
   page shows instead. */
@media (min-width: 600px) { .fc-field--wide:not(#fc-wp-boost) { grid-column: 1 / -1; } }
.fc-ebook__body:not(#fc-wp-boost) { min-width: 0; }      /* the card's column never widens to fit the 304 px check: the check is scaled instead */
.fc-captcha:not(#fc-wp-boost) { min-height: 78px; margin: 0 0 16px; border-radius: 6px; }
.fc-captcha.is-compact:not(#fc-wp-boost) { min-height: 144px; }
.fc-form .fc-captcha__note:not(#fc-wp-boost) { margin: 0; padding-top: 6px; }
.fc-captcha__ask:not(#fc-wp-boost) { margin-top: 10px; }
.fc-captcha[data-fc-captcha="ask"]:not(#fc-wp-boost) { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.fc-captcha[data-fc-captcha="ask"] .fc-captcha__ask:not(#fc-wp-boost) { margin-top: 0; }
.fc-form .fc-captcha__ask:not(#fc-wp-boost) { padding-block: 8px; line-height: 1.3; }
.fc-captcha__box:not(#fc-wp-boost) { transform-origin: 0 0; }
.fc-captcha:focus:not(#fc-wp-boost) { outline: none; }
.fc-captcha.is-missing:not(#fc-wp-boost) { outline: 2px solid var(--fc-bronze); outline-offset: 6px; }
.fc-form .fc-input[aria-invalid="true"]:not(#fc-wp-boost) { border-color: var(--fc-bronze); box-shadow: 0 0 0 1px var(--fc-bronze); }
.fc-form .fc-btn[aria-disabled="true"]:not(#fc-wp-boost) { cursor: progress; opacity: .7; transform: none; }
.fc-form .fc-form__alt:not(#fc-wp-boost) { margin: 12px 0 0; }
.fc-form__msg.is-error:not(#fc-wp-boost) { color: var(--fc-bronze); }
html:not(.fc-js) .fc-captcha:not(#fc-wp-boost) { display: none; }
/* fc-boot.js marks html.fc-kit-late when fc-kit.js has not run 2.5 s after the markup (a blocked or failed file, or a
   cache plugin's Delay JavaScript): until the kit runs (html[data-fc-tier]), the form shows the no-JavaScript note with
   the link to MailerLite's own page instead of a slot waiting for a check that cannot come */
html.fc-kit-late:not([data-fc-tier]) .fc-form .fc-nojs:not(#fc-wp-boost) { display: block; margin: 10px 0 0; }
html.fc-kit-late:not([data-fc-tier]) .fc-captcha:not(#fc-wp-boost) { display: none; }

/* ---------- 20. Licenses, certifications & affiliations: the logos ---------- */
.fc-aff:not(#fc-wp-boost) { background-color: var(--fc-card); border-top: 1px solid var(--fc-line); }
.fc-sec.fc-aff:not(#fc-wp-boost) { padding-block: 56px; }
@media (min-width: 1024px) { .fc-sec.fc-aff:not(#fc-wp-boost) { padding-block: 80px; } }
.fc-aff__h:not(#fc-wp-boost) { text-align: center; margin: 0 auto 32px; max-width: 22ch; }
@media (min-width: 1024px) { .fc-aff__h:not(#fc-wp-boost) { margin-bottom: 40px; max-width: none; } }
/* seven logos in two lists (4 + 3): centred rows, so no row looks broken (phones 2 + 2 and 2 + 1, from 700 px 4
   and 3); the still layout of the logo rows below (20b) */
.fc-logos:not(#fc-wp-boost) { list-style: none; margin: 0 auto; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; max-width: 1080px; }
.fc-logo-tile:not(#fc-wp-boost) { flex: 0 0 calc((100% - 12px) / 2); min-width: 0; }
@media (min-width: 700px) { .fc-logos:not(#fc-wp-boost) { gap: 16px; } .fc-logo-tile:not(#fc-wp-boost) { flex-basis: calc((100% - 48px) / 4); } }
.fc-page .fc-logo-tile a:not(#fc-wp-boost) {
  position: relative; display: flex; align-items: center; justify-content: center; height: 128px; padding: 18px;
  border-radius: 18px; background: #fff; border: 1px solid var(--fc-line); box-shadow: 0 1px 2px rgba(36, 33, 61, .04);
  text-decoration: none; transition: translate .25s var(--fc-ease-out), box-shadow .25s, border-color .25s;
}
.fc-page .fc-logo-tile a:hover:not(#fc-wp-boost) { translate: 0 -3px; box-shadow: var(--fc-shadow); border-color: rgba(58, 50, 130, .3); text-decoration: none; }
html[data-fc-motion="off"] .fc-page .fc-logo-tile a:hover:not(#fc-wp-boost) { translate: none; }
/* optical sizes per logo (inline --fc-logo-h / --fc-logo-w, from logos/links.json), so seals and wordmarks weigh the same */
.fc-logo-tile img:not(#fc-wp-boost) { display: block; width: auto; height: var(--fc-logo-h, 64px); max-width: min(100%, var(--fc-logo-w, 100%)); object-fit: contain; }
@media (max-width: 419.98px) { .fc-logo-tile img:not(#fc-wp-boost) { height: calc(var(--fc-logo-h, 64px) * .85); } }
.fc-logo-tile__name:not(#fc-wp-boost) { display: none; }
/* a logo file that fails to load: the organisation's name shows instead */
.fc-logo-tile.fc-is-textonly img:not(#fc-wp-boost) { display: none; }
.fc-logo-tile.fc-is-textonly .fc-logo-tile__name:not(#fc-wp-boost) { display: block; text-align: center; font: 600 15px/1.3 var(--fc-sans); color: var(--fc-ink); }

/* ---------- 20b. The logos as two slow rows (2026-10-06, his decision) ----------
   Still first: without JavaScript, with Motion off, with reduced motion and in print the two lists (4 + 3) sit
   still in centred rows, every logo shown, as before. fc-kit.js section 5b adds .is-live with Motion on: each row
   becomes one line of tiles that drifts without end (the top row to the left, the bottom row to the right, about
   20 px a second), with a soft fade at both edges and a Pause button under it. The copies the loop needs are
   added by the script (aria-hidden, inert, out of the tab order) and are never shown in the still layout. */
.fc-marquee:not(#fc-wp-boost) { display: grid; gap: 12px; width: min(1200px, calc(100% - 2 * var(--fc-gutter))); margin-inline: auto; }
@media (min-width: 700px) { .fc-marquee:not(#fc-wp-boost) { gap: 16px; } }
.fc-marquee__row:not(#fc-wp-boost) { min-width: 0; }
.fc-marquee [data-fc-clone]:not(#fc-wp-boost), .fc-marquee__ctl:not(#fc-wp-boost) { display: none; }
@media screen and (prefers-reduced-motion: no-preference) {
  .fc-marquee.is-live:not(#fc-wp-boost) { --fc-mq-tile: 232px; --fc-mq-h: 120px; --fc-mq-gap: 16px; width: min(1360px, 100%); gap: 4px; }
  .fc-marquee.is-live .fc-marquee__row:not(#fc-wp-boost) {
    overflow: hidden; overflow: clip; padding-block: 8px;
    -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0), #000 var(--fc-fade, 48px), #000 calc(100% - var(--fc-fade, 48px)), rgba(0, 0, 0, 0));
    mask-image: linear-gradient(90deg, rgba(0, 0, 0, 0), #000 var(--fc-fade, 48px), #000 calc(100% - var(--fc-fade, 48px)), rgba(0, 0, 0, 0));
  }
  .fc-marquee.is-live .fc-marquee__track:not(#fc-wp-boost) { position: relative; display: flex; width: max-content; backface-visibility: hidden; }
  .fc-marquee.is-live .fc-marquee__set:not(#fc-wp-boost), .fc-marquee.is-live [data-fc-clone]:not(#fc-wp-boost) {
    display: flex; flex: none; flex-wrap: nowrap; justify-content: flex-start; gap: var(--fc-mq-gap);
    max-width: none; margin: 0; padding: 0 var(--fc-mq-gap) 0 0;
  }
  /* width too (2026-10-11, "Safari showed overlapping logo tiles"): WebKit sizes a max-content flex box from its items' content widths, not their flex-basis */
  .fc-marquee.is-live .fc-logo-tile:not(#fc-wp-boost) { flex: 0 0 var(--fc-mq-tile); width: var(--fc-mq-tile); }
  .fc-page .fc-marquee.is-live .fc-logo-tile a:not(#fc-wp-boost) { height: var(--fc-mq-h); padding: 14px 16px; }
  .fc-marquee.is-live .fc-marquee__ctl:not(#fc-wp-boost) { display: flex; justify-content: center; margin: 18px 0 0; }
}
@media screen and (prefers-reduced-motion: no-preference) and (max-width: 599.98px) {
  .fc-marquee.is-live:not(#fc-wp-boost) { --fc-mq-tile: 172px; --fc-mq-h: 100px; --fc-mq-gap: 12px; }
  .fc-marquee.is-live .fc-logo-tile img:not(#fc-wp-boost) { height: calc(var(--fc-logo-h, 64px) * .8); }
  .fc-page .fc-marquee.is-live .fc-logo-tile a:not(#fc-wp-boost) { padding: 12px 14px; }
}
/* reveal failsafe (2026-10-06): if the page scripts are late, the finale caption shows with the still picture */
html.fc-kit-late .fc-finale .fc-finale__cap:not(#fc-wp-boost) { opacity: 1 !important; transition: opacity .6s ease !important; }

/* ---------- 21. Follow Dr. V: an inset Night panel (the Facebook box and six channels) ----------
   The same stage shape as the break-up deck (inset, --fc-stage-radius), on the affiliations' card ground, with the
   logo's light rings and a gold horizon line. Phones: the Facebook box, then the six tiles 2 x 3. 600 to 1099 px: the
   box centred, the tiles 3 x 2 below. 1100 px up: the box on the left, the six tiles 3 x 2 beside it. */
.fc-follow:not(#fc-wp-boost) { position: relative; padding: 0 var(--fc-stage-inset); background: var(--fc-card); color: var(--fc-cream); }
.fc-follow__panel:not(#fc-wp-boost) {
  position: relative; isolation: isolate; overflow: hidden; padding: 52px 0 56px;
  border-radius: var(--fc-stage-radius) var(--fc-stage-radius) 0 0; background: var(--fc-night);
  box-shadow: 0 -20px 60px -40px rgba(28, 26, 54, .45);
}
/* its foot meets the full-width Night footer; a small inner curve on each side joins the two into one shape */
.fc-follow:not(#fc-wp-boost)::before, .fc-follow:not(#fc-wp-boost)::after { content: ""; position: absolute; bottom: 0; width: var(--fc-stage-inset); height: var(--fc-stage-inset); pointer-events: none; }
.fc-follow:not(#fc-wp-boost)::before { left: 0; background: radial-gradient(circle at 0 0, var(--fc-card) calc(var(--fc-stage-inset) - .6px), var(--fc-night) var(--fc-stage-inset)); }
.fc-follow:not(#fc-wp-boost)::after { right: 0; background: radial-gradient(circle at 100% 0, var(--fc-card) calc(var(--fc-stage-inset) - .6px), var(--fc-night) var(--fc-stage-inset)); }
@media (min-width: 1024px) { .fc-follow__panel:not(#fc-wp-boost) { padding: 76px 0 84px; } }
.fc-follow__panel:not(#fc-wp-boost)::before {
  /* a low glow behind the Facebook box: teal, because deep sun gold at low opacity blends through plum on this navy
     (hard rule: no pink; final review 2026-10-07) */
  content: ""; position: absolute; z-index: -1; left: 30%; top: 58%; width: 110%; height: 110%; translate: -50% -50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(48, 181, 201, .13), rgba(48, 181, 201, .04) 55%, rgba(48, 181, 201, 0));
}
.fc-follow__panel:not(#fc-wp-boost)::after {
  /* the gold horizon line along the top edge (the footer has the same one) */
  content: ""; position: absolute; left: 10%; right: 10%; top: 0; height: 1px; pointer-events: none;
  background: linear-gradient(90deg, rgba(241, 164, 52, 0), rgba(241, 164, 52, .7) 50%, rgba(241, 164, 52, 0));
}
.fc-follow__decor:not(#fc-wp-boost) { position: absolute; z-index: -1; right: -70px; bottom: -50px; width: 360px; pointer-events: none; }
.fc-follow__decor ellipse:not(#fc-wp-boost) { stroke: var(--fc-gold); stroke-width: 1.3px; opacity: .2; }
.fc-follow__decor ellipse:nth-child(n+3):not(#fc-wp-boost) { opacity: .12; }
.fc-follow__in:not(#fc-wp-boost) { position: relative; z-index: 1; }
.fc-follow__head:not(#fc-wp-boost) { display: flex; flex-direction: column; align-items: center; gap: 16px; margin: 0 0 30px; text-align: center; }
@media (min-width: 1024px) { .fc-follow__head:not(#fc-wp-boost) { margin-bottom: 44px; } }
.fc-follow__h:not(#fc-wp-boost) { margin: 0; font-family: var(--fc-serif); font-weight: 400; font-size: clamp(2rem, 1.35rem + 2.2vw, 3rem); line-height: 1.1; letter-spacing: -.015em; color: var(--fc-cream); font-variation-settings: "SOFT" 50, "WONK" 0; }
.fc-follow__grid:not(#fc-wp-boost) { display: grid; gap: 20px; }
@media (min-width: 600px) { .fc-follow__grid > .fc-fbx:not(#fc-wp-boost) { width: 100%; max-width: 540px; margin-inline: auto; } }
@media (min-width: 1100px) {
  .fc-follow__grid:not(#fc-wp-boost) { grid-template-columns: minmax(0, 460px) minmax(0, 1fr); gap: 28px; align-items: stretch; }
  .fc-follow__grid > .fc-fbx:not(#fc-wp-boost) { max-width: none; margin: 0; }
}
.fc-follow__list:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 600px) { .fc-follow__list:not(#fc-wp-boost) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } }
@media (min-width: 1100px) { .fc-follow__list:not(#fc-wp-boost) { grid-auto-rows: 1fr; gap: 16px; } }
.fc-page .fc-follow__link:not(#fc-wp-boost) {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; height: 100%; padding: 22px 12px 20px;
  border-radius: 22px; background: rgba(251, 246, 238, .05); border: 1px solid rgba(251, 246, 238, .2);
  color: var(--fc-cream); text-decoration: none; text-align: center;
  transition: translate .3s var(--fc-ease-out), background-color .25s, border-color .25s;
}
.fc-page .fc-follow__link:hover:not(#fc-wp-boost) { background: rgba(251, 246, 238, .1); border-color: var(--fc-gold); text-decoration: none; }
@media (pointer: fine) { html[data-fc-motion="on"] .fc-page .fc-follow__link:hover:not(#fc-wp-boost) { translate: 0 -2px; } }
.fc-follow__icon:not(#fc-wp-boost) { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--fc-cream); color: var(--fc-purple); box-shadow: 0 0 0 6px rgba(251, 246, 238, .08); transition: background-color .25s, color .25s, box-shadow .25s; }
.fc-follow__link:hover .fc-follow__icon:not(#fc-wp-boost) { background: var(--fc-gold); color: var(--fc-night); box-shadow: 0 0 0 6px rgba(248, 217, 166, .16); }
.fc-follow__icon svg:not(#fc-wp-boost) { width: 27px; height: 27px; fill: currentColor; }
@media (min-width: 1100px) { .fc-follow__icon:not(#fc-wp-boost) { width: 72px; height: 72px; } .fc-follow__icon svg:not(#fc-wp-boost) { width: 32px; height: 32px; } }
.fc-follow__text:not(#fc-wp-boost) { display: grid; gap: 2px; min-width: 0; max-width: 100%; }
.fc-follow__name:not(#fc-wp-boost) { font: 700 17px/1.2 var(--fc-sans); }
.fc-follow__handle:not(#fc-wp-boost) { font-size: 14px; line-height: 1.3; color: rgba(251, 246, 238, .82); overflow-wrap: anywhere; }

/* the Facebook box: a cream card (the deck card's finish). At rest its window shows a quiet face (a large quote mark,
   "Latest posts from Dr. V", the logo's rings) above its "Show recent posts" button; nothing loads from Meta until
   that click */
.fc-fbx:not(#fc-wp-boost) {
  position: relative; display: flex; flex-direction: column; min-width: 0; padding: 22px 22px 20px;
  border-radius: 26px; background: var(--fc-card); color: var(--fc-ink); text-align: left;
  box-shadow: 0 2px 4px rgba(0, 0, 0, .08), 0 30px 50px -24px rgba(0, 0, 0, .6);
}
@media (max-width: 479.98px) { .fc-fbx:not(#fc-wp-boost) { padding: 18px 16px 16px; border-radius: 22px; } }
.fc-fbx__head:not(#fc-wp-boost) { display: flex; align-items: center; gap: 14px; }
.fc-fbx__avatar:not(#fc-wp-boost) { flex: none; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; background: #fff; box-shadow: 0 0 0 1px var(--fc-line), 0 0 0 4px var(--fc-card), 0 0 0 5.5px rgba(241, 164, 52, .55); }
.fc-fbx__who:not(#fc-wp-boost) { min-width: 0; flex: 1; }
.fc-fbx__name:not(#fc-wp-boost) { margin: 0; font: 700 16px/1.3 var(--fc-sans); color: var(--fc-ink); }
.fc-fbx__sub:not(#fc-wp-boost) { margin: 3px 0 0; font-size: 14.5px; line-height: 1.35; color: var(--fc-ink-soft); }
.fc-fbx__glyph:not(#fc-wp-boost) { flex: none; align-self: flex-start; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--fc-purple); color: var(--fc-card); }
.fc-fbx__glyph svg:not(#fc-wp-boost) { width: 18px; height: 18px; fill: currentColor; }
.fc-fbx__frame:not(#fc-wp-boost) {
  position: relative; flex: 1 0 auto; height: 286px; margin-top: 18px; overflow: hidden; overflow: clip;   /* clip: never scrolled by focus */
  border-radius: 18px; border: 1px solid var(--fc-line);
  background: radial-gradient(70% 55% at 50% 100%, rgba(241, 164, 52, .16), rgba(241, 164, 52, 0) 72%), #F3EDE3;
}
@media (min-width: 1100px) { .fc-fbx__frame:not(#fc-wp-boost) { height: auto; min-height: 286px; } }
/* without JavaScript the box is the page's name, its follower line and the Follow link (nothing can load) */
html:not(.fc-js) .fc-fbx__frame:not(#fc-wp-boost), html:not(.fc-js) .fc-fbx__privacy:not(#fc-wp-boost) { display: none; }
html:not(.fc-js) .fc-follow__grid > .fc-fbx:not(#fc-wp-boost) { align-self: start; }
.fc-fbx__face:not(#fc-wp-boost) { position: absolute; inset: 0 0 84px; z-index: 1; display: grid; align-content: center; justify-items: center; gap: 2px; padding: 22px 22px 0; text-align: center; }
.fc-fbx__quote:not(#fc-wp-boost) { display: block; height: .46em; font: italic 400 104px/1 var(--fc-serif); color: var(--fc-sun); opacity: .6; font-variation-settings: "SOFT" 50, "WONK" 0; }
.fc-page .fc-fbx__facetext:not(#fc-wp-boost) { margin: 0; max-width: 18ch; font: italic 400 clamp(1.3125rem, 1.15rem + .4vw, 1.5rem)/1.3 var(--fc-serif); color: var(--fc-ink); font-variation-settings: "SOFT" 50, "WONK" 0; }
.fc-fbx__rings:not(#fc-wp-boost) { position: absolute; z-index: 0; left: 50%; bottom: -44px; width: 380px; translate: -50% 0; pointer-events: none; }
.fc-fbx__rings ellipse:not(#fc-wp-boost) { stroke-width: 1.2px; opacity: .4; }
.fc-fbx__rings ellipse:nth-child(-n+2):not(#fc-wp-boost) { opacity: .24; }
.fc-fbx__bar:not(#fc-wp-boost) { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; justify-content: center; padding: 18px 16px 22px; }
.fc-page .fc-fbx__btn:not(#fc-wp-boost) { gap: 10px; padding: 0 22px 0 16px; }
.fc-fbx__btnring:not(#fc-wp-boost) { flex: none; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--fc-gold); box-shadow: inset 0 0 0 3px var(--fc-purple), inset 0 0 0 8px var(--fc-gold); }
.fc-fbx__note:not(#fc-wp-boost) { position: absolute; inset: 0 0 84px; z-index: 2; display: grid; align-content: center; justify-items: center; gap: 4px; padding: 18px 22px 0; text-align: center; }
.fc-fbx__note[hidden]:not(#fc-wp-boost) { display: none; }
.fc-fbx__note p:not(#fc-wp-boost) { margin: 0; max-width: 34ch; font-size: 15.5px; line-height: 1.5; color: var(--fc-ink); }
.fc-page .fc-fbx__notelink:not(#fc-wp-boost) { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--fc-purple); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
/* preview: the note takes the face's place */
.fc-fbx__frame.is-noted .fc-fbx__face:not(#fc-wp-boost) { visibility: hidden; }
.fc-fbx__frame.is-noted .fc-fbx__rings:not(#fc-wp-boost) { opacity: .45; }
/* live site: the official plugin replaces the sketch (the space is reserved at once, so nothing jumps) */
.fc-fbx__slot:not(#fc-wp-boost) { display: none; }
.fc-fbx__frame.is-live:not(#fc-wp-boost) { height: auto; min-height: 0; background: #fff; }
.fc-fbx__frame.is-live .fc-fbx__face:not(#fc-wp-boost), .fc-fbx__frame.is-live .fc-fbx__rings:not(#fc-wp-boost) { display: none; }
.fc-fbx__frame.is-live .fc-fbx__bar:not(#fc-wp-boost) { position: static; justify-content: flex-start; padding: 10px; border-bottom: 1px solid var(--fc-line); }
.fc-fbx__frame.is-live .fc-fbx__slot:not(#fc-wp-boost) { position: relative; display: block; background: #F4F1EC; }
.fc-fbx__slot:not(#fc-wp-boost)::before { content: "Loading posts from Facebook"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 15px; color: var(--fc-ink-soft); }
.fc-fbx__slot iframe:not(#fc-wp-boost) { position: relative; display: block; margin: 0 auto; max-width: 100%; border: 0; background: transparent; }
.fc-fbx__actions:not(#fc-wp-boost) { margin: 16px 0 0; }
.fc-page .fc-fbx__follow:not(#fc-wp-boost) {
  display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border-radius: 999px;
  border: 1.5px solid var(--fc-purple); color: var(--fc-purple); font: 600 16.5px/1.2 var(--fc-sans); text-decoration: none;
  transition: background-color .2s;
}
.fc-page .fc-fbx__follow:hover:not(#fc-wp-boost) { background: rgba(58, 50, 130, .07); text-decoration: none; }
.fc-fbx__privacy:not(#fc-wp-boost) { margin: 12px 2px 0; font-size: 13.5px; line-height: 1.5; color: var(--fc-ink-soft); }
.fc-page .fc-fbx__privacy a:not(#fc-wp-boost) { color: inherit; text-underline-offset: 3px; }
/* focus on the cream card: ink with an amber halo; on the panel: the lime ring */
.fc-page .fc-follow .fc-fbx :focus-visible:not(#fc-wp-boost) { outline-color: var(--fc-ink); box-shadow: 0 0 0 6px rgba(241, 164, 52, .45); }

/* ---------- 22. Footer (Night) ---------- */
.fc-footer:not(#fc-wp-boost) { position: relative; padding: 72px 0 40px; font-size: 15.5px; line-height: 1.6; }
@media (max-width: 767.98px) { .fc-footer:not(#fc-wp-boost) { padding-bottom: calc(110px + env(safe-area-inset-bottom)); } }
.fc-page .fc-footer a:not(#fc-wp-boost) { color: var(--fc-cream); text-decoration: none; }
.fc-page .fc-footer a:hover:not(#fc-wp-boost) { text-decoration: underline; text-decoration-style: wavy; }
.fc-footer__grid:not(#fc-wp-boost) { display: grid; gap: 36px; }
@media (min-width: 700px) { .fc-footer__grid:not(#fc-wp-boost) { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fc-footer__trust:not(#fc-wp-boost) { grid-column: 1 / -1; } }
@media (min-width: 1100px) {
  .fc-footer__grid:not(#fc-wp-boost) { grid-template-columns: 1.9fr 1.15fr 1fr 1fr 1.1fr; gap: 40px; } .fc-footer__trust:not(#fc-wp-boost) { grid-column: auto; }
}
/* 2026-10-11 (kit 2.0.7), his request: the footer logo is his original stacked logo again, as in his 2016 logo.png
   (the figure over the rings on top, "Feelings" and "Counseling & Coaching Services, PLLC" right below, his spacing).
   "Feelings" is cream here (15.6:1 on Night; his purple would be 1.6:1; the turquoise lines are 6.9:1). 220 px
   wide: the capitals of its smallest line are about 16 px tall (the side-by-side logo, 143 x 52, had them at about
   7 px). 1x and 2x WebP. The name line that sat under the logo is gone (the lettering says the name; the image's alt
   text and the copyright line keep it as text), and the credential line right under the logo takes that line's look. */
.fc-page .fc-footer__logo:not(#fc-wp-boost) { display: inline-block; max-width: 100%; border-radius: 12px; }
.fc-footer__logo img:not(#fc-wp-boost) { display: block; width: 220px; max-width: 100%; height: auto; }
.fc-footer__logo + .fc-footer__cred:not(#fc-wp-boost) { margin-top: 18px; font-family: var(--fc-serif); font-weight: 600; font-size: 18px; line-height: 1.35; color: var(--fc-cream); }
/* 2026-10-10, his decision: the two board links under his name are gone (their list rules with them; CHANGES.md,
   same date); the social icons now follow the credential line at the gap the list had below it */
.fc-footer__cred:not(#fc-wp-boost) { margin: 0 0 18px; color: rgba(251, 246, 238, .86); }
.fc-footer__h:not(#fc-wp-boost) { margin: 0 0 14px; font: 600 12.5px/1.3 var(--fc-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fc-gold); }
.fc-footer__col p:not(#fc-wp-boost), .fc-footer__addr:not(#fc-wp-boost) { margin: 0 0 10px; color: rgba(251, 246, 238, .86); }
.fc-footer__soft:not(#fc-wp-boost) { font-style: italic; }
.fc-footer__links:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fc-footer__links li:not(#fc-wp-boost) { color: rgba(251, 246, 238, .5); }
.fc-search--night:not(#fc-wp-boost) { margin-top: 18px; padding: 0; border: 0; }
.fc-search--night .fc-search__label:not(#fc-wp-boost) { color: var(--fc-cream); }
/* the field's edge at .45 cream: 4.2:1 on the footer's night (was .32, 2.8:1; WCAG 1.4.11 asks 3:1; 2026-10-12 check) */
.fc-search--night .fc-input:not(#fc-wp-boost) { background: rgba(251, 246, 238, .06); border-color: rgba(251, 246, 238, .45); color: var(--fc-cream); }
.fc-search--night .fc-search__btn:not(#fc-wp-boost) { border-color: var(--fc-cream); color: var(--fc-cream); }
.fc-search--night .fc-search__btn:hover:not(#fc-wp-boost) { background: rgba(251, 246, 238, .1); }
/* the copyright line closes the footer with a quiet rule (2026-10-06: the Good Faith Estimate bar that sat here is
   gone; 2026-10-10: the footer's link to the notice is gone too; the notice is only on Common Questions) */
.fc-footer__grid + .fc-footer__copy:not(#fc-wp-boost) { margin-top: 48px; padding-top: 22px; border-top: 1px solid var(--fc-line-night); }
.fc-social:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.fc-page .fc-social a:not(#fc-wp-boost) { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(251, 246, 238, .28); }
.fc-page .fc-social a:hover:not(#fc-wp-boost) { background: rgba(251, 246, 238, .1); }
.fc-social svg:not(#fc-wp-boost) { width: 20px; height: 20px; fill: currentColor; }
@media (max-width: 340px) { .fc-social:not(#fc-wp-boost) { gap: 4px; } }
.fc-footer__copy:not(#fc-wp-boost) { margin: 30px 0 0; font-size: 13.5px; color: rgba(251, 246, 238, .7); }
@media (min-width: 360px) and (max-width: 699.98px) {
  .fc-footer__grid:not(#fc-wp-boost) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 20px; }
  .fc-footer__trust:not(#fc-wp-boost), .fc-footer__grid > .fc-footer__col:nth-child(2):not(#fc-wp-boost), .fc-footer__grid > .fc-footer__col:last-child:not(#fc-wp-boost) { grid-column: 1 / -1; }
  .fc-footer__grid > .fc-footer__col:last-child .fc-footer__links:not(#fc-wp-boost) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 20px; }
  .fc-footer__links a:not(#fc-wp-boost) { line-height: 1.3; }
}
@media (max-width: 767.98px), (pointer: coarse) {
  .fc-footer__links:not(#fc-wp-boost) { gap: 0; }
  .fc-page .fc-footer__links a:not(#fc-wp-boost), .fc-page .fc-footer__col p a:not(#fc-wp-boost) { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
  /* a label that wraps keeps 6 px above and below its lines, so two wrapped labels read as two links, not one block
     (round 2, review fix: they were 5 px apart, the lines inside one label 1 px); a one-line link stays 44 px tall */
  .fc-page .fc-footer__links a:not(#fc-wp-boost) { padding-block: 6px; }
  /* a two-link row ("Contact \B7  Let's Talk", "Blog \B7  Resources"): the first link's target reaches 7 px to each side
     (padding cancelled by an equal negative margin), so a short word such as "Blog" is 44 px wide without a gap
     before its dot; the words stay where the line puts them (review fix, 2026-10-10) */
  .fc-page .fc-footer__links li > a:first-child:not(:last-child):not(#fc-wp-boost) { padding-inline: 7px; margin-inline: -7px; }
}

/* ---------- 23. Mobile bottom booking bar ---------- */
.fc-bbar:not(#fc-wp-boost) { display: none; }
@media (max-width: 767.98px) {
  .fc-bbar:not(#fc-wp-boost) {
    display: flex; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 55;
    padding: 10px var(--fc-gutter) calc(10px + env(safe-area-inset-bottom));
    background: rgba(247, 241, 232, .96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    box-shadow: 0 -1px 0 var(--fc-line), 0 -12px 30px -18px rgba(36, 33, 61, .45);
    transition: transform .35s var(--fc-ease-out), visibility 0s linear 0s;
  }
  html.fc-js:not(.fc-bbar-on) .fc-bbar:not(#fc-wp-boost) { transform: translateY(110%); visibility: hidden; transition: transform .35s var(--fc-ease-out), visibility 0s linear .35s; }
  html.fc-nav-open .fc-bbar:not(#fc-wp-boost) { visibility: hidden; }
  .fc-page .fc-bbar__call:not(#fc-wp-boost) {
    flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 18px;
    border-radius: 999px; border: 1.5px solid var(--fc-purple); color: var(--fc-purple);
    font: 600 16px/1 var(--fc-sans); text-decoration: none; background: var(--fc-card);
  }
  .fc-bbar__call svg:not(#fc-wp-boost) { width: 18px; height: 18px; fill: currentColor; }
  .fc-bbar__book:not(#fc-wp-boost) { flex: 1; min-height: 48px; padding: 0 18px; box-shadow: 0 3px 0 0 var(--fc-sun); }
}
html[data-fc-motion="off"] .fc-bbar:not(#fc-wp-boost) { transition: none !important; }

/* ---------- 23b. Bigger reading text (Dr. V, 2026-10-05: "I like big fonts"; homepage 2026-10-07) ----------
   The sizes of About v2 (inner-pages about.css section 18) and the service pages: reading paragraphs about 20 px on
   desktop and at least 18.5 px on phones (they were 16.5 to 18 px), card text 17 to 18.5 px (was 15.5 to 16.5 px),
   the dense Choose a service answers 16.5 to 17 px (was 15.5 px). Headings, labels, buttons, the menus, the footer and
   the parts shared with the other previews (booking card, logo rows, Follow panel) keep their sizes. Overrides only:
   no rule above was edited, so this block alone holds the change. */
/* reading paragraphs: 18.5 px on phones, 20 px from about 720 px wide */
.fc-welcome__body:not(#fc-wp-boost), .fc-drawer__body:not(#fc-wp-boost), .fc-schedule__text:not(#fc-wp-boost), .fc-faq__intro:not(#fc-wp-boost), .fc-qa__a:not(#fc-wp-boost), .fc-mission__bio:not(#fc-wp-boost), .fc-goal:not(#fc-wp-boost) { font-size: clamp(1.15625rem, 1.07rem + .4vw, 1.25rem); }
/* the FAQ questions stay at least as large as their answers (as on the service pages) */
.fc-qa__q:not(#fc-wp-boost) { font-size: clamp(1.125rem, 1.06rem + .3vw, 1.25rem); }
/* the lead above the Choose a service cards stays larger than the reading text (as About v2's lead) */
.fc-lead:not(#fc-wp-boost) { font-size: clamp(1.1875rem, 1.06rem + .6vw, 1.375rem); }
/* card text: 17 px on phones, 18.5 px from about 1000 px wide */
.fc-wcard p:not(#fc-wp-boost), .fc-svc p:not(#fc-wp-boost), .fc-belief p:not(#fc-wp-boost), .fc-why-card p:not(#fc-wp-boost) { font-size: clamp(1.0625rem, 1.02rem + .22vw, 1.15625rem); }
/* the Choose a service answers (three cards side by side from 900 px; "Read more" is measured at run time): 16.5 to 17 px */
.fc-plan__dl dd:not(#fc-wp-boost) { font-size: clamp(1.03125rem, 1rem + .1vw, 1.0625rem); }
/* the client notes on phones (was 17 px; 19 px from 600 px, unchanged) and the line under their heading */
@media (max-width: 599.98px) { .fc-note blockquote p:not(#fc-wp-boost) { font-size: 18px; } }
.fc-notes__disc:not(#fc-wp-boost) { font-size: 16.5px; }

/* ---------- 23e. Welcome cards: no stretched empty card (final fix 2026-10-08) ----------
   The two short cards were stretched to their long neighbours' height, leaving a large empty block under the purple
   card's button (499 px at 768). One column from 768 to 1023 px; from 1024 px the long cards sit in a wider column, so
   the cards of a row come out close in height, and the purple card centres its content in any space left. */
@media (min-width: 768px) and (max-width: 1023.98px) { .fc-wcards:not(#fc-wp-boost) { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 1024px) {
  .fc-wcards:not(#fc-wp-boost) { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
  .fc-wcard--cta:not(#fc-wp-boost) { justify-content: center; }
}

/* ---------- 23f. Self-check invitation card under the service comparison (2026-10-09) ----------
   Copied from workshops/src/ws-quiz.css (the card on the hub and the program pages), so it looks the same. */
.fc-page .ws-quiz-invite-band:not(#fc-wp-boost) { padding: 28px 0 0; }
@media (min-width: 1024px) { .fc-page .ws-quiz-invite-band:not(#fc-wp-boost) { padding: 40px 0 8px; } }
.fc-page .ws-quiz-invite:not(#fc-wp-boost) { max-width: 860px; margin: 0 auto; }
.fc-page a.ws-quiz-invite__link:not(#fc-wp-boost) {
  position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px 20px;
  min-height: 44px; padding: 18px 20px; border-radius: 24px; text-decoration: none; color: var(--fc-ink);
  background: linear-gradient(120deg, var(--fc-card) 0%, var(--fc-morning) 100%); border: 1px solid rgba(241, 164, 52, .42);
  box-shadow: var(--fc-shadow);
}
.fc-page a.ws-quiz-invite__link:hover:not(#fc-wp-boost) { border-color: var(--fc-sun); }
.fc-page .ws-quiz-invite__art:not(#fc-wp-boost) { display: block; width: 92px; height: auto; overflow: visible; }
@media (max-width: 479.98px) {
  .fc-page a.ws-quiz-invite__link:not(#fc-wp-boost) { grid-template-columns: minmax(0, 1fr) auto; padding: 16px 16px 18px; gap: 8px 12px; }
  .fc-page .ws-quiz-invite__art:not(#fc-wp-boost) { grid-column: 1 / -1; width: 76px; }
}
.fc-page .ws-quiz-invite__text:not(#fc-wp-boost) { display: grid; gap: 4px; }
.fc-page .ws-quiz-invite__q:not(#fc-wp-boost) { font-size: clamp(1.3125rem, 1.15rem + .6vw, 1.625rem); font-weight: 700; line-height: 1.3; color: var(--fc-ink); text-wrap: balance; }
.fc-page .ws-quiz-invite__go:not(#fc-wp-boost) {
  font: 400 clamp(1.3125rem, 1.15rem + .6vw, 1.625rem)/1.25 var(--fc-serif); color: var(--fc-purple); font-variation-settings: "SOFT" 50, "WONK" 0;
  text-decoration: underline; text-decoration-color: rgba(241, 164, 52, .9); text-decoration-thickness: 2px; text-underline-offset: 6px;
  text-wrap: balance;
}
.fc-page .ws-quiz-invite .ws-quiz__go:not(#fc-wp-boost) { position: relative; flex: none; width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--fc-sun); }
.fc-page .ws-quiz-invite .ws-quiz__go:not(#fc-wp-boost)::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px;
  border-top: 1.75px solid var(--fc-purple); border-right: 1.75px solid var(--fc-purple); translate: -65% -50%; rotate: 45deg;
}
.fc-page .ws-quiz-art ellipse:not(#fc-wp-boost) { fill: none; stroke: var(--fc-sun); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.fc-page .ws-quiz-art ellipse:nth-child(1):not(#fc-wp-boost) { fill: var(--fc-sun); stroke: none; opacity: .9; }
.fc-page .ws-quiz-art ellipse:nth-child(2):not(#fc-wp-boost) { opacity: .8; }
.fc-page .ws-quiz-art ellipse:nth-child(3):not(#fc-wp-boost) { opacity: .58; }
.fc-page .ws-quiz-art ellipse:nth-child(4):not(#fc-wp-boost) { opacity: .4; }
.fc-page .ws-quiz-art ellipse:nth-child(5):not(#fc-wp-boost) { opacity: .26; }
.fc-page .ws-quiz-art .ws-quiz-art__path:not(#fc-wp-boost) { fill: none; stroke-width: 2; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.fc-page .ws-quiz-art .ws-quiz-art__path--c:not(#fc-wp-boost) { stroke: var(--fc-purple); }
.fc-page .ws-quiz-art .ws-quiz-art__path--l:not(#fc-wp-boost) { stroke: var(--fc-sun); }
.fc-page .ws-quiz-art .ws-quiz-art__path--m:not(#fc-wp-boost) { stroke: var(--fc-sage); }
.fc-page .ws-quiz-art .ws-quiz-art__dot--c:not(#fc-wp-boost) { fill: var(--fc-purple); }
.fc-page .ws-quiz-art .ws-quiz-art__dot--l:not(#fc-wp-boost) { fill: var(--fc-sun); }
.fc-page .ws-quiz-art .ws-quiz-art__dot--m:not(#fc-wp-boost) { fill: var(--fc-sage); }
@media (forced-colors: active) {
  .fc-page a.ws-quiz-invite__link:not(#fc-wp-boost) { border: 1px solid CanvasText; }
  .fc-page .ws-quiz-art :is(ellipse, .ws-quiz-art__path):not(#fc-wp-boost) { stroke: CanvasText; }
  .fc-page .ws-quiz-art :is(ellipse:nth-child(1), [class*="ws-quiz-art__dot"]):not(#fc-wp-boost) { fill: CanvasText; }
}

/* ---------- 23j. Home copy round (2026-10-11): practice lines and welcome card text ----------
   "A practice built on honesty, integrity, and quality care" and "A practice that cares about you and your family"
   (section 14): a heavier weight (Fraunces is loaded at 400 to 600, so 600 is its heaviest true weight), a little
   larger and in the purple of the headings. The welcome cards' text (his own words, 2026-10-12) gets his
   big-text sizes: 18.5 px on phones to 20 px on desktop (was 17 to 18.5 px), the bold lead 17 to 18 px (was
   15.5 px); their look is 23m. Overrides only; sections 10, 14 and 23b are unchanged. */
.fc-ribbons li:not(#fc-wp-boost) { font-weight: 600; font-size: 1.24em; color: var(--fc-purple); }
.fc-wcard p:not(#fc-wp-boost) { font-size: clamp(1.15625rem, 1.1rem + .25vw, 1.25rem); }
.fc-wcard__lead:not(#fc-wp-boost) { font-size: clamp(1.0625rem, 1.02rem + .2vw, 1.125rem); }

/* ---------- 23m. Welcome cards: his own words, each card its own soft tint (2026-10-12) ----------
   Dr. V (2026-10-12): his original card text is back (the condensed text of 2026-10-11 is gone), and the three word
   cards should stand out and be easy to read: each its own soft tint from the site palette (light blue, cream,
   light sage) with a light in its top corner, a clear icon on a white tile beside the title, the bold lead set off
   by a line in the card's colour, the text in ink at his size (23j: 18.5 px on phones, 20 px on desktop) and a
   comfortable line (at most 68 characters). The free-call card (card 4: the start card's Night card, 23g) is not
   touched and stays the strongest. 23e's 1.7 : 1 columns from 1024 px suit the long cards again. Overrides only.
   Contrast (computed on the darkest end of each tint): text #24213D 12.1 : 1 or more, lead #3A3282 8.4 : 1 or
   more, icons on their white tiles 6.2 : 1 or more. */
.fc-wcards > .fc-wcard:not(.fc-wcard--cta):not(#fc-wp-boost) {
  --wc-a: #F1F6FA; --wc-b: #DCE7F0; --wc-fg: var(--fc-blue-deep); --wc-line: rgba(47, 84, 112, .2);
  display: grid; grid-template-columns: 60px minmax(0, 1fr); column-gap: 18px; align-content: start;
  background:
    radial-gradient(90% 70% at 100% 0%, rgba(255, 255, 255, .72) 0%, rgba(255, 255, 255, 0) 60%),
    linear-gradient(168deg, var(--wc-a) 0%, var(--wc-b) 100%);
  border: 1px solid var(--wc-line);
  box-shadow: 0 1px 2px rgba(36, 33, 61, .05), 0 24px 44px -30px rgba(36, 33, 61, .38);
}
.fc-wcards > .fc-wcard:nth-child(2):not(.fc-wcard--cta):not(#fc-wp-boost) { --wc-a: #FFFAF1; --wc-b: #F5E6C8; --wc-fg: var(--fc-bronze); --wc-line: rgba(131, 86, 26, .2); }
.fc-wcards > .fc-wcard:nth-child(3):not(.fc-wcard--cta):not(#fc-wp-boost) { --wc-a: #F3F7EF; --wc-b: #DCE7D5; --wc-fg: var(--fc-sage-deep); --wc-line: rgba(68, 96, 74, .22); }
.fc-wcards > .fc-wcard:not(.fc-wcard--cta) > .fc-badge:not(#fc-wp-boost) {
  grid-row: 1; grid-column: 1; align-self: center; width: 60px; height: 60px; border-radius: 18px;
  --fc-badge-bg: var(--fc-card); --fc-badge-fg: var(--wc-fg);
  box-shadow: inset 0 0 0 1px var(--wc-line), 0 10px 22px -14px rgba(36, 33, 61, .45);
}
.fc-wcards > .fc-wcard:not(.fc-wcard--cta) > .fc-badge svg:not(#fc-wp-boost) { width: 30px; height: 30px; stroke-width: 2; }
.fc-wcards > .fc-wcard:not(.fc-wcard--cta) > .fc-wcard__h:not(#fc-wp-boost) { grid-row: 1; grid-column: 2; align-self: center; margin: 0; font-size: 1.28em; text-wrap: balance; }
.fc-wcards > .fc-wcard:not(.fc-wcard--cta) > :not(.fc-badge):not(.fc-wcard__h):not(#fc-wp-boost) { grid-column: 1 / -1; }
.fc-wcards > .fc-wcard:not(.fc-wcard--cta) > .fc-wcard__lead:not(#fc-wp-boost) { margin: 18px 0 12px; padding-left: 14px; border-left: 3px solid var(--wc-fg); }
.fc-wcards > .fc-wcard:not(.fc-wcard--cta) > p:not(.fc-wcard__lead):not(#fc-wp-boost) { max-width: 68ch; color: var(--fc-ink); }
@media (min-width: 1024px) { .fc-wcards > .fc-wcard:not(.fc-wcard--cta):not(#fc-wp-boost) { padding: 32px 38px 30px; column-gap: 20px; } }
@media (forced-colors: active) { .fc-wcards > .fc-wcard:not(.fc-wcard--cta):not(#fc-wp-boost) { border: 1px solid CanvasText; } }
@media print { .fc-wcards > .fc-wcard:not(.fc-wcard--cta):not(#fc-wp-boost) { background: #fff !important; box-shadow: none !important; } }

/* ---------- 23n. The four service boxes: each its own soft colour (2026-10-12) ----------
   Dr. V (2026-10-12): his four pillars each get their own soft ground from the site palette, same layout:
   Counseling & Psychotherapy light blue, Personal Growth & Life Coaching cream, Workshops & Seminars light green,
   Mindfulness sage. A soft light in the top left corner, the icon on a white tile, the gold seal's ring on the
   box's own colour, the accent line on top as before. Text at his size (18.5 px on phones, 20 px from about
   720 px: the same values as the integration's 23l). No pink (hues 41 to 206 degrees). Contrast (computed):
   text #4A4760 7.0 : 1 or more, titles #24213D 12.1 : 1 or more, "Read more" #3A3282 8.4 : 1 or more. */
.fc-svc-grid > .fc-svc:not(#fc-wp-boost) {
  --svc-bg: #E3ECF3;
  background: radial-gradient(80% 60% at 0% 0%, rgba(255, 255, 255, .62) 0%, rgba(255, 255, 255, 0) 62%), var(--svc-bg);
  border-color: rgba(36, 33, 61, .08);
}
.fc-svc-grid > .fc-svc:nth-child(2):not(#fc-wp-boost) { --svc-bg: #F9EDD4; }
.fc-svc-grid > .fc-svc:nth-child(3):not(#fc-wp-boost) { --svc-bg: #E9F1D8; }
.fc-svc-grid > .fc-svc:nth-child(4):not(#fc-wp-boost) { --svc-bg: #DDE7D8; }
.fc-svc-grid > .fc-svc.fc-seal:not(#fc-wp-boost)::after { box-shadow: inset 0 0 0 4px var(--svc-bg), inset 0 0 0 5.5px rgba(241, 164, 52, .45); }
.fc-svc-grid > .fc-svc > .fc-badge:not(#fc-wp-boost) { --fc-badge-bg: var(--fc-card); box-shadow: inset 0 0 0 1px rgba(36, 33, 61, .07), 0 10px 22px -14px rgba(36, 33, 61, .42); }
.fc-svc-grid > .fc-svc p:not(#fc-wp-boost) { font-size: clamp(1.15625rem, 1.07rem + .4vw, 1.25rem); }
@media print { .fc-svc-grid > .fc-svc:not(#fc-wp-boost) { background: #fff !important; } }

/* ---------- 23g. The free-call start card (welcome card 4, 2026-10-11) ----------
   Dr. V asked for the call card to "pop": a Night card with a glowing 3D sun orb that carries a phone, a gold arc
   for the 15 minutes (a quarter of a clock), rings on water under it (the logo's rings), one big sun button. Pure
   CSS and inline SVG: no image, no new JavaScript. Without JavaScript, with Motion off or reduced motion it is the
   same picture, still. With Motion on it plays once when the kit reveals the card (.fc-is-in: the orb rises, the
   arc draws), then floats slowly (transform and opacity only). Overrides only: the card keeps .fc-wcard--cta (the
   lime focus ring and 23e), no older rule is edited. Colours: sunlight glows are yellow-gold on Night, never gold on
   purple (that blend reads as plum, 23d). Stacked and centred in narrow cards (phones, the 1 fr desktop column);
   picture beside the words when the card is 600 px or wider (one column, 768 to 1023 px). */
.fc-wcard.fc-call:not(#fc-wp-boost) {
  --fc-call-light: 255, 222, 120;
  position: relative; overflow: hidden; isolation: isolate; padding: 0; container-type: inline-size;
  color: var(--fc-cream); border: 1px solid rgba(248, 217, 166, .22);
  background:
    radial-gradient(130% 62% at 100% 100%, rgba(58, 50, 130, .92) 0%, rgba(58, 50, 130, 0) 72%),
    radial-gradient(110% 52% at 0% 100%, rgba(42, 35, 102, .88) 0%, rgba(42, 35, 102, 0) 72%),
    linear-gradient(180deg, #131127 0%, #1C1A36 50%, #221E4E 100%);
  box-shadow: inset 0 1px 0 rgba(255, 236, 190, .16), 0 2px 6px rgba(28, 26, 54, .12), 0 34px 60px -30px rgba(28, 26, 54, .78);
}
.fc-call__in:not(#fc-wp-boost) {
  position: relative; z-index: 1; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 12px 22px 24px;
}
@media (min-width: 1024px) { .fc-call__in:not(#fc-wp-boost) { padding: 12px 26px 24px; } }

/* the picture: a 280 x 140 stage, everything placed from its centre line (the orb's dial keeps clear of the card's top
   edge at the float's highest point) */
.fc-call__art:not(#fc-wp-boost) { position: relative; flex: none; width: 100%; max-width: 280px; height: 140px; margin: 0 auto 6px; perspective: 760px; pointer-events: none; }
.fc-call__art > *:not(#fc-wp-boost) { position: absolute; }
.fc-call__stars:not(#fc-wp-boost) {
  left: 0; top: 0; width: 2px; height: 2px; border-radius: 50%; background: rgba(251, 246, 238, .75);
  box-shadow: 34px 30px 0 0 rgba(251, 246, 238, .5), 244px 18px 0 0 rgba(251, 246, 238, .62), 266px 86px 0 0 rgba(251, 246, 238, .4),
              14px 104px 0 0 rgba(251, 246, 238, .38), 214px 64px 0 -.4px rgba(251, 246, 238, .45), 62px 8px 0 -.4px rgba(251, 246, 238, .45);
  translate: 2px 6px;
}
.fc-call__glow:not(#fc-wp-boost) {
  left: 50%; top: 60px; width: 236px; height: 236px; margin: -118px 0 0 -118px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(var(--fc-call-light), .62) 30%, rgba(var(--fc-call-light), .2) 48%, rgba(var(--fc-call-light), .07) 72%, rgba(var(--fc-call-light), 0) 100%);
}
/* rings on water under the orb (the logo's rings), and the sun's reflection */
.fc-call__water:not(#fc-wp-boost) { left: 50%; top: 121px; width: 0; height: 0; }
.fc-call__water > *:not(#fc-wp-boost) { position: absolute; left: 0; top: 0; border-radius: 50%; translate: -50% -50%; }
.fc-call__water i:not(#fc-wp-boost) { border: 1.5px solid rgba(248, 217, 166, .34); }
.fc-call__water i:nth-child(1):not(#fc-wp-boost) { width: 112px; height: 22px; border-color: rgba(248, 217, 166, .55); }
.fc-call__water i:nth-child(2):not(#fc-wp-boost) { width: 176px; height: 34px; }
.fc-call__water i:nth-child(3):not(#fc-wp-boost) { width: 244px; height: 46px; border-color: rgba(248, 217, 166, .17); }
.fc-call__water em:not(#fc-wp-boost) { width: 236px; height: 44px; border: 1.5px solid rgba(255, 233, 176, .7); opacity: 0; }
.fc-call__water b:not(#fc-wp-boost) { width: 96px; height: 16px; background: radial-gradient(closest-side, rgba(var(--fc-call-light), .75), rgba(var(--fc-call-light), 0)); }

/* the orb: a 104 px sun in 3D (perspective on the stage), the dial behind it, the phone 26 px in front of it */
.fc-call__float:not(#fc-wp-boost) { left: 50%; top: 8px; width: 104px; height: 104px; margin-left: -52px; transform-style: preserve-3d; }
.fc-call__orb:not(#fc-wp-boost) { position: absolute; inset: 0; transform-style: preserve-3d; transform: rotateX(10deg) rotateY(-16deg); }
.fc-call__orb > *:not(#fc-wp-boost) { position: absolute; }
.fc-call__dial:not(#fc-wp-boost) { left: -14px; top: -14px; width: 132px; height: 132px; overflow: visible; transform: translateZ(-8px); }
.fc-call__track:not(#fc-wp-boost) { fill: none; stroke: rgba(248, 217, 166, .24); stroke-width: 1.5; }
.fc-call__tick:not(#fc-wp-boost) { fill: rgba(248, 217, 166, .5); }
.fc-call__arc:not(#fc-wp-boost) { fill: none; stroke: #F8D9A6; stroke-width: 4.2; stroke-linecap: round; stroke-dasharray: 100 100; stroke-dashoffset: 0; }
.fc-call__halo:not(#fc-wp-boost) { fill: rgba(var(--fc-call-light), .32); }
.fc-call__tip:not(#fc-wp-boost) { fill: #FFF4D6; }
.fc-call__start:not(#fc-wp-boost) { fill: #F8D9A6; }
/* the sun is an SVG (a CSS circle with border-radius loses its smooth edge in Chrome once it is turned in 3D) */
.fc-call__sun:not(#fc-wp-boost) { left: 10px; top: 10px; width: 84px; height: 84px; overflow: visible; transform: translateZ(4px); }
.fc-call__phone:not(#fc-wp-boost) { left: 50%; top: 50%; width: 42px; height: 42px; margin: -22px 0 0 -23px; transform: translateZ(26px); }
.fc-call__phone svg:not(#fc-wp-boost) { display: block; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(2px 3px 2.5px rgba(96, 52, 0, .5)); }
.fc-call__phone path:not(#fc-wp-boost) { fill: url(#fc-call-hs); stroke: url(#fc-call-hs); stroke-width: 1.3; stroke-linejoin: round; }
/* two short "talking" arcs at the handset's open corner */
.fc-call__phone i:not(#fc-wp-boost) { position: absolute; border: 2.4px solid transparent; border-top-color: #24213D; border-radius: 50%; rotate: 45deg; }
.fc-call__phone i:nth-of-type(1):not(#fc-wp-boost) { left: 19px; top: 2px; width: 14px; height: 14px; }
.fc-call__phone i:nth-of-type(2):not(#fc-wp-boost) { left: 16px; top: -5px; width: 26px; height: 26px; }
.fc-call__spark:not(#fc-wp-boost) { width: 14px; height: 14px; fill: #FFF1C9; }
.fc-call__spark--1:not(#fc-wp-boost) { left: 10%; top: 28px; }
.fc-call__spark--2:not(#fc-wp-boost) { right: 9%; top: 52px; width: 10px; height: 10px; }
.fc-call__spark--3:not(#fc-wp-boost) { left: 21%; top: 90px; width: 8px; height: 8px; opacity: .8; }

/* the words */
.fc-call__copy:not(#fc-wp-boost) { width: 100%; min-width: 0; }
.fc-page .fc-call__eyebrow:not(#fc-wp-boost) {
  margin: 0 0 4px; font-family: var(--fc-serif); font-style: italic; font-weight: 400; font-size: 19px; line-height: 1.3;
  color: var(--fc-gold); font-variation-settings: "SOFT" 50, "WONK" 0;
}
.fc-wcard.fc-call .fc-call__h:not(#fc-wp-boost) {
  margin: 0 0 10px; color: var(--fc-cream); font-size: clamp(1.625rem, 1.45rem + .6vw, 2rem); line-height: 1.12;
  letter-spacing: -.012em; text-wrap: balance;
}
@supports (font-size: 1cqi) { .fc-wcard.fc-call .fc-call__h:not(#fc-wp-boost) { font-size: clamp(1.625rem, 7.6cqi, 2rem); } }
.fc-call__accent:not(#fc-wp-boost) { position: relative; display: inline-block; white-space: nowrap; padding-bottom: .12em; font-style: italic; font-weight: 500; color: var(--fc-gold); }
.fc-call__ripple:not(#fc-wp-boost) { position: absolute; left: 0; bottom: -.1em; width: 100%; height: .24em; overflow: visible; }
.fc-call__ripple path:not(#fc-wp-boost) { fill: none; stroke: #FFC94D; stroke-linecap: round; stroke-dasharray: 100 100; stroke-dashoffset: 0; }
.fc-call__wave1:not(#fc-wp-boost) { stroke-width: 2.6; }
.fc-call__wave2:not(#fc-wp-boost) { stroke-width: 1.6; opacity: .7; }
/* (the underline is a warm yellow, not the hero's sun orange: on this card the thin orange strokes anti-aliased into
   red-brown pixels that the rendered pink audit counted as a region at 390 px) */
.fc-wcard.fc-call .fc-call__text:not(#fc-wp-boost) { margin: 0 auto 16px; max-width: 40ch; font-size: 1.15625rem; line-height: 1.55; color: rgba(251, 246, 238, .92); text-wrap: pretty; }
.fc-wcard.fc-call .fc-call__cta:not(#fc-wp-boost) { margin: 0; }
.fc-call__btn:not(#fc-wp-boost) {
  --fc-btn-glow: rgba(6, 5, 20, .55);
  position: relative; overflow: hidden; isolation: isolate; width: 100%; max-width: 420px; gap: 12px; padding: 0 26px;
}
.fc-call__btn:not(#fc-wp-boost)::before {
  content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; width: 34%;
  background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 250, 235, .6) 50%, rgba(255, 255, 255, 0) 100%);
  transform: translateX(-130%) skewX(-20deg); pointer-events: none;
}
.fc-call__arrow:not(#fc-wp-boost) { flex: none; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s var(--fc-ease-out); }
.fc-call__btn:hover .fc-call__arrow:not(#fc-wp-boost), .fc-call__btn:focus-visible .fc-call__arrow:not(#fc-wp-boost) { transform: translateX(3px); }
.fc-wcard.fc-call .fc-call__note:not(#fc-wp-boost) { margin: 12px auto 0; max-width: 42ch; font-size: 16.5px; line-height: 1.5; color: rgba(251, 246, 238, .78); text-wrap: pretty; }

/* a wide card (one column, 768 to 1023 px): the picture beside the words */
@container (min-width: 600px) {
  .fc-call__in:not(#fc-wp-boost) { display: grid; grid-template-columns: 250px minmax(0, 1fr); align-items: center; gap: 0 30px; padding: 26px 40px 28px 26px; text-align: left; }
  .fc-call__art:not(#fc-wp-boost) { margin: 0; }
  .fc-wcard.fc-call .fc-call__text:not(#fc-wp-boost), .fc-wcard.fc-call .fc-call__note:not(#fc-wp-boost) { margin-left: 0; }
  .fc-call__btn:not(#fc-wp-boost) { width: auto; }
}

/* Motion on: the entrance once the kit reveals the card, then slow loops (transform and opacity only) */
@keyframes fc-call-rise { from { transform: translateY(30px) scale(.84); } to { transform: none; } }
@keyframes fc-call-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes fc-call-draw { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@keyframes fc-call-float { 0%, 100% { transform: translateY(0) rotateY(0deg); } 50% { transform: translateY(-7px) rotateY(11deg); } }
@keyframes fc-call-breathe { 0%, 100% { opacity: .72; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.05); } }
@keyframes fc-call-reflect { 0%, 100% { opacity: 1; transform: scaleX(1); } 50% { opacity: .55; transform: scaleX(.8); } }
@keyframes fc-call-ripple { 0% { opacity: 0; transform: scale(.32); } 14% { opacity: .85; } 100% { opacity: 0; transform: scale(1.12); } }
@keyframes fc-call-talk { 0%, 100% { opacity: .22; } 30%, 55% { opacity: 1; } }
@keyframes fc-call-twinkle { 0%, 100% { opacity: .3; transform: scale(.62) rotate(0deg); } 50% { opacity: 1; transform: scale(1) rotate(45deg); } }
@keyframes fc-call-shine { 0% { transform: translateX(-130%) skewX(-20deg); } 26%, 100% { transform: translateX(330%) skewX(-20deg); } }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__art:not(#fc-wp-boost) { animation: fc-call-in .9s var(--fc-ease-out) .1s both; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__float:not(#fc-wp-boost) { animation: fc-call-rise 1.2s var(--fc-ease-cine) .1s both, fc-call-float 7s ease-in-out 1.3s infinite; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__arc:not(#fc-wp-boost) { animation: fc-call-draw 1.4s var(--fc-ease-out) .7s both; }
html[data-fc-motion="on"] .fc-call.fc-is-in :is(.fc-call__tip, .fc-call__halo):not(#fc-wp-boost) { animation: fc-call-in .5s ease 2s both; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__glow:not(#fc-wp-boost) { animation: fc-call-breathe 7s ease-in-out 1.3s infinite; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__water b:not(#fc-wp-boost) { animation: fc-call-reflect 7s ease-in-out 1.3s infinite; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__water em:not(#fc-wp-boost) { animation: fc-call-ripple 3.5s var(--fc-ease-out) 1s infinite; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__phone i:not(#fc-wp-boost) { animation: fc-call-talk 3.5s ease-in-out 1.6s infinite; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__phone i:nth-of-type(2):not(#fc-wp-boost) { animation-delay: 1.85s; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__spark:not(#fc-wp-boost) { animation: fc-call-twinkle 4.2s ease-in-out infinite; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__spark--2:not(#fc-wp-boost) { animation-delay: 1.4s; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__spark--3:not(#fc-wp-boost) { animation-delay: 2.8s; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__ripple path:not(#fc-wp-boost) { animation: fc-call-draw 1.1s var(--fc-ease-out) 1.1s both; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__wave2:not(#fc-wp-boost) { animation-delay: 1.4s; }
html[data-fc-motion="on"] .fc-call.fc-is-in .fc-call__btn:not(#fc-wp-boost)::before { animation: fc-call-shine 6.5s var(--fc-ease-in-out) 2.4s infinite; }
/* hover or keyboard focus anywhere in the card: the orb turns to face the visitor and comes forward */
html[data-fc-motion="on"] .fc-call__orb:not(#fc-wp-boost) { transition: transform .7s var(--fc-ease-out); }
html[data-fc-motion="on"] .fc-call:is(:hover, :focus-within) .fc-call__orb:not(#fc-wp-boost) { transform: rotateX(4deg) rotateY(-2deg) translateZ(16px); }

@media (forced-colors: active) {
  .fc-call__art:not(#fc-wp-boost), .fc-call__ripple:not(#fc-wp-boost), .fc-call__btn:not(#fc-wp-boost)::before { display: none; }
  .fc-call__accent:not(#fc-wp-boost) { color: CanvasText; }
}
@media print {
  .fc-wcard.fc-call:not(#fc-wp-boost) { background: #fff !important; box-shadow: none !important; border: 1px solid #999 !important; }
  .fc-call__art:not(#fc-wp-boost), .fc-call__ripple:not(#fc-wp-boost) { display: none !important; }
  .fc-call :is(.fc-call__eyebrow, .fc-call__h, .fc-call__accent, .fc-call__text, .fc-call__note):not(#fc-wp-boost) { color: #000 !important; }
}
/* ---------- end of 23g ---------- */

/* ---------- 24. Motion (all gated) ---------- */
@keyframes fc-spread-once { 0% { transform: scale(.12); opacity: 0; } 12% { opacity: .55; } 100% { transform: scale(1.05); opacity: 0; } }
@keyframes fc-chev-ping { from { opacity: .7; transform: scale(1); } to { opacity: 0; transform: scale(1.9); } }
@keyframes fc-rise { from { opacity: 1; clip-path: inset(100% 0 0 0); transform: translateY(14px); } to { opacity: 1; clip-path: inset(0 0 0 0); transform: translateY(0); } }
@keyframes fc-fade-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes fc-fade-in { from { opacity: 0; } to { opacity: 1; } }

/* reveal once (visible without JavaScript and with Motion off); hover lifts use `translate`, so they never fight this */
html.fc-js[data-fc-motion="on"] .fc-reveal:not(#fc-wp-boost) {
  opacity: 0; transform: translateY(12px);
  transition: opacity .8s var(--fc-ease-out) var(--fc-d, 0s), transform .8s var(--fc-ease-out) var(--fc-d, 0s), translate .3s var(--fc-ease-out), box-shadow .3s var(--fc-ease-out);
}
html.fc-js[data-fc-motion="on"] .fc-reveal.fc-is-in:not(#fc-wp-boost) { opacity: 1; transform: none; }
html.fc-js[data-fc-motion="on"] .fc-reveal:focus-within:not(#fc-wp-boost) { opacity: 1; transform: none; }

/* section headings: the gold mark draws (ring first, then the line), the heading rises through a mask, with the
   sliders' timing (800 ms, --fc-ease-cine). Only with JavaScript and Motion on; never hidden otherwise. */
html.fc-js[data-fc-motion="on"] .fc-mark:not(#fc-wp-boost)::before { transition: transform .6s var(--fc-ease-cine), opacity .6s ease; }
html.fc-js[data-fc-motion="on"] .fc-mark i:not(#fc-wp-boost), html.fc-js[data-fc-motion="on"] .fc-mark--c:not(#fc-wp-boost)::after { transition: transform .9s var(--fc-ease-cine) .12s, opacity .9s ease .12s; }
html.fc-js[data-fc-motion="on"] .fc-mark:not(.fc-is-in):not(#fc-wp-boost)::before { transform: scale(.4); opacity: 0; }
html.fc-js[data-fc-motion="on"] .fc-mark:not(.fc-is-in) i:not(#fc-wp-boost), html.fc-js[data-fc-motion="on"] .fc-mark--c:not(.fc-is-in):not(#fc-wp-boost)::after { transform: scaleX(.15); opacity: 0; }
html.fc-js[data-fc-motion="on"] .fc-rise:not(#fc-wp-boost) { transition: clip-path .8s var(--fc-ease-cine) .085s, transform .8s var(--fc-ease-cine) .085s; }
html.fc-js[data-fc-motion="on"] .fc-rise:not(.fc-is-in):not(#fc-wp-boost) { clip-path: inset(-.3em -.3em 100% -.3em); transform: translateY(.5em); }
html.fc-js[data-fc-motion="on"] .fc-rise.fc-is-in:not(#fc-wp-boost) { clip-path: inset(-.3em -.3em -.4em -.3em); }
html.fc-reveal-now .fc-rise:not(#fc-wp-boost), html.fc-reveal-now .fc-reveal:not(#fc-wp-boost), html.fc-reveal-now .fc-mark:not(#fc-wp-boost)::before, html.fc-reveal-now .fc-mark i:not(#fc-wp-boost), html.fc-reveal-now .fc-mark--c:not(#fc-wp-boost)::after { transition: none !important; }

/* drawer ring */
html[data-fc-motion="on"] .fc-drawer[open] > .fc-drawer__sum .fc-drawer__chev:not(#fc-wp-boost)::before { animation: fc-chev-ping .6s var(--fc-ease-out); }

/* the finale on the poster tier (no WebGL, or the 3D was late): the CSS assembly, about 5.5 s. The resting rings
   fade, the logo's rings settle and warm, the figure rises through the surface, the sun lights, then the assembled
   still takes over (the same picture) */
@keyframes fc-rings-settle {
  0% { opacity: 0; transform: scale(1.1); }
  37% { opacity: .4; transform: scale(1); }
  58% { opacity: 1; transform: scale(1); }
  100% { opacity: 1; transform: scale(1); }
}
html[data-fc-motion="on"] .fc-finale__stage.fc-is-assembling > .fc-finale__rest:not(#fc-wp-boost) { animation: fc-fade-out 1s ease .4s both; }
html[data-fc-motion="on"] .fc-finale__stage.fc-is-assembling > .fc-finale__rings:not(#fc-wp-boost) { animation: fc-rings-settle 3.8s var(--fc-ease-out) .8s both; }
html[data-fc-motion="on"] .fc-finale__stage.fc-is-assembling > .fc-finale__figure:not(#fc-wp-boost) { animation: fc-rise 1.8s var(--fc-ease-out) 2.6s both; }
html[data-fc-motion="on"] .fc-finale__stage.fc-is-assembling > .fc-stage__poster:not(#fc-wp-boost) { animation: fc-fade-in .6s ease 4.6s both; }
html[data-fc-motion="on"] .fc-finale__ping.fc-is-ping circle:not(#fc-wp-boost) { animation: fc-spread-once 3.2s var(--fc-ease-out) both; }

/* Motion off: every loop and one-shot stops at its end state */
html[data-fc-motion="off"] .fc-page *:not(#fc-wp-boost), html[data-fc-motion="off"] .fc-page *:not(#fc-wp-boost)::before, html[data-fc-motion="off"] .fc-page *:not(#fc-wp-boost)::after { animation: none !important; }

/* ---------- 24b. Forced colours ---------- */
@media (forced-colors: active) {
  .fc-btn:not(#fc-wp-boost), .fc-pause:not(#fc-wp-boost), .fc-menubtn:not(#fc-wp-boost), .fc-sub__btn:not(#fc-wp-boost), .fc-capsule:not(#fc-wp-boost), .fc-capsule__nav:not(#fc-wp-boost), .fc-scroller__btn:not(#fc-wp-boost), .fc-follow__link:not(#fc-wp-boost), .fc-logo-tile a:not(#fc-wp-boost) { border: 1.5px solid ButtonText; }
  .fcb-seg:not(#fc-wp-boost) { forced-color-adjust: none; background: GrayText; }
  .fcb-seg i:not(#fc-wp-boost), .fc-scroller__thumb:not(#fc-wp-boost) { forced-color-adjust: none; background: Highlight; }
  .fc-card:not(#fc-wp-boost), .fc-qa:not(#fc-wp-boost), .fc-plan:not(#fc-wp-boost), .fc-why-card:not(#fc-wp-boost), .fc-note:not(#fc-wp-boost), .fc-belief:not(#fc-wp-boost), .fc-bookcard:not(#fc-wp-boost), .fcb-dcard:not(#fc-wp-boost), .fc-fbx:not(#fc-wp-boost), .fc-fbx__frame:not(#fc-wp-boost), .fc-follow__panel:not(#fc-wp-boost) { border: 1px solid CanvasText; }
  .fc-fbx__rings:not(#fc-wp-boost), .fc-follow__decor:not(#fc-wp-boost), .fc-mark:not(#fc-wp-boost), .fc-follow:not(#fc-wp-boost)::before, .fc-follow:not(#fc-wp-boost)::after { display: none; }
  .fc-plan__dl > div.is-clamped .fc-plan__clip:not(#fc-wp-boost), .fc-scroller__list:not(#fc-wp-boost) { -webkit-mask-image: none !important; mask-image: none !important; }
  .fcb-dfig:not(#fc-wp-boost)::before { display: none; }
  .fc-stage:not(#fc-wp-boost) { forced-color-adjust: none; }
  .fc-page :focus-visible:not(#fc-wp-boost) { outline: 2px solid Highlight; }
}

/* ---------- 25. Print ---------- */
@media print {
  .fc-header:not(#fc-wp-boost), .fc-rail:not(#fc-wp-boost), .fc-bbar:not(#fc-wp-boost), .fc-pause:not(#fc-wp-boost), .fc-stage:not(#fc-wp-boost), .fc-capsule:not(#fc-wp-boost), .fcb-dfig:not(#fc-wp-boost), .fcb-pdecor:not(#fc-wp-boost), .fc-scroller__bar:not(#fc-wp-boost) { display: none !important; }
  .fc-reveal:not(#fc-wp-boost) { opacity: 1 !important; transform: none !important; }
  .fcb-dtrack:not(#fc-wp-boost) { display: block !important; }
  .fcb-dslide:not(#fc-wp-boost) { visibility: visible !important; }
  .fcb-dcard:not(#fc-wp-boost) { opacity: 1 !important; visibility: visible !important; transform: none !important; margin: 24px 0 0 !important; padding: 0 !important; box-shadow: none !important; }
  .fc-cin-hero:not(#fc-wp-boost), .fcb-fam:not(#fc-wp-boost), .fcb-panel:not(#fc-wp-boost) { background: #fff !important; color: #000 !important; padding: 0 !important; min-height: 0 !important; }
  .fc-scroller__list:not(#fc-wp-boost) { display: block !important; overflow: visible !important; }
  .fc-scroller__item:not(#fc-wp-boost) { margin-bottom: 16px; }
  .fc-night:not(#fc-wp-boost), .fc-follow:not(#fc-wp-boost), .fc-follow__panel:not(#fc-wp-boost) { background: #fff !important; color: #000 !important; }
  .fc-follow__h:not(#fc-wp-boost), .fc-follow__link:not(#fc-wp-boost), .fc-follow__handle:not(#fc-wp-boost) { color: #000 !important; }
  .fc-plan__dl dd:not(#fc-wp-boost), .fc-plan__clip:not(#fc-wp-boost) { max-height: none !important; -webkit-mask-image: none !important; mask-image: none !important; }
  .fc-scroller__list:not(#fc-wp-boost) { -webkit-mask-image: none !important; mask-image: none !important; }
  .fc-plan__more:not(#fc-wp-boost), .fc-fbx__frame:not(#fc-wp-boost), .fc-fbx__privacy:not(#fc-wp-boost), .fc-follow__decor:not(#fc-wp-boost), .fc-mark:not(#fc-wp-boost) { display: none !important; }
  .fc-rise:not(#fc-wp-boost) { clip-path: none !important; transform: none !important; }
}

/* ---------- integration: the preview host supplies the document; set its background here ---------- */
html:not(#fc-wp-boost) { background: #F7F1E8; }
body:not(#fc-wp-boost) { margin: 0; background: #F7F1E8; color: #24213D; }

/* ---------- Self-checks invitation (staged 2026-10-11 in work-home-about-2026-10-11/selfchecks; waits for Dr. V's
   clinical OK). Right after the four service boxes: one calm panel, a heading, one line, nine tiles that open the
   self-checks page, and "See all self-checks". Links only, no form. Colours only from the --fc-* tokens; no pink.
   Card text 16.5 px or more; the lead follows .fc-lead. Motion: the kit's reveal (.fc-reveal) with a stagger set
   inline, and a 2 px lift on hover with Motion on; nothing with reduced motion. ---------- */
.fc-sc:not(#fc-wp-boost) { background-color: var(--fc-paper); padding-top: 0; }
.fc-sc__panel:not(#fc-wp-boost) {
  position: relative; isolation: isolate; overflow: hidden; padding: 30px 16px 18px; border-radius: 28px;
  background: radial-gradient(60% 70% at 100% 0%, rgba(248, 217, 166, .5), rgba(248, 217, 166, 0) 70%), linear-gradient(180deg, var(--fc-mist) 0%, var(--fc-morning) 100%);
  box-shadow: 0 0 0 1px rgba(36, 33, 61, .06), var(--fc-shadow-card);
}
@media (min-width: 600px) { .fc-sc__panel:not(#fc-wp-boost) { padding: 44px 36px 26px; border-radius: 32px; } }
@media (min-width: 1024px) { .fc-sc__panel:not(#fc-wp-boost) { padding: 60px 56px 36px; } }
.fc-sc__rings:not(#fc-wp-boost) { position: absolute; z-index: -1; right: -70px; top: -34px; width: 230px; height: auto; opacity: .42; pointer-events: none; }
@media (min-width: 600px) { .fc-sc__rings:not(#fc-wp-boost) { right: -40px; top: -36px; width: 300px; opacity: .5; } }
@media (min-width: 1024px) { .fc-sc__rings:not(#fc-wp-boost) { right: -24px; top: -44px; width: 340px; opacity: .55; } }
.fc-sc__rings ellipse:not(#fc-wp-boost) { fill: none; stroke: var(--fc-sun); stroke-width: 1.3; vector-effect: non-scaling-stroke; }
.fc-sc__rings ellipse:nth-child(1):not(#fc-wp-boost) { fill: var(--fc-sun); stroke: none; opacity: .8; }
.fc-sc__rings ellipse:nth-child(4):not(#fc-wp-boost), .fc-sc__rings ellipse:nth-child(5):not(#fc-wp-boost) { opacity: .5; }
.fc-sc__head:not(#fc-wp-boost) { position: relative; margin-bottom: 26px; }
@media (min-width: 1024px) { .fc-sc__head:not(#fc-wp-boost) { margin-bottom: 36px; } }
.fc-sc__lead:not(#fc-wp-boost) { max-width: 54ch; color: var(--fc-ink-soft); }
.fc-sc__grid:not(#fc-wp-boost) { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
@media (min-width: 600px) { .fc-sc__grid:not(#fc-wp-boost) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }
/* nine tiles since 2026-10-12 (eight self-checks and Which path fits you?): three across on a wide screen; on a tablet
   two across, the last tile across both */
@media (min-width: 600px) and (max-width: 1099px) { .fc-sc__item--path:not(#fc-wp-boost) { grid-column: 1 / -1; } }
@media (min-width: 1100px) { .fc-sc__grid:not(#fc-wp-boost) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
.fc-sc__item:not(#fc-wp-boost) { display: flex; min-width: 0; }
.fc-page .fc-sc__tile:not(#fc-wp-boost) {
  position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "icon name" "icon sub";
  align-content: start; gap: 2px 16px; width: 100%; min-height: 44px; padding: 16px 46px 16px 16px; border-radius: 20px;
  background: var(--fc-card); border: 1px solid var(--fc-line); box-shadow: var(--fc-shadow);
  color: var(--fc-ink); text-decoration: none;
}
@media (min-width: 1100px) {
  .fc-page .fc-sc__tile:not(#fc-wp-boost) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "icon" "name" "sub"; gap: 4px; padding: 20px 20px 22px; }
  .fc-sc__tile .fc-badge:not(#fc-wp-boost) { margin-bottom: 10px; }
}
.fc-sc__tile .fc-badge:not(#fc-wp-boost) { grid-area: icon; align-self: start; }
.fc-sc__name:not(#fc-wp-boost) { grid-area: name; font: 600 clamp(1.1875rem, 1.1rem + .35vw, 1.3125rem)/1.25 var(--fc-serif); color: var(--fc-ink); font-variation-settings: "SOFT" 50; text-wrap: balance; }
.fc-sc__sub:not(#fc-wp-boost) { grid-area: sub; font-size: clamp(1.0625rem, 1.02rem + .22vw, 1.15625rem); line-height: 1.45; color: var(--fc-ink-soft); }
.fc-sc__tile:not(#fc-wp-boost)::after {
  content: "\2192"; position: absolute; right: 18px; top: 50%; translate: 0 -50%; font: 400 22px/1 var(--fc-sans); color: var(--fc-purple);
}
@media (min-width: 1100px) { .fc-sc__tile:not(#fc-wp-boost)::after { top: 30px; translate: none; } }
.fc-page .fc-sc__tile:hover:not(#fc-wp-boost) { border-color: rgba(58, 50, 130, .35); box-shadow: var(--fc-shadow-lg); }
.fc-sc__item--path .fc-sc__tile:not(#fc-wp-boost) { background: linear-gradient(140deg, var(--fc-card) 0%, var(--fc-morning) 100%); border: 1.5px dashed rgba(241, 164, 52, .75); box-shadow: none; }
.fc-sc__more:not(#fc-wp-boost) { position: relative; margin: 18px 0 0; font-size: 1.05em; }
html[data-fc-motion="on"] .fc-sc__tile:not(#fc-wp-boost) { transition: translate .3s var(--fc-ease-out), box-shadow .3s var(--fc-ease-out), border-color .3s var(--fc-ease-out); }
html[data-fc-motion="on"] .fc-sc__tile:hover:not(#fc-wp-boost) { translate: 0 -2px; }
@media (prefers-reduced-motion: reduce) { html .fc-sc__tile:not(#fc-wp-boost) { transition: none !important; translate: none !important; } }
@media (forced-colors: active) {
  .fc-sc__panel:not(#fc-wp-boost), .fc-page .fc-sc__tile:not(#fc-wp-boost) { border: 1px solid CanvasText; }
  .fc-sc__rings:not(#fc-wp-boost) { display: none; }
}
@media print { .fc-sc:not(#fc-wp-boost) { display: none; } }

/* ---------- 23l. Reading text at his size (review fix 2026-10-11) ----------
   Dr. V's rule: paragraph text about 20 px on desktop and at least 18.5 px on phones. These blocks of reading text
   were still 16.5 to 18.5 px: the service boxes, Why choose, the Mission beliefs, the Choose a service answers, the
   booking card's lead, the self-check tiles' lines and the specialty cards' links. Now 18.5 px on phones to 20 px from
   about 720 px wide, like the welcome and the FAQ answers. Labels and fine print keep their sizes; the specialty
   cards' "Approaches" line (a label) goes from 16.5 px to 17 to 18 px. Last in the file, so it wins over the blocks
   above it (23b, the self-checks block); overrides only. */
.fc-svc p:not(#fc-wp-boost), .fc-why-card p:not(#fc-wp-boost), .fc-belief p:not(#fc-wp-boost), .fc-plan__dl dd:not(#fc-wp-boost), .fc-bookcard__lead:not(#fc-wp-boost), .fc-sc__sub:not(#fc-wp-boost), .fc-spec-card__more:not(#fc-wp-boost) { font-size: clamp(1.15625rem, 1.07rem + .4vw, 1.25rem); }
.fc-spec-card__how:not(#fc-wp-boost) { font-size: clamp(1.0625rem, 1.02rem + .22vw, 1.125rem); }
