@charset "UTF-8";

/**
 * common.css
 *
 * #base
 *  #reset.............リセット用
 *  #default...........要素用
 *
 * #common module
 *  #全ページ共通ヘッダー
 *  #全ページ共通フッター
 *  #全ページ共通追従ボタン
 *
 * #utility.........ヘルパークラス
 *  #Margin
 *  #Padding
 *  #font
 *  #position
 *  #other.............clearfix等
*/


/* ==========================================================================
   #base
   ========================================================================== */

/* #reset
   ----------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6, p, ul, li {
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4, h5, h6, th { font-weight: normal; }

ul { list-style: none; }

strong { font-weight: inherit; }


/* #default
   ----------------------------------------------------------------- */
body {
  font-family: YakuHanJPs, NotoSansJP-regular, "Hiragino Sans", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  font-size: 3.623vw;
  line-height: 1.9;
  font-weight: normal;
  letter-spacing: 0.06em;
  color: #412807;
  background-color: #fff;
}

a { color: #4a9ded; }

img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

*, *:before, *:after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* ボタンリセット */
button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}



/* #webfont
   ----------------------------------------------------------------- */
/* NotoSansJP
----------------------- */
@font-face {
  font-family: "NotoSansJP-bold";
  font-style: normal;
  font-weight: normal;
  font-display: swap;
  src: url('../../common/font/NotoSansCJKjp-Bold.woff') format('woff');
}

@font-face {
  font-family: "NotoSansJP-medium";
  font-style: normal;
  font-weight: normal;
  font-display: swap;
  src: url('../../common/font/NotoSansCJKjp-Medium.woff') format('woff');
}

@font-face {
  font-family: "NotoSansJP-regular";
  font-style: normal;
  font-weight: normal;
  font-display: swap;
  src: url('../../common/font/NotoSansCJKjp-Regular.woff') format('woff');
}

/* NotoSansJP（縦書き）
----------------------- */
@font-face {
  font-family: "NotoSansJP-medium-tate";
  font-style: normal;
  font-weight: normal;
  font-display: swap;
  src: url('../../common/font/NotoSansCJKjp-Medium-tate.woff') format('woff');
}

/* Roboto
----------------------- */
@font-face {
  font-family: "Roboto-bold";
  font-style: normal;
  font-weight: normal;
  font-display: swap;
  src: url('../../common/font/Roboto-Bold.woff') format('woff');
}


/* YakuHanJP
----------------------- */
/*! Yaku Han JP (Gothic - Small Amount) v2.0.0 SIL by Qrac / Based on Noto Sans CJK JP */
@font-face {
  font-family: "YakuHanJPs";
  font-style: normal;
  font-weight: 100;
  font-display: swap;
  src: url("../font/YakuHanJPs/YakuHanJPs-Thin.eot");
  src: url("../font/YakuHanJPs/YakuHanJPs-Thin.woff2") format("woff2"), url("../font/YakuHanJPs/YakuHanJPs-Thin.woff") format("woff");
}

@font-face {
  font-family: "YakuHanJPs";
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url("../font/YakuHanJPs/YakuHanJPs-Light.eot");
  src: url("../font/YakuHanJPs/YakuHanJPs-Light.woff2") format("woff2"), url("../font/YakuHanJPs/YakuHanJPs-Light.woff") format("woff");
}

@font-face {
  font-family: "YakuHanJPs";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../font/YakuHanJPs/YakuHanJPs-DemiLight.eot");
  src: url("../font/YakuHanJPs/YakuHanJPs-DemiLight.woff2") format("woff2"), url("../font/YakuHanJPs/YakuHanJPs-DemiLight.woff") format("woff");
}

@font-face {
  font-family: "YakuHanJPs";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../font/YakuHanJPs/YakuHanJPs-Regular.eot");
  src: url("../font/YakuHanJPs/YakuHanJPs-Regular.woff2") format("woff2"), url("../font/YakuHanJPs/YakuHanJPs-Regular.woff") format("woff");
}

@font-face {
  font-family: "YakuHanJPs";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../font/YakuHanJPs/YakuHanJPs-Medium.eot");
  src: url("../font/YakuHanJPs/YakuHanJPs-Medium.woff2") format("woff2"), url("../font/YakuHanJPs/YakuHanJPs-Medium.woff") format("woff");
}

@font-face {
  font-family: "YakuHanJPs";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../font/YakuHanJPs/YakuHanJPs-Bold.eot");
  src: url("../font/YakuHanJPs/YakuHanJPs-Bold.woff2") format("woff2"), url("../font/YakuHanJPs/YakuHanJPs-Bold.woff") format("woff");
}

@font-face {
  font-family: "YakuHanJPs";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../font/YakuHanJPs/YakuHanJPs-Black.eot");
  src: url("../font/YakuHanJPs/YakuHanJPs-Black.woff2") format("woff2"), url("../font/YakuHanJPs/YakuHanJPs-Black.woff") format("woff");
}


/* ==========================================================================
   #common module
   ========================================================================== */
/* #全ページ共通パーツ
   ----------------------------------------------------------------- */


/* #全ページ共通ヘッダー
   ----------------------------------------------------------------- */
.l-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  line-height: 1;
  background-color: #fff;
}

.header-logo {
  display: block;
  width: 39.614vw;
  margin: 3.14vw 0 0 4.106vw;
}
.header02-logo {
  display: block;
  width: 35.024vw;
  margin: 2.657vw 0 0 4.831vw;
}

/* ハンバーガーボタン */
.gnav-trigger {
  align-items: center;
  padding: 3.865vw 4.106vw;
  cursor: pointer;
}

.gnav-trigger-txt {
  font-size: 3.2vw;
  line-height: 1;
}

.gnav-trigger-ico {
  position: relative;
  display: inline-block;
  width: 5.314vw;
  height: 4.106vw;
  vertical-align: middle;
}

.gnav-trigger-ico span {
  display: inline-block;
  box-sizing: border-box;
  position: absolute;
  left: 0;
  width: 100%;
  height: 0.483vw;
  background-color: #a3bf1c;
}

.gnav-trigger-ico span:nth-of-type(1) {
  top: 0;
}
.gnav-trigger-ico span:nth-of-type(2) {
  top: 1.932vw;
}
.gnav-trigger-ico span:nth-of-type(3) {
  bottom: 0;
}


/* ハンバーガーメニュー
----------------------- */
body.gnav-open {
  position: relative;
  overflow: hidden;
}

.gnav-overlay {
  content: "";
  display: block;
  width: 0;
  height: 0;
  background-color: rgba(0, 0, 0, 0.5);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5000;
  opacity: 0;
  transition: opacity .5s;
}

.gnav-overlay.gnav-open {
  width: 100%;
  height: 100%;
  opacity: 1;
}

.l-gnav {
  transform: translateX(100vw);
  position: fixed;
  top: 0;
  right: 0;
  z-index: 6000;
  width: 86.957vw;
  height: 100%;
  background-color: #f5f1e8;
  transition: transform .4s;
}

body.gnav-open .l-gnav {
  transform: translateX(0);
}

.gnav-trigger-close {
  position: absolute;
  top: 0;
  left: -13.043vw;
  width: 13.043vw;
  padding: 3.865vw 0;
  background-color: #fff;
  cursor: pointer;
}

.gnav-trigger-ico-close {
  position: relative;
  display: block;
  margin: 0 auto;
  width: 5.314vw;
  height: 5.314vw;
  vertical-align: middle;
}

.gnav-trigger-ico-close span {
  display: inline-block;
  box-sizing: border-box;
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 0.483vw;
  background-color: #a3bf1c;
}

.gnav-trigger-ico-close span:nth-of-type(1) {
  transform: rotate(-45deg);
}
.gnav-trigger-ico-close span:nth-of-type(2) {
  transform: rotate(45deg);
}

.gnav-inner {
  padding: 4.831vw 0 5.314vw;
  height: 100%;
  overflow-y: scroll;
}

.gnav-bnr {
  display: block;
  margin: 0 3.382vw 0 3.865vw;
}

.gnav-bnr + .gnav-bnr {
  margin-top: 1.691vw;
}

.gnav-list {
  margin-bottom: 15.7vw;
  border-top: 1px solid #a3bf1c;
}

.gnav-list li {
  font-size: 3.623vw;
  line-height: 1;
  border-bottom: 1px solid #a3bf1c;
}

.gnav-list a {
  display: block;
  padding: 5.556vw 7.246vw;
  text-decoration: none;
  color: #412807;
}

.gnav-logo {
  display: block;
  width: 39.855vw;
  margin: 0 auto;
  line-height: 1;
}

/* 家づくりの流れ7ステップ
----------------------- */
.gnav-step-headline {
  display: block;
  width: 65.217vw;
  margin: 7.729vw auto 4.106vw;
}

.gnav-step-list {
  list-style: none;
  margin: 0 0 8.454vw;
  padding: 0;
}

.gnav-step-list > li + li { margin-top: 2.415vw; }

.gnav-step-category {
  position: relative;
  padding: 5.314vw 12.56vw;
  font-family: NotoSansJP-medium;
  font-weight: normal;
  font-size: 4.106vw;
  line-height: 1;
  background-color: #e7ebd3;
}

.gnav-step-category .number {
  position: absolute;
  top: 0;
  left: 4.831vw;
  bottom: 0;
  margin: auto 0;
  width: 5.314vw;
  height: 5.314vw;
  padding-top: 0.966vw;
  font-family: "Roboto-bold";
  line-height: 1;
  font-weight: normal;
  font-size: 3.382vw;
  text-align: center;
  color: #fff;
  background-color: #a2bf1f;
  border-radius: 0.483vw;
}

.gnav-step-category:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 4.831vw;
  margin: auto;
  width: 4.831vw;
  height: 0.725vw;
  background-color: #a2bf1f;
  border-radius: 0.362vw;
  transition: transform .4s;
}

.gnav-step-category:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 6.763vw;
  margin: auto;
  width: 0.725vw;
  height: 4.831vw;
  background-color: #a2bf1f;
  border-radius: 0.362vw;
  transition: opacity .4s;
}

.gnav-step-category.js-gnav-step-close:before {
  transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  transform: rotate(180deg);
}

.gnav-step-category.js-gnav-step-close:after {
  opacity: 0;
}

/* コラムが用意されないとき */
.gnav-step-category-nocolumn {
  position: relative;
  padding: 5.314vw 12.56vw;
  font-family: NotoSansJP-medium;
  font-weight: normal;
  font-size: 4.106vw;
  line-height: 1;
  background-color: #e7ebd3;
}

.gnav-step-category-nocolumn .number {
  position: absolute;
  top: 0;
  left: 4.831vw;
  bottom: 0;
  margin: auto 0;
  width: 5.314vw;
  height: 5.314vw;
  padding-top: 0.966vw;
  font-family: "Roboto-bold";
  line-height: 1;
  font-weight: normal;
  font-size: 3.382vw;
  text-align: center;
  color: #fff;
  background-color: #a2bf1f;
  border-radius: 0.483vw;
}

.gnav-step-in { display: none; }

.gnav-step-in-list {
  padding: 0 4.831vw;
  margin: 1.208vw 0;
}

.gnav-step-in-list li + li {
  border-top: 1.5px dotted #bebebe;
}

.gnav-step-in-list a {
  display: flex;
  align-items: center;
  padding: 4.831vw 0;
}

.gnav-step-thumb {
  position: relative;
  width: 22.947vw;
  height: 22.947vw;
  margin: 0 3.382vw 0 0.725vw;
  border-radius: 1.208vw;
  overflow: hidden;
  flex-shrink: 0;
}

.gnav-step-thumb img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  height: 100%;
  transform: translate(-50%, -50%);
}

.gnav-step-ttl {
  font-family: NotoSansJP-bold;
  font-size: 3.382vw;
  line-height: 2;
  color: #537b4a;
  text-decoration: underline;
}

/* もっと見るボタン */
.gnav-step-btn {
  display: block;
  width: 74.879vw;
  margin: 0 auto 8.454vw;
  padding: 4.831vw 6.039vw;
  text-align: center;
  font-family: NotoSansJP-bold;
  font-weight: normal;
  letter-spacing: normal;
  font-size: 3.865vw;
  line-height: 1;
  text-decoration: none;
  color: #604e35;
  background: #fff url('../../images/parts/ico_arrow_green03.png') center right 12px no-repeat;
  background-size: 8.454vw;
  border-radius: 13.285vw;
  box-shadow: 0 0 12px 4px rgba(95, 88, 43, 0.04);
}

/* #20241022gnav改修
   ----------------------------------------------------------------- */
.gnav-list-main {
  margin: 5.43478vw 0;
  border-bottom: 2px solid #d7d7d7;
}
.gnav-list-main .heading {
  padding: 2.415vw 4.831vw;
  font-size: 3.382vw;
  line-height: 1;
  color: #83786a;
  background-color: #dcd9ce;
}

.gnav-list-main li a {
  display: block;
  position: relative;
  padding: 4.589vw 4.589vw 4.589vw 16.908vw;
  font-size: 3.865vw;
  line-height: 1;
  letter-spacing: 0;
  font-family: NotoSansJP-bold;
  color: #412807;
  text-decoration: none;
  font-weight: normal;
  border-top: 2px solid #d7d7d7;
}
.gnav-list-main li a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 4.831vw;
  margin: auto;
  width: 8.45411vw;
  height: 8.45411vw;
}
.gnav-list-main li a.simulator::before {
  background: url('../../images/header/ico_simulator.png") no-repeat center / contain;
}
.gnav-list-main li a.simulator02::before {
  background: url('../../images/header/ico_simulator02.png") no-repeat center / contain;
}
.gnav-list-main li a.tenjijo::before {
  background: url('../../images/header/ico_web_tenjijo.png") no-repeat center / contain;
}
.gnav-list-main li a.column::before {
  background: url('../../images/header/ico_column.png") no-repeat center / contain;
}
.gnav-list-main li a.case::before {
  background: url('../../images/header/ico_case.png") no-repeat center / contain;
}
.gnav-list-main li a.voice::before {
  background: url('../../images/header/ico_voice.png") no-repeat center / contain;
}
.gnav-list-main li a.about::before {
  background: url('../../images/header/ico_about.png") no-repeat center / contain;
}

.gnav-list-main .heading + li > a {
  border-top: none;
}


.gnav-list02 {
  padding: 0 3.62319vw 0 6.03865vw;
}
.gnav-list02 li + li {
  margin-top: 3.62319vw;
}
.gnav-list02 li a {
  position: relative;
  display: block;
  font-size: 3.38164vw;
  line-height: 1;
  letter-spacing: 0;
  color: #412807;
  text-decoration: none;
  padding-left: 2.41546vw;
}
.gnav-list02 li a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent transparent transparent #a4bf1c;
  border-width: 1.20773vw 0px 1.20773vw 1.20773vw;
}


/* #ロゴのみのシンプルなヘッダー
   ----------------------------------------------------------------- */
.l-header-simple {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  line-height: 1;
  border-top: 0.966vw solid #7ba900;
  background-color: #fff;
}

.header-simple-logo {
  display: block;
  width: 39.614vw;
  margin: 3.14vw 0 3.14vw 4.106vw;
}


/* ページ上部のCTAバナー
   ----------------------------------------------------------------- */
.l-cta-bnr {
  display: flex;
  justify-content: space-between;
  padding: 1.691vw 3.623vw 2.899vw 2.415vw;
  background-color: #f5f1e8;
}

.cta-bnr {
  display: block;
  width: 46.377vw;
}

/* ページ上部のCTAバナー（LINE対応版）
   ----------------------------------------------------------------- */
.l-cta-bnr-v2 {
  padding: 3.62319vw 3.62319vw 2.41546vw;
  background-color: #f5f1e8;
}
.cta-bnr-wrap {
  display: flex;
  justify-content: space-between;
}
.cta-txt {
  font-size: 2.84698vw;
  line-height: 1;
  text-align: center;
  font-family: NotoSansJP-medium;
  margin-bottom: 2.37248vw;
}
.cta-bnr-v2 {
  display: block;
  width: 45.28986vw;
}


/* ページ下部のオススメブロック（人気記事など）
   ----------------------------------------------------------------- */
/* 人気記事
----------------------- */
.l-support {
  padding: 9.662vw 0 11.111vw;
  background-color: #a2bf1f;
}

.support-ttl {
  margin: 0 4.83092vw 5.797vw;
}

.support-list {
  padding: 0 4.831vw;
}

.support-list li + li {
  margin-top: 4.106vw;
}

.support-list a {
  display: block;
  box-shadow: 0px 0px 25px 7px rgba(95, 88, 43, 0.04);
}

.support-consul {
  position: relative;
  background-color: #fff;
  margin: 3.62319vw 4.83092vw 0;
  border-radius: 2.41546vw;
}
.support-consul::before {
  content: "";
  position: absolute;
  top: -2.9vw;
  left: 0;
  right: 0;
  margin: auto;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent transparent #fff transparent;
  border-width: 0 3.01932vw 3.01932vw 3.01932vw;
  z-index: 1;
}
.support-consul-wrap {
  padding: 6.03865vw 4.83092vw;
}
.support-consul-ttl {
  margin-bottom: 3.62319vw;
}
.support-consul-txt {
  font-size: 3.62319vw;
  line-height: 1.6;
  letter-spacing: 0;
  margin-top: 3.62319vw;
}
.support-cta {
  background-color: #dbf0c8;
  padding: 2.41546vw 4.83092vw 4.83092vw;
  border-radius: 0 0 2.41546vw 2.41546vw;
}
.support-cta-img {
  margin-right: -4.83092vw;
}

/* 人気記事
----------------------- */
.l-popular {
  padding: 9.662vw 0 13.285vw;
  background-color: #f8f6f2;
}

.popular-ttl {
  margin: 0 auto 8.333vw;
  width: 51.875vw;
}

.popular-list {
  padding: 0 4.831vw;
  margin-bottom: 6.522vw;
}

.popular-list li+li {
  margin-top: 4.106vw;
}

.popular-item-link {
  display: block;
  padding-bottom: 4.831vw;
  text-decoration: none;
  color: #412807;
  background-color: #fff;
  border-radius: 1.208vw;
  box-shadow: 0 0 12px 4px rgba(95, 88, 43, 0.04);
}

.popular-item-thumb {
  position: relative;
  width: 100%;
  height: 47.101vw;
  border-radius: 1.208vw 1.208vw 0 0;
  overflow: hidden;
}

.popular-item-thumb img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  height: 100%;
  transform: translate(-50%, -50%);
}

.popular-item-ttl {
  margin-top: 3.382vw;
  padding: 0 4.106vw;
  font-family: "NotoSansJP-bold";
  font-weight: normal;
  font-size: 3.382vw;
  line-height: 1.46;
}

.popular-item-inner {
  display: flex;
  justify-content: space-between;
  padding: 0 4.106vw;
  margin-top: 3.623vw;
  line-height: 1;
}

.popular-item-category {
  font-size: 2.899vw;
  color: #d2cbc2;
}

.popular-item-category:before {
  content: "#";
  padding-right: 1.449vw;
}

.popular-item-date {
  font-size: 3.14vw;
  color: #d2cbc2;
}

.popular-item-date:before {
  content: "更新日：";
}

.popular-more-link {
  text-align: center;
  line-height: 1;
}

.popular-more-link a {
  position: relative;
  padding: 0 3.623vw 1.208vw 0;
  font-family: NotoSansJP-bold;
  font-weight: normal;
  font-size: 3.14vw;
  color: #8ea80e;
}

.popular-more-link a:before {
  content: "";
  position: absolute;
  display: block;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 2.899vw;
  height: 1.932vw;
  background: url('../../images/parts/ico_arrow_green02.png') no-repeat;
  background-size: contain;
}


/* コラム一覧
----------------------- */
.l-category {
  padding: 7.729vw 0 16.908vw;
  background-color: #f8f6f2;
  border-top: 1.5px dotted #a6c51c;
}

.category-ttl {
  margin: 0 auto 5.797vw;
  width: 24.879vw;
}

.category-inner {
  margin: 0 6.039vw;
  background-color: #fff;
  border-radius: 1.208vw;
  box-shadow: 0 0 12px 4px rgba(95, 88, 43, 0.04);
  overflow: hidden;
}

.category-bloc {
}

.category-bloc a {
  text-decoration: none;
  color: #412807;
}

.category-bloc-ttl {
  font-family: NotoSansJP-bold;
  font-weight: normal;
  font-size: 4.106vw;
  line-height: 1;
  background-color: #a2bf1f;
}

.category-bloc-ttl a {
  display: block;
  padding: 4.831vw;
  color: #fff;
}

.category-list {
  padding: 5.314vw 5.797vw 8.696vw;
  font-size: 3.623vw;
  line-height: 1.5;
}

.category-list li {
  position: relative;
  padding-left: 2.899vw;
}

.category-list li:before {
  content: "";
  position: absolute;
  top: 1.932vw;
  left: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.845vw 0 0.845vw 0.966vw;
  border-color: transparent transparent transparent #a2bf1f;
}

.category-list li+li {
  margin-top: 7.729vw;
}

.category-list li a {
  position: relative;
}

.category-list li a:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.725vw;
  width: 100%;
  height: 0.242vw;
  background-color: #a2bf1f;
}

.category-list .category-list {
  padding: 7.729vw 0 0 4.106vw;
}


/* コラム一覧（2024.05.14改修）
----------------------- */
.l-category.renew {
  letter-spacing: 0;
  padding: 7.729vw 4.83092vw 16.908vw;
  background-color: #fff;
  border-top: 1.5px solid #a6c51c;
}
.l-category.renew .category-inner {
  margin: 0;
  box-shadow: none;
  border-radius: 0;
}
.l-category.renew .category-bloc-ttl {
  position: relative;
  font-family: NotoSansJP-bold;
  font-weight: normal;
  font-size: 4.106vw;
  line-height: 1;
  background-color: #509408;
  border-radius: 1.208vw;
}
.l-category.renew .category-bloc-ttl::before {
  position: absolute;
  top: 0;
  left: 2.41546vw;
  bottom: 0;
  margin: auto 0;
  width: 6.763vw;
  height: 6.763vw;
  padding-top: 1.20773vw;
  font-family: "Roboto-bold";
  font-weight: normal;
  font-size: 4.831vw;
  text-align: center;
  color: #509408;
  background-color: #fff;
  border-radius: 0.604vw;
}
.l-category.renew .category-bloc-ttl.number01::before { content: "1"; }
.l-category.renew .category-bloc-ttl.number02::before { content: "2"; }
.l-category.renew .category-bloc-ttl.number03::before { content: "3"; }
.l-category.renew .category-bloc-ttl.number04::before { content: "4"; }
.l-category.renew .category-bloc-ttl.number05::before { content: "5"; }
.l-category.renew .category-bloc-ttl.number06::before { content: "6"; }
.l-category.renew .category-bloc-ttl.number07::before { content: "7"; }

.category-inner {
  counter-reset: title_number 0;
}
.category-bloc .number::before {
  counter-increment: title_number 1;
  content: counter(title_number);
}

.l-category.renew .category-bloc-ttl a {
  display: block;
  padding: 4.831vw 4.831vw 4.831vw 10.86957vw;
  color: #fff;
  text-decoration: underline;
}
.l-category.renew .category-list {
  padding: 5.314vw 2.41546vw 8.696vw;
  font-size: 3.38164vw;
  line-height: 1.5;
}
.l-category.renew .category-list li {
  position: relative;
  padding-left: 4.10628vw;
}
.category-list li:before {
  content: "";
  position: absolute;
  top: 1.932vw;
  left: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 1.20773vw 0 1.20773vw 1.20773vw;
  border-color: transparent transparent transparent #509408;
}
.l-category.renew .category-list li.category-list-ttl {
  position: relative;
  font-size: 3.62319vw;
  font-family: NotoSansJP-bold;
  line-height: 1.25;
  padding: 1.20773vw 0 1.20773vw 4.10628vw;
  margin-bottom: 4.83092vw;
  border-left: 0.72464vw solid #509408;
}
.l-category.renew .category-list li.category-list-ttl::before {
  content: "";
  position: absolute;
  top: auto;
  bottom: -1.20773vw;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #ddd;
  border: none;
}
.l-category.renew .category-list li+li {
  margin-top: 3.62319vw;
}
.l-category.renew .category-list li+li.category-list-ttl {
  margin-top: 7.24638vw;
}



/* 共通カレンダー（TOP、診断結果、そのほかLPなどで使用。変更しない。）
※/reserve/、/consultation-expert/form/は、layer.cssのカレンダー）
   ----------------------------------------------------------------- */
/* 1.日付選択　カレンダー
----------------------- */
.l-common-calendar .common-calendar-ttl {
  padding: 4.348vw 0;
  font-family: "NotoSansJP-medium";
  font-weight: normal;
  font-size: 4.106vw;
  line-height: 1.59;
  letter-spacing: normal;
  text-align: center;
  background-color: #ffec81;
  border-radius: 10.87vw;
}

.l-common-calendar .common-calendar-ttl .point {
  color: #549500;
}

.l-common-calendar .common-calendar-item {
  padding: 2.415vw 0;
}


/* 日付選択 */

/* 中身が切り替わる枠 */
.l-common-calendar .calendar-wrap {
  margin-bottom: 7.246vw;
  border-radius: 2.415vw;
  overflow: hidden;
  border: 1px solid #537b4a;
}

.l-common-calendar .calendar-header {
  margin-bottom: 3.382vw;
  display: flex;
  justify-content: center;
  align-items: center;
}

.l-common-calendar .l-calendar {
  margin-top: 6.039vw;
  padding: 3.623vw 0 3.382vw;
  font-family: "NotoSansJP-medium";
  color: #412807;
  background-color: #fff;
  border: 0.483vw solid #549500;
  border-radius: 2.899vw;
}

.l-common-calendar .calendar {
  border-spacing: 1.932vw 1.932vw;
  font-size: 4.106vw;
  margin: 0 auto;
  text-align: center;
}

.l-common-calendar .Week {
  font-size: 3.865vw;
  line-height: 1;
}

.l-common-calendar .Week th {
  padding-bottom: 3.623vw;
  font-weight: normal;
}

.l-common-calendar .calendar-month {
  padding: 0 2.415vw;
  font-size: 5.556vw;
  line-height: 1;
}

.l-common-calendar .calendar-prev,
.l-common-calendar .calendar-next {
  position: relative;
  width: 9.662vw;
  height: 9.662vw;
}

.l-common-calendar .calendar-prev::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2.415vw;
  height: 2.415vw;
  border-left: 1px solid #412807;
  border-top: 1px solid #412807;
  transform: translate(-50%, -50%) rotate(-45deg);
}

.l-common-calendar .calendar-next::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2.415vw;
  height: 2.415vw;
  border-right: 1px solid #412807;
  border-top: 1px solid #412807;
  transform: translate(-50%, -50%) rotate(45deg);
}

.l-common-calendar .day-btn {
  z-index: 1;
  position: relative;
  display: block;
  width: 9.662vw;
  height: 9.662vw;
}

.l-common-calendar .day-btn.disabled {
  color: #d6cec3;
  cursor: default;
  pointer-events: none;
}

.l-common-calendar .day-btn.enabled {
  color: #412807;
}

.l-common-calendar .day-btn.enabled::before {
  z-index: -1;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  opacity: 0.1;
  border-radius: 50%;
}

/* 日付選択された時 */
.l-common-calendar .day-btn.enabled.selected {
  color: #fff;
}

.l-common-calendar .day-btn.enabled.selected::before {
  background-color: #549500;
  opacity: 1;
}

/* 2.時間選択
----------------------- */
.l-common-calendar .l-time {
  margin-top: 7.246vw;
  padding: 0;
  background-color: transparent;
}

.l-common-calendar .time-list {
  padding: 0;
  margin-bottom: 6.039vw;
  height: 74.879vw;
  overflow-y: scroll;
}

.l-common-calendar .time-list li+li {
  margin-top: 2.415vw;
}

.l-common-calendar .calendar-footer {
  display: none;
}

.l-common-calendar .time-btn {
  padding: 4.106vw 0;
  font-family: "NotoSansJP-medium";
  font-size: 6.039vw;
  color: #412807;
  background-color: #fff;
  border: 1px solid #549500;
  border-radius: 2.899vw;
  position: relative;
  display: block;
  width: 100%;
  line-height: 1;
}

.l-common-calendar .time-btn.selected {
  color: #fff;
  background-color: #549500;
}

.l-common-calendar .time-btn::before {
  content: none;
}

.l-common-calendar .common-calendar-day-btn {
  background-color: #fff;
  display: block;
  width: 100%;
  padding: 5.072vw 0;
  font-family: "NotoSansJP-medium";
  font-size: 3.865vw;
  line-height: 1;
  color: #64441a;
  border: 1px solid #64441a;
  border-radius: 7.246vw;
}

/* 3.連絡先入力
----------------------- */
.l-common-calendar .common-calendar-guide {
  display: flex;
  align-items: flex-start;
  margin: 7.729vw 0 2.899vw;
  font-size: 4.348vw;
  line-height: 1.4;
  font-family: "NotoSansJP-medium";
}

.l-common-calendar .common-calendar-hissu-ico {
  margin: 0.966vw 2.415vw 0 0;
  padding: 0.725vw 1.208vw;
  font-size: 3.14vw;
  line-height: 1;
  background-color: #dc6d00;
  color: #fff;
  border-radius: 1.208vw;
}
.l-common-calendar .l-common-calendar-input {
  position: relative;
  margin-bottom: 8.696vw;
}
.l-common-calendar .common-calendar-input-name-wrap {
  display: flex;
  justify-content: space-between;
  line-height: 1;
}
.l-common-calendar .common-calendar-input-name {
  position: relative;
  width: 42.271vw;
}
.l-common-calendar .common-calendar-input {
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  border: none;
  display: block;
  width: 100%;
  height: 15.7vw;
  padding: 4.348vw 10.87vw 4.348vw 4.831vw;
  font-size: 3.865vw;
  line-height: 1;
  color: #412807;
  background-color: #fff;
  box-shadow: 0 0 12px 4px rgba(95, 88, 43, 0.04);
  border-radius: 1.691vw;
  border: 1px solid #604E35;
}

/* Chrome 例文 */
.l-common-calendar .common-calendar-input::-webkit-input-placeholder,
.l-common-calendar .common-calendar-textarea::-webkit-input-placeholder {
  font-size: 3.865vw;
  color: #b1a690;
}

/* Firefox 例文 */
.l-common-calendar .common-calendar-input::-moz-placeholder,
.l-common-calendar .common-calendar-textarea::-moz-placeholder {
  font-size: 3.865vw;
  color: #b1a690;
}

/* 画面幅が小さい時用のスタイル */
@media screen and (max-width: 413px) {
  .l-common-calendar .common-calendar-textarea,
  .l-common-calendar .common-calendar-input { font-size: 16px }
}

.l-common-calendar .common-calendar-input:focus {
  border: 2px solid #ec5945;
}
.l-common-calendar .common-calendar-input:not(:placeholder-shown) {
  background: #fff url('../../images/reserve/ico_check.svg') top 5.314vw right 3.623vw no-repeat;
  background-size: 5.797vw 4.348vw;
}

/* focus時、placeholderを非表示に */
.l-common-calendar .common-calendar-input:focus::placeholder {
  color: transparent;
}

/* 自由入力欄 */
.l-common-calendar .l-common-calendar-textarea {
  position: relative;
  margin-bottom: 8.454vw;
  box-shadow: 0 0 12px 4px rgba(95, 88, 43, 0.04);
  border-radius: 1.691vw;
}
.l-common-calendar .common-calendar-textarea {
  outline: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  display: block;
  width: 100%;
  height: 28.986vw;
  min-height: 28.986vw;
  max-height: 60.386vw;
  padding: 4.831vw;
  font-size: 3.865vw;
  line-height: 1.7;
  border: none;
  border-radius: 2.415vw;
  color: #412807;
  background-color: #fff;
  resize: vertical;
  border: 1px solid #604E35;
}

.l-common-calendar .common-calendar-btn-wrap {
  display: flex;
  justify-content: space-between;
}

.l-common-calendar .common-calendar-back-btn,
.l-common-calendar .common-calendar-next-btn {
  width: 29.952vw;
  padding: 4.831vw 0;
  font-family: "NotoSansJP-medium";
  font-size: 4.106vw;
  line-height: 1;
  background-color: #fff;
  border: 1px solid #64441a;
  border-radius: 2.415vw;
}

.l-common-calendar .common-calendar-next-btn {
  margin-left: 4.831vw;
  color: #fff;
  background-color: #549500;
  border: none;
}

/* 入力欄エラーのときはチェックマーク非表示 */
.l-common-calendar .common-calendar-input.err:not(:placeholder-shown) {
  background: #fff;
}

/* エラー文 */
.l-common-calendar .formErrorMsg {
  line-height: 1.4;
}

.l-common-calendar .errMsg {
  padding: 0 1.691vw 0 0;
  font-size: 3.382vw;
  color: #ee7261;
}


.l-common-calendar .time-info-txt {
  margin-top: 2.899vw;
  font-size: 3.382vw;
  line-height: 1;
}


/* 4.質問入力
----------------------- */
.l-common-calendar .common-calendar-ninni-ico {
  margin: 0.966vw 2.415vw 0 0;
  padding: 0.725vw 1.208vw;
  font-size: 3.14vw;
  line-height: 1;
  background-color: #fff;
  border: 1px solid #888;
  color: #888;
  border-radius: 1.208vw;
}

.l-common-calendar .common-calendar-submit-btn {
  display: block;
  width: 55.556vw;
  padding: 4.831vw 0;
  font-family: "NotoSansJP-medium";
  font-size: 4.106vw;
  line-height: 1;
  color: #fff;
  background-color: #549500;
  border-radius: 2.415vw;
}


/* カレンダーのお申し込み完了
----------------------- */
.l-common-calendar .common-calendar-finish-txt {
  margin: 9.662vw 0 9.662vw 11.111vw;
  font-family: "NotoSansJP-medium";
  font-size: 4.348vw;
  line-height: 1.4;
  letter-spacing: normal;
}

.l-common-calendar .common-calendar-finish-info {
  margin: 0 4.831vw;
  font-size: 3.623vw;
  line-height: 1.7;
}



/* 下層共通フッター
   ----------------------------------------------------------------- */
.l-footer {
  padding-top: 9.662vw;
  background-color: #648d5b;
}

.footer-menu {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 9.662vw;
  padding: 0 8.454vw;
  gap: 3.623vw 0;
}

.footer-menu li {
  display: flex;
  align-items: center;
  min-height: 8.213vw;
  font-size: 3.382vw;
  line-height: 1.2;
}

.footer-menu li:nth-child(odd) {
  width: 44.377vw;
}

.footer-menu a {
  display: block;
  position: relative;
  padding-left: 2.899vw;
  text-decoration: none;
  color: #fff;
}

.footer-menu a:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: auto;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0.845vw 0 0.845vw 0.966vw;
  border-color: transparent transparent transparent #fff;
}

.footer-copyright {
  display: block;
  padding: 4.106vw 0;
  text-align: center;
  font-size: 3.14vw;
  line-height: 1;
  color: #fff;
  background-color: #537b4a;
}



/* 診断ページ共通フッター
   ----------------------------------------------------------------- */
.l-footer-shindan {
  padding: 3.623vw 0 25.36232vw;
  text-align: center;
  line-height: 1;
  background-color: #fff;
}

.footer-shindan-copyright {
  font-size: 3.14vw;
  color: #666;
}



/* ==========================================================================
   #utility
   ========================================================================== */
/* #Margin
   ----------------------------------------------------------------- */
.m0{ margin:0!important; }

.mr0 { margin-right: 0!important; }
.mr5 { margin-right: 5px!important; }
.mr10 { margin-right: 10px!important; }
.mr15 { margin-right: 15px!important; }
.mr20 { margin-right: 20px!important; }
.mr25 { margin-right: 25px!important; }
.mr30 { margin-right: 30px!important; }
.mr35 { margin-right: 35px!important; }
.mr40 { margin-right: 40px!important; }
.mr45 { margin-right: 45px!important; }
.mr50 { margin-right: 50px!important; }

.ml0 { margin-left: 0!important; }
.ml5 { margin-left: 5px!important; }
.ml10 { margin-left: 10px!important; }
.ml15 { margin-left: 15px!important; }
.ml20 { margin-left: 20px!important; }
.ml25 { margin-left: 25px!important; }
.ml30 { margin-left: 30px!important; }
.ml35 { margin-left: 35px!important; }
.ml40 { margin-left: 40px!important; }
.ml45 { margin-left: 45px!important; }
.ml50 { margin-left: 50px!important; }

.mt0 { margin-top: 0!important; }
.mt5 { margin-top: 5px!important; }
.mt10 { margin-top: 10px!important; }
.mt15 { margin-top: 15px!important; }
.mt20 { margin-top: 20px!important; }
.mt25 { margin-top: 25px!important; }
.mt30 { margin-top: 30px!important; }
.mt35 { margin-top: 35px!important; }
.mt40 { margin-top: 40px!important; }
.mt45 { margin-top: 45px!important; }
.mt50 { margin-top: 50px!important; }

.mb0 { margin-bottom: 0!important; }
.mb1 { margin-bottom: 1px!important }
.mb2 { margin-bottom: 2px!important }
.mb3 { margin-bottom: 3px!important }
.mb4 { margin-bottom: 4px!important }
.mb5 { margin-bottom: 5px!important }
.mb10 { margin-bottom: 10px!important; }
.mb15 { margin-bottom: 15px!important; }
.mb20 { margin-bottom: 20px!important; }
.mb25 { margin-bottom: 25px!important; }
.mb30 { margin-bottom: 30px!important; }
.mb35 { margin-bottom: 35px!important; }
.mb40 { margin-bottom: 40px!important; }
.mb45 { margin-bottom: 45px!important; }
.mb50 { margin-bottom: 50px!important; }


/* #Padding
   ----------------------------------------------------------------- */
.p0{ padding: 0!important; }

.pr0 { padding-right: 0!important; }
.pr5 { padding-right: 5px!important; }
.pr10 { padding-right: 10px!important; }
.pr15 { padding-right: 15px!important; }
.pr20 { padding-right: 20px!important; }
.pr25 { padding-right: 25px!important; }
.pr30 { padding-right: 30px!important; }
.pr35 { padding-right: 35px!important; }
.pr40 { padding-right: 40px!important; }
.pr45 { padding-right: 45px!important; }
.pr50 { padding-right: 50px!important; }

.pl0 { padding-left: 0!important; }
.pl5 { padding-left: 5px!important; }
.pl10 { padding-left: 10px!important; }
.pl15 { padding-left: 15px!important; }
.pl20 { padding-left: 20px!important; }
.pl25 { padding-left: 25px!important; }
.pl30 { padding-left: 30px!important; }
.pl35 { padding-left: 35px!important; }
.pl40 { padding-left: 40px!important; }
.pl45 { padding-left: 45px!important; }
.pl50 { padding-left: 50px!important; }

.pt0 { padding-top: 0!important; }
.pt1 { padding-top: 1px!important; }
.pt2 { padding-top: 2px!important; }
.pt3 { padding-top: 3px!important; }
.pt4 { padding-top: 4px!important; }
.pt5 { padding-top: 5px!important; }
.pt10 { padding-top: 10px!important; }
.pt15 { padding-top: 15px!important; }
.pt20 { padding-top: 20px!important; }
.pt25 { padding-top: 25px!important; }
.pt30 { padding-top: 30px!important; }
.pt35 { padding-top: 35px!important; }
.pt40 { padding-top: 40px!important; }
.pt45 { padding-top: 45px!important; }
.pt50 { padding-top: 50px!important; }

.pb0 { padding-bottom: 0!important; }
.pb1 { padding-bottom: 1px!important; }
.pb2 { padding-bottom: 2px!important; }
.pb3 { padding-bottom: 3px!important; }
.pb4 { padding-bottom: 4px!important; }
.pb5 { padding-bottom: 5px!important; }
.pb10 { padding-bottom: 10px!important; }
.pb15 { padding-bottom: 15px!important; }
.pb20 { padding-bottom: 20px!important; }
.pb25 { padding-bottom: 25px!important; }
.pb30 { padding-bottom: 30px!important; }
.pb35 { padding-bottom: 35px!important; }
.pb40 { padding-bottom: 40px!important; }
.pb45 { padding-bottom: 45px!important; }
.pb50 { padding-bottom: 50px!important; }





/* #font
   ----------------------------------------------------------------- */
.tc { text-align: center; }
.tl { text-align: left; }
.tr { text-align: right; }

.tdu { text-decoration: underline; }

.lh10 { line-height: 1em; }
.lh15 { line-height: 1.5em; }
.lh2 { line-height: 2em; }
.lh3 { line-height: 3em; }

.vm { vertical-align: middle; }
.vt { vertical-align: top; }

.fs08 { font-size: 0.8em; }
.fs09 { font-size: 0.9em; }
.fs1 { font-size: 1em; }
.fs11 { font-size: 1.1em; }
.fs12 { font-size: 1.2em; }
.fs13 { font-size: 1.3em; }

.bn { border:none; }
.bbn { border-bottom: none; }
.bol {
  font-family: NotoSansJP-bold;
  font-weight: normal;
}




/* #position
   ----------------------------------------------------------------- */
.relative { position: relative; }
.absolute { position: absolute; }

/* float解除 */
.cb { clear:both; }

/* float */
.fl-left { float: left; }
.fl-right { float: right; }



/* #other
   ----------------------------------------------------------------- */
.oh { overflow: hidden; }
.di { display: inline; }
.db { display: block; }

.clearfix:before, .clearfix:after {
  content:"";
  display:table;
}

.clearfix:after { clear:both; }
