@font-face {
  font-family: myFirstFont;
  src: url(/fonts/Averta-Regular.ttf);
}
@font-face {
  font-family: myFirstFont2;
  src: url(/fonts/Averta-Semibold.ttf);
}
@font-face {
  font-family: AvertaBold;
  src: url(/fonts/Averta-Bold.ttf);
}
html, body {
  margin: 0;
  padding: 0;
  height: 100vh;
}

.circle {
  border-radius: 50%;
  border: 1px solid black;
}

.outer {
  background-color: black;
  width: 25px;
  height: 25px;
  position: relative;
}

.inner {
  background-color: white;
  top: 3%;
  left: 3%;
  width: 94%;
  height: 94%;
  position: relative;
}

.toc-image {
  display: flex;
  background: url("/images/awcTocLogo.png") no-repeat;
  background-size: 100%;
  width: 100%;
  height: 100%;
}

.toc-logo {
  display: block;
  background: url("/images/Logo.png") no-repeat center;
  background-size: auto 100%;
  height: 8vw;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

:root {
  --newscolour: $newsColour;
  --defaultsecondarycolour: $defaultSecondaryColour;
  --departurescolour: $departuresColour;
  --primarycolour: $primaryColour;
  --secondarycolour: #FF1E00;
  --routecolour: $routeColour;
  --backgroundcolour: #0D1521;
  --blinkercolour: $blinkerColour;
  --top-panel-height: $topPanelHeight;
  --debug-panel-height: $debugPanelHeight;
  --header-font-family: "AvertaBold";
  --body-font-family: "myFirstFont";
}

html,
body {
  margin: 0px;
  height: 100%;
  overflow-y: hidden;
  font-family: var(--body-font-family);
  background-color: var(--backgroundcolour);
}

.toc-bg-colour {
  background-color: #FEF2E5;
}

.toc-bg-secondary {
  background-color: #00a6e6;
}

.toc-text-against-bg {
  color: black;
}

.text-white {
  color: white;
}

.red {
  color: red;
}

#container {
  height: 100%;
  min-height: 100%;
}

.codebox {
  color: white;
}

.center-div {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
}

.splash-image {
  display: flex;
  background: url(/images/splash.jpg) no-repeat;
  background-size: 100%;
  width: 100%;
  height: 100%;
}

.timed-image {
  display: flex;
  background: url(/images/splash.jpg) no-repeat;
  background-size: 100%;
  width: 100%;
  height: 100%;
}

.doors-open {
  background: url(/images/toclogo.png) no-repeat;
  background-size: 100%;
}

.doors-dont-open {
  background: url(/images/toclogo.png) no-repeat;
  background-size: 100%;
}

.doors-open .cab {
  background: url(/images/toclogo.png) no-repeat;
  background-size: 100%;
}

.doors-dont-open .cab {
  background: url(/images/toclogo.png) no-repeat;
  background-size: 100%;
}

.w-80 {
  width: 80%;
}

.w-90 {
  width: 90%;
}

.w-1-3 {
  width: 33%;
}

.toc-image-alt {
  display: flex;
  width: 33%;
  height: 50%;
  vertical-align: text-bottom;
}

.flex-column {
  flex-direction: column;
}

.header {
  display: block;
  height: 18.5%;
  width: 100%;
  align-items: center;
}

.header-main {
  display: flex;
  height: 90%;
  align-items: center;
}

@keyframes blink {
  0% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.Approach {
  animation: blink 2s infinite;
  fill: var(--blinkercolour);
}

.Visited {
  stroke: var(--primarycolour);
}

.Next {
  stroke: var(--routecolour);
}

.Departed {
  fill: var(--blinkercolour);
}

.DepartedProg {
  fill: url(#progress-gradient);
}

.Previous {
  Fill: var(--primarycolour);
}

.Between {
  fill: white;
}

.header-accent {
  height: 10%;
}

.header h1 {
  margin-left: 5%;
  font-size: 7.8vmin;
}

.content-with-header {
  height: 81.5%;
}

.asdo-container {
  display: flex;
  flex-direction: row;
  white-space: nowrap;
  align-items: center;
  justify-content: center;
}

.time-date-display {
  color: white;
  text-align: center;
  width: 18vw;
  height: 7vw;
  top: 1vw;
  right: 1vw;
  position: absolute;
}

.time-date-display-with-seconds {
  color: white;
  text-align: center;
  width: 14.46vw;
  height: 6.51vw;
  top: 2vw;
  right: 1vw;
  position: absolute;
}

.time {
  font-size: 7vw;
  width: 100%;
}

.date {
  font-size: 1.5625vw;
  width: 100%;
}

.top-panel {
  width: 100%;
  height: var(--top-panel-height);
  max-height: var(--top-panel-height);
  font-size: 7.5vw;
  background: var(--primarycolour);
  color: white;
  vertical-align: middle;
}

.top-panel div:nth-of-type(1) span {
  padding-left: 5vw;
  width: 76vw;
  max-width: 76vw;
  white-space: nowrap;
  vertical-align: middle;
}

.debug-panel {
  width: 100%;
  height: var(--debug-panel-height);
  background: var(--secondarycolour);
}

.top-text {
  font-size: 5vw;
  padding-left: 100px;
  font-family: var(--header-font-family);
}

.pa-panel {
  height: var(--bottom-panel-height);
  max-height: var(--bottom-panel-height);
  width: 100%;
  position: absolute;
  background: var(--primarycolour);
  top: 0px;
  white-space: nowrap;
}

.bottom-panel > span {
  font-family: var(--body-font-family);
  color: white;
  text-align: left;
  align-items: center;
  padding-left: 100px;
  font-size: 3vw;
  height: 100%;
  display: inline-flex;
}

.bottom-image {
  position: fixed;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 0;
  width: 12.5vw;
  height: 9.8vw;
  background-image: url("../images/toclogo.png");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.header-text {
  font-size: 3.8vw;
  padding-left: 100px;
}

.page-destination {
  vertical-align: middle;
}

.page-destination p {
  color: white;
  font-size: 10vw;
  text-align: center;
  height: 5vw;
}

.page-destination h1 {
  font-size: 9.5vw;
  text-align: center;
  font-weight: bolder;
}

.page-destination-outer {
  display: block;
  position: absolute;
  height: 100vh;
  width: 100vw;
  background: var(--primarycolour);
  color: white;
}

.page-destination-middle {
  display: block;
  vertical-align: middle;
  color: white;
}

.destination-text {
  width: 80%;
  text-wrap: normal;
  overflow-wrap: break-word;
  margin-left: auto;
  margin-right: auto;
}

.on-time-text {
  color: green;
}

.cancelled-text {
  color: red;
}

.weather-layout {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: row;
  overflow: hidden;
}

.weather-table {
  width: 40vw;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 5vw;
  height: 50vw;
}

.weather-table tr {
  width: 40vw;
}

.weather-table tr td:nth-of-type(1) {
  padding-left: 2vw;
  width: 30vw;
}

.weather-table tr td:nth-of-type(2) {
  width: 60vw;
  text-align: center;
  text-align: left;
  padding-left: 15vw;
}

.weather-direction {
  height: 150px;
  width: 150px;
  position: absolute;
  z-index: 1;
}

.weather-direction-text {
  z-index: 2;
  position: relative;
  padding-left: 55px;
  padding-top: 50px;
  font-size: 45px;
  color: white;
}

.news-panel {
  width: 100%;
  height: var(--top-panel-height);
  max-height: var(--top-panel-height);
  font-size: 7.5vw;
  color: white;
  background: var(--newscolour);
}

.news-panel tr td:nth-of-type(1) {
  width: 33.33%;
  padding-left: 5vw;
}

.news-panel tr td:nth-of-type(2) {
  width: 33.33%;
}

.news-panel tr td:nth-of-type(3) {
  width: 33.33%;
}

.news-debug-panel {
  width: 100%;
  height: var(--debug-panel-height);
  background: var(--defaultsecondarycolour);
}

.news-table {
  width: 100%;
  height: 47vw;
  max-height: 47vw;
  border-collapse: collapse;
  float: left;
  table-layout: fixed;
  overflow: hidden;
  overflow-wrap: break-word;
}

.news-table th {
  width: 50%;
}

.news-table tr {
  display: block;
  text-align: left;
  height: 9.4vw;
  max-height: 9.4vw;
  overflow-y: hidden;
}

.news-table tr:nth-child(odd) {
  height: 100%;
  padding-left: 2vw;
  padding-right: 2vw;
  background: #E3E3E3;
  vertical-align: middle;
}

.news-table tr:nth-child(even) {
  height: 100%;
  padding-left: 2vw;
  padding-right: 2vw;
  background: #F3F3F3;
  vertical-align: middle;
}

.news-icon {
  float: left;
  max-height: 100%;
  max-width: 20%;
  margin-left: 20px;
  margin-right: 20px;
}

.news-text {
  font-size: 3.5vw;
  font-family: var(--header-font-family);
}

.news-image {
  display: block;
  background: url(/images/NewsProvider.png) no-repeat;
  background-position: center;
  background-size: auto 100%;
  height: 8vw;
  width: 100%;
}

.service-message {
  font-size: 5vw;
  text-align: center;
  width: 100vw;
}

.delay-repay-message {
  font-size: 5vw;
  text-align: center;
  vertical-align: central;
  height: 20vw;
}

.ketech-image {
  display: flex;
  background: url(/images/LNERTocLogo.jpg) no-repeat;
  background-size: 100%;
  width: 100%;
  height: 100%;
}

.tfl-panel {
  width: 100%;
  font-size: 3vw;
}

.tfl-panel tr td:nth-of-type(1) {
  width: 20%;
}

.tfl-panel tr td:nth-of-type(2) {
  width: 80%;
}

.tfl-rainbow-board {
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 3.5vw;
  margin-top: 0.5vw;
  height: 4vw;
  max-height: 4vw;
}

.tfl-rainbow-board tr {
  text-align: left;
}

.tfl-rainbow-board td {
  padding-left: 5vw;
  padding-right: 5vw;
}

.scroll-left {
  width: 100%;
  height: 100%;
  text-align: left;
  -moz-transform: translateX(100%);
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
  -moz-animation: scroll-left 25s linear infinite;
  -webkit-animation: scroll-left 25s linear infinite;
  animation: scroll-left 25s linear infinite;
}

@-moz-keyframes scroll-left {
  0% {
    -moz-transform: translateX(100%);
  }
  100% {
    -moz-transform: translateX(-200%);
  }
}
@-webkit-keyframes scroll-left {
  0% {
    -webkit-transform: translateX(100%);
  }
  100% {
    -webkit-transform: translateX(-200%);
  }
}
@keyframes scroll-left {
  0% {
    -moz-transform: translateX(100%);
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
  }
  100% {
    -moz-transform: translateX(-200%);
    -webkit-transform: translateX(-200%);
    transform: translateX(-200%);
  }
}
@keyframes fade {
  0% {
    opacity: 0;
  }
  40% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.scroll-down {
  width: 8vw;
  height: 13%;
  fill: url(#flash-gradient);
  text-align: left;
  -moz-transform: translateY(100%);
  -webkit-transform: translateY(100%);
  transform: translateY(100%);
  -moz-animation: scroll-down 1.5s linear infinite;
  -webkit-animation: scroll-down 1.5s linear infinite;
  animation: scroll-down 1.5s linear infinite, fade 1.5s infinite;
}

@-moz-keyframes scroll-down {
  0% {
    -moz-transform: translateY(100%);
  }
  100% {
    -moz-transform: translateY(200%);
  }
}
@-webkit-keyframes scroll-down {
  0% {
    -webkit-transform: translateY(100%);
  }
  100% {
    -webkit-transform: translateY(200%);
  }
}
@keyframes scroll-down {
  0% {
    -moz-transform: translateY(100%);
    -webkit-transform: translateY(100%);
    transform: translateY(100%);
  }
  100% {
    -moz-transform: translateY(200%);
    -webkit-transform: translateY(200%);
    transform: translateY(200%);
  }
}
.dest-top {
  height: 5%;
  width: 100%;
}

.dest-middle {
  color: #E2F5E9;
  font-family: var(--header-font-family);
  font-size: 6.5cm;
  line-height: 6.5cm;
}

.dest-bottom {
  display: flex;
  justify-content: center;
  position: absolute;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  bottom: 0;
  margin-bottom: 1cm;
}

#header {
  height: 18%;
  width: 94%;
  margin: auto;
  position: relative;
}

#hborder {
  content: "";
  background-color: var(--secondarycolour);
  height: 0.5%;
  width: 94%;
  border-radius: 5px;
  margin: auto auto 2.2%;
}

.htitle {
  position: absolute;
  bottom: 0;
  margin-bottom: 0.5%;
  color: #E2F5E9;
  font-family: var(--header-font-family);
  font-size: 8vh;
  z-index: 5;
}

.htime {
  position: absolute;
  right: 0;
  bottom: 0;
  margin-bottom: 0.5%;
  padding-left: 0;
  margin-left: 0;
  color: #E2F5E9;
  font-family: var(--header-font-family);
  font-size: 10vh;
}

.departure-row {
  padding-top: 0%;
  padding-bottom: 0%;
  height: 12.4%;
  width: 94%;
  position: relative;
  margin: 0% auto 1.5%;
}

.departure-point {
  display: inline-block;
  height: 100%;
  position: absolute;
  right: 0;
  width: 100%;
  border-radius: 5px;
  font-size: 7vh;
  justify-content: center;
  align-content: center;
  flex-direction: column;
}

.off-color {
  background-color: #e7ffe6;
  color: #153c54;
}

.on-color {
  background-color: #153c54;
  color: #e7ffe6;
}

.departure-point-time {
  display: inline-block;
  width: 18.5%;
  margin: 0;
  padding: 0;
  font-family: var(--header-font-family);
  padding-left: 2%;
}

.departure-point-location {
  display: inline-block;
  font-family: var(--header-font-family);
  margin: 0;
  padding: 0;
  width: 63%;
}

.departure-point-state {
  margin-left: -5%;
  padding: 0;
  position: absolute;
  display: inline-block;
  text-align: right;
  font-family: var(--body-font-family);
  width: 17.5%;
}

.departing-label {
  font-family: var(--header-font-family);
  display: inline-block;
  width: 18.5%;
  margin-right: 2%;
  font-weight: bold;
}

.delay-container {
  width: 94%;
  height: 81.5%;
  color: #E2F5E9;
  font-family: var(--header-font-family);
  margin: auto;
  text-align: center;
  line-height: 13vh;
  font-size: 3.5cm;
}

.center {
  padding: 20px;
}

.calling-point-row {
  padding-top: 0%;
  padding-bottom: 0%;
  height: 9.4%;
  width: 94%;
  margin: auto;
  position: relative;
  margin-top: 0%;
  margin-bottom: 1.5%;
}

.calling-point-decoration-solid {
  display: inline-block;
  position: absolute;
  width: 4%;
  background-color: var(--secondarycolour);
  height: 6%;
  top: 45%;
  margin: auto;
  border-radius: 5px;
  left: -0.1%;
}

.calling-point-decoration-vert {
  display: inline-block;
  position: absolute;
  left: -0.1%;
  width: 0.4%;
  background-color: var(--secondarycolour);
  height: 55%;
  top: 45%;
  margin: auto;
  border-radius: 5px;
}

.calling-point {
  height: 100%;
  display: flex;
  position: absolute;
  right: 0;
  width: 96.4%;
  border-radius: 5px;
  font-size: 7vh;
  flex-direction: row;
}

.off-color {
  background-color: #e7ffe6;
  color: #153c54;
}

.on-color {
  background-color: #153c54;
  color: #e7ffe6;
}

.calling-point-time {
  width: 14.5%;
  margin: 0;
  font-family: var(--header-font-family);
  padding-left: 2%;
}

.calling-point-location {
  font-family: var(--header-font-family);
  margin: 0;
  padding: 0;
}

.calling-point-state {
  margin-left: auto;
  padding: 0;
  font-family: var(--body-font-family);
}

.calling-point-state-on {
  margin-left: auto;
  padding: 0;
  font-family: var(--header-font-family);
  margin-right: 2%;
}

.calling-point-state-dly {
  margin-left: auto;
  padding: 0;
  font-family: var(--header-font-family);
  margin-right: 2%;
  color: #FF4713;
}

.train-pos {
  width: 40px;
  height: 40px;
  position: absolute;
  background-color: var(--secondarycolour);
  border-radius: 20px;
  top: 93%;
  left: -18px;
}

.dotted {
  position: absolute;
  left: -0.1%;
  width: 0.05%;
  border-right: 7px dotted red;
  height: 900px;
}

.dottedSmall {
  position: absolute;
  left: -0.1%;
  width: 0.05%;
  border-right: 7px dotted red;
  height: 900px;
  transform: rotate(180deg);
  transform-origin: top;
  top: 55px;
}

.dottedSingleBig {
  position: absolute;
  left: -0.1%;
  width: 0.05%;
  border-right: 7px dotted red;
  height: 136px;
  transform: rotate(180deg);
  bottom: 47px;
}

.dottedSingleSmall {
  overflow-y: hidden;
}

.dottedBig {
  position: absolute;
  left: -0.1%;
  width: 0.05%;
  border-right: 7px dotted red;
  height: 1500px;
  top: -200px;
}

.dotted-middle {
  position: absolute;
  top: 40%;
  left: 1%;
  width: 3%;
  border-bottom: 7px dotted red;
  height: 7px;
}

.page-marker {
  position: absolute;
  bottom: 1%;
  right: 3%;
  color: #E2F5E9;
  font-family: var(--header-font-family);
  font-size: 4.7vh;
}

.box {
  display: flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  height: 81.5%;
  width: 96%;
  margin: auto;
  flex-direction: column;
  align-content: center;
  justify-content: center;
}

.imgwrap {
  width: 75%; /*or whatever you choose*/
  margin: auto;
  height: 100%;
}

.imgwrap img {
  display: block;
  width: 100%;
  max-width: 1920px; /*actual image width*/
  height: auto; /* maintain aspect ratio*/
  margin: auto; /*optional centering of image*/
}

.cab-forward {
  width: 100%;
  height: 35%;
  border: 10px solid #153c54;
  border-radius: 30px;
  border-top-left-radius: 90px;
  align-content: center;
  display: flex;
  position: relative;
}

.cab-reverse {
  width: 100%;
  height: 35%;
  border: 10px solid #153c54;
  border-radius: 30px;
  border-top-right-radius: 90px;
  margin-right: 2%;
  position: relative;
  align-content: center;
  display: flex;
}

.cab-line {
  align-self: center;
  display: flex;
  align-items: center;
  align-content: center;
  vertical-align: middle;
  flex-direction: row;
  width: 100%;
  height: 50%;
  justify-content: center;
}

.cab {
  position: relative;
  width: 100%;
  height: 35%;
  margin-right: 1%;
  border: 10px solid #153c54;
  border-radius: 30px;
  align-content: center;
  display: flex;
}

.seats {
  position: absolute;
  top: 0;
  right: 0;
  width: 40%;
  margin-right: -15%;
  margin-top: -15%;
  height: 66%;
  align-content: center;
  align-items: center;
  background-color: #FF1E00;
  border-radius: 50%;
  font-size: 4.5vh;
  color: white;
  font-family: var(--header-font-family);
}

.seats > div {
  text-align: center;
  margin: auto;
}

.seats-rear {
  position: absolute;
  top: 0;
  right: 0;
  width: 40%;
  margin-right: 5%;
  margin-top: -15%;
  height: 66%;
  align-content: center;
  align-items: center;
  background-color: #FF1E00;
  border-radius: 50%;
  font-size: 4.5vh;
  color: white;
  font-family: var(--header-font-family);
}

.seats-rear > div {
  text-align: center;
  margin: auto;
}

.quarter-fill {
  background: rgb(226, 245, 233);
  background: linear-gradient(0deg, rgb(226, 245, 233) 0%, rgb(226, 245, 233) 25%, rgba(157, 255, 170, 0) 25%);
}

.half-fill {
  background: rgb(226, 245, 233);
  background: linear-gradient(0deg, rgb(226, 245, 233) 0%, rgb(226, 245, 233) 50%, rgba(157, 255, 170, 0) 50%);
}

.three-quarter-fill {
  background: rgb(226, 245, 233);
  background: linear-gradient(0deg, rgb(226, 245, 233) 0%, rgb(226, 245, 233) 75%, rgba(157, 255, 170, 0) 75%);
}

.full {
  background: rgb(226, 245, 233);
  background: linear-gradient(0deg, rgb(226, 245, 233) 0%, rgb(226, 245, 233) 100%, rgba(157, 255, 170, 0) 100%);
}

.hidden-car {
  display: none;
}

.letter {
  width: 100%;
  text-align: center;
  margin-bottom: 3px;
  color: white;
  font-family: var(--header-font-family);
  font-size: 5vh;
}

.car-top {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cab-forward {
  display: flex;
  align-content: center;
  justify-content: center;
  align-items: center;
}

.cab-reverse {
  display: flex;
  align-content: center;
  justify-content: center;
  align-items: center;
}

.cab {
  display: flex;
  align-content: center;
  justify-content: center;
  align-items: center;
}

.message-panel {
  font-size: 5.5vw;
  width: 100%;
  height: var(--top-panel-height);
  max-height: var(--top-panel-height);
  background: var(--messagecolour);
  color: white;
  vertical-align: middle;
}

.message-panel tr td:nth-of-type(1) {
  width: 10vw;
  max-width: 10vw;
  padding-left: 1vw;
  padding-right: 1vw;
  vertical-align: middle;
}

.message-panel tr td:nth-of-type(2) {
  padding-left: 2vw;
  width: 76vw;
  max-width: 76vw;
  white-space: nowrap;
  vertical-align: middle;
  text-align: left;
}

.message-icon {
  width: 80%;
  padding-top: 1vw;
  height: var(--top-panel-height);
  max-height: var(--top-panel-height);
  background: var(--messagecolour);
  vertical-align: middle;
}

.message-body {
  display: block;
  vertical-align: middle;
  font-size: 4.5vw;
  width: 90vw;
  background: var(--backgroundcolour);
  color: #E2F5E9;
  text-align: center;
  margin-left: 5vw;
  margin-right: 5vw;
  margin-top: 3vw;
}

.message-debug-panel {
  width: 100%;
  height: var(--debug-panel-height);
  background: var(--defaultsecondarycolour);
}
