@charset "UTF-8";
@media screen and (max-width: 767px) {
  .is-pc {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .is-sp {
    display: none;
  }
}

html {
  scroll-behavior: smooth;
  font-size: 10px;
}

body {
  font-size: 1.6rem;
  font-family: "Noto Serif JP", serif;
  line-height: 2.2666666667;
  overflow-x: hidden;
  background: #f5f1e5;
  color: #666666;
}

@media screen and (max-width: 767px) {
  body {
    line-height: 2;
    font-size: 15px;
  }
}

.inner {
  max-width: 1180px;
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
}

/*=====================================
オープニングアニメーション
=======================================*/
/*========= LoadingのためのCSS ===============*/
/* Loading背景画面設定　*/
#splash {
  /*fixedで全面に固定*/
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: 10000;
  background: #f5f1e5;
  text-align: center;
  color: #fff;
  top: 0;
}

/* Loading画像中央配置　*/
#splash_logo__wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

/* Loading アイコンの大きさ設定　*/
#splash_logo img {
  width: 180px;
}

@media screen and (max-width: 767px) {
  #splash_logo img {
    width: 130px;
  }
}

#splash_text {
  width: 100vw;
  color: #666;
  font-size: 10px;
  margin-top: 20px;
}

/* fadeUpをするアイコンの動き */
.fadeUp {
  -webkit-animation-name: fadeUpAnime;
  animation-name: fadeUpAnime;
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-delay: 0.7s;
  animation-delay: 0.7s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  opacity: 0;
}

@-webkit-keyframes fadeUpAnime {
  from {
    opacity: 0;
    -webkit-transform: translateY(60px);
    transform: translateY(60px);
  }

  to {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    -webkit-transform: translateY(60px);
    transform: translateY(60px);
  }

  to {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

/*=================================================
fv
==================================================*/
.fv {
  width: 100%;
  position: relative;
  height: 100vh;
}

.fv-image {
  height: 100vh;
  width: 100%;
}

@-webkit-keyframes zoomOutSlightly {
  0% {
    -webkit-transform: translateX(-5%) scale(1.1);
    transform: translateX(-5%) scale(1.1);
    /* 少しズームインした状態から開始 */
  }

  100% {
    -webkit-transform: translateX(0) scale(1.1);
    transform: translateX(0) scale(1.1);
    /* 元の大きさに戻る */
  }
}

@keyframes zoomOutSlightly {
  0% {
    -webkit-transform: translateX(-5%) scale(1.1);
    transform: translateX(-5%) scale(1.1);
    /* 少しズームインした状態から開始 */
  }

  100% {
    -webkit-transform: translateX(0) scale(1.1);
    transform: translateX(0) scale(1.1);
    /* 元の大きさに戻る */
  }
}

#mainvisual .vegas-slide {
  -webkit-animation: zoomOutSlightly 20s ease-in-out forwards;
  animation: zoomOutSlightly 20s ease-in-out forwards;
}

.vegas-content-scrollable {
  overflow: hidden;
}

.fv__inner {
  position: relative;
  height: 100%;
  padding: 0 20px;
}

@media screen and (max-width: 767px) {
  .fv__inner {
    position: absolute;
    top: 0;
  }
}

.fv__title {
  z-index: 10;
  position: absolute;
  right: 0;
  font-size: 3rem;
  line-height: 1.3;
  color: #fff;
  margin-top: -140px;
  letter-spacing: 0.14em;
  -webkit-transition-delay: 1s;
  transition-delay: 1s;
  text-align: right;
}

@media screen and (max-width: 767px) {
  .fv__title {
    font-size: 1.8rem;
    left: 10%;
    bottom: 22%;
    right: auto;
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
  }
}

.fv__subtitle {
  display: block;
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin-top: 20px;
  font-weight: normal;
}

.fv__subtitle-sp {
  position: absolute;
  bottom: 5%;
  left: 4%;
  z-index: 10;
  color: #fff;
  font-size: 1.1rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: left;
  width: 90%;
  -webkit-transition-delay: 1.2s;
  transition-delay: 1.2s;
}

/* スクロールダウンの位置 */
.header__scroll {
  position: absolute;
  right: 50%;
  bottom: 15%;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 767px) {
  .header__scroll {
    right: 8%;
    bottom: 42%;
  }
}

/* 線のアニメーション部分 */
.header__scroll::before {
  -webkit-animation: scroll 2s infinite;
  animation: scroll 2s infinite;
  background-color: #ffffff;
  bottom: -115px;
  content: "";
  height: 80px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  width: 1px;
  z-index: 2;
}

@media screen and (max-width: 767px) {
  .header__scroll::before {
    height: 100px;
  }
}

/* 線の背景色 */
.header__scroll::after {
  background-color: #8f8f8f;
  bottom: -115px;
  content: "";
  height: 80px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  width: 1px;
}

@media screen and (max-width: 767px) {
  .header__scroll::after {
    height: 100px;
  }
}

/* 線のアニメーション */
@-webkit-keyframes scroll {
  0% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }

  50% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }

  51% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }

  100% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
}

@keyframes scroll {
  0% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }

  50% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 0;
    transform-origin: 0 0;
  }

  51% {
    -webkit-transform: scale(1, 1);
    transform: scale(1, 1);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }

  100% {
    -webkit-transform: scale(1, 0);
    transform: scale(1, 0);
    -webkit-transform-origin: 0 100%;
    transform-origin: 0 100%;
  }
}

/*=================================================
information
==================================================*/
.information {
  padding: 100px 0;
}

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

.information .information__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.information .information__inner a {
  z-index: 1000;
  margin-top: auto;
  margin-bottom: auto;
}

.information__title {
  font-size: 30px;
  padding-top: 14px;
  letter-spacing: 0.01em;
  font-family: "Times New Roman", Times, serif;
}

@media screen and (max-width: 767px) {
  .information__title {
    font-size: 17px;
  }
}

.information__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin-left: 50px;
  margin-top: auto;
  margin-bottom: auto;
}

.information__item-date {
  font-size: 16px;
}

@media screen and (max-width: 767px) {
  .information__item-date {
    font-size: 13px;
  }
}

.information__item-category {
  font-size: 10px;
  padding: 0px 5px;
  border-radius: 5px;
  margin: auto;
  background: #666666;
  color: #fff;
  margin-left: 10px;
  line-height: 1.8;
}

.information__item-text {
  margin-left: 10px;
}

.button {
  margin-left: auto;
  margin-top: auto;
  margin-bottom: auto;
  padding-left: 40px;
  position: relative;
}

@media screen and (max-width: 767px) {
  .button {
    font-size: 12px;
    padding-left: 30px;
  }
}

.button::before {
  position: absolute;
  content: "";
  width: 30px;
  height: 30px;
  border: 1px solid #666666;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%) scale(1);
  transform: translateY(-50%) scale(1);
  border-radius: 50%;
  -webkit-transition: all 0.3s 0.1s ease-in-out;
  transition: all 0.3s 0.1s ease-in-out;
}

@media screen and (max-width: 767px) {
  .button::before {
    width: 20px;
    height: 20px;
  }
}

.button::after {
  position: absolute;
  content: "";
  background: url(../image/top/more.png) center center/contain no-repeat;
  width: 10px;
  height: 10px;
  left: 11px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  border-radius: 50%;
  -webkit-transition: all 0.2s 0.4s ease-in-out;
  transition: all 0.2s 0.4s ease-in-out;
}

@media screen and (max-width: 767px) {
  .button::after {
    width: 8px;
    height: 8px;
    left: 6px;
    top: 50%;
  }
}

.button:hover::before {
  -webkit-transform: translateY(-50%) scale(1.2);
  transform: translateY(-50%) scale(1.2);
}

.button:hover::after {
  left: 15px;
}

.information__is-sp {
  margin-top: 17px;
}

.information__flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.information__flex .information__item-category {
  width: 57px;
  margin-left: auto;
}

.information__flex .information__item-text {
  margin-left: 10px;
  width: calc(100% - 70px);
  font-size: 12px;
}

/*=================================================
concept
==================================================*/
.concept {
  padding-top: 130px;
  padding-bottom: 170px;
  color: #fff;
  background: url(../image/top/concept-bg.jpg) center center/cover no-repeat;
  background-blend-mode: lighten;
  position: relative;
  -webkit-transition: -webkit-transform 0.8s ease-in-out;
  transition: -webkit-transform 0.8s ease-in-out;
  transition: transform 0.8s ease-in-out;
  transition: transform 0.8s ease-in-out, -webkit-transform 0.8s ease-in-out;
  /* 背景画像のズームインにトランジションを適用 */
  -webkit-transform: scale(1);
  transform: scale(1);
  /* 初期状態 */
  overflow: hidden;
  /* 背景画像が要素からはみ出さないようにする */
}

@media screen and (max-width: 767px) {
  .concept {
    background: #000;
    padding-top: 0px !important;
    padding-bottom: 50px;
  }
}

.concept::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../image/top/concept-bg.jpg) center center/cover no-repeat;
  background-blend-mode: lighten;
  -webkit-transition: -webkit-transform 0.8s ease-in-out;
  transition: -webkit-transform 0.8s ease-in-out;
  transition: transform 0.8s ease-in-out;
  transition: transform 0.8s ease-in-out, -webkit-transform 0.8s ease-in-out;
  /* 背景画像にズームインのトランジションを適用 */
  -webkit-transform: scale(1.15);
  transform: scale(1.15);
  /* 初期状態のズームアウト */
  z-index: -1;
  /* 背景が前面のテキストより後ろに配置されるように */
}

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

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

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

.concept.zoom-in::before {
  -webkit-transform: scale(1);
  transform: scale(1);
  /* ズームイン効果 */
}

.concept__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  position: relative;
  z-index: 2;
}

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

.concept__left {
  width: 41%;
  -webkit-transition-delay: 0.3s;
  transition-delay: 0.3s;
}

@media screen and (max-width: 767px) {
  .concept__left {
    width: 100%;
    margin-top: 30px;
  }
}

.h2__title-en-concept {
  border-bottom: 1px solid #fff !important;
}

@media screen and (max-width: 767px) {
  .h2__title-en-concept {
    margin-top: 30px;
  }
}

.concept__copy {
  font-size: 2.5rem;
  line-height: 1.8;
  margin-top: 70px;
  letter-spacing: 0.18em;
}

@media screen and (max-width: 767px) {
  .concept__copy {
    font-size: 1.8rem;
    margin-top: 30px;
  }
}

.concept__text {
  margin-top: 40px;
  font-size: 1.5rem;
  letter-spacing: 0.18em;
  line-height: 3.0666666667;
}

@media screen and (max-width: 767px) {
  .concept__text {
    font-size: 1.3rem;
    line-height: 2.1538461538;
  }
}

.concept__right {
  width: 50%;
  position: relative;
}

@media screen and (max-width: 767px) {
  .concept__right {
    width: 100%;
    margin-top: 50px;
  }
}

.concept__button {
  margin-top: 50px;
  width: fit-content;
}

.concept__button a {
  color: #fff !important;
  border: 1px solid #fff;
  border-radius: 50px;
  padding: 10px 50px;
}

@media screen and (max-width: 767px) {
  .concept__button {
    margin-left: auto;
    margin-right: auto;
    margin-top: 40px;
  }
}

/*=================================================
meeting
==================================================*/
.meeting {
  padding: 140px 0 20px;
}

@media screen and (max-width: 767px) {
  .meeting {
    padding: 80px 0 50px;
  }
}

.meeting__items {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.meeting__item {
  width: 23%;
}

@media screen and (max-width: 767px) {
  .meeting__item {
    width: 33.333%;
  }
}

.meeting__item2 {
  -webkit-transition-delay: 0.4s;
  transition-delay: 0.4s;
}

.meeting__item3 {
  -webkit-transition-delay: 0.7s;
  transition-delay: 0.7s;
}

.meeting__item-last {
  width: 31%;
  background: #000;
  position: relative;
  -webkit-transition-delay: 0.9s;
  transition-delay: 0.9s;
}

@media screen and (max-width: 767px) {
  .meeting__item-last {
    position: static;
    width: 100%;
  }
}

.meeting__item-last h3 {
  font-size: 25px;
  letter-spacing: 0.2em;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

@media screen and (max-width: 767px) {
  .meeting__item-last h3 {
    color: #fff;
    text-align: center;
  }
}

.meeting__item-last-contents {
  position: absolute;
  color: #fff;
  width: 100%;
  top: 50%;
  left: 60%;
  -webkit-transform: translateX(-70%) translateY(-50%) !important;
  transform: translateX(-70%) translateY(-50%) !important;
  -webkit-transition-delay: 1.3s;
  transition-delay: 1.3s;
}

@media screen and (max-width: 767px) {
  .meeting__item-last-contents {
    position: static;
    -webkit-transform: translateX(0%) translateY(0%) !important;
    transform: translateX(0%) translateY(0%) !important;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 30px;
  }
}

.meeting__item-last-contents.scrollin {
  opacity: 1 !important;
  -webkit-transform: translateX(-50%) translateY(-50%) !important;
  transform: translateX(-50%) translateY(-50%) !important;
}

.metting__p {
  font-size: 15px;
  margin-top: 20px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  letter-spacing: 0.2em;
}

@media screen and (max-width: 767px) {
  .metting__p {
    text-align: center;
    font-size: 13px;
    margin-top: 0;
  }
}

.meeting__button {
  margin-top: 30px;
  margin-left: 115px;
}

@media screen and (max-width: 767px) {
  .meeting__button {
    margin-left: auto;
    margin-right: auto;
    margin-top: 10px;
  }
}

.meeting__button::before {
  border: 1px solid #fff;
}

.meeting__button::after {
  position: absolute;
  content: "";
  background: url(../image/top/more-white.png) center center/contain no-repeat;
  width: 10px;
  height: 10px;
  left: 11px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  border-radius: 50%;
  -webkit-transition: all 0.2s 0.4s ease-in-out;
  transition: all 0.2s 0.4s ease-in-out;
}

@media screen and (max-width: 767px) {
  .meeting__button::after {
    left: 6px;
  }
}

.meeting__button:hover::before {
  -webkit-transform: translateY(-50%) scale(1.2);
  transform: translateY(-50%) scale(1.2);
}

.meeting__button:hover::after {
  left: 15px;
}

.meeting__button a {
  color: #fff !important;
}

/*=================================================
works
==================================================*/
.works {
  padding-top: 160px;
}

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

.works__copy {
  margin-top: 15px;
}

@media screen and (max-width: 767px) {
  .works__copy {
    font-size: 12px;
    margin-top: 10px;
  }
}

.works__items {
  margin-top: 50px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 20px;
}

@media screen and (max-width: 767px) {
  .works__items {
    gap: 15px;
    margin-top: 35px;
  }
}

/* .works__item {
    width: calc(33.3% - 15px);
    position: relative;
}
@media screen and (max-width: 767px) {
    .works__item {
        width: calc(50% - 8px);
    }
} */

/* 各アイテムに遅延を設定 */
.works__item:nth-child(1).fadein-bottom {
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
}

.works__item:nth-child(2).fadein-bottom {
  -webkit-transition-delay: 0.1s;
  transition-delay: 0.1s;
}

@media screen and (max-width: 767px) {
  .works__item:nth-child(2).fadein-bottom {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
  }
}

.works__item:nth-child(3).fadein-bottom {
  -webkit-transition-delay: 0.2s;
  transition-delay: 0.2s;
}

@media screen and (max-width: 767px) {
  .works__item:nth-child(3).fadein-bottom {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
  }
}

.works__item:nth-child(4).fadein-bottom {
  -webkit-transition-delay: 0.3s;
  transition-delay: 0.3s;
}

@media screen and (max-width: 767px) {
  .works__item:nth-child(4).fadein-bottom {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
  }
}

.works__item:nth-child(5).fadein-bottom {
  -webkit-transition-delay: 0.4s;
  transition-delay: 0.4s;
}

@media screen and (max-width: 767px) {
  .works__item:nth-child(5).fadein-bottom {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
  }
}

.works__item:nth-child(6).fadein-bottom {
  -webkit-transition-delay: 0.5s;
  transition-delay: 0.5s;
}

@media screen and (max-width: 767px) {
  .works__item:nth-child(6).fadein-bottom {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
  }
}

.works__item-p {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  color: #fff;
  opacity: 0;
}

/* トップページ施工事例サムネイル */
.works__items {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

@media screen and (max-width: 767px) {
  .works__items {
    gap: 10px;
  }
}

.works__item {
  width: calc(50% - 10px);
  /* 3列表示 */
  margin-top: 30px;
}

@media screen and (max-width: 767px) {
  .works__item {
    width: calc(100% - 0px);
    /* スマホは2列表示 */
    margin-top: 10px;
  }
}

/* サムネイル画像の比率固定 */
.works__item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  /* 横4：縦3に固定 */
  object-fit: cover;
  /* はみ出した部分をトリミング */
  object-position: center;
  display: block;
}

/*ホバーエフェクト*/
.works__item img,
.works__item p {
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

.works__item a:hover {
  opacity: 1;
}

.works__item a:hover img {
  -webkit-filter: brightness(50%);
  filter: brightness(50%);
}

.works__item a:hover .works__item-p {
  opacity: 1;
}

.works__button {
  margin-top: 50px;
  margin-left: auto;
  margin-right: 0;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

@media screen and (max-width: 767px) {
  .works__button {
    margin-top: 20px;
  }
}

.works__button a {
  text-align: left;
}

/*=================================================
feature
==================================================*/
.feature {
  padding-top: 160px;
}

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

.feature__copy {
  margin-top: 15px;
}

@media screen and (max-width: 767px) {
  .feature__copy {
    font-size: 12px;
    margin-top: 10px;
  }
}

.feature__items-wrapper {
  margin-top: 80px;
}

@media screen and (max-width: 767px) {
  .feature__items-wrapper {
    margin-top: 30px;
  }
}

.feature__item {
  margin-top: 100px;
}

.feature__item a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  .feature__item {
    margin-top: 50px;
  }

  .feature__item a {
    display: block;
  }
}

.feature__item:first-child {
  margin-top: 0;
}

.feature__item-img {
  width: 50%;
}

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

.feature__item-right {
  width: 45%;
}

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

.feature__item-category {
  margin-top: 30px;
  line-height: 1.2;
}

@media screen and (max-width: 767px) {
  .feature__item-category {
    margin-top: 20px;
    font-size: 12px;
  }
}

.feature__item-title {
  font-size: 2.5rem;
  line-height: 1.6;
  letter-spacing: 0.2em;
}

@media screen and (max-width: 767px) {
  .feature__item-title {
    font-size: 1.8rem;
    letter-spacing: 0.1em;
    line-height: 1.6;
  }
}

.feature__item-copy {
  margin-top: 35px;
  line-height: 2.6;
  -moz-tab-size: 1.5rem;
  -o-tab-size: 1.5rem;
  tab-size: 1.5rem;
}

@media screen and (max-width: 767px) {
  .feature__item-copy {
    margin-top: 10px;
    line-height: 1.8666666667;
    letter-spacing: 0.1em;
    font-size: 12px;
  }
}

.feature__button {
  margin-top: 30px;
  margin-left: auto;
  width: fit-content;
  transition: 0.3s ease-in-out;
}

@media screen and (max-width: 767px) {
  .feature__button {
    margin-top: 10px;
    margin-left: auto;
    width: fit-content;
  }
}

.feature__item a:hover .feature__button::before {
  transform: translateY(-50%) scale(1.2);
}

.feature__item a:hover .feature__button::after {
  left: 15px;
}

/*=================================================
column
==================================================*/
.column {
  padding-top: 200px;
}

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

.column__contents {
  margin-top: 70px;
}

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

.column__items-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

@media screen and (max-width: 767px) {
  .column__items-wrapper {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
}

.column__copy {
  margin-top: 15px;
}

@media screen and (max-width: 767px) {
  .column__copy {
    font-size: 12px;
    margin-top: 10px;
  }
}

.column__item-bottom {
  padding-left: 15px;
  padding-right: 10px;
  border-left: 1px solid #666;
}

@media screen and (max-width: 767px) {
  .column__item-bottom {
    padding-left: 10px;
  }
}

.column__item {
  opacity: 0;
  -webkit-transform: translateY(30px);
  transform: translateY(30px);
  /* 下からフェードインするための初期位置 */
  -webkit-transition: all 0.6s ease-out;
  transition: all 0.6s ease-out;
  /* スムーズなアニメーション */
  width: 25%;
}

@media screen and (max-width: 767px) {
  .column__item {
    width: 50%;
    margin-top: 30px;
  }
}

/* 各アイテムに遅延を設定 */
.column__item:nth-child(1).fadein-bottom {
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
}

.column__item:nth-child(2).fadein-bottom {
  -webkit-transition-delay: 0.2s;
  transition-delay: 0.2s;
}

@media screen and (max-width: 767px) {
  .column__item:nth-child(2).fadein-bottom {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
  }
}

.column__item:nth-child(3).fadein-bottom {
  -webkit-transition-delay: 0.4s;
  transition-delay: 0.4s;
}

@media screen and (max-width: 767px) {
  .column__item:nth-child(3).fadein-bottom {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
  }
}

.column__item:nth-child(4).fadein-bottom {
  -webkit-transition-delay: 0.6s;
  transition-delay: 0.6s;
}

@media screen and (max-width: 767px) {
  .column__item:nth-child(4).fadein-bottom {
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
  }
}

.column__item-img {
  aspect-ratio: 3/4;
  position: relative;
  overflow: hidden;
}

.column__item-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.column__item-date {
  font-size: 1.4rem;
  margin-top: 15px;
}

@media screen and (max-width: 767px) {
  .column__item-date {
    margin-top: 5px;
    font-size: 1rem;
  }
}

.column__item-text {
  font-size: 1.4rem;
  line-height: 1.5714285714;
}

@media screen and (max-width: 767px) {
  .column__item-text {
    font-size: 1.2rem;
  }
}

.column__button {
  margin-top: 50px;
  margin-left: auto;
  margin-right: 0;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.column__button a {
  text-align: left;
}

/*=================================================
area
==================================================*/
.area {
  padding-top: 160px;
}

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

.inner {
}

.h2__title-en {
}

.area__copy {
  font-size: 25px;
  margin-top: 15px;
}

@media screen and (max-width: 767px) {
  .area__copy {
    font-size: 16px;
  }
}

.area__copy .area__span {
  font-size: 15px;
}

@media screen and (max-width: 767px) {
  .area__copy .area__span {
    font-size: 12px;
    margin-top: 10px;
    display: inline-block;
  }
}

.area-image {
  max-width: 1000px;
  width: 100%;
  margin: auto;
}

@media screen and (max-width: 767px) {
  .area-image {
    margin-top: 30px;
  }
}

/*=================================================
instagram
==================================================*/
.instagram {
  padding-top: 160px;
}

@media screen and (max-width: 767px) {
  .instagram {
    padding-top: 60px;
    padding-bottom: 100px;
  }
}

.instagram__contents {
  margin-top: 50px;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

@media screen and (max-width: 767px) {
  .instagram__contents {
    margin-top: 15px;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
}

.instagram__item {
  width: calc(25% - 10px);
}

@media screen and (max-width: 767px) {
  .instagram__item {
    width: calc(50% - 10px);
    margin-top: 20px;
  }
}

.instagram__item:nth-child(1).fadein-bottom {
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
}

.instagram__item:nth-child(2).fadein-bottom {
  -webkit-transition-delay: 0.2s;
  transition-delay: 0.2s;
}

.instagram__item:nth-child(3).fadein-bottom {
  -webkit-transition-delay: 0.4s;
  transition-delay: 0.4s;
}

.instagram__item:nth-child(4).fadein-bottom {
  -webkit-transition-delay: 0.6s;
  transition-delay: 0.6s;
}

/*=================================================
news
==================================================*/
.news {
  padding-top: 160px;
  padding-bottom: 200px;
  position: relative;
  z-index: 50;
  display: none;
}

@media screen and (max-width: 767px) {
  .news {
    padding-top: 100px;
    padding-bottom: 100px;
  }
}

.news__items-wrapper {
  margin-top: 50px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  .news__items-wrapper {
    margin-top: 35px;
  }
}

.news__item {
  width: calc(33.3% - 25px);
}

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

/* 各アイテムに遅延を設定 */
.news__item:nth-child(1).fadein-bottom {
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
}

.news__item:nth-child(2).fadein-bottom {
  -webkit-transition-delay: 0.2s;
  transition-delay: 0.2s;
}

.news__item:nth-child(3).fadein-bottom {
  -webkit-transition-delay: 0.4s;
  transition-delay: 0.4s;
}

.news__item-date {
  font-size: 1.4rem;
  margin-top: 20px;
}

@media screen and (max-width: 767px) {
  .news__item-date {
    font-size: 1rem;
    margin-top: 5px;
  }
}

.news__item-title {
  font-size: 1.6rem;
  line-height: 1.5625;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

@media screen and (max-width: 767px) {
  .news__item-title {
    font-size: 1.2rem;
  }
}

.news__item-text {
  line-height: 1.5714285714;
  font-size: 1.4rem;
  margin-top: 10px;
}

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

.news__button {
  margin-top: 50px;
  margin-left: auto;
  margin-right: 0;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.news__button a {
  text-align: left;
}

.cta-img {
  margin-top: 170px;
  width: 100%;
  background: url(../image/top/cta.png) center center/cover no-repeat;
}

/* ニュースのアイキャッチ */
.news__item-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  position: relative;
}

.news__item-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* スライダー */
.news__items-wrapper .swiper {
  position: relative;
  padding-bottom: 40px;
  /* ページネーションのスペース確保 */
}

.news__items-wrapper .swiper-pagination {
  position: absolute;
  bottom: 10px;
  left: 0;
  width: 100%;
  text-align: center;
  z-index: 10;
}

/* ==== スライダー矢印（前／次） ==== */
.swiper-button-prev,
.swiper-button-next {
  width: 30px;
  height: 30px;
  background-color: rgba(102, 102, 102, 0.6);
  /* #666 半透明 */
  color: #fff;
  /* 白抜き */
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  top: 50%;
  /* 上下中央寄せ */
  transform: translateY(-50%);
}

/* 左右の位置調整（必要に応じて調整） */
.swiper-button-prev {
  left: 10px;
}

.swiper-button-next {
  right: 10px;
}

/* 矢印アイコンは非表示にして、独自に定義（必要なら） */
.swiper-button-prev::after,
.swiper-button-next::after {
  display: none;
}

.swiper-button-prev,
.swiper-button-next {
  background-image: none;
}

/* ::beforeでカスタム矢印文字（またはアイコンに置き換え可） */
.swiper-button-prev::before,
.swiper-button-next::before {
  font-size: 16px;
  font-weight: bold;
  color: #fff;
  background-image: none;
}

.swiper-button-prev::before {
  content: "‹";
}

.swiper-button-next::before {
  content: "›";
}

/* ホバー時：背景を少し濃くする */
.swiper-button-prev:hover,
.swiper-button-next:hover {
  background-color: rgba(102, 102, 102, 0.85);
}

/* ==== ページネーション ==== */
.swiper-pagination {
  position: absolute;
  bottom: 10px;
  left: 0;
  width: 100%;
  text-align: center;
  z-index: 10;
}

.swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background-color: #666;
  opacity: 1;
  /* 非アクティブでもはっきり表示 */
  margin: 0 4px;
  border-radius: 50%;
}

/* アクティブなページネーションのデザイン */
.swiper-pagination-bullet-active {
  background-color: #f4f1e5;
  border: 1px solid #666;
}

/* トップページバナー */
.top-banner {
  padding: 120px 0 0;
}

.top-banner__link {
  display: block;
  transition: opacity 0.3s ease;
}

.top-banner__link:hover {
  opacity: 0.8;
}

.top-banner__link img {
  width: 100%;
  height: auto;
  display: block;
}

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