:root {
    --colour-body-bg: var(--colour-light-blue);
}

#evRegister,
#evLogin {
    width: min(90vw, 60rem);
    margin: 2rem auto;
    padding: 0;
    color: var(--colour-text);
    background: var(--colour-white);

    header {
        font-size: 1.4rem;
        font-weight: bold;
        color: var(--colour-light-blue);
        background-color: var(--colour-dark-blue);
        padding-block: 1.5rem;
        padding-inline: 1rem;
        gap: 1rem;

        h2 {
            font-size: 1.33rem;
            margin: 0;
            color: var(--colour-light-blue);
        }

    }

    .woocommerce-error {
        padding: 0.5rem;
        border-radius: 0.2rem;
        margin-inline: 0;
    }

    section {
        h2 {
            font-size: 1.5rem;
            line-height: 1.1em;
            text-align: center;
            color: var(--colour-dark-blue);
        }

        padding-block-end: 0.5rem;
    }

    h3 {
        font-size: 1.608rem;
        line-height: 1.1em;
        margin: 0;
        color: var(--colour-blue);
    }

    p {
        font-size: 0.992rem;
        line-height: 1.4em;
        color: var(--colour-medium-grey);
    }
}

#evLogin {
    width: min(90vw, 20rem);
}

#evRegister {
    .wp-block-column {
        display: flex;
        align-content: flex-start;
        flex-flow: column;

        > :not(.register) {
            display: none;
            @media screen and (min-width: 700px ) {
                display: block;
            }
        }
    }

    .columns {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
        gap: 1rem;

        .column {
            display: grid;
            grid-template-rows: subgrid;
            grid-row-end: span 3;
        }
    }

    .register {
        position: relative;
        max-width: 22rem;
        margin-block: 1rem;

        &::before {
            position: absolute;
            top: calc(50% - 2rem);
            left: 0;
            width: 4rem;
            content: '';
            pointer-events: none;
            background-color: var(--colour-white);
            aspect-ratio: 1 / 1;
            mask-image: var(--icon-plus);
            mask-repeat: no-repeat;
            mask-size: 50% 50%;
            mask-position: center;
        }

        &:has(input:checked)::before {
            mask-image: var(--icon-tick-circle);
        }
    }

    input[type="radio"] {
        display: none;

        + label {
            font-size: 1.125rem;
            display: block;
            cursor: pointer;
            transition: background-color 0.5s ease;
            color: var(--colour-white);
            border-radius: 0.5rem;
            background-color: var(--colour-blue);
            padding-block: 1rem;
            padding-inline: 4rem;
            margin-inline-end: 3rem;
        }

        &:checked + label {
            background-color: var(--colour-red);
        }
    }

    .register input[type="radio"] {
        + label {
            &::before, &::after {
                position: absolute;
                top: calc(50% - 3rem);
                right: 0;
                width: 6rem;
                content: '';
                transition: background-color 0.5s ease;
                border: 0.2rem solid var(--colour-white);
                border-radius: 100%;
                background-color: inherit;
                aspect-ratio: 1 / 1;
                mask-repeat: no-repeat;
                mask-size: 60% 60%;
                mask-position: center;
            }
        }
    }

    .register-participant input[type="radio"] + label::after {
        background-color: var(--colour-white);
        mask-image: var(--icon-participant-profile);
    }

    .register-organiser input[type="radio"] + label::after {
        background-color: var(--colour-white);
        mask-image: var(--icon-organiser-profile);
    }

    #register_form_stage2 {
        display: none;
        max-width: min(40rem, 90%);
        margin: auto;
        transition: 0.5s all ease;
        transition-behaviour: allow-discrete;
    }

    &:has(input[type="radio"]:checked) #register_form_stage2 {
        display: block;
        transform: scaleY(1);
    }
}


#evLogin {
    section {
        padding: 0.5rem;

        p {
            width: 100%;
            margin-block: 0.5rem;
        }
    }

    p.lost_password {
        width: 100%;
        text-align: center;
    }
}

label:has(+ [required]) {
    &::after {
        display: inline-block;
        margin-left: 0.5rem;
        content: '*';
        color: var(--colour-dark-red);
    }
}

.woocommerce-error,
.woocommerce-message {
    padding: 0.5rem;
    list-style: none;
    border-radius: 0.2rem;
    margin-inline: 0;
    margin-block: 2rem;
}

.woocommerce-message {
    color: var(--colour-white, #ffffff);
    background-color: var(--colour-blue, #0073aa); /* fallback just in case */
}

#evRegister,
#evLogin {
    .woocommerce-error,
    .woocommerce-message {
        h2, p {
            color: inherit;
        }
    }
}

.login-block-cover {
    height: calc(100vh - 10rem);
}

input.tab {
    display: none;

    + label {
        font-size: 1.2rem;
        font-weight: bold;
        display: inline-block;
        padding: 1em;
        cursor: pointer;
        border-radius: 0.2em;
        background: var(--colour-light-grey);
    }

    &:checked + label {
        color: var(--colour-white);
        background: var(--colour-base);
    }
}


.form-row {

    display: flex;
    flex-flow: column;

    label {
        display: block;
    }
}

.password-input {
    position: relative;

    input {
        display: block;
        width: 100%;
    }
}

.show-password-input:before {
    position: absolute;
    top: calc(50% - 1rem);
    right: 0;
    display: block;
    width: 2rem;
    content: '';
    cursor: pointer;
    background-color: var(--colour-black);
    mask-image: var(--icon-eye);
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: 1rem 1rem;
    aspect-ratio: 1 / 1;
}

.password-input input[type=text] + .show-password-input:before {
    mask-image: var(--icon-eye-cross);
}

.woocommerce-lost-password {
    article {
        max-width: 40rem;
        margin: auto;
    }

    h1 {
        font-size: 1.33rem;
        margin-bottom: 0;
        padding: 0.5rem;
        color: var(--colour-white);
        background: var(--colour-dark-blue);
    }

    .entry-content {
        padding: 1rem;
    }
}

@starting-style {

    #ev_register_form:has(input[type="radio"]:checked) #register_form_stage2 {
        transform: scaleY(0);
    }
}
