/* リセット */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

ul, li {
  list-style: none;
}

.container {
    margin: 0 auto;
  }

.header-wrap {
  display: flex;
  justify-content: center;
  width: 100%;
}

header {
  position: absolute;
  top: 0;
  width: 100%;
  height: 103px;
  padding: 0 6.5%;
  background: #007440;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ロゴの高さは54.5px */
.logo {
  height: 54.5px;
}

.header-right {
  /* ヘッダーの上下中央に配置 */
  display: flex;
  align-items: center;
}

/* .header-right .menuは横並びで均等に並べる。最小幅は450px */
.header-right .menu {
  display: flex;
  justify-content: space-between;
  min-width: 450px;

  color: #FFF;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 900;
  line-height: 130%;
}

.menu li a {
  color: #FFF;
  text-decoration: none;
}

.main {
  width: 100%;
  overflow: hidden; /* 画像がコンテナの外に出ないようにします */
}

.main-img {
  width: 100%;
  height: auto;
  display: block;
  max-height: 100vh; /* 画像の最大高さをビューポートの高さに合わせます */
}

.main .catchphrase {
  color: #002112;
  font-family: Shippori Mincho;
  font-size: 24px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%;
  writing-mode: vertical-rl;
  text-indent: -7.5em;
  position: absolute;
  top: 325px;
  right: 82px;
}

.main .catchphrase::before {
  content: "";
  display: inline-block;
  width: 0px;
  height: 66px;
  margin-bottom: 9px;
  position: relative;
  border: #002112 solid 1px;
}

.main .catchphrase::after {
  content: "";
  display: inline-block;
  width: 0px;
  height: 66px;
  margin-top: -12px;
  position: relative;
  border: #002112 solid 1px;
}

.main .scroll-down {
  color: #002112;
  font-family: Shippori Mincho;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 180%;
  writing-mode: vertical-rl;
  position: absolute;
  bottom: 0px;
  left: 80px;
  letter-spacing: 5px;
}

.main .scroll-down::after {
  content: "";
  display: inline-block;
  width: 0px;
  height: 50px;
  margin-top: 15px;
  position: relative;
  border: #002112 solid 1px;
  left: -2px;
}

h2.ellipse::before {
  content: url(./public/images/ellipse.png);
  margin-right: 20px;
  position: relative;
  top: -5px;
}

h2.ellipse::after {
  content: url(./public/images/ellipse.png);
  margin-left: 20px;
  position: relative;
  top: -5px;
}

h3.line47::before {
  content: "";
  display: inline-block;
  width: 47px;
  height: 0px;
  margin-right: 10px;
  position: relative;
  top: -5px;
  border: #002112 solid 1px;
}

h3.line47::after {
  content: "";
  display: inline-block;
  width: 47px;
  height: 0px;
  margin-left: 10px;
  position: relative;
  top: -5px;
  border: #002112 solid 1px;
}

h3.line56::before {
  content: "";
  display: inline-block;
  width: 56px;
  height: 0px;
  margin-right: 10px;
  position: relative;
  top: -5px;
  border: #002112 solid 1px;
}

h3.line56::after {
  content: "";
  display: inline-block;
  width: 56px;
  height: 0px;
  margin-left: 10px;
  position: relative;
  top: -5px;
  border: #002112 solid 1px;
}

h3.line65::before {
  content: "";
  display: inline-block;
  width: 65px;
  height: 0px;
  margin-right: 10px;
  position: relative;
  top: -5px;
  border: #002112 solid 1px;
}

h3.line65::after {
  content: "";
  display: inline-block;
  width: 65px;
  height: 0px;
  margin-left: 10px;
  position: relative;
  top: -5px;
  border: #002112 solid 1px;
}

h3.line74::before {
  content: "";
  display: inline-block;
  width: 74px;
  height: 0px;
  margin-right: 10px;
  position: relative;
  top: -5px;
  border: #002112 solid 1px;
}

h3.line74::after {
  content: "";
  display: inline-block;
  width: 74px;
  height: 0px;
  margin-left: 10px;
  position: relative;
  top: -5px;
  border: #002112 solid 1px;
}

h3.line85::before {
  content: "";
  display: inline-block;
  width: 85px;
  height: 0px;
  margin-right: 10px;
  position: relative;
  top: -5px;
  border: #002112 solid 1px;
}

h3.line85::after {
  content: "";
  display: inline-block;
  width: 85px;
  height: 0px;
  margin-left: 10px;
  position: relative;
  top: -5px;
  border: #002112 solid 1px;
}

.company-table {
  width: 780px;
  padding: 0 20px;
  margin: auto;
  margin-bottom: 30px;
  border-collapse: collapse;
}

.company-table tr {
  border-bottom: 1px solid #002112;
}

.company-table th, .company-table td {
  padding: 30px 0;
}

.company-table th {
  width: 180px;
  text-align: left;
  vertical-align: top;
}

#contact {
  color: #002112;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 30px;
}

form table {
  width: 780px;
  margin: 0 auto 60px auto;
  border-collapse: collapse;
  color: #002112;
  text-align: center;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 30px;
}

form table tr {
  border-bottom: 1px solid #002112;
}

form table th, form table td {
  padding: 50px 0;
}

form table th {
  width: 211px;
  text-align: left;
  vertical-align: top;
}

input[type="radio"] {
  width: 20px;/*radioボタンの横幅*/
  height: 20px;/*radioボタンの縦幅*/
  border-radius: 100px;
  position: relative;
  vertical-align: sub;
  margin-right: 5px;
}
input[type="radio"]::before, input[type="radio"]::after{
  content: "";
  display: block;
  border-radius: 50%;
  position: absolute;
  transform: translateY(-50%);
  top: 50%;
}
input[type="radio"]::before {
  background-color: #fff;
  border: 1px solid #002112;
  height: 25px;/*radioボタンの横幅*/
  width: 25px;/*radioボタンの縦幅*/
  left: 0px;
}
input[type="radio"]::after {
  background-color: #002112;
  opacity: 0;/*チェックされてないradioボタンは非表示*/
  height: 13px;/*radioボタンチェック時の中点の高さ*/
  width: 13px;/*radioボタンチェック時の中点の横幅*/
  left: 7px;/*radioボタンチェック時の中点の位置*/
}
input[type="radio"]:checked::after {
  opacity: 1;/*チェックされたradioボタンは表示*/
}
input[type="radio"]+label {
  margin-left: 30px;
}

input[type="text"],
input[type="tel"],
input[type="email"],
textarea {
    width: 100%;
    padding: 10px 20px;
    border: 1px solid #E8E7E7;
    border-radius: 5px;
    background-color: #E8E7E7;
}

::placeholder {
  color: #C8C8C8;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
}

/*リセット */
input[type="checkbox"]  {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
/* チェックボックスデザイン */
input[type="checkbox"] {
  cursor: pointer;
  padding-left: 30px;/*label手前にチェックボックス用の余白を開ける*/
  vertical-align: middle;
  position: relative;
}
input[type="checkbox"]::before,
input[type="checkbox"]::after {
  content: "";
  display: block; 
  position: absolute;
}
input[type="checkbox"]::before {
  background-color: #fff;
  border-radius: 5px;
  border: 1px solid #002112;
  width: 31px;/*チェックボックスの横幅*/
  height: 31px;/*チェックボックスの縦幅*/
  transform: translateY(-50%);
  top: 50%;
  left: 5px;
}
input[type="checkbox"]::after {
  border-bottom: 3px solid #666464;/*チェックの太さ*/
  border-left: 3px solid #666464;/*チェックの太さ*/
  opacity: 0;/*チェック前は非表示*/
  height: 10px;/*チェックの高さ*/
  width: 19px;/*チェックの横幅*/
  transform: rotate(-45deg);
  top: -9px;/*チェック時の位置調整*/
  left: 11px;/*チェック時の位置調整*/
}
input[type="checkbox"]:checked::after {
  opacity: 1;/*チェック後表示*/
}
input[type="checkbox"]+label {
  margin-left: 30px;
}

form a {
  color: #002112;
  text-align: center;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 30px; /* 187.5% */
  text-decoration-line: underline;
}

#submitButton {
  border-radius: 5px;
  background: #A7AF79;
  width: 208px;
  height: 62px;
  padding: 10px 40px;
  color: #FFF;
  text-align: center;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 30px;
  border: #A7AF79;
}

/* 非活性時のスタイル */
#submitButton:disabled {
  color: #ccc;  /* 非活性時の色 */
  text-decoration-line: none;
  cursor: not-allowed;
}

.footer-wrap {
  text-align: center;
  position: relative;
}

footer {
  padding: 82px 0 8px 0;
  width: 100%;
  background: #085332;
}

/* セクション1は50:50 */
.section1 {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.section1-left {
  width: 49.2%;
  background: #E3E7C9;
}

.section1-right {
  width: 50.8%;
  background: #FFF;
}

.section1-right img {
  width: 100%;
}

#privacy-poricy {
  width: 780px;
  padding: 247px 0 100px 0;
  margin: auto;
  /* text-align: center; */
}

#privacy-poricy>div {
  margin-bottom: 30px;
}

#privacy-poricy>div>h4 {
  color: #085332;
  font-family: Zen Kaku Gothic New;
  font-size: 18px;
  font-style: normal;
  font-weight: 700;
  line-height: 32px;
  border-bottom: #002112 solid 1px;
  padding-bottom: 15px;
  margin-bottom: 15px;
}

#privacy-poricy>div>p {
  color: #002112;
  text-align: justify;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 30px;
}

#privacy-poricy>div>ul {
  margin-top: 10px;
}

#privacy-poricy>div>ul>li {
  list-style-type: disc;
  margin-left: 48px;
  color: #002112;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 32px;
}

#privacy-poricy>div>table {
  margin-top: 10px;
  margin-left: 16px;
  color: #002112;
  text-align: left;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 30px;
}

#privacy-poricy>div>table th {
  width: 115px;
}

#privacy-poricy+div>a {
  display: block;
  width: 170px;
  height: 50px;
  text-align: center;
  line-height: 50px;
  border: #002112 solid 1px;
  border-radius: 5px;
  text-decoration: none;
  color: #002112;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  margin: auto;
}

#contact-confirm {
  margin-top: 247px;
  color: #002112;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 30px;
}

#contact-confirm table {
  width: 780px;
  margin: 0 auto 60px auto;
  border-collapse: collapse;
  border-top: 1px solid #002112;
  color: #002112;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 30px;
}

#contact-confirm table tr {
  border-bottom: 1px solid #002112;
}

#contact-confirm table th, #contact-confirm table td {
  padding: 50px 0;
}

#contact-confirm table th {
  width: 285px;
  text-align: left;
  vertical-align: center;
}

#contact-confirm table td {
  color: #C8C8C8;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
}

#contact-confirm #submitBtn {
  width: 208px;
  height: 62px;
  padding: 10px 40px;
  margin-bottom: 50px;
  border-radius: 5px;
  border: none;
  background: #A7AF79;
  color: #FFF;
  text-align: center;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 30px;
}

#contact-confirm #modifyBtn {
  width: 170px;
  height: 50px;
  padding: 10px 40px;
  margin-bottom: 160px;
  border-radius: 5px;
  border: #002112 solid 1px;
  color: #002112;
  text-align: center;
  font-family: Zen Kaku Gothic New;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 30px;
}