/* RESET */
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: 100%; font: inherit; box-sizing: border-box; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section
{ display: block; }
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; }
table.event_data {border: 1px dashed #ddd;}
table.event_data td, table.event_data th {border: 1px dashed #ddd; padding: 4px;}
table.event_data th {text-align: center;}
img { max-width: 100%; height: auto;  }


body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body { font-family:  "Trebuchet MS", arial, helvetica, sans-serif; font-size: 16px; color: #333; background-color: #FFF; }
h1,h2,h3,h4,h5,h6 { font-weight: 700; }
h1 { font-size: 2.0rem; margin: 0 0 1rem 0; }
h2 { font-size: 1.5rem; margin: 0 0 1rem 0; }
h3 { font-size: 1.2rem; margin: 0 0 1rem 0; }
h4,h5,h6 { font-size: 1.0rem; margin: 0 0 0.5rem 0; }
p {  line-height: 1.5; margin: 0 0 1.5rem 0; }
ul { line-height: 1.5; list-style: square; margin: 0 0 1.5rem 1.5rem; }
.nobullet { list-style: none; margin: 0 0 1.5rem 0; overflow: hidden; clear: both; }
ol { line-height: 1.5; list-style: decimal; margin: 0 0 1.5rem 1.5rem; }
ul li, ol li { margin-bottom: 0.5rem; }
dl { line-height: 1.5; margin: 0 0 1.5rem 0; }
dt { font-weight: 700; }
table { width: 100%; font-size: 0.925rem; line-height: 1.5; border-bottom: 1px dotted #CCC; margin: 0 0 1.5rem 0; }
th { text-align: left; font-weight: bold; padding: 0 0 0.5rem 0; }
td { padding: 0.5rem 0; border-top: 1px dotted #CCC; vertical-align: top; }
  td p { margin: 0; }
blockquote { line-height: 1.5; font-style: italic; padding-left: 1rem; border-left: 2px solid #CCC; margin: 0 0 1.5rem 0; }
blockquote p { margin: 0; }
figure { margin: 0 0 1.5rem 0; }
figcaption { font-size: 0.85em; font-style: italic; color: #757575; }
b,strong { font-weight: bold; }
i,em { font-style: italic; }
i { margin-right: 5px; }
small { font-size: 0.75em; color: #555; }
a { transition: 0.5s; }
a:link { color: #157515; text-decoration: none; }
a:visited { color: #009933; text-decoration: none; }
a:hover { color: #2F562F; text-decoration: underline; }
a:active { color: #2F562F; text-decoration: underline; }
a:focus { color: #2F562F; text-decoration: underline; }


/* colours
dark #3c4a3e
green #149647
mid #729a78
light #f6edd9
lighter #eefdf0

*/


/* LAYOUT */
.row {}
.row-top { display: none; background: #0E964C; }
.row-nav { background: #3c4a3e; border-bottom: 1px solid #003300; box-shadow: 5px 5px 10px 5pxpx rgba(0,0,0,0.8); }
.row-hero { background-repeat: no-repeat; background-position: center; background-size: cover; }
.row-hero { width: 100%; }
.row-header { background: #f6edd9; }
.row-section-ticketing { background: #3c4a3e; border-top: 1px solid #f6edd9; }
.row-section { background: #eefdf0; }
.row-section-alt { background: #f6edd9; }
.row-promo { background: #729a78; }
.row-footer { background: #3c4a3e; }

.top, .nav, .hero, .header, .section, .footer { max-width: 1280px; padding: 1rem; margin: 0 auto; clear: both; }

.top { padding: 0.5rem 1.5rem; }
.nav { position: relative; padding: 1rem 1.5rem 0 1.5rem; }
.hero { padding: 6vh 1.5rem 6vh 1.5rem; }
.header { padding: 3rem 1.5rem 2rem 1.5rem; }
.header-article { max-width: 960px; }
.header-narrow { max-width: 768px; }
.section { padding: 3rem 1.5rem; }
.section-ticketing { padding: 1rem 1.5rem; }
.section-article { max-width: 960px; }
.section-narrow { max-width: 768px; }
.footer { padding: 3rem 1.5rem; }

/* GRIDS */
.grid { display: grid; grid-gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin-bottom: 2rem; }
.grid-products { display: grid; grid-gap: 2rem; grid-template-columns: 1fr; margin-bottom: 2rem; }

.grid-products-upsells {display: grid; grid-gap: 2rem; grid-template-columns: 1fr 1fr;}

.grid-box .grid-item { position: relative; background: #FFF; border: 1px solid #EEE; transition: 0.25s; }
.grid-box .card-description { padding: 0 1rem; }
.grid-box .grid-item:hover { border: 1px solid #DDD; transform: scale(1.03,1.03); box-shadow: 2px 2px 6px #EEE; }


/* TOP LINKS */

.top-links { text-align: right; list-style: none; padding: 0; margin: 0; overflow: hidden; clear: both; }
.top-links li { display: inline-block; margin: 0 0 0 1rem; }
.top-links a { font-family: sans-serif; font-size: 0.85em; color: #FFF; }
.top-links a.ta { padding: 0 0 0 26px; background: url(../images/bg-ta.png) no-repeat left; }

/* PRIMARY NAV */

.logo { position: absolute; top: 1rem; left: 1rem; padding: 0.75rem 0.75rem 1.25rem 0.75rem; background: #FFF; -webkit-clip-path: polygon(0 0, 100% 0, 100% 85%, 50% 100%, 0 85%); clip-path: polygon(0 0, 100% 0, 100% 85%, 50% 100%, 0 85%); }
.logo a { text-decoration: none; }
.logo img { width: 76px; }

.minicart { font-size: 0.85rem; font-weight: 700; list-style: none; line-height: 1; text-align: right; height: 40px; color: #DDD; margin: 0;  }
.minicart li { display: inline-block; padding: 0 0.5rem 0 0.5rem; }
.minicart a { display: block; color: #FFF; padding: 0.5rem 0.75rem; background: #2E6B4A; border-radius: 40px; }

.nav-toggles { height: 40px; list-style: none; text-align: right; margin: 0; }
.nav-toggles li { display: inline-block; margin: 0 0.5rem 0 0; }
.menu-toggle { height: 40px; font-size: 16px; color: #FFF; padding: 0 0.75rem; background: transparent; border: 1px solid #DDD; margin: 0 0 0.75rem 0; }

.menu { display: none; }
.menu { list-style: none; font-size: 0.925rem; line-height: 40px; padding: 2rem 0; margin: 0 0 1rem; }
.menu li { display: block; padding: 0; margin: 0; }
.menu li a { display: block; font-weight: 700; color: #FFF; text-decoration: none; padding: 0 0.75rem; background: #0E964C; transition: 0.25s; }
.menu li ul { display: block; font-size: 0.85rem; list-style: none; line-height: 1.2; margin: 0 0 0.5rem 0; }
.menu li ul li { display: block; padding: 0; margin: 0; }
.menu li ul li a { display: block; font-weight: 400; color: #FFF; padding: 0.65rem 0.75rem; background: transparent; }
.menu li li a:hover { background: #2E6B4A; }

.ohcrumbs { font-size: 0.85rem; list-style: none; margin: 0 0 1rem 0; }
.ohcrumbs li { display: inline-block; margin: 0; }
.ohcrumbs li::after { content: "  \2192 ";}
.ohcrumbs li:last-of-type::after { content: ""; }
.ohcrumbs a { color: #000; }


.subnav { list-style: none; border-top: 1px dotted #009933; margin: 0 0 1.5em 0; }
.subnav li { border-bottom: 1px dotted #009933; }
.subnav a { display: block; padding: 0.5em 0; }


/* HERO */
.hero h1 { font-family: Georgia, arial, helvetica, sans-serif; }
.hero-text { max-width: 960px; text-align: center; padding: 2rem; background: rgba(0,25,0,0.5); margin: 0 auto; -webkit-clip-path: polygon(0 0, 100% 0, 100% 85%, 50% 100%, 0 85%); clip-path: polygon(0 0, 100% 0, 100% 85%, 50% 100%, 0 85%);}
.hero-heading { color: #FFF; line-height: 1.2; margin: 0; }
.hero-summary { color: #FFF; margin: 1.5rem 0 0 0; }
.hero ul { list-style: none; margin: 1.5rem 0 0 0; }
.hero ul li { display: inline-block; margin: 0.5rem; }
.hero ul li a { display: block; font-size: 0.925rem; font-weight: 700; color: #FFF; padding: 0.5rem 1rem; background: #157535; border: 2px solid #f6edd9; border-radius: 40px; }

/* HEADER */
.header h1 { font-family: Georgia, arial, helvetica, sans-serif; }

/* SECTION */
.section-heading { font-family: Georgia, arial, helvetica, sans-serif; margin: 0 0 2rem 0; }
.section-heading-center { text-align: center; }
.section-heading-center::before { content: "\007E"; }
.section-heading-center::after { content: "\007E"; }

/* HOME PAGE */
.home-updates { max-width: 768px; text-align: center; margin: 0 auto 2rem auto; }
.ticketing-news { font-weight: 700; text-align: center; margin: 0; }
.ticketing-news::before { content: "Latest: "; color: #00FF00; }
.ticketing-news a { color: #FFF; }


/* CARDS */
.card {}
.card-thumb { margin: 0 0 1rem 0; }
.card-thumb img { display: block; width: 100%; }
.card-heading { font-size: 1.2rem; margin: 0 0 0.5rem 0; }
.card-summary { font-size: 0.925rem; margin: 0 0 1rem 0; }
.card-cta { display: none; font-size: 0.925rem; font-weight: 700; }

/* PROMO */
.promo { text-align: center; color: #FFF; }
.promo-heading { margin: 0; }
.promo-description { margin: 1rem 0 0 0; }
.promo-cta { margin: 1rem 0 0 0; }


/* ENTRY */
.article-image img { width: 100%; }
.article-book { padding: 14px; border: 1px solid #CCC; margin: 0 0 2em 0; }
.article-gallery {list-style: none; margin: 0 0 1.5em 0; }
.article-gallery li { display: inline-block; margin: 0 10px 10px 0; }

.times-list { padding: 1rem; background: #eefdf0; border: 1px dotted #CCC; margin: 0 0 1rem 0; }
.times-list dt { font-size: 1.2rem; margin: 0; }
.times-list dd { margin: 0.5rem 0 0 0; }
.times-list a { display: block; font-weight: 700; color: #FFF; padding: 0.5rem 1rem; }
.times-list span { font-size: 0.925rem; }
.open, .limited { background: #157535; }
.soldout, .closed { display: block; color: #555; padding: 0.5rem 1rem; background: #F7F7F7; }
.warning { font-weight: 700; }

/* EVENT SELECT */
.ticket-select { margin: 0 0 2rem 0; }
.ticket-name {}
.ticket-stock { font-size: 0.938em; color: #757575; }

/* ROLLING STOCK */
.stock-detail { border-bottom: 1px dotted #CCC; margin: 0 0 1.5rem 0; }
.stock-detail dt { float: left; width: 30%; padding: 0.35rem 0; border-top: 1px dotted #CCC; clear: left; }
.stock-detail dd { padding: 0.35rem 0; border-top: 1px dotted #CCC; overflow: hidden; }

.stock-detail-brief { font-size: 0.925rem; margin: 0 0 1.5rem 0; }
.stock-detail-brief dt { margin: 0 0 0 0; }
.stock-detail-brief dd { margin: 0 0 0.5rem 0; }



/* PAGINATION */
.pagination { list-style: none; margin: 0 0 1.5em 0; overflow: hidden; clear: both; }
.pagination li { float: left; margin: 0 4px 0 0; }
.pagination li a { display: block; width: 36px; height: 36px; line-height: 36px; font-weight: bold; color: #FFF; text-align: center; background: #7CB934; }
.pagination li a.active, .pagination li a:hover, .pagination li a:focus { background: #68804D; }

/* BADGES + LOGOS */
.badges { width: 100%; text-align: center; list-style: none; margin: 0; }
.badges li { display: inline; text-align: center; }
.badges ul, .badges ul li { padding: 0; margin: 0; }


/* MISC */
.text-center { text-align: center; }
.video { position: relative; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden; margin: 0 0 1.5em 0;  }
.video iframe, .video object, .video embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%;  }
.map { margin: 0 0 1.5em 0; }
.map iframe { width: 100%; }

.bg-video {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    overflow: hidden;
    z-index: -100;
}

.bg-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
@media (min-aspect-ratio: 16/9) {
  .bg-video video {
    height: 300%;
    top: -100%;
  }
}

@media (max-aspect-ratio: 16/9) {
  .bg-video video {
    width: 300%;
    left: -100%;
  }
}


/* MESSAGES */
.important { padding: 1rem 0; border-top: 2px dotted #149647; border-bottom: 2px dotted #149647; margin: 0 0 2rem 0; }
.important h2 { font-size: 1.125rem; margin: 0; }
.important p { font-size: 0.925rem; margin: 0.5rem 0 0 0; }
.important ul, .important ol { font-size: 0.925rem; margin: 0.5rem 0 0 1.5rem; }

/* CALENDAR */
.Xcal { float: left; width: 48%; margin-bottom: 2em; }
.Xcal1 { margin-right: 4%; clear: left; }
.Xcal2 {  }
.calendar-table { width: 100%; font-size: 0.925rem; background: #1E1E1E; margin: 0; }
.calendar-table caption { font-weight: bold; color: #555; padding: 2px 0; }
.calendar-table th { width: 14.29%; font-weight: bold; color: #FFF; text-align: center; padding: 4px 0; background: #666; border-right: 1px solid #fff; border-bottom: 1px solid #fff; }
.calendar-table td { color: #757575; text-align: center; padding: 0; background: #F5F5DC; border-right: 1px solid #fff; border-bottom: 1px solid #fff; }
.calendar-table td span { display: block; padding: 0.5em 0;  }
.calendar-table td a { font-weight: bold; color: #006600; text-decoration: none; }
.calendar-table td.highlight a { color: #FFF; }
.calendar-table td a.single { display: block; font-weight: bold; color: #FFF; background: #009900; }
.calendar-table td a.cal-event-link { color: #006600; }

.badges-list { list-style: none; text-align: center; margin: 0; }
.badges-list li { display: inline-block; margin: 0.25rem; }
.badges-list img { max-height: 80px; }


/* BOTTOM */
.footer { color: #eefdf0; }
.footer a { color: #f6edd9; }
.footer-heading { font-size: 1rem; color: #FFF; }
.footer-heading a { color: #f6edd9; }
.footer-links { font-size: 0.925rem; list-style: none; margin: 0 0 1.5rem 0; }
.footer-links li { margin: 0 0 0.5rem 0; }

.footer-address::before { content: " "; display: block; width: 142px; height: 3px; background: #149647; margin: 1rem auto; clear: both; }
.footer-address { font-size: 0.925rem; text-align: center; margin: 0 0 1rem 0; }
.footer-address p { margin: 0.5rem 0; }

.footer-social { list-style: none; text-align: center; margin: 1rem 0; }
.footer-social li { display: inline-block; margin: 0 0.25rem; }
.footer-social a {}
.footer-social a i { font-size: 1.6rem; color: #FFF; }
.footer-social span { display: none; }
.footer-copyright { max-width: 1024px; font-size: 0.85rem; color: #CCC; text-align: center; clear: both; margin: 0 auto; }

/* CHECKOUT */
.cart-item {  padding: 1em 0 0 0; border-top: 1px dotted #CCC; overflow: hidden; clear: both; }
.cart-item-info { float: left; width: 60%; font-size: 0.85em;  }
.cart-item-info dd { margin: 0 0 0.25em; }
.cart-item-total { float: right; width: 40%; font-size: 0.85em; text-align: right; }

/* BUTTONS */
.center { text-align: center; clear: both; }
.btn { display: inline-block; font-weight: 700; color: #FFF; text-align: center; line-height: 1; margin: 0; border: 0; transition: 0.5s; cursor: pointer; }
a.btn { color: #FFF; text-decoration: none; line-height: 1; }
.btn-l { font-size: 16px; padding: 15px 18px; }
.btn-m { font-size: 14px; padding: 10px 15px; }
.btn-s { font-size: 12px; padding: 8px 12px; }
.btn-pri { background: #009933; }
.btn-pri:hover { background: #006633; }
.btn-sec { background: #A9A9A9; }
.btn-block { display: block; width: 100%; }

/* link styles */
.link { display: inline-block; font-weight: 700; color: #FFF; text-align: center; text-decoration: none; line-height: 1; margin: 0; border: 0; transition: 0.5s; cursor: pointer; }
.link:link { color: #FFF; }
.link:visited { color: #FFF; }
.link:hover { color: #FFF; }
.link:active { color: #FFF; }
.link:focus { color: #FFF; }
.link-l { font-size: 16px; padding: 1rem 1.5rem; }
.link-m { font-size: 14px; padding: 0.8rem 1.2rem; }
.link-s { font-size: 12px; padding: 0.6rem 1rem; }
.link-pri { background: #157535; border: 2px solid #f6edd9; border-radius: 40px; }
.link-pri:hover { background: #006633; }
.link-sec { background: #A9A9A9; }
.link-block { display: block; width: 100%; }
 

/* FORMS */
form { margin: 0 0 1.5rem 0; overflow: hidden; }
form.checkout { }
.contact form { }
form p { margin: 0 0 1rem 0; }
form ul { list-style: none; margin: 0 0 1rem 0; }
fieldset { margin: 0 0 2rem 0; }
legend { font-size: 1.2rem; font-weight: 700; color: #333; line-height: 1.5; padding: 0; margin: 0 0 1rem 0; clear: both; }
label { display: block; cursor: pointer; }
input,select,textarea { box-sizing: border-box; }
select { max-width: 100%; height: 40px; font-size: 16px; border: 1px solid #CCC; }
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"] { width: 100%; font-size: 16px; height: 40px; text-indent: 0.5rem; border: 1px solid #CCC; }
textarea { width: 100%; height: 140px; font-size: 16px; padding: 0.5rem; border: 1px solid #CCC; }
input.offercode { width: 140px; }
input.qty { width: 40px; }
select.qty { width: 60px; }
.cart-totals { padding: 1rem 0 0 0; border-top: 1px dotted #CCC; overflow: hidden; clear: both; }
.cart-totals dt { float: left; width: 150px; clear: left; }
.cart-totals dd { text-align: right; overflow: hidden; }
.checkoutlink-pri { text-align: right; }
.checkoutlink-sec { display: inline-block; margin-right: 10px; }

.error-text { font-weight: 700; color: red; }


@media screen and (min-width: 480px) {
.grid-products { display: grid; grid-gap: 2rem; grid-template-columns: 1fr 1fr; }
    .grid-products-upsells { display: grid; grid-gap: 2rem; grid-template-columns: 1fr 1fr; }
}

@media screen and (min-width: 768px) {
.hero { padding: 20vh 1rem 20vh 1rem; }
.grid-products { display: grid; grid-gap: 2rem; grid-template-columns: 1fr 1fr 1fr; }
    .grid-products-upsells { display: grid; grid-gap: 2rem; grid-template-columns: 1fr 1fr; }
}


@media screen and (min-width: 1024px) {

.logo { top: 0; left: 1rem; padding: 0.75rem 0.75rem 1.25rem 0.75rem; background: #FFF; }
.logo img { width: 110px;}

.nav-toggles { display: none; }
.menu { display: block; font-size: 0.925rem; list-style: none; line-height: 48px; text-align: right; padding: 0; margin: 0; z-index: 999; }
.menu li { display: inline-block; padding: 0; margin: 0 0 0 0; }
.menu li a { display: block; font-weight: 700; color: #00FF00; text-decoration: none; padding: 0 0.5rem; background: transparent; transition: 0.25s; }
.menu li a:hover { color: #FFF; }
.menu li ul { display: none; position: absolute; min-width: 200px; max-width: 280px; font-size: 0.85rem; list-style: none; text-align: left; line-height: 1.2; background: #2E6B4A; margin: 0; z-index: 999; }
.menu li ul.submenu-last { right: 0; }
.menu li ul li { display: block; padding: 0; border-top: 1px solid #1D5A39; margin: 0; }
.menu li ul li a { display: block; font-weight: 400; color: #FFF; padding: 0.65rem 0.75rem; }
.menu li ul li a:hover { background: #0E964C; }
.menu li:hover { background: #2E6B4A; }
.menu li:hover ul { display: block; }

.grid-products { display: grid; grid-gap: 2rem; grid-template-columns: 1fr 1fr 1fr 1fr; }
    .grid-products-upsells { display: grid; grid-gap: 2rem; grid-template-columns: 1fr 1fr; }

}






