@charset "UTF-8";
/* shirushi 固有の mixin
---------------------------------------------------------------------------------------*/
.main_copy {
  margin-top: clamp(120px, 15vw, 230px);
  margin-bottom: clamp(70px, 12vw, 160px);
}
.main_copy h2 {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2rem, 2.5vw, 3.2rem);
  margin-bottom: 1em;
}
.main_copy p {
  font-family: "Roboto Condensed", sans-serif;
  font-size: clamp(1.2rem, 2.5vw, 1.4rem);
}

/* main_v
---------------------------------------------------------------------------------------*/
.main_v {
  width: 100%;
  height: 100svh;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  will-change: opacity, filter;
  transform: translateZ(0);
  margin-bottom: 50vh;
}
@media screen and (max-width: 767px) {
  .main_v {
    height: auto;
    margin-bottom: 0;
  }
}
.main_v .main_v_slider {
  width: 50%;
  height: 100svh;
}
@media screen and (max-width: 767px) {
  .main_v .main_v_slider {
    width: 100%;
    height: 38svh;
  }
}
.main_v .main_v_slider .swiper {
  width: 100%;
  height: 100%;
}
.main_v .main_v_slider .swiper-wrapper,
.main_v .main_v_slider .swiper-slide > div {
  height: 100%;
  width: 100%;
}
.main_v .main_v_slider .slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.main_v .main_v_slider .swiper-slide-active .slide_img,
.main_v .main_v_slider .swiper-slide-duplicate-active .slide_img,
.main_v .main_v_slider .swiper-slide-prev .slide_img {
  animation: zoom-in 10s linear 0s 1 normal both;
}

@keyframes zoom-in {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.06);
  }
}
@media screen and (min-width: 768px) {
  .js-scroll-overlap:not(.is-disabled) {
    --sticky-offset: -1px;
    position: sticky;
    top: var(--sticky-offset);
  }
}

/* section
---------------------------------------------------------------------------------------*/
.section_title {
  font-size: 1.5rem;
  margin-bottom: 3em;
}
@media screen and (max-width: 767px) {
  .section_title {
    margin-bottom: 1.5em;
  }
}

.about_section {
  padding-top: clamp(60px, 10vw, 140px);
  z-index: 1;
  position: relative;
}
.about_section .about_section_inr {
  display: flex;
  gap: 40px;
}
@media screen and (max-width: 767px) {
  .about_section .about_section_inr {
    display: block;
  }
}
.about_section .about_section_inr h3 {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2rem, 2.5vw, 3.2rem);
  margin-bottom: 3em;
}
@media screen and (max-width: 767px) {
  .about_section .about_section_inr h3 {
    margin-bottom: 1.5em;
  }
}
.about_section .about_section_inr p {
  margin-bottom: 2rem;
  line-height: 3.2;
  font-size: clamp(1.2rem, 2.5vw, 1.4rem);
}
.about_section .title_column {
  flex: 1;
}
.about_section .main_column {
  flex: 1;
}

.project_section {
  margin-block: clamp(60px, 10vw, 140px);
  z-index: 1;
  position: relative;
}

.topics_section {
  margin-block: clamp(60px, 10vw, 140px);
  z-index: 1;
  position: relative;
}

/* link_block
---------------------------------------------------------------------------------------*/
.link_block {
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .link_block {
    margin-bottom: 0;
  }
}
.link_block a {
  width: 100%;
  height: 100svh;
  display: block;
  padding: 5%;
}
@media screen and (max-width: 767px) {
  .link_block a {
    height: 35svh;
  }
}
.link_block a:hover .inr .link_block_img {
  filter: blur(8px);
  transform: scale(1.05);
}
.link_block a:hover .inr h3 {
  background: none;
  color: #FFFFFF;
}
.link_block a .inr {
  display: grid;
  place-items: center;
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.link_block a .inr .link_block_img {
  position: absolute;
  inset: -15px;
  transform: scale(1);
  transition: filter 0.6s ease, transform 0.6s ease;
}
.link_block a .inr .link_block_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.link_block a .inr h3 {
  position: relative;
  z-index: 1;
  text-align: center;
  font-size: 110%;
  padding: 7px 22px;
  background: #FFFFFF;
  transition: background-color 0.5s ease, color 0.5s ease;
}

.contact_section {
  padding-block: clamp(60px, 10vw, 140px);
  z-index: 1;
  position: relative;
  background: #FFFFFF;
}

/* Reduced motion
---------------------------------------------------------------------------------------*/
@media (prefers-reduced-motion: reduce) {
  .main_v .main_v_slider .swiper-slide-active .slide_img,
  .main_v .main_v_slider .swiper-slide-duplicate-active .slide_img,
  .main_v .main_v_slider .swiper-slide-prev .slide_img {
    animation: none;
  }
}