@charset "UTF-8";

*, *::before, *::after { box-sizing: border-box; }
html, body, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, figure, blockquote {
  margin: 0; padding: 0;
}
ul, ol { list-style: none; }
img { display: block; max-width: 100%; height: auto; width: 100%; vertical-align: top; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }

html { box-sizing: border-box; -webkit-text-size-adjust: 100%; }
body {
  background-color: #ffffff;
  color: #000000;
  font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.04em;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.size-46 { font-size: 46px; line-height: 1.304; }
.size-46::before { content: ""; display: block; height: 0; margin-top: -0.152em; }
.size-46::after  { content: ""; display: block; height: 0; margin-bottom: -0.152em; }

.size-32 { font-size: 32px; line-height: 1.5; }
.size-32::before { content: ""; display: block; height: 0; margin-top: -0.25em; }
.size-32::after  { content: ""; display: block; height: 0; margin-bottom: -0.25em; }

.size-24 { font-size: 24px; line-height: 1.5; }
.size-24::before { content: ""; display: block; height: 0; margin-top: -0.25em; }
.size-24::after  { content: ""; display: block; height: 0; margin-bottom: -0.25em; }

.size-18 { font-size: 18px; line-height: 1.5; }
.size-18::before { content: ""; display: block; height: 0; margin-top: -0.25em; }
.size-18::after  { content: ""; display: block; height: 0; margin-bottom: -0.25em; }

.size-14 { font-size: 14px; line-height: 1.714; }
.size-14::before { content: ""; display: block; height: 0; margin-top: -0.357em; }
.size-14::after  { content: ""; display: block; height: 0; margin-bottom: -0.357em; }

.size-11 { font-size: 11px; line-height: 1.5; letter-spacing: 0.08em; }
.size-11::before { content: ""; display: block; height: 0; margin-top: -0.25em; }
.size-11::after  { content: ""; display: block; height: 0; margin-bottom: -0.25em; }

@media (max-width: 767px) {
  .size-46 { font-size: 32px; }
  .size-32 { font-size: 22px; }
  .size-24 { font-size: 18px; }
  .size-18 { font-size: 16px; }
  .size-14 { font-size: 13px; }
  .size-11 { font-size: 10px; }
}

.fm-playfair { font-family: "Playfair Display", "Times New Roman", serif; font-weight: 500; letter-spacing: 0.02em; }
.fm-mincho   { font-family: "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif; font-weight: 500; }
.text-ja     { font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif; font-weight: 400; }
.main_title  { font-family: "Playfair Display", serif; font-weight: 500; letter-spacing: 0.04em; }
.sub_title   { font-family: "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif; font-weight: 400; letter-spacing: 0.1em; }

.under_line { text-decoration: underline; text-underline-offset: 0.25em; }
.under_line_none { text-decoration: none; }

.js-fadeUp {
  opacity: 0;
  transform: translate3d(0, 120px, 0);
  visibility: hidden;
  will-change: opacity, transform;
}
.js-fadeUp.is-inview {
  opacity: 1;
  transform: translateZ(0);
  visibility: visible;
  transition:
    opacity 1s cubic-bezier(.39, .575, .565, 1),
    transform 1s cubic-bezier(.165, .84, .44, 1),
    visibility 1s;
}
@media (max-width: 767px) {
  .js-fadeUp { transform: translate3d(0, 60px, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .js-fadeUp {
    opacity: 1;
    transform: none;
    visibility: visible;
    transition: none;
  }
}

.pc-only { display: block !important; }
.sp-only { display: none !important; }
@media (max-width: 767px) {
  .pc-only { display: none !important; }
  .sp-only { display: block !important; }
}
