html, body {
  height: 100%;
}

body#toppage .visual {
  position: relative;
  width: 100%;
  height: 100vh;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
body#toppage .visual::after {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background: url("../images/toppage/visual_bg.png") fixed repeat 0 0;
}
body#toppage .visual h1 {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 25em;
  text-align: center;
  -moz-transform: translate(-50%, -60%);
  -ms-transform: translate(-50%, -60%);
  -webkit-transform: translate(-50%, -60%);
  transform: translate(-50%, -60%);
}
body#toppage .visual .scroll {
  position: absolute;
  bottom: 1.25em;
  left: 50%;
  z-index: 10;
  margin: 0 auto;
  width: 5em;
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}
body#toppage .visual .scroll a img {
  width: 100%;
}
body#toppage .visual .scroll a:hover {
  filter: alpha(opacity=60);
  -moz-opacity: 0.6;
  opacity: 0.6;
}
body#toppage .intro h2 {
  color: #e84709;
  font-size: 250%;
  font-weight: 700;
  line-height: 1.5;
}
body#toppage .intro figure {
  position: absolute;
  top: 0;
  right: 1.25em;
  width: 26.25em;
}
body#toppage .intro p {
  margin-top: 1em;
  font-size: 125%;
  line-height: 1.625;
}
body#toppage .intro p .large {
  font-size: 180%;
}
body#toppage .intro p .small {
  font-size: 80%;
}

/* RWD
---------------------------------------------------------------- */
@media only screen and (max-width: 768px) {
  body#toppage .visual {
    height: 100%;
  }
  body#toppage .visual h1 {
    width: 80%;
  }
  body#toppage .visual .scroll {
    bottom: 1.25em;
    width: 3.75em;
  }
  body#toppage .intro h2 {
    font-size: 170%;
  }
  body#toppage .intro figure {
    position: relative;
    top: auto;
    right: auto;
    width: 90%;
    margin: -2em auto 0;
  }
  body#toppage .intro p {
    font-size: 62.5%;
    text-align: center;
  }
}
