@charset "UTF-8";
/* ----------------------------------------------
HEADER FOOTER RESET
--------------------------------------------- */
header, footer {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  color: #333;
  font-size: 100%;
  line-height: 1.75;
  letter-spacing: 0.01rem;
  font-family: メイリオ, Meiryo, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", sans-serif;
  font-feature-settings: "palt" 1;
  word-wrap: break-word;
  overflow-wrap: break-word;
  -webkit-text-size-adjust: 100%;
}
header div, header span, header a, header img, header small, header strong, header ul, header li, footer div, footer span, footer a, footer img, footer small, footer strong, footer ul, footer li {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
}
header a, footer a {
  text-decoration: none;
}
header ol, header ul, footer ol, footer ul {
  margin: 0;
  padding: 0;
}
header img, footer img {
  vertical-align: bottom;
}

/* ----------------------------------------------
HEADER
--------------------------------------------- */
/* reset */
header, nav, footer {
  display: block;
  min-width: inherit;
  height: auto;
}

header {
  padding: 0;
  border-bottom: 1px solid #ccc;
  background: #FFF;
}
header #header {
  max-width: 1000px;
  margin: 0 auto;
  padding: 16px;
}
header #logo li {
  display: flex;
  align-items: center;
  font-size: 0.875rem;
  font-weight: bold;
}
header #logo li img {
  width: 110px;
  margin-right: 16px;
}
header #logo li span {
  font-size: 14px;
  letter-spacing: -0.05em;
}
header #gnavi_member2 {
  float: right;
  display: block;
  padding: 2px 5px 1px;
  background: #ebebeb;
  border-radius: 5px;
}
header #gnavi_member2 #gnavi_member2_inner02 a,
header #gnavi_member2 #gnavi_member2_inner02 span {
  list-style-type: none;
  display: block;
  margin: 5px 0;
  padding: 0 10px;
  float: left;
  color: #007eff;
  font-size: 12px;
  font-weight: bold;
  line-height: 1.1;
  letter-spacing: 0;
  text-align: left;
  white-space: nowrap;
}
header #gnavi_member2 #gnavi_member2_inner02 a:nth-of-type(2), header #gnavi_member2 #gnavi_member2_inner02 a:nth-of-type(3),
header #gnavi_member2 #gnavi_member2_inner02 span:nth-of-type(2),
header #gnavi_member2 #gnavi_member2_inner02 span:nth-of-type(3) {
  border-left: 1px #ccc solid;
}
header #gnavi_member2 #gnavi_member2_inner02 a:hover,
header #gnavi_member2 #gnavi_member2_inner02 span:hover {
  color: #333;
}
header #gnavi_member2 #gnavi_member2_inner02 span {
  color: #333;
}

/* nav */
#gnav {
  background: #94061a;
  position: relative;
  z-index: 20;
  box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
}

#gnav__list {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}
#gnav__list::after {
  clear: both;
  content: "";
  display: block;
}
#gnav__list li {
  width: 100%;
  list-style-type: none;
}
#gnav__list li a {
  display: block;
  padding: 16px 0;
  color: #FFF;
  text-align: center;
  text-decoration: none;
}
#gnav__list li a .gnav__link {
  font-size: 90%;
}
#gnav__list li a:hover {
  background: #820718;
}

/* event */
.btn-purchase-log {
  float: right;
  margin: -10px 0 0 16px;
}

/* ----------------------------------------------
FOOTER
--------------------------------------------- */
/* reset */
footer {
  text-align: left;
}

footer {
  position: relative;
  margin: 42px 0 0;
  padding: 56px 24px;
  border-top: 1px solid #eee;
}
footer ul {
  margin-bottom: 56px;
}
footer li {
  position: relative;
  display: inline-block;
  margin-right: 24px;
  padding-left: 16px;
  font-size: 14px;
  list-style-type: none;
}
footer li::before {
  position: absolute;
  content: "";
  display: block;
  left: 0;
  top: calc(50% - 1px);
  width: 8px;
  height: 2px;
  background-color: #820718;
}
footer li a {
  color: #333;
}
footer li a:hover {
  color: #94061a;
}
footer .copyright {
  margin-right: 130px;
  font-size: 12px;
}
footer .footer__logo {
  position: absolute;
  right: 24px;
  bottom: 56px;
}
footer #page-top {
  position: absolute;
  top: -27px;
  right: 24px;
  width: 50px;
  height: 50px;
}
footer #page-top a {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  text-indent: -9999px;
  background-color: #fff;
  -webkit-box-shadow: 0 0 4px #ccc;
  -moz-box-shadow: 0 0 4px #ccc;
  box-shadow: 0 0 4px #ccc;
  -webkit-transition: color 0.2s, background-color 0.2s;
  -moz-transition: color 0.2s, background-color 0.2s;
  -ms-transition: color 0.2s, background-color 0.2s;
  -o-transition: color 0.2s, background-color 0.2s;
  transition: color 0.2s, background-color 0.2s;
}
footer #page-top a::before {
  position: absolute;
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  top: calc(50% - 5px);
  right: 24px;
  border-left: 2px solid #820718;
  border-bottom: 2px solid #820718;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg);
  top: calc(50% - 2px);
  right: calc(50% - 3px);
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg);
}

/* ----------------------------------------------
RESPONSIVE
--------------------------------------------- */
@media screen and (max-width: 780px) {
  header #logo li span {
    display: none;
  }

  #gnav li a {
    font-size: 0.875rem;
  }
}
@media screen and (min-width: 641px) {
  #gnav__toggle,
  #gnav__logo {
    display: none;
  }
}
@media screen and (max-width: 640px) {
  header {
    position: relative;
    /* event */
  }
  header #header {
    width: 100%;
    padding: 0;
  }
  header #logo {
    margin: 24px 8px;
  }
  header #gnavi_member2 {
    min-height: 44px;
    float: none !important;
    width: 100%;
    height: auto;
    margin: auto !important;
    padding: 0;
    border-radius: 0;
  }
  header #gnavi_member2 #gnavi_member2_inner02 {
    height: 44px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    overflow: hidden;
  }
  header #gnavi_member2 #gnavi_member2_inner02 span, header #gnavi_member2 #gnavi_member2_inner02 a {
    padding: 0 10px;
    font-size: 75%;
    font-weight: bold;
    line-height: 1.1;
    letter-spacing: 0;
    text-align: left;
  }
  header #gnavi_member2 #gnavi_member2_inner02 span:nth-of-type(2), header #gnavi_member2 #gnavi_member2_inner02 a:nth-of-type(2) {
    border: none;
  }
  header #gnavi_member2 #gnavi_member2_inner02 span {
    display: block;
    width: 100%;
    float: none;
    margin-bottom: 0;
  }
  header .btn-purchase-log {
    position: absolute;
    left: 130px;
    bottom: 24px;
  }
  header .btn-purchase-log a {
    font-size: 0.75rem;
    padding: 4px 8px;
  }
  header .btn-purchase-log a::before {
    display: none;
  }

  #gnav {
    position: static;
  }

  #gnav__list {
    display: block;
    width: 246px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -85px 0 0 -120px;
  }
  #gnav__list li a {
    margin: 0.05em 0.05em 0.05em;
    width: 120px;
    min-width: 120px;
    float: left;
    text-align: center;
    border-top: 1px solid #ebebeb;
    padding: 16px 0;
  }
  #gnav__list li a:hover {
    background: #eee;
  }
  #gnav__list li a .gnav__link:after {
    display: none;
  }

  #gnav__logo {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -150px 0 0 -123px;
  }
  #gnav__logo img {
    display: block;
    width: 120px;
    margin: 0 0 4px;
  }
  #gnav__logo span {
    display: block;
    font-size: 0.75rem;
  }

  #gnav__toggle {
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    width: 24px;
    height: 16px;
    cursor: pointer;
    z-index: 1001;
    background: #7a0515;
    padding: 14px;
    box-sizing: content-box;
  }
  #gnav__toggle div {
    position: relative;
  }
  #gnav__toggle span {
    display: block;
    position: absolute;
    height: 1px;
    width: 100%;
    background: #FFF;
    left: 0;
    -webkit-transition: .35s ease-in-out;
    -moz-transition: .35s ease-in-out;
    transition: .35s ease-in-out;
    border-radius: 6px;
  }
  #gnav__toggle span:nth-child(1) {
    top: 0;
  }
  #gnav__toggle span:nth-child(2) {
    top: 8px;
  }
  #gnav__toggle span:nth-child(3) {
    top: 16px;
  }

  .open #gnav__toggle {
    position: fixed;
  }
  .open #gnav__toggle span:nth-child(1) {
    top: 8px;
    -webkit-transform: rotate(315deg);
    -moz-transform: rotate(315deg);
    transform: rotate(315deg);
  }
  .open #gnav__toggle span:nth-child(2) {
    width: 0;
    left: 50%;
  }
  .open #gnav__toggle span:nth-child(3) {
    top: 8px;
    -webkit-transform: rotate(-315deg);
    -moz-transform: rotate(-315deg);
    transform: rotate(-315deg);
  }

  .open #menu-mns-1 {
    -moz-transform: translateY(556px);
    -webkit-transform: translateY(556px);
    transform: translateY(556px);
  }

  .open #gnav__box {
    opacity: 1;
    visibility: visible;
  }

  .open #gnav__list li a .gnav__link {
    color: #222;
    font-size: 14px;
  }

  #gnav__box {
    position: fixed;
    top: 0;
    left: 0;
    background: rgba(255, 255, 255, 0.99);
    width: 100%;
    height: 100%;
    padding: 0;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: .4s ease-in-out;
    -moz-transition: .4s ease-in-out;
    transition: .4s ease-in-out;
  }

  footer {
    padding: 86px 16px 24px !important;
  }
  footer .copyright {
    margin-right: 0;
  }
  footer .footer__logo {
    right: auto;
    bottom: auto;
    top: 32px;
    width: 100%;
    margin: 0 -16px;
    text-align: center;
  }
  footer ul {
    margin-bottom: 16px;
  }
  footer ul li {
    display: block;
  }
  footer #page-top {
    right: 20px;
  }
}
