.program-header{
  width: 100%;
  color: black;
  margin-bottom: 10px;
  background-color: #e6f1fc;
  font-size: 26px;
  font-weight: 400;
  font-family: 'Oswald', sans-serif;
}
.program-header .program-shortcode{
  color: white;
  display: table-cell;
  padding: 0 10px 5px;
  margin-right: 5px;
  background-color: #c8081e;
  height: 100%;
  vertical-align: middle;
  min-width: 50px;
  text-align: center;
}
.program-header .program-title{
  display: table-cell;
  vertical-align: middle;
  height: 100%;
  padding-left: 10px;
}
a:link.no-decoration, a:visited.no-decoration{
  text-decoration: none;
}
.program-list {
  display: table-row;
}
.program-list a:link, .program-list a:visited{
  text-decoration: none;
}
.program-list.program-list-portrait {

}
.program-list.program-list-landscape {

}
.program-list .program-list-image {
  display: table-cell;
  vertical-align: middle;
}
.program-list .program-list-image img {
  object-fit: cover;
}
.program-list .program-list-description {
  display: table-cell;
  padding-left: 20px;
  vertical-align: top;
}
.program-list .program-list-description .program-list-title {
  font-size: 20px;
  font-family: 'Oswald', sans-serif; font-weight: 400;
  padding-bottom: 10px;
}
/* Portrait */
.program-list.program-list-portrait .program-list-image {
  width: 184px;
  padding-bottom: 10px;
}
.program-list.program-list-portrait .program-list-description {
  padding-bottom: 10px;
}
.program-list.program-list-portrait .program-list-image img {
  width: 184px;
  height: 275px;
}
/* Landscape */
.program-list.program-list-landscape .program-list-image {
  width: 300px;
  padding-bottom: 40px;
}
.program-list.program-list-landscape .program-list-description {
  padding-bottom: 40px;
}
.program-list.program-list-landscape .program-list-image img {
  width: 300px;
  height: 169px;
}
@media (max-width: 560px){
  .program-list {
    display: block;
    width: 100%;
    margin-bottom: 40px;
  }
  .program-list .program-list-image {
    display: block;
    margin: auto;
    padding-bottom: 0;
  }
  .program-list .program-list-description {
    display: block;
    padding-left: 0;
    width: 80%;
    margin: auto;
    text-align: center;
    padding-bottom: 0;
  }
  .program-list .program-list-description .program-list-title {
    padding-bottom: 0;
    width: 100%;
  }
  .program-list.program-list-landscape .program-list-image {
    padding-bottom: 0;
  }
  .program-list.program-list-landscape .program-list-description {
    padding-bottom: 0;
  }
  .program-list.program-list-portrait .program-list-image {
    padding-bottom: 0;
  }
  .program-list.program-list-portrait .program-list-description {
    padding-bottom: 0;
  }
}
.program-event-section {
  height: 200px;
  width: 370px;
  background-size: cover;
  background-position: center;
  display: inline-block;
  border-radius: 0 10px 0 0;
}

.program-timetable-overview-venue {
  height: 200px;
  width: 290px;
  background-size: cover;
  background-position: center;
  display: inline-block;
  position: relative;
}

.program-timetable-overview-venue-title {
  background-color: #c8081e;
  padding: 10px;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  color: white;
  font-size: 16px;
  font-family: 'Oswald', sans-serif; font-weight: 400;
  text-align: center;
}
.program-timetable-overview-day {
  font-family: 'Oswald', sans-serif; font-weight: 400;
  width: 150px;
  text-align: center;
  background-color: #e6f1fc;
  padding-bottom: 10px;
  display: inline-block;
  margin-bottom: 10px;
  margin-right: 10px;
}
.program-timetable-overview-day-weekday {
  background-color: #c8081e;
  padding: 10px;
  color: white;
  font-size: 25px;

}
.program-timetable-overview-day-day {
  font-size: 80px;
  line-height: 1.3;
}
.program-timetable-overview-day-month, .program-timetable-overview-day-year {
  font-size: 25px;
  line-height: 1.2;
}

@media(max-width: 630px){
  .program-event-sections-container{
    text-align: center;
  }
  .program-event-section {
    width: 100%;
  }
  .program-timetable-overview-venue-container {
    text-align: center;
  }
  .program-timetable-overview-venue {
    width: 100%;
  }
  .program-timetable-overview-day-container {
    text-align: center;
  }
}

.program-venue-information {
  margin-bottom: 5px;
}
.program-venue-information-title {
  font-weight: bold;
}
.films, .reservation{
  margin-top: 20px;
}
.trailer{
  margin-top: 20px;
}
.description{
  margin-top: 20px;
}
.program-ticket-button{
  margin-left: 10px;
}
/* Whats Today */
.whats-today{

}
.whats-today .whats-today-query-container{
  margin: -2px 40px 10px 0;
  position: relative;
}
.whats-today .whats-today-query-container .whats-today-query{
  width: 100%;
}
.whats-today .whats-today-query-container .whats-today-query-clear {
  width: 10px;
  height: 10px;
  border: 2px solid gray;
  border-radius: 50%;
  padding: 1px;
  font-size: 10px;
  line-height: 10px;
  text-align: center;
  color: gray;
  cursor: pointer;
  position: absolute;
  right: 0px;
  top: 8px;
  background-color: gray;
  color: white;
  display: none;
}
.whats-today .whats-today-query-container .whats-today-query-clear::before{
  content: "\2715";
}
.whats-today .whats-today-flag{
  border-radius: 10px 0 0 10px;
  background-color: #c8081e;
  padding: 10px;
  display: inline-block;
  color: white;
  font-size: 16px;
  font-family: 'Oswald', sans-serif;
  font-weight: 400;
  position: fixed;
  right: 0;
  margin-top: 10px;
  cursor: pointer;
  transition:right 1s ease-in-out;
  z-index: 998;

  padding-right: 50px;
  margin-right: -40px;
  animation-name: animiate-left;
  animation-timing-function: ease;
  animation-duration: 8s;
  animation-iteration-count: infinite;
}
.whats-today .whats-today-content{
  position: fixed;
  top: 0;
  right: -400px;
  bottom: 0;
  width: 400px;
  background-color: white;
  z-index: 999;
  padding: 20px;
  transition:right 1s ease-in-out;
  border-left: 4px solid #c8081e;
  box-sizing: border-box;
  display: flex;
  flex-flow: column;
}
.whats-today.open .whats-today-flag{
  right: 400px;
  animation-name: none;
}
.whats-today.open .whats-today-content{
  right: 0px;
}
.whats-today .whats-today-content .whats-today-close::before{
  content: "\2715";
}
.whats-today .whats-today-content .whats-today-close{
  width: 20px;
  height: 20px;
  border: 2px solid gray;
  border-radius: 50%;
  padding: 1px;
  font-size: 20px;
  line-height: 20px;
  text-align: center;
  color: gray;
  cursor: pointer;
  position: absolute;
  right: 20px;
  top: 20px;
}
.whats-today .whats-today-header {
  font-size: 26px;
  font-family: 'Oswald', sans-serif;
  font-weight: 400;
  color: #c8081e;
  text-align: center;
  margin-top: -8px;
}
.whats-today .whats-today-header .whats-today-title {

}
.whats-today .whats-today-header .whats-today-prev-day, .whats-today .whats-today-header .whats-today-next-day{
  cursor: pointer;
  display: inline-block;
  margin: 0 5px;
}
.whats-today .whats-today-header .whats-today-prev-day.hidden, .whats-today .whats-today-header .whats-today-next-day.hidden {
  opacity: 0;
  cursor: initial;
}
.whats-today .whats-today-header .whats-today-prev-day::before{
  content: "\21E6";
}
.whats-today .whats-today-header .whats-today-next-day::before{
  content: "\21E8";
}
.whats-today-results-wrapper{
  margin-top: 10px;
  overflow-y: scroll;
}
.whats-today-results{
  display: table;
  width: 100%;
}
.whats-today-result {
  display: table-row;
}
.whats-today-result a:link, .whats-today-result a:visited{
  text-decoration: none;
}
.whats-today-result .whats-today-result-image {
  display: table-cell;
  vertical-align: middle;
  width: 112px;
  padding-bottom: 10px;
}
.whats-today-result .whats-today-result-image img {
  object-fit: cover;
  width: 112px;
  height: 165px;
}
.whats-today-result .whats-today-result-description {
  display: table-cell;
  padding-left: 20px;
  vertical-align: top;
  padding-bottom: 10px;
  overflow-wrap: anywhere;
  font-size: 12px;
}
.whats-today-result .whats-today-result-credits{
  font-size: 10px;
}
.whats-today-result .whats-today-result-description .whats-today-result-title {
  font-size: 16px;
  font-family: 'Oswald', sans-serif; font-weight: 400;
  padding-bottom: 10px;
}
.whats-today-result .whats-today-result-buttons{
  text-align: right;
  margin-top: 10px;
}
.whats-today-result .whats-today-result-button {
  display: inline-block;
  background-color: #c8081e;
  color: white;
  border-radius: 10px;
  padding: 2px 10px;
  font-size: 14px;
  margin-left: 5px;
}
.whats-today-loading {
  text-align: center;
  margin-top: 20px;
  display: none;
}

@media (max-width: 750px){
  .whats-today .whats-today-flag{
    bottom: 0;
    right: inherit;
    left: 50%;
    border-radius: 10px 10px 0 0;
    transform: translateX(-50%);
    width: 80%;
    max-width: 180px;
    text-align: center;
    transition:bottom 1s ease-in-out;

    padding-right: 10px;
    padding-bottom: 30px;
    margin-bottom: -20px;
    animation-name: animiate-bottom;
    animation-timing-function: ease;
    animation-duration: 8s;
    animation-iteration-count: infinite;
  }
  .whats-today .whats-today-content {
    transition:top 1s ease-in-out;
    right: 0px;
    left: 0px;
    width: auto;
    top: 100%;
    border: 4px solid #c8081e;
  }
  .whats-today.open .whats-today-flag{
    bottom: 100%;
  }
  .whats-today.open .whats-today-content{
    top: 0;
  }
}
@keyframes animiate-left {
  0%   { margin-right: -40px; }
  5%   { margin-right: 0px; }
  10%  { margin-right: -40px; }
  12%  { margin-right: -35px;  }
  14%  { margin-right: -40px; }
  100% { margin-right: -40px; }
}
@keyframes animiate-bottom {
  0%   { margin-bottom: -20px; }
  3%   { margin-bottom: 0px; }
  6%  { margin-bottom: -20px; }
  7%  { margin-bottom: -15px;  }
  8%  { margin-bottom: -20px; }
  100% { margin-bottom: -20px; }
}
/* Loading Spinner */
.lds-ripple {
  display: inline-block;
  position: relative;
  width: 80px;
  height: 80px;
}
.lds-ripple div {
  position: absolute;
  border: 4px solid #c8081e;
  opacity: 1;
  border-radius: 50%;
  animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}
.lds-ripple div:nth-child(2) {
  animation-delay: -0.5s;
}
@keyframes lds-ripple {
  0% {
    top: 36px;
    left: 36px;
    width: 0;
    height: 0;
    opacity: 0;
  }
  4.9% {
    top: 36px;
    left: 36px;
    width: 0;
    height: 0;
    opacity: 0;
  }
  5% {
    top: 36px;
    left: 36px;
    width: 0;
    height: 0;
    opacity: 1;
  }
  100% {
    top: 0px;
    left: 0px;
    width: 72px;
    height: 72px;
    opacity: 0;
  }
}
