/*
Theme Name: Qamvora
Theme URI: https://qamvora.masary.app
Author: Qamvora
Author URI: https://qamvora.masary.app
Description: Performance-first, Arabic-first WordPress block theme.
Version: 0.2.1
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: qamvora
*/

/* ==========================================================
   Qamvora Core — v0.2.1
   Logical properties are used intentionally for RTL/LTR parity.
   ========================================================== */

:root {
	--qamvora-radius-sm: .75rem;
	--qamvora-radius-md: 1rem;
	--qamvora-radius-lg: 1.5rem;
	--qamvora-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);
	--qamvora-shadow-md: 0 14px 40px rgba(15, 23, 42, .08);
	--qamvora-border: color-mix(in srgb, currentColor 12%, transparent);
	--qamvora-transition: 180ms ease;
}

html {
	scroll-behavior: smooth;
}

body {
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	overflow-wrap: break-word;
}

img {
	max-width: 100%;
	height: auto;
}

a {
	text-underline-offset: .18em;
}

:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

/* Accessibility */
.qamvora-skip-link {
	position: fixed;
	inset-block-start: .75rem;
	inset-inline-start: .75rem;
	z-index: 100000;
	transform: translateY(-220%);
	background: var(--wp--preset--color--secondary);
	color: #fff;
	padding: .75rem 1rem;
	border-radius: var(--qamvora-radius-sm);
	box-shadow: var(--qamvora-shadow-md);
}

.qamvora-skip-link:focus {
	transform: translateY(0);
}

/* Header */
.qamvora-site-header {
	position: relative;
	z-index: 30;
	border-block-end: 1px solid var(--qamvora-border);
	background: color-mix(in srgb, var(--wp--preset--color--surface) 96%, transparent);
}

.qamvora-header-inner {
	min-height: 72px;
}

.qamvora-brand-wrap {
	min-width: 0;
}

.qamvora-brand-wrap .wp-block-site-logo {
	flex: 0 0 auto;
}

.qamvora-brand-wrap .wp-block-site-title {
	margin: 0;
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.2;
}

.qamvora-brand-wrap .wp-block-site-title a {
	text-decoration: none;
	color: var(--wp--preset--color--text);
}

.qamvora-brand-wrap .wp-block-site-tagline {
	margin: .15rem 0 0;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--sm);
}

.qamvora-site-header .wp-block-navigation {
	font-weight: 650;
}

.qamvora-site-header .wp-block-navigation-item__content {
	text-decoration: none;
	transition: opacity var(--qamvora-transition);
}

.qamvora-site-header .wp-block-navigation-item__content:hover {
	opacity: .7;
}

/* Front page */
.qamvora-hero {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--qamvora-border);
	border-radius: var(--qamvora-radius-lg);
	background:
		radial-gradient(circle at 85% 15%, color-mix(in srgb, var(--wp--preset--color--primary) 14%, transparent), transparent 32%),
		linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--muted) 78%, transparent), var(--wp--preset--color--surface));
	box-shadow: var(--qamvora-shadow-sm);
}

.qamvora-hero .wp-block-site-title {
	max-width: 17ch;
	margin-inline: auto;
	text-wrap: balance;
	overflow-wrap: anywhere;
}

.qamvora-hero .wp-block-site-title a {
	text-decoration: none;
	color: var(--wp--preset--color--text);
}

.qamvora-hero .wp-block-site-tagline {
	max-width: 54ch;
	margin-inline: auto;
	color: var(--wp--preset--color--text-muted);
	text-wrap: balance;
}

.qamvora-section {
	margin-block-start: clamp(2.5rem, 6vw, 5rem);
}

.qamvora-section-heading {
	margin-block-end: 1.25rem;
}

.qamvora-post-card {
	height: 100%;
	border: 1px solid var(--qamvora-border);
	border-radius: var(--qamvora-radius-md);
	overflow: hidden;
	background: var(--wp--preset--color--surface);
	box-shadow: var(--qamvora-shadow-sm);
	transition:
		transform var(--qamvora-transition),
		box-shadow var(--qamvora-transition);
}

.qamvora-post-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--qamvora-shadow-md);
}

.qamvora-post-card .wp-block-post-featured-image {
	margin: 0;
}

.qamvora-post-card .wp-block-post-featured-image img {
	width: 100%;
	object-fit: cover;
}

.qamvora-post-card .wp-block-post-title {
	margin-block-start: 0;
}

.qamvora-post-card .wp-block-post-title a {
	text-decoration: none;
}

.qamvora-post-card .wp-block-post-excerpt__more-link {
	font-weight: 700;
}

/* Content pages */
.qamvora-content-shell {
	padding-block: clamp(2rem, 5vw, 4rem);
}

.qamvora-page-header {
	margin-block-end: clamp(1.5rem, 4vw, 3rem);
}

.qamvora-page-header .wp-block-query-title,
.qamvora-page-header .wp-block-post-title {
	margin-block-end: .5rem;
	text-wrap: balance;
}

.qamvora-article-shell {
	max-width: 860px;
	margin-inline: auto;
}

.qamvora-article-meta {
	color: var(--wp--preset--color--text-muted);
}

.qamvora-article-meta a {
	color: inherit;
}

.qamvora-article-shell .wp-block-post-featured-image {
	margin-block: 1.5rem 2rem;
	overflow: hidden;
	border-radius: var(--qamvora-radius-lg);
}

.qamvora-article-shell .wp-block-post-content {
	font-size: 1.0625rem;
}

.qamvora-article-footer {
	margin-block-start: 2.5rem;
	padding-block-start: 1.5rem;
	border-block-start: 1px solid var(--qamvora-border);
}

.qamvora-empty-state {
	padding: clamp(2rem, 6vw, 4rem);
	text-align: center;
	border: 1px dashed var(--qamvora-border);
	border-radius: var(--qamvora-radius-lg);
	background: var(--wp--preset--color--muted);
}

.qamvora-404-code {
	margin: 0;
	font-size: clamp(5rem, 20vw, 10rem);
	line-height: .9;
	letter-spacing: -.06em;
	color: color-mix(in srgb, var(--wp--preset--color--primary) 18%, var(--wp--preset--color--text));
}

/* Footer */
.qamvora-site-footer {
	margin-block-start: clamp(3rem, 7vw, 6rem);
	border-block-start: 1px solid var(--qamvora-border);
	background: var(--wp--preset--color--muted);
}

.qamvora-footer-brand .wp-block-site-title {
	margin: 0;
	font-weight: 800;
}

.qamvora-footer-brand .wp-block-site-title a {
	text-decoration: none;
	color: var(--wp--preset--color--text);
}

.qamvora-footer-brand .wp-block-site-tagline {
	margin-block-start: .35rem;
	color: var(--wp--preset--color--text-muted);
}

.qamvora-footer-bottom {
	border-block-start: 1px solid var(--qamvora-border);
}

.qamvora-footer-bottom p {
	margin: 0;
}

.qamvora-developer-credit {
	margin: 0;
	white-space: nowrap;
	color: var(--wp--preset--color--text-muted);
	font-size: var(--wp--preset--font-size--sm);
}

/* Core block refinements */
.wp-block-button__link {
	transition:
		transform var(--qamvora-transition),
		opacity var(--qamvora-transition);
}

.wp-block-button__link:hover {
	transform: translateY(-1px);
	opacity: .92;
}

.wp-block-query-pagination {
	gap: .5rem;
	margin-block-start: 2rem;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	border-radius: .65rem;
	padding: .5rem .75rem;
	text-decoration: none;
}

/* Responsive system */
@media (max-width: 781px) {
	.qamvora-header-inner {
		min-height: 64px;
	}

	.qamvora-brand-wrap .wp-block-site-tagline {
		display: none;
	}

	.qamvora-hero {
		border-radius: var(--qamvora-radius-md);
	}

	.qamvora-hero .wp-block-site-title {
		max-width: 100%;
		font-size: clamp(2rem, 10vw, 3.25rem) !important;
	}

	.qamvora-site-footer .wp-block-navigation {
		width: 100%;
	}

	.qamvora-footer-bottom {
		align-items: flex-start !important;
		flex-direction: column;
		gap: .75rem !important;
	}

	.qamvora-article-shell .wp-block-post-content {
		font-size: 1rem;
	}
}

@media (max-width: 480px) {
	.qamvora-header-inner {
		gap: .75rem !important;
	}

	.qamvora-brand-wrap .wp-block-site-title {
		max-width: 16rem;
		font-size: 1.05rem;
		overflow-wrap: anywhere;
	}

	.qamvora-hero {
		padding-inline: .25rem;
	}

	.qamvora-site-footer {
		text-align: start;
	}

	.qamvora-developer-credit {
		white-space: normal;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
