/* ─── INTRO SECTION ──────────────────────────────────────────────────────── */

.contact-intro {
    max-width: 75rem;
    margin: 0 auto;
    padding: 3rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.contact-intro-text h2 {
    font-size: 1.75rem;
    font-weight: 400;
    line-height: 1.15;
    margin-bottom: 1.25rem;
    color: #33363D;
}

.contact-intro-text h2 strong {
    font-weight: 600;
    color: #0076B6;
    display: block;
}

.contact-intro-text p {
    font-size: 1.25rem;
    line-height: 1.45;
    color: #33363D;
}

.contact-intro-img {
    border-radius: 1.25rem;
    overflow: hidden;
    flex-shrink: 0;
}

.contact-intro-img img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 1.25rem;
}


/* ─── SPEAK WITH AGENT ───────────────────────────────────────────────────── */

.contact-agent {
    padding: 3rem 1.25rem 3.5rem;
    text-align: center;
}

.contact-agent h2 {
    font-size: 1.75rem;
    font-weight: 400;
    line-height: 1.2;
    margin-bottom: 2rem;
    color: #33363D;
}

.contact-agent h2 strong {
    font-weight: 600;
    color: #8DBD3F;
    display: block;
}

.contact-cards {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 75rem;
    margin: 0 auto;
}

.contact-card {
    border-radius: 0.9375rem;
    border: 2.5px solid #33363D;
    background: #fff;
    box-shadow: 0 0 8.9px rgba(0,0,0,0.09);
    padding: 1.75rem 1.5rem 1.5rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.contact-card.blue {
    border-color: #0076B6;
}

.contact-card.green {
    border-color: #8EB84A;
}

.contact-card h3 {
    font-size: 1.25rem;
    font-weight: 600;
    color: #33363D;
    line-height: 1.25;
    margin-bottom: 0;
}

.contact-card p {
    font-size: 1.125rem;
    line-height: 1.4;
    color: #33363D;
    flex: 1;
    margin-bottom: 0;
}

.contact-card .btn-outline {
    font-size: 1.0625rem;
    padding: 0.6rem 1.25rem;
    align-self: center;
}


/* ─── OFFICES ────────────────────────────────────────────────────────────── */

.contact-offices {
    max-width: 75rem;
    margin: 0 auto;
    padding: 3rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

.contact-offices-img {
    border-radius: 1.25rem;
    overflow: hidden;
    flex-shrink: 0;
}

.contact-offices-img img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 1.25rem;
}

.contact-offices-list h2 {
    font-size: 1.75rem;
    font-weight: 400;
    line-height: 1.15;
    margin-bottom: 1.75rem;
    color: #33363D;
}

.contact-offices-list h2 strong {
    font-weight: 600;
    color: #0076B6;
}

.office-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.office-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.office-pin {
    flex-shrink: 0;
    margin-top: 0.1875rem;
    color: #0076B6;
}

.office-pin svg {
    width: 2.25rem;
    height: 2.25rem;
    margin-top: -0.4375rem;
}

.office-name {
    font-size: 1.375rem;
    font-weight: 500;
    color: #33363D;
    line-height: 1.25;
    margin-bottom: 0.2rem;
}

.office-address {
    font-size: 1.125rem;
    font-weight: 400;
    color: #33363D;
    line-height: 1.4;
}


/* ─── RESPONSIVE ─────────────────────────────────────────────────────────── */

@media (min-width: 48em) {
    .contact-cards {
        flex-direction: row;
    }

    .contact-card {
        flex: 1;
    }
}

@media (min-width: 64em) {
    .contact-intro {
        flex-direction: row;
        align-items: center;
        gap: 4rem;
        padding: 5rem 1.5rem;
    }

    .contact-intro-text {
        flex: 1;
    }

    .contact-intro-text h2 {
        font-size: 2.5625rem;
        line-height: 2.9375rem;
    }

    .contact-intro-text p {
        font-size: 1.375rem;
        line-height: 2rem;
    }

    .contact-intro-img {
        flex: 0 0 33.8125rem;
    }

    .contact-agent {
        padding: 4rem 1.5rem 5rem;
    }

    .contact-agent h2 {
        font-size: 2.5625rem;
    }

    .contact-card h3 {
        font-size: 1.5rem;
        margin-bottom: -0.625rem;
    }

    .contact-card p {
        font-size: 1.375rem;
        margin-bottom: 0.375rem;
    }

    .contact-card .btn-outline {
        font-size: 1.25rem;
    }

    .contact-offices {
        flex-direction: row;
        align-items: flex-start;
        gap: 4rem;
        padding: 4rem 1.5rem 5rem;
    }

    .contact-offices-img {
        flex: 0 0 39.375rem;
    }

    .contact-offices-img {
        max-height: 37.5rem;
    }

    .contact-offices-list {
        flex: 1;
    }

    .contact-offices-list h2 {
        font-size: 2.5625rem;
    }

    .office-name {
        font-size: 1.5rem;
    }

    .office-address {
        font-size: 1.25rem;
    }
}