/* ── Google Fonts ──────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=DM+Sans:wght@300;400;500;600&family=Noto+Kufi+Arabic:wght@300;400;500;600;700&family=Cairo:wght@300;400;500;600;700;800&family=Tajawal:wght@300;400;500;700;800&family=Almarai:wght@300;400;700;800&display=swap');

/* ── Custom utilities (replicate Tailwind @utility blocks) ─────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    font-family: var(--font-body, 'DM Sans', system-ui, sans-serif);
    background-color: var(--color-marble-white, #f5f0eb);
    color: var(--color-obsidian, #1a1a1a);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

[lang="ar"] body { line-height: 1.85; }
[lang="ar"] * { letter-spacing: 0 !important; }
[lang="ar"] body, [lang="ar"] a, [lang="ar"] button,
[lang="ar"] input, [lang="ar"] textarea, [lang="ar"] select {
    font-family: var(--font-ar-body, 'Cairo', sans-serif);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading, 'Playfair Display', Georgia, serif);
    line-height: 1.2;
}
[lang="ar"] h1, [lang="ar"] h2, [lang="ar"] h3, [lang="ar"] h4 { line-height: 1.4; }

/* container-site */
.container-site {
    width: 100%;
    max-width: 1280px;
    margin-inline: auto;
    padding-inline: 1.5rem;
}

/* btn-primary */
.btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.75rem;
    background-color: var(--color-deep-green, #0d5e37);
    color: white;
    font-weight: 600;
    border-radius: 0.25rem;
    transition: background-color 0.2s ease, transform 0.1s ease;
    text-decoration: none;
    cursor: pointer;
    border: none;
    font-family: var(--font-body);
}
.btn-primary:hover {
    background-color: var(--color-deep-green-hover, #0a4d2e);
    transform: translateY(-1px);
}

/* btn-gold */
.btn-gold {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.75rem;
    background-color: var(--color-gold, #c9a96e);
    color: var(--color-obsidian, #1a1a1a);
    font-weight: 600;
    border-radius: 0.25rem;
    transition: background-color 0.2s ease, transform 0.1s ease;
    text-decoration: none;
    cursor: pointer;
    border: none;
    font-family: var(--font-body);
}
.btn-gold:hover {
    background-color: var(--color-gold-light, #e4c99a);
    transform: translateY(-1px);
}

/* btn-outline */
.btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.75rem;
    background-color: transparent;
    color: white;
    font-weight: 600;
    border-radius: 0.25rem;
    border: 2px solid white;
    transition: background-color 0.2s ease;
    text-decoration: none;
    cursor: pointer;
    font-family: var(--font-body);
}
.btn-outline:hover { background-color: rgba(255,255,255,0.1); }

/* section-heading */
.section-heading {
    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 700;
    color: var(--color-obsidian);
    line-height: 1.2;
}

/* ── Scrollbar ────────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--color-sand); }
::-webkit-scrollbar-thumb { background: var(--color-gold); border-radius: 3px; }

/* ── Selection ────────────────────────────────────────────────────── */
::selection { background-color: var(--color-gold); color: var(--color-obsidian); }

/* ── Focus ────────────────────────────────────────────────────────── */
:focus-visible { outline: 2px solid var(--color-gold); outline-offset: 2px; }

/* ── Navbar transition ────────────────────────────────────────────── */
#site-header { transition: background-color 0.3s ease, box-shadow 0.3s ease; }
#site-header.scrolled {
    background-color: rgba(26,26,26,0.95);
    backdrop-filter: blur(12px);
    box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}

/* ── Mobile menu ──────────────────────────────────────────────────── */
#mobile-menu { transition: opacity 0.3s ease, visibility 0.3s ease; }
#mobile-menu.hidden-menu { opacity: 0; visibility: hidden; pointer-events: none; }
#mobile-menu.open-menu  { opacity: 1; visibility: visible; pointer-events: all; }

/* ── Language dropdown ────────────────────────────────────────────── */
#lang-dropdown { display: none; }
#lang-dropdown.open { display: block; }

/* ── Admin sidebar ────────────────────────────────────────────────── */
.admin-nav-link {
    display: flex; align-items: center; gap: 0.75rem;
    padding: 0.625rem 0.875rem;
    border-radius: 0.5rem;
    font-size: 0.875rem; font-weight: 500;
    color: #9ca3af;
    transition: all 0.15s ease;
    text-decoration: none;
}
.admin-nav-link:hover { background-color: rgba(255,255,255,0.05); color: white; }
.admin-nav-link.active { background-color: rgba(201,169,110,0.15); color: #c9a96e; }

/* ── Toast notifications ──────────────────────────────────────────── */
.toast {
    position: fixed; top: 1.5rem; right: 1.5rem; z-index: 9999;
    display: flex; align-items: center; gap: 0.75rem;
    padding: 0.875rem 1.25rem;
    border-radius: 0.5rem;
    color: white; font-size: 0.875rem; font-weight: 500;
    box-shadow: 0 10px 25px rgba(0,0,0,0.3);
    animation: slideIn 0.3s ease;
}
.toast-success { background-color: #16a34a; }
.toast-error   { background-color: #dc2626; }
@keyframes slideIn { from { opacity:0; transform: translateX(1rem); } to { opacity:1; transform: translateX(0); } }
