/* CSS */

/*  ---------- from ---------- */

.form_title {
    font-size: 150%;
    font-weight: bold;
    letter-spacing: 0.2em;
    text-align: center;
    border: 1px solid #ccc;
    padding: 10px 0;
    border-radius: 50px;
    margin-bottom: 50px;
}

/*  ---------- .structural ---------- */

.structural .main {
    display: flex;
    justify-content: space-between;
    margin-bottom: 60px;
}

.structural .main .visual, .structural .main > .text {
    width: 48%;
}

.sub section#subContainer div.main_box .structural div.main .text h3 {
    text-align: left;
    margin: 0 0 10px;
    font-size: 22px;
    padding: 10px 25px;
}

.sub section#subContainer div.main_box .structural div.main .text > p {
    line-height: 2;
}

.structural .main .visual {
    background: url(20210731_structural_main_bg.jpg)no-repeat;
    background-size: cover;
    text-align: center;
    display: flex;
    align-items: center;
    position: relative;
}

.structural .main .visual .img_box{
    margin: 0 auto;
    padding: 35px 40px;
    background: #fff;
    position: relative;
}

.structural .main .visual .img_box img {
    width: 399px;
    height: auto;
    position: relative;
}

.structural .main .visual .img_box::before {content: "";display: block;position: absolute;background: url(20210731_structural_main_icon.png) no-repeat;width: 79px;height: 81px;left: -20px;top: -20px;}

.sub section#subContainer div.main_box .structural div.main .text h3 span {
    background: linear-gradient(transparent 60%, #ffe432 60%);
    background-position: bottom;
    position: relative;
    padding: 0 0 3px;
}


.sub .kome {
    margin-top: 10px;
    display: block;
    color: #999;
}


.structural .pre .text {
    background: #f7f7f7;
    padding: 20px 15px 20px 200px;
    position: relative;
}

.sub section#subContainer div.main_box .structural .pre .text h4 {
    margin: 0;
    border: 0;
    font-size: 16px;
}

.sub section#subContainer div.main_box .structural .pre .text p {
    line-height: 1.8;
    font-size: 14px;
    margin-bottom: 0;
}

.structural .pre .text::before {
    content: "";
    display: block;
    position: absolute;
    background: url(20210731_structural_img01.png) no-repeat;
    background-size: 100%;
    width: 180px;
    height: 119px;
    left: 0;
    top: -23px;
}


#event.sub section#subContainer div.main_box  .structural div.main .text h3 {
    margin: 30px auto 10px;
    position: relative;
    padding: 15px;
    box-sizing: border-box;
    width: auto;
    display: inline-block;
}


.sub section#subContainer div.main_box .structural div.main .text h3::before, .sub section#subContainer div.main_box .structural div.main .text h3::after {
    content: '';
    width: 15px;
    height: 15px;
    position: absolute;
}

.sub section#subContainer div.main_box .structural div.main .text h3::before {
    border-left: solid 2px #000000;
    border-top: solid 2px #000000;
    top: 0;
    left: 0;
}

.sub section#subContainer div.main_box .structural div.main .text h3::after {
    border-right: solid 2px #000000;
    border-bottom: solid 2px #000000;
    bottom: 0;
    right: 0;
}

body#event section#subContainer .main_box .eventSingle .event_info .detail_box table tr {
    border-right: 1px dotted #ccc;
}

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

body#event section#subContainer .main_box .eventSingle .event_info .detail_box {
    width: 100%;
}

.flex_bottom > div {
    width: 48%;
    margin: 0 auto;
}

.structural .main .point {
    border: 2px solid #ef856d;
    margin-top: 30px;
}

#event.sub section#subContainer div.main_box  .point h4 {
    border: none;
    text-align: center;
    margin: 0;
    background: #ef856d;
    color: #ffea5e;
    font-weight: normal;
    font-size: 110%;
}

.structural .main .point ul {
    padding: 20px 15px;
    text-align: center;
    font-size: 14px;
    display: flex;
    justify-content: space-between;
}

.structural .main .point ul li {
    padding: 0 15px;
    border-right: 1px dashed #ef856d;
    position: relative;
    width: 32%;
}

.structural .main .point ul li:last-child {
    border: 0;
    margin-bottom: 0;
}


.structural .main .point ul li strong {
    font-weight: bold;
    font-size: 15px;
    display: block;
}




@media screen and (max-width: 1100px) {

.structural .main .visual, .structural .main > .text {
    width: 100%;
    /* margin-bottom: 30px; */
}

.structural .main {
    display: block;
}

.structural .main .visual .img_box {
  box-sizing: border-box;
  padding: 20px;
  margin: 50px auto;
}

.structural .main .visual .img_box img {width: 100%;max-width: 100%;}

.structural .main .visual .img_box::before {
    width: 60px;
    background-size: 100%;
    left: -15px;
    top: -30px;
}

.structural .main > .text {
    width: 90%;
    margin: 0 auto;
}

.structural .pre .text::before {
    left: calc( 50% - 90px);
    top: -50px;
}

.structural .pre .text {
    padding: 50px 30px 30px 30px;
    max-width: 380px;
    margin: 30px auto 0;
}

#event.sub section#subContainer div.main_box h4 {margin: 20px auto 0;text-align: center;}


.form_box{
  width:96%;
  margin:100px auto 70px auto;
}

.form_title{
  font-size:150%;
  font-weight:bold;
  letter-spacing:0.2em;
  text-align:center;
  border:1px solid #ccc;
  padding:10px 0;
  border-radius:50px;
  margin-bottom:50px;
}


.flex_bottom {
    width: 90%;
    margin: 0 auto;
}

.flex_bottom > div.pre {
    position: relative;
    top: -45px;
}

#event.sub section#subContainer div.main_box .point h4 {
    width: 100%;
}


}


@media screen and (max-width: 480px) {

    .structural .main .point ul {
        display: block;
        padding: 0px 15px;
    }

    .structural .main .point ul li {
        width: auto;
        border-right: 0;
        border-bottom: 1px dashed #ef856d;
        padding: 10px 0;
    }

    .structural .main .point ul li strong {
        display: inline;
    }

    .flex_bottom > div {
        width: auto;
    }    

  .structural .main .visual .img_box{
    margin: 50px 20px;
  }

    .flex_bottom {
        display: block;
    }

    .flex_bottom > div.pre {
        top: 0;
    }  

}