/* Google fonts */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap');

/* ====================
    common
======================= */
html{
    font-size: 62.5%;
}

body{
    font-size: 1.4rem;
    font-weight: 400;
    color: #000;
    background-color: #fff;
    font-family: 'Noto Sans JP', sans-serif;
}

img{
    width: 100%;
    font-family: '花とちょうちょ';
}

.inner{
    width: 90%;
    max-width: 980px;
    margin: auto;
}

.heading2{
    max-width: 530px;
    width: 75%;
    margin: auto;
}

.announce{
    font-size: 1.23rem;
    text-align: center;
    padding: 5px 0;
    background-color: #f4efcd;
}

.announce .size--lg{
    font-size: 2.3em;
    display: inline-block;
    margin: 0 3px;
    color: #d25a82;
}

.btn{
    width: 90%;
    max-width: 350px;
    border: 1px solid;
    position: relative;
}

.btn::before{
    content: "";
    display: block;
    width: 97%;
    height: 87%;
    border: 1px solid #fff;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: 0.4s ease;
}

.btn:hover{
    opacity: 0.8;
}

.btn.web-btn{
    border-color: #d6bfe8;
    background-color: #d6bfe8;
}

.btn.line-btn{
    border-color: #e2cbd8;
    background-color: #e2cbd8;
}

.btn__link{
    display: block;
    width: 100%;
    height: 100%;
    text-align: center;
    font-size: 1.5rem;
    font-weight: 400;
    color: #000;
    padding: 16px 0;
    position: relative;
}

.btn__link::before{
    content: "";
    display: block;
    width: 6px;
    height: 100%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
    position: absolute;
    top: 0;
    right: 5%;
}

.btn.web-btn .btn__link::before{
    background-image: url('../img/common/arrow_yellow.svg');
}

.btn.line-btn .btn__link::before{
    background-image: url('../img/common/arrow_green.svg');
}

.btn__link span{
    display: inline-block;
}

.btn__link .size--lg{
    font-size: 1.7em;
    margin-right: 5px;
    position: relative;
    z-index: 0;
}

.btn__link .size--lg::before{
    content: "";
    display: block;
    width: 100%;
    height: 3px;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1;
}

.btn.web-btn .btn__link .size--lg::before{
    background-color: #f2e2d0;
}

.btn.line-btn .btn__link .size--lg::before{
    background-color: #cae0bf;
}

.btn__link .size--sm{
    font-size: 0.8em;
}

.text{
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.5em;
}

.bg01{
    background: url('../img/common/bg01.jpg') no-repeat;
    background-position: center;
    background-size: cover;
}

.bg02{
    position: relative;
    z-index: 0;
    background-color: #fff;
}

.bg02::before,
.bg02::after{
    content: "";
    display: block;
    position: absolute;
    background-repeat: no-repeat;
    background-size: 100%;
    z-index: -1;
}

.bg02::before{
    top: 0;
    left: 0;
    background-position: top;
    width: 68.26vw;
    max-width: 600px;
    min-width: 256px;
    height: 61.33vw;
    max-height: 600px;
    min-height: 230px;
    background-image: url('../img/common/bg02-left.png');
}

.bg02::after{
    bottom: 0;
    right: 0;
    width: 91.6vw;
    max-width: 600px;
    min-width: 343px;
    height: 57.33vw;
    max-height: 430px;
    min-height: 215px;
    background-image: url('../img/common/bg02-right.png');
    background-position: bottom;
}

.bg03{
    background: url('../img/common/bg03.jpg') no-repeat;
    background-position: center;
    background-size: cover;
}

.pc{
    display: none;
}

.sp{
    display: block;
}

@media screen and (min-width: 768px){
    .announce {
        font-size: 1.4rem;
    }

    .btn__link {
        font-size: 1.6rem;
    }

    .text{
        font-size: 1.5rem;
    }
    .pc{
        display: block;
    }
    
    .sp{
        display: none;
    }
}

@media screen and (min-width: 1025px){
    .announce {
        font-size: 1.8rem;
        padding: 15px 0;
    }

    .btn__link {
        font-size: 2rem;
        padding: 20px 0;
    }

    .btn__link::before {
        width: 10px;
    }

    .text{
        font-size: 1.6rem;
    }
}

/* ====================
    header
======================= */
.mainvisual{
    position: relative;
}

.heading1{
    font-size: 3.28vw;
    line-height: 1.39em;
    position: absolute;
    top: 1.4%;
    left: 8px;
    color: #d25a82;
}

.header__btn{
    display: flex;
}

#js-container.js-position{
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 100;
}
#js-container{
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 100;
}

.header__btn .btn{
    width: 50%;
    max-width: none;
}

@media screen and (min-width: 1025px){
    .heading1 {
        font-size: 3.4rem;
    }
}

@media screen and (min-width: 768px){
    .heading1 {
        font-size: 2.9rem;
        left: 20px;
    }
}

/* ====================
    welcome
======================= */
.welcome{
    padding: 43px 0 57px;
}

.welcome__text{
    text-align: center;
    margin-top: 21px;
    color: #d25a82;
}

.welcome__content .img-wrap{
    margin: 23px auto 0;
    width: 70%;
    max-width: 537px;
}

@media screen and (min-width: 1025px){
    .welcome{
        padding: 73px 0 87px;
    }

    .welcome__text{
        margin-top: 31px;
        line-height: 2;
    }

    .welcome__content .img-wrap{
        margin-top: 33px;
    }
}

/* ====================
    recommend
======================= */
.recommend{
    padding: 40px 0 55px;
}

.recommend__content{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 18px;
}

.recommend__box{
    width: calc(100% / 2);
    max-width: 384px;
}

.recommend__box:nth-child(n + 3){
    margin-top: 30px;
}

.recommend__box .img-wrap{
    max-width: 82px;
    margin: auto;
}

.recommend__box-text{
    text-align: center;
    margin-top: 7px;
    color: #d25a82;
}

@media screen and (min-width: 1025px){
    .recommend{
        padding: 70px 0 85px;
    }

    .recommend__content {
        margin-top: 60px;
    }

    .recommend__box {
        width: calc(100% / 3);
    }

    .recommend__box:nth-child(3){
        margin-top: 0;
    }
}

/* ====================
    reason
======================= */
.reason{
    padding: 40px 0 55px;
}

.reason__content{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 15px;
}

.reason__box{
    width: 100%;
    max-width: 570px;
    margin: 26px auto 0;
}

.reason__box:first-child{
    margin: 0;
}

.reason__box .img-wrap{
    max-width: 190px;
    margin: auto;
}

.reason__box-text{
    text-align: center;
    font-size: 1.66rem;
    margin-top: 7px;
}

.reason__box-text .text-deco{
    color: #c21457;
    position: relative;
    z-index: 0;
}

.reason__box-text .text-deco::before{
    content: "";
    display: block;
    width: 100%;
    height: 3px;
    background-color: #fff;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1;
}

@media screen and (min-width: 768px){
    .reason__box-text {
        font-size: 1.7rem;
    }
}

@media screen and (min-width: 1025px){
    .reason{
        padding: 70px 0 85px;
    }

    .reason__content {
        margin-top: 60px;
    }

    .reason__box {
        width: calc(100% / 3);
        margin-top: 0;
    }

    .reason__box-text {
        font-size: 1.8rem;
        line-height: 1.7v;
    }
}

/* ====================
    cast
======================= */
.cast{
    padding: 35px 0 50px;
}

.cast__content{
    margin-top: 20px;
}

.cast__content .img-wrap{
    position: relative;
    padding-top: 85px;
    z-index: 0;
}

.cast__content .img-wrap::before{
    content: "";
    display: block;
    position: absolute;
    width: 71%;
    max-width: 365px;
    height: 26.66vw;
    min-height: 100px;
    max-height: 160px;
    background: url('../img/cast/speech-bubble.svg') no-repeat;
    background-position: top;
    background-size: 100%;
    top: 0;
    right: 0;
    transform: translateX(2%);
    z-index: 1;
}

.cast__content figure{
    position: relative;
    z-index: 0;
}

.cast__content figcaption{
    font-size: 1.5rem;
    text-align: center;
    background-color: #d9c5ea;
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translate(17%, 21%) rotate(-7deg);
    width: 77%;
    max-width: 230px;
    padding: 3px 0;
    z-index: 1;
}

.cast__content figure{
    width: 63%;
    margin: auto;
    display: block;
}

.cast__text{
    font-size: 1.3rem;
    line-height: 1.85em;
    margin-top: 29px;
    padding-left: 5px;
}

@media screen and (min-width: 768px){
    .cast__content .img-wrap::before{
        max-width: 380px;
        max-height: 165px;
    }

    .cast__content figcaption{
        font-size: 1.6rem;
    }

    .cast__text {
        font-size: 1.4rem;
    }
}

@media screen and (min-width: 1025px){
    .cast {
        padding: 65px 0 80px;
    }
    .cast__content{
        display: flex;
        align-items: center;
    }

    .cast__content .img-wrap::before{
        max-width: 450px;
        max-height: 205px;
    }

    .cast__content figcaption{
        font-size: 1.7rem;
        padding: 7px 0;
    }

    .cast__text {
        font-size: 1.5rem;
    }
}

/* ====================
    faq
======================= */
.faq{
    padding: 41px 0 58px;
}

.faq__content{
    margin-top: 34px;
}

.faq__content > div{
    margin-top: 16px;
}

.faq__content > div:first-child{
    margin-top: 0;
}

.faq__content dt,
.faq__content dd{
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.8em;
    padding: 8px 13px;
}

.faq__content dt{
    position: relative;
    background-color: #f1d8de;
    cursor: pointer;
}

.faq__content dt::before,
.faq__content dt::after{
    content: "";
    display: block;
    width: 15px;
    height: 1px;
    background-color: #ff87a8;
    position: absolute;
    top: 50%;
    right: 4%;
    transform: translateY(-50%);
    transition: 0.4s ease;
}

.faq__content dt::after{
    transform: translateY(-50%) rotate(90deg);
}

.faq__content dt.js-active::after{
    transform: translateY(-50%) rotate(0);
}

.faq__content dt p{
    padding-left: 20px;
    position: relative;
    font-size: 1em;
}

.faq__content dt p::before{
    content: "Q.";
    display: block;
    position: absolute;
    top: 0;
    left: 3px;
    color: #ff5a82;
}

@media screen and (min-width: 768px){
    .faq__content dt,
    .faq__content dd{
        font-size: 1.4rem;
    }
}

@media screen and (min-width: 1025px){
    .faq {
        padding: 71px 0 88px;
    }

    .faq__content {
        max-width: 850px;
        margin: 60px auto 0;
    }

    .faq__content dt,
    .faq__content dd{
        font-size: 1.5rem;
        padding: 13px;
        padding: 18px 13px;
    }

    .faq__content dt p {
        padding-left: 23px;
        font-size: 1.1em;
    }
}

/* ====================
    guideline
======================= */
.guideline{
    padding: 40px 0 57px;
    background-color: #de87a8;
}

.guideline__content{
    margin-top: 14px;
}

.guideline__content > div{
    display: flex;
    align-items: flex-end;
    border-bottom: 1px solid #fff;
    padding: 26px 0 5px;
}

.guideline__content dt,
.guideline__content dd{
    line-height: 1.26em;
    font-size: 1.3rem;
    font-weight: 400;
    color: #fff;
}

.guideline__content dt{
    flex-shrink: 0;
    width: 60px;
}

.guideline__content dd{
    flex-grow: 1;
    margin-left: 4.5%;
}

@media screen and (min-width: 768px){
    .guideline__content dt, 
    .guideline__content dd {
        font-size: 1.4rem;
    }
}

@media screen and (min-width: 1025px){
    .guideline{
        padding: 70px 0 87px;
    }

    .guideline__content {
        max-width: 700px;
        margin: 40px auto 0;
    }

    .guideline__content > div {
        padding: 25px 30px 25px;
        align-items: baseline;
    }

    .guideline__content dt, 
    .guideline__content dd {
        font-size: 1.7rem;
    }
    .guideline__content dt{
        width: 80px;
    }
}

/* ====================
    store
======================= */
.store{
    padding: 40px 0 74px;
}

.store__content{
    margin-top: 30px;
}

.store__list .outer-wrap{
    padding: 15px 0;
    border-bottom: 1px solid #de87a8;
}

.store__list .outer-wrap:first-child{
    border-top: 1px solid #de87a8;
}

.store__list .outer-wrap > dt{
    text-align: center;
    font-size: 1.66rem;
    font-weight: 400;
    color: #d25a82;
}

.store__list .img-wrap{
    margin-top: 14px;
}

.store__list .inner-list{
    margin-top: 15px;
}

.store__list .inner-list .inner-wrap{
    display: flex;
    margin-top: 8px;
}

.store__list .inner-list .inner-wrap:first-child{
    margin: 0;
}

.store__list .inner-list dt,
.store__list .inner-list dd{
    line-height: 1.26em;
    font-size: 1.3rem;
    font-weight: 400;
}

.store__list .inner-list dt{
    flex-shrink: 0;
    width: 60px;
}

.store__list .inner-list dd{
    flex-grow: 1;
    margin-left: 4.5%;
}

@media screen and (min-width: 768px){
    .store__list .outer-wrap > dt {
        font-size: 1.7rem;
    }

    .store__list .inner-list dt, 
    .store__list .inner-list dd {
        font-size: 1.4rem;
    }
}

@media screen and (min-width: 1025px){
    .store{
        padding: 70px 0 104px;
    }

    .store__content {
        margin-top: 60px;
    }

    .store__list .outer-wrap {
        padding: 30px 0;
    }

    .store__list .img-wrap {
        margin-top: 30px;
    }

    .store__list .img-wrap figure{
        width: 70%;
        margin: auto;
    }

    .store__list .outer-wrap > dt {
        font-size: 1.8rem;
    }

    .store__list .inner-list {
        margin: 30px auto 0;
        width: 70%;
    }

    .store__list .inner-list dt, 
    .store__list .inner-list dd {
        font-size: 1.5rem;
        line-height: 1.6;
    }
}

/* ====================
    flow
======================= */
.flow{
    padding: 35px 0 62px;
}

.flow__content {
    margin-top: 40px;

}

.flow__box{
    display: flex;
    align-items: center;
    margin-top: 43px;
}

.flow__box:first-child{
    margin-top: 0;
}

.flow__box .flow__box-body{
    width: 62.22%;
    flex-grow: 1;
}

.flow__box:nth-child(even) .flow__box-body{
    order: 2;
}

.flow__box-body span{
    font-size: 2.2rem;
    color: #d25a82;
}

.flow__box-body .text{
    margin-top: 8px;
}

.flow__box .img-wrap{
    width: 32.59%;
    flex-grow: 1;
    margin-left: 5%;
}

.flow__box:nth-child(even) .img-wrap{
    order: 1;
    margin-left: 0;
    margin-right: 5%;
}

@media screen and (min-width: 768px){
    .flow__box-body span {
        font-size: 2.3rem;
    }
}

@media screen and (min-width: 1025px){
    .flow {
        padding: 65px 0 92px;
    }

    .flow__box-body span {
        font-size: 2.4rem;
    }

    .flow__box-body .text {
        margin-top: 20px;
    }
}

/* ====================
    application
======================= */
.application{
    padding: 40px 0 200px;
    overflow-x: hidden;
    background-color: #de87a8;
}

.application__content{
    margin-top: 29px;
}


.application__content .announce{
    width: 100vw;
    margin: 0 calc(50% - 50vw);
}

.btn-wrap{
    margin-top: 20px;
}

.btn-wrap__text{
    text-align: center;
}

.btn-wrap .btn{
    margin: 3px auto 0;
}

@media screen and (min-width: 1025px){
    .application {
        padding: 70px 0 300px;
    }

    .application__content {
        margin-top: 60px;
    }

    .btn-wrap {
        margin-top: 40px;
    }
    .flex{
        display: flex;
        justify-content: center;
    }
    .flex .btn-wrap{
        width: 45%;
    }
}

/* ====================
    form
======================= */
.form-container{
    padding: 90px 0 121px;
    background: linear-gradient(to bottom, rgba(222, 135, 168, 1) 0px, rgba(222, 135, 168, 1) 45px, rgba(222, 135, 168, 0) 45px, rgba(222, 135, 168, 0) 100%), url('../img/common/bg01.jpg');
    background-position: center;
    background-size: 100%;
}

.form{
    margin-top: 21px;
}

.form tr{
    display: block;
}

.form tr + tr{
    margin-top: 25px;
}

.form th{
    font-weight: 400;
    color: #d25a82;
    display: flex;
    align-items: flex-start;
    font-size: 1.4rem;
    width: 100%;
}

.form .required{
    color: #ffffff;
    display: inline-block;
    font-weight: 500;
    font-size: 0.78125em;
    flex-shrink: 0;
    padding: 2px 15px;
    background-color: #d25a82;
    border-radius: 50px;
    margin-top: 3px;
}

.form th > div{
    flex-grow: 1;
    margin-left: 7px;
    line-height: 1.5em;
}

.form td{
    display: block;
    width: 100%;
    margin-top: 10px;
    font-size: 1.4rem;
    font-weight: 400;
    color: #d25a82;
}

.form input[type="text"],
.form input[type="email"],
.form textarea{
    width: 100%;
    background-color: #ffffff;
    padding: 10px;
    border: 1.5px solid #d25a82;
    border-radius: 0.5rem;
}

.form input[type="text"],
.form input[type="email"]{
    height: 40px;
}

.form textarea{
    resize: vertical;
    min-height: 70px;
}

.occupation-container,
.experience-container{
    display: flex;
    flex-direction: column;
}

.occupation-container > span + span,
.experience-container > span + span{
    margin-top: 12px;
}

.form input[type="radio"],
.form input[type="checkbox"]{
    display: none;
}

.occupation-container label,
.experience-container label{
    position: relative;
}

.occupation-container label::before,
.experience-container label::before{
    content: "";
    display: block;
    width: 15px;
    height: 15px;
    background-color: #ffffff;
    border: 1.5px solid #d25a82;
    position: absolute;
    top: 57%;
    left: 0;
    transform: translateY(-50%);
    border-radius: 50%;
}

.occupation-container label > span,
.experience-container label > span{
    position: relative;
    display: inline-block;
    padding-left: 23px;
}

.occupation-container label > span::before,
.occupation-container label > span::after,
.experience-container label > span::before,
.experience-container label > span::after{
    content: "";
    display: block;
    height: 5px;
    background-color: #d25a82;
    position: absolute;
    opacity: 0;
    transition: 0.4s ease;
}

.occupation-container label > span::before,
.experience-container label > span::before{
    width: 5px;
    top: 48%;
    left: 5.5px;
    transform: translateY(-50%) rotate(45deg);
    transform-origin: left;
    border-radius: 50%;
}

/* .occupation-container label > span::after,
.experience-container label > span::after{
    width: 12px;
    bottom: 1px;
    left: 6.5px;
    transform: rotate(-60deg);
    transform-origin: left;
} */

.occupation-container input[type=radio]:checked + label > span::before,
.experience-container input[type=checkbox]:checked + label > span::before{
    opacity: 1;
}

input[type="submit"],
input[type="button"],
.form-btn{
    text-align: center;
    display: block;
    width: 100%;
    max-width: 180px;
    background-color: #d25a82;
    border-radius: 50px;
    margin: 50px auto 0;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 400;
    padding: 13px 0;
}

.form-container .header__btn{
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 100;
}

.form-container .text{
    font-size: 1.4rem;
    font-weight: 400;
    color: #d25a82;
    line-height: 1.5em;
    text-align: center;
    margin-top: 20px;
}

.form-container .text > span{
    display: inline-block;
    width: 100%;
}

.form-container .text > span + span{
    margin-top: 20px;
}

.form-container.thanks-page{
    height: 100vh;
}

.form-container .error-text{
    color: #d25a82;
    font-size: 1.6rem;
    margin-bottom: 20px;
}
.form-container .header__btn {
    display: none;
}
@media screen and (min-width: 768px){
    .form-container .inner{
        max-width: 680px;
        padding: 50px 0 60px;
    }
    .form-container .heading2{
        margin: 0px auto 60px;
    }
    .form th,
    .form td,
    input[type="submit"], 
    input[type="button"], 
    .form-btn,
    .form-container .text{
        font-size: 1.5rem;
    }
    .form input[type="text"], .form input[type="email"]{
        height: 45px;
    }
    .form th > div{
        line-height: 1.8em;
    }
    .form .required{
        margin-top: 6px;
    }

    .form-container .error-text{
        font-size: 1.7rem;
    }

    .occupation-container label::before, 
    .experience-container label::before {
        width: 14px;
        height: 14px;
    }
}

@media screen and (min-width: 1025px){
    .form th,
    .form td,
    input[type="submit"], 
    input[type="button"], 
    .form-btn,
    .form-container .text{
        font-size: 1.6rem;
    }

    input[type="submit"], 
    input[type="button"], 
    .form-btn {
        max-width: 200px;
    }

    .form-container .error-text{
        font-size: 1.8rem;
    }

    .occupation-container label::before, 
    .experience-container label::before {
        width: 15px;
        height: 15px;
    }

    .occupation-container label > span::before, 
    .experience-container label > span::before {
        width: 5px;
    }

    .occupation-container label > span::after, 
    .experience-container label > span::after {
        width: 13px;
    }

    .form-container .text{
        margin-top: 40px;
    }
}