/* Badges never wrap */
.elementor .s-ccf-badge-here { white-space: nowrap; }
/* Footer strip brand: same divider gap */
.elementor .s-ccf-brand-tag { margin-inline-start: 10px !important; }
/* Footer network: content-width cards packed left beside the family label
   (container was space-between, pushing the list to the far right). */
.elementor .s-ccf-network { justify-content: flex-start !important; }
.elementor .s-ccf-netlist { flex: 1 1 auto !important; justify-content: flex-start !important; }
.elementor .s-ccf-card-comm, .elementor .s-ccf-card-church, .elementor .s-ccf-card-school { flex: 0 0 auto !important; }
/* Network cards: stack label over description (match design + the comm card) */
.elementor .s-ccf-lbl-church, .elementor .s-ccf-lbl-school { display: block !important; }
.elementor .s-ccf-blurb-church, .elementor .s-ccf-blurb-school { display: block !important; margin-top: 1px !important; }
/* Footer network: "You're here" as a PILL inline with the label (Nathan Jul-21:
   pill w/ contrasting bg, NOT an eyebrow). Tighter line-heights so cards aren't
   tall (body line-height 1.6 = 25.6px was inherited onto every line). Card bg
   lifts on hover. */
.elementor .s-ccf-row-comm { flex-direction: row !important; align-items: center !important; gap: 7px !important; flex-wrap: nowrap !important; }
.elementor .s-ccf-lbl-comm, .elementor .s-ccf-lbl-church, .elementor .s-ccf-lbl-school { line-height: 1.2 !important; }
.elementor .s-ccf-blurb-comm, .elementor .s-ccf-blurb-church, .elementor .s-ccf-blurb-school { line-height: 1.35 !important; }
.elementor .s-ccf-card-comm, .elementor .s-ccf-card-church, .elementor .s-ccf-card-school { transition: background .15s ease !important; }
.elementor .s-ccf-card-comm:hover, .elementor .s-ccf-card-church:hover, .elementor .s-ccf-card-school:hover { background: rgba(255,255,255,0.14) !important; }
/* Comm blurb must be block like church/school — as inline it inherited the
   parent's 25.6px line-height strut, adding a ~6px gap the other cards lacked. */
.elementor .s-ccf-blurb-comm { display: block !important; margin-top: 1px !important; }
/* Active/current site card (the one carrying the "You're here" pill) sits at the
   hover background permanently. `:has` keys off the badge so it auto-follows
   whichever site's template this is. */
.elementor .s-ccf-netlist > div:has(.s-ccf-badge-here) { background: rgba(255,255,255,0.14) !important; }
/* --- Pass 5 (Jul 21): line-height audit — same 25.6px-strut bloat found in the
   header site-switcher popover (rows were 134px, "Campus Rentals" wrapping) and
   the footer signup subtext. Tighten to design. --- */
.elementor .s-ccf-signup-sub { line-height: 1.45 !important; }
/* --- Pass 7 (Jul 21): switcher rows fill the panel + hover highlight on both
   dropdowns. Site rows were content-width (comm 256 vs church/school 282 —
   inconsistent, right gap) because each is wrapped in an atomic content-width
   <a>; force full width. Hover highlight was targeting `> div`/`.e-con` but the
   rows are `<a>`, so it never fired — retarget the rows/anchors. --- */
.elementor .s-bf-row-comm { width: 100% !important; inline-size: 100% !important; max-width: none !important; }
.elementor .s-bf-row-comm, .elementor .s-bf-row-church, .elementor .s-bf-row-school { border-radius: 10px !important; transition: background .12s ease !important; }
.elementor .s-bf-row-church:hover, .elementor .s-bf-row-school:hover { background: #F4F7FA !important; }
/* ===== Sticky header/footer + shadows (network-wide) =====
   position:sticky must live on the location wrapper (its parent = body, spans the
   page); on the inner header the containing block is only header-height so it can't
   hold. Applies to Community + Preschool so both behave the same. */
.elementor-location-header { position: sticky !important; top: 0 !important; z-index: 1000 !important; box-shadow: 0 2px 12px rgba(0,59,92,.07) !important; }
.elementor-location-footer { box-shadow: 0 -2px 14px rgba(0,59,92,.07) !important; }
/* ===== School (Preschool) footer #11 — self-contained psf-* styling (navy). ===== */
.elementor .psf { background: #003B5C !important; color: #E4EEF5 !important; }
/* strip */
.elementor .psf-strip { background: #34657F !important; }
.elementor .psf-strip-in { max-width: 1200px !important; margin: 0 auto !important; padding: 18px 24px !important; display: flex !important; flex-direction: row !important; justify-content: space-between !important; align-items: center !important; flex-wrap: wrap !important; gap: 16px !important; }
.elementor .psf-brand { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 10px !important; }
.elementor .psf-contact { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 24px !important; flex-wrap: wrap !important; }
.elementor .psf-phone, .elementor .psf-email { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 7px !important; text-decoration: none !important; }
.elementor .psf-brand, .elementor .psf-contact, .elementor .psf-phone, .elementor .psf-email, .elementor .psf-legal { width: auto !important; flex: 0 0 auto !important; }
.elementor .psf-cic { inline-size: 16px !important; width: 16px !important; min-width: 16px !important; height: 16px !important; }
/* body */
.elementor .psf-body { max-width: 1200px !important; margin: 0 auto !important; padding: 40px 24px !important; display: flex !important; flex-direction: row !important; gap: 32px !important; flex-wrap: wrap !important; align-items: flex-start !important; }
.elementor .psf-signup { flex: 1 1 260px !important; max-width: 320px !important; }
.elementor .psf-col { flex: 1 1 150px !important; min-width: 140px !important; display: flex !important; flex-direction: column !important; }
.elementor .psf-links { display: flex !important; flex-direction: column !important; gap: 8px !important; }
.elementor .psf-clist { display: flex !important; flex-direction: column !important; gap: 12px !important; }
.elementor .psf-crow { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 8px !important; }
/* network */
.elementor .psf-net { max-width: 1200px !important; margin: 0 auto !important; padding: 20px 24px !important; border-top: 1px solid rgba(255,255,255,.12) !important; display: flex !important; flex-direction: row !important; align-items: center !important; gap: 24px !important; flex-wrap: wrap !important; }
.elementor .psf-netlist { display: flex !important; flex-direction: row !important; gap: 16px !important; flex: 1 1 0 !important; width: auto !important; min-width: 0 !important; flex-wrap: wrap !important; justify-content: flex-start !important; }
.elementor .psf-netlist > div:has(.psf-badge) { background: rgba(255,255,255,.14) !important; }
.elementor .psf-cicon { display: none !important; }
.elementor .psf-chip::after { content: "" !important; display: block !important; flex: none !important; width: 18px !important; height: 18px !important; background-color: #A4C8E1 !important; -webkit-mask-position: center !important; mask-position: center !important; -webkit-mask-size: contain !important; mask-size: contain !important; -webkit-mask-repeat: no-repeat !important; mask-repeat: no-repeat !important; }
.elementor .elementor-element-psf-chip-school::after { -webkit-mask-image: url("https://school.wcpc.church/wp-content/uploads/wcpc-icons/school-slate.svg") !important; mask-image: url("https://school.wcpc.church/wp-content/uploads/wcpc-icons/school-slate.svg") !important; }
.elementor .elementor-element-psf-chip-church::after { -webkit-mask-image: url("https://school.wcpc.church/wp-content/uploads/wcpc-icons/church-slate.svg") !important; mask-image: url("https://school.wcpc.church/wp-content/uploads/wcpc-icons/church-slate.svg") !important; }
.elementor .elementor-element-psf-chip-comm::after { -webkit-mask-image: url("https://school.wcpc.church/wp-content/uploads/wcpc-icons/community-slate.svg") !important; mask-image: url("https://school.wcpc.church/wp-content/uploads/wcpc-icons/community-slate.svg") !important; }
.elementor .psf-ctxt { display: block !important; width: auto !important; flex: 0 1 auto !important; padding: 0 !important; }
.elementor .psf-crow2 { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 7px !important; padding: 0 !important; }
/* bar */
.elementor .psf-bar { border-top: 1px solid rgba(255,255,255,.12) !important; }
.elementor .psf-bar-in { max-width: 1200px !important; margin: 0 auto !important; padding: 16px 24px !important; display: flex !important; flex-direction: row !important; justify-content: space-between !important; align-items: center !important; flex-wrap: wrap !important; gap: 8px !important; }
.elementor .psf-legal { display: flex !important; flex-direction: row !important; gap: 16px !important; }
/* Footer network card icons: larger (atomic pins inline-size on the img). */
.elementor .s-ccf-ic-comm, .elementor .s-ccf-ic-church, .elementor .s-ccf-ic-school {
  inline-size: 18px !important; min-width: 18px !important; max-width: 18px !important;
  width: 18px !important; height: 18px !important; object-fit: contain !important;
}
.elementor-20066 .chlogo { inline-size:auto !important; width:auto !important; height:42px !important; }
.elementor .chbf-label { display:block !important; font-size:11px !important; font-weight:700 !important; letter-spacing:.08em !important; text-transform:uppercase !important; color:#5B6B78 !important; padding:8px 10px 6px !important; margin:0 !important; }
.elementor .chbf-row { display:flex !important; flex-direction:row !important; gap:11px !important; align-items:center !important; padding:8px !important; border-radius:10px !important; width:100% !important; text-decoration:none !important; }
.elementor .chbf-row-current { background:#F4F7FA !important; }
.elementor .chbf-chip { inline-size:36px !important; width:36px !important; min-width:36px !important; height:36px !important; border-radius:8px !important; background:#E8EEF3 !important; display:flex !important; align-items:center !important; justify-content:center !important; flex:0 0 auto !important; }
.elementor .chbf-ic { inline-size:18px !important; width:18px !important; min-width:18px !important; height:18px !important; object-fit:contain !important; }
.elementor .chbf-txt { display:flex !important; flex-direction:column !important; width:auto !important; padding:0 !important; }
.elementor .chbf-lblrow { display:flex !important; flex-direction:row !important; gap:7px !important; align-items:center !important; padding:0 !important; }
.elementor .chbf-lbl { display:block !important; font-size:14px !important; font-weight:700 !important; line-height:1.2 !important; color:#1F2933 !important; }
.elementor .chbf-blurb { display:block !important; font-size:12px !important; line-height:1.4 !important; color:#5B6B78 !important; margin-top:2px !important; }
.elementor .chbf-badge { display:inline-block !important; background:#A4C8E1 !important; color:#003B5C !important; font-size:9px !important; font-weight:700 !important; letter-spacing:.04em !important; text-transform:uppercase !important; border-radius:4px !important; padding:1px 6px !important; line-height:1.5 !important; white-space:nowrap !important; }
.elementor .chmega-hd { display:block !important; font-size:11px !important; letter-spacing:.06em !important; text-transform:uppercase !important; color:#34657F !important; font-weight:600 !important; margin:0 !important; }
.elementor-20066 .chmega-feature-eyebrow { position:relative !important; z-index:2 !important; display:block !important; color:#FFFFFF !important; font-size:11px !important; font-weight:700 !important; letter-spacing:.08em !important; text-transform:uppercase !important; margin:0 0 6px !important; }
.elementor-20066 .chmega-feature-h { position:relative !important; z-index:2 !important; display:block !important; color:#fff !important; font-size:19px !important; font-weight:600 !important; line-height:1.25 !important; margin:0 0 6px !important; }
.elementor-20066 .chmega-feature-p { position:relative !important; z-index:2 !important; display:block !important; color:#EAF2F8 !important; font-size:13px !important; line-height:1.45 !important; margin:0 0 16px !important; }
.elementor-20066 .chmega-feature-cta { position:relative !important; z-index:2 !important; align-self:flex-start !important; }
/* actions: search + CTA */
.elementor .chactions { display:flex !important; flex-direction:row !important; align-items:center !important; gap:10px !important; flex:0 0 auto !important; }
/* =====================================================================
   Church (blog 1) FOOTER #20067 — reuses network psf-* system (DRAFT).
   Only Church-specific additions scoped to .elementor-20067: social
   chips in the strip + the Elementor Pro newsletter form styling.
   ===================================================================== */
/* social chips in strip */
.elementor-20067 .chf-social { display:flex !important; flex-direction:row !important; gap:8px !important; align-items:center !important; margin-inline-start:8px !important; flex:0 0 auto !important; }
/* signup column a touch wider to fit the form */
.elementor-20067 .psf-signup { flex:1 1 300px !important; max-width:380px !important; }
/* Elementor Pro newsletter form on navy */
.elementor-20067 .chf-form .elementor-form { display:flex !important; flex-direction:column !important; gap:10px !important; }
.elementor-20067 .chf-form .elementor-field-group { margin:0 !important; padding:0 !important; }
.elementor-20067 .chf-form .elementor-field-textual { width:100% !important; background:#fff !important; border:1px solid #D5DEE5 !important; border-radius:10px !important; padding:11px 14px !important; color:#1F2933 !important; font-size:14px !important; }
.elementor-20067 .chf-form .elementor-field-textual::placeholder { color:#5B6B78 !important; }
.elementor-20067 .chf-form .elementor-field-subgroup { display:flex !important; flex-wrap:wrap !important; gap:8px 16px !important; }
.elementor-20067 .chf-form .elementor-field-subgroup .elementor-field-option label { color:#E4EEF5 !important; font-size:14px !important; }
.elementor-20067 .chf-form .elementor-field-type-checkbox .elementor-field-subgroup label { color:#E4EEF5 !important; }
.elementor-20067 .chf-form .elementor-button { background:#A4C8E1 !important; color:#003B5C !important; border-radius:10px !important; font-weight:600 !important; padding:11px 20px !important; margin-top:2px !important; }
.elementor-20067 .chf-form .elementor-button:hover { background:#fff !important; }
.elementor .chactions { width:auto !important; }
.elementor .chbf-txt { flex:1 1 auto !important; width:auto !important; min-width:0 !important; }
/* Church footer live-QA fixes (Jul 23): form class didn't attach (v3 widget ignores atomic classes) so
   re-scope via .elementor-form; and the psf chip masks were cross-origin to the
   school subdomain (blocked) -> repoint to church-hosted -slate icons. */
.elementor-20067 .elementor-form .elementor-field-subgroup { display:flex !important; flex-wrap:wrap !important; gap:8px 18px !important; }
.elementor-20067 .elementor-form .elementor-field-subgroup .elementor-field-option label, .elementor-20067 .elementor-form .elementor-field-type-checkbox label { color:#E4EEF5 !important; font-size:14px !important; }
.elementor-20067 .elementor-form .elementor-field-textual { background:#fff !important; border:1px solid #D5DEE5 !important; border-radius:10px !important; padding:11px 14px !important; color:#1F2933 !important; }
.elementor-20067 .elementor-element-psf-chip-church::after { -webkit-mask-image:url('https://wcpc.church/wp-content/uploads/wcpc-icons/church-slate.svg') !important; mask-image:url('https://wcpc.church/wp-content/uploads/wcpc-icons/church-slate.svg') !important; }
.elementor-20067 .elementor-element-psf-chip-comm::after { -webkit-mask-image:url('https://wcpc.church/wp-content/uploads/wcpc-icons/community-slate.svg') !important; mask-image:url('https://wcpc.church/wp-content/uploads/wcpc-icons/community-slate.svg') !important; }
.elementor-20067 .elementor-element-psf-chip-school::after { -webkit-mask-image:url('https://wcpc.church/wp-content/uploads/wcpc-icons/school-slate.svg') !important; mask-image:url('https://wcpc.church/wp-content/uploads/wcpc-icons/school-slate.svg') !important; }
.elementor-20066 .elementor-element-chm-panel-worship::before { left:353px !important; }
.elementor-20066 .elementor-element-chm-panel-connect::before { left:483px !important; }
.elementor-20066 .elementor-element-chm-panel-care::before { left:599px !important; }
.elementor-20066 .elementor-element-chm-panel-give::before { left:362px !important; }
/* Church Give-panel shift (Jul 23): Give is the rightmost pillar, so a centered panel put its caret over the
   feature (right) card. Shift the Give panel ~200px right so it opens toward the right and
   the caret lands on the middle column (white). Caret offset updated to 362px to match. */
.elementor-20066 .elementor-element-chm-panel-give { transform:translateX(calc(-50% + 200px)) !important; }
.elementor-20066 .elementor-element-chm-panel-give { transform:translateX(-50%) !important; }
.elementor-20066 .elementor-element-chm-panel-worship::before, .elementor-20066 .elementor-element-chm-panel-connect::before, .elementor-20066 .elementor-element-chm-panel-care::before, .elementor-20066 .elementor-element-chm-panel-give::before { left:50% !important; right:auto !important; transform:translateX(-50%) rotate(45deg) !important; }
/* Church Give-panel feature-left (Jul 23 v3): Give is the rightmost pillar so its (centered) panel put the pillar caret
   over the feature card. Flip just the Give panel so the feature is on the LEFT and the two
   columns on the right -> Give's caret now lands on a white column. Panel stays centered. */
.elementor-20066 .elementor-element-chm-panel-give { grid-template-columns:300px 1fr 1fr !important; }
.elementor-20066 .elementor-element-cg-feat { order:-1 !important; border-radius:16px 0 0 16px !important; }
.elementor-20066 .elementor-element-chm-panel-give { grid-template-columns:1fr 1fr 300px !important; }
.elementor-20066 .elementor-element-cg-feat { order:0 !important; border-radius:0 16px 16px 0 !important; }
/* ===== Church footer newsletter — ministry pill chips (ver 5.9) ===== */
.elementor-20067 .elementor-field-group-ministries .elementor-field-subgroup { display:flex !important; flex-wrap:wrap !important; gap:8px !important; }
.elementor-20067 .elementor-field-group-ministries .elementor-field-option { position:relative !important; display:inline-flex !important; flex:0 0 auto !important; width:auto !important; margin:0 !important; }
.elementor-20067 .elementor-field-group-ministries .elementor-field-option input[type=checkbox] { position:absolute !important; inset:0 !important; width:100% !important; height:100% !important; margin:0 !important; opacity:0 !important; cursor:pointer !important; z-index:1 !important; }
.elementor-20067 .elementor-field-group-ministries .elementor-field-option label { display:inline-block !important; margin:0 !important; padding:7px 15px !important; border:1px solid rgba(228,238,245,.35) !important; border-radius:999px !important; font-size:13px !important; font-weight:600 !important; line-height:1.2 !important; color:#E4EEF5 !important; background:transparent !important; cursor:pointer !important; transition:background .15s ease, border-color .15s ease, color .15s ease !important; white-space:nowrap !important; }
.elementor-20067 .elementor-field-group-ministries .elementor-field-option:hover label { border-color:#A4C8E1 !important; }
.elementor-20067 .elementor-field-group-ministries .elementor-field-option:has(input:checked) label { background:#A4C8E1 !important; border-color:#A4C8E1 !important; color:#003B5C !important; }
.elementor-20067 .elementor-field-group-ministries .elementor-field-option input[type=checkbox]:focus-visible + label { outline:2px solid #A4C8E1 !important; outline-offset:2px !important; }
/* ===== Mobile drawer for School + Community (.s-cc-nav-row) — ver 5.15 ===== */
@media (max-width:1100px){
/* hide Community's stray Elementor native mobile menu — we use the shared drawer */
.elementor-21 .elementor-element-cc-nav-mobile { display:none !important; }

}
.chlogo { height:42px !important; width:auto !important; }
/* ===== Menu-widget two-line items (.chmenu wrapper; chrome.js splits "Title | Subtitle") =====
   Matches the mega-nav row typography (.chmega-t / .chmega-d). Network-wide like .chbf-*. */
.elementor .chmenu .chmi { display:inline-flex !important; flex-direction:column !important; text-align:left; min-width:0; }
.elementor .chmenu .chmi-t { display:block !important; font-size:14px !important; font-weight:600 !important; color:#1F2933 !important; line-height:1.3 !important; }
.elementor .chmenu .chmi-d { display:block !important; font-size:12px !important; font-weight:400 !important; color:#5B6B78 !important; line-height:1.35 !important; margin-top:1px !important; }
@media (max-width:1100px){
/* mobile drawer shows title only, matching .chmega-d behavior */
.elementor .chmenu .chmi-d { display:none !important; }

}
/* Menu-widget icons (.chmenu): keep stroke-only brand SVGs from being flooded by
   Elementor's icon fill. Belt-and-suspenders for the EDITOR preview, whose SVG
   sanitizer can strip the files' inline fill:none styles. */
.elementor .chmenu .e-n-menu-icon svg { fill:none !important; }
.elementor .chmenu .e-n-menu-icon svg * { fill:none !important; stroke:#34657F; }
/* wcpc-menu-notch — pillar caret for TOP-LEVEL Menu widgets. CLASS CONVENTION (since 5.37,
   for cross-site portability — apply via the widget's Advanced → CSS Classes):
     chmenu-top        hover-open widget: notch on the TITLE, 4px seat, shows on hover+open
     chmenu-top-click  click-open widget: notch on the DROPDOWN-ICON BUTTON, 6px seat, open only
     chmenu-top-boxed  modifier for bordered button toggles: 13px tip-at-border seat
     chmenu-dim        modifier: indicator svg at opacity .6 (chevron look)
   HOST RULE: notch hosts are SIBLINGS of .e-n-menu-content — never the .e-n-menu-item
   (positioning the item re-anchors the dropdown + traps the notch under content z 2147483620). */
:is(.chmenu-top > .elementor-widget-container > .e-n-menu, .chmenu-top > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title, :is(.chmenu-top-click > .elementor-widget-container > .e-n-menu, .chmenu-top-click > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-dropdown-icon { position:relative; z-index:2147483630; }
:is(.chmenu-top > .elementor-widget-container > .e-n-menu, .chmenu-top > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title::before, :is(.chmenu-top-click > .elementor-widget-container > .e-n-menu, .chmenu-top-click > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-dropdown-icon::before { content:""; position:absolute; left:50%; top:calc(100% + 4px); width:13px; height:13px; background:#fff; border-left:1px solid #D5DEE5; border-top:1px solid #D5DEE5; transform:translateX(-50%) rotate(45deg); clip-path:polygon(-3px -3px, 17px -3px, -3px 17px); z-index:301; opacity:0; pointer-events:none; transition:opacity .15s; }
:is(.chmenu-top-click > .elementor-widget-container > .e-n-menu, .chmenu-top-click > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-dropdown-icon::before { top:calc(100% + 6px); }
:is(.chmenu-top-click.chmenu-top-boxed > .elementor-widget-container > .e-n-menu, .chmenu-top-click.chmenu-top-boxed > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-dropdown-icon::before { top:calc(100% + 13px); }
:is(.chmenu-top > .elementor-widget-container > .e-n-menu, .chmenu-top > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item.wcpc-dd:hover > .e-n-menu-title::before, :is(.chmenu-top > .elementor-widget-container > .e-n-menu, .chmenu-top > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item.wcpc-open > .e-n-menu-title::before, :is(.chmenu-top-click > .elementor-widget-container > .e-n-menu, .chmenu-top-click > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item.wcpc-open > .e-n-menu-title .e-n-menu-dropdown-icon::before { opacity:1; }
/* Top-level Menu widget dropdown indicators: stroke guard (editor sanitizer strips inline
   svg styles); chmenu-dim = old chmega-car opacity. */
:is(.chmenu-top > .elementor-widget-container > .e-n-menu, .chmenu-top > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-dropdown-icon svg, :is(.chmenu-top > .elementor-widget-container > .e-n-menu, .chmenu-top > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-dropdown-icon svg *, :is(.chmenu-top-click > .elementor-widget-container > .e-n-menu, .chmenu-top-click > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-dropdown-icon svg, :is(.chmenu-top-click > .elementor-widget-container > .e-n-menu, .chmenu-top-click > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-dropdown-icon svg * { fill:none !important; stroke:#34657F; }
:is(.chmenu-top.chmenu-dim > .elementor-widget-container > .e-n-menu, .chmenu-top.chmenu-dim > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-dropdown-icon svg, :is(.chmenu-top-click.chmenu-dim > .elementor-widget-container > .e-n-menu, .chmenu-top-click.chmenu-dim > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title .e-n-menu-dropdown-icon svg { opacity:.6; }
/* psf remnants after global-class migration (5.42): props with no atomic equivalent */
.elementor .psf-netlabel, .elementor .psf-cblurb, .elementor .psf-badge { white-space: nowrap !important; }
.elementor .psf-card { transition: background .15s ease; }
.elementor-20067 .chf-soc { transition: background .15s ease; }
/* wcpc mobile: no carets in collapsed/accordion mode (ver 5.44) */
@media (max-width:1024px){
/* desktop caret affordance off in collapsed/accordion mode */
.chmenu-top .e-n-menu-title::before, .chmenu-top-click .e-n-menu-dropdown-icon::before { display:none !important; }
/* nested .chmenu lists are Menu widgets too — never let them grow their own burger */
.chmenu .e-n-menu-toggle { display:none !important; }
/* panel cards go plain + full-width inside the accordion (box-in-box otherwise) */
.chpanel { max-width:none !important; width:100% !important; border-width:0 !important; box-shadow:none !important; background:transparent !important; }
/* fit_to_content shrink-wraps the dropdown; force full width in accordion mode */
.chmenu-top > .elementor-widget-container > .e-n-menu .e-n-menu-content, .chmenu-top > .e-n-menu .e-n-menu-content, .chmenu-top .e-n-menu-content > .e-con-inner { width:100% !important; max-width:none !important; }
/* nested lists: Elementor collapses their wrapper (absolute, max-height 0) — unlock it */
.chmenu .e-n-menu-wrapper { position:static !important; inset:auto !important; max-height:none !important; height:auto !important; overflow:visible !important; box-shadow:none !important; background:transparent !important; padding:0 !important; }
.chmenu .e-n-menu-heading { flex-direction:column !important; align-items:stretch !important; }
/* accordion rows sit flush-left (panel column + row padding is a desktop affordance) */
.chpanel > * { padding-inline:0 !important; }
.chmenu .e-n-menu-title { padding-inline-start:0 !important; }
/* mobile extras (.chmenu-mobx = last two repeater items are CTA + Search) */
:is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item:first-child > .e-n-menu-title { background:#34657F !important; border-radius:10px !important; margin-bottom:10px !important; }
:is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item:first-child > .e-n-menu-title .e-n-menu-title-text { color:#fff !important; font-weight:600 !important; }
/* search panel fills the accordion width */
.chmenu-top .e-n-menu-content .e-con-inner { width:100% !important; max-width:none !important; }

}
@media (min-width:1025px){
/* mobile extras never show on desktop */
:is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item:first-child, :is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item:last-child { display:none !important; }

}
/* Footer network cards stack below the breakpoint (ver 5.51) */
@media (max-width:1024px){
.elementor .psf-net, .elementor .s-ccf-network { display:flex !important; flex-direction:column !important; align-items:stretch !important; flex-wrap:nowrap !important; gap:12px !important; }
.elementor .psf-netlist, .elementor .s-ccf-netlist { display:flex !important; flex-direction:column !important; align-items:stretch !important; flex-wrap:nowrap !important; flex:0 0 auto !important; width:auto !important; gap:8px !important; }
.elementor .psf-card, .elementor .s-ccf-card-comm, .elementor .s-ccf-card-church, .elementor .s-ccf-card-school { width:100% !important; }

}
/* 5.56 church mobile */
@media (max-width:1024px){
.chpanel {flex-direction:column !important;}

}
/* 5.57 nested list width: Elementor gives nested menu wrappers 100vw on mobile, which overflows the panel card. */
@media (max-width:1024px){
.chmenu .e-n-menu-wrapper {width:100% !important;max-width:100% !important;}

}
/* 5.58 inline mobile search: the LAST chmenu-mobx item (mobsrch) renders its field
   inline at the bottom of the panel instead of being an expandable row. */
@media (max-width:1024px){
:is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item:last-child > .e-n-menu-title {display:none !important;}
:is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item:last-child > .e-n-menu-content {display:block !important;position:static !important;max-height:none !important;height:auto !important;opacity:1 !important;visibility:visible !important;transform:none !important;overflow:visible !important;padding-top:8px;}
:is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item:last-child > .e-n-menu-content > .e-con {display:flex !important;width:100% !important;max-width:none !important;align-self:stretch !important;}
:is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item:last-child > .e-n-menu-content .e-con-inner {width:100% !important;max-width:none !important;}

}
/* 5.60 stacked panel rhythm: multi-column panels (church) stack on mobile, so kill the
   column dividers, drop their block padding and space the groups evenly instead.
   The promo banner keeps its own inset (the generic .chpanel rule strips padding). */
@media (max-width:1024px){
.chpanel-cols > * {border-inline-width:0 !important;}
.chpanel-cols > *:not(.chfeature) {padding-block:0 !important;}
.chpanel-cols {gap:22px !important;}
.chpanel > .chfeature {padding:16px !important;}

}
/* 5.61 promo banner top radius: stacked at the bottom of a mobile panel the banner's
   bottom corners come from the panel's overflow clip, so round the top two to match. */
@media (max-width:1024px){
.chpanel > .chfeature {border-top-left-radius:16px !important;border-top-right-radius:16px !important;overflow:hidden !important;}

}
/* 5.65 sticky header enabler: the theme sets overflow-x:hidden on html/body, which makes
   them scroll containers and silently kills position:sticky on the header (the old headers
   declared sticky and never actually stuck). overflow-x:clip prevents horizontal scroll the
   same way WITHOUT creating a scroll container, so the strip pins correctly. */
html, body { overflow-x: clip !important; }

/* 5.68 keyboard parity for the hover-open nav: Elementor opens hover menus with pure CSS
   :hover, so a keyboard user could never reach the panel links. :focus-within mirrors it
   (and keeps the panel open while tabbing through the links inside it). */
.chmenu-top .e-n-menu-item:focus-within > .e-n-menu-content > .e-con{display:flex !important;}
:is(.chmenu-top > .elementor-widget-container > .e-n-menu, .chmenu-top > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item.wcpc-dd:focus-within > .e-n-menu-title::before{opacity:1;}


/* ------------------------------------------------------------------
   2026-08-09 — Latest-sermon hero: media frame collapses in WebKit
   ------------------------------------------------------------------
   .wcpc-latest__media is a grid item carrying BOTH `aspect-ratio:16/9`
   and `container-type: inline-size` (the latter drives the responsive
   Plyr chrome, so it has to stay). Chrome stretches the frame to its
   grid track at every width measured — 552, 676, 826, 976, 1126px.
   Safari sizes it to roughly half its track and leaves it hugging the
   left edge, so the video reads small and off-centre.

   Forcing the inline size defeats the intrinsic-sizing fallback without
   touching the container query. Deliberately NOT setting align-self:
   the frame's height must keep coming from aspect-ratio, not the row.

   Interim. Remove when wcpc-sermon-manager ships the same rule in
   assets/css/frontend.css — see the SM-18 note in the project docs.
   ------------------------------------------------------------------ */
.wcpc-latest > .wcpc-latest__media {
    width: 100%;
    min-width: 100%;
    justify-self: stretch;
}


/* ------------------------------------------------------------------
   Accent-top vs card: the atomic global-class CSS is emitted
   alphabetically, so .card's uniform border-width:1px overrides
   .accent-top's 4px top border on any element carrying both classes.
   Two-class specificity restores the intended composition.
   Added Aug 10 2026 (full-site audit, Phase B). Remove if Elementor
   ever emits global classes in kit order.
   ------------------------------------------------------------------ */
.elementor .accent-top.card { border-block-start-width: 4px; border-block-start-color: var(--color-primary); }
.elementor .accent-top-amber.card { border-block-start-color: var(--color-amber); }
.elementor .accent-top-green.card { border-block-start-color: var(--color-green); }
.elementor .accent-top-plum.card { border-block-start-color: var(--color-plum); }
.elementor .accent-top-rose.card { border-block-start-color: var(--color-rose); }


/* ------------------------------------------------------------------
   House accordion skin (design FAQ list style): separated rounded
   cards with breathing room, matching faq.html across the three
   design sites. Classic Elementor accordion has no gap/radius
   controls, so the skin lives here. Added Aug 10 2026 (Phase B).
   ------------------------------------------------------------------ */
.elementor-accordion .elementor-accordion-item {
    background: #fff;
    border: 1px solid var(--color-border) !important;
    border-radius: 12px;
    margin-block-end: 12px;
    overflow: hidden;
}
.elementor-accordion .elementor-tab-title { padding: 18px 22px; }
.elementor-accordion .elementor-tab-content { border-top: 1px solid var(--color-border); }

/* staff contact chips: a chip without a live link renders as <div> (not <a>) - hide it. wcpc-staff, Aug 2026 */
div.staff-chip{display:none!important}

/* staff chip hover transition - v4 classes cannot carry transitions. wcpc-staff, Aug 2026 */
a.staff-chip{transition:background-color .15s ease,border-color .15s ease}

/* ------------------------------------------------------------------
   Accordion toggle icons (ver 5.79): sized to the site icon scale
   (16px) AND redrawn in the house icon-set style. The widgets ship
   FA-solid glyphs (heavy fills) / legacy 2021 circled-plus SVGs,
   which clash with the stroke-1.75 wcpc-icons set - so the shipped
   svg is hidden and a masked pseudo draws a Lucide-style stroke
   glyph in the site color. Mask uses alpha only; color comes from
   background-color. School FAQ (post 62, the network's only chevron
   accordion) keeps its amber chevrons, scoped by elementor-page-62.
   Title goes flex so the icon centers on the question text.
   ------------------------------------------------------------------ */
.elementor-accordion .elementor-tab-title { display:flex !important; align-items:center; gap:12px; }
.elementor-accordion .elementor-accordion-icon { font-size:16px !important; line-height:1 !important; float:none !important; flex:none; width:auto !important; }
.elementor-accordion .elementor-accordion-icon svg { display:none !important; }
.elementor-accordion .elementor-accordion-icon-closed::before,
.elementor-accordion .elementor-accordion-icon-opened::before {
    content:''; display:inline-block; width:16px; height:16px;
    background-color:#34657F; vertical-align:middle;
    -webkit-mask:var(--wcpc-acc-mask) center/contain no-repeat;
    mask:var(--wcpc-acc-mask) center/contain no-repeat; }
.elementor-accordion .elementor-accordion-icon-closed::before { --wcpc-acc-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E"); }
.elementor-accordion .elementor-accordion-icon-opened::before { --wcpc-acc-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E"); }
body.elementor-page-62 .elementor-accordion .elementor-accordion-icon-closed::before { --wcpc-acc-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-color:#C68A2E; }
body.elementor-page-62 .elementor-accordion .elementor-accordion-icon-opened::before { --wcpc-acc-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 15 6-6 6 6'/%3E%3C/svg%3E"); background-color:#C68A2E; }


/* 5.80 — school form submit buttons: brand btn/btn-primary look (widgets tagged wcpc-form-btn on pages 57+58, blog 3) */
.elementor .wcpc-form-btn .elementor-button{font-weight:600;font-size:var(--text-body);line-height:1em;padding:13px 22px;border-radius:var(--radius-md);border:1.5px solid var(--color-primary);background-color:var(--color-primary);color:#FFFFFF;display:inline-flex;gap:var(--space-sm);justify-content:center;align-items:center;}
.elementor .wcpc-form-btn .elementor-button:hover,.elementor .wcpc-form-btn .elementor-button:focus-visible{background-color:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#FFFFFF;}



/* ===== Search dropdown panel — design formatting (5.82) ===== */
.elementor-location-header .searchwp-form{padding:16px 16px 18px !important}
.elementor-location-header .searchwp-form .searchwp-form-input-container{width:100% !important}
.elementor-location-header .searchwp-form .swp-input--search{
  width:100% !important; height:48px !important;
  padding:12px 16px 12px 46px !important;
  background:#F7F9FB url('../wcpc-icons/nav-search.svg') no-repeat 15px center / 20px 20px !important;
  border:1px solid #B8C5CF !important; border-radius:12px !important;
  font-size:15px !important; color:#1F2933 !important; box-shadow:none !important;
}
.elementor-location-header .searchwp-form .swp-input--search::placeholder{color:#5B6B78; opacity:1}
.elementor-location-header .searchwp-form .swp-input--search:focus{
  outline:none !important; border-color:#34657F !important; background-color:#FFFFFF !important;
  box-shadow:0 0 0 3px rgba(52,101,127,.15) !important;
}
.elementor-location-header .searchwp-form .swp-button{display:none !important}
.elementor-location-header .searchwp-form-quick-search{
  display:flex !important; flex-wrap:wrap; gap:8px; margin-top:14px;
}
.elementor-location-header .searchwp-form-quick-search > span{
  flex-basis:100%; font-size:0; line-height:0; margin-bottom:2px;
}
.elementor-location-header .searchwp-form-quick-search > span::before{
  content:'Popular'; font-size:13px; line-height:1.4; font-weight:500; color:#5B6B78;
}
.elementor-location-header .searchwp-form-quick-search a{
  display:inline-flex; align-items:center; padding:9px 15px;
  background:#F4F7FA; border-radius:999px;
  font-size:14px; font-weight:600; line-height:1.2; color:#34657F;
  text-decoration:none; transition:background .15s ease,color .15s ease;
}
.elementor-location-header .searchwp-form-quick-search a:hover{
  background:#E8EEF3; color:#003B5C; text-decoration:none;
}
.elementor-location-header div:has(> .elementor-widget-searchwp_search_form){max-width:500px !important; width:500px !important}
.elementor-location-header .elementor-widget-searchwp_search_form{width:100% !important}
/* ===== /Search dropdown panel ===== */

/* Header "Live now" pill (5.86) — injected into .chactions by chrome.js 3.2.
   Only ever present while the stream is actually open, so it can afford to be
   loud. Sits left of search + CTA. */
.elementor .wcpc-live-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    height: 42px;
    padding: 0 16px;
    border-radius: 999px;
    background: #B23149;
    border: 1px solid #B23149;
    color: #FFFFFF;
    font-family: var(--wcpc-font-sans, "Open Sans", sans-serif);
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s ease, border-color .15s ease;
}

.elementor .wcpc-live-pill:hover,
.elementor .wcpc-live-pill:focus {
    background: #93283B;
    border-color: #93283B;
    color: #FFFFFF;
}

.elementor .wcpc-live-pill:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(178, 49, 73, .35);
}

.elementor .wcpc-live-pill[hidden] {
    display: none !important;
}

.elementor .wcpc-live-pill__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #FFFFFF;
    animation: wcpc-live-pill-pulse 2s ease-in-out infinite;
}

@keyframes wcpc-live-pill-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: .45; transform: scale(.78); }
}

@media (prefers-reduced-motion: reduce) {
    .elementor .wcpc-live-pill__dot { animation: none; }
    .elementor .wcpc-live-pill { transition: none; }
}

/* Below the desktop strip the drawer takes over and the pill would crowd the
   burger; the Worship panel's permanent "Watch live" row covers it there. */
@media (max-width: 1100px) {
    .elementor .wcpc-live-pill { display: none !important; }
}

/* wcpc-inline-links (2026-10-07): inline <a> tags inside v4 Paragraph text inherited
   body color with no underline, so they read as plain text. Whole-paragraph links
   (a.e-paragraph-link-base) carry a class and are untouched; header/footer excluded. */
.elementor:not(.elementor-location-header):not(.elementor-location-footer) .e-paragraph-base a:not([class]) {
    color: #34657F;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
    transition: color .15s ease;
}
.elementor:not(.elementor-location-header):not(.elementor-location-footer) .e-paragraph-base a:not([class]):hover,
.elementor:not(.elementor-location-header):not(.elementor-location-footer) .e-paragraph-base a:not([class]):focus-visible {
    color: #003B5C;
}

/* 5.88 — search results hero: keep the magnifying glass centred on the input when the Search button stacks below it on phones (Patrick, 8 Oct). Input is 56px tall. */
.wcpc-sr form.searchhead__form > svg { top: 28px; }

/* 5.89 mobile menu scroll (2026-10-09): the collapsed menu panel is absolutely positioned inside the
   sticky header and grew past the bottom of the screen (1200px+ with a pillar open), so a swipe on it
   scrolled the page underneath and the lower rows were unreachable. Cap the OPEN panel to the screen
   and let it scroll on its own; lock the page while the burger is open (html only - overflow on body
   would make body the scroller and break the sticky header). The cap is gated on aria-expanded because
   Elementor collapses the wrapper with max-height:var(--n-menu-dropdown-content-box-height) = 0, and
   needs the .elementor prefix to outrank Elementor's 0-4-0 rule in widget-mega-menu.css. */
@media (max-width: 1024px) {
    html:has(.chmenu-mobx .e-n-menu-toggle[aria-expanded="true"]) { overflow: hidden; }
    .elementor :is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-toggle[aria-expanded="true"] + .e-n-menu-wrapper {
        max-height: calc(100dvh - 72px);
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }
}

/* 5.91 mobile CTA tap area (2026-10-09): the slate 'Plan your visit' button is painted on the title DIV,
   but the link inside only wrapped the text (102x23 of a 358x39 button), so taps on the padding did nothing.
   Move the padding onto the link and stretch it across the button; 44px min height for a proper tap target. */
@media (max-width: 1024px) {
    :is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item:first-child > .e-n-menu-title { padding: 0 !important; }
    :is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item:first-child > .e-n-menu-title > .e-n-menu-title-container { flex: 1 1 auto; align-self: stretch; align-items: center; box-sizing: border-box; min-height: 44px; padding: 8px 16px; }
}

/* ======================================================================
   5.92 — mobile audit fixes (2026-10-21). Tracker: claude/mobile-audit-20261021.md
   5.94 — interim rules now owned by WCPC Core 2.8, Sermon Manager 2.130, PCO 0.99,
          Search Results 0.9.1 and Serve Finder 1.8 removed; page-content rules stay.
   ====================================================================== */

/* M02 — search results type chips scroll sideways on phones; chrome.js toggles .jn-more-r / .jn-more-l
   while there is more to see on that side and the edge fades. (The in-page jump bar's fades moved
   into WCPC Core 2.8.0 jumpbar.css / jumpbar.js.) */
@media (max-width: 767px) {
    .wcpc-sr .subnav { scroll-padding-inline: 24px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    .wcpc-sr .subnav::-webkit-scrollbar { display: none; }
    .wcpc-sr .subnav.jn-more-r { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 56px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 56px), transparent); }
    .wcpc-sr .subnav.jn-more-l { -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(to left, #000 calc(100% - 40px), transparent); }
    .wcpc-sr .subnav.jn-more-l.jn-more-r { -webkit-mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 56px), transparent); mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 56px), transparent); }
}

/* M04 — iOS zooms the page when a field under 16px gets focus. Menu search was 15px, search-results
   Sort dropdown 14px. */
@media (max-width: 1024px) {
    .chmenu-mobx input, .chmenu-mobx select, .wcpc-sr input, .wcpc-sr select { font-size: 16px !important; }
}

/* M12 — mobile menu: open panel reaches the bottom of the screen (it stopped ~540px down and the page
   showed underneath on bigger phones), and the burger is a full 44px tap target (was 40). */
@media (max-width: 1024px) {
    .elementor :is(.chmenu-mobx > .elementor-widget-container > .e-n-menu, .chmenu-mobx > .e-n-menu) > .e-n-menu-toggle[aria-expanded="true"] + .e-n-menu-wrapper {
        min-height: calc(100dvh - 72px);
    }
    .chmenu-mobx .e-n-menu-toggle { box-sizing: border-box; min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
}

/* M15 — small tap targets. Grow the hit area without moving anything: padding paired with an equal
   negative margin (links), or an invisible ::after (pills, chips). */
@media (max-width: 767px) {
    [data-id$="cbx"] a, [data-id^="bc-"] a, .elementor-element-sermon-trail a, .elementor-element-series-trail a { display: inline-block; padding-block: 12px; margin-block: -12px; }
    .wcpc-ps-episode__notes-toggle { padding-block: 11px !important; margin-block: -11px !important; }
    .wcpc-pill, .wcpc-pco-invite__copy, .wcpc-pco-invite__copy ~ a { position: relative; }
    .wcpc-pill::after, .wcpc-pco-invite__copy::after, .wcpc-pco-invite__copy ~ a::after { content: ""; position: absolute; inset: -9px -3px; }
}

/* M16 — FAQ accordion questions that wrap to 2+ lines had line-height equal to the font size (18/18),
   so the lines touched. Applies to the classic accordion skin above and the nested accordion. */
.elementor-accordion .elementor-tab-title, .elementor-accordion .elementor-accordion-title,
.e-n-accordion-item-title-text { line-height: 1.35 !important; }

/* M17 — WCPC Core marks a jump-bar target whose section turned out empty with
   .wcpc-jumpnav-target--empty and leaves it to the page CSS. Every such section on the church site is
   an empty band of padding (Series "Resources" = ~400px of blank space on phones), so collapse it. */
.wcpc-jumpnav-target--empty { display: none !important; }

/* M18 — sermon / P.S. / class pages: the sticky Transcript/Share bar now slides away while you scroll
   down and comes back when you scroll up (chrome.js 3.3 adds .wcpc-autohide / .is-hidden, ≤1024 only). */
.wcpc-autohide { transition: transform .25s ease, box-shadow .25s ease; will-change: transform; }
.wcpc-autohide.is-hidden { transform: translateY(calc(-100% - var(--wcpc-autohide-top, 0px))); box-shadow: none; }
@media (prefers-reduced-motion: reduce) { .wcpc-autohide { transition: none; } }

/* M05 — comparison grids built as rows of cells (Give "Compare your options", Student weekly schedule,
   Children's "At a glance"). On phones each row becomes a small card: first cell as its title, the
   rest stacked under small labels copied from the header row by chrome.js 3.3 (.wcpc-stacktbl). */
@media (max-width: 767px) {
    .wcpc-stacktbl > .e-con:first-child { display: none !important; }
    .wcpc-stacktbl > .e-con:not(:first-child) { flex-direction: column !important; flex-wrap: nowrap !important; align-items: stretch !important; gap: 6px !important; }
    .wcpc-stacktbl > .e-con:not(:first-child) > * { width: auto !important; max-width: none !important; min-width: 0 !important; flex: 0 0 auto !important; }
    .wcpc-stacktbl > .e-con:not(:first-child) > :first-child { font-weight: 700 !important; font-size: 17px !important; color: #1F2933 !important; }
    .wcpc-stacktbl [data-wcpc-label]:not(:first-child)::before { content: attr(data-wcpc-label); display: block; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #5B6B78; margin-bottom: 2px; }
}

/* M22 — keep phone numbers in one piece. */
.psf-ctext, a[href^="tel:"] { white-space: nowrap; }

/* M13 — staff contact row (page content on Meet our team): separators never start or end a line.
   Each item carries its own leading dot; the row is shifted left by one dot width and that strip is
   clipped, so whichever item starts a line loses its dot. The printed separator widgets are hidden.
   (Sermon Manager 2.130.0 and WCPC Core 2.8.0 do the same for their meta rows and cards.) */
.staff-inline-row.staff-inline-row {
    --wcpc-sepw: 16px;
    padding-left: 0 !important;
    margin-left: calc(10px - var(--wcpc-sepw)) !important;
    clip-path: inset(-4px -4px -4px var(--wcpc-sepw));
    column-gap: 0 !important;
}
.staff-inline-row > :not([data-id$="sep"])::before {
    content: "\00B7" !important; display: inline-block; width: var(--wcpc-sepw); text-align: center;
    color: var(--pl-text-muted, #5B6B78); font-weight: 400; text-decoration: none; flex: 0 0 auto;
}
.staff-inline-row > [data-id$="sep"] { display: none !important; }
.staff-inline-row > :not([data-id$="sep"]) { white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }

/* M19 — long search placeholders end in "…" instead of being cut mid-word (menu search, search page;
   the filter bars get this from WCPC Core 2.8.0). */
.wcpc-sr input[type="search"], .chmenu-mobx input { text-overflow: ellipsis; }
