.home {
  background: 50% url(../img/parts/bg.jpg);
}

.home .header {
  position: absolute;
  top: 0;
  width: 100%;
  padding: 40px 40px 0;
  z-index: 100;
}

.home .header .logo {
  width: 100%;
  max-width: 300px;
}

.home main {
  position: relative;
  min-height: 820px;
  height: 100vh;
}

@media all and (max-width: 780px) {
  .home .header {
    position: fixed;
    top: 0;
    padding: 10px;
  }
  .home .header .logo {
    width: 60%;
  }
  .home main {
    padding-top: 120px;
    height: 100%;
  }
  .home .sp_wrap {
    padding-top: 52vw;
    position: relative;
    margin-bottom: 40px;
  }
}

@media all and (max-width: 780px) {
  .home .header {
    position: fixed;
    top: 0;
    padding: 10px;
  }
  .home .header .logo {
    width: 60%;
  }
  .home main {
    padding-top: 120px;
    height: 100%;
  }
  .home .sp_wrap {
    padding-top: 52vw;
    position: relative;
    margin-bottom: 40px;
  }
}

@media all and (max-width: 520px) {
  .home .sp_wrap {
    padding-top: 40vw;
  }
}

.ina_map {
  position: absolute;
  width: 25vw;
  top: 170px;
  left: 40px;
  max-width: 577px;
}

.ina_map:before {
  display: block;
  content: "";
  padding-top: 100%;
}

@media all and (max-width: 780px) {
  .ina_map {
    position: static;
    width: 75vw;
    margin: auto;
  }
}

@media all and (max-width: 780px) {
  .ina_map {
    position: static;
    width: 75vw;
    margin: auto;
  }
}

.romen_visual {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 70vw;
  max-width: 1200px;
  background-image: url(../img/parts/romen_visual.png);
}

.romen_visual:before {
  display: block;
  content: "";
  padding-top: calc(1470 / 1723 * 100%);
}

@media all and (max-width: 780px) {
  .romen_visual {
    width: 100vw;
    background-image: url(../img/parts/romen_visual_sp.png);
    background-position: 50px 0;
  }
}

@media all and (max-width: 780px) {
  .romen_visual {
    width: 100vw;
    background-image: url(../img/parts/romen_visual_sp.png);
    background-position: 50px 0;
  }
}

.logo_25 {
  position: absolute;
  top: 120px;
  right: 40px;
  width: 140px;
  z-index: 5;
}

@media all and (max-width: 780px) {
  .logo_25 {
    top: 20px;
    left: 20px;
    right: auto;
  }
}

@media all and (max-width: 780px) {
  .logo_25 {
    top: 20px;
    left: 20px;
    right: auto;
  }
}

.chara01 {
  position: absolute;
  bottom: 40px;
  left: 35vw;
  max-width: 156px;
}

@media all and (max-width: 780px) {
  .chara01 {
    left: 5vw;
    bottom: 0;
    width: 35%;
  }
}

@media all and (max-width: 780px) {
  .chara01 {
    left: 5vw;
    bottom: 0;
    width: 35%;
  }
}

.read {
  position: absolute;
  right: 40px;
  bottom: 20px;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  color: #fff;
  z-index: 10;
}

.read span {
  display: inline-block;
  margin: 0 0 0 0.5em;
  padding: 2em 0.5em;
  font-size: 26px;
  font-size: 1.625rem;
  background: -webkit-gradient(linear, left bottom, left top, from(transparent), color-stop(10%, rgba(0, 0, 0, 0.5)), color-stop(90%, rgba(0, 0, 0, 0.5)), to(transparent));
  background: linear-gradient(to top, transparent, rgba(0, 0, 0, 0.5) 10%, rgba(0, 0, 0, 0.5) 90%, transparent);
}

.read span:first-child {
  margin-top: -2.5em;
}

.read .num {
  text-combine-upright: all;
  line-height: 1;
  vertical-align: baseline;
}

@media all and (max-width: 780px) {
  .read {
    position: relative;
    top: -40px;
    right: 5%;
    margin-left: auto;
    bottom: auto;
  }
  .read span {
    font-size: 16px;
    font-size: 1rem;
  }
}

@media all and (max-width: 780px) {
  .read {
    position: relative;
    top: -40px;
    right: 5%;
    margin-left: auto;
    bottom: auto;
  }
  .read span {
    font-size: 16px;
    font-size: 1rem;
  }
}

.news_box {
  position: absolute;
  left: 40px;
  bottom: 70px;
  width: 30%;
  padding: 20px 10px;
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  font-size: 14px;
  font-size: 0.875rem;
}

.news_box h2 {
  font-size: 14px;
  font-size: 0.875rem;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #fff;
  font-size: 14px;
  font-size: 0.875rem;
}

.news_box a {
  color: #fff;
}

.news_box dl {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #fff;
}

@media all and (max-width: 780px) {
  .news_box {
    position: static;
    width: 90%;
    margin: auto;
    margin-bottom: 40px;
  }
}

@media all and (max-width: 780px) {
  .news_box {
    position: static;
    width: 90%;
    margin: auto;
    margin-bottom: 40px;
  }
}
/*# sourceMappingURL=index.css.map */