@charset "UTF-8";
/*-----------------------------------------------------------------------------------------------------
共通設定(PC)
--------------------------------------------------------------------------------------------------------*/
html,
body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 62.5%;
  font-style: normal;
  line-height: 1.5;
  background-color: #fff;
  scroll-behavior: smooth;
  color: #232323;
}
body .sp-item {
  display: none !important;
}
body .pc-item {
  display: block !important;
}
/*リンク文字の設定*/
a {
  text-decoration: underline;
}
a:link,
a:visited {
  color: #39f;
}
a:hover,
a:active {
  color: #f60;
}
/*ボタンホバー設定(半透明)*/
.btn:hover {
  opacity: 0.7;
}
img {
  width: 100%;
}
/*-----------------------------------------------------------------------------------------------------
各エリアの設定(PC)
-----------------------------------------------------------------------------------------------------*/
/*ページ全体*/
.container {
  max-width: 750px;
  margin: 0 auto;
  padding: 0;
}
/*PCで表示、スマホで非表示*/
.for_pc {
  display: block;
}
.for_sp {
  display: none;
}
/*-----------------------------------------------------------------------------------------------------
CTAエリア(PC)
-----------------------------------------------------------------------------------------------------*/
.cta-area {
  position: relative;
  margin: 40px 0;
}
.cta-mail {
  position: absolute;
  top: 70%;
  left: 5%;
  width: 90%;
}
.cta-mail:hover {
  cursor: pointer;
  opacity: 0.6;
  transition-duration: 0.3s;
}
.cta-line {
  position: absolute;
  top: 86%;
  left: 5%;
  width: 90%;
}
.cta-line:hover {
  cursor: pointer;
  opacity: 0.6;
  transition-duration: 0.3s;
}
/*-----------------------------------------------------------------------------------------------------
CTAエリア（特典なし）(PC)
-----------------------------------------------------------------------------------------------------*/
.cta-area2 {
  position: relative;
  margin: 40px 0;
}
.cta-mail2 {
  position: absolute;
  top: 43%;
  left: 5%;
  width: 90%;
}
.cta-mail2:hover {
  cursor: pointer;
  opacity: 0.6;
  transition-duration: 0.3s;
}
.cta-line2 {
  position: absolute;
  top: 74%;
  left: 5%;
  width: 90%;
}
.cta-line2:hover {
  cursor: pointer;
  opacity: 0.6;
  transition-duration: 0.3s;
}
/*-----------------------------------------------------------------------------------------------------
ベネフィットエリア(PC)
-----------------------------------------------------------------------------------------------------*/
.benefit {
  position: relative;
}
.youtube {
  position: absolute;
  top: 87%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
}
.youtube iframe {
  width: 100%;
}
/*-----------------------------------------------------------------------------------------------------
3stepエリア(PC)
-----------------------------------------------------------------------------------------------------*/
.step3 {
  margin-top: 0;
  background-image: url("../images/bg_3step.webp");
  padding: 40px 0 60px;
}
.step3-sub {
  text-align: center;
}
.step3-sub-number {
  width: 20%;
  padding: 20px 0;
  margin: 0 auto;
}
.step3-sub-img {
  width: 90%;
  margin: 40px auto 0px;
}
.step3-sub-dtl-img {
  margin: 20px auto 0px;
}
.step3-sub-arrow {
  width: 20%;
  margin: 40px auto 0px;
}
.step3-subttl {
  font-size: 4.4rem;
  font-weight: bold;
  color: #106024;
  line-height: 1.2em;
}
/*-----------------------------------------------------------------------------------------------------
特徴エリア(PC)
-----------------------------------------------------------------------------------------------------*/
.tokucho-sub1 {
  text-align: center;
  margin: 60px auto;
}
.tokucho-sub2 {
  text-align: center;
  background-color: #e7efe9;
  margin: 40px auto;
  padding: 60px 0;
}
.tokucho-subttl {
  font-size: 4.4rem;
  font-weight: bold;
  color: #106024;
  line-height: 1.2em;
  padding: 20px 0 0 0;
}
.tokucho-subdtl {
  text-align: justify;
  padding: 40px 40px 0 40px;
  font-size: 2.8rem;
  line-height: 1.2em;
}
.tokucho-subdtl span {
  color: #ff7631;
  font-weight: bold;
}
/*--------------------------------------------------------
お客様の声エリア(PC)
--------------------------------------------------------*/
.voice {
  background-color: #fff;
}
.voice-sub-wrapper {
  position: relative;
}
.voice-sub {
  margin: 60px auto;
}
.voice-sub-img-1 {
  position: absolute;
  top: 0;
  left: 3%;
}
.voice-sub-img-2 {
  position: absolute;
  top: 0;
  left: 71%;
}
.voice-sub-img-3 {
  position: absolute;
  top: 0;
  left: 3%;
}
.voice-subttl-1 {
  font-size: 4.4rem;
  font-weight: bold;
  color: #106024;
  line-height: 1.2em;
  text-align: right;
  padding-right: 40px;
}
.voice-subttl-zokusei-1 {
  font-size: 2.8rem;
  font-weight: bold;
  line-height: 1.2em;
  text-align: right;
  padding: 10px 40px 10px 0;
}
.voice-subttl-2 {
  font-size: 4.4rem;
  font-weight: bold;
  color: #106024;
  line-height: 1.2em;
  text-align: left;
  padding-left: 40px;
}
.voice-subttl-zokusei-2 {
  font-size: 2.8rem;
  font-weight: bold;
  line-height: 1.2em;
  text-align: left;
  padding: 10px 0 10px 40px;
}
.voice-subdtl-area {
  background: linear-gradient(to bottom, #d9e6bd 0%, rgba(255, 255, 255, 0) 60%);
}
.voice-subdtl-1 {
  text-align: justify;
  padding: 40px 40px 0 200px;
  font-size: 2.8rem;
  line-height: 1.5em;
}
.voice-subdtl-2 {
  text-align: justify;
  padding: 40px 200px 0 40px;
  font-size: 2.8rem;
  line-height: 1.5em;
}
.voice-subdtl-1 span,
.voice-subdtl-2 span {
  color: #ff7631;
  font-weight: bold;
}
/*--------------------------------------------------------
よくある質問エリア(PC)
--------------------------------------------------------*/
.faq {
  padding: 60px 0 40px 0;
  margin: 0 auto;
  background-color: #f2f7e9;
}
.faq-accordion {
  width: 100%;
  position: relative;
  margin: 0 auto;
  padding: 40px 20px 0 20px;
}
.faq-q {
  font-size: 2.8rem;
  font-weight: bold;
  padding: 18px 20px 22px 45px;
  margin: 0;
  border-top: 1px solid #ccc;
  position: relative;
  line-height: 1.5;
  text-align: left;
}
.faq-q::before {
  content: "Q";
  width: 30px;
  height: 30px;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center;
  color: #106024;
  font-size: 2.8rem;
  font-weight: bold;
  position: absolute;
  left: 5px;
  top: 22px;
}
.faq-q::after {
  position: absolute;
  content: "\03e";
  right: 3px;
  top: 20px;
  transition: transform 0.2s;
}
.faq-q span {
  font-size: 1.8rem;
}
.faq-q.open::after {
  transform: rotate(90deg);
}
.faq-a {
  padding: 0 20px 22px 45px;
  transition: transform 0.2s;
  font-size: 2.8rem;
  position: relative;
  line-height: 1.5;
  text-align: justify;
  margin: 0;
}
.faq-a::before {
  content: "A";
  width: 30px;
  height: 30px;
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center;
  color: #ff7631;
  font-size: 2.8rem;
  font-weight: bold;
  position: absolute;
  left: 5px;
  top: 6px;
}
/*--------------------------------------------------------
店舗紹介エリア(PC)
--------------------------------------------------------*/
.shop-info {
  padding: 60px 0 40px 0;
  margin: 0 auto;
  background-color: #f2f7e9;
}
.shop-info-table {
  border-collapse: collapse;
  border: 1px solid #ccc;
  border-left: none;
  border-right: none;
  width: 90%;
  margin: 10px auto;
  padding: 40px 0;
}
.shop-info-table th {
  font-size: 2.8rem;
  font-weight: bold;
  width: 22%;
  border-top: 1px solid #ccc;
  text-align: left;
  padding-left: 20px;
  vertical-align: middle;
}
.shop-info-table td {
  font-size: 2.8rem;
  width: 78%;
  padding: 15px 0 15px 10px;
  border-top: 1px solid #ccc;
  text-align: justify;
  line-height: 180%;
}
.map {
  margin: 40px auto;
  text-align: center;
}
.map iframe {
  text-align: center;
  width: 90%;
}
/*-----------------------------------------------------------------------------------------------------
フッター部分(PC)
-----------------------------------------------------------------------------------------------------*/
.footer {
  text-align: center;
  padding: 30px;
  font-size: 1.6rem;
  background-color: #106024;
}
.footer a {
  color: #fff;
  text-decoration: none;
}
.footer a:hover {
  text-decoration: underline;
}
.footer .menu {
  margin: 10px auto;
}
.footer .copyright {
  margin: 0;
  padding: 20px 0 0 0;
  color: #fff;
}
/*-----------------------------------------------------------------------------------------------------
スマホ用
-----------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 768px) {
  body {
    min-width: inherit;
    height: 100%;
  }
  body .sp-item {
    display: block !important;
  }
  body .pc-item {
    display: none !important;
  }
  body .sp-item img {
    width: 100%;
  }
  /* スクロールボタン*/
  .btn-fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    display: none; /* 初期状態で非表示 */
    justify-content: space-around; /* ボタンを均等に配置 */
    z-index: 1000; /* 常に前面に表示 */
    transition: opacity 0.3s ease-in-out; /* スムーズな表示 */
  }
  /* 表示時のスタイル */
  .btn-fixed.visible {
    display: flex; /* 表示状態 */
    opacity: 1;
  }
  /* 個別ボタンのスタイル */
  .btn-fixed a {
    width: calc((100% / 3));
  }
  /*-----------------------------------------------------------------------------------------------------
ベネフィットエリア(PC)
-----------------------------------------------------------------------------------------------------*/
  .youtube iframe {
    width: 100%;
    height: 180px;
  }
  /*-----------------------------------------------------------------------------------------------------
3stepエリア(SP)
-----------------------------------------------------------------------------------------------------*/
  .step3 {
    padding: 20px 0 40px;
  }
  .step3-sub-img {
    margin: 20px auto 0px;
  }
  .step3-sub-dtl-img {
    margin: 10px auto 0px;
  }
  .step3-sub-number {
    width: 30%;
  }
  .step3-sub-arrow {
    width: 30%;
    margin: 20px auto 0px;
  }
  .step3-subttl {
    font-size: 3rem;
    font-weight: bold;
    color: #106024;
    line-height: 1.2em;
  }
  /*-----------------------------------------------------------------------------------------------------
特徴エリア(SP)
-----------------------------------------------------------------------------------------------------*/
  .tokucho-subttl {
    font-size: 2.6rem;
  }
  .tokucho-subdtl {
    font-size: 1.8rem;
    padding: 20px 20px 0 20px;
  }
  /*--------------------------------------------------------
お客様の声エリア(SP)
--------------------------------------------------------*/
  .voice-sub {
    margin: 30px auto 40px;
  }
  .voice-sub-img-1 {
    position: absolute;
    top: 15%;
    left: 3%;
    width: 20%;
  }
  .voice-sub-img-2 {
    position: absolute;
    top: 15%;
    left: 71%;
    width: 22%;
  }
  .voice-sub-img-3 {
    position: absolute;
    top: 15%;
    left: 3%;
    width: 15%;
  }
  .voice-subttl-1 {
    font-size: 2.8rem;
    padding-right: 20px;
  }
  .voice-subttl-zokusei-1 {
    font-size: 2.2rem;
    padding: 10px 20px 10px 0;
  }
  .voice-subttl-2 {
    font-size: 2.8rem;
    padding-left: 20px;
  }
  .voice-subttl-zokusei-2 {
    font-size: 2.2rem;
    padding: 10px 0 10px 20px;
  }
  .voice-subdtl-area {
    background: linear-gradient(to bottom, #d9e6bd 0%, rgba(255, 255, 255, 0) 60%);
  }
  .voice-subdtl-1 {
    padding: 20px 20px 0 25%;
    font-size: 1.8rem;
  }
  .voice-subdtl-2 {
    padding: 20px 25% 0 20px;
    font-size: 1.8rem;
  }
  /*--------------------------------------------------------
よくある質問エリア(SP)
--------------------------------------------------------*/
  .faq {
    padding: 40px 0 20px 0;
  }
  .faq-accordion {
    padding: 20px 20px 0 20px;
  }
  .faq-q {
    font-size: 1.8rem;
    padding: 20px 20px 20px 45px;
  }
  .faq-q::before {
    font-size: 1.8rem;
    top: 18px;
  }
  .faq-a {
    font-size: 1.8rem;
  }
  .faq-a::before {
    font-size: 1.8rem;
    top: 0px;
  }
  /*--------------------------------------------------------
店舗紹介エリア(SP)
--------------------------------------------------------*/
  .shop-info {
    padding: 40px 0 20px 0;
  }
  .shop-info-table th {
    font-size: 1.8rem;
    padding-left: 0px;
  }
  .shop-info-table td {
    font-size: 1.8rem;
  }
  .map iframe {
    width: 90%;
    height: 200px;
  }
  /*-----------------------------------------------------------------------------------------------------
フッター部分(PC)
-----------------------------------------------------------------------------------------------------*/
  .footer {
    text-align: center;
    padding: 30px 30px 100px 30px; /*下部固定ボタンを考慮して下余白を多めに*/
    font-size: 1.6rem;
    background-color: #106024;
  }
  .footer a {
    color: #fff;
    text-decoration: none;
  }
  .footer a:hover {
    text-decoration: underline;
  }
  .footer .menu {
    margin: 10px auto;
  }
  .footer .copyright {
    margin: 0;
    padding: 20px 0 0 0;
    color: #fff;
  }
}
