@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap");
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@4.1.1/dist/css/yakuhanjp.css");
html {
  -ms-text-size-adjust: 100% !important;
  -webkit-text-size-adjust: 100% !important;
  font-size: 62.5% !important;
  background: none !important;
}

a,
address,
article,
aside,
audio,
b,
big,
blockquote,
body,
button,
caption,
center,
cite,
code,
dd,
details,
div,
dl,
dt,
em,
fieldset,
figcaption,
figure,
footer,
form,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
i,
iframe,
img,
input,
label,
li,
main,
mark,
menu,
nav,
ol,
p,
pre,
q,
s,
section,
select,
small,
span,
strong,
summary,
table,
tbody,
td,
textarea,
tfoot,
th,
thead,
time,
tr,
u,
ul,
video {
  margin: 0;
  padding: 0;
  font-size: inherit;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

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

audio,
canvas,
progress,
video {
  display: inline-block;
}

audio:not([controls]) {
  display: none;
  height: 0;
}

ol,
ul {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

img {
  max-width: 100%;
  vertical-align: bottom;
  border-style: none;
}

svg:not(:root) {
  overflow: hidden;
}

a {
  background-color: transparent;
}

a:active,
a:hover {
  outline-width: 0;
}

b,
strong {
  font-weight: inherit;
  font-weight: bolder;
}

hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
  overflow: visible;
}

button,
input,
select,
textarea {
  font: inherit;
  margin: 0;
}

button,
input,
select {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

[type=button],
[type=reset],
[type=submit],
button {
  cursor: pointer;
}

[disabled] {
  cursor: default;
}

[type=reset],
[type=submit],
button,
html [type=button] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

button:-moz-focusring,
input:-moz-focusring {
  outline: 1px dotted ButtonText;
}

textarea {
  overflow: auto;
}

[type=checkbox],
[type=radio] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  -webkit-appearance: textfield;
}

[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:after,
blockquote:before,
q:after,
q:before {
  content: "";
  content: none;
}

/*==================================================================================================
	ヘッダー
==================================================================================================*/
.header {
  position: absolute;
  top: 0;
  left: 0;
  -webkit-transition: opacity 0.4s ease, background 0.4s ease, -webkit-transform 0.4s ease;
  transition: opacity 0.4s ease, background 0.4s ease, -webkit-transform 0.4s ease;
  transition: transform 0.4s ease, opacity 0.4s ease, background 0.4s ease;
  transition: transform 0.4s ease, opacity 0.4s ease, background 0.4s ease, -webkit-transform 0.4s ease;
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: clamp(1em, 3vw, 1.2em) clamp(1.2em, 4vw, 2.4em);
  z-index: 100;
}
.header__left {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  text-align: center;
  padding-left: 8vw;
}
.header__left .logo {
  opacity: 0;
}
.header__left .logo img {
  width: clamp(50px, 16vw, 150px);
}
@media screen and (max-width: 767px) {
  .header__left {
    padding-left: 15vw;
  }
}
.header__right {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(1em, 2.4vw, 1.8em);
}
.header__right .snsIcon {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.header__right .snsIcon img {
  width: clamp(20px, 2vw, 26px);
  height: clamp(20px, 2vw, 26px);
}
.header .hamburgerMenu {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  cursor: pointer;
  width: clamp(22px, 3.5vw, 40px);
}
.header .hamburgerMenu .line {
  position: relative;
  width: 100%;
  aspect-ratio: 1/0.4;
}
.header .hamburgerMenu .line span {
  display: inline-block;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: #ffffff;
}
.header .hamburgerMenu .line span:nth-of-type(1) {
  top: 0;
}
.header .hamburgerMenu .line span:nth-of-type(2) {
  top: 100%;
  width: 80%;
}
.header:not(.fixed) > .snsIcon {
  display: none !important;
}
.header:not(.fixed) .header__right .snsIcon {
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important;
}
.header.fixed {
  background: rgba(242, 235, 225, 0.96);
  -webkit-box-shadow: 0px 0px 15px -5px rgba(36, 31, 27, 0.15);
          box-shadow: 0px 0px 15px -5px rgba(36, 31, 27, 0.15);
  position: fixed;
  -webkit-transform: translateY(-20px);
          transform: translateY(-20px);
  opacity: 0;
}
.header.fixed.show {
  -webkit-transform: translateY(0);
          transform: translateY(0);
  opacity: 1;
}
.header.fixed .header__left .logo {
  opacity: 1;
  color: #241F1B;
}
.header.fixed .hamburgerMenu .line span {
  background: #241F1B;
}
.header.fixed .snsIcon img {
  -webkit-filter: invert(100%) sepia(0%) saturate(7472%) hue-rotate(271deg) brightness(107%) contrast(101%);
          filter: invert(100%) sepia(0%) saturate(7472%) hue-rotate(271deg) brightness(107%) contrast(101%);
}
.header.-noTransition, .header.-noTransition * {
  -webkit-transition: none !important;
  transition: none !important;
}

/*----------------------------------------------------
サブページ共通 ヘッダー（固定前はロゴ・アイコンを濃色で表示）
----------------------------------------------------*/
.header.sub:not(.fixed) .header__left .logo {
  opacity: 1;
}
.header.sub:not(.fixed) .hamburgerMenu .line span {
  background: #241F1B;
}
.header.sub:not(.fixed) .snsIcon img {
  -webkit-filter: invert(100%) sepia(0%) saturate(7472%) hue-rotate(271deg) brightness(107%) contrast(101%);
          filter: invert(100%) sepia(0%) saturate(7472%) hue-rotate(271deg) brightness(107%) contrast(101%);
}
/*----------------------------------------------------
グローバルナビゲーション
----------------------------------------------------*/
.bigMenu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 101;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  background: #F2EBE1;
  color: #241F1B;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.5s, visibility 0.5s;
  transition: opacity 0.5s, visibility 0.5s;
}
.bigMenu.-open {
  opacity: 1;
  visibility: visible;
}
.bigMenu a {
  color: #241F1B;
}
.bigMenu__photo {
  width: 25%;
  -webkit-box-flex: 0;
  -webkit-flex: none;
      -ms-flex: none;
          flex: none;
}
.bigMenu__photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.bigMenu__main {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  overflow-y: auto;
}
.bigMenu__head {
  position: absolute;
  right: clamp(1.2em, 2.4vw, 2.8em);
  top: clamp(1em, 2vw, 2em);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(1.6em, 3vw, 3.4em);
  z-index: 1;
}
.bigMenu__head .snsIcon {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.bigMenu__head .snsIcon img {
  width: clamp(20px, 1.6vw, 30px);
  height: clamp(20px, 1.6vw, 30px);
  -webkit-filter: invert(100%) sepia(0%) saturate(7472%) hue-rotate(271deg) brightness(107%) contrast(101%);
          filter: invert(100%) sepia(0%) saturate(7472%) hue-rotate(271deg) brightness(107%) contrast(101%);
}
.bigMenu__head .snsIcon:hover {
  opacity: 0.6;
}
.bigMenu .closeMenu {
  position: relative;
  cursor: pointer;
  width: clamp(26px, 2.2vw, 42px);
  aspect-ratio: 1/1;
}
.bigMenu .closeMenu span {
  display: inline-block;
  position: absolute;
  left: -20%;
  top: 50%;
  width: 140%;
  height: 1px;
  background: #241F1B;
}
.bigMenu .closeMenu span:nth-child(1) {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.bigMenu .closeMenu span:nth-child(2) {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
.bigMenu__body {
  margin: auto 0;
  padding: clamp(6em, 8vw, 9em) 12% clamp(4em, 6vw, 6em);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 3em;
}
.bigMenu .linkList {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(1.8em, 2.6vw, 3.2em);
}
.bigMenu .linkList li > a {
  display: inline-block;
}
.bigMenu .linkList li > a:hover {
  opacity: 0.6;
}
.bigMenu .linkList .en {
  display: block;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: clamp(2.2rem, 1.5vw, 2.8rem);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.03em;
}
.bigMenu .linkList .jp {
  display: block;
  margin-top: 0.3em;
  font-size: clamp(1.2rem, 0.8vw, 1.4rem);
  color: #6B5B4B;
  letter-spacing: 0.05em;
}
.bigMenu .subList {
  margin-top: 1.4em;
  padding-left: 1.8em;
}
.bigMenu .subList li + li {
  margin-top: 0.9em;
}
.bigMenu .subList li a {
  font-size: clamp(1.4rem, 1vw, 1.8rem);
}
.bigMenu .subList li a:hover {
  opacity: 0.6;
}
.bigMenu .subArea {
  width: 40%;
  -webkit-box-flex: 0;
  -webkit-flex: none;
      -ms-flex: none;
          flex: none;
}
.bigMenu .infoList {
  margin-top: clamp(1.6em, 2.8vw, 3.2em);
  padding-top: clamp(1.6em, 2.4vw, 2.8em);
  border-top: rgba(36, 31, 27, 0.3) 1px solid;
}
.bigMenu .infoList li + li {
  margin-top: 0.9em;
}
.bigMenu .infoList li a {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6em;
  font-size: clamp(1.4rem, 1vw, 1.8rem);
}
.bigMenu .infoList li a:hover {
  opacity: 0.6;
}
.bigMenu .accessBtn {
  display: block;
  margin-top: clamp(2.4em, 4.4vw, 5em);
  padding: 1.2em 1em;
  background: #201C19;
  border-radius: 2px;
  color: #ffffff;
  text-align: center;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: clamp(1.5rem, 1.2vw, 2.2rem);
  letter-spacing: 0.03em;
}
.bigMenu .accessBtn:hover {
  opacity: 0.8;
}
@media screen and (max-width: 1080px) {
  .bigMenu__photo {
    width: 20%;
  }
  .bigMenu__body {
    padding-left: 8%;
    padding-right: 8%;
  }
  .bigMenu .subArea {
    width: 45%;
  }
}
@media screen and (max-width: 767px) {
  .bigMenu__photo {
    display: none;
  }
  .bigMenu__head {
    right: 6vw;
    top: 1.2em;
  }
  .bigMenu__body {
    margin: 0;
    padding: 6em 8vw 4em;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
  }
  .bigMenu .subArea {
    width: 100%;
    margin-top: clamp(1.8em, 2.6vw, 3.2em);
  }
}

.overlay {
  display: none;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
}

/*==================================================================================================
	フッター
==================================================================================================*/
.annotation {
  text-align: right;
  margin-top: 1.6em;
  font-size: 78%;
  padding: 1em;
}

.footer {
  background: #201C19;
  color: #ffffff;
  text-align: center;
  padding: clamp(4em, 8vw, 6em) clamp(1.5em, 5vw, 2.5em) clamp(2em, 5vw, 3em);
}
.footer__top .logo {
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: clamp(3rem, 6vw, 4.6rem);
  font-weight: 700;
  line-height: 1;
}
.footer__top .logo span {
  display: block;
  font-size: 30%;
  font-weight: 400;
  letter-spacing: 0.2em;
  margin-top: 1em;
  color: rgba(255, 255, 255, 0.7);
}
.footer__top .navWrap {
  margin-top: clamp(2.5em, 7vw, 4em);
}
.footer__top .navWrap .linkList {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1.2em clamp(2em, 5vw, 4em);
}
.footer__top .navWrap .linkList li > a {
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: clamp(1.6rem, 2vw, 1.9rem);
  color: #ffffff;
}
.footer__top .navWrap .linkList li > a:hover {
  opacity: 0.6;
}
.footer__top .snsIcon {
  margin-top: clamp(2.5em, 7vw, 4em);
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6em;
  color: #ffffff;
  text-decoration: underline;
}
.footer__top .snsIcon img {
  width: 22px;
  height: 22px;
}
.footer__top .snsIcon:hover {
  opacity: 0.7;
}
.footer__top .copy {
  margin-top: clamp(2em, 6vw, 3.5em);
  font-size: 82%;
  color: rgba(255, 255, 255, 0.7);
}
.footer__bottom {
  margin-top: clamp(1.5em, 4vw, 2.5em);
}
.footer__bottom .linkList {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 0.8em 2em;
}
.footer__bottom .linkList li a {
  font-size: 78%;
  color: rgba(255, 255, 255, 0.8);
  text-decoration: underline;
}
.footer__bottom .linkList li a:hover {
  opacity: 0.7;
}
@media screen and (max-width: 767px) {
  .footer__bottom .linkList {
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

/*==================================================================================================
	共通 Common
==================================================================================================*/
.spShow {
  display: none !important;
}
@media screen and (max-width: 767px) {
  .spShow {
    display: block !important;
  }
}

@media screen and (max-width: 767px) {
  .pcShow {
    display: none !important;
  }
}

.-center {
  text-align: center;
}

.-right {
  text-align: right;
}

.-left {
  text-align: left;
}

/*---------------------------------------------------------------------
コンテナ
---------------------------------------------------------------------*/
.lContainer {
  position: relative;
}

/*---------------------------------------------------------------------
見出し（英字+和字の2階建て見出し）
---------------------------------------------------------------------*/
.secTtl__en {
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: clamp(3.4rem, 6vw, 5.6rem);
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0;
}
.secTtl__en strong {
  font-weight: 600;
}
.secTtl__jp {
  display: block;
  font-size: clamp(1.3rem, 1.6vw, 1.5rem);
  margin-top: 0.6em;
  letter-spacing: 0.05em;
}
.secTtl.-white .secTtl__en, .secTtl.-white .secTtl__jp {
  color: #ffffff;
}

.miniLabel {
  font-size: 120%;
  margin-bottom: 0.5em;
}

/*----------------------------------------------------
サブページ共通 ページタイトル
----------------------------------------------------*/
.pageHead {
  padding-top: clamp(9em, 12.5vw, 16em);
}
.pageHead .inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 1em;
}
.pageHead .pageTtl__en {
  display: block;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: clamp(4.2rem, 5.6vw, 7.6rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
}
.pageHead .pageTtl__jp {
  display: block;
  margin-top: 0.8em;
  font-size: clamp(1.3rem, 1.3vw, 1.8rem);
  font-weight: 400;
  letter-spacing: 0.05em;
}
.pageHead .breadcrumb {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  font-size: 88%;
}
.pageHead .breadcrumb li + li::before {
  content: "-";
  margin: 0 0.5em;
}
@media screen and (max-width: 767px) {
  .pageHead {
    padding-top: 23vw;
  }
  .pageHead .pageTtl__en {
    font-size: 10vw;
  }
  .pageHead .pageTtl__jp {
    margin-top: 0.4em;
  }
}

/*---------------------------------------------------------------------
ボタン
---------------------------------------------------------------------*/
.btnArea {
  margin-top: clamp(1.6em, 4vw, 2.2em);
}
.btnArea.-center {
  text-align: center;
}

.outlineBtn {
  display: inline-block;
  min-width: 15em;
  padding: 1em 1.5em;
  text-align: center;
  border: #241F1B 1px solid;
  border-radius: 2px;
  font-size: 92%;
  letter-spacing: 0.05em;
}
.outlineBtn:hover {
  background: #241F1B;
  color: #ffffff;
}
.outlineBtn.-white {
  border-color: #ffffff;
  color: #ffffff;
}
.outlineBtn.-white:hover {
  background: #ffffff;
  color: #241F1B;
}
.outlineBtn.-icon {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5em;
  max-width: 15em;
}
.outlineBtn.-icon:hover img {
  -webkit-filter: invert(95%) sepia(18%) saturate(2%) hue-rotate(305deg) brightness(116%) contrast(101%);
          filter: invert(95%) sepia(18%) saturate(2%) hue-rotate(305deg) brightness(116%) contrast(101%);
}
.outlineBtn.-small {
  min-width: 0;
  padding: 0.6em 1.4em;
  font-size: 84%;
  margin-top: 0.8em;
}
@media screen and (max-width: 767px) {
  .outlineBtn {
    width: 100%;
  }
  .outlineBtn.-small {
    width: auto;
  }
}

.fillBtn {
  display: block;
  width: clamp(15em, 26vw, 32em);
  padding: 1.6em 1.5em;
  text-align: center;
  background: #201C19;
  border: #201C19 1px solid;
  border-radius: 2px;
  color: #ffffff !important;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  font-size: 92%;
  letter-spacing: 0.05em;
}
.fillBtn:hover {
  background: transparent;
  color: #201C19 !important;
}
@media screen and (max-width: 767px) {
  .fillBtn {
    width: 100%;
    padding: 1.2em 1.5em;
  }
}

.textLink {
  display: inline-block;
  padding-bottom: 0.4em;
  border-bottom: currentColor 1px solid;
  letter-spacing: 0.05em;
  font-family: "Montserrat", "Noto Sans JP", sans-serif;
  color: #ffffff;
}
.textLink:hover {
  opacity: 0.7;
}

/*==================================================================================================
	ローディング
==================================================================================================*/
.loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
  background: #F2EBE1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-transition: opacity 1.2s ease, visibility 1.2s ease;
  transition: opacity 1.2s ease, visibility 1.2s ease;
}
.loader__logo {
  width: clamp(140px, 28vw, 220px);
  -webkit-transition: opacity 0.8s ease;
  transition: opacity 0.8s ease;
}
.loader__logo svg {
  display: block;
  width: 100%;
  height: auto;
  fill: #241F1B;
  overflow: visible;
}
.loader__logo path {
  opacity: 0;
  -webkit-transform: translateY(10px);
          transform: translateY(10px);
  -webkit-animation: loaderLogoIn 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
          animation: loaderLogoIn 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}
.loader__logo path:nth-of-type(1) {
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}
.loader__logo path:nth-of-type(2) {
  -webkit-animation-delay: 0.04s;
          animation-delay: 0.04s;
}
.loader__logo path:nth-of-type(3) {
  -webkit-animation-delay: 0.08s;
          animation-delay: 0.08s;
}
.loader__logo path:nth-of-type(4) {
  -webkit-animation-delay: 0.12s;
          animation-delay: 0.12s;
}
.loader__logo path:nth-of-type(5) {
  -webkit-animation-delay: 0.16s;
          animation-delay: 0.16s;
}
.loader__logo path:nth-of-type(6) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}
.loader__logo path:nth-of-type(7) {
  -webkit-animation-delay: 0.24s;
          animation-delay: 0.24s;
}
.loader__logo path:nth-of-type(8) {
  -webkit-animation-delay: 0.28s;
          animation-delay: 0.28s;
}
.loader__logo path:nth-of-type(9) {
  -webkit-animation-delay: 0.32s;
          animation-delay: 0.32s;
}
.loader__logo path:nth-of-type(10) {
  -webkit-animation-delay: 0.36s;
          animation-delay: 0.36s;
}
.loader__logo path:nth-of-type(11) {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}
.loader__logo path:nth-of-type(12) {
  -webkit-animation-delay: 0.44s;
          animation-delay: 0.44s;
}
.loader__logo path:nth-of-type(13) {
  -webkit-animation-delay: 0.48s;
          animation-delay: 0.48s;
}
.loader__logo path:nth-of-type(14) {
  -webkit-animation-delay: 0.52s;
          animation-delay: 0.52s;
}
.loader__logo path:nth-of-type(15) {
  -webkit-animation-delay: 0.56s;
          animation-delay: 0.56s;
}
.loader__logo path:nth-of-type(16) {
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
}
.loader__logo path:nth-of-type(17) {
  -webkit-animation-delay: 0.64s;
          animation-delay: 0.64s;
}
.loader.-logoOut .loader__logo {
  opacity: 0;
}
.loader.-hide {
  opacity: 0;
  visibility: hidden;
}

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

@keyframes loaderLogoIn {
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .loader__logo path {
    -webkit-animation: none;
            animation: none;
    opacity: 1;
    -webkit-transform: none;
            transform: none;
  }
}
body.is-loading {
  overflow: hidden;
}

/*==================================================================================================
	サイト基礎
==================================================================================================*/
#body_wrap {
  z-index: auto;
}

body {
  color: #241F1B;
  font-family: YakuHanJP, "Montserrat", "Noto Sans JP", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.03em;
  overflow-x: hidden;
  position: relative;
  width: 100%;
  background: #F2EBE1;
}
body.noScrolled {
  overflow: hidden;
}
body h1, body h2, body h3, body h4, body h5, body h6 {
  font-weight: 500;
}
body a {
  -webkit-transition: 0.3s;
  transition: 0.3s;
  color: #241F1B;
  text-decoration: none;
}
body img {
  height: auto;
}
body .inner {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
}
@media screen and (max-width: 1300px) {
  body .inner {
    padding-left: 3vw;
    padding-right: 3vw;
  }
}
@media screen and (max-width: 767px) {
  body .inner {
    padding-left: 6vw;
    padding-right: 6vw;
  }
}
body .innerS {
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
}
@media screen and (max-width: 1300px) {
  body .innerS {
    padding-left: 3vw;
    padding-right: 3vw;
  }
}
@media screen and (max-width: 767px) {
  body .innerS {
    padding-left: 6vw;
    padding-right: 6vw;
  }
}

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

.wrap {
  overflow-x: hidden;
  position: relative;
}