/* Four-column photography services with a monochrome hover state. */

.story-cards {
    padding-bottom: 0
}

.services {
    padding-top: 88px
}

.services-wrap {
    width: min(1540px, calc(100% - 80px))
}

.services h2 {
    font-size: clamp(30px, 3.2vw, 52px);
    white-space: nowrap
}

.services .alp-services-grid,
.services .service-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    text-align: left
}

.services .alp-service-card,
.services .service-card {
    position: relative;
    overflow: hidden;
    padding: 0;
    border: 1px solid #ecebe8;
    border-radius: 28px;
    background: #f3f2ef;
    color: #050505;
    box-shadow: none;
    transition: transform .35s cubic-bezier(.22, 1, .36, 1), box-shadow .35s ease
}

.services .alp-service-card:before,
.services .service-card:before {
    content: '✦';
    position: absolute;
    z-index: 2;
    top: 24px;
    left: 24px;
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border-radius: 50%;
    background: #000;
    color: #fff;
    font-size: 21px
}

.services .alp-service-card>img,
.services .service-photo {
    display: block;
    width: 100%;
    height: 480px;
    aspect-ratio: auto;
    border-radius: 28px 28px 0 0;
    object-fit: cover;
    overflow: hidden
}

.services .service-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.services .alp-service-copy,
.services .service-card-foot {
    position: relative;
    display: flex;
    box-sizing: border-box;
    min-height: 104px;
    align-items: center;
    padding: 20px 84px 20px 24px;
    background: #f3f2ef;
    color: #050505;
    transition: background .3s ease, color .3s ease
}

.services .alp-service-copy h3,
.services .service-card-foot h3 {
    margin: 0;
    font: 650 clamp(18px, 1.45vw, 24px)/1.18 Arial, Helvetica, sans-serif;
    letter-spacing: -.02em
}

.services .alp-service-copy p,
.services .alp-service-meta {
    display: none
}

.services .alp-service-copy>a,
.services .service-card-foot>a {
    position: absolute;
    right: 20px;
    bottom: 21px;
    display: grid;
    width: 58px;
    height: 58px;
    min-height: 0;
    padding: 0;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: #000;
    font-size: 0;
    text-decoration: none;
    transition: transform .3s ease, background .3s ease, color .3s ease
}

.services .alp-service-copy>a:before {
    content: '↗';
    font-size: 25px;
    line-height: 1
}

.services .service-card-foot>a {
    font-size: 25px
}

.services .alp-service-card:hover,
.services .service-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 45px rgba(0, 0, 0, .13)
}

.services .alp-service-card:hover .alp-service-copy,
.services .service-card:hover .service-card-foot {
    background: #000;
    color: #fff
}

.services .alp-service-card:hover .alp-service-copy>a,
.services .service-card:hover .service-card-foot>a {
    background: #fff;
    color: #000;
    transform: rotate(8deg)
}

.services .services-all {
    min-height: 56px;
    background: #000;
    color: #fff
}

.services .services-all:hover {
    background: #252525;
    color: #fff
}

.service-reveal-ready {
    opacity: 0;
    filter: blur(5px);
    transform: translateY(58px) scale(.975);
    transition: opacity .72s cubic-bezier(.22, 1, .36, 1), filter .72s ease, transform .88s cubic-bezier(.22, 1, .36, 1), box-shadow .35s ease;
    transition-delay: var(--service-delay, 0ms);
    will-change: opacity, filter, transform
}

.service-reveal-ready.is-revealed {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) scale(1)
}

.service-reveal-ready.is-revealed:hover {
    transform: translateY(-5px)
}

@media(max-width:1100px) {
    .services .alp-services-grid,
    .services .service-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
    .services .alp-service-card>img,
    .services .service-photo {
        height: 440px
    }
}

@media(max-width:600px) {
    .story-cards {
        padding-bottom: 0
    }
    .services {
        padding-top: 47px
    }
    .services-wrap {
        width: 100%
    }
    .services h2 {
        font-size: 36px;
        white-space: normal
    }
    .services .alp-services-grid,
    .services .service-cards {
        grid-template-columns: 1fr;
        gap: 15px
    }
    .services .alp-service-card,
    .services .service-card {
        border-radius: 24px
    }
    .services .alp-service-card>img,
    .services .service-photo {
        height: 390px;
        border-radius: 24px 24px 0 0
    }
    .services .alp-service-card:before,
    .services .service-card:before {
        top: 18px;
        left: 18px;
        width: 52px;
        height: 52px
    }
    .services .alp-service-copy,
    .services .service-card-foot {
        min-height: 92px;
        padding: 17px 76px 17px 21px
    }
    .services .alp-service-copy>a,
    .services .service-card-foot>a {
        right: 17px;
        bottom: 17px;
        width: 54px;
        height: 54px
    }
}

@media(prefers-reduced-motion:reduce) {
    .service-reveal-ready {
        opacity: 1;
        filter: none;
        transform: none;
        transition: none
    }
}