@charset "UTF-8";
/* 基本スタイル */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

body {
  padding-top: 64px;
}
@media screen and (max-width: 768px) {
  body {
    padding-top: 50px;
    margin-bottom: 50px;
  }
}

a {
  text-decoration: none;
}

img {
  vertical-align: bottom;
}
img.full {
  width: 100%;
}

p:not(:last-child) {
  margin-bottom: 1rem;
}

li {
  list-style: none;
}

/* レイアウト */
.contents {
  width: 1080px;
  max-width: 100%;
  margin: auto;
}
@media screen and (max-width: 768px) {
  .contents {
    width: 100%;
  }
}
@media screen and (max-width: 1120px) {
  .contents {
    padding: 0 10px;
  }
}
.contents_wrap {
  padding: 80px 0;
}
@media screen and (max-width: 1120px) {
  .contents_wrap {
    padding: 40px 0;
  }
}
.contents_bg {
  background-color: #F6F4EA;
}
.contents_bg-bottom {
  position: relative;
  padding-bottom: 220px;
}
.contents_bg-bottom::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100px;
  bottom: 0;
  background-color: #F6F4EA;
}
.contents_inner {
  margin-top: 40px;
}
.contents_inner-s {
  margin-top: 20px;
}

/* ヘッダー */
header {
  width: 100%;
  background-color: #000;
  position: fixed;
  top: 0;
  z-index: 1;
}

.header_wrap {
  width: 1080px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 768px) {
  .header_wrap {
    width: 100%;
    display: block;
  }
}
.header_logo {
  display: flex;
  align-items: center;
}
.header_logo img {
  height: 50px;
}
@media screen and (max-width: 768px) {
  .header_logo img {
    height: 40px;
  }
}
@media screen and (max-width: 768px) {
  .header_logo {
    padding: 5px;
  }
}

/* gnavi */
.header_wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1080px;
  width: 100%;
  margin: auto;
}

.gnavi {
  height: 70px;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .gnavi {
    height: 0;
  }
}

.menu {
  width: 100%;
  font-size: 0.9em;
  background-color: transparent;
  margin: 0 10px;
  transform: translateX(0);
}
@media screen and (max-width: 768px) {
  .menu {
    text-align: center;
    background-color: rgb(0, 0, 0);
    transition: 0.5s ease; /*滑らかに表示*/
    -webkit-transform: translateX(100%); /*画面より100%外へ押し出し非表示にさせる*/
    /*  transform: translateX(-100%);/*右から出す場合は、マイナス100%としてください*/
  }
}
.menu ul {
  height: 70px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .menu ul {
    height: unset;
    display: block;
  }
}
.menu ul li a {
  padding: 0 1em;
  border-bottom: none;
  color: #FFF;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .menu ul li a {
    display: block;
    padding: 2em;
    border-bottom: 1px dotted #CCC;
  }
}
.menu ul li a:hover {
  color: orange;
}
.menu.open {
  transform: translateX(0%); /*メニューを元の位置へ戻す*/
}

/*トグルボタンのスタイルを指定*/
.Toggle {
  display: none;
}
@media screen and (max-width: 768px) {
  .Toggle {
    display: block;
    position: fixed; /* bodyに対しての絶対位置指定 */
    width: 35px;
    height: 28px;
    cursor: pointer;
    z-index: 3;
    right: 5px;
    top: 11px;
  }
}
.Toggle span {
  display: block;
  position: absolute;
  width: 30px;
  border-bottom: solid 4px #FFF; /*変化の速度を指定*/ /*変化の速度を指定*/
  transition: 0.35s ease-in-out; /*変化の速度を指定*/
}
.Toggle span:nth-child(1) {
  top: 0px;
}
.Toggle span:nth-child(2) {
  top: 11px;
}
.Toggle span:nth-child(3) {
  top: 22px;
}
.Toggle.active span:nth-child(1) {
  top: 11px;
  /* 1番目のspanをマイナス45度に */
  transform: rotate(-45deg);
}
.Toggle.active span:nth-child(2), .Toggle.active span:nth-child(3) {
  top: 11px;
  transform: rotate(45deg);
}

/* メインビジュアル */
.mainv {
  position: relative;
  text-align: center;
  background-image: url(../images/img_mvbg.jpg);
  background-size: cover;
  height: 675px;
}
@media screen and (max-width: 480px) {
  .mainv {
    z-index: -10;
    height: 80vh;
    background-image: url(../images/img_mvsp.png);
    background-position: center center;
  }
}
.mainv_inner {
  position: relative;
  max-width: 1080px;
  width: 100%;
  height: inherit;
  margin: auto;
}
.mainv img {
  position: absolute;
}
@media screen and (max-width: 1120px) {
  .mainv img {
    padding: 0 5.5%;
  }
}
@media screen and (max-width: 480px) {
  .mainv img {
    display: none;
  }
}
.mainv_catch {
  max-height: 328px;
  top: 55px;
  left: 0;
}
@media screen and (max-width: 768px) {
  .mainv_catch {
    right: 0;
    margin: auto;
  }
}
.mainv_subcatch {
  max-height: 112px;
  bottom: 70px;
  right: 0;
}
@media screen and (max-width: 768px) {
  .mainv_subcatch {
    max-width: 100%;
    height: auto;
    left: 0;
    margin: auto;
  }
}

.footer_wrap {
  background-color: #000;
  padding: 10px 0;
}

.copyright {
  color: #FFF;
  text-align: center;
}

/* タイトル */
[class*=heading] {
  margin-bottom: 1em;
  font-weight: 700;
}

.heading_h2 {
  font-size: 2rem;
  text-align: center;
  margin: auto;
}
.heading_h2-bg {
  width: 100vw;
  margin: -80px calc(50% - 50vw) 0;
  padding: 10px;
  background-color: #B1A17C;
  color: #FFF;
}
@media screen and (max-width: 768px) {
  .heading_h2-bg {
    margin: -40px calc(50% - 50vw) 0;
  }
}
.heading_h2-dropcap {
  position: relative;
  letter-spacing: 0.13em;
}
.heading_h2-dropcap:first-letter {
  font-size: 1.5em;
}
.heading_h2-dropcap::before {
  content: "";
  position: absolute;
  width: 300px;
  border-bottom: solid 5px #B1A17C;
  bottom: 1.5em;
  left: calc(50% - 150px);
}
.heading_h2-dropcap::after {
  content: "\a" attr(data-eng);
  color: #B9B9B9;
  white-space: pre;
  letter-spacing: 0;
}

.heading_h3 {
  font-size: 1.5rem;
  text-align: center;
}

/* テキスト */
.text_center {
  text-align: center;
}
@media screen and (max-width: 768px) {
  .text_center {
    text-align: left;
  }
}
.text_right {
  text-align: right;
}
@media screen and (max-width: 768px) {
  .text_right {
    text-align: left;
  }
}

.totop a {
  position: fixed;
  display: grid;
  place-items: center;
  margin: auto;
  width: 100px;
  height: 100px;
  right: 50px;
  bottom: 80px;
  background-color: #000;
  border-radius: 50%;
  color: #FFF;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .totop a {
    border-radius: unset;
    width: 100%;
    right: 0;
    bottom: 0;
    height: 50px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .totop a br {
    display: none;
  }
}

/* #intro-before */
#intro-before .contents_inner-s {
  max-width: 850px;
  margin: auto;
}
#intro-before p {
  position: relative;
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: auto;
  margin-bottom: 1.25rem;
  padding: 0 2rem;
}
#intro-before p::before,
#intro-before p::after {
  content: "";
  position: absolute;
  bottom: 0;
  width: 1px;
  height: 2rem;
  background: rgb(0, 0, 0);
}
#intro-before p::before {
  transform: rotate(-25deg);
  left: 0;
}
#intro-before p::after {
  transform: rotate(25deg);
  right: 0;
}
#intro-before ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 11px;
  margin-bottom: 2.75rem;
}
@media screen and (max-width: 768px) {
  #intro-before ul {
    margin-bottom: 1rem;
  }
}
#intro-before li {
  width: 25%;
  max-width: 200px;
  height: 50px;
  line-height: 50px;
  background-color: #B1A17C;
  color: #FFF;
  text-align: center;
  font-weight: 700;
  border-left: solid 10px #000;
}
@media screen and (max-width: 768px) {
  #intro-before li {
    width: 50%;
  }
}
@media screen and (max-width: 480px) {
  #intro-before li {
    max-width: 80%;
    width: 80%;
  }
}
#intro-before img {
  display: block;
  margin: auto;
}

/* #intro-after */
#intro-after .text_wrap {
  display: grid;
  place-items: center;
  min-height: 235px;
  height: 100%;
  background-color: #FFF;
}
#intro-after p {
  line-height: 2.25;
}

/* #about */
#about .heading_h2 {
  letter-spacing: 0.06em;
  margin-bottom: 100px;
}
#about h3:nth-child(1 of .heading_h3) {
  margin-bottom: 2rem;
}
#about h3:nth-child(2 of .heading_h3) {
  margin-bottom: 3rem;
}
#about .card {
  display: grid;
  place-items: center;
  background-color: #F6F4EA;
  line-height: 1.875;
  padding: 1rem;
}
#about [class*=grid-], #about [class*=grid_], #about [class~=grid] {
  margin: 0;
}
#about div:nth-child(-n+2 of .card_container) {
  gap: 10px;
  margin-bottom: 10px;
}
#about div:nth-child(-n+2 of .card_container) .card {
  height: 200px;
  font-weight: 700;
  border-bottom: solid 19px #B1A17C;
}
@media screen and (max-width: 920px) {
  #about div:nth-child(-n+2 of .card_container) br {
    display: none;
  }
}
#about div:nth-child(2 of .card_container) {
  margin-bottom: 105px;
}
#about div:nth-child(3 of .card_container) .card {
  min-height: 90px;
  width: 100%;
  margin-bottom: 2rem;
  border: solid #B1A17C;
  border-width: 0 19px 0 19px;
}
#about div:nth-child(3 of .card_container) .card:nth-child(3) {
  font-weight: 700;
  padding: 1.5rem;
}
#about div:nth-child(3 of .card_container) .card:nth-child(3) .large {
  font-size: 1.5rem;
}

.contactbtn_container p:has(+ .contactbtn) {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 2px;
}
.contactbtn_container p {
  text-align: center;
}
.contactbtn_container .contactbtn {
  background-color: #000;
  width: 300px;
  padding: 15px 40px;
  margin: auto;
}
.contactbtn_container .contactbtn a {
  display: grid;
  place-items: center;
  padding: 15px 40px;
  margin: -15px -40px;
}
.contactbtn_container .contactbtn_inner {
  color: #FFF;
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
}

/* #work */
#work .heading_h2 {
  letter-spacing: 0.13em;
  margin-bottom: 130px;
}
#work .contents_inner-s {
  max-width: 850px;
  margin: auto;
}

.timeline {
  margin-bottom: 170px;
  /* タイムラインの縦線 */
  /* タイムラインの横線 */
  /* 左のカラム */
  /* 右のカラム */
  /* タイムラインの背景 */
}
.timeline_item {
  position: relative;
  display: flex;
  align-items: flex-start;
  margin-bottom: 2.75rem;
}
@media screen and (max-width: 768px) {
  .timeline_item {
    height: 100%;
  }
}
.timeline_item:not(:last-child)::before {
  content: "";
  position: absolute;
  width: 0.125rem;
  height: calc(100% + 2.75rem);
  top: 0;
  left: calc(25% - 0.0625rem);
  background: #B1A17C;
}
.timeline_item::after, .timeline_item:first-child .timeline_column-l::after {
  content: "";
  position: absolute;
  top: 12px;
  width: 10px;
  height: 0.125rem;
}
.timeline_item::after {
  left: calc(25% - 5px);
}
.timeline_item:first-child .timeline_column-l::after {
  margin-left: 0.5rem;
}
.timeline_item:not(:first-child):not(:last-child)::after {
  background: #B1A17C;
}
.timeline_item:first-child::after, .timeline_item:last-child::after {
  background: #FFF;
}
@media screen and (max-width: 768px) {
  .timeline_item:first-child::after {
    background: none;
  }
  .timeline_item:first-child .timeline_column-l::after {
    background: #FFF;
  }
}
.timeline_column-l {
  position: relative;
  width: 25%;
  text-align: right;
  padding-right: 1rem;
}
@media screen and (max-width: 480px) {
  .timeline_item:first-child .timeline_column-l {
    width: inherit;
  }
}
.timeline_time time {
  white-space: nowrap;
}
.timeline_column-r {
  display: flex;
  justify-content: space-between;
  width: 75%;
}
@media screen and (max-width: 768px) {
  .timeline_column-r {
    flex-direction: column;
    gap: 1rem;
    margin-left: 1rem;
  }
}
.timeline_event {
  display: inline-block;
  margin-left: 3%;
}
.timeline_img {
  max-width: 245px;
  height: auto;
  margin-left: 2%;
}
@media screen and (max-width: 768px) {
  .timeline_img {
    max-width: 75%;
  }
}
.timeline_item:first-child, .timeline_item:last-child {
  /* 背景のつなぎ */
}
.timeline_item:first-child .timeline_time,
.timeline_item:first-child .timeline_event, .timeline_item:last-child .timeline_time,
.timeline_item:last-child .timeline_event {
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
  background: #B1A17C;
  height: 30px;
  color: #FFF;
  font-weight: 700;
  white-space: nowrap;
}
.timeline_item:first-child .timeline_time, .timeline_item:last-child .timeline_time {
  padding-left: 1rem;
}
.timeline_item:first-child .timeline_time::after, .timeline_item:last-child .timeline_time::after {
  content: "";
  display: inline-block;
  position: absolute;
  background: #B1A17C;
  height: inherit;
  width: 5rem;
  top: 0;
  right: -3rem;
  z-index: -1;
}
.timeline_item:first-child .timeline_event, .timeline_item:last-child .timeline_event {
  padding-right: 1rem;
}

.interview {
  display: flex;
  justify-content: center;
  gap: 60px;
  margin-bottom: 170px;
}
@media screen and (max-width: 768px) {
  .interview {
    flex-direction: column;
    align-items: stretch;
    gap: 30px;
  }
}
.interview_item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
}
.interview_icon {
  margin-right: 6px;
}
.interview_balloon {
  position: relative;
  display: inline-block;
  width: 100%;
  max-width: 300px;
  margin-left: 15px;
  background-color: #E9EFE6;
  color: #000000;
}
@media screen and (max-width: 768px) {
  .interview_balloon {
    max-width: 400px;
  }
}
.interview_balloon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  border-style: solid;
  border-width: 7.5px 15px 7.5px 0;
  border-color: transparent #E9EFE6 transparent transparent;
  translate: -100% -50%;
}
.interview_balloon .text-box {
  height: inherit;
  padding: 1rem;
}
.interview_balloon .text-box p {
  vertical-align: middle;
  font-size: 14px;
  margin-top: 10px;
}

.splide__slide img {
  width: 285px;
  height: auto;
}

/* #recruit */
#recruit .heading_h2 {
  letter-spacing: 0.18em;
  margin-bottom: 130px;
}
#recruit .contents_inner-s {
  max-width: 850px;
  margin: auto;
  margin-bottom: 120px;
}
#recruit .process_img {
  margin-bottom: 2rem;
}
#recruit details {
  width: 100%;
  margin-bottom: 1.375rem;
}
#recruit summary::after,
#recruit details[open] p::after {
  font-size: 1.125rem;
  color: #B1A17C;
  font-weight: 700;
}
#recruit summary {
  position: relative;
  padding: 10px;
  margin-bottom: 8px;
}
#recruit summary {
  font-size: 1.125rem;
  font-weight: 700;
  list-style: none;
  background-color: #F6F4EA;
  cursor: pointer;
}
#recruit summary::-webkit-details-marker {
  display: none;
}
#recruit summary::after,
#recruit details[open] summary::after {
  position: absolute;
  right: 10px;
}
#recruit summary::after {
  content: "＋";
}
#recruit details[open] summary::after {
  content: "－";
}
#recruit details[open] p {
  display: flex;
  padding-left: 1em;
}

.jd_desc {
  margin-bottom: 2rem;
}
.jd table {
  max-width: 700px;
  width: 100%;
  margin-left: 80px;
}
@media screen and (max-width: 768px) {
  .jd table {
    margin: auto;
  }
}
.jd tr {
  height: 46px;
  font-size: 1.125rem;
}
.jd th {
  width: 150px;
  font-weight: 700;
  text-align: justify;
  -moz-text-align-last: justify;
       text-align-last: justify;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .jd th {
    width: 25%;
    text-align: left;
  }
}
.jd th::after {
  content: "：";
  display: inline-block;
  transform: translateY(-0.15em);
}
.jd tr:nth-child(-n+6) th::after {
  padding-right: 3em;
}
@media screen and (max-width: 768px) {
  .jd tr:nth-child(-n+6) th::after {
    padding-right: 1em;
  }
}
.jd tr:nth-child(7) th::after {
  padding-right: 1em;
}
.jd td {
  padding-left: 1em;
}
@media screen and (max-width: 768px) {
  .jd td {
    padding-left: 0;
  }
}

.process .flowchart {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
  gap: 1.5rem;
}
@media screen and (max-width: 768px) {
  .process .flowchart {
    flex-direction: column;
    gap: 3rem;
  }
}
.process .flowchart_item {
  position: relative;
  display: flex;
  align-items: center;
  flex: 1;
  margin-left: 0.5rem;
}
@media screen and (max-width: 768px) {
  .process .flowchart_item {
    margin-left: 0;
  }
}
.process .flowchart_inner {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 75px;
  max-width: 100%;
  width: 100%;
  background-color: #F6F4EA;
  padding: 1rem;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .process .flowchart_inner {
    padding: 1rem 3rem;
  }
}
.process .flowchart_item:not(:nth-child(2)) .flowchart_inner {
  text-align: justify;
  -moz-text-align-last: justify;
       text-align-last: justify;
  letter-spacing: 0.5em;
  text-indent: 0.5em;
}
.process .flowchart_item:first-child .flowchart_inner, .process .flowchart_item:nth-child(3) .flowchart_inner, .process .flowchart_item:nth-child(4) .flowchart_inner {
  padding: 1rem 10%;
}
@media screen and (max-width: 768px) {
  .process .flowchart_item:first-child .flowchart_inner, .process .flowchart_item:nth-child(3) .flowchart_inner, .process .flowchart_item:nth-child(4) .flowchart_inner {
    padding: 1rem 3rem;
  }
}
@media screen and (max-width: 768px) {
  .process .flowchart_item:nth-child(2) br {
    display: none;
  }
}
.process .flowchart_item:not(:last-child)::after {
  content: "";
  position: absolute;
  display: inline-block;
  width: 14px;
  height: 32px;
  background: #B1A17C;
  clip-path: polygon(0 0, 0 100%, 100% 50%);
  right: -1.5rem;
}
@media screen and (max-width: 768px) {
  .process .flowchart_item:not(:last-child)::after {
    width: 32px;
    height: 14px;
    clip-path: polygon(0 0, 100% 0%, 50% 100%);
    left: 0;
    right: 0;
    bottom: -2rem;
    margin: auto;
  }
}
@media screen and (max-width: 768px) {
  .process p {
    text-align: center;
  }
}

/* #access */
#access .heading_h2 {
  max-width: 400px;
  text-align: left;
  letter-spacing: -0.03em;
  padding-left: 0.5rem;
  margin: 0;
  margin-bottom: 1.625rem;
  margin-right: auto;
}
#access .heading_h2-dropcap::before {
  width: 100%;
  bottom: 0;
  left: 0;
}
@media screen and (max-width: 480px) {
  #access .heading_h2-dropcap::before {
    width: 95vw;
  }
}
#access .heading_h2-dropcap::after {
  position: absolute;
  bottom: 0;
  right: 0;
  white-space: nowrap;
}
#access .heading_h2 .contents_inner-s {
  max-width: 850px;
  margin: auto;
}
#access .adr {
  margin-bottom: 1.5rem;
}
#access .adr .heading_h3 {
  text-align: left;
  margin-bottom: 0.5rem;
}
#access .adr p {
  text-indent: 1em;
}
#access .iframe_wrap {
  position: relative;
  width: 100%;
  max-width: 100%;
  height: 350px;
  margin: auto;
}
#access .iframe_wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 350px;
}

/* #contact */
#contact .heading_h2 {
  max-width: 400px;
  text-align: left;
  letter-spacing: 0.06em;
  padding-left: 0.5rem;
  white-space: nowrap;
  margin: 0;
  margin-right: auto;
}
@media screen and (max-width: 480px) {
  #contact .heading_h2 {
    font-size: 1.875rem;
  }
}
#contact .heading_h2-dropcap::before {
  width: 100%;
  bottom: 0;
  left: 0;
}
@media screen and (max-width: 480px) {
  #contact .heading_h2-dropcap::before {
    width: 95vw;
  }
}
#contact .heading_h2::after {
  position: absolute;
  bottom: 0;
  right: 0;
  white-space: nowrap;
}
@media screen and (max-width: 480px) {
  #contact .heading_h2::after {
    font-size: 1.75rem;
  }
}
#contact .contents_inner-s {
  max-width: 850px;
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 3.625rem;
}
@media screen and (max-width: 480px) {
  #contact .contents_inner-s {
    flex-direction: column;
    gap: 1.5rem;
  }
}
#contact .heading_h3 {
  margin-bottom: 0.3rem;
}

.contactbtn_container {
  margin-top: 1.5rem;
}

.snsbtn_container {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.snsbtn_group {
  display: flex;
  gap: 50px;
}

.snsbtn img {
  width: 45px;
}

#privacy-policy .contents_inner-s {
  max-width: 850px;
  margin: auto;
}
#privacy-policy h2 {
  margin-bottom: 10px;
  font-size: 18px;
}
#privacy-policy h3 {
  font-size: 14px;
  margin-bottom: 2px;
}
#privacy-policy p, #privacy-policy li {
  font-size: 14px;
  font-weight: 500;
}
#privacy-policy ul {
  margin-bottom: 1rem;
}

.privacy-box {
  max-height: 200px;
  overflow-y: auto;
  padding: 1em;
  border: 1px solid #ccc;
  background: #fff;
}/*# sourceMappingURL=main.css.map */