@charset "utf-8";
/* ===============================================================

  共通設定

=============================================================== */
h2 {
  margin-bottom: .6em;
  border-radius: 3px;
  font-size: 2.388rem;
  font-weight: 700;
  color: #00a53d;
  line-height: 1.4;
  text-align: center;
}
/* ===============================================================

  電話での問い合わせ

=============================================================== */
.tel_contents {
  max-width: 800px;
  margin: 0 auto;
  padding-top: 5rem;
  padding-bottom: 10rem;
  background: var(--lightgreen);
}
@media (max-width: 575px) {
  .tel_contents {
    width: 100%;
    margin: 2rem auto;
    padding: 2em 1em;
    background: #f2f2f2;
  }
  .tel_contents > .container {
    grid-gap: 0;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .tel_contents {
    max-width: 1000px;
	  margin-top: 5rem;
    padding: 3em 5em;
  }
}
.tel_section {
  width: 100%;
  margin: 3rem auto 0;
  padding: 3rem 1rem;
  background: #fff;
  border-radius: 30px;
}
.tel_number {
  width: 100%;
  margin: 0 auto 1rem;
  padding: 0;
}
@media (min-width: 768px) {
  .tel_number {
    font-size: 2.388rem;
  }
}
.tel_number img {
  width: 32px;
}
/* ===============================================================

  フォーム

=============================================================== */
/*
  共通設定
===================================================== */
.form_contents {
  max-width: 800px;
  margin: 0 auto;
  padding-bottom: 10rem;
  background: var(--lightgreen);
}
@media (max-width: 575px) {
  .form_contents > .container {
    grid-gap: 0;
    padding-right: 0;
    padding-left: 0;
  }
}
.form {
  width: 100%;
  margin: 3rem auto 0;
  padding: 3rem 1rem;
  background: #fff;
  border-radius: 30px;
}
@media (min-width: 768px) {
  .form {
    max-width: 840px;
    margin: 0 auto;
    padding: 5rem 3rem 3rem;
  }
}
.input_box {
  margin-bottom: 1rem;
}
input, select, textarea {
  padding: .25rem 1rem;
  border: 2px solid #ddd;
  border-radius: 5px;
  color: #333;
  background-color: #F4F4F4;
}
@media (min-width: 768px) {
  input, select, textarea {
    border-radius: 10px;
  }
}
input:focus, select:focus, textarea:focus {
  outline: none !important;
  border: 2px solid #35bc62 !important;
  box-shadow: 0 0 8px rgba(0, 142, 43, 0.2);
  transform: translateY(-1px);
}
input, textarea {
  width: 100%;
}
input, select {
  height: 50px;
}
@media (min-width: 768px) {
  input, select {
    height: 60px;
  }
}
input#zipcode1, input#zipcode2, input#zipcode1_2, input#zipcode2_2 {
  width: 6rem;
}
input#tel1, input#tel2, input#tel3, input#tel1_2, input#tel2_2, input#tel3_2 {
  width: 4.6rem;
}
@media (min-width: 768px) {
  input#tel1, input#tel2, input#tel3, input#tel1_2, input#tel2_2, input#tel3_2 {
    width: 6rem;
  }
}
select {
  width: 15em;
}
label.radioBtn {
  position: relative;
  cursor: pointer;
  padding: .5em 1em .5em 1.5em;
}
@media (max-width: 767px) {
  label.radioBtn {
    display: block;
    position: relative;
  }
}
label.radioBtn::before, label.radioBtn::after {
  content: "";
  display: block;
  border-radius: 50%;
  position: absolute;
  transform: translateY(-50%);
  top: 50%;
}
label.radioBtn::before {
  background-color: #F4F4F4;
  border: 1px solid #454545;
  border-radius: 50%;
  width: 1.2em;
  height: 1.2em;
  left: 0;
}
label.radioBtn::after {
  background-color: #79A1D4;
  border-radius: 50%;
  opacity: 0;
  width: .8em;
  height: .8em;
  left: .2em;
}
input:checked + label.radioBtn::after {
  opacity: 1;
}
/* [ ▼ タブボタン ] ---------- */ :root {
  --text_color: #333333;
  --main_green: #35bc62;
}
.tab_content a {
  text-decoration: underline !important;
}
/*
  募集要項
================================================ */
.tab_menu {
  z-index: 2;
  position: relative;
  width: calc(100% / 2 - 10px * 2 - 4px);
  margin: 0 5px;
  padding: 1em;
  background: #c6c6c6;
  float: left;
  font-size: 1.25rem;
  font-weight: bold;
  text-align: center;
  transition: all .3s ease;
  border: solid 2px #c6c6c6;
  border-bottom: solid 2px var(--main_green);
  border-radius: 30px 30px 0 0;
  color: #333;
  cursor: pointer;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  .tab_menu {
    font-size: 1.1rem;
  }
}
.tab_menu:first-of-type {
  margin: 0 5px 0 20px;
}
input:checked + .tab_menu {
  padding-top: 1.2em;
  margin-top: -0.2em;
  z-index: 3;
  color: #fff;
  background: var(--main_green);
  border: solid 2px var(--main_green);
}
@media (min-width: 768px) {
  input:checked + .tab_menu {
    padding-top: 1.8em;
    margin-top: -0.8em;
  }
}
input[name="tab_menu"] {
  display: none;
}
.tab_content {
  display: none;
  z-index: 1;
  clear: both;
  border: solid 2px var(--main_green);
  border-radius: 8px;
  padding: 15px 20px;
  margin: 0 0 30px 0;
  position: relative;
  top: -2px;
  background: var(--main_green);
}
@media (max-width: 575px) {
  .tab_content {
    border-radius: 0px;
  }
}
@media (min-width: 992px) {
  .tab_content {
    display: none;
    z-index: 1;
    padding: 50px;
  }
}
#tab_chuto:checked ~ #tab_chuto_box, #tab_shinsotsu:checked ~ #tab_shinsotsu_box {
  display: block;
}
/* [ ▼ ラジオボタン ] ---------- */
.md-radio {
  margin: 1rem 0;
}
.md-radio.md-radio-inline {
  display: inline-block;
  line-height: 2;
}
.md-radio input[type=radio] {
  display: none;
}
/* ラベルの基本設定 */
.md-radio label {
  display: inline-block;
  min-height: 24px; /* 外枠のサイズに合わせる */
  position: relative;
  padding: 0 1.5em 0 32px; /* 左側に余白を固定 */
  margin-bottom: 0;
  cursor: pointer;
  vertical-align: middle; /* 横並びのズレを解消 */
  line-height: 24px;
}
/* 外枠と中身の共通設定：垂直中央配置 */
.md-radio label:before, .md-radio label:after {
  position: absolute;
  content: "";
  border-radius: 50%;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.3s ease;
}
/* 外枠 (before) */
.md-radio label:before {
  width: 24px;
  height: 24px;
  border: 2px solid rgba(89, 87, 87, 0.54);
}
/* レスポンシブでのサイズ微調整 */
@media (min-width: 1200px) {
  .md-radio label:before {
    width: 26px;
    height: 26px;
  }
}
/* 中の丸 (after) */
.md-radio label:after {
  left: 5px; /* (外枠24px - 中身14px) / 2 = 5px */
  width: 14px;
  height: 14px;
  background: var(--main_green);
  transform: translateY(-50%) scale(0); /* 最初は小さく中央に */
}
@media (min-width: 1200px) {
  .md-radio label:after {
    left: 5px;
    width: 16px;
    height: 16px;
  }
}
.md-radio input[type=radio]:checked + label:before {
  border-color: #595757;
}
.md-radio input[type=radio]:checked + label:after {
  transform: translateY(-50%) scale(1); /* 中央を維持したまま拡大 */
}
/* [ ▼ 枠設定 ] ---------- */
.ckTxt, .errArea, .thxArea {
  max-width: 800px;
  margin: 0 auto;
}
.form_item_box {
  margin-bottom: 1rem;
}
.item_name {
  font-size: .85em;
  font-weight: bold;
  color: var(--main_green);
}
/* [ ▼ 必須設定 ] ---------- */
.hissu {
  color: #e32a3a;
  border: 1px solid #e32a3a;
  background-color: #fff;
  font-size: 0.75rem;
  font-weight: bold;
  padding: 5px .8em 4px;
  border-radius: 50vh;
  margin-left: 8px;
  margin-bottom: 8px;
  vertical-align: middle;
  display: inline-block;
  line-height: 1;
}
/* [ ▼ マイナビ設定 ] ---------- */
.mynavi_link_area {
  display: none;
  margin: 15px 0;
  opacity: 0;
  transition: opacity 0.4s ease;
}
/* 親要素の中で .trigger_mynavi がチェックされたら、その中の .mynavi_link_area を出す */
.container:has(.trigger_mynavi:checked) .mynavi_link_area {
  display: block;
  opacity: 1;
}
.container:has(.trigger_mynavi:checked) .mynavi_link_area img {
  border: 1px solid #000;
  box-sizing: border-box;
}
/* [ ▼ 送信設定 ] ---------- */
.sbmt {
  display: block;
  width: 288px;
  height: 66px;
  margin: 3rem auto 0;
  color: #fff;
  background: #008800;
  font-size: 1.25rem;
  font-weight: bold;
  border: none;
  border-radius: 60px;
  transition: 0.3s;
}
@media (max-width: 575px) {
  .sbmt {
    width: 100%;
    margin: 1rem auto 0;
  }
}
.sbmt:hover {
  color: #fff;
  border: none;
  background: #00a000;
  cursor: pointer;
}
.sbmt.sbmtGo {
  width: 100%;
}
.sbmt.sbmtBack {
  color: #008800;
  background: #fff;
  font-size: 1rem;
  border: 2px solid #008800;
}
@media (max-width: 575px) {
  .sbmt.sbmtBack {
    width: 100%;
    height: 44px;
  }
}
/* [ ▼ 入力エラー設定 ] ---------- */
.INPUT_ERROR {
  font-size: .9rem;
}
/* [ ▼ 送信完了後設定 ] ---------- */
.btn_prev_container {
  text-align: center;
  width: 100%;
}
a.btn_prev {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 1rem;
  border: 2px solid #000;
  border-radius: 15px;
  font-weight: bold;
  text-decoration: none;
  transition: 0.3s;
  cursor: pointer;
}
a.btn_prev:hover {
  opacity: 0.9;
  text-decoration: none;
}
a.btn_prev .circle_arrow {
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  background-color: #000;
  border-radius: 50%;
}
a.btn_prev .circle_arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 45%;
  width: 5px;
  height: 5px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(-135deg);
}
/*
  エラーページ
===================================================== */
.err {
  color: #FF0019;
  text-decoration: underline;
}
.error_contents {
  max-width: 800px;
  margin: 0 auto;
  padding-top: 5rem;
  padding-bottom: 10rem;
}
@media (max-width: 575px) {
  .error_contents {
    width: 100%;
    margin: 2rem auto;
    padding: 2em 1em;
  }
  .error_contents > .container {
    grid-gap: 0;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .error_contents {
    max-width: 1000px;
    padding: 10rem 5em 5rem;
  }
}
.errArea em {
  display: block;
  margin-bottom: 2rem;
  padding: 1rem 2rem;
  border: 2px solid #d32f2f;
  border-radius: 3px;
  background: #f7e8e8;
  text-align: center;
  line-height: 1.6;
}
.errArea em span {
  display: inline-block;
  padding: 0;
  color: #d32f2f;
  font-size: 1.2rem;
  font-weight: bold;
  font-style: normal;
  line-height: 1;
  vertical-align: middle;
}
.errArea em::before {
  content: "";
  display: inline-block;
  width: 2rem;
  height: 2rem;
  margin-right: 6px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23d32f2f'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
}
.errArea a.btn_prev {
  color: #fff;
  background: #008800;
  border: none;
  border-radius: 50vh;
}
.errArea a.btn_prev:hover {
  color: #fff;
}
.errArea a.btn_prev .circle_arrow {
  position: relative;
  display: inline-block;
  flex-shrink: 0; /* 矢印が潰れないように固定 */
  width: 20px;
  height: 20px;
  background-color: #000;
  border-radius: 50%;
}
.errArea a.btn_prev .circle_arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 45%;
  width: 5px;
  height: 5px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(-135deg);
}
/*
  完了ページ
===================================================== */
.thanks_contents {
  max-width: 800px;
  margin: 0 auto;
  padding-top: 5rem;
  padding-bottom: 10rem;
}
@media (max-width: 575px) {
  .thanks_contents {
    width: 100%;
    margin: 2rem auto;
    padding: 2em 1em;
  }
  .thanks_contents > .container {
    grid-gap: 0;
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .thanks_contents {
    max-width: 1000px;
    padding: 10rem 5em 5rem;
  }
}
.thxArea em {
  display: block;
  margin-bottom: 2rem;
  padding: 1rem 2rem;
  border: 2px solid #b7a37d;
  border-radius: 3px;
  background: #c7ebdb;
  text-align: center;
  line-height: 1.6;
}
.thxArea em span {
  display: inline-block;
  padding: 0;
  color: #008e2b;
  font-size: 1.2rem;
  font-weight: bold;
  font-style: normal;
  line-height: 1;
  vertical-align: middle;
}
.thxArea em::before {
  content: "";
  display: inline-block;
  width: 2rem;
  height: 2rem;
  margin-right: 6px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='%23008e2b'/%3E%3Cpath d='M9 16.2L5.5 12.7l1.4-1.4L9 13.4l7.1-7.1 1.4 1.4z' fill='white'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
}
.thxArea a.btn_prev {
  color: #fff;
  background: #008800;
  border: none;
  border-radius: 50vh;
}
.thxArea a.btn_prev:hover {
  color: #fff;
}
/* ===============================================================

  エントリーリンク

=============================================================== */
/*
  プライバシーポリシー
===================================================== */
.privacyPolicy {
  max-width: 800px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .privacyPolicy {
    margin-top: 3rem;
  }
}
.privacyPolicyTxt {
  text-align: left;
  font-size: 1em;
}
.privacyPolicyTxt dl dt {
  margin-bottom: 1em;
}
.privacyPolicyTxt ul {
  margin-left: 0;
  padding: 1em 1.5em;
}
.privacyPolicyTxt a {
  text-decoration: underline;
  transition: all 0.5s ease 0s;
}
.privacyPolicyTxt a:hover {
  background: #FFF8B8;
}
/* ===============アコーディオン================= */
.privacyPolicyBox {
  width: auto;
  font-size: .88em;
  margin: 0 0; /* ボックス全体の位置調整 */
  text-align: center;
}
.privacyPolicyBox label {
  position: relative;
  display: inline-block;
  margin: 0 auto;
  padding: .5rem 2.5rem;
  cursor: pointer;
  color: #454545;
  background: #ffffff;
  transition: .6s;
}
.privacyPolicyBox label:hover {
  background: #FFFCD7;
}
.privacyPolicyBox label span {
  text-decoration: underline;
}
.privacyPolicyBox input {
  display: none;
}
.privacyPolicyBox input:checked ~ label::after {
  position: absolute;
  top: 50%;
  right: 15px;
  content: "×"; /* ラベルをクリックした後のアイコン */
  margin-top: -12px;
  color: #454545;
}
.privacyPolicyBox div {
  overflow: hidden;
  height: 0px;
  opacity: 0;
  transition: 0.5s; /* 開閉スピードの設定 */
}
.privacyPolicyBox input:checked ~ div {
  height: auto;
  padding: 2rem; /* 開いた部分の枠内の余白 */
  border-radius: 0px;
  background: #ffffff; /* 開いた部分の背景色 */
  opacity: 1;
}
.privacyPolicyBox input:checked ~ label {
  color: #454545;
  background: #FFFCD7; /* クリック後のラベルの背景色 */
}