@charset "UTF-8";
@media screen and (min-width: 1025px) {
  .is-sp {
    display: none !important;
  }
}

@media screen and (max-width: 767px) {
  .is-pc {
    display: none !important;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .is-pc {
    display: none !important;
  }
}

body {
  color: #333333;
  font-size: 20px;
  font-family: dnp-shuei-mgothic-std, sans-serif;
}

body.is-open {
  height: 100%;
  overflow: hidden;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
span {
  font-weight: 600;
}

.section__inner {
  max-width: calc(1280px + 12vw);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 0 6vw;
}

#wrap {
  overflow: hidden;
  padding: 0;
  margin: 0;
}

a {
  display: inline-block;
  text-decoration: none;
  color: inherit;
}

li {
  list-style: none;
}

button {
  color: #000;
  background: transparent;
}

.header__contents {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 767px) {
  .header__contents {
    padding: 15px 4vw 0px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .header__contents {
    padding: 15px 4vw 0px;
  }
}

.header__inner {
  padding: 12px 12px 12px 24px;
  background: #FFF;
  border-radius: 80px;
  box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.15);
  display: flex;
  align-items: center;
}
@media screen and (min-width: 1025px) {
  .header__inner {
    padding: 1.67vw 2.92vw;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
  }
}

.header__nav {
  display: flex;
  align-items: center;
  flex-direction: row;
  gap: 24px;
  font-size: 20px;
}
@media screen and (max-width: 767px) {
  .header__nav {
    display: none;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .header__nav {
    display: none;
  }
}
@media screen and (min-width: 1025px) and (max-width: 1344px) {
  .header__nav {
    font-size: 11px;
  }
}

.header__list {
  display: flex;
  flex-direction: row;
  gap: 40px;
  border-radius: 900px;
  background: #FFF;
  box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.15);
  padding: 12px 48px;
}
.header__list a {
  transition: color 0.6s;
}
.header__list a:hover {
  color: #35AF3A;
}
@media screen and (min-width: 1025px) {
  .header__list {
    padding: 16px 48px;
  }
}

.header-selected {
  color: #35AF3A !important;
}

.header__btn {
  border-radius: 900px;
  background: #35AF3A;
  box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.15);
  padding: 12px 48px;
  color: #fff;
  overflow: hidden;
  position: relative;
  z-index: 1;
  transition: color 0.8s;
  border: 1.5px solid #35AF3A;
}
.header__btn::before {
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: 0.6s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.header__btn:hover {
  background: #35AF3A;
  color: #35AF3A;
}
.header__btn:hover::before {
  transform: scale(1, 1);
}

.header__logo {
  width: auto;
  height: 32px;
  margin-right: auto;
  display: flex;
}
.header__logo img {
  width: auto;
  height: 100%;
}
@media screen and (min-width: 1025px) {
  .header__logo {
    height: 56px;
  }
}

@media screen and (max-width: 767px) {
  .drawer__icon {
    z-index: 102;
    width: 46px;
    height: 46px;
    display: flex;
    flex-direction: column;
    background: #35AF3A;
    border-radius: 37px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .drawer__icon {
    z-index: 102;
    width: 46px;
    height: 46px;
    display: flex;
    flex-direction: column;
    background: #35AF3A;
    border-radius: 37px;
  }
}
@media screen and (min-width: 1025px) {
  .drawer__icon {
    display: none;
  }
}

.drawer__icon--bar {
  width: 20px;
  height: 1.778px;
  background: #fff;
  border-radius: 8px;
  position: relative;
}
.drawer__icon--bar.--1 {
  top: 18px;
  left: 13px;
}
.drawer__icon--bar.--2 {
  top: 25px;
  left: 13px;
}

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(1) {
  rotate: 35deg;
  translate: 0 3.5px;
}
.drawer__icon.js-show .drawer__icon--bar:nth-of-type(2) {
  rotate: -35deg;
  translate: 0 -5.5px;
}

.drawer {
  width: calc(100% - 8vw);
  height: calc(100dvh - 40px);
  background: #fff;
  margin-left: 4vw;
  margin-right: 4vw;
  filter: drop-shadow(0px 0px 15px rgba(0, 0, 0, 0.15));
  border-radius: 20px;
  position: relative;
  top: 15px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.drawer::after {
  content: "";
  width: 100%;
  flex-grow: 1;
  background: #FEDA00;
}

.drawer__top {
  display: flex;
  padding: 12px 12px 0 24px;
  align-items: center;
}

.drawer__logo {
  margin-right: auto;
  width: auto;
  height: 32px;
  display: flex;
}
.drawer__logo img {
  width: auto;
  height: 100%;
}

.drawer__body {
  overflow-y: scroll;
  overscroll-behavior: none;
  max-height: calc(100% - 63px);
}

.drawer__bottom__contents {
  margin-left: 4vw;
  margin-right: 4vw;
  padding: 20px 23px;
  border-radius: 30px;
  background: #fff;
  margin-bottom: 20px;
}

.drawer__bottom__contents__wrapper {
  background: #FEDA00;
  padding-top: 22px;
  padding-bottom: 40px;
  position: relative;
}

.drawer__bottom__contents__wrapper__top {
  position: absolute;
  width: 100%;
  top: -14.4vw;
  left: 0;
}

.drawer__contact__bottom__text {
  font-size: 14px;
  text-align: center;
  line-height: 1.8;
  margin-bottom: 16px;
}

.drawer__list {
  display: flex;
  flex-direction: column;
  row-gap: 20px;
  padding-left: 11.7333333333vw;
  margin-bottom: 115px;
  padding-top: 61px;
}
.drawer__list li a {
  color: #333333;
  font-size: 16px;
  line-height: 1.8;
}

.drawer__btn__wrapper {
  display: flex;
  justify-content: center;
  margin-bottom: 20px;
}

.drawer__btn {
  display: inline-block;
  padding: 11px 30px;
  background: #fff;
  border-radius: 100vmax;
  color: #fff;
  background: #35AF3A;
  font-size: 16px;
  margin-bottom: 13px;
  box-shadow: 0px 0px 11.25px 0px rgba(0, 0, 0, 0.15);
}

.drawer__icon--bar {
  transition: all 0.5s ease;
}

/* 初期設定 */
.modal {
  display: none;
}

.modal.is-open {
  display: block;
  position: relative;
  z-index: 1000;
}

.modal__content {
  height: 100vh;
}

.overlay {
  background: rgba(0, 0, 0, 0.4);
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  position: fixed;
  width: 100%;
  height: 100%;
}

.fv__wrapper {
  background: #fff;
}
@media screen and (max-width: 767px) {
  .fv__wrapper {
    padding-top: 86px;
  }
}

.swiper-pagination {
  /*widthを初期化*/
  width: initial !important;
  position: absolute;
  left: 50% !important;
  transform: translateX(-50%) !important;
}

.card__swiper-container {
  position: relative;
}

.card__swiper-wrapper {
  width: 100%;
  height: auto;
  aspect-ratio: 750/974;
}
@media screen and (min-width: 1025px) {
  .card__swiper-wrapper {
    aspect-ratio: 3840/2016;
  }
}

.card__swiper-slide {
  width: 100%;
}
.card__swiper-slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 50%;
     object-position: 50% 50%;
}
@media screen and (min-width: 1025px) {
  .card__swiper-slide img {
    -o-object-position: 50% 25%;
       object-position: 50% 25%;
  }
}

.swiper-pagination-bullet-active {
  background: #35AF3A !important;
}

.news {
  background: #fff;
  position: relative;
}

.news__top {
  position: absolute;
  top: -4.65vw;
  z-index: 3;
  width: 100%;
}
.news__top img {
  display: block;
  width: 100%;
}

.news__bg01,
.news__bg02 {
  height: auto;
  position: absolute;
}
.news__bg01 img,
.news__bg02 img {
  width: 100%;
  height: 100%;
}

.news__bg01 {
  width: 46.1333333333vw;
  left: 0;
  top: 13.6vw;
}
@media screen and (min-width: 1025px) {
  .news__bg01 {
    width: 17.96875vw;
    top: 4.4635416667vw;
  }
}

.news__bg02 {
  width: 42.6666666667vw;
  right: 1.3333333333vw;
  bottom: 0;
}
@media screen and (min-width: 1025px) {
  .news__bg02 {
    width: 22.1875vw;
    right: 1.25vw;
    bottom: 1.875vw;
  }
}

.news__inner {
  padding-top: 22%;
  padding-bottom: 16%;
}
@media screen and (min-width: 1025px) {
  .news__inner {
    padding-top: 180px;
    padding-bottom: 180px;
  }
}

.section__title {
  text-align: center;
  line-height: 1;
}
.section__title h2 {
  font-size: 42px;
  margin-bottom: 6px;
}
@media screen and (min-width: 1025px) {
  .section__title h2 {
    font-size: 64px;
    margin-bottom: 16px;
  }
}
.section__title p {
  font-size: 12px;
}
@media screen and (min-width: 1025px) {
  .section__title p {
    font-size: 16px;
  }
}

.news__contents {
  display: flex;
  flex-direction: column;
  margin-top: 32px;
  padding-bottom: 26px;
}
@media screen and (min-width: 1025px) {
  .news__contents {
    margin-bottom: 25px;
    margin-top: 56px;
  }
}

.news__item {
  position: relative;
}
.news__item::after {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  width: 100%;
  background: transparent url(/img/news-border-sp.png) repeat center center/auto 100%;
  height: 5px;
}
@media screen and (min-width: 1025px) {
  .news__item::after {
    background: transparent url(/img/news-border-pc.png) repeat center center/auto 100%;
    height: 4px;
  }
}
.news__item a {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 20px;
  padding-bottom: 24px;
}
@media screen and (min-width: 1025px) {
  .news__item a {
    gap: 36px;
    padding-top: 30px;
    padding-bottom: 30px;
    flex-direction: row;
    padding-right: 40px;
  }
}
@media screen and (min-width: 1025px) {
  .news__item a::before {
    position: absolute;
    content: "";
    background: transparent url(/img/arrow-green-next.svg) no-repeat center center/contain;
    width: 20px;
    height: 17px;
    top: 0;
    bottom: 0;
    margin: auto;
    transition: 0.6s cubic-bezier(0.45, 0, 0.55, 1);
    right: 0;
    transform-origin: left top;
  }
}
.news__item a:hover .news__item__text {
  color: #35AF3A;
}
.news__item a:hover::before {
  -webkit-animation: moveArrow 1s ease;
          animation: moveArrow 1s ease;
}

.news__item--first {
  position: relative;
}
.news__item--first::before {
  position: absolute;
  content: "";
  left: 0;
  top: 0;
  width: 100%;
  background: transparent url(/img/news-border-sp.png) repeat center center/auto 100%;
  height: 5px;
}
@media screen and (min-width: 1025px) {
  .news__item--first::before {
    background: transparent url(/img/news-border-pc.png) repeat center center/auto 100%;
    height: 4px;
  }
}

.news__item__left {
  display: flex;
  flex-direction: row;
  gap: 12px;
  flex-shrink: 0;
  align-items: center;
}
@media screen and (min-width: 1025px) {
  .news__item__left {
    gap: 36px;
    flex-shrink: 0;
  }
}

.news__item--date {
  font-size: 14px;
  font-weight: 600;
  color: #888;
}
@media screen and (min-width: 1025px) {
  .news__item--date {
    font-size: 20px;
  }
}

.news__item--tag {
  flex-shrink: 0;
  font-size: 12px;
  width: 4em;
  line-height: 1;
  padding: 8px 11px;
  color: #35AF3A;
  border-radius: 9px;
  border: 1px solid #35AF3A;
  font-weight: 600;
  box-sizing: content-box;
  text-align: center;
}
@media screen and (min-width: 1025px) {
  .news__item--tag {
    font-size: 16px;
    padding: 11px 18px;
  }
}

.news__item__text {
  font-size: 14px;
  line-height: 1.8;
  flex-grow: 1;
  transition: color 0.6s;
}
@media screen and (min-width: 1025px) {
  .news__item__text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 20px;
  }
}

.section__btn {
  text-align: center;
  line-height: 0;
}
.section__btn a {
  padding: 11px 80px 11px 40px;
  border-radius: 900px;
  background: #35AF3A;
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
  color: #fff;
  font-size: 16px;
  line-height: 1.8;
  position: relative;
  border: 1.5px solid #35AF3A;
  overflow: hidden;
  z-index: 1;
  transition: color 0.8s;
  text-align: left;
}
@media screen and (min-width: 1025px) {
  .section__btn a {
    padding-top: 16px;
    padding-bottom: 16px;
  }
}
.section__btn a::after {
  position: absolute;
  content: "";
  background: transparent url(/img/right-icon.svg) no-repeat center center/contain;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 37px;
  width: 16px;
  height: 14px;
  transition: background 0.3s ease; /* ホバー時の背景画像変更をスムーズに */
}
.section__btn a::before {
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: 0.6s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.section__btn a:hover {
  background: #35AF3A; /* これ自体は::beforeで隠されるのであまり意味がない */
  color: #35AF3A; /* テキストの色が変わる */
}
.section__btn a:hover::after {
  background: transparent url(/img/arrow-green-next.svg) no-repeat center center/contain;
  /* ここにアニメーションプロパティを追加 */
  -webkit-animation: moveArrow 1s ease;
          animation: moveArrow 1s ease; /* アニメーション名、時間、終了時の状態 */
  /* animation-delayは不要であれば削除 */
}
.section__btn a:hover::before {
  transform: scale(1, 1);
}

/* アニメーションの定義 */
@-webkit-keyframes moveArrow {
  0% {
    transform: translateX(0%); /* 初期位置 */
    opacity: 1;
  }
  40% {
    transform: translateX(150%); /* 右へ移動 */
    opacity: 0; /* 消える */
  }
  41% {
    transform: translateX(-150%); /* 左外へ戻る */
    opacity: 0; /* 見えないまま */
  }
  100% {
    transform: translateX(0%); /* 初期位置に戻る */
    opacity: 1; /* 現れる */
  }
}
@keyframes moveArrow {
  0% {
    transform: translateX(0%); /* 初期位置 */
    opacity: 1;
  }
  40% {
    transform: translateX(150%); /* 右へ移動 */
    opacity: 0; /* 消える */
  }
  41% {
    transform: translateX(-150%); /* 左外へ戻る */
    opacity: 0; /* 見えないまま */
  }
  100% {
    transform: translateX(0%); /* 初期位置に戻る */
    opacity: 1; /* 現れる */
  }
}
@-webkit-keyframes moveArrow-reverse {
  0% {
    transform: translateX(0%); /* 初期位置 */
    opacity: 1;
  }
  40% {
    transform: translateX(-150%); /* 左へ移動 */
    opacity: 0; /* 消える */
  }
  41% {
    transform: translateX(150%); /* 右外へ戻る */
    opacity: 0; /* 見えないまま */
  }
  100% {
    transform: translateX(0%); /* 初期位置に戻る */
    opacity: 1; /* 現れる */
  }
}
@keyframes moveArrow-reverse {
  0% {
    transform: translateX(0%); /* 初期位置 */
    opacity: 1;
  }
  40% {
    transform: translateX(-150%); /* 左へ移動 */
    opacity: 0; /* 消える */
  }
  41% {
    transform: translateX(150%); /* 右外へ戻る */
    opacity: 0; /* 見えないまま */
  }
  100% {
    transform: translateX(0%); /* 初期位置に戻る */
    opacity: 1; /* 現れる */
  }
}
.gallery {
  background: #F9F8F4;
  position: relative;
}

.gallery__top {
  position: absolute;
  top: -4.8vw;
  width: 100%;
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .gallery__top {
    top: calc(-4.8vw + 1px);
  }
}
.gallery__top img {
  display: block;
  width: 100%;
}
@media screen and (min-width: 1025px) {
  .gallery__top {
    top: -4.6686746988vw;
  }
}

.gallery__inner {
  padding-top: 80px;
  padding-bottom: 64px;
  padding-bottom: 17vw;
}
@media screen and (min-width: 1025px) {
  .gallery__inner {
    padding-top: 180px;
    padding-bottom: 79px;
  }
}

.gallery-tabs {
  margin-top: 20px;
  margin-bottom: 36px;
}
@media screen and (min-width: 1025px) {
  .gallery-tabs {
    margin-top: 56px;
    margin-bottom: 56px;
  }
}

.gallery-tabs__list {
  display: flex;
  -moz-column-gap: 12px;
       column-gap: 12px;
  justify-content: center;
  margin-bottom: 20px;
}
@media screen and (min-width: 1025px) {
  .gallery-tabs__list {
    -moz-column-gap: 16px;
         column-gap: 16px;
    margin-bottom: 28px;
  }
}

.gallery-tabs__item {
  width: 137px;
  height: 45px;
  border-radius: 900px;
  background: #fff;
  color: #888;
  font-size: 16px;
  line-height: 1.8;
  border: 1px solid #DDD;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: background 0.6s, color 0.6s, border 0.6s;
  font-weight: 600;
}
.gallery-tabs__item[aria-selected=true] {
  background: #35AF3A;
  color: #fff;
  pointer-events: none;
  border: none;
}
.gallery-tabs__item:hover {
  background: #35AF3A;
  color: #fff;
  border: 1px solid #35AF3A;
}

.gallery-tabs__contents {
  margin-top: 89px;
  padding-right: 12px;
  padding-left: 12px;
}
@media screen and (min-width: 1025px) {
  .gallery-tabs__contents {
    margin-top: 56px;
    padding-right: 0;
    padding-left: 0;
  }
}

.gallery-tabs__content {
  display: flex;
  flex-direction: column;
  gap: 36px;
}
@media screen and (min-width: 1025px) {
  .gallery-tabs__content {
    gap: 56px;
  }
}

.gallery__items {
  flex-wrap: wrap;
  gap: 33px;
  display: flex;
}
@media screen and (min-width: 1025px) {
  .gallery__items {
    gap: 54px 44px;
  }
}
@media screen and (max-width: 767px) {
  .gallery__items .gallery__item .gallery__item--bottom li:nth-of-type(n + 4) {
    display: none;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .gallery__items .gallery__item .gallery__item--bottom li:nth-of-type(n + 4) {
    display: none;
  }
}
@media screen and (min-width: 1025px) {
  .gallery__items .gallery__item--big {
    width: calc((100% - 44px) / 2);
  }
  .gallery__items .gallery__item--big .gallery__item--bottom li:nth-of-type(3) .gallery__item--bottom--mask--text {
    display: none;
  }
}
.gallery__items .gallery__item:not(.gallery__item--big) .gallery__item--bottom li:nth-of-type(n + 4) {
  display: none;
}
.gallery__items .gallery__item--owl {
  position: relative;
}
.gallery__items .gallery__item--owl::after {
  top: -68px;
  right: -14px;
  background: no-repeat url(/img/owl.png) center center/contain;
  width: 50px;
  height: 90px;
  position: absolute;
  content: "";
}
@media screen and (min-width: 1025px) {
  .gallery__items .gallery__item--owl::after {
    width: 90px;
    height: 160px;
    top: -119px;
    right: -27px;
  }
}

.gallery-tabs__category-list {
  white-space: nowrap;
  display: flex;
  gap: 10px;
}
@media screen and (min-width: 1025px) {
  .gallery-tabs__category-list {
    text-align: center;
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media screen and (max-width: 767px) {
  .gallery-tabs__category-list {
    width: 100%;
    overflow-x: scroll;
    padding-bottom: 10px;
  }
  .gallery-tabs__category-list::before, .gallery-tabs__category-list::after {
    width: 100%;
    content: "";
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .gallery-tabs__category-list {
    width: 100%;
    overflow-x: scroll;
  }
  .gallery-tabs__category-list::before, .gallery-tabs__category-list::after {
    width: 100%;
    content: "";
  }
}

.gallery-tabs__category-item {
  line-height: 1.8;
  font-size: 12px;
  color: #A3A3A3;
  border: 1px solid #DADADA;
  padding: 4px 16px;
  border-radius: 900px;
  font-weight: 600;
  transition: background 0.6s, color 0.6s, border 0.6s;
}
.gallery-tabs__category-item[aria-selected=true] {
  background: #A3A3A3;
  color: #fff;
  pointer-events: none;
  border: 1px solid #A3A3A3;
}
.gallery-tabs__category-item:hover {
  background: #A3A3A3;
  border: 1px solid #A3A3A3;
  color: #fff;
}

.gallery__item {
  width: 100%;
}
@media screen and (min-width: 1025px) {
  .gallery__item {
    width: calc((100% - 88px) / 3);
  }
}

.gallery__item--img {
  display: flex;
  flex-direction: column;
  margin-bottom: 15px;
}
@media screen and (min-width: 1025px) {
  .gallery__item--img {
    margin-bottom: 20px;
  }
}

.gallery__item--top {
  border-radius: 32px;
}
.gallery__item--top img {
  box-shadow: 0px 0px 22.5px 0px rgba(0, 0, 0, 0.05);
}

.gallery__item:has(.gallery__item--bottom--item) .gallery__item--bottom {
  margin-top: 15px;
}
@media screen and (min-width: 1025px) {
  .gallery__item:has(.gallery__item--bottom--item) .gallery__item--bottom {
    margin-top: 20px;
  }
}

.gallery__item--bottom {
  display: flex;
  flex-direction: row;
  gap: 15px;
}
@media screen and (min-width: 1025px) {
  .gallery__item--bottom {
    gap: 20px;
  }
}
.gallery__item--bottom li {
  width: calc((100% - 30px) / 3);
}
@media screen and (min-width: 1025px) {
  .gallery__item--big .gallery__item--bottom li {
    width: calc((100% - 60px) / 4);
  }
}
.gallery__item--bottom img {
  border-radius: 18px;
}

.gallery__item--bottom--item {
  position: relative;
}

.gallery__item--bottom--mask--text {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  font-size: 18px;
  line-height: 1.8;
  color: #fff;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  border-radius: 18px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.gallery__item--bottom--normal {
  border-radius: 24px;
}

.gallery__item--bottom-mask {
  position: relative;
}
.gallery__item--bottom-mask::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 18px;
}

.gallery__item--top, .gallery__item--bottom--normal {
  position: relative;
  width: 100%;
  display: block;
  overflow: hidden;
}
.gallery__item--top::before, .gallery__item--bottom--normal::before {
  content: "";
  display: block;
  padding-top: 100%;
}
.gallery__item--top img, .gallery__item--bottom--normal img {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.6s ease;
}
.gallery__item--top:hover img, .gallery__item--bottom--normal:hover img {
  transform: scale(1.1); /* 拡大 */
}

.gallery__item--bottom--item:hover .gallery__item--bottom--normal img {
  transform: scale(1.1); /* 拡大 */
}

.gallery__item--title {
  font-size: 18px;
  line-height: 1.8;
  position: relative;
  transition: color 0.6s;
  padding-right: 20px;
}
.gallery__item--title::after {
  position: absolute;
  content: "";
  background: transparent url(/img/arrow-green-next.svg) no-repeat center center/contain;
  width: 20px;
  height: 17px;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
  transition: 0.6s cubic-bezier(0.45, 0, 0.55, 1);
  right: 0;
  transform-origin: left top;
}
@media screen and (min-width: 1025px) {
  .gallery__item--title {
    font-size: 24px;
  }
}

.gallery__item--title--link {
  width: 100%;
}
.gallery__item--title--link:hover .gallery__item--title {
  color: #35AF3A;
}
.gallery__item--title--link:hover .gallery__item--title::after {
  -webkit-animation: moveArrow 1s ease;
          animation: moveArrow 1s ease;
}

.gallery__item--title.is-hovered {
  color: #35AF3A; /* ホバー時に変えたい色 */
}

.gallery__item--bottom--normal.is-zoomed img {
  transform: scale(1.1);
}

.gallery__item--text {
  font-size: 13px;
  line-height: 1.8;
  color: #888;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
}
@media screen and (min-width: 1025px) {
  .gallery__item--text {
    font-size: 16px;
  }
}

.gallery-tabs__content-wrap {
  opacity: 0;
  visibility: hidden;
  height: 0;
  translate: 0 20px;
  transition: opacity 0.3s ease, translate 0.3s ease;
}
.gallery-tabs__content-wrap.js-show {
  opacity: 1;
  visibility: visible;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  translate: 0;
}

.profile {
  position: relative;
  background: transparent;
}

.profile__top {
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
}
.profile__top img {
  display: block;
  width: 100%;
}
@media screen and (min-width: 1025px) {
  .profile__top {
    top: -2px;
  }
}

.profile__inner {
  padding-top: 64px;
  padding-bottom: 64px;
  padding-left: 4%;
  padding-right: 4%;
}
@media screen and (min-width: 1025px) {
  .profile__inner {
    padding-top: 120px;
    padding-bottom: 120px;
  }
}
.profile__inner.--top {
  padding-top: 59px;
  padding-bottom: 17.8vw;
}
@media screen and (min-width: 1025px) {
  .profile__inner.--top {
    padding-top: 180px;
    padding-bottom: 15.4vw;
  }
}

.profile__contents {
  padding: 64px 21px 70px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 30px;
  border-radius: 30px;
  background: #fff;
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
}
@media screen and (min-width: 1025px) {
  .profile__contents {
    padding: 60px 80px 80px;
    flex-direction: row;
    gap: 72px;
    border-radius: 56px;
    max-width: 1280px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    align-items: center;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .profile__contents {
    gap: 50px;
  }
}

.profile__img {
  width: 105px;
  height: auto;
  margin: 0 auto;
}
.profile__img img {
  width: 100%;
}
@media screen and (min-width: 1025px) {
  .profile__img {
    width: 194px;
    flex-shrink: 0;
  }
}

.profile__right {
  display: flex;
  flex-direction: column;
  gap: 11px;
}
@media screen and (min-width: 1025px) {
  .profile__right {
    flex-grow: 1;
    gap: 20px;
  }
}

.profile__name {
  align-items: baseline;
  display: flex;
}
.profile__name em {
  font-size: 32px;
  line-height: 1.8;
  margin-right: 14px;
  font-style: normal;
}
@media screen and (min-width: 1025px) {
  .profile__name em {
    font-size: 40px;
    margin-right: 16px;
  }
}
.profile__name span {
  font-size: 14px;
}
@media screen and (min-width: 1025px) {
  .profile__name span {
    font-size: 18px;
  }
}

.profile__text {
  font-size: 14px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .profile__text {
    font-size: 20px;
  }
}

.profile__btn {
  position: absolute;
  bottom: -28px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}

.contact {
  position: relative;
}

.contact__wrapper {
  background: #FEDA00;
  text-align: center;
}

.contact__top {
  width: 100%;
  height: auto;
  position: absolute;
  top: calc(-4.8vw + 1px);
}
.contact__top img {
  width: 100%;
  height: 100%;
  display: block;
}

.contact__inner {
  padding-top: 71px;
  padding-bottom: 20px;
}
@media screen and (min-width: 1025px) {
  .contact__inner {
    padding-top: 92px;
    padding-bottom: 190px;
  }
}

.contact__contents {
  border-radius: 40px;
  background: #F9F8F4;
  position: relative;
  margin-top: 32px;
  margin-bottom: 40px;
  padding: 32px 15px;
}
@media screen and (min-width: 1025px) {
  .contact__contents {
    padding-top: 48px;
    padding-bottom: 44px;
    margin-bottom: 80px;
    margin-top: 48px;
  }
}
.contact__contents::before {
  position: absolute;
  content: "";
  background: transparent url(/img/sango.png) no-repeat center center/contain;
  width: 50px;
  height: 50px;
  left: 0;
  bottom: -7px;
}
@media screen and (min-width: 1025px) {
  .contact__contents::before {
    height: 98px;
    width: 90px;
    bottom: -35px;
    left: -29px;
  }
}
.contact__contents::after {
  position: absolute;
  content: "";
  background: transparent url(/img/rat.png) no-repeat center center/contain;
  width: 75px;
  height: 80px;
  right: 4px;
  top: -26px;
}
@media screen and (min-width: 1025px) {
  .contact__contents::after {
    width: 150px;
    height: 160px;
    top: -68px;
    right: -12px;
  }
}
.contact__contents p {
  line-height: 1.8;
  font-size: 16px;
  margin-bottom: 24px;
}
@media screen and (min-width: 1025px) {
  .contact__contents p {
    font-size: 20px;
    margin-bottom: 32px;
  }
}

.contact__sns {
  display: flex;
  flex-direction: row;
  gap: 24px;
  justify-content: center;
}
.contact__sns a {
  padding: 16px;
  border-radius: 50%;
  background: #FFF;
  transition: transform 0.2s ease;
}
.contact__sns a:hover {
  transform: scale(1.1); /* 拡大 */
}
.contact__sns img {
  width: 24px;
  height: 24px;
  display: block;
}

.drawer__sns {
  gap: 12px;
}

.contact__btn a {
  border-width: 2px;
  font-size: 18px;
  padding: 14px 63px 14px 21px;
  line-height: 1.8;
}
.contact__btn a::after {
  width: 18px;
  height: 16px;
}
@media screen and (max-width: 767px) {
  .contact__btn a::after {
    right: 25px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .contact__btn a::after {
    right: 25px;
  }
}
@media screen and (min-width: 1025px) {
  .contact__btn a {
    font-size: 22px;
    padding: 19px 90px 19px 48px;
  }
}

.contact__btn--header a {
  border-width: 2px;
  font-size: 16px;
  padding: 15px 65px 15px 35px;
}
.contact__btn--header a::after {
  width: 18px;
  height: 16px;
}
@media screen and (max-width: 767px) {
  .contact__btn--header a::after {
    right: 25px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .contact__btn--header a::after {
    right: 25px;
  }
}
@media screen and (min-width: 1025px) {
  .contact__btn--header a {
    font-size: 22px;
    padding: 20px 90px 20px 48px;
  }
}

.footer {
  display: flex;
  flex-direction: column;
  gap: 13px;
  margin-top: 40px;
}
@media screen and (min-width: 1025px) {
  .footer {
    flex-direction: row;
    align-items: flex-end;
    margin-top: 80px;
  }
}

@media screen and (max-width: 767px) {
  .footer__link {
    justify-content: center;
    display: flex;
    gap: 24px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .footer__link {
    justify-content: center;
    display: flex;
    gap: 24px;
  }
}
@media screen and (min-width: 1025px) {
  .footer__link {
    display: flex;
    flex-direction: row;
    gap: 24px;
  }
}

.footer__link--1, .footer__link--2 {
  font-size: 14px;
  line-height: 1.8;
  text-decoration: underline;
  transition: opacity 0.6s;
}
.footer__link--1:hover, .footer__link--2:hover {
  opacity: 0.5;
}

.copyright {
  font-size: 12px;
  display: block;
  font-weight: 600;
  letter-spacing: -0.12px;
  line-height: 1.6;
}
@media screen and (min-width: 1025px) {
  .copyright {
    font-size: 14px;
    margin-left: auto;
  }
}

.footer__copyright {
  text-align: center;
}
@media screen and (min-width: 1025px) {
  .footer__copyright {
    text-align: right;
    margin-left: auto;
  }
}
@media screen and (max-width: 767px) {
  .footer__copyright {
    margin: 0 -3vw;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .footer__copyright {
    margin: 0 -3vw;
  }
}

/* 右下に固定 */
@media screen and (min-width: 1025px) {
  #page-top {
    width: 200px;
    right: 20px;
    bottom: 20px;
    position: fixed;
    z-index: 500;
  }
}
@media screen and (max-width: 767px) {
  #page-top {
    display: none !important;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  #page-top {
    display: none !important;
  }
}

#page-top a img {
  width: 100%;
  transition: transform 0.2s ease;
}
#page-top a img:hover {
  transform: scale(1.1);
}

.top {
  position: relative;
  background: #F9F8F4;
}
.top img {
  width: 100%;
}
.top.--profile {
  background: transparent;
}
.top.--detail {
  height: 34.1333333333vw;
}
@media screen and (min-width: 1025px) {
  .top.--detail {
    height: 12.03125vw;
  }
}
.top::before {
  width: 100%;
  position: absolute;
  content: "";
  background: #FEDA00;
  top: 0;
  left: 0;
  height: calc(100% - 20.76vw);
}

.top__picture {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  height: 100%;
  width: 100%;
}
.top__picture img {
  width: 100%;
  height: auto;
  bottom: 0;
  position: absolute;
}

.top__bottom {
  width: 100%;
  height: auto;
  z-index: 2;
  background: #F9F8F4;
}
.top__bottom img {
  width: 100%;
  height: 100%;
  display: block;
}

.top__bg01 {
  width: 105.3333333333vw;
  top: 0;
  left: -40.8vw;
  position: absolute;
}
@media screen and (min-width: 1025px) {
  .top__bg01 {
    width: 58.125vw;
    left: 0;
    top: -5.7291666667vw;
  }
}

.top__bg02 {
  width: 50.4vw;
  position: absolute;
  top: 18.9333333333vw;
  right: -13.3333333333vw;
}
@media screen and (min-width: 1025px) {
  .top__bg02 {
    width: 27.9166666667vw;
    right: 5.625vw;
    top: 3.4375vw;
  }
}

.gallery__inner__detail {
  padding-bottom: 24.8vw;
  padding-top: 44px;
}
@media screen and (min-width: 1025px) {
  .gallery__inner__detail {
    padding-top: 35px;
    padding-bottom: 14.1145833333vw;
  }
}

.gallery__inner__detail--company {
  padding-bottom: 24.8vw;
  padding-top: 44px;
}
@media screen and (min-width: 1025px) {
  .gallery__inner__detail--company {
    padding-top: 90px;
    padding-bottom: 14.1145833333vw;
  }
}

.page__btn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
@media screen and (min-width: 1025px) {
  .page__btn {
    gap: 12px;
  }
}

.page__btn--number {
  border-radius: 900px;
  border: 1px solid #DDD;
  background: #fff;
  color: #888;
  line-height: 1.8;
  width: 48px;
  height: 48px;
  text-align: center;
  display: flex; /* Flexboxコンテナにする */
  align-items: center; /* 縦方向中央揃え */
  justify-content: center; /* 横方向中央揃え（念のため） */
  transition: background 0.6s, color 0.6s;
}
@media screen and (min-width: 1025px) {
  .page__btn--number {
    width: 56px;
    height: 56px;
  }
}

.page__btn--number:not(:has(.dots)):hover {
  color: #fff;
  background: #35AF3A;
}

.page-numbers {
  display: flex;
  width: 48px;
  height: 48px;
  border-radius: 900px;
  justify-content: center;
  align-items: center;
}
@media screen and (min-width: 1025px) {
  .page-numbers {
    width: 56px;
    height: 56px;
  }
}

.page__btn--number:has(.dots) {
  border: none;
  background: transparent;
  width: 13px;
  height: 24px;
}
.page__btn--number--arrow a {
  width: 20px;
  height: 17px;
}

.is-hide {
  visibility: hidden;
}

.page__btn--number--arrow.--prev {
  display: block;
}
.page__btn--number--arrow.--prev img {
  transform-origin: left top;
  transition: 0.6s cubic-bezier(0.45, 0, 0.55, 1);
  width: 16px;
  height: 14px;
  display: block;
}

.page__btn--number--arrow.--prev:hover img {
  -webkit-animation: moveArrow-reverse 1s ease;
          animation: moveArrow-reverse 1s ease;
}

.page__btn--number--arrow.--next {
  display: block;
}
.page__btn--number--arrow.--next img {
  transition: 0.6s cubic-bezier(0.45, 0, 0.55, 1);
  right: 0;
  transform-origin: left top;
  width: 16px;
  height: 14px;
  display: block;
}

.page__btn--number--arrow.--next:hover img {
  -webkit-animation: moveArrow 1s ease;
          animation: moveArrow 1s ease;
}

.page__btn--number--active,
.page__btn--number:has(.current) {
  color: #fff;
  background: #35AF3A;
}

.page__btn--dots {
  font-size: 13px;
  line-height: 1.8;
  color: #888;
}

.breadcrumbs {
  padding: 8px 20px;
  border-radius: 16px;
  background: rgba(249, 248, 244, 0.5);
  display: flex;
  flex-direction: row;
  gap: 8px;
  margin-bottom: 60px;
  flex-wrap: wrap;
  text-align: left;
  align-items: center;
}
@media screen and (min-width: 1025px) {
  .breadcrumbs {
    gap: 16px;
  }
}

.breadcrumbs__item {
  font-size: 14px;
  line-height: 1.4;
  font-weight: 600;
}
@media screen and (min-width: 1025px) {
  .breadcrumbs__item {
    font-size: 16px;
    line-height: 1.8;
  }
}

.breadcrumbs .breadcrumbs__item:not(:last-child) a {
  text-decoration: underline;
}

.breadcrumbs__item a {
  transition: opacity 0.6s;
}
.breadcrumbs__item a:hover {
  opacity: 0.5;
}

.breadcrumbs__arrow {
  font-size: 16px;
  line-height: 1.8;
}

.gallery__title {
  font-size: 24px;
  line-height: 1.8;
  margin-bottom: 20px;
}
@media screen and (min-width: 1025px) {
  .gallery__title {
    font-size: 40px;
    margin-bottom: 40px;
  }
}

.gallery__detail__contents {
  display: flex;
  flex-direction: column;
  gap: 40px; /* column gap (SPでは縦に並ぶので影響なし) */
  margin-bottom: 80px;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__contents {
    flex-wrap: wrap;
    flex-direction: row;
    row-gap: 54px; /* row gap */
    -moz-column-gap: 44px;
         column-gap: 44px; /* column gap */
  }
}

@media screen and (min-width: 1025px) {
  .gallery__detail__contents--item {
    width: calc((100% - 88px) / 3); /* column gap を考慮して幅を計算 */
  }
}

.gallery__detail__contents--item--img {
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.05);
  margin-bottom: 12px;
  border-radius: 32px;
  position: relative;
  width: 100%;
  display: block;
  overflow: hidden;
}
.gallery__detail__contents--item--img::before {
  content: "";
  display: block;
  padding-top: 100%;
}
.gallery__detail__contents--item--img img {
  border-radius: 32px;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.6s ease;
}
.gallery__detail__contents--item--img:hover img {
  transform: scale(1.1);
}

.gallery__detail__contents--item--text {
  font-size: 16px;
  line-height: 1.4;
}

.gallery__top__detail {
  position: absolute;
  top: -4.8vw;
}
.gallery__top__detail img {
  display: block;
}
@media screen and (min-width: 1025px) {
  .gallery__top__detail {
    top: -4.776674938vw;
  }
}

.gallery__detail__wrapper {
  position: relative;
  background: #F9F8F4;
}

.gallery__detail__wrapper__contents {
  padding-top: 46px;
  padding-bottom: 27.4666666667vw;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__contents {
    padding-top: 94px;
    padding-bottom: 14.1145833333vw;
  }
}

.gallery__detail__wrapper__top {
  position: absolute;
  top: calc(-4.8vw + 1px);
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__top {
    top: calc(-4.7579298831vw + 1px);
  }
}
.gallery__detail__wrapper__top img {
  display: block;
}

.gallery__detail__wrapper__title {
  font-size: 24px;
  line-height: 1.6;
  margin-bottom: 24px;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__title {
    font-size: 40px;
    margin-bottom: 40px;
  }
}

.gallery__detail__wrapper__img {
  text-align: center;
  margin-bottom: 24px;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__img {
    margin-bottom: 40px;
  }
}

.gallery__detail__wrapper__category {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 40px;
}
@media screen and (max-width: 767px) {
  .gallery__detail__wrapper__category {
    align-items: flex-start;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .gallery__detail__wrapper__category {
    align-items: flex-start;
  }
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__category {
    gap: 0;
    flex-direction: row;
    margin-bottom: 93px;
    align-items: stretch;
  }
}

.gallery__detail__wrapper__category--top {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  gap: 8px;
  padding-right: 17px;
  position: relative;
}
.gallery__detail__wrapper__category--top::after {
  position: absolute;
  width: 1px;
  height: 100%;
  background: #DDD;
  top: 0;
  content: "";
  right: 0;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__category--top {
    gap: 12px;
    padding-right: 24px;
    flex-shrink: 0;
    align-items: flex-start;
  }
}

.gallery__detail__wrapper__category--top--item {
  font-size: 14px;
  line-height: 1.8;
  color: #888;
  padding: 4px 20px;
  border-radius: 900px;
  border: 1px solid #DDD;
  background: #FFF;
  transition: background 0.6s, color 0.6s, border 0.6s;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__category--top--item {
    font-size: 16px;
  }
}
.gallery__detail__wrapper__category--top--item:hover {
  background: #35AF3A;
  color: #fff;
  border: 1px solid #35AF3A;
}

.gallery__detail__wrapper__category--bottom {
  display: flex;
  flex-direction: row;
  gap: 8px;
  white-space: nowrap;
  align-items: center;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__category--bottom {
    gap: 12px;
    padding-left: 24px;
    flex-grow: 1;
    flex-wrap: wrap;
    padding-top: 3px;
  }
}
@media screen and (max-width: 767px) {
  .gallery__detail__wrapper__category--bottom {
    width: 100%;
    overflow-x: scroll;
    padding-bottom: 10px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .gallery__detail__wrapper__category--bottom {
    width: 100%;
    overflow-x: scroll;
    padding-bottom: 10px;
  }
}

.gallery__detail__wrapper__category--bottom--item {
  font-size: 12px;
  line-height: 1.8;
  padding: 4px 16px;
  color: #A3A3A3;
  border-radius: 900px;
  border: 1px solid #DADADA;
  transition: background 0.6s, color 0.6s, border 0.6s;
}
.gallery__detail__wrapper__category--bottom--item:hover {
  background: #A3A3A3;
  border: 1px solid #A3A3A3;
  color: #fff;
}

.gallery__detail__wrapper__page {
  display: flex;
  background: #fff;
  border-radius: 20px;
  margin-bottom: 40px;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__page {
    margin-bottom: 91px;
    border-radius: 32px;
  }
}

.gallery__detail__wrapper__page--prev {
  width: 50%;
  flex-shrink: 0;
  padding-right: 20px;
  padding-top: 10px;
  padding-bottom: 10px;
  padding-left: 20px;
  margin-right: auto;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__page--prev {
    padding-right: 48px;
    padding-top: 20px;
    padding-bottom: 20px;
    padding-left: 40px;
  }
}
.gallery__detail__wrapper__page--prev:hover .gallery__detail__wrapper__page--prev--contents::before {
  -webkit-animation: moveArrow-reverse 1s ease;
          animation: moveArrow-reverse 1s ease;
}

.gallery__detail__wrapper__page {
  position: relative;
}
.gallery__detail__wrapper__page span::after {
  position: absolute;
  content: "";
  width: 1px;
  height: calc(100% - 20px);
  background: #DDD;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__page span::after {
    height: calc(100% - 40px);
  }
}

.gallery__detail__wrapper__page--prev--contents {
  padding-left: 38px;
  position: relative;
}
.gallery__detail__wrapper__page--prev--contents::before {
  position: absolute;
  content: "";
  width: 18px;
  height: 16px;
  background: transparent url(/img/arrow-green-prev.svg) no-repeat center center/contain;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__page--prev--contents {
    padding-left: 46px;
  }
}

.gallery__detail__wrapper__page--next--contents {
  padding-right: 38px;
  position: relative;
}
.gallery__detail__wrapper__page--next--contents::after {
  position: absolute;
  content: "";
  width: 18px;
  height: 16px;
  background: transparent url(/img/arrow-green-next.svg) no-repeat center center/contain;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__page--next--contents {
    padding-right: 46px;
  }
}

.gallery__detail__wrapper__page--title {
  color: #888;
  font-size: 12px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__page--title {
    font-size: 16px;
  }
}

.gallery__detail__wrapper__page--text {
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 12px;
  line-height: 1.7;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__page--text {
    font-size: 24px;
    -webkit-line-clamp: 1;
    line-height: 1.8;
  }
}

.gallery__detail__wrapper__page--next {
  width: 50%;
  flex-shrink: 0;
  padding-top: 10px;
  padding-bottom: 10px;
  padding-right: 20px;
  padding-left: 20px;
  margin-left: auto;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__page--next {
    padding-left: 48px;
    padding-top: 20px;
    padding-bottom: 20px;
    padding-right: 40px;
  }
}
.gallery__detail__wrapper__page--next:hover .gallery__detail__wrapper__page--next--contents::after {
  -webkit-animation: moveArrow 1s ease;
          animation: moveArrow 1s ease;
}

.gallery__detail__wrapper__subtitle {
  font-size: 18px;
  line-height: 1.4;
  margin-bottom: 24px;
}
@media screen and (min-width: 1025px) {
  .gallery__detail__wrapper__subtitle {
    font-size: 24px;
  }
}

.gallery__card__swiper-slide-text {
  overflow: hidden;
  display: -webkit-box;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 12px;
  line-height: 1.4;
  margin-top: 12px;
}
@media screen and (min-width: 1025px) {
  .gallery__card__swiper-slide-text {
    font-size: 16px;
  }
}

.gallery__card__swiper-slide-img {
  position: relative;
  width: 100%;
  display: block;
  overflow: hidden;
  border-radius: 18px;
}
.gallery__card__swiper-slide-img::before {
  content: "";
  display: block;
  padding-top: 100%;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.05);
}
.gallery__card__swiper-slide-img img {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.6s ease;
}
.gallery__card__swiper-slide-img:hover img {
  transform: scale(1.1); /* 拡大 */
}

.gallery__card__swiper-container {
  position: relative;
}

.swiper-button-next:after, .swiper-button-prev:after {
  display: none;
}

.swiper-button-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -44px !important;
  height: 100%;
}

.swiper-button-prev {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: -44px !important;
}

.swiper-button-prev, .swiper-button-next {
  width: 32px !important;
  height: 100% !important;
}
.swiper-button-prev:hover, .swiper-button-next:hover {
  opacity: 0.6;
}

.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled {
  display: none;
}

.top__contents__gallery {
  padding-bottom: 50px;
  padding-bottom: calc(2.6997840173vw + 1px);
}

.gallery__item--text--illustration {
  font-size: 16px;
  line-height: 1.4;
  margin-top: -8px;
}

.gallery__bg01 {
  top: -5.3333333333vw;
}
@media screen and (min-width: 1025px) {
  .gallery__bg01 {
    left: 0;
  }
}

.gallery__bg02 {
  top: 5.6vw;
  right: -13.3333333333vw;
}
@media screen and (min-width: 1025px) {
  .gallery__bg02 {
    top: 0;
    right: 2.9166666667vw;
  }
}

.top__contents__gallery__detail {
  background: #FEDA00;
  height: calc(110px + 4.8vw);
}
@media screen and (min-width: 1025px) {
  .top__contents__gallery__detail {
    height: 12.1578947368vw;
  }
}

.contact__inner--detail {
  padding-top: 64px;
  padding-bottom: 20vw;
}
@media screen and (min-width: 1025px) {
  .contact__inner--detail {
    padding-top: 91px;
    padding-bottom: 9.375vw;
  }
}

@media screen and (max-width: 767px) {
  .gallery__card__inner {
    margin-right: -6vw;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .gallery__card__inner {
    margin-right: -6vw;
  }
}

.news__detail__inner {
  padding-top: 32px;
  padding-bottom: 32vw;
}
@media screen and (min-width: 1025px) {
  .news__detail__inner {
    padding-top: 35px;
    padding-bottom: 14.1145833333vw;
  }
}

.news__item__left__detail {
  gap: 16px;
}
@media screen and (min-width: 1025px) {
  .news__item__left__detail {
    gap: 24px;
  }
}

.news__detail__title {
  font-size: 24px;
  line-height: 1.8;
  margin-top: 20px;
  margin-bottom: 20px;
}
@media screen and (min-width: 1025px) {
  .news__detail__title {
    font-size: 40px;
    line-height: 1.8;
    margin-top: 40px;
    margin-bottom: 40px;
  }
}

.news__detail__contents {
  margin-bottom: 40px;
}
@media screen and (min-width: 1025px) {
  .news__detail__contents {
    margin-bottom: 56px;
  }
}
.news__detail__contents p {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 20px;
}
@media screen and (min-width: 1025px) {
  .news__detail__contents p {
    font-size: 20px;
    margin-bottom: 56px;
  }
}
.news__detail__contents figure {
  margin-bottom: 8px;
  text-align: center;
}
@media screen and (min-width: 1025px) {
  .news__detail__contents figure {
    margin-bottom: 24px;
  }
}

.section__title__detail {
  text-align: center;
  line-height: 1;
  z-index: 5;
  position: relative;
  padding-top: 120px;
  padding-bottom: 40px;
  white-space: nowrap;
}
@media screen and (min-width: 1025px) {
  .section__title__detail {
    padding-top: 230px;
    padding-bottom: 91px;
  }
}
.section__title__detail h1 {
  font-size: 40px;
  margin-bottom: 8px;
}
@media screen and (min-width: 1025px) {
  .section__title__detail h1 {
    font-size: 80px;
    margin-bottom: 16px;
  }
}
.section__title__detail p {
  font-size: 12px;
}
@media screen and (min-width: 1025px) {
  .section__title__detail p {
    font-size: 20px;
  }
}

.page__news__top {
  text-align: center;
  line-height: 0;
}
.page__news__top a {
  padding: 12px 40px 12px 80px;
  border-radius: 900px;
  background: #35AF3A;
  border: 1.5px solid #35AF3A;
  z-index: 1;
  transition: color 0.8s;
  color: #fff;
  font-size: 16px;
  line-height: 1.8;
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
  overflow: hidden;
  position: relative;
}
@media screen and (min-width: 1025px) {
  .page__news__top a {
    padding-top: 16px;
    padding-bottom: 16px;
    font-size: 18px;
  }
}
.page__news__top a::before {
  position: absolute;
  content: "";
  top: 0;
  bottom: 0;
  margin: auto;
  background: transparent url(/img/left-icon.svg) no-repeat center center/contain;
  left: 40px;
  width: 16px;
  height: 14px;
  transition: background 0.3s ease; /* ホバー時の背景画像変更をスムーズに */
}
.page__news__top a::after {
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: 0.6s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.page__news__top a:hover {
  background: #35AF3A; /* これ自体は::beforeで隠されるのであまり意味がない */
  color: #35AF3A; /* テキストの色が変わる */
}
.page__news__top a:hover::before {
  background: transparent url(/img/arrow-green-prev.svg) no-repeat center center/contain;
  /* ここにアニメーションプロパティを追加 */
  -webkit-animation: moveArrow-reverse 1s ease;
          animation: moveArrow-reverse 1s ease; /* アニメーション名、時間、終了時の状態 */
  /* animation-delayは不要であれば削除 */
}
.page__news__top a:hover::after {
  transform: scale(1, 1);
}

.profile__swiper-container {
  background: #FFFBE5;
  padding-top: 40px;
  padding-bottom: 40px;
}
@media screen and (min-width: 1025px) {
  .profile__swiper-container {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}

.profile__swiper-container-title {
  font-size: 24px;
  line-height: 1.8;
  margin-bottom: -28px;
  text-align: center;
}
@media screen and (min-width: 1025px) {
  .profile__swiper-container-title {
    font-size: 36px;
  }
}

.profile__swiper-slide-img {
  position: relative;
  overflow: hidden;
  margin-bottom: 12px;
  box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.05);
}
.profile__swiper-slide-img::before {
  content: "";
  padding-top: 100%;
  display: block;
}
.profile__swiper-slide-img img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 32px;
}

.profile__swiper-slide-title {
  font-size: 14px;
  line-height: 1.4;
  display: -webkit-box; /* 必須 */
  -webkit-box-orient: vertical; /* 必須 */
  -webkit-line-clamp: 2; /* 行数を制限 */
  overflow: hidden; /* はみ出た部分を非表示 */
}

.profile-swiper-button-prev,
.profile-swiper-button-next,
.swiper-pagination-bullets.swiper-pagination-horizontal {
  top: unset;
  bottom: unset;
  left: unset;
  right: unset;
  margin: 0;
  padding: 0;
}

/* 各ボタンのカスタマイズ */
.profile-swiper-button-prev,
.profile-swiper-button-next {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  width: 40px !important;
  height: 40px !important;
  background: #35AF3A;
  border-radius: 900px;
  z-index: 3;
}
.profile-swiper-button-prev img,
.profile-swiper-button-next img {
  position: relative;
  left: 17px;
  top: -2px;
  width: 8px;
  height: 16px;
}

.profile-swiper-button-prev {
  left: 12.5333333333vw;
}

.profile-swiper-button-next {
  right: 12.5333333333vw;
}

.profile__swiper-container {
  position: relative;
}

.profile__item__wrapper {
  border-radius: 24px;
  background: #FFF;
  box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.1);
}

.profile__bottom__contents {
  background: transparent;
  padding-top: 64px;
  padding-bottom: 81px;
}
@media screen and (min-width: 1025px) {
  .profile__bottom__contents {
    padding-top: 120px;
    padding-bottom: 210px;
  }
}

.profile__bottom__contents__items {
  display: flex;
  gap: 24px;
}
@media screen and (max-width: 767px) {
  .profile__bottom__contents__items {
    flex-direction: column;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .profile__bottom__contents__items {
    flex-direction: column;
  }
}
@media screen and (min-width: 1025px) {
  .profile__bottom__contents__items {
    display: grid; /* Grid レイアウトを有効にする */
    gap: 44px;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "area1 area2" "area3 area2" "area3 area2" "area3 area4" "area3 area5";
  }
}

.box-big1 {
  grid-area: area1;
}

.box-big2 {
  grid-area: area2;
}

.box-big3 {
  grid-area: area3;
}

.box-big4 {
  grid-area: area4;
}

.profile__item__inner {
  padding: 20px 24px;
}
@media screen and (min-width: 1025px) {
  .profile__item__inner {
    padding: 48px 56px;
  }
}

.profile__item__title {
  font-size: 24px;
  line-height: 1.8;
  margin-bottom: 16px;
}
@media screen and (min-width: 1025px) {
  .profile__item__title {
    margin-bottom: 28px;
    font-size: 36px;
  }
}

.career__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
}
.career__list::before {
  position: absolute;
  content: "";
  background: transparent url(/img/career-border-sp.png) repeat-y center center/4px auto;
  width: 8px;
  height: 100%;
  top: 0;
  left: 0;
  background-position-y: 0px;
}
@media screen and (min-width: 1025px) {
  .career__list::before {
    background: transparent url(/img/career-border.png) repeat-y center center/4px auto;
    background-position-y: 0px;
    padding-top: 5px;
  }
}
.career__list li {
  position: relative;
  display: flex;
  align-items: center;
}
.career__list li::before {
  flex-shrink: 0;
  content: "";
  width: 8px;
  height: 8px;
  background: #35AF3A;
  margin-right: 16px;
  border-radius: 50%;
}
@media screen and (min-width: 1025px) {
  .career__list li::before {
    margin-right: 24px;
  }
}

.profile__detail__text {
  font-size: 16px;
  line-height: 1.8125;
}
@media screen and (min-width: 1025px) {
  .profile__detail__text {
    font-size: 18px;
    line-height: 1.7777777778;
  }
}

.award__text {
  display: flex;
  flex-direction: column;
}

.award__text__item {
  position: relative;
}
.award__text__item::after {
  position: absolute;
  content: "";
  left: 0;
  bottom: 0;
  background: transparent url(/img/news-border-sp.png) repeat center center/auto 100%;
  width: 100%;
  height: 5px;
}
@media screen and (min-width: 1025px) {
  .award__text__item::after {
    background: transparent url(/img/news-border-pc.png) repeat center center/auto 100%;
    height: 4px;
  }
}

.award__text .award__text__item:nth-of-type(1) {
  position: relative;
}
.award__text .award__text__item:nth-of-type(1)::before {
  position: absolute;
  content: "";
  left: 0;
  top: 0;
  background: transparent url(/img/news-border-sp.png) repeat center center/auto 100%;
  width: 100%;
  height: 5px;
}
@media screen and (min-width: 1025px) {
  .award__text .award__text__item:nth-of-type(1)::before {
    background: transparent url(/img/news-border-pc.png) repeat center center/auto 100%;
    height: 4px;
  }
}

.award__text__item__contents[href] {
  display: flex;
  flex-direction: row;
  gap: 20px;
  align-items: center;
  position: relative;
  padding-top: 16px;
  padding-bottom: 16px;
}
@media screen and (min-width: 1025px) {
  .award__text__item__contents[href] {
    position: relative;
  }
  .award__text__item__contents[href]::after {
    position: absolute;
    content: "";
    background: transparent url(/img/arrow-green-next.svg) no-repeat center center/contain;
    width: 16px;
    height: 14px;
    top: 0;
    bottom: 0;
    margin: auto;
    right: 0px;
    padding-top: 24px;
    padding-bottom: 24px;
  }
}
.award__text__item__contents[href]:hover::after {
  -webkit-animation: moveArrow 1s ease;
          animation: moveArrow 1s ease;
}
.award__text__item__contents[href]:hover .award__text__item__img img {
  transform: scale(1.1); /* 拡大 */
}

.award__text__item__contents {
  padding-top: 16px;
  padding-bottom: 16px;
  display: flex;
  flex-direction: row;
  gap: 20px;
  align-items: center;
}
@media screen and (min-width: 1025px) {
  .award__text__item__contents {
    padding-top: 24px;
    padding-bottom: 24px;
    padding-right: 36px;
  }
}

.award__text__item--padding {
  padding-top: 16px;
  padding-bottom: 16px;
}
@media screen and (min-width: 1025px) {
  .award__text__item--padding {
    padding-top: 24px;
    padding-bottom: 24px;
  }
}

.award__text__item__left {
  flex-grow: 1;
  line-height: 1;
}

@media screen and (min-width: 1025px) {
  .post .award__text__item__left, .exhibition .award__text__item__left {
    display: flex;
    align-items: center;
  }
}

.award__text__item--date {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 4px;
  color: #35AF3A;
}
.award__text__item--date.--black {
  color: #888;
}
@media screen and (min-width: 1025px) {
  .award__text__item--date {
    font-size: 18px;
  }
}

@media screen and (min-width: 1025px) {
  .post .award__text__item--date, .exhibition .award__text__item--date {
    margin-right: 24px;
  }
}

.award__text__item__img {
  width: 100px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  border: 1px solid #35AF3A;
}
.award__text__item__img::before {
  content: "";
  padding-top: 100%;
  display: block;
}
.award__text__item__img img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 12px;
  transition: transform 0.6s ease;
}

.profile__top__detail {
  width: 100%;
  position: absolute;
  top: -8.5333333333vw;
}
.profile__top__detail img {
  width: 100%;
}
@media screen and (min-width: 1025px) {
  .profile__top__detail {
    top: -4.6956521739vw;
  }
}

.client {
  padding-top: 68px;
  padding-bottom: 99px;
  background: #fff;
  position: relative;
}
@media screen and (min-width: 1025px) {
  .client {
    padding-top: 89px;
    padding-bottom: 270px;
  }
}

.client__top {
  position: absolute;
  width: 100%;
  top: -4.5333333333vw;
}
.client__top img {
  width: 100%;
  display: block;
}
@media screen and (min-width: 1025px) {
  .client__top {
    top: -4.7395833333vw;
  }
}

.client__title {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 36px;
}
@media screen and (min-width: 1025px) {
  .client__title {
    gap: 20px;
    flex-direction: row;
    padding-left: 134px;
    align-items: flex-end;
  }
}
.client__title h2 {
  font-size: 24px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .client__title h2 {
    font-size: 36px;
  }
}
.client__title span {
  color: #888;
  font-size: 12px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .client__title span {
    font-size: 14px;
    padding-bottom: 10px;
  }
}

.client__items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  -moz-column-gap: 24px;
       column-gap: 24px;
  position: relative;
  grid-template-columns: repeat(2, 1fr);
}
@media screen and (min-width: 1025px) {
  .client__items {
    grid-template-columns: repeat(3, 1fr);
    -moz-column-gap: 44px;
         column-gap: 44px;
    font-size: 18px;
  }
}
.client__items::after {
  position: absolute;
  content: "";
  background: transparent url(/img/bird.png) no-repeat center center/contain;
  width: 100px;
  height: 81px;
  top: -79px;
  right: 0;
}
@media screen and (min-width: 1025px) {
  .client__items::after {
    width: 120px;
    height: 97px;
    top: -95px;
    left: 0;
  }
}

.client__item {
  font-size: 14px;
  line-height: 1.8;
  position: relative;
}
@media screen and (min-width: 1025px) {
  .client__item {
    font-size: 18px;
  }
}
.client__item::after {
  position: absolute;
  content: "";
  background: transparent url(/img/news-border-sp.png) repeat center center/auto 100%;
  width: 100%;
  height: 5px;
  left: 0;
  bottom: 0;
}
@media screen and (min-width: 1025px) {
  .client__item::after {
    background: transparent url(/img/news-border-pc.png) repeat center center/auto 100%;
    height: 4px;
  }
}
.client__item a {
  display: block;
  position: relative;
  padding-right: 25px;
}
.client__item a::after {
  position: absolute;
  content: "";
  width: 14px;
  height: 12px;
  background: transparent url(/img/arrow-green-next.svg) no-repeat center center/contain;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
}
@media screen and (max-width: 767px) {
  .client__item a {
    padding-left: 2px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .client__item a {
    padding-left: 2px;
  }
}
@media screen and (min-width: 1025px) {
  .client__item a {
    padding-left: 5px;
  }
}
.client__item:hover a::after {
  -webkit-animation: moveArrow 1s ease;
          animation: moveArrow 1s ease;
}

@media screen and (min-width: 1025px) {
  .client__item:nth-of-type(3)::before {
    position: absolute;
    content: "";
    background: transparent url(/img/news-border-sp.png) repeat center center/auto 100%;
    width: 100%;
    height: 5px;
    left: 0;
    top: 0;
  }
}
@media screen and (min-width: 1025px) and (min-width: 1025px) {
  .client__item:nth-of-type(3)::before {
    background: transparent url(/img/news-border-pc.png) repeat center center/auto 100%;
    height: 4px;
  }
}

.client__item:nth-of-type(-n+2)::before {
  position: absolute;
  content: "";
  background: transparent url(/img/news-border-sp.png) repeat center center/auto 100%;
  width: 100%;
  height: 5px;
  left: 0;
  top: 0;
}
@media screen and (min-width: 1025px) {
  .client__item:nth-of-type(-n+2)::before {
    background: transparent url(/img/news-border-pc.png) repeat center center/auto 100%;
    height: 4px;
  }
}

.client__item__inner {
  padding-top: 16px;
  padding-bottom: 16px;
}
@media screen and (min-width: 1025px) {
  .client__item__inner {
    padding-top: 24px;
    padding-bottom: 24px;
  }
}

.wrap {
  display: block;
  width: 100%;
  height: 300px;
  overflow-x: scroll;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
@media screen and (min-width: 1025px) {
  .wrap {
    height: 650px;
  }
}

.wrap::-webkit-scrollbar {
  display: none;
}

.flex {
  display: flex;
  align-items: center;
  height: 100%;
}

.square__wrapper {
  opacity: 0.5;
  transition: opacity 0.6s ease;
}
.square__wrapper p {
  font-size: 14px;
  line-height: 1.4;
  display: -webkit-box; /* 必須 */
  -webkit-box-orient: vertical; /* 必須 */
  -webkit-line-clamp: 2; /* 行数を制限 */
  overflow: hidden; /* はみ出た部分を非表示 */
}
@media screen and (min-width: 1025px) {
  .square__wrapper p {
    font-size: 18px;
  }
}

.square__wrapper.current-item {
  opacity: 1;
}

.square {
  border-radius: 32px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  margin-bottom: 12px;
}
.square::before {
  content: "";
  padding-top: 100%;
  display: block;
}
.square img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 32px;
  transition: transform 0.6s ease;
}
.square:hover img {
  transform: scale(1.1);
}

.js-previous, .js-next {
  background: #35AF3A;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  position: absolute;
  top: 53%;
  transform: translateY(-53%);
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (min-width: 1025px) {
  .js-previous, .js-next {
    width: 60px;
    height: 60px;
  }
}
.js-previous img, .js-next img {
  width: 8px;
  height: 14px;
}
@media screen and (min-width: 1025px) {
  .js-previous img, .js-next img {
    width: 10px;
    height: 18px;
  }
}

.js-previous {
  left: 50px;
}
@media screen and (min-width: 1025px) {
  .js-previous {
    left: 150px;
  }
}

.js-next {
  right: 50px;
}
@media screen and (min-width: 1025px) {
  .js-next {
    right: 150px;
  }
}

.privacy__policy {
  position: relative;
  background: #F9F8F4;
}

.privacy__policy__items {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding-top: 20px;
}
@media screen and (min-width: 1025px) {
  .privacy__policy__items {
    gap: 44px;
    padding-top: 56px;
  }
}

.privacy__policy__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.privacy__policy__title {
  font-size: 18px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .privacy__policy__title {
    font-size: 24px;
  }
}

.privacy__policy__text, .privacy__policy__contents {
  font-size: 14px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .privacy__policy__text, .privacy__policy__contents {
    font-size: 16px;
  }
}

.privacy__policy__text a {
  text-decoration: underline;
}

.privacy__policy__contents p {
  font-size: 14px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .privacy__policy__contents p {
    font-size: 16px;
  }
}

.privacy__policy__list {
  font-size: 14px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .privacy__policy__list {
    font-size: 16px;
  }
}
.privacy__policy__list li {
  display: flex;
}

.thanks__contents {
  padding-top: 120px;
  padding-bottom: 32.2666666667vw;
  text-align: center;
  background: #F9F8F4;
}
@media screen and (min-width: 1025px) {
  .thanks__contents {
    padding-top: 179px;
    padding-bottom: 14.1666666667vw;
  }
}

.thanks__title {
  font-size: 24px;
  line-height: 1.6;
  margin-bottom: 16px;
}
@media screen and (min-width: 1025px) {
  .thanks__title {
    font-size: 40px;
    line-height: 1.8;
    margin-bottom: 8px;
  }
}

.thanks__text {
  font-size: 14px;
  line-height: 1.8;
  margin-bottom: 60px;
}
@media screen and (min-width: 1025px) {
  .thanks__text {
    font-size: 18px;
    margin-bottom: 80px;
  }
}

.page__thanks__top {
  text-align: center;
  line-height: 0;
}
.page__thanks__top a {
  padding: 14px 21px 14px 63px;
  border-radius: 900px;
  background: #35AF3A;
  border: 1.5px solid #35AF3A;
  z-index: 1;
  transition: color 0.8s;
  color: #fff;
  font-size: 18px;
  line-height: 1.8;
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
  overflow: hidden;
  position: relative;
}
@media screen and (min-width: 1025px) {
  .page__thanks__top a {
    padding: 19px 48px 19px 90px;
    font-size: 22px;
  }
}
.page__thanks__top a::before {
  position: absolute;
  content: "";
  top: 0;
  bottom: 0;
  margin: auto;
  background: transparent url(/img/left-icon.svg) no-repeat center center/contain;
  left: 28px;
  width: 18px;
  height: 16px;
  transition: background 0.3s ease; /* ホバー時の背景画像変更をスムーズに */
}
@media screen and (min-width: 1025px) {
  .page__thanks__top a::before {
    left: 40px;
  }
}
.page__thanks__top a::after {
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: 0.6s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.page__thanks__top a:hover {
  background: #35AF3A; /* これ自体は::beforeで隠されるのであまり意味がない */
  color: #35AF3A; /* テキストの色が変わる */
}
.page__thanks__top a:hover::before {
  background: transparent url(/img/arrow-green-prev.svg) no-repeat center center/contain;
  /* ここにアニメーションプロパティを追加 */
  -webkit-animation: moveArrow-reverse 1s ease;
          animation: moveArrow-reverse 1s ease; /* アニメーション名、時間、終了時の状態 */
  /* animation-delayは不要であれば削除 */
}
.page__thanks__top a:hover::after {
  transform: scale(1, 1);
}

.form {
  background: #F9F8F4;
  position: relative;
  padding-top: 63px;
  padding-bottom: 25.0666666667vw;
}
@media screen and (min-width: 1025px) {
  .form {
    padding-top: 91px;
    padding-bottom: 14.1145833333vw;
  }
}

.contact__form {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
@media screen and (min-width: 1025px) {
  .contact__form {
    gap: 44px;
  }
}

.form__row {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 1025px) {
  .form__row {
    flex-direction: row;
  }
}

.form__head {
  font-size: 16px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .form__head {
    font-size: 20px;
    width: 280px;
    flex-shrink: 0;
  }
}
.form__head span.--must {
  position: relative;
  display: inline-block;
}
.form__head span.--must::after {
  content: "必須";
  position: absolute;
  bottom: 2px;
  left: calc(100% + 10px);
  font-size: 12px;
  line-height: 1.8;
  display: inline-block;
  color: #EE5C4F;
  white-space: nowrap;
}
@media screen and (min-width: 1025px) {
  .form__head span.--must::after {
    font-size: 14px;
    left: calc(100% + 12px);
  }
}
.form__head span.--must.--name {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.form__data {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin-top: 12px;
}
@media screen and (min-width: 1025px) {
  .form__data {
    margin-top: 0;
  }
}
@media screen and (min-width: 1025px) {
  .form__data.--select, .form__data.--company, .form__data.--budget, .form__data.--leadtime {
    width: 31.25vw;
  }
}
@media screen and (min-width: 1025px) {
  .form__data.--email {
    width: 46.875vw;
  }
}
.form__data.--textarea p:not(.contact__error-message) {
  min-height: 140px;
}
.form__data.--textarea textarea {
  min-height: 140px;
}

.form__data__contents.--name {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 77.3333333333vw;
}
@media screen and (min-width: 1025px) {
  .form__data__contents.--name {
    flex-direction: row;
    gap: 20px;
    width: 39.375vw;
  }
}
.form__data__contents.--tel {
  display: flex;
  flex-direction: row;
  gap: 12px;
  align-items: center;
}
.form__data__contents.--tel input[type=text]#inTel01 {
  width: 65px;
}
.form__data__contents.--tel input[type=text]#inTel02, .form__data__contents.--tel #inTel03 {
  width: 75px;
}
@media screen and (min-width: 1025px) {
  .form__data__contents.--tel {
    gap: 20px;
  }
  .form__data__contents.--tel input[type=text]#inTel01 {
    width: 84px;
  }
  .form__data__contents.--tel input[type=text]#inTel02, .form__data__contents.--tel #inTel03 {
    width: 96px;
  }
}

.form__confirm,
.form__data input[type=text],
.form__data input[type=email],
.form__data select,
.form__data textarea {
  width: 100%;
  height: 100%;
  padding: 12px 16px;
  border-radius: 16px;
  border: none;
  font-size: 16px;
  line-height: 1.8;
  font-weight: 600;
}
@media screen and (min-width: 1025px) {
  .form__confirm,
.form__data input[type=text],
.form__data input[type=email],
.form__data select,
.form__data textarea {
    padding: 16px 24px;
    border-radius: 20px;
    font-size: 20px;
  }
}

.form__confirm {
  border: 1px solid #DDD;
}

.form__confirm.--inTel01 {
  width: 65px;
}
@media screen and (min-width: 1025px) {
  .form__confirm.--inTel01 {
    width: 84px;
  }
}

.form__confirm.--inTel02, .form__confirm.--inTel03 {
  width: 75px;
}
@media screen and (min-width: 1025px) {
  .form__confirm.--inTel02, .form__confirm.--inTel03 {
    width: 96px;
  }
}

.form__data-checkbox {
  text-align: center;
}

.form__data-checkbox label span {
  font-size: 16px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .form__data-checkbox label span {
    font-size: 20px;
  }
}

.form__data-checkbox label span a {
  text-decoration: underline;
}

textarea {
  resize: vertical;
}

select {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  background: #fff;
}

.contact__select-wrap {
  position: relative;
  width: 100%;
}
.contact__select-wrap img {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 20px;
  width: 12px;
  height: auto;
  pointer-events: none;
}
@media screen and (min-width: 1025px) {
  .contact__select-wrap img {
    width: 16px;
    right: 24px;
  }
}

.form__data input::-moz-placeholder, .form__data textarea::-moz-placeholder {
  color: #D9D9D9;
  font-size: 16px;
  font-weight: 600;
  opacity: 1; /* 一部のブラウザでデフォルトでopacityが設定されていることがあるため、確実に表示させる */
}

.form__data input::placeholder,
.form__data textarea::placeholder {
  color: #D9D9D9;
  font-size: 16px;
  font-weight: 600;
  opacity: 1; /* 一部のブラウザでデフォルトでopacityが設定されていることがあるため、確実に表示させる */
}
@media screen and (min-width: 1025px) {
  .form__data input::-moz-placeholder, .form__data textarea::-moz-placeholder {
    font-size: 20px;
  }
  .form__data input::placeholder,
.form__data textarea::placeholder {
    font-size: 20px;
  }
}

input[type=checkbox] {
  width: 1px;
  height: 1px;
  position: absolute;
  clip: rect(0, 0, 0, 0);
}

input[type=checkbox]:checked + span::after {
  opacity: 1;
}

.form__data-checkbox span {
  display: inline-block;
  padding-left: 34px;
  position: relative;
}
@media screen and (min-width: 1025px) {
  .form__data-checkbox span {
    padding-left: 36px;
  }
}
.form__data-checkbox span::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  width: 24px;
  height: 24px;
  background: transparent url(/img/checkbox-before.svg) no-repeat center center/contain;
}
@media screen and (min-width: 1025px) {
  .form__data-checkbox span::before {
    top: 6px;
  }
}
.form__data-checkbox span::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  width: 24px;
  height: 24px;
  opacity: 0;
  background: transparent url(/img/checkbox-after.svg) no-repeat center center/contain;
  transition: opacity 0.3s ease;
}
@media screen and (min-width: 1025px) {
  .form__data-checkbox span::after {
    top: 6px;
  }
}

input[type=submit],
input[type=button] {
  border-radius: 0px;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  -moz-appearance: button;
       appearance: button;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
  background: transparent;
}

input[type=submit]::-webkit-search-decoration,
input[type=button]::-webkit-search-decoration {
  display: none;
}

.form__submit {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  line-height: 0;
  position: relative;
  overflow: hidden;
  z-index: 1;
  transition: color 0.8s;
  border-radius: 900px;
  background: #35AF3A;
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
  color: #fff;
  font-size: 18px;
  line-height: 1.8;
  border: 1.5px solid #35AF3A;
  text-align: center;
  font-weight: 600;
}
@media screen and (min-width: 1025px) {
  .form__submit {
    font-size: 22px;
  }
}
.form__submit.--center {
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 767px) {
  .form__submit.--confirm {
    margin-left: auto;
    margin-right: auto;
    width: 286px;
  }
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .form__submit.--confirm {
    margin-left: auto;
    margin-right: auto;
    width: 286px;
  }
}
@media screen and (min-width: 1025px) {
  .form__submit.--confirm {
    width: 356px;
  }
}
.form__submit::after {
  position: absolute;
  content: "";
  background: transparent url(/img/right-icon.svg) no-repeat center center/contain;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 70px;
  width: 18px;
  height: 16px;
  transition: background 0.3s ease; /* ホバー時の背景画像変更をスムーズに */
}
.form__submit::before {
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: 0.6s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.form__submit:hover {
  background: #35AF3A; /* これ自体は::beforeで隠されるのであまり意味がない */
  color: #35AF3A; /* テキストの色が変わる */
}
.form__submit:hover::after {
  background: transparent url(/img/arrow-green-next.svg) no-repeat center center/contain;
  /* ここにアニメーションプロパティを追加 */
  -webkit-animation: moveArrow 1s ease;
          animation: moveArrow 1s ease; /* アニメーション名、時間、終了時の状態 */
  /* animation-delayは不要であれば削除 */
}
.form__submit:hover::before {
  transform: scale(1, 1);
}

.form__submit button[type=submit] {
  color: #fff;
  padding: 20px 102px 20px 60px;
}
@media screen and (min-width: 1025px) {
  .form__submit button[type=submit] {
    padding: 20px 122px 20px 80px;
  }
}
.form__submit button[type=submit]:hover {
  color: #35AF3A;
}

#button {
  display: inline-block;
}

.contact__error-message {
  color: #EE5C4F;
  font-size: 12px;
  margin-top: 8px;
  line-height: 1.8;
}
@media screen and (min-width: 1025px) {
  .contact__error-message {
    font-size: 16px;
  }
}

/* 入力が不正なときの枠線 */
input.invalid,
select.invalid,
textarea.invalid {
  border: 1px solid #EE5C4F !important;
}

#confirmButton {
  display: inline-block;
  background: #35AF3A;
  padding: 11px 80px 11px 40px;
  border-radius: 900px;
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
  color: #fff;
  font-size: 16px;
  line-height: 1.8;
  position: relative;
  border: 1.5px solid #35AF3A;
  overflow: hidden;
  z-index: 1;
  transition: color 0.8s;
  text-align: left;
}
@media screen and (min-width: 1025px) {
  #confirmButton {
    padding-top: 16px;
    padding-bottom: 16px;
  }
}

.form-section {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
@media screen and (min-width: 1025px) {
  .form-section {
    gap: 44px;
  }
}

select.is-empty {
  color: #D9D9D9;
}

select:has(option:checked[value=""]) {
  color: #D9D9D9;
}

.form__confirm__btn {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media screen and (min-width: 1025px) {
  .form__confirm__btn {
    flex-direction: row;
    margin-left: auto;
    margin-right: auto;
    gap: 80px;
  }
}

.form__return {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  line-height: 0;
  position: relative;
  overflow: hidden;
  z-index: 1;
  transition: color 0.8s;
  border-radius: 900px;
  background: #fff;
  box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
  color: #35AF3A;
  font-size: 18px;
  line-height: 1.8;
  border: 1.5px solid #35AF3A;
  text-align: left;
  margin-left: auto;
  margin-right: auto;
  white-space: nowrap;
}
.form__return input[type=button] {
  padding: 20px 60px 20px 102px;
  width: 286px;
}
@media screen and (min-width: 1025px) {
  .form__return input[type=button] {
    padding: 20px 80px 20px 122px;
    width: 356px;
  }
}
@media screen and (min-width: 1025px) {
  .form__return {
    font-size: 22px;
  }
}
.form__return.--center {
  margin-left: auto;
  margin-right: auto;
}
.form__return::after {
  position: absolute;
  content: "";
  background: transparent url(/img/arrow-green-prev.svg) no-repeat center center/contain;
  top: 0;
  bottom: 0;
  margin: auto;
  left: 69px;
  width: 18px;
  height: 16px;
  transition: background 0.3s ease; /* ホバー時の背景画像変更をスムーズに */
}
.form__return::before {
  background: #35AF3A;
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 100%;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: 0.6s cubic-bezier(0.45, 0, 0.55, 1);
  z-index: -1;
}
.form__return:hover {
  background: #fff; /* これ自体は::beforeで隠されるのであまり意味がない */
  color: #fff; /* テキストの色が変わる */
}
.form__return:hover::after {
  background: transparent url(/img/left-icon.svg) no-repeat center center/contain;
  /* ここにアニメーションプロパティを追加 */
  -webkit-animation: moveArrow-reverse 1s ease;
          animation: moveArrow-reverse 1s ease; /* アニメーション名、時間、終了時の状態 */
  /* animation-delayは不要であれば削除 */
}
.form__return:hover::before {
  transform: scale(1, 1);
}

input:-webkit-autofill {
  box-shadow: 0 0 0 1000px #fff inset;
}

.profile__swiper-wrapper {
  display: flex;
  align-items: center;
  transition-timing-function: linear;
}

.profile__swiper-slide img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.parallax {
  height: 100%;
}

.parallax:empty::before {
  background-image: linear-gradient(rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6)), url(/img/profile-bg.webp);
  background-position: center;
  background-size: cover;
  content: "";
  height: 100vh;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: -1;
}

.profile__swiper__contents__wrapper {
  position: fixed;
  width: 100%;
  z-index: -1;
  height: 100vh;
  top: 0;
  left: 0;
}
.profile__swiper__contents__wrapper::after {
  content: ""; /* 擬似要素には content プロパティが必須 */
  position: absolute; /* 親要素（.content-wrapper）を基準に配置 */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* ここに linear-gradient を背景として適用 */
  background: linear-gradient(rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));
  z-index: 1;
}

.page__404 {
  background: #FEDA00;
  min-height: 100vh;
}

.page__404__contents {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.page__404__contents picture {
  margin-bottom: 5.3333333333vw;
  display: inline-block;
  width: 74.6666666667vw;
}
@media screen and (min-width: 1025px) {
  .page__404__contents picture {
    margin-bottom: 2.8125vw;
    max-width: 772px;
    width: 40.2083333333vw;
  }
}

.page__404__text {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.8;
  text-align: center;
  margin-bottom: 78px;
}
@media screen and (min-width: 1025px) {
  .page__404__text {
    font-size: 1.6666666667vw;
    margin-bottom: 4.1666666667vw;
  }
}