@charset "UTF-8";

/* ---------------------------------
  header
--------------------------------- */
header {
  transition: background-color .3s, border .3s;
  background-color: transparent;
  border-bottom: 0;
}
header.header_bg_on {
  background-color: #fff;
  border-bottom: .1rem solid #000;
}

/* ---------------------------------
  footer
--------------------------------- */

.footer_bottom {
  padding: 2rem 4rem 6rem;
}
.footer_bottom .page_top {
  bottom: 7.4rem;
}
@media screen and (max-width: 999px) {
  
  .footer_bottom {
    padding: 2rem 2.4rem 6rem;
  }
}


/* ---------------------------------
  main_content
--------------------------------- */
.main_content {
  background-image: none;
  background-color: #fff;
  padding: 0 0 calc(8rem + 8.1vw);
}
.bg_check {
  background-color: #f4f2ea;
  background-image: linear-gradient(90deg, #00000026 0.05rem, transparent 0.05rem), linear-gradient(#00000026 0.05rem, transparent 0.05rem);
  background-position: 2.5rem 2.5rem;
  background-size: 5rem 5rem;
  margin: 8rem 4rem;
  border-radius: 4rem;
  padding: 8rem 0;
  border: .1rem solid #000;
}
.bg_check + .bg_check {
  margin-top: 0;
}
.main_content section:last-of-type {
  margin-bottom: 0;
}
@media screen and (max-width: 999px) {
  .main_content {
    padding: 0 0 calc(6rem + 9vw);
  }
  .bg_check {
    margin: 10rem 3.2rem 6.4rem;
    padding: 5.6rem 0 6rem;
    position: relative;
  }
  .bg_check::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    height: 10rem;
    transform:translate(-50%, -6rem);
    background-size: contain;
    background-repeat: no-repeat;
  }
  .bg_check + .bg_check {
    margin-top: 10rem;
  }
  .main_content section:last-child {
    margin-bottom: 0;
  }
  .main_content .btn_l {
    max-width: 40rem;
  }
}


/* ---------------------------------
  block_title
--------------------------------- */
.block_title {
  text-align: center;
  margin-bottom: 6.4rem;
  line-height: 1.4;
  font-size: 2.4rem;
  font-weight: 700;
  display: flex;
  flex-flow: column;
  row-gap: 2rem;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 999px) {
  .block_title {
    text-align: center;
    margin-bottom: 4rem;
    font-size: 2rem;
    row-gap: 1.2rem;
  }
  .bg_check .block_title {
    margin-bottom: 5.6rem;
  }
  .block_title img {
    height: 5rem;
    width: auto!important;
  }
}


/* ---------------------------------
  mv_block
--------------------------------- */
.mv_block {
  position: relative;
  height: 100dvh;
  padding: 8.2rem 4rem 0;
  background-image: repeating-radial-gradient(circle, #9ddeeb 0, #9ddeeb 20rem, #fff 20rem, #fff 20.2rem, #84d6e6 20.2rem, #84d6e6 40rem, #fff 40rem, #fff 40.2rem);
}
.mv_img {
  display: flex;
  justify-content: space-between;
  align-items: center;
  column-gap: 1.4rem;
  width: 100%;
  height: 100%;
}
.mv_img h1 {
  width: 100%;
  text-align: center;
}
.mv_img h1 img {
  max-height: calc(100vh - 12rem);
  max-width: 1600px;
}
.mv_img .mv_side_message {
  height: calc(100vh - 20rem);
}
.mv_img .mv_side_message.right {
  transform: rotate(180deg);
}
@media screen and (max-width: 999px) {
  .mv_block {
    height: 100dvh;
    padding: 0 1rem;
    background-image: repeating-radial-gradient(circle, #84d6e6 0, #84d6e6 10rem, #fff 10rem, #fff 10.2rem, #9ddeeb 10.2rem, #9ddeeb 21.5rem, #fff 21.5rem, #fff 21.7rem, #84d6e6 21.7rem, #84d6e6 33rem, #fff 33rem, #fff 33.2rem, #9ddeeb 33.2rem, #9ddeeb 44rem,#fff 44rem, #fff 44.2rem, #84d6e6 42.2rem, #84d6e6 100%);
  }
  .mv_img h1 img {
    max-height: calc(100vh - 16.3rem);
    width: 100%;
  }
  .mv_img .mv_side_message {
    height: auto;
    position: absolute;
    bottom: 3.4rem;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 2.6rem);
    max-height: 3.5rem;
  }
}


/* ---------------------------------
  information
--------------------------------- */
.information {
  position: fixed;
  bottom: 0;
  right: 4rem;
  background-color: #fff;
  border-radius: 1rem 1rem 0 0;
  border: .1rem solid #000;
  border-bottom: none;
  padding: 1.6rem 2.4rem;
  width: 36rem;
  transform: translateY(0);
  transition: transform .8s;
  z-index: 100;
}
.information.hide {
  transform: translateY(calc(100% - 5rem));
}
.information p {
  margin-bottom: .4rem;
  font-weight: 500;
}
.information dt {
  font-size: 1.2rem;
}
.information dd {
  font-size: 1.4rem;
}
.information .show {
  cursor: pointer;
  display: block;
  position: absolute;
  top: 2.4rem;
  right: 3rem;
}
.information .show::before {
  content: '';
  border-top: 2px solid #000;
  border-right: 2px solid #000;
  transform: rotate(135deg);
  display: block;
  width: 1.2rem;
  height: 1.2rem;
  transition: transform .8s;
}
.information.hide .show::before {
  transform: rotate(-45deg);
}
@media screen and (max-width: 999px) {
  .information {
    bottom: 2rem;
    right: 2rem;
    border-radius: 1rem;
    border-bottom: .1rem solid #000;
    width: calc(100% - 4rem);
  }
  .information.hide {
    transform: translateY(calc(100% - 3rem));
  }
}


/* ---------------------------------
  copy_block
--------------------------------- */
.copy_block {
  background-image: url("../../images/common/bg_wave.png");
  background-repeat: repeat;
  background-color: #D5EDF2;
  background-size: 4.5rem;
  padding: 12rem 0;
  position: relative;
  border-bottom: .1rem solid #000;
  overflow: hidden;
}
.copy_block .side_message {
  overflow: hidden;
  display: flex;
  height: 100%;
  width: 4.8rem;
  background-color: #FEE177;
  font-weight: 700;
  font-size: 3.2rem;
  position: absolute;
  top: 0;
  writing-mode: vertical-rl;
  z-index: 10;
}
.copy_block .side_message.left {
  left: 0;
  border-right: .1rem solid #000;
}
.copy_block .side_message.right {
  right: 0;
  border-left: .1rem solid #000;
}
.copy_block .side_message p {
  flex-shrink: 0;
}
.copy_block .side_message.left p {
  animation: loop_animation_bottom_top 30s linear infinite;
}
.copy_block .side_message.right p {
  animation: loop_animation_top_bottom 30s linear infinite;
}
.copy_block .catchcopy {
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 2;
  padding: 4rem;
  width: 60rem;
  margin: 0 auto 8rem;
  display: flex;
  justify-content: center;
  background-color: #fff;
  border-radius: 2rem;
  position: relative;
  letter-spacing: .05em;
}
.copy_block .catchcopy::before,
.copy_block .catchcopy::after {
  content: "";
  position: absolute;
  width: 4.8rem;
  height: 4.8rem;
  background-size: contain;
  background-repeat: no-repeat;
}
.copy_block .catchcopy::before {
  top: -.7rem;
  left: -.7rem;
  background-image: url("../../images/top/catchcopy_decolation_left.svg");
}
.copy_block .catchcopy::after {
  bottom: -.7rem;;
  right: -.7rem;
  background-image: url("../../images/top/catchcopy_decolation_right.svg");
}
.copy_block .copy_detail {
  position: relative;
}
.copy_block .copy_detail::before,
.copy_block .copy_detail::after {
  content: "";
  position: absolute;
  bottom: 0;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: bottom;
  width: min(32rem, 18vw);
}
.copy_block .copy_detail::before {
  background-image: url("../../images/top/copy_img01.svg");
  height: 32.4rem;
  right: max(73%,calc(50% + 32rem));
}
.copy_block .copy_detail::after {
  background-image: url("../../images/top/copy_img02.svg");
  height: 31.6rem;
  left: max(73%,calc(50% + 32rem));
}
.copy_detail h2 {
  text-align: center;
  font-size: 5rem;
  line-height: 1.4;
  font-weight: 700;
  margin-bottom: 4rem;
}
.copy_detail h2 span {
  display: block;
  margin-bottom: 1.6rem;
}
.copy_detail .copy_detail_text {
  text-align: center;
  font-size: 2rem;
  line-height: 2;
  font-weight: 500;
  margin-bottom: 4rem;
}
.copy_detail .copy_detail_text p + p {
  margin-top: 2rem;
}

@media screen and (max-width: 999px) {
  .copy_block {
    padding: 8rem 6.2rem;
  }
  .copy_block .side_message {
    width: 3rem;
    font-size: 1.4rem;
    line-height: 3rem;
  }
  .copy_block .catchcopy {
    font-size: 2rem;
    padding: 4rem 3rem;
    width: 100%;
    margin: 0 0 8rem;
    hite-space: nowrap;
  }
  .copy_block .catchcopy::before,
  .copy_block .catchcopy::after {
    width: 3.5rem;
    height: 3.5rem;
  }
  .copy_block .catchcopy::before {
    top: -.5rem;
    left: -.5rem;
  }
  .copy_block .catchcopy::after {
    bottom: -.5rem;;
    right: -.5rem;
  }
  .copy_block .copy_detail::before,
  .copy_block .copy_detail::after {
    display: none;
  }
  .copy_detail h2 {
    font-size: 2.4rem;
  }
  .copy_detail .copy_detail_text {
    font-size: 1.6rem;
  }
  .copy_detail .copy_img {
    width: 100%;
    max-width: 40rem;
    margin: 0 auto 4rem;
  }
  .copy_detail  .btn_l {
    width: 100%;
  }
}


/* ---------------------------------
  about_block
--------------------------------- */
.about_block .block_title img {
  width: 32.8rem;
}
.about_block .page_links::before {
  content: "";
  width: min(38rem,25%);
  height: 29.5rem;
  background-image: url("../../images/top/about_img01.svg");
  background-position: bottom;
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  left: 4rem;
  transform: translateY(-100%);
}
.about_block .page_link span {
  margin-bottom: .8rem;
}
@media screen and (max-width: 999px) {
  .about_block::before {
    background-image: url("../../images/top/about_img01.svg");
    width: 12.9rem;
  }
  .about_block .block_title img {
    width: 12.8rem;
  }
  .about_block .page_links::before {
    display: none;
  }
}


/* ---------------------------------
  people_block
--------------------------------- */
.people_block {
  background-color: #D5EDF2;
  padding: 10rem 0 4rem;
  border-top: .1rem solid #000;
  border-bottom: .1rem solid #000;
}
.people_block .block_title {
  position: relative;
}
.people_block .block_title::before,
.people_block .block_title::after {
  content: "";
  background-repeat: no-repeat;
  background-size: contain;
  width: min(64rem,30%);
  height: 9.7rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.people_block .block_title::before {
  background-image: url("../../images/top/people_decolation_left.svg");
  background-position: right;
  right: min(calc(50% + 28.2rem),69%)
}
.people_block .block_title::after {
  background-image: url("../../images/top/people_decolation_right.svg");
  background-position: left;
  left: min(calc(50% + 28.2rem),69%)
}
.people_block .block_title img {
  width: 37rem;
}
.people_block .people_copy {
  width: calc(100% - 13.6rem);
  margin: 4rem auto 0;
  display: block;
  max-width: 180rem;
}
.people_list {
  margin-bottom: 4rem;
  overflow: hidden;
  width: 100%;
  display: flex;
  column-gap: 4rem;
}
.people_list ul {
  display: flex;
  column-gap: 4rem;
  min-width: 100%;
  animation: loop_animation_right_left 60s linear infinite;
  flex-shrink: 0;
  padding-left: 4rem;
  margin-left: -4rem;
}
.people_list li {
  flex-shrink: 0;
}

@media screen and (max-width: 999px) {
  .people_block {
    padding: 6.4rem 0 4rem;
  }
  .people_block .block_title::before,
  .people_block .block_title::after {
    display: none;
  }
  .people_block .people_copy {
    width: 100%;
    max-width: 40rem;
  }
  .people_list {
    column-gap: 2rem;
  }
  .people_list ul {
    column-gap: 2rem;
    padding-left: 2rem;
    margin-left: -2rem;
  }
  .people_block .btn_l {
    width: calc(100% - 6.4rem);
  }
}

/* ---------------------------------
  jobs_block
--------------------------------- */
.jobs_block {
  position: relative;
  padding-bottom: 4rem;
}
.jobs_block::before {
  content: "";
  position: absolute;
  top: -3rem;
  right: 4rem;
  background-image: url("../../images/top/jobs_img01.svg");
  width: min(38rem,25%);
  height: 34rem;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top;
}
.jobs_block .block_title img {
  width: 26.6rem;
}
.jobs_block .jobs_detail {
  border-top: .1rem solid #000;
  padding-top: 8rem;
  display: flex;
  flex-flow: column;
  row-gap: 6.4rem;
  text-align: center;
}
.jobs_block .jobs_detail .jobs_lead {
  font-weight: 500;
}
.jobs_block .jobs_detail img {
  width: 80rem;
  margin: auto;
}
.jobs_block .jobs_detail .job_list {
  width: 100%;
  overflow: hidden;
  display: flex;
  column-gap: 2rem;
}
.jobs_block .jobs_detail .job_list ul {
  display: flex;
  column-gap: 2rem;
  animation: loop_animation_right_left 60s linear infinite;
  flex-shrink: 0;
  min-width: 100%;
  padding-left: 2rem;
  margin-left: -2rem;
}
.jobs_block .jobs_detail .job_list li {
  background-color: #fff;
  border-radius: .8rem;
  font-weight: 700;
  font-size: 1.4rem;
  text-align: center;
  padding: 1.6rem 1.2rem;
  min-width: 20rem;
  flex-shrink: 0;
}
.jobs_block .jobs_detail .job_list li span {
  color: #DAAE0E;
  font-size: 1.2rem;
  font-weight: 500;
  display: block;
}
@media screen and (max-width: 999px) {
  .jobs_block::before {
    top: 0;
    width: 11.1rem;
    height: 10rem;
  }
  .jobs_block .jobs_detail {
    padding-top: 4rem;
    row-gap: 4rem;
  }
  .jobs_block .jobs_detail .jobs_lead {
    width: calc(100% - 4rem);
    margin: auto;
  }
  .jobs_block .jobs_detail img {
    width: calc(100% - 4rem);
    max-width: 40rem;
  }
  .jobs_block .btn_l {
    width: calc(100% - 4rem);
  }
}


/* ---------------------------------
  recruit_block
--------------------------------- */
.recruit_block .block_title img {
  width: 42.1rem;
}
.recruit_block .page_links::before {
  content: "";
  width: min(32rem,24%);
  height: 29.6rem;
  background-image: url("../../images/top/recruit_img01.svg");
  background-position: bottom;
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  left: 4rem;
  transform: translateY(-100%);
}
.recruit_block .page_link > span {
  margin-bottom: 1.6rem;
}
.recruit_block .page_link span.accent {
  color: #FEE177;
  font-size: 2.4rem;
  font-weight: 700;
  margin: 0 .8rem;
  -webkit-text-stroke: .2rem #000;
  text-stroke: .2rem #000;
  paint-order: stroke;
  text-shadow: 0 .2rem 0 #000;
  line-height: 1.4;
}
.recruit_block .page_link:hover span.accent {
  color: #fff;
}

@media screen and (max-width: 999px) {
  .recruit_block::before {
    width: 10.8rem;
    background-image: url("../../images/top/recruit_img01.svg");
  }
  .recruit_block .page_links::before {
    display: none;
  }
  .recruit_block .page_link span.accent {
    font-size: 2rem;
  }
}


/* ---------------------------------
  page_link
--------------------------------- */
@media screen and (max-width: 999px) {
  .main_content .card_link::before,
  .main_content .card_links li::before {
    width: 6rem;
    height: 6rem;
  }
  .main_content .card_link::after, 
  .main_content .card_links li::after {
    width: 1.6rem;
    height: 1.6rem;
    bottom: .8rem;
    right: .8rem;
  }
  .main_content .card_links li:not(:last-child) {
    border-right: 0;
  }
}
/* ---------------------------------
  page_link
--------------------------------- */
.page_link {
  width: 80rem;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.4;
}
.page_link > span {
  display: block;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
}
.page_links {
  margin-bottom: 8rem;
  position: relative;
}
.page_links li {
  width: calc(100% / 3);
  position: relative;
}
.page_links li a {
  padding: 6rem 0;
  row-gap: 3.2rem;
}
.page_links li:hover a {
  padding: 5.8rem 0;
}
.page_links .page_number {
  position: absolute;
  top: 2rem;
  left: 1.6rem;
  writing-mode: vertical-rl;
  font-weight: 500;
  color: #999;
}
.page_links .page_number span {
  transform: rotate(270deg);
  display: inline-block;
  color: #000;
  font-weight: 700;
  font-size: 2.4rem;
  margin-top: .4rem;
}
.page_links li:hover .page_number {
  position: absolute;
  top: 1.9rem;
  left: 1.5rem;
}
.page_links li img {
  width: min(24rem,40%);
}
.page_links .page_name {
  font-size: 2.4rem;
  font-weight: 700;
}
@media screen and (max-width: 999px) {
  .page_link {
    width: calc(100% - 4rem);
    font-size: 2rem;
    padding: 3.2rem 2rem;
  }
  .page_link > span {
    font-size: 1.4rem;
  }
  .page_links {
    margin-bottom: 4rem;
    flex-flow: column;
    border-bottom: 0;
  }
  .page_links li {
    width: 100%;
    border-bottom: .1rem solid #000;
  }
  .page_links li a {
    padding: 2.4rem 0 3.6rem;
    row-gap: 1.6rem;
  }
  .page_links li:hover a {
    padding: 2.4rem 0 3.6rem;
}
  .page_links .page_number {
    font-size: 1.2rem;
  }  
  .page_links .page_number span {
    font-size: 2rem;
  }
  .page_links li img {
    width: 12rem;
  }
  .page_links .page_name {
    font-size: 2rem;
  }
}

/* ---------------------------------
  animation
--------------------------------- */
@keyframes loop_animation_bottom_top {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-100%);
  }
}
@keyframes loop_animation_top_bottom {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes loop_animation_right_left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}