html, body, #page {
  height: 100%;
}

body {
  background: #ffd637;
}

#page {
  overflow: auto;
}

#page::before {
  display: none;
}

header {
  overflow: hidden;
  z-index: 99;
}

header h2 {
  float: right;
  margin: 0 0 16vw;
  height: auto;
  width: 19vw;
}

main {
  text-align: center;
}

@media (max-width: 768px) {
  main {
    min-height: 480px;
  }
}

main h1 {
  margin: 0 4.5vw 7vw;
}

#language .select-area {
  position: relative;
}

#language .btn-select {
  border: 2px solid #191919;
  border-radius: 26px;
  background: url(/_materials/img/border.jpg) repeat-x center bottom/11px 27px #fff;
  box-shadow: 3px 3px 0 black;
  font-weight: bold;
  margin: 0 12vw;
  transition: all .2s ease-in;
  cursor: pointer;
  overflow: hidden;
  position: relative;
}

#language .btn-select::before {
  background: url(/_materials/img/ennbosu.png) no-repeat 0 0/contain;
  display: block;
  content: '';
  position: absolute;
  top: 3px;
  left: 5px;
  height: 22px;
  width: 41px;
  pointer-events: none;
}

#language .btn-select h2 {
  font-size: 1.6rem;
  color: #fff;
  -webkit-text-stroke: 1px #000;
  text-stroke: 1px #000;
  text-shadow: 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000, 0 0 1px #000;
  padding: 10px 0 12px;
}

#language .btn-select h2 span {
  position: relative;
  padding: 0 30px;
  font-style: italic;
}

#language .btn-select h2 span::before {
  background: url(/_materials/img/icon-earth.svg) no-repeat 0 0/contain;
  display: block;
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  height: 23px;
  width: 23px;
}

#language .btn-select h2 span::after {
  background: url(/_materials/img/icon-arrow-bottom.svg) no-repeat 0 0/contain;
  display: block;
  content: '';
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-46%);
  height: 19px;
  width: 19px;
}

@media (max-width: 768px) {
  #language .btn-select.active {
    background-position: center bottom;
  }
}

#language .option-block {
  display: none;
  padding: 15px 0;
  background: url(/_materials/img/border.jpg) repeat-x center 0/11px 27px;
}

#language .option-block ul {
  position: relative;
  background: #dcdcdc;
}

#language .option-block li {
  font-size: 1.8rem;
  font-weight: 900;
}

#language .option-block li a {
  display: block;
  color: #000;
  padding: 8px 0;
}

footer {
  background: none;
  color: #191919;
}

footer small {
  font-size: 1rem;
}

@media (max-width: 768px) {
  footer {
    padding: 20px 0;
  }
  footer small {
    font-size: 1.2rem;
  }
}

@media print, screen and (min-width: 769px) {
  header {
    position: absolute;
    right: 0;
    top: 0;
  }
  header h2 {
    margin: 0 0 40px;
    width: 99px;
  }
  main {
    min-height: 600px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    align-items: center;
    height: calc(100vh - 140px);
    position: relative;
  }
  main .main-inner {
    padding: 40px 0 10px;
    position: relative;
  }
  main h1 {
    margin: 0 auto 18px;
    width: 557px;
  }
  #language {
    position: absolute;
    top: 530px;
    left: 50%;
    transform: translate(-50%, 0);
    padding: 0 0 20px;
  }
  #language .btn-select {
    margin: auto;
    width: 290px;
  }
  #language .btn-select:hover {
    background-position: center bottom -30px;
  }
  #language .btn-select.active:hover {
    background-position: center bottom;
  }
  #language .option-block li a span {
    position: relative;
  }
  #language .option-block li a span::before {
    background: #000;
    display: block;
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    transform: scale(0, 1);
    transform-origin: center top;
    transition: transform .3s;
    width: 100%;
    height: 2px;
  }
  #language .option-block li a:hover span::before {
    transform: scale(1, 1);
  }
}
