main {
    margin:auto;
}
.sub_header{
    width:100%;
}
.sub_header .visual{
    width:100%;
    height: 300px;
    overflow: hidden;
}
.sub_header .visual img{
    width:100%;
    height: 300px;
    object-fit: cover;
}

.sub_main{
    width:100%;
    padding:var(--section-margin) 0;
}

h2.title.sub{
    text-align: center;
    line-height: 140%;
}

.sub_main h3.title{
    width:100%;
    background: #e7e7e7;
    border-left: 5px solid var(--brand-color);
    font-size:2.4rem;
    padding: 10px 2%;
    margin:0 0 30px;
}
.sub_main .contents{
    width:100%;
    padding:0 2%;
    margin-bottom:var(--section-margin)
}
.sub_main .contents:last-child{
    margin-bottom: 0;
}



.movie_wrap{
    width:100%;
}
.movie_wrap ul{
    width:100%;
}
.movie_wrap ul li{
    width:100%;
    background: #FFF;
    padding:var(--section-margin) 0;
}
.movie_wrap ul li h3{
    width:100%;
    font-size: 2.4rem;
}
.movie_wrap ul li:nth-child(2n-1){
    width:100%;
    background:var(--brand-color)
}

section#price {
    padding-bottom: 0;
}

.price_wrap{
    width:100%;
    background: var(--brand-color);
    padding-top: var(--section-margin);
    padding-bottom: var(--section-margin);
    position: relative;
    z-index: -2;
}

.price_wrap ul{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 60px;
    margin-bottom: 90px;
}

.price_wrap ul li{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    background-color: #FFF;
    border: 1px solid var(--font-color);
    padding-top: 3rem;
    padding-bottom: 3rem;
    color: var(--font-color);
    border-radius: 30px;
    font-weight: 700;
    position: relative;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2); /* 右下に影を追加 */
}
.price_wrap ul li::after {
    content: '';
    position: absolute;
    top: 10px; /* 下に30pxずらす */
    left: 10px;
    width: 100%;
    height: 100%;
    background: #FFF; /* 黒の背景 */
    border-radius: 30px;
    z-index: -1; /* 背景として表示するために後ろに配置 */
    border: 1px solid var(--font-color);
  }
.price_wrap ul li .box_wrap01{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    padding: 0 4% 3rem 4%;
    
    border-bottom: 1px solid var(--font-color);
    align-items: center;
}
.price_wrap ul li .box_wrap01 .title{
    width:50%;
    text-align: left;
    font-size: 4.8rem;
    
}
.price_wrap ul li .box_wrap01 .minute{
    width:20%;
    text-align: center;
    font-size: 3.2rem;
    background: var(--font-color);
    color: #FFF;
    line-height: 1.8;
    border-radius: 50px;
}
.price_wrap ul li .box_wrap01 .price{
    width:30%;
    text-align: right;
    font-size: 4.8rem;

}
.price_wrap ul li .box_wrap01 .price span{
    font-size: 1.8rem;
}
.price_wrap ul li .box_wrap02{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    padding: 20px 4%;
}
.price_wrap ul li .box_wrap02 p{
    font-size: 1.8rem;
    color: var(--font-color);
    text-align: left;
}
.price_wrap .attention{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    background-color: #FFF;
    padding-top: 3rem;
    padding-bottom: 3rem;
    padding: 6rem 3rem;
    color: var(--font-color);
    font-weight: 700;
    box-sizing: border-box;
    position: relative;

}
.price_wrap .attention img.icon_attention{
    width: 80px;
    position: absolute;
    top:-40px;
    left: 50%;
    transform: translateX(-50%);
}
section#gallery {
    padding-bottom: 0;
}
.gallery_wrap ul{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 30px 20px;
}

.gallery_wrap ul li{
    width: calc((100% - 60px) / 4);
    }

.gallery_wrap ul li img{
    width: 100%;
    height: 300px;
    object-fit: cover;
}
.gallery_wrap ul li p.date{
    width: 100%;
    font-size: 1.4rem;
    margin:0;
}
.gallery_wrap ul li p.title{
    width: 100%;
    font-size: 1.6rem;
}
#contact{
    width: 100%;
    position: relative;
}

.contact_wrap img.mochief{
    width:300px;
  position: absolute;
  right:0;
  bottom: 0;

}

.contact_form{
    background: var(--back-gray);
    padding:var(--section-margin) 80px;
}
table.CF7_table{
	width:80%;
	margin:0 auto;
	border: 1px solid #e5e5e5;
}

table.CF7_table tr{
	border-top: 1px solid #e5e5e5;
}

.single .entry-content table.CF7_table,
.page .entry-content table.CF7_table{
	display:table;
}

/*入力欄*/
.CF7_table input, .CF7_table textarea {
	border: 1px solid #d8d8d8;
}

.CF7_table ::placeholder {
	color:#797979;
}

/*「必須」文字*/
.CF7_req{
	font-size:1.0rem;
	padding: 5px;
	background: var(--brand-color);
	color: #fff;
	border-radius: 3px;
	margin-right:1em;
}

/*「任意」文字*/
.CF7_unreq{
	font-size:1.0rem;
	padding: 5px;
	background: #4CB0F4;
	color: #FFF;
	border-radius: 3px;
	margin-right:1em;
}
.contact_form input[type="checkbox"] {
    width: auto;
    
}
/* タイトル列 */
@media screen and (min-width: 768px){
	.CF7_table th{
	width:30%;/*横幅*/
	background-color:#ebedf5;/*ブルーグレー*/
    text-align: left;
    vertical-align: middle;
    padding:30px 20px
	}
    .CF7_table td{
        padding:30px 20px;
        background: #FFF;
    }
    .wp-block-gallery.wp-block-gallery-1{
       margin: 0 0 0.5rem;
    }
}

/* レスポンシブ */
@media screen and (max-width: 768px){
	table.CF7_table{
	width:95%;
	}
	.CF7_table tr, .CF7_table td, .CF7_table th{
	display: block;
	width: 100%;
	line-height:2.5em;
    text-align: left;
	}
	.CF7_table th{
	background-color:#ebedf5;
	}
}

/* 「送信する」ボタン */
.wpcf7 input.wpcf7-submit {
	background-color: var(--brand-color);
        border: 0;
        color: #fff;
        font-size: 1.2em;
        font-weight: bold;
        margin: 0 auto;
        width: auto;
        display: block;
        padding: 20px 60px;
        border-radius: 10px;
}

.CF7_btn{
	text-align:center;
	margin-top:20px;
}

.wpcf7-spinner{
	width:0;
	margin:0;
}

.contact-bottom {
    margin-top: 160px;
}