/* -------------------------------------------------------
   Leistungen
------------------------------------------------------- */

.services-page {
    background: #050505;
    color: #fff;
}


.services-page main {
    overflow: hidden;
}


/* -------------------------------------------------------
   Hero
------------------------------------------------------- */

.services-hero {
    min-height: 100svh;

    display: flex;
    align-items: flex-end;

    padding:
        150px
        var(--header-pad, 32px)
        clamp(60px, 8vh, 100px);

    background: #050505;
}


.services-hero__inner {
    width: 100%;
}


.services-hero .eyebrow {
    display: block;

    margin-bottom: 24px;

    font-size: 14px;

    color: rgba(255,255,255,.55);

    text-transform: uppercase;
}


.services-hero h1 {
    max-width: 1250px;

    margin: 0;

    font-size: clamp(64px, 10vw, 100px);
    font-weight: 400;
    line-height: 1;
    text-transform: uppercase;
}


.services-hero__bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;

    margin-top: clamp(55px, 8vw, 100px);

    border-top: 1px solid rgba(255,255,255,.15);
    padding-top: 24px;
}


.services-hero__bottom p {
    max-width: 680px;

    margin: 0;

    font-size: clamp(18px, 2vw, 25px);
    line-height: 1.45;

    color: rgba(255,255,255,.75);
}


.services-hero__bottom span {
    font-size: 13px;

    color: rgba(255,255,255,.45);

    text-transform: uppercase;
}



/* -------------------------------------------------------
   Intro
------------------------------------------------------- */

.services-intro {
    padding:
        clamp(100px, 14vw, 190px)
        var(--header-pad, 32px);
}


.services-intro p {
    max-width: 1250px;

    margin: 0;

    font-size: clamp(34px, 5.3vw, 76px);
    font-weight: 400;
    line-height: 1.08;

    color: rgba(255,255,255,.92);
}



/* -------------------------------------------------------
   Einzelne Leistungen
------------------------------------------------------- */

.services-detail {
    padding: 0 var(--header-pad, 32px);
}


.service-detail {
    display: grid;
    grid-template-columns:
        minmax(70px, 1fr)
        minmax(0, 5fr);

    gap: clamp(30px, 5vw, 90px);

    padding:
        clamp(70px, 9vw, 130px)
        0;

    border-top: 1px solid rgba(255,255,255,.16);
}


.service-detail__number {
    font-size: 13px;

    color: rgba(255,255,255,.42);
}


.service-detail .eyebrow {
    display: block;

    margin-bottom: 18px;

    font-size: 13px;

    text-transform: uppercase;

    color: rgba(255,255,255,.48);
}


.service-detail h2 {
    margin: 0;

    font-size: clamp(48px, 8vw, 100px);
    font-weight: 400;
    line-height: 1;
}


.service-detail__lead {
    max-width: 980px;

    margin:
        clamp(30px, 5vw, 60px)
        0
        clamp(45px, 6vw, 80px);

    font-size: clamp(24px, 3vw, 40px);
    line-height: 1.25;

    color: rgba(255,255,255,.82);
}


.service-detail__columns {
    display: grid;
    grid-template-columns: 1fr 1fr;

    gap: clamp(45px, 7vw, 100px);
}


.service-detail__columns p {
    max-width: 610px;

    margin: 0;

    font-size: 17px;
    line-height: 1.65;

    color: rgba(255,255,255,.67);
}


.service-detail__columns ul {
    margin: 0;
    padding: 0;

    list-style: none;

    border-top: 1px solid rgba(255,255,255,.14);
}


.service-detail__columns li {
    padding: 15px 0;

    border-bottom: 1px solid rgba(255,255,255,.14);

    font-size: clamp(16px, 1.7vw, 20px);
}



/* -------------------------------------------------------
   Prozess
------------------------------------------------------- */

.services-process {
    padding:
        clamp(100px, 14vw, 180px)
        var(--header-pad, 32px);

    background: #0a0a0a;
}


.services-process__head {
    margin-bottom: clamp(70px, 10vw, 130px);
}


.services-process__head .eyebrow {
    display: block;

    margin-bottom: 20px;

    font-size: 13px;

    text-transform: uppercase;

    color: rgba(255,255,255,.48);
}


.services-process h2 {
    margin: 0;

    font-size: clamp(48px, 8vw, 100px);
    font-weight: 400;
    line-height: 1;
}


.process-list {
    border-top: 1px solid rgba(255,255,255,.16);
}


.process-item {
    display: grid;
    grid-template-columns:
        70px
        minmax(180px, .8fr)
        minmax(0, 1.5fr);

    gap: 30px;

    padding: 28px 0;

    border-bottom: 1px solid rgba(255,255,255,.16);
}


.process-item > span {
    font-size: 13px;

    color: rgba(255,255,255,.4);
}


.process-item h3 {
    margin: 0;

    font-size: clamp(22px, 2.4vw, 34px);
    font-weight: 400;
}


.process-item p {
    max-width: 650px;

    margin: 0;

    font-size: 16px;
    line-height: 1.55;

    color: rgba(255,255,255,.62);
}



/* -------------------------------------------------------
   Referenzen-Link
------------------------------------------------------- */

.services-work {
    padding:
        clamp(100px, 13vw, 170px)
        var(--header-pad, 32px);
}


.services-work .eyebrow {
    display: block;

    margin-bottom: 25px;

    font-size: 13px;

    color: rgba(255,255,255,.48);

    text-transform: uppercase;
}


.services-work__link {
    display: flex;
    justify-content: space-between;
    align-items: center;

    padding:
        30px
        0;

    border-top: 1px solid rgba(255,255,255,.17);
    border-bottom: 1px solid rgba(255,255,255,.17);

    color: #fff;

    font-size: clamp(34px, 6vw, 78px);
    line-height: 1;

    text-decoration: none;
}


.services-work__link span:last-child {
    transition: transform .25s ease;
}


.services-work__link:hover span:last-child {
    transform: translate(6px, -6px);
}



/* -------------------------------------------------------
   Kontakt
------------------------------------------------------- */

.services-contact {
    padding:
        clamp(100px, 14vw, 180px)
        var(--header-pad, 32px);

    border-top: 1px solid rgba(255,255,255,.14);
}


.services-contact .eyebrow {
    display: block;

    margin-bottom: 20px;

    font-size: 13px;

    text-transform: uppercase;

    color: rgba(255,255,255,.5);
}


.services-contact h2 {
    margin: 0;

    font-size: clamp(55px, 9vw, 100px);
    font-weight: 400;
    line-height: 1;
}


.services-contact__mail {
    display: inline-block;

    margin-top: 45px;

    padding-bottom: 6px;

    border-bottom: 1px solid currentColor;

    color: #fff;

    font-size: clamp(20px, 2.5vw, 32px);

    text-decoration: none;
}



/* -------------------------------------------------------
   Reveal
------------------------------------------------------- */

.reveal {
    opacity: 0;

    transform: translateY(28px);

    transition:
        opacity .75s ease,
        transform .8s cubic-bezier(.2,.7,.2,1);
}


.reveal.is-visible {
    opacity: 1;
    transform: none;
}



/* -------------------------------------------------------
   Mobile
------------------------------------------------------- */

@media (max-width: 760px) {

    .services-hero {
        min-height: 90svh;
    }


    .services-hero__bottom {
        align-items: flex-start;
        flex-direction: column;
    }


    .services-hero__bottom > span {
        display: none;
    }


    .service-detail {
        grid-template-columns: 1fr;
    }


    .service-detail__columns {
        grid-template-columns: 1fr;
    }


    .process-item {
        grid-template-columns: 45px 1fr;
    }


    .process-item p {
        grid-column: 2;
    }

}


@media (prefers-reduced-motion: reduce) {

    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

}