@charset "UTF-8";
body {
  color: #3E342F;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
  margin: 0;
  min-height: 100vh; /* コンテンツが少なくても画面いっぱい */
  background-image: url("../img/bg-washi_1.png");
  background-repeat: repeat; /* タイル状に繰り返す */
  background-position: 0 0; /* 左上から開始 */
  background-size: auto; /* 画像の原寸（必要なら下の例で調整） */
  background-color: #faf7f2; /* フォールバック色（任意） */
  padding-top: 92px;
}
@media screen and (max-width: 767px) {
  body {
    padding-top: 65px;
  }
}
@media screen and (max-width: 767px) {
  body.is-footer-sns-fixed {
    padding-bottom: 67px;
  }
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
}

.l-inner {
  width: 1200px;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 768px) and (max-width:1023px) {
  .l-inner {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media screen and (max-width: 767px) {
  .l-inner {
    padding-left: 16px;
    padding-right: 16px;
  }
}

.c-button {
  width: 240px;
  height: 52px;
  color: #F7F7ED;
  font-size: 18px;
  font-weight: 700;
  background-color: #F6A623;
  border: none;
  border-radius: 100px;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .c-button {
    width: 180px;
  }
}
.c-button:hover {
  background: transparent;
  border: 2px solid #F6A623;
  color: #ED9911;
}

.c-link-button {
  height: 51px;
  border-radius: 100px;
  background: #773602;
  padding-left: 20px;
  padding-right: 13px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 22px;
  color: #FFF;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
@media screen and (max-width: 767px) {
  .c-link-button {
    min-width: 211px;
    padding: 11.437px 13px 11.437px 17.595px;
    border-radius: 88px;
    font-size: 15.836px;
    line-height: 140%; /* 22.17px */
    letter-spacing: 1.267px;
    gap: 19.45px;
  }
}
@media screen and (max-width: 767px) {
  .c-link-button--s {
    gap: 30px;
  }
}
.c-link-button:hover {
  color: #ED9911;
}

.c-link-button__image {
  width: 24px;
  height: 24px;
}
@media screen and (max-width: 767px) {
  .c-link-button__image {
    width: 21px;
    height: 21px;
  }
}

.c-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 2px 9px 3px 9px;
  border-radius: 30px;
  background: #F6A623;
  color: var(--white, #FFF);
  font-size: 14px;
  font-weight: 700;
  line-height: 100%; /* 14px */
  letter-spacing: 1.12px;
}

.c-header__tag {
  color: #ED9911;
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 100%; /* 16px */
  letter-spacing: 1.28px;
  text-transform: uppercase;
}
.c-header__tag--black {
  color: #3E342F;
}

.c-header__title {
  margin-top: 4px;
  color: #3E342F;
  font-size: 64px;
  font-style: normal;
  font-weight: 700;
  line-height: 130%; /* 83.2px */
  letter-spacing: 5.12px;
}
@media screen and (max-width: 767px) {
  .c-header__title {
    font-size: 30px;
    letter-spacing: 2.4px;
  }
}
.c-header__title--s {
  font-size: 50px;
  line-height: 120%; /* 60px */
  letter-spacing: 4px;
}
@media screen and (max-width: 767px) {
  .c-header__title--s {
    font-size: 35px;
    line-height: 120%; /* 42px */
    letter-spacing: 2.8px;
  }
}

.c-header__icon {
  width: 32px;
  height: 35px;
  margin-bottom: 20px;
}

.c-header__lower {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 26px;
}
.c-header__lower .c-header__icon {
  padding-top: 16px;
}
.c-header__lower .c-header__title--s {
  font-size: 34px;
}

.c-page-title-en {
  color: #ED9911;
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  line-height: 100%; /* 16px */
  letter-spacing: 1.28px;
  text-transform: uppercase;
  font-weight: 700;
}

.c-page-title-ja {
  color: #3E342F;
  text-align: center;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 64px;
  line-height: 130%; /* 83.2px */
  letter-spacing: 5.12px;
  font-weight: 700;
  margin-top: 2px;
}
@media screen and (max-width: 767px) {
  .c-page-title-ja {
    font-size: 50px;
    line-height: 130%;
    letter-spacing: 4.12px;
  }
}

.p-header {
  padding-inline: 40px;
  position: fixed;
  width: 100%;
  left: 0;
  top: 0;
  background-color: #faf7f2;
  background-image: url("../img/bg-washi_1.png");
  z-index: 1000;
}
@media screen and (max-width: 767px) {
  .p-header {
    padding-inline: 15px;
  }
}

.p-header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  height: 92px;
}
@media screen and (max-width: 767px) {
  .p-header__inner {
    height: 65px;
  }
}
.p-header__inner--lower {
  height: 70px;
}

.p-header__logo {
  width: 200px;
  height: 30px;
}
@media screen and (max-width: 767px) {
  .p-header__logo {
    margin-bottom: 8px;
    text-align: center;
    width: 140px;
    height: 23px;
  }
}

.p-header__logo-link {
  line-height: 1.2;
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-size: 36px;
  text-decoration: none;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
@media screen and (max-width: 767px) {
  .p-header__logo-link {
    font-size: 26px;
  }
}

.header__logo-link img {
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.header__logo-link img:hover {
  opacity: 0.8;
}

.p-header__contents {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 40px;
  margin-left: auto;
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .p-header__contents {
    gap: 20px;
  }
}

.p-header__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 18px;
  font-weight: 700;
}

.p-header__nav-lists {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 32px;
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .p-header__nav-lists {
    gap: 20px;
    font-size: 17px;
  }
}

.p-header__nav-item-text {
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.p-header__nav-item-text:hover {
  color: #ED9911;
}

.drawer-icon {
  width: 60px;
  height: 60px;
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 6px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  background: #F6A623;
  border-radius: 5px;
  z-index: 1002;
}
@media screen and (max-width: 767px) {
  .drawer-icon {
    width: 45px;
    height: 45px;
  }
}
@media screen and (min-width:1024px) {
  .drawer-icon {
    display: none;
  }
}
.drawer-icon.is-checked .drawer-icon__bar:nth-child(1) {
  top: 3px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.drawer-icon.is-checked .drawer-icon__bar:nth-child(1)::before {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}
.drawer-icon.is-checked .drawer-icon__bar:nth-child(2) {
  top: -4px;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.drawer-icon__bar {
  position: relative;
  display: block;
  width: 30px;
  height: 1px;
  background: #fff;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  .drawer-icon__bar {
    width: 22px;
    height: 1px;
  }
}

.drawer-contents {
  position: fixed;
  top: 84px;
  left: 0;
  width: 100%;
  z-index: 1001;
  height: 100vh;
  overflow-y: auto;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
  opacity: 0;
  -webkit-transition: opacity 0.3s ease-out, -webkit-transform 0.3s ease-out;
  transition: opacity 0.3s ease-out, -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out, opacity 0.3s ease-out;
  transition: transform 0.3s ease-out, opacity 0.3s ease-out, -webkit-transform 0.3s ease-out;
  background-color: #faf7f2;
  background-image: url("../img/bg-washi_1.png");
  background-position: top;
}
@media screen and (max-width: 767px) {
  .drawer-contents {
    top: 60px;
  }
}
.drawer-contents.is-checked {
  display: block;
  -webkit-transform: translateX(0);
          transform: translateX(0);
  opacity: 1;
}

.drawer-menu__lists {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 26px;
  text-align: left;
  margin-top: 263px;
  padding-left: 60px;
}

.drawer-menu-item-text {
  font-size: 18px;
  letter-spacing: -0.54px;
}
.drawer-menu-item-text--small {
  line-height: 150%;
  letter-spacing: -0.45px;
}

.drawer-menu-button-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 60px;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 18px;
  margin-top: 35px;
  padding-left: 40px;
}

.drawer-menu-button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
}

.p-footer {
  background: #464646;
}

.p-footer__inner {
  padding-bottom: 20px;
  padding-top: 18px;
}

.p-footer__copy {
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  margin-bottom: 2px;
  text-align: center;
}

.p-footer__by {
  color: #fff;
  font-family: "Montserrat", sans-serif;
  font-size: 11px;
  text-align: center;
}
.p-footer__by a {
  text-decoration: none;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
.p-footer__by a:hover {
  opacity: 0.6;
}

.u-separate {
  margin-top: 24px;
  margin-bottom: 24px;
}

.u-separate-line {
  margin-top: 24px;
  margin-bottom: 24px;
  width: 100%;
  border-bottom: 1px solid #666666;
}

@media screen and (min-width:1024px) {
  .u-hidden-pc {
    display: none;
  }
}

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

@media (min-width: 768px) and (max-width:1023px) {
  .u-hidden-tab {
    display: none;
  }
}

.fv {
  padding-top: 30px;
}

.fv__title {
  margin-top: 20px;
  color: #ED9911;
  text-align: center;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 94px;
  font-style: normal;
  font-weight: 900;
  line-height: 130%; /* 122.2px */
  letter-spacing: 9.4px;
}
.fv__title--black {
  color: #3E342F;
}
@media screen and (max-width: 767px) {
  .fv__title {
    font-size: 53px;
    font-weight: 700;
    line-height: 110%;
    letter-spacing: 5.3px;
  }
  .fv__title--black {
    letter-spacing: -3.71px;
  }
}

.fv__logo {
  width: 564px;
  height: auto;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .fv__logo {
    width: 300px;
  }
}

.mv-bg {
  margin-top: 34px;
  position: relative;
  width: 100%; /* 横幅は画面幅などに合わせる */
  aspect-ratio: 1440/690; /* アスペクト比を指定 */
}
@media screen and (max-width: 767px) {
  .mv-bg {
    aspect-ratio: 375/476;
  }
}

.mv-bg .bg {
  position: absolute;
  inset: 0;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0; /* 最初は非表示 */
}

.mission {
  padding-top: 180px;
}
@media screen and (max-width: 767px) {
  .mission {
    padding-top: 93px;
  }
}

@media screen and (max-width: 767px) {
  .mission__title {
    margin-right: -16px;
  }
}

.mission__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (max-width: 767px) {
  .mission__container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

.mission__container-left {
  padding-top: 80px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 30px;
  max-width: 661px;
}

.mission__text {
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: 200%; /* 36px */
  letter-spacing: 1.44px;
}
@media screen and (max-width: 767px) {
  .mission__text {
    font-size: 16px;
    line-height: 180%;
    letter-spacing: 1.2px;
  }
}

.mission__container-right {
  padding-left: 133px;
}
@media (min-width: 768px) and (max-width:1023px) {
  .mission__container-right {
    padding-left: 60px;
  }
}
@media screen and (max-width: 767px) {
  .mission__container-right {
    padding-left: 0;
    margin-top: 33px;
  }
}

.mission__image {
  width: 380px;
  height: 358px;
}
@media screen and (max-width: 767px) {
  .mission__image {
    width: 340px;
    height: auto;
    margin-inline: auto;
  }
}

.mission-button__container {
  margin-top: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 25px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.mission__video {
  max-width: 800px;
  margin-inline: auto;
  margin-top: 240px;
  margin-bottom: 240px;
  border: 2px solid #8A6D5F;
  border-radius: 8px;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .mission__video {
    margin-top: 50px;
    margin-bottom: 76px;
  }
}

.mission__video iframe {
  width: 100%;
  aspect-ratio: 16/9; /* 800x451相当に近い比率 */
  height: auto;
  display: block;
  border: 0;
}

#js-slider .swiper-wrapper {
  -webkit-transition-timing-function: linear !important;
          transition-timing-function: linear !important;
}

.gallery-slider {
  margin-bottom: 100px;
}

.swiper-wrapper {
  height: 513px;
}
@media screen and (max-width: 767px) {
  .swiper-wrapper {
    height: auto;
  }
}

.swiper-slide {
  width: 470px;
  height: auto;
}
@media screen and (max-width: 767px) {
  .swiper-slide {
    width: 236.4px;
  }
}
.swiper-slide--01 {
  width: 386px;
  width: 463.2px;
  margin-top: auto;
  bottom: 0;
}
@media screen and (max-width: 767px) {
  .swiper-slide--01 {
    width: 193.2px;
  }
}
.swiper-slide--03 {
  width: 449px;
  margin-top: auto;
  margin-bottom: 14px;
  bottom: 0;
}
@media screen and (max-width: 767px) {
  .swiper-slide--03 {
    width: 205.2px;
  }
}
.swiper-slide--04 {
  width: 386px;
  margin-top: auto;
  bottom: 0;
}
@media screen and (max-width: 767px) {
  .swiper-slide--04 {
    width: 193.2px;
  }
}
.swiper-slide--06 {
  width: 449px;
  margin-top: auto;
  margin-bottom: 14px;
  bottom: 0;
}
@media screen and (max-width: 767px) {
  .swiper-slide--06 {
    width: 205.2px;
  }
}

.project {
  margin-top: 200px;
}

.project__container {
  color: #FFF;
  padding-top: 56px;
  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-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-card {
  background-image: url("../img/project/pro_bg_01.png");
  background-position: center;
  background-size: cover; /* 画面いっぱいに伸縮 */
  background-repeat: no-repeat;
  padding-top: 85px;
  padding-bottom: 72px;
  /* フルブリード（画面左右端まで広げる） */
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  --title-gap: 12px;
  /* スクロールバー幅による横スクロール対策（対応ブラウザ用） */
}
@supports (width: 100dvw) {
  .p-card {
    width: 100dvw;
    margin-left: calc(50% - 50dvw);
    margin-right: calc(50% - 50dvw);
  }
}
@media screen and (max-width: 767px) {
  .p-card {
    padding-inline: 5.33%;
    padding-top: 58px;
    padding-bottom: 43px;
  }
}
.p-card--02 {
  background-image: url("../img/project/pro_bg_02.png");
}
.p-card--03 {
  background-image: url("../img/project/pro_bg_03.png");
}
.p-card--04 {
  background-image: url("../img/project/pro_bg_04.png");
}

.p-card__number {
  font-family: "Montserrat", sans-serif;
  font-size: 88px;
  font-style: normal;
  font-weight: 500;
  line-height: 100%; /* 88px */
  position: absolute;
  top: 0;
  left: 17px; /* 画像の左端に基準を置く */
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
@media screen and (max-width: 767px) {
  .p-card__number {
    font-size: 40px;
  }
}

.p-card__title-sub {
  font-family: "Montserrat", sans-serif;
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: 100%; /* 18px */
  letter-spacing: 1.44px;
  text-transform: uppercase;
  position: absolute;
  top: 50px;
  left: 0; /* 画像の左端に基準を置く */
  -webkit-transform: translate(calc(-100% - var(--title-gap)), 0%);
          transform: translate(calc(-100% - var(--title-gap)), 0%);
  /* ↑ 自身の幅100%ぶん左へ + 余白ぶん左へ、縦は絶対値指定*/
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  text-orientation: mixed; /* 英字は横向きのまま並べたい場合 */
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .p-card__title-sub {
    font-size: 10px;
    line-height: 100%; /* 10px */
    letter-spacing: 0.8px;
    -webkit-writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
            writing-mode: horizontal-tb; /* SPでは横書き */
    text-orientation: initial; /* 横書きなのでリセット推奨 */
    -webkit-transform: none;
            transform: none; /* 縦書き用のtranslateを無効化 */
    top: -10px;
    left: 48px;
  }
}

.p-card__img {
  max-width: 1000px;
  width: 69.4444444444%;
  position: relative;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .p-card__img {
    width: 100%;
  }
}
.p-card__img img {
  -webkit-transition: -webkit-filter 0.3s ease;
  transition: -webkit-filter 0.3s ease;
  transition: filter 0.3s ease;
  transition: filter 0.3s ease, -webkit-filter 0.3s ease; /* フィルター効果のトランジション */
}
.p-card__img img:hover {
  -webkit-filter: brightness(1.2);
          filter: brightness(1.2); /* 明るさを110%に */
}
.p-card__img--nohover img:hover {
  -webkit-filter: none;
          filter: none; /* 明るくしない */
}

.p-card__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 37px;
  margin-top: 24px;
}
@media screen and (max-width: 767px) {
  .p-card__body {
    margin-top: 8px;
    gap: 13px;
  }
}

.p-card__body--nohover {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.p-card__title {
  text-shadow: 0 0 30px rgba(0, 0, 0, 0.2);
  font-family: "Zen Kaku Gothic New";
  font-size: 64px;
  font-style: normal;
  font-weight: 700;
  line-height: 100%; /* 64px */
  letter-spacing: 2.56px;
}
@media screen and (max-width: 767px) {
  .p-card__title {
    font-size: 20px;
    letter-spacing: 0.8px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .p-card__title {
    font-size: 40px;
    letter-spacing: 1.6px;
  }
}

.p-card__body-icon {
  width: 58px;
  height: auto;
  margin-top: 5px;
}
@media screen and (max-width: 767px) {
  .p-card__body-icon {
    width: 20px;
    margin-top: 0;
  }
}

.p-card__note-text {
  position: absolute;
  bottom: 120px;
  left: 20px;
  font-size: 20px;
}
@media screen and (max-width: 767px) {
  .p-card__note-text {
    bottom: 40px;
  }
}

.p-card__note-text-02 {
  font-size: 32px;
  line-height: 1.4;
  letter-spacing: 2.56px;
}
@media screen and (max-width: 767px) {
  .p-card__note-text-02 {
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: 1.28px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .p-card__note-text-02 {
    font-size: 24px;
    line-height: 1.4;
    letter-spacing: 1.92px;
  }
}

.company {
  padding-top: 120px;
  padding-bottom: 93px;
}

.company__inner {
  max-width: 960px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .company__inner {
    max-width: 100%;
  }
}
.company__inner .c-header__icon {
  margin-inline: auto;
}

.company__information {
  display: grid;
  grid-template-columns: auto 1fr;
  row-gap: 31px;
  margin-top: 60px;
  padding-inline: 80px;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .company__information {
    grid-template-columns: 1fr;
    row-gap: 22px;
    padding-inline: 0;
  }
}

.company__information-header {
  border-bottom: solid 2px #F6A623;
  padding-bottom: 24px;
  width: 196px;
  padding-left: 10px;
  color: var(--text, #3E342F);
  font-weight: 700;
  line-height: 160%; /* 27.2px */
  letter-spacing: 1.02px;
}
@media screen and (max-width: 767px) {
  .company__information-header {
    width: 180px;
  }
}
.company__information-header--df {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.company__information-content {
  border-bottom: solid 2px #F1E5D1;
  padding-bottom: 24px;
  padding-left: 32px;
  font-weight: 500;
  color: #333;
  font-size: 17px;
  line-height: 160%;
  letter-spacing: 0.34px;
}
.company__information-content--map {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 26px;
}
@media screen and (max-width: 767px) {
  .company__information-content--map {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .company__information-content--map {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

.company__information-map {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.company__information-map p {
  text-align: center;
  text-decoration: underline;
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 100%; /* 16px */
  letter-spacing: 1.28px;
}

.map-link-icon {
  width: 24px;
  height: 24px;
}
.map-link-icon img {
  vertical-align: baseline;
}

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

.separate__image {
  width: 100%;
  height: auto;
}

.separate__text {
  text-align: center;
  margin-top: 47px;
  font-size: 30px;
  line-height: 1.3;
  letter-spacing: 2.4px;
}
@media screen and (max-width: 767px) {
  .separate__text {
    font-size: 24px;
    line-height: 1.4;
    letter-spacing: 1.92px;
  }
}

.separate-button-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 23px;
  margin-top: 47px;
}
@media screen and (max-width: 767px) {
  .separate-button-box {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

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

.news__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  row-gap: 63px;
  -webkit-column-gap: 40px;
     -moz-column-gap: 40px;
          column-gap: 40px;
  margin-top: 56px;
}
@media screen and (max-width: 767px) {
  .news__list {
    grid-template-columns: 1fr;
    row-gap: 40px;
    -webkit-column-gap: 20px;
       -moz-column-gap: 20px;
            column-gap: 20px;
  }
}

.news__list--blog {
  grid-template-columns: repeat(3, 1fr);
  row-gap: 40px;
  -webkit-column-gap: 30px;
     -moz-column-gap: 30px;
          column-gap: 30px;
}
@media screen and (max-width: 767px) {
  .news__list--blog {
    grid-template-columns: 1fr;
    row-gap: 40px;
    -webkit-column-gap: 20px;
       -moz-column-gap: 20px;
            column-gap: 20px;
  }
}

.news__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
}

.news__item-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 10px;
}

.news__item-image {
  width: 140px;
  min-width: 140px;
  height: 90px;
  overflow: hidden;
  border-radius: 8px;
}
.news__item-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover; /* 枠いっぱいに表示（はみ出しはトリミング） */
  -o-object-position: center;
     object-position: center; /* トリミングの基準位置（必要に応じて変更可） */
  display: block;
}

.news__item-content {
  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;
  gap: 14px;
}

.news__item-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 9px;
}

.news__date {
  color: #ED9911;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 100%; /* 14px */
  letter-spacing: 1.12px;
}

.news__title {
  color: #3E342F;
  font-weight: 700;
  line-height: 140%; /* 23.8px */
  letter-spacing: 1.36px;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  .news__title {
    font-size: 15px;
    letter-spacing: 1.2px;
  }
}
.news__title:hover {
  color: #ED9911;
}

.pagenation {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 60px;
}

.pagenation .page-numbers {
  font-weight: 700;
  display: inline-block;
  padding: 8px 12px;
  border: 1px solid #ccc;
  margin: 0 4px;
  text-decoration: none;
  color: #3E342F;
}

.pagenation .page-numbers.current {
  background-color: #3e342f;
  color: #fff;
  border-color: #3e342f;
}

.news-button-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 60px;
}

@media screen and (max-width: 767px) {
  .news-button-box--single {
    margin-bottom: 60px;
  }
}

.footer {
  margin-top: 98px;
  position: relative;
}
@media screen and (max-width: 767px) {
  .footer {
    margin-top: 0;
  }
}

.footer__bg {
  width: 100%;
  height: auto;
  display: block;
}
@media screen and (max-width: 767px) {
  .footer__bg {
    height: 540px;
  }
  .footer__bg img {
    width: 100%;
    height: 100%;
    display: block;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: top center;
       object-position: top center;
  }
}

.footer__inner {
  position: absolute;
  inset: 0; /* 画像の上に重ねる */
  margin-top: 5%;
  max-width: 1200px;
  margin-inline: auto;
  width: 83.3333333333%;
}
@media screen and (max-width: 767px) {
  .footer__inner {
    margin-left: 6.4%;
    margin-top: 15%;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .footer__inner {
    margin-top: 2%;
    width: 92%;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .footer__inner {
    margin-top: 2%;
  }
}
@media screen and (min-width: 1500px) {
  .footer__inner {
    margin-top: 10%;
  }
}
.footer__inner .footer__nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 40px;
  margin-top: 46px;
}
@media screen and (max-width: 767px) {
  .footer__inner .footer__nav {
    margin-top: 40px;
    gap: 20px;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .footer__inner .footer__nav {
    margin-top: 20px;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .footer__inner .footer__nav {
    margin-top: 20px;
  }
}
.footer__inner .p-header__nav-lists {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 32px;
}
@media screen and (max-width: 767px) {
  .footer__inner .p-header__nav-lists {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 8px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .footer__inner .p-header__nav-lists {
    gap: 15px;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .footer__inner .p-header__nav-lists {
    gap: 28px;
  }
}
.footer__inner .p-header__nav-item-text {
  color: #FFF;
  font-size: 18px;
  font-weight: 700;
  line-height: 100%; /* 18px */
  letter-spacing: 0.36px;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media (min-width: 768px) and (max-width:1023px) {
  .footer__inner .p-header__nav-item-text {
    font-size: 14px;
  }
}
@media screen and (max-width: 767px) {
  .footer__inner .p-header__nav-item-text {
    font-size: 14px;
  }
}
.footer__inner .p-header__nav-item-text:hover {
  color: #ED9911;
}
.footer__inner .p-header__nav-button {
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  .footer__inner .p-header__nav-button {
    width: 150px;
    font-size: 16px;
    height: 40px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .footer__inner .p-header__nav-button {
    width: 200px;
  }
}
.footer__inner .p-header__nav-button:hover {
  color: #ED9911;
  background: #FFF;
}

.footer__conatainer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-top: 57px;
  padding-right: 64px;
}
@media screen and (max-width: 767px) {
  .footer__conatainer {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: 0;
    gap: 20px;
  }
}

.footer__logo {
  width: 400px;
}
@media screen and (max-width: 767px) {
  .footer__logo {
    width: 248px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .footer__logo {
    width: 300px;
  }
}

.footer__logo-text {
  color: #FFF;
  font-size: 48px;
  line-height: 140%; /* 67.2px */
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .footer__logo-text {
    font-size: 31px;
    font-weight: 500;
    line-height: 140%; /* 43.4px */
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .footer__logo-text {
    font-size: 31px;
    font-weight: 500;
    line-height: 140%; /* 43.4px */
  }
}

.footer__logo-text-sub {
  position: relative;
}
.footer__logo-text-sub::after {
  content: "";
  background-image: url(../img/icon/icon_orange.png);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  right: 22px;
  bottom: 11px;
  width: 32px;
  height: 35px;
}
@media screen and (max-width: 767px) {
  .footer__logo-text-sub::after {
    width: 30.001px;
    height: 32.997px;
  }
}

.footer__comapany {
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 20px;
  margin-top: 20px;
}
@media screen and (max-width: 767px) {
  .footer__comapany {
    gap: 5px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .footer__comapany {
    gap: 10px;
  }
}

.footer__comapany-name {
  font-size: 24px;
  font-weight: 700;
  line-height: 100%; /* 24px */
  letter-spacing: 0;
}
@media screen and (max-width: 767px) {
  .footer__comapany-name {
    font-size: 18px;
  }
}

.footer__comapany-address {
  font-size: 15px;
  font-weight: 400;
  line-height: 160%; /* 24px */
  letter-spacing: 0.3px;
}

.footer__copy {
  color: #FFF;
  font-size: 13px;
  line-height: normal;
  font-weight: 400;
  margin-right: 60px;
  margin-top: 53px;
  text-align: right;
  letter-spacing: 0.3px;
}
@media screen and (max-width: 767px) {
  .footer__copy {
    text-align: left;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .footer__copy {
    margin-top: 20px;
  }
}

.to-top-button {
  width: 70px;
  height: 70px;
  position: fixed;
  right: 20px;
  bottom: 20px;
  background: transparent;
  opacity: 0;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (max-width: 767px) {
  .to-top-button {
    width: 50px;
    height: 50px;
    bottom: 5px;
  }
}
.to-top-button:hover {
  opacity: 0.8;
}
.to-top-button:hover img {
  opacity: 0.8;
}

.to-top-button.is-show {
  opacity: 1;
  pointer-events: auto;
  z-index: 1000;
}

.body-lower {
  padding-top: 0;
}

.header--lower {
  position: static;
}

.page-fv {
  margin-top: 62px;
}

.lowerPage-slider {
  margin-top: 73px;
  /* 非アクティブ（共通） */
  /* アクティブ */
}
.lowerPage-slider .swiper-slide .slide-img {
  width: 100%;
}
.lowerPage-slider .swiper-wrapper {
  height: 730px;
}
@media screen and (max-width: 767px) {
  .lowerPage-slider .swiper-wrapper {
    height: auto;
    padding-bottom: 50px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .lowerPage-slider .swiper-wrapper {
    height: auto;
    padding-bottom: 80px;
  }
}
.lowerPage-slider .swiper-pagination-bullet {
  width: 20px;
  height: 20px;
  background: #D9D9D9; /* ← 非アクティブ色 */
  opacity: 1; /* Swiperのデフォルトは0.2なので1にしておくと安心 */
  border-radius: 50%; /* 丸くしたい場合 */
  margin: 0 6px; /* 間隔も調整可能 */
}
@media screen and (max-width: 767px) {
  .lowerPage-slider .swiper-pagination-bullet {
    width: 15px;
    height: 15px;
  }
}
.lowerPage-slider .swiper-pagination-bullet-active {
  background: #F6A623; /* ← メインカラー */
}

.swiper-lowerPage-pagination {
  position: absolute;
  left: 50% !important;
  -webkit-transform: translateX(-50%) !important;
          transform: translateX(-50%) !important;
}

.shimonada-news {
  padding-top: 68px;
}
.shimonada-news .news__list {
  margin-top: 41px;
}

.concept {
  margin-top: 119px;
}

@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .concept__inner {
    padding-inline: 16px;
  }
}

.concept__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 85px;
}

.concept__item {
  max-width: 1118px;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  background: #fff;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-left: auto;
  position: relative;
}
@media screen and (max-width: 767px) {
  .concept__item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.concept__item--reverse {
  margin-right: auto;
  margin-left: unset;
}

.concept__item-image {
  max-width: 551px;
  width: 50%;
  height: auto;
  position: absolute;
  top: -51px;
  left: -84px;
}
@media screen and (max-width: 767px) {
  .concept__item-image {
    max-width: unset;
    position: static;
    top: unset;
    left: unset;
    width: 100%;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .concept__item-image {
    left: unset;
    width: 45%;
  }
}
.concept__item-image--reverse {
  right: -84px;
  left: unset;
}
@media (min-width: 768px) and (max-width:1023px) {
  .concept__item-image--reverse {
    right: 0;
  }
}
.concept__item-content {
  width: 55%;
  max-width: 600px;
  padding-top: 36px;
  padding-right: 56px;
  padding-bottom: 73px;
  margin-left: auto;
}
@media screen and (max-width: 767px) {
  .concept__item-content {
    margin-left: 0;
    width: 100%;
    padding-inline: 16px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .concept__item-content {
    padding-left: 20px;
    padding-right: 10px;
  }
}
.concept__item-content--reverse {
  margin-right: auto;
  margin-left: unset;
  padding-right: 0;
  padding-left: 56px;
}
@media screen and (max-width: 767px) {
  .concept__item-content--reverse {
    padding-inline: 16px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .concept__item-content--reverse {
    padding-left: 10px;
    padding-right: 20px;
  }
}

.concept__item-title {
  font-size: 25px;
  font-style: normal;
  line-height: 180%; /* 45px */
  letter-spacing: 0;
}

.concept__item-description {
  margin-top: 8px;
  font-size: 18px;
  font-weight: 500;
  line-height: 200%; /* 36px */
  letter-spacing: 1.44px;
}
@media screen and (max-width: 767px) {
  .concept__item-description {
    font-size: 16px;
    line-height: 180%;
    letter-spacing: 1.2px;
  }
}

.gallery {
  margin-top: 173px;
  padding-top: 118px;
  padding-bottom: 105px;
  background-image: url("../img/project/pro_bg_01.png");
  background-position: center;
  background-size: cover; /* 画面いっぱいに伸縮 */
  background-repeat: no-repeat;
}
@media screen and (max-width: 767px) {
  .gallery {
    padding-top: 60px;
    padding-bottom: 60px;
    padding-inline: 16px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .gallery {
    padding-inline: 5%;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .gallery {
    padding-inline: 5%;
  }
}

.gallery__inner {
  text-align: center;
}

.gallery__title {
  color: #fff;
}

.swiper-gallery {
  margin-top: 40px;
  max-width: 1200px;
  width: 100%;
  margin-inline: auto;
  position: relative;
}

.swiper-wrapper-gallery {
  max-height: 440px;
}
@media screen and (max-width: 767px) {
  .swiper-wrapper-gallery {
    max-height: unset;
    height: auto;
    padding-bottom: 100px;
  }
}
@media (min-width: 768px) and (max-width:1023px) {
  .swiper-wrapper-gallery {
    max-height: unset;
    height: auto;
    padding-bottom: 100px;
  }
}

/* 右下に固定配置（赤枠の位置） */
.gallery-nav {
  position: absolute;
  right: -11px;
  bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 16px; /* 矢印の間隔 */
  z-index: 10; /* スライドより上に */
  width: 160px;
  height: 51px;
}
/* 縦線を擬似要素で追加 */
.gallery-nav::before {
  content: "";
  position: absolute;
  top: 59%; /* 要素の中央縦 */
  left: 50%; /* 要素の中央横 */
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); /* 中央基準にする */
  width: 1px; /* 線の太さ */
  height: 100%; /* 親要素の高さに合わせる */
  background-color: #fff; /* 白い線 */
}

/* ボタンの共通スタイル */
.gallery-button-prev,
.gallery-button-next {
  width: 70px;
  height: auto;
  cursor: pointer;
  z-index: 10; /* スライドより上に表示 */
}

/* 左ボタン */
/* 右ボタン */
/* 画像を枠いっぱいに表示 */
.gallery-button-prev img,
.gallery-button-next img {
  width: 100%;
  height: auto;
  display: block;
  -webkit-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}
.gallery-button-prev img:hover,
.gallery-button-next img:hover {
  opacity: 0.8;
}

.swiper-button-next::after,
.swiper-button-prev::after {
  content: none; /* ← デフォルト矢印を消す */
}

.galleryink-button {
  width: 240px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: absolute;
  bottom: 0;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .galleryink-button {
    min-width: 180px;
    width: 180px;
  }
}
.shop {
  padding-top: 120px;
  padding-bottom: 100px;
}
@media screen and (max-width: 767px) {
  .shop {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}
.shop .company__information--lower {
  margin-inline: 120px;
}
@media (min-width: 768px) and (max-width:1023px) {
  .shop .company__information--lower {
    margin-inline: 0;
  }
}
@media screen and (max-width: 767px) {
  .shop .company__information--lower {
    margin-inline: 0;
  }
}

.shop__inner {
  text-align: center;
}
.shop__inner .c-header__icon {
  margin-inline: auto;
}

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

.access__inner {
  text-align: center;
}
.access__inner .c-header__icon {
  margin-inline: auto;
}

.access__map {
  margin-top: 40px;
  margin-inline: auto;
  max-width: 960px;
  position: relative;
  width: 100%; /* 親幅いっぱい */
  padding-top: 42.9%; /* 高さを比率で確保 → 412/960 ≒ 0.429 */
  overflow: hidden;
}

.access__map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%; /* 横幅可変 */
  height: 100%; /* 高さも親にフィット */
  border: 0;
}

.access__address {
  font-size: 17px;
  font-style: normal;
  font-weight: 500;
  line-height: 160%; /* 27.2px */
  letter-spacing: 0.34px;
  text-align: center;
  margin-top: 60px;
}
@media screen and (max-width: 767px) {
  .access__address {
    margin-top: 20px;
  }
}

.access__map-link {
  margin-top: 12px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 6px;
}
.access__map-link p {
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 100%; /* 16px */
  letter-spacing: 1.28px;
}

.access__map-link-icon {
  width: 16px;
  height: 20px;
}
.access__map-link-icon img {
  vertical-align: baseline;
}

.floor-plan {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  margin-top: 67px;
}
@media screen and (max-width: 767px) {
  .floor-plan {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 20px;
    padding-inline: 5px;
  }
}

.floor-plan__image {
  max-width: 383px;
  height: auto;
}
@media screen and (max-width: 767px) {
  .floor-plan__image {
    width: 100%;
    margin-inline: auto;
  }
}
.floor-plan__image--02 {
  max-width: 350px;
  height: auto;
}
@media screen and (max-width: 767px) {
  .floor-plan__image--02 {
    width: 100%;
    margin-inline: auto;
  }
}

.reservation-box {
  margin-top: 60px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 15px;
}

.reservation-text {
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 1.44px;
  color: #000;
  margin-left: 20px;
}

.reservation-footer {
  display: none;
}
@media screen and (max-width: 767px) {
  .reservation-footer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    border-radius: 0;
  }
}

.single__date {
  font-size: 14px;
  color: #666666;
}

.single__title {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  margin-top: 40px;
}

.single__item-image {
  max-width: 800px;
  width: 90%;
  height: auto;
  margin-top: 40px;
  margin-inline: auto;
}

.singl__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 20px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 24px;
}

.single__item-content {
  margin-top: 40px;
  margin-bottom: 40px;
  font-weight: 400;
  line-height: 2;
  text-align: center;
}

.fileNotFound__title {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  margin-top: 200px;
  margin-bottom: 200px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .fileNotFound__title {
    font-size: 36px;
  }
}

.news-bottom-cross-bukken {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 20px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  margin-bottom: 60px;
}
@media (max-width: 768px) {
  .news-bottom-cross-bukken {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-items: center; /* デフォルトで中央寄せ */
    gap: 15px;
  }
}
@media screen and (min-width: 1024px) and (max-width: 1200px) {
  .news-bottom-cross-bukken {
    width: 90%;
    margin-inline: auto;
  }
}

.news-bottom-cross-bukken > div {
  width: 224px;
  color: #fff;
  padding: 5px;
  font-size: 0.8em;
  background: #ccc;
}
@media (max-width: 499px) {
  .news-bottom-cross-bukken > div {
    width: 160px; /* スマホでは幅を100%に */
  }
}

.news-bottom-cross-bukken > div figure {
  margin: 0 0 0.2em;
}

.news-bottom-cross-bukken > div h4 {
  width: 200px;
  color: #fff;
  padding: 5px;
  font-size: 1em;
  font-weight: 700;
}