@charset "utf-8";


/* ------------------------------------------------------------ fv */
#fv{ padding: 0 0 40px; }
.f-message{ padding: 10px; color: #fff; text-align: center; font-size: 13px; background: #ff582b; }
.f-message a{ margin: 0 2px; padding: 2px; color: #ff582b; background: #fff; border-radius: 2px; }

/* ------------------------------------------------------------ chach */
#chach{ padding: 30px 0; background: var(--sky); border-radius: var(--cRadious); }
#chach h3{ padding: 0 0 10px; }
#chach .content{ padding: 0 0 30px; }
#chach .c-img-text{ display: block; width: 90%; margin: 0 auto 10px; }

.animation{ width: 375px; display: flex; align-items: center; animation: infinity-scroll-left 30s infinite linear 1s; }
.animation img{ width: 375px; height: auto; }
@keyframes infinity-scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.campaign{ padding: 20px 0 40px; }
.campaign h2{ padding: 20px 0 0; }
.campaign{ padding: 20px 0 40px; }
.campaign h2{ padding: 20px 0 0; }
.campaign .note{ width: 46%; margin: -42px 0 0 auto; padding: 10px 0 0; }
.campaign .note .text{ font-size: 0.5em; text-align: left; line-height: 1.5; }

.award-list{ display: flex; align-items: flex-start; justify-content: space-around; gap: 3%; }
.award-list li{ width: calc(100% / 3 - 3%); }
.award-list li figure{ display: flex; align-items: center; justify-content: center; height: 110px; margin-bottom: 5px; }
.award-list li p{ font-size: 0.5em; line-height: 1.5; text-align: center; }
.award-list li.award02 img{ width: 90%; }


/* ------------------------------------------------------------ reason */
#reason{ margin: 20px 0 0; }
#reason .c-img-text{ margin-bottom: 20px; }

.reason{ padding: 20px 0 60px; background: url(../images/bg_reason.png) center bottom/cover no-repeat; }
.reason-head{ padding: 0 0 70px; }
.reason-head .c-img{ margin-top: 20px; width: 90%; }

.reason-body{ margin-top: -10px; padding: 65px 0 30px; background: var(--sky); border-radius: var(--cRadious); }
.c-reason{ padding: 0 0 10px; }
.c-reason h3{ padding: 0 0 50px; }
.c-reason ul{ padding: 0 0 20px; }
.c-reason li{ margin: 0 0 30px; padding: 30px 5px; background: #fff; border-radius: 20px; }
.c-reason li > div:not(:last-of-type){ padding: 0 0 30px; }

.c-reason h4{  font-family: toppan-bunkyu-midashi-go-std, sans-serif; font-weight: 900; font-style: normal; line-height: 1.7; }
.c-reason .c-reason-title{ padding: 0 0 15px; font-size: 20px; text-align: center; }
.c-reason .c-reason-title strong{ margin-right: 3px; padding: 5px; border-radius: 5px; color: #fff; background: var(--blue); }
.c-reason .c-reason-title2{ font-size: 20px; padding: 0 0 20px;  text-align: center; color: var(--blue); }

.c-reason .text{ padding: 0 0 10px; }
.c-reason .text span{ font-family: 'Noto-Sans-JP-Bold'; }
.c-reason .text small{ float: right; padding: 5px 0 0; font-size: 0.5rem; }
.c-reason .flex{ align-items: center; justify-content: center; width: 90%; margin: 0 auto 20px; }
.c-reason .flex img{ width: 105px; height: auto; }
.c-reason .flex p{ width: calc(100% - 105px); }

.c-reason li.ul-border{ padding: 30px 15px; border: 2px solid #004ea2; }
.c-reason li.ul-border .text{ padding: 0 0 20px; }

.toggle-box{ cursor: pointer; }
.btn_close{ cursor: pointer; width: 35px; height: auto; margin: 0 auto; }

.move-animation{ animation: move 2s ease-out infinite; }
@keyframes move{
  0%, 40%, 60%, 80% {
    transform: scale(1.0);
  }
  50%, 70% {
    transform: scale(0.95);
  }
}



/* ------------------------------------------------------------ type */
#type{ position: relative; padding: 35px 0 22px; }
#type ul{ display: flex; align-items: stretch; justify-content: space-between; flex-wrap: wrap; gap: 3px; margin: 25px 0 35px; }
#type li{ width: calc(100% / 4 - 3px); padding: 11px 5px; border-radius: 2px; font-size: 14px; text-align: center; color: #fff; background: var(--orange); }
#type li:nth-of-type(n+5):nth-of-type(-n+8) { background: var(--blue); }
#type li:nth-of-type(n+9):nth-of-type(-n+12){ background: var(--green); }
#type .btns{ position: absolute; bottom: 0; width: 100%; }


/* ------------------------------------------------------------ power */
#power{ padding: 70px 0 40px; }
#power h2{ width: 90%; margin: 0 auto 30px; }
#power ul{ display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 10px 5px; padding: 0 0 30px; }
#power li{ width: calc(100% / 2 - 3px); }
#power li img{ width: 100%; height: auto; }


/* ------------------------------------------------------------ faq */
#faq{ padding: 40px 0 35px; background: var(--sky); border-radius: var(--cRadious); }
#faq .flex{ align-items: center; gap: 5px; }
#faq .flex img{ width: 96px; height: auto; }
#faq .text span{ font-family: 'Noto-Sans-JP-Bold'; }

.faq-head{ }
.faq-head h2{ display: flex; justify-content: center; align-items: center; margin: 0 0 10px; padding: 5px 10px; border-radius: 5px; font-size: 17px; color: var(--blue); background: #fff; border: 2px solid var(--blue); }
.faq-head h2 strong{ font-size: 25px; margin-left: 5px; font-family: toppan-bunkyu-midashi-go-std, sans-serif; font-weight: 900; font-style: normal; }
.faq-head h2 img{ width: 25px; height: auto; margin-right: 10px; }

.qa-list{ padding: 0 0 30px; }
.qa { background: #fff; border-radius: 14px; box-shadow: 0 0 5px 6px #B7F2FF; padding: 15px 15px 15px 20px; margin: 0 0 10px; color: #4c585a; }
.qa:last-of-type { margin: 0; }
.qa dt { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; line-height: 1.5; padding: 5px 0 5px 40px; position: relative; }
.qa dt strong { position: absolute; left: 0; top: 6px; font-size: 20px; line-height: 1; }
.qa dt::after,
.qa dt::before { position: absolute; right: 0; content: ""; width: 23px; height: 4px; background: var(--blue); }
.qa dt::before { transition: all 0.8s; transform: rotate(90deg); }
.qa.open dt::before { transform: rotate(0); }
.qa dd { display: none; padding: 10px 0 0 40px; }
.qa dd p { font-size: 12px; line-height: 2; }
.qa dd small { display: block; padding: 20px 0 0; font-size: 10px; color: #989898; line-height: 1.7; }


/* ------------------------------------------------------------ cost */
#cost{ padding: 50px 0 90px; }
#cost .b-circle span{ margin: 0 5px 0 0; }


/* ------------------------------------------------------------ voice */
#voice{ padding: 0 0 90px; color: #989898; }
#voice .flex{ width: 90%; margin: 0 auto 20px; align-items: center; gap: 10px; }
#voice .flex img{ width: 130px; height: auto; }
#voice .flex p{ padding-left: 0.6rem; text-indent: -0.6rem; font-size: 0.6em; line-height: 1.5; text-align: left; }
#voice ul{ display: flex; flex-wrap: wrap; gap: 30px 7px; margin: 0 0 50px; }
#voice li{ width: calc(100% / 3 - 7px); }
#voice li img{ width: 100%; height: auto; }
#voice li p{ padding: 5px 0 0; font-size: 13px; line-height: 1.4; }


/* ------------------------------------------------------------ recommend */
#recommend{ padding: 50px 0; background: url(../images/bg_recommend.png) center/cover no-repeat; }
#recommend h2{ padding: 0 0 45px; color: #fff; text-align: center; font-size: 27px; }
#recommend h2 img{ width: 70px; height: auto; margin: 0 10px 0 0; vertical-align: top; }

#recommend li:not(last-of-type){ padding: 0 0 50px; }
#recommend li .ac-body{ padding: 20px 0 0; }
#recommend li h3{ padding: 0 0 20px; color: #fff; font-size: 20px; text-align: center; line-height: 1.7; font-family: 'Noto-Sans-JP-Bold'; }
#recommend li p{ font-size: 12px; color: #fff; line-height: 2; text-align: center; }



.ac-btn{ cursor: pointer; width: 40%; margin: 20px auto 0; font-size: 12px; color: #fff; background: #000; border-radius: 100px; text-align: center; }


/* ------------------------------------------------------------ bnr */
#bnr{ padding: 40px 0; }


/* ----------------------------- mobile ------------------------------- */
@media only screen and (max-width: 768px) {
	
	.animation{ width: 100%; }

}
