@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Kosugi+Maru&display=swap'); 
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Noto+Sans:wght@700&family=Caveat&family=M+PLUS+Rounded+1c:wght@500;700&display=swap');

/* CSS Document */
/*******************

LP style

********************/
html, body {
  box-sizing: border-box;
  margin: 0 auto;
  padding: 0;
  width: 100%;
}


/* content
--------------------------------------------------*/
.lpbox, #lpfooter {
  font-size: 14px;
  font-size: 3.7333vw;
  font-family: 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', 'Mayryo', 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
  color: #303030;
  line-height: 1.5em;
}

@media screen and (min-width:780px) {
  .lpbox, #lpfooter {
    font-size: 28px;
    max-width: 750px;
    margin: 0 auto;
  }
}

.lpbox a, #lpfooter a {
  color: inherit;
  text-decoration: none;
  font-size: inherit;
  font-weight: inherit;
}

.lpbox a:hover, #lpfooter a:hover {
  text-decoration: underline;
}

.lpbox span, #lpfooter span {
  font-size: inherit;
  font-weight: inherit;
}

.lpbox img,
#lpfooter img {
  width: 100%;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
  vertical-align: bottom;
}

.lpbox img.img-t,
#lpfooter img.img-t {
  vertical-align: top;
}

/* cart css reset */
.lpbox header,
.lpbox h1,
.lpbox h2,
.lpbox h3,
.lpbox p,
.lpbox dl,
.lpbox dt,
.lpbox dd,
.lpbox div,
.lpbox section,
.lpbox span {
  border: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  background: none;
  box-sizing: border-box;
  padding: 0;
  margin: 0 auto;
}

#lpfooter footer,
#lpfooter div,
#lpfooter p {
  border: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  background: none;
  box-sizing: border-box;
  padding: 0;
  margin: 0 auto;
}

#lpfooter ul,
#lpfooter li,
.lpbox ul,
.lpbox li {
  border: none;
  -webkit-box-shadow: none;
  box-shadow: none;
  background: none;
  box-sizing: border-box;
  padding: 0;
  margin: 0 auto;
  list-style: none;
}

/*-------------------------------------------
fix btn
-----------------------------------------------*/
.lpbox #fixbtn {
  position: fixed;
    padding: 30px 0 10px;
    color: #008080;
  bottom: -100%;
  left: 0;
  z-index: 999;
  width: 100%;
    margin: 0 auto;
        text-align: center;
  overflow: hidden;
  -webkit-transition: all .8s ease;
  -o-transition: all .8s ease;
  transition: all .8s ease;
}

.lpbox #fixbtn.fixbtn--visible {
  bottom: 0;
}
.lpbox #fixbtn > p {
    font-size: 28px;
    font-weight: bold;
    display: block;
    width: 100%;
    max-width: 750px;
    background: #ffffffcc;
    padding: 10px 0;
    line-height: 1;
}

@media screen and (max-width: 752px) {
    .lpbox #fixbtn > p {
        font-size: 5vw;
    }
}

.lpbox #fixbtn .fixbtn__box {
  position: relative;
  background: #ffffffcc;
  bottom: 0%;
  display: block;
  margin: 0 auto;
  max-width: 750px;
  width: 90%;
  height: 6em;
}

.lpbox #fixbtn .fixbtn__item__left {
  position: absolute;
  left: 0;
  top: 0;
  width: 48%;
}

/*.lpbox #fixbtn .fixbtn__item__left {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  width: 70%;
}*/

.lpbox #fixbtn .fixbtn__item__right {
  position: absolute;
  right: 0;
  top: 0;
  width: 48%;
}
.fixbtn__item a,
.cta_btn_item a {
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 100px;
	-moz-border-radius: 100px;
	-webkit-border-radius: 100px;
	-o-border-radius: 100px;
	-ms-border-radius: 100px;
}
.fixbtn__item a::after,
.cta_btn_item a::after {
    content: '';
    position: absolute;
    top: -100px;
    left: -100px;
    width: 50px;
    height: 50px;
    background-image: linear-gradient(100deg,  rgba(255, 255, 255, 0) 10%, rgba(255, 255, 255, 1) 100%, rgba(255, 255, 255, 0) 0%);
    animation-name: shiny;
    animation-duration: 4s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    pointer-events: none;
    z-index: 10;
}
@keyframes shiny {
    0% {
        transform: scale(0) rotate(25deg);
        opacity: 0;
    }

    50% {
        transform: scale(1) rotate(25deg);
        opacity: 1;
    }

    100% {
        transform: scale(50) rotate(25deg);
        opacity: 0;
    }
}
.cta_btn .cta_btn_wrap {
    padding:20px 5% !important;
}
.cta_fukidashi {
    margin-top: 20px !important;
}
@media screen and (max-width: 768px){
    .cta_fukidashi {
        padding:0 10px !important;
    }
    .cta_fukidashi + .cta_btn_wrap {
        padding-top: 10px !important;
    }
}
.cta_btn_wrap {
    display: flex;
    justify-content: space-between;
}
.cta_btn .cta_btn_item {
    width:48%;
}
.cta_btn .cta_btn_item img {
    max-width:100%;
}
.header {
    position: relative;
    z-index: 2;
}
.lpbox .fv__btn {
  position: absolute;
  bottom: 2.25em;
  left: 0;
  right: 0;
  width: 87.5%;
}
.lpbox .fv__btn {
  position: absolute;
  bottom: 2.25em;
  left: 0;
  right: 0;
  width: 87.5%;
}
/*-------------------------------------------
you tube
-----------------------------------------------*/
.lpbox .movie__area {
  position: relative;
}

#lpbox .movie__box iframe {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: 0 auto;
  width: 84%;
  height: 13em;
  border: 10px solid #99c7df;
}

/*-------------------------------------------
cta btn
-----------------------------------------------*/
.lpbox .cta__area {
  position: relative;
}

.lpbox .cta__area__btn {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 90%;
}

/*-------------------------------------------
footer
-----------------------------------------------*/
.lpbox .footer__link {
  text-align: left;
  width: 90%;
  color: #555555;
}

.lpbox .footer__link li a {
  display: block;
  border-bottom: 1px solid #d9d9d9;
  line-height: 3em;
  padding-left: 1em;
}

.lpbox .footer__link li a::before {
  content: url(../img/dot.png);
  font-size: 0.8em;
  color: #eaaab4;
  position: relative;
  top: -3px;
  padding-right: 0.5em;
}

.lpbox #copy {
  margin-top: 5em;
  background-color: #008080;
  font-size: 0.6em;
  text-align: center;
  color: #fff;
  padding: 1em 0;
}

/*-------------------------------------------
カウントアップ
-----------------------------------------------*/
.lpbox .fv__authority,
.lpbox .cl02__authority {
  position: relative;
}

.lpbox .fv__authority__number {
  position: absolute;
  top: 42%;
  left: 18%;
  font-size: 2.5em;
  color: #2e6ca6;
  font-weight: bold;
  text-shadow: 3px 2px 0px #ffffff;
}

.lpbox .cl02__authority__number {
  position: absolute;
  top: 22%;
  left: 18%;
  font-size: 2.5em;
  color: #2e6ca6;
  font-weight: bold;
  text-shadow: 3px 2px 0px #ffffff;
}



@media screen and (min-width:780px) {
  .lpbox .fv__authority__number {
  position: absolute;
  top: 42%;
  left: 14%;
  font-size: 2.9em;
  color: #2e6ca6;
  font-weight: bold;
  text-shadow: 3px 2px 0px #ffffff;
}

.lpbox .cl02__authority__number {
  position: absolute;
  top: 22%;
  left: 14%;
  font-size: 2.9em;
  color: #2e6ca6;
  font-weight: bold;
  text-shadow: 3px 2px 0px #ffffff;
}
}


/*-------------------------------------------
fvアニメーション
-----------------------------------------------*/
.lpbox .fv__box {
  position: relative;
  overflow: hidden;
}

.wow_fv_txt {
    position: absolute;
    width: 64%;
    height: auto;
    top: -3%;
    left: 1%;
}

/*<!--         .cta_area           -->*/
	

.cta_area {
    position: relative;
}
.cta_area .price_area {
    position: relative;
}
.cta_area .price_area p {
    position: absolute;
    right: 5%;
    bottom: 30%;
    font-size: 50px;
    font-weight: bold;
    color: #f85870;
}
@media screen and (max-width:750px) {
    .cta_area .price_area p {
        font-size: 7vw;
    }
}
.cta_area .btn_area {
    position: relative;
    width: 100%;
}
.cta_area .btn_area .btn_box {
    width: 100%;
    position: absolute;
    text-align: center;
    left: 50%;
    bottom: 10%;
    transform: translate(-50%,0);
    display: inline-flex;
    justify-content: center;
    padding: 0 10px;
}

.cta_bottom {
    padding: 20px 10px!important;
}


.reason {
    background: #008080!important;
    padding: 20px 10px!important;
}

.reason > div {
    margin: 0 0 10px!important;
}

.whats {
    position: relative;
}

.whats .whats_contents {
    position: relative;
}

.whats .whats_contents .whats_ttl {
    position: absolute;
    top: 8%;
    left: 50%;
    transform: translateX(-50%);
    width: 40%;
}

.nayami {
    margin-top: -13%!important;
    position: relative;
    z-index: 2;
}


.solution {
    padding-top: 30px!important;
    position: relative;
}

.solution .sl_wrap {
    position: relative;
}

.solution .sl_wrap .solution_ttl {
    position: absolute;
    left: 50%;
    transform: translate(-50%);
    top: 15%;
    width: 80%;
}

.solution .sl_wrap .fukidashi01 {
    position: absolute;
    left: 3%;
    top: 40%;
    width: 30%;
}

.solution .sl_wrap .fukidashi02 {
    position: absolute;
    right: 3%;
    top: 60%;
    width: 30%;
}


.medicine {
    background: #eefcfc!important;
    text-align: center;
    padding: 0 10px 40px!important;
}
.medicine.md2 .inner {
    padding: 0;
    width: 100%;
}
@media screen and (max-width: 752px) {
    
    
}
.md_ttl {
    width: 80%!important;
}

.md_read {
    width: 73%!important;
    display: block;
    margin: 5% 0;
}

.medicine p {
    font-size: 24px;
    margin: 20px auto;
}

.medicine .table_wrap {
    background: #fff;
    border-radius: 15px;
    border: 2px solid #008080;
    padding: 20px 10px;
}

.medicine table {
    border-collapse: collapse;
}

.medicine table thead th {
    background: #66b2b2;
    color: #fff;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    font-size: 20px;
}
.medicine table thead th span {
    font-size: .7em;
}
.medicine table thead tr th:nth-child(2) {
    border-right: 2px solid #fff!important;
}

.medicine table tbody th {
    color: #008080;
    background: #fffadd;
    border: 1px solid #ccc;
    font-size: 20px;
    font-weight: bold;
    width: 30%;
    line-height: 1.2;
    padding: 15px 0 15px 10px;
        text-align: left;
}

.medicine table tbody td {
    border: 1px solid #ccc;
    font-size: 16px;
    font-weight: bold;
    width: 35%;
    padding: 15px 10px;
    line-height: 1.4;
        text-align: left;
}
.medicine table tbody td .blue {
    color: #008080;
}
.medicine table tbody td .green {
    color: #368000;
}

@media screen and (max-width: 752px) {
    .medicine p {
        font-size: 4.5vw;
        line-height: 1.3;
    }
    
    .medicine table thead th {
        font-size: 3.4vw;
        padding: 8px 0;
    }
    
    .medicine table tbody th {
        padding-left: 5px;
        font-size: 3.2vw;
    }
    
    .medicine table tbody td {
        font-size: 3vw;
        padding: 10px 5px;
    }
}


.flow {
    position: relative;
}

.flow_ttl {
    position: absolute;
    top: 4%;
    left: 50%;
    transform: translateX(-50%);
    width: 70%;
}

.safety {
    position: relative;
    margin-top: -10%!important;
}

.safety_ttl {
    position: absolute;
    top: 9%;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
}


.qa {
    padding: 20px 10px!important;
}

.qa_ttl {
    width: 45%;
    margin: 0 auto 20px!important;
}

.qa .acd_item {
    border: 3px solid #66b2b2;
    padding: 20px;
}

.qa .acd_head {
    font-weight: bold;
    font-size: 18px;
    position: relative;
}
.qa .acd_head .acd_trigger {
    width: 5%;
    position: absolute;
    right: 1%;
    top: 50%;
    transform: translateY(-50%);
}
.qa .acd_contents {
    font-weight: normal;
    font-size: 16px;
}

@media screen and (max-width: 752px) {
    .qa .acd_item {
        padding: 15px 10px;
        
    }
    
    .qa .acd_head {
        font-size: 3.5vw;
        padding-right: 7%;
    }
    .qa .acd_contents {
        font-size: 3vw;
    }
    .qa .acd_icon {
        right: 0.5%!important;
    }
}

.annotation {
    background: #eee!important;
    padding: 20px 10px 30px!important;
}

.anno_wrap {
    background: #fff!important;
    border-radius: 10px;
    padding: 20px!important;
}

.annotation p {
    font-size: 15px;
    line-height: 1.4!important;
}
.annotation p strong {
    font-size: 16px;
    line-height: 1.6;
}
.annotation p .blue {
    color: #008080;
    font-weight: bold;
}

@media screen and (max-width: 752px) {
    
    .anno_wrap {
        padding: 15px 10px!important;
    }
    .annotation p {
        font-size: 3vw;
    }
    .annotation p strong {
        font-size: 3.2vw;
    }
}

.exitProtection_overlay {
    background: rgba(0, 0, 0, 0.7);
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99; 
    display: none;
}
.exitProtection {
    width: 400px !important;
    margin: 0 auto;
    position: fixed;
    left: 0;
    right: 0;
    top: 15%;
    border: none;
    z-index: 1000;
}
@media screen and (max-width: 768px){
    .exitProtection {
        width: 95% !important;
    }
}
.exitProtection a {
    outline:none;
}
.exitProtection .wrap {
    position: relative;
    overflow: auto !important;
    padding-top: 40px;
    height: 550px;
}
.exitProtection .wrap .cta_btn .cta_btn_wrap {
    padding:0 !important;
}
@media screen and (max-width: 768px){
    .exitProtection .wrap {
        width: 90vw;
        margin: 0 auto;
        height: 100%;
    }
    .exitProtection .wrap::before {
        content:"";
        display: block;
        padding-top: calc(440 / 400 * 100%); 
    }
}
.exitProtection .wrap .image {
    position: absolute;
    top:40px;
    left:0;
}
.exitProtection .wrap .image img {
    max-width:100%;
}
.exitProtection .wrap .modal_close {
    background: #8d8d8d;
    color: #fff !important;
    width: 40px;
    line-height: 40px;
    display: block;
    font-size: 20px;
    font-weight: bold;
    position: absolute;
    top: 0px;
    right: 0;
    text-align: center;
    cursor: pointer;
    text-decoration: none;
    z-index: 100; 
}
.exitProtection .wrap .ep_btn {
    position: absolute;
    width:90%;
    left:0;
    right:0;
    margin:0 auto;
    bottom:15px;
    z-index: 10;
}
.ui-dialog-titlebar {
    display: none; 
}
.ui-dialog {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    width: 90% !important; 
}

.cta_btn.ctb_top .cta_btn_wrap {
    padding: 10px!important;
}

.popup_box {
  transform-origin: center;
}

.wow.animate__animated {
  animation-fill-mode: both; /* or forwards */
}

/* 初期は非表示（WOWが付いてる時だけ） */
.wow {
  visibility: hidden;
}

/* 発火後は表示固定 */
.wow.animate__animated {
  visibility: visible;
  animation-fill-mode: both;
}

.btn_box{
  display: flex;
  gap: 16px;
}

.cta_animation{
  position: relative;
  display: inline-block;
  overflow: hidden;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  animation: autoPress 4s ease-in-out infinite; /* ← ここをaに */
  will-change: transform;
}

.cta_animation img{
  display: block;
  width: 100%;
  pointer-events: none;
}

/* キラン（前面に固定） */
.cta_animation::before{
  content: "";
  position: absolute;
  top: 0;
  left: -150%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent,
    rgba(255,255,255,0.6),
    transparent
  );
  transform: skewX(-20deg);
  animation: shine 3.5s infinite;
  z-index: 2;
  pointer-events: none;
}

/* 画像はスイープの下に置く */
.cta_animation img{
  position: relative;
  z-index: 1;
}

@keyframes shine{
  0%   { left: -150%; }
  60%  { left: -150%; }
  100% { left: 150%; }
}

/* 定期ポチポチ（a自体を縮める） */
@keyframes autoPress{
  0%   { transform: scale(1); }
  65%  { transform: scale(1); }

  /* 1回目 */
  70%  { transform: scale(0.98); }
  75%  { transform: scale(1); }

  /* 2回目 */
  80%  { transform: scale(0.98); }
  85%  { transform: scale(1); }

  100% { transform: scale(1); }
}

/* 2個目だけタイミングをずらす（おすすめ） */
/*.cta_animation:nth-child(2){
  animation-delay: .4s;
}
.cta_animation:nth-child(2)::before{
  animation-delay: .4s;
}*/


.acd_item{
  border: 1px solid #ddd;
  border-radius: 8px;
  margin-bottom: 16px;
  overflow: hidden;
    margin: 0 0 15px!important;
}

.acd_head{
  position: relative;
  padding: 5%; /* 右にアイコン分の余白を確保 */
  cursor: pointer;
  font-weight: 600;
}

/* absolute配置する“箱” */
.acd_icon{
  position: absolute;
  right: 16px;
  top: 50%;
  width: 5%;
  height: auto;
  transform: translateY(-50%); /* 縦中央寄せ（ここは固定） */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transform-origin: 50% 50%;
  transition: transform 0.3s ease;
}

/* 画像は箱にフィットさせるだけ */
.acd_icon img{
  display: block;
  width: 100%;
  height: 100%;
}

/* 開いたら回転（translateY込みで回す） */
.acd_item.is-open .acd_icon{
  transform: translateY(-50%) rotate(180deg);
}



/* 中身は最初だけ非表示 */
.acd_contents{
  display: none;
  padding: 0 16px 16px;
  line-height: 1.7;
  font-size: 14px;
}



