/*
Theme Name: إعجام
Theme URI: https://cicerwan.net/
Author: مروان الرشيد
Author URI: https://cicerwan.net/
Description: قالب مدونة إعجام: قالب كتل عربي للقراءة الطويلة، بخط Scheherazade New للنص وTajawal للواجهة.
Version: 1.0.6
Requires at least: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ijam
Tags: blog, rtl-language-support, full-site-editing, block-patterns, one-column, editor-style
*/

/* ---------- Base ---------- */

:root {
	--ijam-tha: radial-gradient(circle at 7.5px 3px, var(--wp--preset--color--accent) 2.6px, transparent 3px),
		radial-gradient(circle at 3px 11px, var(--wp--preset--color--accent) 2.6px, transparent 3px),
		radial-gradient(circle at 12px 11px, var(--wp--preset--color--accent) 2.6px, transparent 3px);
}

body {
	direction: rtl; /* also makes the block editor's writing area right-to-left when the admin is in English */
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

:where(a, button, input, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

/* Site name in manuscript style: dots, hamza and harakat in red, letters in ink.
   The link text (إعْجَام) is drawn in red; a dotless copy (اعحام) in ink sits exactly on top. */
.wp-block-site-title a,
.wp-block-site-title a:hover,
.wp-block-site-title a:focus {
	position: relative;
	display: inline-block;
	color: var(--wp--preset--color--accent);
}

.wp-block-site-title a::before {
	content: "اعحام" / "";
	position: absolute;
	top: 0;
	right: 0;
	color: var(--wp--preset--color--ink);
	-webkit-text-stroke: 0.6px var(--wp--preset--color--ink);
	white-space: nowrap;
	pointer-events: none;
}

/* The accent dot after the site name - the "إعجام" mark */
.wp-block-site-title a::after {
	content: "";
	display: inline-block;
	width: 0.19em;
	height: 0.19em;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
	vertical-align: top;
	margin-block-start: 0.3em;
	margin-inline-start: 0.16em;
}

/* Three-dot (ث) ornament: separator style and section-title mark */
.wp-block-separator.is-style-ijam-tha {
	border: 0;
	width: 15px;
	height: 14px;
	max-width: none;
	background: var(--ijam-tha);
	opacity: 1;
	margin-inline: auto;
}

.ijam-section-title {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-block: 0 8px;
}

.ijam-section-title::before {
	content: "";
	flex: 0 0 15px;
	height: 14px;
	background: var(--ijam-tha);
}

.ijam-label.wp-block-heading {
	margin: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
}

.wp-block-query .wp-block-post-template {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ---------- Header ---------- */

.ijam-header {
	padding-block: 28px 24px;
	row-gap: 16px;
	column-gap: 40px;
	align-items: flex-end;
}

.ijam-header--home {
	border-block-end: 1px solid var(--wp--preset--color--ink);
}

.ijam-header--compact {
	padding-block: 20px 16px;
	align-items: center;
	border-block-end: 1px solid var(--wp--preset--color--rule);
}

.ijam-header--compact .wp-block-site-title {
	font-size: 28px;
	margin: 0;
}

/* Scheherazade's deep descenders (إ، ج) need room above the tagline */
.ijam-brand {
	gap: 10px;
}

.ijam-brand .wp-block-site-title {
	line-height: 1.5;
}

.ijam-brand .wp-block-site-title,
.ijam-brand .wp-block-site-tagline {
	margin: 0;
}

.ijam-nav {
	gap: 20px;
	align-items: center;
}

.ijam-nav .wp-block-navigation-item__content {
	padding-block: 10px;
}

.ijam-nav .wp-block-search__button {
	width: 44px;
	height: 44px;
	padding: 0;
	margin: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--ink);
}

.ijam-nav .wp-block-search__button:hover {
	background: transparent;
	color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
}

.ijam-nav .wp-block-search__button svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.ijam-nav .wp-block-search__input {
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: 999px;
	padding-inline: 16px;
	min-height: 44px;
	font-family: inherit;
}

/* ---------- Home: featured post + about ---------- */

.ijam-hero {
	padding-block: clamp(40px, 6vw, 64px) clamp(48px, 6vw, 72px);
	gap: 48px 72px;
	align-items: flex-start;
}

.ijam-hero > .ijam-featured {
	flex: 999 1 560px;
	min-width: 0;
}

.ijam-hero > .ijam-about {
	flex: 1 1 260px;
	border-block-start: 3px solid var(--wp--preset--color--accent);
	padding-block-start: 12px;
}

.ijam-featured__meta {
	gap: 8px 14px;
	align-items: center;
}

.ijam-eyebrow {
	margin: 0;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1.6;
	color: var(--wp--preset--color--accent);
}

.ijam-featured .wp-block-post-title {
	font-size: var(--wp--preset--font-size--display);
	line-height: 1.25;
	margin-block: 16px 0;
}

.ijam-featured .wp-block-post-excerpt {
	max-width: 680px;
	color: var(--wp--preset--color--ink-soft);
	font-size: var(--wp--preset--font-size--body);
	margin-block-start: 20px;
}

.ijam-featured .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.ijam-featured .wp-block-post-excerpt__more-text {
	margin-block-start: 20px;
}

.ijam-featured .wp-block-post-excerpt__more-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding-inline: 22px;
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.5;
	text-decoration: none;
}

.ijam-featured .wp-block-post-excerpt__more-link:hover {
	border-color: var(--wp--preset--color--accent);
}

.ijam-about p {
	margin-block: 12px 0;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.95;
}

/* ---------- Numbered index (الفهرس) ---------- */

.ijam-index-section {
	padding-block-end: 56px;
}

.ijam-index .wp-block-post-template {
	counter-reset: ijam var(--ijam-start, 0);
	border-block-end: 1px solid var(--wp--preset--color--rule);
}

.ijam-index .wp-block-post-template > li {
	counter-increment: ijam;
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) 150px;
	column-gap: 40px;
	row-gap: 8px;
	margin: 0;
	padding-block: 28px;
	border-block-start: 1px solid var(--wp--preset--color--rule);
}

.ijam-index .wp-block-post-template > li::before {
	content: counter(ijam, arabic-indic);
	grid-column: 1;
	grid-row: 1 / span 2;
	padding-block-start: 0.6em;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	color: var(--wp--preset--color--accent);
}

.ijam-index .wp-block-post-template > li > * {
	margin: 0;
}

.ijam-index .wp-block-post-title {
	grid-column: 2;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
}

.ijam-index .wp-block-post-excerpt {
	grid-column: 2;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.95;
	color: var(--wp--preset--color--muted);
}

.ijam-index .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.ijam-index .wp-block-post-date {
	grid-column: 3;
	grid-row: 1;
	padding-block-start: 0.7em;
}

/* On the first page of the home, the newest post is already featured above */
body.home:not(.paged) .ijam-index--skip-first .wp-block-post-template > li:first-child {
	display: none;
}

.ijam-index .wp-block-query-pagination {
	padding-block-start: 24px;
}

.ijam-index .wp-block-query-pagination a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

@media (max-width: 640px) {
	.ijam-index .wp-block-post-template > li {
		grid-template-columns: 28px minmax(0, 1fr);
		column-gap: 16px;
	}

	.ijam-index .wp-block-post-date {
		grid-column: 2;
		grid-row: auto;
		padding: 0;
	}
}

/* ---------- Archive / search / 404 ---------- */

.ijam-archive {
	padding-block: clamp(40px, 6vw, 64px) 56px;
}

.ijam-archive-head {
	margin-block-end: 24px;
}

.ijam-archive-head .wp-block-query-title {
	margin: 0;
}

/* ---------- Single post ---------- */

.ijam-single {
	padding-block: clamp(48px, 7vw, 72px) 40px;
}

.ijam-post-header {
	text-align: center;
	margin-block-end: 48px;
}

.ijam-post-header .wp-block-post-title {
	font-size: var(--wp--preset--font-size--display);
	line-height: 1.25;
	margin-block: 16px 0;
}

.ijam-byline {
	justify-content: center;
	gap: 4px 14px;
	color: var(--wp--preset--color--muted);
}

.ijam-byline > * {
	margin: 0;
}

.ijam-byline .wp-block-post-author-name a {
	color: var(--wp--preset--color--ink);
}

.ijam-post-header .wp-block-separator.is-style-ijam-tha {
	margin-block-start: 28px;
}

.ijam-content {
	line-height: 2.15;
}

/* Justified article text, Arabic-style: spaces stretch, hyphenation off */
.ijam-content :where(p, li, .wp-block-quote p) {
	text-align: justify;
	text-justify: inter-word;
	hyphens: none;
}

.ijam-content a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.35em;
}

.ijam-content h2::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
	vertical-align: middle;
	margin-inline-end: 12px;
}

.ijam-content .wp-block-quote,
.ijam-content blockquote:not(.wp-block-pullquote blockquote) {
	margin-inline: 0;
	padding-inline-start: 24px;
	border-inline-start: 3px solid var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--body);
	line-height: 2;
}

.ijam-content .wp-block-quote cite {
	display: block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	color: var(--wp--preset--color--muted);
}

.ijam-content img {
	height: auto;
}

.ijam-content sup.fn a,
.ijam-content sup a[href^="#"] {
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.6em;
	font-weight: 700;
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

.wp-block-footnotes {
	margin-block-start: 48px;
	padding-block-start: 16px;
	border-block-start: 1px solid var(--wp--preset--color--rule);
}

.ijam-post-footer {
	margin-block-start: 64px;
	gap: 32px;
}

.ijam-author-box {
	padding-block: 28px;
	border-block: 1px solid var(--wp--preset--color--rule);
	border-block-start-color: var(--wp--preset--color--ink);
	gap: 8px;
}

.ijam-author-box > * {
	margin: 0;
}

.ijam-author-box .wp-block-post-author-name {
	font-family: var(--wp--preset--font-family--naskh);
	font-size: 19px;
	font-weight: 700;
}

.ijam-post-nav {
	gap: 16px;
}

.ijam-post-nav .wp-block-post-navigation-link {
	max-width: 360px;
}

.ijam-post-nav .post-navigation-link__label {
	display: block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.ijam-post-nav .post-navigation-link__title {
	display: block;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.6;
}

/* ---------- Footer ---------- */

.ijam-footer {
	padding-block: 32px 40px;
	gap: 20px;
	align-items: center;
	border-block-start: 1px solid var(--wp--preset--color--rule);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.ijam-footer p {
	margin: 0;
}

.ijam-footer .wp-block-site-title {
	font-size: 24px;
	margin: 0;
}

.ijam-footer__brand {
	gap: 12px;
	align-items: center;
}

.ijam-footer .wp-block-social-links .wp-social-link {
	color: var(--wp--preset--color--muted);
}

.ijam-footer .wp-block-social-links .wp-social-link:hover {
	color: var(--wp--preset--color--accent);
}

/* ---------- Diagrams (ijam-flow): live-text flow charts in posts ----------
   .ijam-flow            vertical flow; an arrow points into every item after the first
   .ijam-flow__row       items side by side; each item gets its own arrow in and arrow out
   .ijam-flow__col       a vertical sub-flow inside a row
   .ijam-flow__step      a box; --key = accent outline, --end = filled accent conclusion
   .ijam-flow__label     small sans label inside a box */
.ijam-content .ijam-flow {
	--ijam-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='24' viewBox='0 0 10 24'%3E%3Cpath d='M5 0V18' stroke='%23A12C1F' stroke-width='1.2'/%3E%3Cpath d='M0.5 16.5L5 24L9.5 16.5Z' fill='%23A12C1F'/%3E%3C/svg%3E");
	max-width: 36rem;
	margin: 2.75rem auto !important;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}
.ijam-flow > *,
.ijam-flow__col > *,
.ijam-flow__row > * {
	margin: 0 !important;
	position: relative;
}
.ijam-flow > * + *,
.ijam-flow__col > * + * {
	margin-top: 2.25rem !important;
}
/* the arrow: one into each item after the first ... */
.ijam-flow > * + *::before,
.ijam-flow__col > * + *::before,
:is(.ijam-flow, .ijam-flow__col) > * + .ijam-flow__row > *::before,
:is(.ijam-flow, .ijam-flow__col) > .ijam-flow__row:not(:last-child) > *::after {
	content: "";
	position: absolute;
	top: -1.9rem;
	right: calc(50% - 5px);
	width: 10px;
	height: 1.5rem;
	background: var(--ijam-arrow) center / 10px 100% no-repeat;
}
/* ... a row has no arrow of its own: each of its items gets one in ... */
.ijam-flow > * + .ijam-flow__row::before,
.ijam-flow__col > * + .ijam-flow__row::before,
/* ... and one out, so the item after a row needs none */
:is(.ijam-flow, .ijam-flow__col) > .ijam-flow__row + *::before {
	content: none;
}
:is(.ijam-flow, .ijam-flow__col) > .ijam-flow__row:not(:last-child) > *::after {
	top: auto;
	bottom: -1.9rem;
}
.ijam-flow__row {
	display: flex;
	gap: 0.75rem;
	align-items: stretch;
}
.ijam-flow__row > * {
	flex: 1 1 0;
	min-width: 0;
}
.ijam-flow__col {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
.ijam-content .ijam-flow__step {
	display: block;
	align-content: center;
	border: 1px solid var(--wp--preset--color--rule);
	background: var(--wp--preset--color--white);
	padding: 0.6rem 1rem;
	text-align: center;
	text-align-last: center;
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.75;
	color: var(--wp--preset--color--ink);
}
.ijam-content .ijam-flow__step--key {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
	font-weight: 700;
}
.ijam-content .ijam-flow__step--end {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--body);
}
.ijam-flow__label {
	display: block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.78em;
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}
.ijam-flow__step--end strong { color: inherit; }
@media (max-width: 600px) {
	.ijam-flow__row { gap: 0.4rem; }
	.ijam-content .ijam-flow__row .ijam-flow__step {
		padding: 0.5rem 0.4rem;
		font-size: var(--wp--preset--font-size--small);
		line-height: 1.65;
	}
	/* a row nested in a column stacks on phones, as one group with a single arrow out */
	.ijam-flow__col > .ijam-flow__row { flex-direction: column; gap: 0.4rem; }
	.ijam-flow__col > .ijam-flow__row:not(:last-child) > *:not(:last-child)::after { content: none; }
}

/* ---------- Works list (مؤلَّفاته): one title per line, year in a column ---------- */
.ijam-content .ijam-works {
	list-style: none;
	padding: 0 !important;
	margin-inline: 0;
}
.ijam-content .ijam-works > li {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	margin: 0;
	padding: 0.3rem 0;
	border-bottom: 1px solid var(--wp--preset--color--rule);
	text-align: start;
	text-align-last: auto;
}
.ijam-content .ijam-works > li:last-child {
	border-bottom: 0;
}
.ijam-works__year {
	flex: 0 0 2.75rem;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.78em;
	color: var(--wp--preset--color--accent);
	font-variant-numeric: tabular-nums;
}
.ijam-works__meta {
	display: block;
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.72em;
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
}
.ijam-works__meta span[lang="en"] {
	unicode-bidi: isolate;
}

/* Featured image (single): never upscale, cap tall images */
.ijam-single .wp-block-post-featured-image {
	text-align: center;
}
.ijam-single .wp-block-post-featured-image img {
	width: auto !important;
	max-width: 100%;
	height: auto !important;
	max-height: 520px;
	margin-inline: auto;
	object-fit: contain;
}
