:root {
    --transition-regular: 0.25s ease-in-out;
}

@font-face {
    font-family: "Space Mono";
    src: url("https://tio-shops-assets-215625957751-eu-central-1.s3.amazonaws.com/KD11783_Streetlife-International/font/Space%20Mono/SpaceMono-Regular.ttf");
}

html {
    font-size: 14px;
}

body {
    font-family: "Space Mono";
    padding-top: unset !important;

    & > footer {
        font-size: 0.8rem;
        background-color: transparent !important;

        & p {
            margin-bottom: unset;
        }
    }
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: inherit;
}

ul {
    padding: unset;
    margin: unset;
    list-style-type: none;
}

#page2 {
    display: none;
    & .cover {
        display: none;
    }
}

#page3 {
    & > .container {
        width: unset !important;
        margin: unset;
        padding: unset;

        & > .row::before {
            content: unset;
        }

        &::before {
            content: unset;
        }

        & > .row {
            display: unset !important;
            margin: unset;

            & > .col-md-5 {
                display: none;
            }
        }

        & .customer-data-wrapper {
            width: unset;
            float: unset;
            padding: unset;

            &::before {
                content: unset;
            }

            & h2 {
                margin-top: unset;
            }
        }

        & :is(label) {
            font-family: inherit !important;
            font-size: 0.8rem !important;
        }

        & .form-group .checkbox {
            font-family: inherit !important;

            & label {
                font-size: 1rem !important;
            }
        }

        & .form-horizontal .form-group {

            @media screen and (min-width: 768px) {
                margin-left: unset !important;
                margin-right: unset !important;
            }
        }

        & h2 {
            font-family: inherit !important;
        }
    }

    & > .actionBar {
        display: none;
    }
}

.previewbadge {
    pointer-events: none;
}

#custom-shop {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    padding: 5dvh 5dvw;
    width: 100%;
    overflow: hidden;

    @media screen and (min-width: 768px) {
        padding: 5dvh 5dvw;
        grid-template-columns: 25vw 2px 1fr;
        gap: 1rem 2rem;
    }

    & > .separator {
        display: none;

        @media screen and (min-width: 768px) {
            display: unset;
            grid-row: 2;
            grid-column: 2;
            height: 100%;
            background-color: black;
        }
    }

    & .header-left {

        & h1 {
            display: flex;
            flex-direction: column;
            gap: 0.25rem;
            margin: unset;

            & div:first-child {
                font-size: 0.8rem;
            }

            & div:last-child {
                font-size: 1.2rem;
            }
        }
    }

    & .header-right {
        display: flex;
        flex-direction: row;
        gap: 1rem;
        align-items: center;
        grid-column: 2;
        justify-content: end;

        @media screen and (min-width: 768px) {
            grid-column: 3;
        }
    }

    & .left {
        display: flex;
        flex-direction: column;
        gap: 1rem;
        grid-column: 1 / -1;

        @media screen and (min-width: 768px) {
            grid-column: 1;
        }

        & .event-cover {
            width: 100%;
        }

        & .streetlife-logo {
            height: 2rem;
            /* width: fit-content; */
            max-width: 100%;
            margin-top: 2rem;
        }

        & .powered-by {
            font-size: 0.8rem;
        }
    }

    & .right {
        grid-column: 1 / -1;

        @media screen and (min-width: 768px) {
            grid-column: 3;
        }

        & #seatplan {
            height: 50dvh !important;
        }

        & :is(#ticket-selection, #customer-data, #add-ons, #summary):not(.active) {
            display: none;
        }

        & > div {
            overflow-y: auto;
        }

        & button.proceed {
            display: flex !important;
            flex-direction: row;
            gap: 1rem;
            align-items: center;
            justify-content: center;
            margin: 2rem 0 0 auto;
            display: block;
            background-color: black;
            color: white;
            border-radius: unset;
            border: 1px solid black;
            padding: 0.5rem 4rem;
            width: 100%;
            text-align: center;

            @media screen and (min-width: 768px) {
                width: unset;
            }

            .disabled &, &[disabled] {
                opacity: 0.5;
                pointer-events: none;
            }

        }

        & .currency-all {
            font-size: 0.8rem;
        }

        & #summary {
            & .tioNotOrganizer {
                font-family: inherit;
            }

            & .sumOfPurchase {
                & h2 {
                    font-family: inherit !important;
                }

                & .tio-fee .right {
                    font-family: inherit !important;
                }

                & .ticketTypes td:first-child small {
                    display: none;
                }
            }
        }
    }

    & #cart-summary {
        display: flex;
        flex-direction: column;
        gap: 1rem;

        & #cart-items {
            display: flex;
            flex-direction: column;
            border: 1px solid black;
            padding: 2rem;

            &:empty {
                display: none;
            }

            & li {
                display: grid;
                grid-template-columns: 1fr auto;
                grid-template-rows: repeat(3, auto);
                gap: 0.25rem 1rem;
                padding: 1rem 0;

                &:not(:last-child) {
                    border-bottom: 1px solid black;
                }

                &:last-child {
                    padding-bottom: unset;
                }

                & .ticket-type-name {
                    grid-column: 1;
                    grid-row: 1;
                }

                & .ticket-type-seat-label {
                    grid-column: 1;
                    grid-row: 2;
                    font-size: 0.8rem;
                }

                & .ticket-type-price {
                    grid-column: 2;
                    grid-row: 1;
                    text-align: right;
                }

                & button {
                    grid-column: 2;
                    grid-row: 1;
                    height: fit-content;
                    font-size: 0.8rem;
                }
            }
        }

        & #cart-sum {
            /* padding: 1rem 2rem; */
            text-align: center;

            @media screen and (min-width: 768px) {
                text-align: right;
            }

            & p {
                margin: unset;

                &:not(:last-child) {
                    font-size: 0.8rem;
                }

                & span:first-child {
                    margin-right: 2rem;
                }
            }
        }
    }

    #add-ons {
        & table {
            width: 100%;
            table-layout: fixed;

            & .ticket-type-name {
                font-weight: bold;
            }

            & .seat-label {
                font-size: 0.8rem;
            }

            & :is(tr):not(:last-child) {
                border-bottom: 1px solid black;
            }

            & :is(td, th) {
                padding: 0.5rem;
            }

            & .add-on-select {
                display: flex;
                flex-direction: row;
                align-items: center;
                gap: 0.5rem;
                flex-wrap: wrap;

                & .price {
                    font-size: 0.8rem;
                }
            }
        }
    }

    & nav {
        margin-bottom: 2rem;
        & ul {
            display: flex;
            gap: 1rem;

            & li {
                flex-grow: 1;
                display: flex;
                flex-direction: column;
                gap: 0.25rem;
                align-items: center;
                cursor: pointer;
                opacity: 1;
                transition: all var(--transition-regular);
                
                &.active {
                    text-shadow: 0 0 1px black;
                    border-bottom: 1px solid black;
                }

                &:hover {
                    opacity: 0.5;
                }

                &:not(.active):not(.complete) {
                    opacity: 0.25;
                    pointer-events: none;
                }

                /* &:not([data-complete="true"]) {
                    pointer-events: none;
                } */

                /* & :not(.complete):not(.active) {
                    opacity: 0.2;
                } */
                
                &::after {
                    content: "";
                    display: block;
                    position: absolute;
                    top: 100%;
                    left: 50%;
                    transform: translateX(-50%);
                    width: 100%;
                    text-align: center;
                    font-weight: bold;
                    background-color: transparent;
                    color: black;
                    transition: all var(--transition-regular);
                }

                &.complete {
                    background-color: white;
                    color: black;
                    position: relative;

                    > span:first-child {
                        font-size: 0;
                    }

                    > span:first-child::after {
                        font-size: 1.5rem;
                        line-height: 1.4rem;
                        margin-top: 0.25rem;
                        content: "✔";
                        color: black;
                        display: block;
                    }
                }
            }
        }
    }
}

body {
    & > div.wrapper {

        & > .navbar {
            display: none;
        }
    }
}

input[type="checkbox"].toggle {
    appearance: none;
    padding: unset;
    width: fit-content;
    position: relative;
    height: 1.5rem;
    aspect-ratio: 2 / 1;
    border-radius: 99999px;
    border: 1px solid black;
    overflow: hidden;
    cursor: pointer;
    background-color: white;
    margin: unset;

    &::after {
        content: " ";
        border-radius: 99999px;
        display: block;
        height: 100%;
        aspect-ratio: 1;
        background-color: black;
        border: 1px solid white;
        position: absolute;
        top: 0;
        left: 0;
        transition: all var(--transition-regular);
        box-shadow: var(--box-shadow-regular);
        text-align: center;
    }

    &:hover {
        opacity: 0.8;
    }

    &:checked {
        background-color: black;

        &::after {
            content: " ";
            left: 50%;
            background-color: white;
        }
    }
}

.button, .btn, .input-group-btn:last-child > .btn {
    text-transform: uppercase;
    border: 1px solid black !important;
    border-radius: unset !important;
    background-color: transparent;
    padding: 0.25rem 1rem;
    color: black;
    font-size: 0.8rem;

    &.active {
        color: white;
        background-color: black;
    }

    &.disabled, &[disabled] {
        opacity: 0.5;
        pointer-events: none;
    }
}

details {
        border-radius: var(--border-radius-regular);

        @supports selector(::details-content) {
            &::details-content {
                margin-top: 0;
                block-size: 0;
                opacity: 0;
                transition: all 0.2s;
                transition-behavior: allow-discrete;
            }

            &[open]::details-content {
                margin-top: 1rem;
                block-size: auto;
                opacity: 1;
            }
        }

        @supports not selector(::details-content) {
            &[open] p {
                margin-top: 1rem;
            }
        }

        & summary,
        >div {
            --padding: 2rem;
            padding-left: var(--padding);
            padding-right: var(--padding);
        }

        &>div {
            padding-bottom: 1rem;

            &:has(.address) > .row {
                display: flex;
                flex-direction: column;
                gap: 2rem;

                &::before {
                    content: unset !important;
                }

                &::after {
                    content: unset !important;
                }

                & > div {
                    width: 100%;
                }
            }
        }

        &[open] summary span::before {
            rotate: 90deg;
        }

        & summary {
            --padding: 0rem;
            padding-top: var(--padding);
            padding-bottom: var(--padding);
            cursor: pointer;
            transition: opacity var(--transition-regular);

            & span::before {
                content: ">";
                display: inline-flex;
                place-content: center;
                font-weight: 800;
                border-radius: 0;
                margin-right: 1rem;
                transition: rotate var(--transition-regular);
            }

            &:hover {
                opacity: 0.5;
            }
        }

        & summary::-webkit-details-marker {
            display: none;
        }

        &::marker {
            content: "";
            display: none;
        }
    }

.container-purchasecomplete h1,
.container-purchasecomplete h2,
.container-purchasecomplete h3,
.container-purchasecomplete h4,
.container-purchasecomplete h5,
.container-purchasecomplete h6,
.container-purchasecomplete p,
body:has(.container-purchasecomplete) h1,
body:has(.container-purchasecomplete) h2,
body:has(.container-purchasecomplete) h3,
body:has(.container-purchasecomplete) h4,
body:has(.container-purchasecomplete) h5,
body:has(.container-purchasecomplete) h6,
body:has(.container-purchasecomplete) p,
body:has(.container-purchasecomplete) .cover .cover-content h2,
.container-purchasecomplete .btn-lg,
.container-purchasecomplete .address .list-eventinfos {
    font-family: inherit !important;
}

.container-purchasecomplete p {
    font-size: unset;
}

.container-purchasecomplete .information {
    padding: 2rem;
    border: 1px solid black;
    margin-bottom: 2rem;
}

.container-purchasecomplete .btn-download {
    width: 100%;
}

#seatplan iframe {
    max-width: 100%;
}