header #gnav .gnav_list .gnav_list_item .link_top::after {
  width: 100%;
}

@media screen and (max-width: 768px) {
  #footer {
    display: none;
  }
}
/* --------------------------------------------------
    common
-------------------------------------------------- */
.sectitle {
  font-size: 60rem;
  font-weight: 700;
  line-height: 0;
  color: var(--main-color-blue);
  text-box: var(--trim);
}
.sectitle span {
  display: inline-block;
  text-box: var(--trim);
}
.sectitle small {
  font-size: 20rem;
  font-weight: 500;
}
.sectitle small:where(br + *) {
  display: inline-block;
  margin-top: 35rem;
}

@media screen and (max-width: 768px) {
  .sectitle {
    line-height: 1;
  }
  .sectitle small {
    font-size: 27rem;
  }
  .sectitle small:where(br + *) {
    margin-top: 0;
    transform: translateY(-10rem);
  }
}
.secsubtitle {
  font-size: 26rem;
  font-weight: 500;
  line-height: 1.6153846154;
  text-box: var(--trim);
  margin-bottom: 30rem;
}

@media screen and (max-width: 768px) {
  .secsubtitle {
    font-size: 30rem;
    margin-bottom: 40rem;
  }
}
.seclead {
  font-size: 20rem;
  line-height: 1.75;
  text-align: justify;
  text-box: var(--trim);
  font-feature-settings: "palt";
}
.seclead strong {
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .seclead {
    font-size: 28rem;
  }
}
/* --------------------------------------------------
    mv
-------------------------------------------------- */
.mv {
  position: relative;
  overflow: hidden;
  margin-bottom: 80rem;
}
.mv .fv {
  display: flex;
}
.mv .fv .fv_scroll {
  position: relative;
  width: 63rem;
}
.mv .fv .fv_scroll p {
  font-size: 12rem;
  line-height: 1;
  writing-mode: vertical-rl;
  position: absolute;
  top: 620rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column-reverse;
}
.mv .fv .fv_scroll p::before {
  content: "";
  width: 20rem;
  height: 125rem;
  border-left: 2rem solid var(--main-color-blue);
  border-bottom: 2rem solid var(--main-color-blue);
  transform: skewY(-30deg);
  margin-top: -5rem;
  margin-right: -7rem;
  animation: scroll_arrow 2s ease-in-out 0s infinite forwards;
}
.mv .fv .fv_image {
  position: relative;
  width: 1857rem;
}
.mv .fv .fv_image figure {
  opacity: 0;
  transition: opacity 0.7s;
}
.mv .fv .fv_image h1 {
  position: absolute;
  width: 1340rem;
  top: 50%;
  left: 0;
  transform: translateX(-50rem) translateY(-50%);
  opacity: 0;
  transition: transform 0.7s, opacity 0.7s;
  transition-delay: 1s;
}
.mv .fv .fv_image.loaded figure {
  opacity: 1;
}
.mv .fv .fv_image.loaded h1 {
  transform: translateX(0) translateY(-50%);
  opacity: 1;
}
.mv .news {
  display: flex;
  position: absolute;
  bottom: 0;
  right: 0;
}
.mv .news .news_content {
  display: flex;
  -moz-column-gap: 25rem;
       column-gap: 25rem;
  width: 730rem;
  padding: 15rem 25rem;
  background: #fff;
}
.mv .news .news_content .news_title {
  font-size: 30rem;
  font-weight: 500;
  line-height: 1;
  color: var(--main-color-blue);
}
.mv .news .news_content .news_item dl {
  display: flex;
  -moz-column-gap: 20rem;
       column-gap: 20rem;
}
.mv .news .news_content .news_item dl .news_date {
  font-size: 14rem;
  font-weight: 300;
  line-height: 1.7857142857;
  color: #333333;
  flex-shrink: 0;
}
.mv .news .news_content .news_item dl .news_detail {
  font-size: 14rem;
  line-height: 1.7857142857;
  text-align: justify;
  font-feature-settings: "palt";
}

@keyframes scroll_arrow {
  0% {
    margin-top: -5rem;
  }
  50% {
    margin-top: 20rem;
  }
  100% {
    margin-top: -5rem;
  }
}
@media (hover: hover) and (pointer: fine) {
  .mv .news .news_content .news_item:hover dl .news_date, .mv .news .news_content .news_item:hover dl .news_detail {
    text-decoration: underline;
  }
}
@media screen and (min-width: 769px) {
  .mv .news .button {
    width: 160rem;
    height: auto;
    padding-inline: 15rem;
  }
}
@media screen and (max-width: 768px) {
  .mv {
    overflow: unset;
    margin-bottom: 40rem;
  }
  .mv .fv .fv_scroll {
    display: none;
    width: 0;
  }
  .mv .fv .fv_image {
    width: 100%;
  }
  .mv .fv .fv_image h1 {
    width: 100%;
  }
  .mv .news {
    display: block;
    position: static;
  }
  .mv .news .news_content {
    display: block;
    width: 100%;
    padding: 30rem 40rem;
  }
  .mv .news .news_content .news_title {
    color: #fff;
    background: var(--main-color-blue);
    width: -moz-fit-content;
    width: fit-content;
    padding: 15rem 20rem;
  }
  .mv .news .news_content .news_item dl {
    display: block;
    border-block: 1rem solid #595757;
    padding-block: 30rem;
  }
  .mv .news .news_content .news_item dl .news_date {
    font-size: 28rem;
    line-height: 1;
    margin-bottom: 20rem;
  }
  .mv .news .news_content .news_item dl .news_detail {
    font-size: 28rem;
    line-height: 1.4285714286;
    text-box: var(--trim);
  }
  .mv .news .button {
    margin-inline: auto;
  }
}
/* --------------------------------------------------
    product
-------------------------------------------------- */
.product {
  margin-bottom: 70rem;
}
.product .product_content {
  margin-bottom: 30rem;
  background: url(/image/index/product_bg_01.webp) top left/995rem auto no-repeat, url(/image/index/product_bg_02.webp) top -170rem right/440rem auto no-repeat, #000;
}
.product .product_content .sectitle {
  color: #fff;
  text-align: center;
  margin-bottom: 35rem;
}
.product .product_content .seclead {
  color: #fff;
  font-weight: 300;
}
.product .product_content .product_content_list {
  display: flex;
  justify-content: center;
}
.product .product_content .product_content_list .card .card_image {
  position: relative;
}
.product .product_content .product_content_list .card .card_image .card_image_deco {
  position: absolute;
  pointer-events: none;
}
.product .product_content .product_content_list .card .card_image .card_image_deco.sx {
  width: 237rem;
  left: -120rem;
  bottom: -3rem;
}
.product .product_content .product_content_list .card .card_image .card_image_deco.tr {
  width: 252rem;
  right: -132rem;
  bottom: 0;
}
.product .product_content .product_content_list .card .button {
  width: 100%;
}
.product .product_slideshow {
  margin-bottom: 100rem;
}
.product .product_slideshow .slides {
  width: 100%;
  padding: 20rem;
  background: #000;
}
.product .product_slideshow .slides .slide {
  width: 360rem;
}
.product .product_slideshow .slides .slide + .slide {
  margin-left: 20rem;
}
.product .product_slideshow .slides .slick-dots {
  position: absolute;
  display: flex;
  align-items: center;
  -moz-column-gap: 15rem;
       column-gap: 15rem;
  bottom: -50rem;
  left: 50%;
  transform: translateX(-50%);
}
.product .product_slideshow .slides .slick-dots li {
  line-height: 0;
}
.product .product_slideshow .slides .slick-dots li button {
  font-size: 0;
  width: 20rem;
  aspect-ratio: 1/1;
  border-radius: 50%;
  border: none;
  padding: 0;
  background: #aaaaaa;
  transform: scale(0.8);
  transition: all 0.3s;
}
.product .product_slideshow .slides .slick-dots li.slick-active button {
  background: var(--main-color-blue);
  transform: scale(1);
}
.product .button_catalog {
  font-size: 30rem;
  width: 500rem;
  height: 90rem;
  margin-inline: auto;
  padding-inline: 25rem;
}

@media (hover: hover) and (pointer: fine) {
  .product .product_slideshow .slides .slick-dots li button:hover {
    background: var(--main-color-blue);
  }
}
@media screen and (min-width: 769px) {
  .product .product_content {
    padding-block: 80rem 70rem;
  }
  .product .product_content .seclead {
    text-align: center;
  }
  .product .product_content .product_content_list {
    -moz-column-gap: 110rem;
         column-gap: 110rem;
    margin-top: 50rem;
    background: url(/image/index/product_deco_cross.webp) center center/214rem auto no-repeat;
  }
  .product .product_content .product_content_list .card {
    width: 525rem;
  }
  .product .product_content .product_content_list .card .button {
    font-size: 25rem;
    height: 70rem;
    padding-inline: 25rem;
  }
}
@media screen and (max-width: 768px) {
  .product .product_content {
    width: 100%;
    padding: 90rem 40rem 40rem;
    background-size: 470rem auto, 230rem auto, auto;
    background-position: top left, top -75rem right, top left;
  }
  .product .product_content .product_content_list {
    -moz-column-gap: 30rem;
         column-gap: 30rem;
    margin-top: 100rem;
  }
  .product .product_content .product_content_list .card {
    width: 320rem;
  }
  .product .product_content .product_content_list .card .card_image .card_image_deco.sx {
    width: 125rem;
    top: -50rem;
    left: -20rem;
  }
  .product .product_content .product_content_list .card .card_image .card_image_deco.tr {
    width: 134rem;
    top: -50rem;
    right: -20rem;
  }
  .product .product_content .product_content_list .card .button {
    font-size: 26rem;
    height: 50rem;
    padding-inline: 15rem;
  }
}
/* --------------------------------------------------
    sticking
-------------------------------------------------- */
.sticking {
  color: #fff;
  padding-block: 50rem;
}
.sticking .sti_container {
  display: flex;
}
.sticking .sti_container .sti_text .sti_title {
  font-weight: 500;
  line-height: 1;
  border-bottom: 2rem solid #fff;
  padding-bottom: 20rem;
}
.sticking .sti_container .sti_text .secsubtitle {
  color: #fff;
}

@media screen and (min-width: 769px) {
  .sticking {
    background-image: url(/image/index/sticking_bg.webp), linear-gradient(to left, #fff 60rem, var(--main-color-blue) 60rem);
    background-repeat: no-repeat;
    background-position: top 0 right 60rem, top left;
    background-size: 920rem 100%, auto;
    margin-bottom: 80rem;
  }
  .sticking .sti_container {
    align-items: center;
    -moz-column-gap: 50rem;
         column-gap: 50rem;
  }
  .sticking .sti_container .sti_text {
    width: 510rem;
  }
  .sticking .sti_container .sti_text .sti_title {
    font-size: 40rem;
    margin-bottom: 30rem;
  }
  .sticking .sti_container .sti_text .button {
    font-size: 20rem;
    margin-top: 80rem;
  }
  .sticking .sti_container .sti_image {
    width: 802rem;
  }
}
@media screen and (max-width: 768px) {
  .sticking {
    background: var(--main-color-blue);
    margin-bottom: 60rem;
  }
  .sticking .sti_container {
    flex-direction: column;
  }
  .sticking .sti_container .sti_text {
    display: contents;
  }
  .sticking .sti_container .sti_text .sti_title {
    font-size: 43rem;
    margin-bottom: 40rem;
  }
  .sticking .sti_container .sti_text .button {
    order: 5;
    margin: 30rem auto 0;
  }
  .sticking .sti_container .sti_image {
    margin-top: 45rem;
  }
}
/* --------------------------------------------------
    maintenance
-------------------------------------------------- */
.maintenance .mai_container {
  display: flex;
}
.maintenance .mai_container .mai_text .sectitle span::first-letter {
  color: #0d9be0;
}

@media screen and (min-width: 769px) {
  .maintenance {
    margin-bottom: 80rem;
  }
  .maintenance .mai_container {
    justify-content: space-between;
  }
  .maintenance .mai_container .mai_text {
    width: 520rem;
  }
  .maintenance .mai_container .mai_text .sectitle {
    margin-bottom: 45rem;
  }
  .maintenance .mai_container .mai_text .button {
    font-size: 20rem;
    margin-top: 55rem;
  }
  .maintenance .mai_container .mai_image {
    width: 1045rem;
  }
}
@media screen and (max-width: 768px) {
  .maintenance {
    margin-bottom: 40rem;
  }
  .maintenance .mai_container {
    flex-direction: column;
  }
  .maintenance .mai_container .mai_text {
    display: contents;
  }
  .maintenance .mai_container .mai_text .sectitle {
    text-align: center;
    margin-bottom: 40rem;
  }
  .maintenance .mai_container .mai_text .button {
    order: 5;
    margin: 30rem auto 0;
  }
  .maintenance .mai_container .mai_image {
    margin-top: 40rem;
  }
}
/* --------------------------------------------------
    movie
-------------------------------------------------- */
.movie {
  background-image: linear-gradient(to right, #fff 60rem, var(--main-color-blue) 60rem);
}
.movie .mov_container .mov_text .sectitle {
  color: #fff;
}
.movie .mov_container .youtube .youtube_item .youtube_box {
  position: relative;
  aspect-ratio: 16/9;
}
.movie .mov_container .youtube .youtube_item .youtube_box iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.movie .mov_container .youtube .youtube_item .youtube_caption {
  font-size: 24rem;
  color: #fff;
  text-box: var(--trim);
  font-feature-settings: "palt";
  margin-top: 25rem;
}

@media screen and (min-width: 769px) {
  .movie {
    padding-block: 80rem;
    margin-bottom: 80rem;
  }
  .movie .mov_container {
    display: flex;
    justify-content: space-between;
  }
  .movie .mov_container .mov_text .sectitle {
    margin-bottom: 20rem;
  }
  .movie .mov_container .mov_text .mov_serif {
    width: 220rem;
  }
  .movie .mov_container .youtube {
    display: flex;
    flex-wrap: wrap;
    width: 1295rem;
    gap: 55rem;
  }
  .movie .mov_container .youtube .youtube_item {
    width: 620rem;
  }
}
@media screen and (max-width: 768px) {
  .movie {
    background: var(--main-color-blue);
    padding-block: 70rem 60rem;
  }
  .movie .mov_container .mov_text {
    position: relative;
    margin-bottom: 25rem;
  }
  .movie .mov_container .mov_text .sectitle {
    position: absolute;
    top: 30rem;
    left: 0;
  }
  .movie .mov_container .youtube .youtube_item + .youtube_item {
    margin-top: 50rem;
  }
  .movie .mov_container .youtube .youtube_item .youtube_caption {
    font-size: 28rem;
  }
}
/* --------------------------------------------------
    recruit
-------------------------------------------------- */
.recruit .sectitle {
  color: #fff;
}
.recruit .rec_lead {
  font-weight: 500;
  color: #fff;
  text-box: var(--trim);
}

@media screen and (min-width: 769px) {
  .recruit {
    background: url(/image/index/recruit_bg.webp) top center/cover;
    padding-block: 120rem 90rem;
  }
  .recruit .sectitle {
    margin-bottom: 90rem;
  }
  .recruit .rec_lead {
    font-size: 31rem;
    font-weight: 500;
    color: #fff;
    text-box: var(--trim);
    margin-bottom: 155rem;
  }
  .recruit .button {
    font-size: 20rem;
  }
}
@media screen and (max-width: 768px) {
  .recruit {
    padding-block: 40rem 60rem;
    background: url(/image/index/recruit_bg_sp.webp) top center/cover;
  }
  .recruit .sectitle {
    text-align: center;
    margin-bottom: 290rem;
  }
  .recruit .rec_lead {
    font-size: 30rem;
    text-align: center;
  }
  .recruit .button {
    margin: 50rem auto 0;
  }
}
/* --------------------------------------------------
    access
-------------------------------------------------- */
.access {
  background-position: bottom center;
  background-size: cover;
}
.access .acc_container {
  display: flex;
}
.access .acc_container .acc_info .sectitle span::first-letter {
  color: #0d9be0;
}
.access .acc_container .acc_map {
  position: relative;
  aspect-ratio: 730/540;
}
.access .acc_container .acc_map iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
.access .links {
  display: flex;
}

@media (hover: hover) and (pointer: fine) {
  .access .links .links_item a:hover {
    opacity: 0.5;
  }
}
@media screen and (min-width: 769px) {
  .access {
    background-image: url(/image/index/access_bg.webp);
    padding-block: 80rem 350rem;
  }
  .access .acc_container {
    justify-content: space-between;
    align-items: center;
    background: rgba(255, 255, 255, 0.7);
    padding: 80rem;
  }
  .access .acc_container .acc_info {
    width: 560rem;
  }
  .access .acc_container .acc_info .sectitle {
    margin-bottom: 35rem;
  }
  .access .acc_container .acc_info .button {
    font-size: 20rem;
    margin-top: 40rem;
  }
  .access .acc_container .acc_map {
    width: 730rem;
  }
  .access .links {
    justify-content: center;
    align-items: center;
    -moz-column-gap: 60rem;
         column-gap: 60rem;
    margin-top: 70rem;
  }
  .access .links .links_item a {
    transition: opacity 0.3s;
  }
  .access .links .links_item a .primetals {
    width: 350rem;
    box-shadow: 0.5rem 0.5rem 5rem rgba(0, 0, 0, 0.2);
  }
  .access .links .links_item a .matsuri {
    width: 330rem;
  }
  .access .acc_footer {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .access {
    background-image: url(/image/index/access_bg_sp.webp);
    padding-block: 50rem 20rem;
  }
  .access .acc_container {
    flex-direction: column;
  }
  .access .acc_container .acc_info {
    display: contents;
  }
  .access .acc_container .acc_info .sectitle {
    text-align: center;
    margin-bottom: 40rem;
  }
  .access .acc_container .acc_info .acc_image {
    order: 4;
  }
  .access .acc_container .acc_info .button {
    order: 3;
    margin: 30rem auto 40rem;
  }
  .access .acc_container .acc_info .acc_map {
    order: 2;
  }
  .access .links {
    flex-wrap: wrap;
    row-gap: 30rem;
    width: 670rem;
    margin: 60rem auto 250rem;
  }
  .access .acc_footer .head {
    font-size: 32rem;
    font-weight: 500;
    line-height: 1;
    margin-bottom: 25rem;
  }
  .access .acc_footer .address {
    font-size: 20rem;
    line-height: 1.5;
    text-box: var(--trim);
  }
  .access .acc_footer .address strong {
    font-size: 28rem;
    font-weight: 400;
  }
  .access .acc_footer .address + .address {
    margin-top: 30rem;
  }
  .access .acc_footer .copy {
    font-size: 20rem;
    font-weight: 300;
    text-align: center;
    line-height: 1;
    margin-top: 60rem;
  }
}/*# sourceMappingURL=index.css.map */