.home #main {
  font-size: calc(10 / 1440 * 100vw);
}

@media screen and (max-width: 1040px) {
  .home #main {
    font-size: calc(10px / 1440 * 1040);
  }
}

@media screen and (max-width: 767px) {
  .home #main {
    font-size: 10px;
  }

  .home #footer {
    margin-bottom: 5.6rem;
  }
}

p,
ul,
li,
h2,
h3 {
  margin: 0;
}

/* ============================
	Main Visual
============================ */
.mv {
  display: grid;
  grid-template-columns: calc(340 / 1440 * 100%) 1fr;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100svh;
}

@media screen and (min-width: 1040px) {
  .mv {
    font-size: calc(10 / 813 * 100vh);
    font-size: min(calc(10 / 1440 * 100vw), calc(10 / 813 * 100vh));
  }
}

@media screen and (min-width: 1040px) and (max-height: 720px) {
  .mv {
    font-size: calc(10px / 813 * 720);
  }
}

@media screen and (max-width: 767px) {
  .mv {
    position: relative;
    display: flex;
    flex-direction: column;
  }
}

.mv__nav {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #fff;
  padding: 0 0.8em 10em 0;
}

@media screen and (max-width: 767px) {
  .mv__nav {
    display: none;
  }
}

.mv__logo {
  flex-shrink: 0;
  width: 20.8em;
  height: auto;
}

.mv__nav-list {
  margin-top: calc(32em / 14);
}

.mv__nav-item {
  margin-top: calc(32em / 14);
  text-align: center;
  font-size: 1.4em;
  font-weight: 500;
  line-height: calc(20 / 14);
  letter-spacing: 0.1em;
}

.mv__sns-list {
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: 1.5em;
  margin-top: 3.2em;
}

.mv__sns-link {
  display: block;
}

.mv__sns-icon {
  width: 3em;
  height: auto;
}

.mv__img-wrapper {
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 720px;
}

@media screen and (max-width: 767px) {
  .mv__img-wrapper {
    height: calc(100svh - 170px);
    /* min-height: 440px;
    max-height: 580px; */
    flex-grow: 1;
    min-height: initial;
  }
}

.mv__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* .mv__body {
  position: absolute;
  right: 0;
  bottom: 0;
  width: calc(880 / 1100 * 100%);
  padding: 3em calc(65 / 1100 * 100%) 16.35em calc(35 / 1100 * 100%);
  background-color: rgba(255 255 255 / 0.7);
  z-index: 31;
}

@media screen and (max-width: 767px) {
  .mv__body {
    width: 35.1rem;
    padding: 2.2rem 0.3rem 2.25rem 2.4rem;
  }
}

.mv__catchcopy {
  font-size: 3.2em;
  font-weight: 500;
  line-height: 1.4375;
  letter-spacing: 0.15em;
  color: #32412A;
}

@media screen and (max-width: 767px) {
  .mv__catchcopy {
    margin-right: -0.15em;
    font-size: 2.2rem;
    line-height: calc(31 / 22);
  }
} */

.mv__body {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 31;
  padding-bottom: 6em;
}
@media screen and (max-width: 767px) {
  .mv__body {
    padding-top: 56px;
    padding-bottom: 0;
  }
}

.mv__catchcopy {
  font-size: 3.8rem;
  font-weight: 500;
  line-height: 1.4375;
  letter-spacing: 0.15em;
  color: #fff;
  writing-mode: vertical-rl;
}
@media screen and (max-width: 767px) {
  .mv__catchcopy {
    font-size: 2.2rem;
    line-height: calc(31 / 22);
  }
}

.mv__text {
  margin-top: calc(13.5em / 15);
  margin-right: -0.15em;
  font-size: 1.5em;
  line-height: calc(36 / 15);
  letter-spacing: 0.15em;
}

@media screen and (max-width: 767px) {
  .mv__text {
    max-width: 30.3rem;
    font-size: 1.4rem;
    line-height: calc(18 / 14);
  }
}

.mv__bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  display: flex;
  width: calc(1200 / 1440 * 100%);
  height: 12em;
  z-index: 31;
}

@media screen and (max-width: 767px) {
  .mv__bottom {
    position: static;
    width: 100%;
    height: unset;
    flex-wrap: wrap;
    flex-shrink: 0;
  }
}

.mv__bottom .mv__contact-link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(340 / 1200 * 100%);
  height: 100%;
  padding-left: 0.1em;
  background-color: #31392D;
  font-size: 2em;
  letter-spacing: 0.1em;
  color: #fff;
  transition: filter 0.2s;
}

.mv__bottom .mv__contact-link:hover {
  opacity: 1;
  filter: brightness(1.3);
}

@media screen and (max-width: 767px) {
  .mv__bottom .mv__contact-link {
    display: none;
  }
}

.mv__banner {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(172 / 1200 * 100%);
  height: 100%;
  padding: 0.2em 0 0 1em;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .mv__banner {
    width: calc(100% / 3);
    height: 7rem;
    padding: 0.4em 0 0 0.4em;
    text-align: center;
  }
}

.mv__banner.--01 {
  background-color: #546E48;
}

.mv__banner.--02 {
  background-color: #48583F;
}

.mv__banner.--03 {
  background-color: #3B4D31;
}

.mv__banner::before {
  content: "";
  position: absolute;
  top: 1em;
  left: 1em;
  width: 3.2em;
  height: 3.2em;
  border-top: 1px solid rgba(255 255 255 / 0.3);
  border-left: 1px solid rgba(255 255 255 / 0.3);
}

@media screen and (max-width: 767px) {
  .mv__banner::before {
    top: 0.6em;
    left: 0.6em;
  }
}

.mv__banner::after {
  content: "";
  position: absolute;
  right: 1em;
  bottom: 1em;
  width: 3.2em;
  height: 3.2em;
  border-right: 1px solid rgba(255 255 255 / 0.3);
  border-bottom: 1px solid rgba(255 255 255 / 0.3);
}

@media screen and (max-width: 767px) {
  .mv__banner::after {
    right: 0.6em;
    bottom: 0.6em;
  }
}

.mv__benner-text-sm {
  font-size: 1.2em;
  font-weight: 700;
  line-height: calc(22 / 12);
  letter-spacing: 0.15em;
}

.mv__benner-text-lg {
  font-size: 2em;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.15em;
  white-space: nowrap;
}

@media screen and (max-width: 767px) {
  .mv__benner-text-lg {
    font-size: 1.4em;
  }
}

.mv__bottom .mv__event-link {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: calc(343 / 1200 * 100%);
  height: 100%;
  padding: 0 calc(24 / 1200 * 100%) 0.2em calc(27 / 1200 * 100%);
  background-color: #fff;
  color: #32392D;
}

@media screen and (max-width: 767px) {
  .mv__bottom .mv__event-link {
    width: 100%;
    padding: 1.5rem 2rem 1.4rem;
    height: auto;
    min-height: 80px;
  }
}

.mv__event-heading {
  font-size: 1.7em;
  font-weight: 500;
  line-height: calc(26 / 17);
}

.mv__event-text {
  margin-right: -0.1em;
  font-size: 1.2em;
  line-height: calc(22 / 12);
  letter-spacing: 0.1em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

@media screen and (max-width: 767px) {
  .mv__event-text {
    margin-top: 0.1rem;
  }
}

.parallax-wrap {
  background-color: #fff;
  position: relative;
  z-index: 2;
}

/* ============================
	CONCEPT
============================ */
.concept {
  position: relative;
  z-index: 0;
  padding-top: 11.3em;
}

@media screen and (max-width: 767px) {
  .concept {
    padding-top: 0;
  }
}

.concept::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 120em;
  height: 54.3em;
  background-color: #728469;
}

@media screen and (max-width: 767px) {
  .concept::before {
    top: 27rem;
    width: 33.5rem;
    height: 36rem;
  }
}

.concept::after {
  content: "";
  position: absolute;
  top: 11.3em;
  left: 0;
  z-index: -1;
  width: 6.4em;
  height: 45.8em;
  background-color: #fff;
}

@media screen and (max-width: 767px) {
  .concept::after {
    display: none;
  }
}

.concept__img-wrapper {
  position: relative;
  width: 120em;
  margin-left: auto;
}

@media screen and (max-width: 767px) {
  .concept__img-wrapper {
    width: 100%;
  }
}

.concept__title-en {
  position: absolute;
  z-index: 1;
  top: calc(271em / 102);
  left: calc(-54em / 102);
  transform: rotate(-90deg);
  font-size: 10.2em;
  font-weight: 200;
  line-height: calc(154 / 102);
  color: #BACBB2;
}

@media screen and (max-width: 767px) {
  .concept__title-en {
    position: relative;
    top: unset;
    left: unset;
    display: block;
    margin-top: -2.9rem;
    margin-left: 2rem;
    transform: none;
    font-size: 5.6rem;
    line-height: calc(85 / 56);
  }
}

.concept__container {
  position: relative;
  z-index: 0;
  margin-top: -2.4em;
  padding: 0 24em;
}

@media screen and (max-width: 767px) {
  .concept__container {
    margin-top: 0.3rem;
    margin-left: 2rem;
    padding: 2.2rem 2rem 2.2rem 2.4rem;
    background-color: #fff;
  }
}

.concept__container::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -2.6em;
  left: 0;
  width: 56.1em;
  height: 5em;
  background-color: #fff;
}

@media screen and (max-width: 767px) {
  .concept__container::before {
    display: none;
  }
}

.concept__title {
  font-size: 3.2em;
  font-weight: 500;
  line-height: 1.4375;
  letter-spacing: 0.15em;
  color: #32412A;
}

@media screen and (max-width: 767px) {
  .concept__title {
    font-size: 2.2rem;
    line-height: calc(31 / 22);
  }
}

.concept__catch {
  margin-top: 1em;
  font-size: 2.4em;
  font-weight: 500;
  line-height: calc(35 / 24);
  letter-spacing: 0.15em;
}

@media screen and (max-width: 767px) {
  .concept__catch {
    margin-top: 1.6rem;
    font-size: 1.8rem;
    line-height: calc(28.8 / 18);
  }
}

.concept__text {
  margin-top: calc(16em / 14);
  font-size: 1.4em;
  line-height: 2;
  letter-spacing: 0.15em;
}

@media screen and (max-width: 767px) {
  .concept__text {
    margin-top: 1.3rem;
    font-size: 1.4rem;
  }
}

/* Scrolldown */
.concept__scroll {
  position: absolute;
  bottom: 0;
  right: 2.4em;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 4.2em;
  z-index: 31;
}

@media screen and (max-width: 767px) {
  .concept__scroll {
    display: none;
  }
}

.concept__scroll-text {
  writing-mode: vertical-rl;
  font-size: 1.2em;
  letter-spacing: 0.1em;
  /* color: #32412A; */
  color: #fff;
}

.concept__scroll-arrow {
  width: 100%;
  height: 9em;
  margin-top: 1.4em;
}

.concept__scroll-arrow::before {
  content: "";
  display: block;
  height: 4.2em;
  opacity: 0;
  background: url("../img/top/arrow-scroll.svg") no-repeat center bottom / 100% auto;
  animation: scrollDown 1.5s ease-in-out infinite;
}

@keyframes scrollDown {
  0% {
    height: 4.2em;
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  100% {
    height: 9em;
    opacity: 0;
  }
}

/* ============================
	FEATURE
============================ */
.feature {
  position: relative;
  z-index: 0;
  margin: 8.8em 0 22.7em;
}

@media screen and (max-width: 767px) {
  .feature {
    margin: 6rem 0 8rem;
  }
}

.feature::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 5.2em;
  left: 0;
  width: 100%;
  height: 32.9em;
  background-color: #F4F4F4;
}

@media screen and (max-width: 767px) {
  .feature::before {
    top: 4.3rem;
    height: 42.9rem;
  }
}

@media screen and (min-width: 768px) {
  .feature::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: 6.4em;
    bottom: -22.7em;
    width: 30.9em;
    height: 100%;
    background-color: #F4F4F4;
  }
}

.feature__container {
  max-width: 115.6em;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .feature__container {
    padding: 0 2rem;
  }
}

.feature__title-en {
  font-size: 9.2em;
  font-weight: 200;
  line-height: calc(139 / 92);
  color: #BACBB2;
}

@media screen and (max-width: 767px) {
  .feature__title-en {
    font-size: 5.6rem;
    line-height: calc(85 / 56);
  }
}

.feature__title {
  font-size: 2.4em;
  font-weight: 500;
  line-height: calc(35 / 24);
  letter-spacing: 0.15em;
  color: #32412A;
}

@media screen and (max-width: 767px) {
  .feature__title {
    font-size: 2.1rem;
    line-height: calc(31 / 22);
  }
}

.feature__description {
  margin-top: calc(16em / 14);
  font-size: 1.4em;
  line-height: 2;
  letter-spacing: 0.15em;
  color: #030303;
}

@media screen and (max-width: 767px) {
  .feature__description {
    margin-top: 1.3rem;
    font-size: 1.4rem;
  }
}

.feature__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5em;
  margin-top: 3.6em;
}

@media screen and (max-width: 767px) {
  .feature__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.2rem;
    margin-top: 2.1rem;
  }
}

.feature__item-link {
  position: relative;
  z-index: 0;
  display: flex;
  height: 35em;
  overflow: hidden;
}

@media screen and (max-width: 767px) {
  .feature__item-link {
    height: 20.4rem;
  }
}

.feature__item-link::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background-color: rgba(0 0 0 / 0.33);
  transition: background-color 0.4s ease;
}

.feature__item-img {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feature__item-title {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 10.5em;
  height: 5.5em;
  margin: auto;
  padding-left: 0.15em;
  text-align: center;
  font-size: 2em;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.15em;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .feature__item-title {
    width: 13.6rem;
    height: 8rem;
    font-size: 1.4rem;
    line-height: 1.5;
  }
}

.feature__item:nth-child(odd) .feature__item-title {
  background-color: #48593F;
}

.feature__item:nth-child(even) .feature__item-title {
  background-color: #728469;
}

.feature__item-arrow {
  position: absolute;
  right: 1em;
  bottom: 1em;
  width: 4.2em;
  height: 4.2em;
  background: url("../img/top/arrow-feature.svg") no-repeat center / contain;
  transition: transform 0.4s ease;
}

@media screen and (max-width: 767px) {
  .feature__item-arrow {
    right: 0.6rem;
    bottom: 0.6rem;
    width: 2.4rem;
    height: 2.4rem;
    background-image: url("../img/top/arrow-feature@sp.svg");
  }
}

@media (any-hover: hover) {
  .feature__item-link:hover {
    opacity: 1;
  }

  .feature__item-link:hover::after {
    background-color: rgba(0 0 0 / 0.13);
  }

  .feature__item-link:hover .feature__item-arrow {
    transform: scale(1.1);
  }
}

.feature__link-wrapper {
  position: absolute;
  top: 20em;
  right: 14.2em;
}

@media screen and (max-width: 767px) {
  .feature__link-wrapper {
    position: static;
    margin-top: 2.4rem;
    text-align: right;
  }
}

#feature__reform__content {
	margin-top: 7rem;
}
#feature__reform__content .feature__item {
	margin-top: 3.6em;
}
#feature__reform__content .feature__item-link {
	height: 16.5em;
}
#feature__reform__content .feature__item-title {
	width: 16.5em;
	height: 4.9em
}
@media screen and (max-width: 767px) {
	#feature__reform__content {
		margin-top: 5rem;
	}
}

/* ============================
	WORKS
============================ */
.works {
  position: relative;
  background-color: #728469;
  padding: 1em 0 12.2em;
}

@media screen and (max-width: 767px) {
  .works {
    padding: 9.7rem 0 7rem;
  }
}

.works__title {
  position: absolute;
  top: -7.7em;
  right: 33.4em;
}

@media screen and (max-width: 767px) {
  .works__title {
    top: -4.3rem;
    right: unset;
    left: 2rem;
  }
}

.works__title-sub {
  font-size: 9.2em;
  font-weight: 200;
  line-height: calc(139 / 92);
  color: #BACBB2;
}

@media screen and (max-width: 767px) {
  .works__title-sub {
    font-size: 5.6rem;
    line-height: calc(85 / 56);
  }
}

.works__title-main {
  margin-top: calc(-20em / 24);
  padding-left: calc(8em / 24);
  font-size: 2.4em;
  font-weight: 500;
  line-height: calc(35 / 24);
  letter-spacing: 0.15em;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .works__title-main {
    margin-top: 0;
    font-size: 2.2rem;
    line-height: calc(31 / 22);
  }
}

.works__slider {
  height: 62.75em;
  margin-top: -8.7em;
}

@media screen and (max-width: 767px) {
  .works__slider {
    height: unset;
    margin-top: 0;
    padding-bottom: 2.8rem;
  }
}

@media screen and (min-width: 768px) {
  .works__slide {
    display: flex;
    align-items: flex-end;
    width: 40em;
    margin-right: 6.4em;
    padding-bottom: 2.1em;
    transition: width 1s ease-in-out, padding-bottom 1s ease-in-out;
  }

  .works__slide.swiper-slide-active {
    width: 72em !important;
    padding-bottom: 0;
  }
}

.works__slide-inner {
  display: block;
  width: 100%;
  opacity: 1 !important;
}

@media (any-hover: hover) {
  .works__slide-inner:hover .works__img {
    transform: scale(1.1);
  }

  .works__slide-inner:hover .works__item-body {
    opacity: 0.75;
  }
}

.works__img-wrapper {
  position: relative;
  z-index: 0;
  overflow: hidden;
  margin-bottom: -1.2rem;
  transition: margin-bottom 1s ease-in-out;
}

@media screen and (min-width: 768px) {
  .works__slide.swiper-slide-active .works__img-wrapper {
    margin-bottom: -2.2rem;
  }
}

@media screen and (max-width: 767px) {
  .works__img-wrapper {
    margin-bottom: -1.5em;
  }
}

.works__img-wrapper::before {
  content: "";
  display: block;
  padding-top: 75%;
}

.works__img {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease-in-out;
}

.works__item-body {
  transition: opacity 0.4s;
}

.works__category {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: calc(84em / 11);
  max-width: 95%;
  height: 3.2rem;
  padding: 0 calc(14em / 11);
  background-color: #fff;
  text-align: center;
  font-size: 1.1em;
  color: #000;
  transition: all 1s ease-in-out;
}

@media screen and (min-width: 768px) {
  .works__slide.swiper-slide-active .works__category {
    min-width: calc(112em / 13);
    padding: 0 calc(14em / 13);
    font-size: 1.3em;
  }
}

@media screen and (max-width: 767px) {
  .works__category {
    min-width: 11.2rem;
    height: 3.2rem;
    padding: 0 1.4rem;
    font-size: 1.3rem;
  }
}

.works__category-text {
  width: 100%;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.works__item-title {
  margin: calc(0.5em / 16) 0 0;
  height: calc(64em / 16);
  font-size: 1.6em;
  line-height: 2;
  color: #fff;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  transition: margin 1s ease-in-out;
}

@media screen and (min-width: 768px) {
  .works__slide.swiper-slide-active .works__item-title {
    margin: calc(11.5em / 16) 0 0 calc(30em / 16);
  }
}

@media screen and (max-width: 767px) {
  .works__item-title {
    height: unset;
    margin: 1.6rem 2rem 0;
    font-size: 1.4rem;
    line-height: calc(24 / 14);
  }
}

.works__buttons {
  position: absolute;
  bottom: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: 2.2rem;
  width: 100%;
}

.works__buttons .swiper-button-prev,
.works__buttons .swiper-button-next {
  position: static;
  margin-top: 0;
  width: 2.5rem;
  height: 0.91rem;
  background: url("../img/top/arrow-swiper.svg");
}

.works__buttons .swiper-button-prev {
  transform: rotate(180deg);
}

.works__buttons .swiper-pagination {
  position: static;
  width: auto;
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-top: 0;
}

.works__buttons .swiper-pagination-bullet {
  width: 1rem;
  height: 1rem;
  margin: 0 !important;
  background-color: #fff;
  opacity: 1;
  transition: background-color 0.5s;
}

.works__buttons .swiper-pagination-bullet-active {
  background-color: #BACBB2;
}

.swiper-navigation-icon {
  display: none;
}

.works__link-wrapper {
  margin-top: 2.15em;
  padding-right: 14.2em;
  text-align: right;
}

@media screen and (max-width: 767px) {
  .works__link-wrapper {
    margin-top: 2.4em;
    padding-right: 2rem;
  }
}

/* ============================
	EVENT
============================ */
.event {
  position: relative;
  z-index: 0;
  padding: 1em 0 15.8em;
  background-image: linear-gradient(180deg, #F4F4F4, #F4F4F4 32.7em, #fff 32.7em, #fff);
}

@media screen and (max-width: 767px) {
  .event {
    padding: 1rem 0 7rem;
    background-image: linear-gradient(180deg, #F4F4F4, #F4F4F4 117em, #fff 117em, #fff);
  }
}

@media screen and (min-width: 768px) {
  .event::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 6.4em;
    bottom: 0;
    width: 30.9em;
    background-color: #F4F4F4;
  }
}

.event__container {
  padding: 0 14.2em;
}

@media screen and (max-width: 767px) {
  .event__container {
    padding: 0 2rem;
  }
}

.event__title {
  margin-top: -7.5em;
}

@media screen and (max-width: 767px) {
  .event__title {
    margin-top: -5.3rem;
  }
}

.event__title-sub {
  font-size: 9.2em;
  font-weight: 200;
  line-height: calc(139 / 92);
  color: #BACBB2;
}

@media screen and (max-width: 767px) {
  .event__title-sub {
    font-size: 5.6rem;
    line-height: calc(85 / 56);
  }
}

.event__title-main {
  font-size: 2.4em;
  font-weight: 500;
  line-height: calc(35 / 24);
  letter-spacing: 0.15em;
  color: #030303;
}

@media screen and (max-width: 767px) {
  .event__title-main {
    font-size: 2.2rem;
    line-height: calc(31 / 22);
  }
}

.event__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.2rem;
  margin-top: 4em;
}

@media screen and (max-width: 767px) {
  .event__list {
    grid-template-columns: 100%;
    gap: 2.4rem;
    margin-top: 2.4em;
  }
}

.event__item-link {
  display: block;
  opacity: 1 !important;
}

@media (any-hover: hover) {
  .event__item-link:hover .event__img {
    transform: scale(1.1);
  }

  .event__item-link:hover .event__item-body {
    opacity: 0.75;
  }
}

.event__img-wrapper {
  position: relative;
  overflow: hidden;
}

.event__img-wrapper::before {
  content: "";
  display: block;
  padding-top: calc(260 / 364 * 100%);
}

@media screen and (max-width: 767px) {
  .event__img-wrapper::before {
    padding-top: calc(251 / 335 * 100%);
  }
}

.event__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}

.event__item-body {
  transition: opacity 0.4s;
  position: relative;
  padding: 3em 1.5em 2.6em 2.4em;
  background-color: #D9E2D5;
}

@media screen and (max-width: 767px) {
  .event__item-body {
    padding: 3rem 2.1rem 2.6rem 2.4rem;
  }
}

.event__category {
  position: absolute;
  top: calc(-20em / 13);
  left: 0;
  min-width: calc(65em / 13);
  max-width: 95%;
  padding: calc(10em / 13) calc(11em / 13) calc(9em / 13);
  background-color: #fff;
  text-align: center;
  font-size: 1.3em;
  line-height: 1;
}

@media screen and (max-width: 767px) {
  .event__category {
    top: -1.6rem;
    min-width: 6.7rem;
    padding: 1.1rem 1.5rem 1rem;
    font-size: 1.1rem;
  }
}

.event__category-text {
  width: 100%;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.event__item-inner {
  padding-left: 1.2em;
  border-left: 1px solid #32412A;
}

.event__date {
  font-size: 1.2em;
  line-height: 1.375;
  color: #32412A;
}

.event__place {
  margin-top: calc(8em / 13);
  font-size: 1.3em;
  line-height: 1;
  color: #32412A;
}

.event__item-title {
  margin-top: 1em;
  font-size: 1.6em;
  line-height: 1.5;
  color: #000;
}

@media screen and (max-width: 767px) {
  .event__item-title {
    margin-top: 1.4rem;
    margin-bottom: -0.2rem;
    font-size: 1.4rem;
    line-height: calc(24 / 14);
  }
}

.event__link-wrapper {
  position: absolute;
  top: 8.9em;
  right: 14.2em;
  text-align: right;
}

@media screen and (max-width: 767px) {
  .event__link-wrapper {
    display: none;
  }
}

/* ============================
	NEWS
============================ */
.section-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

@media screen and (max-width: 767px) {
  .section-container {
    grid-template-columns: 100%;
  }
}

.top-news {
  position: relative;
  padding: 13.6em 9.5em 8.86em 12.5em;
  background-color: #E5E5E5;
}

@media screen and (max-width: 767px) {
  .top-news {
    padding: 9.7rem 1.8rem 7rem 2rem;
  }
}

.top-news__title {
  position: absolute;
  top: -5.8em;
  left: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  transform: translateX(-50%);
}

@media screen and (max-width: 767px) {
  .top-news__title {
    top: -4.3rem;
    left: 2rem;
    align-items: flex-start;
    transform: none;
  }
}

.top-news__title-sub {
  font-size: 9.2em;
  font-weight: 200;
  line-height: calc(139 / 92);
  color: #BACBB2;
}

@media screen and (max-width: 767px) {
  .top-news__title-sub {
    font-size: 5.6rem;
    line-height: calc(85 / 56);
  }
}

.top-news__title-main {
  margin-top: calc(-20em / 24);
  font-size: 2.4em;
  font-weight: 500;
  line-height: calc(35 / 24);
  letter-spacing: 0.15em;
  color: #000;
}

@media screen and (max-width: 767px) {
  .top-news__title-main {
    margin-top: 0;
    font-size: 2.2rem;
    line-height: calc(31 / 22);
  }
}

.top-news__list {
  display: grid;
  grid-template-columns: 100%;
  row-gap: 3.2em;
}

.top-news__item {
  position: relative;
}

.top-news__item::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 4em;
  height: 1px;
  background-color: #C4C4C4;
}

.top-news__item-link {
  display: block;
  padding-bottom: 3.2em;
}

@media screen and (max-width: 767px) {
  .top-news__item-link {
    padding-bottom: 3.35rem;
  }
}

.top-news__item-meta {
  display: flex;
  align-items: center;
  column-gap: 2em;
}

.top-news__category {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: calc(78em / 13);
  height: calc(32em / 13);
  padding: 0 1em;
  background-color: #728469;
  text-align: center;
  font-size: 1.3em;
  color: #fff;
}

.top-news__date {
  font-size: 1.2em;
  color: #32412A;
}

.top-news__item-title {
  margin-top: calc(11.5em / 16);
  font-size: 1.6em;
  line-height: 1.5;
  color: #000;
}

@media screen and (max-width: 767px) {
  .top-news__item-title {
    margin-top: 1rem;
    font-size: 1.4rem;
    line-height: calc(24 / 14);
  }
}

.top-news__link-wrapper {
  margin-top: 3.2em;
}

/* ============================
	BLOG
============================ */
.blog {
  position: relative;
  padding: 14.3em 11em 10.26em;
  background-color: #F5F5F5;
}

@media screen and (max-width: 767px) {
  .blog {
    padding: 9.7rem 2rem 7rem;
  }
}

.blog__title {
  position: absolute;
  top: -5.8em;
  left: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  transform: translateX(-50%);
}

@media screen and (max-width: 767px) {
  .blog__title {
    top: -4.3rem;
    left: 2rem;
    align-items: flex-start;
    transform: none;
  }
}

.blog__title-sub {
  font-size: 9.2em;
  font-weight: 200;
  line-height: calc(139 / 92);
  color: #BACBB2;
}

@media screen and (max-width: 767px) {
  .blog__title-sub {
    font-size: 5.6rem;
    line-height: calc(85 / 56);
  }
}

.blog__title-main {
  margin-top: calc(-20em / 24);
  font-size: 2.4em;
  font-weight: 500;
  line-height: calc(35 / 24);
  letter-spacing: 0.15em;
  color: #000;
}

@media screen and (max-width: 767px) {
  .blog__title-main {
    margin-top: 0;
    font-size: 2.2rem;
    line-height: calc(31 / 22);
  }
}

.blog__list {
  display: grid;
  grid-template-columns: 100%;
  row-gap: 3.2em;
}

.blog__item {
  position: relative;
}

.blog__item::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 4em;
  height: 1px;
  background-color: #C4C4C4;
}

.blog__item-link {
  display: grid;
  grid-template-columns: 13em 1fr;
  align-items: flex-start;
  column-gap: 1.9em;
  padding-bottom: 1.9em;
  opacity: 1 !important;
}

@media screen and (max-width: 767px) {
  .blog__item-link {
    column-gap: 1.6rem;
  }
}

@media (any-hover: hover) {
  .blog__item-link:hover .blog__img {
    transform: scale(1.1);
  }

  .blog__item-link:hover .blog__item-body {
    opacity: 0.75;
  }
}

.blog__img-wrapper {
  position: relative;
  overflow: hidden;
}

.blog__img-wrapper::before {
  content: "";
  display: block;
  padding-top: calc(97 / 130 * 100%);
}

.blog__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}

.blog__item-body {
  transition: opacity 0.4s;
}

.blog__date {
  font-size: 1.2em;
  line-height: 1.5;
  color: #32412A;
}

.blog__item-title {
  margin-top: calc(7.5em / 16);
  font-size: 1.6em;
  line-height: 1.5;
  color: #000;
}

@media screen and (max-width: 767px) {
  .blog__item-title {
    margin-top: 0.55rem;
    font-size: 1.2rem;
    line-height: 1.5;
  }
}

.blog__link-wrapper {
  margin-top: 3.2em;
}

/* ============================
	COMPANY
============================ */
.company {
  position: relative;
  margin: 22.5em 0 -13.3em;
  padding: 1em 0 29.2em 78.7em;
  background-color: #728469;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .company {
    margin: 0 0 -10.7em;
    padding: 1rem 2rem 15.3rem;
  }
}

.company__title {
  margin-top: -8.2em;
}

@media screen and (max-width: 767px) {
  .company__title {
    margin-top: -5.3rem;
  }
}

.company__title-sub {
  font-size: 9.2em;
  font-weight: 200;
  line-height: calc(139 / 92);
  color: #BACBB2;
}

@media screen and (max-width: 767px) {
  .company__title-sub {
    font-size: 5.6rem;
    line-height: calc(85 / 56);
  }
}

.company__title-main {
  font-size: 2.4em;
  font-weight: 500;
  line-height: calc(35 / 24);
  letter-spacing: 0.15em;
}

@media screen and (max-width: 767px) {
  .company__title-main {
    font-size: 2.2rem;
    line-height: calc(31 / 22);
  }
}

.company__text {
  margin-top: calc(19em / 18);
  font-size: 1.8em;
  line-height: 2;
  letter-spacing: 0.15em;
}

@media screen and (max-width: 767px) {
  .company__text {
    margin-top: 1.25rem;
    font-size: 1.4rem;
  }
}

.company__img-container {
  position: absolute;
  top: -10.5em;
  left: 0;
  display: flex;
  column-gap: 1.1em;
}

@media screen and (max-width: 767px) {
  .company__img-container {
    position: static;
    column-gap: 0.5rem;
    margin-top: 3.05rem;
    margin-left: -2rem;
  }
}

.company__img {
  width: 34.8em;
  height: auto;
}

@media screen and (max-width: 767px) {
  .company__img {
    display: block;
    width: 17.5rem;
  }
}

.company__link-wrapper {
  margin-top: 2.4em;
}

@media screen and (max-width: 767px) {
  .company__link-wrapper {
    margin-top: 3.4rem;
    text-align: right;
  }
}

#slide-wrapper {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
#slide-wrapper::before {
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(10,10,10,0.15);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 31;
}

#slide-wrapper .slide-item {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    visibility: hidden;
    overflow: hidden;
}

/* 画像の設定 */
#slide-wrapper .slide-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.1); /* 初期状態：1.2倍 */
    transition: transform 7s ease-out;
}

/* 初回ロード用 */
#slide-wrapper .slide-item.start {
    z-index: 20;
    visibility: visible;
    clip-path: inset(0 0 0 0);
}

/* アクティブ（表示中） */
#slide-wrapper .slide-item.active {
    z-index: 20;
    visibility: visible;
    clip-path: inset(0 0 0 0);
}
/* アクティブ時は画像を等倍へ */
#slide-wrapper .slide-item.active img {
    transform: scale(1.0);
}

/* 次のスライド（背面待機） */
#slide-wrapper .slide-item.next {
    z-index: 10;
    visibility: visible;
    clip-path: inset(0 0 0 0);
}
#slide-wrapper .slide-item.next img {
    transform: scale(1.1); /* 待機中は拡大状態を維持 */
}

/* 退場アニメーション（右へ縮小マスク） */
#slide-wrapper .slide-item.exit {
    z-index: 30; /* アニメーション中は最前面 */
    visibility: visible;
    /* 1.2秒かけてクリッピングマスクを変化 */
    transition: clip-path 1.2s cubic-bezier(0.65, 0, 0.35, 1);
    
    /* 右へ縮小していく動き: 左端から100%までマスク = 画像が右へ消える */
    clip-path: inset(0 0 0 100%); 
    
    /* 高さは維持するため transform はなし */
    transform: none; 
}
/* 退場中も画像自体のズーム状態は維持（等倍のまま） */
#slide-wrapper .slide-item.exit img {
    transform: scale(1.0); 
}