body {
    background: #f6f6f6;
    background-size: cover;
    position: relative;
    height: 100vh;
    margin: 0;
    font-family: Arial, sans-serif;

    &::before {
        content: '';
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: #FFFFFF99;
        pointer-events: none;
    }
}

.logo-container {
    padding: 2rem 0;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* SP用 */
@media (max-width: 640px) {
    .logo-container {
        > img {
            width: 80%;
        }
    }
}


.event-title {
    margin: 2rem auto 3rem;
    font-size: 2.5rem;
    font-weight: bold;
    text-align: center;
}

@media (max-width: 640px) {
    .event-title {
        font-size: 1.3rem;
    }
}

.support-area {
    width: 800px;
    margin: 2rem auto 3rem;
    font-weight: bold;
    text-align: center;
    font-size: 1.3rem;

    & > .support-title {
        font-size: 1.5rem;
    }
}

@media (max-width: 640px) {
    .support-area {
        width: 97%;
        font-size: 1rem;
    }
}


.form-area {
    width: 800px;
    margin: 0 auto;
    background: #FFFFFFAD;
    border-radius: .5rem;
    padding: 1.5rem;
    box-shadow: #c3c3c3 1px 1px 15px;

    &.precautions {
        text-align: center;
        font-size: 1.2rem;
        margin-bottom: 2rem;
    }

    .contents-row {
        border: solid 1px #ccc;
        margin-bottom: 1rem;

        & > .content-title {
            padding: .25rem .5rem;
            background: #002253;
            border: solid 1px #002253;
            color: white;
        }

        & > .content-items {
            padding: .25rem .5rem;
            background: #fff;
            border: solid 1px #002253;
        }
    }
}

@media (max-width:640px){
    .form-area {
        width: 100%;
        padding: 1.5rem .75rem;
        font-size: 0.9rem;

        &.precautions {
            text-align: center;
            font-size: 0.9rem;
        }
    }
}


.terms-condition {
    max-height: 300px;
    overflow-y: scroll;
    padding: .25rem;
    border: solid 1px #ccc;
}

.support-msg {
    color: #777;
}

input::placeholder {
    color: #ddd;
}

.submit-btn {
    padding: .5rem 1.5rem;
    border-radius: 50px;
    background: #002253;
    color: white;
    border: solid 1px #002253;
    cursor: pointer;
    transition: .2s;

    &:hover {
        background: white;
        color: #002253;
    }
}



/**************************
 * チケット画面
 **************************/
.ticket-page-container {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2rem 1rem;
}

.ticket-container {
    max-width: 600px;
    width: 100%;
    margin: 2rem auto 0;
    padding: 20px 30px;
    background: #fffb;
    border-radius: 15px;
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);

    & > .event-title {
        font-size: 1.5rem;
        font-weight: bold;
        text-align: center;
        margin-bottom: 3rem;
    }

    & > .content-area {
        text-align: center;
        margin-bottom: 30px;
        color: #333;

        & > .user-info {
            font-size: 24px;
            font-weight: bold;
        }

        & > .unique-code {
            font-family: monospace;
            font-size: 18px;
            color: #555;
        }
    }
}


@media (max-width:640px){
    .ticket-page-container {
        padding: 1rem 0.5rem;
    }

    .ticket-container {
        width: 95%;
        padding: 1.5rem .5rem;
        margin: 1rem auto 0;
    }
}


.warning-text {
    color: red;
    font-weight: bold;
    text-align: center;
    margin-bottom: 20px;
}

.slider-container {
    display: flex;
    justify-content: center;
    align-items: center;
}


input[type='range'] {
    -webkit-appearance: none;
    width: 80%;
    height: 50px;
    background: #f1f1f1;
    border-radius: 10px;
    outline: none;
    transition: background 0.3s;
    border: 2px solid #0d0d0d;
}

input[type='range']::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 40px;
    height: 50px;
    background: #ccc;
    border-radius: 5px;
    box-shadow: inset 0 0 3px rgba(0,0,0,0.3);
    border: 2px solid #0d0d0d;
    transition: background 0.3s;
}

input[type='range']:hover::-webkit-slider-thumb {
    background: linear-gradient(135deg, #357ABD, #4A90E2);
}

input[type='range']:active::-webkit-slider-thumb {
    background: linear-gradient(135deg, #2A6496, #4A90E2);
}


