/**
 * Site-wide design system — Compass Bible Church
 *
 * Loaded on every page. Restyles Total theme / WPBakery elements so every
 * page shares the homepage look without rebuilding page content:
 *   1. Tokens          5. Inner page heroes   9. Cards & Total elements
 *   2. Typography      6. Breadcrumbs        10. Forms (Gravity Forms)
 *   3. Buttons         7. Header builder     11. Series Engine & widgets
 *   4. Sections        8. Footer builder     12. Responsive
 *
 * The homepage's own sections live in home.css.
 */

/* =========================================================================
 * 1. Tokens
 * ====================================================================== */

:root {
    --cbc-accent: #1468a2;
    --cbc-accent-dark: #0d4c7a;
    --cbc-accent-soft: #e8f1f8;
    --cbc-accent-light: #8fc3ea;
    --cbc-navy: #0e2233;
    --cbc-navy-2: #132c42;
    --cbc-ink: #101820;
    --cbc-body: #3a4550;
    --cbc-muted: #5d6a77;
    --cbc-line: #e2e7ec;
    --cbc-surface: #f5f7f9;
    --cbc-radius: 16px;
    --cbc-radius-sm: 10px;
    --cbc-shadow: 0 1px 2px rgba(14, 34, 51, 0.05);
    --cbc-shadow-hover: 0 16px 34px -18px rgba(14, 34, 51, 0.35);
    --cbc-serif: "Literata", Georgia, serif;
}

/* =========================================================================
 * 2. Typography
 * ====================================================================== */

body {
    color: var(--cbc-body);
}

/* Sentence-case headings everywhere (overrides per-element uppercase). */
:where(.vcex-heading, .vcex-icon-box-heading, .vcex-teaser-heading, .entry h1, .entry h2, .entry h3, .wpb_text_column h1, .wpb_text_column h2, .wpb_text_column h3):not(.cbc-eyebrow) {
    text-transform: none !important;
}

.vcex-heading.wpex-h1,
.vcex-heading.wpex-h2,
.vcex-heading.wpex-h3,
.wpb_text_column h2,
.wpb_text_column h3 {
    color: var(--cbc-ink);
    letter-spacing: -0.01em;
}

.vcex-heading.wpex-h2,
.wpb_text_column h2 {
    font-size: clamp(28px, 3.4vw, 42px);
    font-weight: 700;
    line-height: 1.15;
}

.vcex-heading.wpex-h3,
.wpb_text_column h3 {
    font-size: clamp(22px, 2.2vw, 28px);
    font-weight: 700;
    line-height: 1.25;
}

.vcex-heading.wpex-h1 {
    font-weight: 700;
    line-height: 1.08;
}

.vcex-heading:is(.wpex-h1, .wpex-h2, .wpex-h3),
.cbc-hero__title,
.cbc-section__title,
.cbc-mission__statement {
    text-wrap: balance;
}

/* Small label heading directly above a title → eyebrow */
.vcex-heading.wpex-h4:has(+ .vcex-heading:is(.wpex-h1, .wpex-h2, .wpex-h3)),
.vcex-heading.wpex-h4:has(+ style + .vcex-heading:is(.wpex-h1, .wpex-h2, .wpex-h3)) {
    margin-bottom: 12px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    line-height: 1.4 !important;
    text-transform: uppercase !important;
    color: var(--cbc-accent) !important;
}

.wpb_text_column p,
.wpb_text_column li {
    line-height: 1.7;
}

.wpb_text_column a:not(.theme-button) {
    text-underline-offset: 3px;
}

/* =========================================================================
 * 3. Buttons — Total theme buttons, multi buttons and Gravity Forms submits
 * ====================================================================== */

.theme-button,
.vcex-button.theme-button,
input[type="submit"],
button[type="submit"],
.gform_wrapper .gform_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 50px;
    padding: 0 26px !important;
    border: 2px solid var(--cbc-accent);
    border-radius: 999px !important;
    background: var(--cbc-accent);
    color: #fff;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
    line-height: 1.1 !important;
    text-transform: none !important;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.15s;
}

.theme-button:hover,
input[type="submit"]:hover,
button[type="submit"]:hover,
.gform_wrapper .gform_button:hover {
    border-color: var(--cbc-accent-dark);
    background: var(--cbc-accent-dark);
    color: #fff;
    transform: translateY(-1px);
}

.theme-button .theme-button-inner {
    gap: 8px;
}

/* Breathing room between text and the button(s) that follow it. Replaces
   the old negative-margin hack on multi buttons. */
.wpb_wrapper > .theme-button,
.wpb_wrapper > .vcex-button {
    margin: 12px 10px 4px 0 !important;
}

.vcex-multi-buttons {
    gap: 12px !important;
    margin: 12px 0 4px !important;
}

/* Beats the old customizer rule (.theme-button.flat.vcex-count-2{margin:-10px 0}),
   which loads after this file */
.vcex-multi-buttons .theme-button.theme-button,
.vcex-multi-buttons .theme-button.flat.vcex-count-2,
.vcex-multi-buttons .theme-button.flat.vcex-count-3 {
    margin: 0 !important;
}

.wpb_text_column + .vcex-spacing + .theme-button,
.wpb_text_column + .theme-button {
    margin-top: 16px !important;
}

/* Secondary (ghost) button: vcex_button classes="cbc-btn-ghost" */
.theme-button.cbc-btn-ghost {
    border-color: var(--cbc-line);
    background: #fff;
    color: var(--cbc-ink);
}

.theme-button.cbc-btn-ghost:hover {
    border-color: var(--cbc-accent);
    background: var(--cbc-accent-soft);
    color: var(--cbc-ink);
}

/* White buttons on dark backgrounds (page heroes, .cbc-on-dark sections) */
.page-block.wpex-has-overlay:has(> .image-header) .theme-button,
.cbc-on-dark .theme-button {
    border-color: #fff;
    background: #fff;
    color: var(--cbc-navy);
}

.page-block.wpex-has-overlay:has(> .image-header) .theme-button:hover,
.cbc-on-dark .theme-button:hover {
    border-color: var(--cbc-accent-soft);
    background: var(--cbc-accent-soft);
    color: var(--cbc-navy);
}

/* =========================================================================
 * 4. Sections
 * ====================================================================== */

.vc_section.page-block {
    padding-top: clamp(64px, 8vw, 104px);
    padding-bottom: clamp(64px, 8vw, 104px);
}

/* Light grey section: el_class="cbc-surface" */
.vc_section.cbc-surface {
    background: var(--cbc-surface);
}

/* Sub-headings (small headings that aren't eyebrows) */
.vcex-heading.wpex-h4:not(:has(+ .vcex-heading:is(.wpex-h1, .wpex-h2, .wpex-h3))):not(:has(+ style + .vcex-heading:is(.wpex-h1, .wpex-h2, .wpex-h3))) {
    font-size: 19px;
    font-weight: 700;
    letter-spacing: 0;
    color: var(--cbc-ink);
}

/* Comfortable reading width for text in full-width, single-column rows */
.page-block:not(.wpex-has-overlay) .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > .wpb_text_column,
.page-block:not(.wpex-has-overlay) .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > .vcex-heading:is(:has(+ .wpb_text_column), :has(+ style + .wpb_text_column)):not(.wpex-text-center) {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
}

.page-block .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > .vcex-heading.wpex-h2 {
    margin-bottom: 16px;
}

/* Space before a section title that follows text in a new row */
.page-block .vc_row + .vc_row .wpb_wrapper > .vcex-heading.wpex-h2:first-child {
    margin-top: 24px;
}

/* Rounded media inside content */
.page-block .vcex-image-img,
.page-block .vcex-video iframe,
.page-block .wpb_video_wrapper iframe {
    border-radius: var(--cbc-radius);
}

.page-block .vcex-video,
.page-block .vcex-video-inner {
    overflow: hidden;
    border-radius: var(--cbc-radius);
}

/* =========================================================================
 * 5. Inner page heroes — first section with a background + overlay
 * ====================================================================== */

.vc_section.page-block.wpex-has-overlay:has(> .image-header) {
    display: flex !important;
    flex-direction: column;
    justify-content: flex-end !important;
    min-height: clamp(340px, 42vw, 520px);
    padding-top: clamp(120px, 12vw, 160px) !important;
    padding-bottom: clamp(48px, 6vw, 72px) !important;
    overflow: hidden;
    background-color: var(--cbc-navy);
}

.vc_section.page-block.wpex-has-overlay:has(> .image-header) > .wpex-bg-overlay-wrap .wpex-bg-overlay {
    background:
        linear-gradient(90deg, rgba(8, 20, 31, 0.88) 0%, rgba(8, 20, 31, 0.6) 50%, rgba(8, 20, 31, 0.25) 100%),
        linear-gradient(0deg, rgba(8, 20, 31, 0.85) 0%, rgba(8, 20, 31, 0) 60%) !important;
    opacity: 1 !important;
}

/* WPBakery's parallax "content fade" dims hero text — keep it solid */
.vc_parallax-content-moving-fade > .image-header,
.vc_parallax-content-moving-fade > .image-header .wpb_column {
    opacity: 1 !important;
    transform: none !important;
}

.image-header.vc_row {
    width: 100%;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
}

.image-header .wpb_wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

/* Small heading above the title = eyebrow; below the title = subtitle */
#content .image-header .vcex-heading.wpex-h4 {
    margin: 0 0 14px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    color: rgba(255, 255, 255, 0.82) !important;
}

#content .image-header .vcex-heading:is(.wpex-h1, h1) ~ .vcex-heading.wpex-h4 {
    max-width: 36rem;
    margin: 18px 0 0 !important;
    font-size: clamp(17px, 1.6vw, 20px) !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    line-height: 1.5 !important;
    text-transform: none !important;
    color: rgba(255, 255, 255, 0.88) !important;
}

.image-header .vcex-heading.wpex-h1,
.image-header h1.vcex-heading {
    max-width: 18ch;
    margin: 0 !important;
    font-size: clamp(40px, 5.6vw, 68px) !important;
    font-weight: 700 !important;
    line-height: 1.04 !important;
    letter-spacing: -0.02em;
    color: #fff !important;
}

.image-header .wpb_text_column,
.image-header .wpb_text_column p {
    max-width: 38rem;
    margin-top: 16px;
    font-size: clamp(16px, 1.5vw, 19px);
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.86);
}

/* =========================================================================
 * 6. Breadcrumbs (heading elements that link to "/")
 * ====================================================================== */

.vcex-heading:has(> .vcex-heading-inner > a[href="/"]) {
    margin-bottom: 8px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: var(--cbc-muted) !important;
}

.vcex-heading:has(> .vcex-heading-inner > a[href="/"]) a {
    color: var(--cbc-muted) !important;
    text-decoration: none;
}

.vcex-heading:has(> .vcex-heading-inner > a[href="/"]) a:last-child {
    color: var(--cbc-ink) !important;
}

.vcex-heading:has(> .vcex-heading-inner > a[href="/"]) a:hover {
    color: var(--cbc-accent) !important;
}

/* =========================================================================
 * 7. Header builder
 * ====================================================================== */

#site-header.header-builder {
    border-bottom: 1px solid var(--cbc-line);
    background: #fff;
}

#site-header .vc_row,
#site-header .vc_column-inner,
#site-header .wpb_wrapper {
    margin-bottom: 0 !important;
}

/* Top bar */
.cbc-topbar {
    background: var(--cbc-navy);
    color: rgba(255, 255, 255, 0.78);
    font-size: 13.5px;
    line-height: 1.4;
}

.cbc-topbar .vc_column-inner {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
}

.cbc-topbar .vc_column-inner > .wpb_wrapper {
    width: 100%;
}

.cbc-topbar .vcex-flex-container {
    gap: 6px 28px !important;
}

.cbc-topbar .vcex-list_item {
    margin: 0 !important;
    color: rgba(255, 255, 255, 0.78);
    font-size: 13.5px;
}

.cbc-topbar .vcex-list_item strong {
    color: #fff;
    font-weight: 700;
}

.cbc-topbar .vcex-list_item .vcex-list-item-icon {
    color: var(--cbc-accent-light);
}

.cbc-topbar a {
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}

.cbc-topbar a:hover {
    color: var(--cbc-accent-light);
}

.cbc-topbar .vcex-button.theme-button {
    min-height: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    background: none;
    color: #fff;
    font-size: 13.5px !important;
    font-weight: 600 !important;
}

.cbc-topbar .vcex-button.theme-button:hover {
    background: none;
    color: var(--cbc-accent-light);
    transform: none;
}

.cbc-topbar .vcex-social-links a {
    color: rgba(255, 255, 255, 0.75) !important;
}

.cbc-topbar .vcex-social-links a:hover {
    color: #fff !important;
}

.cbc-topbar__sep {
    width: 1px;
    height: 14px;
    background: rgba(255, 255, 255, 0.25);
}

/* Main bar */
.cbc-mainbar .vc_column-inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.cbc-mainbar .vcex-flex-container {
    min-height: 84px;
    transition: min-height 0.25s;
}

#site-header.is-sticky .cbc-mainbar .vcex-flex-container {
    min-height: 68px;
}

.cbc-logo img {
    display: block;
    width: 190px;
    height: auto;
    transition: width 0.25s;
}

#site-header.is-sticky .cbc-logo img {
    width: 160px;
}

.cbc-mainbar .vcex-horizontal-menu {
    flex: 1;
}

.cbc-header-cta.theme-button {
    min-height: 44px;
    margin: 0 !important;
    padding: 0 22px !important;
    font-size: 14.5px !important;
    white-space: nowrap;
}

#site-header.is-sticky {
    box-shadow: 0 10px 30px -18px rgba(14, 34, 51, 0.35);
}

/* Dropdowns */
.cbc-mainbar .vcex-horizontal-menu-nav__sub {
    border: 1px solid var(--cbc-line) !important;
}

/* Off-canvas (mobile) menu */
.vcex-off-canvas-menu-nav a {
    text-decoration: none;
}

/* =========================================================================
 * 8. Footer builder
 * ====================================================================== */

#footer-builder,
.footer-builder {
    background: var(--cbc-navy) !important;
}

.cbc-footer {
    color: rgba(255, 255, 255, 0.72);
    font-size: 15px;
    line-height: 1.6;
}

.cbc-footer a {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
}

.cbc-footer a:hover {
    color: #fff;
}

.cbc-footer .vcex-heading {
    margin-bottom: 16px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--cbc-accent-light) !important;
}

.cbc-footer__newsletter {
    padding-top: clamp(48px, 6vw, 72px);
    padding-bottom: clamp(36px, 4vw, 48px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.cbc-footer__newsletter .cbc-footer__title {
    margin: 0 0 8px !important;
    font-size: clamp(24px, 2.6vw, 32px) !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
    color: #fff !important;
}

.cbc-footer__main {
    padding-top: clamp(44px, 5vw, 64px);
    padding-bottom: 24px;
}

.cbc-footer__logo img {
    width: 200px;
    height: auto;
}

.cbc-footer__blurb {
    max-width: 22rem;
    margin-top: 18px;
}

.cbc-footer .vcex-social-links {
    margin-top: 20px;
}

.cbc-footer .vcex-social-links a {
    display: inline-grid !important;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    color: #fff !important;
    transition: background 0.2s;
}

.cbc-footer .vcex-social-links a:hover {
    background: var(--cbc-accent);
}

/* Footer link menus (vcex_horizontal_menu) shown as vertical lists */
.cbc-footer .vcex-horizontal-menu-nav__list {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 2px !important;
}

.cbc-footer .vcex-horizontal-menu-nav__item > a {
    padding: 5px 0 !important;
    color: rgba(255, 255, 255, 0.78) !important;
    font-size: 15px !important;
    font-weight: 400 !important;
}

.cbc-footer .vcex-horizontal-menu-nav__item > a:hover {
    color: #fff !important;
}

.cbc-footer .vcex-list_item {
    margin-bottom: 10px !important;
    color: rgba(255, 255, 255, 0.78);
}

.cbc-footer .vcex-list-item-icon {
    color: var(--cbc-accent-light) !important;
}

/* Footer columns: headings after a list get breathing room */
.cbc-footer .vcex-list_item + .vcex-heading,
.cbc-footer .vcex-list_item + style + .vcex-heading {
    margin-top: 28px !important;
}

/* Newsletter form inline on the dark band: fields + button on one row */
.cbc-footer .gform_wrapper form {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.cbc-footer .gform_wrapper .gform_body {
    flex: 1;
    min-width: 0;
}

.cbc-footer .gform_wrapper .gform_footer {
    flex-shrink: 0;
    margin: 0 !important;
}

.cbc-footer .gform_wrapper .gform_validation_errors,
.cbc-footer .gform_wrapper .gform_required_legend {
    display: none;
}


.cbc-footer .gform_wrapper.gravity-theme .gform_fields {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

.cbc-footer .gform_wrapper .gfield {
    grid-column: span 1 !important;
}

.cbc-footer .gform_wrapper input[type="text"],
.cbc-footer .gform_wrapper input[type="email"] {
    border-color: rgba(255, 255, 255, 0.18) !important;
    background: rgba(255, 255, 255, 0.07) !important;
    color: #fff !important;
}

.cbc-footer .gform_wrapper input::placeholder {
    color: rgba(255, 255, 255, 0.6) !important;
}

.cbc-footer .gform_wrapper .gform_button {
    border-color: #fff;
    background: #fff;
    color: var(--cbc-navy);
}

.cbc-footer .gform_wrapper .gform_button:hover {
    border-color: var(--cbc-accent-soft);
    background: var(--cbc-accent-soft);
    color: var(--cbc-navy);
}

/* Footer bottom (Total's copyright bar) */
#footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    background: var(--cbc-navy) !important;
    color: rgba(255, 255, 255, 0.6) !important;
    font-size: 13.5px;
    text-transform: none !important;
}

#footer-bottom .container {
    padding-top: 22px !important;
    padding-bottom: 26px !important;
}

#footer-bottom a {
    color: rgba(255, 255, 255, 0.8) !important;
}

#footer-bottom a:hover {
    color: #fff !important;
}

#copyright {
    text-transform: none !important;
}

/* =========================================================================
 * 9. Cards & Total elements
 * ====================================================================== */

/* Staff grid */
.vcex-staff-grid .staff-entry-inner,
.vcex-staff-grid .wpex-card {
    overflow: hidden;
    border: 1px solid var(--cbc-line) !important;
    border-radius: var(--cbc-radius) !important;
    background: #fff;
    box-shadow: var(--cbc-shadow);
    transition: box-shadow 0.2s, transform 0.2s;
}

.vcex-staff-grid .staff-entry-inner:hover,
.vcex-staff-grid .wpex-card:hover {
    box-shadow: var(--cbc-shadow-hover);
    transform: translateY(-2px);
}

/* Post cards (e.g. DBR archive) */
.wpex-post-cards .wpex-card-inner,
.wpex-post-cards .wpex-card > .wpex-card-inner {
    border-radius: var(--cbc-radius) !important;
}

.wpex-post-cards .wpex-card-inner[class*="wpex-border"] {
    border-color: var(--cbc-line) !important;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.wpex-post-cards .wpex-card-inner[class*="wpex-border"]:hover {
    border-color: rgba(20, 104, 162, 0.4) !important;
    box-shadow: var(--cbc-shadow-hover);
}

/* Icon boxes (contact info cards, kids ministry tiles) */
.vcex-icon-box-two,
.vcex-icon-box-eight {
    border-radius: var(--cbc-radius) !important;
    overflow: hidden;
}

.vcex-icon-box-two[class*="wpex-p-"],
.vcex-icon-box-two {
    border: 1px solid var(--cbc-line);
    background: #fff !important;
    box-shadow: var(--cbc-shadow);
}

.vcex-icon-box-two .vcex-icon-box-symbol {
    display: inline-grid;
    place-items: center;
    width: 52px;
    height: 52px;
    margin: 0 auto 14px !important;
    border-radius: 14px;
    background: var(--cbc-accent-soft);
    color: var(--cbc-accent) !important;
}

/* Teasers (What We Believe statements) */
.vcex-teaser {
    border-radius: var(--cbc-radius) !important;
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
}

.vcex-teaser:hover {
    box-shadow: var(--cbc-shadow-hover);
    transform: translateY(-2px);
}

/* Image banners */
.vcex-image-banner {
    border-radius: var(--cbc-radius) !important;
    overflow: hidden;
}

/* Steps (8 Distinctives) */
.vcex-steps-item {
    border-color: var(--cbc-line) !important;
}

/* Dividers */
.vcex-divider-solid {
    border-color: var(--cbc-line) !important;
}

/* =========================================================================
 * 10. Forms (Gravity Forms)
 * ====================================================================== */

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper select,
.gform_wrapper textarea {
    min-height: 50px;
    padding: 12px 16px !important;
    border: 1px solid #cfd7df !important;
    border-radius: var(--cbc-radius-sm) !important;
    background: #fff !important;
    color: var(--cbc-ink) !important;
    font-size: 16px !important;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.gform_wrapper textarea {
    min-height: 150px;
}

.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
    border-color: var(--cbc-accent) !important;
    outline: none !important;
    box-shadow: 0 0 0 4px rgba(20, 104, 162, 0.15) !important;
}

.gform_wrapper .gfield_label {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--cbc-ink);
}

.gform_wrapper .gform_footer {
    margin-top: 20px !important;
}

/* Contact form card */
.contact-form,
.ser-form {
    padding: clamp(24px, 3vw, 40px) !important;
    border: 1px solid var(--cbc-line);
    border-radius: calc(var(--cbc-radius) + 4px) !important;
    background: #fff;
    box-shadow: 0 24px 48px -32px rgba(14, 34, 51, 0.35) !important;
}

/* Info cards in a padded grey column: let the icon box be the only card */
.wpb_column:has(> .vc_column-inner > .wpb_wrapper > .vcex-icon-box-two) > .vc_column-inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    background: transparent !important;
}

.vcex-icon-box-two {
    height: 100%;
    padding: 28px 22px !important;
}

.vcex-icon-box-two .vcex-icon-box-heading {
    margin-bottom: 8px !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

.vcex-icon-box-two .vcex-icon-box-content {
    color: var(--cbc-muted);
    line-height: 1.6;
}

/* Photo + label boxes (Total icon box style "eight": kids/student pages) */
.vcex-icon-box-eight.icon-box-name,
.vcex-icon-box-eight {
    border-radius: 12px !important;
}

.vcex-icon-box-eight[class*="vc_custom_"] {
    background-color: var(--cbc-navy) !important;
}

.vcex-icon-box-eight .vcex-icon-box-heading {
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

/* Statement text (Learn About Compass → Our Mission) */
.cbc-statement {
    margin: 0 0 12px !important;
    font-family: var(--cbc-serif);
    font-size: clamp(20px, 2vw, 26px);
    font-weight: 600;
    line-height: 1.4 !important;
    color: var(--cbc-ink);
}

.cbc-statement-ref {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--cbc-accent);
}

/* DBR recent readings (Total post cards, blog_9) */
.cbc-dbr-cards .wpex-card-inner {
    border-width: 1px !important;
    border-radius: var(--cbc-radius) !important;
    background: #fff;
}

.cbc-dbr-cards .wpex-card-title {
    margin-bottom: 8px !important;
    font-size: 22px !important;
}

.cbc-dbr-cards .wpex-card-excerpt {
    font-family: var(--cbc-serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--cbc-accent);
}

.cbc-dbr-intro .theme-button {
    margin-bottom: 10px !important;
}

/* Teaser cards fill their row height */
.vcex-teaser.vcex-teaser-three {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
}

/* =========================================================================
 * 11. Series Engine & embedded widgets
 * ====================================================================== */

/* display.church groups & calendar widgets */
.dce--groups-cards-card {
    overflow: hidden;
    border: 1px solid var(--cbc-line) !important;
    border-radius: var(--cbc-radius) !important;
    box-shadow: var(--cbc-shadow) !important;
    transition: box-shadow 0.2s, transform 0.2s;
}

.dce--groups-cards-card:hover {
    box-shadow: var(--cbc-shadow-hover) !important;
    transform: translateY(-2px);
}

.dce--groups-cards-card h2 {
    font-weight: 700 !important;
    color: var(--cbc-ink) !important;
}

.dce--groups-card--cta-btn,
.dce-calendar a[class*="btn"],
.dce-calendar button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 22px !important;
    border-radius: 999px !important;
    background: var(--cbc-accent) !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
}

.dce--groups-card--cta-btn:hover {
    background: var(--cbc-accent-dark) !important;
}

#seriesengine,
#seriesengine p {
    font-size: 16px !important;
    line-height: 1.65;
}

#seriesengine h2,
#seriesengine h3 {
    letter-spacing: -0.01em;
}

#seriesengine .enmse-watch a,
#seriesengine .enmse-listen a,
#seriesengine .enmse-card-links a,
#seriesengine ul.enmse-modern-player-tabs li a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

#seriesengine .enmse-card-links a {
    padding: 6px 14px !important;
}

#seriesengine select,
.enmse-selector select {
    min-height: 48px;
    padding: 10px 14px;
    border: 1px solid #cfd7df !important;
    border-radius: var(--cbc-radius-sm) !important;
    background-color: #fff !important;
}

#seriesengine .enmse-selector {
    padding: 0 !important;
    background: none !important;
}

#seriesengine .enmse-modern-player-tabs li a {
    border-radius: 999px !important;
}

#seriesengine .enmse-message-card {
    overflow: hidden;
    border: 1px solid var(--cbc-line) !important;
    border-radius: var(--cbc-radius) !important;
    background: #fff !important;
}

#seriesengine .enmse-vid-container iframe,
#seriesengine .enmse-media-container {
    border-radius: var(--cbc-radius);
    overflow: hidden;
}

/* =========================================================================
 * 12. Responsive
 * ====================================================================== */

@media (max-width: 959px) {
    .cbc-mainbar .vcex-flex-container {
        min-height: 72px;
    }

    .cbc-logo img {
        width: 170px;
    }
}

@media (max-width: 767px) {
    .vc_section.page-block.wpex-has-overlay:has(> .image-header) {
        min-height: 300px;
        padding-top: 110px !important;
    }

    .cbc-topbar {
        font-size: 12.5px;
    }

    .cbc-footer .gform_wrapper.gravity-theme .gform_fields {
        grid-template-columns: 1fr !important;
    }

    .cbc-footer .gform_wrapper form {
        flex-direction: column;
        align-items: stretch;
    }

    .cbc-footer__main .wpb_column {
        margin-bottom: 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        transition: none !important;
    }
}

/* =========================================================================
 * Header visibility helpers — desktop menu ≥ 1200px, off-canvas below
 * ====================================================================== */

@media (max-width: 1199px) {
    .cbc-desktop-only,
    .cbc-topbar__info .cbc-hide-phone {
        display: none !important;
    }
}

@media (min-width: 1200px) {
    .cbc-mobile-only {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .cbc-hide-phone {
        display: none !important;
    }
}

/* Buttons inside page heroes sit below the title, not against it */
.image-header .vcex-multi-buttons,
.image-header .vcex-button,
.image-header .theme-button {
    margin-top: 28px !important;
}

/* Top bar links and icons never wrap */
.cbc-topbar__links {
    flex-wrap: nowrap !important;
}

.cbc-topbar__links .theme-button,
.cbc-topbar__links .vcex-social-links {
    flex-shrink: 0;
    white-space: nowrap;
}

.cbc-topbar__links .vcex-social-links {
    flex-wrap: nowrap !important;
}

/* Hero stacking: parallax photo → overlay → text, regardless of DOM order */
.vc_section.page-block.wpex-has-overlay:has(> .image-header) > .vc_parallax-inner {
    z-index: 0;
}

.vc_section.page-block.wpex-has-overlay:has(> .image-header) > .wpex-bg-overlay-wrap {
    z-index: 1;
}

.vc_section.page-block.wpex-has-overlay:has(> .image-header) > .image-header {
    position: relative;
    z-index: 2;
}

/* =========================================================================
 * Round 2 — header & footer refinements
 * ====================================================================== */

/* Top bar: links and icons sit flush right */
.cbc-topbar__links.vcex-flex-container {
    justify-content: flex-end !important;
    width: 100%;
}

.cbc-topbar__links .vcex-social-links {
    justify-content: flex-end;
}

/* Phones: one row — service time left, social icons right */
@media (max-width: 767px) {
    .cbc-topbar > .vc_row,
    .cbc-topbar.vc_row {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
    }

    .cbc-topbar .wpb_column {
        width: auto !important;
        flex: 0 1 auto;
    }

    .cbc-topbar .wpb_column:last-child {
        flex: 1 0 auto;
    }

    .cbc-topbar__links .vcex-social-links {
        gap: 10px !important;
    }
}

/* Search icon after "Plan a Visit" */
.cbc-header-search {
    flex-shrink: 0;
}

.cbc-header-search a {
    display: grid !important;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-left: -8px;
    border-radius: 50%;
    color: var(--cbc-ink) !important;
    transition: background 0.2s, color 0.2s;
}

.cbc-header-search a:hover {
    background: var(--cbc-accent-soft);
    color: var(--cbc-accent) !important;
}

.cbc-header-search svg {
    width: 18px;
    height: 18px;
}

/* Footer newsletter: button lines up with the inputs */
.cbc-footer .gform_wrapper .gform_footer,
.cbc-footer .gform_wrapper .gform-footer {
    margin: 0 !important;
    padding: 0 !important;
}

.cbc-footer .gform_wrapper .gform_button {
    margin: 0 !important;
}

.cbc-footer .gform_wrapper .gfield_label,
.cbc-footer .gform_wrapper .gform_required_legend {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

@media (max-width: 767px) {
    .cbc-topbar__info .vcex-list_item,
    .cbc-topbar__info .vcex-list_item * {
        white-space: nowrap;
    }

    .cbc-topbar__links .vcex-social-links a {
        font-size: 14px !important;
    }
}

@media (max-width: 767px) {
    .cbc-topbar__links .vcex-social-links {
        gap: 0 !important;
    }

    .cbc-topbar__links .vcex-social-links a {
        display: inline-grid !important;
        place-items: center;
        width: 30px;
        margin: 0 !important;
        padding: 0 !important;
    }

    .cbc-topbar .wpb_column > .vc_column-inner {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
}

/* =========================================================================
 * Round 2 — shared components for page rebuilds
 * ====================================================================== */

/* Secondary white-outline button on dark heroes */
.page-block.wpex-has-overlay .theme-button.cbc-btn-outline-light {
    border-color: rgba(255, 255, 255, 0.6);
    background: transparent;
    color: #fff;
}

.page-block.wpex-has-overlay .theme-button.cbc-btn-outline-light:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

.image-header .cbc-hero-btn {
    margin-right: 10px !important;
}

/* Anchored sections clear the sticky header */
[id].vc_section {
    scroll-margin-top: 90px;
}

/* Rounded image helper (vcex_image el_class="cbc-rounded-img") */
.cbc-rounded-img img {
    width: 100%;
    border-radius: calc(var(--cbc-radius) + 4px) !important;
    object-fit: cover;
}

/* Check-mark list (vc_column_text el_class="cbc-checklist") */
.cbc-checklist ul {
    display: grid;
    gap: 14px;
    margin: 0 0 28px !important;
    padding: 0 !important;
    list-style: none !important;
}

.cbc-checklist li {
    position: relative;
    margin: 0 !important;
    padding-left: 38px;
    line-height: 1.55;
}

.cbc-checklist li::before {
    content: "";
    position: absolute;
    top: 1px;
    left: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--cbc-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 14px no-repeat;
}

.cbc-checklist strong {
    color: var(--cbc-ink);
}

/* Numbered steps (icon boxes with classes="cbc-step" in a row el_class="cbc-steps") */
.cbc-steps {
    counter-reset: cbc-step;
}

.vcex-icon-box-two.cbc-step {
    position: relative;
    padding-top: 36px !important;
    counter-increment: cbc-step;
}

.vcex-icon-box-two.cbc-step::before {
    content: "Step " counter(cbc-step);
    position: absolute;
    top: 14px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--cbc-accent);
}

/* Fact cards: headings sized as facts, not section titles */
.cbc-visit-facts .vcex-icon-box-heading {
    font-size: 19px !important;
    letter-spacing: -0.01em;
}

.cbc-visit-facts .vcex-icon-box-content a,
.vcex-icon-box-two .vcex-icon-box-content a {
    font-weight: 700;
}

/* FAQ (Total toggle group) */
.cbc-faq__list {
    max-width: 860px;
    margin: 8px auto 0 !important;
}

.cbc-faq__list .vcex-toggle {
    margin: 0 0 12px !important;
    border: 1px solid var(--cbc-line) !important;
    border-radius: 14px !important;
    background: #fff;
    overflow: hidden;
}

.cbc-faq__list .vcex-toggle__trigger,
.cbc-faq__list .vcex-toggle__heading {
    padding: 18px 22px !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--cbc-ink) !important;
}

.cbc-faq__list .vcex-toggle__content {
    padding: 0 22px 20px !important;
    color: var(--cbc-body);
    line-height: 1.7;
}

.cbc-faq__list .vcex-toggle__icon {
    color: var(--cbc-accent) !important;
}

.cbc-faq__more {
    margin-top: 24px !important;
    text-align: center;
    color: var(--cbc-muted);
}

/* Hero content: headings and text full width, buttons sit side by side */
.image-header .wpb_wrapper {
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: center !important;
}

.image-header .wpb_wrapper > :not(.vcex-button):not(.theme-button):not(.vcex-multi-buttons):not(style) {
    flex: 0 0 100%;
}

/* Equal-height rows: cards fill the column */
.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper > .vcex-icon-box-two:only-child {
    flex: 1;
}

/* Photo caption label used on About/New Here ("Reaching, Teaching, Training") */
.vcex-heading.about-us-section-heading {
    padding: 14px 22px !important;
    border-radius: 12px !important;
    background: var(--cbc-navy) !important;
    box-shadow: 0 16px 30px -18px rgba(14, 34, 51, 0.6);
    font-size: 19px !important;
}

/* "Where we meet" info card over the map */
.page-block-where-we-meet .wpb_column .vc_column-inner[class*="vc_custom_"],
.page-block-where-we-meet-mobile .wpb_column .vc_column-inner[class*="vc_custom_"] {
    border-radius: calc(var(--cbc-radius) + 4px) !important;
    box-shadow: 0 24px 48px -28px rgba(14, 34, 51, 0.45) !important;
}

/* Hero paragraph keeps its own row; only the text inside is width-limited */
.image-header .wpb_wrapper > .wpb_text_column {
    max-width: none !important;
    flex: 0 0 100%;
}

.image-header .wpb_text_column > .wpb_wrapper {
    max-width: 38rem;
}

/* =========================================================================
 * Message pages (Series Engine) — hero + player area
 * ====================================================================== */

.cbc-message-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(48px, 6vw, 88px) 0;
    background: var(--cbc-navy);
    color: #fff;
}

/* Blurred artwork fills the background */
.cbc-message-hero::before {
    content: "";
    position: absolute;
    inset: -40px;
    background: var(--cbc-msg-art, none) center / cover no-repeat;
    filter: blur(28px) saturate(1.1);
    opacity: 0.55;
    transform: scale(1.1);
}

.cbc-message-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(8, 20, 31, 0.95) 0%, rgba(8, 20, 31, 0.78) 55%, rgba(8, 20, 31, 0.55) 100%);
}

.cbc-message-hero__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(28px, 5vw, 64px);
}

.cbc-message-hero__eyebrow {
    margin: 0 0 14px !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--cbc-accent-light);
}

.cbc-message-hero__title {
    margin: 0 0 14px !important;
    font-size: clamp(36px, 4.6vw, 60px) !important;
    font-weight: 700;
    line-height: 1.05 !important;
    letter-spacing: -0.02em;
    text-wrap: balance;
    color: #fff !important;
}

.cbc-message-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin: 0 0 28px !important;
    font-size: 17px;
    color: rgba(255, 255, 255, 0.82);
}

.cbc-message-hero__passage {
    font-family: var(--cbc-serif);
    font-weight: 600;
    color: #fff;
}

.cbc-message-hero__meta span + span::before {
    content: "·";
    margin-right: 18px;
    color: rgba(255, 255, 255, 0.45);
}

.cbc-message-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 15px;
}

/* The row's gap does the spacing; the theme's 15px button margins made a
   40px gap whenever the buttons wrapped onto a second line */
.cbc-message-hero__actions .theme-button {
    margin: 0 !important;
}

@media (max-width: 600px) {
    /* Watch + Listen share the first row, the transcript button runs full width */
    .cbc-message-hero__actions .theme-button {
        flex: 1 1 0;
        justify-content: center;
    }

    .cbc-message-hero__actions .theme-button[data-cbc-open-transcript] {
        flex-basis: 100%;
    }
}

.cbc-message-hero .theme-button.cbc-msg-btn {
    border-color: #fff;
    background: #fff;
    color: var(--cbc-navy);
}

.cbc-message-hero .theme-button.cbc-msg-btn:hover {
    border-color: var(--cbc-accent-soft);
    background: var(--cbc-accent-soft);
    color: var(--cbc-navy);
}

.cbc-message-hero .theme-button.cbc-msg-btn--outline {
    border-color: rgba(255, 255, 255, 0.55);
    background: transparent;
    color: #fff;
}

.cbc-message-hero .theme-button.cbc-msg-btn--outline:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

.cbc-message-hero__art img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: calc(var(--cbc-radius) + 2px);
    object-fit: cover;
    box-shadow: 0 30px 60px -28px rgba(0, 0, 0, 0.7);
}

/* The hero shows title & meta — hide Series Engine's duplicates on message pages */
.cbc-has-message-hero #seriesengine .enmse-modern-message-meta,
.cbc-has-message-hero #seriesengine .enmse-modern-message-title {
    display: none !important;
}

.cbc-has-message-hero #content-wrap {
    padding-top: 0 !important;
}

.cbc-has-message-hero .single-content {
    margin-top: clamp(32px, 4vw, 56px) !important;
}

/* ---- Series Engine player area (Sermons page + message pages) ---------- */

#seriesengine .enmse-content-container {
    max-width: 920px;
    margin: 0 auto !important;
    line-height: 1.6;
}

#seriesengine .enmse-modern-message-meta {
    margin: 0 0 6px !important;
    font-size: 13px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cbc-accent) !important;
}

#seriesengine .enmse-modern-message-title {
    margin: 0 0 22px !important;
    font-size: clamp(26px, 3vw, 36px) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    color: var(--cbc-ink) !important;
}

#seriesengine .enmse-vid-container,
#seriesengine .enmse-listen img {
    overflow: hidden;
    border-radius: var(--cbc-radius);
    box-shadow: 0 24px 48px -30px rgba(14, 34, 51, 0.55);
}

/* Watch / Listen tabs */
#seriesengine ul.enmse-modern-player-tabs {
    display: flex !important;
    justify-content: center;
    gap: 10px;
    margin: 20px 0 8px !important;
    padding: 0 !important;
}

#seriesengine ul.enmse-modern-player-tabs li {
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
}

#seriesengine ul.enmse-modern-player-tabs li a {
    display: inline-flex !important;
    align-items: center;
    min-height: 44px;
    padding: 0 24px !important;
    border: 2px solid var(--cbc-line) !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: var(--cbc-ink) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

#seriesengine ul.enmse-modern-player-tabs li.enmse-tab-selected a {
    border-color: var(--cbc-accent) !important;
    background: var(--cbc-accent) !important;
    color: #fff !important;
}

/* Details */
#seriesengine .enmse-modern-player-details {
    margin-top: 28px;
    padding: clamp(22px, 3vw, 32px);
    border: 1px solid var(--cbc-line);
    border-radius: var(--cbc-radius);
    background: var(--cbc-surface);
    text-align: left;
}

#seriesengine .enmse-message-description {
    margin: 0 0 18px !important;
    font-size: 17px !important;
    line-height: 1.7 !important;
    color: var(--cbc-body) !important;
}

#seriesengine .enmse-related-topics,
#seriesengine .enmse-downloads {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 18px !important;
    font-size: 0 !important; /* hides the "|" and &nbsp; separators */
    text-align: left !important;
}

#seriesengine .enmse-related-topics a,
#seriesengine .enmse-downloads a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 16px !important;
    border: 1px solid #cfd7df;
    border-radius: 999px;
    background: #fff;
    color: var(--cbc-ink) !important;
    font-size: 14px !important;
    font-weight: 700;
    text-decoration: none !important;
    transition: border-color 0.2s, background 0.2s;
}

#seriesengine .enmse-related-topics a:hover,
#seriesengine .enmse-downloads a:hover {
    border-color: var(--cbc-accent);
    background: var(--cbc-accent-soft);
    color: var(--cbc-ink) !important;
}

#seriesengine .enmse-modern-player-details h3 {
    margin: 22px 0 6px !important;
    font-size: 19px !important;
    font-weight: 700 !important;
    color: var(--cbc-ink) !important;
}

#seriesengine .enmse-modern-player-details h3 em {
    font-style: normal;
}

#seriesengine .enmse-modern-player-details > p:not([class]) {
    margin: 0 0 16px !important;
    font-size: 15px !important;
    color: var(--cbc-muted) !important;
}

/* Share — SVG icons replace Series Engine's PNG pills; copy-link behaviour in js/main.js */
#seriesengine .enmse-share-details {
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: normal !important;
}

#seriesengine .enmse-share-details ul {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: auto !important;
    margin: 24px 0 0 !important;
    padding: 0 !important;
}

#seriesengine .enmse-share-details ul::before {
    content: "Share";
    margin-right: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cbc-muted);
}

#seriesengine .enmse-share-details li {
    position: relative;
    float: none !important;
    margin: 0 !important;
    list-style: none;
}

#seriesengine .enmse-share-details li a {
    --cbc-share-brand: var(--cbc-accent);
    --cbc-share-icon: none;
    position: relative;
    display: grid !important;
    place-items: center;
    box-sizing: border-box !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    border: 1px solid var(--cbc-line) !important;
    border-radius: 50% !important;
    background: #fff none !important;
    color: var(--cbc-ink) !important;
    transition: background-color 0.2s, border-color 0.2s, color 0.2s, transform 0.2s, box-shadow 0.2s;
}

#seriesengine .enmse-share-details li a::before {
    content: "";
    width: 18px;
    height: 18px;
    background-color: currentColor;
    -webkit-mask: var(--cbc-share-icon) center / contain no-repeat;
    mask: var(--cbc-share-icon) center / contain no-repeat;
}

/* Network names stay for screen readers only */
#seriesengine .enmse-share-details li a span {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

#seriesengine .enmse-share-details li a:hover,
#seriesengine .enmse-share-details li a:focus-visible {
    border-color: var(--cbc-share-brand) !important;
    background-color: var(--cbc-share-brand) !important;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px -6px var(--cbc-share-brand);
}

#seriesengine .enmse-share-details li a:focus-visible {
    outline: 2px solid var(--cbc-accent) !important;
    outline-offset: 3px;
}

#seriesengine .enmse-share-details li.enmse-facebook a {
    --cbc-share-brand: #1877f2;
    --cbc-share-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 8.5V6.8c0-.8.2-1.3 1.4-1.3H17V2.6c-.3 0-1.3-.1-2.4-.1-2.4 0-4 1.4-4 4.1v1.9H8v3.2h2.6V22H14V11.7h2.6l.4-3.2H14z'/%3E%3C/svg%3E");
}

#seriesengine .enmse-share-details li.enmse-twitter a {
    --cbc-share-brand: #000;
    --cbc-share-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.75 3h3.07l-6.7 7.66L22 21h-6.17l-4.83-6.32L5.47 21H2.4l7.17-8.19L2 3h6.33l4.37 5.78L17.75 3zm-1.08 16.2h1.7L7.4 4.73H5.58L16.67 19.2z'/%3E%3C/svg%3E");
}

#seriesengine .enmse-share-details li.enmse-email a {
    --cbc-share-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}

#seriesengine .enmse-share-details li.enmse-share-link a {
    --cbc-share-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E");
}

#seriesengine .enmse-share-details li.enmse-share-link a.is-copied {
    --cbc-share-brand: #1d8a4e;
    --cbc-share-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
    border-color: var(--cbc-share-brand) !important;
    background-color: var(--cbc-share-brand) !important;
    color: #fff !important;
}

/* "Link copied" bubble */
#seriesengine .enmse-share-details li.enmse-share-link a::after {
    content: "Link copied";
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    padding: 6px 10px;
    border-radius: 6px;
    background: var(--cbc-navy);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, 4px);
    transition: opacity 0.2s, transform 0.2s;
}

#seriesengine .enmse-share-details li.enmse-share-link a.is-copied::after {
    opacity: 1;
    transform: translate(-50%, 0);
}

#seriesengine .enmse-copy-link-box {
    display: none !important;
}

@media (prefers-reduced-motion: reduce) {
    #seriesengine .enmse-share-details li a,
    #seriesengine .enmse-share-details li a::after {
        transition: none;
    }

    #seriesengine .enmse-share-details li a:hover,
    #seriesengine .enmse-share-details li a:focus-visible {
        transform: none;
    }
}

/* More from this series */
#seriesengine .enmse-more-title {
    margin: 48px 0 18px !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    color: var(--cbc-ink) !important;
}

#seriesengine .enmse-more-title em {
    font-style: normal;
}

#seriesengine .enmse-related-area.card-view {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 20px;
}

#seriesengine .enmse-message-card {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 0 18px !important;
    overflow: hidden;
    border: 1px solid var(--cbc-line) !important;
    border-radius: var(--cbc-radius) !important;
    background: #fff !important;
    text-align: left !important;
    box-shadow: var(--cbc-shadow);
    transition: box-shadow 0.2s, transform 0.2s;
}

#seriesengine .enmse-message-card:hover {
    box-shadow: var(--cbc-shadow-hover);
    transform: translateY(-2px);
}

#seriesengine .enmse-message-card img {
    display: block;
    width: 100% !important;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    margin: 0 0 14px !important;
}

#seriesengine .enmse-message-card h6 {
    margin: 0 18px 4px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cbc-accent) !important;
}

#seriesengine .enmse-message-card h5 {
    margin: 0 18px 4px !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: var(--cbc-ink) !important;
}

#seriesengine .enmse-message-card h5 a {
    color: inherit !important;
    text-decoration: none !important;
}

#seriesengine .enmse-message-card .enmse-speaker-name {
    margin: 0 18px 14px !important;
    font-size: 14px !important;
    font-style: normal !important;
    color: var(--cbc-muted) !important;
}

#seriesengine .enmse-message-card .enmse-card-links {
    display: flex;
    gap: 8px;
    margin: 0 18px !important;
}

#seriesengine .enmse-message-card .enmse-spacer {
    display: none;
}

#seriesengine .enmse-message-card .enmse-card-links a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 14px !important;
    border-radius: 999px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

#seriesengine .enmse-poweredby {
    margin-top: 32px !important;
    font-size: 11px !important;
    opacity: 0.5;
}

#seriesengine .enmse-poweredby a {
    color: var(--cbc-muted) !important;
}

@media (max-width: 900px) {
    .cbc-message-hero__inner {
        grid-template-columns: 1fr;
    }

    .cbc-message-hero__art {
        order: -1;
        max-width: 520px;
    }
}

/* Message hero: sentence case, passage stays white even if RefTagger links it */
.cbc-message-hero .cbc-message-hero__title {
    text-transform: none !important;
}

.cbc-message-hero__passage a,
.cbc-message-hero__passage a:hover {
    color: #fff !important;
    text-decoration: none !important;
}

/* Beat the older customizer rules (#seriesengine a {...!important}), which load later */
html body #seriesengine ul.enmse-modern-player-tabs li a {
    border-color: var(--cbc-line) !important;
    background: #fff !important;
    color: var(--cbc-ink) !important;
}

html body #seriesengine ul.enmse-modern-player-tabs li.enmse-tab-selected a {
    border-color: var(--cbc-accent) !important;
    background: var(--cbc-accent) !important;
    color: #fff !important;
}

html body #seriesengine .enmse-related-topics,
html body #seriesengine .enmse-downloads {
    font-size: 0 !important;
    color: transparent !important;
    background: none !important;
    padding: 0 !important;
}

html body #seriesengine .enmse-related-topics a,
html body #seriesengine .enmse-downloads a {
    padding: 0 16px !important;
    border: 1px solid #cfd7df !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: var(--cbc-ink) !important;
    font-size: 14px !important;
}

html body #seriesengine .enmse-related-topics a:hover,
html body #seriesengine .enmse-downloads a:hover {
    border-color: var(--cbc-accent) !important;
    background: var(--cbc-accent-soft) !important;
}

html body #seriesengine .enmse-message-card .enmse-card-links a {
    color: #fff !important;
}

html body #seriesengine ul.enmse-modern-player-tabs {
    margin-bottom: 20px !important;
}

#seriesengine .enmse-modern-player-details h3 {
    text-align: left !important;
}

/* Series grid ([cbc_series_grid]) */
.cbc-series-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.cbc-series-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--cbc-line);
    border-radius: var(--cbc-radius);
    background: #fff;
    color: var(--cbc-ink);
    text-decoration: none !important;
    box-shadow: var(--cbc-shadow);
    transition: box-shadow 0.2s, transform 0.2s;
}

.cbc-series-card:hover {
    box-shadow: var(--cbc-shadow-hover);
    transform: translateY(-3px);
    color: var(--cbc-ink);
}

.cbc-series-card__img {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--cbc-surface);
}

.cbc-series-card__img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s;
}

.cbc-series-card:hover .cbc-series-card__img img {
    transform: scale(1.04);
}

.cbc-series-card__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px 18px 18px;
}

.cbc-series-card__body strong {
    font-size: 17px;
    line-height: 1.3;
}

.cbc-series-card__body span {
    font-size: 13.5px;
    color: var(--cbc-muted);
}

@media (max-width: 1024px) {
    .cbc-series-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .cbc-series-grid {
        grid-template-columns: 1fr;
    }
}

/* "Browse series" dropdown (beats Series Engine's .enmse-selector.one rules) */
html body #seriesengine select,
html body #seriesengine#seriesengine .enmse-selector select {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: block;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 520px;
    height: 52px;
    min-height: 52px;
    margin: 0 auto !important;
    padding: 0 48px 0 20px !important;
    border: 1px solid #cfd7df !important;
    border-radius: 999px !important;
    background-color: #fff !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231468a2' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 20px center !important;
    background-size: 14px !important;
    box-shadow: 0 1px 2px rgba(15, 30, 45, .06);
    font-size: 16px !important;
    font-weight: 600;
    line-height: 50px;
    color: var(--cbc-ink) !important;
    text-overflow: ellipsis;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease;
}

html body #seriesengine#seriesengine .enmse-selector select:hover {
    border-color: #9fb0c2 !important;
}

html body #seriesengine#seriesengine .enmse-selector select:focus-visible {
    outline: none;
    border-color: var(--cbc-accent) !important;
    box-shadow: 0 0 0 3px rgba(20, 104, 162, .2);
}

/* Consecutive buttons in a column sit side by side */
.wpb_wrapper > .vcex-button-wrap,
.wpb_wrapper > .theme-button-wrap,
.wpb_wrapper > .vc_custom_1745651981964 {
    display: inline-block;
    margin-right: 10px !important;
    vertical-align: top;
}

.wpb_wrapper > .vcex-button-wrap > .theme-button,
.wpb_wrapper > .theme-button-wrap > .theme-button {
    margin-right: 0 !important;
}

/* Centred intro text and CTA columns */
.cbc-lede-center,
.page-block .cbc-lede-center {
    max-width: 680px !important;
    margin: 0 auto 32px !important;
    font-size: 18px;
    text-align: center;
    color: var(--cbc-body);
}

.cbc-center-cta .wpb_wrapper {
    text-align: center;
}

.cbc-center-cta .cbc-lede-center {
    margin: 40px auto 8px !important;
}

/* Wide program tiles (Kids: Sunday Mornings / Adventure Club) */
.cbc-tile--wide.vcex-image-banner {
    min-height: 340px;
}

/* Image banners used as tiles across the site (Community Groups "Other ministries", Kids) */
.vcex-image-banner.cbc-tile,
.page-block .vcex-image-banner {
    border-radius: var(--cbc-radius) !important;
}

/* Tiles (shared with the homepage) */
/* -------------------------------------------------------------------------
 * Get involved — image tiles (vcex_image_banner)
 * ---------------------------------------------------------------------- */

.cbc-tile.vcex-image-banner,
.cbc-tile {
    position: relative;
    overflow: hidden;
    min-height: 380px;
    border-radius: var(--cbc-radius);
}

.cbc-tile img,
.cbc-tile .vcex-ib-img {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    transition: transform 0.5s;
}

.cbc-tile:hover img,
.cbc-tile:hover .vcex-ib-img {
    transform: scale(1.05);
}

.cbc-tile .vcex-ib-overlay {
    background: linear-gradient(0deg, rgba(8, 20, 31, 0.9) 0%, rgba(8, 20, 31, 0.2) 60%, rgba(8, 20, 31, 0) 100%) !important;
    opacity: 1 !important;
}

.cbc-tile .vcex-ib-content-wrap {
    position: absolute !important;
    inset: auto 0 0 0;
    align-items: flex-end !important;
    justify-content: flex-start !important;
    height: auto !important;
    padding: 24px !important;
    text-align: left !important;
}

.cbc-tile .vcex-ib-content {
    max-width: none !important;
    text-align: left !important;
}

.cbc-tile .vcex-ib-title {
    margin: 0 0 6px !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    color: #fff !important;
}

.cbc-tile .vcex-ib-caption {
    font-size: 14px !important;
    line-height: 1.45 !important;
    color: rgba(255, 255, 255, 0.8) !important;
}

.cbc-tile .vcex-ib-title::after {
    content: "\2192";
    display: inline-block;
    margin-left: 0.35em;
    transition: transform 0.2s;
}

.cbc-tile:hover .vcex-ib-title::after {
    transform: translateX(4px);
}


/* display.church groups: show the real photo, not the widget's teal wash */
.dce--groups-cards-card_header-image {
    background: var(--cbc-surface) !important;
}

.dce--groups-cards-card_header-image img {
    opacity: 1 !important;
    mix-blend-mode: normal !important;
    filter: none !important;
}

.dce--groups-cards-card_header-image::before,
.dce--groups-cards-card_header-image::after,
.groups-cards-card--hover-effect--accent-simple,
.groups-cards-card--hover-effect--accent-expandable {
    display: none !important;
}

.dce--groups-cards {
    gap: 22px !important;
}

/* Scripture band (el_class="cbc-on-dark cbc-give-verse") */
.vc_section.cbc-give-verse {
    background:
        radial-gradient(90% 140% at 100% 0%, rgba(20, 104, 162, 0.55) 0%, rgba(20, 104, 162, 0) 60%),
        var(--cbc-navy);
    text-align: center;
}

.cbc-verse .cbc-verse__text {
    max-width: 30ch;
    margin: 0 auto 14px !important;
    font-family: var(--cbc-serif);
    font-size: clamp(24px, 3vw, 38px);
    font-weight: 600;
    line-height: 1.3 !important;
    color: #fff;
    text-wrap: balance;
}

.cbc-verse .cbc-verse__ref {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cbc-accent-light);
}

/* Checklist presented as a card */
.cbc-card-list {
    padding: clamp(22px, 3vw, 32px);
    border: 1px solid var(--cbc-line);
    border-radius: var(--cbc-radius);
    background: #fff;
    box-shadow: var(--cbc-shadow);
}

.cbc-card-list ul {
    margin-bottom: 0 !important;
}

/* Linked icon boxes behave like cards */
a.vcex-icon-box-two,
.vcex-icon-box-two.vcex-icon-box-has-link {
    color: inherit;
    text-decoration: none !important;
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}

a.vcex-icon-box-two:hover,
.vcex-icon-box-two.vcex-icon-box-has-link:hover {
    border-color: rgba(20, 104, 162, 0.4);
    box-shadow: var(--cbc-shadow-hover);
    transform: translateY(-2px);
}

/* Podcast cards */
.cbc-pods__row > .cbc-pod > .vc_column-inner > .wpb_wrapper {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 18px 18px 20px;
    border: 1px solid var(--cbc-line);
    border-radius: var(--cbc-radius);
    background: #fff;
    box-shadow: var(--cbc-shadow);
}

.cbc-pod__art img {
    width: 100%;
    aspect-ratio: 1;
    border-radius: 12px !important;
    object-fit: cover;
}

.cbc-pod__art {
    margin-bottom: 16px !important;
}

.cbc-pod .vcex-heading.wpex-h4 {
    margin-bottom: 6px !important;
}

.cbc-pod .cbc-pod__title {
    margin-bottom: 8px !important;
    font-size: 19px !important;
}

.cbc-pod__desc {
    flex: 1;
    margin-bottom: 16px !important;
    font-size: 14.5px;
    color: var(--cbc-muted);
}

.cbc-pod .theme-button.cbc-pod__btn {
    min-height: 42px;
    margin: 6px 6px 0 0 !important;
    padding: 0 16px !important;
    font-size: 13.5px !important;
}

@media (max-width: 1100px) {
    .cbc-pods__row > .cbc-pod {
        width: 33.333% !important;
        margin-bottom: 22px;
    }
}

@media (max-width: 767px) {
    .cbc-pods__row > .cbc-pod {
        width: 100% !important;
    }
}

/* 8 Distinctives: steps shown as a two-column grid of numbered cards */
.vcex-steps--vertical .vcex-steps__items {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

.vcex-steps--vertical .vcex-steps-item {
    flex-direction: column;
    padding: 28px;
    border: 1px solid var(--cbc-line);
    border-radius: var(--cbc-radius);
    background: #fff;
    box-shadow: var(--cbc-shadow);
}

.vcex-steps--vertical .vcex-steps-item__figure {
    margin: 0 0 16px !important;
    align-items: flex-start !important;
}

.vcex-steps--vertical .vcex-steps-item__line {
    display: none !important;
}

.vcex-steps--vertical .vcex-steps-item__symbol {
    width: 52px !important;
    height: 52px !important;
    border-radius: 14px !important;
    background: var(--cbc-accent-soft) !important;
    color: var(--cbc-accent) !important;
    font-family: var(--cbc-serif);
    font-size: 24px !important;
    font-weight: 600;
}

.vcex-steps--vertical .vcex-steps-item__content {
    margin: 0 !important;
}

.vcex-steps--vertical .vcex-steps-item__heading {
    font-size: 21px !important;
    font-weight: 700 !important;
    line-height: 1.25;
    color: var(--cbc-ink) !important;
}

.vcex-steps--vertical .vcex-steps-item__text {
    margin-top: 10px !important;
    color: var(--cbc-body);
    line-height: 1.65;
}

/* Scripture references (the last paragraph) */
.vcex-steps--vertical .vcex-steps-item__text p:last-child {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--cbc-line);
    font-size: 14px;
    font-weight: 600;
}

@media (max-width: 767px) {
    .vcex-steps--vertical .vcex-steps__items {
        grid-template-columns: 1fr !important;
    }

    .vcex-steps--vertical .vcex-steps-item {
        padding: 22px;
    }
}

/* Meet the Team: buttons line up along the bottom, role reads as a label */
.vcex-staff-grid .staff-entry-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.vcex-staff-grid .staff-entry-details {
    display: flex;
    flex: 1;
    flex-direction: column;
    border: 0 !important;
    background: transparent !important;
}

.vcex-staff-grid .staff-entry-details > :last-child {
    margin-top: auto !important;
    padding-top: 14px;
}

.vcex-staff-grid [class*="staff-entry-position"] {
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cbc-accent) !important;
}

.vcex-staff-grid .staff-entry-img {
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center 20%;
}

/* Long centred paragraphs read better left-aligned (headings stay centred) */
.page-block .wpb_text_column.wpb_content_element:not(.cbc-lede-center):not(.cbc-faq__more) p[style*="text-align: center"],
.page-block .wpb_text_column[class*="text-center"] p {
    text-align: left;
}

/* Fact cards: year/heading reads as a big number */
.cbc-about-facts .vcex-icon-box-heading {
    font-family: var(--cbc-serif);
    font-size: 28px !important;
    font-weight: 600 !important;
    color: var(--cbc-accent) !important;
}

/* Page hero photos: WPBakery anchors parallax images to the top edge, which
   crops people's faces off on wide screens. Centre them a little above middle. */
.vc_section.page-block.wpex-has-overlay:has(> .image-header) > .vc_parallax-inner {
    background-position: 50% 38% !important;
}

@media (max-width: 600px) {
    .cbc-message-hero__meta {
        flex-direction: column;
        gap: 4px;
    }

    .cbc-message-hero__meta span + span::before {
        display: none;
    }
}

/* =========================================================================
 * Round 3 — Series Engine polish (Sermons page + message pages)
 * ====================================================================== */

/* Icons (SVG masks, coloured with currentColor) */
:root {
    --cbc-i-play: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5.14v13.72a1 1 0 0 0 1.52.85l10.9-6.86a1 1 0 0 0 0-1.7L9.52 4.29A1 1 0 0 0 8 5.14Z'/%3E%3C/svg%3E");
    --cbc-i-listen: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18v-6a9 9 0 0 1 18 0v6'/%3E%3Cpath d='M21 19a2 2 0 0 1-2 2h-1v-6h3zM3 19a2 2 0 0 0 2 2h1v-6H3z'/%3E%3C/svg%3E");
    --cbc-i-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z'/%3E%3Cpath d='M14 3v6h6M8 13h8M8 17h5'/%3E%3C/svg%3E");
    --cbc-i-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11m0 0-4.5-4.5M12 15l4.5-4.5M5 20h14'/%3E%3C/svg%3E");
    --cbc-i-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E");
}

html body #seriesengine ul.enmse-modern-player-tabs li a::before,
html body #seriesengine .enmse-card-links a::before,
html body #seriesengine .enmse-downloads a::before,
html body #seriesengine #enmse-modern-download-audio::before,
html body #seriesengine .enmse-related-topics .enmse-speaker-ajax::before {
    content: "" !important;
    display: inline-block !important;
    flex-shrink: 0;
    width: 16px !important;
    height: 16px !important;
    margin: 0 8px 0 0 !important;
    background: currentColor !important;
    -webkit-mask: var(--cbc-i-file) center / contain no-repeat;
    mask: var(--cbc-i-file) center / contain no-repeat;
    font-family: inherit !important;
    position: static !important;
}

html body #seriesengine .enmse-watch-tab a::before,
html body #seriesengine .enmse-watch-cell a::before {
    -webkit-mask-image: var(--cbc-i-play);
    mask-image: var(--cbc-i-play);
}

html body #seriesengine .enmse-listen-tab a::before,
html body #seriesengine .enmse-listen-cell a::before {
    -webkit-mask-image: var(--cbc-i-listen);
    mask-image: var(--cbc-i-listen);
}

html body #seriesengine #enmse-modern-download-audio::before {
    -webkit-mask-image: var(--cbc-i-download);
    mask-image: var(--cbc-i-download);
}

html body #seriesengine .enmse-related-topics .enmse-speaker-ajax::before {
    -webkit-mask-image: var(--cbc-i-user);
    mask-image: var(--cbc-i-user);
}

/* Watch / Listen tabs: centred label, space before the details card */
html body #seriesengine ul.enmse-modern-player-tabs {
    margin: 22px 0 28px !important;
}

html body #seriesengine ul.enmse-modern-player-tabs li a {
    justify-content: center !important;
    min-width: 132px;
    width: auto !important;
    padding: 0 26px !important;
    transition: background 0.2s, border-color 0.2s, color 0.2s !important;
}

html body #seriesengine ul.enmse-modern-player-tabs li:not(.enmse-tab-selected) a:hover {
    border-color: var(--cbc-accent) !important;
    background: var(--cbc-accent-soft) !important;
}

html body #seriesengine .enmse-modern-player-details {
    margin-top: 0 !important;
}

/* Detail pills (speaker, download audio, worksheets): one size, icon + text */
html body #seriesengine .enmse-related-topics a,
html body #seriesengine .enmse-downloads a {
    display: inline-flex !important;
    align-items: center;
    min-height: 42px;
    padding: 0 18px 0 16px !important;
    line-height: 1 !important;
    white-space: nowrap;
}

html body #seriesengine .enmse-related-topics,
html body #seriesengine .enmse-downloads {
    gap: 10px !important;
}

html body #seriesengine .enmse-related-topics input {
    display: none;
}

/* Related message cards: equal heights, buttons share the width, real hover */
#seriesengine .enmse-message-card {
    display: flex !important;
    flex-direction: column;
}

#seriesengine .enmse-message-card .enmse-card-links {
    margin-top: auto !important;
}

#seriesengine .enmse-message-card .enmse-card-links > span {
    display: contents;
}

#seriesengine .enmse-message-card .enmse-card-links input {
    display: none;
}

html body #seriesengine .enmse-message-card .enmse-card-links a {
    flex: 1;
    justify-content: center;
    min-height: 40px;
    border: 2px solid var(--cbc-accent) !important;
    background: var(--cbc-accent) !important;
    color: #fff !important;
    transition: background 0.2s, border-color 0.2s, color 0.2s;
}

html body #seriesengine .enmse-message-card .enmse-listen-cell a {
    border-color: var(--cbc-line) !important;
    background: #fff !important;
    color: var(--cbc-ink) !important;
}

html body #seriesengine .enmse-message-card .enmse-watch-cell a:hover {
    border-color: var(--cbc-accent-dark) !important;
    background: var(--cbc-accent-dark) !important;
}

html body #seriesengine .enmse-message-card .enmse-listen-cell a:hover {
    border-color: var(--cbc-accent) !important;
    background: var(--cbc-accent-soft) !important;
    color: var(--cbc-ink) !important;
}

/* Pagination under the related cards */
#seriesengine .se-pagination {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
}

#seriesengine .se-pagination .displaying-num {
    flex-basis: 100%;
    margin-bottom: 4px;
    text-align: center;
    font-size: 13px;
    color: var(--cbc-muted);
}

html body #seriesengine .se-pagination .page-numbers {
    display: inline-grid;
    place-items: center;
    min-width: 42px;
    height: 42px;
    padding: 0 14px;
    border: 1px solid #cfd7df;
    border-radius: 999px;
    background: #fff;
    color: var(--cbc-ink) !important;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none !important;
    transition: border-color 0.2s, background 0.2s;
}

html body #seriesengine .se-pagination a.page-numbers:hover {
    border-color: var(--cbc-accent);
    background: var(--cbc-accent-soft);
}

html body #seriesengine .se-pagination .page-numbers.current {
    border-color: var(--cbc-accent);
    background: var(--cbc-accent);
    color: #fff !important;
}

/* "Link copied" popup */
html body #seriesengine .enmse-copy-link-box {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    z-index: 100000;
    width: min(420px, calc(100vw - 32px)) !important;
    margin: 0 !important;
    padding: 28px 28px 24px !important;
    border: 1px solid var(--cbc-line) !important;
    border-radius: calc(var(--cbc-radius) + 2px) !important;
    background: #fff !important;
    box-shadow: 0 0 0 100vmax rgba(8, 20, 31, 0.45), 0 30px 60px -20px rgba(8, 20, 31, 0.5) !important;
    color: var(--cbc-body) !important;
    text-align: center !important;
    transform: translate(-50%, -50%);
}

html body #seriesengine .enmse-copy-link-box h4 {
    margin: 0 0 8px !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--cbc-ink) !important;
}

html body #seriesengine .enmse-copy-link-box h4::before {
    content: "";
    display: block;
    width: 44px;
    height: 44px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: var(--cbc-accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231468a2' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 22px no-repeat;
}

html body #seriesengine .enmse-copy-link-box p {
    margin: 0 0 20px !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    color: var(--cbc-muted) !important;
}

html body #seriesengine .enmse-copy-link-box .enmse-copy-link-done {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 30px !important;
    border-radius: 999px !important;
    background: var(--cbc-accent) !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

html body #seriesengine .enmse-copy-link-box .enmse-copy-link-done:hover {
    background: var(--cbc-accent-dark) !important;
}

html body #seriesengine ul.enmse-modern-player-tabs li.enmse-watch-tab a::before,
html body #seriesengine .enmse-message-card .enmse-card-links .enmse-watch-cell a::before {
    -webkit-mask-image: var(--cbc-i-play) !important;
    mask-image: var(--cbc-i-play) !important;
}

html body #seriesengine ul.enmse-modern-player-tabs li.enmse-listen-tab a::before,
html body #seriesengine .enmse-message-card .enmse-card-links .enmse-listen-cell a::before {
    -webkit-mask-image: var(--cbc-i-listen) !important;
    mask-image: var(--cbc-i-listen) !important;
}

html body #seriesengine .enmse-downloads a,
html body #seriesengine .enmse-related-topics a {
    margin: 0 !important;
}

html body #seriesengine .enmse-modern-player-details h3 {
    margin: 26px 0 6px !important;
}

html body #seriesengine .enmse-modern-player-details h3 + p:not([class]) {
    margin-bottom: 14px !important;
}

html body #seriesengine .enmse-modern-player-details h3 + .enmse-downloads {
    margin-top: 14px !important;
}

/* Series Engine separators (&nbsp; and "|") take no space */
html body #seriesengine p.enmse-downloads,
html body #seriesengine p.enmse-related-topics {
    font-size: 0 !important;
    line-height: 0 !important;
    word-spacing: 0 !important;
}

html body #seriesengine .enmse-player .enmse-modern-player-details p.enmse-downloads,
html body #seriesengine .enmse-player .enmse-modern-player-details p.enmse-related-topics {
    font-size: 0 !important;
}

html body #seriesengine .enmse-player .enmse-modern-player-details p.enmse-downloads a,
html body #seriesengine .enmse-player .enmse-modern-player-details p.enmse-related-topics a {
    font-size: 14px !important;
}

html body #seriesengine .enmse-copy-link-box .enmse-copy-link-done {
    text-transform: none !important;
    letter-spacing: 0.02em !important;
}

/* "Never miss a message" (Sermons): both buttons on one line */
.vc_section:has(.vc_custom_1745651981964) .wpb_column:last-child .wpb_wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.vc_section:has(.vc_custom_1745651981964) .wpb_column:last-child .wpb_wrapper > .vcex-heading,
.vc_section:has(.vc_custom_1745651981964) .wpb_column:last-child .wpb_wrapper > .wpb_text_column,
.vc_section:has(.vc_custom_1745651981964) .wpb_column:last-child .wpb_wrapper > style {
    flex: 0 0 100%;
}

.vc_custom_1745651981964,
.vc_section:has(.vc_custom_1745651981964) .wpb_column:last-child .wpb_wrapper > .theme-button {
    margin: 0 !important;
}

.vc_custom_1745651981964 .theme-button {
    margin: 0 !important;
}

html body .wpb_wrapper > .vc_custom_1745651981964 {
    margin-top: 0 !important;
}

html body .wpb_wrapper > .vc_custom_1745651981964 .vcex-button {
    margin-block: 0 !important;
}

/* New Here → "This Sunday at Compass" */
.cbc-this-sunday__note > .vc_column-inner > .wpb_wrapper,
.cbc-this-sunday__music > .vc_column-inner > .wpb_wrapper {
    height: 100%;
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid var(--cbc-line);
    border-radius: var(--cbc-radius);
    background: #fff;
    box-shadow: var(--cbc-shadow);
}

.cbc-this-sunday__note .wpb_wrapper .vc_section,
.cbc-this-sunday__note .wpb_wrapper .vc_row,
.cbc-this-sunday__note .wpb_wrapper .vc_column-inner {
    padding: 0 !important;
    margin: 0 !important;
}

.cbc-this-sunday__note .block-title h3 {
    margin: 0 0 10px !important;
    font-size: 24px !important;
    color: var(--cbc-ink);
}

.cbc-this-sunday__music iframe {
    display: block;
    height: 380px;
    border-radius: 12px;
}

.cbc-this-sunday__note .vc_section,
.cbc-this-sunday__note .wpex-vc-full-width-section,
.cbc-this-sunday__note [data-vc-full-width] {
    position: static !important;
    left: auto !important;
    right: auto !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
}

.cbc-this-sunday__note .wpb_text_column p {
    text-align: left;
}

/* This Sunday cards: equal height */
.cbc-this-sunday .wpb_column > .vc_column-inner {
    height: 100%;
}

/* Hero photo layer matches the hero exactly, so focal points are predictable */
.vc_section.page-block.wpex-has-overlay:has(> .image-header) > .vc_parallax-inner {
    top: 0 !important;
    height: 100% !important;
    transform: none !important;
    background-size: cover !important;
}

/* =========================================================================
 * Search — results page (templates/search.php) and the header search popup
 * ====================================================================== */

.cbc-search-hero {
    padding: clamp(48px, 6vw, 80px) 0 32px;
    background:
        radial-gradient(90% 140% at 100% 0%, rgba(20, 104, 162, 0.5) 0%, rgba(20, 104, 162, 0) 60%),
        var(--cbc-navy);
    color: #fff;
}

.cbc-search-hero__eyebrow {
    margin: 0 0 10px !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--cbc-accent-light);
}

.cbc-search-hero__title {
    margin: 0 0 24px !important;
    font-size: clamp(30px, 4vw, 48px) !important;
    font-weight: 700;
    line-height: 1.1 !important;
    color: #fff !important;
}

.cbc-search-form {
    display: flex;
    gap: 10px;
    max-width: 720px;
    margin-bottom: 22px;
}

.cbc-search-form input[type="search"] {
    flex: 1;
    min-height: 56px;
    padding: 0 22px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: var(--cbc-ink) !important;
    font-size: 17px !important;
}

.cbc-search-form button {
    min-height: 56px !important;
    padding: 0 28px !important;
    border-color: #fff !important;
    background: #fff !important;
    color: var(--cbc-navy) !important;
}

.cbc-search-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.cbc-search-chips a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 999px;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s, border-color 0.2s;
}

.cbc-search-chips a:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.cbc-search-chips a.is-active {
    border-color: #fff;
    background: #fff;
    color: var(--cbc-navy);
}

.cbc-search-results {
    padding-top: 36px;
    padding-bottom: clamp(56px, 7vw, 96px);
}

.cbc-search-count {
    margin: 0 0 18px !important;
    font-size: 14px;
    font-weight: 600;
    color: var(--cbc-muted);
}

.cbc-search-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.cbc-result {
    display: flex;
    gap: 18px;
    padding: 16px;
    border: 1px solid var(--cbc-line);
    border-radius: var(--cbc-radius);
    background: #fff;
    color: var(--cbc-ink);
    text-decoration: none !important;
    box-shadow: var(--cbc-shadow);
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}

.cbc-result:hover {
    border-color: rgba(20, 104, 162, 0.4);
    box-shadow: var(--cbc-shadow-hover);
    transform: translateY(-2px);
    color: var(--cbc-ink);
}

.cbc-result__img {
    flex: 0 0 180px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 10px;
    background: var(--cbc-surface);
}

.cbc-result__img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cbc-result__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.cbc-result__label {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cbc-accent);
}

.cbc-result__title {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}

.cbc-result__meta {
    font-size: 14px;
    font-weight: 600;
    color: var(--cbc-body);
}

.cbc-result--dbr .cbc-result__meta {
    font-family: var(--cbc-serif);
    color: var(--cbc-accent);
}

.cbc-result__text {
    display: -webkit-box;
    margin-top: 2px;
    overflow: hidden;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--cbc-muted);
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.cbc-search-pages {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 36px;
}

.cbc-search-pages .page-numbers {
    display: inline-grid;
    place-items: center;
    min-width: 44px;
    height: 44px;
    padding: 0 16px;
    border: 1px solid #cfd7df;
    border-radius: 999px;
    color: var(--cbc-ink);
    font-weight: 700;
    text-decoration: none;
}

.cbc-search-pages .page-numbers.current {
    border-color: var(--cbc-accent);
    background: var(--cbc-accent);
    color: #fff;
}

.cbc-search-pages a.page-numbers:hover {
    border-color: var(--cbc-accent);
    background: var(--cbc-accent-soft);
}

.cbc-search-empty {
    max-width: 640px;
    padding: 40px 0;
}

.cbc-search-empty h2 {
    margin-bottom: 10px;
}

.cbc-search-suggest {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.cbc-search-suggest a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 18px;
    border: 1px solid #cfd7df;
    border-radius: 999px;
    color: var(--cbc-ink);
    font-weight: 700;
    text-decoration: none;
}

.cbc-search-suggest a:hover {
    border-color: var(--cbc-accent);
    background: var(--cbc-accent-soft);
}

@media (max-width: 900px) {
    .cbc-search-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .cbc-result {
        flex-direction: column;
    }

    .cbc-result__img {
        flex-basis: auto;
    }

    .cbc-search-form {
        flex-direction: column;
    }
}

.cbc-search-hero .cbc-search-hero__title {
    text-transform: none !important;
    letter-spacing: -0.01em;
}

.cbc-search #content-wrap,
body.search #content-wrap {
    padding-top: 0 !important;
}

/* Header search popup: the dialog sets the width (16px clear of each screen
   edge on phones); everything inside fills it */
#wpex-search-modal {
    box-sizing: border-box;
    width: min(720px, calc(100% - 32px)) !important;
    max-width: none !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
}

#wpex-search-modal .wpex-search-modal__inner {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    gap: 12px !important;
}

#wpex-search-modal .wpex-search-modal__form,
#wpex-search-modal .wpex-search-modal__input,
#wpex-search-modal .cbc-search-quick,
#wpex-search-modal .wpex-search-modal__results {
    box-sizing: border-box;
    max-width: 100%;
}

/* Phones: pin the popup 16px from each edge of the screen, whatever width
   the browser thinks the page is (iOS Safari widens it when anything on the
   page overflows by even a few pixels) */
@media (max-width: 760px) {
    #wpex-search-modal {
        position: fixed !important;
        left: 16px !important;
        right: 16px !important;
        width: auto !important;
        max-width: calc(100vw - 32px) !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        transform: none !important;
    }

    #wpex-search-modal .wpex-search-modal__inner,
    #wpex-search-modal .wpex-search-modal__form,
    #wpex-search-modal .wpex-search-modal__input {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* Nothing may widen the page sideways (keeps the sticky header working,
   unlike overflow: hidden) */
html,
body {
    overflow-x: clip;
}

#wpex-search-modal .wpex-search-modal__input {
    min-height: 64px;
    padding-left: 56px !important;
    border-radius: 999px !important;
    font-size: 18px !important;
    color: var(--cbc-ink) !important;
    box-shadow: 0 24px 50px -24px rgba(8, 20, 31, 0.55) !important;
}

#wpex-search-modal .wpex-search-modal__search-icon {
    padding-left: 24px !important;
    color: var(--cbc-accent);
}

#wpex-search-modal .wpex-search-modal__clear {
    padding-right: 22px !important;
}

.cbc-search-quick {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 14px 18px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 40px -24px rgba(8, 20, 31, 0.5);
}

.cbc-search-quick__label {
    margin-right: 4px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cbc-muted);
}

.cbc-search-quick a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 14px;
    border: 1px solid var(--cbc-line);
    border-radius: 999px;
    color: var(--cbc-ink);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.cbc-search-quick a:hover {
    border-color: var(--cbc-accent);
    background: var(--cbc-accent-soft);
}

.cbc-search-quick a.cbc-search-quick__all {
    margin-left: auto;
    border-color: var(--cbc-accent);
    background: var(--cbc-accent);
    color: #fff;
}

#wpex-search-modal .wpex-search-modal__results {
    overflow: hidden;
    border-radius: 18px !important;
    box-shadow: 0 24px 50px -24px rgba(8, 20, 31, 0.55) !important;
}

.cbc-live-result {
    display: flex !important;
    flex-direction: column;
    gap: 4px;
    padding: 16px 22px !important;
    border-bottom: 1px solid var(--cbc-line);
    color: var(--cbc-ink) !important;
    text-decoration: none !important;
    transition: background 0.15s;
}

.cbc-live-result:hover,
.cbc-live-result:focus {
    background: var(--cbc-accent-soft);
}

.cbc-live-result__tag {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cbc-accent);
}

.cbc-live-result__title {
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.3;
}

.cbc-live-result__excerpt {
    display: -webkit-box;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.5;
    color: var(--cbc-muted);
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.cbc-live-result__excerpt:empty {
    display: none;
}

@media (max-width: 600px) {
    html body #seriesengine ul.enmse-modern-player-tabs li {
        flex: 1 1 0;
    }

    html body #seriesengine ul.enmse-modern-player-tabs li a {
        width: 100% !important;
        min-width: 0;
        padding: 0 12px !important;
    }

    .cbc-message-hero__actions .theme-button,
    .image-header .theme-button {
        padding: 0 20px !important;
    }
}

html body #seriesengine ul.enmse-modern-player-tabs li a {
    box-sizing: border-box !important;
    margin: 0 !important;
}

/* =========================================================================
 * Round 4 — vertical rhythm (equal space above and below section content)
 * ====================================================================== */

/* Total gives every column a 30px bottom margin for stacking; at the end of a
   section it just adds dead space. */
.vc_section > .vc_row:last-child > .wpb_column > .vc_column-inner,
.vc_section > .vc_row:last-child > .wpb_column > .vc_column-inner > .wpb_wrapper > .vc_row.vc_inner:last-child > .wpb_column > .vc_column-inner,
.vc_section > .vc_row:last-child > .wpb_column > .vc_column-inner > .wpb_wrapper > div:last-child > .vc_section > .vc_row:last-child > .wpb_column > .vc_column-inner {
    margin-bottom: 0 !important;
}

@media (max-width: 767px) {
    .vc_section > .vc_row:last-child > .wpb_column:not(:last-child) > .vc_column-inner {
        margin-bottom: 30px !important;
    }
}

/* Last element in a column carries no trailing margin */
.vc_section .wpb_wrapper > :last-child:not(style),
.vc_section .wpb_wrapper > .theme-button:last-child,
.vc_section .wpb_text_column:last-child > .wpb_wrapper > :last-child {
    margin-bottom: 0 !important;
}

/* A template section embedded inside another section (e.g. the contact form
   on Serve / New Here / Contact) shouldn't double the padding */
.vc_section.page-block .vc_section.page-block {
    padding-bottom: 0 !important;
}

/* Inner rows (vc_row_inner) add 40px bottom padding in Total */
.vc_section .vc_row.vc_inner:last-child {
    padding-bottom: 0 !important;
}

/* Header logo: no inline baseline gap, so it sits dead-centre in the bar */
.cbc-logo,
.cbc-logo .vcex-image-inner,
.cbc-logo a {
    display: block !important;
    line-height: 0 !important;
}

.cbc-footer__logo .vcex-image-inner,
.cbc-footer__logo a {
    display: block !important;
    line-height: 0 !important;
}

/* Type rule: serif (Literata) is reserved for Scripture; everything else is Gotham */
.cbc-about-facts .vcex-icon-box-heading {
    font-family: inherit !important;
    font-size: 26px !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em;
}

.cbc-statement,
.cbc-mission__statement {
    font-family: inherit !important;
    font-weight: 700 !important;
    letter-spacing: -0.015em;
}

.cbc-mission__statement {
    max-width: 32ch;
    line-height: 1.2 !important;
}

/* display.church widgets use the site font */
.dce-calendar,
.dce-calendar *,
.dce-groups,
.dce-groups * {
    font-family: inherit !important;
}

/* Equal-height columns: content stacks full width, but buttons keep their
   natural size and sit side by side */
.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper {
    flex-direction: row !important;
    flex-wrap: wrap;
    align-content: flex-start;
    column-gap: 10px;
}

.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper > * {
    flex: 0 0 100%;
    max-width: 100%;
}

.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper > .theme-button,
.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper > .vcex-button,
.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper > style {
    flex: 0 0 auto;
}

.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper > .vcex-icon-box-two:only-child,
.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper > .cbc-card:only-child {
    align-self: stretch;
}

.cbc-home .vc_row-o-equal-height .wpb_wrapper > .cbc-vcex-btn {
    margin-right: 0 !important;
}

/* Buttons set to "Align: center" in the page builder stay centred */
.wpb_wrapper > .theme-button.align-center,
.wpb_wrapper > .vcex-button.align-center,
.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper > .theme-button.align-center {
    display: flex !important;
    width: fit-content;
    margin-left: auto !important;
    margin-right: auto !important;
}

.wpb_wrapper > .theme-button.align-right {
    display: flex !important;
    width: fit-content;
    margin-left: auto !important;
    margin-right: 0 !important;
}

/* =========================================================================
 * Round 4 — staff pages, search hero, small touches
 * ====================================================================== */

/* Staff member pages */
.page-block-staff-member-page-header .staff-img img {
    border: 0 !important;
    border-radius: calc(var(--cbc-radius) + 4px) !important;
    box-shadow: 0 30px 60px -28px rgba(8, 20, 31, 0.6);
}

.page-block-staff-member-page-header .vcex-social-links a,
.single-staff #main .vcex-social-links a {
    display: inline-grid !important;
    place-items: center;
    width: 42px !important;
    height: 42px !important;
    margin-right: 6px !important;
    border: 1px solid rgba(255, 255, 255, 0.5) !important;
    border-radius: 50% !important;
    color: #fff !important;
    transition: background 0.2s, border-color 0.2s;
}

.page-block-staff-member-page-header .vcex-social-links a:hover {
    border-color: #fff !important;
    background: rgba(255, 255, 255, 0.15) !important;
}

@media (max-width: 767px) {
    .single-staff #main .vc_section + .vc_section {
        padding-top: 40px !important;
    }
}

/* Search hero on phones: chips don't leave a tall empty band */
@media (max-width: 600px) {
    .cbc-search-hero {
        padding-bottom: 24px;
    }

    .cbc-search-form {
        margin-bottom: 16px;
    }
}

/* FAQ: pad only the clickable trigger (not its wrapper too) */
.cbc-faq__list .vcex-toggle__heading {
    padding: 0 !important;
}

.cbc-faq__list .vcex-toggle__trigger {
    padding: 18px 22px !important;
    text-decoration: none !important;
}

.cbc-faq__list .vcex-toggle__content {
    margin: 0 !important;
    padding: 0 22px 20px 54px !important;
}

@media (max-width: 600px) {
    .cbc-faq__list .vcex-toggle__trigger {
        padding: 15px 16px !important;
        font-size: 16px !important;
    }

    .cbc-faq__list .vcex-toggle__content {
        padding: 0 16px 16px 16px !important;
    }
}

/* Gravity Forms validation: red outline + small message, no boxes */
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error textarea,
.gform_wrapper .gfield_error select {
    border-color: #c0392b !important;
    box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.12) !important;
}

.gform_wrapper .gfield_validation_message,
.gform_wrapper .validation_message {
    margin: 6px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    color: #c0392b !important;
    font-size: 13.5px !important;
    font-weight: 600;
    line-height: 1.4 !important;
}

.gform_wrapper .gform_validation_errors {
    margin: 0 0 18px !important;
    padding: 12px 16px !important;
    border: 1px solid rgba(192, 57, 43, 0.35) !important;
    border-radius: var(--cbc-radius-sm) !important;
    background: #fdf3f2 !important;
    box-shadow: none !important;
}

.gform_wrapper .gform_validation_errors h2 {
    margin: 0 !important;
    color: #a5281b !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
}

.gform_wrapper .gfield_error {
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
}

/* On the dark footer band */
.cbc-footer .gform_wrapper .gfield_validation_message {
    color: #ffb4a8 !important;
}

.cbc-footer .gform_wrapper .gfield_error input {
    border-color: #ff8a78 !important;
    box-shadow: none !important;
}

/* Success message */
.gform_confirmation_message {
    padding: 18px 20px;
    border: 1px solid rgba(20, 104, 162, 0.3);
    border-radius: var(--cbc-radius-sm);
    background: var(--cbc-accent-soft);
    color: var(--cbc-ink);
    font-weight: 600;
}

.cbc-footer .gform_confirmation_message {
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

/* Staff pages: room between "View All Staff" and the footer */
.single-staff #main .vc_section:last-child,
.single-staff #main > .vc_row:last-child,
.single-staff .single-content > .vc_row:last-child {
    padding-bottom: clamp(56px, 7vw, 96px) !important;
}

/* =========================================================================
 * Round 5
 * ====================================================================== */

/* Sermon details: no "From Series" heading */
#seriesengine .enmse-modern-player-details {
    display: flex !important;
    flex-direction: column;
}

#seriesengine .enmse-modern-player-details > h3,
#seriesengine .enmse-modern-player-details > h3 + p:not([class]) {
    display: none !important;
}

/* Description → worksheets (PDF, Word) → download audio */
#seriesengine .enmse-modern-player-details > * { order: 4; }
#seriesengine .enmse-modern-player-details > .enmse-message-description { order: 1; }
#seriesengine .enmse-modern-player-details > .enmse-downloads { order: 2; }
#seriesengine .enmse-modern-player-details > .enmse-related-topics { order: 3; }

/* "More messages from …" link is removed */
html body #seriesengine .enmse-modern-player-details .enmse-speaker-ajax {
    display: none !important;
}

/* Button rows: 10px between every button. Series Engine separates the links
   with "|" and &nbsp; text; as plain lines with zero-size text those take no
   space (in a flex row they'd still pick up a gap of their own). */
html body #seriesengine .enmse-player .enmse-modern-player-details p.enmse-downloads,
html body #seriesengine .enmse-player .enmse-modern-player-details p.enmse-related-topics {
    display: block !important;
    margin: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

html body #seriesengine .enmse-player .enmse-modern-player-details p.enmse-downloads a,
html body #seriesengine .enmse-player .enmse-modern-player-details p.enmse-related-topics a {
    margin: 0 10px 10px 0 !important;
    vertical-align: top;
    font-size: 14px !important;
}

/* Centred button wrappers (Total adds .theme-button-wrap.textcenter) */
.wpb_wrapper > .theme-button-wrap.textcenter {
    display: block !important;
    margin-right: 0 !important;
    text-align: center;
}

.wpb_wrapper > .theme-button-wrap.textcenter > .theme-button {
    display: inline-flex !important;
    margin: 12px auto 0 !important;
}

/* Buttons with a custom colour set in the builder keep the site hover */
.wpex-has-overlay .theme-button[class*="vcex_"]:hover,
.page-block .theme-button[class*="vcex_"]:hover {
    background: var(--cbc-accent-soft) !important;
    color: var(--cbc-navy) !important;
}

/* Tile rows (el_class="cbc-tiles") — same look as the homepage */
.cbc-tiles .wpb_column {
    margin-bottom: 20px;
}

.cbc-tiles .cbc-tile.vcex-image-banner {
    min-height: 360px;
}

@media (max-width: 1024px) {
    .cbc-tiles .wpb_column {
        width: 50% !important;
    }
}

@media (max-width: 600px) {
    .cbc-tiles .wpb_column {
        width: 100% !important;
    }

    .cbc-tiles .cbc-tile.vcex-image-banner {
        min-height: 240px;
    }
}

/* Numbered topic grid (Partners workbook) */
.cbc-numbered-wrap ol.cbc-numbered {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 8px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
    counter-reset: cbc-n;
}

.cbc-numbered li {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 64px;
    margin: 0 !important;
    padding: 12px 16px 12px 62px;
    border: 1px solid var(--cbc-line);
    border-radius: 12px;
    background: #fff;
    color: var(--cbc-ink);
    font-weight: 600;
    line-height: 1.35;
    counter-increment: cbc-n;
}

.cbc-numbered li::before {
    content: counter(cbc-n);
    position: absolute;
    left: 14px;
    top: 50%;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-top: -17px;
    border-radius: 10px;
    background: var(--cbc-accent-soft);
    color: var(--cbc-accent);
    font-weight: 700;
}

@media (max-width: 600px) {
    .cbc-numbered-wrap ol.cbc-numbered {
        grid-template-columns: 1fr;
    }
}

/* Icon-box cards with a button at the bottom (classes="cbc-cta-card") */
.vcex-icon-box-two.cbc-cta-card {
    display: flex !important;
    flex-direction: column;
    align-items: center;
}

.vcex-icon-box-two.cbc-cta-card .vcex-icon-box-text {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.vcex-icon-box-two.cbc-cta-card .vcex-icon-box-content {
    flex: 1;
}

.vcex-icon-box-two.cbc-cta-card .vcex-icon-box-content,
.vcex-icon-box-two.cbc-cta-card .vcex-icon-box-content p:last-child {
    margin-bottom: 0 !important;
}

.vcex-icon-box-two.cbc-cta-card .vcex-icon-box-button-wrap,
.vcex-icon-box-two.cbc-cta-card [class*="button-wrap"] {
    margin-top: 24px !important;
    padding-top: 0 !important;
}

/* Centred notes and ledes: even line lengths, no one-word last line */
.cbc-lede-center,
.cbc-lede-center p,
.cbc-small-note p {
    text-wrap: balance;
}

.cbc-partners-intro .vcex-video {
    border-radius: var(--cbc-radius);
    box-shadow: 0 24px 48px -30px rgba(14, 34, 51, 0.55);
}

/* Leader & team profile cards (Kids, Kids Sundays, Adventure Club, Student):
   photo + name/role label → one clean card */
.wpb_column.wpex-vc_col-has-fill:has(.vcex-icon-box-eight.icon-box-name) > .vc_column-inner {
    overflow: hidden;
    padding: 0 !important;
    border: 1px solid var(--cbc-line);
    border-radius: calc(var(--cbc-radius) + 2px);
    background: #fff !important;
    box-shadow: 0 20px 40px -28px rgba(14, 34, 51, 0.45);
}

.wpb_column:has(.vcex-icon-box-eight.icon-box-name) .vcex-image,
.wpb_column:has(.vcex-icon-box-eight.icon-box-name) .vcex-image-inner {
    display: block !important;
    margin: 0 !important;
}

.wpb_column:has(.vcex-icon-box-eight.icon-box-name) .vcex-image img {
    display: block;
    width: 100% !important;
    aspect-ratio: 4 / 5;
    border-radius: 0 !important;
    object-fit: cover;
    object-position: center 22%;
}

html body .vcex-icon-box-eight.icon-box-name {
    position: static !important;
    margin: 0 !important;
    padding: 18px 20px 20px !important;
    border-radius: 0 !important;
    background: #fff !important;
    text-align: center !important;
    box-shadow: none !important;
}

html body .vcex-icon-box-eight.icon-box-name .vcex-icon-box-heading {
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    letter-spacing: -0.01em !important;
    color: var(--cbc-ink) !important;
}

html body .vcex-icon-box-eight.icon-box-name .vcex-icon-box-content,
html body .vcex-icon-box-eight.icon-box-name .vcex-icon-box-content p {
    margin: 4px 0 0 !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cbc-accent) !important;
}

/* "Led by Pastor …" card beside the intro: modest width, vertically centred */
.vc_row.vc_inner:has(> .wpb_column .vcex-icon-box-eight.icon-box-name):not(:has(> .wpb_column + .wpb_column .icon-box-name)) > .wpb_column.vc_col-sm-4:has(.icon-box-name):first-child > .vc_column-inner {
    max-width: 340px;
}

/* Team rows: even gaps between cards */
.vc_row.vc_inner:has(.vcex-icon-box-eight.icon-box-name) {
    row-gap: 24px;
}

@media (max-width: 767px) {
    .wpb_column.wpex-vc_col-has-fill:has(.vcex-icon-box-eight.icon-box-name) {
        margin-bottom: 20px;
    }

    /* Team cards: same width as the intro card, centred */
    .wpb_column.wpex-vc_col-has-fill:has(.vcex-icon-box-eight.icon-box-name) > .vc_column-inner {
        max-width: 320px;
        margin: 0 auto;
    }

    .vc_row.vc_inner:has(.vcex-icon-box-eight.icon-box-name) > .wpb_column {
        margin-bottom: 0 !important;
        padding-bottom: 20px;
    }

    .vc_row.vc_inner:has(> .wpb_column .vcex-icon-box-eight.icon-box-name):not(:has(> .wpb_column + .wpb_column .icon-box-name)) > .wpb_column.vc_col-sm-4:has(.icon-box-name):first-child > .vc_column-inner {
        max-width: 320px;
        margin: 0 auto;
    }
}

.cbc-small-note,
.cbc-small-note p {
    margin-top: 14px !important;
    font-size: 14.5px;
    color: var(--cbc-muted);
}

.cbc-team-single {
    justify-content: center;
}

@media (min-width: 768px) {
    .cbc-team-single > .wpb_column {
        max-width: 300px;
    }
}

/* Daily Bible Reading: the two plan PDF buttons share one width */
.cbc-dbr-intro .theme-button.cbc-btn-ghost {
    min-width: 248px;
}

@media (max-width: 600px) {
    .cbc-dbr-intro .theme-button.cbc-btn-ghost {
        width: 100%;
        min-width: 0;
    }
}

/* "How it works" with two cards: keep them a comfortable width */
.cbc-dbr-how .vc_row-o-equal-height {
    max-width: 900px;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Podcasts: three cards per row, last row centred */
.cbc-pods__row.vc_row {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 28px;
}

.cbc-pods__row > .cbc-pod {
    width: 33.333% !important;
    float: none !important;
}

.cbc-pods__row > .cbc-pod > .vc_column-inner > .wpb_wrapper {
    padding: 22px 22px 24px !important;
}

.cbc-pod__art img {
    aspect-ratio: 16 / 10;
}

.cbc-pod .cbc-pod__title {
    font-size: 21px !important;
}

@media (max-width: 1024px) {
    .cbc-pods__row > .cbc-pod {
        width: 50% !important;
    }
}

@media (max-width: 767px) {
    .cbc-pods__row > .cbc-pod {
        width: 100% !important;
        margin-bottom: 0;
    }
}

/* Podcast artwork fills the top of the card edge to edge. It has text on
   it, so it stays square and is never cropped. */
.cbc-pods__row > .cbc-pod > .vc_column-inner > .wpb_wrapper {
    overflow: hidden;
    padding: 0 0 24px !important;
}

.cbc-pods__row > .cbc-pod > .vc_column-inner > .wpb_wrapper > *:not(.cbc-pod__art):not(.theme-button) {
    box-sizing: border-box;
    max-width: 100%;
    padding-left: 24px !important;
    padding-right: 24px !important;
}

.cbc-pods__row .cbc-pod__btn:not(.cbc-btn-ghost) {
    margin-left: 24px !important;
}

.cbc-pod__art,
.cbc-pod__art .vcex-image-inner {
    display: block !important;
    margin: 0 0 20px !important;
}

.cbc-pod__art img {
    display: block;
    width: 100% !important;
    max-width: none;
    aspect-ratio: 1 !important;
    border-radius: 0 !important;
    object-fit: cover;
}

/* Staff pages: social buttons get breathing room above the hero's edge */
.vc_section.page-block-staff-member-page-header {
    padding-bottom: 36px !important;
}

.page-block-staff-member-page-header .staff-social {
    margin-top: 18px !important;
    gap: 8px !important;
}

html body .page-block-staff-member-page-header .staff-social .wpex-social-btn {
    display: inline-grid !important;
    place-items: center;
    width: 42px !important;
    height: 42px !important;
    border: 1px solid rgba(255, 255, 255, 0.5) !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #fff !important;
    transition: background 0.2s, border-color 0.2s;
}

html body .page-block-staff-member-page-header .staff-social .wpex-social-btn:hover {
    border-color: #fff !important;
    background: rgba(255, 255, 255, 0.15) !important;
}

/* Header search + menu buttons: same 44px tap box, icons centred.
   Negative margin keeps the hamburger's right edge on the page gutter. */
#site-header .vcex-off-canvas-menu__extra {
    gap: 0 !important;
}

#site-header .vcex-off-canvas-menu__extra-item,
#site-header .vcex-off-canvas-menu__toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    line-height: 0;
    -webkit-appearance: none;
    appearance: none;
    background: none;
    border: 0;
    border-radius: 50%;
    -webkit-tap-highlight-color: transparent;
}

#site-header .vcex-off-canvas-menu__extra-item svg {
    width: 20px;
    height: 20px;
}

#site-header .vcex-off-canvas-menu__toggle {
    margin-right: -11px;
}

#site-header .vcex-off-canvas-menu__extra-item:focus-visible,
#site-header .vcex-off-canvas-menu__toggle:focus-visible {
    outline: 2px solid var(--cbc-accent);
    outline-offset: -2px;
}

/* Sermon audio player (js/audio.js) — replaces MediaElement in the Listen tab */
#seriesengine .cbc-audio-host .mejs-container,
#seriesengine .cbc-audio-host > audio {
    display: none !important;
}

#seriesengine .enmse-modern-audio.cbc-audio-host {
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
}

.cbc-audio {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-top: 16px;
    padding: 18px 22px;
    border-radius: var(--cbc-radius);
    background: linear-gradient(135deg, var(--cbc-navy) 0%, var(--cbc-navy-2) 100%);
    color: #fff;
    box-shadow: 0 24px 48px -30px rgba(14, 34, 51, 0.6);
    text-align: left;
}

.cbc-audio button {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    line-height: 1;
    cursor: pointer;
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.2s, color 0.2s, transform 0.1s;
}

.cbc-audio button:active {
    transform: scale(0.94);
}

.cbc-audio button:focus-visible {
    outline: 2px solid var(--cbc-accent-light);
    outline-offset: 2px;
}

.cbc-audio__play {
    width: 56px;
    height: 56px;
    border-radius: 50% !important;
    background: #fff !important;
    color: var(--cbc-navy) !important;
}

.cbc-audio__play:hover {
    background: var(--cbc-accent-soft) !important;
}

.cbc-audio__play svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}

.cbc-audio__i-play {
    margin-left: 3px;
}

.cbc-audio__i-pause,
.cbc-audio.is-playing .cbc-audio__i-play {
    display: none;
}

.cbc-audio.is-playing .cbc-audio__i-pause {
    display: block;
}

.cbc-audio__main {
    flex: 1;
    min-width: 0;
}

.cbc-audio__info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 8px;
}

.cbc-audio__eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--cbc-accent-light);
}

.cbc-audio__title {
    overflow: hidden;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.cbc-audio__track {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cbc-audio__time {
    flex-shrink: 0;
    min-width: 38px;
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
    color: rgba(255, 255, 255, 0.72);
}

.cbc-audio__time--total {
    text-align: right;
}

.cbc-audio__scrub {
    --pct: 0%;
    flex: 1;
    min-width: 40px;
    height: 20px;
    margin: 0;
    padding: 0;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

.cbc-audio__scrub::-webkit-slider-runnable-track {
    height: 4px;
    border-radius: 99px;
    background: linear-gradient(to right, #fff var(--pct), rgba(255, 255, 255, 0.22) var(--pct));
}

.cbc-audio__scrub::-moz-range-track {
    height: 4px;
    border-radius: 99px;
    background: linear-gradient(to right, #fff var(--pct), rgba(255, 255, 255, 0.22) var(--pct));
}

.cbc-audio__scrub::-webkit-slider-thumb {
    width: 14px;
    height: 14px;
    margin-top: -5px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    -webkit-appearance: none;
    appearance: none;
    transition: transform 0.15s;
}

.cbc-audio__scrub::-moz-range-thumb {
    width: 14px;
    height: 14px;
    border: 0;
    border-radius: 50%;
    background: #fff;
}

.cbc-audio__scrub:hover::-webkit-slider-thumb {
    transform: scale(1.25);
}

.cbc-audio__tools {
    display: flex;
    align-items: center;
    gap: 4px;
}

.cbc-audio__skip {
    width: 40px;
    height: 40px;
    border-radius: 50% !important;
    color: rgba(255, 255, 255, 0.85) !important;
}

.cbc-audio__skip:hover {
    background: rgba(255, 255, 255, 0.1) !important;
    color: #fff !important;
}

.cbc-audio__skip svg {
    width: 26px;
    height: 26px;
    fill: currentColor;
}

.cbc-audio__skip text {
    font-size: 6.5px;
    font-weight: 700;
    font-family: inherit;
}

.cbc-audio__speed {
    min-width: 48px;
    height: 32px;
    margin-left: 4px !important;
    padding: 0 10px !important;
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 99px !important;
    font-size: 13px !important;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.cbc-audio__speed:hover {
    background: rgba(255, 255, 255, 0.1) !important;
}

/* Phones: play + title on top, the track full width, tools underneath */
@media (max-width: 600px) {
    .cbc-audio {
        flex-wrap: wrap;
        gap: 14px;
        padding: 16px;
    }

    .cbc-audio__play {
        width: 52px;
        height: 52px;
    }

    .cbc-audio__main {
        display: contents;
    }

    .cbc-audio__info {
        flex: 1;
        min-width: 0;
        margin: 0;
    }

    .cbc-audio__title {
        display: -webkit-box;
        font-size: 15px;
        white-space: normal;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .cbc-audio__track {
        order: 3;
        flex-basis: 100%;
    }

    .cbc-audio__tools {
        order: 4;
        flex-basis: 100%;
        justify-content: center;
        gap: 18px;
    }

    .cbc-audio__skip {
        width: 44px;
        height: 44px;
    }

    .cbc-audio__speed {
        min-width: 56px;
        height: 36px;
    }
}

/* Adventure Club (v2) */
.cbc-ac-playlists iframe {
    display: block;
    width: 100%;
    border-radius: var(--cbc-radius-sm) !important;
    box-shadow: 0 20px 40px -30px rgba(14, 34, 51, 0.5);
}

.cbc-ac-playlists .wpb_text_column,
.cbc-ac-playlists .wpb_text_column p {
    margin: 0 !important;
}

.cbc-ac-serve .wpb_column + .wpb_column .vc_column-inner {
    padding-left: clamp(0px, 3vw, 40px) !important;
}

/* Closing call to action: a contained navy panel, so it never runs into the
   navy newsletter band in the footer */
.cbc-ac-cta.vc_row {
    max-width: 960px;
    margin: 0 auto !important;
    padding: clamp(40px, 6vw, 64px) clamp(20px, 5vw, 56px);
    border-radius: calc(var(--cbc-radius) + 8px);
    background: radial-gradient(120% 140% at 0% 0%, var(--cbc-accent-dark) 0%, var(--cbc-navy) 60%);
    box-shadow: 0 30px 60px -36px rgba(14, 34, 51, 0.7);
}

.cbc-ac-cta .cbc-lede-center,
.cbc-ac-cta .cbc-lede-center p {
    color: rgba(255, 255, 255, 0.82) !important;
}

.cbc-ac-cta .theme-button.cbc-btn-light,
.cbc-ac-cta .theme-button {
    border-color: #fff !important;
    background: #fff !important;
    color: var(--cbc-navy) !important;
}

.cbc-ac-cta .theme-button:hover {
    border-color: var(--cbc-accent-soft) !important;
    background: var(--cbc-accent-soft) !important;
}

.cbc-ac-cta .wpb_column > .vc_column-inner {
    padding: 0 !important;
}

/* Buttons side by side in a wrapping flex column: never stretch to the row's
   height, and line up on the bottom edge (every button shares the same bottom
   margin, while top margins differ for the first one after text). */
.wpb_wrapper > .theme-button,
.wpb_wrapper > .vcex-button {
    align-self: flex-end;
}

.vc_row-o-equal-height > .wpb_column > .vc_column-inner > .wpb_wrapper > :not(.theme-button):not(.vcex-button) {
    align-self: auto;
}

#main .wpb_wrapper > .theme-button,
#main .wpb_wrapper > .vcex-button {
    margin-bottom: 0 !important;
}


/* Older sections were built with #F1F1F1. Use the site's light grey so every
   grey section is the same tone, and keep two grey sections from touching. */
.vc_section.vc_custom_1752281797401,
.vc_section.vc_custom_1752281898865,
.vc_section.vc_custom_1752365101605,
.vc_section.vc_custom_1752420916906,
.vc_section.vc_custom_1754344572613,
.vc_section.vc_custom_1756386441955,
.vc_section.vc_custom_1756942995505,
.vc_section.vc_custom_1757028637322,
.vc_section.vc_custom_1765572701929,
.vc_section.vc_custom_1767132013176,
.vc_section.vc_custom_1767132033408 {
    background-color: var(--cbc-surface) !important;
}

.vc_section.cbc-surface + .vc_section.vc_custom_1752281797401,
.vc_section.cbc-surface + .vc_section.vc_custom_1752281898865,
.vc_section.cbc-surface + .vc_section.vc_custom_1752365101605,
.vc_section.cbc-surface + .vc_section.vc_custom_1752420916906,
.vc_section.cbc-surface + .vc_section.vc_custom_1754344572613,
.vc_section.cbc-surface + .vc_section.vc_custom_1756386441955,
.vc_section.cbc-surface + .vc_section.vc_custom_1756942995505,
.vc_section.cbc-surface + .vc_section.vc_custom_1757028637322,
.vc_section.cbc-surface + .vc_section.vc_custom_1765572701929,
.vc_section.cbc-surface + .vc_section.vc_custom_1767132013176,
.vc_section.cbc-surface + .vc_section.vc_custom_1767132033408 {
    background-color: #fff !important;
}

/* New Here: sermon worksheet + bulletin download cards */
.cbc-downloads .cbc-dl-card > .vc_column-inner > .wpb_wrapper {
    box-sizing: border-box;
    height: 100%;
    padding: 30px 30px 32px !important;
    border: 1px solid var(--cbc-line);
    border-radius: var(--cbc-radius);
    background: #fff;
    box-shadow: var(--cbc-shadow);
}

.cbc-downloads .cbc-dl-card .theme-button {
    min-width: 184px;
}

.cbc-downloads .cbc-dl-card .vcex-heading {
    margin-bottom: 10px !important;
}

.cbc-downloads .cbc-dl-card .wpb_text_column,
.cbc-downloads .cbc-dl-card .wpb_text_column p:last-child {
    margin-bottom: 4px !important;
}

@media (max-width: 767px) {
    .cbc-downloads .cbc-dl-card {
        margin-bottom: 20px;
    }

    .cbc-downloads .cbc-dl-card > .vc_column-inner > .wpb_wrapper {
        padding: 24px 22px 26px !important;
    }
}

/* Rows with a 35px column gap overhang the content edge by 15px each side.
   Text columns hide it with inner padding, but filled cards (leader cards,
   contact cards) reach the edge, so in those rows pull the row back in and
   drop the text columns' padding: every card and line of text starts on the
   same edge as the rest of the page. */
.vc_column-gap-35:has(> .wpb_column.wpex-vc_col-has-fill) {
    margin-left: -17.5px !important;
    margin-right: -17.5px !important;
}

.vc_column-gap-35:has(> .wpb_column.wpex-vc_col-has-fill) > .wpb_column:not(.wpex-vc_col-has-fill) > .vc_column-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Hero buttons on phones: when they stack, a 12px gap (not the 28px meant
   for the space under the text) and one shared width */
@media (max-width: 600px) {
    .image-header .cbc-hero-btn + .cbc-hero-btn {
        margin-top: 12px !important;
    }

    .image-header .cbc-hero-btn {
        min-width: 210px;
    }
}

/* Sermon detail buttons stack on phones: give them one width */
@media (max-width: 600px) {
    html body #seriesengine .enmse-player .enmse-modern-player-details p.enmse-downloads a,
    html body #seriesengine .enmse-player .enmse-modern-player-details p.enmse-related-topics a {
        min-width: 200px;
        justify-content: flex-start;
    }
}

/* =========================================================================
 * Round 6 — consistency pass
 * ====================================================================== */

/* Series Engine titles (split by js/main.js) — passage on its own line, like the message hero */
html body #seriesengine h3.enmse-modern-message-meta {
    margin: 0 0 8px !important;
    font-size: 13px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: var(--cbc-accent) !important;
}

#seriesengine .cbc-se-passage {
    display: block;
    margin-top: 6px;
    font-family: var(--cbc-serif);
    font-size: 0.6em;
    font-weight: 600;
    letter-spacing: 0;
    color: var(--cbc-muted);
}

#seriesengine .enmse-message-card h5 .cbc-se-passage {
    margin-top: 4px;
    font-size: 14px;
}

#seriesengine .cbc-se-passage a,
#seriesengine .cbc-se-passage a:hover {
    color: inherit !important;
    font-family: inherit !important;
    font-weight: inherit !important;
    text-decoration: none !important;
}

/* Scripture callouts in page copy — serif verse on a soft card, like the transcript */
.wpb_text_column blockquote,
.entry blockquote {
    position: relative;
    margin: 28px 0 !important;
    padding: 20px 24px !important;
    border: 0 !important;
    border-left: 3px solid var(--cbc-accent) !important;
    border-radius: 0 var(--cbc-radius-sm) var(--cbc-radius-sm) 0;
    background: var(--cbc-surface);
    font-family: var(--cbc-serif);
    font-size: 19px;
    font-style: normal;
    line-height: 1.6;
    color: var(--cbc-ink);
}

.wpb_text_column blockquote::before,
.entry blockquote::before {
    display: none !important;
}

.wpb_text_column blockquote p,
.entry blockquote p {
    margin: 0 !important;
    font: inherit !important;
    color: inherit !important;
}

.wpb_text_column blockquote a.rtBibleRef,
.entry blockquote a.rtBibleRef {
    font-weight: 600;
    color: var(--cbc-accent);
}

/* Gravity Forms "(Required)" — quiet hint instead of the default red */
.gform_wrapper .gfield_required,
.gform_wrapper .gfield_required .gfield_required_text {
    color: inherit !important;
    font-size: 0.85em !important;
    font-style: normal !important;
    font-weight: 400 !important;
    opacity: 0.65;
}

/* display.church calendar cards — same card as sermons and groups */
.dce-calendar .card-view {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 20px !important;
}

.dce-calendar .card-view--card {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    overflow: hidden;
    border: 1px solid var(--cbc-line) !important;
    border-radius: var(--cbc-radius) !important;
    background: #fff !important;
    box-shadow: var(--cbc-shadow) !important;
    text-decoration: none !important;
    transition: box-shadow 0.2s, transform 0.2s;
}

.dce-calendar .card-view--card:hover {
    box-shadow: var(--cbc-shadow-hover) !important;
    transform: translateY(-2px);
}

.dce-calendar .card-view--card [class*="card_hover-effect--accent"],
.dce-calendar .card-view--card > div[style]:not([class]),
.dce-calendar .card-view--card > div[class=""] {
    display: none !important;
}

.dce-calendar .card-view--card-content {
    padding: 16px 18px 18px !important;
}

.dce-calendar .card-view--card-content h2 {
    margin: 0 0 6px !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
    color: var(--cbc-ink) !important;
}

.dce-calendar .card-view--card-content-date {
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    color: var(--cbc-muted) !important;
}

/* Date chip on the image: white tile, blue month */
.dce-calendar .card-event--inpic-date {
    right: 12px !important;
    bottom: 12px !important;
    padding: 0 !important;
    background: none !important;
}

.dce-calendar .card-event--inpic-date-container {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    min-width: 46px;
    padding: 6px 8px !important;
    border-radius: var(--cbc-radius-sm) !important;
    background: #fff !important;
    box-shadow: 0 4px 12px -4px rgba(14, 34, 51, 0.35);
    line-height: 1 !important;
}

.dce-calendar .card-event--inpic-date_month {
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cbc-accent) !important;
}

.dce-calendar .card-event--inpic-date_day {
    margin-top: 2px;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--cbc-ink) !important;
}

/* Termly legal pages (Privacy Policy, Cookie Policy) — site type and colours */
body [data-custom-class],
body [data-custom-class] * {
    font-family: inherit !important;
}

body [data-custom-class="body_text"],
body [data-custom-class="body_text"] * {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--cbc-body) !important;
}

body [data-custom-class="title"],
body [data-custom-class="title"] * {
    display: block;
    font-size: clamp(34px, 4.6vw, 52px) !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.02em;
    text-transform: lowercase !important;
    color: var(--cbc-ink) !important;
}

body [data-custom-class="title"] h1::first-letter {
    text-transform: uppercase !important;
}

body [data-custom-class="subtitle"],
body [data-custom-class="subtitle"] * {
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cbc-accent) !important;
}

body [data-custom-class="heading_1"],
body [data-custom-class="heading_1"] * {
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em;
    color: var(--cbc-ink) !important;
}

body [data-custom-class="heading_2"],
body [data-custom-class="heading_2"] * {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--cbc-ink) !important;
}

body [data-custom-class="link"],
body [data-custom-class="link"] *,
body [data-custom-class] a {
    color: var(--cbc-accent) !important;
}

.wpb_raw_html:has([data-custom-class]) ul {
    list-style-type: disc !important;
}

.wpb_raw_html:has([data-custom-class]) {
    padding-top: clamp(32px, 5vw, 64px);
}

/* Keep Termly's attribution, but at the end rather than above the title */
.wpb_raw_html:has([data-custom-class]) > .wpb_wrapper {
    display: flex;
    flex-direction: column;
}

.wpb_raw_html:has([data-custom-class]) > .wpb_wrapper > span[style*="11.125rem"] {
    order: 99;
    margin: 48px auto 0 !important;
    opacity: 0.6;
}

/* Literata's default old-style numerals sit off-centre (3, 4, 5, 7 and 9 hang low) */
.vcex-steps-item__symbol {
    font-variant-numeric: lining-nums;
    font-feature-settings: "lnum" 1;
}

/* Daily Bible Reading — even space around the line between the two passages
   (beats the old inline .esv-daily .esv-section rule) */
.esv-daily .esvdr-passage.esv-section + .esvdr-passage.esv-section {
    margin-top: 2.5rem;
    padding-top: 2.5rem;
}

/* Gravity Forms error banner — icon beside the text; no focus ring when the form jumps here */
.gform_wrapper .gform_validation_errors,
.gform_wrapper .gform_validation_errors:focus,
.gform_wrapper .gform_validation_errors:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

.gform_wrapper.gravity-theme .gform_validation_errors > h2 {
    display: flex;
    align-items: center;
    gap: 10px;
    line-height: 1.35 !important;
}

.gform_wrapper.gravity-theme .gform_validation_errors > h2 .gform-icon {
    position: static !important;
    flex: none;
    height: auto !important;
    font-size: 22px !important;
}
