
/* ================================
   画面中央のボタン
================================ */

.street-button-area {
    width: 100%;
    min-height: 100vh;

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

    position: relative;
    z-index: 10;
}

.street-btn {
    width: 180px;
    height: 180px;

    border: none;
    border-radius: 50%;

    background: #1976d2;
    color: white;

    font-size: 16px;
    font-weight: bold;

    cursor: pointer;

    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;

    padding: 25px;

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.25);

    transition:
        transform 0.25s ease,
        background 0.2s ease,
        box-shadow 0.25s ease;
}

/* ================================
   ホバー
================================ */

.street-btn:hover {

    transform: scale(1.08);

    background:
        linear-gradient(
            45deg,
            #ff0000,
            #ff9900,
            #ffee00,
            #00cc66,
            #00aaff,
            #6633ff,
            #ff00cc,
            #ff0000
        );

    background-size: 400% 400%;

    animation: rainbowButton 1.5s linear infinite;

    box-shadow:
        0 0 25px rgba(255, 0, 255, 0.5);
}

/* ================================
   クリックしている間
================================ */

.street-btn:active {

    transform: scale(0.95);

    background:
        linear-gradient(
            45deg,
            red,
            orange,
            yellow,
            lime,
            cyan,
            blue,
            violet,
            red
        );

    background-size: 400% 400%;

    animation: rainbowButton 0.8s linear infinite;
}

/* ================================
   スマホのタップ時
================================ */

.street-btn.touching {

    transform: scale(0.95);

    background:
        linear-gradient(
            45deg,
            red,
            orange,
            yellow,
            lime,
            cyan,
            blue,
            violet,
            red
        );

    background-size: 400% 400%;

    animation: rainbowButton 0.8s linear infinite;
}

/* 虹色アニメーション */

@keyframes rainbowButton {

    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}


/* ==================================================
   モーダル全体
================================================== */

.street-modal {

    position: fixed;

    inset: 0;

    width: 100%;
    height: 100%;

    background: rgba(0, 0, 0, 0);

    display: flex;

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

    opacity: 0;
    visibility: hidden;

    transition:
        background 0.6s ease,
        opacity 0.5s ease,
        visibility 0.5s ease;

    z-index: 9999;

    padding: 20px;

    box-sizing: border-box;
}


/* ================================
   開いた状態
================================ */

.street-modal.show {

    background: rgba(0, 0, 0, 0.88);

    opacity: 1;

    visibility: visible;
}


/* ==================================================
   中央の別ウィンドウ
================================================== */

.street-modal-window {

    position: relative;

    width: min(1000px, 92vw);
    height: min(750px, 85vh);

    background: white;

    border-radius: 20px;

    overflow: hidden;

    box-shadow:
        0 25px 80px rgba(0, 0, 0, 0.65);

    transform:
        scale(0.85)
        translateY(30px);

    opacity: 0;

    transition:
        transform 0.55s cubic-bezier(.2,.8,.2,1),
        opacity 0.55s ease;
}


/* ================================
   ウィンドウ表示アニメーション
================================ */

.street-modal.show
.street-modal-window {

    transform:
        scale(1)
        translateY(0);

    opacity: 1;
}


/* ==================================================
   別HTML
================================================== */

.street-modal-window iframe {

    width: 100%;
    height: 100%;

    border: none;

    display: block;

    background: white;
}


/* ==================================================
   閉じるボタン
================================================== */

.street-close {

    position: absolute;

    top: 12px;
    right: 12px;

    width: 48px;
    height: 48px;

    border: none;

    border-radius: 50%;

    background: white;

    color: #222;

    font-size: 30px;
    font-weight: bold;

    line-height: 48px;

    text-align: center;

    cursor: pointer;

    z-index: 10000;

    box-shadow:
        0 3px 15px rgba(0,0,0,0.3);

    transition:
        background 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}


/* ================================
   × にホバー
================================ */

.street-close:hover {

    background: #8000ff;

    color: white;

    transform: scale(1.1);
}


/* ================================
   × をクリックしている間
================================ */

.street-close:active {

    background: #8000ff;

    color: white;

    transform: scale(0.9);
}


/* ================================
   スマホ
================================ */

@media (max-width: 600px) {

    .street-btn {

        width: 150px;
        height: 150px;

        font-size: 14px;

        padding: 20px;
    }

    .street-modal-window {

        width: 94vw;
        height: 82vh;

        border-radius: 16px;
    }

    .street-close {

        width: 44px;
        height: 44px;

        font-size: 27px;

        line-height: 44px;

        top: 8px;
        right: 8px;
    }
}
