/* ==========================================================================
   Layouts — Grid System, Container, Page Layouts
   ========================================================================== */
header.navbar {
    position: fixed;
    width: 100%;
    background: transparent;
    border: none;
    padding: 0;
}

/* ── Container ── */
.container {
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-padding);
    width: 100%;
}

.container-wide {
    max-width: 1400px;
    margin-inline: auto;
    padding-inline: var(--container-padding);
    width: 100%;
}

/* ── Grid System ── */
.grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: var(--space-6);
}

.col-1 {
    grid-column: span 1;
}

.col-2 {
    grid-column: span 2;
}

.col-3 {
    grid-column: span 3;
}

.col-4 {
    grid-column: span 4;
}

.col-5 {
    grid-column: span 5;
}

.col-6 {
    grid-column: span 6;
}

.col-7 {
    grid-column: span 7;
}

.col-8 {
    grid-column: span 8;
}

.col-9 {
    grid-column: span 9;
}

.col-10 {
    grid-column: span 10;
}

.col-11 {
    grid-column: span 11;
}

.col-12 {
    grid-column: span 12;
}

/* ── Flex Utilities ── */
.flex {
    display: flex;
}

.flex-col {
    flex-direction: column;
}

.flex-wrap {
    flex-wrap: wrap;
}

.items-center {
    align-items: center;
}

.items-start {
    align-items: flex-start;
}

.justify-center {
    justify-content: center;
}

.justify-between {
    justify-content: space-between;
}

.gap-4 {
    gap: var(--space-4);
}

.gap-6 {
    gap: var(--space-6);
}

.gap-8 {
    gap: var(--space-8);
}

/* ── Section Layout ── */
.section {
    padding-block: var(--space-24);
    position: relative;
}

.section-alt {
    background: var(--color-slate-800);
}

.section-dark {
    background: var(--color-slate-900);
}

.section-pattern {
    background-image:
        radial-gradient(circle at 1px 1px, rgba(47, 183, 106, 0.06) 1px, transparent 0);
    background-size: 32px 32px;
}

/* ── Page Content Layout ── */
.page-content {
    padding-block: var(--space-16);
    color: #111;
}

.page-header {
    padding-block: var(--space-16) var(--space-12);
    text-align: center;
    background: var(--color-slate-800);
    border-bottom: 1px solid var(--color-slate-700);
    min-height: 100vh;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    width: 100%;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

.page-header .container {
    position: relative;
    z-index: 2;
}

.page-header:after {
    content: "";
    position: absolute;
    inset: 0;
    right: 0;
    left: 0;
    bottom: 0;
    top: 0;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 1;
}

.page-header h1 {
    font-size: var(--text-6xl);
    max-width: 65%;
    text-align: center;
    margin: 0 auto;
    margin-bottom: var(--space-4);
}

.page-header .breadcrumb {
    font-size: var(--text-sm);
    color: var(--color-slate-400);
}

.page-header .breadcrumb a {
    color: var(--color-accent);
}

/* ── Two Column Layout ── */
.layout-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12);
    align-items: center;
}

.layout-content-sidebar {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--space-12);
}

/* ── Footer Layout ── */
.site-footer {
    background: var(--color-slate-800);
    border-top: 1px solid var(--color-slate-700);
}

.footer-main {
    padding-block: var(--space-16);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.2fr 1.3fr 1fr;
    gap: var(--space-12);
}

.footer-bottom {
    padding-block: var(--space-6);
    border-top: 1px solid var(--color-slate-700);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--space-4);
}

.footer-bottom .copyright {
    font-family: var(--font-body);
    font-size: var(--text-xs);
    color: var(--color-slate-400);
}

/* ── Footer Contact Info ── */
.footer-contact .widget-title {
    font-size: var(--text-base);
    margin-bottom: var(--space-6);
    color: var(--color-slate-50);
}

.footer-contact-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.footer-contact-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.footer-contact-item.align-start {
    align-items: flex-start;
}

.footer-contact-icon {
    color: var(--color-accent);
    font-size: 18px;
    flex-shrink: 0;
    border: 1px dashed var(--color-accent);
    border-radius: 50%;
    padding: 8px;
}

.footer-contact-item.align-start .footer-contact-icon {
    margin-top: 3px;
}

.footer-contact-text,
.footer-contact-link {
    color: var(--color-slate-400);
    font-size: var(--text-sm);
    font-family: var(--font-body);
}

.footer-contact-link {
    direction: ltr;
    display: inline-block;
}

.footer-contact-link:hover {
    color: var(--color-accent);
}

.footer-contact-text.en-text {
    font-size: var(--text-xs);
    display: block;
}

.footer-contact-text.ar-text {
    display: block;
}

.footer-links {
    padding-top: 25px;
}

.footer-links h4 {
    margin-bottom: 15px;
}

.footer-links ul li {
    margin: 2px;
    width: 46%;
    display: inline-block;
}

.footer-contact {
    padding-top: 25px;
}

/* ── Responsive Layouts ── */
@media (max-width: 1024px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .layout-content-sidebar {
        grid-template-columns: 1fr;
    }

    .layout-two-col {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }
}

@media (max-width: 768px) {
    :root {
        --container-padding: 1.25rem;
    }

    .section {
        padding-block: var(--space-16);
    }

    .grid {
        grid-template-columns: 1fr;
    }

    .col-3,
    .col-4,
    .col-6,
    .col-8 {
        grid-column: span 1;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }

    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }

    .section-title {
        font-size: var(--text-2xl);
    }

    h1 {
        font-size: var(--text-3xl);
    }
}

@media (max-width: 640px) {
    .container {
        padding-inline: var(--space-4);
    }

    .section {
        padding-block: var(--space-12);
    }
}