footer {
  margin-top: 100rem;
}

@media screen and (max-width: 768px) {
  footer {
    margin-top: 150rem;
  }
}
/* mv
-------------------------------------------------- */
.mv {
  aspect-ratio: 1920/816;
}
.mv h1 {
  opacity: 0;
  transition: opacity 0.5s;
  margin: 0;
}
.mv h1.loaded {
  opacity: 1;
}

/* story
-------------------------------------------------- */
.story {
  padding-block: 180rem 130rem;
  background: url(../image/index/story_bg.webp) center center/cover;
}
.story .story_container {
  display: flex;
  justify-content: space-between;
  padding-left: calc((100% - 1280rem) / 2);
  margin-bottom: 50rem;
}
.story .story_container .story_text {
  width: -moz-max-content;
  width: max-content;
}
.story .story_container .story_text .story_head {
  font-size: 45rem;
  line-height: 1;
  font-weight: 700;
  margin-bottom: 25rem;
}
.story .story_container .story_text .story_lead {
  line-height: 1.875;
  font-weight: 700;
  text-box: var(--trim);
  margin-bottom: 300rem;
}
.story .story_container .story_image {
  width: 1100rem;
}
.story .story_button {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto 67rem;
}

@media screen and (max-width: 768px) {
  .story {
    position: relative;
    padding-block: 90rem 190rem;
    margin-bottom: 110rem;
  }
  .story .story_container {
    display: contents;
  }
  .story .story_container .story_text {
    width: 670rem;
    margin-inline: auto;
  }
  .story .story_container .story_text .story_lead {
    margin-bottom: 40rem;
  }
  .story .story_container .story_text .button_grad {
    position: absolute;
    left: 40rem;
    bottom: 40rem;
  }
  .story .story_container .story_image {
    width: 100%;
    padding-left: 40rem;
  }
  .story .story_button {
    position: absolute;
    top: 173rem;
    right: 40rem;
    margin-inline: 0;
  }
  .story .story_button a {
    font-size: 16rem;
    width: 240rem;
    height: 60rem;
  }
  .story .story_button a::after {
    width: 33rem;
    height: 9rem;
  }
}
/* news
-------------------------------------------------- */
.news {
  position: relative;
  padding-block: 190rem 80rem;
  background: url(../image/index/news_bg.webp) center center/cover;
}
.news .news_decoration_wrap {
  position: absolute;
  width: 100%;
  left: 0;
  top: -60rem;
  overflow-x: hidden;
  overflow-y: clip;
}
.news .news_decoration_wrap .news_decoration li {
  display: flex;
  -moz-column-gap: var(--_infinite-scroll-gap);
       column-gap: var(--_infinite-scroll-gap);
}
.news .news_decoration_wrap .news_decoration li img {
  width: 1277rem;
}
.news .news_content {
  display: flex;
  justify-content: space-between;
}
.news .news_content .news_text {
  width: -moz-max-content;
  width: max-content;
}
.news .news_content .news_text .sectitle {
  margin-bottom: 130rem;
}
.news .news_content .news_item {
  width: 980rem;
}
.news .news_content .news_item .news_card {
  border-bottom: 2rem solid #808080;
}
.news .news_content .news_item .news_card + .news_card {
  margin-top: 35rem;
}
.news .news_content .news_item .news_card a {
  position: relative;
  transition: opacity 0.3s;
}
.news .news_content .news_item .news_card a .news_date {
  color: #808080;
  line-height: 1;
}
.news .news_content .news_item .news_card a .news_detail {
  padding-block: 15rem;
}
.news .news_content .news_item .news_card a::after {
  position: absolute;
  content: "";
  width: 33rem;
  height: 9rem;
  background: url(../image/common/arrow_black.svg) center center/100% 100%;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

@media (hover: hover) and (pointer: fine) {
  .news .news_content .news_item .news_card a:hover {
    opacity: 0.5;
  }
}
@media screen and (max-width: 768px) {
  .news {
    padding-block: 115rem 110rem;
  }
  .news .news_decoration_wrap {
    top: -45rem;
  }
  .news .news_decoration_wrap .news_decoration li {
    -moz-column-gap: 50rem;
         column-gap: 50rem;
  }
  .news .news_decoration_wrap .news_decoration li img {
    width: 743rem;
  }
  .news .news_content {
    display: block;
  }
  .news .news_content .news_text .sectitle {
    margin-bottom: 60rem;
  }
  .news .news_content .news_text .button_grad {
    display: none;
  }
  .news .news_content .news_item {
    width: 100%;
  }
  .news .news_content .news_item .news_card + .news_card {
    margin-top: 40rem;
  }
  .news .news_content .news_item .news_card a p {
    font-size: 30rem;
  }
  .news .news_content .news_item .news_card a .news_detail {
    padding-block: 25rem 85rem;
  }
  .news .news_content .news_item .news_card a::after {
    width: 60rem;
    height: 16rem;
    left: 0;
    right: auto;
    top: auto;
    bottom: 40rem;
    transform: none;
  }
}
/* serif
-------------------------------------------------- */
.serif {
  padding-block: 120rem;
}
.serif figure {
  width: 800rem;
  margin-inline: auto;
}
.serif .animated figure img {
  animation: bounce 2s ease-in-out 0.9s forwards infinite;
}

@media screen and (max-width: 768px) {
  .serif {
    padding-block: 60rem;
  }
  .serif figure {
    width: 650rem;
  }
}
@keyframes bounce {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}
/* business
-------------------------------------------------- */
.business {
  background: url(../image/index/business_bg.webp) top 290rem right/1740rem auto no-repeat;
}
.business .business_head {
  display: flex;
  -moz-column-gap: 60rem;
       column-gap: 60rem;
  margin-bottom: 50rem;
}
.business .business_head .seclead {
  color: var(--main-color-green);
}
.business .business_link {
  display: flex;
  -moz-column-gap: 40rem;
       column-gap: 40rem;
}
.business .business_link .business_link_item {
  width: 620rem;
  border-radius: 35rem;
  overflow: hidden;
}
.business .business_link .business_link_item a .business_link_image {
  overflow: hidden;
}
.business .business_link .business_link_item a .business_link_image img {
  transition: transform 0.3s;
}
.business .business_link .business_link_item a .business_link_text {
  font-size: 20rem;
  font-weight: 700;
  line-height: 1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #fff;
  padding: 40rem 60rem;
}
.business .business_link .business_link_item a .business_link_text::after {
  content: "";
  display: block;
  width: 33rem;
  height: 9rem;
  background: url(../image/common/arrow_black.svg) center center/100% 100%;
  transition: transform 0.3s;
}
.business .business_recycle {
  margin-top: 200rem;
}

@media (hover: hover) and (pointer: fine) {
  .business .business_link .business_link_item a:hover .business_link_image img {
    transform: scale(1.2);
  }
  .business .business_link .business_link_item a:hover .business_link_text::after {
    transform: translateX(20rem);
  }
}
@media screen and (max-width: 768px) {
  .business {
    background-image: url(../image/index/business_bg_sp.webp);
    background-size: 100% auto;
    background-position: top left;
    padding-top: 120rem;
  }
  .business .business_head {
    display: block;
    margin-bottom: 40rem;
  }
  .business .business_head .seclead {
    color: #222222;
    margin-top: 60rem;
  }
  .business .business_link {
    flex-wrap: wrap;
    row-gap: 35rem;
  }
  .business .business_link .business_link_item {
    width: 100%;
  }
  .business .business_link .business_link_item a .business_link_text {
    font-size: 36rem;
    padding: 30rem 50rem;
  }
  .business .business_link .business_link_item a .business_link_text::after {
    width: 60rem;
    height: 16rem;
  }
  .business .business_recycle {
    margin-top: 185rem;
  }
}
/* product
-------------------------------------------------- */
.product {
  margin-block: 150rem 300rem;
}
.product .product_container {
  display: flex;
  -moz-column-gap: 70rem;
       column-gap: 70rem;
  background: url(../image/index/product_container_bg.webp) bottom center/cover no-repeat;
}
.product .product_container .product_text {
  width: -moz-max-content;
  width: max-content;
  padding-block: 85rem;
}
.product .product_container .product_text .sectitle, .product .product_container .product_text .seclead {
  color: #fff;
}
.product .product_container .product_text .sectitle {
  margin-bottom: 40rem;
}
.product .product_container .product_text .seclead {
  margin-bottom: 60rem;
}
.product .product_container .product_text .product_button li + li {
  margin-top: 30rem;
}
.product .product_container .product_image {
  width: 1100rem;
  margin-top: -50rem;
}
.product .product_link {
  padding-bottom: 150rem;
  background: url(../image/index/product_link_bg.webp) center center/cover;
}
.product .product_link .product_decoration_wrap {
  overflow: hidden;
  margin-bottom: 180rem;
}
.product .product_link .product_decoration_wrap .product_decoration li {
  display: flex;
}
.product .product_link .product_decoration_wrap .product_decoration li img {
  width: 1920rem;
}
.product .product_link .product_link_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 80rem 40rem;
}
.product .product_link .product_link_list .card {
  display: grid;
  grid-template-rows: subgrid;
  gap: 0;
  border-radius: 40rem;
  overflow: hidden;
  box-shadow: 10px 10px 5px rgba(0, 0, 0, 0.1);
}
.product .product_link .product_link_list .card:nth-of-type(1) {
  grid-area: 1/1/2/3;
}
.product .product_link .product_link_list .card:nth-of-type(2) {
  grid-area: 2/1/3/3;
}
.product .product_link .product_link_list .card:nth-of-type(3) {
  grid-area: 3/1/4/2;
}
.product .product_link .product_link_list .card:nth-of-type(4) {
  grid-area: 3/2/4/3;
}
.product .product_link .product_link_list .card a {
  display: contents;
}
.product .product_link .product_link_list .card a .product_link_text {
  background: #fff;
  padding-left: 40rem;
}
.product .product_link .product_link_list .card a .product_link_text .product_link_text_lead {
  line-height: 1.75;
  text-box: var(--trim);
}
.product .product_link .product_link_list .card a .product_link_image {
  position: relative;
  overflow: hidden;
}
.product .product_link .product_link_list .card a .product_link_image img {
  transition: transform 0.3s;
}
.product .product_link .product_link_list .card a .product_link_image .arrow {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 95rem;
  height: 60rem;
  bottom: 30rem;
  right: 30rem;
  border-radius: 9999px;
  background-image: linear-gradient(to right, #3da700 0%, #80c13f 100%);
}
.product .product_link .product_link_list .card a .product_link_image .arrow::after {
  content: "";
  display: block;
  width: 33rem;
  height: 9rem;
  background: url(../image/common/arrow_white.svg) center center/100% 100%;
}
.product .product_link .product_link_list .card:not(.card-mini) {
  grid-template-columns: 390rem 890rem;
}
.product .product_link .product_link_list .card:not(.card-mini) .product_link_text {
  place-content: center;
}
.product .product_link .product_link_list .card:not(.card-mini) .product_link_text .sectitle {
  margin-bottom: 40rem;
}
.product .product_link .product_link_list .card.card-mini {
  grid-template-columns: 280rem 340rem;
}
.product .product_link .product_link_list .card.card-mini .product_link_text {
  padding-top: 65rem;
}
.product .product_link .product_link_list .card.card-mini .product_link_text .product_link_text_head {
  font-size: 28rem;
  font-weight: 700;
  line-height: 1;
}
.product .product_link .product_link_list .card.card-mini .product_link_text .product_link_text_head:has(+ .product_link_text_lead) {
  margin-bottom: 45rem;
}

@media (hover: hover) and (pointer: fine) {
  .product .product_link .product_link_list .card a:hover .product_link_image img {
    transform: scale(1.1);
  }
}
@media screen and (max-width: 768px) {
  .product {
    margin-block: 60rem 0;
  }
  .product .product_container {
    display: block;
    background-image: url(../image/index/product_container_bg_sp.webp);
    background-size: 100% calc(100% - 75rem);
  }
  .product .product_container .product_image {
    width: 710rem;
    margin-top: 0;
  }
  .product .product_container .product_text {
    width: 670rem;
    margin-inline: auto;
    padding-block: 60rem 120rem;
  }
  .product .product_container .product_text .sectitle {
    margin-bottom: 60rem;
  }
  .product .product_container .product_text .seclead {
    margin-bottom: 40rem;
  }
  .product .product_container .product_text .product_button li + li {
    margin-top: 40rem;
  }
  .product .product_link {
    padding-block: 50rem 120rem;
  }
  .product .product_link .product_decoration_wrap {
    margin-bottom: 40rem;
  }
  .product .product_link .product_link_list {
    display: block;
  }
  .product .product_link .product_link_list .card .product_link_text {
    padding-left: 45rem;
  }
  .product .product_link .product_link_list .card a .product_link_image .arrow {
    width: 124rem;
    height: 78rem;
    right: 25rem;
    bottom: 20rem;
  }
  .product .product_link .product_link_list .card a .product_link_image .arrow::after {
    width: 43rem;
    height: 11rem;
  }
  .product .product_link .product_link_list .card + .card {
    margin-top: 40rem;
  }
  .product .product_link .product_link_list .card.card:not(.card-mini) {
    display: block;
  }
  .product .product_link .product_link_list .card.card:not(.card-mini) .product_link_text {
    padding-block: 50rem 40rem;
  }
  .product .product_link .product_link_list .card.card:not(.card-mini) .product_link_text .sectitle {
    margin-bottom: 25rem;
  }
  .product .product_link .product_link_list .card.card:not(.card-mini) .product_link_text .product_link_text_lead {
    font-size: 23rem;
  }
  .product .product_link .product_link_list .card.card-mini {
    display: flex;
  }
  .product .product_link .product_link_list .card.card-mini .product_link_text {
    width: calc(100% - 277rem);
    padding: 75rem 0 90rem 45rem;
  }
  .product .product_link .product_link_list .card.card-mini .product_link_text .product_link_text_head {
    font-size: 30rem;
  }
  .product .product_link .product_link_list .card.card-mini .product_link_text .product_link_text_head:has(+ .product_link_text_lead) {
    margin-bottom: 25rem;
  }
  .product .product_link .product_link_list .card.card-mini .product_link_text .product_link_text_lead {
    font-size: 23rem;
    line-height: 1.6956521739;
  }
  .product .product_link .product_link_list .card.card-mini .product_link_image {
    width: 277rem;
    position: relative;
  }
  .product .product_link .product_link_list .card.card-mini .product_link_image img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-inline-size: none;
    height: 100%;
  }
}
/* recruit
-------------------------------------------------- */
.recruit {
  background: url(../image/index/recruit_bg.webp) center center/cover;
}
.recruit .recruit_container {
  display: flex;
  justify-content: space-between;
  padding-left: calc((100% - 1280rem) / 2);
}
.recruit .recruit_container .recruit_text {
  width: -moz-max-content;
  width: max-content;
  padding-block: 120rem 130rem;
}
.recruit .recruit_container .recruit_text .sectitle, .recruit .recruit_container .recruit_text .seclead {
  color: #fff;
}
.recruit .recruit_container .recruit_text .sectitle {
  margin-bottom: 40rem;
}
.recruit .recruit_container .recruit_text .seclead {
  margin-bottom: 60rem;
}
.recruit .recruit_container .recruit_image {
  width: 1100rem;
  margin-top: -200rem;
}

@media screen and (max-width: 768px) {
  .recruit {
    padding-block: 120rem;
  }
  .recruit .recruit_container {
    display: block;
    width: 670rem;
    margin-inline: auto;
    padding: 0;
  }
  .recruit .recruit_container .recruit_text {
    padding: 0;
  }
  .recruit .recruit_container .recruit_text .sectitle {
    margin-bottom: 55rem;
  }
  /*
  .recruit .recruit_container .recruit_text .button {
    display: none;
  }
    */
  .recruit .recruit_container .recruit_image {
    width: 100%;
    margin-top: 40rem;
  }
}
/* blog
-------------------------------------------------- */
.blog {
  margin-top: 100rem;
}
.blog .blog_head {
  margin-bottom: 35rem;
}
.blog .blog_head .blog_head_button {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto 0;
}
.blog .blog_slider {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.blog .blog_slider .slider-wrapper {
  position: relative;
  overflow: hidden;
  margin-bottom: 55rem;
}
.blog .blog_slider .slider-wrapper .slider {
  display: flex;
  transition: transform 0.4s ease;
  will-change: transform;
}
.blog .blog_slider .slider-wrapper .slider .blog-card {
  position: relative;
  min-width: 400rem;
  min-height: 485rem;
  padding: 30rem 35rem;
  border: 1rem solid #dddddd;
}
.blog .blog_slider .slider-wrapper .slider .blog-card .blog_thumbnail {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 328/235;
  overflow: hidden;
  margin-bottom: 45rem;
}
.blog .blog_slider .slider-wrapper .slider .blog-card .blog_date {
  color: #808080;
  line-height: 1;
  margin-bottom: 15rem;
}
.blog .blog_slider .slider-wrapper .slider .blog-card .blog_detail {
  font-weight: 500;
  line-height: 1.5;
  text-box: var(--trim);
}
.blog .blog_slider .slider-wrapper .slider .blog-card::after {
  position: absolute;
  content: "";
  width: 33rem;
  height: 9rem;
  right: 35rem;
  bottom: 40rem;
  background: url(../image/common/arrow_black.svg) center center/100% 100%;
  transition: transform 0.3s;
}
.blog .blog_slider .slider-controller {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.blog .blog_slider .slider-controller .custom-scrollbar {
  width: 1065rem;
  height: 2rem;
  background: #e8e8e8;
  position: relative;
  cursor: pointer;
  pointer-events: all;
}
.blog .blog_slider .slider-controller .custom-scrollbar .scroll-thumb {
  height: 100%;
  position: absolute;
  left: 0;
  transition: left 0.3s ease;
  background: #c0c5ce;
  cursor: grab;
  pointer-events: all;
  touch-action: none;
}
.blog .blog_slider .slider-controller .slider-button {
  display: flex;
  -moz-column-gap: 15rem;
       column-gap: 15rem;
}
.blog .blog_slider .slider-controller .slider-button .slider-button-arrow {
  position: relative;
  width: 50rem;
  aspect-ratio: 1/1;
  border-radius: 50%;
  border: 0.25rem solid #222222;
  background: #fff;
  padding: 0;
  transition: opacity 0.4s;
}
.blog .blog_slider .slider-controller .slider-button .slider-button-arrow::after {
  position: absolute;
  content: "";
  width: 33rem;
  height: 9rem;
  top: 50%;
  left: 50%;
  background: url(../image/common/arrow_black.svg) center center/100% 100%;
}
.blog .blog_slider .slider-controller .slider-button .slider-button-arrow.prev::after {
  transform: translate(-50%, -50%) scale(-1, 1);
}
.blog .blog_slider .slider-controller .slider-button .slider-button-arrow.next::after {
  transform: translate(-50%, -50%);
}
.blog .blog_slider .slider-controller .slider-button .slider-button-arrow.disabled {
  opacity: 0.25;
  cursor: default;
  pointer-events: none;
}
.blog .blog_bottom {
  display: none;
}

@media (hover: hover) and (pointer: fine) {
  .blog .blog_slider .slider-wrapper .slider .blog-card:hover::after {
    transform: translateX(15rem);
  }
}
@media screen and (max-width: 768px) {
  .blog {
    margin-top: 120rem;
  }
  .blog .blog_head {
    margin-bottom: 40rem;
  }
  .blog .blog_head .blog_head_button {
    display: none;
  }
  .blog .blog_slider .slider-wrapper .slider {
    padding-inline: 40rem;
  }
  .blog .blog_slider .slider-wrapper .slider .blog-card {
    min-width: 670rem;
    min-height: 770rem;
    padding: 50rem;
  }
  .blog .blog_slider .slider-wrapper .slider .blog-card .blog_thumbnail {
    margin-bottom: 40rem;
  }
  .blog .blog_slider .slider-wrapper .slider .blog-card .blog_date {
    font-size: 36rem;
    margin-bottom: 30rem;
  }
  .blog .blog_slider .slider-wrapper .slider .blog-card .blog_detail {
    font-size: 28rem;
    line-height: 1.5714285714;
  }
  .blog .blog_slider .slider-wrapper .slider .blog-card::after {
    width: 49rem;
    height: 13rem;
    bottom: 50rem;
    right: 50rem;
  }
  .blog .blog_slider .slider-controller {
    justify-content: center;
  }
  .blog .blog_slider .slider-controller .custom-scrollbar {
    display: none;
  }
  .blog .blog_slider .slider-controller .slider-button {
    -moz-column-gap: 30rem;
         column-gap: 30rem;
  }
  .blog .blog_slider .slider-controller .slider-button .slider-button-arrow {
    width: 100rem;
  }
  .blog .blog_slider .slider-controller .slider-button .slider-button-arrow::after {
    width: 67rem;
    height: 17rem;
  }
  .blog .blog_bottom {
    display: block;
    margin-top: 50rem;
  }
}/*# sourceMappingURL=index.css.map */