@charset "UTF-8";
*, ::before, ::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html, body, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: normal;
  font-size: 100%;
  vertical-align: baseline;
}

header, footer, nav, section, article, main, aside, figure, figcaption {
  display: block;
}

ol, ul {
  list-style: none;
  list-style-type: none;
}

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

a {
  color: inherit;
  text-decoration: none;
}

@font-face {
  src: url("../fonts/FOT-TsukuGoPro-R.otf") format("opentype");
  font-family: "FOT-TsukuGoPro";
  font-style: normal;
  font-weight: 400;
  font-display: swap; /* フォントファイルを読み込むまで代替フォントを使って表示 */
}
@font-face {
  src: url("../fonts/FOT-TsukuGoPro-D.otf") format("opentype");
  font-family: "FOT-TsukuGoPro";
  font-style: normal;
  font-weight: 600;
  font-display: swap; /* フォントファイルを読み込むまで代替フォントを使って表示 */
}
@font-face {
  src: url("../fonts/FOT-TsukuGoPro-B.otf") format("opentype");
  font-family: "FOT-TsukuGoPro";
  font-style: normal;
  font-weight: 700;
  font-display: swap; /* フォントファイルを読み込むまで代替フォントを使って表示 */
}
@font-face {
  src: url("../fonts/AGaramondPro-Regular.otf") format("opentype");
  font-family: "AGaramondPro";
  font-style: normal;
  font-weight: 400;
  font-display: swap; /* フォントファイルを読み込むまで代替フォントを使って表示 */
}
html {
  font-size: 100%;
}

body {
  color: #1B0E03;
  background: #FFF;
  font-family: "FOT-TsukuGoPro", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  line-height: 1;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: top; /* img下の隙間を消す */
}

a, button, [role=tab] {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

address {
  font-style: normal;
}

/* スクリーンリーダーオンリー */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

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

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

.not-pc {
  display: none;
}
@media screen and (max-width: 1279px) {
  .not-pc {
    display: block;
  }
}

.not-pc--inline {
  display: none;
}
@media screen and (max-width: 1279px) {
  .not-pc--inline {
    display: inline;
  }
}

.is-mid {
  display: none;
}
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .is-mid {
    display: block;
  }
}

.is-hidden {
  display: none;
}

.preload {
  -webkit-animation: 0 !important;
          animation: 0 !important;
  -webkit-transition: none !important;
  transition: none !important;
}

#shrink {
  -webkit-transform: scale(0.67);
          transform: scale(0.67);
  -webkit-transform-origin: left top;
          transform-origin: left top;
  height: 149.2537313433%;
  width: 149.2537313433%;
}

/*===============================
共通
===============================*/
.page-contents {
  margin-top: 90px;
}
@media screen and (max-width: 767px) {
  .page-contents {
    margin-top: 50px;
  }
}

.page__header {
  width: 100%;
  position: relative;
}

.page__header__img {
  width: 100%;
  position: relative;
}
.page__header__img img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.page__header__img::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: rgba(56, 41, 29, 0.55);
}
@media screen and (max-width: 767px) {
  .page__header__img::after {
    background-color: rgba(56, 41, 29, 0.35);
  }
}

.page__title__wrapper {
  width: 100%;
  text-align: center;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.page__title, .page__title--thanks {
  font-size: clamp(2rem, 1.296rem + 3vw, 4rem);
  color: #fff;
  font-weight: 600;
  line-height: 1.55;
}

.page__title--thanks {
  font-size: clamp(1.5rem, 0.62rem + 3.76vw, 4rem);
}

.page__contents__heading {
  font-family: "AGaramondPro", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: clamp(1.5rem, 1.236rem + 1.13vw, 2.25rem);
  color: #553F2D;
  font-weight: 400;
}

.page__contents__title {
  font-size: clamp(1.125rem, 0.993rem + 0.56vw, 1.5rem);
  color: #37291D;
  font-weight: 600;
}

.page__contents__text {
  font-size: clamp(0.938rem, 0.915rem + 0.09vw, 1rem);
  color: #37291D;
  font-weight: 400;
  line-height: 1.5;
}

/*** 導入事例カード ***/
.achievement__item {
  background-color: #fff;
  border-radius: 15px;
  -webkit-box-shadow: 0 0 15px #C8C8C8;
          box-shadow: 0 0 15px #C8C8C8;
  padding: 25px 31px 41px;
}
@media screen and (max-width: 767px) {
  .achievement__item {
    padding: 22px 24px 24px;
  }
}

.achievement__img {
  width: 100%;
  border-radius: inherit;
}
.achievement__img img {
  width: 100%;
}

.achievement__category, .achievement__category--light, .achievement__category--dark {
  margin-top: 10px;
  display: inline-block;
  max-width: 100%;
  padding: 10px 22px;
  background-color: #553F2D;
  font-size: clamp(0.875rem, 0.756rem + 0.51vw, 1rem);
  color: #fff;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .achievement__category, .achievement__category--light, .achievement__category--dark {
    padding: 9px 10px;
  }
}

.achievement__category--dark {
  background-color: #333;
  color: #fff;
}

.achievement__category--light {
  background-color: #E3E4E8;
  color: #000;
}

.achievement__title {
  margin-top: 18px;
  font-size: clamp(1rem, 0.89rem + 0.47vw, 1.313rem);
  color: #3C3C3C;
  font-weight: 400;
  line-height: 1.5;
  border-bottom: 1px solid #553F2D;
  padding-bottom: 2px;
}
@media screen and (max-width: 767px) {
  .achievement__title {
    margin-top: 8px;
    line-height: 1.4;
  }
}
.achievement__category--dark .achievement__title, .achievement__category--light .achievement__title {
  border-bottom: 1px solid #3c3c3c;
}

.achievement__item__body {
  margin-top: 30px;
  font-size: clamp(0.875rem, 0.776rem + 0.42vw, 1.156rem);
  color: #3C3C3C;
}
@media screen and (max-width: 767px) {
  .achievement__item__body {
    margin-top: 19px;
  }
}
.achievement__item__body .company__summary {
  margin-top: 14px;
}

.achievement__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 6.6%;
}
@media screen and (max-width: 767px) {
  .achievement__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 59px;
  }
}

.achievement {
  padding: 79px 0 120px;
  background: #EEEBE5;
}
@media screen and (max-width: 767px) {
  .achievement {
    padding: 60px 0 100px;
  }
}

.inner.achievement__inner {
  padding: 0 185px;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .inner.achievement__inner {
    padding: 0 75px;
  }
}
@media screen and (max-width: 767px) {
  .inner.achievement__inner {
    padding: 0 29px 0 35px;
  }
}

.achievement__contents {
  margin-top: 82px;
}
@media screen and (max-width: 767px) {
  .achievement__contents {
    margin-top: 18px;
  }
}

.achievement__btn {
  margin-top: 80px;
}
@media screen and (max-width: 767px) {
  .achievement__btn {
    margin-top: 79px;
  }
}

/*===============================
page-contact
===============================*/
.page-contact__inner {
  width: 100%;
  max-width: 1660px;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 120px 120px 125px;
  background-color: #fff;
}
@media screen and (max-width: 1279px) {
  .page-contact__inner {
    display: block;
  }
}
@media screen and (max-width: 767px) {
  .page-contact__inner {
    padding: 50px 18px 50px 22px;
  }
}

.page-contact__textarea {
  width: 41%;
  padding: 113px 4.7% 0 0;
}
@media screen and (max-width: 1279px) {
  .page-contact__textarea {
    width: 100%;
    padding: 88px 4.9854% 60px 0;
  }
}
@media screen and (max-width: 767px) {
  .page-contact__textarea {
    padding: 0 0 35px 0;
  }
}

.page__contact__heading {
  padding: 0 0 5px 46px;
  border-bottom: 1px solid #553F2D;
  position: relative;
}
@media screen and (max-width: 767px) {
  .page__contact__heading {
    padding: 0 0 1px 22px;
  }
}
.page__contact__heading:before {
  content: "";
  display: block;
  width: 24px;
  height: 56px;
  background-color: #553F2D;
  position: absolute;
  bottom: 9px;
  left: 0;
}
@media screen and (max-width: 767px) {
  .page__contact__heading:before {
    width: 16px;
    height: 36px;
    bottom: 6px;
  }
}

.page-contact__text__wrap {
  margin-top: 29px;
  padding-left: 44px;
}
@media screen and (max-width: 767px) {
  .page-contact__text__wrap {
    margin-top: 17px;
    padding-left: 22px;
  }
}

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

.page-contact__formarea {
  width: 57%;
}
@media screen and (max-width: 1279px) {
  .page-contact__formarea {
    width: 100%;
  }
}

/*===============================
page-contact-thanks
===============================*/
.page-contact-thanks__inner {
  text-align: center;
  padding: 117px 120px 125px;
  background-color: #fff;
}
@media screen and (max-width: 767px) {
  .page-contact-thanks__inner {
    padding: 46px 18px 21px;
  }
}

.page-contact-thanks__heading {
  font-size: clamp(1.125rem, 0.729rem + 1.69vw, 2.25rem);
}

.page-contact-thanks__text__wrap {
  margin-top: 29px;
}
@media screen and (max-width: 767px) {
  .page-contact-thanks__text__wrap {
    margin-top: 14px;
  }
}

.page-contact-thanks__title {
  font-size: clamp(1.125rem, 0.729rem + 1.69vw, 2.25rem);
}

.page-contact-thanks__text {
  margin-top: 38px;
}
@media screen and (max-width: 767px) {
  .page-contact-thanks__text {
    margin-top: 15px;
    font-size: clamp(0.75rem, 0.511rem + 1.02vw, 1rem);
  }
}

/*===============================
document
===============================*/
.archive-document__inner {
  width: 100%;
  max-width: 1670px;
  padding: 129px 120px 125px;
  margin: 0 auto;
  background-color: #fff;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .archive-document__inner {
    padding: 100px 60px 125px;
  }
}
@media screen and (max-width: 767px) {
  .archive-document__inner {
    padding: 73px 31px 21px;
  }
}

.archive-document__text__wrap {
  text-align: center;
}

.archive-document__title {
  font-size: clamp(1.5rem, 1.236rem + 1.13vw, 2.25rem);
}

.archive-document__text {
  margin-top: 32px;
}
@media screen and (max-width: 767px) {
  .archive-document__text {
    margin-top: 19px;
  }
}

.archive-document__list__wrapper {
  margin: 115px auto 0;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .archive-document__list__wrapper {
    margin: 80px auto 0;
  }
}
@media screen and (max-width: 767px) {
  .archive-document__list__wrapper {
    margin: 32px auto 0;
  }
}

.archive-document__list {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  -webkit-column-gap: 40px;
     -moz-column-gap: 40px;
          column-gap: 40px;
  row-gap: 112px;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .archive-document__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 767px) {
  .archive-document__list {
    grid-template-columns: 1fr;
    -webkit-column-gap: 0;
       -moz-column-gap: 0;
            column-gap: 0;
    row-gap: 47px;
  }
}

.btn-download {
  margin-top: 29px;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .btn-download {
    margin-top: 12px;
  }
}

.btn-download__link {
  display: block;
  width: 100%;
  background-color: #553F2D;
  padding: 15px 10px;
  border-radius: 999px;
  font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  color: #fff;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .btn-download__link {
    padding: 12px 10px;
  }
}
@media (hover: hover) {
  .btn-download__link {
    -webkit-transition: opacity 0.3s ease 0s;
    transition: opacity 0.3s ease 0s;
  }
  .btn-download__link:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .btn-download__link:active {
    opacity: 0.7;
  }
}

.document__item {
  width: 100%;
  max-width: 450px;
  margin: 0 auto;
}

.document__item__img {
  width: 100%;
}
.document__item__img img {
  width: 100%;
  aspect-ratio: 450/300;
}

.document__item__body {
  margin-top: 34px;
  padding: 0 10px;
}
@media screen and (max-width: 767px) {
  .document__item__body {
    margin-top: 27px;
    padding: 0 7px;
  }
}

.document__title {
  font-size: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
  color: #3C3C3C;
  font-weight: 600;
  line-height: 1.3;
}

.document__text {
  margin-top: 14px;
  font-size: clamp(0.875rem, 0.831rem + 0.19vw, 1rem);
  color: #3C3C3C;
  font-weight: 400;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .document__text {
    margin-top: 14px;
    line-height: 1.8;
  }
}

/*===============================
single document
===============================*/
.single-document__inner {
  width: 100%;
  max-width: 1660px;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 120px 109px 148px;
  background-color: #fff;
}
@media screen and (max-width: 1279px) {
  .single-document__inner {
    display: block;
    padding: 80px 109px 148px;
  }
}
@media screen and (max-width: 767px) {
  .single-document__inner {
    padding: 50px 19px 53px;
  }
}

.single-document__contents {
  width: 44%;
  padding: 20px 3.6% 0 0;
}
@media screen and (max-width: 1279px) {
  .single-document__contents {
    width: 100%;
    padding: 0 4.9854% 60px;
  }
}
@media screen and (max-width: 767px) {
  .single-document__contents {
    padding: 0 0 47px 0;
  }
}

.single-document__item {
  max-width: 550px;
  padding-left: 27px;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .single-document__item {
    padding-left: 0;
  }
}
@media screen and (max-width: 767px) {
  .single-document__item {
    padding: 0 13px;
  }
}

.single-document__item__body {
  margin-top: 46px;
  padding: 0 7px;
}
@media screen and (max-width: 767px) {
  .single-document__item__body {
    margin-top: 28px;
    padding: 0 3px;
  }
}

.single-document__item__text {
  margin-top: 23px;
}
@media screen and (max-width: 767px) {
  .single-document__item__text {
    margin-top: 10px;
  }
}

.single-document__formarea {
  width: 56%;
}
@media screen and (max-width: 1279px) {
  .single-document__formarea {
    width: 100%;
  }
}

.single-document__form__wrapper {
  width: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .single-document__form__wrapper {
    max-width: 800px;
    padding: 0 4.9854%;
  }
}

/*===============================
document thanks
===============================*/
.page-document-thanks__inner {
  text-align: center;
  padding: 131px 120px 90px;
  background-color: #fff;
}
@media screen and (max-width: 767px) {
  .page-document-thanks__inner {
    padding: 46px 10px 21px;
  }
}

.page-document-thanks__heading {
  font-size: clamp(1.125rem, 0.729rem + 1.69vw, 2.25rem);
}

.page-document-thanks__text__wrap {
  margin-top: 29px;
}
@media screen and (max-width: 767px) {
  .page-document-thanks__text__wrap {
    margin-top: 14px;
  }
}

.page-document-thanks__title {
  font-size: clamp(1.125rem, 0.729rem + 1.69vw, 2.25rem);
}

.page-document-thanks__text {
  margin-top: 26px;
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .page-document-thanks__text {
    margin-top: 15px;
    font-size: clamp(0.75rem, 0.511rem + 1.02vw, 1rem);
    line-height: 1.5;
  }
}

.page-document-thanks__link {
  display: block;
  margin-top: 32px;
}
@media screen and (max-width: 767px) {
  .page-document-thanks__link {
    margin-top: 15px;
    font-size: clamp(0.75rem, 0.511rem + 1.02vw, 1rem);
    line-height: 1.5;
  }
}
@media (hover: hover) {
  .page-document-thanks__link {
    -webkit-transition: opacity 0.3s ease 0s;
    transition: opacity 0.3s ease 0s;
  }
  .page-document-thanks__link:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .page-document-thanks__link:active {
    opacity: 0.7;
  }
}

/*===============================
共通クラス
===============================*/
.inner {
  width: 100%;
  max-width: 1740px;
  padding: 0 150px;
  margin: 0 auto;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .inner {
    padding: 0 75px;
  }
}
@media screen and (max-width: 767px) {
  .inner {
    padding: 0 15px;
  }
}

.section__title__area__wrap {
  text-align: center;
}

.section__title__area {
  display: inline-block;
  max-width: 100%;
  padding: 10px 0 26px;
}

.section__title, .section__title--light {
  font-size: clamp(1.25rem, 1.007rem + 1.04vw, 2.25rem);
  color: #1B0E03;
  font-weight: 600;
  padding: 0 50px;
}
@media screen and (max-width: 767px) {
  .section__title, .section__title--light {
    padding: 0 12px;
  }
}

.section__title--light {
  color: #FFF;
}

/* セクションタイトル下の装飾 */
.section__title__deco, .section__title__deco--light {
  padding-top: 14px;
}
@media screen and (max-width: 767px) {
  .section__title__deco, .section__title__deco--light {
    padding-top: 6px;
  }
}
.section__title__deco .deco__top, .section__title__deco--light .deco__top {
  display: block;
  height: 1px;
  background-color: #1B0E03;
  position: relative;
}
.section__title__deco .deco__top::before, .section__title__deco--light .deco__top::before, .section__title__deco .deco__top::after, .section__title__deco--light .deco__top::after {
  content: "";
  display: block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  position: absolute;
  top: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-color: inherit;
}
@media screen and (max-width: 767px) {
  .section__title__deco .deco__top::before, .section__title__deco--light .deco__top::before, .section__title__deco .deco__top::after, .section__title__deco--light .deco__top::after {
    width: 2px;
    height: 2px;
  }
}
.section__title__deco .deco__top::before, .section__title__deco--light .deco__top::before {
  left: -8.5px;
}
@media screen and (max-width: 767px) {
  .section__title__deco .deco__top::before, .section__title__deco--light .deco__top::before {
    left: -6px;
  }
}
.section__title__deco .deco__top::after, .section__title__deco--light .deco__top::after {
  right: -8.5px;
}
@media screen and (max-width: 767px) {
  .section__title__deco .deco__top::after, .section__title__deco--light .deco__top::after {
    right: -6px;
  }
}
.section__title__deco .deco__bottom, .section__title__deco--light .deco__bottom {
  display: block;
  margin: 7px auto 0;
  width: 80%;
  height: 1px;
  background-color: #1B0E03;
  position: relative;
}
@media screen and (max-width: 767px) {
  .section__title__deco .deco__bottom, .section__title__deco--light .deco__bottom {
    margin: 4px auto 0;
  }
}
.section__title__deco .deco__bottom::after, .section__title__deco--light .deco__bottom::after {
  content: "";
  display: block;
  width: 1px;
  height: 26px;
  background-color: inherit;
  position: absolute;
  top: 1px;
  left: 50%;
}
@media screen and (max-width: 767px) {
  .section__title__deco .deco__bottom::after, .section__title__deco--light .deco__bottom::after {
    height: 12px;
  }
}

/* セクションタイトル下の装飾(白) */
.section__title__deco--light .deco__top, .section__title__deco--light .deco__bottom {
  background-color: #fff;
}

/* ボタン */
.btn-general {
  text-align: center;
}

.btn-general__link, .btn-general__link-double {
  display: inline-block;
  padding: 23px 4em 23px 2.139em;
  border: 1px solid #1B0E03;
  font-size: 2.25rem;
  font-size: clamp(0.875rem, 0.852rem + 1.17vw, 2.25rem);
  color: #1B0E03;
  background-color: #fff;
  position: relative;
}
@media screen and (max-width: 767px) {
  .btn-general__link, .btn-general__link-double {
    padding: 12px 4em 9px 2.139em;
  }
}
.btn-general__link span, .btn-general__link-double span {
  position: relative;
}
.btn-general__link span::before, .btn-general__link-double span::before {
  content: "";
  display: block;
  width: 48px;
  height: 1px;
  background-color: #1B0E03;
  position: absolute;
  top: 50%;
  right: -64px;
}
@media screen and (max-width: 767px) {
  .btn-general__link span::before, .btn-general__link-double span::before {
    width: 24px;
    right: -40px;
  }
}
.btn-general__link span::after, .btn-general__link-double span::after {
  content: "";
  display: block;
  width: 1px;
  height: 10px;
  background-color: #1B0E03;
  position: absolute;
  top: 50%;
  right: -69px;
  -webkit-transform: skewX(45deg) translateY(-100%);
          transform: skewX(45deg) translateY(-100%);
}
@media screen and (max-width: 767px) {
  .btn-general__link span::after, .btn-general__link-double span::after {
    height: 7px;
    right: -43px;
  }
}
@media (hover: hover) {
  .btn-general__link, .btn-general__link-double {
    -webkit-transition: opacity 0.3s ease 0s;
    transition: opacity 0.3s ease 0s;
  }
  .btn-general__link:hover, .btn-general__link-double:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .btn-general__link:active, .btn-general__link-double:active {
    opacity: 0.7;
  }
}

/* ボタン(2重枠) */
.btn-general__link-double {
  padding: 23px 4em 11px 2.139em;
  position: relative;
}
.btn-general__link-double::after {
  content: "";
  display: inline-block;
  width: 100%;
  height: 100%;
  background-color: transparent;
  border: inherit;
  position: absolute;
  top: 10px;
  right: 10px;
}

/* コンタクトボタン */
.btn-contact, .btn-contact--light {
  text-align: center;
  position: relative;
}

.btn-contact__link {
  display: inline-block;
  padding: 22px 2.154em 22px 2.077em;
  border: 1px solid #1B0E03;
  border-right: none;
  font-size: 1.625rem;
  font-size: clamp(1rem, 0.848rem + 0.65vw, 1.625rem);
  color: #1B0E03;
  background-color: transparent;
  position: relative;
}
@media screen and (max-width: 767px) {
  .btn-contact__link {
    padding: 12px 2.9em 9px;
  }
}
.btn-contact__link::before, .btn-contact__link::after {
  content: "";
  display: block;
  width: 1px;
  height: 20px;
  background-color: #1B0E03;
  position: absolute;
  right: 0;
}
@media screen and (max-width: 767px) {
  .btn-contact__link::before, .btn-contact__link::after {
    height: 10px;
  }
}
.btn-contact__link::before {
  top: 0;
}
.btn-contact__link::after {
  bottom: 0;
}
.btn-contact__link .btn-contact__link__arrow {
  display: inline-block;
  width: 27.358%;
  height: 1px;
  background-color: #1B0E03;
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateX(50%);
          transform: translateX(50%);
}
@media screen and (max-width: 767px) {
  .btn-contact__link .btn-contact__link__arrow {
    width: 18%;
  }
}
.btn-contact__link .btn-contact__link__arrow::before, .btn-contact__link .btn-contact__link__arrow::after {
  content: "";
  display: block;
  width: 1px;
  height: 10px;
  background-color: #1B0E03;
  position: absolute;
  top: 50%;
}
@media screen and (max-width: 767px) {
  .btn-contact__link .btn-contact__link__arrow::before, .btn-contact__link .btn-contact__link__arrow::after {
    height: 4px;
  }
}
.btn-contact__link .btn-contact__link__arrow::before {
  right: -5px;
  -webkit-transform: skewX(45deg) translateY(-100%);
          transform: skewX(45deg) translateY(-100%);
}
@media screen and (max-width: 767px) {
  .btn-contact__link .btn-contact__link__arrow::before {
    right: -2px;
  }
}
.btn-contact__link .btn-contact__link__arrow::after {
  right: 5px;
  -webkit-transform: skewX(-45deg);
          transform: skewX(-45deg);
}
@media screen and (max-width: 767px) {
  .btn-contact__link .btn-contact__link__arrow::after {
    right: 2px;
  }
}
@media (hover: hover) {
  .btn-contact__link {
    -webkit-transition: opacity 0.3s ease 0s;
    transition: opacity 0.3s ease 0s;
  }
  .btn-contact__link:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .btn-contact__link:active {
    opacity: 0.7;
  }
}

.btn-contact--light .btn-contact__link {
  color: #fff;
  border-color: #fff;
}
.btn-contact--light .btn-contact__link::before, .btn-contact--light .btn-contact__link::after {
  background-color: #fff;
}
.btn-contact--light .btn-contact__link__arrow,
.btn-contact--light .btn-contact__link__arrow::before,
.btn-contact--light .btn-contact__link__arrow::after {
  background-color: #fff;
}

/*===============================
header
===============================*/
.header {
  width: 100%;
  height: 90px;
  background: url(../img/bg_header-fv.png) no-repeat center top/cover;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 900;
}
@media screen and (max-width: 767px) {
  .header {
    height: 50px;
    background: url(../img/bg_header-fv_sp.png) no-repeat center top/cover;
  }
}
.header::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.85);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}

.header__inner {
  width: 100%;
  max-width: 1340px;
  height: 100%;
  margin: 0 auto;
  padding: 0 8.28% 0 42px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  z-index: 20;
}
@media screen and (max-width: 767px) {
  .header__inner {
    padding: 0 17px;
  }
}

.header__logo {
  width: 30%;
  max-width: 250px;
  min-width: 103px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.header__logo img {
  width: 100%;
  height: auto;
}

.btn-hamburger {
  display: none;
}
@media screen and (max-width: 767px) {
  .btn-hamburger {
    display: block;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: none;
    background-color: transparent;
    width: 32px;
    height: 44px;
    padding: 0;
    cursor: pointer;
    position: relative;
    z-index: 50;
  }
}

/* 三本線の実装 */
.hamburger__icon,
.hamburger__icon:before,
.hamburger__icon:after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: #1B0E03;
  -webkit-transition: top 0.3s ease 0s, bottom 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
  transition: top 0.3s ease 0s, bottom 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
  transition: transform 0.3s ease 0s, top 0.3s ease 0s, bottom 0.3s ease 0s;
  transition: transform 0.3s ease 0s, top 0.3s ease 0s, bottom 0.3s ease 0s, -webkit-transform 0.3s ease 0s;
}

.hamburger__icon::before {
  position: absolute;
  top: 15px;
  left: 0;
}
.hamburger__icon::after {
  position: absolute;
  bottom: 14px;
  left: 0;
}

.hamburger__icon.is-open {
  height: 0;
}
.hamburger__icon.is-open::before {
  top: 22px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  opacity: 1;
}
.hamburger__icon.is-open::after {
  bottom: 21px;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  opacity: 1;
}

.header-nav {
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .header-nav {
    position: absolute;
    top: 50px;
    right: calc(-100% - 2px); /* メニューを外に出しておく */
    width: 57.4358vw;
    height: 80vw;
    z-index: 20;
    background: url(../img/bg_header-fv_sp.png) no-repeat center top/cover;
    -webkit-transition: right 0.3s;
    transition: right 0.3s; /*アニメーションを滑らかにする*/
  }
  .header-nav.is-open {
    right: 0;
  }
  .header-nav::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.85);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 30;
  }
}
@media screen and (max-width: 575.98px) {
  .header-nav {
    height: 103vw;
  }
}
@media screen and (min-width: 576px) and (max-width: 767.98px) {
  .header-nav {
    width: 40vw;
  }
}

.header-list {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: right;
      -ms-flex-pack: right;
          justify-content: right;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0 4.7%;
}

.menu-item a {
  display: block;
  font-size: clamp(1rem, 0.667rem + 0.69vw, 1.125rem);
  font-weight: 700;
  padding: 10px 0;
}
@media (hover: hover) {
  .menu-item a {
    -webkit-transition: opacity 0.3s ease 0s;
    transition: opacity 0.3s ease 0s;
  }
  .menu-item a:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .menu-item a:active {
    opacity: 0.7;
  }
}

@media screen and (max-width: 767px) {
  .header-list {
    margin-top: 33px;
    height: 100%;
    max-height: calc(100% - 33px);
    display: grid;
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 0;
    padding: 0;
    text-align: center;
    position: relative;
    z-index: 40;
  }
  .header-list .menu-item {
    width: 100%;
    height: 100%;
  }
  .header-list .menu-item:nth-last-of-type(n+4) {
    border-bottom: 1px solid #1B0E03;
  }
  .header-list .menu-item:nth-last-of-type(n+4) {
    border-bottom: 1px solid #1B0E03;
  }
  .header-list .menu-item:nth-last-of-type(1), .header-list .menu-item:nth-last-of-type(2) {
    background: url(../img/bg_drawer02.png) no-repeat center top/cover;
    position: relative;
  }
  .header-list .menu-item:nth-last-of-type(1)::before, .header-list .menu-item:nth-last-of-type(2)::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 10;
  }
  .header-list .menu-item:nth-last-of-type(1):nth-last-of-type(1), .header-list .menu-item:nth-last-of-type(2):nth-last-of-type(1) {
    background: url(../img/bg_drawer02.png) no-repeat center top/cover;
  }
  .header-list .menu-item:nth-last-of-type(1):nth-last-of-type(1)::before, .header-list .menu-item:nth-last-of-type(2):nth-last-of-type(1)::before {
    background-color: rgba(64, 47, 33, 0.8);
  }
  .header-list .menu-item:nth-last-of-type(1):nth-last-of-type(2), .header-list .menu-item:nth-last-of-type(2):nth-last-of-type(2) {
    background: url(../img/bg_drawer01.png) no-repeat center top/cover;
  }
  .header-list .menu-item:nth-last-of-type(1):nth-last-of-type(2)::before, .header-list .menu-item:nth-last-of-type(2):nth-last-of-type(2)::before {
    background-color: rgba(232, 231, 227, 0.8);
  }
  .header-list .menu-item a {
    width: 100%;
    height: 100%;
    color: #3E2E20;
    font-size: 0.9375rem;
    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; /* 中央寄せ */
    position: relative;
    z-index: 20;
  }
  .header-list .menu-item:nth-last-of-type(1) a {
    color: #fff;
  }
}
/* スクロールに応じたヘッダー表示／非表示のアニメーション */
#header.UpMove {
  -webkit-animation: UpAnime 0.7s forwards;
          animation: UpAnime 0.7s forwards;
}

@-webkit-keyframes UpAnime {
  from {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  to {
    -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
  }
}

@keyframes UpAnime {
  from {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  to {
    -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
  }
}
/*　下に下がる動き　*/
#header.DownMove {
  -webkit-animation: DownAnime 0.7s forwards;
          animation: DownAnime 0.7s forwards;
}

@-webkit-keyframes DownAnime {
  from {
    -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
  }
  to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes DownAnime {
  from {
    -webkit-transform: translateY(-100px);
            transform: translateY(-100px);
  }
  to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
/*===============================
main contact
===============================*/
.main__contact {
  width: 56.95px; /* 67%に縮小 */
  height: calc(100vh - 90px);
  z-index: 800;
  position: fixed;
  top: 90px;
  right: 0;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .main__contact {
    width: 43.55px; /* 67%に縮小 */
  }
}
@media screen and (max-width: 767px) {
  .main__contact {
    display: none;
  }
}

.main__contact__list {
  width: 100%;
  position: absolute;
  right: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.main__contact__item, .main__contact__item-accent {
  width: 100%;
}

.main__contact__link {
  width: 100%;
  padding: 1.9vw 0.2vw;
  background-color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  justify-self: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl; /* 縦書き */
}
.main__contact__item-accent .main__contact__link {
  background-color: #9C5F35;
}
@media (hover: hover) {
  .main__contact__link {
    -webkit-transition: opacity 0.3s ease 0s;
    transition: opacity 0.3s ease 0s;
  }
  .main__contact__link:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .main__contact__link:active {
    opacity: 0.7;
  }
}

.main__contact__title {
  font-size: clamp(0.75rem, 0.813rem + 0.39vw, 1.125rem);
  color: #1B0E03;
  font-weight: 400;
  line-height: 2.5;
  letter-spacing: 0.3em;
  padding-right: 6px;
}
.main__contact__item-accent .main__contact__title {
  color: #FFF;
}
.main__contact__title.main__contact__title_en {
  letter-spacing: 0em;
}

.main__contact__icon {
  width: 40.2%;
  margin: 3px auto 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; /* iconを中央揃え */
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; /* iconを中央揃え */
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; /* iconを中央揃え */
}

/*===============================
First View
===============================*/
.fv {
  margin-top: 90px;
  width: 100%;
  background: url(../img/bg_header-fv.png) no-repeat center bottom/cover;
  position: relative;
}
@media screen and (max-width: 767px) {
  .fv {
    margin-top: 50px;
  }
}
.fv::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(27, 14, 3, 0.8);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}

.fv__inner {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  padding: 54px 11.4% 49px 6.1%;
  position: relative;
  z-index: 20;
}
@media screen and (min-width: 980px) {
  .fv__inner {
    padding: 54px 112px 49px 60px;
  }
}
@media screen and (max-width: 767px) {
  .fv__inner {
    padding: 28px 7% 26px 4%;
  }
}

.fv__contents {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 1.3vw;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (max-width: 767px) {
  .fv__contents {
    grid-template-columns: repeat(2, 50%);
    grid-template-rows: repeat(4, 1fr);
    gap: 1.6vw;
  }
}

.fv__grid-area01 {
  grid-column: 2/4;
  grid-row: 2/3;
}
@media screen and (max-width: 767px) {
  .fv__grid-area01 {
    grid-column: 2/3;
    grid-row: 2/4;
  }
}

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

.fv__heading {
  margin-top: -26px;
  margin-left: 17px;
  font-size: clamp(2.75rem, -0.42rem + 6.6vw, 3.625rem);
  color: #FFF;
  font-weight: 700;
  white-space: nowrap;
  line-height: 1.5;
  letter-spacing: 0.02em;
}
.fv__heading .ls-config {
  font-size: inherit;
  font-weight: inherit;
}
@media screen and (max-width: 767px) {
  .fv__heading {
    margin-top: -7px;
    margin-left: 0px;
    font-size: clamp(1rem, 1.043rem + 3.82vw, 2.875rem);
    letter-spacing: -0.1em;
  }
  .fv__heading .ls-config {
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: 0em;
  }
}

.fv__heading__deco {
  display: inline-block;
  width: 7.8125vw;
  height: 7.8125vw;
  max-width: 77px;
  max-height: 77px;
  text-align: center;
  line-height: 1.35;
  font-weight: 700;
}
.fv__heading__deco:not(:first-of-type) {
  margin-left: 15px;
}
.fv__heading__deco:nth-of-type(2) {
  background-color: #fff;
  color: #BD8E0F;
}
.fv__heading__deco:nth-of-type(3) {
  background-color: #9C5F35;
  color: #FFF;
}
.fv__heading__deco:nth-of-type(4) {
  background-color: #fff;
  color: #417783;
  margin-right: 14px;
}
@media screen and (max-width: 767px) {
  .fv__heading__deco:nth-of-type(4) {
    margin-right: 0px;
  }
}
@media screen and (max-width: 767px) {
  .fv__heading__deco {
    width: 11.3333vw;
    height: 11.3333vw;
  }
  .fv__heading__deco:not(:first-of-type) {
    margin-left: 5px;
  }
}

.fv__image__wrap {
  width: 100%;
}
.fv__image__wrap img {
  width: 100%;
}

/*===============================
About
===============================*/
.about {
  padding: 156px 0 129px;
  background: url(../img/bg_about-case.png) no-repeat center center/cover;
  position: relative;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .about {
    padding: 100px 0 100px;
  }
}
@media screen and (max-width: 767px) {
  .about {
    padding: 60px 0 76px;
    background: url(../img/bg_about-case_sp.png) no-repeat center center/cover;
  }
}
.about::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgb(238, 235, 229);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}

.about__inner {
  position: relative;
  z-index: 20;
}
@media screen and (max-width: 767px) {
  .about__inner {
    padding: 0;
  }
}

.about__contents {
  margin-top: 90px;
  display: grid;
  grid-template-columns: 4fr 1fr 3fr;
  grid-template-rows: 6fr 1fr 6fr;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .about__contents {
    margin-top: 0px;
    grid-template-columns: 3fr 1fr 2fr;
    grid-template-rows: auto auto auto auto;
  }
}
@media screen and (max-width: 767px) {
  .about__contents {
    margin-top: -14px;
    grid-template-columns: 4fr 3fr 3fr;
    grid-template-rows: auto auto auto auto;
  }
}

.about__grid__area01 {
  grid-column: 1/2;
  grid-row: 1/2;
}
@media screen and (max-width: 1279px) {
  .about__grid__area01 {
    grid-column: 1/4;
    grid-row: 1/2;
  }
}

.about__grid__area02 {
  grid-column: 3/4;
  grid-row: 3/4;
}
@media screen and (max-width: 1279px) {
  .about__grid__area02 {
    grid-column: 1/4;
    grid-row: 2/3;
  }
}

.about__grid__area03 {
  grid-column: 2/4;
  grid-row: 1/3;
}
@media screen and (max-width: 1279px) {
  .about__grid__area03 {
    grid-column: 2/4;
    grid-row: 3/4;
    padding-top: 12.5%;
  }
}
@media screen and (max-width: 767px) {
  .about__grid__area03 {
    padding-top: 21.5%;
  }
}

.about__grid__area04 {
  grid-column: 1/3;
  grid-row: 2/4;
}
@media screen and (max-width: 1279px) {
  .about__grid__area04 {
    grid-column: 1/3;
    grid-row: 4/5;
    margin-top: -5%;
  }
}

.about__text__wrap {
  padding-top: 8%;
  padding-left: 6.7%;
}

.about__text {
  font-size: clamp(1rem, 0.25rem + 0.94vw, 1.375rem);
  white-space: nowrap;
  color: #1B0E03;
  font-weight: 400;
  line-height: 3.2;
}
@media screen and (max-width: 1279px) {
  .about__text {
    font-size: clamp(1.125rem, 1.073rem + 0.22vw, 1.25rem);
    line-height: 2.2;
  }
}

.about__subtext__wrap {
  padding-top: 18%;
  text-align: center;
}
@media screen and (max-width: 1279px) {
  .about__subtext__wrap {
    margin-top: 1%;
    padding-top: 6.65%;
  }
}

.about__subtext {
  font-size: clamp(1rem, 0.861rem + 1.13vw, 1.875rem);
  color: #1B0E03;
  font-weight: 400;
  line-height: 2.2;
}

.about__subtext__box {
  font-size: clamp(1.375rem, -0.375rem + 2.19vw, 2.25rem);
  color: #1B0E03;
  font-weight: 400;
  line-height: 1;
  border: 1px solid #1B0E03;
  padding: 19px 43px 10px;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .about__subtext__box {
    font-size: clamp(1.125rem, 0.9rem + 1.13vw, 2.25rem);
    padding: 11px 15px 7px;
  }
}

.about__image__wrap {
  width: 100%;
}
.about__image__wrap:nth-of-type(3) img {
  -webkit-filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
          filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
}
.about__image__wrap:nth-of-type(4) img {
  -webkit-filter: drop-shadow(0 0 0 rgba(0, 0, 0, 0));
          filter: drop-shadow(0 0 0 rgba(0, 0, 0, 0)); /* 重なり順を上にするために透明のfilterを指定 */
}
.about__image__wrap img {
  width: 100%;
  height: auto;
}

.about__word__wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-right: 8.3%;
  overflow: hidden;
  text-align: right;
}

.about__word {
  padding-top: 10%;
  padding-left: 2%;
}

.about__word__text {
  display: block;
  font-family: "AGaramondPro", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: clamp(0.9375rem, -0.75rem + 4.17vw, 3rem);
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl; /* 縦書き */
  padding-bottom: 10px;
}
@media screen and (max-width: 767px) {
  .about__word__text {
    font-size: clamp(0.938rem, -0.318rem + 5.36vw, 2.25rem);
  }
}

.about__word__line {
  display: block;
  width: 1px;
  height: 100%;
  background-color: #1B0E03;
  border-right: 1px solid #1B0E03;
}

/*===============================
design
===============================*/
.design {
  padding: 157px 0 209px;
  background: url(../img/bg_design.png) no-repeat center center/cover;
  overflow: hidden;
  position: relative;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .design {
    padding: 90px 0 120px;
  }
}
@media screen and (max-width: 767px) {
  .design {
    padding: 61px 0 68px;
    background: url(../img/bg_design_sp.png) no-repeat center center/cover;
  }
}
.design::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(27, 14, 3, 0.8);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}
.design::after {
  content: "DESIGN";
  display: block;
  font-family: "AGaramondPro", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: clamp(11.25rem, 6.806rem + 9.26vw, 16.875rem);
  color: rgba(255, 255, 255, 0.15);
  font-weight: 400;
  line-height: 1;
  -webkit-transform: rotate(-90deg) translateX(-40%);
          transform: rotate(-90deg) translateX(-40%);
  position: absolute;
  top: 8%;
  right: -1.5em;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .design::after {
    -webkit-transform: rotate(-90deg) translateX(-50%);
            transform: rotate(-90deg) translateX(-50%);
    font-size: clamp(8.438rem, 5.754rem + 11.45vw, 11.25rem);
    top: 12%;
  }
}

.design__inner {
  position: relative;
  z-index: 20;
}

.design__contents {
  margin-top: 70px;
}
@media screen and (max-width: 767px) {
  .design__contents {
    margin-top: 19px;
  }
}

.design__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  row-gap: 39px;
}
@media screen and (max-width: 767px) {
  .design__list {
    row-gap: 20px;
  }
}

.design__item {
  width: 29%;
}
@media screen and (max-width: 767px) {
  .design__item {
    width: 48%;
  }
}

.design__btn {
  margin-top: 75px;
}
@media screen and (max-width: 767px) {
  .design__btn {
    margin-top: 41px;
  }
}
.design__btn .btn-general__link-double {
  border: 1px solid #3F342B;
  background: rgba(255, 255, 255, 0.7);
}
.design__btn .btn-general__link-double::after {
  border: 1px solid #FFF;
}

/*===============================
color
===============================*/
.color {
  padding: 157px 0 210px;
  background: url(../img/bg_color.png) no-repeat center center/cover;
  position: relative;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .color {
    padding: 90px 0 120px;
  }
}
@media screen and (max-width: 767px) {
  .color {
    background: url(../img/bg_color_sp.png) no-repeat center center/cover;
    padding: 60px 0 76px;
  }
}
.color::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}
.color::after {
  content: "COLOR";
  display: block;
  font-family: "AGaramondPro", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: clamp(7.5rem, 4.466rem + 12.94vw, 20rem);
  color: rgba(27, 14, 3, 0.05);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
  -webkit-transform: rotate(-90deg) translateX(-90%);
          transform: rotate(-90deg) translateX(-90%);
  position: absolute;
  top: -11%;
  left: -1.2em;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .color::after {
    -webkit-transform: rotate(-90deg) translateX(-50%);
            transform: rotate(-90deg) translateX(-50%);
    font-size: clamp(8.75rem, 0.997rem + 33.08vw, 16.875rem);
    top: -3%;
    left: -1.1em;
  }
}

.color__inner {
  position: relative;
  z-index: 20;
}

.color__contents {
  margin-top: 70px;
}
@media screen and (max-width: 767px) {
  .color__contents {
    margin-top: 18px;
  }
}

.color__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  row-gap: 68px;
}
@media screen and (max-width: 767px) {
  .color__list {
    row-gap: 15px;
  }
}

.color__item {
  width: 30.9%;
}

.color__name {
  width: 100%;
  padding: 0.7em 0px;
  border: 1px solid #333;
  font-family: "FOT-TsukuGoPro", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-size: clamp(0.875rem, 0.667rem + 1.04vw, 1.5rem);
  color: #333;
  font-weight: 400;
  text-align: center;
  white-space: nowrap;
}
@media screen and (max-width: 767px) {
  .color__name {
    padding: 0;
  }
}

.color__image {
  margin-top: 34px;
  width: 100%;
}
.color__image img {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .color__image {
    margin-top: 5px;
  }
}

.color__btn {
  margin-top: 68px;
}
.color__btn .btn-general__link-double {
  border: 1px solid #1B0E03;
  background: rgba(27, 14, 3, 0.15);
}
.color__btn .btn-general__link-double::after {
  border: 1px solid #1B0E03;
}
@media screen and (max-width: 767px) {
  .color__btn {
    margin-top: 38px;
  }
}

/*===============================
case
===============================*/
.case {
  padding: 139px 0 210px;
  background: url(../img/bg_about-case.png) no-repeat center center/cover;
  counter-reset: case-no 0;
  position: relative;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .case {
    padding: 90px 0 120px;
  }
}
@media screen and (max-width: 767px) {
  .case {
    padding: 63px 0 59px;
    background: url(../img/bg_about-case_sp.png) no-repeat center center/cover;
  }
}
.case::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(238, 235, 229, 0.9);
  -webkit-filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
          filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}

.case__inner {
  position: relative;
  z-index: 20;
  max-width: 1830px;
}
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .case__inner {
    padding: 0 75px;
  }
}
@media screen and (max-width: 767px) {
  .case__inner {
    padding: 0 28px;
  }
}

.case__contents {
  margin-top: 114px;
}
@media screen and (max-width: 767px) {
  .case__contents {
    margin-top: 11px;
  }
}

.case__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 25px;
}
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .case__list {
    gap: 15px;
  }
}
@media screen and (max-width: 1023px) {
  .case__list {
    display: block;
  }
}

.case__item {
  -webkit-filter: drop-shadow(2px 4px 20px rgba(0, 0, 0, 0.3));
          filter: drop-shadow(2px 4px 20px rgba(0, 0, 0, 0.3));
  counter-increment: case-no 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; /*子要素の高さを揃える*/
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; /*子要素の高さを揃える*/
}
@media screen and (max-width: 1023px) {
  .case__item {
    display: block;
    max-width: 600px;
    margin: 0 auto;
  }
  .case__item:not(:first-child) {
    margin-top: 40px;
  }
}
@media screen and (max-width: 1023px) and (max-width: 767px) {
  .case__item:not(:first-child) {
    margin-top: 33px;
  }
}

.case__item__header {
  position: relative;
}

.case__item__image {
  width: 100%;
}
.case__item__image img {
  width: 100%;
}

.case__item__header__text {
  width: 100%;
  padding: 13px 0px 13px 40px;
  background-color: #3B2C1F;
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: absolute;
  left: 0;
  bottom: 0;
}
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .case__item__header__text {
    padding: 13px 0px 0px 18px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
@media screen and (max-width: 767px) {
  .case__item__header__text {
    padding: 13px 0px 0px 18px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.case__number {
  padding-right: 30px;
  font-family: "AGaramondPro", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: 1rem;
  font-weight: 400;
  text-align: center;
  position: relative;
}
.case__number::after {
  content: "";
  display: block;
  width: 1px;
  height: 100%;
  background-color: #fff;
  position: absolute;
  right: 15px;
  top: 50%;
  -webkit-transform: translateY(-50%) rotate(25deg);
          transform: translateY(-50%) rotate(25deg);
}

.case__number__cnt {
  display: block;
}
.case__number__cnt::before {
  content: counter(case-no, decimal-leading-zero);
  display: block;
  font-family: "AGaramondPro", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: 2rem;
  font-weight: 400;
}
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .case__number__cnt::before {
    font-size: clamp(1.25rem, 0.534rem + 3.05vw, 1.5rem);
  }
}
@media screen and (max-width: 767px) {
  .case__number__cnt::before {
    font-size: clamp(1.25rem, 0.534rem + 3.05vw, 2rem);
  }
}

.case__item__title {
  font-family: "FOT-TsukuGoPro", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-size: clamp(1.125rem, -0.875rem + 2.5vw, 1.375rem);
  font-weight: 400;
}
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .case__item__title {
    line-height: 1.3;
  }
}

.case__item__body {
  width: 100%;
  height: 100%;
  background-color: #fff;
  padding: 38px 49px;
}
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .case__item__body {
    padding: 24px 24px;
  }
}
@media screen and (max-width: 767px) {
  .case__item__body {
    padding: 24px 17px;
  }
}

.case__item__body__text {
  font-family: "FOT-TsukuGoPro", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .case__item__body__text {
    font-size: 0.875rem;
    line-height: 1.65;
  }
}

.case__btn {
  margin-top: 60px;
}
@media screen and (max-width: 767px) {
  .case__btn {
    margin-top: 31px;
  }
}

/*===============================
instagram
===============================*/
.instagram {
  padding: 165px 0 168px;
  background: url(../img/bg_instagram.png) no-repeat center center/cover;
  overflow: hidden;
  position: relative;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .instagram {
    padding: 90px 0 120px;
  }
}
@media screen and (max-width: 767px) {
  .instagram {
    padding: 67px 0 85px;
    background: url(../img/bg_instagram_sp.png) no-repeat center center/cover;
  }
}
.instagram::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.6);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}

.instagram__inner {
  position: relative;
  z-index: 20;
}

.instagram__title {
  font-family: "AGaramondPro", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
  font-size: clamp(5rem, 3.786rem + 5.18vw, 10rem);
  color: #1B0E03;
  font-weight: 400;
}

.instagram__contents__wrap {
  margin-top: 90px;
  width: 149.2537313433vw;
  max-width: calc(149.2537313433vw - (149.2537313433vw - 1740px) / 2 - 150px);
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .instagram__contents__wrap {
    max-width: calc(149.2537313433vw - (149.2537313433vw - 1740px) / 2 - 75px);
  }
}
@media screen and (max-width: 767px) {
  .instagram__contents__wrap {
    margin-top: 44px;
    max-width: calc(149.2537313433vw - 15px + 2px); /* フィードの隙間サイズ分足す */
  }
}

/*******************************************************/
/* Smash Balloon Instagram Feedプラグインのスタイルを上書き */
#sb_instagram .sbi_photo {
  aspect-ratio: 1/1;
  height: auto !important;
}

@media screen and (max-width: 767px) {
  #sb_instagram #sbi_images .sbi_item:nth-of-type(n + 7) {
    display: none;
  }
}

/*** Smash Balloon Instagram Feedのスタイルを上書き ここまで*/
/*******************************************************/
/*===============================
faq
===============================*/
.faq {
  padding: 156px 0 196px;
  background: url(../img/bg_faq.png) no-repeat center top/cover;
  background-attachment: fixed;
  position: relative;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .faq {
    padding: 90px 0 120px;
  }
}
@media screen and (max-width: 767px) {
  .faq {
    padding: 59px 0 100px;
  }
}
.faq::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(27, 14, 3, 0.6);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .faq {
    background: url(../img/bg_faq_sp.png) no-repeat center top/cover;
    background-attachment: fixed;
  }
}

.faq__inner {
  position: relative;
  z-index: 20;
  padding: 0 212px 0 227px;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .faq__inner {
    padding: 0 9.8%;
  }
}
@media screen and (max-width: 767px) {
  .faq__inner {
    padding: 0 16px;
  }
}

.faq__contents {
  margin-top: 98px;
}
@media screen and (max-width: 767px) {
  .faq__contents {
    margin-top: 18px;
  }
}

.faq__item:not(:first-child) {
  margin-top: 25px;
}
@media screen and (max-width: 767px) {
  .faq__item:not(:first-child) {
    margin-top: 13px;
  }
}

.faq__accordion-header {
  cursor: pointer;
}
@media (hover: hover) {
  .faq__accordion-header {
    -webkit-transition: opacity 0.3s ease 0s;
    transition: opacity 0.3s ease 0s;
  }
  .faq__accordion-header:hover {
    opacity: 0.7;
  }
}
@media (hover: none) {
  .faq__accordion-header:active {
    opacity: 0.7;
  }
}

.faq__item__q__inner {
  padding: 0.9em 1em 0.9em 1.5em;
  background-color: rgba(255, 255, 255, 0.9);
  border: 1px solid #1B0E03;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media screen and (max-width: 767px) {
  .faq__item__q__inner {
    padding: 0 0 0 0.6em;
  }
}

.faq__item__q__text {
  font-size: clamp(0.938rem, 0.739rem + 0.85vw, 1.5rem);
  color: #1B0E03;
  font-weight: 400;
  line-height: 1.5em;
}

.faq__item__btn {
  width: 44px;
  height: 44px;
  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; /* 中身の要素を中央揃え */
}
@media screen and (max-width: 767px) {
  .faq__item__btn {
    width: 36px;
    height: 36px;
  }
}

.faq__item__btn__mark {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 25px 15px 0 15px;
  border-color: #1B0E03 transparent transparent transparent;
  -webkit-transition: -webkit-transform 0.5s ease 0s;
  transition: -webkit-transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s, -webkit-transform 0.5s ease 0s;
}
.faq__item__btn__mark.is-open {
  -webkit-transform: rotateX(-180deg);
          transform: rotateX(-180deg);
}
@media screen and (max-width: 767px) {
  .faq__item__btn__mark {
    border-width: 13px 8px 0 8px;
  }
}

.faq__item__a {
  margin-top: 23px;
  padding: 0 44px 0 1.7em;
  display: none;
}
@media screen and (max-width: 767px) {
  .faq__item__a {
    margin-top: 5px;
    padding: 0 18px 0 0.6em;
  }
}

.faq__item__a__text {
  font-size: clamp(0.875rem, 0.739rem + 0.85vw, 1.5rem);
  font-size: clamp(0.875rem, 0.655rem + 0.94vw, 1.5rem);
  color: #FFF;
  font-weight: 400;
  line-height: 1.7;
}

/*===============================
page-bottom (documet / contact)
===============================*/
.page-bottom {
  width: 100%;
}

.page-bottom__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media screen and (max-width: 767px) {
  .page-bottom__list {
    display: block;
  }
}

.page-bottom__item--contact, .page-bottom__item--document {
  width: 50%;
  padding: 122px 15px 106px;
  text-align: center;
  position: relative;
}
.page-bottom__item--contact::before, .page-bottom__item--document::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .page-bottom__item--contact, .page-bottom__item--document {
    width: 100%;
    padding: 59px 15px 69px;
  }
}
@media screen and (max-width: 767px) {
  .page-bottom__item--contact, .page-bottom__item--document {
    width: 100%;
    padding: 39px 15px 49px;
  }
}

.page-bottom__item--document {
  background: url(../img/bg_page-bottom01.png) no-repeat center top/cover;
}
.page-bottom__item--document::before {
  background-color: rgba(238, 235, 229, 0.8);
}

.page-bottom__item--contact {
  color: #fff;
  background: url(../img/bg_page-bottom02.png) no-repeat center top/cover;
}
.page-bottom__item--contact::before {
  background-color: rgba(64, 47, 33, 0.8);
}

.page-bottom__item__wrap {
  position: relative;
  z-index: 20;
}

.page-bottom__item__title {
  font-size: clamp(1.563rem, 1.122rem + 1.88vw, 2.813rem);
  font-weight: 600;
}

.page-bottom__item__text {
  margin-top: 23px;
  font-size: clamp(0.875rem, 0.871rem + 0.28vw, 1.125rem);
  font-weight: 400;
  line-height: 2;
}
@media screen and (max-width: 767px) {
  .page-bottom__item__text {
    margin-top: 9px;
  }
}

.page-bottom__item__btn {
  margin-top: 31px;
}
@media screen and (max-width: 767px) {
  .page-bottom__item__btn {
    margin-top: 16px;
  }
}

/*===============================
footer
===============================*/
.footer {
  padding: 88px 0 73px;
  background: url(../img/bg_footer.png) no-repeat center top/cover;
  position: relative;
}
.footer::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.85);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}
@media screen and (max-width: 1279px) {
  .footer {
    padding: 0 0 73px;
  }
}
@media screen and (max-width: 767px) {
  .footer {
    padding: 0 0 58px;
  }
}

.footer__inner {
  position: relative;
  z-index: 20;
  padding: 0 14.3% 0 12.8%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: start;
}
@media screen and (max-width: 1279px) {
  .footer__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    padding: 0;
  }
}

.footer__left {
  width: 48%;
}
@media screen and (max-width: 1279px) {
  .footer__left {
    width: 100%;
    margin-top: 80px;
    padding: 0 40px;
  }
}
@media screen and (max-width: 767px) {
  .footer__left {
    padding: 0 22px;
    margin-top: 40px;
  }
}

.footer__logo {
  max-width: 332px;
  min-width: 103px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media screen and (min-width: 768px) and (max-width: 1279px) {
  .footer__logo {
    width: 28.9%;
  }
}
@media screen and (max-width: 767px) {
  .footer__logo {
    width: 41%;
  }
}
.footer__logo img {
  width: 100%;
  height: auto;
}

.footer__text {
  margin-top: 31px;
  padding-left: 10px;
  font-size: clamp(0.85rem, 0.639rem + 1.27vw, 1.25rem);
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .footer__text {
    margin-top: 14px;
    padding-left: 6px;
  }
}

.footer__text__company {
  margin-top: 10px;
}

.footer__text__address {
  margin-top: 14px;
}

.footer__text__tel {
  margin-top: 14px;
}
.footer__text__tel dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.footer__right {
  width: 100%;
}

.footer-nav {
  margin-top: 20px;
}
@media screen and (max-width: 1279px) {
  .footer-nav {
    margin-top: 0;
  }
}

.footer-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0 6.919%;
}
@media screen and (max-width: 1279px) {
  .footer-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    border: 1px solid #1B0E03;
  }
  .footer-list .menu-item {
    height: 90px;
    border: 1px solid #1B0E03;
    border-top: none;
  }
}
@media screen and (max-width: 1279px) and (max-width: 767px) {
  .footer-list .menu-item {
    height: 56px;
  }
}
@media screen and (max-width: 1279px) {
  .footer-list .menu-item:nth-child(even) {
    border-left: none;
    border-right: none;
  }
  .footer-list .menu-item:nth-child(even):nth-last-child(-n+1) {
    border-bottom: none;
  }
  .footer-list .menu-item:nth-child(odd) {
    border-left: none;
  }
  .footer-list .menu-item:nth-child(odd):nth-last-child(-n+2) {
    border-bottom: none;
  }
  .footer-list .menu-item a {
    width: 100%;
    height: 100%;
    font-size: clamp(0.938rem, 0.549rem + 1.66vw, 1.875rem);
    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; /* 文字を中央揃え */
  }
}/*# sourceMappingURL=style.css.map */