/*==================================================*/
/*==================================================*/
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  list-style-type: none;
  text-decoration: none;
  outline: none; }

/*==================================================*/
/*==================================================*/
/*==================================================*/
/*==================================================*/
@media print, screen and (min-width: 1001px) {
  .sp {
    display: none !important; } }

@media screen and (max-width: 1000px) {
  .pc {
    display: none !important; } }

/*==================================================*/
/*==================================================*/
/*==================================================*/
/*==================================================*/
body {
  background-color: #fff;
  color: #000;
  font-family: YakuHanRP, 'M PLUS Rounded 1c', sans-serif;
  font-weight: 400;
  line-height: 1.75; }
  @media print, screen and (min-width: 1001px) {
    body {
      font-size: 16px; } }
  @media screen and (max-width: 1000px) {
    body {
      font-size: 3.46667vw; } }

@media (prefers-color-scheme: dark) {
  body {
    background-color: #fff;
    color: #000; } }

main {
  background-color: #ffffff;
  overflow: hidden; }

.inner {
  position: relative;
  z-index: 1;
  margin-left: auto;
  margin-right: auto; }
  @media print, screen and (min-width: 1001px) {
    .inner {
      width: 960px; } }
  @media screen and (max-width: 1000px) {
    .inner {
      width: 84vw; } }

.flex {
  display: flex; }
  @media screen and (max-width: 1000px) {
    .flex {
      flex-direction: column; } }

h1 {
  font-weight: 800; }
  @media print, screen and (min-width: 1001px) {
    h1 {
      font-size: 32px; } }
  @media screen and (max-width: 1000px) {
    h1 {
      font-size: 5.6vw; } }

h2 {
  font-weight: 800; }
  @media print, screen and (min-width: 1001px) {
    h2 {
      font-size: 30px; } }
  @media screen and (max-width: 1000px) {
    h2 {
      font-size: 5.6vw;
      line-height: 9.06667vw; } }
  h2 + p {
    margin-top: 1em; }
  h2.cross {
    position: relative;
    color: #ffffff; }
    @media print, screen and (min-width: 1001px) {
      h2.cross {
        padding-left: 60px; } }
    @media screen and (max-width: 1000px) {
      h2.cross {
        padding-left: 8vw; } }
    h2.cross::before {
      content: '';
      display: block;
      position: absolute;
      left: 0;
      background-image: url(../img/icon_cross.png);
      background-repeat: no-repeat;
      background-size: contain; }
      @media print, screen and (min-width: 1001px) {
        h2.cross::before {
          top: 0.05em;
          width: 38px;
          height: 46px; } }
      @media screen and (max-width: 1000px) {
        h2.cross::before {
          top: 1.2vw;
          width: 5.06667vw;
          height: 6.13333vw; } }
    h2.cross.red {
      color: #e61216; }
      h2.cross.red::before {
        background-image: url(../img/icon_cross_red.png); }

h3 {
  font-weight: 800; }
  @media print, screen and (min-width: 1001px) {
    h3 {
      font-size: 24px; } }
  @media screen and (max-width: 1000px) {
    h3 {
      font-size: 4vw;
      line-height: 6.66667vw; } }

h4,
p {
  font-weight: 400; }
  @media print, screen and (min-width: 1001px) {
    h4,
    p {
      font-size: 16px; } }
  @media screen and (max-width: 1000px) {
    h4,
    p {
      font-size: 3.46667vw; } }

h5,
.note {
  font-weight: 400; }
  @media print, screen and (min-width: 1001px) {
    h5,
    .note {
      font-size: 11px; } }
  @media screen and (max-width: 1000px) {
    h5,
    .note {
      font-size: 2.93333vw; } }

p + p {
  margin-top: 1em; }

a {
  color: inherit; }

sup {
  display: inline-block;
  position: relative;
  top: -2px;
  font-size: 50%; }

img {
  max-width: 100%;
  vertical-align: bottom; }

.align--right {
  text-align: right; }

.align--left {
  text-align: left; }

.btn {
  display: inline-block;
  position: relative; }
  @media print, screen and (min-width: 1001px) {
    .btn {
      margin-top: 60px;
      min-width: 460px;
      height: 80px; } }
  @media screen and (max-width: 1000px) {
    .btn {
      margin-top: 8vw;
      width: 77.33333vw;
      height: 13.33333vw; } }
  .btn span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border-color: #000000;
    border-style: solid;
    background-color: #47c0e9;
    color: #ffffff;
    font-weight: 800;
    position: absolute;
    z-index: 2;
    transition-duration: .25s; }
    @media print, screen and (min-width: 1001px) {
      .btn span {
        top: -8px;
        left: -8px;
        padding: 30px 30px 30px 10px;
        border-width: 3px;
        border-radius: 40px;
        font-size: 24px; } }
    @media screen and (max-width: 1000px) {
      .btn span {
        top: -1.6vw;
        left: -1.6vw;
        padding-right: 2.4vw;
        border-width: 0.8vw;
        border-radius: 6.66667vw;
        font-size: 4vw; } }
    .btn span i {
      position: absolute;
      display: inline-block;
      font-style: normal;
      transition-delay: 0.2s;
      transition-duration: .25s; }
      @media print, screen and (min-width: 1001px) {
        .btn span i {
          right: 13px;
          font-size: 30px; } }
      @media screen and (max-width: 1000px) {
        .btn span i {
          right: 1.33333vw;
          font-size: 5.6vw; } }
  .btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    border-color: #000000;
    border-style: solid;
    background-color: #ffffff;
    transition-duration: .25s; }
    @media print, screen and (min-width: 1001px) {
      .btn::after {
        width: calc(100% - 6px);
        height: calc(100% - 6px);
        border-radius: 40px; } }
    @media screen and (max-width: 1000px) {
      .btn::after {
        width: calc(100% - 6px);
        height: calc(100% - 6px);
        border-width: 0.8vw;
        border-radius: 6.66667vw; } }
  .btn:hover span {
    background-color: #e61216;
    transform: translate(8px, 8px); }
    .btn:hover span i {
      right: 8px; }

.station-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-style: solid;
  white-space: nowrap;
  padding: 0;
  border-color: #e61216;
  background-color: #ffffff;
  color: #000000;
  font-weight: 800;
  transition-duration: .15s; }
  @media print, screen and (min-width: 1001px) {
    .station-btn {
      width: 280px;
      height: 60px;
      border-radius: 30px;
      font-size: 24px; } }
  @media screen and (max-width: 1000px) {
    .station-btn {
      font-size: 4vw; } }
  .station-btn small {
    font-weight: 500; }
    @media print, screen and (min-width: 1001px) {
      .station-btn small {
        font-size: 16px; } }
    @media screen and (max-width: 1000px) {
      .station-btn small {
        font-size: 2.93333vw; } }
  .station-btn.current, .station-btn:hover {
    background-color: #e61216;
    color: #ffffff; }

.cv-btn {
  display: inline-block;
  color: #ffffff;
  text-align: center;
  font-weight: 800;
  position: absolute;
  z-index: 10;
  transition-duration: .3s; }
  @media print, screen and (min-width: 1001px) {
    .cv-btn {
      right: 120px;
      bottom: -30px;
      font-size: 30px;
      line-height: 1.4; } }
  @media screen and (max-width: 1000px) {
    .cv-btn {
      right: 4vw;
      bottom: -42.66667vw;
      font-size: 5.6vw;
      line-height: 1.35; } }
  .cv-btn small {
    color: #000000; }
  .cv-btn:hover {
    transform: scale(1.05); }
  .cv-btn::before {
    content: '';
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    filter: drop-shadow(0px 4px 10px rgba(149, 149, 149, 0.45));
    z-index: -1;
    animation: rotation 20s linear infinite; }
    @media print, screen and (min-width: 1001px) {
      .cv-btn::before {
        top: -66px;
        left: -66px;
        width: 312px;
        height: 312px;
        background-image: url(../img/cv_bg_pc.png); } }
    @media screen and (max-width: 1000px) {
      .cv-btn::before {
        top: -5.86667vw;
        left: -5.06667vw;
        width: 42.93333vw;
        height: 42.93333vw;
        background-image: url(../img/cv_bg_sp.png); } }
  .cv-btn.fixed {
    position: fixed; }
    @media print, screen and (min-width: 1001px) {
      .cv-btn.fixed {
        bottom: 120px; } }
    @media screen and (max-width: 1000px) {
      .cv-btn.fixed {
        bottom: calc(env(safe-area-inset-bottom) + 15vw); } }
  .cv-btn.off {
    transform: scale(0); }

.notice {
  position: relative;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  background-color: #ffffff; }
  @media print, screen and (min-width: 1001px) {
    .notice {
      padding: 20px 30px 30px; } }
  @media screen and (max-width: 1000px) {
    .notice {
      padding: 4.53333vw 5.33333vw; } }
  .notice::before, .notice::after {
    content: '';
    display: inline-block;
    height: 100%;
    position: absolute;
    top: 0;
    mix-blend-mode: multiply; }
    @media print, screen and (min-width: 1001px) {
      .notice::before, .notice::after {
        background-color: #e61216;
        width: 8px;
        border-radius: 4px; } }
    @media screen and (max-width: 1000px) {
      .notice::before, .notice::after {
        background-color: #47c0e9;
        width: 2.13333vw;
        border-radius: 1.06667vw; } }
  .notice::before {
    left: 0; }
  .notice::after {
    right: 0; }
  .notice dt {
    width: 100%;
    font-weight: 800; }
    @media print, screen and (min-width: 1001px) {
      .notice dt {
        font-size: 24px; } }
    @media screen and (max-width: 1000px) {
      .notice dt {
        top: -3.2vw;
        font-size: 4.8vw; } }
    .notice dt::before {
      content: '';
      display: inline-block;
      width: 100%;
      position: absolute;
      top: 0;
      left: 0;
      mix-blend-mode: multiply; }
      @media print, screen and (min-width: 1001px) {
        .notice dt::before {
          background-color: #47c0e9;
          height: 8px;
          border-radius: 4px; } }
      @media screen and (max-width: 1000px) {
        .notice dt::before {
          background-color: #e61216;
          height: 2.13333vw;
          border-radius: 1.06667vw; } }
  .notice dd {
    font-weight: 500; }
    @media print, screen and (min-width: 1001px) {
      .notice dd {
        margin-top: 4px; } }
    .notice dd::after {
      content: '';
      display: inline-block;
      width: 100%;
      position: absolute;
      left: 0;
      bottom: 0;
      mix-blend-mode: multiply; }
      @media print, screen and (min-width: 1001px) {
        .notice dd::after {
          background-color: #47c0e9;
          height: 8px;
          border-radius: 4px; } }
      @media screen and (max-width: 1000px) {
        .notice dd::after {
          background-color: #e61216;
          height: 2.13333vw;
          border-radius: 1.06667vw; } }
    @media print, screen and (min-width: 1001px) {
      .notice dd {
        font-size: 16px;
        line-height: 1.67; } }
    @media screen and (max-width: 1000px) {
      .notice dd {
        font-size: 3.46667vw;
        line-height: 1.5; } }
    .notice dd a {
      color: #e61216;
      text-decoration: underline; }
    .notice dd ul li {
      text-align: left;
      padding-left: 1.25em;
      text-indent: -1.25em; }
      .notice dd ul li:first-letter {
        color: #e61216; }
      .notice dd ul li + li {
        margin-top: 0.5em; }
    .notice dd ul li:nth-child(even):first-letter {
      color: #47c0e9; }

/*==================================================*/
/*==================================================*/
header {
  background-color: #ffffff;
  text-align: center; }
  header h1 {
    font-size: 0; }
    @media print, screen and (min-width: 1001px) {
      header h1 {
        padding: 15px 0 20px; } }
    header h1 a {
      position: relative;
      display: inline-block;
      background-color: #fff;
      background-image: url(https://www.asoview.com/img/sp/common/logo-image_kana-a5c45b842cea56b781f663a7d536559e.svg);
      background-repeat: no-repeat;
      background-position: center;
      overflow: hidden;
      white-space: nowrap;
      text-indent: 100%; }
      @media print, screen and (min-width: 1001px) {
        header h1 a {
          width: 200px;
          height: 38px;
          background-size: 200px; } }
      @media screen and (max-width: 1000px) {
        header h1 a {
          width: 128px;
          height: 52px;
          background-size: 128px; } }

/*==================================================*/
/*==================================================*/
.mv {
  position: relative; }
  .mv h1 {
    position: relative;
    z-index: 10; }
    @media print, screen and (min-width: 1001px) {
      .mv h1 {
        top: -40px;
        margin-left: 40px; } }
    @media screen and (max-width: 1000px) {
      .mv h1 {
        top: -6.66667vw;
        margin-left: 4vw; } }
    @media print, screen and (min-width: 1001px) {
      .mv h1 img {
	margin: 50px 0 0;
        width: 360px; } }
    @media screen and (max-width: 1000px) {
      .mv h1 img {
        width: 59.06667vw; } }
  .mv .mv {
    background-position: left center;
    background-repeat: no-repeat;
    border-color: #e61216;
    border-style: solid;
    border-right: none;
    position: absolute; }
    @media print, screen and (min-width: 1001px) {
      .mv .mv {
        background-image: url(../img/mv_pc.jpg);
        background-size: 1540px;
        width: calc(100vw - 410px);
        height: 740px;
        border-width: 8px;
        top: 10px;
        left: 410px; } }
    @media screen and (max-width: 1000px) {
      .mv .mv {
        background-image: url(../img/mv_sp.jpg);
        background-size: cover;
        background-position: center;
        width: 92.4vw;
        height: 126.66667vw;
        border-width: 1.6vw;
        top: 4vw;
        right: 0; } }
    @media screen and (min-width: 1950px) {
      .mv .mv {
        background-size: cover; } }
    .mv .mv::after {
      content: '';
      display: block;
      background-repeat: no-repeat;
      position: absolute; }
      @media print, screen and (min-width: 1001px) {
        .mv .mv::after {
          background-image: url(../img/mv_line.png);
          background-size: 100% 100%;
          width: calc(415px + (100vw - 610px) / 2);
          height: 270px;
          left: -8px;
          bottom: -278px; } }
      @media screen and (max-width: 1000px) {
        .mv .mv::after {
          background-image: url(../img/mv_line_sp.png);
          background-size: 100%;
          margin-left: -7.6vw;
          width: 100vw;
          height: 28vw;
          left: 0;
          bottom: -29.6vw; } }
  .mv h2 {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: upright; }
    @media print, screen and (min-width: 1001px) {
      .mv h2 {
        margin-top: 30px;
        margin-left: 120px;
        font-size: 32px;
        line-height: 1.875; }
        .mv h2 img {
          width: 151px; } }
    @media screen and (max-width: 1000px) {
      .mv h2 {
        margin-top: 18.66667vw;
        margin-left: 4vw;
        padding-bottom: 1px;
        font-size: 5.6vw;
        line-height: 1.43;
        background-color: #ffffff;
        position: relative; }
        .mv h2 img {
          width: 21.46667vw; } }
    .mv h2 span {
      display: block;
      text-orientation: sideways; }
      @media print, screen and (min-width: 1001px) {
        .mv h2 span {
          margin-right: 32px;
          font-size: 30px; } }
      @media screen and (max-width: 1000px) {
        .mv h2 span {
          margin-right: 2.66667vw;
          font-size: 4.8vw; } }

@keyframes rotation {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }

/*==================================================*/
/*==================================================*/
.sec01 {
  color: #ffffff; }
  @media print, screen and (min-width: 1001px) {
    .sec01 {
      margin-top: 278px;
      position: relative;
      z-index: 2; } }
  @media screen and (max-width: 1000px) {
    .sec01 {
      margin-top: 28vw;
      padding: 6.66667vw 0 22.66667vw;
      background-color: #e61216; } }
  @media print, screen and (min-width: 1001px) {
    .sec01 .inner {
      padding: 80px 0; }
      .sec01 .inner::before {
        content: '';
        display: block;
        width: 100vw;
        height: 100%;
        background-color: #e61216;
        position: absolute;
        top: 0;
        right: -48px;
        z-index: -1; } }
  @media screen and (max-width: 1000px) {
    .sec01 .inner {
      background-color: #e61216; } }
  .sec01 .inner .flex div {
    position: relative; }
    @media print, screen and (min-width: 1001px) {
      .sec01 .inner .flex div {
        margin-top: 40px;
        padding-top: 250px;
        width: 100%; }
        .sec01 .inner .flex div:not(:first-child) {
          margin-left: 55px; } }
    @media screen and (max-width: 1000px) {
      .sec01 .inner .flex div:nth-child(1) {
        margin-top: 13.33333vw; }
        .sec01 .inner .flex div:nth-child(1) h3 {
          margin-left: 30.66667vw; }
        .sec01 .inner .flex div:nth-child(1) p {
          margin-left: auto; }
      .sec01 .inner .flex div:nth-child(2) {
        margin-top: 18.66667vw; }
        .sec01 .inner .flex div:nth-child(2) figure {
          right: 0; }
      .sec01 .inner .flex div:nth-child(3) {
        margin-top: 18.66667vw; }
        .sec01 .inner .flex div:nth-child(3) h3 {
          margin-left: 30.66667vw; }
        .sec01 .inner .flex div:nth-child(3) p {
          margin-left: auto; } }
    @media screen and (max-width: 1000px) {
      .sec01 .inner .flex div h3 {
        font-size: 4.8vw;
        line-height: 6.93333vw; } }
    .sec01 .inner .flex div figure {
      position: absolute;
      top: 0;
      overflow: hidden; }
      @media print, screen and (min-width: 1001px) {
        .sec01 .inner .flex div figure {
          right: 0;
          width: 260px;
          height: 330px;
          border-radius: 130px; } }
      @media screen and (max-width: 1000px) {
        .sec01 .inner .flex div figure {
          width: 37.33333vw;
          height: 56vw;
          border-radius: 18.66667vw; } }
      .sec01 .inner .flex div figure img {
        object-fit: cover;
        width: 100%;
        height: 100%; }
    .sec01 .inner .flex div h3 {
      position: relative; }
    .sec01 .inner .flex div p {
      margin-top: 1em; }
      @media screen and (max-width: 1000px) {
        .sec01 .inner .flex div p {
          width: 42.66667vw; } }

/*==================================================*/
/*==================================================*/
@media screen and (max-width: 1000px) {
  .sec02 {
    padding: 90.66667vw 0 21.33333vw;
    background: url(../img/sec02_img_sp.jpg) center top no-repeat;
    background-size: 100%; } }

.sec02 .inner {
  position: relative; }
  @media print, screen and (min-width: 1001px) {
    .sec02 .inner {
      padding-top: 690px;
      padding-bottom: 60px; }
      .sec02 .inner::before {
        content: '';
        display: block;
        width: calc(((100vw - 960px) / 2) + 960px);
        height: 760px;
        background: url(../img/sec02_img.jpg) center bottom no-repeat;
        background-size: cover;
        position: absolute;
        top: -110px;
        left: 0;
        z-index: -1; } }

.sec02 h2 {
  position: absolute;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  text-orientation: upright; }
  @media print, screen and (min-width: 1001px) {
    .sec02 h2 {
      top: 435px;
      left: 60px;
      font-size: 32px;
      line-height: 2; }
      .sec02 h2 img {
        width: 219px; } }
  @media screen and (max-width: 1000px) {
    .sec02 h2 {
      top: -31.2vw;
      left: 0;
      font-size: 5.6vw;
      line-height: 1.52; }
      .sec02 h2 img {
        width: 13.73333vw; } }

@media print, screen and (min-width: 1001px) {
  .sec02 p {
    margin-left: 540px; } }

@media screen and (max-width: 1000px) {
  .sec02 p {
    margin-left: 25.33333vw; } }

.sec02 dl {
  position: relative; }
  @media print, screen and (min-width: 1001px) {
    .sec02 dl {
      display: inline-block;
      margin-top: -80px;
      padding: 30px; } }
  @media screen and (max-width: 1000px) {
    .sec02 dl {
      margin-top: 10.66667vw;
      padding: 4.53333vw 5.33333vw; } }
  .sec02 dl::before, .sec02 dl::after {
    content: '';
    display: inline-block;
    height: 100%;
    background-color: #47c0e9;
    position: absolute;
    top: 0;
    mix-blend-mode: multiply; }
    @media print, screen and (min-width: 1001px) {
      .sec02 dl::before, .sec02 dl::after {
        width: 8px;
        border-radius: 4px; } }
    @media screen and (max-width: 1000px) {
      .sec02 dl::before, .sec02 dl::after {
        width: 2.13333vw;
        border-radius: 1.06667vw; } }
  .sec02 dl::before {
    left: 0; }
  .sec02 dl::after {
    right: 0; }
  .sec02 dl dt {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    font-weight: 800;
    text-align: center; }
    .sec02 dl dt span {
      display: inline-block;
      position: relative; }
      @media print, screen and (min-width: 1001px) {
        .sec02 dl dt span {
          top: -17px;
          font-size: 24px; } }
      @media screen and (max-width: 1000px) {
        .sec02 dl dt span {
          top: -3.2vw;
          font-size: 4.8vw; } }
    .sec02 dl dt::before, .sec02 dl dt::after {
      content: '';
      display: inline-block;
      background-color: #e61216;
      position: absolute;
      top: 0;
      mix-blend-mode: multiply; }
      @media print, screen and (min-width: 1001px) {
        .sec02 dl dt::before, .sec02 dl dt::after {
          width: 160px;
          height: 8px;
          border-radius: 4px; } }
      @media screen and (max-width: 1000px) {
        .sec02 dl dt::before, .sec02 dl dt::after {
          width: 32vw;
          height: 2.13333vw;
          border-radius: 1.06667vw; } }
    .sec02 dl dt::before {
      left: 0; }
    .sec02 dl dt::after {
      right: 0; }
  .sec02 dl dd {
    font-weight: 500; }
    .sec02 dl dd::before {
      content: '';
      display: inline-block;
      width: 100%;
      background-color: #e61216;
      position: absolute;
      left: 0;
      bottom: 0;
      mix-blend-mode: multiply; }
      @media print, screen and (min-width: 1001px) {
        .sec02 dl dd::before {
          height: 8px;
          border-radius: 4px; } }
      @media screen and (max-width: 1000px) {
        .sec02 dl dd::before {
          height: 2.13333vw;
          border-radius: 1.06667vw; } }
    @media print, screen and (min-width: 1001px) {
      .sec02 dl dd {
        font-size: 23px;
        line-height: 1.67; } }
    @media screen and (max-width: 1000px) {
      .sec02 dl dd {
        font-size: 3.46667vw;
        line-height: 1.5; } }

@media print, screen and (min-width: 1001px) {
  .sec02 + .img-line {
    margin-bottom: 28px; } }

@media screen and (max-width: 1000px) {
  .sec02 + .img-line {
    margin-bottom: 2.4vw; } }

/*==================================================*/
/*==================================================*/
.sec03 {
  background-color: #e61216;
  position: relative; }
  @media print, screen and (min-width: 1001px) {
    .sec03 {
      margin-top: 160px;
      padding: 80px 0 250px; }
      .sec03::after {
        content: '';
        display: block;
        width: 640px;
        height: 50%;
        background-color: #ffffff;
        background-image: url(../img/sec03_img.jpg);
        background-position: left bottom;
        background-repeat: no-repeat;
        background-size: contain;
        position: absolute;
        bottom: -140px;
        left: 0; } }
  @media screen and (max-width: 1000px) {
    .sec03 {
      margin-top: 22.93333vw;
      padding: 6.66667vw 0 62.66667vw;
      background-image: url(../img/sec03_img_sp.jpg), url(../img/sec03_bg_sp.png);
      background-position: center bottom, center top;
      background-repeat: no-repeat;
      background-size: 100%; } }
  .sec03::before {
    content: '';
    display: block;
    width: 100%;
    background-color: #fff;
    background-image: url(../img/sec03_line.png);
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute; }
    @media print, screen and (min-width: 1001px) {
      .sec03::before {
        height: 370px;
        background-position: calc(50% + 195px) center;
        top: 50%;
        transform: translateY(-50%); } }
  .sec03 .inner::before {
    content: '';
    display: block;
    background-color: #ffffff;
    position: absolute; }
    @media print, screen and (min-width: 1001px) {
      .sec03 .inner::before {
        top: -80px;
        left: calc(100% + 130px);
        width: 2000px;
        height: 50%; } }
  .sec03 .inner > p {
    color: #ffffff; }
    @media print, screen and (min-width: 1001px) {
      .sec03 .inner > p {
        padding-left: 60px; } }
    @media screen and (max-width: 1000px) {
      .sec03 .inner > p {
        padding-left: 8vw;
        width: 74.66667vw; } }
  @media print, screen and (min-width: 1001px) {
    .sec03 .flex {
      flex-wrap: wrap;
      justify-content: space-between; } }
  .sec03 .flex a {
    display: block;
    background-color: #ffffff;
    border-color: #e61216;
    border-style: solid;
    position: relative; }
    @media print, screen and (min-width: 1001px) {
      .sec03 .flex a {
        margin-top: 60px;
        padding: 240px 35px 60px;
        width: 450px;
        border-width: 4px;
        border-radius: 20px; } }
    @media screen and (max-width: 1000px) {
      .sec03 .flex a {
        margin-top: 10vw;
        margin-left: 2.66667vw;
        padding: 42.66667vw 7.33333vw 9.33333vw;
        width: 78.66667vw;
        border-width: 1.06667vw;
        border-radius: 5.33333vw; } }
    .sec03 .flex a figure {
      position: absolute; }
      @media print, screen and (min-width: 1001px) {
        .sec03 .flex a figure {
          top: -20px;
          left: -20px;
          width: 430px;
          height: 240px; } }
      @media screen and (max-width: 1000px) {
        .sec03 .flex a figure {
          top: -20px;
          left: -20px;
          width: 76vw;
          height: 42.66667vw; } }
      .sec03 .flex a figure img {
        object-fit: cover;
        width: 100%;
        height: 100%;
        box-shadow: 0px 4px 30px 0px rgba(149, 149, 149, 0.45); }
        @media print, screen and (min-width: 1001px) {
          .sec03 .flex a figure img {
            border-radius: 20px; } }
        @media screen and (max-width: 1000px) {
          .sec03 .flex a figure img {
            border-radius: 5.33333vw; } }
      .sec03 .flex a figure figcaption {
        position: absolute;
        top: 50%;
        right: 0;
        transform: translate(50%, -50%);
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        color: #000000;
        font-weight: 800;
        white-space: nowrap; }
        @media print, screen and (min-width: 1001px) {
          .sec03 .flex a figure figcaption {
            font-size: 24px; } }
        @media screen and (max-width: 1000px) {
          .sec03 .flex a figure figcaption {
            font-size: 4vw; } }
    .sec03 .flex a h3 {
      color: #e61216;
      line-height: 1.67;
      white-space: nowrap; }
    .sec03 .flex a p {
      margin-top: 0.75em; }
    .sec03 .flex a.coming {
      pointer-events: none; }
    .sec03 .flex a p.check {
      color: #e61216;
      font-weight: 800;
      line-height: 1;
      position: absolute;
      z-index: 1;
      transition-duration: .25s; }
      @media print, screen and (min-width: 1001px) {
        .sec03 .flex a p.check {
          font-size: 24px;
          right: 20px;
          bottom: 15px; } }
      @media screen and (max-width: 1000px) {
        .sec03 .flex a p.check {
          font-size: 4vw;
          right: 5.33333vw;
          bottom: 4vw; } }
      .sec03 .flex a p.check::before {
        content: '';
        display: inline-block;
        width: 0;
        height: 100%;
        background-color: #e61216;
        position: absolute;
        top: 0;
        right: 1px;
        z-index: -1;
        transition-duration: .25s; }
    .sec03 .flex a:hover p.check {
      color: #ffffff; }
      .sec03 .flex a:hover p.check::before {
        width: 100%;
        left: -1px; }

/*==================================================*/
/*==================================================*/
@media print, screen and (min-width: 1001px) {
  .sec04 {
    margin-top: 280px; } }

@media screen and (max-width: 1000px) {
  .sec04 {
    margin-top: 20vw; } }

@media print, screen and (min-width: 1001px) {
  .sec04 .inner > p {
    padding-left: 60px; } }

@media screen and (max-width: 1000px) {
  .sec04 .inner > p {
    padding-left: 8vw; } }

.sec04 .inner div {
  position: relative;
  background-color: #ffffff; }
  @media print, screen and (min-width: 1001px) {
    .sec04 .inner div {
      margin-top: 220px;
      padding: 70px 180px 0 0;
      width: 480px; }
      .sec04 .inner div::after {
        content: '';
        display: block;
        width: calc(((100vw - 960px) / 2) + 720px);
        height: 560px;
        background-image: url(../img/sec04_img.jpg);
        background-position: left center;
        background-repeat: no-repeat;
        background-size: cover;
        position: absolute;
        left: 240px;
        bottom: 0;
        z-index: -1; } }
  @media screen and (max-width: 1000px) {
    .sec04 .inner div {
      margin: 9.33333vw -8vw 0;
      padding: 67.33333vw 8vw 21.33333vw;
      background-image: url(../img/sec04_img_sp.jpg);
      background-position: left top;
      background-repeat: no-repeat;
      background-size: 100%; } }
  .sec04 .inner div h2 {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    position: absolute; }
    @media print, screen and (min-width: 1001px) {
      .sec04 .inner div h2 {
        top: -50px;
        right: 30px; }
        .sec04 .inner div h2 img {
          width: 94px; } }
    @media screen and (max-width: 1000px) {
      .sec04 .inner div h2 {
        top: 50.66667vw;
        right: 6.66667vw; }
        .sec04 .inner div h2 img {
          width: 13.86667vw; } }
  @media screen and (max-width: 1000px) {
    .sec04 .inner div p {
      margin-top: 0;
      width: 61.33333vw; } }

@media print, screen and (min-width: 1001px) {
  .sec04 + .txt-line {
    margin-top: 140px;
    margin-bottom: 28px; } }

@media screen and (max-width: 1000px) {
  .sec04 + .txt-line {
    margin-bottom: 2.4vw; } }

/*==================================================*/
/*==================================================*/
.sec05 {
  position: relative; }
  @media print, screen and (min-width: 1001px) {
    .sec05 {
      margin-top: 130px;
      padding: 0 0 70px; } }
  @media screen and (max-width: 1000px) {
    .sec05 {
      margin-top: 21.33333vw;
      padding-bottom: 8vw; } }
  @media print, screen and (min-width: 1001px) {
    .sec05 .inner > p {
      padding-left: 60px; } }
  @media screen and (max-width: 1000px) {
    .sec05 .inner > p {
      padding-left: 8vw; } }
  @media print, screen and (min-width: 1001px) {
    .sec05 .project {
      display: flex;
      justify-content: center;
      margin-top: 50px; } }
  @media print, screen and (min-width: 1001px) {
    .sec05 .railway {
      width: 430px; } }
  @media screen and (max-width: 1000px) {
    .sec05 .railway {
      margin: 10vw -8vw 0;
      background: url(../img/sec05_rail_sp.png) no-repeat;
      background-position: center 12vw;
      background-size: 100%; } }
  .sec05 .railway h2 {
    color: #e61216;
    line-height: 1; }
    @media print, screen and (min-width: 1001px) {
      .sec05 .railway h2 {
        transform: translateX(-200px); } }
    @media screen and (max-width: 1000px) {
      .sec05 .railway h2 {
        text-align: center;
        font-size: 4vw; } }
  .sec05 .railway ul {
    position: relative; }
    @media print, screen and (min-width: 1001px) {
      .sec05 .railway ul {
        margin-top: 50px;
        padding-left: 170px; }
        .sec05 .railway ul::before {
          content: '';
          display: block;
          width: 525px;
          height: 730px;
          background: url(../img/sec05_rail.png) no-repeat;
          background-size: contain;
          position: absolute;
          top: -38px;
          left: -365px; } }
    @media screen and (max-width: 1000px) {
      .sec05 .railway ul {
        margin-top: 2.93333vw;
        margin-left: 5.06667vw;
        display: flex;
        height: 51.33333vw;
        background: url(../img/other-stations.png) no-repeat;
        background-position: left 13.73333vw;
        background-size: 80.4vw;
        position: relative; }
        .sec05 .railway ul li a {
          display: block;
          background-repeat: no-repeat;
          background-size: contain; }
        .sec05 .railway ul li:nth-child(1) {
          margin-left: 3.6vw; }
          .sec05 .railway ul li:nth-child(1) a {
            background-image: url(../img/station-btn01_ov.png); }
        .sec05 .railway ul li:nth-child(2) {
          margin-left: 4.26667vw; }
          .sec05 .railway ul li:nth-child(2) a {
            background-image: url(../img/station-btn02_ov.png); }
        .sec05 .railway ul li:nth-child(3) {
          margin-left: 13.6vw; }
          .sec05 .railway ul li:nth-child(3) a {
            background-image: url(../img/station-btn03_ov.png); }
        .sec05 .railway ul li:nth-child(4) {
          margin-left: 17.73333vw; }
          .sec05 .railway ul li:nth-child(4) a {
            background-image: url(../img/station-btn04_ov.png); }
        .sec05 .railway ul li:nth-child(5) {
          margin-left: 4.4vw; }
          .sec05 .railway ul li:nth-child(5) a {
            background-image: url(../img/station-btn05_ov.png); } }
    .sec05 .railway ul li:first-letter {
      color: #e61216; }
    @media print, screen and (min-width: 1001px) {
      .sec05 .railway ul a {
        margin: 5px 0;
        transform: translateX(-170px); } }
    @media screen and (max-width: 1000px) {
      .sec05 .railway ul a {
        min-height: 37.33333vw;
        border-radius: 4.66667vw;
        font-family: 'M PLUS Rounded 1c', sans-serif;
        justify-content: flex-start; }
        .sec05 .railway ul a img {
          width: 9.33333vw; }
        .sec05 .railway ul a.current img {
          opacity: 0; } }
  .sec05 .station {
    position: relative;
    color: #ffffff; }
    @media print, screen and (min-width: 1001px) {
      .sec05 .station {
        width: calc(100% - 430px);
        min-height: 862px; }
        .sec05 .station::before {
          content: '';
          display: block;
          width: calc(50vw + 50px);
          height: 100%;
          background-color: #e61216;
          position: absolute;
          top: 0;
          left: 0;
          z-index: -1; } }
    @media screen and (max-width: 1000px) {
      .sec05 .station {
        margin-top: 6.66667vw;
        margin-right: -8vw;
        min-height: 154.66667vw;
        background-color: #e61216; } }
    .sec05 .station > div {
      width: 100%;
      height: 100%;
      position: absolute;
      opacity: 0;
      pointer-events: none; }
      .sec05 .station > div.current {
        opacity: 1;
        pointer-events: auto; }
      @media print, screen and (min-width: 1001px) {
        .sec05 .station > div {
          padding: 50px 0 50px 50px; } }
      @media screen and (max-width: 1000px) {
        .sec05 .station > div {
          padding: 6.66667vw 8vw 13.33333vw 4vw; } }
    .sec05 .station dl {
      display: flex; }
      .sec05 .station dl + dl {
        margin-top: 0.5em; }
      @media screen and (max-width: 1000px) {
        .sec05 .station dl {
          align-items: flex-start;
          justify-content: flex-start; } }
      .sec05 .station dl dt {
        font-weight: 800; }
        @media print, screen and (min-width: 1001px) {
          .sec05 .station dl dt {
            min-width: 5.5em;
            padding-top: 0.55em;
            font-size: 16px; } }
        @media screen and (max-width: 1000px) {
          .sec05 .station dl dt {
            min-width: 5em;
            padding-top: 0.25em;
            line-height: 1.5; } }
      .sec05 .station dl dd {
        font-weight: 800;
        line-height: 1.6;
        opacity: 0;
        transition-duration: .5s; }
        @media print, screen and (min-width: 1001px) {
          .sec05 .station dl dd {
            font-size: 24px; } }
        @media screen and (max-width: 1000px) {
          .sec05 .station dl dd {
            font-size: 4vw;
            margin-right: -4vw; } }
      .sec05 .station dl.name dt {
        padding-top: 0; }
      @media print, screen and (min-width: 1001px) {
        .sec05 .station dl.name dd {
          font-size: 16px;
          line-height: 1.75; } }
      @media screen and (max-width: 1000px) {
        .sec05 .station dl.name dd {
          font-size: 3.46667vw; } }
      .sec05 .station dl:nth-child(1) dd {
        transition-delay: 0; }
      .sec05 .station dl:nth-child(2) dd {
        transition-delay: .1s; }
      .sec05 .station dl:nth-child(3) dd {
        transition-delay: .2s; }
    .sec05 .station figure {
      position: relative; }
      @media print, screen and (min-width: 1001px) {
        .sec05 .station figure {
          margin: 30px 0;
          width: 510px;
          height: 380px;
          transform: translateX(-80px); } }
      @media screen and (max-width: 1000px) {
        .sec05 .station figure {
          margin: 4vw 0;
          width: 90.66667vw;
          height: 68vw;
          transform: translateX(-7.33333vw); } }
      .sec05 .station figure img {
        object-fit: cover;
        width: 100%;
        height: 100%;
        transform: scale(0);
        transition-delay: 0.5s;
        transition-duration: .25s;
        box-shadow: 0px 4px 30px 0px rgba(149, 149, 149, 0.45); }
        @media print, screen and (min-width: 1001px) {
          .sec05 .station figure img {
            border-radius: 20px; } }
        @media screen and (max-width: 1000px) {
          .sec05 .station figure img {
            border-radius: 5.33333vw; } }
      .sec05 .station figure figcaption {
        position: absolute;
        top: 50%;
        right: 0;
        transform: translate(50%, -50%);
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        color: #ffffff;
        font-weight: 800;
        white-space: nowrap; }
        @media print, screen and (min-width: 1001px) {
          .sec05 .station figure figcaption {
            font-size: 24px; } }
        @media screen and (max-width: 1000px) {
          .sec05 .station figure figcaption {
            font-size: 4vw; } }
    .sec05 .station p {
      opacity: 0;
      transition-delay: 0.6s;
      transition-duration: .5s; }
    .sec05 .station .pager {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      font-weight: 800;
      position: absolute; }
      @media print, screen and (min-width: 1001px) {
        .sec05 .station .pager {
          margin-top: 10px;
          font-size: 24px;
          right: 0;
          bottom: 50px; } }
      @media screen and (max-width: 1000px) {
        .sec05 .station .pager {
          right: 8vw;
          bottom: 6.66667vw; } }
      .sec05 .station .pager a {
        display: flex;
        align-items: center;
        justify-content: center;
        border-color: #ffffff;
        border-style: solid;
        border-radius: 100%;
        transition-duration: .15s; }
        @media print, screen and (min-width: 1001px) {
          .sec05 .station .pager a {
            width: 36px;
            height: 36px; } }
        @media screen and (max-width: 1000px) {
          .sec05 .station .pager a {
            width: 6.66667vw;
            height: 6.66667vw; } }
        .sec05 .station .pager a:hover {
          background-color: #ffffff;
          color: #e61216; }
      .sec05 .station .pager span {
        margin: 0 0.4em; }
    .sec05 .station .current dd, .sec05 .station .current img, .sec05 .station .current p {
      opacity: 1;
      transform: scale(1); }
  @media print, screen and (min-width: 1001px) {
    .sec05 .notice {
      margin-top: 60px; } }
  @media screen and (max-width: 1000px) {
    .sec05 .notice {
      display: flex;
      justify-content: center;
      flex-direction: column;
      margin-top: 8vw;
      margin-left: -4vw;
      width: 92vw;
      height: 46.53333vw; }
      .sec05 .notice dd {
        margin-top: 0.5em;
        text-align: left; } }
  .sec05::before {
    content: '';
    display: block;
    background-color: #fff;
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute; }
    @media print, screen and (min-width: 1001px) {
      .sec05::before {
        width: 100%;
        height: 290px;
        background-image: url(../img/sec05_line.png);
        background-position: calc(50% + 406px) center;
        bottom: -157px;
        transform: translateY(-50%); } }
    @media screen and (max-width: 1000px) {
      .sec05::before {
        width: 100vw;
        height: 62.53333vw;
        background-image: url(../img/sec05_line_sp.png);
        background-size: 100%;
        left: 0;
        bottom: 0; } }

/*==================================================*/
/*==================================================*/
.sec06 {
  position: relative;
  background-color: #e61216; }
  @media print, screen and (min-width: 1001px) {
    .sec06 {
      padding: 80px 0 284px; } }
  @media screen and (max-width: 1000px) {
    .sec06 {
      padding: 10.66667vw 0 34.66667vw;
      background-image: url(../img/sec06_bg_sp.png);
      background-position: center top;
      background-repeat: no-repeat;
      background-size: 100%; } }
  .sec06 .inner > h2,
  .sec06 .inner > p {
    color: #ffffff;
    text-align: center; }
  .sec06 .inner::before {
    content: '';
    display: block;
    position: absolute;
    background-image: url(../img/icon_cross.png);
    background-repeat: no-repeat;
    background-size: contain; }
    @media print, screen and (min-width: 1001px) {
      .sec06 .inner::before {
        top: -40px;
        left: 40px;
        width: 38px;
        height: 46px; } }
    @media screen and (max-width: 1000px) {
      .sec06 .inner::before {
        top: -5.86667vw;
        right: 5.33333vw;
        width: 5.06667vw;
        height: 6.13333vw; } }
  .sec06 .inner::after {
    content: '';
    display: block;
    position: absolute;
    background-image: url(../img/ring_gss.png);
    background-repeat: no-repeat;
    background-size: contain;
    animation: rotation 20s linear infinite; }
    @media print, screen and (min-width: 1001px) {
      .sec06 .inner::after {
        top: -105px;
        left: -30px;
        width: 178px;
        height: 178px; } }
    @media screen and (max-width: 1000px) {
      .sec06 .inner::after {
        top: -14.66667vw;
        right: -4vw;
        width: 23.73333vw;
        height: 23.73333vw; } }
  @media print, screen and (min-width: 1001px) {
    .sec06 .flex {
      flex-wrap: wrap;
      justify-content: space-between; } }
  .sec06 .flex div {
    display: block;
    background-color: #ffffff;
    border-color: #e61216;
    border-style: solid;
    position: relative; }
    @media print, screen and (min-width: 1001px) {
      .sec06 .flex div {
        margin-top: 48px;
        padding: 210px 27px 30px;
        width: 300px;
        border-width: 3px;
        border-radius: 20px; } }
    @media screen and (max-width: 1000px) {
      .sec06 .flex div {
        margin-top: 8.53333vw;
        margin-left: 2.66667vw;
        padding: 53.33333vw 7.33333vw 5.33333vw;
        width: 78.66667vw;
        border-width: 1.06667vw;
        border-radius: 5.33333vw; } }
    .sec06 .flex div figure {
      overflow: hidden;
      position: absolute;
      box-shadow: 0px 4px 60px 0px rgba(149, 149, 149, 0.45); }
      @media print, screen and (min-width: 1001px) {
        .sec06 .flex div figure {
          width: 280px;
          height: 200px;
          border-radius: 20px;
          top: -8px;
          left: -10px; } }
      @media screen and (max-width: 1000px) {
        .sec06 .flex div figure {
          width: 76vw;
          height: 54.66667vw;
          border-radius: 5.33333vw;
          top: -4.4vw;
          left: -5.33333vw; } }
      .sec06 .flex div figure img {
        object-fit: cover;
        width: 100%;
        height: 100%; }
    .sec06 .flex div h3 {
      color: #e61216; }
    .sec06 .flex div p {
      margin-top: 0.25em; }
  .sec06::after {
    content: '';
    display: block;
    width: 100%;
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: 100%;
    position: absolute;
    left: 0;
    bottom: 0; }
    @media print, screen and (min-width: 1001px) {
      .sec06::after {
        height: 580px;
        background-image: url(../img/sec06_img.jpg); } }
    @media screen and (max-width: 1000px) {
      .sec06::after {
        height: 53.06667vw;
        background-image: url(../img/sec06_img_sp.jpg); } }

/*==================================================*/
/*==================================================*/
.sec07 {
  text-align: center; }
  @media print, screen and (min-width: 1001px) {
    .sec07 {
      margin-top: -40px;
      padding-bottom: 140px; } }
  @media screen and (max-width: 1000px) {
    .sec07 {
      margin-top: -5.33333vw;
      padding-bottom: 18.66667vw; } }
  .sec07 h2 big {
    display: block;
    color: #e61216;
    font-weight: 500;
    line-height: 1; }
    @media print, screen and (min-width: 1001px) {
      .sec07 h2 big {
        margin-bottom: 20px;
        font-size: 80px; } }
    @media screen and (max-width: 1000px) {
      .sec07 h2 big {
        margin-bottom: 2.66667vw;
        font-size: 10.66667vw; } }
  .sec07 table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border-color: #000000;
    border-style: solid;
    overflow: hidden; }
    @media print, screen and (min-width: 1001px) {
      .sec07 table {
        margin-top: 50px;
        border-width: 3px;
        border-radius: 40px; } }
    @media screen and (max-width: 1000px) {
      .sec07 table {
        margin-top: 6.66667vw;
        border-width: 0.8vw;
        border-radius: 5.33333vw; } }
    .sec07 table thead th {
      background-color: #47c0e9;
      color: #ffffff;
      font-weight: 800;
      line-height: 1.5; }
      @media print, screen and (min-width: 1001px) {
        .sec07 table thead th {
          padding: 30px;
          font-size: 24px; } }
      @media screen and (max-width: 1000px) {
        .sec07 table thead th {
          padding: 4vw 2.66667vw;
          font-size: 4vw; } }
    .sec07 table tbody th,
    .sec07 table tbody td {
      border-top-color: #000000;
      border-top-style: solid;
      border-top-width: 3px;
      font-weight: 800; }
      @media print, screen and (min-width: 1001px) {
        .sec07 table tbody th,
        .sec07 table tbody td {
          font-size: 24px; } }
      @media screen and (max-width: 1000px) {
        .sec07 table tbody th,
        .sec07 table tbody td {
          min-width: 26.66667vw;
          border-width: 0.8vw;
          font-size: 3.46667vw; }
          .sec07 table tbody th small,
          .sec07 table tbody td small {
            display: block;
            line-height: 1; } }
    .sec07 table tbody td {
      border-left-color: #000000;
      border-left-style: solid;
      border-left-width: 3px;
      text-align: left; }
      @media print, screen and (min-width: 1001px) {
        .sec07 table tbody td {
          padding: 30px; } }
      @media screen and (max-width: 1000px) {
        .sec07 table tbody td {
          padding: 2.66667vw;
          border-width: 0.8vw;
          line-height: 1.5; } }
      .sec07 table tbody td small {
        display: block;
        font-weight: 500;
        line-height: 1; }
        @media print, screen and (min-width: 1001px) {
          .sec07 table tbody td small {
            font-size: 16px; } }
        @media screen and (max-width: 1000px) {
          .sec07 table tbody td small {
            line-height: 1.45; } }
      .sec07 table tbody td .otoku {
        position: absolute; }
        @media print, screen and (min-width: 1001px) {
          .sec07 table tbody td .otoku {
            margin-top: -0.6em;
            margin-left: 0.25em;
            width: 81px; } }
        @media screen and (max-width: 1000px) {
          .sec07 table tbody td .otoku {
            margin-top: -3.7em;
            margin-left: -1.6em;
            width: 13.33333vw; } }

/*==================================================*/
/*==================================================*/
.sec08 {
  background-color: #e61216; }
  @media print, screen and (min-width: 1001px) {
    .sec08 {
      padding: 80px 0; } }
  @media screen and (max-width: 1000px) {
    .sec08 {
      padding: 9.33333vw 0 10.66667vw; } }
  .sec08 .inner > p {
    color: #ffffff; }
    @media print, screen and (min-width: 1001px) {
      .sec08 .inner > p {
        padding-left: 60px; } }
    @media screen and (max-width: 1000px) {
      .sec08 .inner > p {
        padding-left: 8vw; } }
  .sec08 iframe {
    display: block;
    margin-left: auto;
    margin-right: auto;
    border: none;
    box-shadow: 0px 4px 60px 0px rgba(149, 149, 149, 0.45); }
    @media print, screen and (min-width: 1001px) {
      .sec08 iframe {
        margin-top: 50px;
        width: 960px;
        height: 500px;
        border-radius: 20px; } }
    @media screen and (max-width: 1000px) {
      .sec08 iframe {
        margin-top: 6.66667vw;
        width: 100%;
        height: 109.86667vw;
        border-radius: 5.33333vw; } }
  @media print, screen and (min-width: 1001px) {
    .sec08 + .txt-line {
      margin-top: 22px; } }
  @media screen and (max-width: 1000px) {
    .sec08 + .txt-line {
      margin-top: 4vw; } }

/*==================================================*/
/*==================================================*/
.sec09 {
  text-align: center; }
  @media print, screen and (min-width: 1001px) {
    .sec09 {
      padding: 66px 0 140px; } }
  @media screen and (max-width: 1000px) {
    .sec09 {
      padding: 10.66667vw 0 32vw; } }
  @media print, screen and (min-width: 1001px) {
    .sec09 dl {
      margin-top: 70px;
      padding: 30px 60px 40px;
      width: 540px; } }
  @media screen and (max-width: 1000px) {
    .sec09 dl {
      margin-top: 8vw;
      margin-left: -4vw;
      padding: 2em 1.5em;
      width: 92vw; } }
  @media screen and (max-width: 1000px) {
    .sec09 dl dt {
      line-height: 1.5; } }
  .sec09 dl dd {
    margin-top: 1em; }
    .sec09 dl dd ul {
      text-align: left; }

/*==================================================*/
/*==================================================*/
footer {
  position: relative;
  background-color: #e61216;
  color: #ffffff; }
  @media print, screen and (min-width: 1001px) {
    footer {
      padding: 10px; } }
  @media screen and (max-width: 1000px) {
    footer {
      padding: 2.66667vw; } }
  footer a.anchor {
    position: absolute;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    color: #000000;
    font-weight: 800;
    white-space: nowrap;
    z-index: 10;
    transition-duration: .25s;
    line-height: 1; }
    @media print, screen and (min-width: 1001px) {
      footer a.anchor {
        top: -420px;
        right: 40px;
        font-size: 24px;
        padding: 4px 0; } }
    @media screen and (max-width: 1000px) {
      footer a.anchor {
        top: -59.33333vw;
        right: 2.66667vw;
        font-size: 4vw;
        padding: 0.53333vw 0; } }
    footer a.anchor::before {
      content: '';
      display: inline-block;
      background: url(../img/icon_arrow-up.png) no-repeat;
      background-size: contain; }
      @media print, screen and (min-width: 1001px) {
        footer a.anchor::before {
          margin-bottom: 4px;
          width: 12px;
          height: 18px; } }
      @media screen and (max-width: 1000px) {
        footer a.anchor::before {
          margin-bottom: 0.53333vw;
          margin-left: 0.26667vw;
          width: 2.13333vw;
          height: 2.93333vw; } }
    footer a.anchor::after {
      content: '';
      display: inline-block;
      width: 100%;
      height: 0;
      background-color: #e61216;
      position: absolute;
      left: 0;
      bottom: 0;
      z-index: -1;
      transition-duration: .25s; }
    footer a.anchor:hover {
      color: #ffffff; }
      footer a.anchor:hover::before {
        background-image: url(../img/icon_arrow-up-wh.png); }
      footer a.anchor:hover::after {
        height: 100%;
        top: 0; }
  footer .copyright {
    line-height: 1;
    text-align: center; }
    @media print, screen and (min-width: 1001px) {
      footer .copyright {
        font-size: 10.5px; } }
    @media screen and (max-width: 1000px) {
      footer .copyright {
        font-size: 2.93333vw; } }

/*==================================================*/
/*==================================================*/
.img-line,
.txt-line {
  overflow: hidden; }
  .img-line > div,
  .img-line > div ul,
  .txt-line > div,
  .txt-line > div ul {
    display: flex; }

@media print, screen and (min-width: 1001px) {
  .img-line img {
    width: 450px;
    max-width: 450px;
    height: 300px; } }

@media screen and (max-width: 1000px) {
  .img-line img {
    width: 60vw;
    max-width: 60vw;
    height: 40vw; } }

.txt-line img {
  margin-right: 1em; }
  @media print, screen and (min-width: 1001px) {
    .txt-line img {
      width: 1942px;
      max-width: 1942px;
      height: 63px; } }
  @media screen and (max-width: 1000px) {
    .txt-line img {
      width: 207.2vw;
      max-width: 207.2vw;
      height: 6.66667vw; } }

/*# sourceMappingURL=style.css.map */