html,
body {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: normal;
}

.wrap {
    font-size: 16px;
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 600;
    font-style: normal;
    font-feature-settings: "palt" 1;
    letter-spacing: .04em;
    overflow: hidden;
    color: #2d2320;
    text-align: center;
    padding-bottom: 10%;
}

.wrap * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.wrap ul,
.wrap ol {
    list-style: none;
}

.wrap img {
    max-width: 100%;
}

.pc {
    display: none;
}

.sp {
    display: block;
}

.ib {
    display: inline-block;
    font-style: normal;
}

.bg_gray {
    background-color: #f8f9fa;
    padding: 10% 5%;
    margin-top: 10%;
}

.bg_white {
    padding: 10% 5% 0 5%;
}

.wrap h2 {
    color: #fff;
    background-color: #0269b7;
    font-size: clamp(18px, 4vw, 26px);
    display: inline-block;
    padding: clamp(6px, 2vw, 24px) 4% 2% 4%;
    margin-bottom: 8%;
    line-height: 1;
}

/* =========================================
　　　　　　　　メインビジュアル
============================================*/

.mainimg h1 {
    display: flex;
}

/* =========================================
    　　　　　　　　キャッチ
============================================*/

/* .catch ul {
    font-size: clamp(14px, 3vw, 20px);
}

.catch ul li:not(:last-of-type) {
    margin-bottom: 3%;
}

.catch ul li span {
    color: #e8000e;
    font-size: clamp(16px, 3vw, 22px);
} */

/* =========================================
    　　　　　　　　終了告知
============================================*/

.announce {
    margin-top: 0;
    font-size: clamp(14px, 3vw, 20px);
}

.announce ul li:not(:last-of-type) {
    margin-bottom: .5em;
}

.announce div {
    border: 2px solid #e8000e;
    width: 90%;
    padding: 5%;
    margin: 5% auto;
}

.announce div h5 {
    color: #e8000e;
    font-size: clamp(16px, 4vw, 24px);
}

.announce div p {
    margin: 2% auto 3% auto;
}

.announce div a img {
    width: 75%;
    max-width: 320px;
    filter: drop-shadow(3px 3px 3px rgba(0, 0, 0, 0.3));
}

.announce picture {
    width: 90%;
    display: block;
    margin: 0 auto;
}


/* =========================================
    　　　　　　　　イントロ
============================================*/

.intro ul {
    font-size: clamp(14px, 3vw, 22px);
}

.intro ul>li:not(:last-of-type) {
    margin-bottom: 3%;
}

.intro ul li span {
    color: #e8000e;
    font-size: clamp(16px, 4vw, 24px);
    font-weight: 700;
}

.intro ol {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 6% auto;
}

.intro ol li {
    width: 32%;
}

/* =========================================
    　　　　　　　　開催概要
============================================*/

.outline table {
    width: 100%;
    margin: 0 auto 8% auto;
}

.outline table th,
.outline table td {
    display: block;
    width: 100%;
}

.outline table th {
    border-top: 2px solid #e8000e;
    border-bottom: 1px solid #e0e1e3;
    padding: 3% 0;
    font-size: clamp(16px, 3vw, 22px);
}

.outline table td {
    padding: 4% 0 8% 0;
    font-size: clamp(14px, 3vw, 18px);
}

.outline table tr:last-of-type td {
    padding: 4% 0 0 0;
}

/* ---協賛--- */
.outline table td p {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}

.outline table td p span {
    width: 30%;
    max-width: 150px;
}

.outline table td p span:first-of-type {
    margin-right: 7%;
}

/* =========================================
    　　　　　　CM動画
============================================*/

.movie_wrap {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
}

#movie {
    position: relative;
    width: 100%;
    padding-top: calc(9 / 16 * 100%);
    margin: 0 auto;
    overflow: hidden;
}

.tvo-video {
    position: absolute;
    width: 100%; 
    height: 100%;
    top: 0;
    right: 0;
}

/* =========================================
    　　　　　　　　申込ボタン
============================================*/

.entry p {
    max-width: 500px;
    margin: 0 auto 1% auto;
}

.entry a img {
    filter: drop-shadow(3px 3px 3px rgba(0, 0, 0, 0.3));
}

.entry small {
    font-weight: 600;
    font-size: clamp(12px, 3vw, 18px);
}

/* =========================================
    　　　　　　　　講演内容
============================================*/

.content h3 {
    color: #0269b7;
    font-size: clamp(18px, 4vw, 24px);
    border-bottom: 2px solid #0269b7;
    text-align: left;
    padding-left: 1%;
}

.content h4 {
    color: #e8000e;
    font-size: clamp(20px, 4vw, 26px);
    margin: 3% auto 3% auto;
}

.content p {
    text-align: left;
    font-size: clamp(14px, 2.5vw, 18px);
}

.content>div:not(:last-of-type) {
    margin-bottom: 10%;
}

.content dl dt {
    width: 50%;
    margin: 0 auto;
}

.content dl dd {
    font-size: clamp(14px, 3vw, 18px);
    padding-top: 2%;
}

.content dl dd span {
    font-size: clamp(18px, 4vw, 24px);
    font-weight: 700;
}

.cast_box {
    margin-top: 8%;
}

.cast_box dl:not(:last-of-type) {
    margin-bottom: 8%;
}

.content_1 dl,
.content_4 dl {
    margin-top: 7%;
}

.content_4 h3 {
    border-bottom: 2px dotted #0269b7 !important;
}

/* =========================================
    　　　　　　　　予約方法
============================================*/

.reserve h2 {
    line-height: 1.3em;
}

.reserve p {
    font-size: clamp(14px, 3vw, 20px);
}



.reserve div {
    margin: 5% 0 0 0;
}

.reserve dl {
    border: 2px solid #0269b7;
    border-radius: 5px;
    padding: 3% 2%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.reserve dl:not(:last-of-type) {
    margin-bottom: 3%;
}

.reserve dl dt {
    font-size: clamp(12px, 3vw, 16px);
}

.reserve dl dt span {
    font-weight: 700;
    font-size: clamp(14px, 3vw, 20px);
}

.reserve dl dd {
    color: #fff;
    background-color: #e8000e;
    border-radius: 100px;
    padding: 1% 3%;
    margin-left: 7%;
    font-weight: 700;
    font-size: clamp(14px, 3vw, 20px);
}

.reserve ul {
    margin:  11% 0;
    font-size: clamp(13px, 3vw, 20px);
}

.reserve ul i {
    font-style: normal;
    text-decoration: underline;
    text-decoration-color: red;
    text-decoration-thickness: 2px;
    text-underline-offset: .4em;
}

.reserve ol {
    text-align: left;
    font-size: clamp(10px, 2vw, 16px);
    text-indent: -1em;
    padding-left: 1em;
    margin: 2% auto 0 auto;
    max-width: 1000px;
}


/* =========================================
    　　　　　　　　LBSとは
============================================*/

.lbs {
    font-size: clamp(13px, 3vw, 18px);
}

.lbs dl dt {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin: 0 auto 2% auto;
}

.lbs dl dt p {
    width: 15%;
    margin-right: 2%;
}


/* =========================================
    　　　　　　　　お問い合わせ
============================================*/

.contact dl {
    font-size: clamp(14px, 3vw, 18px);
}

.contact dl dt {
    margin-bottom: 3%;
}


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

    /* =========================================
    　　　　　　　　背景
    ============================================*/

    .wrap {
        padding-bottom: clamp(60px, 7vw, 100px);
    }

    .pc {
        display: inline-block;
    }

    .sp {
        display: none;
    }

    .wrap h2{
        font-size: clamp(24px, 3vw, 32px);
        padding: clamp(15px, 2vw, 22px) 4% 2% 4%;
        margin-bottom: clamp(30px, 5vw, 60px);
    }

    .bg_white {
        max-width: 1200px;
        margin: 0 auto;
        padding: clamp(60px, 7vw, 100px) 5% 0 5%;
    }

    .bg_gray_wrap {
        max-width: 1200px;
        margin: 0 auto;
    }

    .bg_gray {
        padding: clamp(60px, 7vw, 60px) 5%;
    }

    /* =========================================
    　　　　　　　　終了告知
    ============================================*/

    .announce {
        font-size: clamp(18px, 2vw, 26px);
    }

    .announce div {
        border: 3px solid #e8000e;
        width: 100%;
        max-width: 1000px;
        padding: clamp(20px, 3vw, 40px);
        margin: clamp(30px, 3vw, 50px) auto;
    }

    .announce div h5 {
        font-size: clamp(22px, 2.5vw, 30px);
    }

    .announce div a {
        transition-duration: .2s;
    }

    .announce div a img {
        max-width: 375px;
    }

    .announce div a:hover {
        opacity: .7;
    }

    .announce picture {
        width: 100%;
    }

    /* =========================================
        　　　　　　　　イントロ
    ============================================*/

    .intro ul {
        font-size: clamp(20px, 2vw, 28px);
    }

    .intro ul li span{
        font-size: clamp(22px, 2.5vw, 30px);
    }

    .intro ol li {
        width: 16%;
    }

    /* =========================================
        　　　　　　　　開催概要
    ============================================*/

    .outline table {
        width: 90%;
        min-width: 650px;
        border-collapse: collapse;
    }

    .outline table th,
    .outline table td {
        display: table-cell;
    }

    .outline table th {
        border-top: none;
        border-bottom: 3px solid #e8000e;
        font-size: clamp(20px, 2vw, 24px);
        width: 30%;
        padding: 3% 2% 3% 2%;
    }

    .outline table td {
        border-bottom: 3px solid #e0e1e3;
        font-size: clamp(18px, 2vw, 22px);
        width: 70%;
        padding: 3% 2% 3% 2%;
    }

    .outline table tr:last-of-type td {
        padding: 3% 2% 3% 2%;
    }

    /* =========================================
    　　　　　　番宣動画
    ============================================*/

    .movie_wrap {
        max-width: 900px;
    }

    /* =========================================
        　　　　　　　　申込ボタン
    ============================================*/

    .entry p {
        width: 60%;
        margin: 0 auto;
        min-width: 650px;
    }

    .entry a {
        transition-duration: .2s;
    }

    .entry a:hover {
        opacity: .7;
    }

    .entry small {
        margin-top: 1%;
        display: block;
    }

    /* =========================================
        　　　　　　　　講演内容
    ============================================*/

    .content h3 {
        font-size: clamp(18px, 3vw, 30px);
        border-bottom: 4px solid #0269b7;
    }

    .content h4 {
        font-size: clamp(20px, 3.5vw, 34px);
        margin: 2% auto 1% auto;
        text-align: left;
    }

    .content p {
        font-size: clamp(14px, 2vw, 20px);
    }

    .content>div:not(:last-of-type) {
        margin-bottom: clamp(60px, 7vw, 100px);
    }

    .content dl dd {
        font-size: clamp(12px, 1.5vw, 18px);
    }

    .content dl dd span {
        font-size: clamp(18px, 2vw, 24px);
        line-height: 1em;
        display: inline-block;
        margin-bottom: 5%;
    }

    .cast_box {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    .cast_box dl {
        width: 24%;
    }

    .cast_box dl:not(:last-of-type) {
        margin-bottom: 0;
    }

    .content dl dt {
        width: 100%;
    }

    .content dl dd {
        padding-top: 8%;
    }


    .content_1 dl {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
    }

    .content_1 dl dt {
        width: fit-content;
        margin: 0;
        order: 2;
    }

    .content_1 dl dd {
        padding-top: 0;
        margin-right: 7%;
    }

    .content_2 .cast_box,
    .content_4 .cast_box {
        justify-content: center;
    }

    .content_2 .cast_box dl:not(:last-of-type),
    .content_4 .cast_box dl:not(:last-of-type) {
        margin-right: 5%;
    }

    .content_1 dl {
        margin-top: 5%;
    }

    .content_4 h3 {
        border-bottom: 4px dotted #0269b7 !important;
    }

    .content_4 dl {
        margin-top: 0;
    }


    .cast_box {
        margin-top: 5%;
    }
    
    /* =========================================
        　　　　　　　　予約方法
    ============================================*/

    .reserve p {
        font-size: clamp(18px, 2vw, 22px);
    }

    .reserve div {
        width: 80%;
        margin: 5% auto 0 auto;
        min-width: 700px;
    }

    .reserve dl {
        padding: 2% clamp(15px, 1.5vw, 50px);
        justify-content: space-between;
    }

    .reserve dl dt {
        font-size: clamp(14px, 1.5vw, 18px);
    }

    .reserve dl dt span {
        font-size: clamp(14px, 2vw, 22px);
    }

    .reserve dl dd {
        margin-left: 3%;
        font-size: clamp(14px, 2vw, 22px);
    }

    .reserve ul {
        margin:  6% 0;
        font-size: clamp(18px, 2vw, 24px);
        line-height: 1.7em;
    }

    .reserve ul i {
        text-decoration-thickness: 3px;
    }


    /* =========================================
        　　　　　　　　LBSとは
    ============================================*/


    .lbs {
        font-size: clamp(16px, 2vw, 22px);
    }

    .lbs dl dt p {
        width: 10%;
    }

    .lbs dl dd {
        line-height: 1.8em;
    }

    /* =========================================
        　　　　　　　　お問い合わせ
    ============================================*/

    .contact dl {
        font-size: clamp(16px, 4vw, 22px);
    }

    .contact dl dt {
        margin-bottom: 2%;
    }

    .contact a {
        transition-duration: .2s;
    }

    .contact a:hover {
        opacity: .7;
    }


}