/* PORCH-WO-14k/14l: WNM's look for WPBakery's OWN elements ("stock first", DECISIONS #104/#105).
   THE STYLE GUIDE. Plain elements look WNM with no settings; every "WNM style" dropdown value is one
   class below (the list is in docs/recipes/WPBAKERY-SECTIONS.md §4). Loaded only on pages that have at
   least one row without a Section style, after WPBakery's front-end CSS. Scoped to WPBakery's own
   classes (.vc_row, .wpb_*, .vc_btn3*), which the 14j Section-style templates never print. Tokens only.

   Contents: 1 rows and columns · 2 row styles · 3 headings · 4 text · 5 images and galleries ·
             6 buttons · 7 separators · 8 custom elements in a row · 9 tablet and phone */

/* ---- 1. Rows and columns: full-bleed background, content on the site's rail ---------------------- */
.vc_section { padding: 0; margin: 0; }
.vc_row.wpb_row {
  --wnm-row-inset: max(var(--gutter), (100% - var(--rail-max)) / 2);
  position: relative;
  display: flex; flex-wrap: wrap; align-items: flex-start;
  margin: 0;
  padding-block: var(--section-y);
  /* WPBakery columns already pad 15px each side: take that off the rail so the content sits on it */
  padding-inline: calc(var(--wnm-row-inset) - 15px);
  color: var(--color-type-body); font-family: var(--font-body); font-size: var(--fs-body); line-height: var(--lh-body);
}
.vc_row.wpb_row::before, .vc_row.wpb_row::after { display: none; }
.vc_section .vc_row.wpb_row { padding-inline: calc(var(--wnm-row-inset) - 15px); }
.vc_row.wpb_row[data-vc-full-width] { padding-inline: 0; }
.vc_row.wpb_row .vc_row.wpb_row { padding: 0; margin-inline: -15px; color: inherit; }
.vc_row.wpb_row .vc_row.wpb_row .vc_row.wpb_row { margin-inline: 0; }
.vc_row.wpb_row .wpb_wrapper > :last-child { margin-bottom: 0; }
.vc_row .wpb_column { min-width: 0; }
.vc_row .vc_column-inner { padding: 0 15px; }
/* WPBakery pads a filled row and the row after it by 35px; the style guide owns spacing */
.vc_row.wpb_row.wpb_row > .wpb_column.vc_column_container > .vc_column-inner { padding-block: 0; }
.vc_row .wpb_content_element { margin-bottom: var(--s-5); }

/* One gap between two plain sections (14au, O4/H3): the first row's bottom padding is the gap, the second starts flush, so the page
   rhythm is one --section-y and not two. A row with a background, shape or height style keeps its own padding (its edge shows). */
.vc_row.wpb_row:where(:not([class*="wnm-bg--"], [class*="wnm-shape--"], [class*="wnm-height--"])) + .vc_row.wpb_row:where(:not([class*="wnm-bg--"], [class*="wnm-shape--"], [class*="wnm-height--"], .wnm-space--snug, .wnm-space--tight)) { padding-top: 0; }
/* ...and a contained panel (inset, card) already carries its own gap below it (--cta-gap), so the row after it starts flush too */
.vc_row.wpb_row:is(.wnm-shape--inset, .wnm-shape--card) + .vc_row.wpb_row:where(:not([class*="wnm-bg--"], [class*="wnm-shape--"], [class*="wnm-height--"], .wnm-space--snug, .wnm-space--tight)) { padding-top: 0; }

/* Leadership 50 band (Home, H2): the Who We Are sheet tucks over the band's lower edge, so the visible bottom padding is the band's
   48px minus the overlap; add the overlap back and top and bottom read equal. */
.vc_row.wpb_row:has(.l50-band):has(~ .vc_row.wnm-shape--tuck) .l50-band { padding-bottom: calc(48px + var(--sheet-overlap)); }

/* The last plain row before the site-wide closing panel leaves 24px less space below, as the demo does (14m) */
.wpb-content-wrapper > .vc_row.wpb_row:last-child:not([class*="wnm-bg--"]):not([class*="wnm-shape--"]):not([class*="wnm-space--"]):not([class*="wnm-height--"]) { padding-bottom: calc(var(--section-y) - 24px); }

/* Column: Sticky photo (stays in view beside long text; first on phones) */
/* WNM-HOME-2026-10-03: rows align to the top (flex-start), so the sticky column must stretch to the row's height or its photo has no room to travel */
@media (min-width: 1024px) {
  .vc_row .wpb_column.wnm-col--sticky { align-self: stretch; }
  .vc_row .wpb_column.wnm-col--sticky > .vc_column-inner { position: sticky; top: 112px; }
}

/* ---- 2. Row styles: four questions, one class each (Background · Shape · Spacing · Height) --------- */
/* Spacing */
.vc_row.wpb_row.wnm-space--roomy { padding-block: var(--section-y-editorial); }
.vc_row.wpb_row.wnm-space--tight { padding-block: var(--s-8); }
.vc_row.wpb_row .vc_row.wpb_row.wnm-space--tight { padding-block: 0; margin-block: var(--s-5); }
.vc_row.wpb_row.wnm-space--snug { padding-top: clamp(48px, 36px + 3vw, 88px); }
.vc_row.wpb_row.wnm-space--joined { padding-top: 0; padding-bottom: var(--section-y-editorial); }

/* Background: cream, ink, sage, ochre, dark photo */
.vc_row.wpb_row.wnm-bg--cream { background-color: var(--color-section-cream); color: var(--color-on-section-cream); --wnm-heading-color: var(--color-on-section-cream); }
.vc_row.wpb_row.wnm-bg--ink { --focus: var(--color-accent); --eyebrow: var(--c-green); background-color: var(--color-section-ink); color: var(--color-on-section-ink); --wnm-heading-color: var(--color-on-section-ink); }
.vc_row.wnm-bg--ink .wnm-t--lead { color: var(--c-light-muted); margin-bottom: 56px; }
.vc_row.wpb_row.wnm-bg--sage {
  --focus: var(--c-white); --eyebrow: var(--c-light);
  margin-block: var(--panel-inset);
  padding-block: var(--section-y) calc(var(--section-y) * 0.8);
  background-color: var(--color-section-sage); color: var(--color-on-section-sage); --wnm-heading-color: var(--color-on-section-sage);
}
.vc_row.wnm-bg--sage .wnm-t--lead { color: var(--color-on-section-sage); margin-bottom: 48px; }
/* WNM-HOME-2026-10-03: a rounded panel followed by a dark band (ink or dark photo) leaves half a section of page between them, not the 24px inset
   (Home: Network -> Stronger Together, Explore What's Happening -> Find a Church). Beats the photo row's own margin-top; collapses with the sage panel's 24px. */
.vc_row.wpb_row.wnm-shape--panel + .vc_row.wpb_row:is(.wnm-bg--ink, .wnm-bg--photo) { margin-top: calc(var(--section-y) / 2); }
.vc_row.wpb_row.wnm-bg--ochre { --focus: var(--c-ink); --eyebrow: var(--c-ink); background-color: var(--color-section-ochre); color: var(--color-on-section-ochre); --wnm-heading-color: var(--color-on-section-ochre); }
.vc_row.wnm-bg--ochre h2.vc_custom_heading { margin-bottom: 24px; }
.vc_row.wnm-bg--ochre .wnm-t--lead { margin-bottom: 48px; }
/* Dark photo: the photo is the row's own background image (Design Options); overlay and light text come with it */
.vc_row.wpb_row.wnm-bg--photo {
  --focus: var(--color-accent); --eyebrow: var(--c-green);
  isolation: isolate; overflow: clip; color: var(--color-on-section-photo); --wnm-heading-color: var(--color-on-section-photo);
  background-color: var(--color-section-photo); background-size: cover; background-position: center;
  margin-top: var(--panel-inset); padding-block: clamp(96px, 70px + 6vw, 168px);
}
.vc_row.wnm-bg--photo::before { content: ""; display: block; position: absolute; inset: 0; width: auto; z-index: -1; pointer-events: none; background: linear-gradient(90deg, color-mix(in srgb, var(--c-ink) 78%, transparent) 0%, color-mix(in srgb, var(--c-ink) 45%, transparent) 50%, transparent 100%); }
.vc_row.wnm-bg--photo:not(.wnm-height--hero) .vc_custom_heading:is(h2, h3) { max-width: 14em; }
.vc_row.wnm-bg--photo:not(.wnm-height--hero) .wnm-t--lead { margin-bottom: 36px; }
/* PORCH-WO-14av (H8): the Find a Church stretch-on-scroll, restored from the demo's serving band (07-refresh-demo, serving.css). A Dark photo row that is not a
   hero starts as a rounded panel at the rail and widens to full-bleed as it reaches mid-screen: a CSS scroll-driven animation on the row's own view timeline.
   No scroll-timeline support: the static full-bleed row. Reduced motion and phones: the static rounded panel. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) and (min-width: 600px) {
    .vc_row.wpb_row.wnm-bg--photo:not(.wnm-height--hero) {
      --stretch-inset: max(var(--panel-inset), (100% - var(--rail-max)) / 2 - 24px);
      animation: wnm-stretch linear both; animation-timeline: view(block); animation-range: entry 15% cover 48%;
    }
    @keyframes wnm-stretch {
      from { clip-path: inset(0 var(--stretch-inset) round var(--r-xl)); }
      to   { clip-path: inset(0 0 round 0px); }
    }
  }
}
@media (prefers-reduced-motion: reduce) {
  .vc_row.wpb_row.wnm-bg--photo:not(.wnm-height--hero) { margin-inline: var(--panel-inset); border-radius: var(--r-xl); }
}

/* PORCH-WO-14av (H9): Row "Entrance: Rise in together". motion.js tags the row's headings, text, buttons, images and gallery tiles (data-enter, --i)
   and adds .is-in to the row once, when it enters the screen: they fade up together on one short stagger (the reveal tokens). `translate`, not
   `transform`: the gallery tiles keep their own transform rules. No .motion-ok (reduced motion) or no JS: nothing is hidden. */
.motion-ok .vc_row.wnm-enter--rise [data-enter] {
  opacity: 0; translate: 0 24px;
  transition: opacity var(--dur-reveal) var(--ease-out) calc(var(--i, 0) * var(--stagger)), translate var(--dur-reveal) var(--ease-out) calc(var(--i, 0) * var(--stagger));
}
.motion-ok .vc_row.wnm-enter--rise.is-in [data-enter] { opacity: 1; translate: none; }
.motion-ok .vc_row.wnm-enter--rise .wnm-gal--logos .wpb_image_grid_ul > li[data-enter] {
  transition: opacity var(--dur-reveal) var(--ease-out) calc(var(--i, 0) * var(--stagger)), translate var(--dur-reveal) var(--ease-out) calc(var(--i, 0) * var(--stagger)),
              transform var(--dur-base) var(--ease-out), border-color var(--dur-base) linear;
}

/* PORCH-WO-14av (A2): Row "Aurora light: On" gives any row the engine's drifting light (aurora.css); the host is a positioned, clipped layer behind the content. */
.vc_row.wpb_row.wnm-au-on { position: relative; isolation: isolate; overflow: clip; }

/* Shape: rounded panel, card, tucks over the row above */
.vc_row.wpb_row.wnm-shape--panel {
  margin-inline: var(--panel-inset); border-radius: var(--r-xl); overflow: clip; isolation: isolate;
  /* the rail is measured from the panel's own edges (percentages here are the page width) */
  --wnm-row-inset: max(var(--gutter), (100% - 2 * var(--panel-inset) - var(--rail-max)) / 2);
  padding-inline: calc(var(--wnm-row-inset) - 15px);
}
.vc_row.wpb_row.wnm-shape--tuck {
  z-index: 1; margin-top: calc(-1 * var(--sheet-overlap));
  border-radius: var(--sheet-overlap) var(--sheet-overlap) 0 0;
  background-color: var(--color-surface-1);
}

/* Height: Hero (tall, under the header) and Page hero (shorter, for an inner page). Use with Dark photo. */
/* PORCH-WO-14x: the deep scrim is every hero's default (was only #ministries-hero / #royal-rangers-hero). */
.vc_row.wnm-height--hero::before {
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--c-ink) 55%, transparent) 0%, color-mix(in srgb, var(--c-ink) 72%, transparent) 45%, color-mix(in srgb, var(--c-ink) 94%, transparent) 100%),
    linear-gradient(90deg, color-mix(in srgb, var(--c-ink) 78%, transparent) 0%, transparent 68%);
}
/* Overlay: Lighter (row option, for a hero photo that is already dark) = the earlier shared scrim. */
.vc_row.wnm-height--hero.wnm-scrim--light::before {
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--c-ink) 30%, transparent) 0%, color-mix(in srgb, var(--c-ink) 42%, transparent) 45%, color-mix(in srgb, var(--c-ink) 80%, transparent) 100%),
    linear-gradient(90deg, color-mix(in srgb, var(--c-ink) 55%, transparent) 0%, transparent 68%);
}
.vc_row.wpb_row.wnm-height--hero {
  margin-top: var(--header-h); align-content: flex-end;
  min-height: min(100svh - var(--header-h), 920px);
  padding-block: clamp(96px, 60px + 6vw, 140px) calc(clamp(72px, 50px + 5vw, 128px) + var(--sheet-overlap));
}

/* Light text on the dark backgrounds */
.vc_row.wnm-bg--photo .vc_custom_heading,
.vc_row.wnm-bg--sage .vc_custom_heading { color: var(--color-on-section-sage); }
.vc_row.wnm-bg--ink .vc_custom_heading { color: var(--color-on-section-ink); }
.vc_row.wnm-bg--photo .wpb_text_column { color: color-mix(in srgb, var(--color-on-section-photo) 88%, transparent); }
.vc_row.wnm-bg--ink .wpb_text_column a,
.vc_row.wnm-bg--sage .wpb_text_column a,
.vc_row.wnm-bg--photo .wpb_text_column a { color: inherit; }

/* ---- 3. Headings --------------------------------------------------------------------------------- */
.vc_row .vc_custom_heading { font-family: var(--font-display); font-weight: 700; margin-block: 0 var(--s-4); text-wrap: balance; color: inherit; }
.vc_row h1.vc_custom_heading,
.vc_row .vc_custom_heading.wnm-h--display { font-family: var(--font-display); font-weight: 700; font-variant-numeric: tabular-nums; font-size: var(--fs-display-xl); line-height: var(--lh-display-xl); letter-spacing: var(--tr-display); max-width: 15em; }
.vc_row h2.vc_custom_heading { font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--tr-heading); max-width: var(--measure-h2); margin-bottom: 20px; }
.vc_row h3.vc_custom_heading { font-size: var(--fs-h3-list); line-height: var(--lh-h3-list); letter-spacing: var(--tr-title); }
.vc_row h4.vc_custom_heading { font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: var(--tr-title); }
.vc_row p.vc_custom_heading { font-family: var(--font-body); font-weight: 400; font-size: var(--fs-lead); line-height: var(--lh-lead); }
.vc_row .vc_custom_heading a { color: inherit; }
/* a heading that ends its head (nothing but a photo, list or element follows) leaves the section-head gap */
.vc_row h2.vc_custom_heading:not(:has(+ .wnm-t--lead)):not(:last-child) { margin-bottom: clamp(40px, 28px + 3vw, 72px); }
.vc_row h1.vc_custom_heading:not(:last-child) { margin-bottom: 28px; }

/* Display, large (14m): a section statement (the mandate); Display, medium: a call-out (the finder card) */
.vc_row .vc_custom_heading.wnm-h--display-l { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-display-l); line-height: var(--lh-display-l); letter-spacing: -0.03em; max-width: none; margin-bottom: 0; }
.vc_row .vc_custom_heading.wnm-h--display-m { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-display-m); line-height: var(--lh-display-m); letter-spacing: -0.025em; max-width: none; margin-bottom: 0; }

/* Eyebrow: one small uppercase tracked word in the body font, no leading rule (14au, #170). Words only, never numbers. */
.vc_row .vc_custom_heading.wnm-h--eyebrow {
  display: flex; align-items: center; gap: 10px; max-width: none; margin-bottom: 20px;
  font-family: var(--font-body); font-weight: 500; font-size: var(--fs-eyebrow); line-height: 1.33;
  letter-spacing: var(--tr-eyebrow); text-transform: uppercase;
  color: var(--eyebrow, var(--c-forest));
}
@media (max-width: 480px) { .vc_row .vc_custom_heading.wnm-h--eyebrow { font-size: 11px; } }

/* ---- 4. Text ------------------------------------------------------------------------------------- */
.vc_row .wpb_text_column { font-size: inherit; line-height: inherit; }
.vc_row .wpb_text_column > .wpb_wrapper { max-width: var(--measure-body); }
.vc_row .wpb_text_column > .wpb_wrapper > * { margin-block: 0; }
.vc_row .wpb_text_column > .wpb_wrapper > * + * { margin-top: 1.1em; }
.vc_row .wpb_text_column p { font-size: inherit; line-height: inherit; }
.vc_row .wpb_text_column a { color: var(--color-link); text-decoration: underline; text-underline-offset: 0.18em; }
.vc_row .wpb_text_column ul,
.vc_row .wpb_text_column ol { padding-left: 1.2em; }
/* Highlight: the marker (Formats → Highlight) */
.vc_row .wpb_text_column mark {
  color: inherit; background-color: transparent; padding-inline: 2px; margin-inline: -2px;
  background-image: linear-gradient(color-mix(in srgb, var(--c-green) 45%, transparent), color-mix(in srgb, var(--c-green) 45%, transparent));
  background-repeat: no-repeat; background-position: 0 88%; background-size: 100% 42%;
}
/* Muted (Formats → Muted): the two-tone lead */
.vc_row .tone-muted { color: var(--c-ink-muted); }

/* Text style: Lead */
.vc_row .wpb_text_column.wnm-t--lead { font-size: var(--fs-lead); line-height: var(--lh-lead); letter-spacing: -0.005em; }
.vc_row .wpb_text_column.wnm-t--lead > .wpb_wrapper { max-width: var(--measure-lead); }
.vc_row.wnm-height--hero .wpb_text_column.wnm-t--lead > .wpb_wrapper { max-width: 40ch; }
.vc_row.wnm-bg--photo:not(.wnm-height--hero) .wpb_text_column.wnm-t--lead > .wpb_wrapper { max-width: 52ch; }
/* Strong lead */
.vc_row .wpb_text_column.wnm-t--strong,
.vc_row .wpb_text_column p.wnm-t--strong { font-size: var(--fs-lead); line-height: var(--lh-lead); letter-spacing: -0.005em; font-weight: 600; color: var(--c-ink); }
.vc_row .wpb_text_column.wnm-t--strong > .wpb_wrapper,
.vc_row .wpb_text_column p.wnm-t--strong { max-width: 40ch; }
/* Large lead */
.vc_row .wpb_text_column.wnm-t--xl { font-size: clamp(20px, 18.51px + 0.381vw, 24px); line-height: 1.42; font-weight: 500; letter-spacing: -0.012em; }
.vc_row .wpb_text_column.wnm-t--xl > .wpb_wrapper { max-width: 34ch; }
/* Pull line */
.vc_row .wpb_text_column.wnm-t--pull,
.vc_row .wpb_text_column p.wnm-t--pull { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-h3-list); line-height: var(--lh-h3-list); letter-spacing: -0.02em; text-wrap: balance; margin-top: 1.5em; }
/* Muted */
.vc_row .wpb_text_column.wnm-t--muted,
.vc_row .wpb_text_column p.wnm-t--muted { color: var(--c-ink-muted); }
/* Dot list */
.vc_row .wpb_text_column.wnm-t--dots ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.vc_row .wpb_text_column.wnm-t--dots li { display: flex; align-items: baseline; gap: 14px; }
.vc_row .wpb_text_column.wnm-t--dots li::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--c-green); transform: translateY(-2px); }
/* Big stack: one big line per paragraph, the last one in forest green */
.vc_row .wpb_text_column.wnm-t--stack { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-display-m); line-height: var(--lh-display-m); letter-spacing: -0.02em; color: var(--c-ink); margin-top: 1.3em; }
.vc_row .wpb_text_column.wnm-t--stack > .wpb_wrapper > * + * { margin-top: 0; }
.vc_row .wpb_text_column.wnm-t--stack p:last-child { color: var(--c-forest); }

/* Label (14m): the small caps line under a figure */
.vc_row .wpb_text_column.wnm-t--label,
.vc_row .wpb_text_column p.wnm-t--label { font-family: var(--font-body); font-weight: 500; font-size: 13px; line-height: 1.3; letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--c-ink-muted); }
.vc_row:is(.wnm-bg--ink, .wnm-bg--sage, .wnm-bg--photo) .wpb_text_column:is(.wnm-t--label, p.wnm-t--label),
.vc_row:is(.wnm-bg--ink, .wnm-bg--sage, .wnm-bg--photo) .wpb_text_column p.wnm-t--label { color: var(--color-on-dark-muted); }

/* ---- 5. Images and galleries ---------------------------------------------------------------------- */
.vc_row .wpb_single_image img,
.vc_row .wpb_gallery img,
.vc_row .wpb_video_widget iframe { border-radius: var(--r-lg); }
.vc_row .wpb_single_image .vc_single_image-wrapper { display: block; }
.vc_row .wpb_single_image img { display: block; width: 100%; height: auto; }
/* Framed photo: a portrait crop */
.vc_row .wpb_single_image.wnm-img--framed .vc_single_image-wrapper { aspect-ratio: 4 / 5; border-radius: var(--r-lg); overflow: hidden; background: var(--color-surface-3); }
.vc_row .wpb_single_image.wnm-img--framed img { width: 100%; height: 100%; object-fit: cover; object-position: 42% 50%; border-radius: 0; }
/* Framed photo, crop to the left (14m): the same frame, a subject that sits further left (Missions) */
.vc_row .wpb_single_image.wnm-img--left img { object-position: 35% 50%; }
/* Framed photo (landscape 3:2) (14m): About's "carried" photo */
.vc_row .wpb_single_image.wnm-img--landscape .vc_single_image-wrapper { aspect-ratio: 3 / 2; border-radius: var(--r-lg); overflow: hidden; background: var(--color-surface-3); }
.vc_row .wpb_single_image.wnm-img--landscape img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; border-radius: 0; }
/* Logo: one logo tile */
.vc_row .wpb_single_image.wnm-img--logo .vc_single_image-wrapper,
.vc_row .wnm-gal--logos .wpb_image_grid_ul > li {
  display: grid; place-items: center; aspect-ratio: 308 / 180;
  background: var(--color-surface-2);
  border: 1px solid color-mix(in srgb, var(--c-ink) 10%, transparent);
  border-radius: var(--r-tile);
  transition: transform var(--dur-base) var(--ease-out), border-color var(--dur-base) linear;
}
.vc_row .wpb_single_image.wnm-img--logo img,
.vc_row .wnm-gal--logos img { height: 82%; width: auto; max-width: 74%; object-fit: contain; border-radius: 0; filter: grayscale(1); opacity: 0.82; transition: opacity var(--dur-base) linear; }
/* the 50+ mark is lighter than the others: darken it like the demo's --light tile (14r) */
.vc_row .wnm-gal--logos img[src*="WNMD_50th"] { filter: grayscale(1) brightness(0.3); }
/* Linked logos (Home logo links, 2026-10-05): the whole tile is the link and only linked tiles lift; the focus ring
   sits on the tile, because the tile clips its overflow */
.vc_row .wnm-gal--logos .wpb_image_grid_ul > li:has(> a):is(:hover, :focus-within) { transform: translateY(-2px); border-color: color-mix(in srgb, var(--c-ink) 20%, transparent); }
.vc_row .wnm-gal--logos .wpb_image_grid_ul > li:has(> a):is(:hover, :focus-within) img { opacity: 1; }
.vc_row .wnm-gal--logos .wpb_image_grid_ul > li > a { display: block; position: absolute; inset: 0; }
.vc_row .wnm-gal--logos .wpb_image_grid_ul > li > a:focus-visible { outline: none; }
.vc_row .wnm-gal--logos .wpb_image_grid_ul > li:has(> a:focus-visible) { outline: 2px solid var(--focus, var(--color-focus)); outline-offset: 3px; }
/* Gallery: a clean grid (default 3 across; Logo grid 4 across, 2 on phones) */
.vc_row .wpb_gallery .wpb_image_grid_ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; height: auto !important; }
.vc_row .wpb_gallery .wpb_image_grid_ul > li { position: static !important; transform: none !important; float: none; width: auto; margin: 0; }
.vc_row .wpb_gallery .wpb_image_grid_ul a { display: contents; }
.vc_row .wnm-gal--logos .wpb_image_grid_ul { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* the tile's shape comes from its aspect ratio; the logo sits centered inside it */
.vc_row .wnm-gal--logos .wpb_image_grid_ul > li { position: relative !important; min-height: 0; overflow: hidden; }
/* the demo's tiles are as tall as its 300px logo plus room (0.74 of the width), not 308:180 (14r) */
.vc_row .wnm-gal--logos .wpb_image_grid_ul > li { aspect-ratio: 100 / 74; }
.vc_row .wnm-gal--logos .wpb_image_grid_ul > li img { position: absolute; inset: 0; margin: auto; }
@media (max-width: 767px) {
  .vc_row .wpb_gallery .wpb_image_grid_ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .vc_row .wnm-gal--logos img { height: 78%; }
}

/* Video, tabs and accordion pick up the site's fonts */
.vc_row .vc_tta-tabs .vc_tta-tab > a,
.vc_row .vc_tta-panel-title > a { font-family: var(--font-display); font-weight: 600; }

/* ---- 6. Buttons: the WNM pill + circled arrow, colors from the Button's "Color" list ------------- */
.vc_btn3-container.vc_btn3-left { display: inline-block; vertical-align: top; margin: 0 14px 14px 0; }
.vc_btn3-container .vc_btn3.wnm-btn {
  --btn-bg: var(--color-accent); --btn-fg: var(--color-on-accent); --btn-border: transparent;
  --icon-bg: var(--color-on-accent); --icon-fg: var(--color-accent);
  display: inline-flex; align-items: center; justify-content: space-between; gap: 14px;
  min-height: 52px; padding: 8px 8px 8px 24px;
  border: 1.5px solid var(--btn-border); border-radius: var(--r-pill);
  background: var(--btn-bg); background-image: none; color: var(--btn-fg);
  box-shadow: none; text-shadow: none; text-transform: none;
  font-family: var(--font-body); font-weight: 600; font-size: var(--fs-button); line-height: 1.2;
  --flow-s: 24px; --flow-e: 8px; --flow-gap: 14px; --flow-c: var(--circle-md); /* pill geometry, shared by the circle, the arrow and the flow (#196) */
  transition: background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
/* The circle (::after) and the site's one arrow over it (::before, #197: the #i-arrow SVG as a mask, the same arrow as the theme's .btn).
   The arrow sits last in the row and steps back over the circle (negative start margin = circle + gap), so the button's size is unchanged. */
.vc_btn3-container .vc_btn3.wnm-btn::after {
  content: "";
  width: var(--flow-c); height: var(--flow-c); flex: none; border-radius: 50%; box-sizing: border-box; padding: 0; margin-inline-start: auto; /* auto: circle + arrow stay together in a full-width button */
  background: var(--icon-bg);
  transition: background-color var(--dur-base) var(--ease-out);
}
.vc_btn3-container .vc_btn3.wnm-btn::before {
  content: ""; order: 99; flex: none; width: var(--flow-c); height: var(--flow-c); margin-inline-start: calc(-1 * (var(--flow-c) + var(--flow-gap)));
  background: var(--icon-fg);
  -webkit-mask: var(--icon-arrow) center / var(--circle-glyph) no-repeat; mask: var(--icon-arrow) center / var(--circle-glyph) no-repeat;
  transition: background-color var(--dur-base) var(--ease-out), rotate var(--dur-flow) var(--ease-flow);
}
/* The one arrow hover (#196): the arrow turns --circle-turn */
@media (prefers-reduced-motion: no-preference) {
  .vc_btn3-container .vc_btn3.wnm-btn:is(:hover, :focus-visible)::before { rotate: var(--circle-turn); }
}
/* Pill flow (#196, the base.css .btn rule's twin): with a mouse the circle slides from the right end to the left end and the label slides
   right; padding swaps sides so the width never changes. Touch and reduced motion: colour only. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .vc_btn3-container .vc_btn3.wnm-btn {
    position: relative;
    min-height: calc(var(--flow-c) + 2 * var(--flow-e) + 3px); /* the height the in-flow circle gave: circle + block padding + the 1.5px border */
    padding-inline: var(--flow-s) calc(var(--flow-e) + var(--flow-c) + var(--flow-gap));
    transition: background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), padding var(--dur-flow) var(--ease-flow);
  }
  .vc_btn3-container .vc_btn3.wnm-btn::after {
    position: absolute; top: 50%; right: var(--flow-e); translate: 0 -50%;
    transition: background-color var(--dur-base) var(--ease-out), right var(--dur-flow) var(--ease-flow);
  }
  .vc_btn3-container .vc_btn3.wnm-btn::before {
    position: absolute; z-index: 1; top: 50%; right: var(--flow-e); translate: 0 -50%; margin: 0;
    transition: background-color var(--dur-base) var(--ease-out), rotate var(--dur-flow) var(--ease-flow), right var(--dur-flow) var(--ease-flow);
  }
  .vc_btn3-container .vc_btn3.wnm-btn:is(:hover, :focus-visible) { padding-inline: calc(var(--flow-e) + var(--flow-c) + var(--flow-gap)) var(--flow-s); }
  .vc_btn3-container .vc_btn3.wnm-btn:is(:hover, :focus-visible)::after,
  .vc_btn3-container .vc_btn3.wnm-btn:is(:hover, :focus-visible)::before { right: calc(100% - var(--flow-e) - var(--flow-c)); }
}
.vc_btn3-container .vc_btn3.wnm-btn--green:hover { --btn-bg: var(--color-accent-hover); }
.vc_btn3-container .vc_btn3.wnm-btn--outline { --btn-bg: transparent; --btn-fg: var(--c-ink); --btn-border: var(--c-ink); --icon-bg: var(--c-ink); --icon-fg: var(--c-light); }
.vc_btn3-container .vc_btn3.wnm-btn--outline:hover { --btn-bg: var(--c-ink); --btn-fg: var(--c-light); --icon-bg: var(--c-light); --icon-fg: var(--c-ink); }
.vc_btn3-container .vc_btn3.wnm-btn--white { --btn-bg: var(--c-white); --btn-fg: var(--c-ink); --icon-bg: var(--c-ink); --icon-fg: var(--c-white); }
.vc_btn3-container .vc_btn3.wnm-btn--white:hover { --icon-bg: var(--c-forest); }
.vc_btn3-container .vc_btn3.wnm-btn--glass {
  --btn-bg: color-mix(in srgb, var(--c-white) 6%, transparent); --btn-fg: var(--c-white); --btn-border: color-mix(in srgb, var(--c-white) 70%, transparent);
  --icon-bg: color-mix(in srgb, var(--c-white) 16%, transparent); --icon-fg: var(--c-white);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.vc_btn3-container .vc_btn3.wnm-btn--glass:hover { --btn-bg: color-mix(in srgb, var(--c-white) 14%, transparent); --icon-bg: var(--c-white); --icon-fg: var(--c-ink); }
.vc_row .wpb_content_element.vc_btn3-container { margin-bottom: 14px; }

/* ---- 7. Separators: the hairline above a section head ------------------------------------------- */
.vc_row .vc_separator { margin-bottom: 36px; }
.vc_row .vc_separator .vc_sep_holder { height: 0; }
.vc_row .vc_separator .vc_sep_line { height: 0; border-top: 1px solid var(--color-border); border-color: var(--color-border); }
.vc_row.wnm-bg--photo:not(.wnm-height--hero) .vc_separator .vc_sep_line { border-color: color-mix(in srgb, var(--c-light) 30%, transparent); }
.vc_row.wnm-bg--ink .vc_separator .vc_sep_line { border-color: var(--color-border-on-dark); }
.vc_row .vc_empty_space { margin-bottom: 0; }

/* ---- 8. The custom elements inside a row (behavior only; their own CSS is the section CSS) ------- */
/* Events: the controls (View Full Calendar + prev/next) sit at the right of the head, on the intro's last line, just above the cards
   they steer (14az, H6: no longer floating across from the heading); the rail bleeds to the panel's edges */
@media (min-width: 1024px) {
  .vc_row.wnm-bg--ochre .wpb_wrapper:has(> .wnm-events) { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--s-6); align-items: start; }
  .vc_row.wnm-bg--ochre .wpb_wrapper:has(> .wnm-events) > * { grid-column: 1 / -1; }
  .vc_row.wnm-bg--ochre .wpb_wrapper:has(> .wnm-events) > .wnm-events { display: contents; }
  .vc_row.wnm-bg--ochre .wpb_wrapper:has(> .wnm-events) > .wpb_text_column { grid-column: 1; }
  .vc_row.wnm-bg--ochre .events__controls { grid-column: 2; align-self: end; margin-bottom: var(--s-7); } /* = the intro's margin-bottom: both end on one line */
  .vc_row.wnm-bg--ochre .events__scroller { grid-column: 1 / -1; margin-top: 0; } /* grid items don't collapse margins: the intro's 48px is the only gap */
}
.vc_row.wnm-bg--ochre .events__scroller {
  --edge: max(var(--gutter), (100vw - 2 * var(--panel-inset) - var(--rail-max)) / 2);
  margin-inline: calc(50% - 50vw + var(--panel-inset));
}
/* Tablet and phone: heading, controls, then the intro (the demo's order); the controls row stays one line */
@media (max-width: 1023px) {
  .vc_row.wnm-bg--ochre .wpb_wrapper:has(> .wnm-events) { display: flex; flex-direction: column; }
  .vc_row.wnm-bg--ochre .wpb_wrapper:has(> .wnm-events) > .wnm-events { display: contents; }
  .vc_row.wnm-bg--ochre .wpb_wrapper:has(> .wnm-events) > .wpb_text_column { order: 2; }
  .vc_row.wnm-bg--ochre .events__controls { order: 1; margin: var(--s-5) 0 var(--s-4); }
  .vc_row.wnm-bg--ochre .events__scroller { order: 3; }
}

/* ---- 9. Tablet and phone: columns stack below 1024px (the demo's breakpoint) ---------------------- */
@media (max-width: 1023px) {
  .vc_row.wpb_row > .wpb_column { width: 100%; flex: 0 0 100%; }
  .vc_row .wpb_column.wnm-col--sticky { order: -1; }
  .vc_row .wpb_column.wnm-col--sticky .wnm-img--framed .vc_single_image-wrapper { aspect-ratio: 16 / 10; }
  .vc_row.wpb_row.wnm-height--hero { min-height: min(88svh, 920px); }
  .vc_row .wpb_column + .wpb_column { margin-top: 40px; }
  /* WNM-MOBILE-home MH3: a sticky photo column that comes second in the markup shows first (order -1); the 40px column gap belongs
     on the column that follows it on screen, not on the photo (it doubled the heading gap and left the text touching the photo) */
  .vc_row .wpb_column.wnm-col--sticky { margin-top: 0; }
  .vc_row .wpb_column:has(+ .wpb_column.wnm-col--sticky) { margin-top: 40px; }
}
/* WNM-MOBILE-home MH1/MH4: Home phone spacing */
@media (max-width: 767px) {
  .vc_row .wpb_text_column.wnm-t--dots ul { gap: calc(var(--s-1) * 1.5); } /* MH1: the bullet lines sit closer (10px -> 6px) */
  /* MH4: heading, View Full Calendar, intro, then the prev/next arrows directly above the cards they steer (CSS order, no markup move) */
  .vc_row.wnm-bg--ochre .wpb_wrapper:has(> .wnm-events) { display: grid; grid-template-columns: var(--circle-md) var(--circle-md) 1fr; column-gap: var(--s-2); }
  .vc_row.wnm-bg--ochre .wpb_wrapper:has(> .wnm-events) > * { grid-column: 1 / -1; }
  .vc_row.wnm-bg--ochre .events__controls { display: contents; }
  .vc_row.wnm-bg--ochre .events__controls .btn { grid-column: 1 / -1; order: 1; margin-bottom: var(--s-5); } /* heading gap = the heading's own 24px */
  .vc_row.wnm-bg--ochre .wpb_wrapper:has(> .wnm-events) > .wpb_text_column { margin-bottom: 0; }
  .vc_row.wnm-bg--ochre .events__controls .rail-btn { order: 3; margin-top: var(--s-5); }
  .vc_row.wnm-bg--ochre .events__controls .rail-btn[data-rail-prev] { grid-column: 1; }
  .vc_row.wnm-bg--ochre .events__controls .rail-btn[data-rail-next] { grid-column: 2; }
  .vc_row.wnm-bg--ochre .events__scroller { grid-column: 1 / -1; order: 4; margin-top: var(--s-4); }
}
@media (max-width: 600px) {
  .vc_btn3-container.vc_btn3-left { display: block; margin-right: 0; }
  .vc_btn3-container .vc_btn3.wnm-btn { width: 100%; }
}
@media (max-width: 599px) {
  .vc_row.wpb_row.wnm-bg--photo:not(.wnm-height--hero) { margin-inline: var(--panel-inset); border-radius: var(--r-xl); }
}

/* ---- 10. Inner pages (PORCH-WO-14m: About) ----------------------------------------------------------- */
/* The Row's "Content position" (Middle, Bottom) works on rows and inner rows */
.vc_row.wpb_row.vc_row-o-content-middle { align-items: center; }
.vc_row.wpb_row.vc_row-o-content-bottom { align-items: flex-end; }
/* A head (eyebrow + heading beside a button or lead) sits above its content with the section-head gap */
.vc_row .vc_row.wpb_row.vc_inner:not(:last-child) { margin-bottom: clamp(40px, 28px + 3vw, 72px); }

/* Height: Page hero — the home hero, shorter, for an inner page; the eyebrow reads as the breadcrumb line */
.vc_row.wpb_row.wnm-height--page {
  min-height: clamp(520px, 74svh, 700px);
  padding-block: clamp(112px, 80px + 5vw, 144px) calc(clamp(64px, 48px + 3vw, 96px) + var(--sheet-overlap));
}
.vc_row.wnm-height--page h1.vc_custom_heading { max-width: none; }
.vc_row.wnm-height--page .wpb_text_column.wnm-t--lead > .wpb_wrapper { max-width: 32.8em; } /* the demo's 52ch measured in its font (14r) */
.vc_row.wnm-height--page .wnm-h--eyebrow { color: color-mix(in srgb, var(--c-white) 86%, transparent); margin-bottom: 22px; }
@media (max-width: 767px) { .vc_row.wpb_row.wnm-height--page { min-height: 72svh; } }

/* Row: Card — a bordered paper panel on the page rail (the community finder) */
.vc_row.wpb_row.wnm-shape--card {
  --card-pad: clamp(32px, 16px + 4vw, 72px);
  align-items: center;
  margin-inline: var(--wnm-row-inset); margin-bottom: var(--cta-gap);
  padding: var(--card-pad) calc(var(--card-pad) - 15px);
  border: 1px solid var(--color-border); border-radius: var(--r-lg);
  background-color: var(--color-surface-2);
}
.vc_row.wnm-shape--card .wnm-t--muted > .wpb_wrapper,
.vc_row.wnm-shape--card p.wnm-t--muted { max-width: 44ch; }
.vc_row.wnm-shape--card .wpb_column:first-child > .vc_column-inner > .wpb_wrapper { position: relative; }
/* the house pin mark above the eyebrow: a green disc with the pin cut out of the accent's ink color */
.vc_row.wnm-shape--card .wpb_column:first-child > .vc_column-inner > .wpb_wrapper::before {
  content: ""; display: block; width: var(--circle-lg); height: var(--circle-lg); margin-bottom: 24px; border-radius: 50%; background: var(--color-accent);
}
.vc_row.wnm-shape--card .wpb_column:first-child > .vc_column-inner > .wpb_wrapper::after {
  content: ""; position: absolute; top: 17px; left: 17px; width: 22px; height: 22px; background: var(--color-on-accent);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 15s5-4.6 5-8.5A5 5 0 0 0 3 6.5C3 10.4 8 15 8 15Zm0-6.3a2.2 2.2 0 1 1 0-4.4 2.2 2.2 0 0 1 0 4.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 15s5-4.6 5-8.5A5 5 0 0 0 3 6.5C3 10.4 8 15 8 15Zm0-6.3a2.2 2.2 0 1 1 0-4.4 2.2 2.2 0 0 1 0 4.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Right-aligned button (the Button's Alignment): the head of a section; left again once columns stack */
.vc_btn3-container.vc_btn3-right { text-align: right; }
@media (max-width: 1023px) { .vc_btn3-container.vc_btn3-right { text-align: left; } }

/* Sub-nav element: it sits in a row of its own; the row and its wrappers add no box, so the bar is a direct
   child of the page (sticky against the whole page, as in the demo). In the editors the row keeps its box. */
body:not(.vc_editor):not(.compose-mode) .vc_row.wpb_row:has(.subnav),
body:not(.vc_editor):not(.compose-mode) .vc_row.wpb_row:has(.subnav) > .wpb_column,
body:not(.vc_editor):not(.compose-mode) .vc_row.wpb_row:has(.subnav) .vc_column-inner,
body:not(.vc_editor):not(.compose-mode) .vc_row.wpb_row:has(.subnav) .wpb_wrapper { display: contents; }
.vc_row.wpb_row:has(.subnav) { padding: 0; margin: 0; }

/* Explore cards element: the hairline accordion inside a stock row (its own CSS is about-explore.css) */
.vc_row .xcards { margin: 0; }
.vc_row .xcard, .vc_row .xcard:hover { color: var(--c-white); text-decoration: none; }
.vc_row .xcard__title { margin: 0; color: var(--c-white); }

/* Statistics (three inner columns of a dark row) stay side by side on tablets, as the demo's; they stack on phones */
@media (min-width: 600px) and (max-width: 1023px) {
  .vc_row.wpb_row.wnm-bg--ink .vc_row.vc_inner > .wpb_column.vc_col-sm-4 { width: 33.3333%; flex: 0 0 33.3333%; margin-top: 0; }
}

/* ---- 11. Mission & Vision, Leadership & Staff (PORCH-WO-14n-a) ---------------------------------------- */
/* Text style: Statement — one large sentence (the vision) */
.vc_row .wpb_text_column.wnm-t--statement { font-family: var(--font-display); font-weight: 500; font-size: var(--fs-h3-list); line-height: 1.32; letter-spacing: -0.015em; text-wrap: pretty; }
.vc_row .wpb_text_column.wnm-t--statement > .wpb_wrapper { max-width: none; }
/* Format: Accent — a green mark inside a sentence (the vision's "///") */
.vc_row .wpb_text_column .tone-accent { color: var(--c-forest); font-weight: 600; }
/* Formats: Placeholder copy and Note chip — unfinished copy, visibly marked so nobody takes it for final */
.vc_row .wpb_text_column p.wnm-t--placeholder {
  padding: 12px 16px; border-left: 2px dashed color-mix(in srgb, var(--c-ink) 45%, transparent); border-radius: 0 var(--r-xs) var(--r-xs) 0;
  background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--c-ink) 3.5%, transparent) 0 8px, transparent 8px 16px);
  color: var(--color-type-small); font-size: var(--fs-small); line-height: var(--lh-small);
}
.vc_row .wpb_text_column p.wnm-t--note {
  display: inline-flex; align-items: center; min-height: 32px; padding: 4px 14px;
  border: 1px dashed color-mix(in srgb, var(--c-ink) 45%, transparent); border-radius: var(--r-pill);
  font-family: var(--font-body); font-weight: 500; font-size: var(--fs-eyebrow); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--c-ink-muted);
}
/* a sticky heading column sits under the sticky sub-nav */
@media (min-width: 1024px) { html.has-subnav .vc_row .wpb_column.wnm-col--sticky > .vc_column-inner { top: calc(84px + var(--subnav-h) + 32px); } }

/* Shape: Contained panel — rounded, on the page rail. With Ink it is the call-to-action panel, with the demo's
   resting green glow (the drift is motion and waits for the motion pass). */
.vc_row.wpb_row.wnm-shape--inset {
  margin-inline: var(--wnm-row-inset); margin-bottom: var(--cta-gap);
  padding: clamp(36px, 16px + 4.6vw, 88px) calc(clamp(28px, 12px + 4vw, 72px) - 15px);
  border-radius: var(--r-lg); overflow: clip; isolation: isolate;
}
.vc_row.wpb_row.wnm-shape--inset.wnm-bg--ink::before,
.vc_row.wpb_row.wnm-shape--inset.wnm-bg--ink::after { content: ""; display: block; position: absolute; z-index: -1; pointer-events: none; border-radius: 50%; }
.vc_row.wpb_row.wnm-shape--inset.wnm-bg--ink::before { /* the corner glow, bottom right */
  width: 56%; aspect-ratio: 1; right: -18%; bottom: -46%;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--c-green) 30%, transparent) 0%, color-mix(in srgb, var(--c-green) 12%, transparent) 48%, transparent 100%);
}
.vc_row.wpb_row.wnm-shape--inset.wnm-bg--ink::after { /* a long soft band, low across the panel */
  width: 120%; height: 70%; left: -30%; bottom: -30%; transform: rotate(-9deg);
  background: radial-gradient(closest-side, color-mix(in srgb, var(--c-green) 27%, transparent) 0%, color-mix(in srgb, var(--c-green) 12%, transparent) 50%, transparent 100%);
}
.vc_row.wnm-shape--inset.wnm-bg--ink .vc_custom_heading:is(h2) { max-width: 12em; }
.vc_row.wnm-shape--inset.wnm-bg--ink .wpb_text_column { color: var(--color-on-dark-muted); }
.vc_row.wnm-shape--inset.wnm-bg--ink .wpb_text_column > .wpb_wrapper { max-width: 46ch; }
.vc_row.wnm-shape--inset.wnm-bg--ink .wpb_text_column { margin-bottom: 32px; }

/* Staff group element: the People section's own CSS (people.css) inside a stock row; the row owns the spacing */
.vc_row .people { padding-block: 0; }
/* Emphasis in a heading (the L&S hero's italic "team"): give the slant's word space back */
.vc_row .vc_custom_heading em { margin-right: 0.1em; }

/* ---- 12. Beliefs & Affiliation (PORCH-WO-14n-b) ------------------------------------------------------- */
/* Button color: National — the yellow button on the dark national-resource panels (Beliefs, later Ministries) */
.vc_btn3-container .vc_btn3.wnm-btn--national { --btn-bg: var(--c-national); --btn-fg: var(--c-ink); --icon-bg: var(--c-ink); --icon-fg: var(--c-national); }
.vc_btn3-container .vc_btn3.wnm-btn--national:hover { --btn-bg: var(--c-national-hover); }

/* Truths list element (its rows are statement-list.css): the count line, then the list; Scripture references */
.vc_row .ba-truths .slist__meta { margin-bottom: clamp(24px, 18px + 1.5vw, 40px); }
.vc_row .ba-refs__head, .vc_row .slist__content h4 { margin: 22px 0 0; font-weight: 600; font-size: var(--fs-body); line-height: var(--lh-body); }
.vc_row .ba-refs { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 4px 20px;
  font-size: var(--fs-small); line-height: var(--lh-small); color: var(--color-type-small); }
.vc_row .ba-refs a { color: var(--color-link); text-decoration: underline; text-underline-offset: 2px; }
.vc_row .slist__trigger { font-family: var(--font-display); }
.vc_row .slist__content p a { color: var(--color-link); text-decoration: underline; text-underline-offset: 2px; }

/* Position papers element (cards are card-grid.css): the list sits under the stock head */
.vc_row .cardgrid__list { margin-top: 0; }

/* CTA panels: one layout; the national palette is an independent class. Compact and link-list modifiers preserve the Beliefs variants. */
.vc_row.wpb_row.wnm-shape--inset.wnm-bg--ink.wnm-palette--national {
  --eyebrow: var(--c-national); --focus: var(--c-national);
  background-image:
    radial-gradient(70% 90% at 100% 100%, color-mix(in srgb, var(--c-national) 20%, transparent), transparent 70%),
    radial-gradient(50% 70% at 80% 115%, color-mix(in srgb, var(--c-ochre) 24%, transparent), transparent 70%);
}
.vc_row.wpb_row.wnm-shape--inset.wnm-bg--ink.wnm-palette--national::before,
.vc_row.wpb_row.wnm-shape--inset.wnm-bg--ink.wnm-palette--national::after { display: none; }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel .vc_custom_heading.wnm-h--eyebrow { margin-bottom: 14px; }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel .wpb_column:last-child > .vc_column-inner > .wpb_wrapper {
  padding: clamp(24px, 3vw, 44px);
  border: 1px solid var(--color-border-on-dark); border-radius: var(--r-md);
  background: var(--color-surface-3);
}
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel .wpb_column:last-child .vc_btn3-container { margin-bottom: 0; }
/* The slim full-statement bar: less padding; its eyebrow is the heading */
.vc_row.wpb_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--compact { padding-block: clamp(28px, 12px + 2.4vw, 48px); margin-bottom: clamp(32px, 22px + 3vw, 64px); }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--compact .wpb_text_column { margin-bottom: 0; }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--compact h2.vc_custom_heading.wnm-h--eyebrow { font-size: var(--fs-eyebrow); line-height: 1.33; max-width: none; }
/* Three national links on hairlines: name (mono), what it is, the arrow */
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--links .wpb_column:last-child .wpb_text_column { margin-bottom: 0; }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--links .wpb_text_column ul { margin: 0; padding: 0; list-style: none; }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--links .wpb_text_column li { margin: 0; }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--links .wpb_text_column li a {
  position: relative; display: block; padding: 16px 34px 16px 0; border-top: 1px solid var(--color-border-on-dark);
  font: 500 var(--fs-lead)/1.2 var(--font-body); color: var(--color-on-dark); text-decoration: none;
}
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--links .wpb_text_column li a em { display: block; margin-top: 4px; font: 400 var(--fs-small)/var(--lh-small) var(--font-body); font-style: normal; color: var(--color-on-dark-muted); }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--links .wpb_text_column li a::after {
  content: ""; position: absolute; right: 0; top: 50%; width: 18px; height: 18px; margin-top: -9px; background: var(--c-national);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--links .wpb_text_column li a:hover { text-decoration: underline; text-underline-offset: 3px; }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--links .wpb_text_column li a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (max-width: 1023px) { .vc_row.wnm-shape--inset.wnm-pattern--cta-panel .wpb_column:last-child > .vc_column-inner > .wpb_wrapper { margin-top: 0; } }

/* ---- 13. Contact (PORCH-WO-14p) ------------------------------------------------------------------------- */
/* Office + message: two panels side by side (anchor :is(.wnm-pattern--taskcards, #office-message)). Office = the dark panel, message = the light one. */
.vc_row:is(.wnm-pattern--taskcards, #office-message), .vc_row.wnm-pattern--linkcards .vc_row.vc_inner { align-items: stretch; }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column { display: flex; }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column > .vc_column-inner { flex: 1; min-width: 0; display: flex; }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column > .vc_column-inner > .wpb_wrapper { flex: 1; }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column > .vc_column-inner > .wpb_wrapper {
  padding: clamp(var(--s-6), 4vw, var(--s-8)); border-radius: var(--r-xl); background: var(--color-surface-2);
}
.vc_row:is(.wnm-pattern--taskcards, #office-message) .vc_custom_heading.wnm-h--eyebrow { margin-bottom: var(--s-4); }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:last-child .vc_custom_heading:is(h2) { margin-bottom: var(--s-7); }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:first-child > .vc_column-inner > .wpb_wrapper {
  display: grid; grid-template-columns: auto auto 1fr; grid-template-rows: auto auto 1fr auto; align-items: end; column-gap: var(--s-3);
  background: var(--color-surface-3); color: var(--color-on-dark); --eyebrow: var(--c-green); --focus: var(--color-accent);
}
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:first-child > .vc_column-inner > .wpb_wrapper > :is(.vc_custom_heading, .wpb_text_column) { grid-column: 1 / -1; align-self: stretch; }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:first-child .vc_custom_heading { color: var(--color-on-dark); }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:first-child .vc_custom_heading.wnm-h--eyebrow { color: var(--c-green); }
.vc_row:is(.wnm-pattern--taskcards, #office-message) .wpb_text_column dl {
  margin: var(--s-7) 0; display: grid; grid-template-columns: minmax(90px, 0.3fr) 1fr; column-gap: var(--s-4);
  border-block-end: 1px solid var(--color-border-on-dark);
}
.vc_row:is(.wnm-pattern--taskcards, #office-message) .wpb_text_column :is(dt, dd) { margin: 0; padding-block: var(--s-4); border-block-start: 1px solid var(--color-border-on-dark); }
.vc_row:is(.wnm-pattern--taskcards, #office-message) .wpb_text_column dt { font: 500 var(--fs-eyebrow)/1.5 var(--font-body); text-transform: uppercase; letter-spacing: var(--tr-eyebrow); color: var(--color-on-dark-muted); }
.vc_row:is(.wnm-pattern--taskcards, #office-message) .vc_btn3-container { margin: 0; }

/* The contact pair (14az, S5/S6): the same two buttons on every ministry page's Get in touch panel: one size, one row; stacked and full width on a phone */
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .vc_btn3-container .vc_btn3.wnm-btn { min-width: 15rem; }
@media (max-width: 599px) {
  .vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .vc_btn3-container { display: block; margin-right: 0; }
  .vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .vc_btn3-container .vc_btn3.wnm-btn { width: 100%; min-width: 0; }
}

/* Routing: six cards on hairlines, one inner row (3 across; 2 on a tablet; 1 on a phone); the last line of a card is who to contact */
.vc_row.wnm-pattern--linkcards .vc_row.vc_inner { margin-top: var(--s-6); border: 1px solid var(--color-border); border-radius: var(--r-lg); overflow: hidden; background: var(--color-border); gap: 1px; }
.vc_row.wnm-pattern--linkcards .vc_inner > .wpb_column { padding: 0; margin-top: 0; width: auto; flex: 1 1 calc(33.333% - 1px); max-width: none; }
.vc_row.wnm-pattern--linkcards .vc_inner > .wpb_column { display: flex; }
.vc_row.wnm-pattern--linkcards .vc_inner > .wpb_column > .vc_column-inner { padding: 0; flex: 1; display: flex; }
.vc_row.wnm-pattern--linkcards .vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper { flex: 1; position: relative; display: flex; flex-direction: column; padding: var(--linkcard-pad-y) var(--linkcard-pad-x); background: var(--color-surface-2); transition: background-color var(--dur-base) var(--ease-out); }
.vc_row.wnm-pattern--linkcards .vc_inner .wnm-h--eyebrow { color: var(--c-forest); margin-bottom: 0; }
.vc_row.wnm-pattern--linkcards .vc_inner h3.vc_custom_heading { margin: var(--s-4) 0 var(--s-3); }
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column,
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column > .wpb_wrapper { display: contents; } /* both levels, so the last line is a flex item and sits at the card's foot */
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p { margin: 0; }
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:last-child {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); min-height: calc(var(--s-4) + var(--circle-md) + 1px);
  margin-top: auto; padding-top: var(--s-4); border-top: 1px solid var(--color-border); color: var(--c-forest); font: 600 var(--fs-small)/1.5 var(--font-body);
}
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:first-child:not(:last-child) { margin-bottom: var(--s-4); }

/* Visit: the map panel; the copy beside it is stock */
.vc_row#visit .wpb_text_column { margin-bottom: var(--s-6); }
@media (max-width: 1023px) {
  .vc_row.wnm-pattern--linkcards .vc_inner > .wpb_column { flex-basis: calc(50% - 1px); }
  .vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column + .wpb_column { margin-top: var(--s-5); }
}
@media (max-width: 767px) {
  .vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:first-child > .vc_column-inner > .wpb_wrapper { display: flex; flex-wrap: wrap; gap: var(--s-3); min-width: 0; }
  .vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:first-child > .vc_column-inner > .wpb_wrapper > :is(.vc_custom_heading, .wpb_text_column) { flex: 0 0 100%; min-width: 0; }
  .vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:first-child .vc_btn3-container { flex: 0 0 100%; }
  .vc_row.wnm-pattern--linkcards .vc_inner > .wpb_column { flex-basis: 100%; }
  .vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:last-child { margin-top: var(--s-5); }
  .vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:first-child:not(:last-child) { margin-bottom: 0; } /* flex margins don't collapse: keep the phone gap at --s-5 */
  .vc_row:is(.wnm-pattern--taskcards, #office-message) .wpb_text_column dl { grid-template-columns: 1fr; }
  .vc_row:is(.wnm-pattern--taskcards, #office-message) .wpb_text_column dt { padding-bottom: 0; }
  .vc_row:is(.wnm-pattern--taskcards, #office-message) .wpb_text_column dd { border-block-start: 0; padding-top: var(--s-2); }
}

/* ---- 14r polish ----------------------------------------------------------------------------------- */
/* Home, Who We Are: the closing line and its button sit a little lower, as in the demo */
.vc_row .wnm-t--dots + .wnm-t--lead { margin-top: 14px; }
.vc_row .wnm-t--dots + .wnm-t--lead + .vc_btn3-container { margin-top: 12px; }
/* Page hero title: the demo's masked lines add 0.09em around the line box */
.vc_row.wnm-height--page h1.vc_custom_heading { padding-block: 0.045em; }
/* A list of hairline-pair items with plain H3 titles (Mission & Vision's values): each item is the demo's
   padding-block above and below its hairline, not the section-head gaps */
.vc_row:has(.vc_row.vc_inner h3.vc_custom_heading:not([class*="wnm-h--"])) .vc_separator { margin-bottom: clamp(24px, 18px + 1.5vw, 40px); }
.vc_row:has(.vc_row.vc_inner h3.vc_custom_heading:not([class*="wnm-h--"])) .vc_row.vc_inner:not(:last-child) { margin-bottom: clamp(24px, 18px + 1.5vw, 40px); }
@media (max-width: 1023px) {
  .vc_row:not(.wnm-pattern--linkcards, .wnm-pattern--levels, .wnm-pattern--sessions):has(.vc_row.vc_inner h3.vc_custom_heading:not([class*="wnm-h--"])) .vc_row.vc_inner > .wpb_column + .wpb_column { margin-top: 16px; }
}
/* Mission items (Medium H3 titles): the demo's gap between items and its chip spacing */
.vc_row:has(.vc_row.vc_inner h3.wnm-h--display-m) .vc_row.vc_inner:not(:last-child) { margin-bottom: clamp(56px, 40px + 4vw, 104px); }
.vc_row:has(.vc_row.vc_inner h3.wnm-h--display-m) .wnm-t--note { margin-top: 23px; }
/* Staff groups: the demo's own padding between groups (64–128px in all), not a fixed 64 per side */
.vc_row.wpb_row.wnm-space--tight:has(.people) { padding-block: clamp(32px, 22px + 2.6vw, 64px); }
/* Page hero (all inner pages): the demo's gap above the buttons, and no row margin under them */
.vc_row.wnm-height--page .wpb_text_column.wnm-t--lead { margin-bottom: 36px; }
.vc_row.wnm-height--page .vc_btn3-container { margin-bottom: 0; }
@media (max-width: 600px) { .vc_row.wnm-height--page .vc_btn3-container + .vc_btn3-container { margin-top: 14px; } } /* stacked hero buttons on a phone keep the site's 14px button gap (mobile review MG1) */

/* Hero focal points on a phone (the demo shifts each page's photo at 767px). Keyed to the page's hero row; the desktop
   point is the row's own Design Options value. Rows: 1 Home, 3 About, 11 Mission & Vision, 12 Leadership & Staff,
   21 Beliefs, 31 Contact, 41 Ministries. */
@media (max-width: 767px) {
  .vc_row.vc_custom_1790000000001 { background-position: 62% 40% !important; }
  .vc_row.vc_custom_1790000000003 { background-position: 58% 40% !important; }
  .vc_row.vc_custom_1790000000011 { background-position: 70% 36% !important; }
  .vc_row.vc_custom_1790000000012 { background-position: 30% 40% !important; }
  .vc_row.vc_custom_1790000000021 { background-position: 85% 55% !important; }
  .vc_row.vc_custom_1790000000031 { background-position: 56% 50% !important; }
  .vc_row.vc_custom_1790000000041 { background-position: 60% 40% !important; }
}

/* Type details the demo sets differently (14r): list titles are 600 (About's pillars, Mission & Vision's values), the
   stat figures sit at the display tracking in white, the About explore head's button is the small mono one */
.vc_row .wpb_wrapper > .vc_separator + h3.vc_custom_heading:not([class*="wnm-h--"]),
.vc_row:not(.wnm-pattern--linkcards):has(.vc_row.vc_inner h3.vc_custom_heading:not([class*="wnm-h--"])) .vc_row.vc_inner h3.vc_custom_heading:not([class*="wnm-h--"]) { font-weight: 600; }
.vc_row.wnm-bg--ink p.vc_custom_heading.wnm-h--display { letter-spacing: -0.04em; color: var(--c-white); }
.vc_row:has(.xcards) .vc_btn3-container .vc_btn3.wnm-btn { min-height: 40px; padding: 4px 4px 4px 16px; gap: 10px; font-family: var(--font-body); font-weight: 600; font-size: 13px; letter-spacing: 0; text-transform: none; }
.vc_row:has(.xcards) .vc_btn3-container .vc_btn3.wnm-btn { --flow-s: 16px; --flow-e: 4px; --flow-gap: 10px; --flow-c: var(--circle-sm); } /* the circle and arrow take --flow-c (was a 30px one-off on ::after) */
/* Pill flow (#196) for this small button: after the rule above so its padding/min-height win */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .vc_row:has(.xcards) .vc_btn3-container .vc_btn3.wnm-btn { min-height: calc(var(--flow-c) + 2 * var(--flow-e) + 3px); padding-inline: var(--flow-s) calc(var(--flow-e) + var(--flow-c) + var(--flow-gap)); }
  .vc_row:has(.xcards) .vc_btn3-container .vc_btn3.wnm-btn:is(:hover, :focus-visible) { padding-inline: calc(var(--flow-e) + var(--flow-c) + var(--flow-gap)) var(--flow-s); }
}
.vc_row:is(:is(.wnm-pattern--taskcards, #office-message), .wnm-pattern--cta-panel, #go-deeper-strip, #get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact, .wnm-pattern--what-who, .wnm-pattern--cta-panel) .vc_custom_heading.wnm-h--display-m { letter-spacing: -0.03em; }
.vc_row.wnm-bg--ink:has(p.vc_custom_heading.wnm-h--display) h2.vc_custom_heading { color: var(--c-white); }
/* Mission & Vision lists: their item hairlines are 28% ink (the section-head hairline stays 12%), and the values list closes with one */
.vc_row:is(:has(.vc_row.vc_inner h3.wnm-h--display-m), :has(.vc_row.vc_inner h3.vc_custom_heading:not([class*="wnm-h--"]))):not(.wnm-pattern--linkcards) .vc_separator:has(+ .vc_row.vc_inner) .vc_sep_line { border-color: color-mix(in srgb, var(--c-ink) 28%, transparent); }
.vc_row:not(.wnm-pattern--linkcards):has(.vc_row.vc_inner h3.vc_custom_heading:not([class*="wnm-h--"])) .vc_row.vc_inner:last-child { padding-bottom: clamp(24px, 18px + 1.5vw, 40px); border-bottom: 1px solid color-mix(in srgb, var(--c-ink) 28%, transparent); }

/* The Contact page's Routing/Visit/Office polish (14r) moved here from contact.css in 14v: Give shares these anchors and has no Contact element, so contact.css is not loaded there. */
/* Routing's head is two columns on a desktop, the cards are the rail's width, titles at card size */
.vc_row.wnm-pattern--linkcards .vc_row.vc_inner { margin-inline: 0; }
.vc_row.wnm-pattern--linkcards .vc_inner h3.vc_custom_heading { font-family: var(--linkcard-title-font); font-size: var(--linkcard-title-size); font-weight: var(--linkcard-title-weight); line-height: var(--linkcard-title-leading); letter-spacing: var(--linkcard-title-tracking); }
@media (min-width: 1024px) {
  .vc_row.wnm-pattern--linkcards > .wpb_column > .vc_column-inner > .wpb_wrapper::before,
  .vc_row.wnm-pattern--linkcards > .wpb_column > .vc_column-inner > .wpb_wrapper::after { display: none; }
  .vc_row.wnm-pattern--linkcards > .wpb_column > .vc_column-inner > .wpb_wrapper { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grid-gap); }
  .vc_row.wnm-pattern--linkcards > .wpb_column > .vc_column-inner > .wpb_wrapper > * { grid-column: 1 / -1; }
  /* Explicit order survives a full-rail separator in its own column. */
  .vc_row.wnm-pattern--linkcards > .wpb_column > .vc_column-inner > .wpb_wrapper > .vc_inner { grid-row: 4; }
  .vc_row.wnm-pattern--linkcards > .wpb_column > .vc_column-inner > .wpb_wrapper > .wnm-h--eyebrow { grid-column: 1 / span 5; grid-row: 2; }
  .vc_row.wnm-pattern--linkcards > .wpb_column > .vc_column-inner > .wpb_wrapper > h2.vc_custom_heading { grid-column: 1 / span 5; grid-row: 3; max-width: 11.2em; margin-bottom: 0; }
  .vc_row.wnm-pattern--linkcards > .wpb_column > .vc_column-inner > .wpb_wrapper > .wpb_text_column { grid-column: 7 / span 6; grid-row: 3; align-self: end; margin-bottom: 0; }
}
/* One heading/lead-to-card gap; do not add a heading margin to the inner row's gap. */
.vc_row.wnm-pattern--linkcards > .wpb_column > .vc_column-inner > .wpb_wrapper > :is(h2.vc_custom_heading, .wpb_text_column):has(+ .vc_inner) { margin-bottom: 0; }
/* Openings (#191). Two spacings only, keyed by position: a page without a sub-nav opens with the tucked sheet (120 / 81px
   from the sheet edge to the first heading or box), the first row after a sub-nav opens 115 / 84px below the bar. Both are
   today's padding plus the 36px the section-head rule and its margin used to add. */
.vc_row.wpb_row.wnm-shape--tuck.wnm-pattern--entry { padding-top: calc(var(--section-y) * 0.75 + var(--s-5) + var(--s-3)); }
.vc_row.wpb_row:has(> .wpb_column .subnav) + .vc_row.wpb_row { padding-top: calc(clamp(48px, 36px + 3vw, 88px) + var(--s-5) + var(--s-3)); }
/* Routing and Visit keep the demo's section padding (72–128px), not the roomy editorial one */
.vc_row.wpb_row:is(.wnm-pattern--linkcards, #visit) { padding-bottom: var(--section-y); }
@media (max-width: 599px) { .vc_row.wpb_row:is(.wnm-pattern--taskcards, #office-message) { padding-bottom: 32px; } } /* top: the opening rules (#191) */

/* ---- 14. Give (PORCH-WO-14v) ---------------------------------------------------------------------------- */
/* Give reuses Contact's anchors (:is(.wnm-pattern--taskcards, #office-message), .wnm-pattern--linkcards, #visit) and adds only what a fact card needs. */
/* The light card beside the dark one: the same Who / For / Where rows, on light hairlines; its button sits at the foot */
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:last-child:has(dl) > .vc_column-inner > .wpb_wrapper { display: flex; flex-direction: column; }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:last-child:has(dl) .wpb_text_column dl { border-block-end-color: var(--color-border); }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:last-child:has(dl) .wpb_text_column :is(dt, dd) { border-block-start-color: var(--color-border); }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:last-child:has(dl) .wpb_text_column dt { color: var(--color-text-2); }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:last-child:has(dl) .vc_custom_heading:is(h2) { margin-bottom: var(--s-5); }
.vc_row:is(.wnm-pattern--taskcards, #office-message) > .wpb_column:last-child:has(dl) .vc_btn3-container { margin-top: auto; }
.vc_row:is(.wnm-pattern--taskcards, #office-message) .wpb_text_column > p:first-child:has(+ dl) { margin: 0; max-width: var(--measure-body); }
/* Exactly four Routing cards (Realm), or eight (Girls Ministry, 14az GI2: one grid of 4 + 4 on hairlines, never two boxes with a gap):
   four across on a desktop; a card with one paragraph is plain text, not a "who to contact" line */
@media (min-width: 1024px) {
  .vc_row.wnm-pattern--linkcards .vc_inner:is(:has(> .wpb_column:nth-child(4):last-child), :has(> .wpb_column:nth-child(8):last-child)) > .wpb_column { flex-basis: calc(25% - 1px); }
}
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:only-child { display: block; min-height: 0; margin: 0; padding: 0; border: 0; color: inherit; font: inherit; }
@media (max-width: 1023px) { .vc_row.wnm-pattern--linkcards .vc_inner:is(:has(> .wpb_column:nth-child(4):last-child), :has(> .wpb_column:nth-child(8):last-child)) > .wpb_column + .wpb_column { margin-top: 0; } }
/* A Routing card whose last line is a link (a ministry page's "Visit page", a "#" jump, a contact): the whole card is the link (the anchor's ::before
   stretches over it), the name at the left and the circle arrow at the far right, the same as every link card (14bc; the circle is in base.css).
   Hover = the circle's hover + a quiet tint; focus draws the ring around the card. A last line that is plain text keeps the name only, no circle. */
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:last-child > a { flex: 1; display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); color: inherit; text-decoration: none; }
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:last-child > a::before { content: ""; position: absolute; inset: 0; }
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:last-child > a:focus-visible { outline: none; }
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:last-child > a:focus-visible::before { outline: 2px solid var(--focus, var(--color-focus)); outline-offset: -4px; }
.vc_row.wnm-pattern--linkcards .vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper:has(.wpb_text_column p:last-child > a:is(:hover, :focus-visible)) { background: var(--c-white); }
/* Visit row with a facts card beside the copy: the dark "Questions" card (phone, email, office) */
.vc_row#visit:has(dl) .wpb_column:first-child .vc_btn3-container { margin-right: var(--s-3); }
.vc_row#visit > .wpb_column:last-child:has(dl) > .vc_column-inner > .wpb_wrapper {
  padding: clamp(var(--s-6), 4vw, var(--s-8)); border-radius: var(--r-xl); background: var(--color-surface-3); color: var(--color-on-dark);
  --eyebrow: var(--c-green); --focus: var(--color-accent);
}
.vc_row#visit > .wpb_column:last-child:has(dl) .vc_custom_heading { color: var(--color-on-dark); }
.vc_row#visit > .wpb_column:last-child:has(dl) .vc_custom_heading.wnm-h--eyebrow { color: var(--c-green); margin-bottom: var(--s-4); }
.vc_row#visit > .wpb_column:last-child:has(dl) .wpb_text_column dl { margin: var(--s-6) 0 0; display: grid; grid-template-columns: minmax(90px, 0.3fr) 1fr; column-gap: var(--s-4); border-block-end: 1px solid var(--color-border-on-dark); }
.vc_row#visit > .wpb_column:last-child:has(dl) .wpb_text_column :is(dt, dd) { margin: 0; padding-block: var(--s-4); border-block-start: 1px solid var(--color-border-on-dark); }
.vc_row#visit > .wpb_column:last-child:has(dl) .wpb_text_column dt { font: 500 var(--fs-eyebrow)/1.5 var(--font-body); text-transform: uppercase; letter-spacing: var(--tr-eyebrow); color: var(--color-on-dark-muted); }
.vc_row#visit > .wpb_column:last-child:has(dl) .wpb_text_column a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1023px) { .vc_row#visit > .wpb_column:last-child:has(dl) { margin-top: var(--s-5); } }
@media (max-width: 767px) {
  .vc_row#visit > .wpb_column:last-child:has(dl) .wpb_text_column dl { grid-template-columns: 1fr; }
  .vc_row#visit > .wpb_column:last-child:has(dl) .wpb_text_column dt { padding-bottom: 0; }
  .vc_row#visit > .wpb_column:last-child:has(dl) .wpb_text_column dd { border-block-start: 0; padding-top: var(--s-2); }
  .vc_row#visit:has(dl) .wpb_column:first-child .vc_btn3-container { display: block; margin-right: 0; }
}
/* Give's hero photo, row 51 (desktop point is the row's own Design Options value; this is the phone) */
@media (max-width: 767px) { .vc_row.vc_custom_1790000000051 { background-position: 56% 40% !important; } }

/* 31c-1: the Resources page hero's phone focal point (the entry-resources photo) */
@media (max-width: 767px) { .vc_row.vc_custom_1790000000080 { background-position: 60% 40% !important; } }

/* 33b: the Camps page hero's phone focal point (the campfire photo) */
@media (max-width: 767px) { .vc_row.vc_custom_1790000000090 { background-position: 62% 45% !important; } }

/* 14ai: phone focal points of the Ministerial Training, Credentials and Next Level heroes (placeholder site photos until the client sends their own) */
@media (max-width: 767px) { .vc_row.vc_custom_1790000000101 { background-position: 60% 40% !important; } }
@media (max-width: 767px) { .vc_row.vc_custom_1790000000102 { background-position: 50% 30% !important; } }
@media (max-width: 767px) { .vc_row.vc_custom_1790000000103 { background-position: 50% 40% !important; } }

/* 14ba: each Mission heading needs a full-height containing column for sticky travel.
   Keep the inner wrapper at its natural height; other sticky photo columns are unchanged. */
@media (min-width: 1024px) {
  .vc_row.vc_inner.wnm-mission-item > .wpb_column.wnm-col--sticky { align-self: stretch; }
}

/* 14be: shared CTA layout; anchors are navigation only. Palette is independent. */
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel { margin-bottom: var(--cta-gap); }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel .wnm-h--eyebrow { color: var(--c-green-light); margin-bottom: 14px; }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-palette--national .wnm-h--eyebrow { color: var(--c-national); }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel .wpb_text_column.wnm-t--lead { color: var(--color-on-dark-muted); }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel h2.vc_custom_heading:not(.wnm-h--eyebrow):has(+ .wnm-t--lead) { max-width: 12em; margin-bottom: 20px; }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel .wpb_column:first-child > .vc_column-inner { padding-right: clamp(0px, 3vw, 40px); }
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel .wpb_column:last-child .vc_custom_heading:not(.wnm-h--eyebrow) { margin-block: 18px 30px; overflow-wrap: anywhere; max-width: none; }
/* Preserve the existing compact statement bar without an anchor selector. */
.vc_row.wpb_row.wnm-shape--inset.wnm-pattern--cta-panel.wnm-cta--compact { margin-bottom: clamp(32px, 22px + 3vw, 64px); }
@media (max-width: 1023px) { .vc_row.wnm-shape--inset.wnm-pattern--cta-panel .wpb_column:first-child > .vc_column-inner { padding-right: 15px; } }
/* The two link-card implementations share exactly one type contract. Footer type stays as before. */
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:not(:last-child),
.vc_row.wnm-pattern--linkcards .vc_inner .wpb_text_column p:only-child { font-family: var(--linkcard-desc-font); font-size: var(--linkcard-desc-size); line-height: var(--linkcard-desc-leading); color: var(--linkcard-desc-color); }

/* Beliefs retains its existing compact statement and link-list column measure. */
.vc_row.wnm-shape--inset.wnm-pattern--cta-panel:is(.wnm-cta--compact, .wnm-cta--links) .wpb_column:first-child > .vc_column-inner { padding-right: 15px; }

/* 14bf: contact pattern is shared. ID aliases retain existing ministry content without reseeding it. */
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:first-child > .vc_column-inner { padding-right: clamp(0px, 3vw, 40px); }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:last-child > .vc_column-inner > .wpb_wrapper {
  padding: clamp(24px, 3vw, 44px);
  border: 1px solid var(--color-border-on-dark); border-radius: var(--r-md);
  background: var(--color-surface-3);
}
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:last-child .vc_btn3-container { margin-bottom: 0; }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:last-child > .vc_column-inner > .wpb_wrapper {
  display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; align-items: center;
}
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:last-child > .vc_column-inner > .wpb_wrapper > * { grid-column: 1 / -1; margin: 0; }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:last-child > .vc_column-inner > .wpb_wrapper > .wnm-h--eyebrow { margin-bottom: var(--s-5); }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:last-child > .vc_column-inner > .wpb_wrapper > .wpb_text_column:has(.ministry-a__avatar) { grid-column: 1; grid-row: 2 / span 2; }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:last-child > .vc_column-inner > .wpb_wrapper > .vc_custom_heading:not(.wnm-h--eyebrow) { grid-column: 2; grid-row: 2; font: 600 22px/1.2 var(--font-display); align-self: end; max-width: none; }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:last-child > .vc_column-inner > .wpb_wrapper > .wpb_text_column:has(.ministry-a__avatar) + .vc_custom_heading + .wpb_text_column { grid-column: 2; grid-row: 3; align-self: start; color: var(--color-on-dark-muted); }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:last-child > .vc_column-inner > .wpb_wrapper > .wpb_text_column:last-child { margin-top: 28px; }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) p.ministry-a__avatar {
  width: 68px; height: 68px; display: grid; place-items: center; margin: 0; border-radius: 50%;
  background: var(--c-sage-deep); color: var(--c-white); font: 600 28px/1 var(--font-display);
}
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) dl { margin: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) dt, .vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) dd { margin: 0; padding-block: 15px; border-top: 1px solid var(--color-border-on-dark); }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) dd { padding-left: var(--s-4); }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) dt { color: var(--color-on-dark-muted); }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) dd { text-align: right; overflow-wrap: anywhere; }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) dd a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1023px) {
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:first-child > .vc_column-inner { padding-right: 15px; }

}
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wpb_column:last-child > .vc_column-inner > .wpb_wrapper > .vc_custom_heading:not(.wnm-h--eyebrow) { letter-spacing: normal; }

.vc_row.wnm-shape--inset.wnm-pattern--get-in-touch { margin-bottom: var(--cta-gap); }
.vc_row.wnm-shape--inset.wnm-pattern--get-in-touch .wnm-h--eyebrow { color: var(--c-green-light); margin-bottom: 14px; }
.vc_row.wnm-shape--inset.wnm-pattern--get-in-touch h2.vc_custom_heading:has(+ .wnm-t--lead) { margin-bottom: 20px; }
/* Each rich-text contact block uses the ministry avatar/name/facts contract. Two contacts stay two separate cards. */
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact).wnm-pattern--get-in-touch > .wpb_column:last-child > .vc_column-inner > .wpb_wrapper {
  display: block; padding: 0; border: 0; background: transparent;
}
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact).wnm-pattern--get-in-touch > .wpb_column:last-child > .vc_column-inner > .wpb_wrapper > .wpb_text_column { margin: 0; }
.vc_row.wnm-pattern--get-in-touch .wpb_text_column > .wpb_wrapper { max-width: none; }
.vc_row .wnm-contact-card {
  display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; align-items: center;
  padding: clamp(24px, 3vw, 44px); border: 1px solid var(--color-border-on-dark); border-radius: var(--r-md); background: var(--color-surface-3);
}
.vc_row .wnm-contact-card + .wnm-contact-card { margin-top: var(--s-5); }
/* WNM-GLASS-2026-10-03 (DECISIONS #194): a card that sits on an Aurora panel is glass, never a solid box: the panel's light shows
   through, blurred (the header/sub-nav glass values). Covers the CTA-panel destination card (Go Deeper, National program, Beliefs),
   the ministry Get in touch coordinator card and every contact card. --glass-tint is the one dial. Text stays AA: the Aurora light is
   capped for text on the bare panel, and the tint only darkens it. No backdrop-filter: the solid card. */
.vc_row.wnm-shape--inset { --glass-tint: 60%; }
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .vc_row.wnm-shape--inset.wnm-pattern--cta-panel .wpb_column:last-child > .vc_column-inner > .wpb_wrapper,
  .vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--contact):not(.wnm-pattern--get-in-touch) .wpb_column:last-child > .vc_column-inner > .wpb_wrapper,
  .vc_row.wnm-shape--inset .wnm-contact-card {
    background: color-mix(in srgb, var(--color-surface-3) var(--glass-tint), transparent);
    -webkit-backdrop-filter: blur(16px) saturate(1.2); backdrop-filter: blur(16px) saturate(1.2);
  }
}
.vc_row .wnm-contact-card > p.ministry-a__avatar { grid-column: 1; grid-row: 1 / span 2; }
.vc_row .wnm-contact-card > h3 { grid-column: 2; grid-row: 1; margin: 0; font: 600 22px/1.2 var(--font-display); letter-spacing: normal; color: var(--color-on-dark); }
.vc_row .wnm-contact-card > .wnm-contact-role { grid-column: 2; grid-row: 2; margin: var(--s-1) 0 0; font-size: var(--fs-small); color: var(--color-on-dark-muted); }
.vc_row.wnm-shape--inset:is(#get-in-touch, .wnm-pattern--get-in-touch, .wnm-pattern--contact) .wnm-contact-card > dl.wnm-contact-facts { grid-column: 1 / -1; margin-top: 28px; }
.vc_row.wnm-pattern--get-in-touch .wnm-contact-address { margin: var(--s-5) 0 0; font-size: var(--fs-small); }
/* PORCH-WO-14bl: open fact pairs and the existing camp tag look. */
.vc_row .wpb_text_column dl.wnm-facts { margin: var(--s-7) 0; display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--s-4); align-items: baseline; }
.vc_row .wpb_text_column dl.wnm-facts :is(dt, dd) { margin: 0; padding: 0; border: 0; }
.vc_row .wpb_text_column dl.wnm-facts dt { font: 500 var(--fs-eyebrow)/1.5 var(--font-body); text-transform: uppercase; letter-spacing: var(--tr-eyebrow); color: var(--color-text-2); }
.vc_row .wnm-tag { display: inline-flex; align-items: center; padding: var(--tag-pad-y) var(--tag-pad-x); border: 1px solid var(--color-border); border-radius: var(--r-pill); background: var(--c-paper); font: 500 var(--fs-tag)/var(--lh-tag) var(--font-body); letter-spacing: var(--tr-tag); text-transform: uppercase; color: var(--c-ink); }
.vc_row .wnm-tag--where { background: var(--c-ink); border-color: var(--c-ink); color: var(--c-light); }
.vc_row .wnm-tags { display: flex; flex-wrap: wrap; gap: var(--s-2); }
/* Semantic dot lists: the first line owns the marker; long items wrap under their text. */
.vc_row .wpb_text_column :is(ul, ol).wnm-dot-list { margin: 0; padding: 0; list-style: none; font-size: var(--fs-body); line-height: var(--lh-body); }
.vc_row .wpb_text_column .wnm-dot-list > li { position: relative; margin: 0; padding: 0 0 0 calc(var(--s-3) + var(--s-3) / 2); border: 0; }
.vc_row .wpb_text_column .wnm-dot-list > li + li { margin-top: var(--s-3); }
.vc_row .wpb_text_column .wnm-dot-list > li::before { content: ""; position: absolute; left: 0; top: calc(0.5em * var(--lh-body) - var(--s-3) / 4); width: calc(var(--s-3) / 2); height: calc(var(--s-3) / 2); border-radius: var(--r-pill); background: var(--color-accent); }
.vc_row .wpb_text_column .wnm-list-intro + .wnm-dot-list { margin-top: var(--s-3); }
/* The number and heading share a line; the path connects only consecutive steps. */
.vc_row .wpb_text_column ol.wnm-steps { counter-reset: wnm-step; list-style: none; padding: 0; margin: 0; font-size: var(--fs-linklist); line-height: var(--lh-body); }
.vc_row .wpb_text_column .wnm-steps > li { position: relative; counter-increment: wnm-step; padding: 0 0 0 var(--s-7); margin: 0; border: 0; }
.vc_row .wpb_text_column .wnm-steps > li:not(:last-child) { margin-bottom: var(--s-6); }
.vc_row .wpb_text_column .wnm-steps > li::before { font-size: var(--fs-body); content: counter(wnm-step); position: absolute; left: 0; top: 0; width: var(--circle-sm); height: var(--circle-sm); display: grid; place-items: center; border-radius: var(--r-pill); font-weight: 600; background: var(--color-accent); color: var(--color-on-accent); z-index: 1; }
.vc_row .wpb_text_column .wnm-steps > li:not(:last-child)::after { content: ""; position: absolute; left: calc(var(--circle-sm) / 2); top: var(--circle-sm); width: 1px; height: calc(100% + var(--s-6) - var(--circle-sm)); background: var(--color-border); }
.vc_row .wpb_text_column .wnm-steps > li > strong:first-child { font-size: var(--fs-body); display: block; line-height: var(--circle-sm); margin-bottom: var(--s-2); }
/* Coursework is its own stock Text Block; subgrid aligns its row across open columns. */
.vc_row .wnm-spec p { margin: 0; }
.vc_row .wnm-spec .wnm-spec__label { font: 500 var(--fs-eyebrow)/1.33 var(--font-body); letter-spacing: var(--tr-eyebrow); text-transform: uppercase; color: var(--eyebrow, var(--c-forest)); }
.vc_row .wnm-spec .wnm-spec__value { margin-top: var(--s-2); font: 600 var(--fs-h2)/var(--lh-h2) var(--font-display); letter-spacing: var(--tr-heading); }
.vc_row .wnm-spec .wnm-spec__note { margin-top: var(--s-4); font-size: var(--fs-small); line-height: var(--lh-small); color: var(--color-type-small); }
@media (min-width: 1024px) {
  .vc_row.wpb_row:has(> .wnm-sticky-intro) { align-items: stretch; }
  .vc_row .wnm-sticky-intro > .vc_column-inner { position: sticky; top: calc(var(--header-float-h) + var(--s-6) + var(--wp-admin--admin-bar--height, 0px)); }
  .vc_row.wnm-pattern--levels .vc_row.vc_inner { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(4, auto); }
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column { display: grid; grid-template-rows: subgrid; grid-row: span 4; width: auto; margin-top: 0; }
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner,
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper { display: contents; }
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper > * { margin-inline: 15px; }
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner::before,
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner::after,
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper::before,
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper::after { display: none; }
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper > :nth-child(1) { grid-row: 1; }
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper > :nth-child(2) { grid-row: 2; }
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper > :nth-child(3) { grid-row: 3; }
  .vc_row.wnm-pattern--levels .vc_row.vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper > :nth-child(4) { grid-row: 4; }
}
.vc_row.wnm-pattern--editorial h2.vc_custom_heading:not(.wnm-h--eyebrow) { margin-bottom: 20px; }
@media (min-width: 1024px) {
  .vc_row.wpb_row:has(> .wnm-note-panel) { align-items: stretch; }
  .vc_row.wpb_row > .wnm-note-panel > .vc_column-inner,
  .vc_row.wpb_row > .wnm-note-panel > .vc_column-inner > .wpb_wrapper { height: 100%; }
}
.vc_row .wnm-note-panel .wpb_text_column { font-size: var(--fs-small); line-height: var(--lh-small); }
.vc_row .wnm-note-panel > .vc_column-inner > .wpb_wrapper { padding: clamp(var(--s-6), 4vw, var(--s-8)); border-radius: var(--r-xl); background: var(--color-surface-2); }
.vc_row.wnm-pattern--levels .vc_row.vc_inner { margin-top: var(--s-7); }
.vc_row.wnm-pattern--sessions .vc_row.vc_inner { margin-top: var(--s-7); }
.vc_row.wnm-pattern--sessions .vc_row.vc_inner h3.vc_custom_heading { font: 600 var(--fs-h3)/var(--lh-h3) var(--font-display); margin-bottom: 20px; letter-spacing: var(--tr-title); }
/* Reusable flow contracts: separate open blocks, but keep a continued dot list together. */
.vc_row .wpb_wrapper > .vc_btn3-container:has(+ .vc_row.vc_inner.wnm-list-columns) { margin-bottom: 0; }
.vc_row .wpb_wrapper > .vc_btn3-container + .vc_row.vc_inner.wnm-list-columns { margin-top: var(--s-7); }
@media (max-width: 1023px) {
  .vc_row:is(.wnm-pattern--levels, .wnm-pattern--sessions) .vc_inner > .wpb_column + .wpb_column { margin-top: var(--s-7); }
}
/* Balanced lists/session columns keep a 6+6 reading order, and become one column on phones. */
@media (min-width: 600px) {
  .vc_row.wpb_row .vc_row.wpb_row.wnm-list-columns > .wpb_column { width: 50%; flex: 0 0 50%; margin-top: 0; }
}
@media (max-width: 599px) {
  .vc_row.wpb_row .vc_row.wpb_row.wnm-list-columns > .wpb_column { width: 100%; flex: 0 0 100%; }
  .vc_row.wpb_row .vc_row.wpb_row.wnm-list-columns:not(:has(h3.vc_custom_heading)) > .wpb_column + .wpb_column { margin-top: var(--s-3); }
  .vc_row .wpb_text_column dl.wnm-facts { grid-template-columns: 1fr; }
  .vc_row .wpb_text_column dl.wnm-facts dt { padding-bottom: 0; }
  .vc_row .wpb_text_column dl.wnm-facts dd { padding-top: 0; }
  .vc_row .wpb_text_column dl.wnm-facts { row-gap: var(--s-2); }
  .vc_row .wpb_text_column dl.wnm-facts dt:not(:first-child) { margin-top: var(--s-2); }
}

/* Content columns keep their own hairlines; do not inherit the wider Mission & Vision closing rule. */
.vc_row:is(.wnm-pattern--levels, .wnm-pattern--sessions):not(.wnm-pattern--linkcards):has(.vc_row.vc_inner h3.vc_custom_heading:not([class*="wnm-h--"])) .vc_row.vc_inner:last-child { border-bottom: 0; padding-bottom: 0; }

/* ---- 14bq (#193): Explore the Network. The "directory" pattern: the original Explore design's head gap, this page only ---- */
.vc_row.wpb_row.wnm-pattern--directory .wpb_wrapper > h2.vc_custom_heading:not(.wnm-h--eyebrow) { margin-bottom: clamp(32px, 24px + 2vw, 56px); }
.vc_row.wpb_row.wnm-pattern--directory .vc_row.vc_inner:not(:last-child) { margin-bottom: clamp(32px, 24px + 2vw, 56px); }
.vc_row.wpb_row.wnm-pattern--directory .vc_row.vc_inner .wpb_wrapper > h2.vc_custom_heading { margin-bottom: 0; }
/* the row after the tucked first row starts flush, like every plain pair: one section gap between sections */
.vc_row.wpb_row.wnm-pattern--directory.wnm-shape--tuck + .vc_row.wpb_row.wnm-pattern--directory { padding-top: 0; }
/* a second row of cards sits one card gap under the first, at every width */
.vc_row.wpb_row.wnm-pattern--directory:has(+ .vc_row.wnm-space--joined) { padding-bottom: 0; }
.vc_row.wpb_row.wnm-pattern--directory.wnm-space--joined { padding-top: var(--s-4); }
/* Link cards (Text Block style): one column of the site's link card (14bc), name left, circle arrow right (base.css) */
.vc_row .wpb_text_column.wnm-t--links ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; margin: 0; padding: 0; list-style: none; border: 1px solid var(--color-border); border-radius: var(--r-lg); overflow: hidden; background: var(--color-border); }
.vc_row .wpb_text_column.wnm-t--links li { margin: 0; }
.vc_row .wpb_text_column.wnm-t--links a { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 100%; padding: var(--linkcard-pad-y) var(--linkcard-pad-x); background: var(--color-surface-2); color: var(--c-ink); font: 600 clamp(18px, 2vw, 26px)/1.2 var(--font-display); text-decoration: none; transition: background-color var(--dur-base) var(--ease-out); }
.vc_row .wpb_text_column.wnm-t--links a:hover, .vc_row .wpb_text_column.wnm-t--links a:focus-visible { background: var(--c-white); }
.vc_row .wpb_text_column.wnm-t--links a:focus-visible { outline: 2px solid var(--focus, var(--color-focus)); outline-offset: -4px; }
@media (max-width: 1023px) { .vc_row.wnm-pattern--directory > .wpb_column + .wpb_column { margin-top: var(--section-y); } }

/* MOBILE-SPACING-2026-10-05: semantic row classes keep the phone rhythm independent
   of whether WPBakery places copy/actions in one column or two. Desktop/tablet are unchanged. */
@media (max-width: 599px) {
  .vc_row.wpb_row.wnm-shape--inset.wnm-pattern--invitation > .wpb_column:nth-child(1 of .wpb_column) > .vc_column-inner > .wpb_wrapper > .wnm-h--eyebrow {
    margin-bottom: var(--invitation-eyebrow-gap) !important; /* overrides the legacy ministry ID rule, only within this phone contract */
  }
  .vc_row.wpb_row.wnm-shape--inset.wnm-pattern--invitation > .wpb_column:nth-child(1 of .wpb_column) > .vc_column-inner > .wpb_wrapper > :is(h2, h3).vc_custom_heading:has(+ .wpb_text_column) {
    margin-bottom: var(--invitation-heading-gap) !important;
  }
  .vc_row.wpb_row.wnm-shape--inset.wnm-pattern--invitation > .wpb_column:nth-child(1 of .wpb_column) > .vc_column-inner > .wpb_wrapper > .wpb_text_column {
    margin-bottom: var(--invitation-action-gap) !important;
  }
  /* The copy already owns the action gap; a buttons-only next column adds none. */
  .vc_row.wpb_row.wnm-shape--inset.wnm-pattern--invitation > .wpb_column + .wpb_column:has(> .vc_column-inner > .wpb_wrapper > .vc_btn3-container:first-child) {
    margin-top: 0;
  }
  .vc_row.wpb_row.wnm-shape--inset.wnm-pattern--invitation .vc_btn3-container:has(+ .vc_btn3-container) {
    margin-bottom: var(--invitation-button-gap) !important;
  }

  .vc_row.wpb_row.wnm-pattern--taskcards .wpb_text_column > dl:first-child,
  .vc_row.wpb_row.wnm-pattern--taskcards .wpb_text_column > .wpb_wrapper > dl:first-child { margin-top: 0 !important; }

  /* Task cards: block flow prevents a flex gap being added to element margins. */
  .vc_row.wpb_row.wnm-pattern--taskcards > .wpb_column:nth-child(1 of .wpb_column) > .vc_column-inner > .wpb_wrapper {
    display: block !important;
  }
  .vc_row.wpb_row.wnm-pattern--taskcards > .wpb_column > .vc_column-inner > .wpb_wrapper > .wnm-h--eyebrow {
    margin-bottom: var(--invitation-eyebrow-gap) !important;
  }
  .vc_row.wpb_row.wnm-pattern--taskcards > .wpb_column > .vc_column-inner > .wpb_wrapper > h2.vc_custom_heading {
    margin-bottom: var(--invitation-heading-gap) !important;
  }
  .vc_row.wpb_row.wnm-pattern--taskcards > .wpb_column > .vc_column-inner > .wpb_wrapper > .wpb_text_column {
    margin-bottom: var(--invitation-action-gap) !important;
  }
  .vc_row.wpb_row.wnm-pattern--taskcards > .wpb_column:nth-child(1 of .wpb_column) > .vc_column-inner > .wpb_wrapper > .vc_btn3-container:has(+ .vc_btn3-container) {
    margin-bottom: var(--invitation-button-gap) !important;
  }
}

/* NETWORK-WOMEN-2026-10-06: the Network Women page hero's phone focal point (she sits at the right of the banner) */
@media (max-width: 767px) { .vc_row.vc_custom_1790000000115 { background-position: 78% 40% !important; } }

/* Design type roles; filled rows keep Core's readable on-colour. */
.vc_row h1.vc_custom_heading, .vc_row .vc_custom_heading.wnm-h--display { color: var(--wnm-heading-color, var(--color-type-display)); }
.vc_row h2.vc_custom_heading { color: var(--wnm-heading-color, var(--color-type-h2)); }
.vc_row :is(h3,h4).vc_custom_heading { color: var(--wnm-heading-color, var(--color-type-h3)); }
