/* =====================================================
   About Us — Capital Flex
   All values use CSS custom properties only.
   ===================================================== */

/* ---- Two-column split (visual left, content right) ---- */

.about__inner {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    align-items: center;
    gap: var(--space-20);
}

/* ---- Visual side ---- */

.about__visual {
    position: relative;
}

/* Uploaded image */
.about__image {
    width: 100%;
    height: 480px;
    object-fit: cover;
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-xl);
}

/* ---- Default branded visual ---- */

.about__default-visual {
    position: relative;
    height: 440px;
}

/* Decorative background card */
.about__vis-card--bg {
    position: absolute;
    inset: 0;
    border-radius: var(--radius-2xl);
    background: linear-gradient(
        135deg,
        var(--color-primary) 0%,
        var(--color-primary-dark) 100%
    );
    transform: rotate(-2deg) scale(0.97);
    opacity: 0.15;
}

/* Main quote card */
.about__vis-card--main {
    position: absolute;
    inset: 0;
    border-radius: var(--radius-2xl);
    background-color: var(--color-text);
    padding: var(--space-10) var(--space-10) var(--space-12);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: var(--space-4);
    overflow: hidden;
}

/* Decorative gradient blob inside card */
.about__vis-card--main::before {
    content: '';
    position: absolute;
    top: -40px;
    right: -40px;
    width: 220px;
    height: 220px;
    background: radial-gradient( circle, var(--color-primary) 0%, transparent 70% );
    opacity: 0.2;
    pointer-events: none;
}

.about__vis-card--main::after {
    content: '';
    position: absolute;
    bottom: -60px;
    left: -30px;
    width: 160px;
    height: 160px;
    background: radial-gradient( circle, var(--color-primary-light) 0%, transparent 70% );
    opacity: 0.12;
    pointer-events: none;
}

.about__vis-quote {
    color: var(--color-primary-light);
}

.about__vis-text {
    font-family: var(--font-heading);
    font-weight: var(--fw-semibold);
    font-size: var(--text-h3);
    line-height: var(--leading-snug);
    color: var(--color-white);
    position: relative;
    z-index: var(--z-raised);
}

.about__vis-author {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    position: relative;
    z-index: var(--z-raised);
}

.about__vis-dot {
    width: 32px;
    height: 2px;
    background-color: var(--color-primary-light);
    border-radius: var(--radius-full);
}

.about__vis-author span {
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: var(--fw-medium);
    color: rgba(255, 255, 255, 0.5);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* ---- Floating badges ---- */

.about__vis-badge {
    position: absolute;
    background-color: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: var(--space-3) var(--space-4);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    z-index: var(--z-raised);
}

/* Stat badge — top right, overlapping card */
.about__vis-badge--stat {
    top: -20px;
    right: -16px;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-1);
    min-width: 110px;
}

.about__vis-badge--stat strong {
    font-family: var(--font-heading);
    font-weight: var(--fw-extrabold);
    font-size: var(--text-h3);
    color: var(--color-primary);
    line-height: 1;
}

.about__vis-badge--stat span {
    font-size: var(--text-xs);
    color: var(--color-muted);
    font-weight: var(--fw-medium);
}

/* Location badge — bottom left */
.about__vis-badge--location {
    bottom: -16px;
    left: var(--space-8);
    color: var(--color-muted);
}

.about__vis-badge--location svg {
    color: var(--color-primary);
    flex-shrink: 0;
}

.about__vis-badge--location span {
    font-weight: var(--fw-medium);
    color: var(--color-text);
    white-space: nowrap;
}

/* ---- Content side ---- */

.about__content {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.about__heading {
    font-size: var(--text-h1);
}

.about__body {
    max-width: 52ch;
}

/* ---- Bullet points ---- */

.about__points {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-top: var(--space-2);
}

.about__point {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    font-family: var(--font-body);
    font-size: var(--text-body);
    font-weight: var(--fw-medium);
    color: var(--color-text);
}

.about__point-icon {
    width: 22px;
    height: 22px;
    border-radius: var(--radius-full);
    background-color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
    flex-shrink: 0;
    margin-top: 1px;
}

.about__point-icon svg {
    width: 12px;
    height: 12px;
}

/* =====================================================
   Responsive — Tablet ≤ 1024px
   ===================================================== */

@media ( max-width: 1024px ) {
    .about__inner {
        grid-template-columns: 1fr;
        gap: var(--space-16);
    }

    .about__visual {
        order: 2;
        max-width: 520px;
        margin: 0 auto;
        width: 100%;
    }

    .about__content {
        order: 1;
    }

    .about__default-visual {
        height: 380px;
    }
}

/* =====================================================
   Responsive — Large mobile ≤ 768px
   ===================================================== */

@media ( max-width: 768px ) {
    .about__default-visual {
        height: 340px;
    }

    .about__vis-badge--stat {
        top: -14px;
        right: -8px;
    }

    .about__image {
        height: 340px;
    }
}

/* =====================================================
   Responsive — Small mobile ≤ 640px
   ===================================================== */

@media ( max-width: 640px ) {
    .about__default-visual {
        height: 300px;
    }

    .about__vis-card--main {
        padding: var(--space-6) var(--space-6) var(--space-8);
    }

    .about__vis-text {
        font-size: var(--text-h4);
    }

    .about__vis-badge--location {
        left: var(--space-4);
        bottom: -14px;
    }

    .about__image {
        height: 260px;
    }

    .about__body {
        max-width: 100%;
    }
}
