@charset "UTF-8";
body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  color: #202020;
  line-height: 1.6;
  letter-spacing: 0;
}

.animation_fade {
  opacity: 0;
  transition: opacity 1.5s ease, transform 1.5s ease, filter 1.5s ease;
}
.animation_fade.top {
  transform: translateY(-2.5rem);
}
.animation_fade.bottom {
  transform: translateY(2.5rem);
}
.animation_fade.left {
  transform: translateX(-2.5rem);
}
.animation_fade.right {
  transform: translateX(2.5rem);
}
.animation_fade.blur {
  filter: blur(1rem);
}
.animation_fade.fadein {
  opacity: 1;
  transform: translate(0);
  filter: blur(0);
}

.body_no_scroll {
  overflow: hidden;
  touch-action: none;
  height: 100vh;
}

.hamburger_menu .hamburger_menu_btn {
  display: none;
}
@media screen and (max-width: 768px) {
  .hamburger_menu .hamburger_menu_btn {
    position: absolute;
    z-index: 999;
    right: 1.25rem;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0.375rem;
    width: 2rem;
    aspect-ratio: 1/1;
    background: #31a64c;
    border-radius: 0.125rem;
    transition: all 0.3s ease;
    cursor: pointer;
  }
}
@media screen and (max-width: 768px) {
  .hamburger_menu .hamburger_menu_btn .bar {
    display: block;
    width: 50%;
    height: 1px;
    background-color: #fff;
    transition: all 0.3s ease;
  }
}
.hamburger_menu .hamburger_menu_list_wrapper {
  transition: all 0.3s ease;
}
@media screen and (max-width: 768px) {
  .hamburger_menu .hamburger_menu_list_wrapper {
    position: fixed;
    top: 0;
    display: block;
    width: 100vw;
    height: 100vh;
    background-color: #31a64c;
    overflow-x: auto;
    opacity: 0;
    visibility: hidden;
    right: 0;
  }
}
.hamburger_menu.open .hamburger_menu_btn {
  transition: all 0.3s ease;
}
@media screen and (max-width: 768px) {
  .hamburger_menu.open .hamburger_menu_btn {
    gap: 0;
    background: #fff;
  }
}
@media screen and (max-width: 768px) {
  .hamburger_menu.open .hamburger_menu_btn .bar {
    background: #31a64c;
  }
}
@media screen and (max-width: 768px) {
  .hamburger_menu.open .hamburger_menu_btn .bar:nth-child(1) {
    transform: translateY(0.0625rem) rotate(45deg);
  }
}
@media screen and (max-width: 768px) {
  .hamburger_menu.open .hamburger_menu_btn .bar:nth-child(2) {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .hamburger_menu.open .hamburger_menu_btn .bar:nth-child(3) {
    transform: translateY(-0.0625rem) rotate(-45deg);
  }
}
.hamburger_menu.open .hamburger_menu_list_wrapper {
  transition: all 0.3s ease;
}
@media screen and (max-width: 768px) {
  .hamburger_menu.open .hamburger_menu_list_wrapper {
    opacity: 1;
    visibility: visible;
  }
}

/* リセットCSS */
* {
  margin: 0;
  padding: 0;
}

*,
::before,
::after {
  border-style: solid;
  box-sizing: border-box;
  border-width: 0;
}

html {
  height: 100%;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
}

.all_container {
  overflow-x: hidden;
}

ul,
ol {
  list-style: none;
}

a {
  color: inherit;
  background-color: transparent;
  text-decoration: none;
  text-decoration-skip-ink: auto;
}

img,
video,
iframe,
picture {
  display: block;
  max-width: 100%;
  width: 100%;
}

table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

input,
select,
textarea {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
}

html {
  font-size: 1.3333333333vw;
}
@media screen and (max-width: 768px) {
  html {
    font-size: 16px;
  }
}
@media (min-width: 1200px) {
  html {
    font-size: 16px;
  }
}
@media screen and (max-width: 375px) {
  html {
    font-size: 4.2666666667vw;
  }
}

/* レスポンシブ */
@media screen and (max-width: 768px) {
  .u_pc {
    display: none !important;
  }
}

.u_sp,
.u_sp_b {
  display: none !important;
}
@media screen and (max-width: 768px) {
  .u_sp,
.u_sp_b {
    display: block !important;
  }
}

.u_sp_i {
  display: none !important;
}
@media screen and (max-width: 768px) {
  .u_sp_i {
    display: inline !important;
  }
}

.u_sp_ib {
  display: none !important;
}
@media screen and (max-width: 768px) {
  .u_sp_ib {
    display: inline-block !important;
  }
}

.u_sp_f {
  display: none !important;
}
@media screen and (max-width: 768px) {
  .u_sp_f {
    display: flex !important;
  }
}

.u_sp_t {
  display: none !important;
}
@media screen and (max-width: 768px) {
  .u_sp_t {
    display: table-row !important;
  }
}

/* インナーボックス */
.innerbox_1180 {
  max-width: calc(1180px + 2.5rem);
  margin: 0 auto;
  padding: 0 1.25rem;
}

.innerbox_1120 {
  max-width: calc(1120px + 2.5rem);
  margin: 0 auto;
  padding: 0 1.25rem;
}

/* その他頻出パーツ */
.flexbox {
  display: flex;
}

.flex_center {
  display: flex;
  justify-content: center;
  align-items: center;
}

a,
button,
.btn {
  cursor: pointer;
  transition: all 0.3s ease;
}
a:hover,
button:hover,
.btn:hover {
  opacity: 0.8;
}
@media screen and (max-width: 768px) {
  a:hover,
button:hover,
.btn:hover {
    opacity: 1;
  }
}

ol {
  list-style: decimal;
  padding-left: 1em;
}
ol > li > ul {
  list-style: lower-alpha;
  padding-left: 1em;
}
ol > li > ul > li > ul {
  list-style: lower-roman;
  padding-left: 1em;
}

ul.dot_list > li {
  display: block;
  position: relative;
  padding-left: 1em;
}
ul.dot_list > li::before {
  content: "・";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
}

/* WordPress用パーツ */
.index_php {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2.5rem;
  padding: 12.5rem 1rem;
  text-align: center;
}

.not_open {
  font-size: 1.125rem;
  font-weight: 700;
  text-align: center;
  padding: 2.5rem;
}

.page_contents_wrapper {
  padding-top: 5rem;
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 768px) {
  .page_contents_wrapper {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}
.page_contents_wrapper * {
  font-size: 1rem;
  margin: 1rem 0;
}
@media screen and (max-width: 768px) {
  .page_contents_wrapper * {
    font-size: 0.875rem;
  }
}
.page_contents_wrapper h2,
.page_contents_wrapper h3,
.page_contents_wrapper h4 {
  font-weight: 700;
  margin: 2rem 0 1rem;
}
.page_contents_wrapper h2 {
  font-size: 1.5rem;
}
.page_contents_wrapper h3 {
  font-size: 1.25rem;
}
.page_contents_wrapper h4 {
  font-size: 1.125rem;
}
.page_contents_wrapper li {
  margin: 0;
}
.page_contents_wrapper ul {
  padding-left: 0;
}
.page_contents_wrapper ul > li {
  display: block;
  position: relative;
  padding-left: 1em;
}
.page_contents_wrapper ul > li::before {
  content: "・";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
}
.page_contents_wrapper ol {
  list-style: decimal;
  padding-left: 1em;
}
.page_contents_wrapper ol > li > ol {
  list-style: lower-alpha;
  padding-left: 1em;
}
.page_contents_wrapper ol > li > ol > li > ol {
  list-style: lower-roman;
  padding-left: 1em;
}

.archive_contents_wrapper {
  padding-top: 5rem;
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 768px) {
  .archive_contents_wrapper {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}

.single_contents_wrapper {
  padding-top: 5rem;
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 768px) {
  .single_contents_wrapper {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}

nav#breadcrumb {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
nav#breadcrumb .breadcrumb_inner {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
}
nav#breadcrumb .breadcrumb_inner .breadcrumb_item {
  font-size: 1rem;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  nav#breadcrumb .breadcrumb_inner .breadcrumb_item {
    font-size: 0.875rem;
  }
}
nav#breadcrumb .breadcrumb_inner .breadcrumb_item a,
nav#breadcrumb .breadcrumb_inner .breadcrumb_item span {
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  font-weight: inherit;
  font-family: inherit;
  color: inherit;
}
nav#breadcrumb .breadcrumb_inner .breadcrumb_item:nth-child(n+2) {
  margin-left: 1rem;
}
@media screen and (max-width: 768px) {
  nav#breadcrumb .breadcrumb_inner .breadcrumb_item:nth-child(n+2) {
    margin-left: 0.75rem;
  }
}
nav#breadcrumb .breadcrumb_inner .breadcrumb_item:nth-child(n+2)::before {
  content: ">";
  font-size: inherit;
  line-height: inherit;
  color: #202020;
  margin-right: 1rem;
}
@media screen and (max-width: 768px) {
  nav#breadcrumb .breadcrumb_inner .breadcrumb_item:nth-child(n+2)::before {
    margin-right: 0.75rem;
  }
}
nav#breadcrumb .breadcrumb_inner .breadcrumb_item:nth-last-child(1) {
  white-space: nowrap;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  max-height: 2em;
}
nav#breadcrumb .breadcrumb_inner .breadcrumb_item:nth-last-child(1) a,
nav#breadcrumb .breadcrumb_inner .breadcrumb_item:nth-last-child(1) span {
  opacity: 0.4;
  pointer-events: none;
}

.wpcf7-response-output {
  padding: 1.5rem !important;
  text-align: center;
  font-weight: 700;
  background-color: #fff;
}

body:not(#page__contact) .grecaptcha-badge {
  visibility: hidden;
}

.grecaptcha-badge {
  z-index: 9999;
}

/* body(全体) */
body {
  background-color: #fbfffa;
}

main#main {
  padding-top: 5.5rem;
}
@media screen and (max-width: 768px) {
  main#main {
    padding-top: 4rem;
  }
}

/* ヘッダー */
header#header {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 5.5rem;
  background: rgba(251, 255, 250, 0.5);
  backdrop-filter: blur(0.5rem);
}
@media screen and (max-width: 768px) {
  header#header {
    height: 4rem;
  }
}
header#header .header_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 0 5rem;
}
@media screen and (max-width: 768px) {
  header#header .header_inner {
    padding: 0 1.25rem;
  }
}
header#header .header_logo {
  display: block;
}
header#header .header_logo .logo {
  width: 22.0625rem;
}
@media screen and (max-width: 768px) {
  header#header .header_logo .logo {
    width: 13.25rem;
  }
}
@media screen and (max-width: 768px) {
  header#header .hamburger_menu .hamburger_logo {
    display: block;
    width: 13.25rem;
  }
}
header#header .hamburger_menu_list {
  display: flex;
  align-items: center;
  gap: 2.5rem;
}
@media screen and (max-width: 768px) {
  header#header .hamburger_menu_list_wrapper {
    padding: 1.25rem;
  }
}
@media screen and (max-width: 768px) {
  header#header .hamburger_menu_list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin-top: 3.75rem;
  }
}
header#header .hamburger_menu_list .menu-item a {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media screen and (max-width: 768px) {
  header#header .hamburger_menu_list .menu-item a {
    padding: 1.5rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
  }
}
header#header .hamburger_menu_list .menu-item a > span {
  display: block;
  line-height: 1;
  white-space: nowrap;
}
header#header .hamburger_menu_list .menu-item a .ja {
  font-size: 1rem;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  header#header .hamburger_menu_list .menu-item a .ja {
    font-size: 1rem;
    color: #fff;
  }
}
header#header .hamburger_menu_list .menu-item a .en {
  font-size: 0.75rem;
  font-weight: 500;
  font-family: "Rubik", sans-serif;
  color: #31a64c;
}
@media screen and (max-width: 768px) {
  header#header .hamburger_menu_list .menu-item a .en {
    color: #addbb7;
  }
}
header#header .hamburger_menu_list .menu-item__contact a, header#header .hamburger_menu_list .menu-item__recruit a {
  flex-direction: row;
  align-items: center;
  gap: 1rem;
  min-width: 11.5rem;
  padding: 0.5rem 1rem;
}
@media screen and (max-width: 768px) {
  header#header .hamburger_menu_list .menu-item__contact a, header#header .hamburger_menu_list .menu-item__recruit a {
    width: 100%;
    padding: 0.75rem 1rem;
  }
}
@media screen and (max-width: 768px) {
  header#header .hamburger_menu_list .menu-item__contact a .text, header#header .hamburger_menu_list .menu-item__recruit a .text {
    text-align: left;
  }
}
header#header .hamburger_menu_list .menu-item__contact a .icon, header#header .hamburger_menu_list .menu-item__recruit a .icon {
  display: inline-flex;
  gap: 1rem;
}
header#header .hamburger_menu_list .menu-item__contact a .icon:before, header#header .hamburger_menu_list .menu-item__recruit a .icon:before {
  height: 1.5rem;
}
@media screen and (max-width: 768px) {
  header#header .hamburger_menu_list .menu-item__contact {
    margin-top: 2.5rem;
  }
}
@media screen and (max-width: 768px) {
  header#header .hamburger_menu_list .menu-item__recruit {
    margin-top: 1rem;
  }
}

/* フッター */
footer#footer {
  background-color: #cbfabf;
  padding-top: 3.5rem;
  padding-bottom: 1.5rem;
  border-radius: 2.5rem 2.5rem 0 0;
}
@media screen and (max-width: 768px) {
  footer#footer {
    padding-top: 2.5rem;
    padding-bottom: 1rem;
  }
}
footer#footer .footer_inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2.5rem;
}
@media screen and (max-width: 768px) {
  footer#footer .footer_inner {
    gap: 1.5rem 2.5rem;
  }
}
footer#footer .footer_logo {
  display: block;
  width: 20rem;
}
@media screen and (max-width: 768px) {
  footer#footer .footer_logo {
    width: 12rem;
  }
}
footer#footer .footer_info {
  margin-top: 1.5rem;
}
@media screen and (max-width: 768px) {
  footer#footer .footer_info {
    margin-top: 1rem;
  }
}
footer#footer .footer_info span {
  display: block;
  font-size: 0.875rem;
}
@media screen and (max-width: 768px) {
  footer#footer .footer_info span {
    font-size: 0.75rem;
  }
}
footer#footer .footer_info span:nth-child(n+2) {
  margin-top: 1rem;
}
@media screen and (max-width: 768px) {
  footer#footer .footer_info span:nth-child(n+2) {
    margin-top: 0.5rem;
  }
}
footer#footer .footer_info .tel_fax {
  font-family: "Rubik", sans-serif;
}
footer#footer .footer_sns {
  margin-top: 1.5rem;
}
@media screen and (max-width: 768px) {
  footer#footer .footer_sns {
    margin-top: 1rem;
  }
}
footer#footer .footer_sns .sns_link {
  display: block;
  width: 2.5rem;
  height: 2.5rem;
}
footer#footer .footer_sns .sns_link img {
  height: 100%;
  object-fit: contain;
}
footer#footer .footer_menu_list {
  display: grid;
  grid-template-columns: repeat(2, 10rem);
  gap: 1.5rem 2.5rem;
}
@media screen and (max-width: 768px) {
  footer#footer .footer_menu_list {
    gap: 1rem 2rem;
  }
}
footer#footer .footer_menu_list .menu_item a {
  display: block;
  padding: 0.5rem 0;
  border-bottom: 0.5px solid rgba(32, 32, 32, 0.6);
}
footer#footer .footer_menu_list .menu_item a span {
  display: block;
  line-height: 1;
}
footer#footer .footer_menu_list .menu_item a .ja {
  font-size: 1rem;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  footer#footer .footer_menu_list .menu_item a .ja {
    font-size: 0.875rem;
  }
}
footer#footer .footer_menu_list .menu_item a .en {
  font-size: 0.875rem;
  font-weight: 500;
  font-family: "Rubik", sans-serif;
  color: #31a64c;
  margin-top: 0.5rem;
}
footer#footer .footer_bottom {
  width: 100%;
}
@media screen and (max-width: 768px) {
  footer#footer .footer_bottom {
    padding-top: 1rem;
  }
}
footer#footer .copyright {
  font-size: 0.75rem;
  line-height: 1;
  font-family: "Rubik", sans-serif;
  text-align: right;
  opacity: 0.6;
}
@media screen and (max-width: 768px) {
  footer#footer .copyright {
    font-size: 0.625rem;
  }
}

/* 事業内容リンク */
section#link_business .link_business_inner {
  display: flex;
  align-items: flex-start;
  gap: 2.5rem;
}
@media screen and (max-width: 768px) {
  section#link_business .link_business_inner {
    flex-wrap: wrap;
    gap: 1.5rem;
  }
}
section#link_business .link_business_item {
  position: relative;
  z-index: 400;
  display: block;
  width: calc((100% - 2.5rem) / 2);
  background-color: #fff;
  padding: 2.5rem;
  border-radius: 0.5rem;
  box-shadow: 0 0 2.5rem rgba(19, 65, 45, 0.1294117647);
  transition: all 0.3s ease;
}
@media screen and (max-width: 768px) {
  section#link_business .link_business_item {
    width: 100%;
    padding: 1.5rem;
    border-radius: 0.25rem;
  }
}
section#link_business .link_business_item:nth-child(2) {
  margin-top: 5rem;
}
@media screen and (max-width: 768px) {
  section#link_business .link_business_item:nth-child(2) {
    margin-top: 0;
  }
}
section#link_business .link_business_item *,
section#link_business .link_business_item ::before,
section#link_business .link_business_item ::after {
  color: #31a64c;
  transition: all 0.3s ease;
}
section#link_business .link_business_item__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
section#link_business .link_business_item__number {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}
section#link_business .link_business_item__number > span {
  display: block;
  line-height: 1;
  font-weight: 700;
  font-family: "Rubik", sans-serif;
}
section#link_business .link_business_item__number .text {
  font-size: 1rem;
}
section#link_business .link_business_item__number .number {
  font-size: 2.5rem;
}
section#link_business .link_business_item__logo {
  width: auto;
  height: 3.5rem;
}
section#link_business .link_business_item__title {
  font-size: 1.5rem;
  line-height: 1;
  font-weight: 700;
  margin-top: 2.5rem;
}
@media screen and (max-width: 768px) {
  section#link_business .link_business_item__title {
    font-size: 1.125rem;
    margin-top: 1.5rem;
  }
}
section#link_business .link_business_item__explain {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1.5rem;
  margin-top: 1rem;
}
section#link_business .link_business_item__explain .arrow {
  position: relative;
  z-index: 400;
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
}
section#link_business .link_business_item__explain .arrow img {
  height: 100%;
  object-fit: contain;
}
section#link_business .link_business_item__explain .arrow::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  background-image: url(../../assets/img/common/icon_arrow_btn_white.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0;
}
section#link_business .link_business_item__bg {
  position: absolute;
  z-index: -1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0.5rem;
  opacity: 0;
}
@media screen and (max-width: 768px) {
  section#link_business .link_business_item__bg {
    border-radius: 0.25rem;
  }
}
section#link_business .link_business_item:hover {
  opacity: 1;
}
section#link_business .link_business_item:hover * {
  color: #fff;
}
section#link_business .link_business_item:hover .link_business_item__logo {
  opacity: 0;
}
section#link_business .link_business_item:hover .link_business_item__explain .arrow::after {
  opacity: 1;
}
section#link_business .link_business_item:hover .link_business_item__bg {
  opacity: 1;
}

/* CTA */
section#cta {
  padding: 2.5rem 0 7.5rem;
}
@media screen and (max-width: 768px) {
  section#cta {
    padding: 3.5rem 0 5rem;
  }
}
section#cta .cta_link {
  display: block;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding: 3.5rem 3.5rem 2.5rem;
  margin-top: 2.5rem;
  border-radius: 1.25rem;
  box-shadow: 0 0 1.5rem rgba(58, 196, 136, 0.1294117647);
}
@media screen and (max-width: 768px) {
  section#cta .cta_link {
    padding: 2.5rem 1.5rem;
    margin-top: 1.5rem;
  }
}
section#cta .cta_link__recruit {
  background-image: url(../../assets/img/common/cta_bg_recruit.webp);
}
@media screen and (max-width: 768px) {
  section#cta .cta_link__recruit {
    background-image: url(../../assets/img/common/cta_bg_recruit_sp.webp);
  }
}
section#cta .cta_link__contact {
  background-image: url(../../assets/img/common/cta_bg_contact.webp);
}
@media screen and (max-width: 768px) {
  section#cta .cta_link__contact {
    background-image: url(../../assets/img/common/cta_bg_contact_sp.webp);
  }
}
section#cta .cta_btn_wrapper {
  margin-top: 2.5rem;
}
/* 記事関連 */
.categories_wrapper,
.tags_wrapper {
  display: flex;
  gap: 0.5rem;
}

.cat_item {
  display: inline-block;
  font-size: 0.875rem;
  line-height: 1;
  font-weight: 600;
  color: #31a64c;
  background-color: rgba(49, 166, 76, 0.1);
  padding: 0.5rem 0.75rem;
  border-radius: 1px;
}

.tag_item {
  display: inline-block;
  font-size: 1.125rem;
  line-height: 1;
}
@media screen and (max-width: 768px) {
  .tag_item {
    font-size: 0.75rem;
  }
}

.archive_list {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
@media screen and (max-width: 768px) {
  .archive_list {
    gap: 1rem;
  }
}

@media screen and (max-width: 768px) {
  .archive_cat_item {
    width: calc((100% - 2rem) / 3);
  }
}
.archive_cat_item a {
  min-width: 8rem;
  height: 2.5rem;
  font-size: 1rem;
  line-height: 1;
  font-weight: 600;
  white-space: nowrap;
  color: #31a64c;
  background: rgba(255, 255, 255, 0.8);
  padding: 0 1rem;
  border-radius: 0.125rem;
}
@media screen and (max-width: 768px) {
  .archive_cat_item a {
    min-width: initial;
    width: 100%;
    height: 2.125rem;
    font-size: 0.875rem;
    padding: 0 0.75rem;
  }
}
.archive_cat_item.current a {
  color: #fbfffa;
  background: #31a64c;
}
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  width: 100%;
  margin-top: 2rem;
}
@media screen and (max-width: 768px) {
  .pagination {
    gap: 1rem;
  }
}
.pagination .page-numbers {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 3.5rem;
  height: 3.5rem;
  font-size: 1.125rem;
  line-height: 1;
  font-weight: 700;
  text-align: center;
  color: #31a64c;
  border: 1px solid #31a64c;
  border-radius: 0.125rem;
}
@media screen and (max-width: 768px) {
  .pagination .page-numbers {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 1rem;
  }
}
.pagination .page-numbers.current {
  color: #fff;
  background: #31a64c;
}
.pagination .page-numbers.prev, .pagination .page-numbers.next {
  border: none;
}
.pagination .page-numbers.prev img, .pagination .page-numbers.next img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.pagination .page-numbers.prev {
  margin-right: 1rem;
}
@media screen and (max-width: 768px) {
  .pagination .page-numbers.prev {
    margin-right: 0.5rem;
  }
}
.pagination .page-numbers.prev img {
  transform: rotate(180deg);
}
.pagination .page-numbers.next {
  margin-left: 1rem;
}
@media screen and (max-width: 768px) {
  .pagination .page-numbers.next {
    margin-left: 0.5rem;
  }
}

/* その他パーツ */
.section_title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.section_title > span {
  display: inline-flex;
}
.section_title__ja {
  align-items: center;
  gap: 0.5rem;
  font-size: 1.5rem;
  line-height: 1;
  font-weight: 700;
  margin-bottom: 1rem;
}
@media screen and (max-width: 768px) {
  .section_title__ja {
    font-size: 1rem;
    margin-bottom: 0.75rem;
  }
}
.section_title__ja::before {
  content: "";
  display: block;
  width: 0.8125rem;
  height: 0.8125rem;
  background-image: url(../../assets/img/common/icon_section_title.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
@media screen and (max-width: 768px) {
  .section_title__ja::before {
    width: 0.5625rem;
    height: 0.5625rem;
  }
}
.section_title__en {
  position: relative;
  z-index: 400;
  font-size: 2.5rem;
  line-height: 1;
  font-weight: 600;
  font-family: "Rubik", sans-serif;
  padding: 0.25rem;
  margin-top: 0.5rem;
}
@media screen and (max-width: 768px) {
  .section_title__en {
    font-size: 1.5rem;
    margin-top: 0.25rem;
  }
}
.section_title__en::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  width: 100%;
  height: 100%;
  background: #202020;
  border-radius: 0.125rem;
}
.section_title__en .ja {
  font-size: 2.5rem;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 768px) {
  .section_title__en .ja {
    font-size: 1.25rem;
  }
}

.section_subtitle {
  font-size: 2.5rem;
  line-height: 1;
  font-weight: 700;
  margin-top: 2.5rem;
}
@media screen and (max-width: 768px) {
  .section_subtitle {
    font-size: 1.25rem;
    margin-top: 1.5rem;
  }
}

.section_explain {
  font-size: 1rem;
  line-height: 2;
  margin-top: 1.5rem;
}
@media screen and (max-width: 768px) {
  .section_explain {
    margin-top: 1rem;
    line-height: 1.6;
  }
}

.page_title {
  padding-top: 5rem;
}
@media screen and (max-width: 768px) {
  .page_title {
    padding-top: 4rem;
  }
}
@media screen and (max-width: 768px) {
  .page_title__ja {
    font-size: 1.25rem;
  }
}
.page_title__en {
  font-size: 4rem;
  text-transform: capitalize;
}
@media screen and (max-width: 768px) {
  .page_title__en {
    font-size: 2.5rem;
  }
}

.page_subtitle {
  font-size: 2rem;
  line-height: 1.6;
  font-weight: 700;
  margin-top: 5rem;
}
@media screen and (max-width: 768px) {
  .page_subtitle {
    font-size: 1.5rem;
    margin-top: 2.5rem;
  }
}

.page_explain {
  font-size: 1.125rem;
  line-height: 2;
  font-weight: 500;
  margin-top: 2.5rem;
}
@media screen and (max-width: 768px) {
  .page_explain {
    font-size: 1rem;
    margin-top: 1.5rem;
  }
}

.btn {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 100%;
}
.btn:hover {
  opacity: 1;
}
.btn_maincolor {
  width: 18.75rem;
  height: 3.5rem;
  color: #fff;
  background-color: #31a64c;
  border: 1px solid #31a64c;
  padding: 0 1.5rem;
}
.btn_maincolor:hover {
  color: #31a64c;
  background-color: #fff;
}
.btn_arrow {
  gap: 1.5rem;
  width: fit-content;
  min-width: 16.5rem;
  background: #fbfffa;
  padding: 0.5rem 1.5rem;
  border: 1px solid #31a64c;
  border-radius: 2px;
}
@media screen and (max-width: 768px) {
  .btn_arrow {
    gap: 1rem;
    min-width: 13.5rem;
  }
}
.btn_arrow .text {
  width: 100%;
  font-size: 1rem;
  line-height: 1;
  font-weight: 700;
  color: #31a64c;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .btn_arrow .text {
    font-size: 0.875rem;
  }
}
.btn_arrow .icon {
  position: relative;
  z-index: 400;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .btn_arrow .icon {
    gap: 1rem;
  }
}
.btn_arrow .icon::before {
  content: "";
  display: block;
  width: 0.5px;
  height: 2.5rem;
  background: rgba(49, 166, 76, 0.4);
}
@media screen and (max-width: 768px) {
  .btn_arrow .icon::before {
    height: 2rem;
  }
}
.btn_arrow .icon img {
  width: 1.5rem;
  height: 1.5rem;
  object-fit: contain;
  opacity: 1;
}
.btn_arrow .icon::after {
  content: "";
  position: absolute;
  z-index: 1;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  background-image: url(../../assets/img/common/icon_arrow_btn_white.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0;
}
.btn_arrow:hover {
  background: #31a64c;
}
.btn_arrow:hover .text {
  color: #fff;
}
.btn_arrow:hover .icon::before {
  background: rgba(255, 255, 255, 0.4);
}
.btn_arrow:hover .icon img {
  opacity: 0;
}
.btn_arrow:hover .icon::after {
  opacity: 1;
}
.btn_arrow__border {
  background: #31a64c;
  border: 1px solid #fbfffa;
}
.btn_arrow__border .text {
  color: #fff;
}
.btn_arrow__border .icon::before {
  background: rgba(255, 255, 255, 0.4);
}
.btn_arrow__border:hover {
  background: #fff;
}
.btn_arrow__border:hover .text {
  color: #31a64c;
}
.btn_arrow__border:hover .icon::before {
  background: rgba(49, 166, 76, 0.4);
}

.text_grd {
  background: linear-gradient(90deg, #a4ffb0 0%, #f7f4cf 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.text_white {
  color: #fff;
}

.all_container {
  position: relative;
  z-index: 400;
}

.archive_head_bg,
.page_head_bg {
  position: absolute;
  z-index: -1;
  top: 10.5rem;
  left: 0;
  max-width: initial;
  width: calc(100% + 2.5rem);
  height: auto;
  aspect-ratio: 1480/921;
}
@media screen and (max-width: 768px) {
  .archive_head_bg,
.page_head_bg {
    top: 8rem;
    left: calc(50% + 3rem);
    transform: translateX(-50%);
    width: 48.1875rem;
    aspect-ratio: 771.34/480;
  }
}
.archive_head_bg img,
.page_head_bg img {
  height: 100%;
}

.bg_white_area {
  max-width: 1120px;
  margin-inline: auto;
  background-color: #fff;
  padding: 5rem;
  box-shadow: 0 0 5rem rgba(19, 65, 45, 0.1294117647);
  border-radius: 2.5rem;
}
@media screen and (max-width: 768px) {
  .bg_white_area {
    padding: 2.5rem 1rem;
  }
}
.bg_white_area.mt_80 {
  margin-top: 5rem;
}
@media screen and (max-width: 768px) {
  .bg_white_area.mt_80 {
    margin-top: 4rem;
  }
}

/* トップページ */
section#fv {
  position: relative;
  z-index: 300;
}
section#fv .fv_text {
  padding-top: 8rem;
  padding-bottom: 8.625rem;
}
@media screen and (max-width: 768px) {
  section#fv .fv_text {
    padding-top: 6.5rem;
    padding-bottom: 8.8125rem;
  }
}
section#fv .fv_text .en {
  font-family: "Rubik", sans-serif;
}
section#fv .fv_text_row {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 6.25rem;
  line-height: 1.2;
  font-weight: 700;
}
section#fv .fv_text_row_wrapper {
  opacity: 0;
  transform: translateY(3rem);
  animation: fvTextEn 1.5s ease-out 0s forwards;
}
@keyframes fvTextEn {
  0% {
    opacity: 0;
    transform: translateY(3rem);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@media screen and (max-width: 768px) {
  section#fv .fv_text_row {
    font-size: 3rem;
  }
}
section#fv .fv_text_row span {
  display: block;
}
section#fv .fv_text_subrow {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-size: 2rem;
  line-height: 1;
  font-weight: 700;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  section#fv .fv_text_subrow {
    font-size: 1rem;
  }
}
section#fv .fv_text_subrow > span {
  position: relative;
  z-index: 400;
  padding: 0.5rem;
  transform: translateX(-100%);
}
@media screen and (max-width: 768px) {
  section#fv .fv_text_subrow > span {
    padding: 0.25rem;
  }
}
section#fv .fv_text_subrow > span:before, section#fv .fv_text_subrow > span::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  width: 100%;
  height: 100%;
  background: #202020;
  border-radius: 0.125rem;
}
section#fv .fv_text_subrow > span:before {
  z-index: 1;
}
section#fv .fv_text_subrow > span::after {
  z-index: -1;
}
section#fv .fv_text_subrow .subrow_1 {
  animation: fvTextJa 0.5s ease-out 1s forwards;
}
section#fv .fv_text_subrow .subrow_1:before {
  animation: fvTextJaBg 1s ease-out 1.25s forwards;
}
section#fv .fv_text_subrow .subrow_2 {
  animation: fvTextJa 0.5s ease-out 1.75s forwards;
}
section#fv .fv_text_subrow .subrow_2:before {
  animation: fvTextJaBg 1s ease-out 2s forwards;
}
@keyframes fvTextJa {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes fvTextJaBg {
  0% {
    left: 50%;
  }
  100% {
    left: 150%;
  }
}
section#fv .fv_text_btn_wrapper {
  margin-top: 8rem;
}
@media screen and (max-width: 1200px) {
  section#fv .fv_text_btn_wrapper {
    margin-right: 1.25rem;
  }
}
@media screen and (max-width: 768px) {
  section#fv .fv_text_btn_wrapper {
    margin-top: 18.8125rem;
    margin-right: 1.75rem;
  }
}
section#fv .fv_text_btn_wrapper .btn {
  margin-left: auto;
}
section#fv .fv_text_scroll_logo {
  position: absolute;
  right: 5rem;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 0.75rem;
  line-height: 1.2;
  font-weight: 500;
  font-family: "Rubik", sans-serif;
  writing-mode: vertical-rl;
}
@media screen and (max-width: 1340px) {
  section#fv .fv_text_scroll_logo {
    right: 0.625rem;
  }
}
@media screen and (max-width: 768px) {
  section#fv .fv_text_scroll_logo {
    right: 1.25rem;
    font-size: 0.625rem;
  }
}
section#fv .fv_text_scroll_logo::before {
  content: "";
  position: absolute;
  display: block;
  width: 0.3125rem;
  height: 0.3125rem;
  background: #202020;
  border-radius: 50%;
  animation: scrollAnime 3s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}
@keyframes scrollAnime {
  0% {
    opacity: 0;
    top: 3rem;
  }
  10% {
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  70% {
    opacity: 0;
  }
  100% {
    opacity: 0;
    top: 100%;
  }
}
section#fv .fv_text_scroll_logo::after {
  content: "";
  display: block;
  width: 1px;
  height: 9.0625rem;
  background: #202020;
  margin-inline: auto;
}
section#fv .fv_swiper_container {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  padding-top: 6rem;
}
@media screen and (max-width: 768px) {
  section#fv .fv_swiper_container {
    padding-top: 11.5rem;
  }
}
section#fv .fv_swiper_container .section_bg {
  position: absolute;
  top: 11rem;
  left: 0;
  max-width: initial;
  width: calc(100% + 2.5rem);
  height: auto;
  aspect-ratio: 1480/921;
  transform: translate(-200vw, 40vh);
  animation: fvFadeInBg 1s cubic-bezier(0.15, 0.85, 0.35, 1) 2.5s forwards;
}
@media screen and (max-width: 768px) {
  section#fv .fv_swiper_container .section_bg {
    top: 19.375rem;
    left: 50%;
    transform: translate(calc(-200vw - 50%), 40vh);
    width: 48.208125rem;
    aspect-ratio: 771.33/480;
    animation: fvFadeInBgSP 1s cubic-bezier(0.15, 0.85, 0.35, 1) 2.5s forwards;
  }
}
@keyframes fvFadeInBg {
  0% {
    transform: translate(-200vw, 40vh);
  }
  100% {
    transform: translate(0, 0);
  }
}
@keyframes fvFadeInBgSP {
  0% {
    transform: translate(calc(-200vw - 50%), 40vh);
  }
  100% {
    transform: translate(-50%, 0);
  }
}
section#fv .fv_swiper_container .section_bg .fv_swiper_bg {
  height: 100%;
}
section#fv .swiper {
  overflow: visible;
  transform: translate(200vw, -40vh) rotate(-15deg);
  animation: fvFadeInSwiper 1s cubic-bezier(0.15, 0.85, 0.35, 1) 3s forwards;
}
@keyframes fvFadeInSwiper {
  0% {
    transform: translate(200vw, -40vh) rotate(-15deg);
  }
  100% {
    transform: translate(0, 0) rotate(-15deg);
  }
}
section#fv .swiper-wrapper {
  padding-top: 7rem;
  padding-bottom: 6rem;
}
section#fv .swiper-slide img {
  transform: rotate(15deg);
}
section#fv > .section_bg {
  position: absolute;
  z-index: -2;
  right: 2.5rem;
  bottom: calc(1.5rem - 62.2297297297vw);
  max-width: initial;
  width: calc(100% + 2.5rem);
  height: auto;
  aspect-ratio: 1480/921;
}
@media screen and (max-width: 768px) {
  section#fv > .section_bg {
    bottom: calc(46rem - 160.69375vw);
    right: auto;
    left: calc(50% - 6.5rem);
    transform: translateX(-50%);
    width: 48.208125rem;
    aspect-ratio: 771.33/480;
  }
}
@media screen and (max-width: 690px) {
  section#fv > .section_bg {
    bottom: calc(36rem - 160.69375vw);
  }
}
@media screen and (max-width: 590px) {
  section#fv > .section_bg {
    bottom: calc(28rem - 160.69375vw);
  }
}
@media screen and (max-width: 520px) {
  section#fv > .section_bg {
    bottom: calc(22rem - 160.69375vw);
  }
}
@media screen and (max-width: 480px) {
  section#fv > .section_bg {
    bottom: calc(11rem - 160.69375vw);
  }
}
section#fv > .section_bg .about_us_bg {
  height: 100%;
}
section#about_us {
  position: relative;
  z-index: 400;
  padding-top: 5.75rem;
}
section#about_us .about_us_text_wrapper {
  max-width: 40rem;
}
section#about_us .section_btn_wrapper {
  margin-top: 3.5rem;
}
@media screen and (max-width: 768px) {
  section#about_us .section_btn_wrapper .btn {
    margin-left: auto;
  }
}
section#about_us .about_us_items_wrapper {
  display: flex;
  justify-content: right;
  align-items: center;
  gap: 2rem;
  margin-top: -8.375rem;
}
@media screen and (max-width: 768px) {
  section#about_us .about_us_items_wrapper {
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-top: 10rem;
  }
}
section#about_us .layout_left,
section#about_us .layout_right {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (max-width: 768px) {
  section#about_us .layout_left,
section#about_us .layout_right {
    gap: 1.5rem;
    width: 100%;
  }
}
section#about_us .about_us_item {
  background: #fff;
  padding: 2.5rem;
  border-radius: 0.5rem;
  box-shadow: 0 0 2.5rem rgba(19, 65, 45, 0.1294117647);
}
@media screen and (max-width: 768px) {
  section#about_us .about_us_item {
    padding: 2.5rem 1.5rem;
    border-radius: 0.25rem;
  }
}
section#about_us .about_us_item__title {
  display: flex;
  align-items: center;
  gap: 1rem;
}
section#about_us .about_us_item__title .icon {
  width: 2.5rem;
  height: 2.5rem;
  object-fit: contain;
  flex-shrink: 0;
}
section#about_us .about_us_item__title .text {
  display: block;
  width: 100%;
  font-size: 1.125rem;
  font-weight: 700;
}
section#about_us .about_us_item__explain {
  color: rgba(32, 32, 32, 0.6);
  margin-top: 1rem;
}
section#bridge {
  position: relative;
  z-index: 401;
  padding-top: 6.875rem;
}
@media screen and (max-width: 768px) {
  section#bridge {
    padding-top: 3.5rem;
  }
}
section#bridge .swiper-wrapper {
  margin-top: 1.5rem;
  transition-timing-function: linear !important;
}
section#bridge .swiper_01 .swiper-slide {
  width: 110.125rem;
}
@media screen and (max-width: 768px) {
  section#bridge .swiper_01 .swiper-slide {
    width: 53rem;
  }
}
section#bridge .swiper_02 .swiper-slide {
  width: 132.25rem;
}
@media screen and (max-width: 768px) {
  section#bridge .swiper_02 .swiper-slide {
    width: 63.3125rem;
  }
}

section#service .service_inner {
  position: relative;
  z-index: 400;
  display: flex;
  gap: 3.5rem;
  padding-top: 7.5rem;
}
@media screen and (max-width: 768px) {
  section#service .service_inner {
    flex-direction: column-reverse;
    gap: 2.375rem;
    padding-top: 5rem;
  }
}
section#service .service_image_wrapper {
  width: 100%;
  padding-top: 15.1875rem;
}
@media screen and (max-width: 768px) {
  section#service .service_image_wrapper {
    padding-top: 0;
  }
}
section#service .service_image_wrapper .service_icon {
  width: 11.5rem;
}
section#service .service_text_wrapper {
  width: 27.8125rem;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  section#service .service_text_wrapper {
    width: 100%;
  }
}
section#service .section_btn_wrapper {
  margin-top: 3.5rem;
}
@media screen and (max-width: 768px) {
  section#service .section_btn_wrapper {
    margin-top: 2.5rem;
  }
}
@media screen and (max-width: 768px) {
  section#service .section_btn_wrapper .btn {
    margin-left: auto;
  }
}
section#service .section_bg {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 6.25rem;
  max-width: initial;
  width: 92.5rem;
  height: auto;
  aspect-ratio: 1480/921;
}
@media screen and (max-width: 768px) {
  section#service .section_bg {
    top: -4rem;
    left: calc(50% + 7rem);
    transform: translateX(-50%);
    width: 64.25rem;
    aspect-ratio: 1028.45/640;
  }
}
section#service .section_bg .service_bg {
  height: 100%;
}
section#works {
  position: relative;
  z-index: 400;
  padding-top: 7.5rem;
}
@media screen and (max-width: 768px) {
  section#works {
    padding-top: 5rem;
  }
}
section#works .works_head {
  display: flex;
  align-items: flex-end;
  gap: 1rem;
}
@media screen and (max-width: 768px) {
  section#works .works_head {
    flex-direction: column;
    align-items: flex-start;
  }
}
section#works .section_title {
  flex-shrink: 0;
}
section#works .section_explain {
  margin-top: 0;
}
section#works .works_btn_wrapper {
  margin-top: 1rem;
}
@media screen and (max-width: 768px) {
  section#works .works_btn_wrapper {
    margin-top: 2.5rem;
  }
}
section#works .works_btn_wrapper .btn {
  margin-left: auto;
}

section#company {
  position: relative;
  z-index: 300;
  padding-top: 4rem;
}
@media screen and (max-width: 768px) {
  section#company {
    padding-top: 5rem;
  }
}
section#company .company_inner {
  position: relative;
  z-index: 400;
  display: flex;
  align-items: flex-start;
  gap: 4rem;
}
@media screen and (max-width: 768px) {
  section#company .company_inner {
    flex-wrap: wrap;
    gap: 0;
  }
}
section#company .company_text_wrapper {
  width: 28.4375rem;
  max-width: 100%;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  section#company .company_text_wrapper {
    width: 100%;
  }
}
section#company .company_btn_wrapper {
  margin-top: 3.5rem;
}
@media screen and (max-width: 768px) {
  section#company .company_btn_wrapper {
    margin-top: 2.5rem;
  }
}
section#company .company_btn_wrapper .btn {
  margin-left: auto;
}
section#company .company_icon {
  width: 10.625rem;
  margin: 3.125rem 1rem 0 auto;
}
@media screen and (max-width: 768px) {
  section#company .company_icon {
    width: 5.375rem;
    margin: 1rem 0 0;
  }
}
section#company .company_image_wrapper {
  width: 100%;
  margin-top: 10rem;
}
@media screen and (max-width: 768px) {
  section#company .company_image_wrapper {
    margin-top: -1rem;
  }
}
section#company .section_bg {
  position: absolute;
  z-index: -1;
  top: -19.75rem;
  right: -7.5rem;
  max-width: initial;
  width: 92.5rem;
  height: auto;
  aspect-ratio: 1480/921;
}
@media screen and (max-width: 768px) {
  section#company .section_bg {
    top: -4.5rem;
    right: auto;
    left: calc(50% + 13rem);
    transform: translateX(-50%);
    width: 64.25rem;
    aspect-ratio: 1028.45/640;
  }
}
section#company .section_bg .company_bg {
  height: 100%;
}

@media screen and (max-width: 768px) {
  body#page__top .all_container {
    background-image: url(../../assets/img/top/all_bg_sp.webp);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
  }
}
body#page__top main#main {
  padding-top: 0;
}
body#page__top .all_bg_area {
  background-image: url(../../assets/img/top/all_bg.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  padding-bottom: 2.5rem;
}
@media screen and (max-width: 768px) {
  body#page__top .all_bg_area {
    background: none;
    padding-bottom: 0;
  }
}
body#page__top .section_title__en {
  font-size: 4rem;
}
@media screen and (max-width: 768px) {
  body#page__top .section_title__en {
    font-size: 1.5rem;
  }
}
@media screen and (max-width: 768px) {
  body#page__top section#link_business {
    padding-top: 4.25rem;
  }
}
body#page__top section#link_business .link_business_item:nth-child(1) {
  margin-top: 5rem;
}
@media screen and (max-width: 768px) {
  body#page__top section#link_business .link_business_item:nth-child(1) {
    margin-top: 0;
  }
}
body#page__top section#link_business .link_business_item:nth-child(2) {
  margin-top: 0;
}
body#page__top footer#footer {
  margin-top: -2.5rem;
}
@media screen and (max-width: 768px) {
  body#page__top footer#footer {
    margin-top: 0;
  }
}

/* 下層ページ */
.works_swiper {
  display: flex;
  gap: 1.5rem;
}
.works_swiper_wrapper {
  padding-left: 1.25rem;
  max-width: calc(1120px + 2.5rem + (100vw - (1120px + 2.5rem)) / 2);
  margin-left: auto;
}
@media screen and (max-width: 768px) {
  .works_swiper {
    flex-direction: column-reverse;
    gap: 0;
  }
}
.works_swiper_button {
  position: initial;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  width: 100%;
  height: 50%;
  margin: 0;
  cursor: pointer;
}
.works_swiper_button_wrapper {
  position: relative;
  z-index: 400;
  width: 7.5rem;
  min-height: 25rem;
  background-color: #31a64c;
  border-radius: 0.5rem;
  margin: 2.5rem 0;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .works_swiper_button_wrapper {
    display: flex;
    flex-direction: row-reverse;
    width: calc(100% - 1.25rem);
    min-height: initial;
    height: 5rem;
    margin: 0;
  }
}
.works_swiper_button_wrapper::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 5rem;
  height: 1px;
  background-color: rgba(255, 255, 255, 0.6);
}
@media screen and (max-width: 768px) {
  .works_swiper_button_wrapper::after {
    width: 1px;
    height: 5rem;
  }
}
@media screen and (max-width: 768px) {
  .works_swiper_button {
    gap: 1rem;
    width: 50%;
    height: 100%;
  }
}
.works_swiper_button span {
  font-size: 1rem;
  line-height: 1;
  font-weight: 600;
  font-family: "Rubik", sans-serif;
  color: #fff;
}
.works_swiper_button img {
  width: 2.5rem;
  height: 2.5rem;
  object-fit: contain;
}
@media screen and (max-width: 768px) {
  .works_swiper_button img {
    width: 2rem;
    height: 2rem;
  }
}
.works_swiper_button::after {
  display: none;
}
@media screen and (max-width: 768px) {
  .works_swiper_button_next {
    flex-direction: row;
  }
}
@media screen and (max-width: 768px) {
  .works_swiper_button_prev {
    flex-direction: row-reverse;
  }
}
.works_swiper_button_prev img {
  transform: rotate(180deg);
}
.works_swiper .swiper-wrapper {
  align-items: stretch;
  margin: 2.5rem 0;
}
@media screen and (max-width: 768px) {
  .works_swiper .swiper-wrapper {
    margin: 1.5rem 0;
  }
}
.works_swiper .swiper-slide {
  display: flex;
  width: 19.6875rem;
  height: auto;
}
@media screen and (max-width: 768px) {
  .works_swiper .swiper-slide {
    width: 15.75rem;
  }
}

.works_co {
  width: calc((100% - 3rem) / 3);
}
@media screen and (max-width: 768px) {
  .works_co {
    width: calc((100% - 1.5rem) / 2);
  }
}
@media screen and (max-width: 480px) {
  .works_co {
    width: 100%;
  }
}
.works_co a {
  display: flex;
  flex-direction: column;
  background-color: #fff;
  padding: 0.5rem 0.5rem 1rem;
  border-radius: 0.5rem;
  box-shadow: 0 0 2.5rem rgba(19, 65, 45, 0.1294117647);
}
.works_co a:hover {
  opacity: 1;
}
.works_co a:hover .works_co__arrow::after {
  opacity: 1;
}
.works_co__image {
  height: auto;
  aspect-ratio: 342/256;
  object-fit: cover;
  border-radius: 0.5rem;
}
.works_co__text {
  flex: 1;
  padding: 1rem 1.5rem;
}
@media screen and (max-width: 768px) {
  .works_co__text {
    padding: 1rem;
  }
}
.works_co__title {
  font-size: 1.125rem;
  font-weight: 600;
  margin-top: 0.5rem;
}
.works_co__date {
  font-size: 0.875rem;
  line-height: 1;
  font-weight: 500;
  color: #a6a6a6;
  margin-top: 0.5rem;
}
@media screen and (max-width: 768px) {
  .works_co__date {
    font-size: 0.75rem;
  }
}
.works_co__arrow {
  position: relative;
  z-index: 400;
  width: 2.5rem;
  height: 2.5rem;
  margin-left: auto;
  margin-right: 1.5rem;
}
@media screen and (max-width: 768px) {
  .works_co__arrow {
    margin-right: 1rem;
  }
}
.works_co__arrow img {
  height: 100%;
  object-fit: contain;
}
.works_co__arrow::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  background-image: url(../../assets/img/common/icon_arrow_navi_green.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  transition: all 0.3s ease;
  opacity: 0;
}

.archive_main_contents {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.single_contents_wrapper {
  padding-bottom: 0;
}
.single_contents_inner {
  background-color: #fff;
  padding: 5rem;
  border-radius: 1.25rem;
  box-shadow: 0 0 1.5rem rgba(58, 196, 136, 0.1294117647);
}
@media screen and (max-width: 768px) {
  .single_contents_inner {
    padding: 2.5rem 1rem;
  }
}
.single_contents__categories {
  margin-bottom: 1rem;
}
.single_contents__title {
  font-size: 2rem;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .single_contents__title {
    font-size: 1.25rem;
  }
}
.single_contents__date {
  font-size: 1.125rem;
  line-height: 1;
  font-weight: 500;
  color: #a6a6a6;
  margin-top: 1rem;
}
@media screen and (max-width: 768px) {
  .single_contents__date {
    font-size: 0.875rem;
  }
}
.single_contents__image {
  margin-top: 2.5rem;
  border-radius: 0.5rem;
}
.single_contents__toc {
  margin-top: 2.5rem;
}
.single_contents__toc .ez-toc-counter {
  background-color: #f6f6f6;
  padding: 1rem 1.5rem 1.5rem;
  border-radius: 0.5rem;
}
.single_contents__toc .ez-toc-title-container {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: center;
  gap: 0.75rem;
}
.single_contents__toc .ez-toc-title-container a,
.single_contents__toc .ez-toc-title-container span {
  display: block;
}
.single_contents__toc .ez-toc-title {
  font-size: 1rem;
  line-height: 2;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .single_contents__toc .ez-toc-title {
    font-size: 0.875rem;
  }
}
.single_contents__toc .ez-toc-title-toggle .ez-toc-icon-toggle-span {
  display: flex;
  align-items: center;
}
.single_contents__toc .ez-toc-title-toggle svg {
  color: #31a64c !important;
  fill: #31a64c !important;
}
.single_contents__toc .ez-toc-title-toggle .arrow-unsorted-368013 {
  display: none;
}
.single_contents__toc ul.ez-toc-list {
  font-size: 1rem;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .single_contents__toc ul.ez-toc-list {
    font-size: 0.875rem;
  }
}
.single_contents__toc ul.ez-toc-list a {
  display: block;
  font-size: inherit;
  line-height: inherit;
}
.single_contents__toc li.ez-toc-heading-level-2 {
  margin-top: 1.5rem;
}
.single_contents__toc li.ez-toc-heading-level-2 > a {
  font-weight: 700;
}
.single_contents__toc ul.ez-toc-list-level-3 {
  padding-left: 1.25rem;
  margin-top: 0.5rem;
}
@media screen and (max-width: 768px) {
  .single_contents__toc ul.ez-toc-list-level-3 {
    padding-left: 1rem;
    margin-top: 0.25rem;
  }
}
.single_contents__toc li.ez-toc-heading-level-3 {
  list-style: decimal;
}
.single_contents__toc ul.ez-toc-list-level-4 {
  padding-left: 1rem;
  margin-top: 0.5rem;
}
@media screen and (max-width: 768px) {
  .single_contents__toc ul.ez-toc-list-level-4 {
    margin-top: 0.25rem;
  }
}
.single_contents__toc li.ez-toc-heading-level-4 {
  list-style: lower-roman;
}
.single_contents__overview {
  margin-top: 2.5rem;
}
.single_contents__overview .overview_title {
  font-size: 1.25rem;
  font-weight: 600;
  color: #31a64c;
  background-color: rgba(49, 166, 76, 0.1);
  padding: 0.5rem 1.25rem;
  border-left: 4px solid #31a64c;
  border-radius: 0.25rem;
}
@media screen and (max-width: 768px) {
  .single_contents__overview .overview_title {
    font-size: 1rem;
    padding: 0.5rem 1rem;
  }
}
.single_contents__overview .overview_grid {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem 1.5rem;
  margin-top: 1.5rem;
}
.single_contents__overview .overview_grid > div {
  font-size: 1.125rem;
}
@media screen and (max-width: 768px) {
  .single_contents__overview .overview_grid > div {
    font-size: 1rem;
  }
}
.single_contents__overview .overview_grid__label {
  font-weight: 600;
  text-align: center;
}
.single_contents__overview .overview_bfaf {
  display: flex;
  gap: 2.5rem;
  margin-top: 1.5rem;
}
@media screen and (max-width: 768px) {
  .single_contents__overview .overview_bfaf {
    flex-direction: column;
    gap: 1rem;
  }
}
.single_contents__overview .overview_bfaf__item {
  display: flex;
  flex-direction: column;
  width: calc((100% - 2.5rem) / 2);
}
@media screen and (max-width: 768px) {
  .single_contents__overview .overview_bfaf__item {
    width: 100%;
  }
}
.single_contents__overview .overview_bfaf__item__title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.5rem;
  line-height: 1;
  font-weight: 700;
  color: #31a64c;
}
@media screen and (max-width: 768px) {
  .single_contents__overview .overview_bfaf__item__title {
    gap: 0.75rem;
    font-size: 1.25rem;
  }
}
.single_contents__overview .overview_bfaf__item__title::before {
  content: "";
  display: block;
  width: 0.8125rem;
  height: 0.8125rem;
  background-image: url(../../assets/img/common/icon_section_title_green.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.single_contents__overview .overview_bfaf__item__image {
  aspect-ratio: 460/345;
  object-fit: cover;
  border-radius: 0.5rem;
}
.single_contents__overview .overview_bfaf__before .overview_bfaf__item__title {
  justify-content: flex-start;
  margin-bottom: 1.5rem;
}
@media screen and (max-width: 768px) {
  .single_contents__overview .overview_bfaf__before .overview_bfaf__item__title {
    margin-bottom: 1rem;
  }
}
@media screen and (max-width: 768px) {
  .single_contents__overview .overview_bfaf__after {
    flex-direction: column-reverse;
  }
}
.single_contents__overview .overview_bfaf__after .overview_bfaf__item__title {
  justify-content: flex-end;
  margin-top: 1.5rem;
}
@media screen and (max-width: 768px) {
  .single_contents__overview .overview_bfaf__after .overview_bfaf__item__title {
    justify-content: flex-start;
    margin-top: 0;
    margin-bottom: 1rem;
  }
}
.single_contents__text {
  margin-top: 2.5rem;
}
.single_contents__text > * {
  margin: 1.5rem 0;
}
.single_contents__text h2,
.single_contents__text h3,
.single_contents__text h4 {
  font-size: 1.5rem;
  font-weight: 600;
  color: #fff;
  background-color: #31a64c;
  padding: 0.75rem 1.5rem;
  margin: 2rem 0 1.5rem;
  border-radius: 0.25rem;
}
@media screen and (max-width: 768px) {
  .single_contents__text h2,
.single_contents__text h3,
.single_contents__text h4 {
    font-size: 1rem;
    padding: 0.75rem 1.25rem;
  }
}
.single_contents__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 2.5rem;
  background-color: #eaf6ed;
  padding: 1.5rem;
  margin-top: 2.5rem;
  border-radius: 0.25rem;
}
@media screen and (max-width: 768px) {
  .single_contents__tags {
    padding: 1rem;
  }
}
.single_contents__tag_item {
  color: #31a64c;
}
.single_contents__contact {
  margin-top: 3.5rem;
}
@media screen and (max-width: 768px) {
  .single_contents__contact {
    margin-top: 2.5rem;
  }
}
.single_contents__contact .btn {
  margin-inline: auto;
}
.single_contents__nav {
  margin-top: 3.5rem;
}
@media screen and (max-width: 768px) {
  .single_contents__nav {
    margin-top: 2.5rem;
  }
}
.single_contents__nav .btn {
  margin-inline: auto;
}
section#ather_works {
  padding-top: 7.5rem;
}
@media screen and (max-width: 768px) {
  section#ather_works {
    padding-top: 5rem;
  }
}

section#recommend {
  padding-top: 5rem;
}
@media screen and (max-width: 768px) {
  section#recommend {
    padding-top: 4rem;
  }
}
section#recommend .recommend_inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #fff;
  padding: 4rem 2.5rem;
  box-shadow: 0 0 2.5rem rgba(19, 65, 45, 0.1294117647);
}
@media screen and (max-width: 768px) {
  section#recommend .recommend_inner {
    padding: 2.5rem 1rem;
  }
}
section#recommend .recommend_title {
  position: relative;
  z-index: 400;
  font-size: 2.5rem;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  section#recommend .recommend_title {
    font-size: 1.5rem;
  }
}
section#recommend .recommend_title::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  right: 0;
  bottom: 0.25rem;
  display: block;
  width: 100%;
  height: 1rem;
  background: linear-gradient(270deg, #f7f4cf 0%, #a4ffb0 100%);
}
section#recommend .recommend_explain {
  font-size: 1.125rem;
  text-align: center;
  margin-top: 2.5rem;
}
@media screen and (max-width: 768px) {
  section#recommend .recommend_explain {
    font-size: 1rem;
    margin-top: 1.5rem;
  }
}
section#recommend .recommend_list {
  margin-top: 2.5rem;
}
@media screen and (max-width: 768px) {
  section#recommend .recommend_list {
    margin-top: 1.5rem;
  }
}
section#recommend .recommend_list_item {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  font-size: 1.25rem;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  section#recommend .recommend_list_item {
    gap: 0.5rem;
    font-size: 1rem;
  }
}
section#recommend .recommend_list_item::before {
  content: "";
  display: block;
  width: 2.5rem;
  height: 2.5rem;
  background-image: url(../../assets/img/common/icon_check.webp);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
@media screen and (max-width: 768px) {
  section#recommend .recommend_list_item::before {
    width: 1.5rem;
    height: 1.5rem;
  }
}
section#recommend .recommend_list_item:nth-child(n+2) {
  margin-top: 1rem;
}
section#recommend .recommend_arrow {
  width: 5rem;
  height: 2.5rem;
  margin: 2.5rem auto;
}
@media screen and (max-width: 768px) {
  section#recommend .recommend_arrow {
    width: 3rem;
    height: 1.5rem;
    margin: 1.5rem auto;
  }
}
section#recommend .recommend_logo_wrapper .logo {
  height: 2.5rem;
  object-fit: contain;
}
@media screen and (max-width: 768px) {
  section#recommend .recommend_logo_wrapper .logo {
    height: 2rem;
  }
}
section#recommend .recommend_logo_wrapper .text {
  display: block;
  font-size: 1.25rem;
  line-height: 1;
  font-weight: 700;
  text-align: center;
  margin-top: 1.5rem;
}
@media screen and (max-width: 768px) {
  section#recommend .recommend_logo_wrapper .text {
    font-size: 1rem;
    margin-top: 1rem;
  }
}

section#solutions {
  padding-top: 7.5rem;
}
@media screen and (max-width: 768px) {
  section#solutions {
    padding-top: 5rem;
  }
}
section#solutions .solutions_contents_wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-top: 2.5rem;
}
section#solutions .solutions_item {
  width: calc((100% - 3rem) / 3);
}
@media screen and (max-width: 768px) {
  section#solutions .solutions_item {
    width: 100%;
  }
}
section#solutions .solutions_item__image {
  aspect-ratio: 357/268;
  border-radius: 0.5rem;
}
section#solutions .solutions_item__label {
  position: relative;
  z-index: 400;
  font-size: 1.25rem;
  line-height: 1;
  font-weight: 600;
  color: #31a64c;
  padding: 0.625rem 0.75rem;
  margin-top: 1rem;
}
section#solutions .solutions_item__label::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  top: 0;
  bottom: 0;
  display: block;
  width: 0.25rem;
  background-color: #31a64c;
  border-radius: 0.25rem;
}
section#solutions .solutions_item__content {
  font-size: 1rem;
  line-height: 1.6;
  padding: 0.5rem 0 0 0.75rem;
}
@media screen and (max-width: 768px) {
  section#solutions .solutions_item__content {
    padding-left: 0.5rem;
  }
}

section#message {
  padding-top: 4rem;
  padding-bottom: 7.5rem;
}
@media screen and (max-width: 768px) {
  section#message {
    padding-top: 1.5rem;
    padding-bottom: 3.5rem;
  }
}
section#message .message_inner {
  display: flex;
  align-items: center;
  gap: 3rem;
}
@media screen and (max-width: 768px) {
  section#message .message_inner {
    flex-wrap: wrap;
    gap: 1.5rem;
  }
}
section#message .message_image_wrapper {
  max-width: 100%;
  width: 29.3125rem;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  section#message .message_image_wrapper {
    width: 100%;
  }
}
section#message .message_text_wrapper {
  width: 100%;
}
section#message .message_main {
  font-size: 1.125rem;
  line-height: 2;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  section#message .message_main {
    font-size: 1rem;
  }
}
section#message .message_signature {
  margin-top: 3.5rem;
}
@media screen and (max-width: 768px) {
  section#message .message_signature {
    padding-left: 3.25rem;
    margin-top: 1.5rem;
  }
}
section#message .message_signature span {
  position: relative;
  z-index: 400;
  display: block;
  line-height: 1;
  font-weight: 700;
}
section#message .message_signature .position {
  font-size: 1.25rem;
  margin-bottom: 1rem;
}
@media screen and (max-width: 768px) {
  section#message .message_signature .position {
    font-size: 0.875rem;
  }
}
section#message .message_signature .position::before {
  content: "";
  position: absolute;
  z-index: 1;
  left: -4.75rem;
  top: 50%;
  transform: translateY(-50%);
  display: block;
  width: 4rem;
  height: 2px;
  background-color: #202020;
}
@media screen and (max-width: 768px) {
  section#message .message_signature .position::before {
    left: -3.25rem;
    width: 2.5rem;
  }
}
section#message .message_signature .name {
  font-size: 1.5rem;
}
@media screen and (max-width: 768px) {
  section#message .message_signature .name {
    font-size: 1rem;
  }
}

section#company_overview .company_overview_details {
  display: grid;
  grid-template-columns: 12.5rem 1fr;
  margin-top: 2.5rem;
}
@media screen and (max-width: 768px) {
  section#company_overview .company_overview_details {
    grid-template-columns: 1fr;
    margin-top: 1.5rem;
  }
}
section#company_overview .company_overview_details .label,
section#company_overview .company_overview_details .content {
  font-size: 1.125rem;
  line-height: 1.4;
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.4);
}
@media screen and (max-width: 768px) {
  section#company_overview .company_overview_details .label,
section#company_overview .company_overview_details .content {
    padding-top: 1rem;
  }
}
section#company_overview .company_overview_details .label {
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  section#company_overview .company_overview_details .label {
    font-size: 0.875rem;
    padding-bottom: 0;
    border-bottom: none;
  }
}
section#company_overview .company_overview_details .content {
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  section#company_overview .company_overview_details .content {
    font-size: 1rem;
    padding-bottom: 1rem;
  }
}

section#company_story {
  display: flex;
  align-items: flex-start;
  gap: 2.5rem;
  padding-top: 5rem;
}
@media screen and (max-width: 768px) {
  section#company_story {
    flex-wrap: wrap;
    gap: 1.5rem;
    padding-top: 2.5rem;
  }
}
section#company_story .section_title {
  width: 12.5rem;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  section#company_story .section_title {
    width: 100%;
  }
}
section#company_story .story_contents_wrapper {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2.5rem;
  width: 100%;
}
@media screen and (max-width: 768px) {
  section#company_story .story_contents_wrapper {
    gap: 1rem;
  }
}
section#company_story .story_label {
  font-size: 3.5rem;
  line-height: 1;
  font-weight: 700;
  font-family: "Rubik", sans-serif;
}
@media screen and (max-width: 768px) {
  section#company_story .story_label {
    font-size: 2rem;
  }
}
section#company_story .story_details .year {
  font-size: 0.875rem;
  line-height: 1;
  font-weight: 700;
  color: rgba(32, 32, 32, 0.4);
}
@media screen and (max-width: 768px) {
  section#company_story .story_details .year {
    font-size: 0.75rem;
  }
}
section#company_story .story_details .year:nth-of-type(n + 2) {
  margin-top: 1.5rem;
}
section#company_story .story_details .content {
  font-size: 1rem;
  line-height: 1.4;
  font-weight: 500;
  padding-top: 1rem;
}
@media screen and (max-width: 768px) {
  section#company_story .story_details .content {
    font-size: 0.875rem;
  }
}

section#company_access {
  display: flex;
  align-items: flex-start;
  gap: 2.5rem;
  padding-top: 5rem;
}
@media screen and (max-width: 768px) {
  section#company_access {
    flex-wrap: wrap;
    gap: 1.5rem;
    padding-top: 2.5rem;
  }
}
section#company_access .section_title {
  width: 12.5rem;
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  section#company_access .section_title {
    width: 100%;
  }
}
section#company_access .access_map_wrapper {
  width: 100%;
  height: 27.5rem;
}
section#company_access .access_map_wrapper iframe {
  height: 100%;
  border-radius: 1.25rem;
}
.contact_form {
  font-size: 1.125rem;
  line-height: 1.6;
  font-weight: 500;
}
@media screen and (max-width: 768px) {
  .contact_form {
    font-size: 1rem;
  }
}
.contact_form input:not([type=radio]):not([type=checkbox]):not([type=submit]),
.contact_form select,
.contact_form textarea {
  width: 100%;
  font-size: 1.125rem;
  color: #202020;
  background: rgba(32, 32, 32, 0.04);
  padding: 0.5rem 1rem;
  border-radius: 2px;
  margin-top: 0.5rem;
}
@media screen and (max-width: 768px) {
  .contact_form input:not([type=radio]):not([type=checkbox]):not([type=submit]),
.contact_form select,
.contact_form textarea {
    font-size: 1rem;
    padding: 0.75rem 0.5rem;
  }
}
.contact_form input:not([type=radio]):not([type=checkbox]):not([type=submit]),
.contact_form select {
  height: 3.375rem;
}
@media screen and (max-width: 768px) {
  .contact_form input:not([type=radio]):not([type=checkbox]):not([type=submit]),
.contact_form select {
    height: 3.125rem;
  }
}
.contact_form input[type=radio],
.contact_form input[type=checkbox] {
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  accent-color: #31a64c;
}
.contact_form__row:nth-child(n+2) {
  margin-top: 1.5rem;
}
.contact_form__label {
  font-size: 1.25rem;
  line-height: 1;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .contact_form__label {
    font-size: 1rem;
  }
}
.contact_form .red,
.contact_form .gray {
  display: inline-block;
  font-size: 0.875rem;
  line-height: 1;
  font-weight: 600;
  margin-left: 0.5rem;
}
@media screen and (max-width: 768px) {
  .contact_form .red,
.contact_form .gray {
    font-size: 0.6875rem;
  }
}
.contact_form .red {
  color: #f43b3b;
}
.contact_form .gray {
  color: #797979;
}
.contact_form .layout_flex {
  display: flex;
  align-items: flex-start;
}
.contact_form .layout_flex.gap_40 {
  gap: 1rem 2.5rem;
}
.contact_form .layout_flex.gap_24 {
  gap: 1rem 1.5rem;
}
@media screen and (max-width: 768px) {
  .contact_form .layout_flex.sp_wrap {
    flex-wrap: wrap;
  }
}
@media screen and (max-width: 768px) {
  .contact_form .layout_flex__auto {
    width: 100%;
  }
}
.contact_form .layout_flex__50 {
  width: 50%;
}
.contact_form .wpcf7-checkbox span,
.contact_form .wpcf7-radio span {
  display: block;
  margin: 0;
}
.contact_form .wpcf7-checkbox .wpcf7-list-item label,
.contact_form .wpcf7-radio .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.contact_form .wpcf7-checkbox .wpcf7-list-item:nth-child(n+2),
.contact_form .wpcf7-radio .wpcf7-list-item:nth-child(n+2) {
  margin-top: 0.5rem;
}
.contact_form .acceptance_wrapper {
  margin-top: 2.5rem;
}
@media screen and (max-width: 768px) {
  .contact_form .acceptance_wrapper {
    margin-top: 1.5rem;
  }
}
.contact_form .acceptance_checkbox span {
  display: block;
  margin: 0;
}
.contact_form .acceptance_checkbox label {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}
.contact_form .acceptance_checkbox label .wpcf7-list-item-label span {
  display: inline;
}
.contact_form .acceptance_link {
  font-size: 0.875rem;
  text-align: center;
  margin-top: 1.5rem;
}
@media screen and (max-width: 768px) {
  .contact_form .acceptance_link {
    text-align: left;
  }
}
.contact_form .acceptance_link a {
  color: #31a64c;
  text-decoration: underline;
}
.contact_form .submit_wrapper {
  margin-top: 3.5rem;
}
@media screen and (max-width: 768px) {
  .contact_form .submit_wrapper {
    margin-top: 2.5rem;
  }
}
.contact_form .submit_wrapper .btn_submit {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 17.5rem;
  height: 3.5rem;
  font-size: 1rem;
  line-height: 1;
  font-weight: 700;
  color: #31a64c;
  background: #fbfffa;
  margin-inline: auto;
  border: 1px solid #31a64c;
  cursor: pointer;
}
.contact_form .submit_wrapper .btn_submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.contact_form .submit_wrapper .btn_submit:hover {
  color: #fbfffa;
  background: #31a64c;
}

/*# sourceMappingURL=style.css.map */
