@charset "UTF-8";
@font-face{
    font-family: 'lineSeed';
    src: url('../font/LINESeedJP_OTF_Rg.woff') format('woff');
}
@font-face{
    font-family: 'lineSeed';
    src: url('../font/LINESeedJP_OTF_Bd.woff') format('woff');
    font-weight: 600;
}

body{
    font-family: 'lineSeed', sans-serif;
}
body.is-fixed {
    overflow: hidden;
}
.header-speace{
    padding-top: 138px;
    margin: 0 0 70px;
}
a{
    text-decoration: none;
}
hr{
    border-bottom: #e6e6e6 1px solid;
    margin: 0 0 50px;
}
.space-1, 
.space-2, 
.space-3{
    width: 100%;
}
.space-1{
    height: 70px;
}
.space-2{
    height: 50px;
}
.space-3{
    height: 30px;
}
.l-wrapper--inner{
    margin: 0 8%;
}

/* ページャー */
.acms-pager{
    display: flex;
    justify-content: center;
    align-items: center;
}
.acms-pager li{
    margin-left: 10px;
}
.acms-pager li.cur span, 
.acms-pager li span>a{
    font-size: 1.125rem;
    border-radius: 0;
    padding: 0;
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.acms-pager li span>a{
    background-color: #29ABE2;
    border: 2px solid #29ABE2;
    color: #fff;
}
.acms-pager li.cur span{
    background-color: #fff;
    border: 2px solid #29ABE2;
    color: #29ABE2;
}
.acms-pager li span>a:visited,.acms-pager li span>a:link{
    color: #fff;
}
.pager-color{
    color: #29ABE2;
}
.acms-pager li.cur span:hover,.acms-pager li span>a:hover{
    background-color: #fff;
    color: #29ABE2;
    border: 2px solid #29ABE2;
}
.acms-pager li span>a:visited:hover,.acms-pager li span>a:link:hover{
    color: #29ABE2;
}


/* 経路検索モーダル */
#routeModal{
    display: none;
}
 #routeModal:target{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100;
 }
 #routeModal .close{
    position: relative;
    display: block;
 }
 #routeModal .close::before{
    content: "";
    background: rgba(0, 0, 0, 0.5);
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    cursor: default;
 }
 #routeModal .close::after{
    content: url(../images/close.svg);
    display: block;
    position: absolute;
    right: -30px;
    bottom: -276px;
    background-color: #29abe2;
    width: 30px;
    height: 30px;
    padding: 15px;
    border-radius: 5px;
    cursor: pointer;
    z-index: 101;
 }

 .route-link-wrapper{
    position: fixed;
 }
 #routeModal .route-link--inner{
    position: relative;
    background-color: #fff;
    border: #29abe2 2px solid;
    border-radius: 5px;
    padding: 30px 50px 20px;
    width: 520px;
 }
 .route-link--inner h4{
    padding: 0 0 9px;
    margin: 0 0 30px;
    font-size: 1.3rem;
    font-weight: 600;
    text-align: center;
    color: #29abe2;
    border-bottom: #29abe2 2px solid;
 }
 .route-link-box{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
 }
 .route-link-box div{
    width: 200px;
    margin: 0 0 20px;
 }
 .route-link-box a{
    display: block;
    width: 100%;
    height: 100%;
 }
 .route-link-img:hover{
    opacity: 0.3;
 }
 .route-link-img img{
    vertical-align: top;
    width: 100%;
 }
 .ekitan a{
    display: flex;
    align-items: center;
    background-color: #fff;
    border: #29abe2 2px solid;
    border-radius: 5px;
    color: #29abe2;
 }
 .ekitan a::after{
    content: "";
    display: block;
    min-width: 6px;
    height: 10px;
    background-image: url(../images/blue-arrow.svg);
    background-repeat: no-repeat;
    margin: 0 10px 0 0;
 }
 .ekitan p{
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 600;
    font-size: 1.125rem;
    width: 100%;
 }
 .ekitan p::after{
    content: "";
    display: block;
    min-width: 16px;
    height: 17px;
    background-image: url(../images/external-link-blue.svg);
    background-repeat: no-repeat;
    margin: 0 0 0 3px;
 }
 .ekitan a:hover{
    background-color: #29ABE2;
    color: #fff;
 }
 .ekitan a:hover::after{
    background-image: url(../images/white-arrow.svg);
 }
 .ekitan a:hover p::after{
    background-image: url(../images/external-link-white.svg);
 }

 
#timetableAkayu,#timetableImaizumi{
    display: none;
}
 #timetableAkayu:target,#timetableImaizumi:target{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100;
 }
 #timetableAkayu .close,#timetableImaizumi .close{
    position: relative;
    display: block;
 }
 #timetableAkayu .close::before,#timetableImaizumi .close::before{
    content: "";
    background: rgba(0, 0, 0, 0.5);
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    cursor: default;
 }
 #timetableAkayu .close::after,#timetableImaizumi .close::after{
    content: url(../images/close.svg);
    display: block;
    position: absolute;
    right: -30px;
    bottom: -218px;
    background-color: #29abe2;
    width: 30px;
    height: 30px;
    padding: 15px;
    border-radius: 5px;
    cursor: pointer;
    z-index: 101;
 }
 #timetableAkayu .route-link--inner,#timetableImaizumi .route-link--inner{
    position: relative;
    background-color: #fff;
    border: #29abe2 2px solid;
    border-radius: 5px;
    padding: 30px 50px 20px;
    width: 520px;
 } 
 #timetableAkayu .ekitan a,#timetableImaizumi .ekitan a{
    height: 50px;
 }

 #eventSearchBox .route-link--inner{
    position: relative;
    background-color: #fff;
    border: #29abe2 2px solid;
    border-radius: 5px;
    padding: 30px 50px 20px;
    width: 600px;
    height: 400px;
 } 
 #eventSearchBox{
     display: none;
 }
  #eventSearchBox:target{
     width: 100%;
     height: 100%;
     position: absolute;
     top: 0;
     left: 0;
     display: flex;
     justify-content: center;
     align-items: center;
     z-index: 100;
  }
  #eventSearchBox .close{
     position: relative;
     display: block;
  }
  #eventSearchBox .close::before{
     content: "";
     background: rgba(0, 0, 0, 0.5);
     width: 100%;
     height: 100%;
     position: fixed;
     top: 0;
     left: 0;
     cursor: default;
  }
  #eventSearchBox .close::after{
     content: url(../images/close.svg);
     display: block;
     position: absolute;
     right: -30px;
     bottom: -425px;
     background-color: #29abe2;
     width: 30px;
     height: 30px;
     padding: 15px;
     border-radius: 5px;
     cursor: pointer;
     z-index: 101;
  }
  #eventSearchBox .route-link--inner{
     position: relative;
     background-color: #fff;
     border: #29abe2 2px solid;
     border-radius: 5px;
     padding: 0;
  } 
  .event-box{
    display: block;
    width: 100%;
    padding: 30px 50px;
  }
  .event-box h5{
    color: #29abe2;
    margin: 0 0 8px;
  }
  .event-box h5::before{
    content: "";
    display: inline-block;
    min-width: 4px;
    height: 15px;
    background-color: #29ABE2;
    margin: 0 3px 0 0;
    border-radius: 2px;
  }

  .event-box--inner{
    border: #29ABE2 2px solid;
    position: relative;
    /* height: 30px; */
    border-radius: 2.5px;
  }

  .event-month{
    width: 100%;
    margin: 0 0 20px;
    display: flex;
    justify-content: space-between;
  }
  .month-select{
    width: 90%;
  }
  .select-arrow{
    position: absolute;
    top: -2px;
    right: -2px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    background-color: #29ABE2; 
    pointer-events: none;
    border-radius: 0 2.5px 2.5px 0;
  }
  .select-arrow::after{
    content: "";
    display: block;
    width: 10px;
    height: 6px;
    background-image: url(../images/select-arrow.svg);
  }
  .month-select select{
    border-radius: 2.5px;
    height: 100%;
    width: 100%;
    appearance: none;
    border: none;
    cursor: pointer;
    outline: none;
  }

  .event-keyword{
    width: 100%;
    margin: 0 0 30px;
  }
  .event-keyword input{
    width: 100%;
    height: 100%;
    appearance: none;
    border: none;
    cursor: pointer;
    outline: none;
    border-radius: 2.5px;
}

  .event-send{
    width: 30px;
    height: 30px;
    background-color: #29ABE2;
    border-radius: 2.5px;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .event-keyword .event-send{
    position: absolute;
    right: -2px;
    top: -2px;
  }
  .event-send input{
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    appearance: none;
    border: none;
    cursor: pointer;
    outline: none;
    background-color: rgba(0, 0, 0, 0);
    border-radius: 2.5px;
    padding: 5px;
  }

  .event-title-box .main-text2{
    margin: 0;
  }
  .event-title-box .main-text{
    margin: 0 0 8px;
  }
  .event-title-box .main-text::before{
    content: "";
    display: inline-block;
    margin: 0 3px 0 0;
    width: 7px;
    height: 7px;
    background-color: #29ABE2;
    border-radius: 3.5px;
  } 

/* 見出し */
.midashi{
    text-align: center;
}
.midashi h2{
    margin: 0 0 5px;
    font-weight: 600;
    vertical-align: bottom;
}
.midashi div{
    display: block;
    height: 5px;
    width: 100%;
    background-image: url(../images/under-line.svg);
    background-repeat: repeat-x;
    border: #29abe2 1px solid;
}
.midashi span{
    font-size: 1.625rem;
    line-height: 1;
    color: #fff;
    background-color: #29abe2;
    padding: 0 3px;
    margin: 0 2px;
}
.midashi-left{
    text-align: left;
} 
.midashi-18{
    font-size: 1.125rem;
}
.midashi-21{
    font-size: 1.3rem;
}

/* 路線リンクボタン */
.railway-btn{
    list-style: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}
.railway-btn li a,.railway-btn li a img{
    display: block;
    width: 100%;
}
.railway-btn li a:hover{
    opacity: 0.3;
}
.railway-btn-top{
    margin: 15px 0 20px;
}
.railway-btn-top li{
    width: 32%;
    margin: 0 2% 10px 0;
}
.railway-btn-top li:nth-child(3n){
    margin: 0 0 10px;
}
.railway-btn-other{
    margin: 30px 0 0;
}
.railway-btn-other li{
    width: 19%;
    margin: 0 1.25% 10px 0;
}
.railway-btn-other li:nth-child(5n){
    margin: 0 0 10px;
}

/* イベント一覧アイテム */
.eventlist-box{
    width: 100%;
    display: block;
}
.eventlist-box:hover{
    opacity: 0.5;
}
.eventlist-img{
    aspect-ratio: 1.5;
    width: 100%;
    margin: 0 0 10px;
}
.eventlist-img img{
    vertical-align: top;
    border-radius: 5px;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}
.eventlist-title{
    margin: 0 0 10px;
    color: #000;
}
.eventlist-info{
    display: flex;
    justify-content: space-between;
}
.eventlist-info2{
    display: block;
    margin: 0 0 5px;
}
.eventlist-station{
    display: flex;
    align-items: center;
    font-size: 0.75rem;
    line-height: 1;
}
.eventlist-info2 .eventlist-station{
    margin: 0 0 8px;
}
.eventlist-station p{
    margin: 0;
    padding: 3px 8px;
}
.nearby{
    color: #fff;
    background-color: #dd2824;
    text-align: center;
}
.nearby-station{
    background-color: #e6e6e6;
    color: #000;
    display: flex;
    flex-wrap: wrap;
}
.nearby-station p::before{
    content: "";
    display: block;
    background-color: #000;
    width: 1px;
    height: 10px;
    margin: 0 8px 0 0;
}
.nearby-station p:first-child::before{
    display: none;
}
.event-railway-name p{
    color: #000;
    margin: 5px 0 0;
    font-size: 0.75rem;
}
.event-railway-name p::before{
    content: "……";
}
.eventlist-date{
    margin: 0;
    color: #000;
    font-size: 0.75rem;
}
.eventlist-border{
    border-top: #e6e6e6 1px solid;
}
.eventlist-border .eventlist-date{
    padding: 5px 0 0;
    display: flex;
    justify-content: end;
}
.sub-station-box h4{
    margin: 0;
    padding: 10px 20px 0;
    color: #000;
    background-color: #f1f1f1;
    display: inline-block;
    border-radius: 5px 5px 0 0;
}
.sub-station-box div{
    background-color: #f1f1f1;
    display: flex;
    flex-wrap: wrap;
    padding: 20px 20px 10px;
    margin: 0 0 30px;
    border-radius: 0 5px 5px 5px;
}
.sub-station-box p{
    margin: 0 20px 10px 0;
    color: #000;
}

/* 白地ボタン */
.white-btn{
    display: flex;
    justify-content: center;
}
.white-btn a{
    vertical-align: middle;
    display: flex;
    align-items: center;
    background-color: #fff;
    border: #29abe2 2px solid;
    color: #29abe2;
    font-weight: 600;
    padding: 0 30px;
    height: 46px;
    border-radius: 23px;
    font-size: 1.125rem;
}
.white-btn a:hover{
    background-color: #29abe2;
    color: #fff;
}
.white-btn-m50 a{
    margin: 0 0 50px;
}

/* ヘッダー */
header .l-wrapper{
    border-bottom: 4px solid #29abe2;
    position: fixed;
    width: 100%;
    background-color: #fff;
    z-index: 10;
}
.header-box{
    background-image: url(../images/header-bg.svg);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 35%;
    padding: 20px 0 10px;
    display: flex;
    justify-content: space-between;
}
.header-left{
    display: flex;
    align-items: center;
    margin: 0 10px 0 0;
    width: 40%;
}
.header-left a,.header-link a{
    display: block;
    width: 100%;
}
.header-link a:hover{
    opacity: 0.5;
}
.header-left a img,.header-link a img{
    vertical-align: top;
}
.header-left-1{
    width: 50px;
    margin: 0 12px 0 0;
}
.header-left-1 img{
    width: 100%;
    vertical-align: top;
}
.header-left-2{
    width: 300px;
}
.header-left-2 img{
    width: 100%;
    vertical-align: top;
}
.header-right{
    width: 57%;
}
.header-link{
    display: flex;
    justify-content: end;
    align-items: center;
    margin: 0 0 10px;
}
.header-link-1{
    width: 100px;
}
.header-link-1 img{
    width: 100%;
    vertical-align: top;
}
.header-link-2{
    width: 30px;
    margin: 0 0 0 20px;
}
.header-right ul{
    font-size: 0.7rem;
    font-weight: 600;
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
    width: 100%;
}
.header-right ul li{
    border-right: 1px solid #29abe2;
    text-align: center;
    margin: 0 0 10px;
    flex: auto;
}
.header-right ul li:first-child{
    border-left: 1px solid #29abe2;
}
.header-right ul a{
    color: #29abe2;
    display: block;
    width: 100%;
    padding: 5px;
}
.header-right ul a:hover{
    color: #fff;
    background-color: #29abe2;
}
.menu-list{
    margin: 0 0 30px;
}
.menu-list li a{
    padding: 40px 30px;
    font-size: 1.125rem;
}
.menu-list li a::after{
    content: "";
    display: block;
    background-image: url(../images/grey-arrow.svg);
    min-width: 10px;
    height: 17px;
}
.menu-link{
    display: flex;
    justify-content: end;
}
.menu-link a,.menu-link img{
    display: block;
    height: 100%;
}
.menu-link-left{
    height: 30px;
}
.menu-link-right{
    margin: 0 0 0 30px;
}

/* フッター */
.footer-flex{
    display: flex;
    justify-content: center;
    padding: 0;
    margin: 0 0 15px;
}
.footer-left{
    width: 350px;
    margin: 0 20px 0 0;
}
.footer-left img{
    vertical-align: top;
    width: 100%;
}
.footer-right{
    font-size: 0.93rem;
    margin: 0 0 0 20px;
}
.footer-info{
    margin: 0;
    line-height: 1.5;
}
.footer-link{
    margin: 0 auto 15px;
    padding: 0;
    list-style: none;
    display: flex;
    width: 30%;
}
.footer-link li{
    flex: auto;
    border-left: #29abe2 1px solid;
    text-align: center;
}
.footer-link li:last-child{
    border-right: #29abe2 1px solid;
}
.footer-link li a{
    color: #29abe2;
    padding: 5px 10px;
    display: block;
    width: 100%;
    height: 100%;
    font-size: 0.93rem;
}
.footer-link li a:hover{
    color: #fff;
    background-color: #29abe2;
}
.copyright{
    display: block;
    text-align: center;
    margin: 0 0 25px;
    padding: 20px 0 0;
    border-top: #29abe2 1px solid;
    font-size: 0.75rem;
}

/* トップページ */
.top-img-bg{
    background-image: url(../images/top-bg.jpg);
}
.top-box{
    display: flex;
    justify-content: space-between;
    /* padding: 118px 0 50px; インスタアイコン表示  */
    padding: 107px 0 50px;
    margin: 0 0 50px;
}
.top-left{
    width: 36.7%;
    margin: 20px 0 0;
}
.top-left a{
    display: block;
}
.top-left a:hover{
    opacity: 0.5;
}
.top-left a img{
    vertical-align: top;
    width: 100%;
}
.trial-operation{
    width: 100%;
    border-radius: 5px;
    text-align: center;
    background-color: #dd2824;
    margin: 0 0 30px;
}
.trial-operation p{
    font-size: 1.125rem;
    margin: 0;
    padding: 20px 0;
    color: #fff;
    font-weight: 600;
}

.top-right{
    width: 58%;
}
.board-box{
    background-color: #3d3d3d;
    padding: 10px 0;
    margin: 0 0 30px;
    position: relative;
    border-radius: 5px;
}
.board-box::before{
    content: "";
    background-color: #3d3d3d;
    display: block;
    width: 25px;
    height: 10px;
    position: absolute;
    top: -10px;
    left: 25px;
}
.board-box::after{
    content: "";
    background-color: #3d3d3d;
    display: block;
    width: 25px;
    height: 10px;
    position: absolute;
    top: -10px;
    right: 25px;
}
.board-title{
    font-size: 1.125rem;
    font-weight: 600;
    text-align: center;
    color: #fff;
    margin: 0 0 10px;
}
.board-box--inner{
    background-color: #161616;
    margin: 0 30px;
    overflow: hidden;
    display: flex;
    border-radius: 3px;
}
.board-box-flex{
    display: flex;
    justify-content: space-between;
    Width: fit-content;
    transform: translateX(100%);
}
.move-1{
    -webkit-animation: MoveLeft 46s -23s infinite linear;
    -moz-animation: MoveLeft 46s -23s infinite linear;
    animation: MoveLeft 46s -23s infinite linear;
}
.move-2{
    -webkit-animation: MoveLeft2 46s infinite linear; 
    -moz-animation: MoveLeft2 46s infinite linear; 
    animation: MoveLeft2 46s infinite linear; 
}
.board-box--inner p{
    font-family: "DotGothic16", serif;
    font-weight: 400;
    font-style: normal;
    font-size: 1.125rem;
    -webkit-animation: flowing 10s linear infinite;
    -moz-animation: flowing 10s linear infinite;
    animation: flowing 10s linear infinite;
    margin: 0 50px 0 0;
    padding: 10px 0;
    display: flex;
    color: #ff900b;
    white-space: nowrap;
}
.board-box-green{
    color: #89ff22;
    margin: 0 0 0 20px;
}

.top-photo-box{
    width: 100%;
    overflow: hidden;
    display: flex;
}
.top-train-photo{
    list-style: none;
    display: flex;
    justify-content: space-between;
    margin: 30px 0;
    padding: 0;
    width: fit-content;
    transform: translateX(100%);
}
.top-train-photo li{
    width: 300px;
    height: 200px;
    animation: flowing 10s linear infinite;
    margin: 0 30px 0 0;
    position: relative;
}
.top-train-photo li img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 5px;
}
.top-train-photo li div{
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(0, 0, 0, 0);
    width: 100%;
    height: 100%;
    border-radius: 5px;
}
.top-train-photo li div p{
    text-align: center;
    display: none;
    color: #fff;
    margin: 0;
}
.top-train-photo li:hover div{
    background-color: rgba(0, 0, 0, 0.5);
}
.top-train-photo li:hover div p{
    display: block;
}
.move-3{
    animation: MoveLeft 150s -75s infinite linear;
}
.move-4{
    animation: MoveLeft2 150s infinite linear; 
}
@keyframes MoveLeft {
    from {
      transform: translateX(100%);
    }
    to {
      transform: translateX(-100%);
    }
  }
  @keyframes MoveLeft2 {
    from {
      transform: translateX(0);
    }
    to {
      transform: translateX(-200%);
    }
  }

.railway-info{
    background-color: #fff;
    padding: 25px 30px;
    border-radius: 5px;
}
.railway-info h3{
    border-bottom: #29abe2 1px solid;
    padding: 0 0 5px;
    margin: 0;
    position: relative;
}
.railway-info h3 p{
    color: #29abe2;
    font-weight: 600;
    font-size: 1.125rem;
    margin: 0;
}
.railway-info h3 div{
    position: absolute;
    right: 0;
    top: -2px;
}
.railway-info h3 a{
    display: inline-block;
    height: 23px;
}
.railway-info h3 a:hover{
    opacity: 0.5;
}
.railway-info h3 a img{
    width: auto;
    height: 100%;
    vertical-align: top;
}

.sp-operation-info{
    display: flex;
    justify-content: end;
    margin: 15px 0 0;
}
.sp-operation-info a{
    display: inline-block;
    height: 30px;
}
.sp-operation-info a img{
    width: 100%;
    height: auto;
    vertical-align: top;
}
.sp-operation-info a:first-child{
    margin: 0 10px 0 0;
}

.railway-info-box{
    list-style: none;
    margin: 0;
    padding: 0;
}
.railway-info-box li{
    border-bottom: #e6e6e6 1px solid;
}
.railway-info-box li a{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 0 15px;
    color: #000;
}
.railway-info-box li a:hover{
    color: #29abe2;
}
.railway-info-box li a p{
    display: flex;
    align-items: baseline;
    margin: 0;
    padding: 0 5px 0 0;
}
.railway-info-box li a p::before{
    content: "●";
    margin: 0 3px 0 0;
}
.railway-info-box li a::after{
    content: "";
    display: block;
    min-width: 9px;
    height: 16px;
    background-image: url(../images/grey-arrow.svg);
    background-repeat: no-repeat;
}
.list-link{
    margin: 30px 0 0;
}
.railway-list-link{
    margin: 0 0 50px;
}
.list-link h3{
    border-bottom: #29abe2 1px solid;
    padding: 0 0 5px;
    margin: 0;
    color: #29abe2;
    font-weight: 600;
    font-size: 1.125rem;
}
.list-link p{
    font-size: 0.875rem;
}
.separate-tab::after{
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    margin: 0 0 0 3px;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url(../images/external-link-black.svg);
}
.railway-info-box li a:hover .separate-tab::after{
    background-image: url(../images/external-link-blue.svg);
}

.top-sp{
    display: none;
}

.top-slide{
    width: 100%;
    list-style: none;
    margin: 0 0 85px;
    padding: 0;
}
.top-slide li{
    margin: 0 20px;
}
.top-slide li a{
    display: block;
    aspect-ratio: 3.5;
    position: relative;
}
.top-slide img{
    width: 100%;
    height: 100%;
    vertical-align: top;
    object-fit: cover;
    object-position: center;
}
.flow-title{
    position: absolute;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 2;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
.flow-title p{
    color: #fff;
    font-weight: 600;
    font-size: 1.625rem;
}
.top-slide li a:hover .flow-title{
    background-color: rgba(0, 0, 0, 0.7);
}
.slick-prev, .slick-next{
    width: 65px;
    height: 65px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 2;
}
.slick-prev{
    background-image: url(../images/slick-prev.svg);
    left: 17%;
}
.slick-next{
    background-image: url(../images/slick-next.svg);
    right: 17%;
}
.slick-prev:before{
    content: "";
}
.slick-next:before{
    content: "";
}
.slick-track{
    margin-left: 0;
    margin-right: 0;
}


.top-event-title{
    position: relative;
}
.top-event-title::before{
    content: "";
    display: block;
    width: 123px;
    height: 40px;
    background-image: url(../images/top-event-titlr.svg);
    background-repeat: no-repeat;
    background-size: cover;
    position: absolute;
    top: -37px;
    left: 50%;
    transform: translateX(-180%);
}
.event-slide{
    list-style: none;
    margin: 30px 0;
    padding: 0;
}
.event-slide .slick-prev,.event-slide .slick-next{
    transform: translateY(-140%);
}
.event-slide .slick-prev{
    left: 2%;
}
.event-slide .slick-next{
    right: 2%;
}
.event-slide li{
    width: 244px;
    margin: 0 7px;
}

.main-station{
    list-style: none;
    margin: 30px 0 35px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}
.main-station li{
    border-radius: 5px;
    width: 19%;
    margin: 0 1.25% 15px 0;
}
.main-station li a{
    display: flex;
    align-items: center;
    flex-direction: column;
    padding: 20px 5px;
    background-color: #fff;
    border: #d1d8db 3px solid;
    border-radius: 5px;
    box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4);
}
.main-station li a:hover{
    background-color: #d1d8db;
    box-shadow: 1px 1px 1px rgba(0, 0, 0, 0);
}
.main-station li:nth-child(5n){
    margin: 0 0 15px;
}
.main-station-furigana{
    color: #000;
    margin: 0 0 3px;
    font-size: 0.625rem;
}
.main-station-name{
    color: #000;
    font-size: 0.9rem;
    font-weight: 600;
    display: block;
    width: 100%;
    text-align: center;
    margin: 0;
    padding: 0 0 3px;
    border-bottom: #d1d8db 2px solid;
}
.main-station li:last-child a{
    border: #29abe2 3px solid;
}
.main-station li:last-child a:hover{
    background-color: #29abe2;
}
.main-station li:last-child a{
    height: 100%;
    justify-content: center;
}
.main-station li:last-child p{
    color: #000;
    font-size: 0.9rem;
    font-weight: 600;
    margin: 0;
    display: flex;
    justify-content: center;
}
.main-station li:last-child a:hover p{
    color: #fff;
}
.main-station li:last-child p::after{
    content: "";
    display: block;
    min-width: 10px;
    height: 17px;
    background-image: url(../images/blue-arrow.svg);
    background-repeat: no-repeat;
    background-position: center;
    margin: 0 0 0 5px;
}
.main-station li:last-child a:hover p::after{
    background-image: url(../images/white-arrow.svg);
}

.top-info-box{
    display: flex;
    margin: 0 0 50px;
}
.top-info-item{
    width: 30%;
    margin-right: 5%;
}
.top-info-item:last-child{
    margin-right: 0;
}
.top-info-item ul{
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
}
.top-info-item2{
    width: 48%;
}
.top-info-item2:first-child{
    margin-right: 4%;
}
.top-info-item2 ul{
    list-style: none;
    margin: 0 0 20px;
    padding: 0;
}
.new-info li{
    border-bottom: #e6e6e6 1px solid;
}
.new-info a{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 0;
}
.new-info a:hover{
    opacity: 0.3;
}
.new-info a::after{
    content: "";
    display: block;
    min-width: 10px;
    height: 17px;
    background-image: url(../images/grey-arrow.svg);
    background-repeat: no-repeat;
    margin: 0 0 0 10px;
}
.new-info-date{
    margin: 0 0 5px;
    font-size: 0.75rem;
    color: #000;
}
.new-info-title{
    margin: 0 0 5px;
    color: #000;
}
.new-info-extras{
    margin: 0 0 5px;
}
.held-date{
    font-size: 0.75rem;
    color: #000;
    margin: 5px 0 0;
    display: flex;
}

.top-instagram-bg{
    background-image: url(../images/instagram-bg.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: bottom;
    box-shadow: 0  3px 2px rgba(0, 0, 0, 0.4);
    margin: 70px 0 50px;
}
.top-instagram-bg h3{
    margin: 0 auto;
    padding: 70px 0 50px;
    width: 450px;
    text-align: center;
}
.top-instagram-bg h3 img{
    width: 100%;
    vertical-align: top;
}
.instagram-grid{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 10px;
    padding: 0 0 100px;
}
.instagram-grid-item{
    aspect-ratio: 1;
}
.instagram-grid-item a{
    width: 100%;
    height: 100%;
}
.instagram-grid-item a img{
    border-radius: 5px;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    vertical-align: top;
}

/* 路線個別 */
.rosen-header-speace{
    margin: 0 0 70px;
    /* padding: 107px 0 0; 　インスタアイコン表示の場合　*/
    padding: 97px 0 0;
}
.rosen-title{
    border-radius: 0 0 35px 35px;
    background-size: auto 200px;
    background-position: left bottom;
    background-repeat: no-repeat;
    margin: 0 0 30px;
    padding: 0;
}
.rosen-bg-gradation{
    text-align: center;
    border-radius: 0 0 35px 35px;
    position: relative;
}
.rosen-bg-gradation h1{
    color: #fff;
    margin: 0;
    padding: 65px 0;
}
.time-table-absolute{
    position: absolute;
    top: 20px;
    right: 50px;
}
.time-table{
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #fff;
    border: #29ABE2 2px solid;
    width: 130px;
    height: 30px;
    border-radius: 15px;
    box-shadow: 1px  1px 1px rgba(0, 0, 0, 0.4);
}
.time-table p{
    margin: 0;
    color: #000;
    display: flex;
    align-items: center;
}
.time-table p::after{
    content: "";
    display: block;
    width: 11px;
    height: 12px;
    background-image: url(../images/page-jump.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    margin: 0 0 0 5px;
}
.time-table:hover{
    background-color: #29ABE2;
    box-shadow: 1px  1px 1px rgba(0, 0, 0, 0);
}
.time-table:hover p{
    color: #fff;
}
.time-table:hover p::after{
    background-image: url(../images/page-jump-white.svg);
}

.shin-attention{
    display: flex;
    align-items: center;
    margin: 20px 0;
}
.shin-attention::before{
    content: "";
    display: block;
    width: 24px;
    height: 24px;
    background-image: url(../images/shinkansen-mk.svg);
    background-repeat: no-repeat;
    margin: 0 5px 0 0;
}

.scroll-box{
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: scroll;
}
.rosen-box{
    display: flex;
    list-style: none;
    margin: 0 auto 50px;
    padding: 9px 4% 0;
    overflow-x: auto;
    overflow-y: hidden;
    background-color: #fff;
    scrollbar-color: #a8a8a8 #fff;
    scrollbar-width: thin;
}
.rosen-item{
    writing-mode: vertical-lr;
    position: relative;
}
.rosen-item:first-child{
    display: none;
}
.rosen-item:nth-child(2n){
    background-color: #f2f4f4;
}
.rosen-item a{
    display: block;
    text-decoration: none;
    padding: 30px 5px 20px;
    height: 100%;
    color: #000;
}
.rosen-item a:hover{
    opacity: 0.3;
}
.rosen-name{
    font-size: 1.125rem;
    margin: 0;
    padding: 0;
}

.rosen-item::before{
    content: "";
    display: block;
    width: 100%;
    height: 10px;
    position: absolute;
}
.rosen-item:nth-child(2):before{
    border-radius: 5px 0 0 5px;
}
.rosen-item:last-child::before{
    border-radius: 0 5px 5px 0;
}
.rosen-station::after{
    content: "";
    display: block;
    width: 18px;
    height: 18px;
    position: absolute;
    z-index: 5;
    top: -4px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
}
.rosen-shinkansen::after{
    content: "";
    display: block;
    width: 28px;
    height: 28px;
    position: absolute;
    z-index: 5;
    top: -9px;
    left: 50%;
    transform: translateX(-50%);
    background-image: url(../images/shinkansen-mk.svg);
    z-index: 3;
}
.rosen-event{
    margin-top: 30px;
}

.norikae{
    font-size: 0.75rem;
    margin: 18px 0 0 5px;
    display: flex;
}
.norikae::before{
    content: "";
    display: block;
    width: 13px;
    height: 13px;
    margin: 0 0 2px;
}
.scroll-tab{
    display: none;
}

.rosen-pager{
    margin: 0 0 50px;
}


/* 駅一覧 */
.station-list-title{
    font-size: 1.25rem;
    margin: 0 0 15px;
    display: flex;
    align-items: center;
}
.station-list-title::before{
content: "";
display: block;
width: 13px;
height: 13px;
background-image: url(../images/blue-circle.svg);
background-repeat: no-repeat;
margin: 0 3px 0 0;
}
.station-list-box{
    margin: 0 0 30px;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
}
.station-list-box li{
    border-bottom: #e6e6e6 1px solid;
    width: 31%;
    margin: 0 3.5% 15px 0;
}
.station-list-box li:nth-child(3n){
    margin: 0 0 15px;
}
.station-list-box a{
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
}
.station-list-box a::after{
    content: "";
    display: block;
    min-width: 10px;
    height: 17px;
    background-image: url(../images/grey-arrow.svg);
    background-repeat: no-repeat;
}
.station-list-box a:hover{
    opacity: 0.3;
}
.station-list--inner div{
    display: flex;
    align-items: baseline;
    margin: 0 0 4px;
}
.station-list--inner div p{
    color: #000;
}
.station-list-name{
    margin: 0 10px 0 0;
    font-size: 1.125rem;
    font-weight: 600;
}


/* 路線一覧 */
.railway-title{
    padding-top: 0;
    margin: 0 0 30px;
}
.railway-box{
    position: relative;
    width: 100%;
    height: auto;
}
.railway-box--inner{
    padding: 0 8%;
    vertical-align: top;
}
.railwaylist-btn{
    width: 18%;
    position: absolute;
}
.railwaylist-btn a:hover{
    opacity: 0.3;
}
.railwaylist-btn img{
    width: 100%;
    vertical-align: top;
}
.shin-btn{
    left: 65.08333333333333%;
    top: 93.12306550702935%;
}
.ou-btn{
    left: 74.08333333333333%;
    top: 9.158549873986376%;
}
.uet-btn{
    left: 14.58333333333333%;
    top: 0;
}
.sen-btn{
    left: 80.23788333333333%;
    top: 59.2154131040799%;
}
.rikusai-btn{
    left: 38.25%;
    top: 31.75409627841992%;
}
.rikutou-btn{
    left: 80.25%;
    top: 32.89055867154231%;
}
.yone-btn{
    left: 4.083333333333333%;
    top: 73.66950336593421%;
}
.atr-btn{
    left: 37.55%;
    top: 50.05114080769051%;
}
.flw-btn{
    left: 27.78333333333333%;
    top: 62.61907786104407%;
}


/* 個別駅 */
.station-box{
    display: flex;
    justify-content: space-between;
    margin: 0 0 50px;
}
.signs-box{
    width: 70%;
}
.station-signs{
    margin: 0 5px 7px;
    padding: 15px 20px;
    background-color: #fff;
    border: #EFEFEF 6px solid;
    border-radius: 10px;
    box-shadow: 0 5px 3px rgba(0, 0, 0, 0.4);
}
.station-signs-main{
    text-align: center;
    margin: 0 0 15px;
}
.station-signs-rosen{
    font-size: 0.93rem;
    font-weight: 600;
    margin: 0 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.station-signs-rosen::before{
    content: "";
    display: block;
    width: 35%;
    border-top: solid 2px;
}
.station-signs-rosen::after{
    content: "";
    display: block;
    width: 35%;
    border-top: solid 2px;
}
.station-signs-name p{
    font-size: 0.93rem;
    margin: 0 0 10px;
}
.station-signs-name h2{
    font-size: 1.875rem;
    margin: 0 0 20px;
}
.station-signs-name div{
    width: 100%;
    height: 5px;
}
.station-signs-sub{
    display: flex;
    position: relative;
}
.station-signs-sub::after{
    content: "";
    border-left: #000 1px solid;
    display: block;
    position: absolute;
    height: 100%;
    bottom: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(50%);
}
.station-signs-sub div{
    width: 50%;
    text-align: center;
    position: relative;
}
.station-signs-sub div a{
    color: #000;
    text-decoration: none;
    font-size: 0.93rem;
}
.station-signs-sub div a p{
    margin: 0;
    padding: 10px 0;
}
.signs-sub-left a:hover,
.signs-sub-left a:hover,
.signs-sub-right a:hover,
.signs-sub-right a:hover{
    opacity: 0.3;
}
.signs-sub-left a::before,
.signs-sub-left a::after,
.signs-sub-right a::before,
.signs-sub-right a::after{
    content: "";
    display: block;
    width: 15px;
    height: 4px;
    position: absolute;
    border-radius: 2px;
}
.signs-sub-left a::before{
    transform: translateY(-50%) rotate(-45deg); 
    top: 34%;
}
.signs-sub-left a::after{
    transform: translateY(-50%) rotate(45deg); 
    bottom: 34%;
}
.signs-sub-right a::before{
    transform: translateY(-50%) rotate(45deg); 
    top: 34%;
    right: 0;
}
.signs-sub-right a::after{
    transform: translateY(-50%) rotate(-45deg); 
    bottom: 34%;
    right: 0;
}

.external-link-box{
    width: 27%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.external-link-box div{
    height: 44%;
}
.external-link-box a{
    display: flex;
    align-items: center;
    height: 100%;
    background-color: #fff;
    border: #29abe2 2px solid;
    border-radius: 5px;
}
.external-link-box a::after{
    content: "";
    display: block;
    min-width: 11px;
    height: 20px;
    background-image: url(../images/blue-arrow.svg);
    background-repeat: no-repeat;
    padding: 0 15px 0 0;
}
.external-link-box p{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    color: #29abe2;
    font-weight: 600;
}
.external-link-1::after,
.external-link-2::after{
    content: "";
    display: block;
    background-repeat: no-repeat;
    margin: 0 0 0 5px;
}
.external-link-1::after{
    background-image: url(../images/search-blue.svg);
    width: 16px;
    height: 21px;
}
.external-link-2::after{
    background-image: url(../images/external-link-blue.svg);
    width: 16px;
    height: 17px;
}

.external-link-box a:hover{
    background-color: #29abe2;
}
.external-link-box a:hover::after{
    background-image: url(../images/white-arrow.svg);
}
.external-link-box a:hover p{
    color: #fff;
}
.external-link-box a:hover .external-link-1::after{
    background-image: url(../images/search-white.svg);
}
.external-link-box a:hover .external-link-2::after{
    background-image: url(../images/external-link-white.svg);
}

.station-explain-box{
    display: flex;
    justify-content: space-around;
    margin: 0 0 50px;
}
.station-explain-box div{
    width: 47.5%;
}
.station-explain-box div:nth-child(2){
    margin-left: 5%;
}
.station-explain-box img{
    object-fit: cover;
    width: 100%;
    vertical-align: top;
}
.station-explain-box p{
    margin: 0;
}

.station-map{
    position: relative;
    margin: 0 0 95px;
}
.station-map-box{
    width: 100%;
    height: 300px;
}
.station-map-box iframe{
    width: 100%;
    height: 100%;
}
.station-address{
    position: absolute;
    width: 50%;
    left: 50%;
    transform: translateX(-50%);
    bottom: -35px;
    background-color: #fff;
    border: #29abe2 2px solid;
    display: flex;
    justify-content: center;
    border-radius: 9999px;
}
.station-address p{
    margin: 0;
    padding: 15px 0;
    line-height: 1.2;
}

.station-event{
    list-style: none;
    margin: 30px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}
.station-event li{
    width: 31%;
    margin: 0 3.5% 20px 0;
}
.station-event li:nth-child(3n){
    margin: 0 0 20px;
}

.railway-img-box{
    list-style: none;
    margin: 30px 0 50px;
    padding: 0;
    display: flex;
}
.railway-img-box li{
    width: 32%;
    margin: 0 2% 20px 0;
}
.railway-img-box li:nth-child(3n){
    margin: 0 0 20px;
}
.railway-img{
    border: #29abe2 2px solid;
    margin: 0 0 20px;
}
.railway-img img{
    object-fit: cover;
    width: 100%;
}
.railway-img-box .white-btn a::after{
    content: "";
    display: block;
    width: 16px;
    height: 17px;
    background-image: url(../images/external-link-blue.svg);
    background-repeat: no-repeat;
    margin: 0 0 0 3px;
}
.railway-img-box .white-btn a:hover::after{
    background-image: url(../images/external-link-white.svg);
}
.railway-img-box .external-link-button{
    width: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}
.railway-img-box .external-link-button div{
    height: 47px;
    margin: 0 0 10px;
}
.railway-img-box .external-link-button a{
    display: block;
    height: 100%;
}
.railway-img-box .external-link-button a:hover{
    opacity: 0.3;
}
.railway-img-box .external-link-button img{
    height: 100%;
}
.railway-img-box .main-text{
    margin: 0;
}
.rosen-spot{
    margin: 30px 0 50px;
}

.travel-btn::after{
    content: "";
    display: block;
    background-image: url(../images/travel-blue.svg);
    background-repeat: no-repeat;
    margin: 0 0 0 3px;
    width: 18px;
    height: 16px;
}
.travel-btn:hover::after{
    background-image: url(../images/travel-white.svg);
}


/* トピックス一覧 */
.topics-list{
    list-style: none;
    margin: 0;
    padding: 0;
}
.topics-list li{
    border-bottom: #e6e6e6 1px solid;
}
.topics-list a{
    display: flex;
    justify-content: space-between;
    padding: 35px 50px;
}
.topics-list a:hover{
    opacity: 0.3;
}
.topics-list a::after{
    content: "";
    display: block;
    min-width: 10px;
    height: 17px;
    background-image: url(../images/grey-arrow.svg);
    background-repeat: no-repeat;
    margin: 0 0 0 10px;
}
.topics-list-item{
    display: flex;
    align-items: baseline;
    width: 100%;
}
.topics-list-item p{
    color: #000;
}
.topics-list-date{
    font-size: 0.75rem;
    width: 18%;
    margin: 0 2% 0 0;
}
.topics-list-title{
    font-size: 1.3rem;
    width: 80%;
    margin: 0;
}


/* イベント一覧 */
.event-search{
    margin: 30px 0 45px;
}
.search-btn::after{
    content: "";
    display: block;
    width: 12px;
    height: 16px;
    background-image: url(../images/search-blue.svg);
    background-repeat: no-repeat;
    margin: 0 0 0 5px;
}
.white-btn a:hover.search-btn::after{
    background-image: url(../images/search-white.svg);
}
.event-list{
    margin: 0 0 50px;
}


/* イベントエントリー */
.event-entry-top{
    display: flex;
    justify-content: space-between;
    margin: 0 0 5px;
    padding: 0 50px;
}
.event-entry-left{
    width: 80%;
}
.event-entry-left--inner{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}
.event-entry-left--inner li:last-child{
    margin: 0 0 10px;
}
.railway-flex{
    display: flex;
    align-items: center;
    margin: 0 0 10px;
}
.railway-flex-title{
    font-size: 0.85rem;
    margin: 0 10px 0 0;
    font-weight: 600;
}
.railway-flex ul, 
.railway-flex li, 
.railway-flex li:last-child{
    margin: 0;
    align-items: center;
}

.small-heading{
    font-size: 1.125rem;
    padding: 0;
    margin: 0 0 10px;
}

.event-entry-right{
    text-align: end;
}
.event-entry-right .eventlist-date::before{
    content: "更新：";
}
.event-title{
    font-size: 1.3rem;
    margin: 0 0 30px;
    padding: 0 50px 15px;
    border-bottom: 2px solid #29ABE2;
}
.entry-box{
    padding: 0 50px;
}
.entry-box .main-text2{
    margin: 0;
}
.entry-box .entry-under-margin{
    margin: 0 0 50px;
}
.entry-box img{
    width: 100%;
    height: auto;
    vertical-align: top;
}
.entry-img-1, 
.entry-img-2{
    width: 100%;
}
.entry-img-2{
    display: flex;
    justify-content: space-around;
}
.entry-img-2 div{
    width: 40%;
}
.entry-img-2 div img{
    width: 100%;
}
.entry-list{
    padding: 0;
    list-style: none;
}
.entry-list li{
    display: flex;
    padding: 30px 50px;
    border-top: #29ABE2 1px solid;
}
.entry-list li:last-child{
    border-bottom: #29ABE2 1px solid;
}
.entry-list-left{
    width: 35%;
    margin: 0 10px 0 0;
    font-weight: 600;
}
.entry-list-right{
    width: 65%;
}
.entry-list-right a{
    color: #29ABE2;
    width: 100%;
    display: inline-block;
    word-break: break-all;
}
.entry-list-right a::after{
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url(../images/external-link-blue.svg);
    background-repeat: no-repeat;
    background-position: center center;
    margin: 0 0 0 3px;
}
.entry-list-right a:hover{
    opacity: 0.3;
}
.entry-flexbox{
    display: flex;
    justify-content: space-between;
}
.entry-flex-2{
    width: 48%;
}
.entry-flex-6{
    width: 60%;
}
.entry-flex-4{
    width: 35%;
}
.img-center{
    display: flex;
    justify-content: center;
}
.img-mini{
    width: 72%;
}
.entry-flex-2 .img-under{
    margin: 0 0 30px;
}
.text-top-margin{
    margin: 0 0 30px;
}
.entry-img1{
    width: 100%;
    display: flex;
    justify-content: center;
}
.entry-img2,.entry-img3{
    display: flex;
    justify-content: space-around;
}
.entry-img2--inner{
    width: 48%;
}
.entry-img3--inner{
    width: 31%;
}

.table-1{
    width: 100%;
    border-collapse: collapse;
    margin: 0 0 50px;
}
.table-1 tr th, 
.table-1 tr td{
    padding: 10px 20px;
    border: #63c7ea 1px solid;
}
.table-1 tr th{
    background-color: #63c7ea;
    color: #fff;
    border-right: #fff 1px solid;
    border-bottom: #fff 1px solid;
}
.table-1 tr th p, 
.table-1 tr td p{
    margin: 0;
}
.entry-container{
    margin: 0;
}
.table-2 tr td p{
    margin: 0 0 5px;
}

.flex-center{
    justify-content: center;
}
.margin-top{
    margin: 15px 0 0;
}
.margin-left{
    margin: 0 0 0 30px;
}

.table-2 a, 
.main-text2 a{
    color: #29ABE2;
    text-decoration: underline;
}
.table-2 a:hover, 
.main-text2 a:hover{
    opacity: 0.3;
}


/* プロジェクト概要 */
.project-centerimg{
    width: 600px;
    margin: 0 auto 30px;
}
.project-centerimg img{
    width: 100%;
    vertical-align: top;
}
.project-box{
    margin: 20px 0 60px;
}
.project-box2{
    margin: 20px 0 15px;
}
.project-text{
    margin: 0 0 30px;
}
.blue-title{
    font-size: 1.125rem;
    color: #29ABE2;
    font-weight: 600;
    padding: 0 0 5px;
    margin: 0 0 15px;
    border-bottom: #29ABE2 2px solid;
}
.project-br{
    display: none;
}
.project-btn{
    display: flex;
    justify-content: center;
}
.project-btn a{
    padding: 10px 50px;
    background-color: #fff;
    border: #29ABE2 2px solid;
    border-radius: 100vh;
}
.project-btn p{
    color: #29ABE2;
    text-align: center;
}
.project-btn1{
    font-weight: 600;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
}
.project-btn1::after{
    content: "";
    display: block;
    width: 16px;
    height: 17px;
    margin: 0 0 0 3px;
    background-image: url(../images/external-link-blue.svg);
    background-repeat: no-repeat;
}
.project-btn2{
    margin: 0;
    font-size: 0.8rem;
    margin: 0;
}
.project-btn a:hover{
    background-color: #29ABE2;
}
.project-btn a:hover p{
    color: #fff;
}
.project-btn a:hover .project-btn1::after{
    background-image: url(../images/external-link-white.svg);
}
.project-box2 .station-list-title{
    padding-top: 0;
    margin-top: 0;
    align-items: baseline;
}

.project-summarylist{
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.project-summarylist li{
    width: 48%;
}
.project-summarylist li:first-child,.project-summarylist li:nth-child(2){
    margin: 0 0 30px 4px;
}
.black-circle{
    margin: 0;
    padding: 0 0 0 1rem;
    text-indent: -1rem;
}
.black-circle::before{
    content: "●";
    margin-left: -4px;
    padding-right: 4px;
}

.projct-area{
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    margin: 0 0 60px;
}
.projct-area div{
    width: 48%;
    height: 100px;
}
.projct-area div:first-child,.projct-area div:nth-child(2){
    margin: 0 0 20px;
}
.project-efforts{
    margin: 0 0 10px;
}
.efforts-list, 
.efforts-list2{
    list-style: none;
    padding: 0;
}
.efforts-list{
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: 0;
}
.efforts-list li{
    width: 48%;
    margin: 0 0 30px;
}
.efforts-list li img{
    width: 100%;
    vertical-align: top;
}

.efforts-list2{
    margin: 0 0 30px;
}
.efforts-list2 li{
    display: flex;
    border-bottom: #d1d8db 1px solid;
    padding: 20px 30px;
}
.efforts-list2 li:first-child{
    border-top: #d1d8db 1px solid;
}
.efforts-box-left{
    width: 25%;
    margin: 0 3% 0 0;
}
.efforts-box-left p{
    margin: 0;
    font-weight: 600;
    color: #29ABE2;
}
.efforts-box-right{
    width: 72%;
}
.efforts-box-right p{
    display: flex;
}
.efforts-box-right p::before{
    content: "●";
    margin: 0 3px 0 0;
}
.efforts-box-right span{
    display: block;
}

.project-img{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: space-between;
}
.project-img li{
    width: 30%;
}
.project-img li h5{
    margin: 0 0 10px;
}
.project-img li img{
    width: 100%;
    vertical-align: top;
}

/* プライバシーポリシー */
.privacy-under-margin{
    margin: 0 0 30px;
}
.privacy-under-margin2{
    margin: 0 0 60px;
}
.privacy-list-margin{
    margin: 10px 0 30px;
}
.privacy-list-margin2{
    margin: 10px 0 60px;
}


@media screen and (max-width: 768px){
    .header-speace{
        padding: 112px 0 0;
        margin: 0 0 50px;
    }

    /* ページャー */
    .acms-pager li.cur span,.acms-pager li span>a{
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }

    /* 経路検索モーダル */
    #routeModal .route-link--inner{
        width: 400px;
    }
    .route-link-box div{
        width: 100%;
    }
    .ekitan a{
        padding: 20px 0;
    }
    #routeModal .close::after{
        padding: 10px;
        right: -25px;
        bottom: -482px;
    }
    
    #timetableAkayu .route-link--inner,#timetableImaizumi .route-link--inner{
        width: 400px;
    }
    #timetableAkayu .close::after,#timetableImaizumi .close::after{
        padding: 10px;
        right: -25px;
        bottom: -283px;
    }

    /* 白地ボタン */
    .white-btn-top a{
        font-size: 1rem;
        padding: 0 40px;
        height: 40px;
    }
    .white-btn-m50 a{
        margin: 0 0 40px;
    }

    /* 路線リンクボタン */
    .railway-btn-top{
        margin: 15px 0 0;
        padding: 0 0 30px;
    }
    .railway-btn-other{
        margin: 15px 0 0;
    }
    .railway-btn-other li{
        width: 32%;
        margin: 0 2% 10px 0;
    }
    .railway-btn-other li:nth-child(3n){
        margin: 0 0 10px;
    }
    .railway-btn-other li:nth-child(5n){
        margin: 0 2% 10px 0;
    }

    /* ヘッダー */
    .header-box{
        display: block;
    }
    .header-left{
        width: 100%;
    }
    .header-left-1{
        width: 50px;
        margin: 0 20px 0 0;
    }
    .header-left-2{
        width: 300px;
    }
    .header-right{
        display: none;
    }

    /* フッター */
    .footer-left{
        width: 280px;
        margin: 0 10px 0 0;
    }
    .footer-right{
        font-size: 0.875rem;
        margin: 0 0 0 10px;
    }
    .footer-link{
        width: 50%;
    }
    .footer-link li a{
        font-size: 0.875rem;
        padding: 7px 15px;
    }

    /* トップページ */
    .top-box{
        padding: 92px 0 0;
        margin: 0 0 30px;
    }
    .railway-info{
        margin: 0 0 30px;
    }
    .top-map{
        width: 70%;
        margin: 0 auto 30px;
    }
    .top-map img{
        width: 100%;
    }
    .top-pc{
        display: none;
    }
    .top-sp{
        display: block;
    }

    .top-slide{
        margin: 0 0 70px;
    }
    .top-slide li a{
        aspect-ratio: 3;
    }
    .slick-prev{
        left: 15%;
    }
    .slick-next{
        right: 15%;
    }

    .event-slide{
        margin: 20px 0;
    }

    .main-station{
        margin: 20px 0 35px;
    }
    .main-station li{
        width: 31%;
        margin: 0 3.5% 15px 0;
    }
    .main-station li:nth-child(5n){
        margin: 0 3.5% 15px 0;
    }
    .main-station li:nth-child(3n){
        margin: 0 0 15px;
    }

    .top-info-box{
        display: block;
    }
    .top-info-item{
        width: 100%;
        margin: 0 0 30px;
    }
    .top-info-item2{
        width: 100%;
        margin: 0 0 30px;
    }

    .top-instagram-bg h3{
        padding: 40px 0 30px;
        width: 300px;
    }
    .instagram-grid{
        padding: 0 0 50px;
    }

    .top-train-photo li{
        width: 200px;
        height: 130px;
    }


    /* 路線個別 */
    .rosen-header-speace{
        margin: 0 0 50px;
        padding: 80px 0 0;
    }
    .rosen-title{
        margin: 0 0 15px;
        background-size: auto 115px;
    }
    .rosen-bg-gradation h1{
        font-size: 21px;
        padding: 40px 0;
    }

    .time-table{
        width: 80px;
        height: 24px;
        border-radius: 12px;
    }
    .time-table-absolute{
        top: 10px;
        right: 30px;
    }
    .time-table p{
        font-size: 12px;
    }
    .time-table p::after{
        width: 7px;
        height: 8px;
        margin: 0 0 0 3px;
    }

    .station-box{
        display: block;
        margin: 0 0 40px;
    }
    .station-box,.station-explain-box{
        margin: 0 0 40px;
    }
    .signs-box{
        width: 100%;
    }
    .station-signs{
        padding: 10px 20px;
        margin: 0 5px 20px;
    }
    .station-signs-main{
        margin: 0 0 10px;
    }
    .station-signs-rosen{
        font-size: 0.75rem;
        margin: 0 0 10px;
    }
    .station-signs-name p{
        font-size: 0.75rem;
        margin: 0 0 6px;
    }
    .station-signs-name h2{
        font-size: 1.5625rem;
        margin: 0 0 15px;
    }
    .station-signs-sub div a{
        font-size: 0.75rem;
    }
    .station-signs-sub div a p{
        padding: 6px 0;
    }
    .signs-sub-left a::before, .signs-sub-left a::after, .signs-sub-right a::before, .signs-sub-right a::after{
        width: 10px;
        height: 2px;
    }

    .external-link-box{
        width: 100%;
        flex-direction: row;
    }
    .external-link-box div{
        width: 48%;
        height: 70px;
    }
    
    .station-explain-box{
        display: block;
    }
    .station-explain-box div, 
    .station-explain-box div:nth-child(2){
        width: 100%;
        margin: 0 0 15px;
    }

    .station-map{
        margin: 0 0 85px;
    }
    .station-address{
        width: 75%;
    }

    .station-event{
        margin: 15px 0 0;
    }
    .station-event li{
        margin-bottom: 5px;
    }
    .station-event li:nth-child(3n){
        margin-bottom: 5px;
    }

    .railway-img-box{
        margin: 15px 0 20px;
        flex-wrap: wrap;
    }
    .railway-img-box li{
        width: 48%;
        margin: 0 2% 20px 0;
    }
    .railway-img-box li:nth-child(3n){
        margin: 0 2% 20px 0;
    }
    .railway-img-box li:nth-child(2n){
        margin: 0 0 20px;
    }
    .railway-img{
        margin: 0 0 8px;
    }
    .rosen-event li{
        width: 48%;
        margin: 0 4% 15px 0;
    }
    .rosen-event li:nth-child(3n){
        margin: 0 4% 15px 0;
    }
    .rosen-event li:nth-child(2n){
        margin: 0 0 15px;
    }


    /* 駅個別 */.station-map-box{
        height: 250px;
    }


    /* 路線一覧 */
    .railway-title{
        padding-top: 0;
        margin: 0 0 20px;
    }


    /* イベント一覧 */
    .event-list{
        margin: 0 0 40px;
    }

    #eventSearchBox .route-link--inner{
       width: 400px;
    } 


    /* トピックス一覧 */
    .topics-list a{
        padding: 20px 30px;
        align-items: center;
    }
    .topics-list-item{
        display: block;
    }
    .topics-list-date{
        margin: 0 0 5px;
    }
    .topics-list-title{
        font-size: 1.125rem;
        width: 100;
    }


    /* イベントエントリー */
    .event-entry-top{
        flex-direction: column-reverse;
        padding: 0;
    }
    .event-entry-right{
        text-align: start;
        margin: 0 0 15px;
    }
    .event-entry-left{
        width: 100%;
    }
    .event-title{
        padding: 0 0 15px;
    }
    .entry-box{
        padding: 0;
    }
    .entry-under-margin{
        margin: 0 0 40px;
    }
    .entry-box img{
        object-fit: contain;
        height: auto;
    }
    .entry-list li{
        padding: 20px 30px;
        display: block;
    }
    .entry-list-left{
        width: 100%;
        margin: 0 0 10px;
    }
    .entry-list-right{
        width: 100%;
    }

    .table-1{
        overflow-x: auto;
        display: block;
    }
    .table-1 th,
    .table-1 td {
        white-space: nowrap;
    }


    /* プロジェクト概要 */
    .project-centerimg{
        width: 400px;
        margin: 0 auto 20px;
    }
    .project-box{
        margin: 15px 0 40px;
    }
    .project-br{
        display: block;
    }
    .projct-area p{
        align-items: end;
        font-size: 0.9375rem;
    }
    .projct-area .external-link-1::after, .projct-area .external-link-2::after{
        margin: 0;
    }
    .efforts-list{
        display: block;
    }
    .efforts-list li{
        width: 100%;
    }
}


@media screen and (max-width: 480px){
    .l-wrapper--inner{
        margin: 0 6%;
    }
    .header-speace{
        padding: 88px 0 0;
        margin: 0 0 40px;
    }

    /* 経路検索モーダル */
    #routeModal .route-link--inner{
        width: 300px;
        padding: 20px 30px 10px;
    }
    #routeModal .close::after{
        bottom: -417px;
    }
    .route-link--inner h4{
        font-size: 1.125rem;
    }

    #timetableAkayu .route-link--inner,#timetableImaizumi .route-link--inner{
        width: 300px;
        padding: 20px 30px 10px;
    }
    #timetableAkayu .close::after,#timetableImaizumi .close::after{
        bottom: -260px;
    }

    
    /* 見出し */
    .midashi-21{
        font-size: 1.125rem;
    }
    .midashi span{
        font-size: 1.3rem;
    }

    /* 路線リンクボタン */
    .railway-btn li{
        width: 49%;
        margin: 0 2% 10px 0;
    }
    .railway-btn li:nth-child(3n){
        margin: 0 2% 10px 0;
    }
    .railway-btn li:nth-child(2n){
        margin: 0 0 10px;
    }
    .railway-btn-top{
        padding: 0 0 20px;
    }

    /* 白地ボタン */
    .white-btn{
        display: block;
    }
    .white-btn a{
        width: 100%;
        justify-content: center;
    }
    .white-btn-m50 a{
        margin: 0 0 40px;
    }

    /* ヘッダー */
    .header-left-1{
        width: 40px;
    }
    .header-left-2{
        width: 215px;
    }

    /* フッター */
    .footer-flex{
        display: block;
        width: 85.7%;
        margin: 0 auto 15px;
    }
    .footer-left{
        width: 100%;
        margin: 0 0 15px;
    }
    .footer-right{
        width: 100%;
        line-height: 1.7;
    }
    .footer-link{
        width: 50%;
    }
    .footer-link li a{
        font-size: 0.75rem;
    }
    
    /* トップページ */
    .top-box{
        padding: 79px 0 0;
    }
    .board-box{
        margin: 0 0 20px;
    }
    .railway-info{
        padding: 20px 30px;
        margin: 0 0 20px;
    }
    .railway-info h3{
        font-size: 1rem;
    }
    .railway-info-box li a p{
        font-size: 0.875rem;
    }
    .railway-info-box li a::after{
        min-width: 8px;
        height: 13px;
    }
    .top-map{
        width: 85.7%;
        margin: 0 auto 20px;
    }

    .slick-prev{
        left: 2%;
    }
    .slick-next{
        right: 2%;
    }

    .top-event-title::before{
        left: 49%;
        top: -33px;
        width: 95px;
        height: 30px;
    }

    .event-slide li{
        margin: 0 13px;
    }
    .event-slide .slick-prev{
        left: 10%;
    }
    .event-slide .slick-next{
        right: 10%;
    }

    .main-station{
        margin: 15px 0 30px;
    }
    .main-station li{
        width: 32%;
        margin: 0 2% 10px 0;
    }
    .main-station li:nth-child(5n){
        margin: 0 2% 10px 0;
    }
    .main-station li:nth-child(3n){
        margin: 0 0 10px;
    }
    .main-station li a{
        padding: 14px 3px;
    }
    .main-station-furigana{
        font-size: 0.5rem;
    }
    .main-station-name{
        font-size: 0.75rem;
    }
    .top-info-box{
        margin: 0 0 50px;
    }

    .top-instagram-bg h3{
        padding: 30px 0 20px;
        width: 85.7%;
    }
    .instagram-grid{
        grid-template-columns: 1fr 1fr;
        padding: 0 0 30px;
    }

    .top-train-photo{
        margin: 15px 0;
    }
    .top-train-photo li{
        margin: 0 15px 0 0;
    }


    /* 路線個別 */
    .rosen-header-speace{
        margin: 0 0 40px;
        padding: 69px 0 0;
    }

    .l-wrapper--inner .shin-attention{
        display: none;
    }
    #scrollMenu{
        position: fixed;
        z-index: 8;
        top: 0;
        right: -80vw;
        width: 100%;
        padding: 0 0 0 20vw;
        transition: 400ms 0s ease;
    }
    #scrollMenu.is-open{
        right: 0;
        transition: 400ms 0s ease;
        background-color: rgba(0, 0, 0, 0.5);
        z-index: 999;
    }
    .scroll-box{
        position: relative;
        width: 100%;
    }
    
    #scrollClick{
        position: absolute;
        top: 27%;
    }
    .scroll-tab{
        width: 30px;
        height: 125px;
        left: calc(20vw - 30px);
        border-radius: 5px 0 0 5px;
        writing-mode: vertical-lr;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .scroll-tab p{
        margin: 0;
        color: #fff;
        font-weight: 600;
    }
    #scrollClick.is-push{
        transition: 400ms 0s ease;
    }
    
    .rosen-box{
        display: block;
        margin: 0;
        width: 100%;
        height: 100vh;
        padding: 15px 0;
        border-left: 2px solid;
        overflow-y: auto;
    }
    .rosen-item{
        writing-mode: horizontal-tb;
        padding: 0 10px 0 50px;
    }
    .rosen-item a{
        padding: 20px 0;
    }
    .rosen-item::before{
        width: 10px;
        height: 100%;
        left: 15px;
    }
    .rosen-item:first-child{
        display: block;
        padding: 0 10px 0 9px;
    }
    .rosen-item:first-child::before{
        display: none;
    }
    .rosen-item .shin-attention{
        margin: 0 0 15px;
    }
    .rosen-item:nth-child(2)::before{
        border-radius: 5px 5px 0 0;
    }
    .rosen-item:last-child::before{
        border-radius: 0 0 5px 5px;
    }
    .rosen-station::after,.rosen-shinkansen::after{
        top: 50%;
        transform: translateY(-50%);
    }
    .rosen-station::after{
        left: 11px;
    }
    .rosen-shinkansen::after{
        left: 7px;
    }
    .norikae{
        margin: 5px 0 0;
    }

    .l-wrapper-railway{
        margin-right: 12.5%;
    }
    .l-wrapper-railway .event-list{
        margin-top: 15px;
    }

    .railway-list-link{
        margin: 0 0 30px;
    }


    /* 駅一覧 */
    .station-list-box li{
        width: 48%;
        margin: 0 2% 15px 0;
    }
    .station-list-box li:nth-child(3n){
        margin: 0 2% 15px 0;
    }
    .station-list-box li:nth-child(2n){
        margin: 0 0 15px;
    }
    .station-list-name{
        font-size: 1rem;
    }
    .station-list-box a::after{
        min-width: 6px;
        height: 10px;
    }
    .station-list-name{
        font-size: 0.875rem;
        margin: 0 5px 0 0;
    }


    /* 路線一覧 */
    .railway-title{
        padding-top: 0;
        margin: 0 0 15px;
    }


    /* 駅個別 */
    .station-box, .station-explain-box{
        margin: 0 0 30px;
    }

    .station-map{
        margin: 0 0 75px;
    }
    .station-map-box{
        height: 300px;
    }
    .station-address{
        width: 95%;
    }

    .station-event{
        display: block;
    }
    .station-event li{
        width: 100%;
        margin: 0 0 20px;
    }
    .station-event li:nth-child(3n){
        margin: 0 0 20px;
    }
    .station-event .eventlist-title{
        font-size: 1.125rem;
    }

    .railway-img-box{
        justify-content: center;
        margin: 15px 0 40px;
    }
    .railway-img-box li{
        width: 85%;
        margin: 0 0 30px;
    }
    .railway-img-box li:nth-child(3n){
        margin: 0;
    }
    .railway-img{
        margin: 0 0 12px;
    }
    .railway-img-box .white-btn a{
        width: 70%;
        margin: 0 auto;
    }
    .railway-img-box .external-link-button{
        height: 70px;
    }


    /* イベント一覧 */
    .event-list{
        margin: 0 0 30px;
        display: flex;
    }
    .event-list li{
        width: 48%;
        margin: 0 4% 15px 0;
    }
    .event-list li:nth-child(3n){
        margin: 0 4% 15px 0;
    }
    .event-list li:nth-child(2n){
        margin: 0 0 15px;
    }
    .event-list .eventlist-title{
        font-size: 1rem;
    }
    .event-list .eventlist-info{
        display: block;
    }
    .event-list .eventlist-station{
        margin: 0 0 5px;
    }

    #eventSearchBox .route-link--inner{
       width: 250px;
    } 
    .event-box{
        padding: 15px 20px;
    }



    /* イベントエントリー */
    .entry-flexbox{
        display: block;
    }
    .entry-flexbox.image2-text{
        display: flex;
        flex-direction: column-reverse;
    }
    .entry-flex-2{
        width: 100%;
    }
    .entry-flex-2 .img-under{
        margin: 0 0 15PX;
    }


    /* プロジェクト概要 */
    .project-centerimg{
        width: 100%;
    }
    .project-summarylist{
        display: block;
    }
    .project-summarylist li{
        width: 100%;
        margin: 0 0 20px;
    }
    .blue-title{
        font-size: 1rem;
    }
    .projct-area{
        display: block;
        margin: 0 0 40px;
    }
    .projct-area div{
        margin: 0 0 20px;
        width: 100%;
    }
    .project-br{
        display: none;
    }
    .project-efforts{
        font-size: 0.9375rem;
    }
    .project-img{
        display: block;
    }
    .project-img li{
        width: 80%;
        margin: 0 auto 15px;
    }
}

.banner-list{
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    margin: 30px 0 0;
    padding: 0;
}
.banner-item{
    width: 24%;
    margin: 0 1.3% 12px 0;
    overflow: hidden;
}
.banner-item:nth-child(4n){
    margin: 0 0 12px;
}
.banner-item a{
    display: block;
    aspect-ratio: 504/ 121;
}
.banner-item a:hover{
    opacity: 0.5;
}
.banner-item a img{
    vertical-align: top;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media screen and (max-width: 768px){
    .banner-item{
        width: 32%;
        margin: 0 2% 10px 0;
    }
    .banner-item:nth-child(4n){
        margin: 0 2% 10px 0;
    }
    .banner-item:nth-child(3n){
        margin: 0 0 10px;
    }
}

@media screen and (max-width: 480px){
    .banner-item{
        width: 48.5%;
        margin: 0 3% 10px 0;
    }
    .banner-item:nth-child(4n){
        margin: 0 3% 10px 0;
    }
    .banner-item:nth-child(3n){
        margin: 0 3% 10px 0;
    }
    .banner-item:nth-child(2n){
        margin: 0 0 10px;
    }
}