main {
  padding-bottom: clamp(1px, 12.1527777778vw, 175px);
}

.section {
  margin: 0 auto;
  padding: clamp(1px, 12.1527777778vw, 175px) clamp(1px, 9.7222222222vw, 140px) clamp(1px, 13.8888888889vw, 200px);
}

.section-heading {
  padding-left: clamp(1px, 21.1805555556vw, 305px);
  margin: 0 auto clamp(1px, 4.1666666667vw, 60px);
}
.section-heading .section-heading__en {
  position: absolute;
  left: 0;
  top: 0;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: clamp(1px, 0.6944444444vw, 10px);
  font-size: clamp(1px, 0.9722222222vw, 14px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  letter-spacing: normal;
  text-align: left;
  color: #333;
}
.text-link::before {
  content: "";
  width: clamp(1px, 0.625vw, 9px);
  height: clamp(1px, 0.625vw, 9px);
  background: url("../img/common/icon-triangle.png") center/contain no-repeat;
}

.text-link--align-right {
  justify-self: end;
}

.hero {
  position: relative;
  width: 100vw;
  height: calc(100vh - clamp(1px, 7.2222222222vw, 104px));
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.hero__content {
  position: relative;
  z-index: 1;
  width: 100vw;
  height: 100%;
  margin: 0 auto;
  color: #fff;
}
.hero__content .hero__box {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1px, 1.3888888889vw, 20px);
  left: 50%;
  top: 50%;
  transform: translateX(-50%) translateY(-50%);
  margin-top: clamp(-30px, -2.0833333333vw, 1px);
}
.hero__content .hero__box .hero__box-copy {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(1px, 18.0555555556vw, 260px);
  height: clamp(1px, 18.0555555556vw, 260px);
}
.hero__content .hero__box .hero__text {
  font-size: clamp(1px, 1.25vw, 18px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.65;
  letter-spacing: normal;
  text-align: center;
  color: #fff;
}
.hero__content .hero__cards {
  position: absolute;
  right: clamp(1px, 2.7777777778vw, 40px);
  bottom: clamp(1px, 5.2083333333vw, 75px);
  display: flex;
  gap: clamp(1px, 1.3888888889vw, 20px);
}
.hero__content .hero__cards .hero-card {
  width: clamp(1px, 17.8472222222vw, 257px);
}
.hero__content .scroll {
  position: absolute;
  left: clamp(1px, 2.5694444444vw, 37px);
  bottom: 0;
  width: clamp(1px, 0.9722222222vw, 14px);
}
.hero__content .scroll a {
  display: block;
}

.value__grid {
  max-width: clamp(1px, 79.8611111111vw, 1150px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1px, 3.4722222222vw, 50px);
}
.value__grid .value-card {
  min-height: clamp(1px, 28.4722222222vw, 410px);
  padding: clamp(1px, 4.1666666667vw, 60px) clamp(1px, 1.0416666667vw, 15px);
  border: clamp(1px, 0.0694444444vw, 1px) solid #ece7de;
  border-radius: clamp(1px, 0.3472222222vw, 5px);
  text-align: center;
  background: #fff;
}
.value__grid .value-card h3 {
  margin: 0;
  font-size: clamp(1px, 1.5277777778vw, 22px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: center;
  color: #333;
}
.value__grid .value-card img {
  width: auto;
  height: clamp(1px, 6.9444444444vw, 100px);
  margin: clamp(1px, 3.3333333333vw, 48px) auto 0;
  object-fit: contain;
}
.value__grid .value-card p {
  margin: clamp(1px, 3.6111111111vw, 52px) 0 0;
  font-size: clamp(1px, 1.1111111111vw, 16px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.65;
  letter-spacing: normal;
  text-align: center;
  color: #666;
}

.products {
  background-color: #faf9f6;
  width: 100%;
  padding: clamp(1px, 8.3333333333vw, 120px) 0 clamp(1px, 27.0833333333vw, 390px);
}
.products .section-heading {
  max-width: none;
  padding-left: 0;
  margin: 0 0 clamp(1px, 4.5138888889vw, 65px);
}
.products .section-heading .section-heading__en {
  position: static;
}
.products .products__layout {
  width: clamp(1px, 100vw, 1440px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: clamp(1px, 46.5277777778vw, 670px) clamp(1px, 38.8888888889vw, 560px);
  gap: clamp(1px, 6.9444444444vw, 100px);
  align-items: start;
}
.products .products__visual {
  position: relative;
}
.products .products__visual img {
  width: auto;
  height: clamp(1px, 43.0555555556vw, 620px);
  object-fit: cover;
}
.products .products__visual .products__vertical-copy {
  position: absolute;
  height: auto;
  bottom: clamp(-40px, -2.7777777778vw, 1px);
  right: 0;
  transform: translateX(50%);
  padding: clamp(1px, 1.7361111111vw, 25px) clamp(1px, 1.3888888889vw, 20px);
  background: #c7bc86;
  font-family: "Shippori Mincho", serif;
  font-size: clamp(1px, 2.9166666667vw, 42px);
  font-weight: 400;
  font-stretch: normal;
  font-style: normal;
  line-height: 0.81;
  letter-spacing: 3.36px;
  text-align: left;
  color: #fff;
  writing-mode: vertical-rl;
}
.products .products__content {
  padding-top: clamp(1px, 0.5555555556vw, 8px);
}
.products .products__category-block {
  margin-top: clamp(1px, 5vw, 72px);
  padding-left: clamp(1px, 1.25vw, 18px);
  border-left: clamp(1px, 0.2083333333vw, 3px) solid #ddaf00;
}
.products .products__category-block h3 {
  padding: clamp(1px, 0.6944444444vw, 10px) 0;
  font-size: clamp(1px, 1.6666666667vw, 24px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  letter-spacing: normal;
  text-align: left;
  color: #333;
}
.products .products__category-block p {
  margin-top: clamp(1px, 0.6944444444vw, 10px);
  font-size: clamp(1px, 1.1111111111vw, 16px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: left;
  color: #666;
}
.products .text-link {
  width: 100%;
  justify-content: flex-end;
  text-align: right;
  margin-top: clamp(1px, 1.9444444444vw, 28px);
}

.category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-top: clamp(1px, 2.9166666667vw, 42px);
  list-style: none;
  border-top: clamp(1px, 0.0694444444vw, 1px) solid #ccc;
  border-bottom: clamp(1px, 0.0694444444vw, 1px) solid #ccc;
  padding: clamp(1px, 1.3888888889vw, 20px) 0;
}
.category-list li {
  padding: clamp(1px, 0.6944444444vw, 10px) 0;
  font-size: clamp(1px, 1.25vw, 18px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  letter-spacing: normal;
  text-align: left;
  color: #333;
  width: clamp(1px, 12.5vw, 180px);
}
.category-list li:nth-of-type(2) {
  width: clamp(1px, 25vw, 360px);
}
.category-list li a {
  display: flex;
  align-items: center;
}
.category-list li a span {
  display: block;
  background: url(../img/common/icon-tag.png) left center/clamp(1px, 1.0416666667vw, 15px) auto no-repeat;
  padding-left: clamp(1px, 1.5277777778vw, 22px);
}

.original {
  padding: 0;
  margin-top: clamp(-220px, -15.2777777778vw, 1px);
  display: block;
}
.original .original__lead {
  position: relative;
}
.original .swiper-button {
  position: absolute;
  display: flex;
  justify-content: space-between;
  bottom: clamp(1px, 0.6944444444vw, 10px);
  right: clamp(1px, 0.6944444444vw, 10px);
}
.original .swiper-button .swiper-button-prev,
.original .swiper-button .swiper-button-next {
  position: static;
  padding: clamp(1px, 1.0416666667vw, 15px) clamp(1px, 0.3472222222vw, 5px);
  width: auto;
  height: auto;
  margin: 0;
}
.original .swiper-button .swiper-button-prev::after,
.original .swiper-button .swiper-button-next::after {
  display: block;
  content: "";
  width: clamp(1px, 1.7361111111vw, 25px);
  height: clamp(1px, 0.2777777778vw, 4px);
}
.original .swiper-button .swiper-button-prev::after {
  background: url("../img/common/slider-left.png") center/contain no-repeat;
}
.original .swiper-button .swiper-button-next::after {
  background: url("../img/common/slider-right.png") center/contain no-repeat;
}
.original .inner {
  width: clamp(1px, 100vw, 1440px);
  margin: 0 auto;
}
.original .original__lead-box {
  position: relative;
  align-self: start;
  padding: clamp(1px, 3.75vw, 54px) clamp(1px, 5.2083333333vw, 75px) 0;
  background: #ddaf00;
  color: #fff;
  width: clamp(1px, 33.3333333333vw, 480px);
  height: clamp(1px, 24.3055555556vw, 350px);
  z-index: 10;
}
.original .original__lead-box h2 {
  font-size: clamp(1px, 2.0833333333vw, 30px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.53;
  letter-spacing: normal;
  text-align: left;
  color: #fff;
}
.original .original__lead-box p:before {
  content: "";
  display: block;
  width: clamp(1px, 2.7777777778vw, 40px);
  height: clamp(1px, 0.0694444444vw, 1px);
  background-color: #fff;
  margin-top: clamp(1px, 2.0833333333vw, 30px);
  margin-bottom: clamp(1px, 2.0833333333vw, 30px);
}
.original .original__lead-box p {
  margin: 0;
  font-size: clamp(1px, 1.25vw, 18px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.65;
  letter-spacing: normal;
  text-align: left;
  color: #fff;
}
.original .original__gallery {
  margin-top: clamp(-30px, -2.0833333333vw, 1px);
  display: flex;
  gap: 20px;
}
.original .original__gallery .swiper-slide {
  width: clamp(1px, 20.8333333333vw, 300px);
}
.original .original__gallery .original__gallery-item {
  width: clamp(1px, 20.8333333333vw, 300px);
  height: clamp(1px, 30.5555555556vw, 440px);
  overflow: hidden;
  background: #f5f1e9;
}
.original .original__gallery .original__gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.original .text-link {
  margin-top: clamp(1px, 3.125vw, 45px);
  justify-content: flex-end;
  width: 100%;
  padding-right: clamp(1px, 2.7777777778vw, 40px);
}

.banner {
  margin: clamp(1px, 8.6805555556vw, 125px) 0 0;
  background-color: #c7bc86;
}
.banner .banner__inner {
  position: relative;
}
.banner .banner__inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.88;
}

.explore {
  padding: clamp(1px, 6.9444444444vw, 100px) clamp(1px, 9.7222222222vw, 140px) clamp(1px, 11.1111111111vw, 160px);
  background-color: #faf9f6;
}
.explore .explore__grid {
  width: clamp(1px, 79.8611111111vw, 1150px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1px, 4.1666666667vw, 60px);
  padding-left: clamp(1px, 1.3888888889vw, 20px);
}
.explore .explore-card {
  position: relative;
}
.explore .explore-card img {
  width: 100%;
  height: clamp(1px, 18.0555555556vw, 260px);
  object-fit: cover;
}
.explore .explore-card h3 {
  margin-top: clamp(1px, 2.0833333333vw, 30px);
  font-size: clamp(1px, 1.9444444444vw, 28px);
  display: flex;
  justify-content: flex-start;
  gap: clamp(1px, 1.3888888889vw, 20px);
  align-items: center;
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: normal;
  letter-spacing: normal;
  color: #333;
}
.explore .explore-card h3::after {
  content: "";
  display: block;
  width: clamp(1px, 1.7361111111vw, 25px);
  height: clamp(1px, 0.2777777778vw, 4px);
  background: url(../img/top/explore-arrow.png) no-repeat;
  background-size: contain;
}
.explore .explore-card p {
  margin-top: clamp(1px, 1.6666666667vw, 24px);
  font-size: clamp(1px, 1.25vw, 18px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.65;
  letter-spacing: normal;
  text-align: left;
  color: #666;
}
.explore .explore-card .explore-card__tag {
  position: absolute;
  width: clamp(1px, 21.5277777778vw, 310px);
  padding: clamp(1px, 0.8333333333vw, 12px) 0 clamp(1px, 0.8333333333vw, 12px) clamp(1px, 1.3888888889vw, 20px);
  background-color: #ddaf00;
  top: clamp(1px, 0.9722222222vw, 14px);
  left: clamp(-20px, -1.3888888889vw, 1px);
  display: inline-block;
  font-size: clamp(1px, 1.5277777778vw, 22px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: left;
  color: #fff;
}
.explore .text-link {
  margin-top: clamp(1px, 3.125vw, 45px);
  justify-content: flex-end;
  width: 100%;
}

.about {
  padding: clamp(1px, 14.4444444444vw, 208px) 0 0;
}
.about .about__layout {
  width: clamp(1px, 100vw, 1440px);
  margin: 0 auto;
  display: flex;
  gap: clamp(1px, 4.1666666667vw, 60px);
  justify-content: center;
  align-items: start;
}
.about .about__image {
  width: clamp(1px, 45.8333333333vw, 660px);
  height: auto;
  object-fit: cover;
}
.about .about__body {
  padding-right: clamp(1px, 2.7777777778vw, 40px);
}
.about .about__body p {
  margin: 0;
  font-size: clamp(1px, 1.1111111111vw, 16px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.65;
  letter-spacing: normal;
  text-align: left;
  color: #666;
  padding-right: clamp(1px, 2.7777777778vw, 40px);
}
.about .section-heading {
  display: block;
  padding-left: 0;
  margin-bottom: clamp(1px, 2.0833333333vw, 30px);
}
.about .section-heading .section-heading__en {
  position: relative;
  margin-bottom: clamp(1px, 2.7777777778vw, 40px);
}
.about .about__links {
  display: flex;
  justify-content: flex-end;
  gap: clamp(1px, 1.7361111111vw, 25px);
  margin-top: clamp(1px, 5.5555555556vw, 80px);
}

.news {
  padding: clamp(1px, 10.2777777778vw, 148px) clamp(1px, 9.7222222222vw, 140px) 0;
}
.news .section-heading {
  padding-left: clamp(1px, 21.5277777778vw, 310px);
  width: clamp(1px, 79.8611111111vw, 1150px);
  margin: 0 auto clamp(1px, 4.1666666667vw, 60px);
}
.news .news__layout {
  width: clamp(1px, 79.8611111111vw, 1150px);
  margin: 0 auto;
  display: grid;
  align-items: start;
  padding-left: clamp(1px, 21.6666666667vw, 312px);
}
.news .news__filter .news__filter-item {
  display: block;
  width: 100%;
  padding: clamp(1px, 0.8333333333vw, 12px);
  border: 0;
  margin: 0;
  font-size: clamp(1px, 1.1111111111vw, 16px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: center;
  color: #333;
  background-color: #fff;
  cursor: pointer;
  border-top: clamp(1px, 0.0694444444vw, 1px) solid #ccc;
  border-bottom: clamp(1px, 0.0694444444vw, 1px) solid #ccc;
}
.news .news__filter .news__filter-item + .news__filter-item {
  border-top-color: #fff;
}
.news .news__filter .news__filter-item.is-active {
  background: #ddaf00;
  color: #fff;
  border-color: #ddaf00;
}
.news .news__list {
  display: grid;
}
.news .news-card {
  display: grid;
  gap: clamp(1px, 2.0833333333vw, 30px);
  align-items: flex-start;
  padding: clamp(1px, 0.6944444444vw, 10px) 0 clamp(1px, 3.4722222222vw, 50px);
  border-top: clamp(1px, 0.0694444444vw, 1px) solid #ccc;
}
.news .news-card:last-of-type {
  border-bottom: clamp(1px, 0.0694444444vw, 1px) solid #ccc;
}
.news .news-card h3 {
  margin-top: clamp(1px, 0.6944444444vw, 10px);
  font-size: clamp(1px, 1.25vw, 18px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: left;
  color: #666;
}
.news .news-card__meta {
  padding-top: clamp(1px, 0.6944444444vw, 10px);
  display: flex;
  align-items: center;
  gap: clamp(1px, 1.3888888889vw, 20px);
}
.news .news-card__meta .date {
  font-size: clamp(1px, 0.9722222222vw, 14px);
  font-weight: normal;
  font-stretch: normal;
  font-style: italic;
  line-height: normal;
  letter-spacing: normal;
  text-align: left;
  color: #ddaf00;
  font-family: "Libre Baskerville", serif;
}
.news .news-card__meta .categories .category {
  font-size: clamp(1px, 0.9722222222vw, 14px);
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: normal;
  letter-spacing: normal;
  text-align: left;
  color: #333;
}
.news .text-link {
  margin-top: clamp(1px, 3.125vw, 45px);
  justify-content: flex-end;
  width: 100%;
  margin-right: clamp(-100px, -6.9444444444vw, 1px);
}
