/*
Theme Name: Canaan Baptist Church
Theme URI: https://floulexweb.com/
Author: Floulex Web
Author URI: https://floulexweb.com/
Description: Canaan Baptist Church, Flint, Michigan. Built from scratch.
Version: 1.0.0
Requires at least: 6.4
Text Domain: canaan-baptist
*/

/*
 * PALETTE, and why (2026-10-27)
 *
 * The church sent no logo and named no colours, so there was nothing of theirs
 * to sample. The palette was chosen by elimination and should be replaced by
 * the logo's colours the day one exists.
 *
 *   not navy      what nearly every church web company already ships
 *   not purple    the lazy shorthand for "spiritual"
 *   not gold      reads megachurch, and fights any photograph of a gold altar
 *   not cream + serif headings + terracotta   banned by DESIGN.md by name
 *   not green     Floulex Web's own colour; a client site must not wear ours
 *
 * What is left is one deep claret (#7b1e2c), spent in one place: the buttons,
 * the links, and the 11 o'clock Worship Service card on the hymn board. It is
 * warm and old without being churchy, and it holds 9.4:1 on the paper ground.
 * Around it: a warm off-white paper (not cream), a stone ground for alternate
 * sections, and walnut for the hymn board, which is the site's one dark object.
 *
 * TYPE: Archivo (variable width and weight) does the signage: the name, the
 * headings and the numerals on the hymn board cards. Source Serif 4 is the
 * reading face. Headings are a grotesque, which keeps the serif out of the
 * banned family above.
 *
 * ARCHITECTURE: a noticeboard, not a photo hero. A church with Bible Class on
 * three weekdays and a three-part Sunday morning is best introduced by its week,
 * set the way the hymn board at the front of a Baptist sanctuary sets the hymns.
 * The cards slide into the board once, which is the one signature motion.
 */

:root {
	--paper: var(--wp--preset--color--paper);
	--stone: var(--wp--preset--color--stone);
	--ink: var(--wp--preset--color--ink);
	--muted: var(--wp--preset--color--muted);
	--line: var(--wp--preset--color--line);
	--claret: var(--wp--preset--color--claret);
	--walnut: var(--wp--preset--color--walnut);
	--card: var(--wp--preset--color--card);
	--on-walnut: #cdbfb2;           /* 8.85:1 on walnut */
	--display: var(--wp--preset--font-family--display);
	--body: var(--wp--preset--font-family--body);
	--pad: clamp(1.25rem, 4vw, 3rem);
	--sec: clamp(3.5rem, 7vw, 6.5rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: clip; background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: var(--claret); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--claret); outline-offset: 3px; }

.cbc-sr {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.cbc-wrap { max-width: 76rem; margin-inline: auto; padding-inline: var(--pad); }

/* Sections stack edge to edge; spacing inside them comes from the block gap. */
.cbc-content > * { margin-block: 0; }
.wp-site-blocks > * { margin-block: 0; }

.cbc-sec { padding-block: var(--sec); }
.cbc-sec.is-stone { background: var(--stone); }
.cbc-sec.is-tight { padding-top: 0; }

.cbc-eyebrow {
	font-family: var(--display); font-stretch: 85%; font-weight: 650;
	font-size: var(--wp--preset--font-size--small); letter-spacing: .14em; text-transform: uppercase;
	color: var(--muted); margin: 0 0 .9rem;
}
.cbc-lede { font-size: var(--wp--preset--font-size--lede); line-height: 1.5; max-width: 38rem; }
.cbc-measure { max-width: 42rem; }
.cbc-content h2, .cbc-content h3 { letter-spacing: -.01em; }
.cbc-content h2 { font-stretch: 92%; margin-top: 0; }
.cbc-content h3 { font-stretch: 95%; font-weight: 700; }

/* ------------------------------------------------------------------ header */

header.cbc-head {
	position: sticky; top: 0; z-index: 50;
	background: var(--paper); border-bottom: 1px solid var(--line);
	transition: box-shadow .25s ease;
}
.is-scrolled header.cbc-head { box-shadow: 0 6px 24px rgba(31, 27, 26, .08); }

.cbc-bar {
	position: relative; display: flex; align-items: center; justify-content: space-between;
	gap: 1.5rem; min-height: 4.75rem;
}
.cbc-name { display: flex; flex-direction: column; text-decoration: none; color: var(--ink); line-height: 1; flex: none; }
.cbc-name-main {
	font-family: var(--display); font-weight: 860; font-stretch: 118%;
	font-size: 1.6rem; letter-spacing: .02em; text-transform: uppercase;
}
.cbc-name-sub {
	font-family: var(--display); font-weight: 600; font-stretch: 78%;
	font-size: .78rem; letter-spacing: .27em; text-transform: uppercase; color: var(--muted);
	margin-top: .3rem;
}

.cbc-nav { display: flex; align-items: center; gap: 1.75rem; font-family: var(--display); font-stretch: 92%; font-weight: 600; font-size: 1.02rem; }
.cbc-nav a, .cbc-nav summary {
	color: var(--ink); text-decoration: none; padding: .35rem 0;
	border-bottom: 2px solid transparent; cursor: pointer;
}
.cbc-nav a:hover, .cbc-nav summary:hover { border-bottom-color: var(--line); }
.cbc-nav > a[aria-current="page"], .cbc-drop.is-current > summary { border-bottom-color: var(--claret); }

.cbc-drop { position: relative; }
.cbc-drop > summary { list-style: none; display: inline-flex; align-items: center; gap: .45rem; }
.cbc-drop > summary::-webkit-details-marker { display: none; }
.cbc-drop > summary::after {
	content: ""; width: .42rem; height: .42rem; margin-top: -.2rem;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg);
	transition: transform .2s ease;
}
.cbc-drop[open] > summary::after { transform: rotate(225deg); margin-top: .2rem; }
.cbc-drop-panel {
	position: absolute; top: calc(100% + .55rem); left: -1.1rem; min-width: 13.5rem;
	display: flex; flex-direction: column; padding: .45rem 0;
	background: var(--paper); border: 1px solid var(--line); box-shadow: 0 14px 34px rgba(31, 27, 26, .12);
}
/* An invisible bridge over the gap, so the pointer never leaves the group on its way down. */
.cbc-drop-panel::before { content: ""; position: absolute; top: -.75rem; left: -.6rem; right: -.6rem; height: .75rem; }
.cbc-drop-panel a { padding: .6rem 1.1rem; border-bottom: 0; border-left: 3px solid transparent; }
.cbc-drop-panel a:hover { background: var(--stone); }
.cbc-drop-panel a[aria-current="page"] { border-left-color: var(--claret); }

.cbc-menu { display: none; }
.cbc-menu > summary {
	list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: .6rem;
	font-family: var(--display); font-weight: 650; font-stretch: 90%; font-size: 1rem;
	padding: .55rem .8rem; border: 1px solid var(--ink); color: var(--ink);
}
.cbc-menu > summary::-webkit-details-marker { display: none; }
.cbc-burger, .cbc-burger::before, .cbc-burger::after { display: block; width: 1.05rem; height: 2px; background: currentColor; }
.cbc-burger { position: relative; }
.cbc-burger::before, .cbc-burger::after { content: ""; position: absolute; left: 0; }
.cbc-burger::before { top: -5px; }
.cbc-burger::after { top: 5px; }
.cbc-menu[open] .cbc-burger { background: transparent; }
.cbc-menu[open] .cbc-burger::before { top: 0; transform: rotate(45deg); }
.cbc-menu[open] .cbc-burger::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 760px) {
	.cbc-menu { display: block; }
	.cbc-nav { display: none; }
	.cbc-menu[open] ~ .cbc-nav {
		display: flex; flex-direction: column; align-items: stretch; gap: 0;
		position: absolute; top: 100%; left: 0; right: 0;
		background: var(--paper); border-bottom: 1px solid var(--line);
		padding: .5rem var(--pad) 1.5rem; box-shadow: 0 18px 30px rgba(31, 27, 26, .12);
		max-height: calc(100vh - 5rem); overflow-y: auto;
	}
	.cbc-nav a, .cbc-nav summary { padding: .85rem 0; border-bottom: 1px solid var(--line); font-size: 1.1rem; }
	.cbc-nav > a[aria-current="page"] { border-bottom-color: var(--line); box-shadow: inset 3px 0 0 var(--claret); padding-left: .8rem; }
	.cbc-drop.is-current > summary { border-bottom-color: var(--line); }
	.cbc-drop > summary { display: flex; color: var(--muted); font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; }
	.cbc-drop > summary::after { margin-left: auto; }
	.cbc-drop-panel { position: static; box-shadow: none; border: 0; padding: 0; min-width: 0; }
	.cbc-drop-panel::before { display: none; }
	.cbc-drop-panel a { padding-left: 1rem; border-left: 0; border-bottom: 1px solid var(--line); }
	.cbc-drop-panel a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--claret); }
	.cbc-name-main { font-size: 1.4rem; }
}

/* ------------------------------------------------------------------ buttons */

.cbc-btns { gap: .8rem; margin-top: 1.8rem; }
.cbc-btns .wp-block-button__link, .cbc-give-btn {
	display: inline-block; font-family: var(--display); font-weight: 680; font-stretch: 92%; font-size: 1.02rem;
	padding: .9rem 1.4rem; border-radius: 0; border: 2px solid var(--claret);
	background: var(--claret); color: var(--paper); text-decoration: none;
	transition: background .2s ease, color .2s ease;
}
.cbc-btns .wp-block-button__link:hover, .cbc-give-btn:hover { background: #5f1621; border-color: #5f1621; }
.cbc-btns .is-style-outline .wp-block-button__link, .cbc-btn-ghost .wp-block-button__link { background: transparent; color: var(--ink); border-color: var(--ink); }
.cbc-btns .is-style-outline .wp-block-button__link:hover, .cbc-btn-ghost .wp-block-button__link:hover { background: var(--ink); color: var(--paper); }

.cbc-more { font-family: var(--display); font-weight: 680; font-stretch: 92%; }
.cbc-more a { text-decoration: none; border-bottom: 2px solid var(--claret); padding-bottom: .1rem; }
.cbc-more a::after { content: " \2192"; }
.cbc-back { font-family: var(--display); font-weight: 600; font-stretch: 92%; font-size: var(--wp--preset--font-size--small); }
.cbc-back a { color: var(--muted); text-decoration: none; }
.cbc-back a::before { content: "\2190 "; }
.cbc-back a:hover { color: var(--claret); }

/* -------------------------------------------------------------------- hero */

.cbc-hero { padding-block: clamp(2.5rem, 5vw, 4.5rem) var(--sec); }
.cbc-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.cbc-title { margin: 0; line-height: .9; }
.cbc-title span { display: block; }
.cbc-title-a {
	font-weight: 880; font-stretch: 116%; text-transform: uppercase; letter-spacing: -.005em;
	font-size: clamp(3rem, 17cqi, 7rem);   /* sized to its own column, so it never runs into the board */
}
.cbc-hero-grid > .cbc-col { container-type: inline-size; }
.cbc-title-b {
	font-weight: 600; font-stretch: 76%; text-transform: uppercase; letter-spacing: .24em;
	font-size: clamp(1.05rem, .75rem + 1.3vw, 1.75rem); color: var(--muted); margin-top: .7rem;
}
.cbc-since {
	display: flex; align-items: center; gap: .9rem; margin: 1.6rem 0 1.4rem;
	font-family: var(--display); font-stretch: 85%; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
	font-size: var(--wp--preset--font-size--small); color: var(--ink);
}
.cbc-since::before { content: ""; width: 2.5rem; height: 2px; background: var(--claret); flex: none; }

/* -------------------------------------------------------------- hymn board */

.cbc-board {
	background: var(--walnut); color: var(--paper); padding: 1.6rem 1.6rem 1.2rem;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06), 0 0 0 8px #3b2d26, 0 22px 40px rgba(31, 27, 26, .22);
	margin: 8px;
}
.cbc-board-head {
	margin: 0 0 1rem; font-family: var(--display); font-stretch: 78%; font-weight: 650;
	letter-spacing: .26em; text-transform: uppercase; font-size: .84rem; color: var(--on-walnut);
}
.cbc-board-rows { list-style: none; margin: 0; padding: 0; }
.cbc-slot {
	display: grid; grid-template-columns: 2.9rem 7.4rem minmax(0, 1fr); gap: 1rem; align-items: center;
	padding: .6rem 0; border-top: 1px solid rgba(255, 255, 255, .1);
}
.cbc-slot-day {
	font-family: var(--display); font-stretch: 78%; font-weight: 650; letter-spacing: .14em;
	text-transform: uppercase; font-size: .84rem; color: var(--on-walnut);
}
.cbc-card {
	display: flex; align-items: baseline; justify-content: flex-end; gap: .3rem;
	background: var(--card); color: var(--ink); padding: .3rem .6rem .25rem;
	font-family: var(--display); line-height: 1;
	box-shadow: 0 2px 0 rgba(0, 0, 0, .45), inset 0 -1px 0 rgba(0, 0, 0, .08);
}
.cbc-card-t { font-weight: 820; font-stretch: 68%; font-size: 2rem; font-variant-numeric: tabular-nums; }
.cbc-card-ap { font-weight: 700; font-stretch: 85%; font-size: .78rem; letter-spacing: .06em; }
.cbc-slot.is-main .cbc-card { background: var(--claret); color: var(--paper); }
.cbc-slot-name { font-family: var(--display); font-stretch: 95%; font-weight: 620; font-size: 1.06rem; line-height: 1.25; color: var(--paper); }
.cbc-slot-name small { display: block; font-weight: 450; font-size: .8rem; color: var(--on-walnut); margin-top: .2rem; }

/* The one signature motion: the cards drop into their slots, once. */
.js .cbc-board .cbc-card { opacity: 0; transform: translateY(-.9rem); }
.js .cbc-board.is-in .cbc-card {
	opacity: 1; transform: none;
	transition: opacity .35s ease calc(var(--i, 0) * 110ms + 150ms), transform .65s cubic-bezier(.2, .9, .25, 1.15) calc(var(--i, 0) * 110ms + 150ms);
}
.cbc-slot { --i: 0; }

/* ----------------------------------------------------------------- reveals */

.js .cbc-rev:not(.cbc-board) { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.js .cbc-rev.is-in:not(.cbc-board) { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.js .cbc-rev, .js .cbc-board .cbc-card { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ------------------------------------------------------------------ plates */

.cbc-ph { margin: 0; }
.cbc-ph img { display: block; width: 100%; height: auto; }
.cbc-ph figcaption, .cbc-ph .wp-element-caption {
	margin-top: .6rem; font-family: var(--display); font-stretch: 90%; font-size: var(--wp--preset--font-size--small);
	color: var(--muted); text-align: left;
}

/* ------------------------------------------------------------- split rows */

.cbc-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.cbc-split.is-portrait { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.cbc-split.is-top { align-items: start; }
.cbc-split > * { margin-block: 0 !important; }
.cbc-split > .wp-block-group > :first-child { margin-top: 0; }

.cbc-year {
	font-family: var(--display); font-weight: 880; font-stretch: 70%; line-height: .85;
	font-size: clamp(4.5rem, 3rem + 6vw, 8.5rem); color: var(--claret); margin: 0 0 1rem; letter-spacing: -.01em;
}

/* First Sunday: four answers. Four items, so two by two, then one column. */
.cbc-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-top: 2.2rem; border-top: 1px solid var(--line); }
.cbc-facts > * { margin: 0 !important; padding: 1.6rem 2rem 1.6rem 0; border-bottom: 1px solid var(--line); }
.cbc-facts > :nth-child(odd) { border-right: 1px solid var(--line); }
.cbc-facts > :nth-child(even) { padding-left: 2rem; }
.cbc-facts h3 { margin: 0 0 .5rem; font-size: 1.2rem; }
.cbc-facts p { margin: 0; }

.cbc-quote {
	margin: 1.8rem 0 0; padding: 0 0 0 1.4rem; border-left: 3px solid var(--claret);
}
.cbc-quote p { font-family: var(--body); font-style: italic; font-size: var(--wp--preset--font-size--lede); line-height: 1.45; margin: 0; }
.cbc-quote cite { display: block; margin-top: .6rem; font-family: var(--display); font-style: normal; font-stretch: 90%; font-size: var(--wp--preset--font-size--small); color: var(--muted); }

.cbc-said { margin-top: 1.4rem; }
.cbc-said p { font-size: var(--wp--preset--font-size--lede); line-height: 1.5; }

/* --------------------------------------------------------------- page head */

.cbc-pagehead { padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(2rem, 4vw, 3rem); border-bottom: 1px solid var(--line); }
.cbc-pagehead h1 { margin: 0; font-stretch: 100%; font-weight: 820; }
.cbc-pagehead .cbc-lede { margin-top: 1.1rem; color: var(--ink); }
.cbc-pagehead .cbc-back { margin: 0 0 1rem; }

/* Hub sections: a short answer and a way into the full page. */
.cbc-hub { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); }
.cbc-hub > * { margin: 0 !important; }
.cbc-hub h2 { font-size: var(--wp--preset--font-size--display-3); font-size: 1.85rem; margin-top: 1.4rem !important; }

/* ------------------------------------------------------------------- times */

.cbc-times { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--ink); }
.cbc-times-day { padding: 1.2rem 1.4rem 1.4rem 0; }
.cbc-times-day + .cbc-times-day { padding-left: 1.4rem; border-left: 1px solid var(--line); }
.cbc-times h3 { margin: 0 0 .8rem; font-size: 1.15rem; text-transform: uppercase; letter-spacing: .1em; font-stretch: 85%; }
.cbc-times ul { list-style: none; margin: 0; padding: 0; }
.cbc-times li { margin: 0 0 .9rem; }
.cbc-times-t { display: block; font-family: var(--display); font-weight: 720; font-stretch: 88%; }
.cbc-times-n { display: block; }
.cbc-times small { color: var(--muted); font-size: .9em; }

/* -------------------------------------------------------------- ministries */

.cbc-ministries {
	list-style: none; margin: 1.6rem 0 0; padding: 0;
	columns: 2; column-gap: 3rem; column-rule: 1px solid var(--line);
}
.cbc-ministries li {
	break-inside: avoid; padding: .85rem 0; border-bottom: 1px solid var(--line);
	font-family: var(--display); font-stretch: 95%; font-weight: 600; font-size: 1.08rem;
}

/* -------------------------------------------------------------------- give */

.cbc-give {
	background: var(--paper); border: 2px solid var(--ink); padding: clamp(1.6rem, 3vw, 2.4rem);
	box-shadow: 10px 10px 0 var(--stone);
}
.cbc-sec.is-stone .cbc-give { box-shadow: 10px 10px 0 var(--line); }
.cbc-give p { margin: 0; }
.cbc-give-label { font-family: var(--display); font-stretch: 85%; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; font-size: var(--wp--preset--font-size--small); color: var(--muted); }
.cbc-give-tag { font-family: var(--display); font-weight: 860; font-stretch: 100%; font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); margin: .3rem 0 1.4rem !important; overflow-wrap: anywhere; }

/* --------------------------------------------------------------------- map */

.cbc-map { margin-top: 1.6rem; border: 1px solid var(--line); aspect-ratio: 2 / 1; background: var(--stone); }
.cbc-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.cbc-map-link { margin-top: .8rem; font-family: var(--display); font-weight: 650; font-stretch: 92%; }
.cbc-address { font-family: var(--display); font-weight: 650; font-stretch: 95%; font-size: 1.35rem; line-height: 1.3; margin: 0; }

/* ------------------------------------------------------------------- posts */

.cbc-post { padding-block: clamp(2.5rem, 5vw, 4.5rem) var(--sec); }
.cbc-article > * { max-width: 42rem; }
.cbc-post-title { font-weight: 820; margin: .4rem 0 1.4rem; }
.cbc-post-date { font-family: var(--display); font-stretch: 90%; color: var(--muted); font-size: var(--wp--preset--font-size--small); }
.cbc-postlist { list-style: none; padding: 0; }
.cbc-postlist > li { padding: 1.4rem 0; border-top: 1px solid var(--line); }
.cbc-postlist-title { font-size: 1.6rem; margin: .3rem 0 .6rem; }
.cbc-postlist-title a { color: var(--ink); text-decoration: none; }

/* Embeds and video a church may drop in later, styled before they arrive. */
.wp-block-embed, .wp-block-video { margin-block: 2rem; }
.wp-block-embed iframe, .wp-block-video video { width: 100%; display: block; }

/* ------------------------------------------------------------------ footer */

footer.cbc-foot { background: var(--walnut); color: var(--paper); padding-block: clamp(3rem, 6vw, 4.5rem) 1.5rem; }
footer.cbc-foot a { color: var(--paper); }
.cbc-foot-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; }
.cbc-foot-grid p { margin: 0 0 .5rem; color: var(--on-walnut); }
.cbc-foot-title { font-family: var(--display); font-weight: 820; font-stretch: 110%; text-transform: uppercase; font-size: 1.35rem; color: var(--paper) !important; letter-spacing: .02em; }
.cbc-foot-label { font-family: var(--display); font-stretch: 85%; font-weight: 650; letter-spacing: .18em; text-transform: uppercase; font-size: .8rem; color: var(--on-walnut); }
.cbc-foot-nav ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 1.5rem; }
.cbc-foot-nav li { margin: 0 0 .45rem; }
.cbc-foot-nav a { text-decoration: none; }
.cbc-foot-nav a:hover, .cbc-foot-nav a[aria-current="page"] { text-decoration: underline; }
.cbc-foot-base {
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem;
	position: relative; margin-top: 2.5rem; padding-top: 1.2rem;
	font-size: var(--wp--preset--font-size--small); color: var(--on-walnut);
}
.cbc-foot-base::before { content: ""; position: absolute; top: 0; left: var(--pad); right: var(--pad); border-top: 1px solid rgba(255, 255, 255, .14); }
.cbc-foot-base p { margin: 0; }
.fx-credit { color: var(--on-walnut); }
.fx-credit a { color: var(--paper); }
.fx-credit-about {
	max-width: 76rem; margin: 0 auto; padding: 1.4rem var(--pad) var(--sec);
	font-size: var(--wp--preset--font-size--small); color: var(--muted);
}

/* ------------------------------------------------------------- breakpoints */

@media (max-width: 1020px) {
	.cbc-hero-grid { grid-template-columns: minmax(0, 1fr); }
	.cbc-board { max-width: 34rem; }
	.cbc-times { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cbc-times-day:nth-child(3) { padding-left: 0; border-left: 0; }
	.cbc-times-day:nth-child(n+3) { border-top: 1px solid var(--line); }
}

@media (max-width: 820px) {
	.cbc-split, .cbc-split.is-portrait, .cbc-hub { grid-template-columns: minmax(0, 1fr); }
	.cbc-split.is-portrait .cbc-ph { max-width: 24rem; }
	.cbc-foot-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.cbc-foot-name { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
	.cbc-facts { grid-template-columns: minmax(0, 1fr); }
	.cbc-facts > :nth-child(odd) { border-right: 0; }
	.cbc-facts > :nth-child(even) { padding-left: 0; }
	.cbc-facts > * { padding-right: 0; }
	.cbc-ministries { columns: 1; }
	.cbc-times { grid-template-columns: minmax(0, 1fr); }
	.cbc-times-day + .cbc-times-day { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
	.cbc-map { aspect-ratio: 4 / 3; }
	.cbc-board { padding: 1.2rem 1rem 1rem; }
	.cbc-slot { grid-template-columns: 2.4rem 5.9rem minmax(0, 1fr); gap: .7rem; }
	.cbc-card-t { font-size: 1.6rem; }
	.cbc-foot-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 360px) {
	.cbc-slot { grid-template-columns: 5.6rem minmax(0, 1fr); }
	.cbc-slot-day { grid-column: 1 / -1; }
}

/* ---------------------------------------------------------------- odds */

.cbc-main { display: block; }
.cbc-col > :first-child { margin-top: 0; }
.cbc-col > :last-child { margin-bottom: 0; }
.cbc-note { color: var(--muted); font-size: var(--wp--preset--font-size--small); }
.cbc-list { padding-left: 1.1rem; }
.cbc-list li { margin: 0 0 .7rem; }
.cbc-prose > * { max-width: 42rem; }
/* Hub cards sit side by side, so both pictures take one shape. */
.cbc-hub .cbc-ph img { aspect-ratio: 4 / 3; object-fit: cover; object-position: center 40%; }
.cbc-menu-word { line-height: 1; }
.cbc-give-go { margin-top: 0; }
