/* =============================================
   BASE
   ============================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

/* =============================================
   CONTAINER
   ============================================= */

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

/* =============================================
   SERVICES SECTION
   ============================================= */

.services-section {
    margin-top: -230px;
    padding: 0 0 120px;
}

.service-card {
    width: 100%;
    max-width: 1100px;
    background: #FFFFFF;
    border-radius: 25px;
    margin: 50px auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 60px 65px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.05);
    min-height: 360px;
    gap: 40px;

    opacity: 0;
    transform: translateY(60px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

.service-card.show {
    opacity: 1;
    transform: translateY(0);
}

/* =============================================
   CARD COLUMNS
   ============================================= */

.card-left,
.card-right {
    flex: 1 1 0;
    min-width: 0;
}

.card-left {
    padding-right: 25px;
}

.card-right {
    padding-left: 30px;
}

.service-card.reverse .card-left,
.service-card.reverse .card-right {
    text-align: left;
}

/* =============================================
   HEADINGS
   ============================================= */

.card-left h2,
.card-right h2 {
    font-family: 'Playfair Display', serif;
    font-weight: 400;
    font-size: 38px;
    line-height: 110%;
    color: #003060;
    margin-top: 15px;
    max-width: 100%;
    white-space: normal;
}

/* =============================================
   PARAGRAPHS
   ============================================= */

.card-right p,
.card-left p {
    font-family: 'Urbanist', sans-serif;
    font-size: 20px;
    line-height: 160%;
    color: #003060;
    font-weight: 500;
    max-width: 100%;
}

/* =============================================
   DIVIDER
   ============================================= */

.divider {
    width: 2px;
    min-height: 180px;
    /* min-height so it never clips content taller than 180px */
    flex-shrink: 0;
    /* never let the divider compress away */
    background: #014694;
    opacity: 0.9;
    align-self: stretch;
    /* grows to match the card's content height */
}

/* =============================================
   ICON
   ============================================= */

.service-icon {
    width: 70px;
    height: auto;
    margin-bottom: 20px;
    display: block;
}

/* =============================================
   RESPONSIVE — TABLET (max-width: 1023px)
   ============================================= */

@media screen and (max-width: 1023px) {
    .container {
        padding: 0 30px;
    }

    .services-section {
        margin-top: -180px;
        padding: 0 0 80px;
    }

    .service-card {
        padding: 50px 40px;
        gap: 30px;
        min-height: unset;
    }

    .card-left h2,
    .card-right h2 {
        font-size: 30px;
    }

    .card-right p,
    .card-left p {
        font-size: 16px;
    }

    .service-icon {
        width: 55px;
    }
}

/* =============================================
   RESPONSIVE — MOBILE (max-width: 767px)
   ============================================= */

@media screen and (max-width: 767px) {
    .container {
        padding: 0 16px;
    }

    .services-section {
        margin-top: -120px;
        padding: 0 0 60px;
    }

    .service-card {
        flex-direction: column !important;
        /* stacks all cards, including .reverse */
        align-items: flex-start;
        padding: 40px 30px;
        margin: 30px auto;
        gap: 30px;
        min-height: unset;
    }

    .service-card.reverse {
        flex-direction: column-reverse !important;
    }

    .divider {
        width: 100%;
        height: 2px;
        min-height: unset;
        align-self: auto;
    }

    .card-left,
    .card-right {
        width: 100%;
        padding: 0;
    }

    .card-left h2,
    .card-right h2 {
        font-size: 26px;
    }

    .card-right p,
    .card-left p {
        font-size: 15px;
    }

    .service-icon {
        width: 50px;
    }
}

/* =============================================
   RESPONSIVE — SMALL MOBILE (max-width: 479px)
   ============================================= */

@media screen and (max-width: 479px) {
    .services-section {
        margin-top: -80px;
    }

    .service-card {
        padding: 30px 20px;
        border-radius: 16px;
    }

    .card-left h2,
    .card-right h2 {
        font-size: 22px;
    }

    .card-right p,
    .card-left p {
        font-size: 14px;
    }
}