@-webkit-keyframes fadein {
  0% {
    opacity: 0
  }
  100% {
    -webkit-transform: translate(0, 0) scale(1) rotate(0);
    -moz-transform: translate(0, 0) scale(1) rotate(0);
    -ms-transform: translate(0, 0) scale(1) rotate(0);
    -o-transform: translate(0, 0) scale(1) rotate(0);
    transform: translate(0, 0) scale(1) rotate(0);
    opacity: 1
  }
}

@-moz-keyframes fadein {
  0% {
    opacity: 0
  }
  100% {
    -webkit-transform: translate(0, 0) scale(1) rotate(0);
    -moz-transform: translate(0, 0) scale(1) rotate(0);
    -ms-transform: translate(0, 0) scale(1) rotate(0);
    -o-transform: translate(0, 0) scale(1) rotate(0);
    transform: translate(0, 0) scale(1) rotate(0);
    opacity: 1
  }
}

@keyframes fadein {
  0% {
    opacity: 0
  }
  100% {
    -webkit-transform: translate(0, 0) scale(1) rotate(0);
    -moz-transform: translate(0, 0) scale(1) rotate(0);
    -ms-transform: translate(0, 0) scale(1) rotate(0);
    -o-transform: translate(0, 0) scale(1) rotate(0);
    transform: translate(0, 0) scale(1) rotate(0);
    opacity: 1
  }
}

@-webkit-keyframes fadein2 {
  0% {
    opacity: 0
  }
  100% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1
  }
}

@-moz-keyframes fadein2 {
  0% {
    opacity: 0
  }
  100% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1
  }
}

@keyframes fadein2 {
  0% {
    opacity: 0
  }
  100% {
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1
  }
}

@-webkit-keyframes fadein-only-opacity {
  0% {
    opacity: 0
  }
  100% {
    opacity: 1
  }
}

@-moz-keyframes fadein-only-opacity {
  0% {
    opacity: 0
  }
  100% {
    opacity: 1
  }
}

@keyframes fadein-only-opacity {
  0% {
    opacity: 0
  }
  100% {
    opacity: 1
  }
}

@-webkit-keyframes flashing {
  0% {
    opacity: 0
  }
  60% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

@-moz-keyframes flashing {
  0% {
    opacity: 0
  }
  60% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

@keyframes flashing {
  0% {
    opacity: 0
  }
  60% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

html, body {
  background: #000242;
  min-width: 100%;
  min-height: 100%;
  height: 100%;
  margin: 0;
  padding: 0
}

#contents {
  z-index: 2
}

.noDisplay {
  display: none
}

#background, .background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0
}

.background {
  -webkit-transition: opacity .3s linear;
  -webkit-transition-delay: 0s;
  -moz-transition: opacity .3s linear 0s;
  -o-transition: opacity .3s linear 0s;
  transition: opacity .3s linear 0s
}

.background.show {
  opacity: 1
}

#loading {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 259px;
  z-index: 99999;
  -webkit-animation: flashing 1s linear 0s infinite;
  -moz-animation: flashing 1s linear 0s infinite;
  animation: flashing 1s linear 0s infinite;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both
}

#loading img {
  width: 100%
}

.whiteflash {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  z-index: 999;
  opacity: 0
}

.whiteflash.start {
  -webkit-animation: whiteflash 2.5s linear 0s;
  -moz-animation: whiteflash 2.5s linear 0s;
  animation: whiteflash 2.5s linear 0s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both
}

.whiteflash.short.start {
  -webkit-animation: whiteflash2 1.5s linear 0s;
  -moz-animation: whiteflash2 1.5s linear 0s;
  animation: whiteflash2 1.5s linear 0s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both
}

@-webkit-keyframes whiteflash {
  0% {
    opacity: 0
  }
  30% {
    opacity: 1
  }
  80% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

@-moz-keyframes whiteflash {
  0% {
    opacity: 0
  }
  30% {
    opacity: 1
  }
  80% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

@keyframes whiteflash {
  0% {
    opacity: 0
  }
  30% {
    opacity: 1
  }
  80% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

@-webkit-keyframes whiteflash2 {
  0% {
    opacity: 0
  }
  5% {
    opacity: 1
  }
  30% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

@-moz-keyframes whiteflash2 {
  0% {
    opacity: 0
  }
  5% {
    opacity: 1
  }
  30% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

@keyframes whiteflash2 {
  0% {
    opacity: 0
  }
  5% {
    opacity: 1
  }
  30% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

.blackflash {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  z-index: 999;
  opacity: 0
}

.blackflash.start {
  -webkit-animation: blackflash 2.5s linear 0s;
  -moz-animation: blackflash 2.5s linear 0s;
  animation: blackflash 2.5s linear 0s;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  animation-fill-mode: both
}

@-webkit-keyframes blackflash {
  0% {
    opacity: 0
  }
  30% {
    opacity: 1
  }
  80% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

@-moz-keyframes blackflash {
  0% {
    opacity: 0
  }
  30% {
    opacity: 1
  }
  80% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

@keyframes blackflash {
  0% {
    opacity: 0
  }
  30% {
    opacity: 1
  }
  80% {
    opacity: 1
  }
  100% {
    opacity: 0
  }
}

@media screen and (max-width: 1920px) {
  html {
    font-size: 62.5%
  }
}

body {
  font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', Meiryo, メイリオ, Osaka, 'MS PGothic', arial, helvetica, sans-serif
}

@media screen and (max-width: 1920px) {
  body {
    font-size: 1.6rem
  }
}

@media screen and (max-width: 1079px) {
  body {
    font-size: 8px;
    font-size: 2.5vw
  }
}

@media screen and (max-width: 480px) {
  body {
    font-size: 12px;
    font-size: 3.75vw
  }
}

p, li, dt, dd {
  line-height: 1.4
}

#wrapper {
  background-size: auto 100%;
  overflow: hidden
}

@media screen and (max-width: 1079px) {
  #wrapper {
    min-width: auto;
    min-height: auto
  }
}

@media screen and (max-width: 480px) {
  #wrapper {
    min-width: auto;
    min-height: auto
  }
}

#contents {
  background-image: url("../images/campaign_rt/bg_top.png?e_garo_ok-250617"), url("../images/campaign_rt/bg_rep.jpg?e_garo_ok-250617");
  background-repeat: no-repeat, repeat-y;
  background-position: center top, center top
}

@media screen and (max-width: 480px) {
  #contents {
    background-image: url("../images/campaign_rt/bg_top_sp.png?e_garo_ok-250617"), url("../images/campaign_rt/bg_rep_sp.jpg?e_garo_ok-250617");
    background-repeat: no-repeat, repeat-y;
    background-position: center top, center top;
    background-size: 100% auto, 100% auto
  }
}

#contents img {
  width: 100%
}

#contents #detail {
  position: relative;
  max-width: 1079px;
  height: 100%;
  margin: 0 auto
}

@media screen and (max-width: 1079px) {
  #contents #detail {
    max-width: 100%
  }
}

@media screen and (max-width: 480px) {
  #contents #detail {
    max-width: 100%
  }
}

.inner {
  position: relative;
  max-width: 1079px;
  margin: 0 auto
}

@media screen and (max-width: 1079px) {
  .inner {
    max-width: 100%
  }
}

#mainimage {
  height: 540px;
  background: url("../images/campaign_rt/mainimage.jpg?e_garo_ok-250617") no-repeat center top;
  margin: 0 auto
}

@media screen and (max-width: 1079px) {
  #mainimage {
    min-width: auto;
    max-width: 100%;
    height: auto;
    background: url("../images/campaign_rt/mainimage_tb.jpg?e_garo_ok-250617") no-repeat center top;
    background-size: 100% auto;
    padding-top: 100%
  }
}

@media screen and (max-width: 480px) {
  #mainimage {
    min-width: auto;
    height: auto;
    background: url("../images/campaign_rt/mainimage_sp.jpg?e_garo_ok-250617") no-repeat center top;
    background-size: 100% auto;
    padding-top: 100%
  }
}

body#close #mainimage {
  height: 540px;
  background: url("../images/campaign_rt/mainimage_close.jpg?e_garo_ok-250617") no-repeat center top #140701;
  margin: 0 auto
}

@media screen and (max-width: 1079px) {
  body#close #mainimage {
    min-width: auto;
    max-width: 100%;
    height: auto;
    background: url("../images/campaign_rt/mainimage_tb_close.jpg?e_garo_ok-250617") no-repeat center top #140701;
    background-size: 100% auto;
    padding-top: 100%
  }
}

@media screen and (max-width: 480px) {
  body#close #mainimage {
    min-width: auto;
    height: auto;
    background: url("../images/campaign_rt/mainimage_sp_close.jpg?e_garo_ok-250617") no-repeat center top #140701;
    background-size: 100% auto;
    padding-top: 100%
  }
}

#detail {
  padding: 5% 0
}

@media screen and (max-width: 1079px) {
  #detail {
    padding: 8% 0
  }
}

@media screen and (max-width: 480px) {
  #detail {
    padding: 10% 0
  }
}

h2.tit {
  width: 50%;
  margin: 0 auto 6%;
  text-align: center
}

h2.tit:not(:first-of-type) {
  margin-top: 55px
}

@media screen and (max-width: 1079px) {
  h2.tit {
    width: 45%
  }
}

@media screen and (max-width: 480px) {
  h2.tit {
    width: 55%
  }
}

a.button {
  display: block;
  width: 53%;
  margin: 3% auto 6%
}

@media screen and (max-width: 1079px) {
  a.button {
    width: 53%
  }
}

@media screen and (max-width: 480px) {
  a.button {
    width: 74%
  }
}

a.button.products {
  width: 66%;
  margin: 10% auto 0
}

@media screen and (max-width: 1079px) {
  a.button.products {
    width: 66%
  }
}

@media screen and (max-width: 480px) {
  a.button.products {
    width: 95%
  }
}

ul.step {
  text-align: center
}

ul.step li {
  display: inline-block;
  width: 30%;
  margin: 0 1%;
  vertical-align: top
}

@media screen and (max-width: 1079px) {
  ul.step li {
    width: 32%;
    margin: 0
  }
}

@media screen and (max-width: 480px) {
  ul.step li {
    width: 80%;
    margin: 0 0 7%
  }
  ul.step li:last-of-type {
    margin-bottom: 0
  }
}

ul.step li dl {
  background: url("../images/campaign_rt/step_frame_rep.png?e_garo_ok-250617") repeat-y center top;
  background-size: 100% auto;
  padding-bottom: 10%
}

ul.step li dl:before {
  content: "";
  display: block;
  position: absolute;
  top: -2%;
  left: 0;
  width: 100%;
  padding-top: 23.279648%;
  background: url("../images/campaign_rt/step_frame_top.png?e_garo_ok-250617") no-repeat center top;
  background-size: 100% auto
}

ul.step li dl:after {
  content: "";
  display: block;
  position: absolute;
  bottom: -2%;
  left: 0;
  width: 100%;
  padding-top: 23.279648%;
  background: url("../images/campaign_rt/step_frame_btm.png?e_garo_ok-250617") no-repeat center bottom;
  background-size: 100% auto
}

ul.step li dl dt {
  width: 60%;
  margin: 0 auto;
  padding: 8% 0 17%;
  text-align: center;
  z-index: 2
}

@media screen and (max-width: 480px) {
  ul.step li dl dt {
    padding: 8% 0 5%
  }
}

ul.step li dl dd {
  width: 90%;
  margin: 0 auto;
  padding: 0 0 9%;
  text-align: center;
  z-index: 2
}

ul.step li dl dd:last-of-type {
  padding-bottom: 0
}

@media screen and (max-width: 1079px) {
  ul.step li dl dd {
    padding: 0 0 5%
  }
}

@media screen and (max-width: 480px) {
  ul.step li dl dd {
    padding: 0 0 5%
  }
}

ul.step li dl dd.btn {
  width: 65%
}

ul.step li dl dd.btn a {
  display: block;
  width: 100%;
  height: 100%;
  background: #000;
  border-radius: 5px;
  padding: 7% 0;
  text-align: center;
  -webkit-transition: background-color .3s ease;
  -webkit-transition-delay: 0s;
  -moz-transition: background-color .3s ease 0s;
  -o-transition: background-color .3s ease 0s;
  transition: background-color .3s ease 0s
}

ul.step li dl dd.btn a:hover {
  background-color: #444
}

ul.step li dl dd.btn a img {
  width: 90% !important;
  vertical-align: middle
}

ul.step li p {
  width: 100%;
  margin-top: 3%
}

ul.step li.step3 dl dt {
  padding-bottom: 14%
}

ul.step li.step3 dl dd:first-of-type {
  padding-bottom: 5%
}

ul.itemization {
    width: 93%;
    margin: 0 auto;
    color: #FFFF00;
}

ul.itemization li {
  font-weight: bold;
  text-indent: -0.5em;
  padding-left: 0.5em;
}

.agreement {
    background: url("../images/campaign_rt/kiyaku_frame.png?e_garo_ok-250617") no-repeat center top;
    background-size: 100% 100%;
    width: 1015px;
    height: 538px;
    margin: -3% auto 0;
    padding: 1em;
    color: #fff;
    text-shadow: 0px 0px rgba(0,0,0,0.52);
}
@media screen and (max-width: 1079px) {
  .agreement {
    width: 95%;
    height: 400px
  }
}

@media screen and (max-width: 480px) {
  .agreement {
    width: 95%;
    height: 300px
  }
}

.agreement .inner {
  width: 100%;
  height: 100%;
  padding: 1em .5em 1em;
  overflow-y: scroll;    
}

.agreement .inner * {
  font-weight: bold;
}

.agreement h3 {
  margin: 0 0 .8em;
  text-align: center
}

@media screen and (max-width: 1920px) {
  .agreement h3 {
    font-size: 3.0rem
  }
}

@media screen and (max-width: 1079px) {
  .agreement h3 {
    font-size: 14px;
    font-size: 4.375vw
  }
}

@media screen and (max-width: 480px) {
  .agreement h3 {
    font-size: 18px;
    font-size: 5.625vw
  }
}

.agreement dl dt {
  margin: 1.5em 0 .5em;
  text-indent: -0.5em
}

@media screen and (max-width: 1920px) {
  .agreement dl dt {
    font-size: 2.0rem
  }
}

@media screen and (max-width: 1079px) {
  .agreement dl dt {
    font-size: 9px;
    font-size: 2.8125vw
  }
}

@media screen and (max-width: 480px) {
  .agreement dl dt {
    font-size: 14px;
    font-size: 4.375vw
  }
}

.agreement dl dd p {
  margin-bottom: .3em
}

.agreement dl dd li {
  text-indent: -1em;
  padding-left: 1em
}

@media screen and (max-width: 1920px) {
  .agreement dl dd.contact span {
    margin-right: 1em
  }
}

@media screen and (max-width: 1079px) {
  .agreement dl dd.contact span {
    display: block
  }
}

@media screen and (max-width: 480px) {
  .agreement dl dd.contact span {
    display: block
  }
}

.agreement a:link, .agreement a:visited, .agreement a:hover, .agreement a:active {
  color: #00aeff
}

.agreement a:hover {
  text-decoration: none
}

footer {
  background: #000;
  min-width: 100%;
  width: 100%;
  height: 61px;
  z-index: 2;
  overflow: visible
}

footer:after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: -10px;
  width: 100%;
  height: 18px;
  background-image: url(../images/common/footerbg.png);
  background-size: auto 100%;
  background-repeat: repeat-x;
  background-position: center top
}

footer #sansei {
  float: left;
  margin-left: 32px;
  margin-top: 18px
}

@media screen and (max-width: 1079px) {
  footer #sansei {
    margin-left: 5px
  }
}

footer #copyright {
  display: block;
  position: absolute;
  left: 50%;
  -webkit-transform: translate(-55%, 0);
  -moz-transform: translate(-55%, 0);
  -ms-transform: translate(-55%, 0);
  -o-transform: translate(-55%, 0);
  transform: translate(-55%, 0);
  top: 15px
}

@media screen and (max-width: 1079px) {
  footer #copyright {
    -webkit-transform: translate(-50%, 0);
    -moz-transform: translate(-50%, 0);
    -ms-transform: translate(-50%, 0);
    -o-transform: translate(-50%, 0);
    transform: translate(-50%, 0)
  }
}

footer #social {
  float: right;
  margin-right: 32px;
  margin-top: 20px
}

@media screen and (max-width: 1079px) {
  footer #social {
    margin-right: 5px
  }
}

footer #social ul li {
  display: inline-block;
  vertical-align: top      
}

footer #social ul li#fb {
  font-size: 0
}

@media screen and (max-width: 480px) {
  footer {
    background: #000;
    height: auto;
    z-index: 99
  }
  footer:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: -5%;
    width: 100%;
    height: 6%;
    background: url("../images/common/sp/footerbg.png?e_garo_ok-250617") repeat-x center top;
    background-size: contain
  }
  footer .inner {
    max-width: 100%;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 4% 3% 3%;
    overflow: hidden
  }
  footer #sansei {
    float: none;
    white-space: nowrap;
    text-indent: 100%;
    overflow: hidden;
    font-size: 0;
    background-image: url("../images/campaign_rt/common-sprite-sp.png");
    background-position: 100% 0%;
    background-size: 340.95238% 179.71014%;
    width: 27.34375%;
    margin: 0 0 2% 0
  }
  footer #sansei:before {
    content: '';
    display: block;
    padding-top: 32.85714%
  }
  footer #sansei img {
    display: none
  }
  footer #copyright {
    white-space: nowrap;
    text-indent: 100%;
    overflow: hidden;
    font-size: 0;
    background-image: url("../images/campaign_rt/common-sprite-sp.png");
    background-position: 0% 0%;
    background-size: 200% 170%;
    width: 45%;
    position: static;
    top: 0;
    left: 0;
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0)
  }
  footer #copyright:before {
    content: '';
    display: block;
    padding-top: 31.42857%
  }
  footer #copyright img {
    display: none
  }
  footer #social {
    float: none;
    position: absolute;
    top: 10%;
    right: 3%;
    margin: 0
  }
  footer #social ul {
    text-align: right
  }
  footer #social ul li {
    display: inline-block;
    line-height: 0
  }
  footer #social ul li#fb {
    font-size: 0
  }
  footer.index {
    display: block
  }
}

#pagetop {
  display: none;
  white-space: nowrap;
  text-indent: 100%;
  overflow: hidden;
  font-size: 0;
  background-image: url("../images/campaign_rt/common-sprite-sp.png");
  background-position: 65.83851% 0%;
  background-size: 994.44444% 172.22222%;
  position: absolute;
  right: 1%;
  bottom: 5%;
  width: 9.375%;
  opacity: 1;
  z-index: 999
}

#pagetop:before {
  content: '';
  display: block;
  padding-top: 100%
}

@media screen and (max-width: 480px) {
  #pagetop {
    display: block
  }
}

body#close #contents {
  display: none
}