/* ======================= */
/*       CARDS BLOCK       */
/* ======================= */

.chen_cards_block {
    width: 100%;
}

.chen_cards_block__title {
    margin: 0 0 32px 0;

    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: 0.48px;
}

/* Title color */

.chen_cards_block--dark .chen_cards_block__title {
    color: #333333;
}

.chen_cards_block--olive .chen_cards_block__title {
    color: #808000;
}

.chen_cards_block--rose .chen_cards_block__title {
    color: #f25f70;
}

.chen_cards_block--teal .chen_cards_block__title {
    color: #008080;
}

.chen_cards_block__wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    gap: 32px;
}

.chen_cards_block__card {
    width: 325px;

    border-radius: 1rem;
    overflow: hidden;

    display: flex;
    flex-direction: column;
    align-items: stretch;
}

/* Card backgrounds */

.chen_cards_block--bg-white .chen_cards_block__card {
    background: #ffffff;
}

.chen_cards_block--bg-light .chen_cards_block__card {
    background: #f5f5f5;
}

.chen_cards_block--bg-transparent .chen_cards_block__card {
    background: transparent;
}

.chen_cards_block--bg-dark .chen_cards_block__card {
    background: #2f2f2f;
}

.chen_cards_block--bg-dark .chen_cards_block__infos p {
    color: rgba(255,255,255,0.85);
}

.chen_cards_block--bg-dark .chen_cards_block__heading {
    color: inherit;
}

/* Card shadow */

.chen_cards_block--shadow .chen_cards_block__card {
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

/* Content */

.chen_cards_block__content {
    padding: 2rem 2rem 0 2rem;

    display: flex;
    flex-direction: column;
    flex: 1;
}

/* Heading */

.chen_cards_block__heading_wrap {
    height: 120px;

    display: flex;
    align-items: center;

    border-bottom: 1px solid currentColor;
}

.chen_cards_block__heading {
    margin: 0 0 1em 0;

    width: 100%;

    font-family: Helvetica, Arial, sans-serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.02em;

    text-align: left;
}

/* Infos */

.chen_cards_block__infos {
    margin: 1rem 0 0 0;
    min-height: 100px;

    display: flex;
    flex-direction: column;
    justify-content: center;
}

.chen_cards_block__infos p {
    margin: 0 0 8px 0;

    width: 100%;

    font-family: "Roboto", Arial, sans-serif;
    text-align: left;
}

/* CTA */

.chen_cards_block__cta_wrap {
    width: 100%;

    display: flex;
    justify-content: center;
    align-items: center;

    position: relative;
    z-index: 2;
}

.chen_cards_block__cta {
    margin-bottom: -1.5rem;
    padding: 1rem 2.5rem;

    border-radius: 1rem;

    text-transform: none;
    text-decoration: none;

    font-weight: 300;

    transition: all 0.3s ease;

    box-shadow: 0 0 10px rgba(0,0,0,0.4);

    will-change: transform;

    position: relative;
    z-index: 3;
}

.chen_cards_block__cta:hover {
    transform: scale(1.05);
    box-shadow: 0 0 8px rgba(0,0,0,0.4);
}

/* Image */

.chen_cards_block__image_wrap {
    position: relative;

    width: 100%;
    height: 300px;

    overflow: hidden;

    margin-top: -0.75rem;
}

.chen_cards_block__image_wrap::after {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    z-index: 1;
}

.chen_cards_block__image {
    position: relative;
    z-index: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;
}

/* Overlay colors */

.chen_cards_block--overlay-black .chen_cards_block__image_wrap::after {
    background: #000000;
}

.chen_cards_block--overlay-white .chen_cards_block__image_wrap::after {
    background: #ffffff;
}

/* Overlay strengths */

.chen_cards_block--overlay-light .chen_cards_block__image_wrap::after {
    opacity: 0.15;
}

.chen_cards_block--overlay-medium .chen_cards_block__image_wrap::after {
    opacity: 0.3;
}

.chen_cards_block--overlay-strong .chen_cards_block__image_wrap::after {
    opacity: 0.5;
}

/* COLORS */

.chen_cards_block--dark .chen_cards_block__heading,
.chen_cards_block--dark .chen_cards_block__heading_wrap {
    color: #333333;
}

.chen_cards_block--dark .chen_cards_block__cta {
    background-color: #333333;
    color: #ffffff;
}

.chen_cards_block--olive .chen_cards_block__heading,
.chen_cards_block--olive .chen_cards_block__heading_wrap {
    color: #808000;
}

.chen_cards_block--olive .chen_cards_block__cta {
    background-color: #808000;
    color: #ffffff;
}

.chen_cards_block--rose .chen_cards_block__heading,
.chen_cards_block--rose .chen_cards_block__heading_wrap {
    color: #f25f70;
}

.chen_cards_block--rose .chen_cards_block__cta {
    background-color: #f25f70;
    color: #ffffff;
}

.chen_cards_block--teal .chen_cards_block__heading,
.chen_cards_block--teal .chen_cards_block__heading_wrap {
    color: #008080;
}

.chen_cards_block--teal .chen_cards_block__cta {
    background-color: #008080;
    color: #ffffff;
}

/* CTA inverted */

.chen_cards_block--cta-inverted.chen_cards_block--dark .chen_cards_block__cta {
    background-color: #ffffff;
    color: #333333;
}

.chen_cards_block--cta-inverted.chen_cards_block--olive .chen_cards_block__cta {
    background-color: #ffffff;
    color: #808000;
}

.chen_cards_block--cta-inverted.chen_cards_block--rose .chen_cards_block__cta {
    background-color: #ffffff;
    color: #f25f70;
}

.chen_cards_block--cta-inverted.chen_cards_block--teal .chen_cards_block__cta {
    background-color: #ffffff;
    color: #008080;
}

/* Tablet */

@media (max-width: 1150px) and (min-width: 751px) {

    .chen_cards_block__wrap {
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .chen_cards_block__card {
        width: 100%;
        max-width: 650px;
    }
}

/* Mobile */

@media (max-width: 750px) {

    .chen_cards_block__wrap {
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .chen_cards_block__card {
        width: 100%;
        max-width: 400px;
    }
}