.wist-application {
    --blue: #2f80ed;
    --yellow: #f5b81b;
    --green: #56b88b;
    --purple: #9a5de2;
    --coral: #ff5d73;
    --navy: #082950;

    background:
        linear-gradient(
            180deg,
            #f5f8fe,
            #fff
        );

    color: var(--navy);
}


/* HERO */

.application-hero {
    position: relative;

    min-height: 560px;

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

    overflow: hidden;

    background: var(--navy);
}

.application-hero__media {
    position: absolute;
    inset: 0;
}

.application-hero__media img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
}

.application-hero__overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(3,24,53,.97),
            rgba(3,24,53,.72) 48%,
            rgba(3,24,53,.20)
        );
}

.application-hero__container,
.application-form-section__container {
    width:
        min(
            1450px,
            calc(100% - 80px)
        );

    margin-inline: auto;
}

.application-hero__container {
    position: relative;
    z-index: 2;

    padding-bottom: 70px;
}

.application-hero__content {
    max-width: 760px;
}

.application-hero__eyebrow {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-bottom: 18px;

    color: var(--yellow);

    font-size: 12px;
    font-weight: 800;

    letter-spacing: .13em;

    text-transform: uppercase;
}

.application-hero__eyebrow span {
    width: 35px;
    height: 2px;

    background: currentColor;
}

.application-hero h1 {
    margin: 0;

    color: #fff;

    font-family: Georgia, serif;

    font-size:
        clamp(
            58px,
            6vw,
            92px
        );

    font-weight: 400;
    line-height: .96;

    letter-spacing: -.045em;
}

.application-hero p {
    max-width: 610px;

    margin: 25px 0 0;

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

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


/* MAIN */

.application-form-section {
    padding: 80px 0 120px;
}

.application-form-section__container {
    display: grid;

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

    gap: 32px;

    align-items: start;
}


/* SIDEBAR */

.application-progress {
    position: sticky;
    top: 15px;

    display: grid;
    gap: 22px;
}

.application-progress__card,
.application-help {
    padding: 26px;

    border: 1px solid rgba(8,41,80,.08);

    border-radius: 26px;

    background: rgba(255,255,255,.86);

    box-shadow:
        0 24px 60px
        rgba(7,37,80,.08);

    backdrop-filter: blur(22px);
}

.application-progress__card h2 {
    margin: 0 0 24px;

    font-size: 18px;
}

.application-progress__steps {
    display: grid;
}

.application-step {
    --step-accent: var(--blue);

    position: relative;

    min-height: 72px;

    display: grid;

    grid-template-columns:
        40px
        1fr;

    align-items: center;

    gap: 12px;

    padding: 10px;

    border: 0;

    border-radius: 14px;

    color: #657891;

    background: transparent;

    text-align: left;

    cursor: pointer;

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

.application-step:nth-child(2) {
    --step-accent: var(--yellow);
}

.application-step:nth-child(3) {
    --step-accent: var(--green);
}

.application-step:nth-child(4) {
    --step-accent: var(--purple);
}

.application-step:nth-child(5) {
    --step-accent: var(--coral);
}

.application-step:nth-child(6) {
    --step-accent: var(--navy);
}

.application-step__number {
    width: 34px;
    height: 34px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    color: var(--step-accent);

    background:
        rgba(8,41,80,.05);

    font-size: 11px;
    font-weight: 800;
}

.application-step.is-active {
    color: var(--navy);

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.96),
            rgba(240,246,255,.9)
        );

    box-shadow:
        0 12px 30px
        rgba(8,41,80,.08);
}

.application-step.is-active
.application-step__number {
    color: #fff;

    background: var(--step-accent);
}

.application-step__label {
    font-size: 13px;
    font-weight: 700;
}


/* HELP */

.application-help {
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.94),
            rgba(230,239,255,.88)
        );
}

.application-help__icon {
    width: 45px;
    height: 45px;

    display: grid;
    place-items: center;

    margin-bottom: 16px;

    border-radius: 14px;

    color: #fff;

    background:
        linear-gradient(
            135deg,
            var(--blue),
            var(--purple)
        );

    font-weight: 800;
}

.application-help h3 {
    margin: 0 0 8px;
}

.application-help p {
    margin: 0 0 18px;

    color: #6d7f96;

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

.application-help a {
    display: block;

    margin-top: 6px;

    color: var(--blue);

    text-decoration: none;

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


/* FORM PANELS */

.application-form {
    min-width: 0;
}

.application-panel {
    --accent: var(--blue);

    padding: 36px;

    border: 1px solid rgba(8,41,80,.07);

    border-radius: 30px;

    background:
        rgba(
            255,
            255,
            255,
            .9
        );

    box-shadow:
        0 28px 70px
        rgba(8,41,80,.07);

    backdrop-filter: blur(24px);
}

.application-panel--child {
    --accent: var(--yellow);
}

.application-panel--academic {
    --accent: var(--green);
}

.application-panel--languages {
    --accent: var(--purple);
}

.application-panel--additional {
    --accent: var(--coral);
}

.application-panel--review {
    --accent: var(--navy);
}

.application-panel__header {
    display: flex;

    align-items: center;

    gap: 16px;

    margin-bottom: 34px;

    padding-bottom: 25px;

    border-bottom:
        1px solid
        rgba(8,41,80,.08);
}

.application-panel__icon {
    width: 52px;
    height: 52px;

    display: grid;
    place-items: center;

    border-radius: 16px;

    color: #fff;

    background: var(--accent);

    font-size: 12px;
    font-weight: 800;

    box-shadow:
        0 14px 30px
        color-mix(
            in srgb,
            var(--accent) 25%,
            transparent
        );
}

.application-panel__header > div > span {
    color: var(--accent);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .12em;

    text-transform: uppercase;
}

.application-panel__header h2 {
    margin: 5px 0 0;

    font-family: Georgia, serif;

    font-size: 34px;
    font-weight: 400;
}


/* PARENT */

.application-parent-grid {
    display: grid;

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

    gap: 22px;
}

.application-subcard {
    padding: 25px;

    border:
        1px solid
        rgba(8,41,80,.07);

    border-radius: 22px;

    background:
        linear-gradient(
            145deg,
            #fff,
            #f8faff
        );
}

.application-subcard h3 {
    margin: 0 0 22px;

    font-size: 19px;
}


/* FIELDS */

.application-fields {
    display: grid;
    gap: 16px;
}

.application-fields--two {
    grid-template-columns:
        repeat(2,minmax(0,1fr));
}

.application-field {
    position: relative;

    display: grid;
    gap: 8px;
}

.application-field--full {
    grid-column: 1 / -1;
}

.application-field > span {
    color: #5f718a;

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

.application-field input,
.application-field select,
.application-field textarea {
    width: 100%;

    min-height: 52px;

    padding:
        0 15px;

    border:
        1px solid
        rgba(8,41,80,.11);

    border-radius: 13px;

    outline: none;

    color: var(--navy);

    background:
        rgba(255,255,255,.88);

    font: inherit;

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

.application-field textarea {
    min-height: 110px;

    padding-top: 14px;

    resize: vertical;
}

.application-field input:focus,
.application-field select:focus,
.application-field textarea:focus {
    border-color: var(--accent);

    background: #fff;

    box-shadow:
        0 0 0 4px
        color-mix(
            in srgb,
            var(--accent) 12%,
            transparent
        );
}

.application-field.is-invalid input,
.application-field.is-invalid select,
.application-field.is-invalid textarea {
    border-color: var(--coral);
}


/* CHECKBOX / RADIO */

.application-checkbox,
.application-radio {
    display: flex;

    align-items: center;

    gap: 12px;

    cursor: pointer;
}

.application-checkbox input,
.application-radio input {
    position: absolute;

    opacity: 0;
    pointer-events: none;
}

.application-checkbox > span,
.application-radio > span {
    width: 22px;
    height: 22px;

    flex: 0 0 auto;

    border:
        1px solid
        rgba(8,41,80,.16);

    background: #fff;
}

.application-checkbox > span {
    border-radius: 6px;
}

.application-radio > span {
    border-radius: 50%;
}

.application-checkbox input:checked + span,
.application-radio input:checked + span {
    border-color: var(--accent);

    background:
        var(--accent);

    box-shadow:
        inset 0 0 0 5px #fff;
}

.application-checkbox--main {
    margin-bottom: 28px;

    padding: 16px;

    border-radius: 14px;

    background:
        color-mix(
            in srgb,
            var(--purple) 7%,
            #fff
        );
}


/* CHOICE CARDS */

.application-language-grid {
    display: grid;

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

    gap: 20px;

    margin-bottom: 25px;
}

.application-choice-card {
    padding: 24px;

    border:
        1px solid
        rgba(8,41,80,.07);

    border-radius: 20px;

    background:
        linear-gradient(
            145deg,
            #fff,
            #f8f9fe
        );
}

.application-choice-card legend,
.application-choice-card h3 {
    margin-bottom: 18px;

    color: var(--navy);

    font-size: 16px;
    font-weight: 750;
}

.application-choice-card
.application-radio,
.application-choice-card
.application-checkbox {
    margin-top: 13px;
}


/* ACTIONS */

.application-actions {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 15px;

    margin-top: 35px;

    padding-top: 25px;

    border-top:
        1px solid
        rgba(8,41,80,.08);
}

.application-prev,
.application-next,
.application-submit {
    min-height: 52px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 14px;

    padding:
        0 21px;

    border-radius: 14px;

    font-size: 12px;
    font-weight: 800;

    cursor: pointer;
}

.application-prev {
    border:
        1px solid
        rgba(8,41,80,.11);

    color: #647890;

    background: #fff;
}

.application-next,
.application-submit {
    margin-left: auto;

    border: 0;

    color: #fff;

    background: var(--accent);

    box-shadow:
        0 15px 35px
        color-mix(
            in srgb,
            var(--accent) 22%,
            transparent
        );
}


/* REVIEW */

.application-review {
    display: grid;
    gap: 15px;
}

.application-review__row {
    display: flex;

    justify-content: space-between;

    gap: 25px;

    padding: 15px 18px;

    border-radius: 13px;

    background: #f7f9fc;
}

.application-review__row strong {
    color: #63758c;

    font-size: 12px;
}

.application-review__row span {
    color: var(--navy);

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


/* RESPONSIVE */

@media (max-width: 1100px) {

    .application-form-section__container {
        grid-template-columns: 1fr;
    }

    .application-progress {
        position: static;
    }

    .application-progress__steps {
        grid-template-columns:
            repeat(3,1fr);
    }

    .application-help {
        display: none;
    }

}

@media (max-width: 800px) {

    .application-parent-grid,
    .application-fields--two,
    .application-language-grid {
        grid-template-columns: 1fr;
    }

    .application-hero__container,
    .application-form-section__container {
        width:
            calc(100% - 32px);
    }

    .application-panel {
        padding: 24px;
    }

}

@media (max-width: 600px) {

    .application-progress__steps {
        grid-template-columns: 1fr;
    }

    .application-hero {
        min-height: 500px;
    }

    .application-hero h1 {
        font-size: 52px;
    }

}