/*
Theme Name:        ELCSA — Christian Child
Theme URI:         https://elcsa.church/
Description:       The official ELCSA design system as a child theme of the CMSMasters "Christian" theme. The whole site design — header, footer, typography, colours, page components — lives in this theme, so it survives updates to the parent and applies everywhere. Edit page CONTENT with the normal WordPress block editor; edit DESIGN here.
Author:            ELCSA Web Team
Author URI:        https://elcsa.church/
Template:          christian
Version:           1.0.0
Requires at least: 6.0
Requires PHP:      7.4
License:           GNU General Public License v2 or later
License URI:       http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       christian-child
*/

/* Design language: ELCSA identity (navy / crimson / gold, Fraunces + Inter)
   + Church of England restraint (words on solid panels, one accent per view)
   + ELCA warmth (utility strip, split heros on white, small-caps kickers,
     arrow links, rounded photography, tinted alternating sections). */

@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap");

:root {
	--el-navy: #0a1b4d;
	--el-deep: #05102e;
	--el-crimson: #a6192e;
	--el-gold: #f2c14e;
	--el-paper: #f7f5f0;
	--el-tint: #eef2f9;
	--el-ink: #1c2333;
	--el-muted: #5b6478;
	--el-line: #e8e6df;
}

/* ---------- Base ---------- */
body.elcsa-shell { margin: 0; background: #fff; }
.el-page { font-family: Inter, system-ui, sans-serif; color: var(--el-ink); background: #fff; margin: 0; -webkit-font-smoothing: antialiased; }
.el-page * { box-sizing: border-box; }
.el-wrap { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.el-main { display: block; background: #fff; }

/* ---------- Utility strip (ELCA-style, in paper) ---------- */
.el-topbar { background: var(--el-paper); border-bottom: 1px solid var(--el-line); }
.el-topbar .el-wrap { display: flex; align-items: center; justify-content: space-between; min-height: 38px; gap: 16px; }
.el-topbar-name { font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--el-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.el-topbar-links { display: flex; gap: 22px; align-items: center; }
.el-topbar-links a { color: var(--el-navy); font-size: 12.5px; font-weight: 600; text-decoration: none; transition: color .15s; }
.el-topbar-links a:hover { color: var(--el-crimson); }
@media (max-width: 700px) {
	.el-topbar-name { display: none; }
	.el-topbar .el-wrap { justify-content: center; }
}

/* ---------- Header ---------- */
.el-header { position: sticky; top: 0; z-index: 60; background: rgba(255,255,255,.94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid var(--el-line); }
body.admin-bar .el-header { top: 32px; }
.el-header .el-wrap { display: flex; align-items: center; justify-content: space-between; height: 76px; position: relative; }
.el-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.el-brand img, .el-brand .custom-logo { height: 48px; width: auto; border-radius: 50%; }
.el-brand-tx { display: flex; flex-direction: column; line-height: 1.05; }
.el-brand-tx b { font-family: Fraunces, serif; font-size: 22px; color: var(--el-navy); letter-spacing: .02em; }
.el-brand-tx span { font-size: 9.5px; color: var(--el-crimson); letter-spacing: .2em; text-transform: uppercase; margin-top: 3px; }
.el-nav { display: flex; gap: 30px; align-items: center; }
.el-nav a { color: var(--el-ink); text-decoration: none; font-size: 14.5px; font-weight: 500; transition: color .15s; }
.el-nav a:hover { color: var(--el-crimson); }
.el-nav .el-cta { background: var(--el-crimson); color: #fff; font-weight: 700; font-size: 14px; padding: 11px 24px; border-radius: 100px; transition: transform .15s, background .15s; }
.el-nav .el-cta:hover { transform: translateY(-1px); background: #8d1526; color: #fff; }
@media (max-width: 940px) { .el-nav a:not(.el-cta) { display: none; } }

/* Mobile navigation */
.el-burger { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; padding: 8px; }
.el-burger span { display: block; height: 2.5px; background: var(--el-navy); border-radius: 2px; transition: transform .2s, opacity .2s; }
.el-burger.open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.el-burger.open span:nth-child(2) { opacity: 0; }
.el-burger.open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
@media (max-width: 940px) { .el-burger { display: flex; } }
.el-mobile-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--el-line); box-shadow: 0 18px 32px rgba(10,27,77,.12); padding: 18px 24px 22px; flex-direction: column; gap: 4px; }
.el-mobile-nav.open { display: flex; }
.el-mobile-nav a { color: var(--el-navy); text-decoration: none; font-size: 16px; font-weight: 600; padding: 10px 0; border-bottom: 1px solid #f0eee8; }
.el-mobile-nav a:last-child { border-bottom: 0; }
.el-mobile-nav .el-cta { background: var(--el-crimson); color: #fff; border-radius: 100px; text-align: center; padding: 12px; margin-top: 10px; }

/* ---------- Buttons ---------- */
.el-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.el-btn { display: inline-block; padding: 15px 32px; border-radius: 100px; font-weight: 700; font-size: 15px; text-decoration: none; transition: transform .15s, box-shadow .15s; }
.el-btn-crimson { background: var(--el-crimson); color: #fff; box-shadow: 0 10px 26px rgba(166,25,46,.35); }
.el-btn-gold { background: var(--el-gold); color: var(--el-deep); box-shadow: 0 8px 24px rgba(242,193,78,.35); }
.el-btn-ghost { border: 1.5px solid rgba(255,255,255,.5); color: #fff; }
.el-btn-outline { border: 1.5px solid var(--el-navy); color: var(--el-navy); }
.el-btn:hover { transform: translateY(-2px); }

/* ---------- Heros ---------- */
.el-hero { position: relative; min-height: 86vh; display: flex; align-items: center; background-size: cover; background-position: center; }
.el-hero-page { position: relative; min-height: 340px; display: flex; align-items: flex-end; background-size: cover; background-position: center; padding-bottom: 44px; }
.el-hero-in { max-width: 1160px; margin: 0 auto; padding: 110px 24px; width: 100%; }
.el-hero-page .el-hero-in { padding: 90px 24px 0; }
.el-kicker { display: inline-flex; align-items: center; gap: 10px; color: var(--el-gold); font-size: 12px; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; margin-bottom: 22px; }
.el-kicker:before { content: ""; width: 34px; height: 2px; background: var(--el-crimson); display: inline-block; }
.el-hero h1, .el-hero-page h1 { font-family: Fraunces, serif; font-weight: 600; color: #fff; margin: 0; }
.el-hero h1 { font-size: clamp(42px, 6.6vw, 80px); line-height: 1.05; margin-bottom: 24px; }
.el-hero-page h1 { font-size: clamp(34px, 4.6vw, 56px); line-height: 1.1; }
.el-hero h1 em { font-style: italic; color: var(--el-gold); }
.el-hero p.el-sub, .el-hero-page p.el-sub { color: #d5dbec; font-size: clamp(16px, 1.6vw, 19px); line-height: 1.65; max-width: 56ch; margin: 0 0 38px; }
.el-hero-page p.el-sub { margin: 14px 0 0; }
.el-crumb { color: #aab3d0; font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; margin: 18px 0 0; }
.el-crumb a { color: var(--el-gold); text-decoration: none; }

/* ---------- Sections, headings, prose ---------- */
.el-sec { padding: 92px 0; }
.el-sec-alt { background: var(--el-paper); }
.el-sec-tint { background: var(--el-tint); }
.el-eyebrow { color: var(--el-crimson); font-size: 12px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; text-align: center; margin: 0 0 10px; }
.el-h2 { font-family: Fraunces, serif; font-weight: 600; font-size: clamp(28px, 4vw, 42px); color: var(--el-navy); text-align: center; margin: 0 0 52px; line-height: 1.15; }
.el-h2-left { text-align: left; margin-bottom: 24px; }
.el-h3 { font-family: Fraunces, serif; font-size: 21px; color: var(--el-navy); margin: 0 0 10px; font-weight: 600; }
.el-prose { max-width: 760px; }
.el-prose p { font-size: 16.5px; line-height: 1.75; color: #3a4358; margin: 0 0 18px; }
.el-prose li { font-size: 16.5px; line-height: 1.7; color: #3a4358; margin-bottom: 10px; }
.el-prose a { color: var(--el-crimson); }
.el-cols2 { display: grid; grid-template-columns: 1.2fr .9fr; gap: 44px; align-items: start; }
@media (max-width: 860px) { .el-cols2 { grid-template-columns: 1fr; } }

/* ELCA-style small-caps arrow link */
.el-page a.el-arrow-link { display: inline-block; color: var(--el-crimson); font-weight: 700; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; transition: color .15s; }
.el-page a.el-arrow-link:after { content: " \2192"; }
.el-page a.el-arrow-link:hover { color: var(--el-navy); }

/* ---------- Cards ---------- */
.el-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.el-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.el-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
@media (max-width: 960px) { .el-grid, .el-grid-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .el-grid, .el-grid-3, .el-grid-2 { grid-template-columns: 1fr; } }
.el-card { background: #fff; border: 1px solid var(--el-line); border-radius: 18px; padding: 32px 28px; text-decoration: none; transition: transform .2s, box-shadow .2s, border-color .2s; display: block; }
.el-sec-alt .el-card { background: #fff; }
.el-sec:not(.el-sec-alt) .el-card { background: var(--el-paper); border-color: #eceae3; }
a.el-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px rgba(10,27,77,.12); border-color: var(--el-gold); }
.el-card .el-ic { width: 46px; height: 46px; border-radius: 12px; background: rgba(242,193,78,.2); color: var(--el-navy); display: flex; align-items: center; justify-content: center; font-size: 22px; margin-bottom: 18px; }
.el-card h3 { font-family: Fraunces, serif; font-size: 20px; color: var(--el-navy); margin: 0 0 10px; font-weight: 600; }
.el-card p { color: var(--el-muted); font-size: 14.5px; line-height: 1.65; margin: 0 0 16px; }
.el-card .el-go { color: var(--el-crimson); font-weight: 700; font-size: 13.5px; }
.el-info-card { background: #fff; border: 1px solid var(--el-line); border-left: 4px solid var(--el-gold); border-radius: 14px; padding: 26px 26px; }
.el-info-card p { margin: 0 0 8px; font-size: 15px; line-height: 1.7; color: #3a4358; }

/* ---------- Stats + closing bands ---------- */
.el-stats { background: var(--el-deep); padding: 66px 0; }
.el-stats .el-wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
@media (max-width: 700px) { .el-stats .el-wrap { grid-template-columns: repeat(2, 1fr); } }
.el-stat b { display: block; font-family: Fraunces, serif; font-size: 50px; color: var(--el-gold); font-weight: 600; line-height: 1; }
.el-stat span { display: block; margin-top: 10px; color: #aab3d0; font-size: 12.5px; letter-spacing: .18em; text-transform: uppercase; }
.el-final { position: relative; background-size: cover; background-position: center; padding: 104px 0; text-align: center; }
.el-final h2 { font-family: Fraunces, serif; font-size: clamp(30px, 4.4vw, 50px); color: #fff; margin: 0 0 16px; font-weight: 600; }
.el-final p { color: #d5dbec; font-size: 17px; margin: 0 auto 34px; max-width: 46ch; }

/* ---------- Tables ---------- */
.el-page table { width: 100%; border-collapse: collapse; font-size: 15px; }
.el-page table th { background: var(--el-navy); color: #fff; text-align: left; padding: 13px 16px; font-weight: 600; font-size: 13.5px; letter-spacing: .04em; }
.el-page table td { border-bottom: 1px solid var(--el-line); padding: 13px 16px; color: #3a4358; }
.el-page table tr:nth-child(even) td { background: var(--el-paper); }

/* ---------- Footer ---------- */
.el-footer { background: var(--el-deep); color: #aab3d0; padding: 62px 0 0; }
.el-footer .el-cols { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; padding-bottom: 46px; }
@media (max-width: 760px) { .el-footer .el-cols { grid-template-columns: 1fr; } }
.el-footer h4 { color: #fff; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; margin: 0 0 18px; }
.el-footer a { color: #aab3d0; text-decoration: none; display: block; margin-bottom: 10px; font-size: 14.5px; }
.el-footer a:hover { color: var(--el-gold); }
.el-footer p { font-size: 14.5px; line-height: 1.7; margin: 0 0 10px; }
.el-footer-logo { height: 64px; width: auto; border-radius: 10px; background: #fff; padding: 6px; margin-bottom: 16px; }
.el-legal { border-top: 1px solid rgba(255,255,255,.09); padding: 22px 0; font-size: 12.5px; color: #7a83a3; text-align: center; }

/* ---------- Almanac embeds inside the design system ---------- */
.el-watchword { max-width: 820px; margin: 0 auto; text-align: center; }
.el-watchword .elcsa-almanac { background: transparent; border: 0; box-shadow: none; padding: 0; margin: 0; border-radius: 0; }
.el-watchword .elcsa-almanac__heading { color: var(--el-crimson); letter-spacing: .24em; font-size: 12px; }
.el-watchword .elcsa-almanac__subline { color: #9aa3bd; }
.el-watchword .elcsa-almanac__text { font-family: Fraunces, serif; font-size: clamp(24px, 3vw, 34px); line-height: 1.4; color: var(--el-navy); font-weight: 500; font-style: normal; }
.el-watchword .elcsa-almanac__text:before { content: "\201C"; display: block; font-size: 70px; line-height: .6; color: var(--el-gold); margin-bottom: 14px; }
.el-watchword .elcsa-almanac__ref { font-family: Inter, sans-serif; font-size: 14px; letter-spacing: .06em; }
.el-yearchip { margin-top: 36px; max-width: 660px; }
.el-yearchip .elcsa-almanac { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-left: 3px solid var(--el-gold); border-radius: 14px; padding: 16px 22px; margin: 0; box-shadow: none; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.el-yearchip .elcsa-almanac__heading { color: var(--el-gold); font-size: 10.5px; letter-spacing: .22em; margin-bottom: 4px; }
.el-yearchip .elcsa-almanac__subline { display: none; }
.el-yearchip .elcsa-almanac__text { font-family: Fraunces, serif; color: #fff; font-size: 19px; margin: 2px 0 6px; line-height: 1.45; font-style: normal; }
.el-yearchip .elcsa-almanac__ref { color: #c7cede; font-size: 12.5px; }
.el-daily .elcsa-almanac { border-radius: 14px; }

/* ---------- Native-block shell mapping (editable pages) ---------- */
.el-page .wp-block-cover.el-hero-cover { min-height: 380px; border-radius: 0; }
.el-page .wp-block-cover.el-hero-cover.el-hero-tall { min-height: 80vh; }
.el-page .wp-block-cover.el-hero-cover h1 { font-family: Fraunces, serif; font-weight: 600; font-size: clamp(34px, 5vw, 60px); line-height: 1.08; color: #fff; }
.el-page .wp-block-cover.el-hero-cover.el-hero-tall h1 { font-size: clamp(42px, 6.6vw, 80px); }
.el-page .wp-block-cover.el-hero-cover h1 em { font-style: italic; color: var(--el-gold); }
.el-page .wp-block-cover.el-hero-cover p { color: #d5dbec; }
.el-page p.el-kicker-block { display: inline-flex; align-items: center; gap: 10px; color: var(--el-gold) !important; font-size: 12px; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; margin-bottom: 8px; }
.el-page p.el-kicker-block:before { content: ""; width: 34px; height: 2px; background: var(--el-crimson); display: inline-block; }
.el-page .wp-block-group.el-sec { padding: 110px 0; }
@media (max-width: 700px) { .el-page .wp-block-group.el-sec { padding: 64px 0; } }
.el-page .wp-block-group.el-wrap { max-width: 1160px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.el-page .wp-block-group.el-sec-tint { background: var(--el-tint); }
.el-page h2.wp-block-heading, .el-page h3.wp-block-heading { font-family: Fraunces, serif; color: var(--el-navy); }
.el-page h2.wp-block-heading { font-size: clamp(30px, 3.6vw, 44px); letter-spacing: -0.01em; margin-bottom: 28px; line-height: 1.12; }
.el-page h3.wp-block-heading { font-family: Inter, system-ui, sans-serif; font-weight: 700; font-size: 18.5px; letter-spacing: -0.005em; }
.el-page p, .el-page li { color: #3a4358; }
.el-page .wp-block-group.el-wrap > p { max-width: 72ch; font-size: 17px; line-height: 1.78; }
.el-page .wp-block-group.el-wrap > ul, .el-page .wp-block-group.el-wrap > ol { max-width: 72ch; }
.el-page .wp-block-image img { border-radius: 16px; box-shadow: 0 10px 30px rgba(10,27,77,.10); }
.el-page .wp-block-image figcaption { font-size: 13px; color: #5b6478; text-align: left; margin-top: 10px; }
.el-page .wp-block-button .wp-block-button__link { border-radius: 100px; font-weight: 700; padding: 14px 30px; }
.el-page .wp-block-button.el-btn-crimson-blk .wp-block-button__link { background: var(--el-crimson) !important; color: #fff !important; }
.el-page .wp-block-button.el-btn-gold-blk .wp-block-button__link { background: var(--el-gold) !important; color: var(--el-deep) !important; }
.el-page .wp-block-button.el-btn-ghost-blk .wp-block-button__link { background: transparent !important; border: 1.5px solid rgba(255,255,255,.55) !important; color: #fff !important; }
.el-page .wp-block-columns { gap: 24px; }

/* Heros: left-aligned, calmer, stronger scrim for busy photographs */
.el-page .wp-block-cover.el-hero-cover .wp-block-cover__inner-container { max-width: 1160px; margin: 0 auto; padding: 0 24px; text-align: left; }
.el-page .wp-block-cover.el-hero-cover .wp-block-cover__background { background: linear-gradient(100deg, rgba(5,16,46,.94) 0%, rgba(10,27,77,.78) 45%, rgba(10,27,77,.42) 100%) !important; opacity: 1 !important; }
.el-page .wp-block-cover.el-hero-cover h1 { max-width: 16ch; }
.el-page .wp-block-cover.el-hero-cover p:not(.el-kicker-block) { max-width: 58ch; }
.el-page .wp-block-cover.el-hero-cover .wp-block-buttons { margin-top: 34px; }
.el-page .wp-block-cover h2.wp-block-heading { color: #fff; }

/* Cards: one consistent component everywhere */
.el-page .wp-block-group.el-info-card { background: #fff; border: 1px solid var(--el-line); border-left: 4px solid var(--el-gold); border-radius: 14px; padding: 28px; margin-bottom: 18px; transition: transform .18s ease, box-shadow .18s ease; }
.el-page .wp-block-group.el-info-card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px rgba(10,27,77,.10); }
.el-page .wp-block-group.el-sec-alt .wp-block-group.el-info-card { border-color: #eee9dd; }
.el-page .wp-block-group.el-info-card h3 a { color: var(--el-navy); text-decoration: none; }
.el-page .wp-block-group.el-info-card h3 a:hover { color: var(--el-crimson); }

/* Accent discipline: kicker is the only accent text per view */
.el-page .wp-block-group.el-wrap > p.el-kicker-block { color: var(--el-crimson) !important; }
.el-page .wp-block-cover p.el-kicker-block { color: var(--el-gold) !important; }

/* Almanac cards inside covers become glass chips */
.el-page .wp-block-cover .elcsa-almanac { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-left: 3px solid var(--el-gold); border-radius: 14px; box-shadow: none; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); max-width: 680px; padding: 16px 22px; }
.el-page .wp-block-cover .elcsa-almanac__heading { color: var(--el-gold); }
.el-page .wp-block-cover .elcsa-almanac__subline { color: #c7cede; }
.el-page .wp-block-cover .elcsa-almanac__text { color: #fff; font-size: 19px; margin: 2px 0 6px; }
.el-page .wp-block-cover .elcsa-almanac__ref { color: #f2e3b8; }

/* ---------- CoE-style overlap panel hero (el-hero-panel) ---------- */
.el-page .wp-block-cover.el-hero-cover.el-hero-panel { align-items: flex-end; min-height: 78vh; }
.el-page .wp-block-cover.el-hero-cover.el-hero-panel .wp-block-cover__background { background: linear-gradient(180deg, rgba(5,16,46,.08) 40%, rgba(5,16,46,.35) 100%) !important; }
.el-page .wp-block-cover.el-hero-cover.el-hero-panel .wp-block-cover__inner-container { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.el-page .el-hero-panel .el-panel-card { background: var(--el-navy); padding: 40px 44px; max-width: 600px; border-radius: 4px; margin-bottom: -64px; position: relative; box-shadow: 0 30px 60px rgba(5,16,46,.35); }
.el-page .el-hero-panel h1 { font-size: clamp(34px, 4.4vw, 54px); margin: 6px 0 22px; }
.el-page .el-hero-panel .el-panel-card p.el-kicker-block { margin-bottom: 4px; }
.el-page .el-hero-panel .el-arrow-cta { display: inline-block; color: #fff; font-weight: 700; font-size: 17px; text-decoration: none; border-bottom: 2px solid var(--el-gold); padding-bottom: 6px; }
.el-page .el-hero-panel .el-arrow-cta:after { content: " \2192"; color: var(--el-gold); }
.el-page .el-hero-panel .el-arrow-cta:hover { color: var(--el-gold); }
.el-page .el-hero-panel + .wp-block-group.el-sec { padding-top: 150px; }
@media (max-width: 640px) { .el-page .el-hero-panel .el-panel-card { padding: 28px; margin-bottom: -40px; } }

/* ---------- Blog posts (single.php) ---------- */
.el-single-hero { background: linear-gradient(120deg, var(--el-deep), var(--el-navy)); padding: 84px 0 56px; }
.el-single-hero h1 { font-family: Fraunces, serif; font-weight: 600; font-size: clamp(30px, 4.2vw, 48px); line-height: 1.12; color: #fff; margin: 6px 0 14px; max-width: 22ch; }
.el-single-meta { color: #aab3d0; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; margin: 0; }
.el-single-body { max-width: 760px; margin: 0 auto; padding: 64px 24px 90px; }
.el-single-body p, .el-single-body li { font-size: 17px; line-height: 1.78; color: #3a4358; }
.el-single-body h2, .el-single-body h3 { font-family: Fraunces, serif; color: var(--el-navy); }
.el-single-body img { border-radius: 16px; }
.el-single-body a { color: var(--el-crimson); }

/* ---------- 404 ---------- */
.el-404 { text-align: center; padding: 110px 24px 130px; }
.el-404 h1 { font-family: Fraunces, serif; font-weight: 600; font-size: clamp(34px, 5vw, 56px); color: var(--el-navy); margin: 10px 0 16px; }
.el-404 p { color: var(--el-muted); font-size: 17px; max-width: 52ch; margin: 0 auto 30px; }

/* ---------- Legacy bridge: archives & anything still rendered by the parent ---------- */
.cmsmasters-header { font-family: Inter, system-ui, sans-serif; }
.cmsmasters-header a { color: var(--el-navy); }
.cmsmasters-header a:hover { color: var(--el-crimson); }
.cmsmasters-content h1, .cmsmasters-content h2, .cmsmasters-content h3,
.cmsmasters-headline__text { font-family: Fraunces, Georgia, serif; color: var(--el-navy); }
.cmsmasters-content p, .cmsmasters-content li { font-family: Inter, system-ui, sans-serif; color: #3a4358; }
.cmsmasters-theme .button, .cmsmasters-theme button[type="submit"], .cmsmasters-theme input[type="submit"] { border-radius: 100px; }
.cmsmasters-footer, .cmsmasters-footer .cmsmasters-footer-copyright, .cmsmasters-footer [class*="copyright"] { background-color: var(--el-deep) !important; }
.cmsmasters-footer, .cmsmasters-footer p, .cmsmasters-footer a { color: #dfe4f2; }
.cmsmasters-footer a:hover { color: var(--el-gold); }
