@charset "utf-8";
:root {
  --base-color: #000;
  --bg-color: #f5f5f5;
  --main-color: #c92222;
  --border-color: #a5a5a5;
  --default-font: "Yu Gothic Medium", "游ゴシック Medium", "Yu Gothic",
    "游ゴシック", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --bold-font: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic ProN", Meiryo,
    sans-serif;
  --eng-style: italic;
  --eng-font: "Barlow Condensed", sans-serif;
  --eng-weight: 600;
  --normal: 500;
  --bold: 700;
  --google-icon: "Material Symbols Outlined";
  --bootstrap: "bootstrap-icons";
}
* {
  box-sizing: border-box;
}
:where(figure) {
  margin-bottom: 0em !important;
}
p,
a {
  font-size: 1em;
}
a:hover {
  text-decoration: none;
}
#main {
  overflow: hidden;
}
header {
  padding: 32px 7vw 0 4vw;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: absolute;
}
header .logo {
  width: 400px;
  height: auto;
  transform: translateY(-3px);
  z-index: 60;
}
header > ul {
  display: flex;
  color: #fff;
  font-weight: var(--bold);
  margin-top: 14px;
  z-index: 60;
}
header > ul li {
  font-size: 0.95em;
}
header > ul li:not(:first-of-type) {
  padding-left: 0.7vw;
}
header > ul li:not(:last-of-type) {
  padding-right: 0.7vw;
}
header > ul li a {
  transition: all 0.6s cubic-bezier(0.215, 0.61, 0.355, 1);
}
header > ul a:hover {
  opacity: 0.75;
}
header > ul li:nth-of-type(5) {
  padding-left: 2.7vw;
}
header > ul li:nth-of-type(6) {
  padding-right: 2.4vw;
}
header > ul li:last-of-type {
  padding-left: 1.7vw;
  position: relative;
}
header > ul li:last-of-type::before {
  content: "";
  height: 70%;
  width: 1px;
  background-color: #fff;
  position: absolute;
  left: 0;
  top: 35%;
  transform: translateY(-50%);
}
header #fixed-nav {
  position: fixed;
  right: 3vw;
  top: 46px;
  z-index: 200;
}
header #hamburger {
  background-color: var(--main-color);
  aspect-ratio: 1/1;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  position: relative;
}
header #hamburger .drawer-hamburger {
  position: absolute;
  width: 17px !important;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
header #fixed-nav #hamburger .drawer-toggle .drawer-hamburger-icon {
  background-color: #fff;
  z-index: 0;
  height: 1px !important;
}
header #fixed-nav #hamburger .drawer-toggle .drawer-hamburger-icon::before,
header #fixed-nav #hamburger .drawer-toggle .drawer-hamburger-icon::after {
  width: 100% !important;
  background-color: #fff !important;
  z-index: -1;
  height: 1px !important;
}
.drawer-hamburger-icon:before {
  top: -6px !important;
}
.drawer-hamburger-icon:after {
  top: 6px !important;
}
.drawer-nav {
  width: 50% !important;
  z-index: 80 !important;
  padding: 5vh 0 0;
  background-color: #fafafa !important;
}
.drawer-menu {
  padding: 0 5.3vw 0vw !important;
}
header #global-nav > ul:first-of-type > li:first-of-type {
  width: 372px;
  margin-bottom: 3.2vw;
}
.drawer-open .drawer-hamburger-icon {
  background-color: var(--main-color) !important;
}
.drawer-open #hamburger {
  background-color: var(--main-color);
  z-index: 100;
}
.drawer-open .drawer-hamburger-icon:before {
  top: auto !important;
}
.drawer-open .drawer-hamburger-icon:after {
  top: auto !important;
}
header #global-nav > ul > li {
  margin-bottom: 4.6vh;
}
header #global-nav ul li h2 {
  color: var(--main-color);
  font-family: var(--eng-font);
  font-weight: 600;
  font-style: var(--eng-style);
  font-size: clamp(28px, 2vw, 2vw);
  letter-spacing: 0.08em;
  line-height: 1.2;
}
header #global-nav ul li p {
  font-size: clamp(15px, 1vw, 1.05vw);
}
header #global-nav > ul > li:nth-of-type(6),
header #global-nav > ul > li:nth-of-type(7) {
  display: flex;
}
header #global-nav > ul > li:nth-of-type(6) {
  gap: 110px;
}
header #global-nav > ul > li:nth-of-type(6) ul {
  display: flex;
  gap: 0px 24px;
  flex-wrap: wrap;
}
header #global-nav > ul > li:nth-of-type(6) ul li a {
  position: relative;
  padding-left: 18px;
}
header #global-nav > ul > li:nth-of-type(6) ul li a::before {
  content: "";
  aspect-ratio: 1/1;
  background-color: var(--main-color);
  border-radius: 999px;
  width: 14px;
  height: auto;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
header #global-nav > ul > li:nth-of-type(6) ul li:last-of-type {
  width: 100%;
}
header #global-nav > ul > li:nth-of-type(7) {
  gap: 52px;
}
ul.fix-button-list {
  display: flex;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 56px;
}
ul.fix-button-list li {
  background-color: var(--main-color);
  color: #fff;
  height: 56px;
}
ul.fix-button-list li:first-of-type {
  width: 25.5%;
}
ul.fix-button-list li:nth-of-type(2) {
  width: 35.8%;
}
ul.fix-button-list li:last-of-type {
  width: 38.5%;
}
ul.fix-button-list li:not(:last-of-type) {
  border-right: 1px solid #fff;
}
ul.fix-button-list li a {
  font-weight: var(--bold);
  font-family: var(--bold-font);
  font-size: clamp(12px, 1.3vw, 18px);
  text-align: center;
  display: block;
  width: 100%;
  padding: 0.7em 0 0.9em 0;
}
ul.fix-button-list li a .initial {
  position: relative;
  padding-left: 40px;
}
ul.fix-button-list li:last-of-type {
  line-height: 1;
  position: relative;
}
ul.fix-button-list li:last-of-type a {
  padding: 0.2em 0 0.3em;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: clamp(12px, 1.4vw, 22px);
}
ul.fix-button-list li:first-of-type a .initial::before {
  content: "";
  background-image: url(../../img/common/document_icon.png);
  background-repeat: no-repeat;
  background-size: contain;
  aspect-ratio: 1/1;
  width: 2.4vw;
  height: auto;
  max-width: 34px;
  position: absolute;
  left: 0px;
  top: 50%;
  transform: translateY(-50%);
}
#global-nav ul.fix-button-list li:last-of-type span.size50 {
  transform: translateX(-78%);
}
ul.fix-button-list li:last-of-type span.size50 {
  text-align: left;
  font-size: 0.5em;
  transform: translateX(-48%);
  display: inline-block;
}
ul.fix-button-list li:nth-of-type(2) a .initial::before {
  content: "";
  background-image: url(../../img/common/mail_icon.png);
  background-repeat: no-repeat;
  background-size: contain;
  aspect-ratio: 1/1;
  width: 2.4vw;
  height: auto;
  max-width: 34px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
ul.fix-button-list li:last-of-type a {
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%);
}
ul.fix-button-list li:last-of-type a span {
  position: relative;
}
#global-nav ul.fix-button-list li:last-of-type a span.initial::before {
  left: -49%;
  top: 58%;
  transform: translateY(-20%);
}
ul.fix-button-list li:last-of-type a span.initial::before {
  content: "";
  background-image: url(../../img/common/tel_icon.png);
  background-repeat: no-repeat;
  background-size: contain;
  aspect-ratio: 1/1;
  width: 2.4vw;
  height: auto;
  max-width: 34px;
  position: absolute;
  left: 0px;
  top: 60%;
  transform: translateY(-50%);
}
.drawer-open .overlay {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 70;
  background: rgba(3, 3, 3, 0.2);
  display: block;
}
#billboard {
  background-image: url(../../img/index/top_image.png);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 150vh;
  position: relative;
  z-index: 50;
  padding: 180px 6vw 0;
}
#billboard::after {
  content: "";
  background-image: linear-gradient(180deg, #1cb0e6, transparent);
  display: block;
  width: 100%;
  height: 100vh;
  max-height: 100vh;
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  left: 0;
}

#billboard .text-box h2 {
  font-family: var(--eng-font);
  font-weight: var(--eng-weight);
  font-size: 3.8vw;
  color: #010c42;
  line-height: 1.3;
  letter-spacing: 0.08em;
  mix-blend-mode: overlay;
  margin-bottom: 25px;
}
#billboard .text-box h3 {
  color: #fff;
  font-family: var(--bold-font);
  font-size: 2.5vw;
  position: relative;
  z-index: 100;
  letter-spacing: 0.16em;
  margin-left: 2vw;
  margin-bottom: 25px;
}
#billboard .text-box p {
  color: #fff;
  position: relative;
  z-index: 100;
  font-family: var(--bold-font);
  font-weight: var(--bold);
  letter-spacing: 0.18em;
  font-size: 1.45vw;
}
#fixed-button {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 60;
  width: 50%;
}

#main > div:not(#billboard) .title-box h2 {
  font-family: var(--eng-font);
  font-weight: var(--eng-weight);
  font-style: var(--eng-style);
  font-size: 5em;
  line-height: 1;
  letter-spacing: 0.08em;
  margin-bottom: 0.25em;
}
#main > div:not(#billboard) .title-box p {
  color: var(--main-color);
  font-size: 1.5em;
  font-weight: var(--bold);
}
#main > div:not(#billboard) > .flex {
  margin-bottom: 70px;
  gap: 240px;
}
#main > div:not(#billboard) .text-box {
  line-height: 2.2;
}
#main > div:not(#billboard) .text-box p {
  margin-bottom: 45px;
  font-size: 1em;
  font-weight: var(--normal);
}
ul.button-list li a {
  display: inline-block;
  width: 207px;
  font-family: var(--bold-font);
  font-weight: var(--bold);
  font-size: 1.25em;
  border-bottom: 2px solid var(--main-color);
  position: relative;
  padding-bottom: 4px;
}
ul.button-list li a::before {
  content: "";
  background-color: var(--main-color);
  border: 1px solid var(--main-color);
  aspect-ratio: 1/1;
  width: 26px;
  height: auto;
  border-radius: 999px;
  position: absolute;
  right: 0;
  top: 42%;
  transform: translateY(-50%);
  transition: all 0.2s ease-in-out;
}
ul.button-list li a::after {
  content: "\F138";
  font-family: var(--bootstrap);
  color: #fff;
  font-size: 0.55em;
  font-weight: 400;
  position: absolute;
  right: 0.65em;
  top: 42%;
  transform: translateY(-50%);
  transition: all 0.2s ease-in-out;
}
ul.button-list li a:hover::before {
  background-color: #fff;
}
ul.button-list li a:hover::after {
  color: var(--main-color);
}
#index-business {
  position: relative;
  z-index: 10;
}
#index-business::after {
  content: "";
  width: 100vw;
  height: 140%;
  background-image: url(../../img/common/bg.png);
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0.6;
  background-position: center;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
  transform: translateY(-15%);
}
#index-business::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top, transparent, transparent);
  filter: blur(5px);
  margin: -5px;
  z-index: -5;
  transform: translateY(-160px);
}
#index-business .flex {
  margin: 0 calc((100% - 1090px) / 2);
}
#index-business > ul {
  display: flex;
  gap: 30px;
  margin: 0 calc((100% - 1090px) / 2);
  padding-bottom: 165px;
}
#index-business > ul li {
  width: calc((100% - 30px) / 2);
  position: relative;
}
#index-business > ul li img {
  aspect-ratio: 528/386;
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}
#index-business > ul li a {
  display: block;
  width: 100%;
  height: auto;
  color: #fff;
  font-size: 1.5em;
  border-radius: 20px;
  position: relative;
  overflow: hidden;
}
#index-business > ul li a h3 {
  display: block;
  width: 100%;
  position: absolute;
  z-index: 50;
  color: #fff;
  font-family: var(--bold-font);
  left: 38px;
  bottom: 29px;
  line-height: 1.4;
  z-index: 120;
}
#index-business > ul li:nth-of-type(2) a h3 {
  bottom: 14px;
}
#index-business > ul li::before {
  content: "";
  background-color: var(--main-color);
  aspect-ratio: 1/1;
  width: 44px;
  height: auto;
  border-radius: 999px;
  position: absolute;
  right: 28px;
  bottom: 25px;
  z-index: 120;
}
#index-business > ul li::after {
  content: "\F138";
  font-family: var(--bootstrap);
  font-weight: 400;
  color: #fff;
  font-size: 12px;
  position: absolute;
  right: 42px;
  bottom: 35px;
  z-index: 120;
}
#index-business > ul li:first-of-type {
  overflow: hidden;
  border-radius: 20px;
}
#index-business > ul li a::before {
  content: "";
  background-image: linear-gradient(
    180deg,
    transparent,
    rgba(185, 185, 185, 0.22),
    #676767
  );
  display: block;
  width: 100%;
  height: 100%;
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  left: 0;
  transition: all 0.5s ease-in-out;
  z-index: 100;
}
#index-business > ul li a figure {
  transition: all 0.3s ease-in-out;
}
#index-business > ul li a:hover figure {
  transform: scale(1.05);
  z-index: 10;
  position: relative;
}

#index-projects {
  padding-top: 165px !important;
  padding-bottom: 120px;
  position: relative;
  z-index: 1;
}
#index-projects::after {
  content: "";
  width: 100vw;
  height: 100%;
  background-image: url(../../img/common/bg01.png);
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0.6;
  background-position: center;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
}
#main > figure {
  position: relative;
  z-index: 50;
}
#index-projects .flex {
  margin: 0 calc((100% - 1090px) / 2);
}
#index-projects > .main-swiper ul {
  margin: 0 calc((100% - 1090px) / 2);
  display: flex;
  gap: 35px;
}
#index-projects > .main-swiper ul li {
  width: calc((100% - 105px) / 4);
}

#index-projects > .main-swiper ul a:hover figure img {
  transform: scale(1.05);
}
#index-projects > .main-swiper ul figure {
  aspect-ratio: 249/290;
  overflow: hidden;
  border-radius: 10px;
}
#index-projects > .main-swiper ul figure img {
  aspect-ratio: 249/290;
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center;
  transition: all 0.3s ease-in-out;
}
#index-projects span.tab {
  margin-top: 1em;
  display: inline-block;
  border: 1px solid #000;
  border-radius: 999px;
  padding: 4px 18px 2px;
  font-size: 1.1em;
  margin-bottom: 18px;
}
#index-projects > .main-swiper ul li p {
  font-size: 1.1em;
  font-weight: var(--bold);
  font-family: var(--bold-font);
  line-height: 1.4;
}
#index-company {
  position: relative;
  z-index: 10;
  background-color: var(--bg-color);
  padding: 100px 0 95px;
}
#index-company .flex {
  margin-bottom: 0 !important;
  margin: 0 calc((100% - 1090px) / 2);
  gap: 194px !important;
}
#index-company ul.button-list {
  margin-top: 86px;
}
#index-company figure {
  aspect-ratio: 600/386;
  width: 100%;
  height: auto;
  overflow: hidden;
}
#index-company figure img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
#index-movie {
  background-color: var(--main-color);
  padding-top: 60px;
  padding-bottom: 95px;
}
#index-movie .title-box {
  color: #fff;
  text-align: center;
}
#index-movie > .title-box > p {
  color: #fff !important;
  margin-bottom: 55px;
}
#index-movie > ul {
  margin: 0 calc((100% - 1090px) / 2);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 62px 30px;
}
#index-movie > ul li {
  width: calc((100% - 30px) / 2);
}
#index-movie > ul li iframe {
  aspect-ratio: 530/305;
  width: 100%;
  height: auto;
}
#index-movie > ul li p {
  text-align: center;
  font-family: var(--bold-font);
  font-weight: var(--bold);
  color: #fff;
  font-size: 1.1em;
  margin-top: 0.4em;
}
.index-button-container {
  display: flex;
}
.index-button-container li {
  aspect-ratio: 683/402;
  width: 50%;
  height: auto;
  position: relative;
}
.index-button-container li a {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
}
.index-button-container li:first-of-type a {
  background-image: url(../../img/index/09.jpg);
  background-size: cover;
  background-repeat: no-repeat;
}
.index-button-container li:nth-of-type(2) a {
  background-image: url(../../img/index/10.jpg);
  background-size: cover;
  background-repeat: no-repeat;
}
.index-button-container li a::before {
  content: "";
  background-color: #a8a8a8;
  mix-blend-mode: multiply;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  transition: all 0.2s ease-in-out;
}
.index-button-container li a:hover::before {
  background-color: transparent;
}
.index-button-container li .text-box {
  position: absolute;
  z-index: 50;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  text-align: center;
}
.index-button-container li .text-box h2 {
  font-family: var(--eng-font);
  font-style: var(--eng-style);
  font-weight: var(--eng-weight);
  font-size: 3.1em;
  letter-spacing: 0.08em;
}
.index-button-container li .text-box p {
  font-size: 1.5em;
  font-family: var(--bold-font);
  font-weight: var(--bold);
}
#index-news {
  padding: 150px calc((100% - 1090px) / 2);
  display: flex;
  gap: 230px;
}
#index-news .title-box .button-list {
  margin-top: 86px;
}
#index-news > ul.news-list {
  width: 100%;
}
#index-news > ul.news-list > li {
  padding-bottom: 24px;
  border-bottom: 1px solid #707070;
}
#index-news ul.news-list li a .date {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 1.25em;
}
#index-news ul.news-list li a .date p {
  font-family: var(--bold-font);
  font-weight: var(--bold);
  font-size: 0.95em;
}
#index-news ul.news-list li a .date span.tag {
  font-size: 0.8em;
  font-weight: var(--bold);
  font-family: var(--bold-font);
  color: #707070;
  line-height: 1.4;
  letter-spacing: 0.04;
  padding: 3px 1em 2px;
  width: 124px;
  text-align: center;
  background-color: #e2e2e2;
  border-radius: 2px;
}
#index-news ul.news-list li a .date span.important {
  color: var(--main-color);
  background-color: #ffd1d1;
}
#index-news > ul.news-list li:not(:last-of-type) {
  margin-bottom: 35px;
}
#index-news > ul.news-list h3 {
  font-size: 1em;
  position: relative;
}
#index-news > ul.news-list a:hover h3 {
  text-decoration: underline;
}
#index-news > ul.news-list h3::before {
  content: "";
  background-color: var(--main-color);
  aspect-ratio: 1 / 1;
  width: 26px;
  height: auto;
  border-radius: 999px;
  position: absolute;
  right: 0;
  top: 42%;
  transform: translateY(-50%);
}
#index-news > ul.news-list h3::after {
  content: "\F138";
  font-family: var(--bootstrap);
  color: #fff;
  font-size: 0.6em;
  font-weight: 400;
  position: absolute;
  right: 6px;
  top: 44%;
  transform: translateY(-50%);
}
#index-contact {
  padding: 0 calc((100% - 1090px) / 2) 105px;
}
#index-contact h2 {
  font-family: var(--eng-font);
  font-weight: var(--eng-weight);
  font-style: var(--eng-style);
  font-size: 5em;
  line-height: 1;
  letter-spacing: 0.08em;
  margin-bottom: 0.25em;
}
#index-contact a {
  aspect-ratio: 1088/386;
  display: block;
  width: 100%;
  background-image: url(../../img/index/11.jpg);
  background-repeat: no-repeat;
  background-size: contain;
  border-radius: 20px;
  position: relative;
}
#index-contact a::before {
  content: "";
  background-color: #b1b1b1;
  display: block;
  width: 100%;
  height: 100%;
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 20px;
  transition: all 0.2s ease-in-out;
}
#index-contact a:hover::before {
  background-color: transparent;
}
#index-contact a .title-box {
  position: relative;
  z-index: 50;
  color: #fff;
  margin-left: 50px;
  padding-top: 66px;
}
#index-contact > a > .title-box > p {
  color: #fff !important;
}
#index-contact .contact-text {
  font-size: 1.1em !important;
  margin-top: 50px;
}
footer {
  background-color: var(--main-color);
  position: relative;
  z-index: 60;
  padding: 80px 5vw 30px;
}
footer h2 img {
  aspect-ratio: 398/37;
  width: 29vw;
  max-width: 398px;
  height: auto;
}
footer .flex {
  align-items: center;
  justify-content: space-between;
}
footer .flex:first-of-type {
  margin-bottom: 20px;
}
footer .flex:nth-of-type(2) {
  align-items: flex-start;
}
footer .flex ul {
  display: flex;
  gap: 28px;
  color: #fff;
  font-size: 0.95em;
  font-weight: var(--bold);
  font-family: var(--bold-font);
}
footer .flex ul li a {
  transition: all 0.2s ease-in-out;
}
footer .flex ul li a:hover {
  opacity: 0.75;
}
footer ul.address-list {
  display: flex;
  justify-content: space-between;
  color: #fff;
  gap: 7vw;
  font-size: 1.1em;
  font-weight: var(--bold);
  font-family: var(--bold-font);
  margin-top: 140px;
}
footer ul.address-list li {
  position: relative;
}
footer ul.address-list li {
  line-height: 1.6;
}
footer ul.address-list li:not(:last-of-type)::before {
  content: "";
  width: 1px;
  height: 100%;
  background-color: #fff;
  position: absolute;
  right: -3.5vw;
  top: 0;
}
footer .copy-container a:first-of-type figure img {
  aspect-ratio: 330/150;
  width: 262px;
  height: auto;
  border-radius: 6px;
  margin-bottom: 26px;
}
footer .copy-container a:nth-of-type(2) figure img {
  aspect-ratio: 262/68;
  width: 262px;
  height: auto;
  border-radius: 6px;
  margin-bottom: 26px;
}
footer .copy-container {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  font-weight: var(--normal);
  font-size: 0.8em;
  color: #fff;
}
footer .copy-text-box a {
  transition: all 0.2s ease-in-out;
}
footer .copy-text-box a:hover {
  opacity: 0.75;
}
/*下層ページヘッダースタイル*/
.sub-page-header > ul {
  color: #000;
}
.sub-page-header {
  padding-bottom: 42px;
  background-color: #fff;
  border-bottom: 1px solid #a5a5a5;
  height: 130px;
}
header.sub-page-header > ul li:last-of-type::before {
  background-color: #000;
}

/*ビジネスページ*/
main {
  overflow: hidden;
}
section {
  margin: 0 calc((100% - 1092px) / 2);
  position: relative;
  z-index: 10;
}
#sub-billboard {
  position: relative;
  z-index: 1;
  padding: 180px calc((100% - 1092px) / 2) 0;
}
#sub-billboard figure {
  overflow: hidden;
  border-radius: 5px;
}
#sub-billboard::before {
  content: "";
  background-image: url(../../img/common/sub_bg.png);
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0.6;
  aspect-ratio: 2048/862;
  width: 100vw;
  height: auto;
  position: absolute;
  left: 0;
  top: 130px;
  z-index: -1;
}
#sub-billboard .title-box h2 {
  color: var(--main-color);
  font-family: var(--eng-font);
  font-weight: var(--eng-weight);
  font-style: var(--eng-style);
  font-size: 5em;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
#sub-billboard .title-box h3 {
  color: var(--main-color);
  font-family: var(--bold-font);
  font-size: 1.25em;
  margin-bottom: 40px;
}
main ul.crumb {
  margin-top: 1em;
  margin-bottom: 90px;
  display: flex;
  gap: 28px;
  color: var(--main-color);
  font-size: 0.85em;
  padding: 0 calc((100% - 1092px) / 2);
  position: relative;
  z-index: 10;
}
main ul.crumb li {
  position: relative;
}
main ul.crumb li:last-of-type a {
  pointer-events: none;
}
main ul.crumb li:not(:last-of-type)::after {
  content: "";
  height: 2px;
  width: 7px;
  background-color: var(--main-color);
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translate(50%, -50%);
}
section:not(:last-of-type) {
  border-bottom: 1px solid #a5a5a5;
}
#business {
  margin-bottom: 92px;
}
#business section:first-of-type {
  padding-bottom: 59px;
  margin-bottom: 53px;
}
#business section:nth-of-type(2) {
  padding-bottom: 72px;
  margin-bottom: 77px;
}
#business section:nth-of-type(3) {
  padding-bottom: 83px;
  margin-bottom: 65px;
}
#business section:nth-of-type(4) {
  padding-bottom: 122px;
  margin-bottom: 80px;
}
#business section:nth-of-type(5) {
  padding-bottom: 102px;
  margin-bottom: 104px;
}
#business section:nth-of-type(6) {
  padding-bottom: 102px;
  margin-bottom: 104px;
}
.business-description {
  text-align: center;
  margin-bottom: 120px;
}
.business-description h2 {
  color: var(--main-color);
  font-family: var(--bold-font);
  font-weight: var(--bold);
  font-size: 2.4em;
  margin-bottom: 1em;
}
.business-description p {
  font-size: 1.1em;
}
section > h3 {
  font-size: 1.9em;
  font-family: var(--bold-font);
  position: relative;
  padding-left: 30px;
  margin-bottom: 0.2em;
}
section > h3::before {
  content: "";
  background-color: var(--main-color);
  width: 10px;
  height: 30px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
section > p {
  padding-left: 30px;
  font-size: 1.1em;
  line-height: 2;
}
section ul.gallery-list {
  display: flex;
  gap: 22px;
  margin-top: 1.8em;
}
section ul.gallery-list p {
  text-align: center;
  color: var(--main-color);
  margin-top: 0.6em;
  font-size: 1.1em;
}
#business section.strength h4 {
  font-size: 1.75em;
  font-family: var(--bold-font);
  font-weight: var(--bold);
  color: var(--main-color);
}
#business section.strength h4 .check {
  position: relative;
  padding-left: 60px;
}
#business section.strength h4 .check::before {
  content: "";
  background-image: url(../../img/business/check_icon.svg);
  background-size: contain;
  background-repeat: no-repeat;
  aspect-ratio: 48/39;
  width: 46px;
  height: auto;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
#business section.strength .text-box p {
  font-size: 1.1em;
  line-height: 2;
  padding-left: 60px;
}
#business section.strength .flex {
  gap: 65px;
  margin-bottom: 65px;
}
#business section.strength .text-box h4 {
  margin-bottom: 0.2em;
}
#business section.strength .flex .text-box {
  flex: 1;
  margin-top: 40px;
}
#business section.strength .flex h4 {
  margin-bottom: 38px;
}
#business section.strength .chart-box {
  background-color: var(--bg-color);
  padding: 37px 36px 31px;
  width: 620px;
}
#business section.strength .chart-box ul {
  display: flex;
  align-items: center;
  gap: 40px;
}
#business section.strength .chart-box ul li:first-of-type {
  background-color: var(--main-color);
  color: #fff;
  font-size: 1.1em;
  font-family: var(--bold-font);
  font-weight: var(--bold);
  width: 230px;
  padding: 6px 0 6px;
  text-align: center;
  position: relative;
}
#business section.strength .chart-box ul li:first-of-type::after {
  content: "";
  background-color: var(--main-color);
  aspect-ratio: 15/13;
  width: 17px;
  height: auto;
  clip-path: polygon(0 0, 0 100%, 100% 50%);
  position: absolute;
  top: 50%;
  right: -28px;
  transform: translateY(-50%);
}
#business section.strength .chart-box ul li:nth-of-type(2) {
  flex: 1;
  color: var(--main-color);
  line-height: 1.4;
  font-size: 1.1em;
}
#business section.strength .chart-box ul:not(:last-of-type) li {
  margin-bottom: 20px;
}
#business .owned-list ul.gallery-list {
  gap: 30px;
  margin-top: 100px;
}
#business .owned-list ul.gallery-list p {
  margin-top: 1.2em;
}
#business .owned-list > p {
  padding-left: 0;
}
#business .owned-list .flex {
  margin-top: 56px;
  align-items: flex-start;
  gap: 47px;
}
#business .owned-list .flex table {
  border-collapse: collapse;
  width: calc((100% - 47px) / 2);
}
#business .owned-list .flex table tr {
  border-top: 1px solid #707070;
}
#business .owned-list .flex table tr:last-child {
  border-bottom: 1px solid #707070;
}
#business .owned-list .flex table tr th {
  background-color: var(--bg-color);
  text-align: center;
  font-weight: var(--normal);
  font-size: 1.1em;
  padding: 21px 0 18px;
  width: 45%;
}
#business .owned-list .flex table tr td {
  text-align: center;
  font-weight: var(--normal);
  font-size: 1.1em;
  padding: 21px 0 18px;
}
#business .cost > p,
#business .manifest > p {
  padding-left: 0;
}
#business .manifest table {
  border-collapse: collapse;
  border: 1px solid #959494;
  width: 100%;
  margin-top: 2em;
}
#business .manifest table thead {
  background-color: var(--bg-color);
  text-align: center;
  padding: 20px 0;
  font-weight: var(--bold);
  font-family: var(--bold-font);
  font-size: 1.1em;
  border-bottom: 1px solid #959494;
}
#business .manifest table thead tr th {
  padding: 14px 0;
}
#business .manifest table thead tr th:not(:last-of-type) {
  border-right: 1px solid #959494;
}
#business .manifest table tbody tr td {
  padding: 14px 0;
  line-height: 1.6;
  background-color: #ffffff;
  text-align: center;
}
#business .manifest table tbody tr:not(:last-of-type) {
  border-bottom: 1px solid #959494;
}

#business .manifest table tbody tr td:not(:last-of-type) {
  border-right: 1px solid #959494;
}
#business .permit-list table {
  border-collapse: collapse;
  border: 1px solid #959494;
  width: 100%;
  margin-top: 2em;
}
#business .permit-list table thead {
  background-color: #707070;
  color: #fff;
  text-align: center;
  padding: 20px 0;
  font-weight: var(--bold);
  font-family: var(--bold-font);
  font-size: 1.1em;
}
#business .permit-list table thead tr td {
  padding: 14px 0;
}
#business .permit-list table thead tr td:not(:last-of-type) {
  border-right: 1px solid #959494;
}
#business .permit-list table tbody tr {
  background-color: #f4f3e7;
  text-align: center;
  font-weight: var(--bold);
  font-family: var(--bold-font);
  font-size: 1.1em;
}
#business .permit-list table tbody tr td {
  padding: 14px 0;
  line-height: 1.6;
}
#business .permit-list table tbody tr:not(:last-of-type) {
  border-bottom: 1px solid #959494;
}
#business .permit-list table tbody tr.pink {
  background-color: #f8efef;
}
#business .permit-list table tbody tr td:not(:last-of-type) {
  border-right: 1px solid #959494;
}
a.pdf-icon {
  position: relative;
}
a.pdf-icon::after {
  content: "";
  background-image: url(../../img/common/pdf_icon.svg);
  background-repeat: no-repeat;
  background-size: contain;
  aspect-ratio: 18/26;
  width: 18px;
  height: auto;
  position: absolute;
  right: -14px;
  bottom: 0;
  transform: translateX(50%);
}
/*導入事例ページ*/
#projects {
  margin-bottom: 40px;
}
#projects section > p {
  padding-left: 0;
  margin-bottom: 12px;
}
#projects ul li a.pdf-icon {
  font-family: var(--bold-font);
  font-weight: var(--bold);
  font-size: 1.1em;
}
#projects section.elementary-box h3 {
  margin-bottom: 0.6em;
}
#projects section.elementary-box {
  padding-bottom: 45px;
  margin-bottom: 70px;
}
.category-box {
  border: 2px solid #000;
  border-radius: 16px;
  padding: 30px 0 46px;
  margin-bottom: 75px;
}
#projects .tab,
#news .tab {
  display: inline-block;
  border: 1px solid #000;
  background-color: #fff;
  border-radius: 999px;
  padding: 3px 18px 1px;
  font-size: 1.1em;
  cursor: pointer;
}
.category-box ul.category-list li.tab {
  margin-right: 18px;
}
.category-box ul.category-list li.active {
  background-color: var(--base-color) !important;
  color: #fff;
}
.category-box > ul:first-of-type {
  padding-bottom: 22px;
  margin-bottom: 20px;
  position: relative;
}
.category-box > ul:first-of-type li {
  margin-left: 36px;
}
.category-box > ul:first-of-type::after {
  content: "";
  height: 1px;
  width: 100%;
  background-color: #707070;
  position: absolute;
  bottom: 0;
  left: 0;
}
.category-list-wrapper {
  margin-left: 36px;
}
.category-list-wrapper h2 {
  font-size: 1.5em;
  margin-bottom: 0.2em;
}
.projects-list {
  padding: 0 calc((100% - 1092px) / 2);
  position: relative;
  z-index: 10;
}

.projects-list > h3 {
  font-size: 1.9em;
  font-family: var(--bold-font);
  position: relative;
  padding-left: 30px;
  margin-bottom: 0.8em;
}
.projects-list > h3::before {
  content: "";
  background-color: var(--main-color);
  width: 10px;
  height: 30px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.projects-list ul {
  display: flex;
  flex-wrap: wrap;
  gap: 80px 30px;
  margin-bottom: 58px;
}
.projects-list ul li {
  width: calc((100% - 30px) / 2);
}
.projects-list ul li .tab {
  margin: 18px 0;
}
.projects-list ul li p {
  font-family: var(--bold-font);
  font-weight: var(--bold);
  font-size: 1.1em;
}
/*導入事例 singleページ*/
#projects-article {
  margin-bottom: 45px;
}
#projects-article section .tab {
  display: inline-block;
  border: 1px solid #000;
  background-color: #fff;
  border-radius: 999px;
  padding: 3px 18px 1px;
  margin-bottom: 1em;
  font-size: 1.1em;
  cursor: pointer;
}
#projects-article section h2 {
  font-size: 1.1em;
  font-family: var(--bold-font);
}
#projects-article section > figure img {
  aspect-ratio: 529/504;
  width: 529px;
  height: auto;
  object-fit: cover;
}
#projects-article section ul.gallery-list {
  gap: 60px 30px;
  margin-bottom: 30px;
  margin-top: 1.2em;
}
#projects-article section ul.gallery-list li {
  width: calc((100% - 30px) / 2);
}
#projects-article section ul.gallery-list li figure {
  aspect-ratio: 529/504;
  width: 100%;
  height: auto;
  overflow: hidden;
}
#projects-article section ul.gallery-list li figure img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
#projects-article section ul.gallery-list li figcaption {
  text-align: left;
  font-size: 1.1em;
  margin-top: 0.4em;
}
#projects-article .projects-article-container .contents-box{
  margin-bottom:55px;
}
#projects-article .projects-article-container p {
  margin-bottom: 1em;
  line-height: 2;
  font-size: 1.1em;
}
#projects-article ul.button-list {
  margin-top: 80px;
  display: flex;
  justify-content: center;
}
/*会社案内ページ*/
#company {
  margin-bottom: 110px;
}
#company section:first-of-type {
  padding-bottom: 110px;
  margin-bottom: 72px;
}
#company section:nth-of-type(2) {
  padding-bottom: 55px;
  margin-bottom: 85px;
}
#company section.company-message h4 {
  font-size: 2.3em;
  line-height: 2;
  color: var(--main-color);
  margin-top: 30px;
  margin-bottom: 45px;
}
#company section.company-message .flex {
  gap: 30px;
  align-items: flex-end;
}
#company section.company-message .flex figure img {
  aspect-ratio: 320/361;
  width: 320px;
  height: auto;
  object-fit: cover;
}
#company section.company-message .flex .text-box {
  margin-top: 1em;
  font-size: 1.25em;
  line-height: 2;
}
#company section.company-message .flex .text-box p:last-of-type {
  margin-top: 45px;
  line-height: 1;
}
#company section:nth-of-type(2) p {
  padding-left: 0;
}
#company section:nth-of-type(2) p:first-of-type {
  margin-bottom: 1.8em;
}
#company section:nth-of-type(3) {
  display: flex;
  align-items: flex-start;
  gap: 52px;
}
#company section:nth-of-type(3) table {
  width: 80%;
  font-size: 1.25em;
  border-collapse: collapse;
}
#company section:nth-of-type(3) table tr {
  border-bottom: 1px solid #a5a5a5;
  display: block;
  padding-bottom: 30px;
  margin-bottom: 30px;
  line-height: 1.5;
}
#company section:nth-of-type(3) table tr th {
  width: 220px;
  padding-right: 25px;
  vertical-align: top;
}
/*エコアクション認定証ページ*/
#eco-action {
  margin-bottom: 76px;
}
#eco-action section:first-of-type {
  padding-bottom: 70px;
  margin-bottom: 65px;
}
#eco-action section:nth-of-type(2) {
  padding-bottom: 70px;
  margin-bottom: 65px;
}
#eco-action section:nth-of-type(3) {
  padding-bottom: 73px;
  margin-bottom: 65px;
}
#eco-action section > p {
  padding-left: 0;
}
#eco-action .eco-guideline > ul {
  font-size: 1.1em;
  margin-top: 30px;
}
#eco-action .eco-guideline > ul > li {
  background-color: var(--bg-color);
  margin-bottom: 1.5em;
  padding: 1.7em 2.3em;
}
#eco-action .eco-guideline > ul > li p {
  position: relative;
  padding-left: 50px;
  font-family: var(--bold-font);
  font-weight: var(--bold);
}
#eco-action .eco-guideline > ul > li p::before {
  content: "01";
  font-family: var(--eng-font);
  font-weight: var(--eng-weight);
  font-style: var(--eng-style);
  color: var(--main-color);
  font-size: 2em;
  position: absolute;
  left: 0;
  top: 0px;
  transform: translateY(-18px);
}
#eco-action .eco-guideline > ul > li:first-of-type p:before {
  transform: translateY(0px);
}
#eco-action .eco-guideline > ul > li:nth-of-type(2) p:before {
  content: "02";
}
#eco-action .eco-guideline > ul > li:nth-of-type(3) p:before {
  content: "03";
}
#eco-action .eco-guideline > ul > li:nth-of-type(4) p:before {
  content: "04";
}
#eco-action .eco-guideline > ul > li ol {
  margin-left: 50px;
  margin-top: 0.8em;
  line-height: 1.8;
}
#eco-action .eco-guideline > p {
  text-align: right;
  font-size: 1.1em;
}
#eco-action section.flex h3 {
  font-size: 1.9em;
  font-family: var(--bold-font);
  position: relative;
  padding-left: 30px;
  margin-bottom: 0.2em;
}
#eco-action section.flex h3::before {
  content: "";
  background-color: var(--main-color);
  width: 10px;
  height: 30px;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
#eco-action section.flex > div {
  width: 50%;
}
#eco-action section.flex > div a {
  color: var(--main-color);
  font-size: 1.1em;
}

/*newsページ*/

#news {
  margin-bottom: 50px;
}
#news .category-box {
  padding: 30px 0 30px;
  margin-bottom: 75px;
}
#news .news-list-wrapper {
  padding: 0 calc((100% - 1092px) / 2);
}
#news .news-list-wrapper ul.news-list {
  margin-bottom: 65px;
}
#news .news-list-wrapper ul.news-list .date {
  color: #919191;
  font-size: 0.75em;
  font-family: var(--bold-font);
  font-weight: var(--bold);
  line-height: 1.4;
}
#news .news-list-wrapper ul.news-list .tag {
  font-size: 0.8em;
  font-weight: var(--bold);
  font-family: var(--bold-font);
  color: #707070;
  line-height: 1.4;
  letter-spacing: 0.04em;
  padding: 3px 1em 2px;
  margin-right: 1em;
  width: 124px;
  text-align: center;
  background-color: #e2e2e2;
  border-radius: 2px;
  display: inline-block;
}
#news .news-list-wrapper ul.news-list .important {
  color: var(--main-color);
  background-color: #ffd1d1;
}
#news .news-list-wrapper ul.news-list h3 {
  display: inline-block;
  font-size: 1.1em;
  line-height: 1.4;
  margin-top: 0.2em;
}
#news .news-list-wrapper ul.news-list p {
  margin-top: 20px;
  margin-right: 5em;
  font-size: 1.1em;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
#news .news-list-wrapper ul.news-list li a:hover > p {
  text-decoration: underline;
}
#news .news-list-wrapper ul.news-list li {
  padding-bottom: 25px;
  margin-bottom: 25px;
  border-bottom: 1px solid #a5a5a5;
  position: relative;
}

#news .news-list-wrapper ul.news-list li::before {
  content: "";
  background-color: var(--main-color);
  aspect-ratio: 1 / 1;
  width: 26px;
  height: auto;
  border-radius: 999px;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}
#news .news-list-wrapper ul.news-list li::after {
  content: "\F138";
  font-family: var(--bootstrap);
  color: #fff;
  font-size: 0.6em;
  font-weight: 400;
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
}
/*NEWS 記事ページ*/
#news-article {
  margin-bottom: 105px;
}
#news-article ul.crumb {
  margin-top: 0;
  margin-bottom: 80px;
}
#news-article #sub-billboard {
  padding-top: 170px;
}
#news-article h2 {
  text-align: center;
}
#news-article section h2 {
  font-size: 2.5em;
  margin-bottom: 1.2em;
}
#news-article section p {
  font-size: 1.1em;
  line-height: 2;
}
#news-article .news-contents {
  margin-bottom: 85px;
}
#news-article section ul.button-list {
  display: flex;
  justify-content: center;
}
#news-article section ul.gallery-list li {
  width: calc((100% - 22px) / 2);
}
#news-article .news-contents h1,
#news-article .news-contents h2,
#news-article .news-contents h3,
#news-article .news-contents h4 {
  font-weight: 600;
  margin: 2em 0;
}
#news-article .news-contents h5,
#news-article .news-contents h6 {
  font-weight: 600;
  margin: 1em 0;
}

#news-article .news-contents a {
  text-decoration: underline;
  color: var(--main-color);
  font-weight: 500;
}
#news-article .news-contents ul,
#news-article .news-contents ol {
  padding-left: 2em;
  margin-bottom: 2em;
}
#news-article .news-contents ol li {
  list-style: decimal;
  margin-left: 2em;
}
#news-article .news-contents ul li {
  list-style: disc;
  margin-left: 2em;
}
#news-article .news-contents em {
  font-style: italic;
}

#news-article .news-contents figure img {
  margin: 0 auto;
  width: 100%;
}
#news-article .news-contents figure {
  margin: 0 auto 20px !important;
}
#news-article .news-contents figure.size-full {
  margin: 0 auto 40px !important;
}
/*採用情報ページ*/
#recruit {
  margin-bottom: 45px;
}
#recruit section:first-of-type {
  padding-bottom: 36px;
  margin-bottom: 65px;
}
#recruit section:nth-of-type(2) {
  padding-bottom: 45px;
  margin-bottom: 70px;
}
#recruit section:nth-of-type(3) {
  padding-bottom: 88px;
  margin-bottom: 88px;
}
#recruit section:nth-of-type(4) {
  padding-bottom: 75px;
  margin-bottom: 65px;
}
#recruit .recruit-message {
  display: flex;
  align-items: flex-start;
  gap: 128px;
}
#recruit .recruit-message h2 {
  color: var(--main-color);
  font-family: var(--bold-font);
  font-size: 2.4em;
  letter-spacing: 0.06em;
}
#recruit .recruit-message p {
  font-size: 1.1em;
  line-height: 2;
}
#recruit section:nth-of-type(2) h3 {
  margin-bottom: 50px;
}
#recruit ul.recruit-list {
  display: flex;
  gap: 60px;
  margin-top: 50px;
}
#recruit ul.recruit-list li {
  width: calc((100% - 120px) / 3);
}
#recruit ul.recruit-list li figure {
  background-color: var(--bg-color);
  aspect-ratio: 319/280;
  width: 319px;
  height: auto;
  border-radius: 30px;
  position: relative;
}
#recruit ul.recruit-list li img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
#recruit ul.recruit-benefit-list li:first-of-type img {
  aspect-ratio: 381/295;
  width: 250px;
  height: auto;
}
#recruit ul.recruit-benefit-list li:nth-of-type(2) img {
  aspect-ratio: 287/294;
  width: 190px;
  height: auto;
}
#recruit ul.recruit-benefit-list li:nth-of-type(3) img {
  aspect-ratio: 231/280;
  width: 155px;
  height: auto;
}
#recruit ul.recruit-list h4 {
  margin-top: 30px;
  margin-bottom: 20px;
  text-align: center;
  font-size: 1.8em;
  font-family: var(--bold-font);
  line-height: 1.3;
}
#recruit ul.recruit-list p {
  font-size: 1.1em;
}
#recruit ul.recruit-kind-list li:first-of-type img {
  aspect-ratio: 312/196;
  width: 205px;
  height: auto;
}
#recruit ul.recruit-kind-list li:nth-of-type(2) img {
  aspect-ratio: 207/196;
  width: 140px;
  height: auto;
}
#recruit ul.recruit-kind-list li:nth-of-type(3) img {
  aspect-ratio: 157/118;
  width: 205px;
  height: auto;
}
#recruit ul.recruit-kind-list li:nth-of-type(n + 2) h4 {
  margin-top: 45px;
}
#recruit ul.recruit-kind-list li:first-of-type h4 {
  margin-top: 22px;
  margin-bottom: 6px;
}
#recruit .recruit-interview > h3 {
  margin-bottom: 70px;
}
#recruit .recruit-interview > ul > li {
  display: flex;
  gap: 100px;
}
#recruit .recruit-interview > ul > li:nth-of-type(even) {
  flex-direction: row-reverse;
}
#recruit .recruit-interview > ul > li:not(:last-of-type) {
  padding-bottom: 95px;
  margin-bottom: 100px;
  border-bottom: 1px solid #a5a5a5;
}
#recruit .recruit-interview > ul > li figure {
  aspect-ratio: 459/856;
  width: 459px;
  height: auto;
  overflow: hidden;
  position: relative;
}
#recruit .recruit-interview > ul > li figure img {
  aspect-ratio: 459/856;
  width: 100%;
  height: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  object-fit: cover;
  border-radius: 30px;
}
#recruit .recruit-interview > ul > li .text-box {
  flex: 1;
  transform: translateY(12px);
}
#recruit .recruit-interview > ul > li .text-box h3 {
  font-size: 1.8em;
  font-family: var(--bold-font);
  padding-bottom: 0.2em;
  margin-bottom: 55px;
  border-bottom: 1px solid #a5a5a5;
}
#recruit .recruit-interview > ul > li .text-box .question {
  font-family: var(--eng-font);
  font-weight: var(--eng-weight);
  color: var(--main-color);
  font-style: var(--eng-style);
  font-size: 1.65em;
  line-height: 1.5;
  display: block;
}
#recruit .recruit-interview > ul > li .text-box h4 {
  font-size: 1.9em;
  font-family: var(--bold-font);
  line-height: 1.3;
  margin-bottom: 1em;
}
#recruit .recruit-interview ul.recruit-faq:first-of-type {
  margin-bottom: 70px;
}
#recruit .recruit-interview ul.recruit-faq p {
  font-size: 1.1em;
  line-height: 2;
}
.recruit-button-container h3 {
  margin-bottom: 1.5em;
}
.recruit-button-container .flex {
  gap: 30px;
}
ul.recruit-button {
  width: calc((100% - 30px) / 2);
}
ul.recruit-button li a {
  display: block;
  width: 100%;
  height: 155px;
  padding: 52px 0 55px 70px;
  border-radius: 10px;
  background-color: #707070;
  border: 2px solid #707070;
  color: #fff;
  font-family: var(--bold-font);
  font-weight: var(--bold);
  font-size: 1.75em;
  position: relative;
}
ul.recruit-button li a::before {
  content: "";
  background-color: #000;
  aspect-ratio: 1 / 1;
  width: 42px;
  height: auto;
  border-radius: 999px;
  position: absolute;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
}
ul.recruit-button li a::after {
  content: "\F138";
  font-family: var(--bootstrap);
  color: #fff;
  font-size: 0.5em;
  font-weight: 400;
  position: absolute;
  right: 42px;
  top: 51%;
  transform: translateY(-50%);
}
ul.recruit-button .caution {
  color: #707070;
  font-size: 1.1em;
  line-height: 2.2;
  font-family: var(--bold-font);
  font-weight: var(--bold);
}
ul.recruit-button li a {
  pointer-events: none;
}
ul.recruit-button.recruiting li a {
  background-color: var(--main-color);
  border: 2px solid var(--main-color);
  transition: all 0.2s ease-in-out;
  pointer-events: auto;
}
ul.recruit-button.recruiting li a:hover {
  background-color: #fff;
  color: var(--main-color);
}
/*採用情報ページ*/
#recruit-info {
  margin-bottom: 200px;
}
#recruit-info section h2 {
  color: #fff;
  background-color: var(--main-color);
  font-size: 1.25em;
  font-family: var(--bold-font);
  font-weight: var(--bold);
  padding: 15px 32px;
}
#recruit-info section table {
  width: 100%;
  margin-top: 60px;
  margin-bottom: 98px;
  border-collapse: collapse;
}
#recruit-info section table tr {
  padding-bottom: 42px;
  border-bottom: 1px solid #a5a5a5;
  display: block;
}
#recruit-info section table tr:not(:last-of-type) {
  margin-bottom: 42px;
}
#recruit-info section table tr th {
  font-size: 1.4em;
  font-family: var(--bold-font);
  color: var(--main-color);
  vertical-align: top;
  width: 280px;
}
#recruit-info section table tr td {
  font-size: 1.1em;
  font-family: var(--bold-font);
  font-weight: var(--bold);
}
#recruit-info ul.recruit-button {
  width: 530px;
  margin: 0 auto;
}
#recruit-info ul.recruit-button li a::after {
  top: 50.5%;
}
#recruit-info h2.not-recruiting {
  text-align: center;
  font-size: 1.6em;
  padding: 12px 32px;
  margin-bottom: 20vh;
}
/*プライバシーポリシーページ*/
#privacy {
  margin-bottom: 130px;
}
#privacy #sub-billboard .title-box h3 {
  margin-bottom: 30px;
}
#privacy section {
  border-bottom: none;
}
#privacy section:not(:last-of-type) {
  margin-bottom: 80px;
}
#privacy section > p {
  padding-left: 0;
}
#privacy .privacy-description {
  font-size: 1.1em;
  line-height: 2;
  margin-bottom: 65px;
}
/*受付完了ページ*/
#complete {
  padding-bottom: 105px;
}
#complete ul.crumb {
  margin-top: 0;
  margin-bottom: 80px;
}
#complete #sub-billboard {
  padding-top: 170px;
}
#complete h2 {
  text-align: center;
}
#complete section h2 {
  font-size: 2.5em;
  margin-bottom: 1.2em;
}
#complete section p {
  font-size: 1.1em;
  line-height: 2;
  margin-bottom: 0.6em;
}
#complete .complete-contents {
  margin-bottom: 85px;
}
#complete section ul.button-list {
  display: flex;
  justify-content: center;
}
/*ページネーション*/

.wp-pagenavi {
  display: flex;
  justify-content: center;
  gap: 15px;
}
.wp-pagenavi a,
.wp-pagenavi span {
  border: none !important;
  color: #707070;
}
.wp-pagenavi span.pages {
  display: none;
}
.wp-pagenavi span.current {
  font-weight: var(--normal) !important;
  display: block;
  position: relative;
  z-index: 1;
}
.wp-pagenavi span.current::before {
  content: "";
  background-color: #e2e2e2;
  aspect-ratio: 1/1;
  width: 32px;
  height: auto;
  border-radius: 999px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}
.wp-pagenavi .previouspostslink,
.wp-pagenavi .nextpostslink {
  color: transparent;
  position: relative;
}
.wp-pagenavi .nextpostslink::after {
  content: "";
  background-color: #707070;
  aspect-ratio: 6/10;
  width: 7px;
  height: auto;
  clip-path: polygon(0 0, 0 100%, 100% 50%);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.wp-pagenavi .previouspostslink::after {
  content: "";
  background-color: #707070;
  aspect-ratio: 6/10;
  width: 7px;
  height: auto;
  clip-path: polygon(100% 0, 0 50%, 100% 100%);
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
/*お問合せページ*/
#contact {
  margin-bottom: 90px;
}
#contact section > h3 {
  padding-left: 50px;
  padding-bottom: 10px;
  margin-bottom: 30px;
  border-bottom: 1px solid #a5a5a5;
}
#contact section {
  border-bottom: none;
}
#contact .tel-container h3::before {
  content: "";
  background-color: transparent;
  background-image: url(../../img/common/tel_icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  filter: brightness(0) saturate(100%) invert(18%) sepia(74%) saturate(3665%)
    hue-rotate(353deg) brightness(95%) contrast(86%);
  aspect-ratio: 1/1;
  width: 32px;
  height: auto;
  position: absolute;
  bottom: 6px;
  left: 0;
  top: auto;
}
#contact .tel-container .flex {
  gap: 25px;
  align-items: center;
  justify-content: center;
}
#contact .tel-container h4 {
  font-size: 3.1em;
  color: var(--main-color);
  font-family: var(--bold-font);
}
#contact .tel-container > p {
  color: var(--main-color);
  font-size: 1.1em;
  line-height: 1.4;
  text-align: center;
  margin-bottom: 90px;
}
#contact .form-container h3::before {
  content: "";
  background-color: transparent;
  background-image: url(../../img/common/mail_icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  filter: brightness(0) saturate(100%) invert(18%) sepia(74%) saturate(3665%)
    hue-rotate(353deg) brightness(95%) contrast(86%);
  aspect-ratio: 1/1;
  width: 32px;
  height: auto;
  position: absolute;
  bottom: 6px;
  left: 0;
  top: auto;
}
#contact .form-container h3 {
  margin-bottom: 45px;
}
#contact .form-container .text-box {
  font-size: 1.1em;
  width: 810px;
  margin: 0 auto 82px;
}
#contact .form-container .text-box p {
  margin-bottom: 1em;
}
#contact .contact-table {
  width: 100%;
}
#contact .contact-table tr th {
  font-size: 1.1em;
  font-family: var(--bold-font);
  vertical-align: top;
  padding-top: 0.4em;
  width: 300px;
}
#contact .contact-table tr .hissu {
  display: inline-block;
  padding: 1px 12px;
  margin-left: 30px;
  background-color: var(--main-color);
  color: #fff !important;
  line-height: 1.6;
}
#contact .contact-table tr:nth-of-type(-n + 5) th,
#contact .contact-table tr:nth-of-type(-n + 5) td {
  padding-bottom: 36px;
}

#contact .contact-table tr:first-of-type td,
#contact .contact-table tr:nth-of-type(2) td {
  display: flex;
  gap: 25px;
}
#contact .contact-table tr:first-of-type td .input-text,
#contact .contact-table tr:nth-of-type(2) td .input-text {
  width: 382px;
}
#contact .contact-table .input-text,
#contact .contact-table textarea {
  border: none;
  border-radius: 0;
  background-color: #efefef;
  height: 53px;
}
#contact .contact-table textarea {
  height: 270px;
}
#contact .contact-table tr:nth-of-type(3) td .flex {
  margin-bottom: 36px;
  align-items: center;
}
#contact .contact-table tr:nth-of-type(3) td .building-box {
  margin-bottom: 0;
}
#contact .contact-table tr:nth-of-type(3) td .flex:first-of-type {
  gap: 10px;
}
#contact
  .contact-table
  tr:nth-of-type(3)
  td
  .flex:not(:first-of-type)
  span.address-text {
  display: inline-block;
  width: 145px;
}
#contact .contact-table tr:nth-of-type(-n + 6) td {
  font-size: 1.1em;
  font-weight: var(--bold);
  font-family: var(--bold-font);
}
#contact .contact-table tr:nth-of-type(-n + 6) td span {
  font-weight: var(--bold);
  font-family: var(--bold-font);
  font-size: 1em;
}

#contact .contact-table tr:nth-of-type(3) td .address-box .input-text {
  width: 193px;
}
#contact .contact-table tr:nth-of-type(3) td .prefectures-box .input-text {
  width: 354px;
}
#contact .contact-table tr:nth-of-type(3) td .city-box .input-text,
#contact .contact-table tr:nth-of-type(3) td .building-box .input-text {
  width: 643px;
}
#contact .contact-table tr:nth-of-type(5) td {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
#contact .contact-table #zip-button {
  background-color: var(--main-color);
  color: #fff;
  font-size: 1.1em;
  font-family: var(--bold-font);
  font-weight: var(--bold);
  padding: 11px 25px;
  cursor: pointer;
}
#contact .contact-table .acceptance {
  text-align: center;
  margin-top: 85px;
  margin-bottom: 34px;
}
#contact .contact-table .acceptance {
  font-family: var(--bold-font);
  font-weight: var(--bold);
  font-size: 1.1em;
}
#contact .contact-table input[type="checkbox"] {
  transform: scale(2);
  margin-right: 10px;
}

#contact .contact-table #privacy-box {
  background-color: #f5f3e9;
  width: 840px;
  height: 176px;
  margin: 0 auto;
  padding-top: 24px;
  padding-bottom: 14px;
  padding-left: 32px;
  padding-right: 9px;
  margin-bottom: 40px;
}
#contact .contact-table #privacy-box p {
  margin: 0;
  padding-right: 15px;
}

#contact .scroll-inner {
  height: 138px;
  overflow-y: scroll;
}
#contact .scroll-inner::-webkit-scrollbar {
  width: 9px;
}
#contact .scroll-inner::-webkit-scrollbar-track {
  background-color: transparent;
}
#contact .scroll-inner::-webkit-scrollbar-thumb {
  background-color: #707070;
  border-radius: 5px;
}
#contact .scroll-inner::-webkit-scrollbar-button {
  height: 0;
  display: none;
}
#contact .contact-table p.caution {
  font-size: 1.1em;
  text-align: center;
  margin-bottom: 85px;
}
#contact .contact-table .input-submit {
  height: 76px;
  width: 275px;
  border-radius: 0;
  font-size: 1.25em;
  font-weight: var(--bold);
  font-family: var(--bold-font);
  background-color: var(--main-color);
  color: #fff;
}
#contact .contact-table .input-submit:disabled {
  color: #666;
  background: #ccc;
}

.grecaptcha-badge {
  bottom: 100px !important;
  z-index: 100 !important;
}
.gglcptch_error_text {
  text-align: center;
}
/*採用エントリーフォーム*/
#contact.entry {
  margin-bottom: 60px;
}
.entry section > p {
  margin-bottom: 50px;
  padding-left: 0;
}
.entry section h3 {
  color: #fff;
  background-color: var(--main-color);
  padding: 15px 32px;
  margin-bottom: 70px;
}
.entry section h3:last-of-type {
  margin-top: 55px;
  margin-bottom: 35px;
  display: block;
}
#contact.entry .entry-reason-table tr:first-of-type td,
#contact.entry .entry-reason-table tr:nth-of-type(2) td {
  display: block;
}
#contact.entry .entry-reason-table tr:first-of-type td textarea {
  height: 370px;
}
#contact.entry .entry-reason-table tr .acceptance {
  margin-top: 10px;
  margin-bottom: 0px;
}
#contact.entry .entry-reason-table tr:nth-of-type(3) td {
  font-size: 1em;
  font-weight: var(--normal);
}
#contact.entry .entry-reason-table tr:nth-of-type(3) td {
  padding-bottom: 0;
}
#contact.entry .contact-table p.caution {
  margin-bottom: 50px;
  font-weight: var(--normal);
  font-size: 1em;
}
#contact.entry .contact-table .input-submit {
  width: 100%;
  height: 100%;
  border-radius: 10px;
  position: relative;
}
#contact.entry .contact-table .submit-wrapper {
  width: 530px;
  margin: 0 auto;
  height: 86px;
  position: relative;
}

#contact.entry
  .contact-table
  .submit-wrapper:has(input:disabled)
  span.submit-arrow::before {
  background-color: #666 !important;
  border: 1px solid #666 !important;
}
#contact.entry
  .contact-table
  .submit-wrapper:has(input:disabled)
  span.submit-arrow::after {
  color: #ccc !important;
}
#contact.entry .contact-table .submit-wrapper span.submit-arrow::before {
  content: "";
  background-color: var(--base-color);
  border: 1px solid var(--base-color);
  aspect-ratio: 1/1;
  width: 40px;
  height: auto;
  border-radius: 999px;
  position: absolute;
  right: 30px;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.2s ease-in-out;
  z-index: 20;
}
#contact.entry .contact-table .submit-wrapper span::after {
  content: "\F138";
  font-family: var(--bootstrap);
  color: #fff;
  font-size: 0.85em;
  font-weight: 400;
  position: absolute;
  right: 42px;
  top: 50%;
  transform: translateY(-50%);
  transition: all 0.2s ease-in-out;
  z-index: 30;
}
#contact.entry .contact-table .input-submit {
  font-size: 1.6em;
}
#contact.entry .contact-table tr:nth-of-type(3) td {
  display: flex;
}
#contact.entry .contact-table tr:nth-of-type(4) td .flex {
  margin-bottom: 36px;
  align-items: center;
}
#contact.entry .contact-table tr:nth-of-type(4) td .building-box {
  margin-bottom: 0;
}
#contact.entry .contact-table tr:nth-of-type(4) td .flex:first-of-type {
  gap: 10px;
}
#contact.entry
  .contact-table
  tr:nth-of-type(4)
  td
  .flex:not(:first-of-type)
  span.address-text {
  display: inline-block;
  width: 145px;
}

#contact.entry .contact-table tr:nth-of-type(4) td .address-box .input-text {
  width: 193px;
}
#contact.entry
  .contact-table
  tr:nth-of-type(4)
  td
  .prefectures-box
  .input-text {
  width: 354px;
}
#contact.entry .contact-table tr:nth-of-type(4) td .city-box .input-text,
#contact.entry .contact-table tr:nth-of-type(4) td .building-box .input-text {
  width: 643px;
}
#contact.entry .contact-table tr:nth-of-type(6) td {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
#contact.entry .contact-table tr:nth-of-type(3) td span {
  display: flex;
  align-items: center;
  gap: 12px;
}
#contact.entry .contact-table .year .input-text {
  width: 193px;
}
#contact.entry .contact-table .month .input-text {
  width: 110px;
}
#contact.entry .contact-table .day .input-text {
  width: 110px;
}
#contact.entry .contact-table p {
  margin-right: 24px;
}

.error .wpcf7-not-valid-tip {
  display: none !important;
}
.error .error-message {
  color: #dc3232;
  display: none !important;
}

.error:has(.wpcf7-not-valid-tip) .error-message {
  display: block !important;
}
#contact.entry .contact-table tr:nth-of-type(3) td .flex {
  margin-bottom: 0 !important;
}
/*404notfound*/
#not-found{
  padding-bottom:110px;
}
#not-found ul.button-list{
  margin-top:85px;
}
#not-found ul.button-list{
  display: flex;
  justify-content: center;
}