/* ==================================================================

                        CSS RESET

================================================================== */
/* ==================================================================
   HTML5 Boilerplate v5.0 | MIT License | http://h5bp.com/ + Additions
=================================================================== */
/*
  Done by reset below
html {
    color: #222;
    font-size: 1em;
    line-height: 1.4;
}
*/
::-moz-selection {
  background: #B3D4FC;
  text-shadow: none;
}

::selection {
  background: #B3D4FC;
  text-shadow: none;
}

/*
  Done by reset below
hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}
*/
audio, canvas, iframe, img, svg, video {
  vertical-align: middle;
}

/*
  Done by reset below
fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}
*/
textarea {
  resize: vertical;
}

.browserupgrade {
  margin: 0.2em 0;
  background: #CCC;
  color: #000;
  padding: 0.2em 0;
}

/* =================================================================
   Helper classes (from Meyer 2011)
   Altered to fix bugs
================================================================= */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr,
acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong,
sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure,
figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  /*
  	font-size: 100%; Replaced with newer em below */
  font-size: 1em;
  /* Addition - Paul new research */
  /*font: inherit; fix: removed this to fix problems with fonts */
  /*Turned baseline off - solved issue with tables*/
  /*vertical-align: baseline;*/
  vertical-align: middle;
  /* fix: altered IMG (later) to line things up better */
}

/*Safari reset 2020-07*/
input, select {
  vertical-align: middle;
  margin: 0;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

/*
  Out of date; replaced by above
body {
	line-height: 1;
}
*/
ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* =================================================================
   Helper classes (Custom by Paul (me) from previous sites
================================================================= */
/* Fix IE bugs */
html, body {
  height: 100%;
  width: 100%;
}

html {
  box-sizing: border-box;
  /* Addition - Paul new research */
  color: #222;
  line-height: 1.4;
  /* Chrome Fix - Stop scroll bar disappearing & reappearing jolting page, force its permanent presence */
  height: 100.1%;
  /* This makes chrome behave, as it ignores the overflow-y */
  margin-bottom: 1px;
  overflow-y: scroll;
}

/* Addition  - Paul new research */
*, *:before, *:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body {
  font: 16px / 26px Helvetica, "Helvetica Neue", Arial, Verdana, sans-serif;
  background: white;
  color: #222;
  text-align: center;
  margin: 0;
  height: 100%;
}

input, noscript {
  margin: 0;
  padding: 0;
}

img, a img {
  border: none;
  vertical-align: bottom;
}

table caption {
  text-align: left;
}

/* LINKS */
a:link, a:visited {
  color: #222;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
  color: #0085C1;
  text-decoration: none;
}

a:active, a.active {
  color: #0085C1;
}

textarea, select {
  font: 12px / 160% Verdana, sans-serif;
  color: #222;
}

/* Override (was system.css) */
li a:active, li a.active {
  color: #CD3F2C;
}

/*
  Original

  hr {
  	clear: both;
    margin: 0;
    padding: 0;
    border: none;
    height: 1px;
    background: #5294c1; // Bluish
  }

  HTML5 Boilerplate V

  hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
  }

  Merged Version
*/
hr {
  display: block;
  clear: both;
  height: 1px;
  border: 0;  /* added 2022-09-17 */
  border-top: 1px solid #5294C1;
  background: #5294C1;
  /*margin: 1em 0;*/
  padding: 0;
}

/* ==================================================================

                        HELPER CLASSES

================================================================== */
/* =================================================================
   Helper classes (from Initializr)
================================================================= */
.hidden {
  display: none !important;
  visibility: hidden;
}

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}

.invisible {
  visibility: hidden;
}

.clearfix:before, .clearfix:after {
  content: " ";
  display: table;
}

.clearfix:after {
  clear: both;
}

.clearfix {
  *zoom: 1;
}

/* =================================================================
   Helper classes (from previous sites)
================================================================= */
/*
  USE HIDDEN ABOVE
.hide {
	display: none;
}
*/
.show {
  display: block;
  visibility: inherit;
}

.clear-both {
  clear: both;
}

.right {
  text-align: right;
}

.center {
  text-align: center;
}

/**
 *  INPUT CONTROL - Apply this class to BODY to stop user selecting items the
 *  standard web browser way - used to make web app more app like.
 */
/*
Stop user from selecting something, makes web app more native like.
This also stops text input; so it should not be applied to body.
*/
.no-select, button {
  /*
    cursor: hand;
    cursor: pointer;
    */
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
  -webkit-user-select: none;
  /* Selection of text OFF; popup does not display */
  -webkit-user-drag: none;
  -moz-user-modify: none;
  -webkit-user-modify: none;
  -webkit-highlight: none;
  -webkit-touch-callout: none;
  /* Block Magnifying glass */
  user-select: none;
  /*
    ORIGINAL
  
    cursor: default;
    -webkit-user-select: none;
    -moz-user-select: none;
  
    */
}

.superscript {
  vertical-align: super;
  font-size: 60%;
}



/* ==================================================================

                      IOS DEVICE CSS RESET

================================================================== */


textarea,
input.text,
input[type="text"],
input[type="button"],
input[type="submit"],
.input-checkbox {
-webkit-appearance: none;
border-radius: 0;
}


/* ==================================================================

                        RESPONSIVE LAYOUT CSS

================================================================== */
/*

  Recommended widths are
  [335]
    480 / 568   iPhone 45/5s
  [585/600]
    667 / 736   iPhone 6/6 Plus
    600         PC standard limit
    768         Tablet (iPad)
  [959/976]
  [992/1008]
    768         PC (different from tablet)
                Need to detect this via device width?
    1080        Wider display


    A standard set of designs for the following would be most suitable:
    Mobile
    Tablet
    PC
    PC-Wide

    Items that are to display in all classes except one class, such as not in mobile
    should be preceeded by 'none-' in this case resulting in the class 'none-mobile'

*/
/* PC BASE */
.page-wrapper {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  /* Center page layout when wider than 1200px */
  top: 0;
}

/* ** Background image ** */
/* Window provides clipping so that Scroll Bars do not appear when image over xs|ys */
.background-stent-window {
  position: absolute;
  /* Make background by causing following elements to be on top */
  left: 0;
  top: 0;
  width: 100%;
  height: 1210px;
  /* Without height online one text line height of the image is shown; but it results in a y-scroll that cannot be removed... */
  overflow: hidden;
  z-index: -1000;
  /* Force as background layer */
}

/* Std Auto resize of BG on browser resize */
.background-stent {
  position: absolute;
  width: 100%;
  max-width: 1400px;
  height: auto;
  padding: 86.43% 0 0 0;
  /* =  100 / (1400 / 1210)*/
}

/* Alter resize behaviou - Viewport wider than image, use margin to center image */
@media screen and (min-width: 1400px) {
  .background-stent {
    left: 50%;
    margin-left: -700px;
  }
}

/* Alter resize behaviou - Viewport smaller 1000px, fix image width; center image */
@media screen and (max-width: 1000px) {
  .background-stent {
    width: 1000px;
    height: 864px;
    left: 50%;
    margin-left: -500px;
  }
}

.background-stent img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

/* LOGO */
/* Center logo & auto resize */
.page-top-image-container-center {
  display: block;
  max-width: 760px;
  width: 100%;
  padding-top: 2%;
  margin: 0 auto;
}

.page-top-image-container {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  overflow: hidden;
  padding: 29.50% 0 0 0;
  /* 800 x 236 */
}

/* 1200 × 1013 */
.page-top-image-container img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

/* Center main text body; support resizing below the set 'max-width' */
.info-wrapper {
  max-width: 600px;
  /* Fix text to line up with top image */
  width: 100%;
  margin: 0 auto;
  /* Center page layout when wider than 1200px */
}

/*  - - - - - - - - - - - - - - - - - - - - - - - - - */
/*  ** MAIN PAGE CONTENT  **  */
.section-content {
  padding-top: 3%;
  padding-bottom: 2%;
}

/* Change font size based on device width - do in later section */
.section-content .section-title {
  padding-left: 4%;
  text-align: left;
  font-size: 1.4em;
  height: 1em;
}

.section-content.schedule {
  width: 100%;
  margin-top: 3%;
  background-color: rgba(0, 40, 87, 0.5);
  color: white;
}

.section-content.ticket {
  width: 100%;
  margin-top: 1%;
}

.section-content.bottom {
  padding-top: 0%;
  padding-bottom: 0%;
}

.white-bg-container {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
}

.white-bg-container-bg {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.5);
  z-index: -1000;
}

/* Ticket cost image; auto size */
.ticket-image-container {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  overflow: hidden;
  left: 16%;
  /* Need to limit the height...; is this due to the padding???  */
  /*padding: 84.42% 0 0 0; /* 100 / (1200 / 1013) */
  /*  padding: 33.13% 0 0 0; /* 100 / (1200 / 1013) */
  padding: 33.13% 0 0 0;
  /* 100 / (536 / 1013) */
  /* 800x265 */
}

/* 1200 × 381 */
.ticket-image-container img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

/* Ticket Buy Image */
.ticket-buy-outer-container {
  width: 90%;
  left: 0;
  padding-left: 10%;
}

.ticket-buy-container {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  overflow: hidden;
  /* Need to limit the height...; is this due to the padding???  */
  /*padding: 84.42% 0 0 0; /* 100 / (1200 / 1013) */
  padding: 12% 0 0 0;
  /* 100 / (1200 / 1013) */
  /* 800x265 
  
  
  */
}

/* 600 x 72 */
.ticket-buy-container img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

/* less than 600 wide */
.section-content.bottom .section-container {
  text-align: center;
  color: rgb(0, 40, 87);
  font-size: 0.95em;
}

.section-content.schedule .section-divider {
  left: 4%;
  background: url(white-blue-strip.jpg) center / 92% 2px no-repeat;
}

.section-content.ticket .section-divider {
  left: 4%;
  background: url(blue-white-strip.jpg) center / 92% 2px no-repeat;
}

.section-content.bottom .section-divider {
  left: 4%;
  background: url(blue-center-strip.jpg) center / 92% 2px no-repeat;
  height: 10px;
}

.section-content.schedule .schedule-container {
  padding-left: 4%;
  padding-right: 4%;
}

.section-content.ticket .ticket-comment-container {
  padding-top: 3%;
  color: red;
  /*
  color: rgb(204, 55, 39);
  */
}

/* ================================
   SHOW / HIDE BY 'DEVICE'
================================ */
/* Base PC width 990px */
/* Non-Mobile */
@media screen and (min-width: 580px) {
  /* === VISIBLE === */
  /* Show */
  .site-name.none-mobile {
    display: block;
  }
  
  /* Alter */
  h1 {
    font-size: 1.7em;
    padding-top: 0em;
    line-height: 1.7em;
  }
  
  /* === HIDE === */
  .site-name.mobile, .section-content.mobile, .menu-button.mobile {
    display: none !important;
    visibility: hidden;
  }
  
  .section-content.schedule .schedule-container .schedule-detail td {
    text-align: left;
    font-size: 1em;
    line-height: 1.6em;
  }
  
  .section-content.schedule .schedule-container .schedule-detail td.cell-wide {
    text-align: center;
    width: 5%;
  }
  
  .section-content.schedule .schedule-container .schedule-detail td.cell-large {
    font-size: 1.2em;
  }
  
  .section-content.ticket .ticket-comment-container {
    font-size: 1.3em;
    font-weight: bold;
  }
}

/* Mobile */
@media screen and (max-width: 580px) {
  /* === VISIBLE === */
  /* Show Items */
  .site-name.mobile {
    display: block;
  }
  
  /* Alter */
  .page-wrapper {
    padding-left: 0px;
  }
  
  h1 {
    font-size: 1.5em;
    text-align: left;
    padding-left: 2em;
    padding-top: 0em;
    line-height: 1.75em;
  }
  
  /* === HIDE === */
  .left-page-index, .site-name.none-mobile, .section-content.none-mobile, .menu-button.none-mobile {
    display: none !important;
    visibility: hidden;
  }
  
  /* Change font size based on device width - do in later section */
  .section-content .section-title {
    padding-left: 4%;
    text-align: left;
    font-size: 1.2em;
    height: 1em;
  }
  
  .section-content.schedule .schedule-container .schedule-detail td {
    text-align: left;
    font-size: 0.8em;
    line-height: 1.5em;
  }
  
  .section-content.schedule .schedule-container .schedule-detail td.cell-wide {
    text-align: center;
    width: 5%;
  }
  
  .section-content.schedule .schedule-container .schedule-detail td.cell-large {
    font-size: 0.9em;
  }
  
  .section-content.ticket .ticket-comment-container {
    font-size: 1.1em;
    font-weight: bold;
  }
  
  .section-content.bottom .section-container {
    font-size: 0.8em;
  }
}

/* Some small screens on phones need tweaking */
@media screen and (max-width: 480px) {
  .section-content.ticket .ticket-comment-container {
    padding-top: 3%;
    font-size: 1em;
    font-weight: bold;
  }
  
  .section-content.bottom .section-container {
    font-size: 0.6em;
  }
}

/* Some small screens on phones need tweaking */
@media screen and (max-width: 390px) {
  .section-content.schedule .schedule-container .schedule-detail td {
    text-align: left;
    font-size: 0.7em;
    line-height: 1.5em;
  }
  
  .section-content.schedule .schedule-container .schedule-detail td.cell-wide {
    text-align: center;
    width: 5%;
  }
  
  .section-content.schedule .schedule-container .schedule-detail td.cell-large {
    font-size: 0.8em;
  }
  
  .section-content.ticket .ticket-comment-container {
    font-size: 0.8em;
    font-weight: bold;
  }
  
  .section-content.bottom .section-container {
    font-size: 0.65em;
  }
}

/* ==================================================================================
   Print styles
================================================================================== */
@media print {
  *, *:before, *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  
  a, a:visited {
    text-decoration: underline;
  }
  
  a[href]:after {
    content: " (" attr(href) ")";
  }
  
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  
  a[href^="#"]:after, a[href^="javascript:"]:after {
    content: "";
  }
  
  pre, blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  
  thead {
    display: table-header-group;
  }
  
  tr, img {
    page-break-inside: avoid;
  }
  
  img {
    max-width: 100% !important;
  }
  
  p, h2, h3 {
    orphans: 3;
    widows: 3;
  }
  
  h2, h3 {
    page-break-after: avoid;
  }
}
