/* ==========================================================================
   Safwat Al Khair 2.0 — Theme Core CSS
   Premium · Charcoal + Gold · Mixed Light/Dark Sections
   ========================================================================== */

/* ── Reset & Base ──────────────────────────────────────────────── */
*,*::before,*::after { box-sizing: border-box; }

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
	overflow-x: hidden;
}

body {
	background: var(--color-bg-light) !important;
	color: var(--color-dark-text);
	overflow-x: hidden;
	font-family: var(--font-ar);
	font-size: var(--text-base);
	line-height: var(--leading-normal);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

[lang="en"] body,
body.lang-en { font-family: var(--font-en); }

::selection {
	background: rgba(210,186,129,.35);
	color: #1F1F1F;
}

a {
	color: var(--color-gold);
	text-decoration: none;
	transition: color var(--duration) var(--ease-out);
}
a:hover, a:focus { color: var(--color-gold-dark); }

img { max-width: 100%; height: auto; }

/* ── Typography ────────────────────────────────────────────────── */
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6 {
	font-weight: 700;
	line-height: var(--leading-tight);
	letter-spacing: -.01em;
}

.section-title {
	font-size: var(--text-3xl);
	font-weight: 700;
	margin-bottom: var(--space-2);
}

.section-subtitle {
	font-size: var(--text-md);
	max-width: 640px;
}

.kicker {
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--color-gold);
	text-transform: uppercase;
	letter-spacing: .12em;
	margin-bottom: var(--space-2);
}

/* ── Layout ────────────────────────────────────────────────────── */
.site-content {
	min-height: 60vh;
}

.safwat-section {
	padding: var(--space-10) 0;
}

/* ══════════════════════════════════════════════════════════════════
   SECTION COLOR VARIANTS
   ══════════════════════════════════════════════════════════════════ */

/* Dark section — charcoal */
.section-dark {
	background: var(--color-bg);
	color: var(--color-text);
}
.section-dark h1,.section-dark h2,.section-dark h3,
.section-dark h4,.section-dark h5,.section-dark h6 {
	color: var(--color-text);
}
.section-dark .text-muted { color: var(--color-text-muted) !important; }
.section-dark .card {
	background: var(--color-surface);
	border-color: var(--color-border);
	color: var(--color-text);
}
.section-dark .card h3,.section-dark .card h4,.section-dark .card h5 { color: var(--color-text); }

/* Darker section — deepest bg */
.section-darker {
	background: var(--color-bg-2);
	color: var(--color-text);
}
.section-darker h1,.section-darker h2,.section-darker h3,
.section-darker h4,.section-darker h5,.section-darker h6 { color: var(--color-text); }
.section-darker .text-muted { color: var(--color-text-muted) !important; }
.section-darker .card {
	background: var(--color-surface);
	border-color: var(--color-border);
	color: var(--color-text);
}

/* Light section — warm cream */
.section-light {
	background: var(--color-bg-light);
	color: var(--color-dark-text);
}
.section-light h1,.section-light h2,.section-light h3,
.section-light h4,.section-light h5,.section-light h6 { color: var(--color-dark-heading); }
.section-light .text-muted { color: var(--color-dark-muted) !important; }
.section-light .section-subtitle { color: var(--color-dark-muted); }
.section-light .card {
	background: #fff;
	border-color: rgba(0,0,0,.08);
	color: var(--color-dark-text);
}
.section-light .card:hover { border-color: var(--color-gold); }
.section-light .card h3,.section-light .card h4,.section-light .card h5 { color: var(--color-dark-heading); }
.section-light .card .text-muted { color: var(--color-dark-muted) !important; }

/* White section */
.section-white {
	background: #fff;
	color: var(--color-dark-text);
}
.section-white h1,.section-white h2,.section-white h3,
.section-white h4,.section-white h5,.section-white h6 { color: var(--color-dark-heading); }
.section-white .text-muted { color: var(--color-dark-muted) !important; }
.section-white .card {
	background: var(--color-bg-light);
	border-color: rgba(0,0,0,.06);
	color: var(--color-dark-text);
}

/* Legacy compat */
.safwat-section.section-alt { background: var(--color-bg-2); color: var(--color-text); }
.safwat-section.section-surface,
.safwat-section.bg-surface { background: var(--color-bg-light); color: var(--color-dark-text); }
.safwat-section.bg-surface h1,.safwat-section.bg-surface h2,.safwat-section.bg-surface h3,
.safwat-section.bg-surface h4,.safwat-section.bg-surface h5,.safwat-section.bg-surface h6 { color: var(--color-dark-heading); }
.safwat-section.bg-surface .text-muted { color: var(--color-dark-muted) !important; }
.safwat-section.bg-surface .card {
	background: #fff;
	border-color: rgba(0,0,0,.08);
	color: var(--color-dark-text);
}
.safwat-section.bg-surface .card h3,
.safwat-section.bg-surface .card h5 { color: var(--color-dark-heading); }
.safwat-section.bg-surface .card .text-muted { color: var(--color-dark-muted) !important; }

/* ══════════════════════════════════════════════════════════════════
   HEADER
   ══════════════════════════════════════════════════════════════════ */
.site-header {
	background: rgba(31,31,31,.97);
	border-bottom: 1px solid rgba(255,255,255,.06);
	backdrop-filter: saturate(120%) blur(12px);
	position: sticky;
	top: 0;
	z-index: var(--z-header);
	transition: background var(--duration) var(--ease-out),
	            box-shadow var(--duration) var(--ease-out);
}
.site-header.scrolled { box-shadow: var(--shadow-md); }

.site-header--transparent {
	position: fixed;
	left: 0; right: 0;
	background: transparent;
	border-bottom-color: transparent;
	backdrop-filter: none;
}
.site-header--transparent.scrolled {
	background: rgba(31,31,31,.97);
	backdrop-filter: saturate(120%) blur(12px);
	border-bottom-color: rgba(255,255,255,.06);
}

/* Top bar */
.header-topbar {
	background: var(--color-bg-2);
	padding: 5px 0;
	font-size: var(--text-xs);
	border-bottom: 1px solid rgba(255,255,255,.04);
}

.topbar-link {
	color: var(--color-text-muted);
	display: inline-flex;
	align-items: center;
	gap: 5px;
	transition: color var(--duration);
	font-size: var(--text-xs);
}
.topbar-link:hover { color: var(--color-gold); }

/* Topbar social links */
.topbar-social {
	display: flex;
	gap: .5rem;
	align-items: center;
}
.topbar-social a {
	color: rgba(255,255,255,.5);
	font-size: .9rem;
	width: 26px;
	height: 26px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255,255,255,.08);
	transition: all var(--duration);
	text-decoration: none;
}
.topbar-social a:hover {
	color: var(--color-gold);
	background: rgba(210,186,129,.15);
}

/* Navbar */
.navbar { padding: var(--space-2) 0; }
.navbar-brand { margin: 0; padding: 0; }

.navbar-brand img,
.navbar-brand .custom-logo {
	height: 48px;
	width: auto;
	max-width: 200px;
	object-fit: contain;
}

/* Theme logo — trim whitespace around logo PNG */
.header-logo-img {
	height: 56px;
	width: auto;
	max-width: 200px;
	object-fit: contain;
	margin: -8px 0;
}

.brand-text {
	font-size: var(--text-lg);
	font-weight: 700;
	color: var(--color-gold);
	white-space: nowrap;
}

/* Nav links */
.navbar-nav {
	gap: .15rem;
	align-items: center;
}

@media (min-width: 992px) {
	.navbar-nav { flex-wrap: nowrap; }
}

.navbar .nav-link {
	color: var(--color-text);
	font-weight: 500;
	font-size: .875rem;
	padding: .5rem .65rem !important;
	position: relative;
	transition: color var(--duration);
	white-space: nowrap;
}

.navbar .nav-link::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%; right: 50%;
	height: 2px;
	background: var(--color-gold);
	transition: left var(--duration) var(--ease-out),
	            right var(--duration) var(--ease-out);
}

.navbar .nav-link:hover::after,
.navbar .nav-link.active::after {
	left: var(--space-2);
	right: var(--space-2);
}

.navbar .nav-link:hover,
.navbar .nav-link.active { color: var(--color-gold); }

/* Dropdown */
.navbar .dropdown-menu {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-lg);
	min-width: 200px;
}

.navbar .dropdown-item {
	color: var(--color-text);
	font-weight: 500;
	padding: var(--space-2) var(--space-4);
	transition: background var(--duration), color var(--duration);
}
.navbar .dropdown-item:hover,
.navbar .dropdown-item:focus {
	background: rgba(210,186,129,.1);
	color: var(--color-gold);
}

/* Header CTA */
.header-cta { flex-shrink: 0; }
.header-cta .btn {
	font-size: var(--text-xs);
	padding: .4rem 1rem;
	white-space: nowrap;
}

/* Toggler */
.navbar-toggler {
	border: 1px solid var(--color-border);
	padding: 8px;
	border-radius: var(--radius-xs);
	display: flex;
	flex-direction: column;
	gap: 5px;
	width: 38px;
	align-items: center;
}
.navbar-toggler:focus { box-shadow: var(--focus-ring); }

.toggler-bar {
	display: block;
	width: 20px;
	height: 2px;
	background: var(--color-gold);
	border-radius: 2px;
	transition: transform var(--duration);
}

/* Offcanvas */
.offcanvas {
	background: var(--color-bg-2);
	color: var(--color-text);
	border-color: var(--color-border) !important;
	max-width: 320px;
}
.offcanvas-header { border-bottom: 1px solid var(--color-border); }
.offcanvas-title { color: var(--color-gold); font-weight: 700; }

/* Mobile nav links inside offcanvas */
@media (max-width: 991.98px) {
	.offcanvas .navbar-nav .nav-link {
		color: #f0ece4;
		font-size: 1rem;
		padding: .75rem 1rem !important;
		border-bottom: 1px solid rgba(255,255,255,.06);
	}
	.offcanvas .navbar-nav .nav-link:hover,
	.offcanvas .navbar-nav .nav-link:focus {
		color: var(--color-gold);
		background: rgba(210,186,129,.08);
	}
	.offcanvas .navbar-nav .nav-link::after {
		display: none;
	}
}

/* ══════════════════════════════════════════════════════════════════
   BUTTONS
   ══════════════════════════════════════════════════════════════════ */
.btn {
	border-radius: var(--radius-sm);
	font-weight: 600;
	padding: .625rem 1.5rem;
	transition: all var(--duration) var(--ease-out);
	font-size: var(--text-sm);
	letter-spacing: .01em;
}
.btn:focus-visible { box-shadow: var(--focus-ring); }

.btn-gold {
	background: var(--color-gold);
	border: 1px solid var(--color-gold);
	color: var(--color-bg-2);
}
.btn-gold:hover, .btn-gold:focus {
	background: var(--color-gold-dark);
	border-color: var(--color-gold-dark);
	color: var(--color-bg-2);
	box-shadow: var(--shadow-gold);
}

.btn-outline-gold {
	background: transparent;
	border: 1px solid var(--color-gold);
	color: var(--color-gold);
}
.btn-outline-gold:hover, .btn-outline-gold:focus {
	background: var(--color-gold);
	color: var(--color-bg-2);
}

.section-light .btn-outline-gold {
	color: var(--color-gold-dark);
	border-color: var(--color-gold-dark);
}
.section-light .btn-outline-gold:hover {
	background: var(--color-gold);
	color: var(--color-bg-2);
	border-color: var(--color-gold);
}

/* Accent compat */
.btn-accent { background: var(--color-gold); border-color: var(--color-gold); color: var(--color-bg-2); }
.btn-accent:hover { background: var(--color-gold-dark); border-color: var(--color-gold-dark); color: var(--color-bg-2); }
.btn-outline-accent { border-color: var(--color-gold); color: var(--color-gold); }
.btn-outline-accent:hover { background: var(--color-gold); color: var(--color-bg-2); }

/* WhatsApp */
.btn-whatsapp { background: var(--color-whatsapp); border-color: var(--color-whatsapp); color: #fff; }
.btn-whatsapp:hover { background: #20bd5a; border-color: #20bd5a; color: #fff; }
.btn-whatsapp-header {
	background: var(--color-whatsapp);
	border: none;
	color: #fff;
	border-radius: var(--radius-full);
	width: 34px; height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.btn-surface {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	color: var(--color-text);
}
.btn-surface:hover {
	background: var(--color-bg);
	border-color: var(--color-gold);
	color: var(--color-gold);
}

/* ══════════════════════════════════════════════════════════════════
   CARDS
   ══════════════════════════════════════════════════════════════════ */
.card {
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	border-radius: var(--radius-md);
	box-shadow: none;
	transition: transform var(--duration) var(--ease-out),
	            box-shadow var(--duration) var(--ease-out),
	            border-color var(--duration);
	overflow: hidden;
}
.card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 30px rgba(0,0,0,.1);
	border-color: rgba(210,186,129,.3);
}

.card-img-top { aspect-ratio: 3/2; object-fit: cover; width: 100%; }
.card-body { padding: var(--space-5); }
.card-title a { color: inherit; }
.card-title a:hover { color: var(--color-gold); }
.card-footer {
	background: transparent;
	border-top: 1px solid rgba(0,0,0,.06);
	padding: var(--space-3) var(--space-5);
}

/* Property card */
.property-card { position: relative; }
.property-card .card-img-top { aspect-ratio: 4/3; }
.property-card__badge {
	position: absolute;
	top: var(--space-3);
	left: var(--space-3);
	z-index: 2;
}
[dir="rtl"] .property-card__badge { left: auto; right: var(--space-3); }
.property-card__price {
	font-size: var(--text-lg);
	font-weight: 700;
	color: var(--color-gold-dark);
}
.property-card__location {
	display: flex;
	align-items: center;
	gap: 4px;
	color: var(--color-dark-muted);
	font-size: var(--text-sm);
}
.property-card__meta {
	display: flex;
	gap: var(--space-4);
	font-size: var(--text-sm);
	color: var(--color-dark-muted);
	margin-top: var(--space-3);
	padding-top: var(--space-3);
	border-top: 1px solid rgba(0,0,0,.06);
}
.property-card__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.section-dark .property-card__meta,
.section-darker .property-card__meta {
	border-top-color: var(--color-border-subtle);
	color: var(--color-text-muted);
}
.section-dark .property-card__price,
.section-darker .property-card__price { color: var(--color-gold); }
.section-dark .property-card__location,
.section-darker .property-card__location { color: var(--color-text-muted); }

/* ══════════════════════════════════════════════════════════════════
   BADGES
   ══════════════════════════════════════════════════════════════════ */
.badge {
	font-weight: 600;
	font-size: var(--text-xs);
	padding: .35em .75em;
	border-radius: var(--radius-xs);
	letter-spacing: .02em;
}
.badge-status-sale { background: rgba(34,197,94,.15); color: #22C55E; border: 1px solid rgba(34,197,94,.3); }
.badge-status-rent { background: rgba(96,165,250,.15); color: #60A5FA; border: 1px solid rgba(96,165,250,.3); }
.badge-status-sold { background: rgba(248,113,113,.15); color: #F87171; border: 1px solid rgba(248,113,113,.3); }
.badge-gold { background: rgba(210,186,129,.15); color: var(--color-gold-dark); border: 1px solid rgba(210,186,129,.3); }

/* ══════════════════════════════════════════════════════════════════
   FORMS
   ══════════════════════════════════════════════════════════════════ */
.form-control,
.form-select {
	background: var(--color-bg-2);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	color: var(--color-text);
	padding: .625rem 1rem;
	font-size: var(--text-sm);
	transition: border-color var(--duration), box-shadow var(--duration);
}
.form-control::placeholder { color: var(--color-text-muted); opacity: .6; }
.form-control:focus,
.form-select:focus {
	background: var(--color-bg-2);
	border-color: var(--color-gold);
	box-shadow: var(--focus-ring);
	color: var(--color-text);
}
.form-label {
	font-weight: 500;
	font-size: var(--text-sm);
	margin-bottom: var(--space-1);
}

.section-light .form-control,
.section-light .form-select,
.section-white .form-control,
.section-white .form-select,
.safwat-section.bg-surface .form-control,
.safwat-section.bg-surface .form-select {
	background: #fff;
	border-color: rgba(0,0,0,.12);
	color: var(--color-dark-text);
}
.section-light .form-control::placeholder,
.section-white .form-control::placeholder,
.safwat-section.bg-surface .form-control::placeholder { color: var(--color-dark-muted); }
.section-light .form-control:focus,
.section-light .form-select:focus,
.section-white .form-control:focus,
.section-white .form-select:focus,
.safwat-section.bg-surface .form-control:focus,
.safwat-section.bg-surface .form-select:focus {
	background: #fff;
	border-color: var(--color-gold);
	color: var(--color-dark-text);
}
.section-light .form-label,
.section-white .form-label,
.safwat-section.bg-surface .form-label { color: var(--color-dark-muted); }

/* ── Breadcrumbs ───────────────────────────────────────────────── */
.breadcrumb {
	background: transparent;
	padding: var(--space-4) 0;
	margin-bottom: var(--space-4);
	font-size: var(--text-sm);
}
.breadcrumb-item a { color: var(--color-text-muted); }
.breadcrumb-item a:hover { color: var(--color-gold); }
.breadcrumb-item.active { color: var(--color-gold); }
.breadcrumb-item + .breadcrumb-item::before { color: var(--color-text-muted); }

/* ── Pagination ────────────────────────────────────────────────── */
.pagination { gap: var(--space-1); }
.pagination .page-item .page-link {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	color: var(--color-text);
	border-radius: var(--radius-xs);
	padding: .5rem .875rem;
	font-size: var(--text-sm);
	transition: all var(--duration);
}
.pagination .page-item .page-link:hover {
	background: var(--color-gold);
	border-color: var(--color-gold);
	color: var(--color-bg-2);
}
.pagination .page-item.active .page-link {
	background: var(--color-gold);
	border-color: var(--color-gold);
	color: var(--color-bg-2);
}

/* ══════════════════════════════════════════════════════════════════
   HERO SECTION
   ══════════════════════════════════════════════════════════════════ */
.hero {
	position: relative;
	overflow: hidden;
}

.hero .carousel,
.hero .carousel-inner,
.hero .carousel-item { min-height: 85vh; }

.hero__slide {
	position: relative;
	min-height: 85vh;
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: center;
}

.hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		rgba(31,31,31,.92) 0%,
		rgba(31,31,31,.78) 40%,
		rgba(56,56,56,.6) 100%
	);
	z-index: 1;
}

.hero__content {
	position: relative;
	z-index: 2;
	width: min(700px, 100%);
	padding: var(--space-12) 0 var(--space-10);
}

.hero__kicker {
	display: inline-block;
	font-size: var(--text-sm);
	font-weight: 600;
	color: var(--color-gold);
	text-transform: uppercase;
	letter-spacing: .12em;
	margin-bottom: var(--space-3);
	background: rgba(210,186,129,.12);
	padding: .3em .8em;
	border-radius: var(--radius-xs);
	border: 1px solid rgba(210,186,129,.2);
}

.hero__title {
	font-size: var(--text-4xl);
	font-weight: 700;
	color: #fff;
	line-height: 1.15;
	margin-bottom: var(--space-4);
	text-shadow: 0 2px 8px rgba(0,0,0,.3);
}

.hero__subtitle {
	font-size: var(--text-md);
	color: rgba(255,255,255,.85);
	line-height: var(--leading-relaxed);
	margin-bottom: var(--space-6);
	max-width: 560px;
	text-shadow: 0 1px 4px rgba(0,0,0,.2);
}

.hero__actions {
	display: flex;
	gap: var(--space-3);
	flex-wrap: wrap;
	margin-bottom: var(--space-5);
}

.hero__badges {
	display: flex;
	gap: var(--space-4);
	flex-wrap: wrap;
}

.hero__badge {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	color: rgba(255,255,255,.8);
	font-size: var(--text-sm);
	background: rgba(255,255,255,.08);
	backdrop-filter: blur(8px);
	padding: .5em 1em;
	border-radius: var(--radius-xs);
	border: 1px solid rgba(255,255,255,.1);
}
.hero__badge strong {
	color: var(--color-gold);
	font-size: var(--text-lg);
}

/* Hero carousel arrows */
.hero .carousel-control-prev,
.hero .carousel-control-next {
	width: 52px;
	height: 52px;
	background: rgba(31,31,31,.65);
	border: 1px solid rgba(255,255,255,.15);
	border-radius: 50%;
	top: 50%;
	bottom: auto;
	transform: translateY(-50%);
	opacity: 1;
	transition: background var(--duration), border-color var(--duration);
	z-index: 5;
}
.hero .carousel-control-prev:hover,
.hero .carousel-control-next:hover {
	background: var(--color-gold);
	border-color: var(--color-gold);
}
.hero .carousel-control-prev { left: var(--space-4); right: auto; }
.hero .carousel-control-next { right: var(--space-4); left: auto; }
[dir="rtl"] .hero .carousel-control-prev { left: auto; right: var(--space-4); }
[dir="rtl"] .hero .carousel-control-next { right: auto; left: var(--space-4); }

.hero .carousel-control-prev-icon,
.hero .carousel-control-next-icon {
	width: 18px;
	height: 18px;
	filter: brightness(10);
}

/* ══════════════════════════════════════════════════════════════════
   STATS SECTION
   ══════════════════════════════════════════════════════════════════ */
.stats-section {
	background: var(--color-bg-2);
	color: var(--color-text);
}
.stats-section .card {
	background: var(--color-surface);
	border-color: var(--color-border);
}

.stats-section__value,
.stat-number {
	font-size: var(--text-4xl);
	font-weight: 700;
	color: var(--color-gold) !important;
	line-height: 1;
	margin-bottom: var(--space-2);
}

.stats-section .text-muted,
.stat-label {
	font-size: var(--text-sm);
	color: var(--color-text-muted) !important;
}

/* ══════════════════════════════════════════════════════════════════
   SERVICES SECTION
   ══════════════════════════════════════════════════════════════════ */
.services-section .service-icon {
	width: 56px;
	height: 56px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-sm);
	font-size: 1.5rem;
	flex-shrink: 0;
	background: rgba(210,186,129,.1);
	color: var(--color-gold-dark);
	border: 1px solid rgba(210,186,129,.2);
}

.section-dark .service-icon {
	color: var(--color-gold);
}

/* ══════════════════════════════════════════════════════════════════
   PARTNERS / TRUST SECTION
   ══════════════════════════════════════════════════════════════════ */
.partners-section .partner-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: var(--space-5) var(--space-3);
	border-radius: var(--radius-md);
	transition: transform var(--duration), box-shadow var(--duration);
	min-height: 140px;
}
.partners-section .partner-item:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0,0,0,.08);
}

.partners-section .partner-icon {
	font-size: 2rem;
	color: var(--color-gold);
	margin-bottom: var(--space-3);
	width: 60px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--radius-sm);
	background: rgba(210,186,129,.08);
	border: 1px solid rgba(210,186,129,.15);
}

.partners-section .partner-name {
	font-weight: 600;
	font-size: var(--text-sm);
	text-align: center;
}

.section-light .partners-section .partner-name { color: var(--color-dark-heading); }

/* ══════════════════════════════════════════════════════════════════
   TESTIMONIALS
   ══════════════════════════════════════════════════════════════════ */
.testimonial-card {
	border-radius: var(--radius-md);
	padding: var(--space-6) var(--space-8);
	position: relative;
	max-width: 720px;
	margin: 0 auto;
}

.testimonial-card__quote {
	font-size: 4rem;
	color: var(--color-gold);
	opacity: .25;
	line-height: 1;
	font-family: Georgia, serif;
	margin-bottom: var(--space-2);
}

.testimonial-card__text {
	font-size: var(--text-md);
	line-height: var(--leading-relaxed);
	margin-bottom: var(--space-5);
}

.section-dark .testimonial-card,
.section-darker .testimonial-card {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	color: var(--color-text);
}

.section-light .testimonial-card,
.section-white .testimonial-card,
.safwat-section.bg-surface .testimonial-card {
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	color: var(--color-dark-text);
	box-shadow: 0 4px 24px rgba(0,0,0,.06);
}

.testimonial-card__author {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}
.testimonial-card__avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--color-gold);
}
.testimonial-author,
.testimonial-card__author .fw-bold {
	font-weight: 600;
	color: var(--color-gold);
}
.testimonial-role {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
}

/* Testimonial carousel controls */
#testimonialCarousel .carousel-control-prev,
#testimonialCarousel .carousel-control-next {
	width: 44px;
	height: 44px;
	background: var(--color-gold);
	border-radius: 50%;
	top: 50%;
	bottom: auto;
	transform: translateY(-50%);
	opacity: 1;
}
#testimonialCarousel .carousel-control-prev { left: 0; }
#testimonialCarousel .carousel-control-next { right: 0; }

@media (max-width: 767.98px) {
	#testimonialCarousel .carousel-control-prev,
	#testimonialCarousel .carousel-control-next { display: none; }
	.testimonial-card { padding: var(--space-5); }
}

#testimonialCarousel .carousel-control-prev-icon,
#testimonialCarousel .carousel-control-next-icon {
	width: 16px;
	height: 16px;
	filter: brightness(0);
}

/* ══════════════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════════════ */
.site-footer {
	background: var(--color-bg-2);
	color: var(--color-text-muted);
}
.footer-accent-line {
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
}
.footer-heading {
	color: var(--color-text);
	font-size: var(--text-md);
	font-weight: 600;
	margin-bottom: var(--space-4);
	position: relative;
	padding-bottom: var(--space-2);
}
.footer-heading::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 32px;
	height: 2px;
	background: var(--color-gold);
}
[dir="rtl"] .footer-heading::after { left: auto; right: 0; }

.footer-text {
	font-size: var(--text-sm);
	line-height: var(--leading-relaxed);
	color: var(--color-text-muted);
}
.footer-logo img,
.footer-logo .custom-logo { height: 40px; width: auto; object-fit: contain; }
.footer-logo-img {
	height: 50px;
	width: auto;
	max-width: 220px;
	object-fit: contain;
	margin: -6px 0;
}
.footer-brand { color: var(--color-gold); font-weight: 700; }
.footer-links li { margin-bottom: var(--space-2); }
.footer-links a,
.footer-links span {
	color: var(--color-text-muted);
	font-size: var(--text-sm);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: color var(--duration);
}
.footer-links a:hover { color: var(--color-gold); }
.footer-social a,
.footer-social-link {
	color: var(--color-text-muted);
	transition: color var(--duration), transform var(--duration);
	font-size: 1.25rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1px solid var(--color-border-subtle);
	text-decoration: none;
}
.footer-social a:hover,
.footer-social-link:hover {
	color: var(--color-gold);
	border-color: var(--color-gold);
	transform: translateY(-2px);
}
.footer-bottom {
	border-top: 1px solid var(--color-border-subtle);
	padding: var(--space-4) 0;
	font-size: var(--text-sm);
}
.footer-copyright { color: var(--color-text-muted); opacity: .7; }
.footer-bottom-links {
	display: flex;
	gap: var(--space-4);
	list-style: none;
	padding: 0;
}
.footer-bottom-links a { color: var(--color-text-muted); font-size: var(--text-sm); }
.footer-bottom-links a:hover { color: var(--color-gold); }

/* ── WhatsApp Sticky ───────────────────────────────────────────── */
.whatsapp-sticky {
	position: fixed;
	bottom: var(--space-6);
	right: var(--space-6);
	z-index: var(--z-whatsapp);
	background: var(--color-whatsapp);
	color: #fff;
	border-radius: var(--radius-full);
	padding: 14px 20px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	box-shadow: 0 4px 20px rgba(37,211,102,.4);
	transition: transform var(--duration) var(--ease-out), box-shadow var(--duration);
	text-decoration: none;
}
[dir="rtl"] .whatsapp-sticky { right: auto; left: var(--space-6); }
.whatsapp-sticky:hover {
	transform: scale(1.05);
	box-shadow: 0 6px 28px rgba(37,211,102,.5);
	color: #fff;
}
.whatsapp-sticky__label { font-weight: 600; font-size: var(--text-sm); }

@media (max-width: 767.98px) {
	.whatsapp-sticky__label { display: none; }
	.whatsapp-sticky { padding: 14px; border-radius: 50%; }
}

/* ── Language Switcher ─────────────────────────────────────────── */
.lang-switcher {
	display: inline-flex;
	gap: 2px;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: var(--radius-xs);
	padding: 2px;
	font-size: var(--text-xs);
}
.lang-switcher a,
.lang-switcher span {
	padding: 4px 10px;
	border-radius: 4px;
	color: var(--color-text-muted);
	font-weight: 600;
	transition: all var(--duration);
	cursor: pointer;
	text-decoration: none;
}
.lang-switcher .current-lang {
	background: var(--color-gold);
	color: var(--color-bg-2);
}
.lang-switcher a:hover,
.lang-switcher span:hover { color: var(--color-gold); }
.lang-switcher .current-lang:hover { color: var(--color-bg-2); }

/* ── Filters bar ───────────────────────────────────────────────── */
.filters-bar {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: var(--space-5);
	margin-bottom: var(--space-6);
}

/* ── Gallery (single property) ─────────────────────────────────── */
.property-gallery { border-radius: var(--radius-md); overflow: hidden; }
.property-gallery .carousel-item img {
	aspect-ratio: 16/9;
	object-fit: cover;
	width: 100%;
}

/* ── Fact list ─────────────────────────────────────────────────── */
.fact-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-3);
}
.fact-item {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	background: var(--color-bg);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-sm);
	padding: var(--space-3) var(--space-4);
}
.fact-item__icon {
	width: 36px;
	height: 36px;
	background: rgba(210,186,129,.1);
	border-radius: var(--radius-xs);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: var(--color-gold);
}
.fact-item__label { font-size: var(--text-xs); color: var(--color-text-muted); }
.fact-item__value { font-weight: 600; font-size: var(--text-sm); color: var(--color-text); }

/* ── Alerts ────────────────────────────────────────────────────── */
.alert { border-radius: var(--radius-sm); font-size: var(--text-sm); }
.alert-success { background: rgba(34,197,94,.1); border-color: rgba(34,197,94,.25); color: var(--color-success); }
.alert-danger { background: rgba(248,113,113,.1); border-color: rgba(248,113,113,.25); color: var(--color-error); }

/* ── Misc Utilities ────────────────────────────────────────────── */
.text-gold { color: var(--color-gold) !important; }
.text-muted { color: var(--color-text-muted) !important; }
.bg-surface { background: var(--color-surface) !important; }
.bg-dark-2 { background: var(--color-bg-2) !important; }
.border-gold { border-color: var(--color-gold) !important; }
.gold-line { width: 48px; height: 2px; background: var(--color-gold); }
.geo-accent { position: relative; }
.geo-accent::before {
	content: '';
	position: absolute;
	width: 80px; height: 80px;
	border: 1px solid rgba(210,186,129,.12);
	transform: rotate(45deg);
	pointer-events: none;
}

/* ── Responsive ────────────────────────────────────────────────── */

/* Large screens 992-1399 — tighter nav */
@media (min-width: 992px) and (max-width: 1399.98px) {
	.navbar .nav-link {
		font-size: .75rem;
		padding: .5rem .35rem !important;
	}
	.brand-text { font-size: .95rem; }
	.header-cta .btn {
		font-size: .7rem;
		padding: .35rem .75rem;
	}
}

@media (max-width: 991.98px) {
	.section-title { font-size: var(--text-2xl); }
	.hero__title { font-size: var(--text-3xl); }
	.safwat-section { padding: var(--space-8) 0; }
	.hero .carousel-control-prev,
	.hero .carousel-control-next { width: 44px; height: 44px; }
}

@media (max-width: 767.98px) {
	.section-title { font-size: var(--text-xl); }
	.hero__title { font-size: var(--text-2xl); }
	.safwat-section { padding: var(--space-6) 0; }
	.fact-grid { grid-template-columns: 1fr; }
	.hero .carousel,.hero .carousel-inner,
	.hero .carousel-item,.hero__slide { min-height: 70vh; }
	.hero .carousel-control-prev,
	.hero .carousel-control-next { width: 36px; height: 36px; }
	.hero .carousel-control-prev { left: var(--space-2); }
	.hero .carousel-control-next { right: var(--space-2); }
	[dir="rtl"] .hero .carousel-control-prev { left: auto; right: var(--space-2); }
	[dir="rtl"] .hero .carousel-control-next { right: auto; left: var(--space-2); }
}

/* ── Elementor compat ──────────────────────────────────────────── */
.safwat-elementor-content { background: var(--color-bg-light); }

/* ── Back to top button ────────────────────────────────────────── */
.btn-back-to-top {
	position: fixed;
	bottom: 6rem;
	inset-inline-end: 1.5rem;
	z-index: 1040;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transform: translateY(1rem);
	transition: opacity .3s, visibility .3s, transform .3s;
	box-shadow: 0 4px 16px rgba(0,0,0,.3);
}
.btn-back-to-top.visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.ls-wide { letter-spacing: .12em; }
