/* CCAF Village components. All selectors are prefixed .ccaf- to avoid clashing with
   Kadence or plugin styles. Logical properties are used so Arabic (RTL) needs no
   separate stylesheet. */

.ccaf-page {
	background: var(--bg);
	color: var(--text);
	font-family: var(--font-body);
	font-size: var(--fs-0);
	line-height: var(--lh-body);
}
.ccaf-page h1, .ccaf-page h2, .ccaf-page h3 {
	font-family: var(--font-display);
	font-weight: 800;
	color: var(--heading);
	line-height: var(--lh-tight);
	letter-spacing: var(--tracking-tight);
	margin-block: 0 var(--s-3);
	text-wrap: balance;
}
.ccaf-page h2 { font-size: var(--fs-4); }
.ccaf-page h3 { letter-spacing: -0.015em; }
.ccaf-page p { margin-block: 0 var(--s-4); max-width: var(--measure); }
/* Only unclassed (prose) links get the link colour; components set their own. */
.ccaf-page a:where(:not([class])) { color: var(--link); text-underline-offset: 0.18em; }
.ccaf-page a:where(:not([class])):hover { text-decoration-thickness: 2px; }

/* Focus: always visible for keyboard users (WCAG 2.4.7 / 2.4.11) */
.ccaf-page :focus-visible,
.ccaf-village-svg a:focus-visible {
	outline: 3px solid var(--focus);
	outline-offset: 2px;
	border-radius: 4px;
}

.screen-reader-text, .ccaf-sr {
	position: absolute !important;
	inline-size: 1px; block-size: 1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
	white-space: nowrap;
}

.ccaf-skip {
	position: absolute; inset-inline-start: var(--s-4); inset-block-start: -100px;
	background: var(--c-deep); color: #fff; padding: var(--s-2) var(--s-4);
	border-radius: var(--radius-sm); z-index: 1000;
}
.ccaf-skip:focus { inset-block-start: var(--s-4); color: #fff; }

/* Layout */
.ccaf-wrap { inline-size: min(100% - 2 * var(--gutter), var(--max)); margin-inline: auto; }
.ccaf-section { padding-block: var(--s-8); }
.ccaf-section--tint { background: var(--wash-dawn); }
.ccaf-section--sky { background: var(--wash-sky); }
.ccaf-section--env { background: linear-gradient(180deg, var(--env-tint, transparent), transparent 70%); }
.ccaf-section__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--s-3); margin-block-end: var(--s-6); }
.ccaf-section__head h2 { margin-block-end: 0; }
.ccaf-section__head p { margin: 0; color: var(--text-muted); }
.ccaf-eyebrow {
	display: inline-flex; align-items: center; gap: 0.7em;
	font-size: 0.78rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--accent);
	margin-block-end: var(--s-3);
}
.ccaf-eyebrow::before { content: ""; flex: none; inline-size: 32px; block-size: 4px; border-radius: 2px; background: var(--emblem-stripe); }

/* Buttons */
.ccaf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
	min-block-size: var(--tap); padding: var(--s-2) var(--s-5);
	border-radius: var(--radius-pill); border: 2px solid transparent;
	font: 600 var(--fs-0)/1.2 var(--font-body); text-decoration: none; cursor: pointer;
	transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.ccaf-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); text-decoration: none; }
.ccaf-btn--primary { background: var(--primary); color: var(--on-primary); }
.ccaf-btn--primary:hover { background: var(--primary-hover); color: var(--on-primary); }
.ccaf-btn--red { background: var(--accent); color: var(--on-accent); }
.ccaf-btn--red:hover { background: var(--accent-hover); color: var(--on-accent); }
.ccaf-btn--gold { background: linear-gradient(135deg, #ffe54a, var(--c-yellow)); color: var(--c-green-deep); }   /* 7.6+ */
.ccaf-btn--gold:hover { color: var(--c-green-deep); box-shadow: var(--glow); }
.ccaf-btn--secondary { background: var(--surface); color: var(--heading); border-color: var(--border-strong); }
.ccaf-btn--secondary:hover { border-color: var(--heading); color: var(--heading); }
.ccaf-btn--ghost { background: transparent; color: var(--link); border-color: var(--border-strong); }
.ccaf-btn--on-dark { background: rgb(255 255 255 / 0.08); color: #fff; border-color: rgb(255 255 255 / 0.35); backdrop-filter: blur(8px); }
.ccaf-btn--on-dark:hover { background: rgb(255 255 255 / 0.16); color: #fff; border-color: rgb(255 255 255 / 0.6); }
.ccaf-btn--small { min-block-size: 32px; padding: 0 var(--s-3); font-size: var(--fs--1); }
.ccaf-btn[disabled], .ccaf-btn[aria-busy="true"] { opacity: 0.6; cursor: progress; transform: none; }
.ccaf-actions { display: flex; flex-wrap: wrap; gap: var(--s-3); }

/* Cards */
.ccaf-card-grid {
	list-style: none; margin: 0; padding: 0;
	display: grid; gap: var(--s-5);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
}
.ccaf-card {
	position: relative; display: flex; flex-direction: column; gap: var(--s-2);
	block-size: 100%; padding: var(--s-5);
	background: var(--surface); color: var(--text); text-decoration: none;
	border: 1px solid var(--border); border-radius: var(--radius);
	box-shadow: var(--shadow);
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
a.ccaf-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); border-color: color-mix(in srgb, var(--env-a, var(--c-indigo)) 45%, transparent); text-decoration: none; }
.ccaf-card__type { align-self: flex-start; padding: 0.2em 0.75em; border-radius: var(--radius-pill); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, transparent); }
.ccaf-card__title { font: 700 var(--fs-1)/1.25 var(--font-display); letter-spacing: -0.015em; color: var(--heading); }
.ccaf-card__text { color: var(--text-muted); }
.ccaf-card__why { margin-block-start: auto; font-size: var(--fs--1); color: var(--text-muted); font-style: italic; }
.ccaf-card__meta { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-block-start: auto; font-size: var(--fs--1); color: var(--text-muted); }
.ccaf-card--district { background-image: linear-gradient(90deg, var(--env-a, var(--c-ochre)), var(--env-b, var(--c-terracotta))); background-size: 100% 5px; background-repeat: no-repeat; }
.ccaf-card__icon { inline-size: 40px; block-size: 40px; color: var(--env-b, var(--c-forest)); }

/* District grid (Direct mode) */
.ccaf-district-grid {
	list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-3);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
}
.ccaf-district-card a {
	display: flex; flex-direction: column; gap: var(--s-1); padding: var(--s-4) var(--s-5);
	min-block-size: 100%; border-radius: var(--radius); text-decoration: none;
	background: var(--surface) linear-gradient(90deg, var(--env-a, var(--c-ochre)), var(--env-b, var(--c-terracotta))) no-repeat 0 0 / 100% 4px;
	border: 1px solid var(--border); box-shadow: var(--shadow);
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.ccaf-district-card a:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.ccaf-district-card__label { font: 700 var(--fs-1)/1.2 var(--font-display); letter-spacing: -0.015em; color: var(--heading); }
.ccaf-district-card__tagline { font-size: var(--fs--1); color: var(--text-muted); }

/* Chips (filters, interests) */
.ccaf-chips { display: flex; flex-wrap: wrap; gap: var(--s-2); list-style: none; margin: 0; padding: 0; }
.ccaf-chip {
	position: relative; display: inline-flex; align-items: center; gap: var(--s-2);
	min-block-size: var(--tap); padding: var(--s-2) var(--s-4);
	border: 1.5px solid var(--border); border-radius: var(--radius-pill);
	background: var(--surface); color: var(--text); cursor: pointer; text-decoration: none;
	transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.ccaf-chip input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; }
.ccaf-chip:has(input:checked), .ccaf-chip.is-current {
	background: var(--selected); border-color: var(--selected); color: var(--on-selected);
}
.ccaf-chip:hover { border-color: var(--border-strong); }
.ccaf-chip:has(input:checked)::before { content: "✓"; font-weight: 700; color: currentColor; }
.ccaf-chip:has(input:focus-visible) { outline: 3px solid var(--focus); outline-offset: 2px; }

/* Notices, empty & loading states */
.ccaf-notice { padding: var(--s-3) var(--s-4); border-radius: var(--radius-sm); border-inline-start: 4px solid; background: var(--surface); max-width: none; }
.ccaf-notice--info { border-color: var(--c-teal); }
.ccaf-notice--success { border-color: var(--success); }
.ccaf-notice--warn { border-color: var(--warn); }
.ccaf-notice--error { border-color: var(--error); color: var(--error); }
.ccaf-empty { padding: var(--s-5); text-align: center; color: var(--text-muted); border: 1.5px dashed var(--border); border-radius: var(--radius); }
.ccaf-hint { font-size: var(--fs--1); color: var(--text-muted); }
[aria-busy="true"]:empty { min-block-size: 3rem; border-radius: var(--radius-sm); background: linear-gradient(90deg, var(--surface-2), var(--surface), var(--surface-2)); background-size: 200% 100%; animation: ccaf-shimmer 1.4s linear infinite; }
@keyframes ccaf-shimmer { to { background-position: -200% 0; } }

/* Labels */
.ccaf-evidence, .ccaf-stage-badge, .ccaf-live-badge {
	display: inline-flex; align-items: center; gap: var(--s-2);
	padding: var(--s-1) var(--s-3); border-radius: var(--radius-pill);
	font-size: var(--fs--1); font-weight: 600; background: var(--surface-2); color: var(--text);
}
.ccaf-evidence::before { content: ""; inline-size: 0.6em; block-size: 0.6em; border-radius: 50%; background: currentColor; }
.ccaf-evidence--documented { color: var(--success); }
.ccaf-evidence--oral-tradition { color: var(--accent); }
.ccaf-evidence--interpretation { color: var(--link); }
.ccaf-evidence--open-question { color: var(--warn); }
.ccaf-live-badge { background: #c0141e; color: #fff; }
.ccaf-live-badge::before { content: ""; inline-size: 0.55em; block-size: 0.55em; border-radius: 50%; background: #fff; animation: ccaf-pulse 1.6s ease-in-out infinite; }
@keyframes ccaf-pulse { 50% { opacity: 0.25; } }

/* Forms */
.ccaf-form { display: grid; gap: var(--s-2); max-inline-size: 40rem; }
.ccaf-form label { font-weight: 600; }
.ccaf-form input:not([type="checkbox"]):not([type="radio"]), .ccaf-form textarea, .ccaf-form select {
	inline-size: 100%; min-block-size: var(--tap); padding: var(--s-2) var(--s-3);
	font: inherit; color: var(--text); background: var(--surface);
	border: 1.5px solid var(--border); border-radius: var(--radius-sm);
}
.ccaf-form [aria-invalid="true"] { border-color: var(--error); }
.ccaf-form__msg { min-block-size: 1.4em; margin: 0; font-size: var(--fs--1); }

/* Trust panel & lesson actions */
.ccaf-trust, .ccaf-lesson-actions, .ccaf-reflect {
	margin-block: var(--s-6); padding: var(--s-5); border-radius: var(--radius);
	background: var(--surface); border: 1px solid var(--border);
}
.ccaf-trust dl { display: grid; grid-template-columns: max-content 1fr; gap: var(--s-1) var(--s-4); margin: 0 0 var(--s-4); }
.ccaf-trust dt { font-weight: 600; }
.ccaf-trust dd { margin: 0; }

/* Meetings */
.ccaf-meetings { list-style: none; padding: 0; display: grid; gap: var(--s-3); }
.ccaf-meeting { padding: var(--s-4) var(--s-5); border-radius: var(--radius); background: var(--surface); border: 1px solid var(--border); }
.ccaf-meeting.is-live { border-color: #c0141e; box-shadow: 0 0 0 3px rgb(192 20 30 / 0.15); }
.ccaf-page .ccaf-meeting__title { font-size: var(--fs-1); margin-block: var(--s-2) 0; } /* .ccaf-page: outranks the page's .ccaf-page h2 size */
.ccaf-meeting__rooms { margin-block-start: var(--s-3); }
.ccaf-meeting__kind { font-size: var(--fs--1); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); margin-inline-start: var(--s-2); }

/* Chat */
.ccaf-chat__log { list-style: none; margin: 0 0 var(--s-3); padding: var(--s-3); block-size: min(60vh, 480px); overflow-y: auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); display: flex; flex-direction: column; gap: var(--s-2); }
.ccaf-chat__msg { max-inline-size: 85%; padding: var(--s-2) var(--s-3); border-radius: var(--radius-sm); background: var(--surface-2); }
.ccaf-chat__msg.is-mine { align-self: flex-end; background: color-mix(in srgb, var(--c-teal) 15%, var(--surface)); }
.ccaf-chat__author { font-weight: 600; margin-inline-end: var(--s-2); }
.ccaf-chat__body { margin: var(--s-1) 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.ccaf-chat__report { background: none; border: 0; padding: 0; color: var(--text-muted); font-size: var(--fs--1); text-decoration: underline; cursor: pointer; }

/* Quiz */
.ccaf-quiz__q { border: 0; padding: 0; margin: 0 0 var(--s-4); }
.ccaf-quiz__q legend { font: 600 var(--fs-1)/1.3 var(--font-display); color: var(--heading); margin-block-end: var(--s-3); }
.ccaf-quiz__opt { display: flex; align-items: center; gap: var(--s-3); min-block-size: var(--tap); padding: 0 var(--s-3); border: 1.5px solid var(--border); border-radius: var(--radius-sm); margin-block-end: var(--s-2); background: var(--surface); }
.ccaf-quiz__opt:has(input:checked) { border-color: var(--c-teal); }
.ccaf-quiz__opt input { inline-size: 1.2rem; block-size: 1.2rem; accent-color: var(--c-teal-ink); }
.ccaf-quiz__opt label { flex: 1; padding-block: var(--s-2); cursor: pointer; }

/* Progress */
.ccaf-progress-list { list-style: none; padding: 0; display: grid; gap: var(--s-3); }
.ccaf-progress-list li { display: grid; grid-template-columns: 1fr auto; gap: var(--s-1) var(--s-3); align-items: center; }
.ccaf-progress-list progress { grid-column: 1 / -1; inline-size: 100%; block-size: 10px; accent-color: var(--c-teal); }

/* Breadcrumbs */
.ccaf-breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: var(--s-2); padding: 0; margin: 0 0 var(--s-4); font-size: var(--fs--1); }
.ccaf-breadcrumb li + li::before { content: "/"; margin-inline-end: var(--s-2); color: var(--text-muted); }

/* Language & a11y toolbar */
.ccaf-toolbar { display: flex; flex-wrap: wrap; gap: var(--s-2); align-items: center; justify-content: flex-end; padding-block: var(--s-2); font-size: var(--fs--1); }
.ccaf-toolbar select, .ccaf-toolbar button {
	min-block-size: 36px; padding: 0 var(--s-3); font: inherit; color: var(--text);
	background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-pill); cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
	.ccaf-page *, .ccaf-page *::before, .ccaf-page *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
html.ccaf-reduce-motion .ccaf-page *, html.ccaf-reduce-motion .ccaf-page *::before { animation: none !important; transition: none !important; }

@media print {
	.ccaf-toolbar, .ccaf-village, .ccaf-actions, .ccaf-chat, .site-header, .site-footer { display: none !important; }
	.ccaf-page { background: #fff; color: #000; }
	.ccaf-page a::after { content: " (" attr(href) ")"; font-size: 0.8em; }
}

/* ---------- Content templates (courses, lessons, library, events, search) ---------- */
.ccaf-page-head { padding-block: var(--s-7) var(--s-6); background: radial-gradient(60% 140% at 100% 0%, var(--env-tint, rgb(242 169 59 / 0.16)), transparent 70%), var(--wash-dawn); border-block-end: 1px solid var(--border); }
.ccaf-page-head h1 { font-size: var(--fs-4); }
.ccaf-page .ccaf-lede { font-size: var(--fs-1); color: var(--text-muted); max-inline-size: 60ch; }
.ccaf-reading { max-inline-size: 760px; }
.ccaf-prose { font-size: var(--fs-0); }
.ccaf-page .ccaf-prose > * + * { margin-block-start: var(--s-4); }
.ccaf-prose h2 { font-size: var(--fs-2); margin-block-start: var(--s-6); }
.ccaf-prose img { max-inline-size: 100%; block-size: auto; border-radius: var(--radius-sm); }
.ccaf-prose blockquote { margin-inline: 0; padding-inline-start: var(--s-4); border-inline-start: 4px solid var(--c-ochre); font-family: var(--font-accent); font-style: italic; font-size: var(--fs-1); }
.ccaf-layout { display: grid; gap: var(--s-6); padding-block: var(--s-6); }
@media (min-width: 960px) { .ccaf-layout { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; } .ccaf-outline { position: sticky; inset-block-start: var(--s-5); } }
.ccaf-box, .ccaf-outline { padding: var(--s-5); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.ccaf-box h2, .ccaf-outline h2 { font-size: var(--fs-1); }
.ccaf-outline h3 { font-size: var(--fs-0); margin-block: var(--s-4) var(--s-2); color: var(--text-muted); }
.ccaf-outline__list { margin: 0; padding-inline-start: 1.6em; display: grid; gap: var(--s-2); }
.ccaf-outline__list li.is-done::marker { content: "✓  "; color: var(--success); font-weight: 700; }
.ccaf-outline__list li.is-done a { color: var(--text-muted); }
.ccaf-facts { display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-6); margin: var(--s-4) 0; }
.ccaf-facts div { display: grid; gap: 2px; }
.ccaf-facts dt { font-size: var(--fs--1); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); }
.ccaf-facts dd { margin: 0; font-weight: 600; }
.ccaf-media { margin: var(--s-5) 0; }
.ccaf-media iframe, .ccaf-media video { inline-size: 100%; aspect-ratio: 16 / 9; block-size: auto; border: 0; border-radius: var(--radius-sm); }
.ccaf-transcript { margin-block: var(--s-3) var(--s-5); padding: var(--s-3) var(--s-4); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); }
.ccaf-transcript summary { cursor: pointer; font-weight: 600; min-block-size: var(--tap); display: flex; align-items: center; }
.ccaf-figure { margin: var(--s-5) 0; }
.ccaf-figure img { inline-size: 100%; block-size: auto; border-radius: var(--radius); }
.ccaf-figure figcaption { font-size: var(--fs--1); color: var(--text-muted); margin-block-start: var(--s-2); }
.ccaf-lesson-nav { display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin-block: var(--s-6); }
.ccaf-lesson-nav a { display: grid; gap: 2px; padding: var(--s-4); border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); text-decoration: none; color: var(--heading); font-weight: 600; }
.ccaf-lesson-nav a span { font-size: var(--fs--1); font-weight: 400; color: var(--text-muted); }
.ccaf-lesson-nav__next { text-align: end; }
.ccaf-filters { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: end; margin-block-start: var(--s-4); }
.ccaf-filters__field { display: grid; gap: 4px; flex: 1 1 160px; }
.ccaf-filters__field--wide { flex: 2 1 260px; }
.ccaf-filters label { font-size: var(--fs--1); font-weight: 600; }
.ccaf-filters input[type="search"] { -webkit-appearance: none; appearance: none; }
.ccaf-filters input, .ccaf-filters select { min-block-size: var(--tap); padding: 0 var(--s-3); font: inherit; color: var(--text); background: var(--surface); border: 1.5px solid var(--border); border-radius: var(--radius-sm); }
.ccaf-filters__actions { display: flex; gap: var(--s-2); }
.ccaf-tabs { display: flex; gap: var(--s-2); margin-block-start: var(--s-4); }
.ccaf-tabs a { padding: var(--s-2) var(--s-4); min-block-size: var(--tap); display: inline-flex; align-items: center; border-radius: var(--radius-pill); border: 1.5px solid var(--border); text-decoration: none; color: var(--text); }
.ccaf-tabs a[aria-current="page"] { background: var(--selected); border-color: var(--selected); color: var(--on-selected); }
.ccaf-event-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-3); }
.ccaf-event { display: grid; grid-template-columns: auto 1fr; gap: var(--s-4); padding: var(--s-4); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.ccaf-event__date { display: grid; place-items: center; min-inline-size: 76px; padding: var(--s-2); border-radius: var(--radius-sm); background: linear-gradient(160deg, var(--c-green), var(--c-night)); color: var(--c-ivory); font-size: var(--fs--1); text-align: center; }
.ccaf-event__date span { font: 700 var(--fs-3)/1 var(--font-display); color: var(--c-gold); }
.ccaf-page .ccaf-event__title { font-size: var(--fs-1); margin: 0 0 var(--s-1); }
.ccaf-event__title a { color: var(--heading); text-decoration: none; }
.ccaf-flagship { display: grid; gap: var(--s-2); padding: var(--s-6); border-radius: var(--radius-lg); text-decoration: none; color: var(--c-ivory); background: var(--sky-dawn); box-shadow: var(--shadow-lift); }
.ccaf-flagship:hover { color: #fff; }
.ccaf-flagship .ccaf-eyebrow { background: rgb(255 255 255 / 0.12); }
.ccaf-flagship .ccaf-eyebrow { color: var(--c-yellow); }
.ccaf-flagship__title { font: 700 var(--fs-3)/1.15 var(--font-display); }
.ccaf-related { margin-block-start: var(--s-7); }
.ccaf-pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-block-start: var(--s-6); }
.ccaf-pagination .page-numbers { min-inline-size: var(--tap); min-block-size: var(--tap); display: inline-flex; align-items: center; justify-content: center; padding: 0 var(--s-3); border: 1px solid var(--border); border-radius: var(--radius-pill); text-decoration: none; color: var(--text); }
.ccaf-pagination .current { background: var(--selected); color: var(--on-selected); border-color: var(--selected); }

/* Kgotla Commons */
.ccaf-guidelines { margin-block: var(--s-4); }
.ccaf-guidelines summary { cursor: pointer; min-block-size: var(--tap); display: flex; align-items: center; }
.ccaf-commons__new { inline-size: 100%; }
.ccaf-commons__new > summary { list-style: none; display: inline-flex; }
.ccaf-commons__new > summary::-webkit-details-marker { display: none; }
.ccaf-commons__new[open] > form { margin-block-start: var(--s-4); padding: var(--s-5); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); max-inline-size: none; }
.ccaf-topic-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-3); }
.ccaf-topic { padding: var(--s-4) var(--s-5); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); border-inline-start: 4px solid var(--c-indigo); box-shadow: var(--shadow); }
.ccaf-page .ccaf-topic__title { font-size: var(--fs-1); margin: 0 0 var(--s-1); }
.ccaf-topic__title a { color: var(--heading); text-decoration: none; }
.ccaf-replies { margin-block-start: var(--s-6); }

.ccaf-page progress { accent-color: var(--c-teal-ink); }
.ccaf-page .ccaf-box > h2:first-child, .ccaf-page .ccaf-outline > h2:first-child, .ccaf-page .ccaf-reflect > h2:first-child, .ccaf-page .ccaf-trust > h2:first-child { margin-block-start: 0; }
.ccaf-filters__actions .ccaf-btn { min-block-size: var(--tap); }

/* Speed control added to recordings by ui.js */
.ccaf-speed { display: inline-flex; align-items: center; gap: 6px; margin-block-start: 6px; font-size: var(--fs--1); }
.ccaf-speed select { min-block-size: 36px; padding: 0 var(--s-2); font: inherit; color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); }

/* Explore & exhibitions */
.ccaf-safeguard { max-inline-size: 70ch; }
.ccaf-knowledge { margin-block: var(--s-6); }
.ccaf-knowledge__grid { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.ccaf-knowledge__col { padding: var(--s-4) var(--s-5); border-radius: var(--radius); background: var(--surface); border: 1px solid var(--border); }
.ccaf-knowledge__col h3 { font-size: var(--fs-1); }
.ccaf-knowledge__col--evidence { border-inline-start: 5px solid var(--c-teal); }
.ccaf-knowledge__status { font-weight: 700; }
.ccaf-knowledge__status.ccaf-ev--harmful { color: var(--error); }
.ccaf-exhibition-hero { position: relative; isolation: isolate; padding-block: var(--s-8) var(--s-7); background: var(--sky-dawn); color: var(--c-ivory); overflow: hidden; }
.ccaf-exhibition-hero__img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; z-index: -1; opacity: .35; }
.ccaf-page .ccaf-exhibition-hero h1 { color: var(--c-ivory); font-size: var(--fs-5); }
.ccaf-page .ccaf-exhibition-hero .ccaf-lede, .ccaf-exhibition-hero .ccaf-hint { color: #ffffff; }
.ccaf-exhibition-hero .ccaf-eyebrow { color: var(--c-yellow); background: rgb(255 255 255 / 0.12); }
.ccaf-exhibition-hero .ccaf-breadcrumb a, .ccaf-exhibition-hero .ccaf-breadcrumb span { color: #ffffff; }
.ccaf-exhibit { margin-block: var(--s-6); padding: var(--s-5); border-radius: var(--radius); background: var(--surface); border: 1px solid var(--border); }
.ccaf-exhibit__source { font-size: var(--fs--1); color: var(--text-muted); border-block-start: 1px dashed var(--border); padding-block-start: var(--s-2); }
.ccaf-exhibit-quote { border-inline-start: 4px solid var(--c-ochre); padding-inline-start: var(--s-5); font-family: var(--font-accent); font-style: italic; font-size: var(--fs-2); }
.ccaf-exhibit-quote cite { display: block; margin-block-start: var(--s-2); font: 400 var(--fs--1) var(--font-body); color: var(--text-muted); }
ul.is-style-ccaf-timeline { list-style: none; padding-inline-start: var(--s-5); border-inline-start: 3px solid var(--c-ochre); }
ul.is-style-ccaf-timeline li { position: relative; padding-block: var(--s-2); }
ul.is-style-ccaf-timeline li::before { content: ""; position: absolute; inset-inline-start: calc(-1 * var(--s-5) - 9px); inset-block-start: 1em; inline-size: 14px; block-size: 14px; border-radius: 50%; background: var(--c-terracotta); border: 3px solid var(--bg); }

/* ---------- Parent theme (Kadence) chrome: glassy header, night-sky footer ---------- */
body { background: var(--bg); }
#masthead .site-main-header-wrap .site-header-row-container-inner,
#masthead .site-mobile-header-wrap .site-header-row-container-inner {
	background: color-mix(in srgb, var(--bg) 82%, transparent);
	-webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px);
	border-block-end: 1px solid var(--border);
}
#masthead.site-header { position: sticky; inset-block-start: 0; z-index: 100; background: transparent; }
body.admin-bar #masthead { inset-block-start: var(--wp-admin--admin-bar--height, 32px); }
#masthead .site-title { font: 800 1.15rem/1.1 var(--font-display); letter-spacing: -0.03em; color: var(--heading); }
/* Until CCAF uploads its logo (Customizer → Site Identity), show the bundled emblem beside the site name. */
body:not(.wp-custom-logo) #masthead .site-branding > a { display: inline-flex; align-items: center; gap: 0.6rem; }
body:not(.wp-custom-logo) #masthead .site-branding > a::before {
	content: ""; flex: none; inline-size: 44px; block-size: 44px; border-radius: 50%;
	background: url("../img/ccaf-emblem-128.png") center / contain no-repeat;
}
#masthead .header-navigation .menu > li > a { font: 500 0.95rem var(--font-body); color: var(--text); border-radius: var(--radius-pill); }
#masthead .header-navigation .menu > li > a:hover,
#masthead .header-navigation .menu > li.current-menu-item > a { color: var(--accent); }
/* Give one menu item the CSS class "ccaf-menu-cta" (Appearance → Menus) to show it as a button. */
#masthead .header-navigation .menu > li.ccaf-menu-cta > a {
	margin-inline-start: var(--s-2); padding-inline: var(--s-4); background: var(--selected); color: var(--on-selected);
}
#masthead .header-navigation .menu > li.ccaf-menu-cta > a:hover { background: var(--accent); color: var(--on-accent); }
#colophon .site-footer-wrap { background: var(--emblem-stripe) no-repeat 0 0 / 100% 6px, radial-gradient(60% 120% at 85% 0%, rgb(252 216 0 / 0.14), transparent 70%), var(--c-night); color: #ffffff; }   /* 14.06 */
#colophon, #colophon a { color: #ffffff; }
#colophon a:hover { color: var(--c-yellow); }
.ccaf-page fieldset { border: 1px solid var(--border); border-radius: var(--radius); padding: var(--s-4) var(--s-5); margin-inline: 0; background: color-mix(in srgb, var(--surface) 60%, transparent); }

/* Language menu (globe) */
.ccaf-langmenu { position: relative; }
.ccaf-langmenu > summary {
	list-style: none; display: inline-flex; align-items: center; gap: 0.4rem; min-block-size: 36px; padding: 0 0.85rem;
	border-radius: var(--radius-pill); border: 1px solid var(--border-strong); background: var(--surface); color: var(--heading);
	font-weight: 700; cursor: pointer;
}
.ccaf-langmenu > summary::-webkit-details-marker { display: none; }
.ccaf-langmenu > summary::after { content: ""; inline-size: 0.45em; block-size: 0.45em; border-inline-end: 2px solid currentColor; border-block-end: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); margin-inline-start: 0.15rem; }
.ccaf-langmenu[open] > summary { background: var(--selected); color: var(--on-selected); border-color: var(--selected); }
.ccaf-langmenu ul {
	position: absolute; inset-inline-end: 0; inset-block-start: calc(100% + 6px); z-index: 200; min-inline-size: 220px; margin: 0; padding: 6px; list-style: none;
	background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); box-shadow: var(--shadow-lift);
}
.ccaf-langmenu a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.5rem 0.7rem; border-radius: 8px; color: var(--text); text-decoration: none; font-weight: 600; }
.ccaf-langmenu a:hover { background: var(--surface-2); }
.ccaf-langmenu a[aria-current] { background: color-mix(in srgb, var(--c-yellow) 30%, transparent); }
.ccaf-langmenu small { color: var(--text-muted); font-weight: 700; font-size: 0.7rem; letter-spacing: 0.06em; }

/* ---------- News & announcements (Phase F) ---------- */
.ccaf-byline { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); margin-block: var(--s-3) var(--s-4); font-size: var(--fs--1); color: var(--text-muted); }
.ccaf-byline > span + span::before { content: "·"; margin-inline-end: var(--s-4); }
.ccaf-correction { margin-block: var(--s-4); }
.ccaf-correction .ccaf-correction__title { font-size: var(--fs-0); margin: 0 0 var(--s-2); }
.ccaf-correction p { margin: 0; }
.ccaf-news-source { margin-block-start: var(--s-5); padding-block-start: var(--s-3); border-block-start: 1px solid var(--border); font-size: var(--fs--1); }
.ccaf-news-cats { margin-block: var(--s-4); }
.ccaf-news-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-5); }
.ccaf-news-item { padding-block-end: var(--s-5); border-block-end: 1px solid var(--border); }
.ccaf-news-item__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); margin: 0 0 var(--s-2); font-size: var(--fs--1); color: var(--text-muted); }
.ccaf-news-item__corrected { font-weight: 700; color: var(--text); }
.ccaf-news-item__title { font-size: var(--fs-2); margin: 0 0 var(--s-2); }
.ccaf-news-item__title a { color: var(--text); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.ccaf-news-item__title a:hover { color: var(--accent); }
.ccaf-news-item__summary { margin: 0; color: var(--text-muted); }
/* Kadence's comment-form asterisk (#d54e21) is 4.25:1 on white; use the error ink (AA in both themes). */
.ccaf-page .comment-form .required { color: var(--error); } /* .ccaf-page: Kadence's comments.min.css loads after this file. */

/* ---------- Atlas country facts (Phase G) ---------- */
.ccaf-country-facts h2 { font-size: var(--fs-2); }
.ccaf-table-wrap { overflow-x: auto; }
.ccaf-facts-table { inline-size: 100%; border-collapse: collapse; font-size: var(--fs--1); }
.ccaf-facts-table th, .ccaf-facts-table td { text-align: start; vertical-align: top; padding: var(--s-2) var(--s-3); border-block-end: 1px solid var(--border); }
.ccaf-facts-table thead th { color: var(--text-muted); font-weight: 700; }
.ccaf-facts-table tbody th { font-weight: 600; }
.ccaf-facts-old { color: var(--text-muted); font-style: italic; }
.ccaf-disputed { margin: var(--s-2) 0 0; padding-inline-start: 1.2em; }

/* ---------- Passport levels (Phase H) ---------- */
.ccaf-levels { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-2); counter-reset: lvl; }
.ccaf-level { counter-increment: lvl; display: grid; gap: var(--s-1); padding: var(--s-3) var(--s-4); border: 1px solid var(--border); border-radius: var(--radius-sm); }
.ccaf-level strong::before { content: counter(lvl) ". "; }
.ccaf-level.is-current { border-color: var(--accent); border-width: 2px; background: color-mix(in srgb, var(--accent) 6%, transparent); }
.ccaf-level__you { font-size: var(--fs--1); color: var(--text-muted); }

/* Foundation footer and archive strips (site-wide pages, 25 Oct 2026) */
.ccaf-site-footer { padding-block: var(--s-6) var(--s-5); border-block-start: 1px solid var(--border); background: var(--wash-dawn); }
.ccaf-site-footer .ccaf-hint { margin-block-start: var(--s-4); }
.ccaf-strip + .ccaf-strip { padding-block-start: 0; }
.ccaf-page-body > .ccaf-section:first-child { padding-block-start: var(--s-6); }
.ccaf-gallery { display: grid; gap: var(--s-3); grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); list-style: none; margin: 0; padding: 0; }
.ccaf-gallery img { inline-size: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-sm); block-size: auto; }
.ccaf-gallery figcaption { font-size: var(--fs--1); color: var(--text-muted); margin-block-start: var(--s-1); }
.ccaf-split { display: grid; gap: var(--s-6); align-items: start; }
@media (min-width: 880px) { .ccaf-split { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); } }
.ccaf-split img { inline-size: 100%; block-size: auto; border-radius: var(--radius); }
.ccaf-people { display: grid; gap: var(--s-4); grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); list-style: none; margin: 0; padding: 0; }
.ccaf-person { padding: var(--s-4); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.ccaf-person img { inline-size: 96px; block-size: 96px; object-fit: cover; border-radius: 50%; margin-block-end: var(--s-3); }
.ccaf-person strong { display: block; color: var(--heading); }
.ccaf-person span { font-size: var(--fs--1); color: var(--text-muted); }
.ccaf-steps { counter-reset: step; list-style: none; padding: 0; display: grid; gap: var(--s-3); }
.ccaf-steps li { counter-increment: step; display: grid; grid-template-columns: 2.25rem 1fr; gap: var(--s-3); align-items: start; }
.ccaf-steps li::before { content: counter(step); display: grid; place-items: center; inline-size: 2.25rem; block-size: 2.25rem; border-radius: 50%; background: var(--c-green); color: var(--c-ivory); font-weight: 700; }
.ccaf-page .ccaf-section h2 { margin-block-end: var(--s-3); }
.ccaf-page .ccaf-section p + p { margin-block-start: var(--s-3); }
