/* ==========================================================================
   Waad theme — "White Manuscript" design system (v5)
   Clean white pages; twilight indigo ink; apricot, burnt peach and muted teal as
   accents and pale section tints. No dark grounds (dark mode only on request).
   Amiri (classical Naskh) for display and long reading, Noto Naskh Arabic for the
   interface, KFGQPC Uthmanic Hafs reserved for Quran text.
   RTL-first: spacing and positions use logical properties, so left-to-right
   languages mirror from the same rules. Design notes: DESIGN-AUDIT.md.
   ========================================================================== */

/* Fonts ------------------------------------------------------------------ */

@font-face {
	font-family: "Amiri";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/amiri-arabic-400.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
	font-family: "Amiri";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/amiri-arabic-700.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
	font-family: "Amiri";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/amiri-latin-400.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Amiri";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/amiri-latin-700.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Noto Naskh Arabic";
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("../fonts/noto-naskh-arabic-arabic-wght-normal.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
	font-family: "Readex Pro";
	font-style: normal;
	font-weight: 160 700;
	font-display: swap;
	src: url("../fonts/readex-pro-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Readex Pro";
	font-style: normal;
	font-weight: 160 700;
	font-display: swap;
	src: url("../fonts/readex-pro-latin-ext-wght-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Readex Pro";
	font-style: normal;
	font-weight: 160 700;
	font-display: swap;
	src: url("../fonts/readex-pro-arabic-wght-normal.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
/* Quran only. Free licence from the King Fahd Complex; the file is used unmodified. */
@font-face {
	font-family: "KFGQPC Uthmanic Hafs";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/kfgqpc-uthmanic-hafs.woff2") format("woff2");
}

/* Tokens ----------------------------------------------------------------- */

:root {
	color-scheme: light;

	/* Palette */
	--indigo-950: #23253A;
	--indigo-900: #2B2D42;
	--indigo-700: #3D405B;
	--indigo-500: #5A5E80;
	--egg-50: #FAF8EE;
	--egg-100: #F4F1DE;
	--egg-200: #EBE6C9;
	--egg-300: #E1DAB4;
	--apricot: #F2CC8F;
	--apricot-200: #F7DFB6;
	--peach: #E07A5F;
	--peach-ink: #A84D35;
	--peach-ink-hover: #94412B;
	--teal: #81B29A;
	--teal-ink: #3A6F5A;
	--brand-green: #3F5B36;
	--white: #FFFFFF;
	--paper: #FBF8F3;
	--tint-apricot: #FFF6E7;
	--tint-peach: #FDF1EC;
	--tint-teal: #EDF6F1;
	--tint-indigo: #F3F3F8;

	/* Roles */
	--bg: var(--white);
	--bg-2: var(--paper);
	--surface: var(--white);
	--surface-2: #F5F3EE;
	--text: var(--indigo-700);
	--title: var(--indigo-900);
	--muted: #62667F;
	--line: rgba(43, 45, 66, .09);
	--line-strong: rgba(43, 45, 66, .2);
	--rule: var(--line);
	--accent: var(--teal-ink);
	--accent-hover: var(--indigo-700);
	--cta: var(--peach-ink);
	--cta-hover: var(--peach-ink-hover);
	--on-cta: var(--egg-100);
	--panel: var(--tint-indigo);
	--panel-deep: var(--indigo-900);
	--on-panel: var(--title);
	--on-panel-muted: var(--muted);
	--panel-line: var(--line-strong);
	--ornament: var(--peach);
	--focus: var(--peach-ink);
	--pattern-ink: rgba(61, 64, 91, .07);
	--pattern-light: rgba(61, 64, 91, .05);

	/* Type */
	--font-ui: "Noto Naskh Arabic", "Readex Pro", system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-display: "Amiri", "Noto Naskh Arabic", Georgia, serif;
	--font-read: "Amiri", "Noto Naskh Arabic", Georgia, serif;
	--font-quran: "KFGQPC Uthmanic Hafs", "Amiri", serif;
	--fs-xs: .8125rem;
	--fs-sm: .9375rem;
	--fs-base: 1.0625rem;
	--fs-md: 1.1875rem;
	--fs-lg: 1.375rem;
	--fs-xl: clamp(1.6rem, 1.3rem + 1vw, 2rem);
	--fs-2xl: clamp(1.9rem, 1.5rem + 1.6vw, 2.6rem);
	--fs-3xl: clamp(2.4rem, 1.7rem + 2.8vw, 3.75rem);
	--fs-4xl: clamp(2.8rem, 1.8rem + 4vw, 4.75rem);

	/* Space, shape, motion */
	--wrap: 1320px;
	--gutter: clamp(16px, 3vw, 32px);
	--section: clamp(48px, 7vw, 96px);
	--r-sm: 12px;
	--r: 16px;
	--r-lg: 22px;
	--r-xl: 26px;
	--shadow-1: 0 1px 2px rgba(43, 45, 66, .05), 0 8px 24px -12px rgba(43, 45, 66, .18);
	--shadow-2: 0 2px 6px rgba(43, 45, 66, .06), 0 28px 56px -28px rgba(43, 45, 66, .32);
	--shadow-3: 0 1px 1px rgba(43, 45, 66, .04), 0 12px 24px -12px rgba(43, 45, 66, .16), 0 40px 80px -40px rgba(43, 45, 66, .3);
	--ease: cubic-bezier(.2, .7, .2, 1);
	--ease-out: cubic-bezier(.16, 1, .3, 1);
	--ease-in-out: cubic-bezier(.65, 0, .35, 1);
	--t-fast: 160ms;
	--t: 250ms;
	--t-slow: 800ms;
	--header-h: 68px;

	/* Eight-point star lattice (tiles at any size; colour set per use). */
	--lattice: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23000' stroke-width='1'%3E%3Crect x='17' y='17' width='22' height='22'/%3E%3Crect x='17' y='17' width='22' height='22' transform='rotate(45 28 28)'/%3E%3Cpath d='M0 28h12M44 28h12M28 0v12M28 44v12'/%3E%3C/g%3E%3C/svg%3E");
}

:root[data-theme="dark"] {
	color-scheme: dark;
	--bg: #23253A;
	--bg-2: #2B2D42;
	--surface: #2F3249;
	--surface-2: #383B55;
	--text: #ECE8D2;
	--title: #F4F1DE;
	--muted: #B4B6CC;
	--line: rgba(244, 241, 222, .12);
	--line-strong: rgba(244, 241, 222, .28);
	--rule: rgba(244, 241, 222, .55);
	--accent: #9BCBB3;
	--accent-hover: #F2CC8F;
	--cta: #C2603F;
	--cta-hover: #D06D4B;
	--panel: #34374F;
	--panel-deep: #1C1E30;
	--on-panel: #F4F1DE;
	--on-panel-muted: rgba(244, 241, 222, .74);
	--panel-line: rgba(244, 241, 222, .2);
	--paper: #2B2D42;
	--tint-apricot: #3A3640;
	--tint-peach: #3B3243;
	--tint-teal: #2C3A45;
	--tint-indigo: #31344C;
	--focus: #F2CC8F;
	--pattern-ink: rgba(244, 241, 222, .06);
}

.dir-ltr {
	--font-ui: "Readex Pro", system-ui, -apple-system, "Segoe UI", sans-serif;
	--fs-base: 1rem;
}

/* Base ------------------------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }
html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc(var(--header-h) + 16px);
	background: var(--bg);
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
	@view-transition { navigation: auto; }
}
body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--font-ui);
	font-size: var(--fs-base);
	line-height: 1.8;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-synthesis: none;
	overflow-x: clip;
}
.dir-ltr body, body.dir-ltr { line-height: 1.65; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; }
a { color: var(--accent); text-decoration: none; transition: color var(--t-fast); }
a:hover { color: var(--accent-hover); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { margin: 0; font-weight: 700; line-height: 1.45; text-wrap: balance; color: var(--title); }
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
[role="list"] { list-style: none; }
[hidden] { display: none !important; }
::selection { background: var(--apricot); color: var(--indigo-900); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 6px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.skip-link:focus {
	position: fixed !important;
	inset-block-start: 12px;
	inset-inline-start: 12px;
	z-index: 1000;
	width: auto;
	height: auto;
	margin: 0;
	padding: 12px 18px;
	clip: auto;
	border-radius: 999px;
	background: var(--indigo-700);
	color: var(--egg-100);
	font-weight: 700;
}

.wrap { width: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; }
.wrap--text { width: min(100% - 2 * var(--gutter), 820px); }
.wrap--mid { width: min(100% - 2 * var(--gutter), 1000px); }
.site-main { display: block; outline: none; min-height: 50vh; }

.icon { width: 1.2em; height: 1.2em; flex: none; vertical-align: -.22em; }
.only-dark { display: none; }
:root[data-theme="dark"] .only-dark { display: inline-block; }
:root[data-theme="dark"] .only-light { display: none; }

/* Patterns: the lattice, masked so it takes any colour. */
.page-head__pattern, .live__pattern, .appeal__pattern, .verse__pattern, .widget__pattern,
.footer__pattern, .sheet__pattern, .about-hero__pattern, .entry__pattern, .stat-card__pattern,
.ask__pattern, .notfound__pattern {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-color: var(--pattern-ink);
	-webkit-mask: var(--lattice) 0 0 / 56px 56px repeat;
	mask: var(--lattice) 0 0 / 56px 56px repeat;
}

/* Calligraphy (two masked layers) ---------------------------------------- */

.callig {
	position: relative;
	display: inline-block;
	aspect-ratio: var(--callig-ratio, 2385 / 383);
	color: currentColor;
}
.callig--name { --callig-ratio: 2390 / 426; }
.callig--mark { --callig-ratio: 1; }
.callig__ink, .callig__accent {
	position: absolute;
	inset: 0;
	-webkit-mask: var(--ink-mask) center / contain no-repeat;
	mask: var(--ink-mask) center / contain no-repeat;
	background: currentColor;
}
.callig__accent {
	-webkit-mask-image: var(--accent-mask);
	mask-image: var(--accent-mask);
	background: var(--callig-accent, var(--apricot));
}

/* Buttons, chips --------------------------------------------------------- */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55em;
	min-height: 48px;
	padding: 0 1.4em;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--font-ui);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color var(--t) var(--ease), color var(--t) var(--ease), border-color var(--t) var(--ease), transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.btn .icon { width: 18px; height: 18px; }
.btn:active { transform: translateY(1px); }
.btn--sm { min-height: 40px; padding-inline: 1.05em; font-size: .92rem; }
.btn--lg { min-height: 54px; padding-inline: 1.7em; font-size: 1.06rem; }
.btn--block { display: flex; width: 100%; }
.btn--peach, .btn--primary { background: var(--cta); color: var(--on-cta); }
.btn--peach, .btn--primary { box-shadow: 0 1px 0 rgba(255, 255, 255, .25) inset, 0 8px 20px -12px rgba(168, 77, 53, .7); }
.btn--peach:hover, .btn--primary:hover { background: var(--cta-hover); color: var(--on-cta); box-shadow: 0 14px 28px -14px rgba(168, 77, 53, .85); transform: translateY(-1px); }
.btn--indigo { background: var(--indigo-700); color: var(--egg-100); }
.btn--indigo:hover { background: var(--indigo-900); color: var(--egg-100); }
.btn--apricot, .btn--gold { background: var(--apricot); color: var(--indigo-900); }
.btn--apricot:hover, .btn--gold:hover { background: var(--apricot-200); color: var(--indigo-900); box-shadow: 0 10px 22px -12px rgba(242, 204, 143, .9); }
.btn--line, .btn--glass { border-color: var(--line-strong); background: var(--surface); color: var(--title); }
.btn--line:hover, .btn--glass:hover { border-color: var(--title); color: var(--title); background: var(--surface); box-shadow: var(--shadow-1); transform: translateY(-1px); }
.btn--ghost-light { border-color: var(--line-strong); background: var(--surface); color: var(--title); }
.btn--ghost-light:hover { border-color: var(--title); background: var(--surface); color: var(--title); }

.icon-btn {
	display: inline-grid;
	place-items: center;
	flex: none;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 50%;
	background: transparent;
	color: var(--text);
	transition: background-color var(--t-fast), border-color var(--t-fast), color var(--t-fast);
}
.icon-btn .icon { width: 20px; height: 20px; }
.icon-btn:hover { background: var(--surface); color: var(--title); }
.icon-btn--line, .icon-btn--glass, .icon-btn--soft, .icon-btn--round { border-color: var(--line-strong); }
.icon-btn--ghost { border-color: var(--line-strong); color: var(--title); }
.icon-btn--ghost:hover { background: var(--surface-2); color: var(--title); }
.icon-btn--sm { width: 34px; height: 34px; }
.icon-btn--sm .icon { width: 16px; height: 16px; }
.icon-btn.is-done { color: var(--teal-ink); }

.link-arrow { display: inline-flex; align-items: center; gap: .4em; color: var(--accent); font-weight: 700; font-size: var(--fs-sm); white-space: nowrap; }
.link-arrow .icon { width: 16px; height: 16px; transition: transform var(--t) var(--ease); }
.link-arrow:hover .icon { transform: translateX(-3px); }
.dir-ltr .link-arrow:hover .icon { transform: translateX(3px); }

.chip {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	min-height: 34px;
	padding: .15em .95em;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	color: var(--text);
	font-size: var(--fs-sm);
	line-height: 1.4;
	transition: background-color var(--t-fast), border-color var(--t-fast), color var(--t-fast);
}
.chip:hover { border-color: var(--text); color: var(--title); }
.chip--apricot { border-color: transparent; background: var(--apricot); color: var(--indigo-900); font-weight: 700; }
.chip--ghost { border-color: var(--line-strong); color: var(--text); }
.chip--peach { border-color: rgba(168, 77, 53, .35); color: var(--cta); }
.chip--peach:hover { border-color: var(--cta); color: var(--cta); background: rgba(168, 77, 53, .06); }
.chip--line { background: var(--surface); min-height: 44px; padding-inline: 1.1em; }
.chip--line::before {
	content: "";
	width: 7px;
	height: 7px;
	background: var(--ornament);
	transform: rotate(45deg);
	flex: none;
}
.chip__count { color: var(--muted); font-size: .8em; }
.chips { display: flex; flex-wrap: wrap; gap: 10px; }

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	color: var(--cta);
	font-size: var(--fs-sm);
	font-weight: 700;
}
.eyebrow .icon { width: 16px; height: 16px; color: var(--ornament); }
.eyebrow--light { color: var(--cta); }

.live-dot {
	position: relative;
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--teal);
	box-shadow: 0 0 0 3px rgba(129, 178, 154, .25);
	flex: none;
}
.live-dot--apricot { background: var(--apricot); box-shadow: 0 0 0 3px rgba(242, 204, 143, .25); }
.is-live .live-dot { background: var(--peach); box-shadow: 0 0 0 3px rgba(224, 122, 95, .3); animation: pulse 1.6s var(--ease) infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 7px rgba(224, 122, 95, 0); } }

.badge {
	position: absolute;
	inset-block-start: 12px;
	inset-inline-end: 12px;
	z-index: 2;
	padding: .2em .8em;
	border-radius: 999px;
	background: var(--peach-ink);
	color: var(--egg-100);
	font-size: var(--fs-xs);
	font-weight: 700;
	line-height: 1.7;
	box-shadow: 0 4px 12px -4px rgba(43, 45, 66, .5);
}

/* Top bar, header, ticker ----------------------------------------------- */

.site-header {
	position: sticky;
	inset-block-start: 0;
	z-index: 50;
	background: color-mix(in srgb, var(--bg) 88%, transparent);
	border-block-end: 1px solid var(--line);
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	transition: box-shadow var(--t) var(--ease), background-color var(--t) var(--ease);
}
.site-header.is-scrolled { background: color-mix(in srgb, var(--bg) 94%, transparent); box-shadow: 0 12px 32px -24px rgba(43, 45, 66, .45); }
.site-header__bar { display: flex; align-items: center; gap: clamp(16px, 2.5vw, 36px); min-height: var(--header-h); }
.site-header__actions { display: flex; align-items: center; gap: 10px; margin-inline-start: auto; }
.site-header__login { min-height: 44px; padding-inline: .95em 1.1em; font-size: .95rem; }
.site-header__login .icon { width: 18px; height: 18px; }
@media (max-width: 1320px) {
	.site-header__login { width: 44px; padding: 0; }
	.site-header__login span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
.site-header .brand { max-width: 0; overflow: hidden; opacity: 0; gap: 10px; transition: max-width 500ms var(--ease-out), opacity var(--t) var(--ease); }
.site-header.is-scrolled .brand { max-width: 320px; opacity: 1; }
.site-header .brand__tile { width: 40px; height: 40px; border-radius: 11px; }
.site-header .brand__mark { width: 30px; }
.site-header .brand__name { font-size: 1.4rem; white-space: nowrap; }
.site-header .brand__latin { display: none; }
.site-header__menu { display: none; }
.admin-bar .site-header { inset-block-start: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { inset-block-start: 0; } }

.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--title); flex: none; }
.brand:hover { color: var(--title); }
.brand__tile {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: var(--brand-green);
	color: #fff;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}
.brand__mark { width: 38px; --callig-accent: #E2C26B; }
.brand__text { display: grid; gap: 1px; line-height: 1.1; }
.brand__name { font-family: var(--font-display); font-size: 1.85rem; font-weight: 700; line-height: 1.45; margin-block-end: -6px; }
.brand__latin { color: var(--muted); font-family: "Readex Pro", system-ui, sans-serif; font-size: .7rem; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; }
.dir-ltr .brand__name { font-size: 1.5rem; }
.dir-ltr .brand__latin { letter-spacing: .04em; text-transform: none; font-size: .75rem; }

.nav { flex: 1; min-width: 0; display: flex; justify-content: center; }
.nav__list { display: flex; align-items: center; gap: clamp(10px, 1.6vw, 26px); list-style: none; }
.nav__list > li { position: relative; }
.nav__list > li > a {
	position: relative;
	display: block;
	padding: .55em 0;
	color: var(--text);
	font-size: 1.02rem;
	white-space: nowrap;
}
.nav__list > li > a::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 2px;
	height: 2px;
	border-radius: 2px;
	background: var(--peach);
	transform: scaleX(0);
	transition: transform var(--t) var(--ease);
}
.nav__list > li > a:hover { color: var(--title); }
.nav__list > li > a:hover::after,
.nav__list > .current-menu-item > a::after,
.nav__list > .current-menu-ancestor > a::after,
.nav__list > .current-menu-parent > a::after { transform: scaleX(1); }
.nav__list > .current-menu-item > a, .nav__list > .current-menu-ancestor > a { color: var(--title); font-weight: 700; }
.nav__list .sub-menu {
	position: absolute;
	inset-block-start: 100%;
	inset-inline-start: -14px;
	z-index: 10;
	min-width: 220px;
	padding: 8px;
	border: 1px solid var(--line);
	border-radius: var(--r);
	background: var(--surface);
	box-shadow: var(--shadow-2);
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--t), transform var(--t) var(--ease), visibility 0s linear var(--t);
}
.nav__list li:hover > .sub-menu, .nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.nav__list .sub-menu a { display: block; padding: .45em .8em; border-radius: 10px; color: var(--text); font-size: .95rem; }
.nav__list .sub-menu a:hover { background: var(--surface-2); }

.lang-btn {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	min-height: 44px;
	padding: 0 .9em;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	background: transparent;
	color: var(--text);
	font-size: var(--fs-sm);
}
.lang-btn .icon { width: 18px; height: 18px; }
.lang-btn:hover { border-color: var(--text); }
.lang-btn__count { display: none; }

.progress { position: absolute; inset-inline: 0; inset-block-end: -1px; height: 3px; overflow: hidden; }
.progress__bar { display: block; height: 100%; background: var(--peach); transform: scaleX(0); transform-origin: right; }
.dir-ltr .progress__bar { transform-origin: left; }

@media (max-width: 1220px) {
	.nav__list > li > a { font-size: .96rem; }
}
@media (max-width: 1080px) {
	.nav { display: none; }
	.site-header__menu { display: inline-grid; }
	.site-header__bar { justify-content: space-between; }
}
@media (max-width: 980px) {
	:root { --header-h: 60px; }
	.site-header__donate { display: none; }
}

.ticker { border-block-end: 1px solid var(--line); background: var(--surface); }
.ticker__in { display: flex; align-items: center; gap: 16px; min-height: 54px; }
.ticker__label {
	flex: none;
	padding: .3em 1em;
	border-radius: 999px;
	background: var(--peach-ink);
	color: var(--egg-100);
	font-size: var(--fs-sm);
	font-weight: 700;
}
.ticker__viewport {
	position: relative;
	flex: 1;
	min-width: 0;
	overflow: hidden;
	-webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.ticker__track { display: flex; width: max-content; animation: ticker calc(var(--ticker-items, 8) * 7.5s) linear infinite; }
.ticker:hover .ticker__track, .ticker:focus-within .ticker__track { animation-play-state: paused; }
.ticker__list { display: flex; list-style: none; }
.ticker__list li { display: flex; align-items: center; white-space: nowrap; }
.ticker__list li::before { content: ""; width: 7px; height: 7px; margin-inline: 22px; background: var(--peach); transform: rotate(45deg); }
.ticker__list a { color: var(--text); font-size: var(--fs-sm); }
.ticker__list a:hover { color: var(--cta); }
@keyframes ticker { to { transform: translateX(50%); } }
.dir-ltr .ticker__track { animation-name: ticker-ltr; }
@keyframes ticker-ltr { to { transform: translateX(-50%); } }

/* Sections, heads, grids ------------------------------------------------- */

.section { padding-block: var(--section); }
.section--tight { padding-block: clamp(24px, 4vw, 48px); }
.section--band { border-block: 1px solid var(--line); background: var(--bg-2); }
.section--tinted { background: var(--surface); }

.section-head { display: grid; gap: 10px; margin-block-end: clamp(20px, 2.6vw, 30px); }
.section-head__row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	position: relative;
	padding-block-end: 14px;
	border-block-end: 1px solid var(--line-strong);
}
.section-head__row::after { content: ""; position: absolute; inset-inline-start: 0; inset-block-end: -2px; width: 64px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--peach), var(--apricot)); }
.dir-rtl .section-head__row::after { background: linear-gradient(270deg, var(--peach), var(--apricot)); }
.section-head__title {
	display: flex;
	align-items: center;
	gap: .45em;
	font-family: var(--font-display);
	font-size: var(--fs-2xl);
	font-weight: 400;
	line-height: 1.35;
}
.section-head__star { width: .5em; height: .5em; color: var(--ornament); stroke-width: 2; }
.section-head__lead { max-width: 64ch; color: var(--muted); font-size: var(--fs-md); }
.section-head .link-arrow { margin-block-end: .5em; }
.display-title { font-family: var(--font-display); font-size: var(--fs-3xl); font-weight: 400; line-height: 1.3; }

.grid { display: grid; gap: clamp(18px, 2vw, 28px); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid--shorts { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }
@media (max-width: 1100px) { .grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .grid--3, .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .grid--3, .grid--4 { grid-template-columns: minmax(0, 1fr); } .grid--shorts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Cards ------------------------------------------------------------------ */

.card { position: relative; display: flex; flex-direction: column; min-width: 0; }
.card__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-radius: var(--r-lg);
	background: var(--surface-2);
	box-shadow: 0 0 0 1px var(--line);
	isolation: isolate;
}
.card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease); }
.card:hover .card__media img { transform: scale(1.05); }
.card--media .card__media, .card--short .card__media { transition: box-shadow var(--t) var(--ease), transform var(--t) var(--ease); }
.card--media:hover .card__media, .card--short:hover .card__media { box-shadow: var(--shadow-2); transform: translateY(-3px); }
.card__play {
	position: absolute;
	inset: 0;
	margin: auto;
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	color: var(--indigo-900);
	box-shadow: 0 0 0 6px rgba(255, 255, 255, .25), 0 10px 24px -8px rgba(0, 0, 0, .45);
	transition: transform var(--t) var(--ease), background-color var(--t) var(--ease), color var(--t) var(--ease);
}
.card__play .icon { width: 22px; height: 22px; margin-inline-start: 3px; }
.dir-rtl .card__play .icon { margin-inline-start: 0; margin-inline-end: 3px; }
.card:hover .card__play { transform: scale(1.1); background: var(--peach-ink); color: #fff; }
.card__typeset {
	position: absolute;
	inset: 0;
	display: block;
	background: var(--bg-2);
	color: var(--peach-ink);
}
.card--video .card__typeset { background: var(--tint-indigo); color: var(--peach); }
.card__quote { position: absolute; inset-block-start: 18px; inset-inline-end: 20px; width: 34px; height: 34px; color: var(--peach); }
.card__hizb { position: absolute; inset-block-end: -26px; inset-inline-start: -18px; width: 120px; height: 120px; color: var(--apricot); stroke-width: .6; opacity: .9; }
.card--video .card__quote { display: none; }
.card__kind { position: absolute; inset-block-end: 14px; inset-inline-end: 18px; color: var(--muted); font-size: var(--fs-xs); }

.card__body { display: grid; gap: 4px; padding-block-start: 14px; }
.card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; color: var(--muted); font-size: var(--fs-xs); line-height: 1.6; }
.card__cat { color: var(--cta); font-weight: 700; }
.card__dot { width: 4px; height: 4px; border-radius: 50%; background: var(--apricot); }
.card__title { font-family: var(--font-display); font-size: 1.3rem; font-weight: 400; line-height: 1.55; }
.dir-ltr .card__title { font-size: 1.22rem; line-height: 1.4; }
.card__link { color: var(--title); }
.card__link::after { content: ""; position: absolute; inset: 0; z-index: 3; border-radius: var(--r-lg); }
.card__link:hover { color: var(--cta); }
.card__link:focus-visible { outline: none; }
.card__link:focus-visible::after { outline: 2px solid var(--focus); outline-offset: 4px; }
.card__excerpt { color: var(--muted); font-size: var(--fs-sm); line-height: 1.85; }
.card--text {
	padding: 22px 24px;
	border: 1px solid var(--line);
	border-radius: var(--r-lg);
	background: var(--surface);
	transition: border-color var(--t) var(--ease), box-shadow var(--t) var(--ease), transform var(--t) var(--ease);
}
.card--text:hover { border-color: var(--line-strong); box-shadow: var(--shadow-2); transform: translateY(-3px); }
.card--text .card__body { padding: 0; gap: 8px; }

.card--short .card__media { aspect-ratio: 9 / 15; }
.card--short .card__title { font-family: var(--font-ui); font-size: var(--fs-sm); font-weight: 700; line-height: 1.6; }

.card--row { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 12px; padding-block: 12px; }
.card--row::before { content: ""; width: 7px; height: 7px; margin-block-start: .7em; background: var(--peach); transform: rotate(45deg); flex: none; align-self: flex-start; }
.card--row .card__title { flex: 1; min-width: 0; font-family: var(--font-ui); font-size: 1.02rem; font-weight: 400; line-height: 1.75; }
.card--row .card__meta { flex-basis: 100%; padding-inline-start: 19px; }
.card--row .card__link::after { border-radius: 8px; }

.card--num { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 16px; padding-block: 14px; border-block-start: 1px solid var(--line); }
.card__num { grid-row: span 2; color: var(--cta); font-family: var(--font-display); font-size: 2rem; font-weight: 700; line-height: 1; font-variant-numeric: lining-nums; }
.card--num .card__title { font-family: var(--font-ui); font-size: 1.02rem; font-weight: 400; line-height: 1.6; }
.card--num .card__meta { grid-column: 2; }

/* Home: lead row --------------------------------------------------------- */

/* Live card -------------------------------------------------------------- */

.live {
	position: relative;
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	gap: 4px 16px;
	align-items: center;
	padding: 18px 20px;
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	background: var(--surface);
	color: var(--text);
	box-shadow: var(--shadow-2);
}
.live__portrait {
	position: relative;
	width: 64px;
	height: 64px;
	overflow: hidden;
	border-radius: 50%;
	background: radial-gradient(80% 80% at 50% 35%, #F2F6F7, #D2E0E5);
	box-shadow: 0 0 0 3px var(--surface), 0 0 0 4px rgba(224, 122, 95, .45);
}
.is-live .live__portrait { box-shadow: 0 0 0 3px var(--surface), 0 0 0 5px var(--peach); }
.live__img { position: absolute; inset-inline: -14%; inset-block-end: -6%; width: 128%; max-width: none; height: auto; }
.is-live .live__when, .is-live .live__local { display: none; }
.live__body { display: grid; gap: 0; min-width: 0; }
.live__label { display: flex; align-items: center; gap: .55em; color: var(--teal-ink); font-size: var(--fs-sm); font-weight: 700; }
.is-live .live__label { color: var(--peach-ink); }
.live__when { color: var(--muted); font-size: var(--fs-xs); }
.live__now { color: var(--title); font-weight: 700; line-height: 1.6; }
.live__clock strong {
	display: block;
	color: var(--title);
	font-family: "Readex Pro", var(--font-ui);
	font-size: clamp(1.7rem, 1.4rem + 1vw, 2.1rem);
	font-weight: 300;
	line-height: 1.3;
	letter-spacing: .04em;
	font-variant-numeric: tabular-nums lining-nums;
	text-align: start;
}
.live__local { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: .35em; color: var(--muted); font-size: var(--fs-xs); }
.live__local .icon { width: 14px; height: 14px; }
.days { grid-column: 1 / -1; display: flex; gap: 4px; margin-block-start: 10px; list-style: none; }
.days__item {
	flex: 1 1 0;
	min-width: 0;
	padding: .05em .2em;
	border: 1px dashed var(--line-strong);
	border-radius: 999px;
	color: var(--muted);
	font-size: .76rem;
	line-height: 1.9;
	text-align: center;
}
.days__item.is-on { border: 1px solid transparent; background: var(--tint-teal); color: var(--teal-ink); font-weight: 700; }
.days__item.is-today { box-shadow: 0 0 0 2px var(--surface), 0 0 0 3px var(--peach); }

/* Home: portal (feed + sidebar) ----------------------------------------- */

.portal {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	gap: clamp(28px, 3.4vw, 48px);
	align-items: start;
	padding-block: clamp(36px, 5vw, 64px) var(--section);
}
.portal__feed { display: grid; gap: clamp(40px, 5vw, 60px); min-width: 0; }
.portal__side { display: grid; gap: 22px; align-content: start; align-self: stretch; }
@media (max-width: 1220px) { .portal { grid-template-columns: minmax(0, 1fr) 330px; } }
@media (max-width: 980px) {
	.portal { grid-template-columns: minmax(0, 1fr); }
	.portal__side { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
	.portal__side { align-items: start; }
	.portal__side .widget--sticky { display: none; }
}

.numbered { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(18px, 2vw, 28px); margin-block-start: 22px; list-style: none; }
@media (max-width: 860px) { .numbered { grid-template-columns: minmax(0, 1fr); } }

.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(20px, 2.6vw, 34px); align-items: start; }
.split__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.split__cards .card__title { font-size: 1.15rem; }
.split__list { list-style: none; }
.split__list li + li { border-block-start: 1px solid var(--line); }
@media (max-width: 860px) { .split { grid-template-columns: minmax(0, 1fr); } }

.appeal {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 18px 28px;
	overflow: hidden;
	padding: clamp(24px, 3.4vw, 36px);
	border: 1px solid rgba(224, 122, 95, .22);
	border-radius: var(--r-xl);
	background: var(--tint-peach);
	color: var(--text);
	isolation: isolate;
}
.appeal__pattern { --pattern-ink: rgba(168, 77, 53, .08); z-index: -1; }
.appeal__text { display: grid; gap: 6px; flex: 1 1 380px; }
.appeal__title { color: var(--title); font-family: var(--font-display); font-size: var(--fs-2xl); font-weight: 400; line-height: 1.35; }
.appeal__lead { color: var(--text); }
.appeal .btn--apricot { background: var(--peach-ink); color: #fff; }
.appeal .btn--apricot:hover { background: var(--peach-ink-hover); color: #fff; }
.appeal__actions { display: flex; flex-wrap: wrap; gap: 10px; }

.boxes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 2vw, 28px); }
@media (max-width: 760px) { .boxes { grid-template-columns: minmax(0, 1fr); } }
.box { position: relative; padding: clamp(20px, 2.4vw, 30px); border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--shadow-1); transition: box-shadow var(--t) var(--ease), border-color var(--t) var(--ease); }
.box::before { content: ""; position: absolute; inset-block-start: -1px; inset-inline: 28px; height: 3px; border-radius: 0 0 3px 3px; background: linear-gradient(90deg, var(--apricot), var(--peach)); opacity: .9; }
.box:hover { border-color: var(--line-strong); box-shadow: var(--shadow-2); }
.box__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-block-end: 6px; }
.box__title { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 400; line-height: 1.4; }
.box__more { color: var(--accent); font-size: var(--fs-sm); font-weight: 700; }
.box__list { list-style: none; }
.box__list li + li { border-block-start: 1px solid var(--line); }

.verse {
	position: relative;
	display: grid;
	justify-items: center;
	gap: 10px;
	overflow: hidden;
	margin: 0;
	padding: clamp(32px, 4.5vw, 56px) clamp(18px, 4vw, 40px);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	background: radial-gradient(120% 140% at 50% 0%, var(--tint-apricot), var(--surface) 70%);
	color: var(--title);
	text-align: center;
	isolation: isolate;
}
.verse__pattern { --pattern-ink: rgba(168, 77, 53, .07); z-index: -1; -webkit-mask-image: var(--lattice), radial-gradient(60% 80% at 50% 50%, transparent 30%, #000); mask-image: var(--lattice), radial-gradient(60% 80% at 50% 50%, transparent 30%, #000); -webkit-mask-size: 56px 56px, 100% 100%; mask-size: 56px 56px, 100% 100%; -webkit-mask-composite: source-in; mask-composite: intersect; }
.verse__text { margin: 0; color: var(--title); font-family: var(--font-quran); font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.3rem); line-height: 2; }
.verse__orn { margin-inline: .25em; color: var(--peach); }
.verse__ref { color: var(--peach-ink); font-size: var(--fs-sm); }

/* Sidebar widgets -------------------------------------------------------- */

.widget {
	position: relative;
	overflow: hidden;
	padding: clamp(20px, 2.2vw, 28px);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	background: var(--surface);
	box-shadow: var(--shadow-1);
	isolation: isolate;
}
.widget__pattern { --pattern-ink: rgba(168, 77, 53, .1); z-index: -1; }
.widget__title {
	display: flex;
	align-items: center;
	gap: .4em;
	margin-block-end: 10px;
	font-family: var(--font-display);
	font-size: var(--fs-xl);
	font-weight: 400;
	line-height: 1.35;
}
.widget__title .icon { width: 20px; height: 20px; color: var(--ornament); }
.widget__title--center { justify-content: center; }
.widget__lead { margin-block-end: 14px; color: var(--muted); font-size: var(--fs-sm); line-height: 1.85; }
.widget__lead--center { text-align: center; }
.widget__note { display: flex; gap: .45em; align-items: center; margin-block-start: 14px; color: var(--muted); font-size: var(--fs-xs); }
.widget__note .icon { width: 14px; height: 14px; }

.widget--give { border-color: rgba(242, 204, 143, .7); background: linear-gradient(180deg, var(--tint-apricot), var(--surface) 85%); color: var(--indigo-900); }
.widget--give .widget__title { font-size: var(--fs-2xl); color: var(--indigo-900); }
.widget--give .widget__title .icon { color: var(--peach-ink); }
.widget--give .widget__lead, .widget--give .widget__note { color: var(--indigo-700); }
.widget__verse { margin: 0 0 16px; padding: 18px 20px; border: 1px solid rgba(242, 204, 143, .6); border-radius: var(--r); background: var(--surface); text-align: center; }
.widget__verse blockquote { margin: 0; color: var(--indigo-900); font-family: var(--font-quran); font-size: 1.35rem; line-height: 2; }
.widget__verse figcaption { color: var(--indigo-500); font-size: var(--fs-xs); }

.ways { display: grid; gap: 10px; }
.way {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) auto;
	align-items: center;
	gap: 14px;
	padding: 12px 14px;
	border: 1px solid var(--line);
	border-radius: var(--r);
	background: var(--surface);
	color: var(--indigo-900);
	transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.way:hover { color: var(--indigo-900); transform: translateY(-2px); box-shadow: var(--shadow-1); }
.way--primary { border-color: transparent; background: var(--peach-ink); color: var(--egg-100); }
.way--primary:hover { color: var(--egg-100); background: var(--peach-ink-hover); }
.way__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: rgba(244, 241, 222, .18); }
.way__icon--dark { background: var(--tint-indigo); color: var(--indigo-700); }
.way__icon .icon { width: 20px; height: 20px; }
.way__text { display: grid; line-height: 1.5; min-width: 0; }
.way__text strong { font-weight: 700; }
.way__text span { font-size: var(--fs-xs); opacity: .85; overflow-wrap: anywhere; }
.way__arrow { width: 18px; height: 18px; opacity: .8; }
.way--details { display: block; padding: 0; }
.way--details summary { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 12px 14px; cursor: pointer; list-style: none; }
.way--details summary::-webkit-details-marker { display: none; }
.way--details[open] .way__arrow { transform: rotate(180deg); }
.way--details .bank__list { padding: 0 14px 14px; }
.way--details:hover { transform: none; }

.bank__list { display: grid; gap: 6px; margin: 0; }
.bank__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 10px; border-radius: 10px; background: var(--surface-2); }
.way--details .bank__row { background: var(--surface-2); color: var(--indigo-900); }
.bank__row dt { color: var(--muted); font-size: var(--fs-xs); }
.bank__row dd { display: flex; align-items: center; gap: 4px; margin: 0; }
.bank__row code { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: .84rem; letter-spacing: .02em; }

.ranked { display: grid; list-style: none; counter-reset: rank; }
.ranked li { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: baseline; gap: 8px; padding-block: 12px; }
.ranked li + li { border-block-start: 1px solid var(--line); }
.ranked__n { color: var(--cta); font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; line-height: 1; }
.ranked a { color: var(--text); font-size: var(--fs-sm); line-height: 1.75; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ranked a:hover { color: var(--cta); }

.phone-list { list-style: none; }
.phone-list li + li { border-block-start: 1px solid var(--line); }
.phone-list a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-block: 11px; color: var(--text); font-size: 1.12rem; font-weight: 700; font-family: "Readex Pro", var(--font-ui); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.phone-list a .icon { width: 18px; height: 18px; color: var(--accent); }
.phone-list a:hover { color: var(--cta); }

.widget--dark { display: grid; gap: 10px; border-color: rgba(224, 122, 95, .25); background: var(--tint-peach); }
.widget--dark .widget__title { margin: 0; }
.widget--dark .widget__title .icon { color: var(--peach-ink); }
.widget--dark .widget__lead { margin-block-end: 6px; }
.widget--dark .btn--apricot { background: var(--peach-ink); color: #fff; }
.widget--dark .btn--apricot:hover { background: var(--peach-ink-hover); color: #fff; }
.widget--sticky { position: sticky; inset-block-start: calc(var(--header-h) + 20px); }

/* Page heads ------------------------------------------------------------- */

.page-head {
	position: relative;
	overflow: hidden;
	padding-block: clamp(40px, 6vw, 80px) clamp(28px, 4vw, 52px);
	background: radial-gradient(60% 120% at 100% 0%, var(--tint-apricot), transparent 70%), radial-gradient(50% 100% at 0% 100%, var(--tint-teal), transparent 70%), var(--surface);
	border-block-end: 1px solid var(--line);
	isolation: isolate;
}
.page-head::after { content: ""; position: absolute; inset-block-start: 50%; inset-inline-end: clamp(-120px, -6vw, -40px); z-index: -1; width: clamp(220px, 28vw, 380px); aspect-ratio: 1; translate: 0 -50%; background: var(--apricot); opacity: .35; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23000' stroke-width='.5'%3E%3Ccircle cx='50' cy='50' r='49'/%3E%3Ccircle cx='50' cy='50' r='37'/%3E%3Crect x='23' y='23' width='54' height='54'/%3E%3Crect x='23' y='23' width='54' height='54' transform='rotate(45 50 50)'/%3E%3Crect x='32' y='32' width='36' height='36' transform='rotate(22.5 50 50)'/%3E%3Crect x='32' y='32' width='36' height='36' transform='rotate(67.5 50 50)'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23000' stroke-width='.5'%3E%3Ccircle cx='50' cy='50' r='49'/%3E%3Ccircle cx='50' cy='50' r='37'/%3E%3Crect x='23' y='23' width='54' height='54'/%3E%3Crect x='23' y='23' width='54' height='54' transform='rotate(45 50 50)'/%3E%3Crect x='32' y='32' width='36' height='36' transform='rotate(22.5 50 50)'/%3E%3Crect x='32' y='32' width='36' height='36' transform='rotate(67.5 50 50)'/%3E%3C/svg%3E") center / contain no-repeat; animation: spin-slow 120s linear infinite; pointer-events: none; }
@keyframes spin-slow { to { rotate: 360deg; } }
.page-head__pattern { z-index: -1; -webkit-mask-image: var(--lattice), linear-gradient(90deg, #000, transparent 75%); mask-image: var(--lattice), linear-gradient(90deg, #000, transparent 75%); -webkit-mask-size: 56px 56px, 100% 100%; mask-size: 56px 56px, 100% 100%; -webkit-mask-composite: source-in; mask-composite: intersect; -webkit-mask-repeat: repeat, no-repeat; mask-repeat: repeat, no-repeat; }
.dir-rtl .page-head__pattern { -webkit-mask-image: var(--lattice), linear-gradient(270deg, #000, transparent 75%); mask-image: var(--lattice), linear-gradient(270deg, #000, transparent 75%); }
.page-head__grid { display: grid; gap: clamp(24px, 4vw, 56px); align-items: end; }
.page-head__grid.has-aside { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.page-head__text { display: grid; gap: 12px; justify-items: start; min-width: 0; }
.page-head__title { font-family: var(--font-display); font-size: var(--fs-4xl); font-weight: 400; line-height: 1.3; }
.page-head__lead { max-width: 64ch; color: var(--text); font-size: var(--fs-md); line-height: 1.9; }
.page-head__lead p + p { margin-block-start: .6em; }
.page-head .search-field { width: min(100%, 640px); margin-block-start: 8px; }
.page-head--center .page-head__text { justify-items: center; text-align: center; }
.page-head--tinted { border: 0; padding-block-end: 0; }
@media (max-width: 860px) { .page-head__grid.has-aside { grid-template-columns: minmax(0, 1fr); } }

.crumbs ol { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; color: var(--muted); font-size: var(--fs-xs); }
.crumbs li { display: inline-flex; align-items: center; gap: 4px; }
.crumbs li + li::before { content: "/"; margin-inline: 4px; opacity: .6; }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: var(--cta); }

.search-field {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 58px;
	padding-inline: 20px 6px;
	border: 1px solid var(--line-strong);
	border-radius: 999px;
	background: var(--surface);
	box-shadow: var(--shadow-1);
	transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.search-field:focus-within { border-color: var(--text); box-shadow: 0 0 0 4px rgba(61, 64, 91, .1); }
.search-field > .icon { color: var(--muted); }
.search-field input { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; font-size: 1.05rem; outline: none; }
.search-field input::placeholder { color: var(--muted); opacity: .85; }
.search-field__go { display: grid; place-items: center; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--peach-ink); color: #fff; flex: none; transition: background-color var(--t-fast); }
.search-field__go:hover { background: var(--peach-ink-hover); }
.search-field__go .icon { width: 18px; height: 18px; }

.tabs-bar { margin-block-start: clamp(22px, 3vw, 34px); margin-block-end: calc(-1 * clamp(28px, 4vw, 48px) - 1px); border-block-end: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.tabs-bar::-webkit-scrollbar { display: none; }
.tabs-bar ul { display: flex; gap: clamp(18px, 3vw, 40px); list-style: none; width: max-content; }
.tabs-bar__tab {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding-block: 12px 14px;
	color: var(--muted);
	font-size: 1.04rem;
	white-space: nowrap;
}
.tabs-bar__tab::after { content: ""; position: absolute; inset-inline: 0; inset-block-end: -1px; height: 2px; background: var(--peach); transform: scaleX(0); transition: transform var(--t) var(--ease); }
.tabs-bar__tab:hover { color: var(--title); }
.tabs-bar__tab.is-current { color: var(--title); font-weight: 700; }
.tabs-bar__tab.is-current::after { transform: scaleX(1); }
.tabs-bar__count { display: inline-grid; place-items: center; min-width: 26px; height: 22px; padding-inline: 6px; border-radius: 999px; color: var(--muted); font-size: .74rem; font-weight: 400; font-family: "Readex Pro", var(--font-ui); }
.tabs-bar__tab.is-current .tabs-bar__count { background: var(--tint-peach); color: var(--peach-ink); font-weight: 700; }

.stat-card {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 6px 20px;
	overflow: hidden;
	padding: clamp(22px, 3vw, 32px);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	background: linear-gradient(160deg, var(--tint-apricot), var(--surface) 70%);
	color: var(--title);
	box-shadow: var(--shadow-1);
	isolation: isolate;
	transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.stat-card:hover { color: var(--title); transform: translateY(-3px); box-shadow: var(--shadow-2); }
.stat-card__pattern { --pattern-ink: var(--pattern-light); z-index: -1; }
.stat-card__text { display: grid; gap: 2px; }
.stat-card__title { font-family: var(--font-display); font-size: var(--fs-xl); line-height: 1.4; }
.stat-card__label { color: var(--muted); font-size: var(--fs-xs); }
.stat-card__num { color: var(--peach-ink); font-family: var(--font-display); font-size: clamp(3rem, 2.4rem + 2.4vw, 4.4rem); font-weight: 700; line-height: 1; }
.stat-card__note { grid-column: 1 / -1; display: flex; gap: .6em; align-items: baseline; margin-block-start: 12px; color: var(--muted); font-size: var(--fs-xs); line-height: 1.8; }

/* Library listing -------------------------------------------------------- */

.library-body { padding-block-start: clamp(32px, 4vw, 52px); }
.listing { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(28px, 3.4vw, 48px); align-items: start; }
.listing__main { min-width: 0; }
.listing__side { display: grid; gap: 20px; position: sticky; inset-block-start: calc(var(--header-h) + 20px); }
.listing__count { margin-block-end: 18px; color: var(--muted); font-size: var(--fs-sm); }
.listing .grid--3 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
@media (max-width: 980px) {
	.listing { grid-template-columns: minmax(0, 1fr); }
	.listing__side { position: static; order: 2; }
	.listing__side .widget--sticky { display: none; }
}

.sections__title { margin-block-end: 10px; font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 400; }
.sections ul { display: grid; gap: 2px; list-style: none; }
.sections__link {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 46px;
	padding: .4em 1em;
	border-radius: var(--r);
	color: var(--text);
	transition: background-color var(--t-fast), color var(--t-fast);
}
.sections__link::before { content: ""; width: 7px; height: 7px; background: var(--peach); transform: rotate(45deg); flex: none; }
.sections__link > span:first-child { flex: 1; min-width: 0; line-height: 1.5; }
.sections__link:hover { background: var(--surface); color: var(--title); }
.sections__link.is-current { background: var(--tint-peach); color: var(--peach-ink); font-weight: 700; }
.sections__link.is-current::before { background: var(--peach); }
.sections__count { color: var(--muted); font-size: .76rem; font-family: "Readex Pro", var(--font-ui); }
.sections__link.is-current .sections__count { color: var(--peach-ink); }
.sections__more { margin-block-start: 6px; }
.sections__toggle { display: flex; align-items: center; gap: .5em; min-height: 44px; padding-inline: 1em; border-radius: var(--r); color: var(--accent); font-weight: 700; cursor: pointer; list-style: none; }
.sections__toggle::-webkit-details-marker { display: none; }
.sections__toggle:hover { background: var(--surface); }

.pager { display: grid; justify-items: center; gap: 18px; margin-block-start: clamp(32px, 4vw, 52px); }
.pager .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.pager .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding-inline: 10px;
	border: 1px solid var(--line);
	border-radius: 999px;
	color: var(--text);
	font-family: "Readex Pro", var(--font-ui);
	font-size: .92rem;
}
.pager .page-numbers:hover { border-color: var(--text); }
.pager .page-numbers.current { border-color: var(--peach-ink); background: var(--peach-ink); color: #fff; }
.pager .page-numbers.dots { border: 0; }
.pager .page-numbers .icon { width: 16px; height: 16px; }
.pager__more { min-width: 160px; }
.pager--inline { margin-block: 2em 0; }

.empty { padding: 40px; border: 1px dashed var(--line-strong); border-radius: var(--r-lg); color: var(--muted); text-align: center; }

/* Single post ------------------------------------------------------------ */

.entry__head {
	position: relative;
	overflow: hidden;
	padding-block: clamp(36px, 5.5vw, 72px) clamp(28px, 4vw, 52px);
	text-align: center;
	isolation: isolate;
}
.entry__pattern { z-index: -1; -webkit-mask-image: var(--lattice), radial-gradient(70% 90% at 50% 0%, #000, transparent 80%); mask-image: var(--lattice), radial-gradient(70% 90% at 50% 0%, #000, transparent 80%); -webkit-mask-size: 56px 56px, 100% 100%; mask-size: 56px 56px, 100% 100%; -webkit-mask-repeat: repeat, no-repeat; mask-repeat: repeat, no-repeat; -webkit-mask-composite: source-in; mask-composite: intersect; }
.entry__head .wrap { display: grid; justify-items: center; gap: 16px; }
.entry__head .crumbs ol { justify-content: center; }
.entry__cats { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; }
.entry__title { max-width: 24ch; font-family: var(--font-display); font-size: var(--fs-3xl); font-weight: 400; line-height: 1.4; }
.entry--video .entry__title { font-size: var(--fs-2xl); }
.entry__lead { max-width: 60ch; color: var(--text); font-family: var(--font-read); font-size: var(--fs-lg); line-height: 1.9; }
.entry__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; color: var(--muted); font-size: var(--fs-sm); }
.entry__meta span { display: inline-flex; align-items: center; gap: .4em; }
.entry__meta .icon { width: 16px; height: 16px; }

.entry__tools { position: sticky; inset-block-start: var(--header-h); z-index: 30; border-block: 1px solid var(--line); background: color-mix(in srgb, var(--bg) 94%, transparent); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.admin-bar .entry__tools { inset-block-start: calc(var(--header-h) + 32px); }
.toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; min-height: 64px; padding-block: 10px; }
.toolbar__group { display: flex; align-items: center; gap: 6px; }
.toolbar__label { margin-inline-end: 6px; color: var(--muted); font-size: var(--fs-sm); }
.tool {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .45em;
	min-width: 44px;
	height: 44px;
	padding-inline: .9em;
	border: 1px solid var(--line);
	border-radius: 14px;
	background: transparent;
	color: var(--text);
	font-size: var(--fs-sm);
	transition: background-color var(--t-fast), border-color var(--t-fast), color var(--t-fast);
}
.tool--square { padding: 0; width: 44px; }
.tool:hover { border-color: var(--line-strong); background: var(--surface); color: var(--title); }
.tool .icon { width: 18px; height: 18px; }
.tool__a { font-family: var(--font-display); font-size: 1.15rem; font-weight: 700; line-height: 1; }
.tool[aria-pressed="true"], .tool[data-on="true"] { color: var(--cta); border-color: rgba(168, 77, 53, .4); }
.tool.is-done { color: var(--teal-ink); }
.tool .when-on { display: none; }
.tool[data-on="true"] .when-on { display: inline-block; }
.tool[data-on="true"] .when-off { display: none; }
.tool--accent { color: var(--cta); }
.toolbar__hint { flex-basis: 100%; color: var(--muted); font-size: var(--fs-xs); }
@media (max-width: 760px) {
	.tool__label, .toolbar__label { display: none; }
	.toolbar { min-height: 56px; padding-block: 6px; }
	.tool { padding-inline: .6em; height: 40px; min-width: 40px; }
	.tool--square { width: 40px; }
	.toolbar [data-print], .toolbar [data-save-pdf], .toolbar .tool--accent { display: none; }
}
.share-menu { position: relative; }
.share-pop {
	position: absolute;
	inset-block-start: calc(100% + 8px);
	inset-inline-end: 0;
	z-index: 40;
	width: 240px;
	padding: 8px;
	border: 1px solid var(--line);
	border-radius: var(--r);
	background: var(--surface);
	box-shadow: var(--shadow-2);
	animation: pop-in var(--t) var(--ease);
}
@keyframes pop-in { from { opacity: 0; transform: translateY(-6px) scale(.98); } }
.share-pop__title { padding: 4px 10px 6px; color: var(--muted); font-size: var(--fs-xs); }
.share-pop ul { list-style: none; }
.share-pop__item { display: flex; align-items: center; gap: 10px; width: 100%; padding: .5em .8em; border: 0; border-radius: 10px; background: transparent; color: var(--text); font-size: .95rem; text-align: start; }
.share-pop__item:hover { background: var(--surface-2); color: var(--title); }
.share-pop__item .icon { color: var(--cta); }

.entry__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
	padding-block: clamp(32px, 4vw, 56px) var(--section);
}
.entry__main { min-width: 0; max-width: 780px; width: 100%; justify-self: center; }
.entry--video .entry__main { max-width: none; }
.entry__aside { display: grid; gap: 22px; position: sticky; inset-block-start: calc(var(--header-h) + 88px); max-height: calc(100vh - var(--header-h) - 110px); overflow-y: auto; scrollbar-width: thin; padding-block-end: 8px; }
.entry__stage { margin-block-end: clamp(24px, 3vw, 36px); }
.entry__footer { display: grid; gap: 28px; margin-block-start: clamp(36px, 5vw, 56px); }
@media (max-width: 1080px) {
	.entry__grid { grid-template-columns: minmax(0, 1fr); }
	.entry__aside { position: static; max-height: none; overflow: visible; }
	.toc { display: none !important; }
}

.toc { padding-inline-start: 18px; border-inline-start: 1px solid var(--line-strong); }
.toc__title { margin-block-end: 12px; font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 400; }
.toc__list { display: grid; gap: 4px; list-style: none; }
.toc__list a { position: relative; display: block; padding-block: 6px; color: var(--muted); font-size: var(--fs-sm); line-height: 1.6; }
.toc__list a:hover { color: var(--title); }
.toc__list a.is-active { color: var(--cta); font-weight: 700; }
.toc__list a.is-active::before { content: ""; position: absolute; inset-inline-start: -19px; inset-block: 8px; width: 2px; background: var(--peach); }
.toc__list .toc__sub a { padding-inline-start: 14px; font-size: var(--fs-xs); }

.ask { position: relative; display: grid; gap: 10px; justify-items: start; overflow: hidden; padding: 24px; border: 1px solid rgba(129, 178, 154, .35); border-radius: var(--r-xl); background: var(--tint-teal); color: var(--text); isolation: isolate; }
.ask__pattern { --pattern-ink: rgba(58, 111, 90, .08); z-index: -1; }
.ask__title { color: var(--title); font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 400; }
.ask__text { color: var(--text); font-size: var(--fs-sm); line-height: 1.85; }

.tree-box { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); }
.tree-box__toggle { display: flex; align-items: center; gap: .6em; min-height: 54px; padding-inline: 18px; cursor: pointer; font-weight: 700; list-style: none; }
.tree-box__toggle::-webkit-details-marker { display: none; }
.tree-box__toggle > span { flex: 1; }
.tree-box__chev { transition: transform var(--t) var(--ease); }
.tree-box[open] .tree-box__chev { transform: rotate(180deg); }
.tree-box .tree { border: 0; border-block-start: 1px solid var(--line); border-radius: 0; background: transparent; }

.tree { padding: 14px 10px 10px; }
.tree__head { display: grid; gap: 10px; padding-inline: 6px; margin-block-end: 8px; }
.tree__title { display: none; }
.tree__filter { display: flex; align-items: center; gap: 8px; height: 40px; padding-inline: 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--bg); color: var(--muted); }
.tree__filter:focus-within { border-color: var(--text); }
.tree__filter .icon { width: 16px; height: 16px; }
.tree__filter input { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; font-size: .92rem; outline: none; }
.tree__list { list-style: none; }
.tree__list .tree__list { margin-inline-start: 12px; padding-inline-start: 8px; border-inline-start: 1px dashed var(--line-strong); }
.tree__row { display: flex; align-items: center; gap: 2px; }
.tree__link { display: flex; flex: 1; align-items: center; gap: 8px; min-width: 0; min-height: 38px; padding: .3em .7em; border-radius: 10px; color: var(--text); font-size: .93rem; line-height: 1.55; }
.tree__link:hover { background: var(--surface-2); color: var(--title); }
.tree__name { flex: 1; min-width: 0; }
.tree__count { flex: none; min-width: 24px; color: var(--muted); font-size: .72rem; text-align: center; font-family: "Readex Pro", var(--font-ui); }
.tree__toggle { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border: 0; border-radius: 8px; background: transparent; color: var(--muted); }
.tree__toggle:hover { background: var(--surface-2); }
.tree__toggle .icon { width: 16px; height: 16px; transition: transform var(--t) var(--ease); }
.tree__toggle[aria-expanded="true"] .icon { transform: rotate(180deg); }
.tree__group { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--t) var(--ease); }
.tree__group > .tree__list { min-height: 0; overflow: hidden; }
.tree__group.is-open { grid-template-rows: 1fr; }
.tree__group:not(.is-open) > .tree__list { visibility: hidden; transition: visibility 0s linear var(--t); }
.tree__item.is-ancestor > .tree__row .tree__link { font-weight: 700; }
.tree__item.is-active > .tree__row .tree__link::before { content: ""; width: 6px; height: 6px; background: var(--peach); transform: rotate(45deg); flex: none; }
.tree__item.is-current > .tree__row .tree__link { background: var(--tint-peach); color: var(--peach-ink); font-weight: 700; }
.tree__item.is-current > .tree__row .tree__count { color: var(--peach-ink); }
.tree__empty { padding: 12px; color: var(--muted); font-size: var(--fs-sm); }
.tree.is-filtering .tree__group { grid-template-rows: 1fr; }
.tree.is-filtering .tree__group > .tree__list { visibility: visible; }
.tree__item.is-hidden { display: none; }
.tree mark { background: var(--apricot); color: inherit; border-radius: 3px; }

.give-card {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	padding: clamp(20px, 3vw, 30px);
	border: 1px solid rgba(242, 204, 143, .8);
	border-radius: var(--r-xl);
	background: linear-gradient(120deg, var(--tint-apricot), var(--surface));
	color: var(--indigo-900);
}
.give-card__text { flex: 1 1 320px; display: grid; gap: 4px; }
.give-card__title { color: var(--indigo-900); font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 400; }
.give-card p { color: var(--indigo-700); font-size: var(--fs-sm); }
.give-card .btn--apricot { background: var(--peach-ink); color: var(--egg-100); }
.give-card .btn--apricot:hover { background: var(--peach-ink-hover); color: var(--egg-100); }

.tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.tags .chip--line::before { display: none; }
.share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.share__label { color: var(--muted); font-size: var(--fs-sm); margin-inline-end: 4px; }

.adjacent { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.adjacent__link { display: grid; gap: 4px; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); color: var(--title); transition: border-color var(--t-fast), transform var(--t) var(--ease), box-shadow var(--t) var(--ease); }
.adjacent__link:hover { border-color: var(--line-strong); color: var(--title); transform: translateY(-2px); box-shadow: var(--shadow-1); }
.adjacent__link--next { grid-column: 2; text-align: end; }
.adjacent__label { display: inline-flex; align-items: center; gap: .4em; color: var(--cta); font-size: var(--fs-xs); font-weight: 700; }
.adjacent__link--next .adjacent__label { justify-content: flex-end; }
.adjacent__label .icon { width: 14px; height: 14px; }
.adjacent__title { font-family: var(--font-display); font-size: 1.15rem; line-height: 1.6; }
@media (max-width: 560px) { .adjacent { grid-template-columns: minmax(0, 1fr); } .adjacent__link--next { grid-column: auto; } }

/* Player ----------------------------------------------------------------- */

.player { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-radius: var(--r-xl); background: var(--indigo-900); box-shadow: var(--shadow-2); }
.player > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.player:hover > img { transform: scale(1.02); }
.player__button { position: absolute; inset: 0; display: grid; place-items: center; width: 100%; border: 0; background: radial-gradient(circle, rgba(43, 45, 66, .05), rgba(43, 45, 66, .35)); color: var(--indigo-900); }
.player__icon { display: grid; place-items: center; width: clamp(64px, 8vw, 88px); aspect-ratio: 1; border-radius: 50%; background: #fff; color: var(--peach-ink); box-shadow: 0 0 0 12px rgba(255, 255, 255, .25), 0 20px 40px -10px rgba(0, 0, 0, .55); transition: transform var(--t) var(--ease); }
.player__icon .icon { width: 36%; height: 36%; margin-inline-start: 6%; }
.dir-rtl .player__icon .icon { margin-inline-start: 0; margin-inline-end: 6%; }
.player__button:hover .player__icon { transform: scale(1.08); }
.player__fallback { position: absolute; inset-block-end: 14px; inset-inline-end: 14px; display: inline-flex; align-items: center; gap: .4em; padding: .3em .9em; border-radius: 999px; background: rgba(43, 45, 66, .75); color: var(--egg-100); font-size: var(--fs-xs); }
.player__fallback:hover { color: var(--egg-100); background: var(--peach-ink); }
.player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.player.is-playing > img, .player.is-playing .player__button, .player.is-playing .player__fallback { display: none; }

/* Prose ------------------------------------------------------------------ */

.prose {
	--prose-size: 1.4rem;
	font-family: var(--font-read);
	font-size: calc(var(--prose-size) * var(--reading-scale, 1));
	line-height: 2.05;
	color: var(--text);
	overflow-wrap: break-word;
	transition: font-size var(--t) var(--ease);
}
.dir-ltr .prose { --prose-size: 1.18rem; line-height: 1.8; }
.prose > * + * { margin-block-start: 1em; }
.prose p { margin: 0; }
.prose h2, .prose h3, .prose h4 { margin-block: 1.6em .5em; font-family: var(--font-display); font-weight: 400; line-height: 1.45; color: var(--title); scroll-margin-top: calc(var(--header-h) + 90px); }
.prose h2 { display: flex; align-items: center; gap: .4em; font-size: 1.55em; }
.prose h2::before {
	content: "";
	width: .5em;
	height: .5em;
	flex: none;
	background: var(--ornament);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='5' y='5' width='14' height='14'/%3E%3Crect x='5' y='5' width='14' height='14' transform='rotate(45 12 12)'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='5' y='5' width='14' height='14'/%3E%3Crect x='5' y='5' width='14' height='14' transform='rotate(45 12 12)'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.prose h3 { font-size: 1.28em; }
.prose h4 { font-size: 1.1em; }
.prose a { color: var(--accent); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--accent) 40%, transparent); text-decoration-thickness: 1px; text-underline-offset: .25em; }
.prose a:hover { text-decoration-color: currentColor; }
.prose strong, .prose b { font-weight: 700; }
.prose .basmala { margin-block-end: 1.4em; color: var(--teal-ink); font-size: 1.25em; text-align: center; }
.prose .basmala::before { content: ""; display: block; width: 26px; height: 26px; margin: 0 auto .4em; background: var(--apricot); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Crect x='5' y='5' width='14' height='14'/%3E%3Crect x='5' y='5' width='14' height='14' transform='rotate(45 12 12)'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Crect x='5' y='5' width='14' height='14'/%3E%3Crect x='5' y='5' width='14' height='14' transform='rotate(45 12 12)'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat; }
:root[data-theme="dark"] .prose .basmala { color: var(--teal); }
.prose .ayah { color: var(--teal-ink); font-family: var(--font-quran); font-size: 1.08em; line-height: 2.1; }
:root[data-theme="dark"] .prose .ayah { color: var(--teal); }
.prose img { height: auto; margin-inline: auto; border-radius: var(--r-sm); box-shadow: var(--shadow-1); background: var(--surface); }
.prose .aligncenter, .prose .alignnone { display: block; margin-inline: auto; }
.prose .alignright { float: right; margin: .3em 0 1em 1.4em; max-width: 50%; }
.prose .alignleft { float: left; margin: .3em 1.4em 1em 0; max-width: 50%; }
.prose a:has(> img) { display: block; cursor: zoom-in; }
.prose figure, .prose .wp-caption { max-width: 100% !important; margin-inline: auto; }
.prose figcaption, .prose .wp-caption-text { margin-block-start: .6em; color: var(--muted); font-family: var(--font-ui); font-size: .7em; text-align: center; }
.prose blockquote {
	position: relative;
	overflow: hidden;
	margin-inline: 0;
	padding: 1.3em 1.5em;
	border: 1px solid var(--line);
	border-inline-start: 4px solid var(--peach);
	border-radius: var(--r-lg);
	background: var(--bg-2);
	color: var(--title);
	font-size: 1.08em;
	line-height: 1.95;
	isolation: isolate;
}
.prose blockquote::after {
	content: "";
	position: absolute;
	inset-block-end: -40px;
	inset-inline-end: -30px;
	z-index: -1;
	width: 150px;
	height: 150px;
	background: rgba(224, 122, 95, .16);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='.5'%3E%3Crect x='5' y='5' width='14' height='14'/%3E%3Crect x='5' y='5' width='14' height='14' transform='rotate(45 12 12)'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='.5'%3E%3Crect x='5' y='5' width='14' height='14'/%3E%3Crect x='5' y='5' width='14' height='14' transform='rotate(45 12 12)'/%3E%3C/svg%3E") center / contain no-repeat;
}
.prose blockquote a { color: var(--accent); }
.prose blockquote .ayah { color: var(--teal-ink); }
.prose blockquote p + p { margin-block-start: .6em; }
.prose blockquote cite { display: block; margin-block-start: .6em; color: var(--muted); font-family: var(--font-ui); font-size: .62em; font-style: normal; }
.prose ul { padding-inline-start: 1.3em; list-style: none; }
.prose ul > li { position: relative; }
.prose ul > li::before { content: ""; position: absolute; inset-inline-start: -1.05em; inset-block-start: .85em; width: .3em; height: .3em; background: var(--peach); transform: rotate(45deg); }
.prose ol { padding: 0; list-style: none; counter-reset: item; }
.prose ol > li { position: relative; padding-block: .55em; padding-inline-start: 2.4em; counter-increment: item; }
.prose ol > li + li { border-block-start: 1px solid var(--line); }
.prose ol > li::before { content: counter(item); position: absolute; inset-inline-start: 0; inset-block-start: .5em; color: var(--cta); font-family: var(--font-display); font-size: 1.25em; font-weight: 700; line-height: 1.6; }
.prose li + li { margin-block-start: .35em; }
.prose ol > li + li { margin-block-start: 0; }
.prose hr { width: 80px; margin: 2.2em auto; border: 0; height: 1px; background: var(--peach); opacity: .7; }
.prose table { width: 100%; border-collapse: collapse; font-family: var(--font-ui); font-size: .72em; display: block; overflow-x: auto; }
.prose th, .prose td { padding: .55em .8em; border: 1px solid var(--line); text-align: start; }
.prose th { background: var(--surface-2); }
.prose iframe { max-width: 100%; border: 0; }
.prose .embed--video { position: relative; aspect-ratio: 16 / 9; }
.prose .embed--video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: var(--r); }
.prose::after { content: ""; display: table; clear: both; }
.prose--description { color: var(--text); font-family: var(--font-ui); font-size: calc(1.05rem * var(--reading-scale, 1)); white-space: pre-line; line-height: 1.95; }
.prose--intro { font-size: var(--fs-md); }
.prose .figure-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 24px; margin-block: 2em; }
.prose .figure-grid figure { margin: 0; text-align: center; }
.prose .figure-grid img { width: 100%; max-width: 220px; aspect-ratio: 1; object-fit: cover; border-radius: 50%; box-shadow: 0 0 0 4px var(--surface), 0 0 0 5px var(--apricot), var(--shadow-1); }
.prose .figure-grid figcaption { margin-block-start: 1em; color: var(--title); font-size: .8em; font-weight: 700; }

/* Editors' inline colours stay readable in dark mode. */
.prose [style*="color: #000000" i], .prose [style*="color:#000000" i] { color: inherit !important; }
.prose [style*="background-color"] { color: #2B2D42 !important; }
/* The old editor's pure red and blue are mapped onto the palette's inks. */
.prose [style*="color: #ff0000" i], .prose [style*="color: #e14d43" i], .prose [style*="color: #d83131" i], .prose [style*="color: #ed1c24" i], .prose [style*="color:#ff0000" i] { color: var(--peach-ink) !important; }
.prose [style*="color: #0000ff" i], .prose [style*="color: #3366ff" i], .prose [style*="color: #000080" i], .prose [style*="color:#0000ff" i] { color: var(--teal-ink) !important; }
.prose [style*="color: #008000" i] { color: var(--teal-ink) !important; }
:root[data-theme="dark"] .prose [style*="color: #0000ff" i], :root[data-theme="dark"] .prose [style*="color: #3366ff" i], :root[data-theme="dark"] .prose [style*="color: #000080" i] { color: #9fc4ff !important; }
:root[data-theme="dark"] .prose [style*="color: #ff0000" i], :root[data-theme="dark"] .prose [style*="color: #e14d43" i], :root[data-theme="dark"] .prose [style*="color: #d83131" i], :root[data-theme="dark"] .prose [style*="color: #ed1c24" i] { color: #ff9b85 !important; }
:root[data-theme="dark"] .prose [style*="color: #993300" i], :root[data-theme="dark"] .prose [style*="color: #808000" i], :root[data-theme="dark"] .prose [style*="color: #993366" i] { color: #F2CC8F !important; }
:root[data-theme="dark"] .prose [style*="color: #008000" i] { color: #9BCBB3 !important; }

/* About page ------------------------------------------------------------- */

.about-hero { position: relative; overflow: hidden; border-block-end: 1px solid var(--line); background: radial-gradient(55% 90% at 85% 10%, var(--tint-apricot), transparent 70%), radial-gradient(45% 70% at 10% 100%, var(--tint-teal), transparent 70%), var(--surface); color: var(--text); isolation: isolate; }
.about-hero__pattern { z-index: -1; -webkit-mask-image: var(--lattice), linear-gradient(180deg, #000, transparent 70%); mask-image: var(--lattice), linear-gradient(180deg, #000, transparent 70%); -webkit-mask-size: 56px 56px, 100% 100%; mask-size: 56px 56px, 100% 100%; -webkit-mask-composite: source-in; mask-composite: intersect; }
.about-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; padding-block: clamp(40px, 6vw, 72px) 0; }
.about-hero__text { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; justify-items: start; padding-block-end: clamp(40px, 6vw, 72px); }
.about-hero__title { color: var(--title); font-family: var(--font-display); font-size: var(--fs-4xl); font-weight: 400; line-height: 1.25; }
.about-hero__callig { width: 420px; max-width: 100%; color: var(--title); --callig-accent: var(--peach); }
.about-hero__lead { max-width: 52ch; color: var(--text); font-size: var(--fs-md); line-height: 1.95; }
.pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; width: 100%; margin-block-start: 12px; list-style: none; }
.pillar { padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); box-shadow: var(--shadow-1); transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease); }
.pillar:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); }
.pillar__title { color: var(--peach-ink); font-family: var(--font-display); font-size: var(--fs-lg); line-height: 1.5; }
.pillar__title:hover { color: var(--peach-ink-hover); }
.pillar__text { margin-block-start: 6px; color: var(--muted); font-size: var(--fs-xs); line-height: 1.8; }
.about-hero__visual { align-self: end; }
.arch {
	position: relative;
	overflow: hidden;
	aspect-ratio: 5 / 6.2;
	max-height: 720px;
	margin-inline: auto;
	border-radius: 999px 999px 0 0;
	background: radial-gradient(70% 55% at 50% 62%, #FFFFFF 0%, rgba(255, 255, 255, 0) 70%), radial-gradient(90% 90% at 50% 40%, #D2E0E5 0%, #E3ECEF 45%, #F2F6F7 100%);
	outline: 1px solid rgba(224, 122, 95, .4);
	outline-offset: 16px;
	box-shadow: var(--shadow-3);
}
.arch__img { position: absolute; inset-inline: -6%; inset-block-end: 0; width: 112%; max-width: none; height: auto; filter: drop-shadow(0 14px 22px rgba(30, 50, 60, .16)); }
@media (max-width: 860px) {
	.about-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.about-hero__visual { order: -1; width: min(80%, 380px); justify-self: center; }
	.pillars { grid-template-columns: minmax(0, 1fr); }
}

/* Schedule --------------------------------------------------------------- */

.schedule__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 80px); align-items: center; }
.schedule__text { display: grid; gap: 14px; justify-items: start; }
.schedule__lead { max-width: 46ch; color: var(--text); font-size: var(--fs-md); }
.schedule__board { display: grid; gap: 18px; }
.week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; list-style: none; }
.week__day {
	display: grid;
	justify-items: center;
	align-content: center;
	gap: 6px;
	min-height: 108px;
	padding: 10px 4px;
	border: 1px dashed var(--line-strong);
	border-radius: var(--r-lg);
	color: var(--muted);
	text-align: center;
}
.week__name { font-family: var(--font-display); font-size: 1.12rem; line-height: 1.3; }
.week__state { font-size: .74rem; }
.week__day.is-on { border: 1px solid rgba(129, 178, 154, .45); background: var(--tint-teal); color: var(--teal-ink); }
.week__day.is-on .week__name { color: var(--title); }
.week__day.is-today { box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--peach); }
.times { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 20px 26px; border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--bg-2); }
.times__item { display: grid; gap: 2px; }
.times__value { color: var(--title); font-family: var(--font-display); font-size: clamp(2rem, 1.6rem + 1.4vw, 2.7rem); font-weight: 700; line-height: 1.2; }
.times__item--local .times__value { color: var(--cta); }
.times__label { color: var(--muted); font-size: var(--fs-xs); }
@media (max-width: 860px) { .schedule__grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) {
	.week { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.week__day { min-height: 84px; }
	.times { grid-template-columns: minmax(0, 1fr); }
}

/* Support ---------------------------------------------------------------- */

.support .display-title { margin-block-start: 8px; }
.support__lead { max-width: 60ch; margin-block-start: 10px; color: var(--text); font-size: var(--fs-md); }
.support__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-block-start: clamp(28px, 3vw, 40px); }
@media (max-width: 860px) { .support__grid { grid-template-columns: minmax(0, 1fr); } }
.method-card { display: grid; gap: 10px; justify-items: start; align-content: start; padding: clamp(22px, 3vw, 34px); border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--shadow-1); transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease); }
.method-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); }
.method-card__icon { display: grid; place-items: center; width: 56px; height: 56px; margin-block-end: 18px; border-radius: 16px; background: var(--tint-indigo); color: var(--indigo-700); }
.method-card__title { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 400; }
.method-card__text { min-height: 3.6em; color: var(--muted); font-size: var(--fs-sm); }
.method-card .btn { margin-block-start: 12px; }
.method-card--dark { border-color: rgba(242, 204, 143, .8); background: linear-gradient(170deg, var(--tint-apricot), var(--surface) 80%); }
.method-card--dark .method-card__icon { background: var(--apricot); color: var(--indigo-900); }
.method-card--dark .btn--apricot { background: var(--peach-ink); color: #fff; }
.method-card--dark .btn--apricot:hover { background: var(--peach-ink-hover); color: #fff; }
.method-card__details { width: 100%; }
.method-card__details summary { list-style: none; margin-block-start: 12px; width: fit-content; }
.method-card__details summary::-webkit-details-marker { display: none; }
.method-card__details .bank__list { margin-block-start: 14px; }

/* Contact ---------------------------------------------------------------- */

.contact-body { padding-block-start: clamp(28px, 4vw, 48px); }
.contact__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.contact__form { padding: clamp(22px, 3.5vw, 40px); border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--bg); box-shadow: var(--shadow-2); }
.contact__aside { display: grid; gap: 16px; justify-items: start; }
.contact__title { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 400; }
.phone-cards { display: grid; gap: 12px; width: 100%; list-style: none; }
.phone-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 20px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--bg); color: var(--title); transition: border-color var(--t-fast), transform var(--t) var(--ease); }
.phone-card:hover { color: var(--title); border-color: var(--line-strong); transform: translateY(-2px); }
.phone-card__number { font-family: "Readex Pro", var(--font-ui); font-size: 1.4rem; font-weight: 600; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.phone-card__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--tint-peach); color: var(--peach-ink); }
.phone-card__icon .icon { width: 18px; height: 18px; }
.contact__note { display: flex; gap: .5em; color: var(--muted); font-size: var(--fs-sm); }
.contact__note .icon { margin-block-start: .3em; width: 16px; height: 16px; }
@media (max-width: 860px) { .contact__grid { grid-template-columns: minmax(0, 1fr); } }

/* Forms (Forminator outside the donation panel) */
.prose--form { font-family: var(--font-ui); font-size: var(--fs-base); line-height: 1.8; }
.prose .forminator-ui.forminator-custom-form { margin: 1.4em 0 0 !important; padding: 0 !important; font-family: var(--font-ui) !important; line-height: 1.6; }
.prose .forminator-ui .forminator-row { margin-block-end: 18px !important; }
.prose .forminator-ui .forminator-row:last-child { margin-block-end: 0 !important; }
.prose .forminator-ui input[type="text"], .prose .forminator-ui input[type="email"], .prose .forminator-ui input[type="number"], .prose .forminator-ui input[type="tel"], .prose .forminator-ui textarea, .prose .forminator-ui select {
	min-height: 54px !important;
	padding: 12px 16px !important;
	border: 1px solid var(--line-strong) !important;
	border-radius: var(--r) !important;
	background: var(--surface) !important;
	color: var(--text) !important;
	font-family: var(--font-ui) !important;
	font-size: 1rem !important;
	line-height: 1.6 !important;
	box-shadow: none !important;
	transition: border-color var(--t-fast), box-shadow var(--t-fast) !important;
}
.prose .forminator-ui textarea { min-height: 170px !important; }
.prose .forminator-ui input:focus, .prose .forminator-ui textarea:focus, .prose .forminator-ui select:focus { outline: none !important; border-color: var(--text) !important; box-shadow: 0 0 0 4px rgba(61, 64, 91, .1) !important; }
.prose .forminator-ui .forminator-label { margin-block-end: 8px !important; font-family: var(--font-ui) !important; color: var(--title) !important; font-size: .95rem !important; font-weight: 700 !important; line-height: 1.5 !important; }
.prose .forminator-ui .forminator-required { color: var(--cta) !important; }
.prose .forminator-ui .forminator-description, .prose .forminator-ui .forminator-description span { color: var(--muted) !important; font-family: var(--font-ui) !important; font-size: var(--fs-xs) !important; }
.prose .forminator-ui .forminator-error-message { color: var(--cta) !important; background: none !important; padding: 6px 0 0 !important; font-family: var(--font-ui) !important; }
.prose .forminator-ui .forminator-response-message { border-radius: var(--r) !important; font-family: var(--font-ui) !important; }
.prose .forminator-ui .forminator-button-submit {
	display: inline-flex !important;
	align-items: center;
	gap: .5em;
	min-height: 52px !important;
	padding: .6em 2em !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--peach-ink) !important;
	box-shadow: none !important;
	color: #fff !important;
	font-family: var(--font-ui) !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	transition: background-color var(--t-fast) !important;
}
.prose .forminator-ui .forminator-button-submit:hover { background: var(--peach-ink-hover) !important; }
@media (max-width: 560px) { .prose .forminator-ui .forminator-button-submit { width: 100% !important; justify-content: center; } }

/* Landing pages ---------------------------------------------------------- */

.features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; list-style: none; }
@media (max-width: 860px) { .features { grid-template-columns: minmax(0, 1fr); } }
.feature-card__link { position: relative; display: grid; gap: 8px; height: 100%; padding: 26px; border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); color: var(--text); box-shadow: var(--shadow-1); transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease), border-color var(--t-fast); }
.feature-card__link:hover { color: var(--text); transform: translateY(-4px); box-shadow: var(--shadow-3); border-color: var(--line-strong); }
.feature-card__icon { display: grid; place-items: center; width: 50px; height: 50px; margin-block-end: 8px; border-radius: 14px; background: var(--tint-peach); color: var(--peach-ink); }
.features > :nth-child(2) .feature-card__icon { background: var(--tint-teal); color: var(--teal-ink); }
.features > :nth-child(3) .feature-card__icon { background: var(--tint-apricot); color: #9A6A1F; }
.feature-card__title { font-family: var(--font-display); font-size: var(--fs-xl); line-height: 1.35; color: var(--title); }
.feature-card__text { color: var(--muted); font-size: var(--fs-sm); }
.feature-card__arrow { color: var(--cta); }
.intro-panel { margin-block-start: 28px; padding: clamp(22px, 3vw, 36px); border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--bg-2); }

/* Languages -------------------------------------------------------------- */

.lang-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; list-style: none; }
.lang-card { position: relative; display: grid; gap: 2px; height: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); color: var(--text); transition: transform var(--t) var(--ease), border-color var(--t-fast); }
.lang-card:hover { color: var(--title); border-color: var(--line-strong); transform: translateY(-2px); }
.lang-card__code { justify-self: start; margin-block-end: 4px; padding: .05em .55em; border-radius: 6px; background: var(--bg-2); color: var(--cta); font-family: "Readex Pro", sans-serif; font-size: .68rem; font-weight: 600; letter-spacing: .06em; direction: ltr; }
.lang-card__name { font-size: 1.02rem; font-weight: 700; line-height: 1.35; }
.lang-card__hello { color: var(--muted); font-size: .8rem; line-height: 1.4; }
.lang-card.is-current { border-color: var(--peach-ink); background: var(--tint-peach); color: var(--title); }
.lang-card.is-current .lang-card__hello { color: var(--muted); }
.lang-card.is-current .lang-card__code { background: var(--surface); color: var(--peach-ink); }
.lang-card__check { position: absolute; inset-block-start: 10px; inset-inline-end: 10px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--apricot); color: var(--indigo-900); }
.lang-card__check .icon { width: 14px; height: 14px; stroke-width: 2.5; }
.lang-grid--chips { display: flex; flex-wrap: wrap; gap: 8px; }
.lang-grid--chips .lang-card { display: inline-flex; align-items: center; gap: .55em; min-height: 44px; padding: .3em .4em; padding-inline-end: 1em; border-radius: 999px; }
.lang-grid--chips .lang-card__code { margin: 0; padding: .3em .55em; border-radius: 999px; }
.lang-grid--chips .lang-card__hello, .lang-grid--chips .lang-card__check { display: none; }
.lang-grid--chips .lang-card__name { font-size: .94rem; }

/* Sheets (dialogs) ------------------------------------------------------- */

.sheet {
	width: min(100% - 32px, 720px);
	max-height: min(86vh, 860px);
	padding: 0;
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	background: var(--surface);
	color: var(--text);
	box-shadow: var(--shadow-2);
	overflow: auto;
	overscroll-behavior: contain;
}
.sheet::backdrop { background: rgba(35, 37, 58, .28); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.sheet[open] { animation: sheet-in 360ms var(--ease); }
.sheet[open]::backdrop { animation: fade-in var(--t) var(--ease); }
.sheet.is-closing { animation: sheet-out 200ms var(--ease-in-out) forwards; }
.sheet.is-closing::backdrop { animation: fade-out 200ms forwards; }
@keyframes sheet-in { from { opacity: 0; transform: translateY(18px) scale(.985); } }
@keyframes sheet-out { to { opacity: 0; transform: translateY(12px) scale(.99); } }
@keyframes fade-in { from { opacity: 0; } }
@keyframes fade-out { to { opacity: 0; } }
.sheet__inner { position: relative; display: grid; gap: 20px; padding: clamp(20px, 4vw, 32px); isolation: isolate; }
.sheet__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.sheet__title { display: flex; align-items: center; gap: .4em; font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 400; }
.sheet__title .icon { color: var(--ornament); }
.sheet__lead { margin-block-start: 4px; color: var(--muted); font-size: var(--fs-sm); }
.sheet__row { display: flex; gap: 8px; flex-wrap: wrap; }
.sheet__note { display: flex; gap: .5em; align-items: flex-start; color: var(--muted); font-size: var(--fs-sm); }
.sheet__note .icon { margin-block-start: .25em; width: 16px; height: 16px; }

/* Main menu: full-height indigo panel with numbered sections. */
.sheet--menu {
	width: min(100%, 460px);
	max-width: none;
	height: 100dvh;
	max-height: none;
	margin: 0;
	margin-inline-start: auto;
	border: 0;
	border-radius: 0;
	background: radial-gradient(80% 50% at 100% 0%, var(--tint-apricot), transparent 70%), radial-gradient(70% 40% at 0% 100%, var(--tint-teal), transparent 70%), var(--surface);
	color: var(--text);
	box-shadow: var(--shadow-3);
}
.sheet--menu[open] { animation: menu-in 380ms var(--ease); }
.sheet--menu.is-closing { animation: menu-out 220ms var(--ease-in-out) forwards; }
@keyframes menu-in { from { transform: translateX(-100%); } }
@keyframes menu-out { to { transform: translateX(-100%); } }
.dir-rtl .sheet--menu { margin-inline-start: 0; margin-inline-end: auto; }
.dir-rtl .sheet--menu[open] { animation-name: menu-in-rtl; }
.dir-rtl .sheet--menu.is-closing { animation-name: menu-out-rtl; }
@keyframes menu-in-rtl { from { transform: translateX(100%); } }
@keyframes menu-out-rtl { to { transform: translateX(100%); } }
.sheet--menu .sheet__inner { min-height: 100%; grid-template-rows: auto 1fr auto; padding-block-end: max(24px, env(safe-area-inset-bottom)); }
.sheet__pattern { z-index: -1; -webkit-mask-image: var(--lattice), linear-gradient(180deg, #000, transparent 45%); mask-image: var(--lattice), linear-gradient(180deg, #000, transparent 45%); -webkit-mask-size: 56px 56px, 100% 100%; mask-size: 56px 56px, 100% 100%; -webkit-mask-composite: source-in; mask-composite: intersect; }
.sheet__callig { width: 240px; color: var(--title); --callig-accent: var(--peach); }
.sheet__brand { font-family: var(--font-display); font-size: var(--fs-xl); }
.sheet__list { list-style: none; counter-reset: menu; }
.sheet__list > li { counter-increment: menu; border-block-end: 1px solid var(--line); }
.sheet__list > li > a { display: flex; align-items: baseline; gap: 14px; padding: .55em 0; color: var(--title); transition: color var(--t-fast), padding var(--t) var(--ease); font-family: var(--font-display); font-size: 1.75rem; line-height: 1.45; }
.dir-ltr .sheet__list > li > a { font-size: 1.45rem; }
.sheet__list > li > a::before { content: counter(menu, decimal-leading-zero); color: var(--peach); font-family: "Readex Pro", sans-serif; font-size: .78rem; font-weight: 600; }
.sheet__list > li > a:hover, .sheet__list > .current-menu-item > a { color: var(--peach-ink); padding-inline-start: 6px; }
.sheet__list .sub-menu { display: flex; flex-wrap: wrap; gap: 8px; padding-block-end: 14px; list-style: none; }
.sheet__list .sub-menu a { display: inline-flex; padding: .2em .9em; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--text); font-size: var(--fs-sm); }
.sheet__list .sub-menu a:hover { color: var(--peach-ink); border-color: var(--peach-ink); }
.sheet__foot { display: grid; gap: 14px; }
.sheet--menu .sheet__note { color: var(--muted); justify-content: center; text-align: center; font-size: var(--fs-xs); }
.lang-switch { display: flex; gap: 4px; padding: 4px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--surface); }
.lang-switch__item { flex: 1; display: grid; place-items: center; min-height: 44px; padding-inline: .8em; border: 0; border-radius: 999px; background: transparent; color: var(--title); font-size: var(--fs-sm); font-weight: 700; white-space: nowrap; }
.lang-switch__item:hover { color: var(--peach-ink); }
.lang-switch__item.is-current { background: var(--indigo-900); color: #fff; }
.lang-switch__more { flex: none; display: inline-flex; gap: .3em; color: var(--muted); }
.lang-switch__more .icon { width: 16px; height: 16px; }

.sheet--search { align-self: start; margin-block-start: 12vh; border-radius: 999px; overflow: visible; }
.search-bar { display: flex; align-items: center; gap: 10px; padding: 8px; padding-inline-start: 22px; }
.search-bar > .icon { color: var(--muted); }
.search-bar input { flex: 1; min-width: 0; height: 52px; border: 0; background: transparent; font-size: 1.15rem; outline: none; }

@media (max-width: 760px) {
	.sheet:not(.sheet--search):not(.sheet--menu) {
		width: 100%;
		max-width: none;
		max-height: 88vh;
		margin: auto 0 0;
		border-radius: var(--r-xl) var(--r-xl) 0 0;
		padding-block-end: env(safe-area-inset-bottom);
	}
	.sheet:not(.sheet--search):not(.sheet--menu)[open] { animation-name: sheet-up; }
	.sheet:not(.sheet--search):not(.sheet--menu).is-closing { animation-name: sheet-down; }
	@keyframes sheet-up { from { transform: translateY(100%); } }
	@keyframes sheet-down { to { transform: translateY(100%); } }
	.sheet--menu { width: 100%; }
}

.call-list { display: grid; gap: 8px; list-style: none; }
.call-list__item { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r); background: var(--bg); color: var(--title); }
.call-list__item:hover { border-color: var(--line-strong); color: var(--title); }
.call-list__icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--tint-peach); color: var(--peach-ink); }
.call-list__icon .icon { width: 18px; height: 18px; }
.call-list__number { font-family: "Readex Pro", var(--font-ui); font-size: 1.2rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.saved-list { display: grid; gap: 8px; list-style: none; }
.saved-list li { display: flex; align-items: center; gap: 12px; padding: 8px; border: 1px solid var(--line); border-radius: var(--r); background: var(--bg); }
.saved-list img { width: 72px; height: 48px; object-fit: cover; border-radius: 8px; flex: none; }
.saved-list a { flex: 1; min-width: 0; color: var(--title); font-weight: 700; line-height: 1.5; }
.saved-list a:hover { color: var(--cta); }

/* Footer ----------------------------------------------------------------- */

.footer { position: relative; overflow: hidden; border-block-start: 1px solid var(--line); background: linear-gradient(180deg, var(--surface), var(--bg-2) 40%); color: var(--muted); isolation: isolate; }
.footer::before { content: ""; position: absolute; inset-block-start: -1px; inset-inline: 0; height: 3px; background: linear-gradient(90deg, var(--teal), var(--apricot) 40%, var(--peach)); opacity: .85; }
.footer__pattern { z-index: -1; -webkit-mask-image: var(--lattice), linear-gradient(0deg, #000, transparent 60%); mask-image: var(--lattice), linear-gradient(0deg, #000, transparent 60%); -webkit-mask-size: 56px 56px, 100% 100%; mask-size: 56px 56px, 100% 100%; -webkit-mask-composite: source-in; mask-composite: intersect; }
.footer__top { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px); padding-block: clamp(48px, 6vw, 80px) 40px; }
.footer__brand { display: grid; gap: 16px; justify-items: start; }
.brand--footer { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; justify-items: start; color: var(--title); }
.brand--footer:hover { color: var(--title); }
.brand__callig { width: 300px; max-width: 100%; --callig-accent: var(--peach); }
.footer__about { max-width: 44ch; color: var(--text); font-size: var(--fs-sm); line-height: 1.95; }
.footer__social { display: flex; gap: 6px; list-style: none; }
.footer__title { margin-block-end: 16px; color: var(--title); font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 400; }
.footer__links { display: grid; gap: 8px; list-style: none; }
.footer__links .sub-menu { display: none; }
.footer__links a, .footer__linkbtn { padding: 0; border: 0; background: none; color: var(--text); font-size: var(--fs-sm); text-align: start; transition: color var(--t-fast); }
.footer__links a:hover, .footer__linkbtn:hover { color: var(--peach-ink); }
.footer__text { margin-block-start: 12px; font-size: var(--fs-xs); line-height: 1.9; }
.footer__phones { display: grid; gap: 4px; margin-block-start: 12px; list-style: none; }
.footer__phones a { color: var(--title); font-family: "Readex Pro", var(--font-ui); font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }
.footer__phones a:hover { color: var(--peach-ink); }
.footer__base { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; padding-block: 22px; border-block-start: 1px solid var(--line); font-size: var(--fs-xs); }
.footer__give { color: var(--peach-ink); font-weight: 700; }
.footer__give:hover { color: var(--peach-ink-hover); }
.footer .visit-counter, .footer [data-visit-total] { color: var(--title); }
@media (max-width: 980px) { .footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); } .footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .footer__top { grid-template-columns: minmax(0, 1fr); } }

/* Mobile tab bar --------------------------------------------------------- */

.tabbar { display: none; }
@media (max-width: 980px) {
	body { padding-block-end: calc(68px + env(safe-area-inset-bottom)); }
	.tabbar {
		position: fixed;
		inset-inline: 0;
		inset-block-end: 0;
		z-index: 60;
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: minmax(0, 1fr);
		padding-block-end: env(safe-area-inset-bottom);
		border-block-start: 1px solid var(--line);
		background: color-mix(in srgb, var(--bg) 92%, transparent);
		box-shadow: 0 -10px 30px -24px rgba(43, 45, 66, .5);
		-webkit-backdrop-filter: blur(14px);
		backdrop-filter: blur(14px);
		transition: transform var(--t) var(--ease);
	}
	.tabbar.is-hidden { transform: translateY(110%); }
}
.tabbar__item { display: grid; justify-items: center; align-content: center; gap: 2px; min-height: 64px; padding: 6px 2px; border: 0; background: none; color: var(--muted); font-size: .72rem; line-height: 1.3; text-align: center; }
.tabbar__item .icon { width: 22px; height: 22px; }
.tabbar__item:hover, .tabbar__item.is-current { color: var(--title); }
.tabbar__item.is-current { font-weight: 700; }
.tabbar__item.is-current .icon { color: var(--cta); }
.tabbar__item--give .icon { color: var(--cta); }
.tabbar__icon { position: relative; display: grid; }
.tabbar__dot { position: absolute; inset-block-start: -1px; inset-inline-end: -3px; width: 8px; height: 8px; border-radius: 50%; background: var(--peach); box-shadow: 0 0 0 2px var(--bg); }

/* Books ------------------------------------------------------------------ */

.shelf { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: clamp(16px, 2vw, 28px); }
.shelf--library { grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: clamp(14px, 1.8vw, 24px); }
.book--row { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: clamp(16px, 2vw, 24px); align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--shadow-1); transition: border-color var(--t-fast), box-shadow var(--t) var(--ease); }
.book--row:hover { border-color: var(--line-strong); box-shadow: var(--shadow-1); }
.book--row .book__media { display: block; }
.book--row .book__cover { margin: 0; }
.book__body { display: grid; justify-items: start; gap: 6px; min-width: 0; }
.book--row .book__title { font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 400; }
.book--row .book__title a { color: var(--title); }
.book--row .book__title a:hover { color: var(--cta); }
.book__size { display: inline-flex; align-items: center; gap: .4em; color: var(--muted); font-size: var(--fs-xs); }
.book__size .icon { width: 14px; height: 14px; }
.book__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-block-start: 8px; }
@media (max-width: 420px) { .book--row { grid-template-columns: 92px minmax(0, 1fr); } .book__actions .btn { flex: 1 1 auto; } }
.book__link { display: grid; gap: 4px; color: var(--text); }
.book__link:hover { color: var(--title); }
.book__cover { position: relative; display: block; overflow: hidden; aspect-ratio: 2 / 3; margin-block-end: 10px; border-radius: 6px 14px 14px 6px; background: var(--indigo-700); box-shadow: inset 6px 0 0 rgba(0, 0, 0, .18), var(--shadow-1); transition: transform var(--t) var(--ease); }
.dir-rtl .book__cover { border-radius: 14px 6px 6px 14px; box-shadow: inset -6px 0 0 rgba(0, 0, 0, .18), var(--shadow-1); }
.book__link:hover .book__cover, .book--row:hover .book__cover { transform: translateY(-3px) rotate(-1deg); }
.book__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.book__typeset { position: absolute; inset: 10px; display: grid; place-content: center; justify-items: center; gap: 12px; padding: 12px; border: 1px solid rgba(242, 204, 143, .5); border-radius: 6px; color: var(--apricot); font-family: var(--font-display); font-size: 1rem; line-height: 1.6; text-align: center; }
.book__typeset .icon { width: 28px; height: 28px; }
.book__title { color: var(--title); font-weight: 700; line-height: 1.5; }
.book__author { color: var(--muted); font-size: var(--fs-sm); }

.ebook-head { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 36px; align-items: center; }
.ebook-head__cover .book__title, .ebook-head__cover .book__author { display: none; }
.ebook-head__info { display: grid; gap: 12px; justify-items: start; }
.facts { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 4px 0 0; }
.facts dt { color: var(--muted); font-size: var(--fs-xs); }
.facts dd { margin: 0; font-weight: 700; }
.ebook-head__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-block-start: 10px; }
.reader { padding-block: 40px var(--section); }
.reader__frame { display: block; width: 100%; height: 85vh; border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); }
.reader__fallback { padding: 40px; text-align: center; }
.wrap--align, .wrap--wide { width: min(100% - 2 * var(--gutter), 1100px); margin-inline: auto; }
.entry--ebook .entry__body { padding-block: 32px 0; }
.entry--ebook .entry__footer { padding-block: 0 var(--section); }
@media (max-width: 640px) { .ebook-head { grid-template-columns: 110px minmax(0, 1fr); gap: 18px; } }

.entry--page .entry__figure { margin: 0 0 28px; }
.entry--page .entry__figure img { border-radius: var(--r-xl); }

/* Search results, 404 ---------------------------------------------------- */

.results { display: grid; gap: 14px; list-style: none; }
.result { position: relative; display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 20px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); transition: border-color var(--t-fast), box-shadow var(--t) var(--ease); }
.result:hover { border-color: var(--line-strong); box-shadow: var(--shadow-1); }
.result__media { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 10; border-radius: var(--r); background: var(--bg-2); }
.result__media img { width: 100%; height: 100%; object-fit: cover; }
.result__body { display: grid; gap: 4px; min-width: 0; }
.result__title { font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 400; line-height: 1.5; }
.result__title a { color: var(--title); }
.result__title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--r-xl); }
.result__title a:hover { color: var(--cta); }
.result__excerpt { color: var(--muted); font-size: var(--fs-sm); }
@media (max-width: 560px) { .result { grid-template-columns: 110px minmax(0, 1fr); gap: 14px; } .result__excerpt { display: none; } }

.notfound { position: relative; overflow: hidden; padding-block: clamp(64px, 10vw, 140px); text-align: center; isolation: isolate; }
.notfound__pattern { z-index: -1; }
.notfound .wrap { display: grid; justify-items: center; gap: 16px; }
.notfound__code { color: var(--cta); font-family: var(--font-display); font-size: clamp(5rem, 3rem + 10vw, 9rem); font-weight: 700; line-height: 1; }
.notfound__title { font-family: var(--font-display); font-size: var(--fs-3xl); font-weight: 400; }
.notfound__lead { color: var(--muted); font-size: var(--fs-md); }
.notfound .search-field { width: min(100%, 560px); }

/* Spinner (donation page, loading states) */
.spinner { width: 18px; height: 18px; border: 2px solid var(--line-strong); border-block-start-color: var(--cta); border-radius: 50%; animation: spin 800ms linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Quran reader (Quran Text Multilanguage plugin) */
#template_quran .trans { direction: ltr; unicode-bidi: plaintext; text-align: start !important; font-family: var(--font-ui) !important; line-height: 1.7; }
#template_quran .quran-select { min-height: 48px; background: var(--surface) !important; color: var(--text) !important; border: 1px solid var(--line-strong) !important; border-radius: var(--r) !important; font-family: var(--font-ui) !important; }
#template_quran .suraName { margin-block-start: 16px !important; border: 1px solid var(--line) !important; border-radius: var(--r-lg) var(--r-lg) 0 0 !important; background: var(--tint-apricot) !important; color: var(--peach-ink) !important; font-family: var(--font-display) !important; }
#template_quran .aya, #template_quran .quran { font-family: var(--font-quran) !important; }

/* Masthead -------------------------------------------------------------- */

.masthead { position: relative; overflow: hidden; border-block-end: 1px solid var(--line); background: radial-gradient(52% 170% at 52% 50%, #D2E0E5 0%, #E3ECEF 36%, #F2F6F7 64%, #FFFFFF 100%); isolation: isolate; }
.masthead__lattice { position: absolute; inset: 0; z-index: -1; background-color: rgba(47, 85, 99, .07); -webkit-mask: var(--lattice) 0 0 / 56px 56px repeat; mask: var(--lattice) 0 0 / 56px 56px repeat; -webkit-mask-image: var(--lattice), radial-gradient(40% 120% at 52% 50%, #000, transparent 80%); mask-image: var(--lattice), radial-gradient(40% 120% at 52% 50%, #000, transparent 80%); -webkit-mask-size: 56px 56px, 100% 100%; mask-size: 56px 56px, 100% 100%; -webkit-mask-repeat: repeat, no-repeat; mask-repeat: repeat, no-repeat; -webkit-mask-composite: source-in; mask-composite: intersect; }
.masthead__grid { display: grid; grid-template-columns: minmax(140px, 230px) minmax(0, 1fr) auto minmax(130px, 190px); gap: clamp(16px, 2vw, 36px); align-items: center; min-height: clamp(210px, 17.5vw, 300px); }
.masthead__portrait { position: relative; align-self: stretch; }
.masthead__portrait::before { content: ""; position: absolute; inset-block-end: -10%; inset-inline: 2%; height: 86%; border-radius: 50% 50% 0 0; background: radial-gradient(60% 60% at 50% 60%, rgba(255, 255, 255, .9), transparent 72%); }
.masthead__img { position: absolute; inset-block-end: 0; inset-inline: 0; display: block; width: auto; max-width: none; height: 95%; margin-inline: auto; filter: drop-shadow(0 12px 18px rgba(30, 50, 60, .18)); }
.masthead__text { display: grid; gap: clamp(8px, 1vw, 14px); justify-items: start; min-width: 0; padding-block: 18px; }
.masthead__title { display: grid; color: var(--indigo-900); }
.masthead__title:hover { color: var(--indigo-900); }
.masthead__callig { width: clamp(240px, 30vw, 440px); max-width: 100%; color: var(--indigo-900); --callig-accent: #B8902A; }
.masthead__kicker { color: var(--peach-ink); font-size: var(--fs-sm); font-weight: 700; letter-spacing: .04em; }
.masthead__name { font-family: var(--font-display); font-size: clamp(1.9rem, 1.2rem + 2.2vw, 3.2rem); font-weight: 700; line-height: 1.1; }
.masthead__facts { display: grid; gap: .15em; list-style: none; color: var(--indigo-900); font-size: clamp(.92rem, .7rem + .55vw, 1.22rem); font-weight: 700; line-height: 1.65; }
.dir-ltr .masthead__facts { font-size: clamp(.9rem, .75rem + .5vw, 1.15rem); line-height: 1.45; }
.masthead__facts li { position: relative; padding-inline-start: 1.25em; }
.masthead__facts li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: .58em; width: .62em; height: .62em; border: 2px solid #C9A227; border-radius: 50%; background: radial-gradient(circle, #C9A227 32%, transparent 38%); }
.dir-ltr .masthead__facts li::before { inset-block-start: .42em; }
.masthead__facts b { color: #8E6A10; font-weight: 700; }
.masthead__lines { position: relative; align-self: center; min-width: 250px; padding: 12px 14px 8px; border: 1px solid rgba(255, 255, 255, .9); border-radius: 18px; background: linear-gradient(180deg, rgba(255, 255, 255, .82), rgba(255, 255, 255, .6)); box-shadow: inset 0 0 0 1px rgba(201, 162, 39, .18), 0 14px 30px -22px rgba(30, 50, 60, .55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.masthead__lines-title { display: flex; align-items: center; gap: .55em; padding-inline: 8px; padding-block-end: 6px; color: #7A5C12; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .02em; }
.masthead__lines-title .live-dot { width: 7px; height: 7px; background: #C9A227; box-shadow: 0 0 0 3px rgba(201, 162, 39, .2); }
.masthead__phones { display: grid; list-style: none; }
.masthead__phones li + li { border-block-start: 1px solid rgba(43, 45, 66, .07); }
.masthead__phones a { display: flex; align-items: center; justify-content: space-between; gap: .8em; padding: .42em 8px; border-radius: 10px; color: var(--indigo-900); font-family: "Readex Pro", var(--font-ui); font-size: clamp(.95rem, .8rem + .3vw, 1.08rem); font-weight: 600; letter-spacing: .04em; line-height: 1.4; font-variant-numeric: tabular-nums; transition: background-color var(--t-fast), color var(--t-fast); }
.masthead__phones a .icon { order: 2; width: 15px; height: 15px; color: #B8902A; transition: transform var(--t) var(--ease), color var(--t-fast); }
.masthead__phones a:hover { background: rgba(255, 255, 255, .95); color: var(--peach-ink); }
.masthead__phones a:hover .icon { color: var(--peach-ink); transform: rotate(-12deg) scale(1.1); }
.masthead__seal { display: grid; place-items: center; align-self: start; justify-self: end; width: 100%; max-width: 190px; height: 88%; border-radius: 0 0 30px 30px; background: linear-gradient(170deg, #4A6A40, var(--brand-green) 60%, #34502C); color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06), 0 18px 34px -20px rgba(30, 50, 25, .8); transition: transform var(--t) var(--ease); }
.masthead__seal:hover { color: #fff; transform: translateY(3px); }
.masthead__mark { width: 74%; --callig-accent: #E2C26B; }
@media (max-width: 1180px) {
	.masthead__grid { grid-template-columns: minmax(130px, 220px) minmax(0, 1fr) minmax(110px, 170px); min-height: clamp(190px, 21vw, 240px); }
	.masthead__lines { display: none; }
}
@media (max-width: 760px) {
	.masthead__grid { grid-template-columns: 116px minmax(0, 1fr) 56px; gap: 12px; min-height: 150px; }
	.masthead__img { height: 84%; max-height: 124px; margin: 0; inset-inline: calc(-1 * var(--gutter)) auto; }
	.masthead__text { gap: 4px; padding-block: 12px; }
	.masthead__title { width: 100%; }
	.masthead__callig { width: min(100%, 230px); }
	.masthead__facts { gap: 0; font-size: .76rem; line-height: 1.6; }
	.dir-ltr .masthead__facts { font-size: .76rem; }
	.masthead__facts li { padding-inline-start: 1.1em; }
	.masthead__facts li::before { border-width: 1.5px; }
	.masthead__name { font-size: 1.5rem; }
	.masthead__seal { height: 82%; max-height: 130px; border-radius: 0 0 18px 18px; }
	.masthead__mark { width: 80%; }
}
@media (max-width: 380px) {
	.masthead__grid { grid-template-columns: 100px minmax(0, 1fr) 50px; gap: 10px; }
	.masthead__img { height: 76%; max-height: 112px; }
	.masthead__facts { font-size: .74rem; }
}

/* Languages bar ----------------------------------------------------------- */

.subnav { position: relative; border-block-end: 1px solid var(--line); background: var(--surface); }
.subnav__in { display: flex; align-items: center; gap: 10px; }
.subnav__track { position: relative; flex: 1; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: none; padding-block: 10px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 40px), transparent); mask-image: linear-gradient(90deg, transparent, #000 40px, #000 calc(100% - 40px), transparent); }
.subnav__track::-webkit-scrollbar { display: none; }
.dir-rtl .subnav.is-start .subnav__track, .dir-ltr .subnav.is-end .subnav__track { -webkit-mask-image: linear-gradient(90deg, transparent, #000 40px); mask-image: linear-gradient(90deg, transparent, #000 40px); }
.dir-rtl .subnav.is-end .subnav__track, .dir-ltr .subnav.is-start .subnav__track { -webkit-mask-image: linear-gradient(270deg, transparent, #000 40px); mask-image: linear-gradient(270deg, transparent, #000 40px); }
.subnav.is-start.is-end .subnav__track { -webkit-mask-image: none; mask-image: none; }
.subnav__list { display: flex; gap: 8px; width: max-content; list-style: none; }
.subnav__list a { display: inline-flex; align-items: center; gap: .55em; min-height: 40px; padding: .2em .4em; padding-inline-end: 1em; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--surface); color: var(--text); font-size: var(--fs-sm); white-space: nowrap; scroll-snap-align: start; transition: background-color var(--t-fast), border-color var(--t-fast), color var(--t-fast), transform var(--t) var(--ease); }
.subnav__code { display: inline-grid; place-items: center; min-width: 30px; height: 22px; padding-inline: 6px; border-radius: 999px; background: var(--tint-indigo); color: var(--indigo-700); font-family: "Readex Pro", sans-serif; font-size: .66rem; font-weight: 600; letter-spacing: .06em; direction: ltr; transition: background-color var(--t-fast), color var(--t-fast); }
.subnav__list a:hover .subnav__code { background: var(--surface); color: var(--peach-ink); }
.subnav__list .is-current .subnav__code { background: var(--peach-ink); color: #fff; }
.subnav__list a:hover { border-color: var(--peach); background: var(--tint-peach); color: var(--peach-ink); transform: translateY(-1px); }
.subnav__list .is-current { border-color: var(--peach-ink); background: var(--tint-peach); color: var(--peach-ink); font-weight: 700; }
.subnav .rail__buttons { display: flex; gap: 6px; flex: none; }
.subnav .rail__buttons[hidden] { display: none; }
.subnav .icon-btn { width: 36px; height: 36px; background: var(--surface); }
.subnav .icon-btn:disabled { opacity: .35; cursor: default; }
@media (hover: none) { .subnav .rail__buttons { display: none; } }

/* Latest videos: uniform cards ------------------------------------------- */

.vgrid-section { padding-block: clamp(40px, 5vw, 72px) 0; }
.vgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 1.8vw, 26px); }
@media (max-width: 1100px) { .vgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .vgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.card--tile { overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-xl); background: var(--surface); box-shadow: var(--shadow-1); transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease), border-color var(--t) var(--ease); }
.card--tile:hover { border-color: var(--line-strong); box-shadow: var(--shadow-3); transform: translateY(-4px); }
.card--tile .card__media, .card--tile:hover .card__media { aspect-ratio: 16 / 9; border-radius: 0; box-shadow: none; transform: none; }
.card--tile .card__media::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(180deg, transparent, rgba(35, 37, 58, .28)); pointer-events: none; }
.card--tile .card__play { width: 50px; height: 50px; }
.card--tile .card__body { flex: 1; grid-template-rows: auto 1fr auto; gap: 6px; padding: 14px 18px 14px; }
.card--tile .card__title { display: -webkit-box; min-height: calc(2 * 1.6em); overflow: hidden; font-size: 1.14rem; line-height: 1.6; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.dir-ltr .card--tile .card__title { line-height: 1.4; min-height: calc(2 * 1.4em); }
.card--tile .card__link::after { border-radius: var(--r-xl); }
.card--tile .card__foot { align-self: end; }
.card__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-block-start: 10px; border-block-start: 1px solid var(--line); color: var(--muted); font-size: var(--fs-xs); }
.card__watch { display: inline-flex; align-items: center; gap: .35em; color: var(--peach-ink); font-weight: 700; }
.card__watch .icon { width: 14px; height: 14px; transition: transform var(--t) var(--ease); }
.card--tile:hover .card__watch .icon { transform: translateX(-4px); }
.dir-ltr .card--tile:hover .card__watch .icon { transform: translateX(4px); }

/* Vertical videos ------------------------------------------------------- */

.reels { position: relative; padding-block: clamp(40px, 5vw, 72px) clamp(28px, 3.5vw, 48px); }
.reels__head { display: flex; align-items: flex-end; gap: 16px; }
.reels__head .section-head { flex: 1; min-width: 0; margin-block-end: 0; }
.reels__head .rail__buttons { display: flex; gap: 8px; flex: none; padding-block-end: 16px; }
.reels__head .rail__buttons[hidden] { display: none; }
.reels__head .icon-btn:disabled { opacity: .35; cursor: default; }
@media (hover: none), (max-width: 760px) { .reels__head .rail__buttons { display: none; } }
.reels + .programs { padding-block-start: clamp(24px, 3vw, 48px); }
.reels__track {
	--n: 6.4;
	--gap: clamp(10px, 1.2vw, 18px);
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((min(100vw - 2 * var(--gutter), var(--wrap)) - (var(--n) - 1) * var(--gap)) / var(--n));
	gap: var(--gap);
	margin-block-start: clamp(18px, 2vw, 26px);
	padding-block: 6px 18px;
	padding-inline: max(var(--gutter), calc((100% - var(--wrap)) / 2));
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: max(var(--gutter), calc((100% - var(--wrap)) / 2));
	scrollbar-width: none;
	list-style: none;
}
.reels__track::-webkit-scrollbar { display: none; }
@media (hover: hover) and (pointer: fine) { .reels__track { cursor: grab; } }
.reels__track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.reels__track.is-dragging .reel { pointer-events: none; }
@media (max-width: 1100px) { .reels__track { --n: 4.4; } }
@media (max-width: 760px) { .reels__track { --n: 2.4; } }
@media (max-width: 400px) { .reels__track { --n: 2.2; } }
.reels__track > li { scroll-snap-align: start; }
.reel { position: relative; display: block; aspect-ratio: 9 / 16; overflow: hidden; border-radius: 18px; background: var(--indigo-900); box-shadow: var(--shadow-1); isolation: isolate; -webkit-user-select: none; user-select: none; transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease); }
.reel::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); pointer-events: none; }
.reel img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 800ms var(--ease-out); }
.reel:hover { transform: translateY(-4px); box-shadow: var(--shadow-3); }
.reel:hover img { transform: scale(1.05); }
.reel:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.reel__play { position: absolute; inset-block-end: 12px; inset-inline-start: 12px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(20, 22, 36, .35); color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: background-color var(--t) var(--ease), transform var(--t) var(--ease); }
.reel__play .icon { width: 16px; height: 16px; margin-inline-start: 2px; }
.dir-rtl .reel__play .icon { margin-inline-start: 0; margin-inline-end: 2px; }
.reel:hover .reel__play, .reel:focus-visible .reel__play { background: var(--peach-ink); transform: scale(1.1); box-shadow: none; }
@media (max-width: 760px) { .reel { border-radius: 14px; } .reel__play { width: 32px; height: 32px; inset-block-end: 9px; inset-inline-start: 9px; } }

/* Vertical video viewer (immersive) */
.reel-viewer { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: #fff; overflow: hidden; }
.reel-viewer::backdrop { background: rgba(14, 15, 26, .94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.reel-viewer[open] { animation: fade-in 260ms var(--ease); }
.reel-viewer[open]::backdrop { animation: fade-in 260ms var(--ease); }
.is-reel-open { overflow: hidden; }
.reel-viewer__layout { display: grid; grid-template-rows: minmax(0, 1fr) auto auto; justify-items: center; align-content: center; gap: 12px; height: 100%; padding: clamp(12px, 3vh, 28px) 12px max(14px, env(safe-area-inset-bottom)); }
.reel-viewer__stage { position: relative; align-self: center; width: min(100%, calc((100dvh - 150px) * 9 / 16)); aspect-ratio: 9 / 16; overflow: hidden; border-radius: 20px; background: #000; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .8); }
.reel-viewer__stage img, .reel-viewer__stage iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.reel-viewer__stage iframe { opacity: 0; transition: opacity 400ms var(--ease); }
.reel-viewer__stage.is-ready iframe { opacity: 1; }
.reel-viewer__spinner { position: absolute; inset: 0; margin: auto; width: 34px; height: 34px; border-color: rgba(255, 255, 255, .25); border-block-start-color: #fff; }
.reel-viewer__stage.is-ready .reel-viewer__spinner { display: none; }
.reel-viewer__title { max-width: min(92vw, 520px); overflow: hidden; color: rgba(255, 255, 255, .78); font-size: var(--fs-sm); text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.reel-viewer__bar { display: flex; align-items: center; gap: 8px; padding: 6px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 999px; background: rgba(255, 255, 255, .08); }
.reel-viewer__btn { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; transition: background-color var(--t-fast), transform var(--t-fast) var(--ease); }
.reel-viewer__btn:hover { background: rgba(255, 255, 255, .22); color: #fff; }
.reel-viewer__btn:active { transform: scale(.94); }
.reel-viewer__btn .icon { width: 22px; height: 22px; }
.reel-viewer__btn .is-up { transform: rotate(180deg); }
.reel-viewer__close { background: #fff; color: var(--indigo-900); }
.reel-viewer__close:hover { background: var(--apricot); color: var(--indigo-900); }
.reel-viewer__count { min-width: 64px; color: #fff; font-family: "Readex Pro", sans-serif; font-size: .92rem; font-variant-numeric: tabular-nums; text-align: center; }
@media (max-width: 760px) {
	.reel-viewer__layout { gap: 8px; padding-block-start: 8px; }
	.reel-viewer__stage { width: min(100%, calc((100dvh - 120px) * 9 / 16)); border-radius: 14px; }
}

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

.hero { position: relative; overflow: hidden; padding-block: clamp(28px, 4.5vw, 64px) clamp(44px, 6vw, 88px); isolation: isolate; }
.hero__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hero__wash { position: absolute; border-radius: 50%; filter: blur(40px); }
.hero__wash--a { inset-block-start: -22%; inset-inline-end: -10%; width: min(60vw, 820px); aspect-ratio: 1; background: radial-gradient(circle, rgba(242, 204, 143, .42), transparent 62%); }
.hero__wash--b { inset-block-end: -38%; inset-inline-end: 22%; width: min(44vw, 620px); aspect-ratio: 1; background: radial-gradient(circle, rgba(129, 178, 154, .26), transparent 62%); }
.hero__lattice { position: absolute; inset: 0; background-color: rgba(61, 64, 91, .06); -webkit-mask: var(--lattice) 0 0 / 56px 56px repeat; mask: var(--lattice) 0 0 / 56px 56px repeat; -webkit-mask-image: var(--lattice), radial-gradient(45% 70% at 20% 45%, #000, transparent 75%); mask-image: var(--lattice), radial-gradient(45% 70% at 20% 45%, #000, transparent 75%); -webkit-mask-size: 56px 56px, 100% 100%; mask-size: 56px 56px, 100% 100%; -webkit-mask-repeat: repeat, no-repeat; mask-repeat: repeat, no-repeat; -webkit-mask-composite: source-in; mask-composite: intersect; }
.dir-ltr .hero__lattice { -webkit-mask-image: var(--lattice), radial-gradient(45% 70% at 80% 45%, #000, transparent 75%); mask-image: var(--lattice), radial-gradient(45% 70% at 80% 45%, #000, transparent 75%); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(28px, 4vw, 72px); align-items: center; }
.hero__text { display: grid; gap: 18px; justify-items: start; }
.hero__eyebrow { display: inline-flex; align-items: center; gap: .6em; padding: .35em 1em .35em 1.1em; border: 1px solid var(--line-strong); border-radius: 999px; background: color-mix(in srgb, var(--surface) 85%, transparent); color: var(--text); font-size: var(--fs-sm); font-weight: 700; box-shadow: var(--shadow-1); }
.hero__callig { width: min(100%, 360px); color: var(--title); --callig-accent: var(--peach); }
.hero__title { color: var(--title); font-family: var(--font-display); font-size: clamp(2.6rem, 1.4rem + 4.2vw, 4.9rem); font-weight: 400; line-height: 1.22; letter-spacing: -.005em; }
.dir-ltr .hero__title { line-height: 1.08; letter-spacing: -.02em; }
.hero__line { display: block; }
.hero__line--accent { width: fit-content; color: var(--peach-ink); background: linear-gradient(transparent 64%, rgba(242, 204, 143, .55) 64% 90%, transparent 90%) no-repeat 100% 0 / 100% 100%; }
.dir-ltr .hero__line--accent { background-position: 0 0; }
.hero__lead { max-width: 54ch; color: var(--text); font-size: clamp(1.05rem, 1rem + .35vw, 1.25rem); line-height: 1.95; }
.dir-ltr .hero__lead { line-height: 1.7; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-block-start: 6px; }
.hero__facts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; margin-block-start: 4px; list-style: none; color: var(--muted); font-size: var(--fs-sm); }
.hero__facts li { display: inline-flex; align-items: center; gap: .5em; }
.hero__facts .icon { width: 17px; height: 17px; color: var(--peach); }
.hero__call { display: inline-flex; align-items: center; gap: .5em; padding: 0; border: 0; background: none; color: var(--title); font-weight: 700; text-decoration: underline; text-decoration-color: rgba(224, 122, 95, .5); text-underline-offset: .35em; }
.hero__call:hover { color: var(--peach-ink); text-decoration-color: currentColor; }

.hero__visual { position: relative; display: grid; place-items: center; min-height: 0; }
.hero__art { position: relative; z-index: 1; display: block; width: min(100%, 520px); height: auto; mix-blend-mode: multiply; }
.hero__rosette { position: absolute; inset: 50% auto auto 50%; z-index: 0; width: min(118%, 640px); aspect-ratio: 1; translate: -50% -46%; color: rgba(224, 122, 95, .32); overflow: visible; }
.hero__rosette circle:first-child { stroke-dasharray: 2 6; }
.hero__glow { position: absolute; inset-block-start: 26%; inset-inline-start: 50%; z-index: 2; width: 140px; aspect-ratio: 1; translate: 50% 0; border-radius: 50%; background: radial-gradient(circle, rgba(255, 214, 140, .55), transparent 65%); mix-blend-mode: multiply; pointer-events: none; }
.dir-ltr .hero__glow { translate: -50% 0; }
.hero__motes { position: absolute; inset: 30% 30% 22%; z-index: 2; pointer-events: none; }
.hero__motes i { position: absolute; inset-block-end: 0; width: 5px; height: 5px; border-radius: 50%; background: #F2B865; opacity: 0; }
.hero__motes i:nth-child(1) { inset-inline-start: 18%; }
.hero__motes i:nth-child(2) { inset-inline-start: 34%; width: 4px; height: 4px; }
.hero__motes i:nth-child(3) { inset-inline-start: 50%; }
.hero__motes i:nth-child(4) { inset-inline-start: 62%; width: 3px; height: 3px; }
.hero__motes i:nth-child(5) { inset-inline-start: 74%; }
.hero__motes i:nth-child(6) { inset-inline-start: 42%; width: 3px; height: 3px; }

.hero-ep {
	position: absolute;
	inset-block-start: 9%;
	inset-inline-end: 0;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 12px;
	width: min(290px, 64%);
	padding: 10px;
	padding-inline-end: 16px;
	border: 1px solid var(--line);
	border-radius: 18px;
	background: color-mix(in srgb, var(--surface) 92%, transparent);
	color: var(--title);
	box-shadow: var(--shadow-3);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	transition: box-shadow var(--t) var(--ease);
}
.hero__live { position: absolute; inset-block-end: 3%; inset-inline-start: -8%; z-index: 3; width: min(370px, 82%); }

/* Hero with the giving card: text | illustration | card on wide screens; the card
   spans the width (two columns inside) on tablets and stacks last on phones. */
.hero--give .hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, .82fr) minmax(300px, 350px); gap: clamp(24px, 2.6vw, 44px); }
.hero--give .hero__title { font-size: clamp(2.5rem, 1.4rem + 3vw, 4.1rem); }
.hero--give .hero-ep { inset-inline-end: 0; }
.hero--give .hero__live { inset-inline-start: -6%; width: min(390px, 104%); }
.hero__give { position: relative; z-index: 4; align-self: center; }
.hero__give .widget--give { box-shadow: var(--shadow-3); }
.hero__give .widget__title { font-size: var(--fs-xl); }
.hero__give .widget__verse blockquote { font-size: 1.2rem; }
@media (max-width: 1240px) {
	.hero--give .hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
	.hero--give .hero__title { font-size: clamp(2.5rem, 1.4rem + 4vw, 4.6rem); }
	.hero__give { grid-column: 1 / -1; margin-block-start: 8px; }
	.hero__give .widget--give { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(20px, 3vw, 40px); align-items: start; }
	.hero__give .widget__title, .hero__give .widget__lead, .hero__give .widget__verse { grid-column: 1; }
	.hero__give .ways { grid-column: 2; grid-row: 1 / span 3; }
	.hero__give .widget__note { grid-column: 2; }
}
@media (max-width: 860px) {
	.hero--give .hero__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
	.hero__give .widget--give { display: block; }
}
@media (prefers-reduced-motion: no-preference) {
	.hero__give { animation: pop 900ms var(--ease-out) .5s both; }
}
@media (max-width: 1080px) {
	.hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); }
	.hero__live { inset-inline-start: -4%; }
}
@media (max-width: 860px) {
	.hero__grid { grid-template-columns: minmax(0, 1fr); }
	.hero__visual { width: min(100%, 560px); justify-self: center; margin-block-start: 8px; }
	.hero__live { inset-inline-start: 0; }
	.hero-ep { inset-inline-end: 0; }
}
@media (max-width: 560px) {
	.hero { padding-block-start: 20px; }
	.hero__text { gap: 14px; }
	.hero__callig { width: 260px; }
	.hero__actions { width: 100%; }
	.hero__actions .btn { flex: 1 1 100%; }
	.hero__visual { display: grid; }
	.hero__art { width: 82%; }
	.hero-ep { inset-block-start: 2%; width: 74%; padding: 8px; }
	.hero__live { position: relative; inset: auto; width: 100%; margin-block-start: -64px; }
}

/* Figures ---------------------------------------------------------------- */

.stats { position: relative; padding-block: clamp(26px, 3.5vw, 44px); border-block: 1px solid var(--line); background: var(--bg-2); }
.stats__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px clamp(16px, 3vw, 40px); list-style: none; }
.stat { position: relative; display: grid; grid-template-columns: 52px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 14px; align-items: center; }
.stat + .stat::before { content: ""; position: absolute; inset-block: 6px; inset-inline-start: calc(-1 * clamp(8px, 1.5vw, 20px)); width: 1px; background: var(--line-strong); }
.stat__icon { grid-row: span 2; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--tint-peach); color: var(--peach-ink); }
.stat:nth-child(2) .stat__icon { background: var(--tint-teal); color: var(--teal-ink); }
.stat:nth-child(3) .stat__icon { background: var(--tint-apricot); color: #9A6A1F; }
.stat:nth-child(4) .stat__icon { background: var(--tint-indigo); color: var(--indigo-700); }
.stat__icon .icon { width: 24px; height: 24px; }
.stat__value { color: var(--title); font-family: "Readex Pro", var(--font-ui); font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.5rem); font-weight: 300; line-height: 1.15; letter-spacing: -.01em; font-variant-numeric: tabular-nums lining-nums; }
.stat__label { color: var(--muted); font-size: var(--fs-sm); line-height: 1.5; }
@media (max-width: 560px) {
	.stats__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.stat { grid-template-columns: minmax(0, 1fr); row-gap: 4px; }
	.stat__icon { grid-row: auto; width: 42px; height: 42px; border-radius: 12px; }
	.stat + .stat::before { display: none; }
}

/* Section intros --------------------------------------------------------- */

.intro { display: grid; gap: 12px; justify-items: start; max-width: 760px; margin-block-end: clamp(28px, 4vw, 52px); }
.intro--center { justify-items: center; margin-inline: auto; text-align: center; }
.intro__lead { max-width: 60ch; color: var(--muted); font-size: var(--fs-md); line-height: 1.9; }
.intro .display-title { font-size: clamp(2rem, 1.4rem + 2.2vw, 3.1rem); }

/* Programmes ------------------------------------------------------------- */

.programs { padding-block-end: 0; }
.programs__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 1.8vw, 24px); list-style: none; }
@media (max-width: 1100px) { .programs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .programs__grid { grid-template-columns: minmax(0, 1fr); } }
.program { --tone: var(--peach); --tone-ink: var(--peach-ink); --tone-bg: var(--tint-peach); }
.program--teal { --tone: var(--teal); --tone-ink: var(--teal-ink); --tone-bg: var(--tint-teal); }
.program--apricot { --tone: var(--apricot); --tone-ink: #8A5E17; --tone-bg: var(--tint-apricot); }
.program--indigo { --tone: var(--indigo-500); --tone-ink: var(--indigo-700); --tone-bg: var(--tint-indigo); }
.program__link {
	position: relative;
	display: grid;
	grid-template-rows: auto auto 1fr auto;
	gap: 8px;
	height: 100%;
	overflow: hidden;
	padding: clamp(22px, 2.4vw, 30px);
	border: 1px solid var(--line);
	border-radius: var(--r-xl);
	background: var(--surface);
	color: var(--text);
	box-shadow: var(--shadow-1);
	isolation: isolate;
	transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease), border-color var(--t) var(--ease);
}
.program__link::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(240px circle at var(--mx, 80%) var(--my, 0%), var(--tone-bg), transparent 70%); opacity: .9; transition: opacity var(--t) var(--ease); }
.program__link::after { content: ""; position: absolute; inset-block-start: 0; inset-inline: 0; height: 4px; background: var(--tone); transform: scaleX(0); transform-origin: right; transition: transform 500ms var(--ease-out); }
.dir-ltr .program__link::after { transform-origin: left; }
.program__link:hover { color: var(--text); transform: translateY(-5px); box-shadow: var(--shadow-3); border-color: color-mix(in srgb, var(--tone) 40%, var(--line)); }
.program__link:hover::after { transform: scaleX(1); }
.program__art { display: grid; place-items: center; width: 76px; height: 76px; margin-block-end: 10px; border-radius: 22px; background: var(--tone-bg); color: var(--tone-ink); transition: transform 600ms var(--ease-out), border-radius 600ms var(--ease-out); }
.program__link:hover .program__art { transform: rotate(-6deg) scale(1.06); border-radius: 50%; }
.motif { width: 56px; height: 56px; overflow: visible; }
.motif .fill { fill: currentColor; stroke: none; }
.motif .wave { opacity: .55; }
.program__link:hover .motif .wave, .step:hover .motif .wave { animation: wave 1.2s var(--ease) infinite alternate; }
@keyframes wave { to { opacity: 1; } }
.program__count { position: absolute; inset-block-start: clamp(22px, 2.4vw, 30px); inset-inline-end: clamp(22px, 2.4vw, 30px); padding: .1em .75em; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--tone-ink); font-size: var(--fs-xs); font-weight: 700; }
.program__title { color: var(--title); font-family: var(--font-display); font-size: var(--fs-xl); line-height: 1.4; }
.program__text { color: var(--muted); font-size: var(--fs-sm); line-height: 1.85; }
.program__go { display: grid; place-items: center; width: 42px; height: 42px; margin-block-start: 10px; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--tone-ink); transition: background-color var(--t) var(--ease), color var(--t) var(--ease), transform var(--t) var(--ease), border-color var(--t) var(--ease); }
.program__go .icon { width: 18px; height: 18px; }
.program__link:hover .program__go { border-color: var(--tone-ink); background: var(--tone-ink); color: #fff; transform: translateX(-4px); }
.dir-ltr .program__link:hover .program__go { transform: translateX(4px); }

/* Steps ------------------------------------------------------------------ */

.steps { position: relative; border-block: 1px solid var(--line); background: var(--bg-2); overflow: hidden; isolation: isolate; }
.steps::before { content: ""; position: absolute; inset: 0; z-index: -1; background-color: rgba(61, 64, 91, .05); -webkit-mask: var(--lattice) 0 0 / 56px 56px repeat; mask: var(--lattice) 0 0 / 56px 56px repeat; -webkit-mask-image: var(--lattice), radial-gradient(70% 60% at 50% 0%, #000, transparent 75%); mask-image: var(--lattice), radial-gradient(70% 60% at 50% 0%, #000, transparent 75%); -webkit-mask-size: 56px 56px, 100% 100%; mask-size: 56px 56px, 100% 100%; -webkit-mask-repeat: repeat, no-repeat; mask-repeat: repeat, no-repeat; -webkit-mask-composite: source-in; mask-composite: intersect; }
.steps__list { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(18px, 2.6vw, 40px); list-style: none; counter-reset: step; }
.steps__list::before, .steps__list::after { content: ""; position: absolute; inset-block-start: 48px; inset-inline: 12.5%; height: 2px; }
.steps__list::before { background: repeating-linear-gradient(90deg, var(--line-strong) 0 8px, transparent 8px 16px); }
.steps__list::after { background: linear-gradient(90deg, var(--teal), var(--apricot), var(--peach)); transform: scaleX(0); transform-origin: right; transition: transform 1.6s var(--ease-out) .3s; }
.dir-ltr .steps__list::after { transform-origin: left; }
.steps__list.is-in::after { transform: scaleX(1); }
.step { position: relative; display: grid; justify-items: center; align-content: start; gap: 8px; text-align: center; }
.step__art { position: relative; z-index: 1; display: grid; place-items: center; width: 96px; height: 96px; margin-block-end: 10px; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); color: var(--peach-ink); box-shadow: var(--shadow-2); transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease); }
.step:nth-child(2) .step__art { color: var(--teal-ink); }
.step:nth-child(3) .step__art { color: var(--indigo-700); }
.step:nth-child(4) .step__art { color: var(--peach-ink); }
.step:hover .step__art { transform: translateY(-4px); box-shadow: var(--shadow-3); }
.step__art .motif { width: 50px; height: 50px; }
.step__n { position: absolute; inset-block-start: -2px; inset-inline-end: -2px; display: grid; place-items: center; width: 30px; height: 30px; border: 3px solid var(--bg-2); border-radius: 50%; background: var(--peach-ink); color: #fff; font-family: "Readex Pro", var(--font-ui); font-size: .8rem; font-weight: 600; }
.step__title { font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 400; line-height: 1.45; }
.step__link { padding: 0; border: 0; background: none; color: var(--title); font: inherit; cursor: pointer; }
.step__link:hover { color: var(--peach-ink); }
.step__text { max-width: 30ch; color: var(--muted); font-size: var(--fs-sm); line-height: 1.85; }
@media (max-width: 860px) {
	.steps__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
	.steps__list::before, .steps__list::after { display: none; }
}
@media (max-width: 460px) {
	.steps__list { grid-template-columns: minmax(0, 1fr); }
	.step { grid-template-columns: 76px minmax(0, 1fr); justify-items: start; column-gap: 16px; row-gap: 2px; text-align: start; }
	.step__art { grid-row: span 2; width: 72px; height: 72px; margin: 0; }
	.step__art .motif { width: 38px; height: 38px; }
	.step__n { width: 26px; height: 26px; }
}

/* About teaser ----------------------------------------------------------- */

.about-teaser__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 88px); align-items: center; }
.about-teaser__art { position: relative; margin: 0; isolation: isolate; }
.about-teaser__art::before { content: ""; position: absolute; inset: 8% 4% 4%; z-index: -1; border-radius: 48% 52% 46% 54% / 55% 45% 55% 45%; background: radial-gradient(circle at 40% 40%, var(--tint-apricot), var(--tint-teal) 75%); opacity: .8; animation: blob 18s ease-in-out infinite alternate; }
@keyframes blob { to { border-radius: 56% 44% 52% 48% / 45% 58% 42% 55%; rotate: 8deg; } }
.about-teaser__art img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
.about-teaser__text { display: grid; gap: 16px; justify-items: start; }
.about-teaser__lead { max-width: 58ch; color: var(--text); font-size: var(--fs-md); line-height: 1.95; }
.about-teaser__list { display: grid; gap: 14px; width: 100%; margin-block: 6px 10px; list-style: none; }
.about-teaser__list li { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 14px; align-items: start; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); color: var(--muted); font-size: var(--fs-sm); line-height: 1.8; transition: border-color var(--t) var(--ease), box-shadow var(--t) var(--ease), transform var(--t) var(--ease); }
.about-teaser__list li:hover { border-color: var(--line-strong); box-shadow: var(--shadow-1); transform: translateX(-3px); }
.dir-ltr .about-teaser__list li:hover { transform: translateX(3px); }
.about-teaser__list strong { display: block; color: var(--title); font-size: 1rem; }
.about-teaser__icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: var(--tint-peach); color: var(--peach-ink); }
.about-teaser__list li:nth-child(2) .about-teaser__icon { background: var(--tint-teal); color: var(--teal-ink); }
.about-teaser__list li:nth-child(3) .about-teaser__icon { background: var(--tint-apricot); color: #9A6A1F; }
.about-teaser__icon .icon { width: 20px; height: 20px; }
@media (max-width: 860px) { .about-teaser__grid { grid-template-columns: minmax(0, 1fr); } .about-teaser__art { width: min(100%, 520px); justify-self: center; } }

/* Closing appeal --------------------------------------------------------- */

.closing { padding-block-end: clamp(56px, 7vw, 104px); }
.closing__card { position: relative; display: grid; justify-items: center; gap: 14px; overflow: hidden; padding: clamp(36px, 6vw, 80px) clamp(20px, 5vw, 64px); border: 1px solid rgba(242, 204, 143, .7); border-radius: 32px; background: radial-gradient(90% 120% at 50% 0%, var(--tint-apricot), var(--surface) 70%); text-align: center; box-shadow: var(--shadow-2); isolation: isolate; }
.closing__orn { position: absolute; z-index: -1; width: clamp(160px, 22vw, 300px); color: rgba(224, 122, 95, .35); animation: spin-slow 90s linear infinite; }
.closing__orn--a { inset-block-start: -70px; inset-inline-start: -60px; }
.closing__orn--b { inset-block-end: -80px; inset-inline-end: -70px; animation-direction: reverse; color: rgba(129, 178, 154, .45); }
.closing__seal { position: relative; display: grid; place-items: center; width: 64px; height: 64px; margin-block-end: 6px; border-radius: 50%; background: var(--surface); color: var(--peach-ink); box-shadow: 0 0 0 8px rgba(224, 122, 95, .1), var(--shadow-1); }
.closing__seal .icon { width: 28px; height: 28px; animation: beat 2.4s var(--ease) infinite; }
@keyframes beat { 0%, 60%, 100% { transform: scale(1); } 30% { transform: scale(1.14); } }
.closing__text { max-width: 58ch; color: var(--text); font-size: var(--fs-md); line-height: 1.9; }
.closing__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-block-start: 8px; }
.closing__note { display: inline-flex; align-items: center; gap: .45em; color: var(--muted); font-size: var(--fs-xs); }
.closing__note .icon { width: 14px; height: 14px; }

/* Polish pass (v5.2) ----------------------------------------------------- */

/* Vertical rhythm: two plain sections in a row share one gap instead of adding
   both paddings (about 190 px of empty white on desktop). */
.section:not(.section--band, .steps, .vgrid-section, .reels, .programs) + .section:not(.section--band, .steps, .section--tight),
:has(> .section:not(.section--band, .steps):last-child) + .section:not(.section--band, .steps, .section--tight) { padding-block-start: 0; }
/* Content directly under a page head starts at the same distance on every page. */
.page-head + .section, .about-hero + .section { padding-block-start: clamp(32px, 4vw, 52px); }
.display-title { line-height: 1.42; }

/* Hero: the colour washes fade out before the hero ends instead of stopping at a hard edge. */
.hero { padding-block-end: clamp(32px, 4vw, 60px); }
.hero__bg { -webkit-mask-image: linear-gradient(180deg, #000 72%, transparent); mask-image: linear-gradient(180deg, #000 72%, transparent); }
@media (max-width: 860px) {
	.hero__visual { width: min(100%, 460px); }
}

/* Masthead: balanced line breaks ("والأحد" no longer sits alone on a line). */
.masthead__facts li { text-wrap: balance; }
@media (max-width: 760px) {
	.masthead__grid { grid-template-columns: 96px minmax(0, 1fr) 48px; gap: 10px; }
	.masthead__facts { font-size: .78rem; line-height: 1.55; }
}

/* Figures: two by two on tablets (no lone fourth figure, no stray divider). */
@media (min-width: 561px) and (max-width: 900px) {
	.stats__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 26px; }
	.stat:nth-child(odd)::before { display: none; }
}

/* Short videos in landscape cards: the 9:16 poster centred over a blurred copy of
   itself instead of YouTube's black side bars. */
.card__portrait { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; background: var(--indigo-900); isolation: isolate; }
.card__portrait::before { content: ""; position: absolute; inset: -24px; z-index: -1; background: var(--poster) center / cover no-repeat; filter: blur(20px) saturate(1.25) brightness(.78); }
.card__media .card__portrait img, .result__media .card__portrait img { width: auto; height: 100%; max-width: none; aspect-ratio: 9 / 16; object-fit: cover; box-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 10px 30px rgba(0, 0, 0, .35); }

/* Footer: the seal and the calligraphy as one lock-up; nothing stretched apart. */
.footer__brand { align-content: start; }
.brand--footer { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 16px; }
.brand--footer .brand__tile { width: 48px; height: 48px; border-radius: 13px; }
.brand--footer .brand__mark { width: 34px; }
.brand__callig { width: 260px; }
@media (max-width: 980px) {
	/* The space kept for the tab bar belongs to the footer, so no white strip shows under it. */
	body { padding-block-end: 0; }
	.footer { padding-block-end: calc(68px + env(safe-area-inset-bottom)); }
}
@media (max-width: 520px) {
	.footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
	.footer__brand, .footer__top > .footer__col:last-child { grid-column: 1 / -1; }
	.footer__base { flex-direction: column; align-items: flex-start; }
}

/* Search results line up with the page title. */
.results { max-width: 1000px; }
@media (max-width: 560px) { .result__title { font-size: 1.12rem; line-height: 1.6; } }

/* Phones: shorter topic boxes (three items each) keep the home page from running on. */
@media (max-width: 560px) {
	.box__list li:nth-child(n+4) { display: none; }
}

/* Header refinements (v5.3) ---------------------------------------------- */

/* Masthead: the brand rule (teal, apricot, peach) closes the banner; a gold arch
   frames the portrait; the seal gets a gold inner frame and a soft sheen. */
.masthead { border-block-end: 0; }
.masthead::after { content: ""; position: absolute; inset-inline: 0; inset-block-end: 0; height: 2px; background: linear-gradient(90deg, var(--teal), var(--apricot) 45%, var(--peach)); opacity: .75; }
.masthead__portrait::after { content: ""; position: absolute; z-index: -1; inset-block: 10% -2px; inset-inline: 10%; border: 1px solid rgba(184, 144, 42, .38); border-block-end: 0; border-radius: 999px 999px 0 0; }
.masthead__portrait { isolation: isolate; }
.masthead__portrait::before { z-index: -1; }
.masthead__seal { position: relative; overflow: hidden; background: radial-gradient(120% 80% at 50% 0%, #56794A 0%, transparent 60%), linear-gradient(170deg, #4A6A40, var(--brand-green) 55%, #2F4827); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 22px 40px -22px rgba(30, 50, 25, .85), 0 2px 6px -2px rgba(30, 50, 25, .35); }
.masthead__seal::before { content: ""; position: absolute; inset: 0 9px 9px; border: 1px solid rgba(226, 194, 107, .5); border-block-start: 0; border-radius: 0 0 22px 22px; pointer-events: none; }
.masthead__seal::after { content: ""; position: absolute; inset-block-end: 3px; inset-inline-start: 50%; width: 7px; height: 7px; translate: -50% 0; rotate: 45deg; background: #E2C26B; opacity: .85; }
.dir-rtl .masthead__seal::after { translate: 50% 0; }
@media (max-width: 760px) {
	.masthead__seal::before { inset: 0 5px 5px; border-radius: 0 0 13px 13px; }
	.masthead__seal::after { width: 5px; height: 5px; inset-block-end: 2px; }
	.masthead__portrait::after { inset-inline: 4%; inset-block-start: 14%; }
}

/* Main menu bar: lighter actions, a gradient underline, a soft hover tint. */
.site-header { border-block-end-color: rgba(43, 45, 66, .07); }
.nav__list { gap: clamp(4px, .8vw, 12px); }
.nav__list > li > a { padding: .5em .7em; border-radius: 10px; transition: color var(--t-fast), background-color var(--t-fast); }
.nav__list > li > a:hover { background: var(--tint-peach); color: var(--peach-ink); }
.nav__list > li > a::after { inset-inline: .7em; inset-block-end: -1px; height: 2.5px; background: linear-gradient(90deg, var(--peach), var(--apricot)); }
.dir-rtl .nav__list > li > a::after { background: linear-gradient(270deg, var(--peach), var(--apricot)); }
.nav__list > .current-menu-item > a:hover, .nav__list > .current-menu-ancestor > a:hover { background: transparent; color: var(--title); }
.site-header__actions { gap: 8px; }
.site-header__actions::before { content: ""; width: 1px; height: 26px; margin-inline-end: 6px; background: var(--line-strong); opacity: .7; }
.site-header__login.btn--line { border-color: transparent; background: transparent; box-shadow: none; }
.site-header__login.btn--line:hover { border-color: transparent; background: var(--surface-2); box-shadow: none; transform: none; }
.site-header .icon-btn--line { border-color: transparent; background: var(--surface-2); color: var(--title); }
.site-header .icon-btn--line:hover { background: var(--tint-peach); color: var(--peach-ink); }
.site-header__donate { min-height: 46px; padding-inline: 1.15em 1.35em; background: linear-gradient(180deg, #B4573D, var(--peach-ink)); }
.site-header__donate .icon { width: 17px; height: 17px; }
.site-header__donate:hover { background: linear-gradient(180deg, #A84D35, var(--peach-ink-hover)); }
.site-header__donate:hover .icon { animation: beat 1.2s var(--ease) infinite; }
@media (max-width: 1220px) {
	.nav__list { gap: 0; }
	.nav__list > li > a, .site-header.is-scrolled .nav__list > li > a { padding-inline: .42em; font-size: .94rem; }
	.nav__list > li > a::after, .site-header.is-scrolled .nav__list > li > a::after { inset-inline: .42em; }
	.site-header__actions::before { display: none; }
	.site-header.is-scrolled .brand__text { display: none; }
}
@media (max-width: 1320px) {
	.site-header__login.btn--line { background: var(--surface-2); color: var(--title); }
	.site-header__login.btn--line:hover { background: var(--tint-peach); color: var(--peach-ink); }
}
@media (max-width: 980px) {
	.site-header .icon-btn { width: 42px; height: 42px; }
	.site-header__login.btn--line { width: 42px; min-height: 42px; }
}
/* Once the compact brand slides in, the bar gives it room: tighter items, icon-only log-in. */
.site-header.is-scrolled .nav__list { gap: 2px; }
.site-header.is-scrolled .nav__list > li > a { padding-inline: .5em; }
.site-header.is-scrolled .nav__list > li > a::after { inset-inline: .5em; }
.site-header.is-scrolled .site-header__actions::before { display: none; }
.site-header.is-scrolled .site-header__login { width: 44px; padding: 0; background: var(--surface-2); }
.site-header.is-scrolled .site-header__login span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.site-header.is-scrolled { border-block-end-color: transparent; }
.site-header.is-scrolled::after { content: ""; position: absolute; inset-inline: 0; inset-block-end: -1px; height: 1px; background: linear-gradient(90deg, transparent, rgba(224, 122, 95, .45), transparent); }

/* Languages bar: a quiet paper strip; only the current language is a raised chip. */
.subnav { border-block-end-color: rgba(43, 45, 66, .07); background: var(--bg-2); }
.subnav__in { gap: 12px; }
.subnav__track { padding-block: 7px; }
.subnav__list { gap: 4px; }
.subnav__list a { min-height: 36px; padding: .15em .35em; padding-inline-end: .85em; border-color: transparent; background: transparent; font-size: .9rem; }
.subnav__list a:hover { border-color: transparent; background: var(--surface); color: var(--peach-ink); transform: none; box-shadow: 0 1px 2px rgba(43, 45, 66, .06); }
.subnav__list .is-current { border-color: rgba(168, 77, 53, .28); background: var(--surface); color: var(--peach-ink); box-shadow: 0 2px 8px -4px rgba(168, 77, 53, .35); }
.subnav__code { min-width: 28px; height: 20px; background: rgba(61, 64, 91, .07); font-size: .62rem; }
:root[data-theme="dark"] .subnav__code { background: rgba(244, 241, 222, .1); color: var(--muted); }
:root[data-theme="dark"] .subnav__list .is-current .subnav__code { background: var(--cta); color: #fff; }
.subnav__all { display: inline-flex; flex: none; align-items: center; gap: .45em; min-height: 36px; padding: 0 .9em; border: 0; border-inline-end: 1px solid var(--line-strong); border-radius: 0; background: none; color: var(--title); font-size: .9rem; font-weight: 700; }
.subnav__all .icon { width: 17px; height: 17px; color: var(--peach-ink); transition: transform 600ms var(--ease-out); }
.subnav__all:hover { color: var(--peach-ink); }
.subnav__all:hover .icon { transform: rotate(-30deg); }
.subnav__all-count { display: inline-grid; place-items: center; min-width: 22px; height: 20px; padding-inline: 5px; border-radius: 999px; background: var(--tint-peach); color: var(--peach-ink); font-family: "Readex Pro", var(--font-ui); font-size: .68rem; }
.subnav .icon-btn { width: 32px; height: 32px; border-color: transparent; background: var(--surface); box-shadow: 0 1px 2px rgba(43, 45, 66, .08); }
@media (max-width: 760px) {
	.subnav__all { padding-inline: 0 .7em; }
	.subnav__all-label { display: none; }
}

/* Phones: card rows scroll sideways instead of stacking into a very long page.
   Kept last so no block's own grid columns override it. */
@media (max-width: 560px) {
	.vgrid, .portal .grid--3, .split__cards, .related .grid--3, #videos .grid--3 {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: 80%;
		gap: 14px;
		margin-inline: calc(-1 * var(--gutter));
		padding-inline: var(--gutter);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--gutter);
		scrollbar-width: none;
		padding-block: 4px 12px;
	}
	.vgrid::-webkit-scrollbar, .portal .grid--3::-webkit-scrollbar, .split__cards::-webkit-scrollbar, .related .grid--3::-webkit-scrollbar, #videos .grid--3::-webkit-scrollbar { display: none; }
	.vgrid > *, .portal .grid--3 > *, .split__cards > *, .related .grid--3 > *, #videos .grid--3 > * { scroll-snap-align: start; }
}

/* Scroll reveal: only once the script has set it up, so nothing waits on it. */
.has-reveal [data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity 900ms var(--ease-out), transform 900ms var(--ease-out); transition-delay: calc(var(--i, 0) * 80ms); }
.has-reveal [data-reveal].is-in { opacity: 1; transform: none; }

/* Entrance motion (CSS only: content is never hidden waiting for script). */
@media (prefers-reduced-motion: no-preference) {
	.page-head__text > *, .entry__head .wrap > *, .about-hero__text > * {
		animation: rise var(--t-slow) var(--ease) both;
	}
	.page-head__text > :nth-child(2), .entry__head .wrap > :nth-child(2), .about-hero__text > :nth-child(2) { animation-delay: 80ms; }
	.page-head__text > :nth-child(3), .entry__head .wrap > :nth-child(3), .about-hero__text > :nth-child(3) { animation-delay: 160ms; }
	.page-head__text > :nth-child(n+4), .entry__head .wrap > :nth-child(n+4), .about-hero__text > :nth-child(n+4) { animation-delay: 240ms; }
}
@media (prefers-reduced-motion: no-preference) {
	.masthead__text > *, .masthead__lines, .masthead__phones li { animation: rise 800ms var(--ease-out) both; }
	.masthead__text > :nth-child(2), .masthead__phones li:nth-child(2) { animation-delay: 90ms; }
	.masthead__phones li:nth-child(3) { animation-delay: 180ms; }
	.masthead__phones li:nth-child(4) { animation-delay: 270ms; }
	.masthead__portrait { animation: art-in 1s var(--ease-out) both; }
	.masthead__seal { animation: drop 900ms var(--ease-out) .1s both; }
	.hero__text > * { animation: rise 900ms var(--ease-out) both; }
	.hero__text > :nth-child(2) { animation-delay: 90ms; }
	.hero__text > :nth-child(3) { animation-delay: 180ms; }
	.hero__text > :nth-child(4) { animation-delay: 270ms; }
	.hero__text > :nth-child(n+5) { animation-delay: 360ms; }
	.hero__line--accent { animation: highlight 1.1s var(--ease-out) .7s both; }
	.hero__art { animation: art-in 1.4s var(--ease-out) .1s both; }
	.hero__rosette { animation: spin-slow 160s linear 2.6s infinite; }
	.hero__rosette g > * { stroke-dasharray: 1; stroke-dashoffset: 1; animation: draw 2.4s var(--ease-in-out) both; }
	.hero__rosette circle:first-child { stroke-dasharray: 2 6; stroke-dashoffset: 0; animation: fade-in 2s ease .3s both; }
	.hero__rosette g > :nth-child(2) { animation-delay: .2s; }
	.hero__rosette g > :nth-child(3) { animation-delay: .4s; }
	.hero__rosette g > :nth-child(4) { animation-delay: .55s; }
	.hero__rosette g > :nth-child(5) { animation-delay: .7s; }
	.hero__rosette g > :nth-child(6) { animation-delay: .85s; }
	.hero-ep { animation: pop 900ms var(--ease-out) .6s both, bob 7s ease-in-out 1.5s infinite alternate; }
	.hero__live { animation: pop 900ms var(--ease-out) .8s both, bob 8s ease-in-out 1.7s infinite alternate-reverse; }
	.hero__glow { animation: glow 4s ease-in-out infinite alternate; }
	.hero__motes i { animation: mote 6s linear infinite; }
	.hero__motes i:nth-child(2) { animation-delay: 1.1s; animation-duration: 7s; }
	.hero__motes i:nth-child(3) { animation-delay: 2.3s; }
	.hero__motes i:nth-child(4) { animation-delay: 3.1s; animation-duration: 8s; }
	.hero__motes i:nth-child(5) { animation-delay: 4.2s; animation-duration: 6.5s; }
	.hero__motes i:nth-child(6) { animation-delay: 5s; animation-duration: 7.5s; }
}
@keyframes rise { from { opacity: 0; transform: translateY(14px); } }
@keyframes drop { from { opacity: 0; transform: translateY(-24px); } }
@keyframes highlight { from { background-size: 0% 100%; } }
@keyframes art-in { from { opacity: 0; transform: translateY(18px) scale(.97); } }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes pop { from { opacity: 0; transform: translateY(22px) scale(.96); } }
@keyframes bob { from { transform: translateY(0); } to { transform: translateY(-10px); } }
@keyframes glow { from { opacity: .55; scale: .9; } to { opacity: 1; scale: 1.1; } }
@keyframes mote { 0% { opacity: 0; transform: translateY(0); } 15% { opacity: .9; } 100% { opacity: 0; transform: translateY(-220px) translateX(10px); } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		animation-delay: 0s !important;
		transition-duration: .01ms !important;
		transition-delay: 0s !important;
		scroll-behavior: auto !important;
	}
	.ticker__track { animation: none !important; }
	.has-reveal [data-reveal] { opacity: 1; transform: none; }
	.ticker__viewport { overflow-x: auto; }
}

/* Print ------------------------------------------------------------------ */

@media print {
	@page { margin: 18mm 16mm; }
	:root { --text: #000; --title: #000; --muted: #444; --line: #ccc; --surface: #fff; --bg: #fff; --bg-2: #fff; }
	body { background: #fff; color: #000; padding: 0; }
	.site-header, .masthead, .subnav, .ticker, .footer, .tabbar, .sheet, .entry__aside, .entry__tools, .give-card, .adjacent, .related,
	.support, .player__button, .player__fallback, .crumbs, .skip-link, .tags, .entry__pattern, .entry__cats, #wpadminbar { display: none !important; }
	.entry__head { padding: 0 0 12pt; text-align: start; }
	.entry__head .wrap { justify-items: start; }
	.entry__grid { display: block; padding: 0; }
	.wrap { width: 100%; }
	.entry__head::before { content: ""; display: block; width: 160px; aspect-ratio: 2390 / 426; margin-block-end: 14px; background: url("../img/hajj-waad-ink.png") center / contain no-repeat; }
	.entry__title { font-size: 22pt; }
	.entry__meta { justify-content: flex-start; color: #444; }
	.print-url { display: block !important; margin-block-start: 24px; padding-block-start: 10px; border-block-start: 1px solid #ccc; color: #444; font: 9pt/1.4 system-ui, sans-serif; }
	.prose { font-size: 13pt; line-height: 1.95; color: #000; }
	.prose a { color: #000; text-decoration: none; }
	.prose img { box-shadow: none; max-height: 120mm; }
	.prose blockquote { background: #f2f2f2; color: #000; }
	.player { box-shadow: none; aspect-ratio: auto; background: none; }
	.player > img { max-height: 80mm; width: auto; }
}
.print-url { display: none; }

/* ==========================================================================
   Refinements (v5.4): header, hero, log-in dialog, home rhythm, reading pages
   ========================================================================== */

/* Spacing system. One gap between home sections, one between blocks inside a
   section; both scale from phones to wide screens. */
:root {
	--space-section: clamp(52px, 6.4vw, 92px);
	--space-block: clamp(36px, 4.4vw, 60px);
}

/* Masthead -------------------------------------------------------------- */

/* The whole banner leads home (the title link stretches over it); the call-in
   numbers stay their own links above that layer. */
.masthead__title::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.masthead__title:focus-visible { outline-offset: 6px; }
.masthead__lines { z-index: 2; }

/* The name seal and the numbers panel: the same height, both centred in the banner,
   the seal in twilight indigo with its gold frame. No hover movement. */
.masthead__seal,
.masthead__lines { align-self: stretch; height: auto; max-height: none; margin-block: clamp(18px, 1.9vw, 28px); }
@media (min-width: 1181px) { .masthead__lines { display: grid; align-content: center; } }
.masthead__seal {
	align-self: stretch;
	border-radius: 18px;
	background:
		radial-gradient(120% 70% at 50% 0%, rgba(129, 178, 154, .22), transparent 62%),
		linear-gradient(165deg, var(--indigo-700), var(--indigo-900) 55%, var(--indigo-950));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 14px 30px -22px rgba(30, 32, 50, .7);
	transition: none;
}
.masthead__seal:hover { color: #fff; transform: none; }
.masthead__seal::before { inset: 7px; border: 1px solid rgba(226, 194, 107, .5); border-radius: 12px; }
.masthead__seal::after { display: none; }
@media (max-width: 760px) {
	/* Phones: no numbers panel beside it, so the seal stays a compact tile. */
	.masthead__seal { align-self: center; height: min(112px, 100% - 28px); margin-block: 0; border-radius: 13px; }
	.masthead__seal::before { inset: 4px; border-radius: 9px; }
}

/* The compact brand tile (menu bar, footer, dialogs) matches the seal. */
.brand__tile { background: linear-gradient(165deg, var(--indigo-700), var(--indigo-900) 60%, var(--indigo-950)); box-shadow: inset 0 0 0 1px rgba(226, 194, 107, .35); }

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

/* The tagline sits in the text column as a quiet line, no pill around it. */
.hero__eyebrow { padding: 0; border: 0; background: none; box-shadow: none; color: var(--teal-ink); letter-spacing: .01em; }

/* Three equal buttons: donate, library, call in. */
.hero__actions { gap: 12px; }
.hero__actions .btn { min-width: 0; }
.btn--call { position: relative; border-color: rgba(58, 111, 90, .28); background: var(--tint-teal); color: var(--teal-ink); }
.btn--call:hover { border-color: var(--teal-ink); background: var(--teal-ink); color: #fff; box-shadow: 0 14px 28px -16px rgba(58, 111, 90, .8); transform: translateY(-1px); }
.btn__pulse { position: relative; flex: none; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.btn__pulse::after { content: ""; position: absolute; inset: -4px; border: 1.5px solid currentColor; border-radius: 50%; opacity: 0; }
@media (prefers-reduced-motion: no-preference) {
	.btn__pulse::after { animation: ring 2.2s var(--ease-out) infinite; }
}
@keyframes ring { 0% { opacity: .7; transform: scale(.6); } 100% { opacity: 0; transform: scale(1.8); } }

/* The latest landscape video over the mihrab: the player in a white frame, with
   only a small "new" badge until it plays (no title). */
.hero-ep {
	inset-block-start: 2%;
	inset-inline-end: -6%;
	display: block;
	width: min(470px, 112%);
	padding: 8px;
	border-radius: 22px;
}
.hero--give .hero-ep { inset-inline-end: -6%; }
.hero-ep .player { border-radius: 15px; box-shadow: none; }
.hero-ep .player__icon { width: clamp(56px, 5vw, 70px); box-shadow: 0 0 0 10px rgba(255, 255, 255, .25), 0 16px 30px -10px rgba(0, 0, 0, .5); }
.hero-ep .player__fallback { display: none; }
.hero-ep__badge {
	position: absolute;
	z-index: 2;
	inset-block-start: 18px;
	inset-inline-start: 18px;
	display: inline-flex;
	align-items: center;
	gap: .45em;
	padding: .2em .75em .25em;
	border-radius: 999px;
	background: var(--peach-ink);
	color: #fff;
	font-size: var(--fs-xs);
	font-weight: 700;
	line-height: 1.6;
	box-shadow: 0 6px 16px -6px rgba(168, 77, 53, .8);
	pointer-events: none;
}
.hero-ep__badge .live-dot { width: 6px; height: 6px; background: #fff; box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); }
.hero-ep:has(.is-playing) .hero-ep__badge { display: none; }
.hero__visual { min-height: clamp(560px, 46vw, 640px); }
/* Three columns: the video's top edge lines up with the giving card's. */
@media (min-width: 1241px) {
	.hero--give .hero__visual, .hero--give .hero__give { align-self: start; }
	.hero--give .hero-ep { inset-block-start: 0; }
}
@media (prefers-reduced-motion: no-preference) {
	.hero-ep { animation: pop 900ms var(--ease-out) .6s both; }
}
/* Tablets and phones: the video, then the live card, stacked in the column with the
   page's gutter on both sides; the illustration stays on wider screens. */
@media (max-width: 860px) {
	.hero__visual { display: grid; gap: 16px; width: min(100%, 560px); min-height: 0; place-items: stretch; }
	.hero__art, .hero__rosette, .hero__glow, .hero__motes { display: none; }
	.hero-ep, .hero--give .hero-ep { position: relative; inset: auto; width: 100%; }
	.hero__live, .hero--give .hero__live { position: relative; inset: auto; width: 100%; margin: 0; }
}
@media (max-width: 560px) {
	.hero-ep { padding: 6px; border-radius: 18px; }
	.hero-ep .player { border-radius: 13px; }
	.hero-ep__badge { inset-block-start: 14px; inset-inline-start: 14px; }
	.hero__actions .btn { flex: 1 1 100%; }
	.hero .live { padding: 16px; gap: 4px 14px; grid-template-columns: 56px minmax(0, 1fr); }
	.hero .live__portrait { width: 56px; height: 56px; }
	.hero .days { gap: 3px; }
}

/* Giving card: the bank details open smoothly and always stay inside the card. */
.ways, .way--details { min-width: 0; }
.way__panel { padding: 0 14px 14px; }
.way--details .way__panel .bank__list { padding: 0; }
.bank__row { flex-wrap: wrap; gap: 2px 10px; min-width: 0; }
.bank__row dt { flex: none; }
.bank__row dd { flex: 1 1 auto; justify-content: flex-end; min-width: 0; }
.bank__row code { min-width: 0; overflow-wrap: anywhere; text-align: end; }
.way--details[open] .way__panel { animation: panel-in 280ms var(--ease-out); }
@keyframes panel-in { from { opacity: 0; transform: translateY(-6px); } }
@supports (interpolate-size: allow-keywords) {
	.way--details { interpolate-size: allow-keywords; }
	.way--details::details-content { block-size: 0; overflow: clip; transition: block-size 280ms var(--ease), content-visibility 280ms allow-discrete; }
	.way--details[open]::details-content { block-size: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.way--details[open] .way__panel { animation: none; }
	.way--details::details-content { transition: none; }
}

/* Log-in dialog ----------------------------------------------------------- */

.sheet--login { width: min(100% - 32px, 460px); }
.login__brand { display: flex; align-items: center; gap: 14px; }
.login__brand .brand__tile { flex: none; width: 50px; height: 50px; }
.login__brand .brand__mark { width: 36px; }
.login { display: grid; gap: 16px; }
.login__field { display: grid; gap: 6px; }
.login__label { color: var(--title); font-size: var(--fs-sm); font-weight: 700; }
.login input[type="text"], .login input[type="password"] {
	width: 100%;
	height: 50px;
	padding-inline: 14px;
	border: 1px solid var(--line-strong);
	border-radius: 14px;
	background: var(--bg);
	color: var(--title);
	font-family: "Readex Pro", var(--font-ui);
	font-size: 1rem;
	transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.login input[type="text"]:focus, .login input[type="password"]:focus { border-color: var(--peach-ink); outline: none; box-shadow: 0 0 0 3px rgba(224, 122, 95, .2); }
.login__pass { position: relative; display: block; }
.login__pass input { padding-right: 52px; }
.login__eye { position: absolute; inset-block: 3px; right: 3px; display: grid; place-items: center; width: 44px; padding: 0; border: 0; border-radius: 11px; background: transparent; color: var(--muted); }
.login__eye:hover, .login__eye[aria-pressed="true"] { background: var(--surface-2); color: var(--title); }
.login__eye .icon { width: 20px; height: 20px; }
.login__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; font-size: var(--fs-sm); }
.login__remember { display: inline-flex; align-items: center; gap: .5em; color: var(--text); cursor: pointer; }
.login__remember input { width: 18px; height: 18px; accent-color: var(--peach-ink); }
.login__lost { color: var(--peach-ink); font-weight: 700; }
.login__lost:hover { color: var(--peach-ink-hover); text-decoration: underline; }
.login .btn[disabled] { opacity: .7; cursor: progress; }

/* Home page rhythm ---------------------------------------------------------- */

.home .vgrid-section,
.home .reels,
.home .programs { padding-block: var(--space-section) 0; }
.home .reels + .programs { padding-block-start: var(--space-section); }
.home .portal { padding-block: var(--space-section); }
.home .portal__feed { gap: var(--space-block); }
.home .steps,
.home .about-teaser { padding-block: var(--space-section); }
.home .closing { padding-block: 0 var(--space-section); }
.home .section-head { margin-block-end: clamp(20px, 2.4vw, 30px); }

/* Reading pages: the sidebar on the reading side --------------------------- */

/* Right in Arabic (left in left-to-right languages), above the content on tablets
   and phones as before for posts; after it for category lists. */
@media (min-width: 1081px) {
	.entry__grid { grid-template-columns: 300px minmax(0, 1fr); }
	.entry__aside { grid-column: 1; grid-row: 1; }
	.entry__main { grid-column: 2; grid-row: 1; }
}
@media (min-width: 981px) {
	.listing--aside-start { grid-template-columns: 300px minmax(0, 1fr); }
	.listing--aside-start .listing__side { grid-column: 1; grid-row: 1; position: static; }
	.listing--aside-start .listing__main { grid-column: 2; grid-row: 1; }
}
.entry__aside, .listing__side { gap: 20px; }
.tree-box__toggle { min-height: 58px; color: var(--title); font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 400; }
.tree-box__toggle .icon:first-child { color: var(--ornament); }
.tree-box[open] > .tree-box__toggle { border-block-end: 0; }
.ask__title { font-size: var(--fs-lg); }

/* Article cards without images ("note" variant): related posts that are not
   videos and sections with no videos. Same tile, border and footer as the video
   cards; a kind mark and a longer excerpt take the image's place. */
.card--note { isolation: isolate; }
.card--note::before { content: ""; position: absolute; inset-inline: 0; inset-block-start: 0; height: 3px; background: linear-gradient(90deg, var(--teal), var(--apricot) 45%, var(--peach)); opacity: .85; }
.dir-rtl .card--note::before { background: linear-gradient(270deg, var(--teal), var(--apricot) 45%, var(--peach)); }
.card--note::after { content: ""; position: absolute; z-index: -1; inset-block-start: -38px; inset-inline-end: -38px; width: 132px; height: 132px; background: var(--apricot); opacity: .16; -webkit-mask: var(--lattice) center / 56px 56px; mask: var(--lattice) center / 56px 56px; border-radius: 50%; }
.card__mark { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 20px 20px 0; color: var(--muted); font-size: var(--fs-xs); font-weight: 700; }
.card__mark-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--tint-peach); color: var(--peach-ink); }
.card--video .card__mark-icon { background: var(--tint-indigo); color: var(--indigo-700); }
.card__mark-icon .icon { width: 18px; height: 18px; }
.card--note .card__body { grid-template-rows: auto auto 1fr auto; gap: 8px; padding: 12px 20px 16px; }
.card--note .card__title { min-height: 0; font-size: 1.24rem; -webkit-line-clamp: 3; }
.card--note .card__excerpt { display: -webkit-box; overflow: hidden; color: var(--text); font-family: var(--font-display); font-size: 1.04rem; line-height: 1.9; -webkit-line-clamp: 4; -webkit-box-orient: vertical; }
.dir-ltr .card--note .card__excerpt { font-family: var(--font-ui); font-size: var(--fs-sm); line-height: 1.7; }
.card--note:hover .card__mark-icon { background: var(--peach-ink); color: #fff; }
.card__mark-icon { transition: background-color var(--t) var(--ease), color var(--t) var(--ease); }
.grid--notes { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }

/* Scholars page ------------------------------------------------------------ */

.scholars-intro { position: relative; display: grid; justify-items: center; gap: 14px; max-width: 760px; margin: 0 auto clamp(36px, 5vw, 60px); text-align: center; }
.scholars-intro__orn { color: #B8902A; }
.scholars-intro__orn .icon { width: 22px; height: 22px; }
.scholars-intro .prose p { font-size: var(--fs-md); line-height: 2.05; }
.scholars { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: clamp(18px, 2.6vw, 32px); max-width: 980px; margin-inline: auto; list-style: none; }
.scholar__figure {
	display: grid;
	justify-items: center;
	gap: 18px;
	height: 100%;
	margin: 0;
	padding: clamp(26px, 3vw, 34px) 20px 26px;
	border: 1px solid rgba(242, 204, 143, .7);
	border-radius: var(--r-xl);
	background: linear-gradient(180deg, var(--tint-apricot), var(--surface) 62%);
	box-shadow: var(--shadow-1);
	text-align: center;
	transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.scholar__figure:hover { transform: translateY(-4px); box-shadow: var(--shadow-3); }
.scholar__portrait { display: block; width: min(184px, 72%); aspect-ratio: 1; padding: 6px; border: 1px solid rgba(184, 144, 42, .5); border-radius: 50%; background: var(--surface); box-shadow: 0 0 0 6px var(--surface), 0 0 0 7px rgba(184, 144, 42, .2), 0 18px 34px -22px rgba(43, 45, 66, .6); }
.scholar__img { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; object-position: 50% 18%; }
.scholar__name { display: grid; justify-items: center; gap: 10px; color: var(--title); font-family: var(--font-display); font-size: var(--fs-xl); line-height: 1.5; }
.scholar__name::after { content: ""; width: 7px; height: 7px; background: var(--peach); transform: rotate(45deg); }

/* Single posts: body text justified by default, like a printed page. Alignment an
   editor set on a paragraph (inline style or block class) still applies. */
.single .entry__body .prose :is(p, li, dd, blockquote) { text-align: justify; text-justify: inter-word; }
.single .entry__body .prose .has-text-align-center { text-align: center; }
.single .entry__body .prose .has-text-align-left { text-align: left; }
.single .entry__body .prose .has-text-align-right { text-align: right; }
.single .entry__body .prose .basmala { text-align: center; }
