/* ==========================================================
   WIDDER HAUSTECHNIK
   JOBS / OPEN POSITIONS
========================================================== */

.widder-jobs,
.widder-jobs *,
.widder-jobs *::before,
.widder-jobs *::after {
    box-sizing: border-box;
}

.widder-jobs {
    --wj-bg: #141823;
    --wj-bg-soft: #181d29;
    --wj-bg-card: #171c27;

    --wj-red: #d82c12;
    --wj-red-light: #f13b20;

    --wj-white: #ffffff;
    --wj-text: #d5d8de;
    --wj-muted: #858c98;

    --wj-border: rgba(255, 255, 255, .09);

    position: relative;

    width: 100%;

    padding: 110px 24px 120px;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 90% 5%,
            rgba(216, 44, 18, .07),
            transparent 25%
        ),
        var(--wj-bg);

    color: var(--wj-text);

    font-family: "Montserrat", sans-serif;
}


/* subtle technical background */

.widder-jobs::before {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    opacity: .22;

    background-image:
        linear-gradient(
            rgba(255,255,255,.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.025) 1px,
            transparent 1px
        );

    background-size: 70px 70px;

    mask-image:
        linear-gradient(
            to bottom,
            black,
            transparent 70%
        );
}


.widder-jobs__inner {
    position: relative;
    z-index: 1;

    width: 100%;
    max-width: 1320px;

    margin: 0 auto;
}


/* ==========================================================
   INTRO
========================================================== */

.widder-jobs__intro {
    display: grid;

    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(300px, .65fr);

    gap: 80px;

    align-items: end;

    margin-bottom: 68px;
}


.widder-jobs__eyebrow {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-bottom: 20px;

    color: var(--wj-red-light);

    font-size: 11px;
    font-weight: 700;

    letter-spacing: .14em;
    text-transform: uppercase;
}


.widder-jobs__eyebrow-line {
    display: block;

    width: 34px;
    height: 2px;

    background: var(--wj-red);
}


.widder-jobs__heading {
    max-width: 700px;

    margin: 0;

    color: var(--wj-white);

    font-size: clamp(32px, 3.2vw, 46px);
    font-weight: 700;

    line-height: 1.08;
    letter-spacing: -.035em;
}


.widder-jobs__heading span {
    color: inherit;
}


.widder-jobs__intro-right {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;
}


.widder-jobs__intro-right > p {
    max-width: 330px;

    margin: 0;

    color: #aeb3bc;

    font-size: 14px;
    line-height: 1.75;
}


.widder-jobs__count {
    display: flex;
    align-items: center;

    gap: 12px;

    flex: 0 0 auto;
}


.widder-jobs__count-number {
    color: var(--wj-red-light);

    font-size: 36px;
    font-weight: 700;

    line-height: 1;
    letter-spacing: -.04em;
}


.widder-jobs__count-label {
    color: #747b87;

    font-size: 9px;
    font-weight: 700;

    line-height: 1.35;

    letter-spacing: .09em;
    text-transform: uppercase;
}


/* ==========================================================
   JOB LIST
========================================================== */

.widder-jobs__list {
    border-top: 1px solid var(--wj-border);
}


.widder-job {
    position: relative;

    border-bottom: 1px solid var(--wj-border);

    transition:
        background .3s ease,
        border-color .3s ease;
}


.widder-job.is-open {
    background:
        linear-gradient(
            110deg,
            rgba(255,255,255,.025),
            rgba(216,44,18,.025)
        );

    border-bottom-color: rgba(216,44,18,.22);
}


/* ==========================================================
   TRIGGER
========================================================== */

.widder-job__trigger {
    display: grid;

    grid-template-columns:
        55px
        minmax(0, 1fr)
        auto
        48px;

    gap: 24px;

    align-items: center;

    width: 100%;

    padding: 30px 20px;

    border: 0;

    background: transparent !important;

    color: inherit !important;

    font: inherit;

    text-align: left;

    cursor: pointer;
    transition:
    background-color .25s ease,
    color .25s ease;
}

.widder-job__trigger:hover,
.widder-job__trigger:focus,
.widder-job__trigger:active {
    background: rgba(7, 10, 17, .28) !important;
    color: inherit !important;
    outline: none;
}

.widder-job.is-open .widder-job__trigger {
    background: rgba(7, 10, 17, .18) !important;
}

.widder-job.is-open .widder-job__trigger:hover {
    background: rgba(7, 10, 17, .34) !important;
}

.widder-job__number {
    color: #555c68;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: .08em;

    transition: color .25s ease;
}


.widder-job.is-open .widder-job__number,
.widder-job__trigger:hover .widder-job__number {
    color: var(--wj-red-light);
}


.widder-job__title-wrap {
    display: flex;
    flex-direction: column;

    gap: 8px;
}


.widder-job__title {
    color: var(--wj-white);

    font-size: clamp(19px, 2vw, 26px);
    font-weight: 650;

    line-height: 1.25;
    letter-spacing: -.025em;

    transition: color .25s ease;
}


.widder-job__trigger:hover .widder-job__title {
    color: #f5f5f6 !important;
}


.widder-job__meta {
    color: #777e8a;

    font-size: 13px;
    font-weight: 600;

    letter-spacing: .035em;
}


.widder-job__status {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    padding: 8px 11px;

    border: 1px solid rgba(216,44,18,.22);
    border-radius: 999px;

    background: rgba(216,44,18,.05);

    color: #b9bdc5;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .08em;
    text-transform: uppercase;
}


.widder-job__status-dot {
    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: var(--wj-red-light);

    box-shadow:
        0 0 0 4px rgba(216,44,18,.10);
}


/* plus/minus */

.widder-job__icon {
    position: relative;

    display: block;

    width: 42px;
    height: 42px;

    border: 1px solid var(--wj-border);
    border-radius: 50%;

    transition:
        background .25s ease,
        border-color .25s ease,
        transform .25s ease;
}


.widder-job__icon span {
    position: absolute;

    left: 50%;
    top: 50%;

    width: 13px;
    height: 1px;

    background: #c9ccd1;

    transform:
        translate(-50%, -50%);

    transition:
        transform .3s ease,
        background .25s ease;
}


.widder-job__icon span:last-child {
    transform:
        translate(-50%, -50%)
        rotate(90deg);
}


.widder-job.is-open
.widder-job__icon {
    border-color: rgba(216,44,18,.5);

    background: var(--wj-red);
}


.widder-job.is-open
.widder-job__icon span {
    background: #fff;
}


.widder-job.is-open
.widder-job__icon span:last-child {
    transform:
        translate(-50%, -50%)
        rotate(0deg);
}


/* ==========================================================
   PANEL
========================================================== */

.widder-job__panel {
    display: grid;

    grid-template-rows: 0fr;

    visibility: hidden;

    transition:
        grid-template-rows .45s cubic-bezier(.2,.7,.2,1),
        visibility .45s;
}


.widder-job.is-open
.widder-job__panel {
    grid-template-rows: 1fr;

    visibility: visible;
}


.widder-job__panel-inner {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        300px;

    gap: 70px;

    min-height: 0;

    overflow: hidden;

    padding:
        0 85px
        0 99px;

    opacity: 0;

    transform: translateY(-8px);

    transition:
        opacity .3s ease,
        transform .35s ease,
        padding .45s ease;
}


.widder-job.is-open
.widder-job__panel-inner {
    padding-top: 15px;
    padding-bottom: 48px;

    opacity: 1;

    transform: translateY(0);
}


/* ==========================================================
   JOB CONTENT
========================================================== */

.widder-job__small-label,
.widder-job__apply-label {
    display: block;

    margin-bottom: 13px;

    color: var(--wj-red-light);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .13em;
    text-transform: uppercase;
}


.widder-job__lead {
    max-width: 650px;

    margin: 0 0 35px;

    color: #bec2c9;

    font-size: 14px;
    line-height: 1.8;
}


.widder-job__details {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 45px;
}


.widder-job__detail h3 {
    margin: 0 0 17px;

    color: var(--wj-white);

    font-size: 14px;
    font-weight: 700;
}


.widder-job__detail ul {
    display: flex;
    flex-direction: column;

    gap: 11px;

    margin: 0;
    padding: 0;

    list-style: none;
}


.widder-job__detail li {
    position: relative;

    padding-left: 18px;

    color: #969ca6;

    font-size: 13px;
    line-height: 1.7;
}


.widder-job__detail li::before {
    content: "";

    position: absolute;

    left: 0;
    top: .68em;

    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: var(--wj-red);
}


/* ==========================================================
   APPLICATION
========================================================== */

.widder-job__apply {
    align-self: start;

    padding: 26px;

    border: 1px solid var(--wj-border);
    border-radius: 14px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.035),
            rgba(255,255,255,.015)
        );
}


.widder-job__apply h3 {
    margin: 0 0 10px;

    color: var(--wj-white);

    font-size: 23px;
    font-weight: 700;

    letter-spacing: -.025em;
}


.widder-job__apply p {
    margin: 0 0 22px;

    color: #8f959f;

    font-size: 13px;
    line-height: 1.65;
}


.widder-job__apply-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    width: 100%;

    padding: 14px 16px;

    border-radius: 8px;

    background: var(--wj-red);

    color: #fff;

    font-size: 11px;
    font-weight: 700;

    text-decoration: none;

    transition:
        background .25s ease,
        transform .25s ease;
}


.widder-job__apply-btn span {
    font-size: 16px;

    transition: transform .25s ease;
}


.widder-job__apply-btn:hover {
    background: #bd2410;

    color: #fff;

    transform: translateY(-2px);
}


.widder-job__apply-btn:hover span {
    transform: translateX(4px);
}


.widder-job__mail {
    display: block;

    margin-top: 15px;

    color: #737a86;

    font-size: 12px;

    text-align: center;
    text-decoration: none;

    transition: color .25s ease;
}


.widder-job__mail:hover {
    color: var(--wj-white);
}


/* ==========================================================
   TABLET
========================================================== */

@media (max-width: 1024px) {

    .widder-jobs {
        padding:
            90px 24px
            100px;
    }


    .widder-jobs__intro {
        grid-template-columns: 1fr;

        gap: 30px;
    }


    .widder-jobs__intro-right {
        align-items: center;
    }


    .widder-job__panel-inner {
        grid-template-columns: 1fr;

        gap: 35px;

        padding-left: 79px;
        padding-right: 70px;
    }


    .widder-job__apply {
        max-width: 500px;
    }

}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width: 767px) {

    .widder-jobs {
        padding:
            72px 16px
            80px;
    }


    .widder-jobs::before {
        background-size: 48px 48px;
    }


    .widder-jobs__intro {
        margin-bottom: 48px;
    }


    .widder-jobs__heading {
        font-size: clamp(29px, 8vw, 36px);
        line-height: 1.1;
    }


    .widder-jobs__intro-right {
        display: block;
    }


    .widder-jobs__intro-right > p {
        max-width: 100%;
    }


    .widder-jobs__count {
        margin-top: 25px;
    }


    .widder-job__trigger {
        grid-template-columns:
            32px
            minmax(0, 1fr)
            38px;

        gap: 10px;

        width: 100%;
        max-width: 100%;
    }



    .widder-job__main {
        min-width: 0;
        max-width: 100%;
    }


    .widder-job__title {
        display: block;

        min-width: 0;
        max-width: 100%;

        font-size: 18px;
        line-height: 1.35;

        white-space: normal !important;
        overflow-wrap: anywhere;
        word-break: normal;
    }


    .widder-job__number {
        align-self: start;

        padding-top: 4px;
    }


    .widder-job__meta {
        font-size: 9px;
        line-height: 1.5;

        white-space: normal;
        overflow-wrap: anywhere;
    }


    .widder-job__status {
        display: none;
    }


    .widder-job__icon {
        width: 38px;
        height: 38px;
    }


    .widder-job__panel-inner {
        display: block;

        padding:
            0 0
            0 40px;
    }


    .widder-job.is-open
    .widder-job__panel-inner {
        padding-top: 8px;
        padding-bottom: 38px;
    }


    .widder-job__lead {
        font-size: 13px;

        line-height: 1.75;
    }


    .widder-job__details {
        grid-template-columns: 1fr;

        gap: 30px;
    }


    .widder-job__apply {
        max-width: none;

        margin-top: 35px;

        padding: 22px;
    }

}


/* ==========================================================
   SMALL MOBILE
========================================================== */

@media (max-width: 420px) {

    .widder-jobs__heading {
        font-size: 30px;
    }


    .widder-job__trigger {
        grid-template-columns:
            24px
            minmax(0, 1fr)
            36px;

        gap: 9px;
    }


    .widder-job__icon {
        width: 34px;
        height: 34px;
    }


    .widder-job__panel-inner {
        padding-left: 33px;
    }

}


/* ==========================================================
   REDUCED MOTION
========================================================== */

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

    .widder-job__panel,
    .widder-job__panel-inner,
    .widder-job__icon,
    .widder-job__icon span,
    .widder-job__apply-btn {
        transition: none;
    }

}