/* ═══════════════════════════════════════════════
   ZBApex — Base Reset & Global Styles
═══════════════════════════════════════════════ */

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

html {
    scroll-behavior: smooth;
}

body {
    background: var(--n900);
    color: var(--white);
    font-family: var(--en);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

/* ── Shared buttons (used across partials) ── */
.btn-gold {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--gold);
    color: var(--n900);
    font-size: 14px;
    font-weight: 700;
    padding: 13px 28px;
    border-radius: 9px;
    text-decoration: none;
    transition: all 0.2s;
    font-family: var(--en);
    white-space: nowrap;
}

.btn-gold:hover {
    background: var(--gold-l);
    transform: translateY(-1px);
}

.btn-gold svg {
    width: 18px;
    height: 18px;
    fill: var(--n900);
    flex-shrink: 0;
}

.btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    color: var(--gold);
    font-size: 14px;
    font-weight: 600;
    padding: 12px 26px;
    border-radius: 9px;
    border: 1px solid var(--gold-a38);
    text-decoration: none;
    cursor: pointer;
    font-family: var(--en);
    transition: all 0.2s;
    white-space: nowrap;
}

.btn-outline:hover {
    background: var(--gold-a09);
    border-color: var(--gold);
}

/* ── Shared animations ── */
@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(24px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ═══════════════════════════════════════════════
   SuperDream Fluid Layout Patch
   Purpose: allow the complete website layout to breathe on large screens
   without making content full-width or hurting readability.
═══════════════════════════════════════════════ */
:root {
    --sd-container-max: 1200px;
    --sd-container-gutter: 56px;
}

.container {
    width: min(var(--sd-container-max), calc(100% - var(--sd-container-gutter))) !important;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
}

.blog-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 28px;
}

@media (min-width: 1440px) {
    :root {
        --sd-container-max: 1360px;
        --sd-container-gutter: 72px;
    }
}

@media (min-width: 1680px) {
    :root {
        --sd-container-max: 1480px;
        --sd-container-gutter: 88px;
    }
}

@media (min-width: 1920px) {
    :root {
        --sd-container-max: 1560px;
        --sd-container-gutter: 104px;
    }
}

@media (max-width: 640px) {
    :root {
        --sd-container-gutter: 32px;
    }
}
/* ═══════════════════════════════════════════════
   Public Layout Balance Patch
   Purpose: shared, controlled public-page spacing for wide screens.
   Wider pages, readable text, protected card widths.
═══════════════════════════════════════════════ */
:root {
    --sd-page-max: 1120px;
    --sd-readable-max: 900px;
    --sd-wide-readable-max: 1040px;
    --sd-card-max: 430px;
    --sd-page-gutter: 48px;
}

@media (min-width: 1440px) {
    :root {
        --sd-page-max: 1240px;
        --sd-readable-max: 940px;
        --sd-wide-readable-max: 1120px;
        --sd-card-max: 440px;
        --sd-page-gutter: 72px;
    }
}

@media (min-width: 1680px) {
    :root {
        --sd-page-max: 1320px;
        --sd-readable-max: 980px;
        --sd-wide-readable-max: 1180px;
        --sd-card-max: 450px;
        --sd-page-gutter: 88px;
    }
}

@media (min-width: 1920px) {
    :root {
        --sd-page-max: 1380px;
        --sd-readable-max: 1000px;
        --sd-wide-readable-max: 1220px;
        --sd-page-gutter: 104px;
    }
}

@media (max-width: 640px) {
    :root {
        --sd-page-gutter: 28px;
    }
}

/* ═══════════════════════════════════════════════
   Image loading stability patch
   Purpose: reserve media space, reduce layout shift, and keep images crisp.
═══════════════════════════════════════════════ */
img {
    max-width: 100%;
}

img[loading="lazy"],
img[decoding="async"] {
    background: rgba(255, 255, 255, .04);
}

.svc-thumb,
.blog-media,
.blog-card-img,
.service-action-icon,
.service-help-thumb,
.family-emirate-thumb,
.cv-card-thumb,
.inquiry-panel [style*="overflow:hidden"] {
    background: rgba(255, 255, 255, .04);
}

.svc-thumb img,
.blog-media img,
.blog-card-img img,
.service-action-icon img,
.service-help-thumb img,
.family-emirate-thumb img,
.cv-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
