@charset "UTF-8";
html {
  font-size: 14px; }

body > * {
  font-family: dnp-shuei-gothic-kin-std, YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, "sans-serif"; }

.range10 {
  display: block;
  width: 100%;
  height: 10px; }

.range20 {
  display: block;
  width: 100%;
  height: 20px; }

.range30 {
  display: block;
  width: 100%;
  height: 30px; }

.range40 {
  display: block;
  width: 100%;
  height: 40px; }

.range50 {
  display: block;
  width: 100%;
  height: 50px; }

.range60 {
  display: block;
  width: 100%;
  height: 60px; }

.range70 {
  display: block;
  width: 100%;
  height: 70px; }

.range80 {
  display: block;
  width: 100%;
  height: 80px; }

.range90 {
  display: block;
  width: 100%;
  height: 90px; }

.range100 {
  display: block;
  width: 100%;
  height: 100px; }

h1.h1 {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 4rem;
  letter-spacing: 50;
  font-weight: bold;
  line-height: 90px; }

.page-title {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 4rem;
  font-weight: bold;
  padding: 10px;
  letter-spacing: 0.15rem; }
  @media screen and (max-width: 991px) {
    .page-title {
      font-size: 2.8571428571rem; } }
  @media screen and (max-width: 767px) {
    .page-title {
      font-size: 1.7142857143rem; } }
  .page-title .subtitle {
    font-size: 0.6em;
    display: block; }

.mod-title-01 {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 4rem;
  letter-spacing: 0.05rem;
  font-weight: bold;
  line-height: 90px; }
  @media screen and (max-width: 991px) {
    .mod-title-01 {
      font-size: 2.4285714286rem; } }
  @media screen and (max-width: 767px) {
    .mod-title-01 {
      font-size: 1.7142857143rem;
      line-height: 40px; } }
  .mod-title-01 span {
    font-size: 1.2857142857rem;
    letter-spacing: 0.15rem;
    line-height: normal;
    font-weight: bold;
    display: block;
    width: auto;
    margin: auto; }
    @media screen and (max-width: 991px) {
      .mod-title-01 span {
        font-size: 1.1428571429rem; } }
    @media screen and (max-width: 767px) {
      .mod-title-01 span {
        font-size: 1rem; } }

.title-underline {
  font-size: 1.5714285714rem;
  font-weight: bold;
  display: block;
  width: 100%;
  padding-bottom: 20px;
  border-bottom: solid 1px #000;
  letter-spacing: 0.25rem; }
  @media screen and (max-width: 767px) {
    .title-underline {
      font-size: 1.7142857143rem;
      line-height: 40px;
      border: none;
      margin: 0;
      padding: 10px; } }

.title-underline02 {
  font-size: 1.7142857143rem;
  font-weight: bold;
  text-align: center;
  display: block;
  width: 100%;
  padding-bottom: 20px;
  position: relative;
  letter-spacing: 0.15rem;
  line-height: 38px; }
  @media screen and (max-width: 767px) {
    .title-underline02 {
      font-size: 1.2857142857rem;
      line-height: 40px; } }
  .title-underline02::after {
    content: '';
    display: block;
    width: 80px;
    height: 3px;
    background-color: #B9B9B9;
    position: absolute;
    left: calc(50% - 40px);
    bottom: 10px; }
    @media screen and (max-width: 767px) {
      .title-underline02::after {
        width: 50px;
        left: calc(50% - 27px);
        bottom: 15px; } }

.title-underline03 {
  font-size: 1.7142857143rem;
  font-weight: bold;
  display: block;
  width: 100%;
  padding-bottom: 20px;
  border-bottom: solid 1px #000;
  letter-spacing: 0.25rem; }
  @media screen and (max-width: 767px) {
    .title-underline03 {
      font-size: 1.1428571429rem;
      line-height: 2;
      width: calc(100% - 20px);
      margin: auto 10px;
      padding: 10px; } }

.border-bottom {
  border-bottom: solid 1px #000; }

.bg-gray {
  background-color: #F7F7F7 !important; }

.sp-tellink {
  color: #000;
  text-decoration: none; }
  .sp-tellink:hover {
    text-decoration: none;
    color: #000; }

header {
  display: block;
  width: 100%;
  height: 110px; }

.menu-open #main, .menu-open #footer {
  overflow: hidden;
  z-index: -1;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 0; }

.header-wrap {
  display: block;
  width: 100%;
  height: 110px;
  background-color: #fff; }
  .header-fixed .header-wrap {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999; }
    @media screen and (max-width: 991px) {
      .header-fixed .header-wrap {
        border-bottom: solid 1px #000; } }
  @media screen and (max-width: 991px) {
    .header-wrap {
      overflow: hidden;
      transition: 0.3s; }
      .menu-open .header-wrap {
        height: 100vh; } }
  .header-wrap .header-inner-wrap {
    display: flex;
    align-items: center;
    height: 110px;
    position: relative; }
    @media screen and (max-width: 991px) {
      .header-wrap .header-inner-wrap {
        flex-wrap: wrap; } }
    .header-wrap .header-inner-wrap .header-logo {
      flex: 0 0 120px; }
      @media screen and (max-width: 991px) {
        .header-wrap .header-inner-wrap .header-logo {
          flex: 0 0 calc(100% - 50px);
          text-align: center;
          display: flex;
          justify-content: center;
          align-items: center;
          height: 100%;
          border-bottom: solid 1px #000; }
          .header-wrap .header-inner-wrap .header-logo .header-logo-img {
            display: block;
            width: 120px;
            margin-left: 50px; } }
    .header-wrap .header-inner-wrap .header-toggle-btn-wrap {
      display: none;
      flex: 0 0 50px;
      height: 100%;
      position: relative; }
      @media screen and (max-width: 991px) {
        .header-wrap .header-inner-wrap .header-toggle-btn-wrap {
          display: block;
          border-bottom: solid 1px #000; } }
      .header-wrap .header-inner-wrap .header-toggle-btn-wrap .header-toggle-btn {
        display: block;
        width: 30px;
        height: 30px;
        position: absolute;
        right: 10px;
        bottom: 20px; }
        .header-wrap .header-inner-wrap .header-toggle-btn-wrap .header-toggle-btn span {
          display: block;
          width: 24px;
          height: 2px;
          background-color: #9F9F9F;
          position: absolute;
          left: 3px;
          top: 9px; }
          .header-wrap .header-inner-wrap .header-toggle-btn-wrap .header-toggle-btn span::before, .header-wrap .header-inner-wrap .header-toggle-btn-wrap .header-toggle-btn span::after {
            content: '';
            display: block;
            width: 24px;
            height: 2px;
            background-color: #9F9F9F;
            position: relative; }
          .header-wrap .header-inner-wrap .header-toggle-btn-wrap .header-toggle-btn span::before {
            top: -6px; }
          .header-wrap .header-inner-wrap .header-toggle-btn-wrap .header-toggle-btn span::after {
            top: 4px; }
          .menu-open .header-wrap .header-inner-wrap .header-toggle-btn-wrap .header-toggle-btn span {
            background: none; }
            .menu-open .header-wrap .header-inner-wrap .header-toggle-btn-wrap .header-toggle-btn span::before {
              top: 1px;
              transform: rotate(45deg); }
            .menu-open .header-wrap .header-inner-wrap .header-toggle-btn-wrap .header-toggle-btn span::after {
              top: -1px;
              transform: rotate(-45deg); }
    .header-wrap .header-inner-wrap .header-nav-outer {
      flex: 1 1 auto;
      display: flex;
      flex-direction: column; }
      @media screen and (max-width: 991px) {
        .header-wrap .header-inner-wrap .header-nav-outer {
          background-color: #fff;
          height: 100vh;
          overflow-y: scroll;
          padding-bottom: 220px;
          position: relative;
          z-index: 1000; } }
    .header-wrap .header-inner-wrap .sp-header-img {
      display: none;
      width: 100%;
      padding: 10px; }
      @media screen and (max-width: 991px) {
        .header-wrap .header-inner-wrap .sp-header-img {
          display: block; } }
    .header-wrap .header-inner-wrap .header-nav {
      display: flex;
      flex-wrap: nowrap;
      float: right; }
      @media screen and (max-width: 991px) {
        .header-wrap .header-inner-wrap .header-nav {
          flex-direction: column;
          padding: 10px;
          width: 100%; } }
      .header-wrap .header-inner-wrap .header-nav .nav-item {
        position: relative;
        text-align: center; }
        @media screen and (max-width: 991px) {
          .header-wrap .header-inner-wrap .header-nav .nav-item {
            width: 100%;
            text-align: right; } }
        .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link {
          display: block;
          padding: 5px;
          margin: 10px 20px;
          color: #000;
          cursor: pointer;
          font-size: 1.2857142857rem;
          border-bottom: solid 1px #fff;
          position: relative; }
          @media screen and (max-width: 991px) {
            .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link {
              font-size: 1.1428571429rem;
              margin: 5px;
              padding: 10px;
              width: calc(100% - 10px);
              border-bottom: solid 1px #707070; }
              .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link.hover-parent {
                border: none;
                background-color: #F7F7F7;
                text-align: center; } }
          .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link:hover {
            border-bottom: solid 1px #000; }
            .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link:hover .nav-hover-wrap {
              transform: scaleY(1); }
          .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link .nav-hover-wrap {
            display: block;
            width: 330px;
            /*height: 230px;*/
            height: 190px;
            position: absolute;
            padding: 20px 30px;
            background-color: #F7F7F7;
            overflow: hidden;
            transform: scaleY(0);
            transform-origin: top left;
            transition: 0.2s;
            /*bottom: -235px;*/
            bottom: -195px;
            left: -105px; }
            @media screen and (max-width: 991px) {
              .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link .nav-hover-wrap {
                transform: scaleY(1);
                position: static;
                padding: 0 10px 10px;
                height: auto;
                width: 100%; } }
            .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link .nav-hover-wrap .header-hover-content-link {
              text-align: left;
              display: block;
              padding: 5px;
              margin: 10px 0;
              color: #000; }
              @media screen and (max-width: 991px) {
                .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link .nav-hover-wrap .header-hover-content-link {
                  border-bottom: solid 1px #000;
                  text-align: center; }
                  .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link .nav-hover-wrap .header-hover-content-link:last-child {
                    border: none; } }
              .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link .nav-hover-wrap .header-hover-content-link::before {
                content: '>';
                display: inline-block;
                margin-right: 10px; }
                @media screen and (max-width: 991px) {
                  .header-wrap .header-inner-wrap .header-nav .nav-item .nav-link .nav-hover-wrap .header-hover-content-link::before {
                    display: none; } }
  .header-wrap .shopping-cart-btn {
    display: block;
    padding: 10px 20px;
    background-color: #F7F7F7;
    color: #000;
    text-decoration: none;
    text-align: center;
    float: right;
    font-size: 1.1428571429rem; }
    @media screen and (max-width: 991px) {
      .header-wrap .shopping-cart-btn {
        font-size: 1rem;
        width: calc(100% - 20px);
        margin: 10px; } }
  @media screen and (min-width: 992px) {
    .header-wrap.header-gray {
      background-color: #F7F7F7 !important; }
      .header-wrap.header-gray .nav-link {
        border-bottom-color: #F7F7F7 !important; }
      .header-wrap.header-gray .nav-hover-wrap {
        background-color: #fff !important; }
      .header-wrap.header-gray .shopping-cart-btn {
        background-color: #fff; } }

.pre-release {
  display: block;
  width: 100%;
  height: 110px;
  background-color: #fff; }
  .header-fixed .pre-release {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    background-color: rgba(255, 255, 255, 0.8); }
  .pre-release .header-inner-wrap {
    display: flex;
    align-items: center;
    height: 110px; }
    @media screen and (max-width: 767px) {
      .pre-release .header-inner-wrap {
        justify-content: center;
        border-bottom: solid 1px #000; } }
  .pre-release .header-logo {
    flex: 0 0 120px; }

#online-shop-link .online-shoplink-item {
  display: block;
  width: calc(100% - 20px);
  margin: 10px; }

#footer .footer-address {
  font-size: 1.1428571429rem; }
  #footer .footer-address > span {
    margin: 0 10px; }
#footer .footer-link .footer-link-wrap {
  text-align: center; }
  #footer .footer-link .footer-link-wrap .footer-link-item {
    display: inline-block; }
    #footer .footer-link .footer-link-wrap .footer-link-item::after {
      content: '／';
      display: inline-block; }
    #footer .footer-link .footer-link-wrap .footer-link-item:last-child::after {
      content: '';
      display: none; }
    #footer .footer-link .footer-link-wrap .footer-link-item > a {
      font-size: 1.1428571429rem;
      display: inline-block;
      margin: 5px 10px;
      color: #000;
      text-decoration: none; }
#footer .copyright {
  padding: 50px 0;
  text-align: center; }

.btn01 {
  display: inline-block;
  border: solid 1px #000;
  text-align: center;
  padding: 20px 50px 20px 20px;
  min-width: 350px;
  color: #000;
  position: relative;
  font-size: 1.2857142857rem;
  background-color: #fff; }
  @media screen and (max-width: 767px) {
    .btn01 {
      min-width: 0;
      width: 100%;
      font-size: 1.1428571429rem; } }
  .btn01 > svg {
    position: absolute;
    right: 20px;
    top: 25px; }
    .btn01 > svg > * {
      stroke: #000; }
  .btn01.btn01-reverse {
    padding: 20px 20px 20px 50px; }
    .btn01.btn01-reverse > svg {
      right: auto;
      left: 20px; }
  .btn01:hover {
    background-color: #777777;
    color: #fff;
    border-color: #777777;
    text-decoration: none; }
    .btn01:hover > svg > * {
      stroke: #fff; }

.btn02 {
  display: block;
  font-size: 1.1428571429rem;
  text-align: center;
  padding: 20px;
  background-color: #fff;
  color: #000;
  border: solid 1px #000;
  width: calc(100% - 20px);
  margin: 10px; }
  .btn02.current, .btn02:hover {
    text-decoration: none;
    color: #fff;
    background-color: #777;
    border-color: #777; }
  .btn02::after {
    display: block;
    content: "\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: bold;
    float: right;
    padding: 0 10px; }

.text-link {
  display: inline-block;
  color: #000;
  text-decoration: underline; }
  .text-link:hover {
    color: #000;
    text-decoration: underline; }

.accordion-btn {
  display: block;
  width: 100%;
  padding: 20px;
  background-color: #777777;
  color: #fff;
  position: relative; }
  .accordion-btn:hover {
    text-decoration: none;
    color: #fff; }
  .accordion-btn::after, .accordion-btn::before {
    content: "";
    display: block;
    width: 20px;
    height: 2px;
    position: absolute;
    right: 10px;
    background-color: #fff;
    top: calc(50% - 1px);
    transition: 0.5s; }
  .accordion-btn::before {
    transform: rotate(90deg); }
  .accordion-btn.active::before {
    transform: rotate(0deg); }

.inner-link {
  color: #000;
  display: inline-block;
  font-size: 1.5714285714rem;
  line-height: 2; }
  .inner-link:hover {
    color: #000; }
  .inner-link:before {
    content: '▶︎';
    display: inline-block;
    padding-right: 10px; }
  @media screen and (max-width: 767px) {
    .inner-link {
      font-size: 1.1428571429rem; } }

.js-prx {
  position: relative;
  bottom: -100px;
  opacity: 0;
  transition: 1s; }
  .js-prx.fadeIn {
    opacity: 1;
    bottom: 0; }

.table {
  font-size: 1.4285714286rem;
  border-top: solid 1px #000;
  border-left: solid 1px #000; }
  @media screen and (max-width: 767px) {
    .table {
      font-size: 1rem; } }
  .table > div {
    border-right: solid 1px #000;
    border-bottom: solid 1px #000;
    padding: 22px; }
    @media screen and (max-width: 767px) {
      .table > div {
        padding: 10px; } }
    .table > div.th {
      background-color: #EFEFEF; }
