@charset "UTF-8";

body {
    background-color: #ffffff;
    padding-bottom: 15px;
}

#error-message-area {
    padding-bottom: 10px;
    padding-left: 5%;
    padding-right: 5%;
    padding-top: 10px;
    color: #FF0707;
}

.contents > div {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
}

div.transition-checkin-button-container {
    background-color: #C7DFF2;
    display: flex;
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 3px;
    padding-bottom: 3px;
}

.transition-checkin-message-area {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
}

.transition-checkin-button-area {
    flex: 0 1 auto;
    display: flex;
    justify-content: flex-end;
}

.button-transition-checkin {
    background-color: transparent;
    background-image: url('/img/train/memo.png');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    border: none;
    display: inline-block;
    height: 25px;
    width: 50px;
}

.train-sub-title {
    background-color: #C7DFF2;
    font-weight: bold;
    padding-left: 5%;
    width: 100%;
    line-height: 50px;
    font-size: 15px;
}

.input-item-container {
    border-bottom: 1px solid #ccc;
    display: flex;
    font-size: 12px;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 5px;
    padding-top: 5px;
    width: 90%;
}

.input-item-title {
    align-items: center;
    display: flex;
    flex: 1 0 7em;
}

.input-item-value {
    display: flex;
    flex: 1 1 calc(100% - 7em);
    justify-content: space-between;
}

.input-item-value > * {
    display: flex;
    flex: 1;
    margin-bottom: 0;
    margin-right: 5px;
}

.input-item-value > *:last-child {
    margin-right: 0;
}

.input-item-value > label > * {
    align-items: center;
    display: flex;
    flex: 0 1 auto;
    margin-top: 0;
}

.input-item-value > label > input[type='radio'] {
    margin-right: 5px;
}

div.input-station-container {
    margin-left: auto;
    margin-right: auto;
    padding-top: 10px;
    padding-bottom: 10px;
    width: 90%;
}

.input-station-area {
    display: flex;
    font-size: 17px;
    padding-bottom: 5px;
    padding-top: 5px;
}

.input-station-area > .input-item-title {
    flex: 1 0 5em;
}

.input-station-area > .input-item-value {
    flex: 1 1 calc(100% - 5em);
    position: relative;
}

.input-station-area > .input-item-value > input {
    position: relative;
    height: 50px;
    width: 100%;
    margin-right: 0;
}

.input-station-area > .input-item-value > input:read-only {
    background-color: #ffc;
}

.input-station-area > .input-item-value > input:read-only:focus {
    -webkit-box-shadow: 0px 1px 3px rgba(0,0,0,0.5) inset;
    box-shadow: 0px 1px 3px rgba(0,0,0,0.5) inset;
}

.input-station-area > .input-item-value > input.input-target {
    box-shadow: 0 0 5px 2px #ef7a00,0px 1px 3px rgba(0,0,0,0.5) inset;
    -webkit-appearance: none;
}

.suggest-list {
    box-shadow: 1px 1px 1px 1px aliceblue, -1px 1px 1px 1px aliceblue;
    cursor: pointer;
    display: block;
    position: absolute;
    left: 0;
    top:50px;
    background-color: #ffffff;
    border:1px solid #ccc;
    z-index: 1;
    width: 100%;
}

.suggest-item.active {
    background-color: rgb(30,144,255);
    color: #ffffff;
}

.route-search-history-list-area {
    margin-left: auto;
    margin-right: auto;
    width: 90%;
}

ul.route-search-history-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}

ul.route-search-history-list > li {
    display: flex;
    margin: 0;
    padding: 0;
    padding-bottom: 0.1em;
    padding-top: 0.1em;
    border-bottom: 1px solid #ccc;
    flex: 0 0 50%;
}

.route-search-history-title-area {
    position: relative;
}

ul.route-search-history-list > li:nth-last-child(-n+1):nth-child(2n),
ul.route-search-history-list > li:nth-last-child(-n+2):nth-child(2n+1){
    border-bottom: none;
}

.route-search-history-station-area > .station-name {
    flex: 2 1 auto;
    font-size: 17px;
    display: flex;
    align-items: center;
    line-height: 2em;
}

.history-input-button-area {
    display: flex;
    flex: 1 1 auto;
    justify-content: flex-end;
    padding: 5px;
}

.history-input-button-area button + button {
    margin-left: 5px;
}

.button-input-history-station {
    display: inline-block;
    font-size: 12px;
}

.button-routemap {
    background-color: #ffffff;
    border-color: #36c;
}

.button-routemap img {
    width: 100%;
}

.routemap-container {
    position: fixed;
    width: 100%;
    height: calc(100vh - 140px - 51px - 25px);
    bottom: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 10;
    transform: translateY(100vh);
    transition: transform 0.5s;
    transition-timing-function: cubic-bezier(0.6, -0.28, 0.74, 0.05);
}

.show-routemap .routemap-container {
    transform: translateY(0);
    transition: transform 0.5s;
    transition-timing-function: cubic-bezier(0.18, 0.89, 0.32, 1.28);
}

.routemap-background {
    display: none;
    height: 100vh;
    left: 0;
    position: fixed;
    top: 0;
    width: 100vw;
    z-index: 1;
}

.show-routemap .routemap-background {
    display: block;
}

.routemap-title {
}

.routemap-control-area {
    position: absolute;
    top: 5px;
    right: 3%;
    width: 40px;
}

.button-close-routemap {
    padding: 0;
    width: 40px;
    height: 40px;
    line-height: 0;
    font-size: 40px;
}

.routemap-image-area {
    transform-origin:left top;
    transform:scale(0.5);
    -webkit-overflow-scrolling: touch;
    width: 200%;
    height: calc((100vh - 140px - 51px - 30px) * 2);
    overflow: auto;
    border: none;
}

.frame-routemap {
    border: none;
    width: 100%;
    height: 100%;
}

.button-set-current-time {
    flex: 0 0 5em;
    background-color: #ffffff;
    border: 1px solid #36c;
    color: #36c;
    display: block;
    font-size: 12px;
}

.route-search-condition-title-area {
    position: relative;
}

.route-search-condition-title-area::after {
    background-image: url('/img/ui/chevron_gray.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    height: 1.2em;
    position: absolute;
    right: 3%;
    top: calc(50% - 0.6em);
    transition: transform 0.5s;
    width: 2em;
}

.route-search-condition-title-area.active::after {
    transform: rotate(180deg);
    transition: transform 0.5s;
}

div.route-search-button-container {
    margin-bottom: 10px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 10px;
    width: 90%;
}

.button-search-route {
    height: 50px;
    width: 100%;
}

div.route-search-notice-area {
    margin-bottom: 10px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 10px;
    width: 90%;
}

.route-search-history-station-area {
    display: flex;
    width: 100%;
}

div.route-search-condition-area,
div.route-search-result-list-area {
    margin-left: auto;
    margin-right: auto;
    width: 90%;
}

.route-search-condition-value {
    color: #979797;
}

.route-search-condition-date-area {
    font-size: 11px;
    padding-bottom: 0.25em;
    padding-top: 0.25em;
}

.route-search-condition-station-area {
    font-size: 17px;
    font-weight: bold;
    padding-bottom: 5px;
    padding-top: 5px;
}

.route-search-condition-option-area {
    display: flex;
    font-size: 12px;
    padding-bottom: 5px;
    padding-top: 5px;
}

.route-search-condition-option-area > div {
    flex: 1 1 auto;
}

.route-search-condition-option-area > div:not(:first-child) {
    margin-left: 5px;
}

.route-search-condition-transfer-speed-area,
.route-search-condition-extra-fare-permission-area {
    display: flex;
}

.route-search-condition-transfer-speed-area > div,
.route-search-condition-extra-fare-permission-area > div {
    flex: 1 1 auto;
}

ul.route-search-result-list {
    counter-reset: route-search-result;
    list-style: none;
    margin: 0;
    padding: 0;
}

.route-search-result-list > li {
    margin: 0;
    overflow: hidden;
    padding: 0;
}

.route-search-result-list > li:not(:first-child) {
    margin-top: 5px;
}

.route-search-result-list-item-summary {
    border: 1px solid #C7DFF2;
    flex: 1 1 auto;
    padding: 5px;
    padding-left: calc(2em + 1px + 5px);
    padding-right: 2em;
    position: relative;
}

.route-search-result-list-item-summary.active {
    background-color: #ffc;
}

.route-search-result-list-item-summary::before {
    align-items: center;
    border-right: 1px solid #C7DFF2;
    color: #36c;
    content: counter(route-search-result);
    counter-increment: route-search-result;
    display: flex;
    font-weight: bold;
    height: 100%;
    justify-content: center;
    left: 0;
    position: absolute;
    top: 0;
    width: 2em;
}

.route-search-result-list-item-summary::after {
    background-image: url('/img/ui/chevron_gray.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    height: 1.2em;
    position: absolute;
    right: 0;
    top: calc(50% - 0.6em);
    transition: transform 0.5s;
    width: 2em;
}

.route-search-result-list-item-summary.active::after {
    transform: rotate(180deg);
    transition: transform 0.5s;
}

.route-search-result-list-item-summary > div:not(:first-child) {
    padding-top: 0.5em;
}

.route-search-result-list-item-time-area {
    display: flex;
}

.route-search-result-list-item-departure-and-arrival-time {
    flex: 1 1 13em;
    font-size: 17px;
    font-weight: bold;
}

.route-duration {
    font-size: 12px;
    font-weight: normal;
}

.route-search-result-list-item-duration {
    align-self: center;
    flex: 1 1 calc(100% - 13em);
    font-size: 12px;
}

.route-search-result-list-item-route {
    color: #979797;
}

.route-search-result-list-item-transfer-and-fare-area {
    display: flex;
}

.route-search-result-list-item-transfer-and-fare-area .transfer-times, .route-search-result-list-item-transfer-and-fare-area .fare {
    font-size: 1.3em;
}

.route-search-result-list-item-transfer {
    flex: 1 1 8em;
}

.route-search-result-list-item-fare {
    flex: 1 1 calc(100% - 8em);
}

.fare,
.hour,
.minute,
.transfer-times {
    padding-left: 0.25em;
    padding-right: 0.25em;
}

.route-search-result-item-detail {
    border: 1px solid #C7DFF2;
}

.route-search-result-item-station-area {
    background-color: #C7DFF2;
    display: flex;
    min-height: 3.5em;
}

.route-search-result-item-station-area.direct {
    background: linear-gradient(to top right, rgba(255,255,255,0) 50%, #C7DFF2 50%) no-repeat bottom left calc(2em + 5px)/1.8em 50%,
        linear-gradient(to bottom right, rgba(255,255,255,0) 50%, #C7DFF3 50%) no-repeat top left calc(2em + 5px)/1.8em 50%,
        linear-gradient(to right, #C7DFF3 3.8em,#C7DFF3) no-repeat top left calc(3.8em + 4px)/100% 100%,
        linear-gradient(to bottom, #000, #000 1px) repeat-y top left 2em/5px;
}

.route-search-result-item-detail > .route-search-result-item-station-area:first-child .route-search-result-item-time-area .time,
.route-search-result-item-detail > .route-search-result-item-station-area:nth-last-child(-n + 2) .route-search-result-item-time-area .time {
    font-size: 1.4em;
    font-weight: bold;
}

.route-search-result-item-time-area {
    align-items: center;
    display: flex;
    flex: 0 0 6em;
    flex-direction: column;
    font-size: 12px;
    justify-content: center;
    order: -1;
}

.route-search-result-item-station-area.direct .route-search-result-item-time-area {
    visibility: hidden;
}

.route-search-result-item-arrival-time {
}

.route-search-result-item-departure-time {
}

.route-search-result-item-station {
    flex: 1 1 auto;
    align-self: center;
    font-size: 17px;
    font-weight: bold;
    padding-left: 0.25em;
    padding-right: 0.25em;
}

.route-search-result-item-station-button-area {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    font-size: 11px;
    justify-content: flex-end;
    padding: 5px;
}

.button-station-yard {
    font-size: 10px;
}

.route-search-result-item-path-area {
    background-image: linear-gradient(to bottom, #000, #000 1px);
    background-size: 5px 3px;
    background-position: left 2em top;
    background-repeat: repeat-y;
    padding-bottom: 1em;
    padding-left: 3em;
    padding-right: 0.5em;
    padding-top: 1em;
}

.route-search-result-item-path-area.walk {
    background-image: linear-gradient(to bottom, #000, #000 5px, transparent 5px, transparent 6px);
    background-size: 5px 10px;
}

.route-search-result-item-path-line-area {
    display: flex;
}

.route-search-result-item-path-line {
    flex: 1 2 auto;
}

.route-search-result-item-path-line .section-duration {
    display: inline-block;
}

.route-search-result-item-path-fare {
    flex: 1 1 60%;
    text-align: right;
}

.route-search-result-item-path-train-detail-area {
}

.route-search-result-item-path-train-type {
    display: inline-block;
    padding-right: 0.5em;
}

.route-search-result-item-path-train-destination {
    display: inline-block;
}

.button-checkin {
    width: 100%;
}

.button-checkin > .get-on-image {
    height: 1.75em;
    margin-left: 5px;
    margin-right: 5px;
}

.checkin-notice-list {
    list-style-type: disc;
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 5px;
    background-color: rgb(235,235,235);
}

.train-kind-limited-express {
    background-color: rgb(231,40,66);
    color: #ffffff;
}

.train-kind-s-train, .train-kind-haijima-liner {
    background-color: rgb(144,195,31);
    color: #ffffff;
}

.train-kind-rapid-express, .train-kind-f-liner {
    background-color: rgb(194,107,168);
    color: #ffffff;
}

.train-kind-express {
    background-color: rgb(239,122,0);
    color: #ffffff;
}

.train-kind-commuter-express {
    background-color: rgb(250,190,0);
    color: #ffffff;
}

.train-kind-rapid {
    background-color: rgb(0,167,227);
    color: #ffffff;
}

.train-kind-commuter-semi-express {
    background-color: rgb(0,113,190);
    color: #ffffff;
}

.train-kind-semi-express {
    background-color: rgb(0,167,133);
    color: #ffffff;
}

.train-kind-local {
    background-color: rgb(175,175,175);
    color: #ffffff;
}

.train-kind-other {
    color: black;
}

.train-kind-info {
    display: inline-block;
}

.checkin-train-path-area img {
    height: 100%;
}

.checkin-header-area {
    height: 3em;
    align-items: center;
    padding: 0.2em 0em;
}

div.checkin-train-list-title {
    background-color: #C7DFF2;
    font-weight: bold;
    font-size: 1.2em;
    align-items: center;
    padding-left: 5%;
    padding-bottom: 0.25em;
    padding-top: 0.25em;
}

div.checkin-train-list-area {
    margin-left: auto;
    margin-right: auto;
    margin-top: 1em;
    width: 90%;
}

ul.checkin-train-list {
    counter-reset: route-search-result;
    list-style: none;
    margin: 0;
    padding: 0;
}

.checkin-train-list > li {
    border: 1px solid #C7DFF2;
    border-radius: 0.5em;
    margin: 0;
    overflow: hidden;
    padding: 0;
}

.checkin-train-area {
}

.checkin-train-list > li:not(:first-child) {
    margin-top: 5px;
}

.checkin-control-area {
    padding: 10px;
}

.checkin-description {
    margin: 10px;
    font-size: 1em;
}

.button-checkout {
    background-color: #ffffff;
    border: 1px solid #36c;
    color: #36c;
    height: 3em;
    width: 100%;
    margin-bottom: 10px;
    position: relative;
}

.button-share {
    background-color: #ffffff;
    border: 1px solid #36c;
    color: #36c;
    height: 5em;
    width: 100%;
    margin-bottom: 10px;
    position: relative;
}

.button-icon {
    height: 3em;
    width: 15%;
    position: absolute;
    left: 0%;
}

.button-text {
    position: absolute;
    left: 20%;
}

.share-button-area {
    display: flex;
    position: absolute;
    left: 40%;
}

.share-icon-area {
    height: 4em;
    width: 32%;
}

.share-icon {
    height: 3em;
    width: auto;
}

.share-text {
    font-size: 0.6em;
    text-align: center;
    margin-top: 0.3em;
    display: inline-block;
}

.button-return {
    border: 1px solid #36c;
    height: 3em;
    width: 100%;
    margin-bottom: 10px;
}

div.button-container {
    margin-bottom: 10px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 10px;
    width: 90%;
}

.button-transition {
    height: 3em;
    width: 100%;
}

.button-dialog {
    display: inline-block;
    font-size: 11px;
}

.train-detail-dialog-header {
    background-color: #C7DFF2;
    border-bottom: none;
    height: 3em;
    position: relative;
}

.modal-window-train-detail-body {
    padding: 0%;
    max-height: 70vh;
}

.train-detail-dialog-footer {
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    border-top: 1px solid #E5E5E5;
    box-sizing: border-box;
    color: #000000;
    padding: 10px;
    text-align: right;
    width: 100%;
}

.train-detail-dialog-title {
    font-size: 17px;
    font-weight: bold;
    text-align: center;
    color: #003399;
    padding: auto;
}

.train-detail-top-area {
    background-color: #C7DFF2;
    min-height: 9em;
}

.train-detail-train-info-area {
    display: flex;
    padding-top: 1%;
    margin-left: 5%;
}

.train-detail-train-type {
    font-size: 1.25em;
    border: none;
    border-radius: 0.25em;
    padding: 0.2em;
}

.train-detail-number-of-cars {
    margin-left: 0.5em;
    font-size: 1.25em;
    border: none;
    border-radius: 0.25em;
    padding: 0.2em;
    color: #000000;
    background-color: #ffffff;
}

.train-detail-start-station {
    font-size: 1.25em;
    font-weight: bold;
    padding: 0.15em;
    color: #003399;
}

.train-detail-car-icon-area {
    text-align: center;
    padding-bottom: 1em;
}

.train-detail-car-icon {
    height: 6em;
    width: 5em;
}

.train-detail-car-nickname-area {
}

.train-detail-car-nickname {
    text-align: center;
    font-size: 1.7em;
    font-weight: bold;
    color: #003399;
}

.train-detail-train-name-area {
}

.train-detail-train-name {
    text-align: center;
    font-size: 1.3em;
    font-weight: bold;
    color: #003399;
}

.train-detail-main-area {
}

.train-detail-end-station-area {
    text-align: center;
    font-size: 1em;
    font-weight: bold;
    margin: 1em 0em;
}

.train-detail-emphasis {
    font-size: 1.7em;
}

.train-detail-delay {
    color: #ff0033;
}

.train-detail-location-area {
    border: 1px solid #0099ff;
    border-radius: 0.5em;
    margin: 10px 20px;
    padding: 0.3em;
}

.train-detail-location {
    text-align: center;
    font-size: 1.3em;
    color: #0099ff;
}

.train-detail-timetable-area {
}

.train-detail-timetable-title-area {
    background-color: #C7DFF2;
    padding: 0.8em 0em;
}

.train-detail-timetable-title {
    display: flex;
    font-size: 1em;
}

.train-detail-timetable-title-stop {
    text-align: center;
    flex: 0 0 40%;
}

.train-detail-timetable-title-scheduled {
    text-align: center;
    flex: 0 0 25%;
}

.train-detail-timetable-title-estimated {
    text-align: center;
    flex: 0 0 25%;
}

.train-detail-timetable-title-arrow-area {
    text-align: center;
    flex: 0 0 10%;
}

.train-detail-timetable-title-arrow {
    transform: rotate(-90deg);
}

.train-detail-timetable-title-arrow.closed {
    transform: rotate(90deg);
}

.train-detail-timetable-main-area {
}

.train-detail-timetable-locator-icon-area {
    position: absolute;
    top: 0;
    left: 0.2em;
    height: 1.8em;
    width: 0.75em;
    background-image: none;
    background-size: 100%;
    background-position: center center;
    background-repeat: no-repeat;
    z-index: 2;
}

.train-detail-timetable-locator-icon-area.stopping {
    background-image: url('/img/train/locator.png');
}

.train-detail-timetable-locator-icon-area.departured {
    background-image: url('/img/train/locator.png');
    top: 0.9em;
}

.train-detail-timetable-station-icon-area {
    position: absolute;
    top: 0;
    left: 1em;
    height: 1.8em;
    width: 0.75em;
    background-image: none;
    background-size: 80%;
    background-position: center center;
    background-repeat: no-repeat;
    z-index: 1;
}

.train-detail-timetable-station-icon-area.stop-station {
    background-image: url(/img/ui/stop_station.png);
}

.train-detail-timetable-main {
    position: relative;
    padding-left: 2.5em;
    display: flex;
    font-size: 1.5em;
    align-items: center;
    padding-top: 0.1em;
    padding-bottom: 0.1em;
}

.train-detail-timetable-stop-icon {
    margin-left: 10%;
    height: 1.5em;
    width: auto;
}

.train-detail-timetable-station-area {
    display: flex;
    width: calc(100% - 1.5em);
    background-color: #fef2cc;
    height: 1.6em;
}

.train-detail-timetable-station {
    font-size: 0.8em;
    flex: 0 0 calc(40% - 10px);
    display: flex;
    align-items: center;
    padding-left: 5px;
    padding-right: 5px;
}

.train-detail-timetable-scheduled {
    font-size: 1em;
    display: flex;
    align-items: center;
    flex: 0 0 calc(30% + 5px);
    justify-content: center;
}

.train-detail-timetable-estimated {
    font-size: 1em;
    display: flex;
    align-items: center;
    flex: 0 0 calc(30% + 5px);
    justify-content: center;
}

.train-detail-note-area {
    margin: 15px;
}

.train-detail-note {
    font-size: 0.9em;
    color: #ff0033;
    white-space: pre-wrap;
}

.train-detail-dialog-bottom {
    font-size: 1em;
    text-align: center;
}

.button-dialog-ok {
    background-color: #000000;
    border-color: #000000;
    color: #ffffff;
}

.button-dialog-ng {
    background-color: #dfdfdf;
    border-color: #dfdfdf;
    color: #ffffff;
}

.button-dialog-close {
    position: absolute;
    top: 20%;
    right: 5%;
    height: 1.5em;
    width: auto;
}

.modal-window-norutap .modal-window-header {
    background-color: #ffffff;
    background-image: url('/img/train/logo_norutap.jpg');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: auto calc(100% - 5px);
    height: 3em;
}
.modal-window:focus {
    outline: none;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

.dialog-error > .modal-window-footer {
    border-top: none;
    margin-top: 0;
}

div.error-message {
    color: red;
    font-weight: bold;
    margin-bottom: 10px;
    margin-top: 10px;
    margin-left: auto;
    margin-right: auto;
    width: 90%;
}
