/* ACE profile-aligned twelve-service catalogue. */

.ace-hero__content h1 {
    max-width: 720px;
    color: var(--ace-white);
    font-size: clamp(3rem, 5.2vw, 5.8rem);
    line-height: .98;
    text-shadow: 0 4px 24px rgb(0 0 0 / 45%);
    text-wrap: balance;
}

.ace-page-hero--services > img {
    object-position: center;
}

.ace-service-grid--core,
.ace-service-grid--index {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ace-service-grid--specialist {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ace-service-grid--core .ace-service-card__image,
.ace-service-grid--index .ace-service-card__image,
.ace-service-grid--specialist .ace-service-card__image {
    height: 210px;
}

.ace-service-grid--core .ace-service-card h3,
.ace-service-grid--index .ace-service-card h3,
.ace-service-grid--specialist .ace-service-card h3 {
    min-height: 2.8em;
    font-size: 1.18rem;
}

.ace-service-grid--core .ace-service-card p,
.ace-service-grid--index .ace-service-card p,
.ace-service-grid--specialist .ace-service-card p {
    min-height: 5.8em;
    font-size: .9rem;
}

.ace-specialist-heading {
    max-width: 840px;
    margin-block: 70px 28px;
}

.ace-specialist-heading h3 {
    margin: 0 0 12px;
    font-size: clamp(1.8rem, 3vw, 3rem);
    text-transform: uppercase;
}

.ace-specialist-heading p {
    color: var(--ace-graphite);
}

.ace-specialist-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.ace-specialist-card {
    min-height: 170px;
    display: grid;
    grid-template-columns: 180px 1fr auto;
    align-items: center;
    gap: 20px;
    overflow: hidden;
    border: 1px solid var(--ace-line);
    background: var(--ace-white);
    box-shadow: 0 8px 28px rgb(6 28 58 / 6%);
    transition: transform .22s ease, box-shadow .22s ease;
}

.ace-specialist-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--ace-shadow);
}

.ace-specialist-card img {
    width: 100%;
    height: 170px;
    object-fit: cover;
}

.ace-specialist-card span {
    display: grid;
    gap: 8px;
    padding-block: 18px;
}

.ace-specialist-card strong {
    font-family: var(--ace-heading);
    font-size: 1.15rem;
    line-height: 1.15;
    text-transform: uppercase;
}

.ace-specialist-card small {
    color: var(--ace-graphite);
    font-size: .84rem;
    line-height: 1.5;
}

.ace-specialist-card b {
    padding-inline-end: 20px;
    color: var(--ace-red);
    font-size: 1.8rem;
}

.ace-services-specialist {
    border-block-start: 1px solid var(--ace-line);
    background: var(--ace-white);
}

.ace-service-card--specialist {
    border-block-start: 4px solid var(--ace-teal);
}

.ace-capabilities__visual--collage img {
    min-height: 520px;
    object-position: center;
}

.ace-service-hero h1,
.ace-page-hero h1 {
    text-shadow: 0 3px 18px rgb(0 0 0 / 40%);
}

.ace-related-services > div {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1180px) {
    .ace-service-grid--core,
    .ace-service-grid--index,
    .ace-service-grid--specialist {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ace-related-services > div {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 860px) {
    .ace-service-grid--core,
    .ace-service-grid--index,
    .ace-service-grid--specialist,
    .ace-specialist-grid,
    .ace-related-services > div {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ace-specialist-card {
        grid-template-columns: 145px 1fr auto;
    }
}

@media (max-width: 620px) {
    .ace-hero__content h1 {
        font-size: clamp(2.6rem, 11vw, 4rem);
    }

    .ace-service-grid--core,
    .ace-service-grid--index,
    .ace-service-grid--specialist,
    .ace-specialist-grid,
    .ace-related-services > div {
        grid-template-columns: 1fr;
    }

    .ace-specialist-card {
        grid-template-columns: 120px 1fr auto;
        gap: 14px;
    }

    .ace-specialist-card img {
        height: 155px;
    }
}
