@charset "UTF-8";
body {
  animation: fadeIn 3s ease 0s 1 normal;
  -webkit-animation: fadeIn 3s ease 0s 1 normal; }

html, body {
  height: 100%;
  margin: 0 !important;
  padding: 0 !important; }

body {
  font-family: a-otf-ud-reimin-pr6n, sans-serif;
  font-weight: 300;
  font-style: normal;
  font-size: 13px;
  letter-spacing: 1px;
  line-height: 1.5;
  color: #333333; }

a {
  color: #333;
  text-decoration: none;
  transition-duration: 0.3s; }

a:hover {
  color: #666;
  transition-duration: 0.3s; }

footer {
  font-family: athelas,serif;
  font-weight: 400;
  font-style: normal; }

h1 {
  font-family: athelas,serif;
  font-weight: 700;
  font-style: normal; }

header {
  position: absolute;
  width: 100%; }
  header section {
    position: relative;
    width: 90%;
    margin: 0 auto;
    padding-top: 30px; }
  header h1 {
    width: 200px;
    position: absolute; }
    header h1 .st0 {
      fill: #DFBE44; }
    header h1 a:hover {
      opacity: 0.7; }
  header #langchenge {
    display: none; }

footer {
  font-family: athelas,serif;
  font-weight: 400;
  font-style: normal;
  background: #1f1404; }
  footer section {
    width: 90%;
    margin: 0 auto;
    padding: 60px 0;
    overflow: hidden; }
  footer dl {
    text-align: center; }
    footer dl dt {
      width: 220px;
      margin: 10px auto; }
      footer dl dt .st0 {
        fill: #DFBE44; }
      footer dl dt svg {
        width: 220px; }
      footer dl dt a:hover {
        opacity: 0.7; }
    footer dl dd {
      color: #dfbe44; }
  footer .sns {
    display: table;
    margin: 0 auto 30px auto; }
    footer .sns li {
      display: table-cell;
      padding: 0 0 0 8px; }
      footer .sns li a {
        font-size: 18px;
        color: #fff;
        display: block;
        width: 50px;
        height: 50px;
        border: 2px solid #2e271c;
        border-radius: 100px;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center; }
      footer .sns li a:hover {
        background: #fff;
        color: #1f1404; }

/* ハンバーガーメニュー
========================================== */
.hamb .sp a {
  padding: 10px 0; }

.hamb,
.hamb span {
  display: inline-block;
  transition: all .4s; }

.hamb {
  width: 32px;
  height: 28px;
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 19;
  cursor: pointer; }

@media only screen and (max-width: 767px) {
  .hamb {
    right: 15px; } }
.hamb span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #000;
  border-radius: 4px; }

.hamb span:nth-of-type(1) {
  top: 0; }

.hamb span:nth-of-type(2) {
  top: 13px; }

.hamb span:nth-of-type(3) {
  bottom: 0; }

.hamb.active span:nth-of-type(1) {
  -webkit-transform: translateY(13px) rotate(-315deg);
  transform: translateY(13px) rotate(-315deg); }

.hamb.active span:nth-of-type(2) {
  opacity: 0; }

.hamb.active span:nth-of-type(3) {
  -webkit-transform: translateY(-13px) rotate(315deg);
  transform: translateY(-13px) rotate(315deg); }

/* 展開メニュー
========================================== */
#hambNav {
  position: fixed;
  display: none;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  background-color: #fff;
  z-index: 18;
  overflow: hidden; }

#hambNav::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background-color: #333;
  -webkit-animation: upper-right 0.4s 0.4s forwards;
  animation: upper-right 0.4s 0.4s forwards; }

@-webkit-keyframes upper-right {
  0% {
    -webkit-clip-path: polygon(100% 100%, 100% 0, -35% 0, 0 100%);
    clip-path: polygon(100% 100%, 100% 0, -35% 0, 0 100%); }
  100% {
    -webkit-clip-path: polygon(100% 100%, 100% 0, 100% 0, 135% 100%);
    clip-path: polygon(100% 100%, 100% 0, 100% 0, 135% 100%); } }
@keyframes upper-right {
  0% {
    -webkit-clip-path: polygon(100% 100%, 100% 0, -35% 0, 0 100%);
    clip-path: polygon(100% 100%, 100% 0, -35% 0, 0 100%); }
  100% {
    -webkit-clip-path: polygon(100% 100%, 100% 0, 100% 0, 135% 100%);
    clip-path: polygon(100% 100%, 100% 0, 100% 0, 135% 100%); } }
/* IEのみanimation:upper-rightが利かないのでハックして白背景のまま */
@media all and (-ms-high-contrast: none) {
  #hambNav::before {
    background-color: #fff; } }
#hambNav nav {
  display: table;
  width: 100%;
  height: 100%; }

#hambNav nav ul {
  display: table-cell;
  vertical-align: middle; }

#hambNav nav ul li {
  width: 300px;
  margin: 34px auto 0; }

#hambNav nav ul li:first-child {
  margin-top: 0; }

#hambNav nav ul li a {
  display: block;
  position: relative;
  width: 100%; }

#hambNav nav ul li a::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 0;
  height: 2px;
  background-color: #666;
  transition: .3s; }

#hambNav nav ul li a:hover::before {
  width: 100%; }

#hambNav nav ul li a em {
  display: block;
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  font-size: 18px;
  -webkit-transform: rotateY(90deg);
  transform: rotateY(90deg);
  -webkit-animation: rota 1.2s 0.6s forwards;
  animation: rota 0.4s 0.7s forwards;
  font-family: 'Quicksand',sans-serif; }

@-webkit-keyframes rota {
  0% {
    -webkit-transform: rotateY(90deg);
    transform: rotateY(90deg); }
  100% {
    -webkit-transform: rotateY(0);
    transform: rotateY(0); } }
@keyframes rota {
  0% {
    -webkit-transform: rotateY(90deg);
    transform: rotateY(90deg); }
  100% {
    -webkit-transform: rotateY(0);
    transform: rotateY(0); } }
@media only screen and (max-width: 767px) {
  #hambNav nav ul li a::before {
    content: none; } }
