/*
Theme Name: Community Baptist Church
Theme URI: https://www.cbcspringhill.org
Author: Community Baptist Church
Description: Block theme for Community Baptist Church, Spring Hill, TN. Design system in theme.json; components below use only its variables.
Version: 1.0.3
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cbc
*/

/* Everything here uses theme.json variables. No hard-coded colors, sizes or fonts. */

html { scroll-behavior: smooth; }
img { height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
:where(.wp-site-blocks) > footer { margin-block-start: 0; }

/* ---------- header ---------- */
.cbc-header { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid rgba(27,51,63,.08); }
/* The frosted background lives on a pseudo-element: a backdrop-filter on the header itself would trap the full-screen mobile menu inside the header bar. */
.cbc-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: color-mix(in srgb, var(--wp--preset--color--white) 94%, transparent); backdrop-filter: blur(8px); }
.cbc-header > .wp-block-group { min-height: 100px; align-items: center; }
.cbc-header .wp-block-navigation a { text-decoration: none; color: var(--wp--preset--color--primary); }
.cbc-header .wp-block-navigation a:hover { text-decoration: underline; text-underline-offset: 6px; }

/* ---------- footer ---------- */
.cbc-footer { background: var(--wp--preset--color--ink); color: color-mix(in srgb, var(--wp--preset--color--white) 78%, transparent); font-size: var(--wp--preset--font-size--small); }
.cbc-footer a { color: var(--wp--preset--color--white); }
.cbc-footer strong { color: var(--wp--preset--color--white); }

/* ---------- paragraph styles ---------- */
.is-style-eyebrow { font-size: var(--wp--preset--font-size--eyebrow); font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--slate); margin-block-end: 0; }
.has-ink-background-color .is-style-eyebrow, .is-style-band .is-style-eyebrow { color: var(--wp--preset--color--gold-light); }
.is-style-lead { font-size: var(--wp--preset--font-size--lead); max-width: 34ch; line-height: 1.5; }
.is-style-chip { display: inline-block; margin: 0; padding: .5rem 1rem; border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--warm); color: var(--wp--preset--color--primary); font-weight: 800; font-size: var(--wp--preset--font-size--small); }
.is-style-chip::before { content: ""; display: inline-block; width: .6em; height: .6em; margin-right: .55em; border-radius: 50%; background: var(--wp--preset--color--gold); vertical-align: baseline; }
.is-style-time { margin: 0; font-weight: 800; letter-spacing: .08em; font-size: var(--wp--preset--font-size--small); text-transform: uppercase; color: var(--wp--preset--color--gold); }
.is-style-badge { position: absolute; left: -18px; bottom: 28px; margin: 0; padding: .85rem 1.25rem; background: var(--wp--preset--color--white); color: var(--wp--preset--color--primary); border-radius: var(--wp--custom--radius--pill); font-weight: 800; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; box-shadow: var(--wp--preset--shadow--card); }

/* ---------- group styles ---------- */
.is-style-tint { background: var(--wp--preset--color--warm); }
.is-style-card { background: var(--wp--preset--color--white); border-radius: var(--wp--custom--radius--card); padding: var(--wp--preset--spacing--50); box-shadow: var(--wp--preset--shadow--card); }
.is-style-card > * + * { margin-block-start: var(--wp--preset--spacing--20); }
/* .wp-block-group prefix: core zeroes side padding on nested .has-global-padding groups at equal specificity, which flattened the band on live */
.wp-block-group.is-style-band { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); border-radius: var(--wp--custom--radius--band); padding: var(--wp--preset--spacing--60); }
.is-style-band :is(h1, h2, h3, h4, p) { color: var(--wp--preset--color--white); }
.is-style-band .wp-block-button__link { background: var(--wp--preset--color--white); color: var(--wp--preset--color--primary); }
.is-style-photo { position: relative; }
.is-style-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--wp--custom--radius--card); box-shadow: var(--wp--preset--shadow--photo); }

/* ---------- timeline (What to expect) ---------- */
.cbc-timeline { position: relative; }
.cbc-timeline::before { content: ""; position: absolute; left: 11px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(var(--wp--preset--color--gold), var(--wp--preset--color--slate)); }
.cbc-timeline__item { position: relative; padding-left: 4rem; }
.cbc-timeline__item::before { content: ""; position: absolute; left: 0; top: .6rem; width: 24px; height: 24px; box-sizing: border-box; border-radius: 50%; background: var(--wp--preset--color--white); border: 6px solid var(--wp--preset--color--gold); }
.cbc-timeline__item > * { margin-block: 0; }
.cbc-timeline__item h3 { margin-block: .15rem .4rem; }

/* ---------- card icons ---------- */
.cbc-icon { width: 34px; height: 34px; }

/* ---------- FAQ (core Details) ---------- */
.wp-block-details { border-bottom: 1px solid rgba(27,51,63,.14); }
.wp-block-details summary { cursor: pointer; font-weight: 800; color: var(--wp--preset--color--primary); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-size: 1.4em; line-height: 1; color: var(--wp--preset--color--gold); }
.wp-block-details[open] summary::after { content: "\2013"; }
.wp-block-details > :not(summary) { margin-top: var(--wp--preset--spacing--30); max-width: 62ch; }

/* ---------- address ---------- */
.cbc-address { font-style: normal; font-size: var(--wp--preset--font-size--lead); line-height: 1.5; }

/* ---------- responsive ---------- */
@media (max-width: 781px) {
	.is-style-badge { left: 12px; }
	.wp-block-group.is-style-band { padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
	.is-style-photo img { aspect-ratio: 4 / 3; }
}

/* ---------- gift note inside the blue band ---------- */
.cbc-gift { background: color-mix(in srgb, var(--wp--preset--color--white) 10%, transparent); border-radius: var(--wp--custom--radius--card); padding: var(--wp--preset--spacing--40); }
.cbc-gift strong { color: var(--wp--preset--color--gold-light); display: block; margin-bottom: .25rem; }
.cbc-gift > * { margin-block: 0; }

/* ---------- rhythm and polish (round 2) ---------- */
:is(h1, h2, h3, h4) { text-wrap: balance; }
.is-style-eyebrow + .wp-block-heading { margin-block-start: var(--wp--preset--spacing--30); }
.wp-block-heading + :is(p, .is-style-lead) { margin-block-start: var(--wp--preset--spacing--40); }
.wp-block-group:has(> .is-style-chip) { margin-block-start: var(--wp--preset--spacing--40); gap: var(--wp--preset--spacing--20); }
.wp-block-group:has(> .is-style-chip) + .wp-block-buttons { margin-block-start: var(--wp--preset--spacing--40); }
.cbc-timeline__item + .cbc-timeline__item { margin-block-start: var(--wp--preset--spacing--50); }
.cbc-header .wp-block-navigation .wp-block-navigation-item__content { color: var(--wp--preset--color--primary); }

/* ---------- small groups: photo cards and schedule weeks ---------- */
.cbc-photo-card { padding: 0; overflow: hidden; }
.cbc-photo-card > .wp-block-image { margin: 0; }
.cbc-photo-card > .wp-block-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0; }
.cbc-photo-card > :not(.wp-block-image) { padding-inline: var(--wp--preset--spacing--40); }
.cbc-photo-card > .wp-block-image + * { margin-block-start: var(--wp--preset--spacing--40); }
.cbc-photo-card > :last-child { padding-bottom: var(--wp--preset--spacing--40); }
.cbc-week { background: var(--wp--preset--color--white); border-radius: var(--wp--custom--radius--card); padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); }
.cbc-week > * { margin-block: 0; }
@media (max-width: 781px) { .wp-block-group.is-layout-grid { grid-template-columns: 1fr; } }
@media (max-width: 781px) { .wp-block-group.is-layout-grid:has(> .cbc-week) { grid-template-columns: repeat(2, 1fr); } }

/* ---------- home: cover hero, quick links ---------- */
.wp-block-cover .is-style-eyebrow { color: var(--wp--preset--color--gold-light); }
.wp-block-cover .is-style-outline .wp-block-button__link { color: var(--wp--preset--color--white); border-color: var(--wp--preset--color--white); }
.wp-block-cover .is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--primary); }
.wp-block-cover .wp-block-heading { max-width: 16ch; }
.cbc-quicklinks { display: grid; gap: var(--wp--preset--spacing--20); }
.cbc-quicklinks > p { margin: 0; }
.cbc-quicklinks a { display: flex; justify-content: space-between; align-items: center; padding: 1.1rem 1.5rem; border-radius: var(--wp--custom--radius--card); background: var(--wp--preset--color--warm); color: var(--wp--preset--color--primary); font-weight: 800; text-decoration: none; }
.cbc-quicklinks a::after { content: "\2192"; color: var(--wp--preset--color--gold); }
.cbc-quicklinks a:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); }
.cbc-photo-card > .wp-block-buttons { margin-block-start: var(--wp--preset--spacing--30); }


/* cover hero: same width and side padding as the rest of the page */
.wp-block-cover.alignfull { padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40); }
.wp-block-cover.has-custom-content-position.has-custom-content-position.alignfull > .wp-block-cover__inner-container { width: 100%; max-width: var(--wp--style--global--wide-size); margin-inline: auto; padding-inline: 0; }
.wp-block-cover.alignfull > .wp-block-cover__inner-container > .alignwide { max-width: none; margin-inline: 0; }

/* church-resources beliefs grid: match the theme cards */
.cr-belief-card { border-radius: var(--wp--custom--radius--card); box-shadow: var(--wp--preset--shadow--card); padding: var(--wp--preset--spacing--40); }
.cr-belief-title { font-family: var(--wp--preset--font-family--heading); font-weight: 700; color: var(--wp--preset--color--primary); }
.cr-belief-description { color: var(--wp--preset--color--ink); line-height: 1.6; }

/* ---------- staff profile ---------- */
.cbc-staff-photo img { width: 100%; border-radius: var(--wp--custom--radius--card); box-shadow: var(--wp--preset--shadow--photo); }
.cbc-staff-nav { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--wp--preset--spacing--30); margin-top: var(--wp--preset--spacing--60); padding-top: var(--wp--preset--spacing--40); border-top: 1px solid rgba(27,51,63,.14); align-items: center; }
.cbc-staff-nav .post-navigation-link-previous { grid-column: 1; }
.cbc-staff-nav .wp-block-buttons { grid-column: 2; }
.cbc-staff-nav .post-navigation-link-next { grid-column: 3; text-align: right; }
@media (max-width: 781px) { .cbc-staff-nav { grid-template-columns: 1fr; text-align: center; } .cbc-staff-nav > * { grid-column: 1 !important; text-align: center !important; } .cbc-staff-nav .wp-block-buttons { justify-content: center; } }
.cbc-staff-nav .wp-block-buttons { margin: 0; }
.wp-block-post-excerpt.is-style-eyebrow { margin-block-end: 0; }
.single-staff .wp-block-post-content > * + * { margin-block-start: var(--wp--preset--spacing--30); }
.single-staff .wp-block-church-resources-staff-email, .single-staff .wp-block-buttons { margin-block-start: var(--wp--preset--spacing--40); }

/* church-resources staff and deacon grids: match the theme cards */
.cr-staff-card, .cr-deacon-card { border-radius: var(--wp--custom--radius--card); box-shadow: var(--wp--preset--shadow--card); }
.cr-staff-name, .cr-deacon-name { font-family: var(--wp--preset--font-family--heading); font-weight: 700; }
.cr-staff-name a { color: var(--wp--preset--color--primary); text-decoration: none; }
.cr-staff-role, .cr-deacon-term { color: var(--wp--preset--color--slate); }
.cr-staff-btn { border-radius: var(--wp--custom--radius--pill); font-weight: 800; }
.cr-staff-btn:hover { color: var(--wp--preset--color--white) !important; }

/* outline buttons inside the blue band stay outlines */
.is-style-band .is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--white); border-color: var(--wp--preset--color--white); }
.is-style-band .is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--primary); }
@media (max-width: 781px) { .cbc-timeline__item { padding-left: 2.75rem; } .cbc-timeline::before { left: 11px; } }

/* ---------- missions ---------- */
.cbc-missionary.is-style-card { padding: var(--wp--preset--spacing--50); }
.cbc-missionary .wp-block-columns { margin: 0; }
.cbc-missionary-photo img { width: 100%; border-radius: var(--wp--custom--radius--card); }
.cbc-missionary .wp-block-heading { margin-block-start: 0; }
.cbc-missionary .wp-block-heading + p { color: var(--wp--preset--color--slate); margin-block-start: var(--wp--preset--spacing--20); }
.cbc-missionary .wp-block-group.is-layout-grid { margin-block: var(--wp--preset--spacing--40); padding: var(--wp--preset--spacing--40); background: var(--wp--preset--color--warm); border-radius: var(--wp--custom--radius--card); }
.cbc-fact > * { margin-block: 0; }
.cbc-fact > * + * { margin-block-start: .2rem; }
.cbc-missionary .wp-block-list { margin-block-start: var(--wp--preset--spacing--20); padding-inline-start: 1.25rem; }
.cbc-missionary .wp-block-list li + li { margin-block-start: .35rem; }
.cbc-missionary + .cbc-missionary { margin-block-start: var(--wp--preset--spacing--50); }

/* ---------- map embed ---------- */
.cbc-map iframe { display: block; width: 100%; aspect-ratio: 4 / 3; border: 0; border-radius: var(--wp--custom--radius--card); box-shadow: var(--wp--preset--shadow--card); }

/* ---------- community kids: photo strip ---------- */
.cbc-strip .wp-block-image { margin: 0; }
.cbc-strip img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--wp--custom--radius--card); }

/* ---------- Community Kids sub-brand: same components, different palette ---------- */
.cbc-kids main,
.cbc-kids .cbc-kidsnav {
	--wp--preset--color--primary: var(--wp--preset--color--kids-teal);
	--wp--preset--color--slate: var(--wp--preset--color--kids-teal);
	--wp--preset--color--warm: var(--wp--preset--color--kids-cream);
	--wp--preset--color--gold: var(--wp--preset--color--kids-coral);
	--wp--preset--color--gold-light: var(--wp--preset--color--kids-cream);
	--wp--preset--color--stone: var(--wp--preset--color--kids-sand);
}
/* coral and gold are too light for small text on white, so labels use the teal */
.cbc-kids .is-style-time { color: var(--wp--preset--color--primary); }
.is-style-sky { background: var(--wp--preset--color--kids-sky); }
.is-style-sky .is-style-eyebrow { color: var(--wp--preset--color--ink); }
.is-style-accent { background: var(--wp--preset--color--kids-gold); color: var(--wp--preset--color--ink); border-radius: var(--wp--custom--radius--band); padding: var(--wp--preset--spacing--60); }
.is-style-accent :is(h1, h2, h3, h4, p, .is-style-eyebrow) { color: var(--wp--preset--color--ink); }
.is-style-accent .wp-block-button__link { background: var(--wp--preset--color--ink); color: var(--wp--preset--color--white); }
@media (max-width: 781px) { .is-style-accent { padding: var(--wp--preset--spacing--50); } }

/* ---------- buttons: one consistent hover, press and keyboard-focus system ---------- */
.wp-block-button__link { transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(27,51,63,.18); }
.wp-block-button__link:active { transform: none; box-shadow: none; }
.wp-block-button__link:focus-visible { outline: 3px solid var(--wp--preset--color--primary); outline-offset: 3px; }
.is-style-band .wp-block-button__link:focus-visible, .wp-block-cover .wp-block-button__link:focus-visible { outline-color: var(--wp--preset--color--white); }
/* outline buttons fill in */
.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); }
/* white buttons on the blue band warm up */
.is-style-band .wp-block-button__link:hover { background: var(--wp--preset--color--gold-light); color: var(--wp--preset--color--primary); }
/* button in the gold accent band */
.is-style-accent .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); }
/* solid buttons on a photo hero */
.wp-block-cover .wp-block-button__link:not(.is-style-outline .wp-block-button__link):hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--primary); }
/* FAQ toggles */
.wp-block-details summary { transition: color .15s ease; }
.wp-block-details summary:hover { color: var(--wp--preset--color--ink); }
.wp-block-details summary:hover::after { color: var(--wp--preset--color--primary); }
.wp-block-details summary:focus-visible { outline: 3px solid var(--wp--preset--color--primary); outline-offset: 4px; }
/* footer and post navigation links */
.cbc-footer a:hover { text-decoration: none; opacity: .85; }
@media (prefers-reduced-motion: reduce) { .wp-block-button__link { transition: none; } .wp-block-button__link:hover { transform: none; } }

/* ---------- Community Kids headings: the font from the Community Kids logo ---------- */
/* Licensed by the church (kit with web font files supplied Sep 2026). */
@font-face { font-family: "Borsok"; src: url("assets/fonts/borsok.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
.cbc-kids main :is(h1, h2, h3, h4) { font-family: "Borsok", var(--wp--preset--font-family--heading); font-weight: 400; letter-spacing: .01em; line-height: 1.1; font-synthesis: none; }

/* ---------- Community Kids section bar (under the main header) ---------- */
.cbc-kidsnav { background: var(--wp--preset--color--warm); border-bottom: 1px solid rgba(27,51,63,.1); padding-block: .5rem; }
.cbc-kidsnav > .wp-block-group { align-items: center; }
.cbc-kidsnav__logo { margin: 0; }
.cbc-kidsnav__logo img { display: block; height: auto; }
.cbc-kidsnav .wp-block-navigation { font-size: 1rem; }
.cbc-kidsnav .wp-block-navigation a { color: var(--wp--preset--color--primary); font-weight: 800; text-decoration: none; padding: .55rem 0; box-shadow: inset 0 -3px 0 transparent; transition: box-shadow .15s ease, color .15s ease; }
.cbc-kidsnav .wp-block-navigation a:hover { box-shadow: inset 0 -3px 0 var(--wp--preset--color--kids-sand); }
.cbc-kidsnav .wp-block-navigation .current-menu-item > a, .cbc-kidsnav .wp-block-navigation a[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--wp--preset--color--gold); }
.cbc-kidsnav__cta { margin: 0; }
.cbc-kidsnav .wp-block-button__link { background: var(--wp--preset--color--kids-gold); color: var(--wp--preset--color--ink); padding: .6rem 1.25rem; font-size: .95rem; }
.cbc-kidsnav .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); }
@media (max-width: 781px) {
	.cbc-kidsnav__links { order: 3; width: 100%; }
	.cbc-kidsnav .wp-block-navigation__container { flex-wrap: nowrap; overflow-x: auto; gap: 1.5rem; scrollbar-width: none; }
	.cbc-kidsnav .wp-block-navigation__container::-webkit-scrollbar { display: none; }
	.cbc-kidsnav .wp-block-navigation-item { flex: 0 0 auto; }
}

/* ---------- breathing room: header and Community Kids bar ---------- */
/* core leaves only 8px between menu items; the gap grows with the screen but never wraps a laptop-width header */
.cbc-header .wp-block-navigation .wp-block-navigation__container,
.cbc-kidsnav .wp-block-navigation .wp-block-navigation__container { column-gap: clamp(0.85rem, 2vw, 2.25rem); }
.cbc-header .wp-block-navigation { font-size: 1.0625rem; }
.cbc-header .wp-block-navigation .wp-block-navigation-item__content { padding-block: .6rem; }
.cbc-header .wp-block-site-logo img { display: block; width: 190px; height: auto; }
.cbc-kidsnav { padding-block: .85rem; }
.cbc-kidsnav .wp-block-navigation a { padding-block: .65rem; }
.cbc-kidsnav__logo img { width: 124px !important; }
@media (max-width: 781px) {
	.cbc-header > .wp-block-group { min-height: 84px; }
	.cbc-kidsnav { padding-block: .75rem; }
	.cbc-kidsnav .wp-block-navigation .wp-block-navigation__container { column-gap: 1.75rem; }
}

/* ---------- mobile menu: left-aligned, top-level items as headings, sub-pages indented ---------- */
.cbc-header .wp-block-navigation__responsive-container.is-menu-open { padding: var(--wp--preset--spacing--40); }
.cbc-header .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; }
.cbc-header .is-menu-open .wp-block-navigation__container { align-items: flex-start; width: 100%; row-gap: .15rem; text-align: left; }
.cbc-header .is-menu-open .wp-block-navigation-item { width: 100%; align-items: flex-start; }
.cbc-header .is-menu-open .wp-block-navigation-item__content { padding-block: .6rem; font-size: 1.25rem; font-weight: 800; }
.cbc-header .is-menu-open .wp-block-navigation__submenu-container { padding: 0 0 .9rem 1rem; align-items: flex-start; row-gap: 0; border-left: 3px solid var(--wp--preset--color--warm); margin-left: .15rem; }
.cbc-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.05rem; font-weight: 500; color: var(--wp--preset--color--slate); padding-block: .4rem; }
/* core right-aligns the whole overlay because the desktop menu is justified right; the phone menu reads better left-aligned */
.cbc-header .is-menu-open .wp-block-navigation__responsive-container-content,
.cbc-header .is-menu-open .wp-block-navigation__container,
.cbc-header .is-menu-open .wp-block-navigation-item,
.cbc-header .is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; }
.cbc-header .is-menu-open .wp-block-navigation__submenu-container { padding: 0 0 .75rem 1rem !important; margin-top: 0 !important; gap: 0; }
.cbc-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content { padding-bottom: .25rem; }

/* folded sub-pages: a heading row (link + arrow button), pages hidden until the arrow is tapped */
.cbc-header .is-menu-open .wp-block-navigation-submenu { display: grid; grid-template-columns: 1fr auto; align-items: center; }
.cbc-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content { grid-column: 1; }
.cbc-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon { display: flex !important; grid-column: 2; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; margin: 0; padding: 0; background: none; border: 0; color: var(--wp--preset--color--primary); cursor: pointer; }
.cbc-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon svg { width: 16px; height: 16px; transition: transform .2s ease; }
.cbc-header .is-menu-open .wp-block-navigation-submenu.cbc-open > .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }
.cbc-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container { grid-column: 1 / -1; display: none !important; }
.cbc-header .is-menu-open .wp-block-navigation-submenu.cbc-open > .wp-block-navigation__submenu-container { display: flex !important; }
@media (prefers-reduced-motion: reduce) { .cbc-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon svg { transition: none; } }
.cbc-header .is-menu-open .wp-block-navigation-submenu { display: grid !important; grid-template-columns: 1fr auto !important; align-items: center !important; }
.cbc-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content { grid-column: 1 !important; grid-row: 1; }
.cbc-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon { grid-column: 2 !important; grid-row: 1; }
.cbc-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container { grid-row: 2; }

/* ---------- awana: wide photo and program logos ---------- */
.is-style-photo.cbc-photo-landscape img { aspect-ratio: 4 / 3; }
.cbc-program .cbc-program-logo { margin: 0; }
.cbc-program .cbc-program-logo img { display: block; height: 96px; width: auto; max-width: 100%; object-fit: contain; object-position: left center; }

/* ---------- prayer partners: light cover with a card, verse, square photos ---------- */
.cbc-cover-light .cbc-hero-card { max-width: 640px; margin-block: var(--wp--preset--spacing--30); }
.cbc-cover-light .cbc-hero-card > * + * { margin-block-start: var(--wp--preset--spacing--30); }
.cbc-verse { border-left: 4px solid var(--wp--preset--color--gold); margin: var(--wp--preset--spacing--40) 0 0; padding: .25rem 0 .25rem var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--lead); font-style: italic; }
.cbc-verse p { margin: 0; }
.cbc-verse cite { display: block; margin-top: var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--base); font-style: normal; font-weight: 800; }
.is-style-photo.cbc-photo-square img { aspect-ratio: 1; }

/* light cover: the card inside keeps the normal dark-on-white look */
.cbc-cover-light .cbc-hero-card :is(h1, h2, h3, h4) { color: var(--wp--preset--color--primary); }
.cbc-cover-light .cbc-hero-card .is-style-eyebrow { color: var(--wp--preset--color--slate); }
.cbc-cover-light .cbc-hero-card :is(p, .is-style-lead) { color: var(--wp--preset--color--ink); }
.cbc-cover-light .cbc-hero-card .wp-block-heading { max-width: none; }

/* ---------- VBS: full-width banner artwork ---------- */
.cbc-banner { margin: 0; }
.cbc-banner img { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover; object-position: center 40%; border-radius: 0; }
@media (max-width: 781px) { .cbc-banner img { aspect-ratio: 16 / 9; } }


/* ---------- VBS: yearly theme. 2027 "Spy U": dark navy, hex grid, glowing blue edges, neon green. Change the variables below each year. ---------- */
@font-face { font-family: "Orbitron"; src: url("assets/fonts/orbitron-variable-latin.woff2") format("woff2"); font-weight: 500 900; font-style: normal; font-display: swap; }
.cbc-vbs main {
	--vbs-hex: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100' viewBox='0 0 56 100'%3E%3Cpath d='M28 66L0 50L0 16L28 0L56 16L56 50L28 66L28 100' fill='none' stroke='%235366fc' stroke-opacity='.2' stroke-width='1.5'/%3E%3Cpath d='M28 0L28 34L0 50L0 84L28 100L56 84L56 50L28 34' fill='none' stroke='%235366fc' stroke-opacity='.2' stroke-width='1.5'/%3E%3C/svg%3E");
	--vbs-glow: 0 0 0 1px rgba(83, 102, 252, .4), 0 0 22px rgba(83, 102, 252, .38);
	--wp--preset--color--primary: var(--wp--preset--color--vbs-neon);
	--wp--preset--color--slate: var(--wp--preset--color--vbs-neon);
	--wp--preset--color--warm: var(--wp--preset--color--vbs-card);
	--wp--preset--color--gold: var(--wp--preset--color--vbs-neon);
	--wp--preset--color--gold-light: var(--wp--preset--color--vbs-lavender);
	--wp--preset--color--stone: var(--wp--preset--color--vbs-blue);
	background-color: var(--wp--preset--color--vbs-navy);
	background-image: var(--vbs-hex);
	color: var(--wp--preset--color--white);
}
.cbc-vbs main a { color: var(--wp--preset--color--vbs-neon); }
.cbc-vbs main :is(h1, h2, h3, h4) { font-family: "Orbitron", var(--wp--preset--font-family--body); font-weight: 800; letter-spacing: .03em; text-transform: uppercase; line-height: 1.15; color: var(--wp--preset--color--white); font-synthesis: none; }
.cbc-vbs main h1 { font-size: clamp(2.6rem, 7.5vw, 5rem); }
.cbc-vbs main h2 { font-size: clamp(1.5rem, 3.6vw, 2.4rem); }
.cbc-vbs main h3 { font-size: clamp(1rem, 1.6vw, 1.2rem); }
.cbc-vbs .is-style-tint { background: var(--vbs-hex), var(--wp--preset--color--vbs-deep); }
.cbc-vbs .cbc-hill:not([class*="is-style-"]) { background: var(--vbs-hex), var(--wp--preset--color--vbs-navy); }
.cbc-vbs .is-style-eyebrow { color: var(--wp--preset--color--vbs-neon); }
.cbc-vbs .is-style-chip { background: var(--wp--preset--color--vbs-card); color: var(--wp--preset--color--vbs-neon); border: 1px solid var(--wp--preset--color--vbs-blue); }

/* buttons: neon on dark, outline fills on hover */
.cbc-vbs main .wp-block-button__link { background: var(--wp--preset--color--vbs-neon); color: var(--wp--preset--color--vbs-deep); box-shadow: 0 0 18px rgba(76, 255, 142, .35); }
.cbc-vbs main .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--vbs-deep); box-shadow: 0 0 24px rgba(255, 255, 255, .4); }
.cbc-vbs main .is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--vbs-neon); border-color: var(--wp--preset--color--vbs-neon); box-shadow: none; }
.cbc-vbs main .is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--vbs-neon); color: var(--wp--preset--color--vbs-deep); box-shadow: 0 0 22px rgba(76, 255, 142, .45); }
.cbc-vbs main .wp-block-button__link:focus-visible { outline-color: var(--wp--preset--color--vbs-neon); }

/* hero: navy gradient, hex grid, blue glow and a neon magnifying glass */
.cbc-spy-hero { position: relative; overflow: hidden; color: var(--wp--preset--color--white); background: radial-gradient(900px 520px at 82% 45%, rgba(83, 102, 252, .38), transparent 62%), var(--vbs-hex), linear-gradient(160deg, var(--wp--preset--color--vbs-deep) 0%, var(--wp--preset--color--vbs-navy) 100%); }
.cbc-spy-hero::after { content: ""; position: absolute; right: max(2%, calc(50% - 560px)); top: 50%; width: clamp(200px, 30vw, 420px); aspect-ratio: 1; transform: translateY(-50%) rotate(-8deg); opacity: .8; pointer-events: none; filter: drop-shadow(0 0 14px rgba(76, 255, 142, .55));
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%234cff8e' stroke-width='6' stroke-linecap='round'%3E%3Ccircle cx='80' cy='80' r='58'/%3E%3Ccircle cx='80' cy='80' r='44' stroke-width='2' opacity='.5'/%3E%3Cpath d='M122 122 L182 182' stroke-width='14'/%3E%3Cpath d='M80 36 V124 M36 80 H124' stroke-width='2' opacity='.55'/%3E%3C/svg%3E") center / contain no-repeat; }
.cbc-spy-hero > * { position: relative; z-index: 1; }
.cbc-spy-hero .is-style-lead { color: var(--wp--preset--color--white); max-width: 30ch; margin-bottom: var(--wp--preset--spacing--40); }
.cbc-spy-hero .wp-block-buttons { margin-top: var(--wp--preset--spacing--50); }

/* date ticket (bobs gently) and countdown */
.cbc-ticket { display: inline-block; margin: 0; padding: .7rem 1.5rem; background: var(--wp--preset--color--vbs-neon); color: var(--wp--preset--color--vbs-deep); font-family: "Orbitron", var(--wp--preset--font-family--body); font-weight: 900; font-size: clamp(1.2rem, 3.2vw, 1.9rem); line-height: 1.1; letter-spacing: .04em; text-transform: uppercase; border-radius: 6px; transform: rotate(-2deg); box-shadow: 0 0 26px rgba(76, 255, 142, .5); animation: cbc-bob 4.5s ease-in-out infinite; }
@keyframes cbc-bob { 0%, 100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-6px); } }
.cbc-countdown { margin: 0; font-family: "Orbitron", var(--wp--preset--font-family--body); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--vbs-neon); }
.cbc-countdown[hidden] { display: none; }

/* rolling hills */

/* glowing cards: case files and daily activities, each with a circle tab on the top edge */
.cbc-stones, .cbc-activities { padding-top: 2.75rem; }
.cbc-stone, .cbc-activity, .cbc-vbs .is-style-card { position: relative; background: var(--wp--preset--color--vbs-card); color: var(--wp--preset--color--white); border: 2px solid var(--wp--preset--color--vbs-blue); border-radius: 4px; box-shadow: var(--vbs-glow); text-align: center; }
.cbc-stone { padding: 2.9rem var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); }
.cbc-activity { padding: 3.6rem var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); }
.cbc-stone > *, .cbc-activity > * { margin-block: 0; }
.cbc-activity > * + *, .cbc-stone > * + * { margin-block-start: .5rem; }
.cbc-stone__num, .cbc-activity__icon { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%); z-index: 2; display: grid; place-items: center; border-radius: 50%; background: var(--wp--preset--color--vbs-card); border: 2px solid var(--wp--preset--color--vbs-blue); box-shadow: var(--vbs-glow); color: var(--wp--preset--color--vbs-neon); }
.cbc-stone__num { width: 3.6rem; height: 3.6rem; margin: 0; font-family: "Orbitron", var(--wp--preset--font-family--body); font-weight: 900; font-size: 1.35rem; line-height: 1; text-shadow: 0 0 10px rgba(76, 255, 142, .6); }
.cbc-activity__icon { width: 5rem; height: 5rem; }
.cbc-activity__icon svg { width: 2.6rem; height: 2.6rem; stroke: currentColor; fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 6px rgba(76, 255, 142, .7)); }
.cbc-stone:not(:last-child)::after { content: ""; position: absolute; z-index: 1; top: -2px; left: calc(50% + 1.8rem); width: calc(100% + var(--wp--preset--spacing--40) - 3.6rem); border-top: 2px dashed var(--wp--preset--color--vbs-blue); }
.cbc-stone .is-style-eyebrow { font-size: .75rem; }
.cbc-activity__label { margin: 0; color: var(--wp--preset--color--vbs-lavender); font-weight: 800; font-size: .95rem; letter-spacing: .04em; }
.cbc-activity p:not(.cbc-activity__label) { color: var(--wp--preset--color--white); }
@media (max-width: 781px) { .cbc-stones, .cbc-activities { row-gap: 3.5rem; } .cbc-stone:not(:last-child)::after { display: none; } .cbc-spy-hero::after { opacity: .35; top: auto; bottom: 1rem; transform: rotate(-8deg); } }
@media (prefers-reduced-motion: reduce) { .cbc-ticket { animation: none; } }

/* verse, photos, gold band becomes a neon band */
.cbc-vbs .cbc-verse { border-left-color: var(--wp--preset--color--vbs-neon); color: var(--wp--preset--color--white); }
.cbc-vbs .cbc-verse cite, .cbc-vbs .cbc-verse cite a { color: var(--wp--preset--color--vbs-neon); }
.cbc-vbs-photos .wp-block-image { margin: 0; }
.cbc-vbs-photos img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 4px; border: 2px solid var(--wp--preset--color--vbs-blue); box-shadow: var(--vbs-glow); }
.cbc-vbs .is-style-accent { background: var(--wp--preset--color--vbs-neon); border-radius: 6px; box-shadow: 0 0 44px rgba(76, 255, 142, .28); }
.cbc-vbs .is-style-accent :is(h1, h2, h3, h4, p, .is-style-eyebrow, a) { color: var(--wp--preset--color--vbs-deep); }
.cbc-vbs .is-style-accent .wp-block-button__link { background: var(--wp--preset--color--vbs-deep); color: var(--wp--preset--color--vbs-neon); box-shadow: none; }
.cbc-vbs .is-style-accent .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--vbs-deep); }
.cbc-activity__icon svg { width: 2.4rem; height: 2.4rem; stroke-width: 2.4; }
.cbc-activity p:not(.cbc-activity__label) { text-wrap: balance; }

/* VBS: accordions, placeholder text, day cards, notes */
.cbc-vbs .wp-block-details { border-bottom-color: rgba(83, 102, 252, .45); }
.cbc-vbs .wp-block-details summary { color: var(--wp--preset--color--white); font-family: "Orbitron", var(--wp--preset--font-family--body); font-size: 1rem; letter-spacing: .03em; text-transform: uppercase; }
.cbc-vbs .wp-block-details summary:hover { color: var(--wp--preset--color--vbs-neon); }
.cbc-vbs .wp-block-details summary::after, .cbc-vbs .wp-block-details summary:hover::after { color: var(--wp--preset--color--vbs-neon); }
.cbc-vbs .wp-block-details ul { padding-inline-start: 1.25rem; }
.cbc-tbd { color: var(--wp--preset--color--slate); font-style: italic; }
.cbc-vbs .cbc-tbd { color: var(--wp--preset--color--vbs-lavender); }
.cbc-day { position: relative; background: var(--wp--preset--color--vbs-card); border: 2px solid var(--wp--preset--color--vbs-blue); border-radius: 4px; box-shadow: var(--vbs-glow); padding: var(--wp--preset--spacing--50); }
.cbc-day .is-style-eyebrow { margin-bottom: .25rem; }
.cbc-day > .wp-block-heading { margin-bottom: var(--wp--preset--spacing--40); }
.cbc-day .cbc-fact > * { margin-block: 0; }
.cbc-day .cbc-fact > * + * { margin-block-start: .25rem; }
.cbc-day .wp-block-group.is-layout-grid { row-gap: var(--wp--preset--spacing--30); }
.cbc-vbs-note { border-left: 4px solid var(--wp--preset--color--vbs-neon); padding-left: var(--wp--preset--spacing--40); color: var(--wp--preset--color--vbs-lavender); }
.cbc-day + .cbc-day { margin-block-start: var(--wp--preset--spacing--40); }
/* compact heroes on the VBS sub pages: the magnifying glass sits low and small so it never crosses the title */
.cbc-spy-hero:not(:has(.cbc-ticket))::after { width: clamp(120px, 16vw, 220px); top: auto; bottom: 3.5rem; transform: rotate(-8deg); opacity: .55; }

/* ---------- Trunk-or-Treat: photo grids and the item list ---------- */
.cbc-tot-grid .wp-block-image { margin: 0; }
.cbc-tot-grid img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--wp--custom--radius--card); box-shadow: var(--wp--preset--shadow--card); }
.cbc-tot-grid--two img { aspect-ratio: 1; }
@media (max-width: 781px) { .wp-block-group.is-layout-grid.cbc-tot-grid { grid-template-columns: repeat(2, 1fr); } }
.cbc-item-list ul { columns: 2; column-gap: var(--wp--preset--spacing--50); margin: 0; padding-inline-start: 1.1rem; }
.cbc-item-list li { break-inside: avoid; padding-block: .15rem; }
@media (max-width: 520px) { .cbc-item-list ul { columns: 1; } }

/* Trunk-or-Treat hero: spiderweb and slime artwork over dark teal */
.cbc-tot-hero { position: relative; overflow: hidden; color: var(--wp--preset--color--white); background: linear-gradient(160deg, var(--wp--preset--color--ink) 0%, var(--wp--preset--color--kids-teal) 100%); }
.cbc-tot-hero > .wp-block-image.cbc-tot-art { position: absolute; inset: 0; margin: 0; z-index: 0; }
.cbc-tot-hero .cbc-tot-art img { width: 100%; height: 100%; object-fit: cover; object-position: top left; border-radius: 0; opacity: .95; }
.cbc-tot-hero > :not(.cbc-tot-art) { position: relative; z-index: 1; }
.cbc-tot-hero :is(h1, h2) { color: var(--wp--preset--color--white); }
.cbc-tot-hero .is-style-eyebrow { color: var(--wp--preset--color--kids-gold); }
.cbc-tot-hero .is-style-lead { color: var(--wp--preset--color--white); }
.cbc-tot-hero .wp-block-button__link { background: var(--wp--preset--color--kids-gold); color: var(--wp--preset--color--ink); }
.cbc-tot-hero .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--ink); }
.cbc-tot-hero .is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--white); border-color: var(--wp--preset--color--white); }
.cbc-tot-hero .is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--ink); }
.cbc-tot-hero .is-style-chip { background: rgba(255,255,255,.14); color: var(--wp--preset--color--white); border: 1px solid rgba(255,255,255,.4); }
.cbc-tot-hero > .wp-block-image.cbc-tot-art { inset: 0 0 auto 0; }
.cbc-tot-hero .cbc-tot-art img { height: auto; opacity: .5; object-fit: initial; }
.cbc-tot-hero .wp-block-heading, .cbc-tot-hero .is-style-lead { text-shadow: 0 2px 14px rgba(13, 30, 40, .55); }
@media (max-width: 781px) { .cbc-tot-hero .cbc-tot-art img { width: 160%; max-width: none; } }
.cbc-tot-hero > .wp-block-image.cbc-tot-art { left: 0 !important; right: 0 !important; width: 100% !important; max-width: none !important; margin: 0 !important; }
.cbc-tot-hero .cbc-tot-art img { opacity: .6; }

/* ---------- Trunk-or-Treat: Halloween theme (overrides the Community Kids palette on this page) ---------- */
@font-face { font-family: "Creepster"; src: url("assets/fonts/creepster-latin.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
.cbc-halloween main {
	--wp--preset--color--primary: var(--wp--preset--color--hw-purple);
	--wp--preset--color--slate: var(--wp--preset--color--hw-purple);
	--wp--preset--color--warm: var(--wp--preset--color--hw-cream);
	--wp--preset--color--gold: var(--wp--preset--color--hw-orange);
	--wp--preset--color--gold-light: var(--wp--preset--color--hw-cream);
	--wp--preset--color--stone: var(--wp--preset--color--hw-orange);
}
.cbc-halloween main h1 { font-family: "Creepster", var(--wp--preset--font-family--heading); font-weight: 400; letter-spacing: .02em; text-transform: none; -webkit-text-stroke: 1px var(--wp--preset--color--hw-black); }
.cbc-halloween .is-style-time { color: var(--wp--preset--color--hw-orange); }
.cbc-halloween .is-style-chip::before { background: var(--wp--preset--color--hw-orange); }
.cbc-halloween .wp-block-button__link { background: var(--wp--preset--color--hw-orange); color: var(--wp--preset--color--hw-black); }
.cbc-halloween .wp-block-button__link:hover { background: var(--wp--preset--color--hw-purple); color: var(--wp--preset--color--white); }
.cbc-halloween .is-style-outline .wp-block-button__link { color: var(--wp--preset--color--hw-purple); border-color: var(--wp--preset--color--hw-purple); }
.cbc-halloween .is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--hw-purple); color: var(--wp--preset--color--white); }
.cbc-halloween main a { color: var(--wp--preset--color--hw-purple); }
.cbc-halloween .is-style-card { border: 2px solid color-mix(in srgb, var(--wp--preset--color--hw-purple) 25%, transparent); }
.cbc-halloween .is-style-band { background: var(--wp--preset--color--hw-purple); }
.cbc-halloween .is-style-band .wp-block-button__link { background: var(--wp--preset--color--hw-orange); color: var(--wp--preset--color--hw-black); }
.cbc-halloween .is-style-band .is-style-eyebrow { color: var(--wp--preset--color--hw-orange); }

/* pumpkin bullets on the donation list */
.cbc-halloween .cbc-item-list li { position: relative; list-style: none; padding-left: 1.3rem; }
.cbc-halloween .cbc-item-list li::before { content: "🎃"; position: absolute; left: 0; top: -.05em; font-size: .9em; }
.cbc-halloween .cbc-item-list ul { padding-inline-start: 0; }

/* hero: purple-to-black gradient, the church's own web/slime artwork, a few floating bats */
.cbc-halloween .cbc-tot-hero { background: linear-gradient(160deg, var(--wp--preset--color--hw-black) 0%, var(--wp--preset--color--hw-purple) 100%); }
.cbc-halloween .cbc-tot-hero .is-style-outline .wp-block-button__link { color: var(--wp--preset--color--white); border-color: var(--wp--preset--color--white); }
.cbc-halloween .cbc-tot-hero .is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--hw-black); }
.cbc-halloween .cbc-tot-hero .is-style-eyebrow { color: var(--wp--preset--color--hw-orange); }
.cbc-halloween .cbc-tot-hero .wp-block-heading { color: var(--wp--preset--color--hw-orange); }
.cbc-halloween .cbc-tot-hero::after,
.cbc-halloween .cbc-tot-hero::before { content: ""; position: absolute; z-index: 1; width: 46px; height: 26px; opacity: .8; pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 36' fill='%231a1420'%3E%3Cpath d='M32 6c3-5 10-6 13-1 2-4 9-4 10 1 1 4-3 8-9 12-4 3-9 6-14 9-5-3-10-6-14-9-6-4-10-8-9-12 1-5 8-5 10-1 3-5 10-4 13 1z'/%3E%3C/svg%3E") center / contain no-repeat; }
.cbc-halloween .cbc-tot-hero::before { top: 18%; left: 6%; transform: rotate(-12deg); animation: cbc-bat-drift 7s ease-in-out infinite; }
.cbc-halloween .cbc-tot-hero::after { top: 62%; left: 46%; width: 32px; height: 18px; transform: rotate(8deg); animation: cbc-bat-drift 9s ease-in-out infinite reverse; }
@keyframes cbc-bat-drift { 0%, 100% { transform: translate(0, 0) rotate(-12deg); } 50% { transform: translate(14px, -10px) rotate(-4deg); } }
@media (prefers-reduced-motion: reduce) { .cbc-halloween .cbc-tot-hero::before, .cbc-halloween .cbc-tot-hero::after { animation: none; } }
@media (max-width: 781px) { .cbc-halloween .cbc-tot-hero::before, .cbc-halloween .cbc-tot-hero::after { display: none; } }

/* jagged "torn paper" strip along the top of a section, drawn by a pseudo-element (never masks the section's own content) */

@media (max-width: 781px) { .cbc-halloween .cbc-tot-hero::before, .cbc-halloween .cbc-tot-hero::after { display: none; } }


/* ---------- section dividers: a single colored shape masked over the seam, no double-mask compositing ---------- */
/* one mask image only (no mask-composite): a compositing bug there once blanked whole sections, see docs/progress.md. */
:root {
	--hill-mask-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath d='M0,40 C480,120 960,-20 1440,40 L1440,100 L0,100 Z'/%3E%3C/svg%3E");
	--hill-mask-jagged: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0,50 L72,14 L144,40 L216,8 L288,36 L360,4 L432,44 L504,10 L576,38 L648,6 L720,42 L792,12 L864,34 L936,2 L1008,40 L1080,8 L1152,36 L1224,10 L1296,44 L1368,6 L1440,50 L1440,60 L0,60 Z'/%3E%3C/svg%3E");
}
.cbc-hill {
	position: relative;
	margin-top: 0;
	border-radius: 0;
	padding-top: calc(var(--wp--preset--spacing--70) + var(--cbc-hill-h, 56px) / 2) !important;
}
.cbc-hill::before {
	content: "";
	position: absolute;
	top: calc(var(--cbc-hill-h, 56px) * -1);
	left: 0;
	right: 0;
	height: var(--cbc-hill-h, 56px);
	background-color: var(--hill-fill, #fff);
	-webkit-mask-image: var(--hill-mask, none);
	mask-image: var(--hill-mask, none);
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	pointer-events: none;
}
@media (max-width: 781px) { .cbc-hill { --cbc-hill-h: 34px; } }

/* VBS: a smooth single wave, colored to match each section's real background */
.cbc-vbs .cbc-hill { --hill-mask: var(--hill-mask-wave); }
.cbc-vbs .cbc-hill:not([class*="is-style-"]) { --hill-fill: var(--wp--preset--color--vbs-navy); }
.cbc-vbs .cbc-hill.is-style-tint { --hill-fill: var(--wp--preset--color--vbs-deep); }

/* Trunk-or-Treat: one irregular torn-paper edge, colored to match each section's real background */
.cbc-halloween .cbc-hill { --hill-mask: var(--hill-mask-jagged); --cbc-hill-h: 40px; }
.cbc-halloween .cbc-hill:not([class*="is-style-"]) { --hill-fill: var(--wp--preset--color--white); }
.cbc-halloween .cbc-hill.is-style-tint { --hill-fill: var(--wp--preset--color--hw-cream); }
.cbc-halloween .cbc-hill.is-style-sky { --hill-fill: var(--wp--preset--color--hw-mist); }
@media (max-width: 781px) { .cbc-halloween .cbc-hill { --cbc-hill-h: 26px; } }

/* the "Snacks and Refreshments" section used the Community Kids sky-blue; give Halloween pages their own tint */
.cbc-halloween .is-style-sky { background: var(--wp--preset--color--hw-mist); }

/* ---------- sunday school: current-study card ---------- */
.cbc-study { text-align: center; margin-block-end: var(--wp--preset--spacing--40); }
.cbc-study > * { margin-block: 0; }
.cbc-study > * + * { margin-block-start: var(--wp--preset--spacing--20); }

/* sunday school hero: a wide group photo cropped to the standard 4:5 hero frame, biased toward the crowd */
.cbc-hero-wide img { object-position: 42% 62%; }

/* ---------- live stream: frame around the third-party Boxcast widget ---------- */
.cbc-boxcast-frame > div { max-width: 100%; }

/* Boxcast is a third-party widget (plain DOM, no shadow root), so its own classes can be reached and
   restyled to match the site instead of its default gray-bordered, sharp-cornered boxes. The video
   player itself (black background, white text) is left alone; everything around it is retouched. */
.cbc-boxcast-frame .boxcast-well,
.cbc-boxcast-frame .boxcast-playlist {
	border: none;
	border-radius: var(--wp--custom--radius--card);
	box-shadow: var(--wp--preset--shadow--card);
}
.cbc-boxcast-frame .boxcast-player-wrapper { border-radius: var(--wp--custom--radius--card); overflow: hidden; }
.cbc-boxcast-frame .boxcast-title { font-weight: 700; }
/* the countdown numbers default to light gray, meant for a dark backdrop; on our white card that reads
   as barely-there, so they're recolored for contrast. */
.cbc-boxcast-frame .boxcast-countdown-block { color: var(--wp--preset--color--primary); font-weight: 800; }
.cbc-boxcast-frame .boxcast-countdown-label { color: var(--wp--preset--color--slate); }
.cbc-boxcast-frame .boxcast-ticket-button {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 800;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--white);
	border: none;
	border-radius: var(--wp--custom--radius--pill);
	padding: 0.75rem 1.5rem;
	transition: background-color .18s ease;
}
.cbc-boxcast-frame .boxcast-ticket-button:hover { background: var(--wp--preset--color--ink); }
.cbc-boxcast-frame .boxcast-playlist-search input { border-radius: var(--wp--custom--radius--pill); border-color: var(--wp--preset--color--stone); }
.cbc-boxcast-frame .boxcast-playlist-search input:focus { outline: 3px solid var(--wp--preset--color--primary); outline-offset: 1px; }
.cbc-boxcast-frame .boxcast-playlist-item.boxcast-selected { border-color: var(--wp--preset--color--gold); }
.cbc-boxcast-frame .boxcast-page-controls button { border-radius: var(--wp--custom--radius--pill); font-family: var(--wp--preset--font-family--body); font-weight: 700; }
.cbc-boxcast-frame .boxcast-linkback { color: var(--wp--preset--color--slate); }

/* ---------- contact us: the WPForms form, kept simple ---------- */
.wp-block-group.cbc-contact-form { max-width: 640px; margin-inline: auto; }
.cbc-contact-form .wpforms-container { margin: 0; }
.cbc-contact-form .wpforms-field-label { font-weight: 700; color: var(--wp--preset--color--ink); }
.cbc-contact-form input[type=text], .cbc-contact-form input[type=email], .cbc-contact-form input[type=tel], .cbc-contact-form textarea, .cbc-contact-form select {
	border-radius: 10px; border: 1px solid rgba(27,51,63,.2); font-family: var(--wp--preset--font-family--body);
}
.cbc-contact-form button[type=submit] {
	background: var(--wp--preset--color--primary) !important; border-radius: var(--wp--custom--radius--pill) !important;
	font-family: var(--wp--preset--font-family--body) !important; font-weight: 800 !important; border: none !important;
	padding: .9rem 1.75rem !important;
}
.cbc-contact-form button[type=submit]:hover { background: var(--wp--preset--color--ink) !important; }

/* contact-us hero: a shorter crop of a wide landscape photo, biased toward the building rather than the sky */
.cbc-hero-short img { aspect-ratio: 4 / 3; object-position: 50% 78%; }

/* ---------- Christmas Eve Service: festive theme ---------- */
.cbc-christmas main {
	--wp--preset--color--primary: var(--wp--preset--color--xmas-green);
	--wp--preset--color--slate: var(--wp--preset--color--xmas-green);
	--wp--preset--color--warm: var(--wp--preset--color--xmas-cream);
	--wp--preset--color--gold: var(--wp--preset--color--xmas-red);
	--wp--preset--color--gold-light: var(--wp--preset--color--xmas-cream);
	--wp--preset--color--stone: var(--wp--preset--color--xmas-gold);
}
.cbc-christmas .is-style-chip { background: var(--wp--preset--color--xmas-cream); color: var(--wp--preset--color--xmas-green); border: 1px solid color-mix(in srgb, var(--wp--preset--color--xmas-gold) 55%, transparent); }
.cbc-christmas .is-style-chip::before { background: var(--wp--preset--color--xmas-red); }
.cbc-christmas .wp-block-button__link { background: var(--wp--preset--color--xmas-green); }
.cbc-christmas .wp-block-button__link:hover { background: var(--wp--preset--color--xmas-red); }
.cbc-christmas .is-style-outline .wp-block-button__link { color: var(--wp--preset--color--xmas-green); border-color: var(--wp--preset--color--xmas-green); }
.cbc-christmas .is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--xmas-green); color: var(--wp--preset--color--white); }
.cbc-christmas .cbc-verse { border-left-color: var(--wp--preset--color--xmas-gold); }
.cbc-christmas .cbc-verse cite a { color: var(--wp--preset--color--xmas-green); }
.cbc-christmas .is-style-band { background: var(--wp--preset--color--xmas-green); }
.cbc-christmas .is-style-band .wp-block-button__link { background: var(--wp--preset--color--xmas-gold); color: var(--wp--preset--color--xmas-green); }
.cbc-christmas .is-style-band .wp-block-button__link:hover { background: var(--wp--preset--color--white); }
.cbc-christmas .is-style-band .is-style-eyebrow { color: var(--wp--preset--color--xmas-gold); }

/* festive hero: deep green with a soft gold glow and a few gently twinkling snowflakes/lights */
.cbc-christmas-hero { position: relative; overflow: hidden; background: radial-gradient(700px 420px at 78% 30%, rgba(212,175,55,.18), transparent 60%), linear-gradient(160deg, #08201780 0%, var(--wp--preset--color--xmas-green) 55%); color: var(--wp--preset--color--white); }
.cbc-christmas-hero .is-style-eyebrow { color: var(--wp--preset--color--xmas-gold); }
.cbc-christmas-hero .wp-block-heading { color: var(--wp--preset--color--white); }
.cbc-christmas-hero .is-style-lead { color: var(--wp--preset--color--white); }
.cbc-christmas-hero .is-style-chip { background: rgba(255,255,255,.12); color: var(--wp--preset--color--white); border-color: rgba(212,175,55,.6); }
.cbc-christmas-hero .is-style-outline .wp-block-button__link { color: var(--wp--preset--color--white); border-color: var(--wp--preset--color--white); }
.cbc-christmas-hero .is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--xmas-green); }
.cbc-christmas-hero .wp-block-buttons > .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--wp--preset--color--xmas-gold); color: var(--wp--preset--color--xmas-green); }
.cbc-christmas-hero .wp-block-buttons > .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--wp--preset--color--white); }
.cbc-star { position: absolute; color: var(--wp--preset--color--xmas-gold); opacity: .85; pointer-events: none; animation: cbc-twinkle 3.4s ease-in-out infinite; }
@keyframes cbc-twinkle { 0%, 100% { opacity: .3; transform: scale(.85); } 50% { opacity: 1; transform: scale(1.1); } }
@media (prefers-reduced-motion: reduce) { .cbc-star { animation: none; } }
@media (max-width: 781px) { .cbc-star { display: none; } }

/* a small candle-flame icon on each service-detail card */
.cbc-christmas .cbc-candle-card { position: relative; padding-top: 3rem; }
.cbc-christmas .cbc-candle-icon { position: absolute; top: -14px; left: var(--wp--preset--spacing--50); width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--wp--preset--color--xmas-gold); box-shadow: 0 0 16px rgba(212,175,55,.6); }
.cbc-christmas .cbc-candle-icon svg { width: 16px; height: 16px; }

/* Christmas pages: the accent band and gift-guide accordions */
.cbc-christmas .is-style-accent { background: var(--wp--preset--color--xmas-gold); }
.cbc-christmas .is-style-accent .wp-block-button__link { background: var(--wp--preset--color--xmas-green); color: var(--wp--preset--color--white); }
.cbc-christmas .is-style-accent .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--xmas-green); }
.cbc-christmas .wp-block-details summary { display: flex; align-items: center; gap: .6rem; }
.cbc-christmas .cbc-guide-icon { border-radius: 50%; background: var(--wp--preset--color--xmas-cream); padding: 3px; flex-shrink: 0; }
.cbc-christmas .wp-block-details h4 { margin-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20); color: var(--wp--preset--color--xmas-green); }
.cbc-christmas .wp-block-details ul { columns: 2; column-gap: var(--wp--preset--spacing--50); margin: 0; }
.cbc-christmas .wp-block-details li { break-inside: avoid; }
@media (max-width: 600px) { .cbc-christmas .wp-block-details ul { columns: 1; } }
.cbc-christmas .cbc-not-include { border: 2px solid var(--wp--preset--color--xmas-red); }
.cbc-christmas .cbc-not-include h3 { color: var(--wp--preset--color--xmas-red); }
.cbc-christmas .cbc-not-include ul { columns: 2; column-gap: var(--wp--preset--spacing--50); margin: 0; padding-inline-start: 1.1rem; }
.cbc-christmas .cbc-not-include li { break-inside: avoid; }
@media (max-width: 600px) { .cbc-christmas .cbc-not-include ul { columns: 1; } }

/* ---------- single sermon template ---------- */
.single-sermons .wp-block-post-terms.is-style-eyebrow {
	/* core/post-terms has no align support, so it never gets .alignwide; match it by hand */
	max-width: var(--wp--style--global--wide-size, 1160px);
	margin-inline: auto;
	margin-block-end: var(--wp--preset--spacing--20);
}
.single-sermons .wp-block-post-terms.is-style-eyebrow a { color: inherit; text-decoration: none; }
.single-sermons .wp-block-post-terms.is-style-eyebrow a:hover { text-decoration: underline; }
/* sermon header: series label, title and meta read as one group (the h1's default margins left ~30px gaps) */
.single-sermons main.wp-block-group > .wp-block-post-terms { margin-block: 0 var(--wp--preset--spacing--20); }
.single-sermons main.wp-block-group > .wp-block-post-title { margin-block: 0 var(--wp--preset--spacing--20); }
.single-sermons main.wp-block-group > .wp-block-post-title + .cbc-sermon-meta,
.single-sermons main.wp-block-group > .wp-block-post-title + [class*="sermon-meta"] { margin-block-start: var(--wp--preset--spacing--30); }
.cbc-sermon-meta { --cr-accent: var(--wp--preset--color--primary); display: flex; flex-wrap: wrap; align-items: center; gap: var(--wp--preset--spacing--20); margin-block: var(--wp--preset--spacing--30) 0; }
.cbc-sermon-meta .cbc-sermon-meta__date { font-weight: 700; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--slate); }
.cbc-sermon-meta .cr-card-badges { margin-bottom: 0; }
.cbc-sermon-meta .cr-badge--part { background: transparent; color: var(--wp--preset--color--slate); padding-inline: .4em; margin-inline: -.4em; }
.cbc-sermon-meta .cr-badge--part:hover { color: var(--wp--preset--color--primary); }
.single-sermons .wp-block-post-content > * + * { margin-block-start: var(--wp--preset--spacing--30); }

/* the sermon's video, framed like every other photo on the site */
.single-sermons .wp-block-post-content .wp-block-embed { margin-block: var(--wp--preset--spacing--40); }
.single-sermons .wp-block-post-content .wp-block-embed__wrapper { border-radius: var(--wp--custom--radius--card); overflow: hidden; box-shadow: var(--wp--preset--shadow--photo); }

/* first paragraph reads as a lead-in, same treatment as is-style-lead elsewhere */
.single-sermons .wp-block-post-content > p:first-of-type { font-size: var(--wp--preset--font-size--lead); line-height: 1.5; color: var(--wp--preset--color--ink); }

/* quieter scripture links - there can be a dozen in one sermon, default link style gets noisy */
.single-sermons .wp-block-post-content a[href*="bible.com"] { color: var(--wp--preset--color--primary); text-decoration-color: color-mix(in srgb, var(--wp--preset--color--primary) 35%, transparent); text-underline-offset: 2px; }
.single-sermons .wp-block-post-content a[href*="bible.com"]:hover { text-decoration-color: currentColor; }

/* "Discussion Questions" - a distinct take-home card, not more body text */
.cbc-discussion-card { background: var(--wp--preset--color--warm); border-radius: var(--wp--custom--radius--card); padding: var(--wp--preset--spacing--50); margin-block: var(--wp--preset--spacing--50) !important; }
.cbc-discussion-card > *:first-child { margin-block-start: 0; }
.cbc-discussion-card > *:last-child { margin-block-end: 0; }
.cbc-sermon-cta { margin-block-start: var(--wp--preset--spacing--70); }
.cbc-sermon-cta .wp-block-button__link:hover { background: var(--wp--preset--color--gold-light); }
.cbc-sermon-cta-cols.wp-block-columns { align-items: stretch; }
.cbc-sermon-cta-photo { margin: 0; height: 100%; }
.cbc-sermon-cta-photo img { display: block; width: 100%; height: 100%; min-height: 220px; object-fit: cover; border-radius: var(--wp--custom--radius--card); box-shadow: var(--wp--preset--shadow--photo); }
@media (max-width: 781px) { .cbc-sermon-cta-photo img { aspect-ratio: 16 / 9; height: auto; } }
.cbc-sermon-more { --cr-accent: var(--wp--preset--color--primary); margin-block-start: var(--wp--preset--spacing--70); }
.cbc-sermon-more .wp-block-heading.is-style-eyebrow { margin-block-end: var(--wp--preset--spacing--40); }
.cbc-sermon-nav { display: grid; grid-template-columns: 1fr auto 1fr; gap: var(--wp--preset--spacing--30); margin-top: var(--wp--preset--spacing--60); padding-top: var(--wp--preset--spacing--40); border-top: 1px solid rgba(27,51,63,.14); align-items: center; }
.cbc-sermon-nav .post-navigation-link-previous { grid-column: 1; }
.cbc-sermon-nav .wp-block-buttons { grid-column: 2; margin: 0; }
.cbc-sermon-nav .post-navigation-link-next { grid-column: 3; text-align: right; }
.cbc-sermon-nav .wp-block-post-navigation-link a {
	display: inline-block;
	padding: 0.875rem 1.6875rem;
	border: 2px solid var(--wp--preset--color--primary);
	border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--primary);
	font-weight: 800;
	font-size: 1rem;
	text-decoration: none;
	transition: background-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.cbc-sermon-nav .wp-block-post-navigation-link a:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); transform: translateY(-2px); box-shadow: 0 8px 18px rgba(27,51,63,.18); }
.cbc-sermon-nav .wp-block-post-navigation-link .post-navigation-link__label { display: block; font-size: var(--wp--preset--font-size--small); font-weight: 700; opacity: .75; }
@media (max-width: 781px) { .cbc-sermon-nav { grid-template-columns: 1fr; text-align: center; } .cbc-sermon-nav > * { grid-column: 1 !important; text-align: center !important; } .cbc-sermon-nav .wp-block-buttons { justify-content: center; } .cbc-sermon-nav .wp-block-post-navigation-link a { display: inline-block; } }

/* church-resources sermon archive/taxonomy pages: match the theme */
/* The plugin's classic PHP archive/taxonomy templates have no block-theme "constrained"
   wrapper of their own (they predate this being a block theme), so without this, the
   whole page stretches edge-to-edge on wide screens instead of capping like every other
   page on the site. Match the theme's own wide/gutter values exactly. */
.cr-sermon-archive, .cr-tax-archive {
	--cr-accent: var(--wp--preset--color--primary);
	max-width: var(--wp--style--global--wide-size, 1160px);
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--40, 1.5rem);
	padding-bottom: var(--wp--preset--spacing--70);
	box-sizing: border-box;
}
.cr-tax-archive-header { text-align: center; padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); }
.cr-tax-archive-title { font-family: var(--wp--preset--font-family--heading); color: var(--wp--preset--color--primary); }
.cr-tax-archive-label { margin: 0; font-weight: 800; font-size: var(--wp--preset--font-size--small); letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--slate); }
.cr-tax-archive-desc { max-width: 65ch; margin: var(--wp--preset--spacing--30) auto 0; color: var(--wp--preset--color--slate); line-height: 1.6; }
.cr-filter-bar, .cr-tax-filter-bar { background: var(--wp--preset--color--warm); border-radius: var(--wp--custom--radius--card); padding: var(--wp--preset--spacing--30); margin-block-end: var(--wp--preset--spacing--50); }
.cr-sermon-card { border-radius: var(--wp--custom--radius--card); box-shadow: var(--wp--preset--shadow--card); overflow: hidden; }
.cr-card-title { font-family: var(--wp--preset--font-family--heading); }
.cr-card-title a { color: var(--wp--preset--color--primary); text-decoration: none; }
.cr-card-btn { color: var(--wp--preset--color--primary); font-weight: 700; }
.cr-pagination a, .cr-load-more-btn { border-radius: var(--wp--custom--radius--pill); }

/* ---------- site-wide scripture hover tooltip ---------- */
.cbc-scripture-tip { position: absolute; z-index: 9999; max-width: 320px; background: var(--wp--preset--color--ink); color: var(--wp--preset--color--white); border-radius: var(--wp--custom--radius--card); padding: var(--wp--preset--spacing--30); box-shadow: var(--wp--preset--shadow--card); pointer-events: none; }
.cbc-scripture-tip::after { content: ""; position: absolute; left: 50%; bottom: -6px; width: 12px; height: 12px; background: var(--wp--preset--color--ink); transform: translateX(-50%) rotate(45deg); border-radius: 2px; }
.cbc-scripture-tip--flip::after { bottom: auto; top: -6px; }
.cbc-scripture-tip__text { margin: 0; font-size: var(--wp--preset--font-size--small); font-style: italic; line-height: 1.5; }
.cbc-scripture-tip__ref { margin: .5rem 0 0; font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--wp--preset--color--gold-light); }
.cbc-scripture-tip__loading { font-size: var(--wp--preset--font-size--small); opacity: .75; }
@media (max-width: 600px) { .cbc-scripture-tip { max-width: calc(100vw - 32px); } }

/* ---------- long raw URLs in page content shouldn't cause horizontal overflow (found on Cookie Policy) ---------- */
.wp-block-post-content a { overflow-wrap: anywhere; }

/* ---------- Quick Links block (Links page) ---------- */
.cr-quick-links { display: flex; flex-direction: column; width: 100%; gap: var(--wp--preset--spacing--30); margin-block: var(--wp--preset--spacing--60) 0; }
.cr-quick-links .cr-quick-links__item { width: 100%; }
.cr-quick-links .cr-quick-links__item .wp-block-button__link { display: block; width: 100%; box-sizing: border-box; text-align: center; }
