:root {
	--text-01: #fff;
	--color-01: #45A8D6;
	--color-02: #F5A61A;
	--color-03: #63B853;
    --fw-s:400;
    --fw-m:500;
    --fw-l:700;


	
	--ls-s: 0.075em;
	--ls-m: 0.025em;
	--ls-l: 0.05em;

    --font-sp: 2em;

}
html{ 
	scroll-behavior: smooth;
}

.main-slider .splide__slide img {
    transition: 8s ease-out;
}
.main-slider .splide__slide.is-active img {
  transform: scale(1.15);
  transition-delay: 0s;
}


body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: var(--fw-m);
  font-style: normal;
  color: #231815;
  letter-spacing:  0.1em ;
}

*[class*="regular"]{ 
    font-weight: var(--fw-s);
}
*[class*="medeium"]{ 
    font-weight: var(--fw-m);
}

*[class*="bold"]{ 
    font-weight: var(--fw-l);
}


.pc_only {
    display: block;
}

.sp_only {
    display: none;
}

.fadein {
    transform: translateY(40px);
    opacity: 0;
     transition: all 0.8s ease-out;
}

.fadein.is-active {
    transform:translateY(0);
    opacity: 1;
}




/* コンタクトフォーム */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea,
select {
	    width: 100%;
    background-color: #EFEFEF;
    color: #040000;
    border: 1px solid #727171;
    border-radius: 3px;
    margin-top: 8px;
}

input[type="text"],
input[type="email"],
/* input[type="number"], */
input[type="tel"] {
    width: 100%;
}
.wpcf7-form input[type="submit"] {
    text-align: center;
    border-radius: 6px;
    display: inline-block;
    padding: 22px 60px;
    color: #fff;
    background-color: #60A43E;
    width: fit-content;
    font-size: 22px;
    font-weight: 500;
}

.contact_submit {
    margin-top: 40px;
    letter-spacing: var(--ls-s);
}

.contact_submit p {
    display: flex;
    align-items: center;
    flex-direction: column;
}


.cf-area input:focus,.cf-area textarea:focus {
	outline: none;
	background: #dde2e9;
}


.main-contents {
width:600px;
    margin: 0 auto;
}

.logo h1 {
    max-width: 100px;
    margin-left: 10px;
    margin-top: 17px;
}

p[class^="hero_text"] {
    margin-left: 10px;
    margin-right: 10px;
}
/* p[class*="bold"] {
    font-weight: 600;
} */

.hero_text_wrap {
    margin-top: 40px;
	text-align:center;
}
.hero_text-01  {
    position: relative;
    text-align: center;
	display: inline-block;
    margin: 0 auto;
}
.hero_text-01::before,
.hero_text-01::after {
    content: "";
    position: absolute;
    background-repeat: no-repeat;
    top: 16px; 
    background-size: contain;
    width: 40px;
    height: 80px;
}

.hero_text-01::before {
    background-image: url(../img/hero_ttl-01.svg);
    left: -60px;
}
.hero_text-01::after {
    background-image: url(../img/hero_ttl-02.svg);
    right: -60px;
}

.hero_text-01 .strong {
    font-size: 34px;
    color: var(--color-01);
}

.hero_text-02 {
    margin-top: 37px;
    font-size: 23px;
}

.under_line {
    transition: opacity 2s ease, background-size 1s ease;
    background: linear-gradient(var(--color-02)) 0 100% / 0 8px no-repeat;
    /* padding-bottom: 4px; */
}

.hero_text-02 .strong {
    font-size: 32px;
}
.hero_text-02 .under_line,
.ttl_sale .under_line,
.ttl_price-data .under_line {
    background: linear-gradient(var(--color-01)) 0 100% / 0 8px no-repeat;
}

.under_line.active {
    background-size: 100% 8px;
}



.hero_text-03 {
    margin-top:32px;
    margin-bottom: 20px;
    font-size: 22px;
}

.hero_text-04 {
    letter-spacing: var(--ls-s);
    text-align: center;
    font-size: 18px;
}

.hero_btn {
    display: block;
    margin: 100px auto 0;
    width: 300px;
}

.hero_img-02 {
    position: relative;
}

.hero_img-02 picture {
     filter: drop-shadow(0px 7px 0px #3C8939);
}
.hero_img-02::before {
    position: absolute;
    content: "";
    background-image: url(../img/hero-02.png);
    top: -70px;
    left: 50%;
    width: 253px;
    height: 80px;
    background-size: contain;
    background-repeat: no-repeat;
    transform: translateX(-50%);
}

.reach {
    padding: 75px 0 50px;
}

.contents_wrap {
    padding: 0 24px; 
}

.reach_ttl {
    font-size: 24px;
    margin-bottom: 55px;
} 
.reach_ttl  .strong {
    color:#ED711A;
}
.reach_ttl .under_line {
    font-size: 36px;
    letter-spacing: var(--ls-s);
}

.reach_box-cmn {
    display: flex;
    justify-content: space-between;
    margin-top: 17px;
}

.reach_area-cmn p {
    font-size: 18px;
}

.reach_area-cmn .line_wave {
    adding-bottom: 5px;
  background: url(../img/under_line-01.svg) repeat-x bottom left / auto 5px;
}

.reach_area-cmn .strong {
     color:#ED711A;
}

.reach_box-cmn .reach_text-bg{
    padding: 14px;
    background-color: var(--color-02);
    height: fit-content;
    border-radius: 8px;

}

.reach_box-cmn p {
    font-size: 14px;
    color: #fff;
    letter-spacing: var(--ls-m);
}

.reach_area-cmn:last-of-type{
    margin-top: 83px;
    position: relative;
}

.reach_area-cmn:last-of-type::before {
    content: "";
    position: absolute;
    background-image: url(../img/arrow.svg);
    width: 46px;
    height: 41px;
    background-repeat: no-repeat;
    top: -76px;
    left: 50%;
    transform: translateX(-50%);
}

.benefit {
    background-color: #196CB5;
    padding: 39px 0 27px;
}

.ttl_beneft {
    font-size: 36px;
    text-align: center;
    color: #fff;
    position: relative;
    z-index: 0;
    letter-spacing: var(--ls-s);
}

.ttl_beneft::before {
    position: absolute;
    content: "";
    background-image: url(../img/benfit_ttl-02.svg);
    width: 195px;
    height: 31px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1;
    background-repeat: no-repeat;

}
.benefit_box {
    background-color: #fff;
    border-radius: 7px;
    padding: 60px 40px 30px; 
    margin-top: -30px;
    text-align: center;
}

.benefit_text-01 {
    font-size: 14px;
    letter-spacing: var(--ls-l);
}

.benefit_img-01 {
    max-width: 210px;
    width: calc(351.64 / 208 * 100%);
    margin: 0 auto;
}
.benefit_img-02 {
    max-width: 260px;
     width: calc(351.64 / 260 * 100%);
    margin: 31px auto 27px;
}
.benefit_img-03 {
    max-width: 159.21px;
    width: calc(159.21 / 159.21 * 100%);
    margin: 47px auto 0px;
}
.benefit_img-04 {
    max-width: 241.53px;
    width: calc(241.53 / 159.21 * 100%);
    margin: 16px auto 10px;
}

.ben_text {
	margin-bottom:50px;
	font-size: 11px;
}

.subttl_benefit-02 {
    color:var(--color-01);
    letter-spacing: 0.07em;
}
.ttl_benefit-02 {
    font-size: 20px;
    margin-top: 15px;
    letter-spacing: 0.12em;
}
.ttl_benefit-02 .small{
    font-size: 16px;
}
.ttl_benefit-02 .big{
    font-size: 26px;
}

.benift_text {
    font-size: 16px;
    text-align: left;
    margin-top: 30px;
    line-height: 2;
    letter-spacing: var(--ls-l);
}

.sale {
    padding: 60px 0 46px;
}

.ttl_sale {
    font-size: 24px;
}

.ttl_sale .under_line {
    /* background-color: var(--color-01); */
}
.ttl_sale .strong{
    font-size: 48px;
}

.ttl_sale .color1 {
    color: var(--color-01);
}

.color1 .big {
    font-size: 36px;
}

.sale_img-01 {
    margin:37px 0 22px;
    width: 100%;
}

.sale_box-01 p {
    padding: 20px 44px;
    text-align: center;
    color: #fff;
    background-color: #45A8D6;
    border-radius: 8px;
    position: relative;
    font-size: 18px;
}

.sale_box-01 p::after {
    content: "";
    position: absolute;
    background-image: url(../img/arrow-01.svg);
    bottom: -25px;
    left: 50%;
    transform: translateX(-50%);
    width: 28px;
    height: 31px;
}

.sale_box-01 {
    display: inline-block;
    margin: 0 auto;
    display: flex;
    justify-content: center;
}

.sale_text-01,
.sale_text-02,
.sale_text-03 {
    margin-top: 65px;
    text-align: center;
    letter-spacing: var(--ls-s);
}

.sale_text-01 .strong,
.sale_text-02 .strong,
.sale_text-03 .strong  {
    font-size: 21px;
    color: var(--color-01);
}
.sale_text-01 .big, 
.sale_text-02 .big, 
.sale_text-03 .big { 
    font-size: 31px;
}

.sale_img-02, 
.sale_img-03 {
    width: calc(243.2 / 393  * 100%);
    margin: 42px auto 0;
}

.sale_img-cmn {
     width: calc(248.17 / 393  * 100%);
     margin: 13px auto 0;
}

.voice_article {
    box-shadow:0px 0px 17px rgba(35,24,21,0.75);
    background-color: #FEF8F0;
    border-radius: 26px;
    padding: 23px 0 50px;
    text-align: center;
}

.voice_ttl {
    padding: 24px 43px ;
    color: #ED711A;
    background-color: #fff;
    display: inline-block;
    border-radius: 36px;
}

.voice_img-01 {
    margin: 31px auto 0;
    width: calc(132.26 / 393  * 100%);
}

.voice_img-01 img {
     filter: drop-shadow(0 0 10px rgba(35, 24, 21,0.75));
}

.voice_ttl-sub {
    margin-top: 37px;
    border-radius: 22px;
    background-color: #F5A61A;
    color: #fff;
    display: inline-block;
    font-size: 11px;
    padding: 12px 30px;
    position: relative;
    letter-spacing: 0.175em;
}

.voice_ttl-sub::after {
    content: "";
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top: 8px solid #F5A61A;
}

.voice_ttl-01 {
    margin-top: 24px;
    font-size: 24px;
    letter-spacing: var(--ls-l);
}

.voice_ttl-01 .small {
    font-size: 16px;
}

.voice_box-01 {
    text-align: left;
    padding: 42px 14px 0 34px;
    letter-spacing: var(--ls-l);
    font-size:18px;
}

.voice_box-01 li{
    margin-top: 10px;
}

.voice_img-02 {
    margin: 61px auto 0;
    width: calc(226.46 / 393  * 100%);
}

.voice_text-01 {
    text-align: left;
    margin-top: 41px;
    padding: 0 20px  ;
    letter-spacing: var(--ls-l);
    font-size: 18px;
    line-height: 1.9;
}

.voice_link-01 {
    display: inline-block;
    margin-top: 30px;
}

.voice_link-01 span {
    padding: 13px 58px;
    background-color: #fff;
    border: 2px solid #F5A61A;
    color: #F5A61A;
    border-radius: 24px;
    display: inline-block;
    letter-spacing: 0.175em;
    font-size: 11px;
}

.ttl_cmn-01 {
    font-size: 24px;
}

.ttl_cmn-01  .under_line {
    /* background-size: 100% 2px;
    background-position: 0px 100%;
    background-color: var(--color-01);   */
}

.ttl_price  {
     letter-spacing: var(--ls-s);
}
.ttl_cmn-01 .color {
    color: #ED711A;
}

.ttl_cmn-01 .strong {
    font-size: 48px;
}

.price {
    padding: 54px 0 0px;
}

.price_box-01 ul {
    padding: 0 20px 10px;
    letter-spacing: 0;
}

.price_box-01 li {
    margin-top: 24px;
    font-size: 17px;
}

.price_box-01 li:first-child {
    margin-top: 60px;
    font-size: 18px;
}

.price_box-01 li::marker {
    color: #F5A61A;
}

.price_box-02 {
    margin-top: 55px;
}

.ttl_price-data .color {
    color: var(--color-01);
}
.ttl_price-data .under_line {
    font-size: 36px;
    /* background-color: var(--color-01); */
}

.price_img-01 {
    margin-top: 55px;
}

.price_box-03 {
    margin-top: 78px;
}

.price_text-01 {
    font-size: 18px;
    text-align: center;
    letter-spacing: var(--ls-m);
}

.price_text-01  .strong {
    font-size: 22px;
}

.price_img-02 {
    margin-top: 43px;
}

.price_text-02 {
    font-size: 14px;
    margin-top: 63px;
    text-align: center;
    letter-spacing: var(--ls-m);
}

.price_text-02 .strong {
    font-size: 20px;
}
.reco {
    overflow: hidden;
}

.reco .contents_wrap {
    margin-bottom: 20px;
}
.reco_item {
    padding: 32px 24px;
    background-color: #ECF7FB;
    box-shadow:0px 0px 17px rgba(35,24,21,0.75);
    border-radius: 21px;
    padding: 23px 0 50px;
    text-align: center;
    margin-top: 40px;
    letter-spacing: var(--ls-l);
    height: 100%;
}

.reco_item {
    display: flex;
    flex-direction: column;
}

.reco_ttl {
    padding: 24px 43px ;
    color: #196CB5;
    background-color: #fff;
    display: inline-block;
    border-radius: 36px;
    font-size: 22px;
    font-weight: 600;
    width: fit-content;
    margin: 0 auto;
    letter-spacing: 0.07em;
}

.reco_img-01 {
    margin-top: 31px;
}

.reco_img-01 img {
    filter: drop-shadow(0 0 12px rgba(62, 58, 57,0.7));
    width: calc(132.26 / 393  * 100%);
}

.reco_ttl-sub {
    margin-top: 40px;
    font-size: 16px;
}

.reco_ttlname{
    margin-top: 28px;
    font-size: 24px;
}

.reco_text {
    margin-top: 48px;
    font-size: 18px;
    font-weight: 400;
    padding: 0 24px;
    text-align: left;
    line-height: 1.9;
    flex-grow: 1;
}


.splide__track {
    overflow: visible;
}

.splide__arrows button, input[type="button"], input[type="reset"], input[type="submit"] {
   background-color: transparent;
    border: transparent;
}

.fq {
    padding: 54px 0;
}

.fq_img-01 {
     width: calc(100.8 / 393  * 100%);
     margin:0 auto;
}

/* アコーディオン */

  .accordion {
    margin-top: 52px;
    letter-spacing: var(--ls-m);
  }
  .accordion-header{
      border-top: 1px solid #45A8D6;
    }

    .accordion-header:last-of-type {
        border-bottom: 1px solid #45A8D6;
    }
  
    .accordion-content { 
       font-size:16px;
       border-top: 1px solid #45A8D6;
    }

    .accordion-content:last-of-type {
        border-top: transparent;
    }
  
    .accordion-header {
      position: relative;
      padding: 15px 60px 15px 20px;
      cursor: pointer;
    font-size:17px;
    }
/*   
    .accordion-header:hover{
    color:var(--color-01);
     transition: all 0.4s;
  } */
    
  .post-content dt {
      font-weight:normal;   
   }
    .accordion-content{
      padding:23px 40px 23px 20px;
      display: none;
    }
    
    .accordion-content.active{
      display: block;
  
    }
    
    /* .accordion-header::before, */
    .accordion-header::after{
    content: "";
    position: absolute;
    right: 20px;
    top: 0;
    bottom: 0;
    margin: auto 0;
    transition: all 0.3s;
    background-image: url(../img/fq-04.svg);
    width: 16px;
    height: 16px;
    background-repeat: no-repeat;
    background-size: contain;
    }
    
    
    .accordion-header.active::after{
      transform: rotate(180deg);
    }

    .aco_header_text {
        display: inline-block;
        padding: 0 20px 0 10px ;
        position: relative;
    }

    .aco_content_text {
        position: relative;
         display: inline-block;
        padding-left: 10px;
    }
.aco_content_text .color {
	color:#EC8F13;
}
    .aco_header_text::before,
    .aco_content_text::before {
    position: absolute;
    content: "";
    background-image: url(../img/fq-02.svg);
    width: 16px;
    height: 16px;
    top: 7px;
    left: -13px;
    background-repeat: no-repeat;
    background-size: contain;
    }

    .aco_content_text::before {
        background-image: url(../img/fq-03.svg);
        /* left: -33px; */
    }
  
    .medical_list {
    justify-content:space-between;
      display: flex;
      flex-wrap: wrap;
      margin-bottom: 20px;
    list-style:none !important;
  }
  .medical_list li {
     margin-left:20px;
    position:relative;
  }
  
  .medical_list li::before{
      position:absolute;
    content:"";
    top: 50%;
    transform: translateY(-50%);
    left:-20px;
    width:6px;
    height:6px;
    background-color:#937960;
    border-radius:50%;
  }
  .medical_list li {
      min-width: calc(32% - 60px);
  }
  /* アコーディオンここまで */

.speech {
    background-color: #F5C224;
    padding:56px 28px;
}

.speech_ttl {
    color: #fff;
    font-size: 26px;
    letter-spacing: 0.27rem;
}

.speech_box {
    background-color: #fff;
    border-radius: 16px;
    padding: 32px 22px;
    margin-top: 46px;
    font-weight: 400;
    font-size: 16px;
    position: relative;
}

.speech_box::before {
    content: "";
    background: url(../img/speech-01.png);
    position: absolute;
    background-repeat: no-repeat;
    top: -70px;
    right: 0;
    width: 114px;
    height: 143px;
    background-size: contain;
}
 
.speech_box h3 {
    font-weight: 500;
    letter-spacing: var(--ls-s);
}
.speech_box h3 .strong{
    font-size: 22px;
}

.speech_box p:first-of-type {
	margin-top: 41px;
}

.speech_box p {
    letter-spacing: var(--ls-l);
    line-height: 2;
}

.speech_box .color {
    color: #ED711A;
}
.contact {
    padding: 170px 0 0;
}
.contact_ttl {
    text-align: center;
    font-size: 21px;
    position: relative;
    letter-spacing: var(--ls-s);
}
.contact_main {
    letter-spacing: 0.05em;
}
.contact_ttl::before {
    content: "";
    background: url(../img/contact-01.png);
    position: absolute;
    background-repeat: no-repeat;
    top: -70px;
    left: 50%;
    transform: translateX(-50%);
    width: 293.76px;
    height: 53.7px;
    background-size: contain;
}

.contact_ttl .strong {
    font-size: 26px;
    color: var(--color-03);
}

.button {
  background-color: transparent; /* ボタンの背景を透明にする */
  height: 50px;
  transition: .2s;
  width: 50px;
}
/* 矢印共通のスタイル */
.button::before {
  background-repeat: no-repeat;
  background-size: contain;
  bottom: 0;
  content: "";
  height: 125.36px;
  left: -24px;
  margin: auto;
  position: absolute;
  top: 0;
  max-width: 50px;
  width: calc(45.04 / 393  * 100%);
}
/* 前の矢印 */
.prev::before {
  background-image: url(../img/slide_arrow.png);
}
/* 次の矢印 */
.next::before {
  background-image: url(../img/slide_arrow.png);
  right: -24px;
  left: inherit;
  transform: rotate(180deg);
}

.contact_footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 67px 0 56px;
    font-size: 12px;
    letter-spacing: var(--ls-s);
	gap:10px;
}

.link-01 {
    width: calc(84.56 / 393  * 100%);
}

.contact_footer a {
    text-decoration: none;
    border: none;
    color: #040000;
}

.lp_footer {
  background-color: #EC8F13;
  letter-spacing: var(--ls-s);
}

.lp_footer_in {
    padding: 14px 0;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 12px;
}

.c_red {
	color:#EC6526;
}

.contact_main p {
	margin-top:20px;
}

.contact_main textarea {
    min-height: 5lh;
	field-sizing:content;
}

.reserve_btn {
    position: fixed;
    left: calc(50% + 250px);
    bottom: 0;
    width: 100px;
	bottom: 100px;
}

.reserve_btn a {
	display:inline-block;
}

.reco_item .voice_link-01 span {
	    border: 2px solid var(--color-01);
    color: var(--color-01);
	    padding: 13px 30px;
}
@media screen and (max-width :600px) {
	.main-contents {
    width: 100%;
	}
    .pc_only{display: none;} 
    .sp_only{display: block;}

    .kv_text {
    top: 179px;
    }
    .reserve_btn {
    position: fixed;
    right: 20px;
    bottom: 40px;
		left:inherit;

    }
}