/*Utilities*/
.hidden {
    display: none;
}

.font-semibold {
    font-weight: var(--wp--custom--typography--font-weight--semi-bold);
}

.font-bold {
    font-weight: var(--wp--custom--typography--font-weight--bold);
}

.text-xs {
    font-size: 0.90rem;
}

.centered-legend {
    text-align: center;
    width: 100%;
}

/*Global styles*/
button {
    color: var(--wp--preset--color--tertiary);
    background-color: var(--wp--preset--color--secondary);
    padding: 0.25rem 1rem;
    font-family: var(--wp--preset--font-family--space-mono);
    border-radius: 4px 4px;
    border-width: 0px;
    cursor: pointer;
}

button:hover {
    opacity: 85%;
}

button:disabled {
    color: var(--wp--preset--color--primary);
    background-color: var(--wp--preset--color--cyan-bluish-gray);
    cursor: not-allowed;
}

button:disabled:hover {
    opacity: 100%;
}

input[type=radio] {
    outline-width: 0px;
}

fieldset {
    border-radius: 5px 5px;
    border-color: var(--wp--preset--color--cyan-bluish-gray);
    border-width: 1px;
}

fieldset legend {
    font-weight: var(--wp--custom--typography--font-weight--semi-bold);
}

input[type=text],input[type=password] {
    border-radius: 5px 5px;
    border-width: 1px;
    border-color: var(--wp--preset--color--cyan-bluish-gray);;
    padding: 4px 8px;
}

/*Login page*/

#thankyou > p {
    text-align: center;
}

#thankyou p:first-child {
    font-weight: var(--wp--custom--typography--font-weight--semi-bold);
}

#enter_password {
    display: flex;
    justify-content: center;
}

#enter_password > form {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

@media (max-width: 600px) {
    #enter_password > form {
        flex-direction: column; 
    }

    #enter_password > form > button {
        margin-top: 0.5rem;
    }

    #enter_password > form > .centered-error {
        display: block;
        margin: 0px;
    }

    #login_wrapper > .centered-error {
        display: none;
        
    }
}

@media (min-width: 601px) {
    #enter_password > form > .centered-error {
        display: none;
    }

    #login_wrapper > .centered-error {
        display: block;
        margin-top: 0.5rem;
    }
}

.password-wrapper {
    position: relative;
    display: inline-block;
}

.password-wrapper input {
    padding-left: 0.5em;
    padding-right: 2.75em;
    height: 1.8em;
}

.password-wrapper #toggle_guest_pass {
    background-color: transparent;
    color: var(--wp--preset--color--primary);
    padding: 0.25em;

    position: absolute;
    inset-block: 1px 1px;
    writing-mode: horizontal-tb;
    top: 1.5px;
    right: 1.5px;
    border-width: 0px;
}

.password-wrapper #toggle_guest_pass:hover {
    background-color: var(--wp--preset--color--tertiary);
    border-radius: 4px 4px;
}

.password-wrapper #toggle_guest_pass:active,
.password-wrapper #toggle_guest_pass:focus {
    outline-width: 0px;
}

.password-wrapper #toggle_guest_pass svg {
    width: 1rem;
    height: 1rem;
    padding: 2px 2px 0px;

}

.centered-error {
    color: red;
    text-align: center;
    font-size: 0.85rem;
}

@media (min-width: 601px) {
    #wrapper {
        width: 66%;
        margin-left: auto;
        margin-right: auto;       
    }
}

/*Logout*/

#logout {
    display: flex;
    justify-content: end;
    align-items: center;
    gap: 0.25rem;
}

#logout button {
    padding: 0.2rem 0.2rem 0rem;
}

#logout p {
    font-size: 0.9rem;
    margin: 0px;
}


/*Progress bar*/
#progress_bar {
    display: flex;
    gap: 4px;
    margin: 2rem auto;
    width: 66%;

}

#progress_bar > div {
    width: 20%;
    height: 4px;
    background-color: var(--wp--preset--color--tertiary);
}

#progress_bar > .complete {
    background-color: var(--wp--preset--color--secondary);
    opacity: 66%;
}

/*Attendance form*/

#attendance {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#attendance_form {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1em;
}

#attendance_form > * {
    flex: 0 0 auto;
}

#attendance_form button[type=submit] {
    margin-top: 0.5rem;
}

#partner_name_wrapper {
    display: flex;
    flex-direction: column;
    width: 75%;
    align-items: center;
    margin: 1rem auto 0rem;
}

#partner_name_wrapper > p {
    margin: 0.5rem 0px 0rem;
}

#attendance .radio-wrapper {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 0.3rem;
}

#partner_and_or_kids {
    border-style: solid;
    border-width: 1px;
    border-radius: 5px 5px;
    border-color: var(--wp--preset--color--cyan-bluish-gray);
    position: relative;
}

#partner_and_or_kids > .box-label {
    position: absolute;
    padding: 0px 3px;
    background-color: var(--wp--preset--color--background);
    left: 0.75rem;
    top: -0.75rem;
}

.attendee {
    border-width: 0px;
}

#attendees {
    margin-top: 1rem;
}

/*Accommodation*/
#accommodation p {
    text-align: center;
}

@media (min-width: 601px) {

    #accommodation fieldset {
        margin: 0px 2rem;
    }
}

@media (max-width: 600px) {
    #accommodation fieldset {
        margin: 0px 1rem;
    }

    #accommodation .radio-wrapper {
        display: flex;
        align-items: flex-start;
        gap: 0.25rem;
    }
    
    #accommodation .radio-wrapper label {
        margin-top: -1px;
    }
}

/*Dietary*/

#dietary textarea {
    display: block;
    width: 97%;
    margin: 0px auto;
    border-width: 1px;
    border-radius: 5px 5px;
    border-color: var(--wp--preset--color--cyan-bluish-gray);
}

#dietary p {
    text-align: center;
}

#dietary .radio-wrapper {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 0.3rem;
}

#food_limitations {
    margin-top: 1rem;
}

#food_limitations > label {
    display: block;
    width: 100%;
    text-align: center;
}

/*Song*/

#song p {
    text-align: center;
}

#song .input-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#song .input-wrapper textarea {
    width: 75%;
}

/*Notes*/

#notes p {
    text-align: center;
}

#notes label {
    display: block;
    width: 100%;
    text-align: center;
    font-weight: var(--wp--custom--typography--font-weight--semi-bold);
}

#notes textarea {
    display: block;
    width: 97%;
    margin: 0px auto;
    border-width: 1px;
    border-radius: 5px 5px;
    border-color: var(--wp--preset--color--cyan-bluish-gray);
}

/*Back and next buttons*/
#button_wrapper {
    display: flex;
    justify-content: space-around;
    margin-top: 1.5rem;
}