/* Foster Avenue refinement layer. Loaded after every other stylesheet on every page.
   Ruled by Chris on October 10, 2026: refine the current design, do not replace it.
   Page stylesheets point at these tokens (font-size: var(--fa-fs-body)). Change a value here
   and it changes everywhere. Montserrat and Roboto Serif stay (review items 8 and 9 are on hold).

   html is 62.5%, so 1rem = 10px. Sizes grow in a straight line from a 375px phone to a
   1,440px laptop and stop there. */
:root {
  /* type scale: 11 steps, plus a post-title step that shares the statement's laptop size
     (phone size, fluid, laptop size) */
  --fa-fs-xl: clamp(4rem, 3.014rem + 2.629vw, 6.8rem);      /* page statement */
  --fa-fs-title: clamp(3.4rem, 2.203rem + 3.192vw, 6.8rem); /* blog post titles: long, so 34px on phones */
  --fa-fs-d: clamp(3.4rem, 2.625rem + 2.066vw, 5.6rem);     /* display: post titles, large stats */
  --fa-fs-h1: clamp(3rem, 2.507rem + 1.315vw, 4.4rem);      /* band headings */
  --fa-fs-h2: clamp(2.7rem, 2.313rem + 1.033vw, 3.8rem);
  --fa-fs-h3: clamp(2.2rem, 1.989rem + 0.563vw, 2.8rem);    /* card and section titles */
  --fa-fs-h4: clamp(1.8rem, 1.659rem + 0.376vw, 2.2rem);
  --fa-fs-lead: clamp(1.8rem, 1.73rem + 0.188vw, 2rem);     /* standfirsts and large text */
  --fa-fs-body: clamp(1.6rem, 1.53rem + 0.188vw, 1.8rem);   /* running text */
  --fa-fs-body-s: clamp(1.5rem, 1.465rem + 0.094vw, 1.6rem);
  --fa-fs-ui: clamp(1.4rem, 1.365rem + 0.094vw, 1.5rem);    /* buttons, labels, meta */
  --fa-fs-caption: 1.4rem;                                  /* smallest text on the site */

  /* weights: light display and serif headings, a light-but-legible body */
  --fa-fw-light: 300;
  --fa-fw-body: 350;

  /* running text measure: about 75 characters at most (WCAG 1.4.8 sets 80) */
  --fa-measure: 54ch;

  /* color */
  --fa-ink: #182427;
  --fa-ink-muted: #585a5c;
  --fa-teal: #007874;
  --fa-orange: #db7b24;

  /* corners: four values */
  --fa-radius-sm: 5px;
  --fa-radius: 10px;
  --fa-radius-lg: 24px;
  --fa-radius-pill: 100px;
}

/* ---- Item 2: running text holds a readable measure. Low specificity, so any width the
   page already sets on a paragraph still wins. */
:where(p, li, dd, blockquote) { max-width: var(--fa-measure); }
:where(p, li):has(> img, > picture, > video, > iframe, > .elementor-button) { max-width: none; }
:where(header, footer, nav, .header-sec, .custom-menu-dialog, .footer-sec) :where(p, li) { max-width: none; }

/* ---- Items 4 and 6: type that sets well and breaks well */
:where(p, li, blockquote) { text-wrap: pretty; }
:where(h1, h2, h3, h4, h5, h6, .elementor-heading-title) { text-wrap: pretty; hyphens: manual; }
:where(body) { font-kerning: normal; font-optical-sizing: auto; }

/* ---- Item 7: keyboard focus is visible everywhere (the theme removed it) */
:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 2px !important;
}

/* ---- Item 7: honor the reduced-motion setting */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---- Item 4: bold runs in body text use the emphasis weight, not a heavy bold */
:where(strong, b) { font-weight: 500; }

/* ---- Item 7: 44px touch targets. The visible size stays; the touch area grows around it. */
:is(.header-logo, .footer-logo) > a { display: inline-block; }
:is(.breadcrumb-item, .footer-menu-item, .footer-logo-name, .footer-copyright, .blog_box_author, .blog-post-author-name, .sp-author, .special-blog-author) a:not(:has(img)),
.elementor-icon-list-item > a, a.elementor-button, a.blog-cat, a.taxonomy-term, .site-btn, .loadMoreBtn, .back-btn a, .header-logo > a {
  position: relative;
}
:is(.breadcrumb-item, .footer-menu-item, .footer-logo-name, .footer-copyright, .blog_box_author, .blog-post-author-name, .sp-author, .special-blog-author) a:not(:has(img))::after,
.elementor-icon-list-item > a::after, a.elementor-button::after, a.blog-cat::after, a.taxonomy-term::after, .back-btn a::after, .header-logo > a::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: max(100%, 44px);
  height: max(100%, 44px);
  transform: translate(-50%, -50%);
}
.gform_wrapper :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select) { min-height: 44px; }

/* Deliverable chips link to "#" and do nothing; the theme already shows a plain cursor */
a.elementor-button[aria-disabled="true"] { pointer-events: none; }

/* ---- Item 7: smallest text is 14px (form help text came from the form plugin at 13px) */
.gform_wrapper :is(.gfield_description, .gform_fileupload_rules, .gfield_validation_message, .ginput_counter) { font-size: var(--fa-fs-caption) !important; }

/* ---- Item 6: team cards on phones put the photo beside the name, so the page is half as long */
@media (max-width: 767px) {
  .elementor-element-8cdeb74 > .e-con {
    display: grid !important;
    grid-template-columns: 104px minmax(0, 1fr);
    column-gap: 20px;
    row-gap: 0;
    align-items: center;
    align-content: start;
  }
  .elementor-element-8cdeb74 > .e-con > .elementor-widget-image { grid-row: 1 / span 2; margin: 0 !important; }
  .elementor-element-8cdeb74 > .e-con > .elementor-widget-image img { width: 104px; height: 104px; object-fit: cover; }
  .elementor-element-8cdeb74 > .e-con > .elementor-widget-heading { align-self: end; margin-bottom: 4px !important; }
  .elementor-element-8cdeb74 > .e-con > .elementor-widget-text-editor:nth-child(3) { align-self: start; margin-bottom: 0 !important; }
  .elementor-element-8cdeb74 > .e-con > :nth-child(n+4) { grid-column: 1 / -1; }
  .elementor-element-8cdeb74 > .e-con > :nth-child(4) { margin-top: 16px; }
}

/* ---- Links inside the home page accordions take the text color, underlined (Home ledger, October 10, 2026) */
.el_faq .e-n-accordion-item a:not(.elementor-button) { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* ---- Accessibility review of Home, October 10, 2026 (WCAG 2.2 AA) */
/* A link inside a line of text must not rely on color alone (1.4.1): the footer Privacy Policy link */
.footer-copyright a { text-decoration: underline; text-underline-offset: 2px; }
/* Keyboard focus scrolled into view clears the floating header (2.4.11) */
html { scroll-padding-top: 120px; }

/* Skip link: the theme hid it entirely. It now stays off screen until a keyboard user tabs to it (2.4.1). */
a.skip-link.screen-reader-text {
  display: block !important;
  position: fixed; left: 16px; top: -100px; z-index: 100000;
  padding: 12px 18px; border-radius: var(--fa-radius-sm);
  background: var(--fa-ink); color: #fff; font-size: var(--fa-fs-ui); font-weight: 500;
  text-decoration: none;
}
a.skip-link.screen-reader-text:focus { top: 16px; clip: auto !important; clip-path: none !important; width: auto !important; height: auto !important; overflow: visible !important; margin: 0 !important; }

/* Buttons with white labels: a currentColor ring would be white on white. A two-tone ring
   (ink outline over a white gap) shows on light and dark grounds alike (2.4.7, 1.4.11). */
:is(a.elementor-button, .site-btn, .loadMoreBtn, .h_perf_title, button, a.skip-link):focus-visible {
  outline: 2px solid var(--fa-ink) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 2px #fff !important;
}

/* ---- Item 5: contrast fixes (generated by tools/refine/contrast_fix.py) */
.elementor-element-887d563 .elementor-heading-title { color: var(--fa-teal) !important; }
.elementor-element-934ddc5 .elementor-heading-title { color: var(--fa-teal) !important; }
.elementor-element-a10369c .elementor-heading-title { color: var(--fa-teal) !important; }
.elementor-element-c432935 .elementor-heading-title { color: var(--fa-teal) !important; }
.elementor-element-dec9989 span { color: var(--fa-teal) !important; }
/* ---- end contrast fixes */

/* Text on a field of color is white (Chris, October 23, 2026). Text on the orange keeps
   the theme's white instead of the ink the contrast script once set. */
.elementor-element-e91269e, .elementor-element-e91269e p { color: #fff; }

/* Performance: logo images carry width and height so the browser reserves their
   space before they load (no layout shift). height:auto keeps the aspect ratio
   when CSS sets the width. */
.header-logo img, .footer-logo img { height: auto; }

/* Site-wide accessibility review, October 11, 2026 (WCAG 2.2 AA, 1.4.1): links inside
   running text were teal on ink with no underline, so color alone marked them.
   They keep their teal and gain an underline. */
.elementor-widget-text-editor a:not(.elementor-button):not(:has(img)) {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Menu button: it sits inside the dark header pill, so its focus ring is drawn inside,
   in white, following the pill's right corners (2.4.7). */
.menu_expand:focus-visible { outline: 2px solid #fff !important; outline-offset: -6px !important; border-radius: 0 10px 10px 0; }

/* Header pill corners match the open menu panel (.custom-menu-dialog, 10px in theme style.css).
   Requested by Chris, Oct 22, 2026. To go back to the full pill: delete this rule and set the
   focus-ring radius above back to 0 100px 100px 0. */
.header-left { border-radius: 10px; }

/* Text for screen readers only: present in the page outline, never drawn on screen. */
.fa-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Breadcrumbs: the current page is plain text marked aria-current, not a dead link.
   It keeps the theme's breadcrumb link style. */
.breadcrumb-item .fa-crumb-current { color: #53757E; font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-weight: 500; font-size: var(--fa-fs-ui); line-height: 1.35; }
/* Load More is a real button now (it loads content, it goes nowhere). Same look as the link it replaced. */
button.site-btn { -webkit-appearance: none; appearance: none; margin: 0; cursor: pointer; }

/* How Campaigns Win: one left margin, the same as What We Do (Chris, October 23, 2026).
   The page's text columns sat at 85% width, centered, so their left edge wandered
   between sections. They now fill the 1,280px content box like every What We Do section;
   paragraphs keep the site's reading measure. */
.elementor-6952 .elementor-element:is(.elementor-element-961f0a4, .elementor-element-fe3de34, .elementor-element-f782c1d, .elementor-element-c370a1d, .elementor-element-e291ef8) { --width: 100%; }
.elementor-6952 .elementor-element.elementor-element-9b684eb.elementor-element { --align-self: flex-start; }
/* The teal "What We Build" box: its three items sat in one narrow column and left the
   right half of the box empty. On laptops and up they sit side by side. */
@media (min-width: 1025px) {
  .elementor-6952 .elementor-element.elementor-element-91fb999 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto; grid-auto-flow: column; column-gap: 48px; }
  .elementor-6952 .elementor-element.elementor-element-91fb999 { --padding-right: 60px; padding-right: 60px; align-items: start; }
  .elementor-6952 .elementor-element.elementor-element-91fb999 > .elementor-widget { width: auto; max-width: none; padding-top: 0; margin-top: 0; }
}
@media (min-width: 768px) { .elementor-6952 .elementor-element.elementor-element-b00a957 { --padding-right: 0px; } }

/* How Campaigns Win: Chris's three images run full bleed between chapters, at the same
   2560 x 1098 shape as the case study heroes (Chris, October 23, 2026). The long view opens
   How We Plan, the speaker opens Campaign Fluency, the ripples open Personalized Donor
   Engagement. The handoff diagram sits in the problem section, below its copy. */
.fa-hcw-bleed { margin: 0; width: 100%; aspect-ratio: 2560 / 1098; overflow: hidden; background: #dfe7e8; }
.fa-hcw-bleed img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fa-hcw-diagram { width: 100%; max-width: 640px; margin: 40px 0 0; background: #fff; border: 1px solid #e3e6e7; border-radius: var(--fa-radius); padding: 32px; box-sizing: border-box; }
.fa-hcw-diagram svg { display: block; width: 100%; height: auto; }
.fa-hcw-dg-tall { display: none !important; }
@media (max-width: 600px) {
  .fa-hcw-diagram { padding: 24px; margin-top: 32px; }
  .fa-hcw-dg-wide { display: none !important; }
  .fa-hcw-dg-tall { display: block !important; max-width: 360px; }
}

/* How Campaigns Win, teal band: the payoff of one team, set as eyebrow, statement and
   body like the page's other sections, in white on the teal (Chris, October 23, 2026). */
.elementor-6952 .elementor-element-961f0a4 { flex-direction: column; align-items: flex-start; }
.elementor-6952 .fa-band-eyebrow { width: 100%; margin: 0 0 20px; color: #fff; font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-size: var(--fa-fs-body-s); font-weight: 500; line-height: 1.7; margin-bottom: 20px !important; }
.elementor-6952 .fa-band-eyebrow p { margin: 0; }
.elementor-6952 .fa-band-head { width: 100%; margin: 0 0 30px !important; }
.elementor-6952 .fa-band-head .elementor-heading-title { color: #fff; font-family: "Roboto Serif", "Roboto Serif Fallback", serif; font-size: var(--fa-fs-h1); font-weight: 300; line-height: 1.3; max-width: 30ch; text-wrap: balance; }
.elementor-6952 .elementor-element.elementor-element-9b684eb { font-size: var(--fa-fs-lead); }

/* How Campaigns Win, laptops and up: every chapter is two equal columns across the full
   content box, so no headline or paragraph floats beside empty space (Chris, October 23,
   2026). Eyebrow and headline on the left; the body starts level with the headline on
   the right. The problem section keeps its copy on the left and the handoff diagram on
   the right, held in view while the copy scrolls. Phones and tablets stay one column. */
@media (min-width: 1025px) {
  .elementor-6952 .elementor-element:is(.elementor-element-961f0a4, .elementor-element-fe3de34, .elementor-element-f782c1d, .elementor-element-c370a1d, .elementor-element-e291ef8) {
    display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 80px; row-gap: 0 !important; align-items: start;
  }
  .elementor-6952 .elementor-element:is(.elementor-element-961f0a4, .elementor-element-fe3de34, .elementor-element-f782c1d, .elementor-element-c370a1d, .elementor-element-e291ef8) > * { width: auto !important; max-width: none !important; min-width: 0; }
  /* eyebrow, row 1 left; headline, row 2 left; body, row 2 right */
  .elementor-6952 :is(.fa-band-eyebrow, .elementor-element-2fde791, .elementor-element-0905205, .elementor-element-032b81f) { grid-column: 1; grid-row: 1; }
  .elementor-6952 :is(.fa-band-head, .elementor-element-2d57fe4, .elementor-element-509ba42, .elementor-element-6417505) { grid-column: 1; grid-row: 2; margin-bottom: 0 !important; }
  .elementor-6952 :is(.elementor-element-9b684eb, .elementor-element-4f90556, .elementor-element-7d3ce30, .elementor-element-685ea0d) { grid-column: 2; grid-row: 2; }
  .elementor-6952 :is(.elementor-element-9b684eb, .elementor-element-4f90556, .elementor-element-7d3ce30, .elementor-element-685ea0d) p:first-child { margin-top: .35em; }
  .elementor-6952 .fa-band-head .elementor-heading-title { max-width: none; }
  /* planning: the steps and the closing line run the full width under both columns */
  .elementor-6952 .elementor-element-f782c1d > :is(.elementor-element-8bb0c8c, .fa-plan-close) { grid-column: 1 / -1; }
  .elementor-6952 .elementor-element-f782c1d > .elementor-element-8bb0c8c { margin-top: 64px; }
  /* problem section: copy left, diagram right */
  .elementor-6952 .elementor-element-fe3de34 > :not(.fa-hcw-diagram) { grid-column: 1; }
  .elementor-6952 .elementor-element-fe3de34 > .fa-hcw-diagram { grid-column: 2; grid-row: 1 / span 6; margin: 0; max-width: none; position: sticky; top: 120px; }
}
/* How We Plan a Campaign, the seven steps: the step name reads as a small serif heading.
   On laptops each row follows the page's two columns: number and name on the left,
   description on the right, level with the chapter body above. */
.elementor-6952 .fa-step-label { margin: 0 0 6px; }
.elementor-6952 .fa-step-label strong { font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-size: clamp(1.9rem, 1.68rem + 0.6vw, 2.4rem); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; line-height: 1.35; color: var(--fa-ink); }
@media (min-width: 1025px) {
  .elementor-6952 .elementor-element:is(.elementor-element-ab87619, .elementor-element-0c95805, .elementor-element-d2232f9, .elementor-element-fb09371):has(.fa-step-label) { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 80px; align-items: center; }
  .elementor-6952 .elementor-element:is(.elementor-element-ab87619, .elementor-element-0c95805, .elementor-element-d2232f9, .elementor-element-fb09371):has(.fa-step-label) > *,
  .elementor-6952 .elementor-element:is(.elementor-element-ab87619, .elementor-element-0c95805, .elementor-element-d2232f9, .elementor-element-fb09371):has(.fa-step-label) > * > .elementor-widget:not(.count-box) { display: contents; }
  .elementor-6952 .elementor-element:is(.elementor-element-7ea607a, .elementor-element-7605e12, .elementor-element-0d35f76, .elementor-element-098c857) .count-box { grid-column: 1; grid-row: 1; justify-self: start; }
  .elementor-6952 .fa-step-label { grid-column: 1; grid-row: 1; padding-left: 128px; margin: 0; max-width: none; }
  .elementor-6952 .fa-step-text { grid-column: 2; grid-row: 1; margin: 0; }
}
/* How Campaigns Win title: balanced lines, so "Donor" never sits alone on the second line. */
.elementor-6952 .elementor-element-1e44ee8 .elementor-heading-title { text-wrap: balance; }

/* How We Plan, closing callout: the result of the seven steps, and the bridge into the
   chapters that follow (Chris, October 23, 2026). Replaces the five-phase link band. */
.elementor-6952 .fa-callout { margin-top: 64px; background: var(--fa-teal); color: #fff; border-radius: var(--fa-radius); padding: clamp(32px, 2rem + 2.5vw, 64px); box-sizing: border-box; }
.elementor-6952 .fa-callout-eyebrow { margin: 0 0 16px; font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-size: var(--fa-fs-body-s); font-weight: 500; line-height: 1.7; color: #fff; }
.elementor-6952 .fa-callout-head { margin: 0 0 24px; font-family: "Roboto Serif", "Roboto Serif Fallback", serif; font-size: var(--fa-fs-h2); font-weight: 300; line-height: 1.3; color: #fff; text-wrap: balance; }
.elementor-6952 .fa-callout-body p { margin: 0; color: #fff; font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-size: var(--fa-fs-body); font-weight: var(--fa-fw-body); line-height: 1.7; }
.elementor-6952 .fa-callout-body .fa-callout-bridge { margin-top: 24px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .35); font-family: "Roboto Serif", "Roboto Serif Fallback", serif; font-size: var(--fa-fs-lead); font-style: italic; font-weight: 300; line-height: 1.6; }
@media (min-width: 1025px) {
  .elementor-6952 .elementor-element-f782c1d > .fa-callout { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 80px; align-items: start; }
  .elementor-6952 .fa-callout-eyebrow { grid-column: 1; grid-row: 1; }
  .elementor-6952 .fa-callout-head { grid-column: 1; grid-row: 2; margin: 0; }
  .elementor-6952 .fa-callout-body { grid-column: 2; grid-row: 2; }
}

/* How Campaigns Win, orange "What We Build" (fluency): the pull quote beside it is gone, so
   the orange runs the full width and the box matches the teal "What We Build" below it,
   three items side by side on laptops (Chris, October 23, 2026). */
.elementor-6952 .elementor-element.elementor-element-6dfd62c { background-color: var(--fa-orange); }
.elementor-6952 .elementor-element.elementor-element-4700821 { --width: 100%; }
.elementor-6952 .elementor-element.elementor-element-7696e4d { --width: 100%; }
body:not(.rtl) .elementor-6952 .elementor-element.elementor-element-3423dd7 { left: 56px; }
@media (min-width: 768px) { .elementor-6952 .elementor-element.elementor-element-4700821 { --padding-right: 0px; } }
@media (min-width: 1025px) {
  .elementor-6952 .elementor-element.elementor-element-7696e4d { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto auto; grid-auto-flow: column; column-gap: 48px; --padding-right: 60px; padding-right: 60px; --padding-left: 60px; padding-left: 60px; align-items: start; }
  .elementor-6952 .elementor-element.elementor-element-7696e4d > .elementor-widget { width: auto; max-width: none; padding-top: 0; margin-top: 0; }
}
/* What Changes follows the steps' pattern: number and a short name on the left, the
   description on the right (Chris, October 23, 2026). */

/* Orange fields that carry white text use the deeper orange: white on #b35f17 is 4.6:1,
   which passes WCAG AA for body text (white on #db7b24 is 3.06:1). Chris ruled October 23, 2026.
   Count circles and small marks keep --fa-orange; their numerals are large text. */
:root { --fa-orange-deep: #b35f17; }
.elementor-6952 .elementor-element.elementor-element-6dfd62c,
.elementor-6952 .elementor-element.elementor-element-4700821,
.elementor-6952 .elementor-element.elementor-element-3423dd7,
.elementor-727 .elementor-element.elementor-element-d9d6749,
.elementor-727 .elementor-element.elementor-element-e91269e,
.elementor-4690 .elementor-element.elementor-element-efbeddc,
.blog-cat[style*="#db7b24" i] { background-color: var(--fa-orange-deep) !important; }
/* The Home stats panel and the What We Do framework panel run their color to the page edge
   with a ::before; it must match the panel or a band of the old orange shows. */
.elementor-4690 .elementor-element.elementor-element-efbeddc::before,
.elementor-727 .elementor-element.elementor-element-d9d6749::before { background-color: var(--fa-orange-deep) !important; }
/* FAQ +/- icons: the brand orange passes the 3:1 rule for icons by a hair (3.06:1); the deeper
   orange gives them margin. Decorative marks (hero slashes, list dashes) keep the brand orange. */
.el_faq.elementor-widget-n-accordion { --n-accordion-icon-normal-color: var(--fa-orange-deep) !important; --n-accordion-icon-hover-color: var(--fa-orange-deep) !important; --n-accordion-icon-active-color: var(--fa-orange-deep) !important; }
/* Buttons that fill with orange on hover or focus carry white text, so inside a button
   the brand orange resolves to the deeper orange. */
.elementor-button, a.site-btn, .site-btn, .loadMoreBtn { --e-global-color-primary: var(--fa-orange-deep); }
/* /landing/ is a placeholder layout page; its orange dividers carry small white labels. */
.elementor-5758 { --e-global-color-primary: var(--fa-orange-deep); }
.elementor-5758 .elementor-element.elementor-element-9b15b6b .elementor-button { background-color: var(--fa-orange-deep); }

/* How Campaigns Win FAQ (Chris, October 23, 2026): the Home FAQ accordion, carried over. */
.elementor-6952 .elementor-element.elementor-element-f4a0c01 { --display:flex; --flex-direction:row; --container-widget-width:initial; --container-widget-height:100%; --container-widget-flex-grow:1; --container-widget-align-self:stretch; --flex-wrap-mobile:wrap; --justify-content:center; --gap:0px 0px; --row-gap:0px; --column-gap:0px; --padding-top:clamp(56px, 41.9px + 3.756vw, 96px); --padding-bottom:clamp(56px, 41.9px + 3.756vw, 96px); --padding-left:20px; --padding-right:20px; --content-width:1280px; background-color:#FFFFFF; }
.elementor-6952 .elementor-element.elementor-element-f4a0c02 { --display:flex; --justify-content:center; --gap:0px 0px; --row-gap:0px; --column-gap:0px; --padding-top:0px; --padding-bottom:0px; --padding-left:0px; --padding-right:0px; }
.elementor-6952 .elementor-element.elementor-element-f4a0c03 { margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 12px) 0px; }
.elementor-6952 .elementor-element.elementor-element-f4a0c03 .elementor-heading-title { font-family:"Roboto Serif", "Roboto Serif Fallback", Sans-serif; font-size:var(--fa-fs-h1); font-weight:300; line-height:1.3em; color:var( --e-global-color-text ); }
.elementor-6952 .elementor-element.elementor-element-f4a0c04 { margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 30px) 0px; font-family:"Montserrat", "Montserrat Fallback", Sans-serif; font-size:var(--fa-fs-lead); font-weight:var(--fa-fw-body); line-height:1.7em; max-width:var(--fa-measure); }
.elementor-6952 .elementor-element.elementor-element-f4a0c05 { --n-accordion-title-font-size:var(--fa-fs-h4); width:80%; max-width:80%; --n-accordion-item-title-space-between:20px; --n-accordion-item-title-distance-from-content:12px; --n-accordion-title-normal-color:var( --e-global-color-text ); --n-accordion-title-hover-color:var( --e-global-color-text ); --n-accordion-title-active-color:var( --e-global-color-text ); --n-accordion-icon-size:18px; --n-accordion-icon-gap:25px; --n-accordion-icon-normal-color:#db7b24; --n-accordion-icon-hover-color:var( --e-global-color-primary ); --n-accordion-icon-active-color:var( --e-global-color-primary ); }
.elementor-6952 .elementor-element.elementor-element-f4a0c05 > .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title { border-style:solid; border-width:0px; }
:where( .elementor-6952 .elementor-element.elementor-element-f4a0c05 > .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title > .e-n-accordion-item-title-header ) > .e-n-accordion-item-title-text { font-family:"Roboto Serif", "Roboto Serif Fallback", Sans-serif; font-weight:400; line-height:1.3em; }
.elementor-6952 .elementor-element.elementor-element-f4a0c05 > .e-n-accordion > .e-n-accordion-item > .e-con { --padding-top:0px; --padding-bottom:0px; --padding-left:55px; --padding-right:0px; border-width:0; --border-top-width:0px; --border-right-width:0px; --border-bottom-width:0px; --border-left-width:0px; }
.elementor-6952 .elementor-element.elementor-element-f4a0c05 > .e-n-accordion > .e-n-accordion-item > .e-con > .e-con { --flex-direction:column; --padding-top:0px; --padding-bottom:0px; --padding-left:0px; --padding-right:0px; }
.elementor-6952 .elementor-element.elementor-element-f4a0c05 .elementor-widget-text-editor { margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 20px) 0px; font-family:"Montserrat", "Montserrat Fallback", Sans-serif; font-size:var(--fa-fs-body-s); font-weight:var(--fa-fw-body); line-height:1.7em; color:var( --e-global-color-text ); max-width:var(--fa-measure); }
@media (max-width:1024px) { .elementor-6952 .elementor-element.elementor-element-f4a0c05 { width:100%; max-width:100%; } }
@media (max-width:767px) {
  .elementor-6952 .elementor-element.elementor-element-f4a0c05 { --n-accordion-item-title-space-between:10px; }
  :where( .elementor-6952 .elementor-element.elementor-element-f4a0c05 > .e-n-accordion > .e-n-accordion-item > .e-n-accordion-item-title > .e-n-accordion-item-title-header ) > .e-n-accordion-item-title-text { line-height:1.4em; }
}
/* The FAQ questions are h3s for the page outline; they keep the Home FAQ's look. */
.elementor-6952 .elementor-element-f4a0c05 h3.e-n-accordion-item-title-text { margin:0; padding:0; font-size:var(--n-accordion-title-font-size); color:inherit; letter-spacing:normal; text-transform:none; }

/* ---- Connect page (/contact/), October 25, 2026. Two choices up top, each opening its own section:
   Book a call (Cal.com, inline, as on ovrture.com /demo/) and Send a message or RFP (the contact form,
   which posts to Slack). fa-static.js section 4 runs the tabs and the calendar. Without JavaScript both
   sections show, one above the other. */
.fa-connect-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 48px; max-width: 960px; }
.fa-choice { display: block; padding: 28px 32px 30px; border: 1px solid #d5d8d9; border-top: 4px solid #d5d8d9; border-radius: var(--fa-radius); background: #fff; color: var(--fa-ink) !important; text-decoration: none !important; transition: border-color .15s ease, box-shadow .15s ease; }
.fa-choice:hover { border-color: var(--fa-teal); box-shadow: 0 6px 24px rgba(24, 36, 39, .08); }
.fa-choice[aria-selected="true"] { border-color: var(--fa-teal); border-top-color: var(--fa-teal); box-shadow: 0 6px 24px rgba(24, 36, 39, .08); }
.fa-choice-k { display: block; margin-bottom: 10px; color: var(--fa-teal); font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-size: var(--fa-fs-ui); font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
.fa-choice-t { display: block; margin-bottom: 8px; font-family: "Roboto Serif", "Roboto Serif Fallback", serif; font-size: var(--fa-fs-h3); font-weight: 300; line-height: 1.3; }
.fa-choice-d { display: block; font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-size: var(--fa-fs-body-s); font-weight: var(--fa-fw-body); line-height: 1.6; color: var(--fa-ink-muted); }
.fa-connect-sec > .e-con-inner { flex-direction: column !important; align-items: center; }
.fa-connect-sec .gform_heading { display: none; }
.fa-connect-panel { width: 100%; scroll-margin-top: 24px; }
.fa-connect-panel[hidden] { display: none !important; }
.fa-connect-sec .fa-connect-panel.fa-message { width: var(--width, 100%); align-self: center; } /* the form column keeps its Elementor width (70% at laptop size) */
.fa-connect-k { margin: 0 0 12px; color: var(--fa-teal); font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-size: var(--fa-fs-ui); font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
.fa-connect-h { margin: 0 0 16px; color: var(--fa-ink); font-family: "Roboto Serif", "Roboto Serif Fallback", serif; font-size: var(--fa-fs-h2); font-weight: 300; line-height: 1.3; text-wrap: balance; }
.fa-connect-lead { margin: 0 0 32px; color: var(--fa-ink); font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-size: var(--fa-fs-body); font-weight: var(--fa-fw-body); line-height: 1.7; }
.fa-message-intro { width: 70%; align-self: center; margin-bottom: 8px; } /* lines up with the form column */
@media (max-width: 1024px) { .fa-message-intro { width: 100%; } }
.fa-from-booking { margin: -16px 0 24px; padding: 14px 18px; border-left: 4px solid var(--fa-teal); background: #fff; border-radius: var(--fa-radius-sm); font-size: var(--fa-fs-body-s); line-height: 1.6; }
.fa-book { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "intro cal" "more cal"; grid-template-rows: auto 1fr; column-gap: 64px; align-items: start; }
.fa-book-intro { grid-area: intro; }
.fa-book-more { grid-area: more; }
.fa-book-cal { grid-area: cal; }
.fa-host[hidden] { display: none; }
.fa-host { display: flex; gap: 20px; align-items: center; margin: 0 0 28px; padding: 24px; background: #fff; border-radius: var(--fa-radius); }
.fa-host img { flex: none; width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
.fa-host p { margin: 0; font-family: "Montserrat", "Montserrat Fallback", sans-serif; line-height: 1.5; }
.fa-host-k { color: var(--fa-teal); font-size: var(--fa-fs-caption); font-weight: 500; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px !important; }
.fa-host-n { font-family: "Roboto Serif", "Roboto Serif Fallback", serif !important; font-size: var(--fa-fs-h4); font-weight: 400; }
.fa-host-r { color: var(--fa-ink-muted); font-size: var(--fa-fs-body-s); margin-bottom: 8px !important; }
.fa-host-b { font-size: var(--fa-fs-body-s); font-weight: var(--fa-fw-body); line-height: 1.6 !important; }
.fa-book-rfp { margin: 0; font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-size: var(--fa-fs-body); font-weight: var(--fa-fw-body); }
.fa-book-rfp a, .fa-cal-soon a { color: var(--fa-teal); text-decoration: underline; }
.fa-book-cal { min-width: 0; padding: 16px; background: #fff; border-radius: var(--fa-radius); }
#cal-inline { width: 100% !important; height: auto !important; min-height: 560px !important; overflow: visible !important; }
#cal-inline:empty { display: none; }
#cal-inline:empty + .fa-cal-soon { display: block; }
.fa-cal-soon, .fa-booked { display: none; padding: 24px; font-family: "Montserrat", "Montserrat Fallback", sans-serif; font-size: var(--fa-fs-body); font-weight: var(--fa-fw-body); line-height: 1.7; }
.fa-booked:not([hidden]) { display: block; border-left: 4px solid var(--fa-teal); margin-bottom: 16px; background: #f4f8f8; border-radius: var(--fa-radius-sm); }
.fa-cal-soon p, .fa-booked p { margin: 0 0 12px; }
.fa-booked-h { font-family: "Roboto Serif", "Roboto Serif Fallback", serif !important; font-size: var(--fa-fs-h4); font-weight: 400; }
.fa-btn { display: inline-block; padding: 10px 24px; border-radius: var(--fa-radius-pill); background: var(--fa-teal); color: #fff !important; font-family: "Roboto Serif", "Roboto Serif Fallback", serif; font-size: var(--fa-fs-ui); font-style: italic; font-weight: 500; text-decoration: none !important; }
.fa-btn:hover { background: #005f5c; }
@media (max-width: 1024px) {
  .fa-book { grid-template-columns: 1fr; grid-template-areas: "intro" "cal" "more"; grid-template-rows: auto; row-gap: 32px; }
  .fa-connect-lead { margin-bottom: 0; }
}
@media (max-width: 767px) {
  .fa-connect-choices { grid-template-columns: 1fr; gap: 16px; margin-top: 32px; }
  .fa-choice { padding: 20px 22px 22px; }
  .fa-book-cal { padding: 8px; }
  .fa-host { padding: 18px; }
  .fa-host img { width: 72px; height: 72px; }
}
