@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Oswald:wght@200..700&display=swap');

/* あらすじ */
#synopsis {
    max-width: 1100px;
    margin: 64px auto 0;
    padding: 0 80px;
}

#synopsis h2 {
    font-size: 20px;
    font-weight: 400;
    line-height: 175%;
    letter-spacing: 0.1em;
    color: #333333;
    text-align: center;
    margin: 0;
}

#synopsis h2 span {
    display: block;
    font-size: 32px;
}

#synopsis_details {
    display: flex;
    flex-wrap: nowrap;
    gap: 0 56px;
    justify-content: center;
    align-items: center;
    margin-top: 40px;
}

#synopsis_details img {
    width: 376px;
}

#synopsis_details p {
    font-size: 16px;
    font-weight: 400;
    line-height: 200%;
    color: #333333;
    height: 264px;
    margin: 0;
    overflow-y: scroll;
    position: relative;
}

#synopsis_details p button {
    display: none;
}

#synopsis table {
    margin-top: 80px;
    width: 100%;
    border-collapse: collapse;
}

#synopsis table td {
    border-bottom: 1px solid #666666;
}

#synopsis table tr:last-child td {
    border-bottom: none;
}

#synopsis table td.table_title {
    width: 210px;
}

#synopsis table td.table_title span {
    display: block;
    font-size: 20px;
    font-weight: 400;
    line-height: 150%;
    color: #f5f4f0;
    text-align: center;
    background-color: #582a1c;
    padding: 8px 24px;
    margin: 16px 24px;
    border-radius: 24px;
}

#synopsis table td.table_text {
    font-size: 20px;
    font-weight: 400;
    line-height: 150%;
    color: #333333;
    padding: 16px;
    padding-right: 24px;
}

/* 予約 */
#reservation {
    max-width: 1100px;
    margin: 96px auto 0;
    padding: 0 80px;
}

#reservation h3 {
    font-size: 32px;
    font-weight: 400;
    line-height: 150%;
    color: #333333;
    margin: 0;
    margin-top: 56px;
}

#reservation p {
    font-size: 16px;
    font-weight: 300;
    line-height: 150%;
    color: #333333;
    margin: 0;
    margin-top: 24px;
}

#reservation p+p {
    margin-top: 8px;
}

#reservation span {
    margin-left: 16px;
}

/* こちらもチェック！ */
#check {
    max-width: 1100px;
    margin: 96px auto 0;
    padding: 0 80px;
}

#check h2 {
    font-size: 24px;
    font-weight: 400;
    line-height: 150%;
    color: #333333;
    margin: 0;
}

#guides {
    width: 100%;
    margin: 40px auto 0;
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
}

.guide_link {
    display: block;
    width: 292px;
    background: #f5f4f0;
    box-shadow: -4px 14px 11px #3333337d;
    text-decoration: none;
}

.guide_link div {
    position: relative;
    width: 100%;
    height: 220px;
    overflow: hidden;
}

.guide_img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 103%;
    transform: translateX(-50%) translateY(-50%);
    transition: transform 0.3s;
}

.guide_img.big {
    transform: translateX(-50%) translateY(-50%) scale(1.1);
}

.guide_link p {
    font-size: 16px;
    font-weight: 400;
    line-height: 175%;
    letter-spacing: 0.01em;
    padding: 0 16px 4px;
    color: #333333;
}

/* レスポンシブ対応 */
@media (max-width: 767px) {

    /* あらすじ */
    #synopsis {
        max-width: none;
        width: 100%;
        margin: 80px auto 0;
        padding: 0 8vw;
    }

    #synopsis_details {
        display: block;
        flex-wrap: initial;
        gap: 0;
        justify-content: initial;
        align-items: initial;
    }

    #synopsis_details img {
        width: 100%;
    }

    #synopsis_details p {
        height: 192px;
        overflow-y: hidden;
        margin-top: 40px;
    }

    #synopsis_details p.open {
        height: auto;
    }

    #synopsis_details p button.show {
        display: block;
        all: unset;
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        font-size: 20px;
        font-weight: 500;
        line-height: 150%;
        letter-spacing: 0.1em;
        text-align: center;
        cursor: pointer;
        color: #582a1c;
        background: -moz-linear-gradient(top, transparent  #f5f4f0ac 40%, #f5f4f0ac);
        background: -webkit-linear-gradient(top, transparent, #f5f4f0ac 40%, #f5f4f0ac);
        background: linear-gradient(to bottom, transparent, #f5f4f0ac 40%, #f5f4f0ac);
        height: 80px;
        margin: 0;
    }

    #synopsis table {
        margin-top: 64px;
    }

    #synopsis table td.table_title {
        width: 168px;
    }

    #synopsis table td.table_title span {
        font-size: 16px;
        padding: 6px 20px;
        margin: 12px 20px;
        border-radius: 20px;
    }

    #synopsis table td.table_text {
        font-size: 16px;
        padding: 12px;
        padding-right: 20px;
    }

    /* 予約 */
    #reservation {
        max-width: none;
        width: 100%;
        padding: 0 8vw;
    }

    #reservation h3 {
        text-align: center;
        margin-top: 96px;
    }

    #reservation p {
        text-align: center;
        margin-top: 36px;
    }

    #reservation p+p {
        margin-top: 8px;
    }

    /* 解説ページへ */
    #check {
        max-width: none;
        width: 100%;
        padding: 0 8vw;
    }

    #check h2 {
        text-align: center;
    }

    #guides {
        display: block;
        flex-wrap: initial;
        gap: 0;
    }

    .guide_link {
        width: auto;
        max-width: 292px;
        margin: 0 auto;
    }

    .guide_link+.guide_link {
        margin-top: 72px;
    }

    .guide_link div {
        height: auto;
        padding-top: 75.3%;
    }

    .guide_link p {
        padding: 0 16px 20px;
    }
}