@charset "UTF-8";
.hidden-xs-up {
  display: none !important;
}

@media (max-width: 575.98px) {
  .hidden-xs-down {
    display: none !important;
  }
}

@media (max-width: 575.98px) {
  .hidden-xs-only {
    display: none !important;
  }
}

.block-xs-only {
  display: none;
}
@media (max-width: 575.98px) {
  .block-xs-only {
    display: block !important;
  }
}

@media (min-width: 576px) {
  .hidden-sm-up {
    display: none !important;
  }
}

@media (max-width: 767.98px) {
  .hidden-sm-down {
    display: none !important;
  }
}

@media (min-width: 576px) and (max-width: 767.98px) {
  .hidden-sm-only {
    display: none !important;
  }
}

.block-sm-only {
  display: none;
}
@media (min-width: 576px) and (max-width: 767.98px) {
  .block-sm-only {
    display: block !important;
  }
}

@media (min-width: 768px) {
  .hidden-md-up {
    display: none !important;
  }
}

@media (max-width: 1211.98px) {
  .hidden-md-down {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 1211.98px) {
  .hidden-md-only {
    display: none !important;
  }
}

.block-md-only {
  display: none;
}
@media (min-width: 768px) and (max-width: 1211.98px) {
  .block-md-only {
    display: block !important;
  }
}

@media (min-width: 1212px) {
  .hidden-lg-up {
    display: none !important;
  }
}

@media (max-width: 1899.98px) {
  .hidden-lg-down {
    display: none !important;
  }
}

@media (min-width: 1212px) and (max-width: 1899.98px) {
  .hidden-lg-only {
    display: none !important;
  }
}

.block-lg-only {
  display: none;
}
@media (min-width: 1212px) and (max-width: 1899.98px) {
  .block-lg-only {
    display: block !important;
  }
}

@media (min-width: 1900px) {
  .hidden-xl-up {
    display: none !important;
  }
}

.hidden-xl-down {
  display: none !important;
}

@media (min-width: 1900px) {
  .hidden-xl-only {
    display: none !important;
  }
}

.block-xl-only {
  display: none;
}
@media (min-width: 1900px) {
  .block-xl-only {
    display: block !important;
  }
}

@font-face {
  font-family: "YakuHanJP";
  font-style: normal;
  font-weight: normal;
  src: url("../../../fonts/yakuhan/YakuHanJP-Regular.eot");
  src: url("../../../fonts/yakuhan/YakuHanJP-Regular.woff2") format("woff2"), url("../../../fonts/yakuhan/YakuHanJP-Regular.woff") format("woff");
}
@font-face {
  font-family: "YakuHanJP";
  font-style: normal;
  font-weight: bold;
  src: url("../../../fonts/yakuhan/YakuHanJP-Bold.eot");
  src: url("../../../fonts/yakuhan/YakuHanJP-Bold.woff2") format("woff2"), url("../../../fonts/yakuhan/YakuHanJP-Bold.woff") format("woff");
}
@font-face {
  font-family: "YakuHanMP";
  font-style: normal;
  font-weight: normal;
  src: url("../../../fonts/yakuhan/YakuHanMP-Regular.eot");
  src: url("../../../fonts/yakuhan/YakuHanMP-Regular.woff2") format("woff2"), url("../../../fonts/yakuhan/YakuHanMP-Regular.woff") format("woff");
}
@font-face {
  font-family: "YakuHanMP";
  font-style: normal;
  font-weight: bold;
  src: url("../../../fonts/yakuhan/YakuHanMP-Bold.eot");
  src: url("../../../fonts/yakuhan/YakuHanMP-Bold.woff2") format("woff2"), url("../../../fonts/yakuhan/YakuHanMP-Bold.woff") format("woff");
}
:root {
  --classic-rem-base: 10px;
}
@media (max-width: 1899.98px) {
  :root {
    --classic-rem-base: 0.5265929437vw;
  }
}
@media (max-width: 1211.98px) {
  :root {
    --classic-rem-base: 7.5px;
  }
}
@media (max-width: 320px) {
  :root {
    --classic-rem-base: 7px;
  }
}

.fixedHeader,
.gNav,
.gFooter {
  color: #333;
  font-family: YakuHanMP, 游明朝, YuMincho, Hiragino Mincho ProN W3, ヒラギノ明朝 ProN W3, Hiragino Mincho ProN, HG明朝E, ＭＳ Ｐ明朝, ＭＳ 明朝, "Noto Serif JP", serif;
  font-size: calc(2.3 * var(--classic-rem-base));
  font-weight: 400;
  line-height: 2;
}
.fixedHeader .mb0,
.gNav .mb0,
.gFooter .mb0 {
  margin-bottom: 0 !important;
}

.ff-qa {
  font-family: Arbutus Slab, serif;
  opacity: 0.8;
}

:where(.fixedHeader) img,
:where(.gNav) img,
:where(.gFooter) img {
  display: revert;
}
:where(.fixedHeader) p,
:where(.gNav) p,
:where(.gFooter) p {
  margin-bottom: calc(1 * var(--classic-rem-base));
}

.fixedHeader {
  position: fixed;
  top: calc(2.5 * var(--classic-rem-base));
  left: calc(5 * var(--classic-rem-base));
  z-index: 220;
}
.fixedHeader img {
  width: 54px;
  height: 54px;
}
.fixedHeader h1, .fixedHeader-pageTop {
  line-height: 1;
  font-size: calc(1 * var(--classic-rem-base));
  margin: 0;
}
.fixedHeader-pageTop {
  position: absolute;
  opacity: 0;
  border: 0;
  padding: 0;
  margin: 0;
  top: 0;
  left: 0;
  width: 54px;
  height: 54px;
  z-index: -1;
  transition: z-index 0s ease-out 0.3s;
}
.fixedHeader-pageTop, .fixedHeader-pageTop:hover, .fixedHeader-pageTop:focus {
  outline: 0;
}
@media (max-width: 1899.98px) {
  .fixedHeader {
    top: calc(2 * var(--classic-rem-base));
    left: 20px;
  }
}
@media (max-width: 767.98px) {
  .fixedHeader {
    top: 15px;
    left: 15px;
  }
  .fixedHeader-pageTop,
  .fixedHeader img {
    width: 40px;
    height: 40px;
  }
}

.headerLogo {
  cursor: pointer;
}
.headerLogo #logo-circle {
  transition: opacity 0.5s ease-out 0.2s;
}
.headerLogo #logo-main {
  transition: fill 0.5s ease-out 0.2s, opacity 0.5s ease-out 0.2s;
}

._gNav_open .fixedHeader-pageTop {
  z-index: 1;
}
._gNav_open #logo-circle {
  transition: opacity 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  opacity: 0;
}
._gNav_open #logo-main {
  transition: fill 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0s, opacity 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  fill: #fff;
  opacity: 1;
}

.gNav {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: 200;
  background: #fff;
  transition: transform 0.5s ease-out 0.2s;
  transform: translateX(-105%);
  min-width: 450px;
}
@media (max-width: 1899.98px) {
  .gNav {
    min-width: 350px;
  }
}
@media (max-width: 575.98px) {
  .gNav {
    min-width: 100%;
  }
}
.gNav-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 200vw;
  height: 100vh;
  visibility: hidden;
  opacity: 0;
  background: #000;
  z-index: -1;
  transition: opacity 0.5s ease-out 0.2s, visibility 0.5s ease-out 0.2s;
  pointer-events: none;
}
.gNav::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
  z-index: 0;
}
.gNav-inner {
  position: relative;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  z-index: 2;
  margin-top: calc(12 * var(--classic-rem-base));
  padding: calc(3 * var(--classic-rem-base));
  max-height: calc(100vh - 12 * var(--classic-rem-base));
}
@media (min-width: 1900px) {
  .gNav-inner {
    padding-left: 5rem;
  }
}
@media (max-width: 767.98px) {
  .gNav-inner {
    margin-top: 70px;
    max-height: calc(100vh - 70px);
    padding-bottom: calc(10 * var(--classic-rem-base));
  }
}
@media (max-width: 575.98px) {
  .gNav-inner {
    padding-top: 0;
    margin-top: calc(10 * var(--classic-rem-base));
    max-height: calc(100vh - 10 * var(--classic-rem-base));
    padding-bottom: calc(25 * var(--classic-rem-base));
  }
}
.gNav-inner::-webkit-scrollbar {
  width: 10px;
}
.gNav-inner::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 10px;
}
.gNav-inner::-webkit-scrollbar-thumb {
  width: 3px;
  background-color: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
}
.gNav ul {
  list-style: none;
  padding: 0;
  padding-bottom: calc(2 * var(--classic-rem-base));
  margin-bottom: calc(2 * var(--classic-rem-base));
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.gNav li {
  margin-bottom: calc(0 * var(--classic-rem-base));
  font-size: calc(1.9 * var(--classic-rem-base));
  line-height: 1.5;
  letter-spacing: 0.14em;
}
@media (max-width: 1211.98px) {
  .gNav li {
    font-size: calc(1.8 * var(--classic-rem-base));
  }
}
@media (max-width: 767.98px) {
  .gNav li {
    font-size: calc(1.9 * var(--classic-rem-base));
  }
}
.gNav a {
  text-decoration: none;
  color: #000;
  display: inline-block;
  padding: 0.3em 0.5em;
  padding-left: 0;
  transition: opacity 0.2s ease-out 0s;
}
@media (max-width: 767.98px) {
  .gNav a {
    padding: 0.5em 0.5em;
  }
}
.gNav a:hover {
  opacity: 0.75;
}
.gNav-sns {
  text-align: center;
}
.gNav-sns a {
  display: inline-block;
  padding: 0 0.5em;
  margin-bottom: 0.4em;
  line-height: 1.4;
}
@media (max-width: 767.98px) {
  .gNav-sns a {
    margin-bottom: 1em;
  }
}
.gNav-sns a:not(:nth-child(4n+1)) {
  padding-left: 0.75em;
  border-left: 1px solid #ccc;
}
.gNav-sns img {
  margin-right: calc(1 * var(--classic-rem-base));
  vertical-align: -15%;
}
@media (max-width: 767.98px) {
  .gNav-sns img {
    vertical-align: -25%;
  }
}
.gNav-close {
  color: #000;
  position: absolute;
  top: calc(2 * var(--classic-rem-base));
  right: calc(2 * var(--classic-rem-base));
  text-indent: -999em;
  width: calc(3.5 * var(--classic-rem-base));
  height: calc(3.5 * var(--classic-rem-base));
  border: 0;
  background: transparent;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  z-index: 2;
}
.gNav-close:focus {
  outline: 0;
}
.gNav-close::before, .gNav-close::after {
  content: "";
  width: calc(3.5 * var(--classic-rem-base));
  height: 1px;
  background: #000;
  position: absolute;
  top: 50%;
  left: 50%;
  transform-origin: 50% 50%;
}
.gNav-close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.gNav-close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

._gNav_open .gNav {
  transition: transform 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  transform: translateX(0%);
}
._gNav_open .gNav-overlay {
  transition: opacity 0.5s ease-out 0s, visibility 0.5s ease-out 0s;
  visibility: visible;
  opacity: 0.4;
}

.notTouchdevice .gNav-close {
  display: none;
}

.touchdevice._gNav_open .gNav-overlay {
  pointer-events: auto;
}

.gFooter {
  margin-top: calc(10 * var(--classic-rem-base));
  margin-bottom: calc(3 * var(--classic-rem-base));
  padding-left: calc(3 * var(--classic-rem-base));
  padding-right: calc(3 * var(--classic-rem-base));
}
.gFooter a, .gFooter a:hover, .gFooter a:focus {
  color: currentColor;
  text-decoration: none;
}
.gFooter-inner {
  display: flex;
  flex-wrap: wrap;
}
@media (max-width: 575.98px) {
  .gFooter-inner {
    display: block;
    margin-bottom: calc(3 * var(--classic-rem-base));
  }
}
.gFooter-logo {
  margin-bottom: calc(4 * var(--classic-rem-base));
  margin-right: calc(6 * var(--classic-rem-base));
}
.gFooter-logo a {
  transition: opacity 0.2s ease-out 0s;
}
.gFooter-logo a:hover {
  opacity: 0.7;
}
@media (min-width: 1212px) {
  .gFooter-logo {
    flex: 0 0 276px;
    max-width: 276px;
    margin-right: calc(16.2 * var(--classic-rem-base));
  }
}
@media (max-width: 575.98px) {
  .gFooter-logo {
    margin-right: 0;
    max-width: 70%;
  }
}
.gFooter-nav {
  margin-top: calc(1 * var(--classic-rem-base));
  font-size: calc(1.5 * var(--classic-rem-base));
  margin-left: calc(1 * var(--classic-rem-base));
  margin-right: calc(1 * var(--classic-rem-base));
}
@media (max-width: 1899.98px) {
  .gFooter-nav {
    font-size: 14px;
  }
}
@media (max-width: 767.98px) {
  .gFooter-nav {
    overflow: hidden;
  }
}
.gFooter-nav-lang {
  font-size: calc(1.8 * var(--classic-rem-base));
}
@media (max-width: 1899.98px) {
  .gFooter-nav-lang {
    font-size: 16px;
  }
}
.gFooter-nav-row {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-top: calc(3 * var(--classic-rem-base));
}
@media (max-width: 767.98px) {
  .gFooter-nav-row {
    margin-right: calc(-5 * var(--classic-rem-base));
    justify-content: space-between;
  }
}
.gFooter-nav ul {
  list-style: none;
  padding: 0;
  margin: 0 calc(12 * var(--classic-rem-base)) calc(2 * var(--classic-rem-base)) 0;
}
.gFooter-nav ul:last-child {
  margin-right: 0;
}
@media (max-width: 767.98px) {
  .gFooter-nav ul, .gFooter-nav ul:last-child {
    margin-right: calc(5 * var(--classic-rem-base));
  }
}
.gFooter-nav li {
  margin-bottom: calc(1 * var(--classic-rem-base));
  white-space: nowrap;
}
.gFooter-nav li._mt1line {
  margin-top: calc(2 * var(--classic-rem-base) + 2em);
}
.gFooter-nav li._mt2line {
  margin-top: calc(3 * var(--classic-rem-base) + 4em);
}
.gFooter-nav-lang a, .gFooter-nav-internal a {
  position: relative;
}
.gFooter-nav-lang a::after, .gFooter-nav-internal a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  max-width: 100%;
  height: 1px;
  transition: width 0.6s cubic-bezier(0.33, 1, 0.68, 1) 0s;
  background: #999;
}
.gFooter-nav-lang a:hover::after, .gFooter-nav-internal a:hover::after {
  width: 100%;
}
.gFooter-nav-related {
  border-bottom: 1px solid #707070;
}
@media (max-width: 575.98px) {
  .gFooter-nav-related {
    width: 100%;
    margin-left: calc(-2.5 * var(--classic-rem-base)) !important;
    margin-right: calc(2.5 * var(--classic-rem-base)) !important;
  }
}
.gFooter-nav-related li {
  text-align: center;
  margin: 0;
  border-top: 1px solid #707070;
}
.gFooter-nav-related a {
  display: block;
  padding: calc(1 * var(--classic-rem-base));
  transition: opacity 0.2s ease-out 0s;
}
.gFooter-nav-related a:hover {
  opacity: 0.75;
}
.gFooter-nav-sns a {
  display: inline-block;
  line-height: 1.4;
  transition: opacity 0.2s ease-out 0s;
}
.gFooter-nav-sns a, .gFooter-nav-sns a:hover, .gFooter-nav-sns a:focus {
  color: #000;
}
.gFooter-nav-sns a:hover {
  opacity: 0.75;
}
.gFooter-nav-sns img {
  margin-right: calc(1 * var(--classic-rem-base));
  vertical-align: -25%;
}
.gFooter-copyright {
  text-align: right;
  font-size: calc(1.3 * var(--classic-rem-base));
}/*# sourceMappingURL=common.css.map */