/* Base reset & typography — RTL is the default writing mode, not an override. */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	direction: rtl;
	-webkit-text-size-adjust: 100%;
	overflow-x: hidden;
}

html[lang^='en'] {
	direction: ltr;
}

body {
	margin: 0;
	max-width: 100vw;
	overflow-x: hidden;
	background: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-fa);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

img,
svg {
	max-width: 100%;
	display: block;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: 700;
	line-height: var(--lh-heading);
	letter-spacing: var(--tracking-tight);
	color: var(--color-primary);
	margin: 0 0 var(--space-3);
}

h1 {
	font-size: var(--fs-h1);
	font-weight: 900;
	line-height: var(--lh-heading-tight);
	letter-spacing: var(--tracking-tighter);
}

h2 {
	font-size: var(--fs-h2);
	line-height: 1.25;
}

h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); }

p {
	margin: 0 0 var(--space-3);
	color: var(--color-text);
	font-family: var(--font-fa);
}

a {
	color: inherit;
	text-decoration: none;
	transition: color var(--transition-fast);
}

ul, ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

button {
	font-family: inherit;
	cursor: pointer;
	background: none;
	border: 0;
	transition: color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

/* Accessibility: always show a visible focus ring, never remove it.
   Navy (--color-primary), not gold — the one focus color used
   everywhere, matching the form-input focus glow below instead of
   the two competing colors this used to mix. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
	border-radius: var(--radius-sm);
}

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

.container {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--space-4);
}

.icon-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	color: var(--color-primary);
	transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.icon-button:hover {
	background: var(--color-bg);
	color: var(--color-gold);
	transform: translateY(-1px);
}

.icon-button:active {
	transform: translateY(0);
}

/* Dark-mode toggle: show the icon for the mode a click switches TO is
   wrong; convention here is to show what's active right now (sun = it's
   light right now, moon = it's dark right now), matching variables.css'
   own detection order (explicit attribute first, then system preference). */
.theme-icon-dark {
	display: none;
}

:root[data-theme='dark'] .theme-icon-dark {
	display: inline-block;
}

:root[data-theme='dark'] .theme-icon-light {
	display: none;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme='light']) .theme-icon-dark {
		display: inline-block;
	}

	:root:not([data-theme='light']) .theme-icon-light {
		display: none;
	}
}

/* Selection: gold-tinted instead of the harsh default blue. */
::selection {
	background: rgba(47, 92, 147, 0.25);
	color: var(--color-primary);
}

/* Visually hidden but still announced by screen readers — WordPress's
   standard accessibility utility class (not injected automatically; a
   theme is expected to define it itself). */
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* V24 — dark mode surface guardrails: neutralize legacy hard-coded light surfaces. */
:root[data-theme='dark'] body{background:var(--color-bg);color:var(--color-text)}
:root[data-theme='dark'] .site-main,
:root[data-theme='dark'] .site-content,
:root[data-theme='dark'] main{background:var(--color-bg);color:var(--color-text)}
:root[data-theme='dark'] .site-search,
:root[data-theme='dark'] .search-form,
:root[data-theme='dark'] input,
:root[data-theme='dark'] select,
:root[data-theme='dark'] textarea{background:var(--color-card);color:var(--color-text);border-color:var(--color-border)}
:root[data-theme='dark'] input::placeholder,
:root[data-theme='dark'] textarea::placeholder{color:var(--color-text-muted)}
:root[data-theme='dark'] .card,
:root[data-theme='dark'] .chip-card,
:root[data-theme='dark'] .education-card-pro,
:root[data-theme='dark'] .tool-icon,
:root[data-theme='dark'] .verdict-pdf__annotation-note{background:var(--color-card);color:var(--color-text);border-color:var(--color-border)}
:root[data-theme='dark'] .verdict-pdf__viewer{background:#0a0f16;border-color:var(--color-border)}
:root[data-theme='dark'] .verdict-pdf__toolbar{background:var(--color-card);border-color:var(--color-border)}
:root[data-theme='dark'] .verdict-pdf__zoom-in,
:root[data-theme='dark'] .verdict-pdf__zoom-out{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text)}
:root[data-theme='dark'] .footer-bottom__copy{color:rgba(255,255,255,.48)}
