.ace-page-hero,
.ace-service-hero,
.ace-about-hero,
.ace-contact-hero,
.ace-project-detail-hero {
    min-height: 500px;
    display: flex;
    align-items: center;
}

.ace-page-hero .ace-container,
.ace-service-hero .ace-container,
.ace-about-hero .ace-container,
.ace-contact-hero .ace-container,
.ace-project-detail-hero .ace-container {
    padding-block: 70px;
}

.ace-page-hero h1,
.ace-service-hero h1,
.ace-about-hero h1,
.ace-contact-hero h1,
.ace-project-detail-hero h1,
.ace-simple-hero h1 {
    max-width: 850px;
    margin: 0 0 18px;
    font-size: clamp(2.7rem, 5vw, 5.6rem);
    text-transform: uppercase;
}

.ace-page-hero p,
.ace-service-hero p,
.ace-about-hero p,
.ace-contact-hero p,
.ace-project-detail-hero p {
    max-width: 680px;
    color: rgb(255 255 255 / 82%);
}

.ace-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-block-end: 28px;
    color: rgb(255 255 255 / 72%);
    font-size: .78rem;
}

.ace-feature-rail {
    border-block-end: 1px solid var(--ace-line);
}

.ace-feature-rail .ace-container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.ace-feature-rail article {
    padding: 30px 24px;
    border-inline-end: 1px solid var(--ace-line);
}

.ace-feature-rail article:first-child {
    border-inline-start: 1px solid var(--ace-line);
}

.ace-feature-rail span,
.ace-service-facts span,
.ace-about-capability-grid span,
.ace-case-narrative span {
    color: var(--ace-red);
    font-family: var(--ace-heading);
    font-weight: 800;
}

.ace-feature-rail h2,
.ace-service-facts h3 {
    margin: 8px 0;
    font-size: 1rem;
    text-transform: uppercase;
}

.ace-feature-rail p,
.ace-service-facts p {
    margin: 0;
    color: var(--ace-graphite);
    font-size: .82rem;
}

.ace-dark-cta .ace-container {
    min-height: 210px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
}

.ace-dark-cta h2 {
    margin: 0 0 10px;
    font-size: clamp(2rem, 4vw, 4rem);
    text-transform: uppercase;
}

.ace-service-overview,
.ace-about-intro {
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    gap: 70px;
}

.ace-service-overview h2,
.ace-about-intro h2,
.ace-service-detail-grid h2,
.ace-related-services h2 {
    font-size: clamp(2rem, 3.5vw, 3.6rem);
    text-transform: uppercase;
}

.ace-service-facts,
.ace-about-capability-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: var(--ace-line);
}

.ace-service-facts article,
.ace-about-capability-grid article {
    padding: 26px;
    background: var(--ace-white);
}

.ace-service-detail-grid {
    display: grid;
    grid-template-columns: .8fr .8fr 1.2fr;
    gap: 48px;
    align-items: center;
}

.ace-service-detail-image img {
    width: 100%;
    min-height: 430px;
    object-fit: cover;
}

.ace-related-services > div {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.ace-related-services > div a {
    min-height: 92px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--ace-line);
    background: var(--ace-white);
}

.ace-workshop-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.ace-workshop-grid img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.ace-project-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.ace-project-card {
    border: 1px solid var(--ace-line);
    background: var(--ace-white);
}

.ace-project-card > img {
    width: 100%;
    aspect-ratio: 4 / 2.6;
    object-fit: cover;
}

.ace-project-card > div {
    padding: 24px;
}

.ace-project-card h2 {
    font-size: 1.45rem;
    text-transform: uppercase;
}

.ace-empty-state {
    display: grid;
    grid-template-columns: .45fr 1.55fr;
    gap: 48px;
    align-items: end;
}

.ace-empty-state > img {
    max-height: 520px;
    margin-inline: auto;
}

.ace-case-layout {
    display: grid;
    grid-template-columns: 1.5fr .65fr;
    gap: 40px;
}

.ace-case-narrative {
    display: grid;
    gap: 1px;
    background: var(--ace-line);
}

.ace-case-narrative article,
.ace-case-facts {
    padding: 34px;
    background: var(--ace-white);
}

.ace-case-narrative h2,
.ace-case-facts h2 {
    margin: 8px 0 12px;
    font-size: 1.4rem;
    text-transform: uppercase;
}

.ace-case-facts {
    background: var(--ace-light);
}

.ace-case-facts dl {
    display: grid;
    gap: 8px;
}

.ace-case-facts dt {
    margin-block-start: 12px;
    font-weight: 800;
}

.ace-contact-actions {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-block-end: 48px;
}

.ace-contact-actions a {
    min-height: 150px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    padding: 24px;
    border: 1px solid var(--ace-line);
    background: var(--ace-white);
    box-shadow: 0 8px 24px rgb(6 28 58 / 5%);
}

.ace-contact-actions a > span {
    color: var(--ace-red);
    font-size: 2rem;
}

.ace-contact-actions small {
    color: var(--ace-graphite);
}

.ace-contact-grid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 28px;
}

.ace-contact-location {
    width: 100%;
    aspect-ratio: 16 / 8;
    object-fit: cover;
}

.ace-simple-hero {
    padding-block: 100px;
    background: var(--ace-light);
}

.ace-legal-content {
    max-width: 900px;
}

.ace-rich-content {
    max-width: 980px;
    margin-inline: auto;
}
