#contents h3 {
    font-size: max(22pt, 2vw);
    margin-bottom: .5em;
}

#contents .thanks {
    color: #f00;
    font-size: 120%;
    text-align: center;
    border: 1px solid #f00;
    border-radius: 6px;
    padding: .5em;
    margin-block: 2em;
}

#contents .plan table,
#contents .schedule table
{
    width: 100%;
    box-sizing: border-box;
    border-collapse: collapse;
}
#contents .plan table caption,
#contents .schedule table caption
{
    font-size: clamp(16pt, 1.5vw, 30pt);
}
#contents .plan table tr th,
#contents .plan table tr td,
#contents .schedule table tr th,
#contents .schedule table tr td
{
    padding: 10px;
    border: 1px solid #000;
}
#contents .plan table tr th,
#contents .schedule table tr th
{
    background-color: #ddd;
}

#contents .plan {
    margin-bottom: 3em;
}

#contents .schedule table tr td:nth-child(1),
#contents .schedule table tr td:nth-child(2)
{
    text-align: center;
}


@media screen and (max-width: 430px){
    #contents .plan table thead {
        display: none;
    }
    #contents .plan table tbody tr td {
        display: block;
    }
    #contents .plan table tbody tr td::before {
        display: block;
        font-weight: bold;
    }
    #contents .plan table tbody tr td:nth-child(1) {
        padding-bottom: 0;
        border-bottom: none;
    }
    #contents .plan table tbody tr td:nth-child(2) {
        padding-block: 5px;
        border-block: none;
    }
    #contents .plan table tbody tr td:nth-child(3) {
        padding-top: 0;
        border-top: none;
    }
    #contents .plan table tbody tr td:nth-child(1)::before {
        content: "▼開催予定日";
    }
    #contents .plan table tbody tr td:nth-child(2)::before {
        content: "▼予定会場";
    }
    #contents .plan table tbody tr td:nth-child(3)::before {
        content: "▼連絡先";
    }

    #contents .schedule table tbody tr td:nth-child(1) {
        white-space: nowrap;
    }
}