.hero {
    position: relative;
    min-height: 680px;
    overflow: hidden;
}

.hero__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.1);
}

.hero__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 680px;
    padding-left: 152px;
}

.hero h1 {
    max-width: 470px;
    margin-bottom: 28px;
    font-size: 56px;
    font-weight: 700;
    line-height: 56px;
    letter-spacing: -0.02em;
    color: var(--color-white);
}

.section--intro {
    padding-block: 122px 130px;
}

.section--intro .image-card {
    height: 406px;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.section--featured {
    padding-block: 104px 118px;
}

.featured-story {
    position: relative;
    min-height: 629px;
}

.featured-story > img {
    width: 100%;
    height: 629px;
    object-fit: cover;
}

.featured-story__box {
    position: absolute;
    top: 104px;
    right: 98px;
    width: 392px;
    min-height: 429px;
    padding: 56px 48px;
    background: var(--color-white);
}

.featured-story__box h2 {
    margin-top: 16px;
}

.featured-story__box .button {
    margin-top: 28px;
}

.section--projects {
    padding-block: 85px 108px;
    background: var(--color-cream);
}

.projects-layout {
    display: grid;
    grid-template-columns: 1.25fr repeat(3, 1fr);
    gap: 28px;
    align-items: start;
}

.projects-intro {
    max-width: 300px;
    padding-top: 32px;
}

.projects-intro .button {
    margin-top: 26px;
}

.project-card img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius-sm);
}

.project-card .eyebrow {
    margin-top: 26px;
}

.project-card h3 {
    margin-top: 8px;
    font-size: 20px;
    font-weight: 700;
    line-height: 23px;
}

.project-card .arrow-link {
    margin-top: 16px;
}

.testimonial {
    padding-block: 142px;
    color: var(--color-white);
    background: radial-gradient(118.71% 118.71% at 54.82% 5.78%, var(--color-green-light) 0%, #5f8b64 100%);
}

.testimonial__inner {
    display: grid;
    grid-template-columns: 144px 1fr;
    gap: 32px;
    max-width: 991px;
}

.testimonial__quote-mark {
    margin-top: -34px;
    font-size: 210px;
    font-weight: 700;
    line-height: 0.8;
    color: rgba(0, 0, 0, 0.12);
}

.testimonial__person {
    display: grid;
    gap: 2px;
    margin-bottom: 48px;
}

.testimonial__person strong {
    font-size: 18px;
    font-weight: 600;
    line-height: 32px;
}

.testimonial__person span {
    font-size: 14px;
    font-weight: 400;
    line-height: 21px;
}

.testimonial blockquote {
    max-width: 815px;
    font-size: 38px;
    font-weight: 600;
    line-height: 42px;
}

.section--team {
    padding-block: 128px 146px;
}

.section--team .image-card {
    height: 407px;
}

.section--team .button {
    margin-top: 26px;
}


.subpage-hero {
    padding-block: 135px 70px;
}

.subpage-hero h1 {
    text-align: center;
    font-size: 32px;
    font-weight: 700;
    line-height: 38px;
    letter-spacing: -0.02em;
}

.section--service-overview {
    padding-block: 18px 185px;
}

.service-overview-list {
    display: grid;
    gap: 190px;
}

.service-overview-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
    gap: 112px;
    align-items: center;
}

.service-overview-item {
    column-gap: 70px;
}

.service-overview-item--image-left {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
}

.service-overview-item--image-right {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
}

.service-overview-item__content {
    max-width: 420px;
}

.service-overview-item--image-left .service-overview-item__content {
    justify-self: start;
}

.service-overview-item__headline {
    display: grid;
    grid-template-columns: 65px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
}

.service-overview-item__headline img {
    width: 65px;
    height: 65px;
    object-fit: contain;
}

.service-overview-item__headline h2 {
    max-width: 340px;
    padding-top: 5px;
    font-size: 32px;
    font-weight: 700;
    line-height: 38px;
    letter-spacing: -0.02em;
    hyphens: auto;
    overflow-wrap: break-word;
}

.service-overview-item__content p {
    margin-top: 26px;
    padding-left: 87px;
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: -0.02em;
}

.service-overview-item__content .button {
    margin-top: 28px;
    margin-left: 87px;
}

.service-overview-item__media {
    overflow: hidden;
    border-radius: var(--radius-sm);
}

.service-overview-item__media img {
    display: block;
    width: 100%;
    aspect-ratio: 548 / 407;
    object-fit: cover;
}


/* Leistungsdetailseite */
.detail-hero {
    padding-block: 118px 72px;
}

.detail-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
    gap: 84px;
    align-items: center;
}

.detail-hero__images {
    position: relative;
    min-height: 505px;
}

.detail-hero__image {
    position: absolute;
    overflow: hidden;
    border-radius: var(--radius-sm);
    background: var(--color-cream);
}

.detail-hero__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.detail-hero__image--one {
    left: 0;
    top: 116px;
    width: 250px;
    height: 250px;
}

.detail-hero__image--two {
    left: 238px;
    top: 0;
    width: 200px;
    height: 200px;
}

.detail-hero__image--three {
    left: 238px;
    top: 235px;
    width: 300px;
    height: 300px;
    z-index: 5;
}

.detail-hero__content {
    max-width: 470px;
}

.detail-hero__content h1 {
    margin: 0 0 32px;
    font-size: 56px;
    font-weight: 700;
    line-height: 56px;
    letter-spacing: -0.02em;
}

.detail-hero__content p {
    max-width: 420px;
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: -0.02em;
}

.detail-intro {
    padding-block: 0 118px;
}

.detail-intro__grid {
    display: grid;
    grid-template-columns: 392px minmax(0, 1fr);
    gap: 56px;
    align-items: start;
}

@media (min-width: 821px) {
    .detail-intro {
        margin-top: -82px;
    }

    .detail-intro__card {
        position: relative;
        z-index: 2;
    }

    .detail-intro__copy {
        padding-top: 170px;
    }
}

.detail-intro__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 475px;
    padding: 56px 58px;
    background: var(--color-cream);
    text-align: center;
    border-radius: var(--radius-sm)
}

.detail-intro__card img {
    width: 130px;
    height: 130px;
    margin-bottom: 44px;
    object-fit: contain;
}

.detail-intro__card p {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    line-height: 34px;
    letter-spacing: -0.02em;
}

.detail-intro__copy {
    max-width: 630px;
}

.detail-intro__copy p {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    letter-spacing: -0.02em;
}

.detail-intro__copy p + p {
    margin-top: 28px;
}

.detail-testimonial {
    margin-top: 0;
}

.detail-services {
    padding-block: 150px 130px;
}

.detail-services h2 {
    margin: 0 0 74px;
    text-align: center;
    font-size: 32px;
    font-weight: 700;
    line-height: 38px;
    letter-spacing: -0.02em;
}

.detail-services__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 62px 105px;
    max-width: 965px;
    margin-inline: auto;
}

.detail-services__grid h3 {
    margin: 0 0 14px;
    font-size: 22px;
    font-weight: 700;
    line-height: 28px;
    letter-spacing: -0.02em;
}

.detail-services__grid p {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    line-height: 22px;
    letter-spacing: -0.02em;
}

.detail-projects {
    position: relative;
    padding-block: 88px 118px;
    background: transparent;
}

.detail-projects::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: min(50vw, 590px);
    height: 250px;
    background: var(--color-cream);
    z-index: -1;
}

.detail-projects .projects-intro {
    padding-top: 10px;
}

.detail-projects .project-card .eyebrow {
    display: none;
}

/* Unternehmensübersicht */
.company-hero {
    padding-block: 132px 70px;
}

.company-overview {
    padding-block: 20px 128px;
}

.company-overview__list {
    display: grid;
    gap: 168px;
}

.company-overview__item {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 88px;
    align-items: center;
}

.company-overview__item--image-left {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
}

.company-overview__content {
    max-width: 420px;
}

.company-overview__item--text-left .company-overview__content {
    justify-self: center;
}

.company-overview__item--image-left .company-overview__content {
    justify-self: center;
}

.company-overview__content h2 {
    margin: 0 0 22px;
    font-size: 32px;
    font-weight: 700;
    line-height: 38px;
    letter-spacing: -0.02em;
}

.company-overview__content p {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: -0.02em;
}

.company-overview__content .button {
    margin-top: 28px;
}

.company-overview__image {
    overflow: hidden;
    border-radius: var(--radius-md);
}

.company-overview__image img {
    display: block;
    width: 100%;
    aspect-ratio: 550 / 406;
    object-fit: cover;
}

/* Projektübersicht */
.projects-hero {
    min-height: 350px;
    padding-block: 150px 70px;
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.92)), url("../images/projekte-background.jpg");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
}

.projects-hero__inner {
    text-align: center;
}

.projects-hero h1 {
    margin: 0 0 24px;
    font-size: 56px;
    font-weight: 700;
    line-height: 56px;
    letter-spacing: -0.02em;
}

.projects-hero p {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 26px;
    letter-spacing: -0.02em;
}

.project-listing {
    padding-block: 0 105px;
}

.project-listing__top {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 48px;
    margin-bottom: 76px;
}

.project-listing__band {
    padding-block: 34px;
}

.project-listing__band--cream {
    background: var(--color-cream);
}

.project-listing__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 76px 48px;
}

.project-listing-card img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: var(--radius-sm);
}

.project-listing__top .project-listing-card img {
    aspect-ratio: 4 / 3;
}

.project-listing-card .eyebrow {
    margin-top: 18px;
    font-size: 14px;
    line-height: 20px;
}

.project-listing-card h3 {
    max-width: 220px;
    margin-top: 6px;
}

.project-listing__more {
    display: flex;
    justify-content: center;
    margin-top: 56px;
}

.project-load-more {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    font: inherit;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    color: var(--color-text);
    background: transparent;
    cursor: pointer;
}

.project-load-more::before {
    content: "↓";
    font-size: 18px;
    line-height: 1;
}

.project-services-section {
    position: relative;
    padding-block: 86px 120px;
}

.project-services-section .section-bg--cream {
    top: 0;
    height: 280px;
}

/* Projektdetailseite */
.project-detail {
    padding-block: 140px 118px;
}

.project-detail__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 50px;
    align-items: start;
}

.project-detail__media {
    position: relative;
    min-height: 760px;
    padding: 130px 0 0 80px;
}

.project-detail__media::before {
    content: "";
    position: absolute;
    left: -120px;
    top: 0;
    width: 560px;
    height: 565px;
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    background: var(--color-cream);
    z-index: -1;
}

.project-detail__icon-card {
    position: absolute;
    left: 188px;
    top: 145px;
    width: 125px;
    height: 125px;
}

.project-detail__icon-card img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.project-detail__image {
    overflow: hidden;
    border-radius: var(--radius-sm);
}

.project-detail__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.project-detail__image--main {
    width: 320px;
    height: 320px;
    margin-top: 215px;
}

.project-detail__image--secondary {
    width: 270px;
    margin: 34px 0 0 58px;
    overflow: visible;
    border-radius: 0;
    text-align: center;
}

.project-detail__image--secondary img {
    height: 210px;
    border-radius: var(--radius-sm);
}

.project-detail__image figcaption {
    margin-top: 16px;
    font-size: 12px;
    font-weight: 700;
    line-height: 18px;
}

.project-detail__content {
    max-width: 620px;
    padding-top: 130px;
}

.project-detail__content h1 {
    margin: 8px 0 32px;
    font-size: 42px;
    font-weight: 700;
    line-height: 48px;
    letter-spacing: -0.02em;
}

.project-detail__content p,
.project-detail__content li {
    font-size: 18px;
    font-weight: 700;
    line-height: 30px;
    letter-spacing: -0.02em;
}

.project-detail__content p {
    margin: 0 0 22px;
}

.project-detail__content ul {
    margin: 0 0 34px 24px;
    list-style: disc;
}

.project-detail__client {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: baseline;
    margin-top: 34px !important;
}

.project-detail__client strong {
    display: inline-block;
    padding: 2px 6px;
    color: var(--color-white);
    background: var(--color-green);
}

.project-detail__client span {
    font-style: italic;
    color: var(--color-green-dark);
}

.project-related {
    position: relative;
    padding-block: 130px 150px;
}

.project-related::before {
    content: "";
    position: absolute;
    left: 0;
    top: 72px;
    width: min(50vw, 575px);
    height: 245px;
    background: var(--color-cream);
    z-index: -1;
}

.project-related__layout {
    display: grid;
    grid-template-columns: 1fr 2.5fr;
    gap: 62px;
    align-items: start;
}

.project-related .projects-intro {
    max-width: 360px;
    padding-top: 58px;
}

.project-related .projects-intro h2 {
    margin-top: 16px;
    font-size: 34px;
    line-height: 39px;
}

.back-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 70px;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
}

.back-link::before {
    content: "←";
    font-size: 24px;
    line-height: 1;
}

.project-related__cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.related-project-card img {
    aspect-ratio: 1 / 1;
}
