/**
 * RTL Pro — bidirectional typography + the responsive scale that keeps Urdu and
 * Arabic newsprint legible on every viewport from a 320px phone to a 4K LCD.
 *
 * Loaded only when the bidirectional layer is active (see class-rtl-pro.php).
 * Everything below is additive: it never changes LTR-only pages.
 */

/* -------------------------------------------------------------------------
 * 1. Script-aware font stacks
 * ---------------------------------------------------------------------- */

[dir="rtl"],
.snmp-urdu [dir="rtl"],
body.snmp-rtl {
	font-family: var(--snmp-ur-font);
	line-height: var(--snmp-ur-line, 2.05);
	font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
	text-rendering: optimizeLegibility;
}

body.snmp-arabic [dir="rtl"],
body.snmp-arabic.snmp-rtl {
	font-family: var(--snmp-ar-font);
	line-height: var(--snmp-ar-line, 1.9);
}

[dir="rtl"] h1,
[dir="rtl"] h2,
[dir="rtl"] h3,
[dir="rtl"] h4,
[dir="rtl"] .snmp-card__title,
[dir="rtl"] .snmp-section__title,
[dir="rtl"] .entry-title {
	font-size: calc(1em * var(--snmp-rtl-heading-scale, 1));
	line-height: calc(var(--snmp-ur-line, 2.05) * 0.88);
	letter-spacing: 0;
	word-spacing: 0.04em;
	/* Nastaliq descenders drop far below the baseline. */
	padding-block-end: 0.18em;
	overflow-wrap: break-word;
}

/* Latin words inside Urdu/Arabic copy keep a Latin face so brand names,
   figures and URLs stay readable inside a Nastaliq paragraph. */
[dir="rtl"] .snmp-latin,
[dir="rtl"] code,
[dir="rtl"] kbd,
[dir="rtl"] samp,
[dir="rtl"] .snmp-meta__reading time {
	font-family: var(--snmp-font-body, system-ui, sans-serif);
	line-height: 1.6;
}

/* -------------------------------------------------------------------------
 * 2. Mixed-direction safety (a single site running Urdu + English)
 * ---------------------------------------------------------------------- */

.snmp-bidi-mixed bdi {
	unicode-bidi: isolate;
}

.snmp-bidi-body {
	unicode-bidi: isolate;
	text-align: start;
}

.snmp-bidi-mixed .snmp-card__title bdi[dir="rtl"] {
	font-family: var(--snmp-ur-font);
	line-height: calc(var(--snmp-ur-line, 2.05) * 0.88);
	display: inline-block;
}

.snmp-bidi-mixed .snmp-card__title bdi[dir="ltr"] {
	font-family: var(--snmp-font-heading, inherit);
	line-height: 1.28;
}

/* Numbers, times and prices never mirror. */
[dir="rtl"] .snmp-meta time,
[dir="rtl"] .price,
[dir="rtl"] .amount,
[dir="rtl"] .snmp-epaper__counter,
[dir="rtl"] .snmp-countdown {
	unicode-bidi: isolate;
	direction: ltr;
	display: inline-block;
}

[dir="rtl"] .snmp-meta__hijri {
	unicode-bidi: isolate;
	opacity: 0.8;
	font-size: 0.92em;
}

/* -------------------------------------------------------------------------
 * 3. Physical flips the logical properties cannot cover
 * ---------------------------------------------------------------------- */

[dir="rtl"] .snmp-breadcrumbs__sep,
[dir="rtl"] .snmp-arrow,
[dir="rtl"] .snmp-slider__btn svg,
[dir="rtl"] .snmp-carousel__btn svg,
[dir="rtl"] .snmp-more svg {
	transform: scaleX(-1);
}

[dir="rtl"] .snmp-carousel__track,
[dir="rtl"] .snmp-scroller {
	direction: rtl;
	scroll-snap-type: x mandatory;
}

[dir="rtl"] .snmp-mega__panel {
	inset-inline-start: 0;
	inset-inline-end: auto;
	text-align: right;
}

[dir="rtl"] .snmp-submenu {
	text-align: right;
}

[dir="rtl"] .snmp-to-top {
	inset-inline-end: auto;
	inset-inline-start: clamp(12px, 3vw, 28px);
}

[dir="rtl"] .snmp-reading-measure {
	max-width: var(--snmp-rtl-measure, 72ch);
}

/* -------------------------------------------------------------------------
 * 4. Universal responsive scale — phones, tablets, laptops, desktop LCDs
 *
 * One fluid system rather than device-specific hacks, so it holds on iPhone
 * SE (320px), iPhone 15 Pro Max, iPad, MacBook 13"/16", 1080p PCs and 4K TVs.
 * ---------------------------------------------------------------------- */

:root {
	--snmp-shell: min(100% - 2rem, var(--snmp-container, 1280px));
	--snmp-fluid-body: clamp(0.95rem, 0.9rem + 0.25vw, 1.075rem);
	--snmp-fluid-h1: clamp(1.6rem, 1.15rem + 2.4vw, 3rem);
	--snmp-fluid-h2: clamp(1.35rem, 1.05rem + 1.4vw, 2.15rem);
	--snmp-fluid-h3: clamp(1.1rem, 0.98rem + 0.7vw, 1.5rem);
}

body.snmp-bidi {
	font-size: var(--snmp-fluid-body);
}

body.snmp-bidi .snmp-container,
body.snmp-bidi .snmp-shell {
	width: var(--snmp-shell);
	margin-inline: auto;
}

body.snmp-bidi h1,
body.snmp-bidi .entry-title {
	font-size: calc(var(--snmp-fluid-h1) * var(--snmp-rtl-heading-scale, 1));
}

body.snmp-bidi h2,
body.snmp-bidi .snmp-section__title {
	font-size: calc(var(--snmp-fluid-h2) * var(--snmp-rtl-heading-scale, 1));
}

body.snmp-bidi h3,
body.snmp-bidi .snmp-card__title {
	font-size: calc(var(--snmp-fluid-h3) * var(--snmp-rtl-heading-scale, 1));
}

/* Grids collapse predictably instead of clipping: a 4-up grid becomes 2-up on
   tablets and 1-up on phones without any per-widget media query. */
body.snmp-bidi .snmp-loop {
	display: grid;
	gap: var(--snmp-gap, 28px);
	grid-template-columns: repeat(var(--snmp-cols, 3), minmax(0, 1fr));
}

body.snmp-bidi .snmp-loop > * {
	min-width: 0;
}

body.snmp-bidi img,
body.snmp-bidi video,
body.snmp-bidi iframe,
body.snmp-bidi table {
	max-width: 100%;
}

/* Multi-item header rows: grid + min-w-0 + shrink-0 so Urdu masthead text
   truncates instead of pushing the search and language switcher off screen. */
body.snmp-bidi .snmp-header__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(0.5rem, 2vw, 1.25rem);
}

body.snmp-bidi .snmp-header__brand {
	display: flex;
	min-width: 0;
	align-items: center;
	gap: 0.65rem;
}

body.snmp-bidi .snmp-header__brand img,
body.snmp-bidi .snmp-header__brand svg {
	flex-shrink: 0;
}

body.snmp-bidi .snmp-header__title {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ≤ 1024px — iPad, iPad Air, small laptops in split view */
@media (max-width: 1024px) {
	body.snmp-bidi .snmp-loop {
		grid-template-columns: repeat(var(--snmp-cols-t, 2), minmax(0, 1fr));
	}

	body.snmp-bidi .snmp-layout--sidebar {
		grid-template-columns: minmax(0, 1fr);
	}

	body.snmp-bidi .snmp-sidebar {
		position: static;
	}
}

/* ≤ 768px — large phones, small tablets */
@media (max-width: 768px) {
	body.snmp-bidi .snmp-loop {
		grid-template-columns: repeat(var(--snmp-cols-m, 1), minmax(0, 1fr));
	}

	body.snmp-bidi .snmp-header__row {
		gap: 0.5rem;
	}

	[dir="rtl"] .snmp-card--image-left,
	[dir="rtl"] .snmp-card--image-right {
		flex-direction: column;
	}

	body.snmp-bidi .snmp-hero__title {
		font-size: clamp(1.25rem, 4.5vw, 1.9rem);
	}
}

/* ≤ 420px — iPhone SE / mini, budget Android */
@media (max-width: 420px) {
	body.snmp-bidi {
		--snmp-gap: 18px;
	}

	body.snmp-bidi .snmp-epaper__tools {
		flex-wrap: wrap;
	}

	[dir="rtl"] .snmp-card__excerpt {
		display: none;
	}
}

/* ≥ 1600px — 27" iMac, 1440p and 4K desktop LCDs */
@media (min-width: 1600px) {
	:root {
		--snmp-shell: min(100% - 4rem, 1520px);
	}

	body.snmp-bidi {
		--snmp-gap: 34px;
	}
}

/* Retina / Apple displays: Nastaliq hairlines thin out, so nudge the weight. */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
	[dir="rtl"] body,
	[dir="rtl"] .snmp-card__title {
		-webkit-font-smoothing: antialiased;
		text-shadow: 0 0 0.35px currentColor;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.snmp-bidi * {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
	}
}

/* Print: Urdu editions print with tighter leading to fit the page. */
@media print {
	[dir="rtl"] body {
		line-height: 1.7;
	}
}

/* ---------------------------------------------------------------------------
 * 13.0.1 — markup-free bidi isolation.
 * Titles and excerpts are isolated with CSS instead of injected <bdi> markup,
 * so mixed Urdu/English grids stay aligned without leaking tags into the
 * document title, admin bar, nav menus or feeds.
 * ------------------------------------------------------------------------ */
.snmp-card__title,
.snmp-card__title a,
.snmp-entry-title,
.snmp-entry-title a,
.snmp-ticker__item,
.snmp-ticker__item a,
.snmp-breadcrumbs a,
.snmp-breadcrumbs span,
.snmp-card__excerpt {
	unicode-bidi: isolate;
}
