@charset "utf-8";
/* CSS Document */
/*トップぺージ*/
.top h2{
    font-weight: normal;
    text-align: center;
}
.top-img{
    width: 100%;
    height: 100vh;
    margin: 0 auto;
    background-image: url("../images/index/top-img.jpg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center bottom;
    padding-top: 50px;
    position: relative;
}
.top-read{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 100%;
    text-align: center;
    color: #ffffff;
}
.top-read p{
    font-size: 20px;
    line-height: 32px;
    margin-top: 50px;
}
.top .msg{padding:120px 0;}
.top .msg .txt .main{
    font-size: 30px;
    line-height: 40px;
}
.top .msg .txt .sub{
    margin-top: 20px;
    font-size: 17px;
    font-weight: bold;
    line-height: 35px;
}
.top .bk-1{
    background-image: url("../images/index/top-bk1.png");
    padding: 50px 0 100px;
}
.top .service{margin-top: 50px;}
.top .service-content{
    color: #ffffff;
    padding: 20px;
    height: 355px;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
}
.top .service-content .txt{
    position: absolute;
    bottom: 20px;
    left: 20px;
}
.top .service-content .txt h3{
    margin-bottom: 20px;
    font-weight: normal;
}
.top .service-content.service1{background-image: url("../images/index/type1.png");}
.top .service-content.service2{background-image: url("../images/index/type2.png");}
.top .service-content.service3{background-image: url("../images/index/type3.png");}
.top .service-content.service4{background-image: url("../images/index/type4.png");}
.top .party-flow{
    padding: 100px 0 80px;
    display: flex;
    justify-content: flex-end
}
.top .party-flow-con{max-width: 1540px;}
.top .party-flow .party-flow-con img{width: 100%;}
.top .party-flow .party-flow-con .link-btn{
    padding: 15px;
    border-radius: 50px;;
    box-shadow: 0 0.75rem 1.5rem rgba(29, 23, 22, .05);
    border: 1px solid #e5e5e5;
    margin: 30px auto;
    text-align: center;
    font-size: 18px;
    font-weight: bold;
}
.top .party-flow .party-flow-con .txt{
    display: flex;
    align-items: center;
    margin-top: 20px;
}
.top .party-flow .party-flow-con .txt p{
    margin-left: 25px;
    font-size: 18px;
    line-height: 30px;
}
.top .osusume{
    padding: 80px 0;
    background-image: url("../images/index/top-bk2.png");
}
.top .osusume h2 span{color: #ff790d;}
.top .osusume .osusume-con{margin: 50px 0;}
.top .osusume .osusume-con div{padding: 0 10px;}
.top .osusume .osusume-con h3{margin: 20px 0;}
.top .osusume .msg{
    background-color: #ffffff;
    border-radius: 25px;
    padding: 30px;
    box-shadow: 0 0.75rem 1.5rem rgba(18, 38, 63, .03);
    border: 1px solid #eeeeee;
}
.top .osusume .msg p{
    text-align: center;
    font-size: 30px;
    line-height: 45px;
    font-weight: bold;
}
.item-con{
    background-color: #f1f1f1;
    position: relative;
    padding-bottom: 50px;
}
.item-con .img{
    position: absolute;
    width: 1550px;
    height: 362px;
    right: 0;
    top: 200px;
    background-image: url("../images/index/item.png");
    background-size: cover;
}
.item h2{
    padding-top: 50px;
    text-align: center;/*必要です*/
}
.item h2 span{margin-left: 10px;}
.item .item-list{margin-top: 472px;}
.item .item-list img{margin: -30px 0 20px;}
.item .item-list p{
    font-size: 16px;
    font-weight: bold;
}
.item .item-list .col-4{
    border-left: 2px solid #6e6e6e;
    padding-bottom: 30px;
}
.item .item-list .col-4:last-child{border-right: 2px solid #6e6e6e;}
.top .top-f-msg{padding: 70px 0 100px;}
.top .top-f-msg h2{margin-bottom: 70px;}
.top .top-f-msg .top-f-msg-con div {width: 30%;}
.top .top-f-msg .top-f-msg-con h3{
    padding-bottom: 10px ;
    margin-bottom: 10px;
    border-bottom: 1px dotted #000000;
}
.top .top-f-msg .top-f-msg-con h4{
    font-size: 18px;
    margin-bottom: 10px;
}
.top .inq-bna a,
.top .inq-bna h2{
    color: #ffffff;
    text-align: left;
    font-weight: bold;
}
.top .inq-bna .f-inq-bna{background-image: url("../images/inq-img.png");}
/*下層共通*/
p.read{
    font-size: 20px;
    line-height: 32px;
    font-weight: bold;
}
.page-img{
    width: 100%;
    height: 50vh;
    margin: 0 auto;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center bottom;
    padding-top: 50px;
    position: relative;
}
.page-img h2{
    font-size: 40px;
    color: #ffffff;
    position: relative;
    text-align: center;
    font-weight: normal;
    margin-top: 100px;
}
.page-img h2::after{
    content: '';
    position: absolute;
    bottom: -10px;
    display: inline-block;
    width: 60px;
    height: 2px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    background-color: #ffffff;
}
/*私たちについて*/
.page-img.about{background-image: url("../images/about/top-img.png");}
.about .event{padding: 70px 0;}
.about .event h3{
    margin-top: 50px;
    font-weight: normal;
    display: flex;
    align-items:flex-end;
    justify-content:center;
    position: relative;
}
.about .event h3 img{margin-right: 3px;}
.about .event h3:before, .about .event h3:after {
    content: '';
    position: absolute;
    top: 20%;
    display: inline-block;
    width: 40px;
    height: 10px;
    border-top: solid 1px black;
    border-bottom: solid 1px black;
}
.about .event h3:before {
    left:20%;
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
}
.about .event h3:after {
    right: 20%;
    -webkit-transform: rotate(-60deg);
    transform: rotate(-60deg);
}
.about .event .event-con{margin: 50px 0 100px;}
.about .event .event-con h4{
    margin-top: 30px;
    font-size: 18px;
}
.about .item .item-con{background-color: #ffffff;}
.about .preparation{text-align: center;}
.about .preparation h2{margin: 50px 0 30px;}
.about .preparation .preparation-con{
    margin: 50px 0 30px;
    text-align: left;
}
.about .preparation .preparation-con div{padding: 20px 50px;}
.about .preparation .preparation-con .preparation-con1{background-color: #fee4e4;}
.about .preparation .preparation-con .preparation-con2{background-color: #f1bfbf;}
.about .preparation .preparation-con .preparation-con3{background-color: #f09999;}
.about .preparation .preparation-con div h3{margin-bottom: 20px;}
.about .preparation .preparation-con div ul{
    list-style-type:disc;
    font-size: 18px;
    line-height: 32px;
}
.about .support{
    background-image: url("../images/about/bk.png");
    padding: 50px 0;
    margin-top: -30px;
}
.about .support .inner{
    background-image: url("../images/about/bk-text.png");
    background-repeat: no-repeat;
    background-position: 0 100px;
}
.about .support h2{margin-bottom: 50px;}
.about .support .sub-ttl{
    font-size: 24px;
    font-weight: bold;
    padding: 5px 30px;
    border: 1px solid #c9c9c9;
    width: fit-content;
    margin: 0 auto 50px;
}
.about .support .support-con{margin-top: 50px;}
.about .support .support-con .circle{width: 20%;}
.about .support .support-con .circle-in{
    border-radius: 50%;
    width: 100%;
    padding-top: 100%;
    border: 5px solid #cba95b;
}
.about .support .support-con .arrow{width: 5%;}
.about .support .support-con .square{
    width: 21%;
    border: 5px solid #cba95b;
    border-radius: 50%;
}
.about .support .support-con .square-in {
    position: relative;
    padding-top: 100%;
    padding-top: 100%;height: 0;
}
.about .support .support-con .square-in h3,
.about .support .support-con .square-in p {
    position: absolute;
    left: 0;
    right: 0;
    margin: 0;
    text-align: center;
}
.about .support .support-con .square-in h3{
    top: 15%;
    color: #cba95b;
    font-size: 40px;
    line-height: 40px;
}
.about .support .support-con .square-in.after-follow h3{
    font-size: 36px;
    top: 10%;
}
.about .support .support-con .square-in p{bottom: 20%;}
.about .how .inner{
    padding: 70px 20px;
    font-weight: bold;
}
.about .how .inner p{
    font-size: 26px;
    line-height: 36px;
}
.about .how .d-flex div{
    box-shadow: 0 0.75rem 1.5rem rgba(29, 23, 22, .05);
    border: 1px solid #e5e5e5;
    padding: 15px;
    text-align: center;
    width: 60%;
    border-radius: 10px;
    background-color: #ffffff;
    margin-top: -10px;
}
.about .how .msg{margin-top: 50px;}
/*サービス内容について*/
.page-img.service{background-image: url("../images/service/top-img.png");}
.service .service-read{padding: 70px 0;}
.service .service-read .logo{margin-bottom: 20px;}
.service .service-read .sub-txt{
    font-size: 16px;
    font-weight: bold;
}
.service .service-read .servicettl-bana{margin: 50px 0;}
.service .service-read h2{margin-bottom: 50px;}
.service .service-con{margin-bottom: 50px;}
.service .service-con .service-txt{
    box-shadow: 0 0.75rem 1.5rem rgba(29, 23, 22, .05);
    border: 1px solid #e5e5e5;
    background-color: #f5f5ea;
    border-right: 10px;
    padding: 25px 50px 15px;
    border-radius: 20px;
    width: 70%;
}
.service .service-con .service-txt h3{margin: 15px 0;}
.service .service-con .service-txt p{
    font-size: 16px;
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px dotted #000000;
}
.service .service-con .service-txt ul{
    display: flex;
    flex-wrap: wrap;
}
.service .service-con .service-txt li{
    margin-right: 20px;
    padding: 10px;
    border-radius: 10px;
    background-color: #cfb199;
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 10px;
}
.service .service-con .service-img{width: 30%;}
.service .service-con .service-img img{width: 100%;}
.service .service-con .service-img.right{margin-left: -20px;}
.service .service-con .service-img.left img{
    margin-left: 20px;
    z-index: 10;
    position: relative;
}
.service .faq-bg{
    padding: 100px 50px;
    clip-path: polygon(0 100px, 100% 0, 100% calc(100% - 100px), 0 80%);
    background-color: #d2cbc4;
    margin-top: 50px;
}
.service .faq-bg h2{margin: 30px 0;}
.service .faq-con{margin:70px 0 200px;}
.service .faq-con .accordion-area{list-style: none;}
.service .faq-con .accordion-area li{
    margin-bottom: 20px;
    background-color: #ffffff;
}
.service .faq-con .accordion-area h3 span{position: relative;}
.service .faq-con .accordion-area h3 span::before{
    position: absolute;
    content: "";
    background-image: url("../images/service/faq-icon.png");
    top: 50%;
    transform: translateY(-50%);
    left: -50px;
    width: 20px;
    height: 18px;
}
.service .faq-con h3 {
    position: relative;
    cursor: pointer;
    font-weight: normal;
    padding: 15px 40px 15px 90px;
    transition: all .5s ease;
}
.service .faq-con h3::before,
.service .faq-con h3::after{
    position: absolute;
    content:'';
    width: 15px;
    height: 2px;
    background-color: #333;  
}
.service .faq-con h3::before{
    top:48%;
    right: 15px;
    transform: rotate(0deg);
}
.service .faq-con h3::after{    
    top:48%;
    right: 15px;
    transform: rotate(90deg);
}
.service .faq-con h3.close::before{transform: rotate(180deg);}
.service .faq-con h3.close::after{display: none;}
.service .faq-con .box {
    display: none;
    padding:15px 30px;
    border-top: 1px solid #dddddd;
    font-size: 16px;
}
/*当日の流れ*/
.page-img.party{background-image: url("../images/party/top-img.png");}
.party .party-read{
    padding: 70px 0 50px;
    text-align: center;
}
.party .party-flow.tab-sp-flow{display: none;}
.party .party-read img{margin-bottom: 50px;}
.party .party-flow .inner{padding: 0 135px 165px;}
.party .party-flow .party-flow-con{width: 40%;}
.party .party-flow .time-line{width: 20%;}
.party .party-flow .time-line .time-ttl img{margin-bottom: 20px;}
.party .party-flow .left-party-flow{margin-top: 80px;}
.party .party-flow .right-party-flow{margin:270px 0 0 20px;}
.party .party-flow .party-flow-panel{
    width: 95%;
    margin-top: 41px;
    position: relative;
}
.party .party-flow .party-flow-panel .time-img{
    position: absolute;
    bottom: 80px;
}
.party .party-flow .party-flow-panel h4{
    font-weight: normal;
    margin-top: 10px;
    font-size: 14px;
}
.party .party-flow .left-party-flow .party-flow-panel .time-img{right: -160px}
.party .party-flow .right-party-flow .party-flow-panel .time-img{left: -160px}
.party .party-flow .party-flow-panel h3{
    margin: 15px 0 0;
    position: relative;
}
.party .party-flow .party-flow-panel h3::before,
.party .party-flow .party-flow-panel h3::after{
    position: absolute;
    content: "";
    top: 50%;
    transform: translateY(-50%);
}
.party .party-flow.pc-flow .left-party-flow .party-flow-panel.last-panel::after{
    bottom: -55px;
    right: -111px;
}
.party .party-flow.pc-flow .left-party-flow .party-flow-panel.last-panel::after,
.party .party-flow .party-flow-panel::before,
.party .party-flow .left-party-flow .party-flow-panel.last-panel .txt::before{
    position: absolute;
    content: "";
    height: 90px;
    width: 1px;
    background-color: #000000;
}
.party .party-flow .party-flow-panel::before{top: -70px;}
.party .party-flow .left-party-flow .party-flow-panel.last-panel .txt::before{
    top: 120px;
    right: -111px;
}
.party .party-flow .party-flow-panel.first-panel::before{display: none;}
.party .party-flow .left-party-flow .party-flow-panel::before{right: -111px;}
.party .party-flow .right-party-flow .party-flow-panel::before{left: -111px;}
.party .party-flow .party-flow-panel h3::before{
    height: 21px;
    width: 21px;
    background-image: url("../images/party/circle.png");
}
.party .party-flow .party-flow-panel h3::after{
    background-color: #000000;
    width: 68px;
    height: 1px;
}
.party .party-flow .left-party-flow .party-flow-panel h3::before{right: -121px;}
.party .party-flow .right-party-flow .party-flow-panel h3::before{left: -121px;}
.party .party-flow .left-party-flow .party-flow-panel h3::after{right: -84px;}
.party .party-flow .right-party-flow .party-flow-panel h3::after{left: -84px;}
.party .party-flow .left-party-flow .party-flow-panel.last-panel p.txt{position: relative;}
.party .party-flow .left-party-flow .party-flow-panel.last-panel .party-end{
    position: absolute;
    bottom: -135px;
    right: -185px;
}
.to-other-page h2{
    font-size: 30px;
    margin-bottom: 50px;
}
.to-other-page .to-page{
    width:48%;
    margin: 50px 0;
    background-size: cover;
    background-position: center center;
    position: relative;
}
.to-other-page .to-page h3{
    position: absolute;
    bottom: 70px;
    left: 50%;
    width: 100%;
    transform: translateX(-50%);
}
.to-other-page .to-page p{
    position: absolute;
    bottom: 35px;
    left: 50%;
    width: 100%;
    transform: translateX(-50%);
    font-size: 16px;
}
.to-other-page .to-page h3{
    font-size:28px;
    position: absolute;
}
.to-other-page a{
    color: #ffffff;
    width: 100%;
    height: 320px;
    display: block;
}
.to-other-page .to-page.to-service{background-image: url("../images/party/to-service.png"); }
.to-other-page .to-page.to-flow{background-image: url("../images/party/to-flow.png");}
.to-other-page .to-page.to-party{background-image:url( "../images/flow/to-party.png");}
/*ご依頼までの流れ*/
.page-img.flow{background-image: url("../images/flow/top-img.png");}
.flow .flow-read{padding: 70px 0 0;}
.flow .flow-read h2{
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 3px solid #c7bc9d;
}
.flow .flow-read p,
.flow .flow-con .flow-panel .txt p{
    font-size: 18px;
    line-height: 30px;
    font-weight: bold;
}
.flow .flow-con .flow-panel .txt p{font-weight: normal;}
.flow .flow-con .inner{padding: 0 100px 50px;}
.flow .flow-con .flow-ttl{margin:50px 0;}
.flow .flow-con .flow-panel{
    box-shadow: 0 0.75rem 1.5rem rgba(29, 23, 22, .05);
    border-radius: 20px;
    border: 1px solid #e5e5e5;
    padding: 50px 20px 50px 10px;
    margin-top: -10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.flow .flow-con .flow-panel .txt-area{width: 80%;}
.flow .flow-con .flow-panel .ttl{width: 15%;}
.flow .flow-con .flow-panel .img{width: 20%;}
.flow .flow-con .flow-panel .txt p{margin-top: 40px;}
.flow .flow-con .arrow{margin: -30px 0 0 30px;}
/*会社概要*/
.company{padding: 70px 0;}
.company dl{
    display: flex;
    font-size: 16px;
    padding: 20px 0;
    border-bottom: 1px dotted #000000;
}
.company dt{
    width: 20%;
    padding-left: 40px;
}
/*個人情報保護方針*/
.privacy{padding: 70px 0;}
.privacy div{
    margin-bottom: 40px;
    font-size: 16px;
}
.privacy div h3{
    border-bottom: 1px dotted #000000;
    padding-bottom: 5px;
    margin-bottom: 15px;
}
.privacy ul {margin: 10px 0 20px 20px;}
.privacy ul.decimal {list-style-type: decimal;}
.privacy ul.disc {list-style-type: disc;}
/*お問い合わせ*/
.contact{padding: 70px 0;}
.contact p,
.contact .privacy-policy-text ul{
    font-size: 16px;
    line-height: 26px;
}
.contact .contactform{
    max-width: 800px;
    width: 100%;
    margin: 0 auto;
    padding-top: 40px;
}
.contactform table {width: 100%;}
.contact .contactform tr {border-bottom: 1px solid #cccccc;}
.contactform .no-border {border-bottom: none !important;}
.contactform .contactform-flex{
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.contactform th {
    font-weight: normal;
    width: 30%;
    padding: 30px 10px 30px 0;
    text-align: left;
}
.contactform td {padding: 30px 0 30px 20px;}
.contact .require {
    background-color: #ed5e5e;
    color: #ffffff;
    font-size: 12px;
    padding: 3px 10px;
    font-style: normal;
    float: right;
    vertical-align: middle;
}
.contact .privacy-policy {
    border-top: 3px solid #c7bc9d;
    background-color: #ffffff;
    max-width: 800px;
    width: 100%;
    margin: 10px auto;
    padding: 30px 0;
}
.contact .privacy-policy .privacy-policy-title{
    text-align: center;
    margin: 50px 0 20px; 
}
.contact .privacy-policy-text {
    border: 1px solid #b9b9b9;
    height: 140px;
    overflow-y: scroll;
    padding: 20px 20px 0 20px;
    margin-bottom: 30px;
}
.contact .privacy-policy-text div{margin-bottom: 20px;}
.contact .privacy-policy-text ul{margin: 10px 0 20px 20px;}
.contact .privacy-policy-text ul.decimal{list-style-type:decimal;}
.contact .privacy-policy-text ul.disc{list-style-type:disc;}
.contact .btnArea{
    display: flex;
    justify-content: center;
    text-align: center;
    margin: 50px auto 0;
}
.contact .btnArea input[name=submitBack], 
.contact .btnArea input[name=submitConfirm], 
.contact .btnArea input[name=submitSubmit] {
    padding: 0;
    width: 280px;
    height: 50px;
    border: 0;
    border-radius: 5px;
    border: 1px solid #cccccc;
    margin: 0 10px 10px 10px;
}
.contact .btnArea .gobackbtn{
    padding: 0;
    width: 280px;
    height: 50px;
    border: 0;
    border-radius: 5px;
    border: 1px solid #cccccc;
    margin: 0 10px 10px 10px;
    cursor: pointer;
}
.contact .btnArea .sendbtn{
    padding: 0;
    width: 280px;
    height: 50px;
    border: 0;
    border-radius: 5px;
    border: 1px solid #cccccc;
    color: #ffffff;
    background-color: #a29782;
    margin: 0 10px 10px 10px;
    cursor: pointer;
}
.contact .btnArea input[name=submitConfirm] {
    color: #000000;
    display: block;
    border: 1px solid #cccccc;
    cursor: pointer;
}
.contact .btnArea .submitConfirm.disabled {
    background-color: #dedede;
    color: #ffffff;
    cursor: default;
}
.contact .btnArea input[name=submitSubmit] {
    background-color: #ffffff;
    border: 1px solid #cccccc;
}
.contact .checkbox-btns input[type=checkbox] {display: none;}
.contact .checkbox-btns .checkbox-label {
    box-sizing: border-box;
    cursor: pointer;
    display: inline-block;
    padding: 0px 30px;
    position: relative;
    width: auto;
    margin-left: 15px;
}
.contact .checkbox-btns .checkbox-label::before {
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 10px;
    content: '';
    display: block;
    height: 20px;
    width: 20px;
    position: absolute;
    left: -1px;
    top: 50%;
    transform: translateY(-50%);
}
.contact .checkbox-btns .checkbox-label::after {
    position: absolute;
    content: '';
    display: block;
    height: 12px;
    width: 12px;
    border-radius: 10px;
    background-color:#c7bc9d;
    left: 4px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    
}
.contact .checkbox-btns input[type=checkbox]:checked + .checkbox-label::before {border-color: #666;}
.contact .checkbox-btns input[type=checkbox]:checked + .checkbox-label::after {opacity: 1;}
.contact h2 {
    margin-bottom: 15px;
    padding-bottom: 15px;
    border-bottom: 3px solid #c7bc9d;
}
/*タブレット*/
@media screen and (max-width: 1280px){
    p.read{font-size: 2.4rem;}
    .top-img{
        height: 60vh;
        padding-top: 0;
    }
    .top .msg{padding: 70px 0;}
    .top .msg .msg-logo img{width: 80%;}
    .page-img h2{
        margin-top: 0;
        top: 50%;
    }
    .page-img{padding-top: 0;}
    .top .msg .txt .main{font-size: 2.7rem;}
    .top .msg .txt .sub{
        font-size: 1.8rem;
        font-weight: normal;
        line-height: normal;
    }
    .top .service-content .txt{left: 10px;}
    .top .service-ttl h2{
        font-size: 2.7rem;
        font-weight: bold;
    }
    .top .party-flow .party-flow-con .txt p{
        font-size: 1.6rem;
        line-height: normal;
        padding-right: 10px;
    }
    .top .party-flow .party-flow-con .txt .tab-none{display: none;}
    .top .party-flow .party-flow-con .link-btn{font-size: 1.6rem;}
    .top .osusume img{width: 100%}
    .top .osusume .osusume-con p br{display: none;}
    .top .osusume .msg p{
        font-size: 2.8rem;
        line-height: 34px;
    }
    .page-img{height: 25vh;}
    .item .item-list p{
        font-size: 1.8rem;
        line-height: 26px;
    }
    .item .item-list img{width: 100px;}
    .item .item-list img.long-ttl{
        width: 150px;
        margin: -25px 0 20px;
    }
    .top .top-f-msg{padding: 50px 0;}
    .top .top-f-msg h2{margin-bottom: 50px;}
    .top .top-f-msg .top-f-msg-con h3{font-size: 2.1rem;}
    .top .top-f-msg .top-f-msg-con h4{font-size: 1.9rem;}
    .about .event{padding: 30px 0 0;}
    .about .event h3{font-size: 2.4rem;}
    .about .event h3:before{left: 0;}
    .about .event h3:after{right: 0;}
    .about .event .event-con h4{font-size: 2rem;}
    .about .preparation .preparation-con div{padding: 20px 30px;}
    .about .preparation .preparation-con div ul{
        font-size: 1.8rem;
        line-height: 28px;
        margin-left: 10px;
    }
    .about .preparation img{width: 15%;}
    .about .support .sub-ttl{font-size: 20px;}
    .about .support .support-con .square-in p{
        font-size: 1.8rem;
        line-height: 28px;
    }
    .about .support .support-con .square-in h3{
        font-size: 3.6rem!important;
        line-height: 36px;
    }
    .about .support .square-in .after-follow h3{
        font-size: 3rem;
        line-height: 30px;
    }
    .about .how .d-flex div{width: 70%;}
    .about .how .inner p{font-size: 2.6rem;}
    .service .service-read .sub-txt{line-height: 26px;}
    .service .faq-con .box{font-size: 2rem;}
    .service .faq-bg{clip-path: polygon(0 70px, 100% 0, 100% calc(100% - 100px), 0 85%);}  
    .service .faq-con{margin: 70px 0 110px;}
    .party .party-flow .inner{padding: 0 0 145px;}
    .party .party-flow .left-party-flow{margin-top: 83px;}
    .party .party-flow .right-party-flow{margin: 271px 0 0 20px;}
    .party .party-flow .party-flow-panel.last-panel::after{bottom: 55px;}
    .party .party-flow .right-party-flow .party-flow-panel.last-panel .time-img{bottom: 115px;}
    .party .party-flow .party-flow-panel p{font-size: 1.7rem;}
    .to-other-page h2{margin-top: 10px;}
    .flow .flow-con .inner{padding: 0 50px;}
    .flow .flow-read p{
        font-size: 2rem;
        line-height: 28px;
        font-weight: normal;
    }
    .flow .flow-con .flow-panel .txt p{
        font-size: 1.6rem;
        line-height: 22px;
    }
    .flow .flow-con .flow-panel .img img{width: 100%;}
    .contactform th,
    .contactform td,
    .contact .checkbox-btns .checkbox-label{font-size: 1.8rem;}
    .contact .privacy-policy-text div h4{
        font-size: 2rem;
        margin: 10px 0;
    }
    .contact p, 
    .contact .privacy-policy-text ul,
    .contact .privacy-policy-text div p{font-size: 1.8rem;}
}
/*タブレットミニ*/
@media screen and (max-width: 850px){
    .about .support .support-con .square-in.after-follow h3{line-height: 28px;}
    .about .support .support-con .square-in p{line-height: 22px;}
    .about .how .d-flex div{width: 85%;}
    .service .service-con .service-txt{
        width: 60%;
        padding: 25px 25px 15px;
    }
    .service .service-con .service-txt h3{
        margin: 10px 0;
        font-size: 2rem;
    }
    .service .service-con .service-txt p,
    .service .service-con .service-txt li{
        font-size: 1.6rem;
        line-height: 20px;
    }
    .service .service-con .service-txt img{width: 50%;}
    .service .service-con .service-img{width: 40%;}
    .service .service-con .service-img.left img{margin-left: 10px;}
    .party .party-flow.pc-flow{display: none;}
    .party .party-flow.tab-sp-flow{display: block;}
    .party .party-flow.tab-sp-flow .d-flex{justify-content: center;}
    .party .party-flow .party-flow-con{width: 50%;}
    .party .party-flow .right-party-flow{margin: 85px 0 0 20px;}
    .to-other-page .d-flex-sp{display: block;}
    .party .party-flow .party-flow-panel::after{bottom: 69px;}
    .party .party-flow .party-flow-panel .time-img{
        position: absolute;
        bottom: 55px;
        left: -125px;
    }
    .party .party-flow .party-flow-panel::before{
        height: 270px;
        width: 1px;
        top: -70px;
        left: -96px;
    }
    .party .party-flow .party-flow-panel.first-panel::before{
        display: block;
        height: 68px;
        top: 109px;
    }
    .party .party-flow .party-flow-panel h3::before{
        position: absolute;
        content: "";
        background-image: url("../images/party/circle.png");
        height: 21px;
        width: 21px;
        top: 50%;
        transform: translateY(-50%);
        left: -108px;
    }
    .party .party-flow .party-flow-panel h3::after{
        left: -40px;
        width: 35px;
    }
    .party .party-flow .party-flow-panel.last-panel::after{
        position: absolute;
        content: "";
        height: 97px;
        width: 1px;
        bottom: -47px;
        left: -96px;
        background-color: #000000;
    }
    .party .party-flow .party-flow-panel.last-panel .party-end{
        position: absolute;
        left: -165px;
        bottom: -125px;
    }
    .to-other-page .to-page{
        width: 100%;
        margin: 30px 0;
        height: 250px;
    }
    .flow .flow-con .flow-panel .ttl{margin-right: 20px;}
    .flow .flow-con .flow-panel .txt p{margin-top: 20px;}
    .flow .flow-con .flow-panel .txt img{width: 100%;}
    .party .party-flow .party-flow-panel.first-panel .party-start{
        position: absolute;
        width: 80px;
        left: -135px;
        top: -30px;
    }
    .party .party-flow .party-flow-panel.first-panel .party-start img{width: 100%;}
    .party .party-flow .party-flow-panel h4{
        font-size: 2.2rem;
        height: 75px;
    }
}
/*スマホ*/
@media screen and (max-width: 767px){
    p.read{
        font-size: 2rem;
        line-height: 28px;
        font-weight: normal;
    }
    .top-read img{width: 100%;}
    .top-read p{
        font-size: 1.6rem;
        line-height: 20px;
        margin-top: 60px;
    }
    .top .msg{padding: 50px 0;}
    .top .msg .msg-logo img{
        width: 30%;
        margin: 0 auto;
    }
    .top .msg .txt{
        text-align: center;
        margin-top: 50px;
    }
    .top .msg .txt .main{
        font-size: 2.4rem;
        line-height: 28px;
    }
    .top .msg .txt .sub{
        font-size: 2rem;
        line-height: 28px;
        font-weight: normal;
    }
    .top .service.d-flex-sp{
        display: flex!important;
        flex-wrap: wrap;
    }
    .top .service-ttl h2{
        font-size: 2.4rem;
        line-height: 3.6rem;
    }
    .top .service-content {
        width: 50%!important;
        height: 230px;
    }
    .top .service-content .txt h3{font-size: 2.4rem;}
    .top .party-flow{padding: 50px 0;}
    .top .party-flow .party-flow-con .ttl{
        width: 40%;
        margin-bottom: 20px;
    }
    .top .party-flow .party-flow-con .txt{flex-direction: column-reverse;}
    .top .party-flow .party-flow-con .txt p{
        margin-left: 0;
        width: 95%;
        margin: 0 auto 30px;
        font-size: 2rem;
        line-height: 28px;
    }
    .top .osusume{padding-top: 50px;}
    .top .osusume img{width: auto;}
    .top .osusume .osusume-con h3{font-size: 2.6rem;}
    .top .osusume .osusume-con div{margin-bottom: 50px;}
    .top .osusume .msg{padding: 15px;}
    .top .osusume .msg p{
        font-size: 2rem;
        line-height: 28px;
    }
    .top .inq-bna a, 
    .top .inq-bna h2{text-align: center;}
    .item h2{
        margin-bottom: 30px;
        padding-top: 0;
    }
    .item-con{padding:30px 0;}
    .item-con .img{
        position: initial;
        width: -webkit-fill-available;
        height: 150px;
        background-position: right;
    }
    .item .item-list{margin-top: 50px;}
    .item .item-list img{
        width:auto;
        margin: 0 0 10px;
    }
    .item .item-list .col-4{
        border-left: none;
        border-bottom: 1px solid #6c6c6c;
        padding-bottom: 15px;
        margin-bottom: 15px;
    }
    .item .item-list img.long-ttl{
        width: auto;
        margin: 0 0 10px;
    }
    .item .item-list .col-4:last-child{border-right: none;}
    .top .top-f-msg h2{margin-bottom: 30px;}
    .top .top-f-msg .top-f-msg-con div{
        width: 100%;
        margin-bottom: 30px;
    }
    .top .inq-bna{padding: 50px 0;}
    .page-img h2{font-size: 3rem;}
    .about .event{padding: 50px 0;}
    .about .preparation h2{margin-top: 0;}
    .about .event h3{
        font-size: 2rem;
        align-items: baseline;
        margin-top: 30px;
    }
    .about .event h3 span{
        font-size:2.8rem;
        font-weight: bold;
    }
    .about .event h3:before, 
    .about .event h3:after{top: 45%;}
    .about .event .event-con{
        display: flex!important;
        flex-wrap: wrap;
        margin: 50px 0;
    }
    .about .event .event-con h4{margin-top: 10px;}
    .about .event .event-con div{
        margin-bottom: 20px;
        width: 50%;
    }
    .about .preparation .preparation-con{margin: 30px 0;}
    .about .preparation img{width: 20%;}
    .about .preparation .preparation-con div h3{
        font-size:2.6rem;
        margin-bottom: 5px;
    }
    .about .preparation .preparation-con div li{
        font-size: 2rem;
        line-height: 28px;
    }
    .about .support h2{line-height: 36px;}
    .about .support .sub-ttl{
        font-size: 2.2rem;
        padding: 10px;
        white-space: nowrap;
    }
    .about .support .support-con{margin-top: 30px;}
    .about .support .inner{background-size: 85%;}
    .about .support .support-con .square{
        width: 45%;
        margin: 0 auto;
    }
    .about .support .support-con .square-in .read{font-size: 2rem;}
    .about .support .support-con .arrow{
        width: 100%;
        margin: 0;
        transform: rotate(90deg);
    }
    .about .how .inner{
        font-size: 1.9rem;
        padding: 50px 0;
    }
    .about .how .inner p{
        font-size: 2rem;
        line-height: 28px;
    }
    .about .how .msg{
        margin-top: 20px;
        line-height: 26px;
        font-weight: normal;
    }
    .about .how .d-flex div{padding: 10px;}
    .service .service-read{padding: 20px 0 30px;}
    .service .service-read .sub-txt{
        font-size: 1.8rem;
        line-height: 26px;
        font-weight: normal;
    }
    .service .faq-bg{
        padding: 50px 0;
        clip-path: polygon(0 50px, 100% 0, 100% calc(100% - 100px), 0 88%);
    }
    .service .service-read h2,
    .service .faq-bg h2{margin-bottom: 36px;}
    .service .service-con .service-txt p{font-size: 1.5rem;}
    .service .service-read .logo,
    .service .service-read .servicettl-bana,
    .faq .servicettl-bana{
        margin: 20px auto;
        width: 80%;
    }
    .service .service-con.reverse{
        display: flex!important;
        flex-direction: column-reverse;
        width: 100%;
    }
    .service .service-con .service-txt{
        width: 100%;
        padding: 15px 15px 30px;
    }
    .service .service-con .service-img{
        width: 90%;
        margin: -25px 10px 0;
    }
    .service .service-con .service-img.right{margin-left: 10px;}
    .service .service-con .service-txt h3 br,
    .service .service-con .service-txt p br{display: none;}
    .service .faq-con h3{padding: 10px 40px 10px 50px;}
    .service .faq-con .box{font-size: 1.6rem;}
    .service .faq-con .accordion-area h3 span::before{left: -35px;}
    .service .faq-con{margin: 50px 0 110px;}
    .party .party-read .logo{
        width: 80%;
        margin: 20px auto;
    }
    .party .party-flow .party-flow-panel h4{font-size: 1.8rem;}
    .party .party-read{padding: 20px 0 50px;}
    .party .party-flow .inner{padding:0 0 135px 0;}
    .party .party-flow.tab-sp-flow .d-flex{justify-content: space-between;}
    .party .party-flow .time-line{width: 13%;}
    .party .party-flow .party-flow-con{width: 75%;}
    .party .party-flow img{width: 100%;}
    .party .party-flow .party-flow-panel{width: 100%;}
    .party .party-flow .party-flow-panel::before{
        left: -63px;
        top: -45px;
        height: 190px;
    }
    .party .party-flow .party-flow-panel h3::before{left: -63px;}
    .party .party-flow .party-flow-panel h3::after{
        width: 25px;
        left: -33px;
    }
    .party .party-flow .right-party-flow .party-flow-panel h3::after{left: -32px;}
    .party .party-flow .party-flow-panel .time-img{
        left: -95px;
        bottom: 115px;
        width: 80px;
        height: auto;
    }
    .party .party-flow .party-flow-panel h3::before{left: -73px;}
    .party .party-flow .party-flow-panel{margin-top: 10px;}
    .party .party-flow .party-flow-panel.last-panel::after{left: -63px;}
    .party .party-flow .party-flow-panel.last-panel .party-end{
        width: 85px;
        left: -94px;
        bottom: -90px;
    }
    .party .party-flow .party-flow-panel.first-panel .party-start{
        width: 60px;
        left: -90px;
    }
    .party .party-flow .party-flow-panel.first-panel::before{top: 70px;}
    .to-other-page h2{
        font-size: 2.2rem;
        line-height: 28px;
        margin-bottom: 25px;
        margin-top: 0;
    }
    .to-other-page .to-page p{font-size: 2rem;}
    .flow .flow-con .arrow img{width: 10%;}
    .flow .flow-con .flow-ttl{margin: 30px 0;}
    .flow .flow-con .inner{padding: 0;}
    .flow .flow-con .flow-panel{
        padding: 15px;
        display: block;
    }
    .flow .flow-con .flow-ttl{width: 90%;}
    .flow .flow-con .flow-panel .txt-area{width: 100%;}
    .flow .flow-con .flow-panel .txt p{margin-top: 10px;}
    .flow .flow-con .flow-panel .img{
        width: 35%;
        margin: 20px auto 0;
    }
    .flow .flow-read h2{
        margin-bottom: 15px;
        padding-bottom: 15px;
    }
    .flow .flow-con .flow-panel .ttl{width: 20%;}
    .flow .flow-con .flow-panel .txt br{display: none;}
    .company,
    .privacy {padding: 50px 0;}
    .privacy div h3{font-size: 2.4rem;}
    .privacy div{
        font-size: 2rem;
        line-height: 28px;
    }
    .company dl{
        display: block;
        padding: 10px 0;
    }
    .company dt{
        width: 100%;
        padding-left: 10px;
        margin-bottom: 10px;
    }
    .company dd{
        width: 100%;
        padding-left: 30px;
    }
    .contact h2{
        font-size: 3rem;
        margin-bottom: 10px;
        padding-bottom: 10px;
    }
    .contactform th, 
    .contactform td {
        display: block;
        width: 100%;
        max-width: 100%;
    }
    .contactform th{
        padding: 0;
        margin: 10px 0;
    }
    .contactform td{
        padding: 0 0 0 20px;
        margin-bottom: 20px;
    }
    .contactform td.no-border-pb{margin-bottom: 0;}
    .contact .privacy-policy .privacy-policy-title{margin: 0 0 20px 0;}
    .contact p,
    .contact .privacy-policy-text ul,
    .contact .privacy-policy-text div p{
        font-size: 1.8rem;
        line-height: 26px;
    }
    .contact .privacy-policy-text div h4{font-size: 2rem;}
}
/*スマホミニ*/
@media screen and (max-width: 380px){
    .about .support .support-con .square-in.after-follow .read{
        bottom: 15%;
        line-height: 18px;
    }
    .party .party-flow .party-flow-panel .time-img{left: -95px;}
}
