/*
Theme Name: Astra Child (Ascent)
Theme URI: https://ascentnewhaven.org
Description: Astra child theme for Church of the Ascent, New Haven. Only CSS: colors, typography, and styles for WordPress's built-in blocks. All content is built in the block editor; settings are in Appearance → Customize.
Author: Church of the Ascent
Template: astra
Version: 2.0.0
Requires at least: 7.0
Requires PHP: 8.0
Update URI: false
License: GPL-2.0-or-later
Text Domain: ascent-astra-child
*/

/* Fonts: Cormorant Garamond (headings, incl. true italic) and Inter (text) from Google Fonts */
/* MOVED TO CUSTOMIZER → Global → Typography (Astra loads Inter and Cormorant Garamond; only the italic and extra weights are still loaded here). Original rule kept for reference:
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500&family=Inter:wght@400;500;600&display=swap");
*/
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,700;1,500&family=Inter:wght@500;600&display=swap");

/* ==========================================================================
   Church of the Ascent — Astra child styles
   Recreates the Church of the Ascent design on Astra + WordPress's built-in blocks.
   Plain CSS only — no PHP or JavaScript. Section list:
   Variables · Base · Header & menus · Page layout · Banners · Block styles (Eyebrow, Lead,
   buttons, Card, Tinted, Dark, Card grid, Rounded photo, Accordion) · Home sections · Sermons
   (latest sermon, library, series pages, sermon posts, archives) · Contact form · Footer · Phone
   Rules marked "MOVED TO CUSTOMIZER" are kept, commented out, to show what is now set in
   Appearance → Customize instead of here. Rules marked "UNUSED" matched no element on any page or
   saved pattern (checked 2026-10-03); uncomment one if you start using that style again.
   Colors come from Astra's Global Palette (Customizer → Global → Colors):
   0 brand #1f3a4d · 1 brand-2 #2b5169 · 2 headings #1b2833 · 3 text #1b2833
   4 page bg #fbf8f3 · 5 sand #f3ede3 · 6 dark #1b2833 · 7 lines #e6dfd3 · 8 gold #c9a063
   ========================================================================== */

/* ==========================================================================
   CLASS NAMING — type these in a block's Advanced → Additional CSS class(es)
   (not "HTML anchor", which is a link target such as #visit).

   is-style-ascent-NAME   A look for one block type; use one per block.
                          hero (Cover) · card, tint, dark (Group) · cards (Columns) · eyebrow, lead,
                          statement (Paragraph) · glass (Button) · photo (Image) · accordion (Details)
                          Named like WordPress block Styles but not registered, so they are typed, not
                          picked. Choosing a built-in style on the same block (e.g. Outline, Rounded)
                          removes any is-style-… class, so re-add it if that happens.

   ascent-NAME            A role, layout or behaviour; combine freely with each other and with a look.
                          Layout: ascent-section, ascent-panel, ascent-compact, ascent-text-group, ascent-split, ascent-section--compact
                          Width: ascent-reading
                          Effects: ascent-glow-more, ascent-glow-most, ascent-sky-ascend,
                          ascent-fade-in-only, ascent-fade-out-only

   ascent-NAME__part      A part inside one component, e.g. ascent-latest__title.
   ascent-NAME--variant   A variant of that component, e.g. ascent-latest--dark.

   --asc-NAME             CSS variables (colors, widths, spacing), set once in :root below.
   ========================================================================== */

:root {
	--asc-primary: var(--ast-global-color-0, #1f3a4d);
	--asc-primary-2: var(--ast-global-color-1, #3C6680);
	--asc-ink: var(--ast-global-color-2, #1b2833);     /* heading and text */
	--asc-bg: var(--ast-global-color-4, #f2f2f2);      /* primary bg */
	--asc-bg2: var(--ast-global-color-5, #fafafa);     /* secondary bg */
	--asc-dark: var(--ast-global-color-6, #1b2833);
	--asc-line: var(--ast-global-color-7, #e6dfd3);
	--asc-gold: var(--ast-global-color-8, #c9a063);
	--asc-gold-ink: var(--ast-global-color-9, #8f6424);
	--asc-card: var(--ast-global-color-10, #fff);        /* card background (Customizer custom colour "Card Background") */
	--asc-muted: #5b6770;
	--asc-body: #3a4752;
	--asc-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--asc-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--asc-radius: 14px;
	--asc-radius-sm: 8px;
	--asc-shadow: 0 1px 2px rgba(27, 40, 51, .06), 0 8px 28px rgba(27, 40, 51, .08);
	--asc-shadow-lg: 0 20px 60px rgba(27, 40, 51, .18);
	/* WIDTH SYSTEM — every page uses two content widths, set here only (no pixel values in the editor):
	   • Reading (--asc-content): blocks at the top level of a page with Align = None; inside a full-width section, add
	     the class "ascent-reading".
	   • Wide (--asc-inner): blocks at the top level with Align = Wide width; inside a full-width section this is the default.
	   • Full width: Align = Full width (banners and section backgrounds run edge to edge; their content uses the widths above).
	   --asc-gutter is the minimum space between content and the screen edge (16px on phones up to 32px). */
	--asc-gutter: clamp(16px, 4vw, 32px);
	--asc-inner: 1136px;   /* wide content width inside the 1200px container */
	--asc-content: 756px;  /* reading width for column - narrower for long texts */
	--asc-narrow: 836px;   /* UNUSED since 2026-10-24 (was the Home events column; see "ascent-reading") */
	--asc-ease: cubic-bezier(.2, .7, .2, 1);
	/* CHANGED 2026-10-07: sections felt too tall (was 64px on phones up to 112px on desktop). Original:
	--asc-section: clamp(64px, 9vw, 112px);
	*/
	--asc-section: clamp(48px, 6vw, 80px);   /* top/bottom padding of "ascent-section" Groups: 48px on phones up to 80px on desktop */
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
@medio (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { -webkit-font-smoothing: antialiased; }
/* MOVED TO CUSTOMIZER → Global → Typography → Body font (Inter). Original rule kept for reference:
body, button, input, select, textarea { font-family: var(--asc-sans); }
*/
/* MOVED TO CUSTOMIZER → Global → Typography → Headings (Cormorant Garamond 600, line height 1.15 for H1–H6, letter spacing) and H3/H4 sizes; heading colour from Global → Colors. Original rule kept for reference:
h1, h2, h3, h4, h5, h6,
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4 {
	font-family: var(--asc-serif); font-weight: 600; line-height: 1.15; letter-spacing: -.01em; color: var(--asc-ink);
}
.entry-content h3 { font-size: 1.6rem; }
.entry-content h4 { font-size: 1.3rem; }
*/
/* MOVED TO CUSTOMIZER → Global → Colors → Link colour and Link hover colour. Original rule kept for reference:
.entry-content a:not(.wp-block-button__link):not(.ascent-btn) { color: var(--asc-primary-2); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.entry-content a:not(.wp-block-button__link):not(.ascent-btn):hover { color: var(--asc-gold-ink); }
*/
.entry-content a:not(.wp-block-button__link):not(.ascent-btn) { text-decoration-thickness: 1px; text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--asc-gold); outline-offset: 3px; border-radius: 4px; }
small { font-size: .85em; }

/* ---------- Header (sticky, translucent) ---------- */
#masthead {
	position: sticky; top: 0; z-index: 100;
	background: rgba(251, 248, 243, .92); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px);
}
.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar #masthead { top: 46px; } }
/* In-page links (e.g. "Plan a Visit" → /#visit, #events) stop just below the sticky header instead of underneath it.
   WordPress adds the admin bar's height to the variable when you're logged in. */
html { scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + 96px); }
#masthead .main-header-bar, #masthead .ast-primary-header-bar, #masthead .ast-mobile-header-wrap .ast-primary-header-bar { background: transparent !important; border-bottom: 0 !important; box-shadow: none !important; }

/* Brand: Astra's Site Title + Tagline (Settings → General). The mountain mark drawn in CSS was removed 2026-10-12. */
/* UNUSED (only placed the mountain mark beside the site title; Astra already lays this box out; checked 2026-10-12):
.ast-site-identity { display: flex; align-items: center; gap: 12px; }
*/
.ast-site-title-wrap { display: flex; flex-direction: column; line-height: 1.1; }
.site-title { margin: 0; line-height: 1.1; }
.site-title a, .site-title a:visited, .site-title a:hover { font-family: var(--asc-serif); font-weight: 700; letter-spacing: .01em; white-space: nowrap; }
/* MOVED TO CUSTOMIZER → Header → Site Title & Logo → Site title size (mobile). Original rule kept for reference
   (the now-empty "@media (max-width: 544px)" wrapper around it was removed 2026-10-12):
@media (max-width: 544px) {
	.site-title a, .site-title a:visited { font-size: 1.3rem; }
}
*/

/* Desktop menu: pill hovers, card dropdowns */
.ast-desktop .main-header-menu > .menu-item > .menu-link {
/* MOVED TO CUSTOMIZER → Header → Primary Menu → Menu font size, weight and colour. Original rule kept for reference:
	line-height: 1.4; padding: 10px 14px; margin: 0 1px; border-radius: 999px; height: auto; min-height: 0;
	font-size: .93rem; font-weight: 500; color: var(--asc-ink); transition: background .2s, color .2s;
*/
	line-height: 1.4; padding: 10px 14px; margin: 0 1px; border-radius: 999px; height: auto; min-height: 0; transition: background .2s, color .2s;
}
/* MOVED TO CUSTOMIZER → Header → Primary Menu → Hover colour and hover background. Original rule kept for reference:
.ast-desktop .main-header-menu > .menu-item:hover > .menu-link,
.ast-desktop .main-header-menu > .menu-item:focus-within > .menu-link { background: var(--asc-bg2); color: var(--asc-primary); }
*/
.ast-desktop .main-header-menu > .menu-item:focus-within > .menu-link { background: var(--asc-bg2); }
.ast-desktop .main-header-menu > .current-menu-item > .menu-link,
.ast-desktop .main-header-menu > .current-menu-ancestor > .menu-link,
/* MOVED TO CUSTOMIZER → Header → Primary Menu → Active colour. Original rule kept for reference:
.ast-desktop .main-header-menu > .current-page-ancestor > .menu-link { color: var(--asc-primary); font-weight: 600; }
*/
.ast-desktop .main-header-menu > .current-page-ancestor > .menu-link { font-weight: 600; }
.ast-desktop .main-header-menu .dropdown-menu-toggle, .ast-desktop .main-header-menu .ast-header-navigation-arrow { opacity: .6; }
.ast-desktop .main-header-menu .sub-menu {
	min-width: 230px; padding: 8px; margin-top: 6px; border: 1px solid var(--asc-line) !important; border-top-width: 1px !important;
	border-radius: var(--asc-radius); background: #fff; box-shadow: var(--asc-shadow-lg);
}
.ast-desktop .main-header-menu .sub-menu::before { content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px; }
.ast-desktop .main-header-menu .sub-menu .menu-item { border: 0 !important; }
.ast-desktop .main-header-menu .sub-menu .menu-link { padding: 10px 14px; border-radius: var(--asc-radius-sm); border: 0 !important; font-size: .93rem; color: var(--asc-ink); }
.ast-desktop .main-header-menu .sub-menu .menu-link:hover { background: var(--asc-bg2); color: var(--asc-primary); }
.ast-header-button-1 { margin-left: 10px; }
.ast-header-button-1 .ast-custom-button {
/* MOVED TO CUSTOMIZER → Header → Button → Border radius, Spacing (padding), Font size and weight. Original rule kept for reference:
	border-radius: 999px !important; padding: .6em 1.2em !important; font-family: var(--asc-sans); font-size: .88rem !important; font-weight: 600 !important;
	line-height: 1.2; letter-spacing: .01em; border: 0 !important;
*/
	line-height: 1.2; letter-spacing: .01em; border: 0 !important; transition: transform .2s var(--asc-ease), background .2s, box-shadow .2s;
}
.ast-header-button-1 .ast-custom-button:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(201, 160, 99, .35); }

/* Mobile menu: full list with separators and square toggles */
.ast-mobile-header-content { background: var(--asc-bg) !important; padding: 12px var(--asc-gutter) 32px; border-top: 1px solid var(--asc-line); max-height: calc(100vh - 68px); overflow-y: auto; }
.ast-mobile-header-content .main-header-menu > .menu-item { border-bottom: 1px solid var(--asc-line) !important; }
.ast-mobile-header-content .main-header-menu .menu-item { border-top: 0 !important; }
.ast-mobile-header-content .main-header-menu > .menu-item > .menu-link { padding: 16px 52px 16px 4px !important; font-size: 1.1rem; color: var(--asc-ink); background: none !important; border: 0 !important; }
.ast-mobile-header-content .ast-menu-toggle {
	width: 44px !important; height: 44px !important; top: 6px !important; right: 0 !important; border-radius: 10px; background: var(--asc-bg2) !important;
	color: var(--asc-ink) !important; display: grid !important; place-items: center; padding: 0 !important;
}
.ast-mobile-header-content .sub-menu { background: transparent !important; padding: 0 0 12px 12px !important; }
.ast-mobile-header-content .sub-menu .menu-link { padding: 10px 8px !important; color: var(--asc-muted) !important; border: 0 !important; font-size: 1rem; background: none !important; }
.ast-mobile-header-content .ast-header-button-1 { margin: 24px 0 0; }
.ast-mobile-header-content .ast-header-button-1 .ast-custom-button { display: block; text-align: center; padding: .85em 1.6em !important; font-size: .95rem !important; }
.ast-mobile-header-content .ast-builder-layout-element { padding: 0 !important; }
.menu-toggle.main-header-menu-toggle { background: transparent !important; color: var(--asc-ink) !important; }

/* ---------- Page layout: reading column, wide and full alignments ---------- */
/* Pages that start with a full-width Cover banner sit flush under the header */
body:has(.entry-content > .wp-block-cover.alignfull:first-child) .site-content > .ast-container,
body:has(.entry-content > .wp-block-cover.alignfull:first-child) #primary { padding-top: 0 !important; margin-top: 0 !important; padding-bottom: 0 !important; margin-bottom: 0 !important; }
body:has(.entry-content > .wp-block-cover.alignfull:first-child) .site-content .ast-container { max-width: 100%; padding: 0; display: block; }
body:has(.entry-content > .wp-block-cover.alignfull:first-child) .site-content article { padding: 0 !important; margin: 0 !important; background: none !important; }
.ast-page-builder-template .entry-content > *:not(.alignfull):not(.alignwide):not(.alignleft):not(.alignright) {
	max-width: var(--asc-content); margin-left: auto; margin-right: auto; padding-left: var(--asc-gutter); padding-right: var(--asc-gutter); box-sizing: content-box;
}
.ast-page-builder-template .entry-content > .alignwide { max-width: 1200px; margin-left: auto; margin-right: auto; padding-left: var(--asc-gutter); padding-right: var(--asc-gutter); box-sizing: border-box; width: 100%; }
.ast-page-builder-template .entry-content > .alignfull { margin-left: 0; margin-right: 0; max-width: none; width: 100%; }
.ast-page-builder-template .entry-content > :last-child { margin-bottom: clamp(56px, 8vw, 96px); }
.ast-page-builder-template .entry-content > .alignfull:last-child { margin-bottom: 0; }
/* CHANGED 2026-10-07: space after the page banner is skipped when the next block is an "ascent-section", which has its
   own padding (the two added up to a very tall gap on the Home page). Original rule kept for reference:
.ast-page-builder-template .entry-content > .wp-block-cover:first-child + * { margin-top: clamp(56px, 8vw, 96px); }
*/
.ast-page-builder-template .entry-content > .wp-block-cover:first-child + :not(.ascent-section) { margin-top: clamp(56px, 8vw, 96px); }
.entry-content > * + * { margin-top: 0; }
/* Spacing flows from bottom margins (like the original), not WordPress's default 24px block gap. */
.entry-content :where(.is-layout-flow, .is-layout-constrained) > * { margin-block-start: 0; }
.entry-content p { margin-bottom: 1.1em; }

/* Sections: full-width Groups with the "ascent-section" class. Start new ones from the "ascent-section" pattern
   (Patterns → Sections), which already has the class. Kept in CSS rather than block settings because the spacing and
   heading size shrink on phones, and the editor sidebar shows such screen-scaling values as blank boxes. */
.entry-content .ascent-section { padding: var(--asc-section) var(--asc-gutter); box-sizing: border-box; }
/* Variant "ascent-section--compact" (add next to "ascent-section"): less top/bottom space, for a short section such as a quote */
.entry-content .ascent-section.ascent-section--compact { padding-top: clamp(32px, 4vw, 48px); padding-bottom: clamp(32px, 4vw, 48px); }
.entry-content .wp-block-group.alignfull > * { max-width: var(--asc-inner); margin-left: auto; margin-right: auto; }

/* UNUSED (no page or pattern uses it since the Home events list dropped it; checked 2026-10-24). Replaced by "ascent-reading":
.entry-content .ascent-narrow { max-width: var(--asc-narrow) !important; margin-left: auto; margin-right: auto; }
*/
/* Width class "ascent-reading" (Advanced → Additional CSS class(es)): keeps a block at the reading width (--asc-content),
   centred, even inside a full-width section where blocks are otherwise wide. Use it instead of typing a pixel value in
   Layout → "Inner blocks use content width". */
.entry-content .ascent-reading { max-width: var(--asc-content) !important; margin-left: auto !important; margin-right: auto !important; }
/* CHANGED 2026-10-28: H2 size now comes from Customizer → Global → Typography (H2, with tablet/phone sizes) and the
   bottom margin from Astra's default 20px, so all H2s match. Original:
.entry-content .ascent-section > h2, .entry-content .ascent-section h2.wp-block-heading, .ascent-split h2 { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: .5em; }
*/
/* Bottom margin kept: inside columns and groups, WordPress's layout CSS sets heading margins to 0 and outranks Astra's 20px */
.entry-content .ascent-section > h2, .entry-content .ascent-section h2.wp-block-heading, .ascent-split h2 { margin-bottom: .5em; }

/* Reading-column headings (inner pages) */
/* CHANGED 2026-10-28: only the top space is kept (a heading mid-page needs room above it); size from the Customizer,
   bottom margin from Astra's 20px. Original:
.ast-page-builder-template .entry-content > h2 { font-size: clamp(1.9rem, 3.5vw, 2.5rem); margin-top: 1.6em; margin-bottom: .5em; }
*/
.ast-page-builder-template .entry-content > h2 { margin-top: 1.6em; }
/* REMOVED 2026-10-28 (redundant: the "first block after the hero" rule near the top of Page layout already sets this):
.ast-page-builder-template .entry-content > .wp-block-cover:first-child + h2 { margin-top: clamp(56px, 8vw, 96px); }
*/

/* ---------- Page hero (Cover → Styles → "Page hero") ---------- */
.wp-block-cover.is-style-ascent-hero {
	min-height: 0 !important; align-items: center; color: #fff;
	padding: clamp(64px, 9vw, 120px) var(--asc-gutter) clamp(56px, 7vw, 96px);
}
body .entry-content .wp-block-cover.is-style-ascent-hero .wp-block-cover__inner-container { max-width: 1200px; width: 100%; margin: 0 auto; color: #fff; }

.wp-block-cover.is-style-ascent-hero .wp-block-cover__inner-container > * { margin-left: 0; margin-right: 0; }
/* CHANGED 2026-10-28: title width limit raised from 20ch to 28ch so "Bible Study & Fellowship" fits on one line on desktop,
   keeping that hero the same height as the others. Original:
.wp-block-cover.is-style-ascent-hero h1 { color: #fff; font-size: clamp(2.3rem, 5vw, 4rem); line-height: 1.02; margin: 0 0 .35em; max-width: 20ch; }
*/
/* CHANGED 2026-10-29: heading font size removed so page hero titles follow Customizer → Global → Typography (H1–H6); change a single heading in the editor (Typography → Size) instead. Original:
.wp-block-cover.is-style-ascent-hero h1 { color: #fff; font-size: clamp(2.3rem, 5vw, 4rem); line-height: 1.02; margin: 0 0 .35em; max-width: 28ch; }
*/
.wp-block-cover.is-style-ascent-hero h1 { color: #fff; line-height: 1.02; margin: 0 0 .35em; max-width: 28ch; }
body .wp-block-cover.is-style-ascent-hero .wp-block-cover__inner-container p:not(.has-text-color) { color: rgba(255, 255, 255, .9); font-size: clamp(1.05rem, 1.6vw, 1.22rem); max-width: 42rem; margin-bottom: 0; }
.wp-block-cover.is-style-ascent-hero .wp-block-cover__background { background: linear-gradient(100deg, rgba(20, 36, 48, .86) 0%, rgba(20, 36, 48, .6) 45%, rgba(20, 36, 48, .25) 100%) !important; opacity: 1 !important; }

/* ---------- Full-screen sections (Vision page) ----------
   A full-width Group with the class "ascent-panel" is one screen-high section, content centred.
   Scrolling snaps gently to a section when you stop near its start ("proximity"; never forced). A section holding a Statement paragraph turns dark blue with large white
   text; the Mission box section is sand; others use the page colour. Parallax: the text drifts slower
   than the page and fades in and out; dark sections' gold glow drifts the other way. Pure CSS; visitors
   who prefer reduced motion get the sections without movement. */
/* REMOVED 2026-10-27: no snapping between sections; scrolling follows the visitor's own speed. Original rules kept for reference:
html:has(.entry-content > .ascent-panel) { scroll-snap-type: y proximity; scroll-padding-top: 80px; }
.entry-content:has(> .ascent-panel) > .wp-block-cover:first-child { scroll-snap-align: start; }
(plus "scroll-snap-align: start" in the .ascent-panel rule below)
*/
/* The banner is the first stop, so the page opens on it (without this, snapping skips past it). */
.ast-page-builder-template .entry-content > .ascent-panel {
	position: relative; overflow: clip; box-sizing: border-box !important;
	/* CHANGED 2026-10-25: sections made about 20% shorter. Original:
	min-height: calc(100vh - 80px); min-height: calc(100svh - 80px); margin: 0 !important;
	padding: clamp(56px, 10vh, 120px) var(--asc-gutter) !important;
	*/
	/* CHANGED 2026-10-25 (second step): shorter again. Previous:
	min-height: calc(80vh - 64px); min-height: calc(80svh - 64px);
	padding: clamp(48px, 8vh, 96px) var(--asc-gutter) !important;
	*/
	min-height: calc(70vh - 64px); min-height: calc(70svh - 64px); margin: 0 !important;
	display: flex; flex-direction: column; justify-content: center;
	padding: clamp(40px, 6vh, 72px) var(--asc-gutter) !important;
	background: var(--asc-bg); view-timeline: --ascent-panel block;
}
.entry-content > .ascent-panel > * { position: relative; z-index: 1; width: 100%; max-width: 760px; margin: 0 auto !important; box-sizing: border-box; }
.entry-content > .ascent-panel > * + * { margin-top: 1.4rem !important; }
.entry-content > .ascent-panel > p:not([class*="is-style"]),
.entry-content > .ascent-panel > .ascent-text-group > p:not([class*="is-style"]) { font-size: clamp(1.1rem, 1.5vw, 1.3rem); line-height: 1.8; color: var(--asc-body); }
/* Class "ascent-text-group" (on a Group inside a section): keeps several paragraphs together so they scroll-reveal as
   one block, top to bottom, in a single sweep. Looks like plain section text (no sand background). */
.entry-content > .ascent-panel > .ascent-text-group { display: flex; flex-direction: column; }   /* keeps the same paragraph spacing as text placed directly in a section */
.entry-content > .ascent-panel > .ascent-text-group > p + p { margin-top: 1.4rem; }
.entry-content > .ascent-panel > .ascent-text-group > p:last-child { margin-bottom: 0; }
.entry-content > .ascent-panel > .wp-block-separator { width: 120px; }
/* Section option (class "ascent-compact", set in the editor): for plain-text sections — no minimum height, so the
   section is only as tall as its text plus a smaller padding; two compact sections in a row sit closer together. */
/* CHANGED 2026-10-26: padding set midway between the old compact value and a full section's centred space. Original:
.ast-page-builder-template .entry-content > .ascent-panel.ascent-compact { min-height: 0; padding-top: clamp(32px, 4vh, 56px) !important; padding-bottom: clamp(32px, 4vh, 56px) !important; }
*/
.ast-page-builder-template .entry-content > .ascent-panel.ascent-compact { min-height: 0; padding-top: clamp(48px, 8.5vh, 88px) !important; padding-bottom: clamp(48px, 8.5vh, 88px) !important; }
/* Two compact sections in a row: the second skips its top padding, so the gap between them equals the space around each */
.ast-page-builder-template .entry-content > .ascent-panel.ascent-compact + .ascent-panel.ascent-compact { padding-top: 0 !important; }
/* Phones (added 2026-10-27): shorter sections and less padding, so short statements don't leave a mostly empty screen */
/* CHANGED 2026-10-27: a little more space, midway between this and the desktop sizing. Original:
	.ast-page-builder-template .entry-content > .ascent-panel { min-height: calc(45vh - 64px); min-height: calc(45svh - 64px); padding-top: 40px !important; padding-bottom: 40px !important; }
	.ast-page-builder-template .entry-content > .ascent-panel.ascent-compact { min-height: 0; padding-top: 44px !important; padding-bottom: 44px !important; }
*/
@media (max-width: 600px) {
	.ast-page-builder-template .entry-content > .ascent-panel { min-height: calc(57vh - 64px); min-height: calc(57svh - 64px); padding-top: 44px !important; padding-bottom: 44px !important; }
	.ast-page-builder-template .entry-content > .ascent-panel.ascent-compact { min-height: 0; padding-top: 56px !important; padding-bottom: 56px !important; }
	.ast-page-builder-template .entry-content > .ascent-panel.ascent-compact + .ascent-panel.ascent-compact { padding-top: 0 !important; }
}
/* Statement sections: dark, large white serif text, soft gold glow */
.entry-content > .ascent-panel:has(> .is-style-ascent-statement) { background: var(--asc-primary); }
.entry-content > .ascent-panel:has(> .is-style-ascent-statement)::before {
	content: ""; position: absolute; z-index: 0; right: -15%; top: 5%; width: 70%; aspect-ratio: 1; border-radius: 50%;
	/* CHANGED 2026-10-22: glow made slightly more visible. Original:
	background: radial-gradient(circle, rgba(201, 160, 99, .22), transparent 65%); pointer-events: none;
	*/
	background: radial-gradient(circle, rgba(201, 160, 99, .30), transparent 70%); pointer-events: none;
}
/* Section options for these dark statement sections (classes set in the editor): the gold glow steps up so the dark
   sections build towards the final "Join us in the Ascent" sky. "ascent-glow-more" = step 2 (larger, warmer, swells
   as it scrolls past); "ascent-glow-most" = step 3 (largest and brightest; the navy also lifts slightly towards the bottom). */
.entry-content > .ascent-panel.ascent-glow-more:has(> .is-style-ascent-statement)::before {
	/* CHANGED 2026-10-22: step 2 made stronger. Original:
	width: 85%; right: -20%; top: 0;
	background: radial-gradient(circle, rgba(214, 170, 104, .45), rgba(201, 160, 99, .12) 45%, transparent 70%);
	*/
	width: 95%; right: -22%; top: -3%;
	background: radial-gradient(circle, rgba(220, 175, 106, .56), rgba(206, 164, 100, .18) 45%, transparent 71%);
}
/* Added 2026-10-23: step 2 also gets a gentle lift of the navy towards the bottom, so each stage steps up */
.entry-content > .ascent-panel.ascent-glow-more:has(> .is-style-ascent-statement) { background: linear-gradient(180deg, var(--asc-primary) 45%, #25475f 100%); }
/* CHANGED 2026-10-23: step 3's lift made stronger. Original:
.entry-content > .ascent-panel.ascent-glow-most:has(> .is-style-ascent-statement) { background: linear-gradient(180deg, var(--asc-primary) 30%, #2d5470 100%); }
*/
.entry-content > .ascent-panel.ascent-glow-most:has(> .is-style-ascent-statement) { background: linear-gradient(180deg, var(--asc-primary) 20%, #2f5f85 100%); }
.entry-content > .ascent-panel.ascent-glow-most:has(> .is-style-ascent-statement)::before {
	/* CHANGED 2026-10-22: step 3 made slightly stronger. Original:
	width: 110%; right: -30%; top: -10%;
	background: radial-gradient(circle, rgba(232, 186, 112, .6), rgba(214, 170, 104, .2) 45%, transparent 72%);
	*/
	/* CHANGED 2026-10-23: step 3 made clearly stronger than step 2. Previous:
	width: 115%; right: -32%; top: -12%;
	background: radial-gradient(circle, rgba(236, 190, 114, .66), rgba(218, 174, 106, .24) 45%, transparent 73%);
	*/
	width: 130%; right: -38%; top: -18%;
	background: radial-gradient(circle, rgba(248, 204, 128, .85), rgba(232, 184, 112, .34) 42%, transparent 74%);
}
.entry-content > .ascent-panel > .is-style-ascent-statement { max-width: 980px; color: #fff; font-size: clamp(2.1rem, 4.6vw, 3.6rem) !important; line-height: 1.12; }
/* Mission section */
/* CHANGED 2026-10-27: a Group with "ascent-text-group" doesn't make the section sand. Original:
.entry-content > .ascent-panel:has(> .wp-block-group, > .is-style-ascent-lead) { background: var(--asc-bg2); }
*/
.entry-content > .ascent-panel:has(> .wp-block-group:not(.ascent-text-group), > .is-style-ascent-lead) { background: var(--asc-bg2); }
.entry-content > .ascent-panel > .is-style-ascent-lead, .entry-content > .ascent-panel > .wp-block-group .is-style-ascent-lead { font-size: clamp(1.4rem, 2.6vw, 2rem) !important; line-height: 1.45; text-align: center; }
/* Parallax */
/* CHANGED 2026-10-23: the blur-to-sharp text effect was replaced by a top-down "line by line" reveal.
   Original (inner comments shown as "(* … *)"):
(* Text: comes into focus (blur → sharp), grows slightly, fades in, then leaves the same way; it also
   drifts slower than the page (parallax). Fully visible only while its section fills the screen. *)
@keyframes ascent-drift {
	0%       { opacity: 0; translate: 0 -18vh; scale: .9; filter: blur(12px); }
	42%, 58% { opacity: 1; scale: 1; filter: blur(0); }
	100%     { opacity: 0; translate: 0 18vh; scale: .9; filter: blur(12px); }
}
(* Section option (class "ascent-fade-out-only", set in the editor): starts sharp and only fades/blurs as
   it leaves. Use it on the first section, which is already on screen when the page opens. *)
@keyframes ascent-drift-out {
	0%, 58% { opacity: 1; translate: 0 0; scale: 1; filter: blur(0); }
	100%    { opacity: 0; translate: 0 18vh; scale: .9; filter: blur(12px); }
}
(* Section option (class "ascent-fade-in-only", set in the editor): comes into focus but doesn't fade out.
   Use it on the last section, so it stays sharp as the page scrolls on to the footer. *)
@keyframes ascent-drift-in {
	0%        { opacity: 0; translate: 0 -18vh; scale: .9; filter: blur(12px); }
	42%, 100% { opacity: 1; translate: 0 0; scale: 1; filter: blur(0); }
}
*/
/* Text: a soft edge sweeps down through each block as its section scrolls in, so the lines appear one after
   another (a mask wipe; CSS can't address real text lines without JavaScript). The text also rises a little
   into place, stays put while the section fills the screen, then fades as it leaves. */
/* CHANGED 2026-10-27: reveal stretched over more scrolling (18–48%) so the lines appear one at a time. Original:
@keyframes ascent-drift {
	0%, 22%  { -webkit-mask-position: 0 100%; mask-position: 0 100%; opacity: 1; translate: 0 6vh; }
	40%, 58% { -webkit-mask-position: 0 0;    mask-position: 0 0;    opacity: 1; translate: 0 0; }
	100%     { -webkit-mask-position: 0 0;    mask-position: 0 0;    opacity: 0; translate: 0 -6vh; }
}
*/
@keyframes ascent-drift {
	0%, 18%  { -webkit-mask-position: 0 100%; mask-position: 0 100%; opacity: 1; translate: 0 6vh; }
	48%, 60% { -webkit-mask-position: 0 0;    mask-position: 0 0;    opacity: 1; translate: 0 0; }
	100%     { -webkit-mask-position: 0 0;    mask-position: 0 0;    opacity: 0; translate: 0 -6vh; }
}
/* Section option (class "ascent-fade-out-only", set in the editor): starts fully shown and only fades as it
   leaves. Use it on the first section, which is already on screen when the page opens. */
@keyframes ascent-drift-out {
	0%, 58% { -webkit-mask-position: 0 0; mask-position: 0 0; opacity: 1; translate: 0 0; }
	100%    { -webkit-mask-position: 0 0; mask-position: 0 0; opacity: 0; translate: 0 -6vh; }
}
/* Section option (class "ascent-fade-in-only", set in the editor): reveals line by line but doesn't fade out.
   Use it on the last section, so it stays visible as the page scrolls on to the footer. */
/* CHANGED 2026-10-27: same longer reveal as ascent-drift. Original:
@keyframes ascent-drift-in {
	0%, 22%   { -webkit-mask-position: 0 100%; mask-position: 0 100%; translate: 0 6vh; }
	40%, 100% { -webkit-mask-position: 0 0;    mask-position: 0 0;    translate: 0 0; }
}
*/
@keyframes ascent-drift-in {
	0%, 18%   { -webkit-mask-position: 0 100%; mask-position: 0 100%; translate: 0 6vh; }
	48%, 100% { -webkit-mask-position: 0 0;    mask-position: 0 0;    translate: 0 0; }
}
/* Text (added 2026-10-27): starts light gray and darkens to its normal colour line by line as it scrolls in
   (a colour edge sweeping down the letters), rises a little into place, then fades as it leaves.
   Used instead of the mask wipe above for paragraphs, headings and "ascent-text-group" Groups.
   HOW IT WORKS (CSS only, rules in the @supports block further down):
   1. Two-colour paint: the text gets a background gradient, full colour on top and the same colour at 28% below,
      with a soft edge about one line tall (1.2em) between them. "background-clip: text" plus a transparent
      text fill paints that gradient only inside the letters. Using currentColor means each block keeps its own
      colour: dark text on light sections, white on navy.
   2. Oversized background: the gradient is twice the block's height plus 2.4em, so at "background-position 0 100%"
      only the gray half shows and at "0 0" only the full-colour half shows.
   3. Scroll-driven: "animation-timeline: view()" ties each block's animation to its own position on screen, not to
      time. Over 0–100% of its pass through the screen, 18–48% moves the background from the gray half to the colour
      half (the edge travels down the block, darkening it line by line), 48–60% holds, and 60–100% fades it out.
      Scrolling backwards reverses it.
   Browsers without scroll animations, and visitors who prefer reduced motion, see plain text in its normal colour. */
@keyframes ascent-ink {
	0%, 18%  { background-position: 0 100%; opacity: 1; translate: 0 6vh; }
	48%, 60% { background-position: 0 0;    opacity: 1; translate: 0 0; }
	100%     { background-position: 0 0;    opacity: 0; translate: 0 -6vh; }
}
/* For "ascent-fade-in-only" sections: darkens line by line but doesn't fade out */
@keyframes ascent-ink-in {
	0%, 18%   { background-position: 0 100%; translate: 0 6vh; }
	48%, 100% { background-position: 0 0;    translate: 0 0; }
}
@keyframes ascent-glow { from { transform: translateY(22vh); } to { transform: translateY(-22vh); } }
/* Used by "ascent-glow-more" / "ascent-glow-most": the glow also grows and brightens while it drifts up */
@keyframes ascent-glow-swell { from { transform: translateY(22vh) scale(.75); opacity: .55; } to { transform: translateY(-22vh) scale(1.2); opacity: 1; } }
/* Section option (class "ascent-sky-ascend", set in the editor on a section whose background image — Styles →
   Background — is blue at the bottom and gold at the top, e.g. the Vision page's last section): as the page scrolls
   down, the view tilts up through the sky from the blue into the gold, and a soft light grows at the top ("glory").
   Browsers without scroll animations, and visitors who prefer reduced motion, see the whole picture as set in the editor. */
@keyframes ascent-sky-rise { from { background-position: 50% 100%; } to { background-position: 50% 0%; } }
@keyframes ascent-sky-glory { from { opacity: 0; } to { opacity: 1; } }
.entry-content > .ascent-panel.ascent-sky-ascend::after {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0;
	background: radial-gradient(ellipse 90% 70% at 50% 0%, rgba(255, 238, 200, .95), rgba(255, 206, 140, .4) 45%, transparent 78%);
}
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.entry-content > .ascent-panel > * {
			/* CHANGED 2026-10-27: the soft edge was half the block's height, so long paragraphs faded in as one chunk;
			   it is now about one line tall (1.2em), so the wipe reads as line by line. Original:
			-webkit-mask-image: linear-gradient(#000 0 40%, transparent 60% 100%); mask-image: linear-gradient(#000 0 40%, transparent 60% 100%);
			-webkit-mask-size: 100% 250%; mask-size: 100% 250%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
			*/
			-webkit-mask-image: linear-gradient(#000 calc(50% - .6em), transparent calc(50% + .6em)); mask-image: linear-gradient(#000 calc(50% - .6em), transparent calc(50% + .6em));
			-webkit-mask-size: 100% calc(200% + 2.4em); mask-size: 100% calc(200% + 2.4em); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
			/* CHANGED 2026-10-26: each block is timed to its own position (view()) instead of its section's (--ascent-panel),
			   so in a section with several paragraphs they reveal one after another. Original:
			animation: ascent-drift linear both; animation-timeline: --ascent-panel; animation-range: cover 0% cover 100%;
			*/
			animation: ascent-drift linear both; animation-timeline: view(); animation-range: cover 0% cover 100%;
		}
		.entry-content > .ascent-panel.ascent-fade-out-only > * { animation-name: ascent-drift-out; }
		.entry-content > .ascent-panel.ascent-fade-in-only > * { animation-name: ascent-drift-in; }
		/* Text: gray-to-colour instead of the mask wipe (buttons and lines keep the wipe). The gray is the text's own
		   colour at 28%, so it suits both light and navy sections. The first section is already on screen, so it's left out. */
		.entry-content > .ascent-panel:not(.ascent-fade-out-only) > :is(p, h1, h2, h3, h4, .ascent-text-group) {
			-webkit-mask-image: none; mask-image: none;
			background-image: linear-gradient(currentColor calc(50% - .6em), color-mix(in srgb, currentColor 28%, transparent) calc(50% + .6em));
			background-size: 100% calc(200% + 2.4em); background-repeat: no-repeat;
			-webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
			animation-name: ascent-ink;
		}
		.entry-content > .ascent-panel > .ascent-text-group { color: var(--asc-body); }   /* its paragraphs' colour, which the sweep uses */
		.entry-content > .ascent-panel.ascent-fade-in-only > :is(p, h1, h2, h3, h4, .ascent-text-group) { animation-name: ascent-ink-in; }
		.entry-content > .ascent-panel::before { animation: ascent-glow linear both; animation-timeline: --ascent-panel; animation-range: cover 0% cover 100%; }
		.entry-content > .ascent-panel:is(.ascent-glow-more, .ascent-glow-most)::before { animation-name: ascent-glow-swell; }
		/* Sky taller than the section so it has room to move; the last section can only scroll about 65% of the way out */
		.entry-content > .ascent-panel.ascent-sky-ascend { background-size: auto 230% !important; background-repeat: no-repeat !important; animation: ascent-sky-rise linear both; animation-timeline: --ascent-panel; animation-range: cover 0% cover 65%; }
		.entry-content > .ascent-panel.ascent-sky-ascend::after { animation: ascent-sky-glory linear both; animation-timeline: --ascent-panel; animation-range: cover 25% cover 65%; }
	}
}

/* Home hero */
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover.is-style-ascent-hero.ascent-home-hero { min-height: min(88vh, 820px) !important; padding: clamp(80px, 12vw, 150px) var(--asc-gutter) clamp(120px, 14vw, 180px); }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover.is-style-ascent-hero.ascent-home-hero h1 { font-size: clamp(2.6rem, 6.5vw, 5.2rem); max-width: 14ch; }
*/

/* Text inside any Cover stays light (Astra darkens it by default) */
body .wp-block-cover .wp-block-cover__inner-container p:not(.has-text-color) { color: rgba(255, 255, 255, .9); }
body .wp-block-cover .wp-block-cover__inner-container .is-style-ascent-eyebrow { color: rgba(255, 255, 255, .85); margin-bottom: 1rem !important; }

/* CTA band (quote) */
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover.ascent-cta { text-align: center; padding: clamp(80px, 11vw, 140px) var(--asc-gutter); min-height: 0; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover.ascent-cta .wp-block-cover__background { background: rgba(20, 36, 48, .62) !important; opacity: 1 !important; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover.ascent-cta .wp-block-cover__inner-container { max-width: 900px; margin: 0 auto; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover.ascent-cta h2 { color: #fff; font-style: italic; font-weight: 500; font-size: clamp(2rem, 4.4vw, 3.4rem); max-width: 22ch; margin: 0 auto .3em; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
body .wp-block-cover.ascent-cta .wp-block-cover__inner-container .is-style-ascent-eyebrow { color: var(--asc-gold); font-size: .8rem !important; letter-spacing: .18em; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover.ascent-cta .wp-block-buttons { justify-content: center; }
*/

/* ---------- Paragraph styles ---------- */
.is-style-ascent-eyebrow { font-family: var(--asc-sans) !important; font-size: .78rem !important; line-height: 1.4; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--asc-gold-ink); margin-bottom: 1rem !important; }
/* Statement: a Paragraph set large in the heading font (class "is-style-ascent-statement"), for big
   sentences that aren't really titles, e.g. the Vision page's section statements. */
.entry-content .is-style-ascent-statement { font-family: var(--asc-serif); font-size: clamp(1.9rem, 3.5vw, 2.5rem) !important; font-weight: 600; line-height: 1.15; letter-spacing: -.01em; color: var(--asc-ink); }
/* CHANGED 2026-10-31: removed !important from font-size so a size set in the block editor (Typography → Size) can override the default. Original:
.is-style-ascent-lead { font-family: var(--asc-serif); font-size: 1.25rem !important; line-height: 1.6; font-weight: 500; color: var(--asc-primary); }
*/
.is-style-ascent-lead { font-family: var(--asc-serif); font-size: 1.25rem; line-height: 1.6; font-weight: 500; color: var(--asc-primary); }

/* ---------- Buttons ---------- */
.wp-block-buttons { margin-top: 1.6rem; gap: 12px; }
.wp-block-button .wp-block-button__link {
/* MOVED TO CUSTOMIZER → Global → Buttons → Border radius, Padding, Font (size, weight, line height, letter spacing). Original rule kept for reference:
	border-radius: 999px; padding: .85em 1.6em; font-family: var(--asc-sans); font-weight: 600; font-size: .95rem; line-height: 1.2; letter-spacing: .01em;
	border: 1.5px solid transparent;
*/
	border: 1.5px solid transparent; transition: transform .2s var(--asc-ease), background .2s, color .2s, border-color .2s, box-shadow .2s;
}
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); }
/* MOVED TO CUSTOMIZER → Global → Buttons → Button colour, Text colour, and their hover colours. Original rule kept for reference:
.wp-block-button:not(.is-style-outline):not(.is-style-ascent-gold):not(.is-style-ascent-glass) .wp-block-button__link { background: var(--asc-primary); color: #fff; }
.wp-block-button:not(.is-style-outline):not(.is-style-ascent-gold):not(.is-style-ascent-glass) .wp-block-button__link:hover { background: var(--asc-primary-2); color: #fff; box-shadow: var(--asc-shadow); }
*/
.wp-block-button:not(.is-style-outline):not(.is-style-ascent-gold):not(.is-style-ascent-glass) .wp-block-button__link:hover { box-shadow: var(--asc-shadow); }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-09 after the Who We Are buttons were removed).
   Colours for WordPress's built-in Outline button style; uncomment if Styles → Outline is used again:
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--asc-primary); border-color: var(--asc-primary); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--asc-primary); color: #fff; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-button.is-style-ascent-gold .wp-block-button__link { background: var(--asc-gold); color: var(--asc-ink); }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-button.is-style-ascent-gold .wp-block-button__link:hover { background: #d8b37c; color: var(--asc-ink); box-shadow: 0 8px 24px rgba(201, 160, 99, .35); }
*/
.wp-block-button.is-style-ascent-glass .wp-block-button__link { background: rgba(255, 255, 255, .12); color: #fff; border-color: rgba(255, 255, 255, .45); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.wp-block-button.is-style-ascent-glass .wp-block-button__link:hover { background: rgba(255, 255, 255, .22); color: #fff; }
.ascent-link-arrow a { font-weight: 600; font-size: .95rem; text-decoration: none !important; color: var(--asc-primary-2); }
.ascent-link-arrow a:hover { color: var(--asc-gold-ink); }

/* ---------- Group styles ---------- */
.wp-block-group.is-style-ascent-card {
	/* CHANGED 2026-10-30: card background now comes from the Customizer custom colour "Card Background" (via --asc-card). Original:
	background: #fff; border: 1px solid var(--asc-line); border-radius: var(--asc-radius); padding: clamp(24px, 4vw, 36px) !important; box-shadow: var(--asc-shadow); margin-top: 2em; margin-bottom: 2em;
	*/
	background: var(--asc-card); border: 1px solid var(--asc-line); border-radius: var(--asc-radius); padding: clamp(24px, 4vw, 36px) !important; box-shadow: var(--asc-shadow); margin-top: 2em; margin-bottom: 2em;
	box-sizing: border-box;
}
/* UNUSED (rounded sand box for a normal-width Group; only the deleted College page used it; checked 2026-10-20).
   Uncomment to use "is-style-ascent-tint" on a box that isn't full width:
.wp-block-group.is-style-ascent-tint:not(.alignfull) { background: var(--asc-bg2); border-radius: var(--asc-radius); padding: clamp(24px, 4vw, 36px) !important; margin-top: 2em; margin-bottom: 2em; box-sizing: border-box; }
*/
.wp-block-group.is-style-ascent-tint.alignfull { background: var(--asc-bg2); }
.wp-block-group.is-style-ascent-card > :first-child, .wp-block-group.is-style-ascent-tint > :first-child { margin-top: 0; }
.wp-block-group.is-style-ascent-card > :last-child, .wp-block-group.is-style-ascent-tint > :last-child { margin-bottom: 0; }
/* CHANGED 2026-10-28: added a bottom margin (WordPress's layout CSS otherwise leaves 0 below headings in a card). Original:
.wp-block-group.is-style-ascent-card h3, .wp-block-group.is-style-ascent-tint h3 { margin-top: 0; }
*/
.wp-block-group.is-style-ascent-card h3, .wp-block-group.is-style-ascent-tint h3 { margin-top: 0; margin-bottom: .5em; }
.wp-block-group.is-style-ascent-card .is-style-ascent-eyebrow, .wp-block-group.is-style-ascent-tint .is-style-ascent-eyebrow { margin-bottom: .4em !important; }
.wp-block-group.is-style-ascent-dark { background: var(--asc-primary); color: rgba(255, 255, 255, .88); }
.wp-block-group.is-style-ascent-dark h2, .wp-block-group.is-style-ascent-dark h3 { color: #fff; }
.wp-block-column > .wp-block-group.is-style-ascent-card, .wp-block-column > .wp-block-group.is-style-ascent-tint { margin: 0; height: 100%; }

/* ---------- Columns → "Card grid" ---------- */
.entry-content .wp-block-columns { gap: 24px; margin-top: 2em; margin-bottom: 2em; }
.wp-block-columns.is-style-ascent-cards > .wp-block-column {
	/* CHANGED 2026-10-30: card background now comes from the Customizer custom colour "Card Background" (via --asc-card). Original:
	background: #fff; border: 1px solid var(--asc-line); border-radius: var(--asc-radius); box-shadow: var(--asc-shadow); overflow: hidden;
	*/
	background: var(--asc-card); border: 1px solid var(--asc-line); border-radius: var(--asc-radius); box-shadow: var(--asc-shadow); overflow: hidden;
	display: flex; flex-direction: column; transition: transform .25s var(--asc-ease), box-shadow .25s;
}
.wp-block-columns.is-style-ascent-cards > .wp-block-column:hover { transform: translateY(-4px); box-shadow: var(--asc-shadow-lg); }
/* Photo cards: image on top, text padded below */
.wp-block-columns.is-style-ascent-cards > .wp-block-column > * { margin-left: 26px; margin-right: 26px; }
.wp-block-columns.is-style-ascent-cards > .wp-block-column > .wp-block-image:first-child { margin: 0 0 24px; }
.wp-block-columns.is-style-ascent-cards > .wp-block-column > .wp-block-image:first-child img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0; display: block; }
.wp-block-columns.is-style-ascent-cards > .wp-block-column > :last-child { margin-bottom: 28px; }
.wp-block-columns.is-style-ascent-cards > .wp-block-column > .ascent-link-arrow:last-child { margin-top: auto; }
/* CHANGED 2026-10-29: heading font size removed so card headings follow Customizer → Global → Typography (H1–H6); change a single heading in the editor (Typography → Size) instead. Original:
.wp-block-columns.is-style-ascent-cards h2, .wp-block-columns.is-style-ascent-cards h3 { font-size: 1.7rem; margin: 0 0 .3em; }
*/
.wp-block-columns.is-style-ascent-cards h2, .wp-block-columns.is-style-ascent-cards h3 { margin: 0 0 .3em; }
.wp-block-columns.is-style-ascent-cards h3 a, .wp-block-columns.is-style-ascent-cards h2 a { color: var(--asc-ink) !important; text-decoration: none !important; }
.wp-block-columns.is-style-ascent-cards h3 a:hover, .wp-block-columns.is-style-ascent-cards h2 a:hover { color: var(--asc-primary-2) !important; }
.wp-block-columns.is-style-ascent-cards p:not([class]) { color: var(--asc-muted); font-size: .98rem; }
/* Text-only cards (About, Get Connected): padded boxes like the original */
.wp-block-columns.is-style-ascent-cards > .wp-block-column:not(:has(> .wp-block-image:first-child)) { padding: clamp(24px, 4vw, 36px); }
.wp-block-columns.is-style-ascent-cards > .wp-block-column:not(:has(> .wp-block-image:first-child)) > * { margin-left: 0; margin-right: 0; }
.wp-block-columns.is-style-ascent-cards > .wp-block-column:not(:has(> .wp-block-image:first-child)) > :first-child { margin-top: 0; }
.wp-block-columns.is-style-ascent-cards > .wp-block-column:not(:has(> .wp-block-image:first-child)) > :last-child { margin-bottom: 0; }
/* CHANGED 2026-10-29: heading font size removed so text-only card H2s follow Customizer → Global → Typography (H1–H6); change a single heading in the editor (Typography → Size) instead. Original:
.wp-block-columns.is-style-ascent-cards > .wp-block-column:not(:has(> .wp-block-image:first-child)) h2 { font-size: clamp(1.9rem, 3.5vw, 2.5rem); }
*/
.wp-block-columns.is-style-ascent-cards > .wp-block-column:not(:has(> .wp-block-image:first-child)):hover { transform: none; box-shadow: var(--asc-shadow); }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-text-cards > .wp-block-column > p:not([class]) { flex: 1; }
*/
.entry-content .wp-block-columns.is-style-ascent-cards + .wp-block-columns.is-style-ascent-cards { margin-top: -4px; }

/* Icon tiles (visit cards, contact rows) */
.ascent-ico-clock { --asc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f3a4d' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7v5l3 2'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E"); }
.ascent-ico-pin { --asc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f3a4d' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.1-7-11.5A7 7 0 0 1 19 9.5C19 14.9 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-ico-car { --asc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f3a4d' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 16V11l2-5h10l2 5v5'/%3E%3Cpath d='M3 16h18v3H3z'/%3E%3Ccircle cx='7.5' cy='16' r='.5'/%3E%3Ccircle cx='16.5' cy='16' r='.5'/%3E%3C/svg%3E"); }
*/
.ascent-ico-mail { --asc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f3a4d' stroke-width='1.7' 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"); }

/* Visit cards overlapping the home hero */
.entry-content .ascent-visit { position: relative; z-index: 2; margin-top: clamp(-110px, -8vw, -70px) !important; margin-bottom: 0; gap: 20px; }
.ascent-visit.is-style-ascent-cards > .wp-block-column { padding: 30px 28px; box-shadow: var(--asc-shadow-lg); }
.ascent-visit.is-style-ascent-cards > .wp-block-column:hover { transform: none; box-shadow: var(--asc-shadow-lg); }
.ascent-visit.is-style-ascent-cards > .wp-block-column > * { margin-left: 0; margin-right: 0; }
.ascent-visit.is-style-ascent-cards > .wp-block-column > :last-child { margin-bottom: 0; margin-top: 0; }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-ico-card::before {
	content: ""; display: block; flex: none; width: 48px; height: 48px; border-radius: 12px;
	background: var(--asc-bg2) var(--asc-icon) center / 24px no-repeat;
}
*/
.ascent-visit .is-style-ascent-eyebrow { margin: 16px 0 6px !important; }
/* CHANGED 2026-10-29: heading font size removed so visit box H3s follow Customizer → Global → Typography (H1–H6); change a single heading in the editor (Typography → Size) instead. Original:
.entry-content .ascent-visit h3 { font-size: 1.55rem !important; line-height: 1.2; color: var(--asc-primary); margin: 0 0 .6em; }
*/
.entry-content .ascent-visit h3 { line-height: 1.2; color: var(--asc-primary); margin: 0 0 .6em; }
.entry-content .ascent-visit p:not([class]) { margin-bottom: 1.1em; }
.ascent-visit p:not([class]) { color: var(--asc-muted) !important; font-size: .96rem !important; }

/* Split sections (image + text) */
.entry-content .ascent-split { gap: clamp(32px, 6vw, 88px); align-items: center; margin: 0 auto; }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-split p:not([class]) { color: var(--asc-body); font-size: 1.05rem; }
*/
.wp-block-image.is-style-ascent-photo img { border-radius: var(--asc-radius); box-shadow: var(--asc-shadow-lg); width: 100%; object-fit: cover; }
/* UNUSED (the Home split now holds a card, not a photo; checked 2026-10-12):
.ascent-split .wp-block-image.is-style-ascent-photo { margin: 0; }
*/
/* UNUSED (the Home split now holds a card, not a photo; checked 2026-10-12):
.ascent-split .wp-block-image.is-style-ascent-photo img { aspect-ratio: 5 / 5.5; }
*/
/* UNUSED (the Home split now holds a card, not a photo; checked 2026-10-12):
@media (max-width: 781px) { .ascent-split .wp-block-image.is-style-ascent-photo img { aspect-ratio: 4 / 3; } }
*/

/* ---------- Events ---------- */
.entry-content .ascent-events > h2 { margin-bottom: clamp(32px, 4vw, 52px); }
.ascent-event.is-style-ascent-card { padding: 28px 30px !important; margin: 0 0 20px !important; }
/* CHANGED 2026-10-29: heading font size removed so event titles follow Customizer → Global → Typography (H1–H6); change a single heading in the editor (Typography → Size) instead. Original:
.ascent-event h3 { font-size: 1.8rem !important; margin: 0 0 .2em; }
*/
.ascent-event h3 { margin: 0 0 .2em; }
.ascent-event .ascent-event__when { font-size: .92rem; font-weight: 600; color: var(--asc-gold-ink); letter-spacing: .02em; }
.ascent-event p:last-child { margin-bottom: 0; }

/* ---------- Quote ---------- */
.entry-content .wp-block-quote {
	border-left: 3px solid var(--asc-gold); padding: 8px 0 8px 28px; margin-top: 2em; margin-bottom: 2em; background: none;
	font-family: var(--asc-serif); font-style: italic; font-size: 1.5rem; line-height: 1.45; color: var(--asc-primary);
}
.entry-content .wp-block-quote p { font-size: inherit; margin-bottom: .4em; font-style: italic; }
.entry-content .wp-block-quote cite { display: block; font: normal 600 .82rem/1.4 var(--asc-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--asc-gold-ink); margin-top: .8em; }
.ast-page-builder-template .entry-content > .wp-block-cover:first-child + .wp-block-quote { margin-top: clamp(40px, 5vw, 64px); }

/* ---------- Lists, rules, galleries ---------- */
.entry-content ul, .entry-content ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.entry-content li { margin-bottom: .4em; }
.entry-content li::marker { color: var(--asc-gold-ink); }
.entry-content .wp-block-separator { border: 0; height: 1px; background: var(--asc-line); margin: 3em auto; opacity: 1; }
/* Astra sets dividers to height 0 in block layouts, which hid them; keep them a 1px line. A colour picked
   in the divider's own settings (Styles → Color) still applies. */
body .entry-content .wp-block-separator:not(.is-style-dots) { height: 1px; }
.entry-content .wp-block-gallery { gap: 12px !important; margin: 2.4em auto; }
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: var(--asc-radius-sm); aspect-ratio: 1; object-fit: cover; }
@media (max-width: 700px) { .entry-content .wp-block-gallery.columns-3 figure.wp-block-image:not(#individual-image) { width: calc(50% - 6px) !important; } }

/* ---------- Details → "Accordion" (Beliefs) ---------- */
.wp-block-details.is-style-ascent-accordion { border-bottom: 1px solid var(--asc-line); padding-top: 0; padding-bottom: 0; margin-top: 0 !important; margin-bottom: 0 !important; }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ast-page-builder-template .entry-content > .wp-block-cover:first-child + .wp-block-details { border-top: 1px solid var(--asc-line); }
*/
.wp-block-details.is-style-ascent-accordion summary {
	list-style: none; cursor: pointer; padding: 22px 44px 22px 0; position: relative;
	font-family: var(--asc-serif); font-size: 1.7rem; font-weight: 600; line-height: 1.2; color: var(--asc-primary);
}
.wp-block-details.is-style-ascent-accordion summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-ascent-accordion summary::after { content: "+"; position: absolute; right: 6px; top: 50%; translate: 0 -50%; font: 300 2rem/1 var(--asc-sans); color: var(--asc-gold-ink); transition: transform .2s; }
.wp-block-details.is-style-ascent-accordion[open] summary::after { transform: rotate(45deg); }
.wp-block-details.is-style-ascent-accordion > p { padding-bottom: 20px; margin: 0; color: var(--asc-body); }
/* UNUSED (no accordion is followed by buttons; checked 2026-10-12):
.wp-block-details.is-style-ascent-accordion + .wp-block-buttons { margin-top: 2.5rem; }
*/

/* ---------- Leadership ---------- */
.entry-content .ascent-leader { display: grid; grid-template-columns: 280px 1fr; gap: 40px; align-items: center; margin-top: 2.5em; }
.ascent-leader .wp-block-image { margin: 0; }
.ascent-leader img { aspect-ratio: 4 / 5; object-fit: cover; object-position: top; }
.ascent-leader .ascent-role { color: var(--asc-gold-ink); font-weight: 600; letter-spacing: .04em; }
@media (max-width: 700px) { .entry-content .ascent-leader { grid-template-columns: 1fr; } .ascent-leader .wp-block-image { max-width: 280px; } }

/* ---------- Contact ---------- */
.entry-content .ascent-contact { gap: clamp(32px, 6vw, 80px); align-items: flex-start; }
.entry-content .ascent-contact > .wp-block-column:last-child { flex-grow: 1.1; }
.ascent-contact-item { position: relative; padding-left: 64px; min-height: 48px; margin: 22px 0 0 !important; }
.ascent-contact-item::before { content: ""; position: absolute; left: 0; top: 0; width: 48px; height: 48px; border-radius: 12px; background: var(--asc-bg2) var(--asc-icon) center / 24px no-repeat; }

/* ---------- Footer ---------- */
.site-footer { color: rgba(255, 255, 255, .72); font-size: .95rem; }
.site-footer .site-primary-footer-wrap { border: 0 !important; }
.site-footer .ast-builder-grid-row-container-inner { max-width: var(--asc-inner); margin-left: auto; margin-right: auto; padding-left: 0 !important; padding-right: 0 !important; }
.site-footer .ast-builder-grid-row-container-inner > .ast-builder-grid-row { max-width: none; }
.site-footer .site-primary-footer-wrap .ast-builder-grid-row { grid-template-columns: 1.3fr 1.3fr 1fr 1.1fr !important; column-gap: 40px !important; }
@media (max-width: 1000px) { .site-footer .site-primary-footer-wrap .ast-builder-grid-row { grid-template-columns: 1fr 1fr !important; row-gap: 40px; } }
/* MOVED TO CUSTOMIZER → Footer Builder → Primary Footer → Padding (mobile). Original rule kept for reference:
@media (max-width: 600px) { .site-footer .site-primary-footer-wrap { padding-top: 56px !important; } .site-footer .site-primary-footer-wrap .ast-builder-grid-row { grid-template-columns: 1fr !important; } }
*/
@media (max-width: 600px) { .site-footer .site-primary-footer-wrap .ast-builder-grid-row { grid-template-columns: 1fr !important; } }
.site-footer p, .site-footer li { color: rgba(255, 255, 255, .72); }
.site-footer a { color: rgba(255, 255, 255, .92) !important; text-decoration: none !important; }
.site-footer a:hover { color: var(--asc-gold) !important; }
.site-footer .widget { margin-bottom: 0; }
.site-footer h2.wp-block-heading, .site-footer .widget-title {
	font-family: var(--asc-sans) !important; font-size: .78rem !important; font-weight: 600; line-height: 1.4; letter-spacing: .16em; text-transform: uppercase; color: var(--asc-gold) !important; margin: 0 0 18px;
}
.site-footer p { margin: 0 0 1em; }
/* Footer brand */
.ascent-footer-brandmark { margin-bottom: 18px; }
.site-footer .ascent-footer-brand { font-family: var(--asc-serif); font-size: clamp(1.25rem, 1.8vw, 1.45rem); font-weight: 700; line-height: 1.1; color: #fff; margin: 0 !important; white-space: nowrap; }
.site-footer .ascent-footer-place { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .6); margin: 3px 0 0 !important; line-height: 1.1; }
/* Footer lines with icons */
.site-footer .ascent-ico-line { position: relative; padding-left: 28px; overflow-wrap: normal; word-break: normal; }
.site-footer .ascent-ico-line::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 18px; height: 18px;
	background: var(--asc-icon-gold) center / contain no-repeat;
}
.site-footer .ascent-ico-clock { --asc-icon-gold: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a063' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7v5l3 2'/%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E"); }
.site-footer .ascent-ico-pin { --asc-icon-gold: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a063' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.1-7-11.5A7 7 0 0 1 19 9.5C19 14.9 12 21 12 21Z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.site-footer .ascent-ico-mail { --asc-icon-gold: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c9a063' stroke-width='1.7' 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"); }
/* Explore links in two columns */
.site-footer .ascent-footer-links { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 20px; }
.site-footer .ascent-footer-links li { margin: 0 0 8px; break-inside: avoid; white-space: nowrap; }
.site-footer .ascent-footer-links li::marker { content: none; }

/* Bottom bar */
/* MOVED TO CUSTOMIZER → Footer Builder → Copyright footer (below footer) → Top border and Padding. Original rule kept for reference:
.site-footer .site-below-footer-wrap { border-top: 1px solid rgba(255, 255, 255, .1) !important; padding: 22px var(--asc-gutter) !important; min-height: 0 !important; }
*/
.site-footer .site-below-footer-wrap { min-height: 0 !important; }
.site-footer .site-below-footer-wrap .ast-builder-grid-row { min-height: 0 !important; }
/* MOVED TO CUSTOMIZER → Footer Builder → Copyright → Font size and Text colour. Original rule kept for reference:
.site-footer .ast-footer-copyright, .site-footer .ast-footer-copyright p, .site-footer .ast-footer-html-1 p { font-size: .85rem; margin: 0; color: rgba(255, 255, 255, .72); }
*/
.site-footer .ast-footer-copyright p, .site-footer .ast-footer-html-1 p { margin: 0; }

/* ==========================================================================
   Sermons — built from WordPress blocks (Query Loop, Playlist, Audio, Search)
   Each sermon is a Post in the "Sermons" category plus its series sub-category.
   ========================================================================== */

/* Series labels: sermons are filed in "Sermons" and their series; show just the series */
.wp-block-post-terms a[href$="/category/sermons/"],
.wp-block-post-terms a[href$="/category/sermons/"] + .wp-block-post-terms__separator,
.wp-block-post-terms__separator:has(+ a[href$="/category/sermons/"]) { display: none; }
/* …and on blog/search cards, where Astra separates categories with plain-text commas */
.ast-taxonomy-container.cat-links { font-size: 0; }
.ast-taxonomy-container.cat-links a { font-size: .82rem; }
.ast-taxonomy-container.cat-links a + a { margin-left: .8em; }
.ast-taxonomy-container.cat-links a[href$="/category/sermons/"] { display: none; }
.ast-taxonomy-container.cat-links a[href$="/category/sermons/"] + a { margin-left: 0; }

/* Query Loop lists: no bullets */
.entry-content .wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.entry-content .wp-block-post-template > li { margin: 0; }

/* Breadcrumbs block inside page banners */
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover .wp-block-breadcrumbs { font-size: .85rem; margin: 0 0 1rem !important; color: rgba(255, 255, 255, .75); }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover .wp-block-breadcrumbs a { color: rgba(255, 255, 255, .88) !important; text-decoration: none !important; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover .wp-block-breadcrumbs a:hover { color: var(--asc-gold) !important; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.wp-block-cover .wp-block-breadcrumbs ol { margin: 0; padding: 0; }
*/

/* Audio block (every sermon post has one) */
.entry-content .wp-block-audio { margin: 1.4em 0; }
/* REMOVED (sand pill behind the audio player; the browser draws its own player, so it only showed as a mismatched outline). Original rule kept for reference:
.entry-content .wp-block-audio audio { width: 100%; min-width: 0; height: 54px; border-radius: 999px; background: var(--asc-bg2); }
*/
.entry-content .wp-block-audio audio { width: 100%; min-width: 0; height: 54px; }

/* Sermon details inside a sermon post */
.entry-content .ascent-sermon-details { font-size: .95rem; color: var(--asc-muted); line-height: 1.8; margin-bottom: .6em; }
.entry-content .ascent-sermon-details strong { color: var(--asc-ink); font-weight: 600; }

/* ---------- Latest sermon (Home: dark section · Sermons: card) ---------- */
.entry-content .ascent-latest-section { background: var(--asc-primary); color: rgba(255, 255, 255, .88); position: relative; overflow: hidden; }
.entry-content .ascent-latest-section::before { content: ""; position: absolute; right: -10%; bottom: -60%; width: 70%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(201, 160, 99, .18), transparent 65%); pointer-events: none; }
.ascent-latest__cols { gap: clamp(28px, 5vw, 72px) !important; align-items: center; margin: 0 !important; position: relative; }
.ascent-latest__cols > .wp-block-column { min-width: 0; }
/* MOVED TO BLOCK SETTINGS → Home page, Latest Sermon: artwork Column → Width (44%); the text column fills the rest.
   WordPress already stacks the columns on phones. Original rules kept for reference:
.ascent-latest__cols > .wp-block-column:first-child { flex: 0 0 52% !important; }
.ascent-latest__cols > .wp-block-column:last-child { flex: 1 1 0 !important; }
*/
.ascent-latest__art { margin: 0 !important; border-radius: var(--asc-radius); overflow: hidden; box-shadow: 0 24px 60px rgba(0, 0, 0, .3); background: #0f1f2a; }
.ascent-latest__art img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; transition: transform .5s var(--asc-ease); }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-latest__art a:hover img { transform: scale(1.03); }
*/
.ascent-latest .is-style-ascent-eyebrow { margin-bottom: .4rem !important; }
.ascent-latest__series { font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 .6rem; }
.ascent-latest__series a { text-decoration: none !important; }
/* MOVED TO BLOCK SETTINGS → Home page, Latest Sermon: Post Title → Typography → Size (clamp(2rem, 3vw, 2.4rem): 2rem on phones up to 2.4rem on wide screens). Original rule kept for reference:
.entry-content .ascent-latest__title { font-size: clamp(2rem, 4vw, 3rem) !important; line-height: 1.12; margin: 0 0 .3em !important; }
*/
.entry-content .ascent-latest__title { line-height: 1.12; margin: 0 0 .3em !important; }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-latest__title a { color: inherit !important; text-decoration: none !important; }
*/
.ascent-latest__date { font-size: .92rem; margin-bottom: .4rem; }
/* A sermon's content shown inside a page (Post Content block) must not get the page-column padding */
.ast-page-builder-template .entry-content .wp-block-post-content.entry-content > *:not(.alignfull):not(.alignwide):not(.alignleft):not(.alignright) { max-width: none; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; box-sizing: border-box; }
.ast-page-builder-template .entry-content .wp-block-post-content > :last-child { margin-bottom: 0; }
.ascent-latest__content .ascent-sermon-details { font-size: .92rem; }
.ascent-latest__content > :last-child { margin-top: 0; margin-bottom: 0; }
/* dark (home) */
.ascent-latest--dark .is-style-ascent-eyebrow, .ascent-latest--dark .ascent-latest__series a { color: var(--asc-gold) !important; }
.ascent-latest--dark .ascent-latest__title { color: #fff; }
.ascent-latest--dark .ascent-latest__date, .ascent-latest--dark .ascent-sermon-details { color: rgba(255, 255, 255, .8); }
.ascent-latest--dark .ascent-sermon-details strong { color: #fff; }
.entry-content .ascent-latest--dark a:not(.wp-block-button__link) { color: var(--asc-gold); }
.entry-content .ascent-latest--dark a:not(.wp-block-button__link):hover { color: #fff; }
/* REMOVED (sand pill behind the audio player; the browser draws its own player, so it only showed as a mismatched outline). Original rule kept for reference:
.ascent-latest--dark .wp-block-audio audio { background: rgba(255, 255, 255, .92); }
*/
/* card (Sermons page) */
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ast-page-builder-template .entry-content > .ascent-latest-card { width: calc(100% - 2 * var(--asc-gutter)); max-width: var(--asc-inner); box-sizing: border-box; margin-top: clamp(40px, 5vw, 64px) !important; margin-bottom: clamp(48px, 6vw, 72px) !important; padding: clamp(16px, 2.5vw, 28px) !important; border-radius: 20px; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-latest--light .ascent-latest__title a:hover { color: var(--asc-primary-2) !important; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-latest--light .ascent-latest__art { box-shadow: 0 16px 40px rgba(27, 40, 51, .2); }
*/
/* MOVED TO BLOCK SETTINGS → not needed: WordPress's Columns block stacks full width on phones by itself
   (Columns → "Stack on mobile"). Original rule kept for reference:
@media (max-width: 781px) { .ascent-latest__cols > .wp-block-column:first-child, .ascent-latest__cols > .wp-block-column:last-child { flex: 1 1 100% !important; } }
*/

/* ---------- Sermon library (Sermons page) ---------- */
/* CHANGED 2026-10-28: same space above as below, now that the quote above it sits in a coloured section. Original:
.ast-page-builder-template .entry-content > .ascent-library { margin-bottom: var(--asc-section); }
*/
.ast-page-builder-template .entry-content > .ascent-library { margin-top: var(--asc-section); margin-bottom: var(--asc-section); }
/* CHANGED 2026-10-28: size now from Customizer → Global → Typography → H2 like other H2s; spacing kept without !important
   so the editor can override it. Original:
.ascent-library > h2 { font-size: clamp(2rem, 4vw, 3rem) !important; margin: 0 0 .6rem !important; }
*/
.ascent-library > h2 { margin: 0 0 .6rem; }
.ascent-sermon-search { max-width: 520px; margin: 0 0 28px !important; }
.ascent-sermon-search .wp-block-search__inside-wrapper { border: 0; padding: 0; gap: 8px; }
.ascent-sermon-search .wp-block-search__input { border: 1.5px solid var(--asc-line) !important; border-radius: 999px !important; padding: 12px 18px !important; font-size: 1rem; background: #fff; }
.ascent-sermon-search .wp-block-search__input:focus { outline: none; border-color: var(--asc-primary-2) !important; box-shadow: 0 0 0 4px rgba(43, 81, 105, .12); }
.ascent-sermon-search .wp-block-search__button { border-radius: 999px !important; padding: 0 22px !important; margin: 0 !important; background: var(--asc-primary) !important; color: #fff !important; font-weight: 600; font-size: .95rem; border: 0 !important; }
.ascent-sermon-search .wp-block-search__button:hover { background: var(--asc-primary-2) !important; }
/* Series cards (Sermons library): Group "ascent-series-panel" > Columns [ artwork | Details (heading + sermon list) ].
   The artwork sits outside the Details block, so it shows while the series is collapsed. */
/* Two columns of series cards; an opened series spans the full width so its list stays readable */
@media (min-width: 782px) {
/*	.entry-content .ascent-library { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; grid-auto-flow: row dense; }*/
	.entry-content .ascent-library { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; grid-auto-flow: row ; }
	.entry-content .ascent-library > :not(.ascent-series-panel),
	.entry-content .ascent-library > .ascent-series-panel:has(details[open]) { grid-column: 1 / -1; }
	.entry-content .ascent-library > * { margin-top: 0 !important; }
	.ascent-series-cols:not(:has(details[open])) > .ascent-series-art { flex-basis: 170px !important; }
	.ascent-series-cols:not(:has(details[open])) .ascent-series-details > summary { font-size: 1.45rem; }
}
/* CHANGED 2026-10-30: card background now comes from the Customizer custom colour "Card Background" (via --asc-card). Original:
.entry-content .ascent-series-panel { background: #fff; border: 1px solid var(--asc-line); border-radius: var(--asc-radius); margin: 0 0 16px !important; overflow: clip; transition: box-shadow .2s; }
*/
.entry-content .ascent-series-panel { background: var(--asc-card); border: 1px solid var(--asc-line); border-radius: var(--asc-radius); margin: 0 0 16px !important; overflow: clip; transition: box-shadow .2s; }
.entry-content .ascent-series-panel:hover { box-shadow: var(--asc-shadow); }
.entry-content .ascent-series-cols { margin: 0 !important; padding: 16px; gap: 24px; align-items: flex-start; }
.entry-content .ascent-series-cols:not(:has(details[open])) > .wp-block-column:not(.ascent-series-art) { align-self: center; }
.ascent-series-art { align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.ascent-series-cols:has(details[open]) .ascent-series-art { justify-content: flex-start; }
.ascent-series-art .wp-block-image { margin: 0; position: sticky; top: 100px; }
.ascent-series-art img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; box-shadow: var(--asc-shadow); transition: transform .2s var(--asc-ease); }
.ascent-series-art a:hover img { transform: translateY(-2px); }
/* Latest series = the FIRST card in the library (keep the newest series at the top):
   full width, larger image, gold outline and a "Latest series" label. Older series' artwork is faded
   until hovered or opened. */
.entry-content .ascent-library > .ascent-series-panel:first-of-type { grid-column: 1 / -1; border: 2px solid var(--asc-gold); box-shadow: var(--asc-shadow); }
.entry-content .ascent-library > .ascent-series-panel:first-of-type .ascent-series-details > summary::before {
	content: "Latest series"; display: block; margin-bottom: .3rem;
	font-family: var(--asc-sans); font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--asc-gold-ink);
}
@media (min-width: 782px) {
	.entry-content .ascent-library > .ascent-series-panel:first-of-type > .ascent-series-cols > .ascent-series-art { flex-basis: 260px !important; }
	.entry-content .ascent-library > .ascent-series-panel:first-of-type .ascent-series-details > summary { font-size: 2rem; }
}
.ascent-library > .ascent-series-panel:not(:first-of-type) .ascent-series-art img { opacity: .8; filter: grayscale(.5); transition: opacity .25s, filter .25s, transform .2s var(--asc-ease); }
.ascent-library > .ascent-series-panel:not(:first-of-type):hover .ascent-series-art img,
.ascent-library > .ascent-series-panel:not(:first-of-type):has(details[open]) .ascent-series-art img,
.ascent-library > .ascent-series-panel:not(:first-of-type):focus-within .ascent-series-art img { opacity: 1; filter: none; }
.entry-content details.ascent-series-details { margin: 0 !important; background: none; border: 0; }
.ascent-series-details > summary {
	list-style: none; cursor: pointer; padding: 14px 64px 14px 0; position: relative;
	font-family: var(--asc-serif); font-size: 1.7rem; font-weight: 600; line-height: 1.2; color: var(--asc-ink); transition: color .15s;
}
.ascent-series-details > summary::-webkit-details-marker { display: none; }
.ascent-series-details > summary:hover { color: var(--asc-primary-2); }
.ascent-series-details > summary::after {
	content: ""; position: absolute; right: 6px; top: 50%; width: 40px; height: 40px; margin-top: -20px; border-radius: 50%;
	background: var(--asc-bg2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f3a4d' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") center / 20px no-repeat;
	transition: transform .2s;
}
.ascent-series-details[open] > summary::after { transform: rotate(180deg); }
.ascent-series-details > .wp-block-query { border-top: 1px solid var(--asc-line); margin: 4px 0 0; }
.ascent-series-details > .ascent-link-arrow { padding: 12px 8px 4px; margin: 0 !important; }
@media (max-width: 781px) {
	.entry-content .ascent-series-cols { gap: 4px; padding: 12px; }
	.ascent-series-art .wp-block-image { position: static; }
	.ascent-series-art img { aspect-ratio: 16 / 7; }
	/* Collapsed on phones: small image beside the name, so all series fit on a screen or two */
	.entry-content .ascent-series-cols:not(:has(details[open])) { flex-wrap: nowrap !important; gap: 12px; }
	.ascent-series-cols:not(:has(details[open])) > .ascent-series-art { flex: 0 0 104px !important; }
	.ascent-series-cols:not(:has(details[open])) .ascent-series-art img { aspect-ratio: 16 / 9; border-radius: 8px; }
	.ascent-series-cols:not(:has(details[open])) .ascent-series-details > summary { font-size: 1.15rem; padding-right: 48px; }
	.ascent-series-cols:not(:has(details[open])) .ascent-series-details > summary::after { width: 34px; height: 34px; margin-top: -17px; right: 0; }
}

/* Sermon rows (Sermons library): title + scripture on the left, date on the right, the sermon's own player below */
.ascent-sermon-list > li {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 14px; align-items: center;
	padding: 16px 8px; border-radius: 8px; transition: background .15s;
}
.ascent-sermon-list > li + li { border-top: 1px solid var(--asc-line); }
.ascent-sermon-list > li:hover { background: var(--asc-bg); }
/* CHANGED 2026-10-29: font size moved to the Post Title blocks in the Sermons page list (Typography → Size = 1rem), so the CSS no longer overrides heading sizes. Original:
.entry-content .ascent-sermon-list .ascent-row__title { grid-column: 1; margin: 0 !important; font-family: var(--asc-sans); font-size: 1rem; font-weight: 600; line-height: 1.35; letter-spacing: 0; }
*/
.entry-content .ascent-sermon-list .ascent-row__title { grid-column: 1; margin: 0 !important; font-family: var(--asc-sans); font-weight: 600; line-height: 1.35; letter-spacing: 0; }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-sermon-list .ascent-row__title a { color: var(--asc-ink) !important; text-decoration: none !important; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-sermon-list .ascent-row__title a:hover { color: var(--asc-primary-2) !important; text-decoration: underline !important; }
*/
.ascent-sermon-list .ascent-row__excerpt { grid-column: 1; margin: 0; }
.ascent-sermon-list .ascent-row__excerpt p { margin: 0 !important; font-size: .9rem; color: var(--asc-muted); }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ascent-sermon-list .wp-block-post-excerpt__more-text { display: none; }
*/
.ascent-sermon-list .ascent-row__date { grid-column: 2; grid-row: 1 / span 2; font-size: .88rem; color: var(--asc-muted); white-space: nowrap; }
/* Player: the sermon's Post Content, showing only its Audio block */
.entry-content .ascent-sermon-list .ascent-row__player { grid-column: 1 / -1; margin: 10px 0 0 !important; }
.ascent-sermon-list .ascent-row__player > :not(.wp-block-audio) { display: none; }
.entry-content .ascent-sermon-list .ascent-row__player .wp-block-audio { margin: 0; }
.entry-content .ascent-sermon-list .ascent-row__player .wp-block-audio audio { height: 40px; }
@media (max-width: 600px) {
	.ascent-sermon-list > li { grid-template-columns: minmax(0, 1fr); padding: 14px 4px; }
	.ascent-sermon-list .ascent-row__date { grid-column: 1; grid-row: auto; font-size: .82rem; }
	.ascent-series-details > summary { font-size: 1.35rem; padding: 12px 56px 12px 4px; }
}

/* ---------- Series pages: every sermon with its own player (oldest first) ---------- */
.ast-page-builder-template .entry-content > .ascent-series-card { width: calc(100% - 2 * var(--asc-gutter)); max-width: 976px; box-sizing: border-box; margin: clamp(-96px, -8vw, -64px) auto 0 !important; position: relative; z-index: 2; box-shadow: var(--asc-shadow-lg); border-radius: 18px; }
.ascent-series-card .is-style-ascent-eyebrow { margin-bottom: .4rem !important; }
.ascent-sermon-players > li { counter-increment: ascent-sermon; position: relative; padding: 22px 0 18px 56px !important; border-top: 1px solid var(--asc-line); }
.ascent-sermon-players > li:first-child { border-top: 0; }
.ascent-sermon-players > li::before { content: counter(ascent-sermon); position: absolute; left: 0; top: 22px; width: 38px; height: 38px; border-radius: 50%; background: var(--asc-bg2); color: var(--asc-primary); font-weight: 700; font-size: .95rem; display: grid; place-items: center; }
.ascent-sermon-players { counter-reset: ascent-sermon; }
/* CHANGED 2026-10-29: heading font size removed so sermon player titles (H3) follow Customizer → Global → Typography (H1–H6); change a single heading in the editor (Typography → Size) instead. Original:
.entry-content .ascent-player__title { font-size: clamp(1.25rem, 2.2vw, 1.5rem) !important; margin: 0 !important; line-height: 1.25; }
*/
.entry-content .ascent-player__title { margin: 0 !important; line-height: 1.25; }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.entry-content .ascent-player__title a { color: var(--asc-ink) !important; text-decoration: none !important; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.entry-content .ascent-player__title a:hover { color: var(--asc-primary-2) !important; }
*/
.entry-content .ascent-player__date { font-size: .85rem; color: var(--asc-muted); margin: .2rem 0 0 !important; }
.entry-content .ascent-player__content { margin: 0 !important; }
.entry-content .ascent-player__content .ascent-sermon-details { margin: .5rem 0 0; font-size: .9rem; line-height: 1.6; }
.entry-content .ascent-player__content .wp-block-audio { margin: .7rem 0 0; }
.entry-content .ascent-player__content .wp-block-audio audio { height: 46px; }
.entry-content .ascent-series-card + .wp-block-buttons { justify-content: center; margin: clamp(32px, 4vw, 48px) auto var(--asc-section) !important; }
@media (max-width: 600px) {
	.ascent-sermon-players > li { padding-left: 0 !important; }
	.ascent-sermon-players > li::before { position: static; display: inline-grid; width: 30px; height: 30px; font-size: .82rem; margin-bottom: .5rem; }
}

/* ---------- Sermon posts (Astra single post) ---------- */
.single-post .site-content { background: var(--asc-bg); }
.single-post .entry-header { margin-bottom: 1.6rem; }
.single-post .ast-breadcrumbs, .single-post .ast-breadcrumbs-wrapper { font-size: .85rem; color: var(--asc-muted); margin-bottom: 1rem; }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.single-post .ast-breadcrumbs a { color: var(--asc-primary-2); text-decoration: none; }
*/
.single-post header.entry-header:not(.related-entry-header) .entry-title { font-size: clamp(2.2rem, 5vw, 3.4rem) !important; line-height: 1.1; color: var(--asc-ink); }
.single-post .entry-meta, .single-post .entry-meta * { font-size: .85rem; color: var(--asc-muted); }
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.single-post .entry-meta a { color: var(--asc-gold-ink); font-weight: 600; letter-spacing: .04em; text-decoration: none; }
*/
.single-post .post-thumb-img-content img, .single-post .ast-single-post-featured-section img { border-radius: var(--asc-radius); box-shadow: var(--asc-shadow-lg); width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.single-post .entry-content .wp-block-audio { background: #fff; border: 1px solid var(--asc-line); border-radius: var(--asc-radius); padding: 14px; box-shadow: var(--asc-shadow); }
/* REMOVED (sand pill behind the audio player; the browser draws its own player, so it only showed as a mismatched outline). Original rule kept for reference:
.single-post .entry-content .wp-block-audio audio { background: var(--asc-bg2); }
*/
/* "More from this series" (Astra Related Posts) */
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ast-related-posts-title { font-family: var(--asc-serif) !important; font-size: clamp(1.6rem, 3vw, 2.1rem) !important; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ast-related-post { background: #fff; border: 1px solid var(--asc-line); border-radius: var(--asc-radius); padding: 18px 20px; box-shadow: var(--asc-shadow); }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ast-related-post .ast-related-post-title, .ast-related-post .entry-title { font-family: var(--asc-serif) !important; font-size: 1.3rem !important; font-weight: 600; line-height: 1.25; margin: 0 0 .35rem; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ast-related-post .entry-title a { color: var(--asc-ink); text-decoration: none; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ast-related-post .entry-title a:hover { color: var(--asc-primary-2); }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.ast-related-post .entry-meta { font-size: .85rem; color: var(--asc-muted); }
*/
/* Previous / next sermon (Astra post navigation) */
/* UNUSED (2026-10-28: the previous/next cards are now hidden, see below). Original card styling:
.single-post .post-navigation .nav-links a { display: block; padding: 18px 20px; border: 1px solid var(--asc-line); border-radius: var(--asc-radius); background: #fff; color: var(--asc-ink); text-decoration: none; }
.single-post .post-navigation .nav-links a:hover { border-color: var(--asc-gold); box-shadow: var(--asc-shadow); }
*/
/* Hidden (added 2026-10-28): free Astra has no Customizer switch for these cards; the alternative is a PHP filter */
.single-post .post-navigation { display: none; }

/* ---------- Series (category) archives and search results ---------- */
.archive .ast-archive-description, .search .ast-archive-description { background: var(--asc-primary); color: rgba(255, 255, 255, .85); border-radius: var(--asc-radius); padding: clamp(28px, 4vw, 48px) !important; }
.archive .ast-archive-description .ast-archive-title, .search .ast-archive-description .ast-archive-title { color: #fff; font-size: clamp(2rem, 4.5vw, 3rem) !important; }
.archive .ast-archive-description a, .search .ast-archive-description a { color: var(--asc-gold); }
/* CHANGED 2026-10-30: card background now comes from the Customizer custom colour "Card Background" (via --asc-card). Original:
.archive .ast-article-post .ast-article-inner, .search .ast-article-post .ast-article-inner { background: #fff; border: 1px solid var(--asc-line); border-radius: var(--asc-radius); box-shadow: var(--asc-shadow); overflow: hidden; }
*/
.archive .ast-article-post .ast-article-inner, .search .ast-article-post .ast-article-inner { background: var(--asc-card); border: 1px solid var(--asc-line); border-radius: var(--asc-radius); box-shadow: var(--asc-shadow); overflow: hidden; }
.archive .ast-article-post .entry-title, .search .ast-article-post .entry-title { font-size: 1.35rem !important; }
.archive .ast-article-post .entry-title a, .search .ast-article-post .entry-title a { color: var(--asc-ink); text-decoration: none; }

/* ---------- Contact form (WPForms Lite) ---------- */
.ascent-form-card { max-width: none; }
/* REMOVED 2026-10-28: the heading is now an H3 (Customizer H3 size, like other card titles); the card style
   (.is-style-ascent-card h3) already removes its top margin. Original:
.ascent-form-card > h2 { margin-top: 0 !important; font-size: clamp(1.6rem, 3vw, 2.1rem) !important; }
*/
.ascent-form-card div.wpforms-container-full {
	--wpforms-field-border-radius: 10px; --wpforms-field-border-color: var(--asc-line); --wpforms-field-size-font-size: 16px;
	--wpforms-button-border-radius: 999px; --wpforms-button-background-color: var(--asc-primary); --wpforms-button-text-color: #fff;
	--wpforms-label-color: var(--asc-ink); --wpforms-field-text-color: var(--asc-ink);
	margin: 0 !important;
}
.ascent-form-card .wpforms-container .wpforms-field-label { font-weight: 600 !important; font-size: .92rem !important; }
.ascent-form-card .wpforms-container input[type="text"], .ascent-form-card .wpforms-container input[type="email"], .ascent-form-card .wpforms-container textarea { border: 1.5px solid var(--asc-line) !important; border-radius: 10px !important; box-shadow: none !important; }
.ascent-form-card .wpforms-container input:focus, .ascent-form-card .wpforms-container textarea:focus { border-color: var(--asc-primary-2) !important; box-shadow: 0 0 0 4px rgba(43, 81, 105, .12) !important; }
.ascent-form-card .wpforms-container button[type="submit"] { border-radius: 999px !important; padding: .85em 1.8em !important; background: var(--asc-primary) !important; color: #fff !important; font-weight: 600 !important; border: 0 !important; }
.ascent-form-card .wpforms-container button[type="submit"]:hover { background: var(--asc-primary-2) !important; }

/* ---------- Footer: latest sermon (Latest Posts block) ---------- */
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.site-footer .ascent-footer-latest { list-style: none; margin: 0 0 1rem; padding: 0; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.site-footer .ascent-footer-latest li { margin: 0; }
*/
/* UNUSED (no page or pattern on the site uses this; checked 2026-10-03):
.site-footer .ascent-footer-latest .wp-block-latest-posts__post-date { display: block; font-size: .8rem; color: rgba(255, 255, 255, .55); margin-top: 2px; }
*/

/* ---------- Tablet / phone ---------- */
@media (max-width: 781px) {
	.entry-content .ascent-visit { margin-top: -60px !important; }
	.wp-block-columns.is-style-ascent-cards > .wp-block-column { flex-basis: 100% !important; }
}
@media (min-width: 600px) and (max-width: 781px) {
	.entry-content .wp-block-columns.is-style-ascent-cards:not(.ascent-visit) { flex-wrap: wrap !important; }
	.entry-content .wp-block-columns.is-style-ascent-cards:not(.ascent-visit) > .wp-block-column { flex-basis: calc(50% - 12px) !important; }
}
