@charset "utf-8";
*{
    font-family: "Roboto", "Helvetica", "Arial", sans-serif;  
    margin: 0;
    padding: 0;
}
img {
    max-width: 100%;	
    vertical-align: bottom;
}
html{
    overflow: auto; 
}
.Wrapper{
    margin:  0 auto;
    width: 100%;
    overflow-x: hidden;
}
.header{
    height: 90px;
    margin: 0 auto;
    padding: 1% 2%;
    display: flex;
    justify-content: space-between;
    background-color: #fff;
}
.header p{
    font-size: 14.5px;
}
.contact.min_content{
   width: 90%;
    margin: 1% auto;
}
.contact_img{
    padding: 1% 3%;
    text-align: center;
}

/* 光 */
.shine{
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
    border-radius: 80px;
}

.shine::before{
    content: '';
    width: 30px;
    height: 100%;
    background-color: #fff;
    animation: shine 3s ease-in-out infinite;
    position: absolute;
    top: -180px;
    left: 0;
    opacity: 0;
    transform: rotate(45deg);
}

/* 光の動き */
@keyframes shine{
  0% {
    transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}


.red{
    color:#ff0000;
    font-weight: bold;
}
.header .h_left{
    width: 65%;
}
.header .h_left img{
    margin-top: 5px;
    width: 25%;
}
.header .h_right{
    width: 35%;
    padding: 15px 0 15px;
}
.icon{
    display: flex;
    width: 100%;
}
.icon a:nth-child(2){
    margin-left: 5px;
}
@media (min-width: 767px) { 
	.icon a:first-child:before{
    width: 40px;
    height: 40px;
    right: 35%;
	content: "";
    display: inline-block;
    position: absolute;
    background: url(../img/hand.png) no-repeat;
    background-size: contain;
    animation: fuwafuwa 1.5s infinite ease-in-out .8s alternate;
    z-index: 2;
    top: 6%;
}
}
@media (max-width: 767px) { 
	.b_cta a:first-child:before{
    width: 40px;
    height: 40px;
    left: -0.5%;
	content: "";
    display: inline-block;
    position: absolute;
    background: url(../img/hand.png) no-repeat;
    background-size: contain;
    animation: fuwafuwa 1.5s infinite ease-in-out .8s alternate;
    z-index: 2;
    top: 26%;
}
}
.hand {
    animation: fuwafuwa 1.5s infinite ease-in-out .8s alternate;
    display: inline-block;
    transition: 1.5s ease-in-out;
    width: 5%;
    position: absolute;
    top: 20px;
    left: 25%;
    z-index: 10;
}
@keyframes fuwafuwa {
    0% {
      transform:translate(0, 0) rotate(-7deg);
    }
    50% {
      transform:translate(0, -7px) rotate(0deg);
    }
    100% {
      transform:translate(0, 0) rotate(7deg);
    }
}

.header .h_right p{
    font-size: 13px;
    margin-top: 2px;
    text-align: right;
}
.contact p{
    font-weight: bold;
    font-size: 1.5rem;
    text-align: center;
    margin: 10px auto;
    animation: flash 1.5s linear infinite;
}
@keyframes flash {
    0%,100% {
        opacity: 1;
    }

    50% {
        opacity: 0;
    }
}
.cta{
    margin: 0 auto;
}
.standard_area{
    max-width:1300px;
    display: block;
    margin: 0 auto;
}
img.card{
    display: block;
    margin: 60px auto;
}
img.virus{
    max-width: 800px;
    display: block;
    margin: 60px auto;
}
.reason_area{
    display: block;
    max-width: 1200px;
    margin: 0 auto;
}
.reason{
    display: flex;
    margin: 3%;
    position: relative;
}
.reason p{
    margin-top: 10px;
}
.point_image{
    max-width: 600px;
    margin-left: 30px;
}
.ttl{
    display: flex;
    align-items: center;
    margin-bottom: 5px;
}
.ttl p{
    margin-top: 0;
    margin-left: 10px;
    font-weight: bold;
    font-size: 1.1rem;
}

.ttl p .red{
    font-size: 1.5rem;
}
.reason .ttl img {
    display: block;
    width: 15%;
}
.tried .ttl img {
    display: block;
    width: 10%;
}
.contact2{
    position: relative;
    max-height: 650px;
    margin: 0 auto 110px;
    background-image: url(../img/tel_women.png);
    background-size: cover;
}
.cta_area {
    text-align: center;
    width: 90%;
    margin: auto;
}
.women_comment {
    font-size: 1.5rem;
    font-weight: bold;
    padding: 11% 8% 10% 45%;
}
.tried{
    max-width: 900px;
    background-color: #fffef5;
    margin: 40px auto;
    padding: 3%;
    border: 1px solid #3f3f3f;
}
.tried p{
    line-height: 1.8rem;
}
.tried .min{
    font-weight: normal;
    font-size: 0.8rem;
}
.tried .ttl{
    line-height: normal;
    padding-bottom: 7px;
    margin-bottom: 15px;
    border-bottom: 1px solid #3f3f3f;
}
.map_area{
    background-image: url(../img/map_bg.jpg);
    background-size: cover;
}
.map_area img{
    display: block;
    margin: 0 auto;
	padding-bottom: 5%;
    padding-top: 3%;
    max-width: 800px;
}
.mt30{
    margin-top: 30px;
}
/*----------------------------------------------------------------------------------------------------------------------------------*/
.grad-wrap{
    position: relative;
}
.grad-btn {
    z-index: 2;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 148px;
    margin: auto;
    padding: .2em 0;
    border-radius: 2px;
    background: #ef5663;
    color: #fff;
    font-weight: bold;
    font-size: 1rem;
    text-align: center;
    cursor: pointer;
    transition: .2s ease;
    box-shadow: 0 0 3px rgb(0 0 0 / 30%);
}
.grad-item {
    position: relative;
    overflow: hidden;
    height: 70px; /*隠した状態の高さ*/
}
.grad-item::before {
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40px; /*グラデーションで隠す高さ*/
    background: -webkit-linear-gradient(top, rgb(255 254 245 / 67%) 0%, rgb(255 254 245) 50%, rgb(255 254 245) 50%, #fffef5 100%);
    background: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 50%, rgba(255,255,255,0.9) 50%, #fff 100%);
    content: "";
}
.grad-trigger {
    display: none; /*チェックボックスは常に非表示*/
}
.grad-trigger:checked + .grad-btn {
    display: none; /*チェックされていたら、grad-btnを非表示にする*/
}
.grad-trigger:checked ~ .grad-item {
    height: auto; /*チェックされていたら、高さを戻す*/
}
.grad-trigger:checked ~ .grad-item::before {
    display: none; /*チェックされていたら、grad-itemのbeforeを非表示にする*/
}
h2{
    text-align: center;
    padding: 6% 2%;
    margin-top: 40px;
    background-image: url(../img/ttl_black.png);
    background-size: cover;
    color: #fff;
}
.mt0{
    margin-top: 0px;
}
/*------------------------------------------------------------------------------------------------------------------------------------------*/
.toggle_contents {
   
}
.toggle_title {
    border: 2px solid #ff9b00;
    border-radius: 15px;
    margin-top: 10px;
    position: relative;
    padding: 3% 3% 3% 7%;
    cursor: pointer;
    font-size: 1.2rem;
    text-align: left;
    line-height: 1.4;
    font-weight: bold;
    color: #595959;

    max-height: 999999px;  /*Androidブラウザフォントバグ対策*/
}
.toggle_btn {
    position: absolute;
    top: 45%;
    right: 2%;
    transform: translateY(-50%);
    display: block;
    width: 32px;
    height: 32px;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
    border-radius: 50%;
}
.toggle_btn:before {
    display: block;
    content: '▼';
    background-repeat: no-repeat;
    position: absolute;
    top: 50%;
    left: 20%;
    transform: translate(-50%, -50%);
}
.toggle_btn:before {
    width: 2px;
    height: 15px;
}
.toggle_title .toggle_btn:before {
    content: normal;
}
.toggle_contents dd {
    display: none;
    margin-inline-start:0;
}
.toggle_contents:first-of-type dd {
    display: block;
}
.toggle_contents dd p{
    margin: auto ;
    font-size: 1rem;
    line-height: 1.3rem;
    padding: 2%;
    box-sizing: border-box;
    color: #595959;
    position: relative;
}
.qa{
    margin: 70px auto;
    padding: 3%;
    max-width:1100px;
}
.toggle_title::before{
    position: absolute;
    content: "Q";
    top: 0;
    left: 2%;
    content: "Q";
    font-size: 2rem;
    font-weight: bold;
    border-radius: 5px;
    margin-top: 1.5%;
    margin-left: 0.5%;
}
#panel1{
    position: relative;
}
#panel1 a img{
    position: absolute;
    display: block;
    width: 75%;
    bottom: 0.1%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
}
#panel2{
    position: relative;
}
#panel2 a img{
    position: absolute;
    display: block;
    width: 75%;
    bottom: 0.1%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit- transform: translateY(-50%) translateX(-50%);
}
#panel3{
    position: relative;
}
.kids-cta{
    display: flex; 
    position: absolute;
    width: 93%;
    bottom: 2.4%;
    left: 3.5%;
}
.kids-cta img{
    display: block; 
    align-self: flex-start;
}
#footer .f_nav {
    font-size: 0;
    margin-bottom: 20px;
}
ol, ul {
    list-style: none;
}
footer{
    text-align: center;
}
#footer .f_nav li a {
    color: #666;
    text-decoration: none;
    font-size: 0.9rem;
}
#footer .f_nav li {
    margin-right: 10px;
    display: inline-block;
    font-size: 13px;
}
#footer .f_nav li::after {
    content: '|';
    margin-left: 10px;
}
#footer .f_nav li:last-child::after {
    content: '';
    margin-left: 0px;
}
.pc_dp_n{
    display:none;
}
footer{
    background-color: #999;
    color: #fff;
    padding: 5%;
}
footer p, footer a{
    font-size: 0.8rem;
    text-decoration: none;
    color: #fff;
}
.b_cta{
    display: none;
}
h2.blue{
    text-align: center;
    padding: 2% 2%;
    margin-top: 7%;
    background-image: url(../img/ttl_blue_pc.png);
    background-size: cover;
    color: #fff;
}
h2.blue img{
    display: block;
    width: 450px;
    margin: 0 auto;
}
h2{
    text-align: center;
    padding: 3% 2%;
    margin-top: 40px;
    background-image: url(../img/ttl_black_pc.png);
    background-size: cover;
    color: #fff;
}
h2.blue.mt0{
    margin-top: 0px;
}
@media (min-width: 1920px) { 
    .Wrapper {
    margin: 0 auto;
    width: 100%;
}
}
/*--------SP-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media (max-width: 767px) { 
    .Wrapper{
        margin:  0 auto;
        width: 100%;
    }
    .header{
        width: 100%;
        height: auto;
        margin: 0 auto;
        padding: 10px 2%;
        box-sizing: border-box;
        display: flex;
        justify-content: space-between;
        background-color: #fff;
    }
    .header p{
    font-size: 11.5px;
    }
    .header .h_right p{
    font-size: 10px;
    margin-top: 2px;
    text-align: right;
    }
    .header .h_right {
        width: 35%;
        padding:0 ;
    }
    .header .h_right {
        width: 43%;
    }
    .header .h_left {
        width: 57%;
    }
    .header .h_left img{
        margin-top: 5px;
        width: 98%;
    }
    .icon{
    display: flex;
    margin-left: 20%;
    width: 80%;
    }
    .reason{
        display: block;
        margin: 3%;
        position: relative;
    }
    .point_image {
        max-width: 100%;
        margin:  20px 0 40px;
    }
    .contact.min_content {
        width: 100%;
    }
    .contact {
        margin: 20px auto;
    }
    .contact p{
        font-size: 1.2rem;
    }
    
    .cta_area a img{
        width: 100%;
        margin: 0 auto;
    } 
    /*.cta_area a:nth-child(1) {
        display: none;
        margin-left: 0;
    }*/
    .cta_area a:nth-child(2) {
    margin-left: 0px;
    }
    .toggle_title {
        padding: 3% 3% 3% 12%;
    }
    .toggle_title::before{
        margin-top: 0%;
        margin-left: 0.5%;
    }
    .contact2 .cta{
    bottom: -10%;
    }
    .cta {
    width: 90%;
}
    .pc_dp_n{
    display:block;
    }
    .header .h_left img{
    margin-top: 5px;
    width: 98%;
}
    input,textarea,select {
    font-size: 16px ;
    }
    .standard_area{
        width: 100%;
        display: block;
        margin: 0 auto;
    }
    img.card{
        width: 100%;
        display: block;
        margin: 0px auto;
    }
    img.virus{
        width: 100%;
        display: block;
        margin: 0px auto;
    }
    h2.blue{
        text-align: center;
        padding: 6% 2%;
        margin-top: 40px;
        background-image: url(../img/ttl_blue_sp.png);
        background-size: cover;
        color: #fff;
    }
    h2.blue.ttl1 img{
        width: 80%;
    }
    h2.blue img{
        display: block;
        width: 60%;
        margin: 0 auto;
    }
    h2{
        text-align: center;
        padding: 6% 2%;
        margin-top: 40px;
        background-image: url(../img/ttl_black_sp.png);
        background-size: cover;
        color: #fff;
    }
    .ttl img{
        width: 20%;
    }
    .contact2 {
        width: 100%;
        height: auto;
        margin: 0px auto 50px;
        background-image: url(../img/tel_women_sp.png);
    }
    .women_comment {
        font-size: 1rem;
        font-weight: bold;
        padding: 13% 5% 13% 38%;
    }
    .tried {
        width: 90%;
        background-color: #fffef5;
        margin: 20px auto;
        padding: 3%;
        box-sizing: border-box;
        border: 1px solid #3f3f3f;
    }
    .grad-item {
        height: 160px; /*隠した状態の高さ*/
    }
    .tried .ttl img {
        width: 20%;
    }
    .map_area img{
        padding: 9% 0%;
        box-sizing: border-box;
        display: block;
        margin: 0 auto;
        width: 75%;
    }
/*-------追従ボタン--------------------------------------*/
    .b_cta{
        display: flex;
        width: 100%;
        background: #f4f49f;
        padding: 2%;
        box-sizing: border-box;
    }
    .b_cta a{
        display: block;
        width: 100%;
    }
    .b_cta a img{
        display: block;
        width: 97%;
        margin: 0 auto
    }
    .button{
        height: auto;
        position: fixed;
        right: 0;
        bottom: 0;
        cursor: pointer;
        transition: .3s;
        /*デフォルトで非表示にする*/
        opacity: 0;
        visibility: hidden;
        z-index: 20;
    }
    footer{
        margin-top: 17%;
        position: relative;
    }

    /*このクラスが付与されると表示する*/
    .active{
        opacity: 1;
        visibility: visible;
    }
    /*このクラスが付与されると表示する*/
    .absolute{
        position: absolute;
        top: -70px;
        height: auto;
    }
    /*-------追従ボタン--------------------------------------*/
}
.pc_ds {
    display: block;
}
.sp_ds {
    display: none;
}
@media (max-width: 767px) { 
.pc_ds {
    display: none;
}
	.sp_ds {
    display: block;
}
}

/* 協力店募集 */
.boshu_img{
    position:relative;
    top:-1px;
}

.boshu{
    background-color:#F4E144;
    padding:20px;
    position:relative;
    top:-1px;
}

.boshu::before{
    content:'';
    border-right:30px solid transparent;
    border-bottom:35px solid #F4E144;
    border-left:30px solid transparent;
    position:absolute;
    top:-17%;
    left:50%;
}

@media (max-width: 768px) {
    .boshu::before{
        content:'';
        border-right:15px solid transparent;
        border-bottom:20px solid #F4E144;
        border-left:15px solid transparent;
        position:absolute;
        top:-8%;
        left:46%;
    }
}

.boshu p{
    text-align:center;
    font-weight: bold;
    font-size:20px;
    margin:0;
}

@media (max-width: 768px) { 
    .boshu p{
    font-size:0.7rem;
    }
}

.boshu_img.second{
    top:-10px;
}

.boshu.second{
    top:-10px;
}

@media (max-width: 768px) { 
    .boshu_img.second{
        top:-12px;
    }
    .boshu.second{
        top:-12px;
    }
}

.boshu_img.third{
    top:0px;
}

.boshu.third{
    top:0px;
}

.gradation{
    background: linear-gradient(180deg,rgb(255, 255, 255, 0) 0%,rgb(255, 255, 255, 1) 70%);
    width:100%;
    height:100px;
    position:absolute;
    bottom:0;
}

.cta_mail02 img, .cta_tel02 img{
    border-radius:20px;
}
.cta_mail02 img{
    box-shadow:0 8px 0 0 #003f8b;
    animation: hekomu1 2s infinite;
}
.cta_tel02 img{
    box-shadow:0 8px 0 0 #841f00;
    animation: hekomu2 2s infinite;
}
/*.cta_tel02 img:active, .cta_mail02 img:active{
     box-shadow: none;
    position: relative;
    top: 8px;
}*/

@keyframes hekomu1 {
	0% {
		box-shadow: 0 8px 0 #003f8b;
		top: 0px;
	}
	10% {
		box-shadow: none;
        position: relative;
        top: 8px;
	}
	20% {
		box-shadow: 0 8px 0 #003f8b;
		top: 0px;
	}
	30% {
		box-shadow: none;
        position: relative;
        top: 8px;
	}
	40% {
		box-shadow: 0 8px 0 #003f8b;
		top: 0px;
	}
}
@keyframes hekomu2 {
	0% {
		box-shadow: 0 8px 0 #841f00;
		top: 0px;
	}
	10% {
		box-shadow: none;
        position: relative;
        top: 8px;
	}
	20% {
		box-shadow: 0 8px 0 #841f00;
		top: 0px;
	}
	30% {
		box-shadow: none;
        position: relative;
        top: 8px;
	}
	40% {
		box-shadow: 0 8px 0 #841f00;
		top: 0px;
	}
}
.mb20 {margin-bottom:20px;}


/*お問い合わせフォーム*/
.anke{
  background: #e3e3e3;
}
.anke h2{
    width: 700px;
    margin: 0 auto;
    padding: 50px 0 30px;
}
.form_content{
	max-width: 1000px;
	margin: 0 auto;
	padding: 0 80px 100px;
	background: #f1f1f1;
}
.form_ttl{
	background-color: #000;
    padding: 30px 22%;
    border-radius: 30px 30px 0 0;
}
.form_content .container{
	background-color: #fff;
	padding: 15px 65px;
}
.arrow{
	max-width: 600px;
    width: 100%;
    margin: 10px auto 20px;
}

.slide-next.question_btn_next:disabled {
  background: #ccc;
	box-shadow: 0px 9px 0px 0px rgba(185, 185, 185, 1);
}
button.slide-next.question_btn_next {
  	display: block;
    text-align: center;
    margin: auto;
    background: linear-gradient(to bottom, #5d97ec, #1e68d6);
    box-shadow: 0px 9px 0px 0px #003078;
    font-weight: bold;
    width: 220px;
    height: 60px;
    color: #fff;
    font-size: 20px;
    border-radius: 10px;
    border: none;
    margin-top: 2%;
}
 .q3_input {
    height: 35px;
    width: 95%;
    font-size: 18px;
    margin: 10px auto 20px;
}
label span.must {
    margin-left: 10px;
    color: #fff;
    background: #e80000;
    padding: 4px 4px 4px;
    font-size: 11px;
    margin-bottom: 3px;
    margin-right: 2px;
    border-radius: 3px;
}
label b{
	border-left: 10px solid #000;
	padding: 6px 0 6px 10px;
}
.q_text01>div {
    margin: 20px 0 35px;
}
.postcode1,.postcode2{
	height: 35px;
    max-width: 170px;
	width: 100%;
    font-size: 18px;
    margin: 10px auto 20px;
}
.prefecture{
	height: 35px;
    max-width: 400px;
	width: 95%;
    font-size: 18px;
    margin: 10px 10px 20px;
}
.city{
	height: 35px;
    max-width: 450px;
	width: 100%;
    font-size: 18px;
    margin: 10px 10px 20px;
}

.address{
	height: 35px;
    max-width: 500px;
	width: 100%;
    font-size: 18px;
    margin: 10px 10px 20px;
}
.q_text02>div {
    margin: 20px 0 35px;
}

.tel1{
	height: 35px;
    max-width: 150px;
	width: 100%;
    font-size: 18px;
    margin: 10px auto 20px;
}
.tel2{
	height: 35px;
    max-width: 200px;
	width: 100%;
    font-size: 18px;
    margin: 10px auto 20px;
}
.request{
	height: 45px;
    width: 95%;
    font-size: 16px;
    margin: 10px auto 20px;
}
.date input ,.date select{
	height: 45px;
    max-width: 230px;
	width: 100%;
    font-size: 18px;
    margin: 10px 5px 20px;
}
.naiyou{
	height: 75px;
    width: 95%;
    font-size: 18px;
    margin: 10px auto 20px;
}
.q_text03>div {
    margin: 20px 0 0;
}
input.submitBtn.question_btn_next {
    display: block;
    text-align: center;
    margin: auto;
    background: linear-gradient(to bottom, #5d97ec, #1e68d6);
    box-shadow: 0px 9px 0px 0px #003078;
	font-weight: bold;
    max-width: 500px;
	width: 100%;
    height: 70px;
    color: #fff;
    font-size: 20px;
    border-radius: 5px;
    border: none;
    margin-bottom: 25px;
    line-height: 1.3;
}
input[type="submit"] {
  appearance: none;
  -webkit-appearance: none;
  }
input.submitBtn.question_btn_next:disabled {
    background: #ccc;
	box-shadow: 0px 9px 0px 0px rgba(185, 185, 185, 1);
}
.slick-disabled {
    opacity: 0;
}

@media screen and (max-width:740px) {
  .anke h2{
      width: 100%;
	  padding: 50px 20px 30px;
  }
	.form_content {
    padding: 0px 20px 50px;
}
	.form_content .container {
    padding: 20px;
}
	.tel1 {
    max-width: 70px;
	font-size: 13px;
}
	.tel2 {
    max-width: 75px;
	font-size: 13px;
}
	.postcode1, .postcode2 {
    width: 80px;
}
	.prefecture {
    max-width: 400px;
    width: 95%;
    font-size: 16px;
    margin: 10px 0px 20px;
}
	.city {
    max-width: 450px;
    width: 95%;
    font-size: 16px;
    margin: 10px 0px 20px;
}
	.q_text03>div {
    margin: 20px 0 0 0px;
}
	button.slide-next.question_btn_next {
	margin-bottom: 10%;
}
	span.form_s {
    font-size: 16px;
}	
	.date input {
	width: 200px;
    margin: 10px 5px 0;
	font-size: 16px;
}
	.date select{
	width: 200px;
    margin: 10px 5px 0;
	font-size: 16px;
}
	.naiyou {
    font-size: 15px;
}
	.form_ttl {
    padding: 25px 6%;
}
	.q_text01>div {
    margin: 20px 0 35px;
}
	.q_text02>div {
    margin: 20px 0 35px;
}
}
.err{
    color: #e80000;
    background: rgb(255, 237, 237);
    font-weight: bold;
    margin: 0 0 10px;
    padding: 0 10px;
    font-size: 12px;
}
.min {
    font-size: 0.7rem;
    margin-bottom: 5px;
    font-weight: normal;
}