@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?&family=BIZ+UDPMincho:wght@400;700&family=Cormorant+Garamond:wght@300;400;500&display=swap");
:root {
  --text: #403E3B;
  --bg: #FAF9F8;
  --ac: #dedede;
  --white: #fff;
  --en: Cormorant Garamond, BIZ UDPMincho, Times New Roman, 游明朝体, Yu Mincho, YuMincho, ヒラギノ明朝 Pro, Hiragino Mincho Pro, MS P明朝, MS PMincho, serif;
  --linkColor: #403E3B;
  --fsz12: 85.71428571%;
  --fsz13: 92.85714286%;
  --fsz14: 100%;
  --fsz15: 107.14285714%;
  --fsz16: 114.28571429%;
  --fsz18: 128.57142857%;
  --fsz20: 142.85714286%;
  --fsz21: 150%;
  --fsz22: 157.14285714%;
  --fsz24: 171.42857143%;
  --fsz28: 200%;
  --ls: 0.2em;
  --lh: 2;
  --headerHeight: 50px;
  --innerWidth: calc(100% - 48px);
  --innerMax: 1200px;
}
@media screen and (min-width: 1024px) {
  :root {
    --headerHeight: 80px;
  }
}

* {
  letter-spacing: var(--ls);
  line-height: var(--lh);
}

html {
  margin: 0 !important;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-size: 12px;
  font-family: "BIZ UDPMincho", "Times New Roman", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  overflow-x: hidden;
  -ms-overflow-style: none;
  scrollbar-width: none;
  position: relative;
}
body::-webkit-scrollbar {
  display: none;
}
@media screen and (min-width: 375px) {
  body {
    font-size: 14px;
  }
}

main {
  min-height: min(42.7vw, 615px);
  margin-top: var(--headerHeight);
}

section {
  position: relative;
}

a {
  background-color: transparent;
  -webkit-text-decoration-skip: objects;
  color: currentColor;
  text-decoration: none;
  cursor: pointer;
  transition: 0.5s;
}
a:hover {
  outline-width: 0;
  text-decoration: none;
  opacity: 0.8;
}
a:hover:has(.hovImg) {
  opacity: 1;
}
a:hover:has(.hovImg) .hovImg {
  transform: scale(1.05);
}
a.underline {
  text-decoration: underline;
}
a.underline:hover {
  text-decoration: none;
}
a.disabled {
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  a[href*="tel:"] {
    pointer-events: none;
  }
}

img {
  max-width: 100%;
  height: auto;
  border-style: none;
  object-fit: contain;
  vertical-align: bottom;
}

strong {
  font-weight: 700;
}

/* ============= common class ================ */
.inner {
  width: var(--innerWidth);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
@media screen and (min-width: 768px) {
  .inner {
    max-width: var(--innerMax);
  }
}

.disp_none {
  display: none !important;
}
@media screen and (min-width: 576px) {
  .disp_xs {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .disp_tab, .disp_pc, .disp_notsp {
    display: none !important;
  }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .disp_sp, .disp_pc {
    display: none !important;
  }
}
@media screen and (min-width: 1024px) {
  .disp_sp, .disp_tab, .disp_notpc {
    display: none !important;
  }
}

.block {
  width: 100%;
  display: block;
}

.en {
  font-family: var(--en);
  --ls: 0;
}

.fit {
  position: relative;
  overflow: hidden;
}
.fit__item {
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
}

.bg--white {
  background-color: var(--white);
}

.js-collapse {
  cursor: pointer;
}

.js-fadeIn, .js-fade {
  opacity: 0;
}

.hovImg {
  transition: 0.5s;
}

/*------------------------------------------------------
    header
-------------------------------------------------------*/
.header {
  width: 100%;
  height: var(--headerHeight);
  padding-top: 0.9286em;
  background-color: var(--bg);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
}
@media screen and (min-width: 1024px) {
  .header {
    padding-top: 0.3571em;
  }
}
.header__inner {
  max-width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  grid-gap: 0.7143em;
}
@media screen and (min-width: 1200px) {
  .header__inner {
    max-width: 1300px;
    padding-left: min((var(--innerWidth) - 1200px) / 2, 50px);
  }
}
.header__sitelogo {
  width: 15.5em;
}
.header__sitelogo a {
  display: flex;
  align-items: center;
}
.header__sitelogo img {
  width: 100%;
  display: block;
}
@media screen and (min-width: 1024px) {
  .header__sitelogo {
    width: 32.1429em;
  }
}
.header__navWrap {
  width: 100%;
  transition: 0.5s;
}
@media screen and (max-width: 1023px) {
  .header__navWrap {
    height: calc(100vh - var(--headerHeight));
    padding: 2.5em 0;
    background-color: var(--bg);
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: var(--headerHeight);
    left: 0;
    overflow-y: scroll;
    opacity: 0;
    pointer-events: none;
  }
  .header__navWrap.visible {
    opacity: 1;
    pointer-events: auto;
  }
}
@media screen and (min-width: 1024px) {
  .header__navWrap {
    display: block;
  }
}
.header__gnav {
  --ls: 0;
  --lh: 1;
  display: flex;
  flex-direction: column;
  grid-gap: 3.0714em;
}
.header__gnav li {
  text-align: center;
}
.header__gnav li.instagram a {
  width: 1.7143em;
  height: 1.7143em;
  background: url(../img/icon-insta.svg) center/contain no-repeat;
  color: transparent;
  overflow: hidden;
  display: inline-block;
}
.header__gnav a {
  white-space: nowrap;
  position: relative;
}
.header__gnav a img {
  width: 1.7143em;
  display: inline-block;
}
@media screen and (max-width: 1023px) {
  .header__gnav .dn_header-sp {
    display: none !important;
  }
}
@media screen and (min-width: 1024px) {
  .header__gnav {
    font-size: var(--fsz16);
    flex-direction: row;
    justify-content: flex-end;
    grid-gap: 2.5625em;
  }
  .header__gnav a {
    color: var(--linkColor);
  }
  .header__gnav a::after {
    content: "";
    width: 0;
    height: 1px;
    background-color: var(--linkColor);
    display: block;
    position: absolute;
    bottom: -4px;
    left: 0;
    transition: 0.5s;
  }
  .header__gnav a:hover {
    opacity: 1;
  }
  .header__gnav a:hover::after {
    width: 100%;
  }
  .header__gnav .dn_header-pc {
    display: none !important;
  }
}
.header__spToggler {
  width: 2.1429em;
  height: 0.6429em;
  padding: 0;
  border: 0;
  line-height: 1;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  grid-gap: 0.5em;
  flex-shrink: 0;
  position: relative;
}
.header__spToggler:focus {
  outline: 0;
  box-shadow: none;
}
.header__spToggler span {
  width: 2.1429em;
  height: 1px;
  margin: 0 auto;
  background-color: var(--linkColor);
  border-radius: 1px;
  display: block;
  transition: 0.5s;
}
.header__spToggler.open span {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: rotate(15deg);
}
.header__spToggler.open span + span {
  transform: rotate(-15deg);
}

/*------------------------------------------------------
  main
-------------------------------------------------------*/
.pageTtl {
  width: var(--innerWidth);
  max-width: 600px;
  padding: 2.2143em 0;
  margin-left: auto;
  margin-right: auto;
  font-size: var(--fsz28);
  font-family: var(--en);
  --ls: 0;
  --lh: 1;
}
@media screen and (min-width: 768px) {
  .pageTtl {
    max-width: var(--innerMax);
    padding: 4.1071em 0 0.5714em;
  }
}

.moreLink {
  width: 120px;
  position: relative;
}
.moreLink__link {
  padding-bottom: 0.5em;
  font-size: var(--fsz16);
  font-family: var(--en);
  --ls: 0;
  --lh: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.moreLink__link::before {
  content: "";
  width: 100%;
  height: 1px;
  background-color: var(--text);
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
}
.moreLink__link::after {
  content: "";
  width: 12px;
  height: 12px;
  background: url('data:image/svg+xml;charset=utf8,<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.25 5.99993L3.75 8.59801C3.75 8.59801 5.75 7.12587 5.75 5.99993C5.75 4.874 3.75 3.40186 3.75 3.40186L8.25 5.99993Z" fill="%23403E3B"/></svg>') center/contain no-repeat;
  display: block;
  flex-shrink: 0;
}
.moreLink__link:hover {
  opacity: 1;
}
.moreLink__link:hover::before {
  animation: moreLinkHov 0.5s ease;
}
@keyframes moreLinkHov {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}

.pagination {
  width: 100%;
  margin-top: 5.3571em;
}
@media screen and (min-width: 768px) {
  .pagination {
    margin-top: 8em;
  }
}
.pagination ul.page-numbers {
  font-family: var(--en);
  --lh: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  grid-gap: 1.1429em;
}
.pagination ul.page-numbers .page-numbers {
  color: var(--text);
  font-size: var(--fsz16);
  opacity: 0.3;
}
.pagination ul.page-numbers .page-numbers:hover, .pagination ul.page-numbers .page-numbers.current {
  opacity: 1;
}
.pagination ul.page-numbers .page-numbers.dots {
  pointer-events: none;
}
.pagination ul.page-numbers .page-numbers.prev, .pagination ul.page-numbers .page-numbers.next {
  width: 1em;
  height: 1em;
  background: url('data:image/svg+xml;charset=utf8,<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.25 5.99993L3.75 8.59801C3.75 8.59801 5.75 7.12587 5.75 5.99993C5.75 4.874 3.75 3.40186 3.75 3.40186L8.25 5.99993Z" fill="%23403E3B"/></svg>') center/contain no-repeat;
  text-indent: -9999px;
  overflow: hidden;
  display: block;
  transform: translateY(10%);
}
.pagination ul.page-numbers .page-numbers.prev {
  transform: scale(-1, 1) translateY(10%);
}

.singleBtmNav {
  width: 100%;
  margin-top: 5.2143em;
  display: flex;
  align-items: center;
  justify-content: center;
  grid-gap: 2.1429em;
}
@media screen and (min-width: 768px) {
  .singleBtmNav {
    margin-top: 8.5714em;
    grid-gap: 4.2857em;
  }
}
.singleBtmNav__prevLink {
  width: 30px;
  height: 30px;
  background: url('data:image/svg+xml;charset=utf8,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 17 17" fill="none"><path d="M11.6328 5.81055C11.8281 5.61528 12.1446 5.61528 12.3398 5.81055L14.3945 7.86523C14.5897 8.0605 14.5898 8.37702 14.3945 8.57227L12.3398 10.627C12.1446 10.8222 11.8281 10.8222 11.6328 10.627C11.4377 10.4317 11.4376 10.1151 11.6328 9.91992L12.834 8.71875H2.39648C2.12035 8.71875 1.8965 8.49488 1.89648 8.21875C1.89648 7.94261 2.12034 7.71875 2.39648 7.71875H12.834L11.6328 6.51758C11.4376 6.32232 11.4376 6.00581 11.6328 5.81055Z" fill="%23403E3B"/></svg>') center/contain no-repeat;
  transform: scale(-1, 1);
}
.singleBtmNav__nextLink {
  width: 30px;
  height: 30px;
  background: url('data:image/svg+xml;charset=utf8,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 17 17" fill="none"><path d="M11.6328 5.81055C11.8281 5.61528 12.1446 5.61528 12.3398 5.81055L14.3945 7.86523C14.5897 8.0605 14.5898 8.37702 14.3945 8.57227L12.3398 10.627C12.1446 10.8222 11.8281 10.8222 11.6328 10.627C11.4377 10.4317 11.4376 10.1151 11.6328 9.91992L12.834 8.71875H2.39648C2.12035 8.71875 1.8965 8.49488 1.89648 8.21875C1.89648 7.94261 2.12034 7.71875 2.39648 7.71875H12.834L11.6328 6.51758C11.4376 6.32232 11.4376 6.00581 11.6328 5.81055Z" fill="%23403E3B"/></svg>') center/contain no-repeat;
}
.singleBtmNav__listLink {
  width: 32px;
  height: 32px;
}

.page--404 .pageTtl {
  padding: 2.2143em 0 2.5714em;
  display: flex;
  flex-direction: column-reverse;
  grid-gap: 0.8214em;
}
.page--404 .pageTtl .jp {
  font-size: 64.29%;
  --ls: 0.2em;
}
@media screen and (min-width: 768px) {
  .page--404 .pageTtl {
    padding: 4.1071em 0 2.6429em;
    grid-gap: 1.6071em;
  }
  .page--404 .pageTtl .jp {
    font-size: 85.71%;
  }
}
.page--404 .sec404 .moreLink {
  margin-top: 4.2857em;
}

/*------------------------------------------------------
    footer
-------------------------------------------------------*/
.secContact {
  padding: 2.8571em 0;
}
@media screen and (min-width: 768px) {
  .secContact {
    padding: 8.5714em 0;
  }
}
.secContact__inner {
  padding: 3.8571em 0 4.2857em;
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  grid-gap: 1.4286em;
}
@media screen and (min-width: 768px) {
  .secContact__inner {
    padding: 5.5714em 0 6em;
  }
}
.secContact__ttl {
  font-size: var(--fsz28);
  --lh: 1;
}
.secContact__txt {
  font-size: var(--fsz13);
}
.secContact__moreLink {
  margin-top: 1.2857em;
}
@media screen and (min-width: 768px) {
  .secContact__moreLink {
    margin-top: 2.8571em;
  }
}

.footer {
  padding: 4.2857em 0 1.2857em;
  border-top: 1px solid var(--ac);
}
@media screen and (min-width: 768px) {
  .footer {
    padding: 4.2857em 0 1.4286em;
  }
}
@media screen and (min-width: 1024px) {
  .footer {
    padding: 12em 0 1.4286em;
  }
}
.footer__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  grid-gap: 4em;
}
@media screen and (min-width: 1024px) {
  .footer__inner {
    flex-direction: row;
    justify-content: space-between;
  }
}
.footer__leftCol {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .footer__leftCol {
    max-width: 390px;
    flex-shrink: 0;
  }
}
.footer__rightCol {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.footer__rightCol_lows {
  font-size: var(--fsz12);
  --lh: 1.25;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  grid-gap: 1em;
}
@media screen and (min-width: 768px) {
  .footer__rightCol_lows {
    flex-direction: row;
    align-items: center;
    grid-gap: 2.5em;
  }
}
.footer__logo {
  width: 21em;
  margin-bottom: 1.2143em;
}
@media screen and (min-width: 768px) {
  .footer__logo {
    width: 100%;
  }
}
.footer__txt {
  font-size: var(--fsz13);
  --ls: 0.05em;
  --lh: 1.38461538;
}
.footer__txt strong {
  font-weight: 400;
  --ls: 0.1em;
}
@media screen and (min-width: 768px) {
  .footer__txt {
    font-size: var(--fsz14);
    --ls: 0.1em;
    --lh: 1.71428571;
  }
}
.footer__nav {
  margin-bottom: 2.1429em;
}
.footer__nav_list {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  grid-gap: 0.6429em;
}
.footer__nav_list li.philos {
  margin-bottom: 0.4167em;
  font-size: var(--fsz12);
  font-family: "BIZ UDPMincho", "Times New Roman", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  --ls: 0.2em;
  display: flex;
  align-items: center;
  grid-gap: 2.0833em;
}
.footer__nav_list li.philos::before {
  content: "";
  width: 5.4167em;
  height: 1px;
  background: var(--ac);
  display: block;
  flex-shrink: 0;
}
@media screen and (min-width: 768px) {
  .footer__nav_list li.philos {
    margin-bottom: 2.5em;
  }
}
.footer__nav_list li.instagram {
  margin-top: 0.3571em;
}
.footer__nav_list li.instagram a {
  width: 1.7143em;
  height: 1.7143em;
  background: url(../img/icon-insta.svg) center/contain no-repeat;
  color: transparent;
  overflow: hidden;
  display: inline-block;
}
.footer__nav_list li.dn_footer {
  display: none !important;
}
@media screen and (min-width: 768px) {
  .footer__nav {
    margin-bottom: 5.7143em;
  }
  .footer__nav_list {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    grid-gap: 0 2.8571em;
  }
  .footer__nav_list li {
    display: flex;
    align-items: center;
  }
  .footer__nav_list li.philos {
    width: 100%;
    justify-content: flex-end;
  }
  .footer__nav_list li.instagram {
    margin-top: 0;
  }
}
@media screen and (min-width: 1024px) {
  .footer__nav {
    margin-bottom: 9.2857em;
  }
}
.footer__copyright {
  font-weight: 300;
}

/*------------------------------------------------------
    animation
-------------------------------------------------------*/
@keyframes appear {
  from {
    opacity: 0;
    pointer-events: none;
  }
  to {
    opacity: 1;
    pointer-events: auto;
  }
}
@keyframes disappear {
  0% {
    opacity: 1;
  }
  30% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    pointer-events: none;
  }
}