@charset "UTF-8";
/* html {
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
} */
body {
  margin: 0;
  color: #000;
  font-family: "Roboto",'ヒラギノ角ゴシック','Hiragino Sans','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3',YuGothic,'Yu Gothic',sans-serif;  word-wrap: break-word;
  height: 100%;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 2.5em;
  letter-spacing: 0.05em;
  scroll-behavior: smooth;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
:root {
  --main_color: #007d23;
  --white: #fff;
}
section,article {
  overflow: hidden;
  padding: 0;
}
a {text-decoration: none;}
ul {padding: 0;}
li {list-style: none;}

.wrap {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 100px 0;
  overflow: hidden;
}
.wrap_w1000 {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 100px 0;
  overflow: hidden;
}
.wrap_p0 {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0;
  overflow: hidden;
}
.wrap_p50 {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 50px 0;
  overflow: hidden;
}

h1 {
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
}
h2 {
  margin: 0 0 80px;
  font-size: 2rem;
  text-align: center;
  line-height: 1.8em;
  font-weight: 500;
  letter-spacing: 0.1em;
}
h2 span {
  font-weight: 600;
  color: var(--main_color);
}
h3 {
  margin: 0 0 50px;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
}
p {
  margin: 0 0 50px;
  text-align: justify;
}

header {
  width: 100%;
  height: 100px;
  position: fixed;
  z-index: 999;
  background-color: rgba(255, 255, 255, 0.95);
}
header .logo_header {
  width: 350px;
  margin: 0;
}
header .logo_header img {
  width: 100%;
}
.nav_menu {
  display : block;
  position: fixed;
  z-index : 100;
  right : 20px;
  top   : 15px;
  width : 60px;
  height: 60px;
  cursor: pointer;
  text-align: center;
  background: var(--main_color);
  border-radius: 100vh;
}
.nav_menu span {
  display : block;
  position: absolute;
  width   : 30px;
  height  : 2px ;
  top: 20px;
  left: 15px;
  background : #fff;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition   : 0.3s ease-in-out;
  transition        : 0.3s ease-in-out;
}
.nav_menu span:nth-child(1) {
  top: 18px;
}
.nav_menu span:nth-child(2) {
  top: 30px;
}
.nav_menu span:nth-child(3) {
  top: 42px;
}
.nav_menu.active span:nth-child(1) {
  top : 33px;
  left: 15px;
  background :#fff;
  -webkit-transform: rotate(-45deg);
  -moz-transform   : rotate(-45deg);
  transform        : rotate(-45deg);
}
.nav_menu.active span:nth-child(2),
.nav_menu.active span:nth-child(3) {
  top: 33px;
  background :#fff;
  -webkit-transform: rotate(45deg);
  -moz-transform   : rotate(45deg);
  transform        : rotate(45deg);
}
.globalMenuSp {
  position: fixed;
  z-index : 2;
  top  : 0;
  right : 0;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  color: #fff;
  background: var(--main_color);
  width: 100%;
  max-width: 350px;
  height: 100vh;
  padding: 30px 100px;
  transform: translateX(100%);
  transition: all 0.6s;
}
.globalMenuSp .wrap_menu {
  width: 100%;
  height: calc(100vh - 100px);
}
.globalMenuSp .wrap_menu nav {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
}
.globalMenuSp .wrap_menu nav {
  width: 100%;
  margin: 30px 0 0;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
}
.globalMenuSp .wrap_menu ul li a {
  width: 100%;
  display: block;
  list-style-type: none;
  padding: 0.8em 0;
  font-size: 1em;
  letter-spacing: 0.2rem;
  color: #fff;
  text-align: center;
  text-decoration: none;
  border-bottom: 1px solid #fff;
  transition: .5s all;
}
.globalMenuSp .wrap_menu ul li a:hover {
  color: #000;
  font-weight: 600;
}
.menu_tel {
  position: relative;
  display: flex;
  justify-content: center;
  margin: 50px 0 0;
  color: #fff;
}
.menu_tel a {
  margin-left: 40px;
  font-size: 1.5em;
  text-align: center;
  letter-spacing: 0.1em;
  color: #fff;
}
.menu_tel a::before {
  position: absolute;
  top: 50%;
  left: 22%;
  width: 32px;
  height: 25px;
  margin-top: 0.15em;
  content: "";
  background: url(../images/icon_tel_free_white.svg) no-repeat;
  transform: translate(-50% , -50%)
}
/* クリックでjQueryで追加・削除 */
.globalMenuSp.active {
  opacity: 100;
  display: block;
  transform: translateX(0%);
}

.top_fv {
  width: 100%;
  height: 100vh;
  background-image: url(../images/fv_pc.webp);
  background-size: cover;
  background-position: center;
}
.top_fv .fv_hero {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50% , -50%);
  padding: 1rem;
  background-color: rgba(255, 255, 255, 0.2);
}
.top_fv .fv_hero p {
  margin: 0;
  padding: 1rem;
  font-size: 2rem;
  font-weight: 600;
  text-align: center;
}
.top_fv .fv_hero p span {
  display: block;
  font-size: 1.25rem;
}

.top_fv .consul_item,
.consul_box {
  width: 100%;
  max-width: 1150px;
  margin: 0 auto;
  padding: 30px 15px;
  background: rgba(0,125,35,.8);
  border-radius: 10px;
  box-sizing: border-box;
  position: relative;
}
/* Topのみabsoluteのため */
.top_fv .consul_item {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
}
.top_fv .consul_item h2 ,
.consul_box h2 {
  margin: 0 0 0;
  left: 50%;
  display: block;
  color: #fff;
  text-align: center;
  line-height: 1em;
}
.top_fv .consul_item p,
.consul_box p {
  margin: 0 auto 20px;
  text-align: center;
  color: #fff;
}
.top_fv .consul_item ul,
.consul_box ul {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: stretch; /* stretch で li の高さが揃う（必要なら center に） */
  width: 95%;
  max-width: 1150px;
  margin: 0 auto;
}
.top_fv .consul_item li,
.consul_box li {
  width: 31%;
  height: 70px; 
  min-height: 70px;
  box-sizing: border-box;
  margin: 0;
}
.top_fv .consul_item li a,
.consul_box li a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  border-radius: 5px;
  background: #fff;
  text-decoration: none;
  text-align: center;
}
.top_fv .consul_item li a p,
.consul_box li a p {
  color: #000;
}
.top_fv .consul_item li .tel,
.top_fv .consul_item li .line,
.top_fv .consul_item li .mail,
.consul_box li .tel,
.consul_box li .line,
.consul_box li .mail {
  position: relative;
  display: block;
  line-height: 1.5;
  padding-left: 48px;
  margin: 0;
  color: #000;
}
.top_fv .consul_item li .tel,
.consul_box li .tel {
  font-size: 25px;
  font-weight: 600;
}
.top_fv .consul_item li .line,
.top_fv .consul_item li .mail,
.consul_box li .line,
.consul_box li .mail {
  font-size: 1.25em;
}
.top_fv .consul_item li .tel span,
.consul_box li .tel span {
  display: block;
  margin-left: -4em;
  font-size: 0.8rem;
}
.top_fv .consul_item li .tel::before,
.consul_box li .tel::before {
  position: absolute;
  content: "";
  left: 0;
  top: 15%;
  display: block;
  background-repeat: no-repeat;
  background-size: contain;
}
.top_fv .consul_item li .line::before,
.top_fv .consul_item li .mail::before,
.consul_box li .line::before,
.consul_box li .mail::before {
  position: absolute;
  content: "";
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: block;
  background-repeat: no-repeat;
  background-size: contain;
}
.top_fv .consul_item li .tel::before,
.consul_box li .tel::before  { 
  width: 40px; 
  height: 22px; 
  background-image: url(../images/icon_tel_free.svg); 
}
.top_fv .consul_item li .line::before,
.consul_box li .line::before { 
  width: 35px; 
  height: 33px; 
  background-image: url(../images/icon_line.svg); 
}
.top_fv .consul_item li .mail::before,
.consul_box li .mail::before { 
  width: 33px; 
  height: 23px; 
  background-image: url(../images/icon_mail.svg); 
}
.h2_mt130_sp {
  margin-top: 0;
}
.consul_list {
  width: calc(100% - 2rem);
  padding: 0 1em;
}
.consul_list ul {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
}
.consul_list ul li {
  position: relative;
  width: 50%;
}
.consul_list ul li::before {
  position: absolute;
  content: "▪️";
  margin-left: -1.3em;
}
.support_list {
  width: 100%;
}
.support_list ul {
  width: 100%;
  display: flex;
  padding: 0;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: space-evenly;
  text-align: center;
}
.support_list li {
  width: 25%;
  height: 120px;
  margin: 0 0 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  color: var(--main_color);
  font-weight: 500;
  line-height: 1.8em;
  border-radius: 5px;
  border: 1px solid var(--main_color);
}
.worries {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto 50px;
}

.worries img {
  width: 100%;
}
footer {
  width: 100%;
  margin: 170px 0 0;
  border-top: 3px solid var(--main_color);
}
.wrap_footer {
  width: calc(100% - 200px);
  max-width: 1200px;
  margin: 0 auto;
  padding: 50px 100px;
  overflow: hidden;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: space-between;
}
.footer_info {
  width: 30%;
}
.footer_info .logo_footer {
  width: 280px;
  margin: 1em 0 40px;
}
.footer_info p {
  margin: 0 0 1.2em;
  font-size: 0.9em;
  line-height: 1.5em;
}
.address,
.number {
  color: #000;
}
.footer_consul {
  width: 300px;
}
.footer_consul ul {
  padding: 0;
}
.footer_consul li {
  width: calc(100% - 30px);
  height: 50px;
  margin: 0 15px 30px;
  font-size: 0.9em;
  background: #48be79;
  border-radius: 5px;
  display: flex;
  align-items: center;
}
.footer_consul li .tel,
.footer_consul li .line,
.footer_consul li .mail {
  position: relative;
  display: block;
  line-height: 1.5;
  padding-left: 3em;
  margin: 0;
  color: #fff;
}
.footer_consul li .tel {
  font-size: 1.1em;
  font-weight: 600;
}
.footer_consul li .line,
.footer_consul li .mail {
  font-size: 1.1em;
}
.footer_consul li .tel::before {
  position: absolute;
  content: "";
  left: 1em;
  top: 15%;
  display: block;
  background-repeat: no-repeat;
  background-size: contain;
}
.footer_consul li .line::before,
.footer_consul li .mail::before {
  position: absolute;
  content: "";
  left: 1em;
  top: 50%;
  transform: translateY(-50%);
  display: block;
  background-repeat: no-repeat;
  background-size: contain;
}
.footer_consul li .tel::before  { 
  width: 30px; 
  height: 18px; 
  background-image: url(../images/icon_tel_free_white.svg); 
}
.footer_consul li .line::before { 
  width: 28px; 
  height: 25px; 
  background-image: url(../images/icon_line_white.svg); 
}
.footer_consul li .mail::before { 
  width: 25px; 
  height: 18px; 
  background-image: url(../images/icon_mail_white.svg); 
}
.footer_pagelist li {
  width: 12em;
  margin: 1.3em 0 1.2em;
  font-size: 0.8em;
  line-height: 1.5em;
}
.footer_pagelist li a {
  color: #000;
}
.copy {
  width: 100%;
  margin: 0;
  padding: 0.5em 0;
  font-size: 0.8em;
  line-height: 1.5em;
  color: #fff;
  text-align: center;
  background: var(--main_color);
}
.fix_req {
  position: fixed;
  top: 50%;
  right: 0;
  background: rgba(251, 176, 59, .95);
}
.fix_req a {
  position: relative;
  padding: 1em 0.5em 40px;
  writing-mode: vertical-rl;
  font-size: 0.9em;
  line-height: 1.3em;
  letter-spacing: 0.1em;
  color: #fff;
}
.fix_req a::after {
  position: absolute;
  content: "";
  bottom: 0;
  right: 50%;
  width: 35px;
  height: 35px;
  background: url(../images/req.svg) no-repeat;
  transform: translateX(50%);
}

.page_ttl {
  width: 100%;
  height: 350px;
  background: #f3f3eb;
  box-sizing: border-box;
  display: grid;
  grid-template-rows: 100px 1fr;
}
.wrap_pagettl {
  width: 1400px;
  margin: 0 auto;
  padding: 0 30px;
  grid-row: 2; 
  display: grid;
  align-content: center; 
  justify-items: start;
}
.page_ttl h2 { margin: 0; }
.page_ttl h2 {
  text-align: left;
}
.page_ttl h2 span {
  display: block;
  padding-left: 0.3em;
  font-size: 1rem;
}

.flow {
  width: 100%;
  margin: 30px auto;
}
.flow li {
  width: 100%;
  margin: 0 0 125px;
  overflow: hidden;
  background: #FAFFFB;
  background: linear-gradient(0deg,rgba(221, 240, 229, 1) 20%, rgba(250, 255, 251, 1) 70%, rgba(255, 255, 255, 1) 100%);
  border-radius: 10px;
}
.flow li:last-child {
  margin: 0 0;
}
.flow li .textbox_flow {
  width: 53%;
  float: left;
  padding: 70px 50px 30px;
}
.flow li .textbox_flow h2 {
  position: relative;
  margin: 0 0 30px;
  padding-left: 6em;
  font-size: 1.2em;
  text-align: left;
  color: #0faa92;
  border-bottom: 3px solid #0faa92;
}
.flow li .textbox_flow h2 span {
  position: absolute;
  top: -0.25em;
  left: 0em;
  font-size: 5em;
  font-style: italic;
  color: #0faa92;
}
.flow li .imgbox_flow {
  width: calc(40% - 120px);
  margin-top: 6em;
  padding: 0 35px 30px 65px;
  float: left;
}
.flow li .imgbox_flow img {
  width: 100%;
  border-radius: 10px;
}

.modal_service {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 60px;
  justify-content: center;
}
.modal_service li {
  flex: 0 1 calc((100% - 60px * 3) / 4);
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125em;
  line-height: 1.9em;
  text-align: center;
  color: #fff;
  cursor: pointer;
  background: #0FAA92;
  background: linear-gradient(-45deg,rgba(15, 170, 146, 1) 0%, rgba(126, 205, 146, 1) 100%);
  border-radius: 10px;
}
/* モーダル非表示 */
.modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 1000;
}
.modal.is-open {
  display: block;
}
.modal_overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
}
/* 本体 */
.modal_contents {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 85%;
  max-height: 90vh;
  transform: translate(-50%, -50%);
  background: #fff;
  overflow-y: auto;
  border-radius: 15px;
  padding: 50px 45px;
  color: #fff;
  box-sizing: border-box;
  background: rgba(15, 170, 146, .9);
}
.modal_contents h2 {
  position: relative;
  display: block;
  margin: 0 0 3em;
  font-size: 2em;
  font-weight: 400;
  line-height: 1.6em;
  text-align: center;
}
.modal_contents h2::after {
  position: absolute;
  bottom: -0.8em;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  content: "";
  display: inline-block;
  width: 100px;
  height: 5px;
  border-radius: 100vh;
  background: #fff;
}
.modal_contents .sub_ttl {
  width: 95%;
  max-width: 1000px;
  margin-bottom: 1em;
  font-size: 1.25em;
  text-align: center;
}
.modal_contents h3 {
  margin: 1em auto;
  font-size: 1.25em;
  font-weight: 500;
  text-align: center;
}
.modal_contents h4 {
  font-size: 1.25em;
  font-weight: 400;
  text-align: center;
}
.modal_contents p {
  width: 80%;
  max-width: 800px;
  margin: 0 auto 3em;
  text-align: center;
}
.modal_contents .modal_step {
  width: 90%;
  margin: 3em auto 30px;
}
.modal_contents .modal_step li {
  width: 100%;
  margin: 40px auto;
  padding: 20px;
  border: 1px solid #fff;
  border-radius: 10px;
}
.modal_contents .modal_step h3 span {
  margin-right: 1em;
  padding: 0.2em 0.5em;
  font-size: 0.75em;
  color: var(--main_color);
  background: #fff;
  border-radius: 3px;
}
.modal_contents .modal_step p {
  margin: 0 auto 1em;
}
.modal_contents .modal_list li {
  text-align: center;
  list-style: disc inside;
  padding-left: 10px;
}
.modal_contents .modal_list_wrap {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
}
.modal_contents .modal_list_wrap .modal_list {
  width: 40%;
  margin: 0 auto 3em;
  padding: 0 1em;
}
.modal_contents .modal_list_wrap .modal_list h4 {
  text-align: left;
  margin: 0 0 0.5em;
  padding: 0 0 0 0.5em;
  font-size: 1em;
  border-bottom: 1px solid #fff;
}
.modal_contents .modal_list_wrap .modal_list li {
  position: relative;
  padding-left: 2em;
  text-align: left;
  list-style: none;
}
.modal_contents .modal_list_wrap .modal_list li::before {
  position: absolute;
  top: 0.9em;
  left: 1em;
  content: "";
  width: 0.5em;
  height: 0.5em;
  background: #fff;
}
.modal_contents .modal_flow {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.modal_contents .modal_flow li {
  position: relative;
  width: calc(30%-50px);
  margin: 0 100px 50px 0;
  padding: 0.5em 2em;
  border: 1px solid #fff;
  border-radius: 100vh;
}
.modal_contents .modal_flow li::after {
  position: absolute;
  top: 20%;
  right: -70px;
  content: "→";
  font-size: 2em;
}
.modal_contents .modal_flow li:last-of-type::after {
  content: "";
}
.modal_contents .frame_emph {
  padding: 0.3em 1.5em;
  font-size: 1.2em;
  border: 1px solid #fff;
}
/* 閉じるボタン */
.modal_close {
  position: sticky;
  display: block;
  z-index: 20;
  top: -20px;
  right: -20px;
  margin: 0 0 0 auto;
  background: transparent;
  border: none;
  font-size: 3em;
  font-weight: 400;
  color: #fff;
  cursor: pointer;
}
.modal_body img {
  max-width: 100%;
  height: auto;
  margin: 16px 0;
}
.body--lock {
  overflow: hidden;
}
/* テンプレートは非表示 */
.modal_templates {
  display: none;
}

.tax {
  width: 100%;
}
.tax li {
  width: calc(100% - 120px);
  display: flex;
  flex-wrap: wrap;
  margin: 0 60px;
  padding: 50px 20px;
  border-bottom: 1px solid #999;
}
.tax li:last-child {
  border-bottom: none;
}
.tax li .textbox_tax {
  flex: 1;
}
.tax li .textbox_tax h3 {
  color: #0faa50;
}
.tax li .textbox_tax p {
  margin: 0;
}
.tax li .textbox_tax li {
  position: relative;
  margin: 0;
  padding: 0 0 0 1.2em;
  line-height: 2.5em;
  border-bottom: none;
}
.tax li .textbox_tax li::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "▪️";
}
.tax li .imgbox_tax {
  width: 500px;
}
.tax li .imgbox_tax img {
  width: 100%;
}
.text_emphasis {
  display: block;
  margin: 80px auto0;
  padding: 0.2em 2em;
  text-align: center;
  font-size: 1.3em;
  font-weight: 500;
  color: #fff;
  background: var(--main_color);
  border-radius: 100vh;
}
.notion_qa {
  position: fixed;
  z-index: 30;
  top: 200px;
  right: 30px;
  border-radius: 5px;
  background: var(--main_color);
}
@keyframes blink {
  0%   { opacity: 1; }
  20%  { opacity: 0; }
  80% { opacity: 1; }
  100% { opacity: 1; }
}
.notion_qa.is-blink {
  animation: blink 3s infinite;
}
.notion_qa.is-hide {
  display: none;
}
.notion_qa p {
  margin: 0;
  padding: 0.5em;
  font-size: 0.8em;
  line-height: 1.5em;
  text-align: center;
  color: #fff;
}
.faq {
  width: 95%;
  max-width: 1100px;
  margin: 0 auto;
}
.faq summary {
  position: relative;
  padding: 1em 3.5em;
  border-bottom: 1px solid #000;
  list-style: none;
}
.faq summary::before {
  position: absolute;
  top: 1.5em;
  left: 1em;
  content: "";
  width: 28px;
  height: 28px;
  background: url(../images/icon_q.svg) no-repeat;
}
.faq summary:after {
  position: absolute;
  top: 1.7em;
  right: 1em;
  content: "";
  width: 10px;
  height: 10px;
  border-right: 2px solid #555;
  border-bottom: 2px solid #555;
  transform: rotate(45deg); 
  transition: transform 0.3s ease;
}
.faq[open] summary::after {
  transform: rotate(-135deg); /* 上向きに回転 */
}
.faq-body {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-10px);
  transition: max-height 0.5s ease, opacity 0.4s ease, transform 0.4s ease;
}
/* details が open のときアニメーション */
.faq[open] .faq-body {
  max-height: 500px; /* 内容より大きく */
  opacity: 1;
  transform: translateY(0);
}
.faq .faq-body p {
  position: relative;
  padding: 1em 3.5em;
  border-bottom: 1px solid #000;
  list-style: none;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-10px);
  transition: max-height 1s ease, opacity 1s ease, transform 01s ease;
}
.faq[open] p {
  /* ▼開いたときの動作 */
  max-height: 500px;
  opacity: 1;
  transform: translateY(0);
}
.faq p::before {
  position: absolute;
  top: 1.5em;
  left: 1em;
  content: "";
  width: 28px;
  height: 28px;
  background: url(../images/icon_a.svg) no-repeat;
}
.textbox_company {
  width: 60%;
  margin: 0;
  float: left;
}
.textbox_company dl {
  display: flex;
  flex-wrap: wrap;
}
.textbox_company dt {
  width: 8em;
  margin: 0;
  padding: 2em 1em;
  line-height: 1.5em;
  text-align: justify;
  border-bottom: 1px solid var(--main_color);
}
.textbox_company dd {
  width: calc(100% - 16em);
  margin: 0;
  padding: 2em 1em 2em 2em;
  line-height: 1.5em;
  border-bottom: 1px solid #999;
}
.gmap {
  width: 35%;
  float: left;
  margin: 50px 0 0 5%;
}

.contact_form{
  width: 90%;
  max-width: 850px;
  margin: 0 auto;
}
.form{ /* 余白のベースはフォーム側に */
  margin: 40px 0;
}
/* ====== 行・ラベル ====== */
.form_row { 
  display: flex;
  flex-wrap: wrap; 
  align-items: flex-start;
  margin-bottom: 40px;
}
.label{
  width: 15em;
  letter-spacing: 0.1em;
}
.badge{
  margin-left: 1em;
  font-size: .85rem;
  color:#fff;
  background:#d32d27;
  border-radius: 100vh;
  padding: 0.5em 0.7em;
  vertical-align:middle;
}
.input,
.textarea{
  width: auto; 
  flex: 1 1 auto; 
  padding: 0.8em 2em;
  font-size: 1em;
  border:1px solid #999;
  border-radius: 100vh;
  background:#fff;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.input:focus,
.textarea:focus{
  border-color: #9ad0b1;
  box-shadow: 0 0 0 3px rgba(43,162,76,.15);
}
/* テキストエリアだけ角丸少し小さめ＆高さ */
.textarea{
  border-radius: 15px;
  min-height: 5em;
  resize:vertical;
  line-height:1.8;
}

/* ====== エラー表示 ====== */
.form_row p {
  margin: 0;
  font-size: 0.9em;
  color: #d32d27;
}
.form_row .error{
  display: block;
  order: 3; 
  flex-basis: calc(100% - 20em);
  margin: 0 0 0 17em;
}
/* フィールド直下のエラーが出ている行の枠線を赤に（:hasは対応ブラウザで効く） */
.form_row:has(.error:not(:empty)) .input,
.form_row:has(.error:not(:empty)) .textarea{
  border-color: #d32d27;
}

/* 同意チェックの行 */
.agree_row { 
  margin:18px auto 26px;
}
.agree_label{
  display:flex;
  gap:10px;
  align-items:flex-start;
  line-height:1.6;
}
.agree_label input{
  margin-top:.4em;
  width: 1.5em;
  height: 1.5em;
}
.agree_row p {
  font-size: 0.9em;
  color: #d32d27;
}
.agree_row .error{
  margin-left: 1.8em; /* チェックボックス幅 + 余白 */
}

/* ====== 送信ボタン・全体エラー ====== */
.submit_row{ margin-top:10px; text-align:center; }
.btn_submit{
  appearance:none;
  margin-top: 50px;
  padding: 0.8em 3em;
  background:var(--main_color);
  color:#fff;
  font-size: 1.4em;
  border:none;
  border-radius: 100vh;
  cursor:pointer;
  transition: all .2s ease;
}
.btn_submit:hover{ 
  background: #0FAA92;
}
.send_error{
  margin-top:12px;
  color:var(--danger);
  font-weight:600;
}
/* ====== ハニーポット（画面外へ） ====== */
.hp{
  position:absolute;
  left:-9999px;
  opacity:0;
  height:0; /* ← 修正 (eight → height) */
  width:0;
}

.textbox_l {
  width: calc(50% - 100px);
  float: left;
  margin: 0 0 60px;
  padding: 0 50px;
}
.imgbox_r {
  width: calc(50% - 100px);
  float: left;
  margin: 0 0 60px;
  padding: 0 50px;
}
.imgbox_r img {
  width: 100%;
}


.btn_basic a {
  position: relative;
  width: 400px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 100px;
  color: #fff;
  text-align: center;
  letter-spacing: 0.2rem;
  background: var(--main_color);
  border: 2px solid var(--main_color);
  border-radius: 100vh;
  clear: both;
  transition: all 0.5s ease-in-out;
}
.btn_basic a::after {
  position: absolute;
  content: "";
  top: 50%;
  right: 15px;
  width: 50px;
  height: 50px;
  background: url(../images/icon_arrow.svg) no-repeat;
  transform: translateY(-50%);
  transition: all 0.5s ease-in-out;
}
.btn_basic a:hover {
  background: #fff;
  color: var(--main_color);
  transition: all 0.5s ease-in-out;
}
.btn_basic a:hover::after {
  right: 5px;
  transition: all 0.5s ease-in-out;
}