@charset "utf-8";
/* See https://html5boilerplate.com
   and http://www.cssdrive.com/cssautoprefixer/
*/
/* ------------------------------------------------------- */
/* NORMALIZE.CSS */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
	position: relative;
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  appearance: textfield;
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}
/* END OF NORMALIZE.CSS */
/* ------------------------------------------------------- */
/* BOILERPLATE PART 1

/*! HTML5 Boilerplate v7.2.0 | MIT License | https://html5boilerplate.com/ */

/* main.css 2.0.0 | MIT License | https://github.com/h5bp/main.css#readme */
/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */

/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */

html {
  color: #222;
  font-size: 1em;
	line-height: 1.4;
}

/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * Vendor-prefixed and regular ::selection selectors cannot be combined:
 * https://stackoverflow.com/a/16982510/7133471
 *
 * Customize the background color to match your design.
 */

::-moz-selection {
  background: #b3d4fc;
  text-shadow: none;
}

::selection {
  background: #b3d4fc;
  text-shadow: none;
}

/*
 * A better looking default horizontal rule
 */

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

/*
 * Remove default fieldset styles.
 */

fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

/*
 * Allow only vertical resizing of textareas.
 */

textarea {
  resize: vertical;
}

/* ==========================================================================
   Browser Upgrade Prompt
   ========================================================================== */

.browserupgrade {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0;
}

/* END OF BOILERPLATE PART 1
/* ------------------------------------------------------- */
/* TTI CUSTOM STYLES */

/* --- SMARTPHONE, TABLET, TABLET LARGE & DESKTOP  --- */

/* UTILITY */

/* CSS variables */
:root { /* Welcome to Yorkshire colours */
	--light-grey:           #f4f3ea;
	--dark-grey:            #5e6a71;
	--light-blue:           #00b4e5;
	--pink:                 #ff99cc;
	--apricot:              #ff9900;
	--light-green:          #cccc00;
	--magenta:              #ff3399;
	--greeny-blue:          #00ffcc;
	--dark-blue:            #008cb3;
	--light-cream:          #fff9e6;
	--side-width:           12.5rem; /* side column in desktop mode */
	--link-color:           #0000ff;
	--link-color-underline: rgba(0, 0, 255, 0.3);
}

/* Fonts */
@font-face { /* Generated by Font Squirrel */
	font-family: 'trebuchet_msregular';
	src: url('trebuchet_ms-webfont.eot');
	src: url('trebuchet_ms-webfont.eot?#iefix') format('embedded-opentype'),
			 url('trebuchet_ms-webfont.woff') format('woff'),
			 url('trebuchet_ms-webfont.ttf') format('truetype'),
			 url('trebuchet_ms-webfont.svg#trebuchet_msregular') format('svg');
	font-weight: normal;
	font-style: normal;
}

/* Loader */
.loader {
	position: fixed;
	top: 50%;
	top: calc(50% - 60px);
	left: 50%;
	left: calc(50% - 60px);
	z-index: 100;
	width: 120px;
	height: 120px;
	border: 16px solid var(--light-grey);
	border-top: 16px solid var(--dark-blue);
	border-radius: 50%;
	-webkit-animation: spin 2s linear infinite, fadeinSpin 2s;
	        animation: spin 2s linear infinite, fadeinSpin 2s;
}

@-webkit-keyframes spin {
	0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
	100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
}

@keyframes spin {
	0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
	100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
}
@-webkit-keyframes fadeinSpin {
	0%   {opacity: 0;}
	50%  {opacity: 0;}
	100% {opacity: 1;}
}
@keyframes fadeinSpin {
	0%   {opacity: 0;}
	50%  {opacity: 0;}
	100% {opacity: 1;}
}

/* Text */
h1, h2, h3, h4, h5 { 
	font-family: trebuchet_msregular, Cabin, Arial, Helvetica, sans-serif;
	font-weight: bold; 
	color: var(--dark-grey);
}
h1 {
	margin: 0; 
	padding: 1.0rem 0 0 0; 
	font-size: 2.1rem; 
}
h2, h3, h4, h5, p, .MsoNormal { 
	margin:0; 
	padding: 0.5rem 0;
}
h2 {font-size: 1.6rem; color: var(--light-blue); }
h3 {font-size: 1.5rem; color: var(--magenta); }
h4 {font-size: 1.25rem; }
h5 {font-size: 1.0rem; }
h6 {font-size: 0.75rem; }
p, li { /* 	font-size set on main */
	color: var(--dark-grey);
	overflow-wrap: break-word;
}
.smalleritalic {font-size: smaller; font-style: italic; }
.smallitalic {font-size: small; font-style: italic; }
.largeitalic {font-size: large; font-style: italic; }

/* Lists */
ul { 
	list-style: square inside; 
	padding-left: 1em;
}
ol { 
	list-style: decimal inside; 
	padding-left: 1em;
}
.list li { padding-bottom: 0.5em !important }

/* Links */
a {
	overflow: hidden;
	color: var(--link-color);
	border-bottom: 1px solid var(--link-color-underline);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}
a:hover { 
	color: var(--magenta); 
	border-bottom: 1px solid var(--magenta);
}
a img:hover {
	box-shadow: 0 0 0 1px var(--light-grey), 0 0 0 3px var(--light-blue);
}

.pseudolink { color: var(--link-color); text-decoration:underline; cursor:pointer; }

#headerLink {
	display: block;
	width: 100%;
	height: 100%;
}

/* Images */
img, object, embed, video {
	max-width: 100%; /* see http://www.alistapart.com/articles/fluid-images */
}
img { 
	background: white; 
	border: 1px solid var(--dark-grey); 
	padding: 0; 
	margin: 1%;
}

.keylinelink, .keyline {
	border: 1px solid var(--dark-grey);
}
.keylinelink:hover, .keylinelink:focus {
	margin: 4px;
	border: 2px solid var(--link-color);
}
.nokeyline { border: none; }

.block {
	display: block;
}
.width5pc   { width:  5%;  }
.width10pc  { width: 10%;  }
.width12pc  { width: 12%;  }
.width15pc  { width: 15%;  }
.width20pc  { width: 20%;  }
.width25pc  { width: 25%;  }
.width30pc  { width: 30%;  }
.width35pc  { width: 35%;  }
.width40pc  { width: 40%;  }
.width45pc  { width: 45%;  }
.width50pc  { width: 50%;  }
.width55pc  { width: 55%;  }
.width60pc  { width: 60%;  }
.width70pc  { width: 70%;  }
.width72pc  { width: 72%;  }
.width77pc  { width: 77%;  }
.width80pc  { width: 80%;  }
.width98pc {	width: 98%; }
.width100pc {	width: 100%; }
.centered {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

div.galleryie6 img {
  border: solid 1px black;
  vertical-align: middle;
	margin: 3px;
}
.subspic {
	width: 98%;
	margin: 6px auto 0 auto;
}
/* Forms */
button, .button, .linkButton, input[type=submit], input[type=button] {
	margin: 0.125rem;
	padding: 0.75rem 0.25rem 0.75rem 0.25rem;
	background: var(--light-grey);
	border: 1px solid var(--dark-grey);
	border-radius: 0.25rem;
	text-align: center;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--link-color);
	text-decoration: none;
	overflow: visible;
	cursor: pointer;
}
button:hover, .button:hover, .linkButton:hover, input[type=submit]:hover, input[type=button]:hover, .logo-link:hover, .menu-icon-link:hover,
.menu-text:hover, .menu-text h4:hover, .menu-assitiveA16px:hover, .menu-assitiveA20px:hover, .menu-assitiveA25px:hover {
	box-shadow: 0 0 0 1px var(--light-grey), 0 0 0 3px var(--light-blue);
	color: var(--magenta) !important;
}
input[type=button].to-top-menu {
	background: var(--magenta);
	color: white !important;
}

.entryContainer {
	clear: both;
}
.entryContainer label {
	clear: none;
	float: left;
  font-size: 1.125em;
  color: var(--dark-grey);
  font-weight: bold;
	text-align: right;
	padding: 0.125rem 0.375rem 0 0;
	margin: 0.375rem 0.5rem;
	width: 25%;
}
.entryContainer input, .entryContainer textarea, .entryContainer select, .entryContainer p {
	clear: none;
	float: left;
	text-align: left;
	padding-right: 6px;
	margin: 6px 0;
	width: 65%;
}
.entryContainer select {
	width: auto;
}
.entryContainer input[type=button],
.entryContainer input[type=submit] {
	clear: none;
	margin-right: 0.75rem;
	width: auto;
}
.entryContainer input[type="checkbox"], .entryContainer input[type="radio"] {
	width: 3em;
	margin-top: 0.8em;
}
.ckbox {
	padding: 0 10% 0 28%;
}

input:required:invalid, input:focus:invalid {
	background-image: url(../images/inputinvalid.png); 
	background-position: right top; 
	background-repeat: no-repeat; 
	} 
input:required:valid { 
	background-image: url(../images/inputvalid.png); 
	background-position: right top; 
	background-repeat: no-repeat; 
}
input[type="text"], input[type="tel"], input[type="email"], input[type="password"], input[type="search"],
	textarea, select {
  background-color: var(--light-cream); 
}
.form-central {
	position: absolute;
	top: 10%;
	left: calc(0.15*(100% - 1rem));
	width: calc(0.7*(100% - 1rem));
	max-height: 80%;
	overflow-y: auto !important;
	z-index: 1;
	display: none;
}

.form-central input#updatebutton, .form-central input#deletebutton {
	display: none;
}

/* Advert rotation */
.advert {
	position: absolute; 
	z-index: 1; 
	left: 50%; 
	width: 100%;	
	margin-left: -50%; 
	text-align: center;
}

.clickadvert {
	background-color: var(--dark-grey); 
	color: white; 
	width: 100%;
	max-width: 200px;
	margin: 0px auto 0px auto; 
	font-size: 0.875rem;
	line-height:1.125rem;
}

.clickadvert a, .clickadvert img  {
	width: 100%;
	margin: 0;
}

/* Miscellaneous */
hr {margin: 1px 1px;}
.bold {font-weight: bold;}
.clear { clear: both; } /* universal clear */
.left { float: left; } /* universal float left */
.right { float: right; } /* universal float right */
.align-left { text-align: left; } /* universal text left */
.align-right { text-align: right; } /* universal text right */
.center { text-align: center;}
.red { color: red ; }
.green { color: green ; }
.blue { color: blue ; }
.dark-grey { color: var(--dark-grey); }
.background { background-color: var(--light-grey); }
.background-magenta { background-color: var(--magenta) !important; }
.noMargin { margin: 0; }
.noLeftMargin { margin-left: 0; }
.noRightMargin { margin-right: 0; }
.absolute { position: absolute; }
.hidden  { display: none; }
.visible { display: visible; }
.printonly, .printinline, .hidden, span.kgh, .clearfixExtra {display: none; }
.bordered {border: 1px solid black; }
.noBorder {border: none !important; }
.ui-datepicker{ z-index: 9999 !important;} /* to keep datepicker above everything */
.shaded  { background-color: #e8e8e8; }
.shaded1 { background-color: #e5f9ff; }
.shaded2 { background-color: #ffe5f2; }
.no-update { /* used to cover details pages when user not logged in */
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(255,255,255,0.2);
	z-index: 100;
}

/* MAIN LAYOUT */
* { /* Safari/Chrome, other WebKit */    /* Firefox, other Gecko */
	box-sizing: border-box;         /* Opera/IE 8+ */
}

html, body {
	margin: 0;
	padding: 0;
	scroll-behavior: smooth;
}
body {
	position: relative;
	width: 100vw;
	height: 100vh;
  line-height: 1.4;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
		/* see https://css-tricks.com/snippets/css/system-font-stack */
	color: var(--dark-grey);
	background: url(/images/backPhone.jpg) fixed repeat-x right top;
  background-attachment: fixed;
	background-size: cover;
  background-position: right top; 
}
.body-backdrop { /* white area over body to lighten background there */
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: white;
	opacity: 0.5;
	margin: 0;
}

/* Top grid
 Item        image size  CSS px      rem
 TTI logo      420x84    140x28   8.75x1.75
 Menu icon      84x84     28x28   1.75x1.75
 Grid cells   168x168     56x56   3.50x3.50   (all min sizes)      
 Advert(3x5)  504x840    168x280 10.05x17.50       
*/

@media screen { /* print not recognising grid */
	.grid-top {
		max-width: 60rem;
		padding: 0 0.375rem;
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 2.5rem 1fr auto auto auto;
		grid-gap: 0 0.5rem;
	}
}

/* Header grid */
.menu-header {
	position: relative;
	grid-column: 1 / -1;
  grid-row: 1;
	grid-gap: 0 0.25rem;
	background: white;
	border-bottom: 1px solid var(--magenta);
	display: grid;
  grid-template-columns: 8.75rem 1.75rem 1.75rem 1.75rem 4.0rem auto 1.75rem;
  grid-template-rows: 2.5rem;
	z-index: 30; /* so that search box sits above the main part of the page */
}
/* TTI logo top left */
.logo-link {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
	border: none;
}
.logo {
	max-height: 1.75rem;
	margin: 0;
	border: none;
}

/* Visually enlarge whole page with A A A */
.menu-assitive16px {grid-row: 1; grid-column: 2; position: relative; }
.menu-assitive20px {grid-row: 1; grid-column: 3; position: relative; }
.menu-assitive25px {grid-row: 1; grid-column: 4; position: relative;  }
.rem16px { font-size: 16px; }
.rem20px { font-size: 20px; }
.rem25px { font-size: 25px; }
#rem16px { font-size: 16px; cursor: pointer }
#rem20px { font-size: 20px; cursor: pointer }
#rem25px { font-size: 25px; cursor: pointer }
.menu-assitiveA16px {	position: absolute;	bottom: 0.35rem; left: 0.4rem;  font-weight: bold; color: var(--magenta)   }
.menu-assitiveA20px {	position: absolute;	bottom: 0.30rem; left: 0.35rem; font-weight: bold; color: var(--dark-grey) }
.menu-assitiveA25px {	position: absolute;	bottom: 0.25rem; left: 0.3rem;  font-weight: bold; color: var(--dark-grey) }

/* Menu (text) */
.menu-text {
	grid-column: 5;
	grid-row: 1;
	align-self: center;
	justify-self: center;
	opacity: 0;
	font-size: 1.25rem;
	font-weight: bold;
	border-bottom: none !important;
}

/* Search bar top centre */
.search-box {
	position: absolute;
	opacity: 0;
	left: -100vw; /* off screen until needed */
	grid-column: 1 / -1;
  grid-row: 1;
	justify-self: center;
  align-self: center;
	width: 80vw;
	height: 2.625rem;
	background-color: white;
	border: 1px solid var(--dark-grey);
	display: grid;
	grid-template-columns: 4.5rem auto 5rem;
	grid-template-rows: 2.5rem;
}
.search-box label {
  grid-column: 1;
  grid-row: 1;
	justify-self: right;
  align-self: center;
	margin-right: 0.25rem;
	color: var(--magenta);
}
.searchContainer {
	grid-column: 2;
	grid-row: 1;
	justify-self: center;
  align-self: center;
	position: relative;
	width: 100%;
	padding: 0;
	margin: 0;
}
.searchContainer input {
	width: 100%;
	padding-left: 2.0rem;
	line-height: 1.4rem;
	margin: 0;
	border: 2px solid var(--magenta);
	-webkit-appearance: none; /* standardises across browsers */
	-moz-appearance: none;
	     appearance: none;
}
.searchContainer .searchImage {
	position: absolute;
	margin: 0;
	bottom: 0.2rem;
	left: 0.5rem;
	width: 1.2rem;
	height: 1.2rem;
	border: none;
	background-color: transparent;
}
.search-box input[type=submit] {
  grid-column: 3;
  grid-row: 1;
	justify-self: left;
  align-self: center;
	margin: 0 0.25rem 0 0.25rem;
	line-height: 1.4rem;
	width: 4rem;
	padding: 0;
}
.search-icon {
	grid-column: 5 / 7;
  grid-row: 1;
	justify-self: end;
  align-self: center;
	width: auto;
	height: 80%;
	cursor: pointer;
	opacity: 1.0;
	border: none;
	background-color: transparent;
}

/* Hamburger icon top right */
.menu-icon-link {
  grid-column: 7;
  grid-row: 1;
  align-self: center;
	justify-self: center;
	border: none;
}
.menu-icon {
	border: none;
	background-color: transparent;
}

/* Central content */
main {
	overflow-y: scroll;
	scroll-behavior: smooth;
	padding-right: 0.375rem;
	z-index: 10;
}
main, p, li {
	font-size: 1.0rem;
}

/* Footer grid */
.menu-footer {
	grid-column: 1 / -1;
  grid-row: 5;
	margin-bottom: 3.5rem;
	display: grid;
  grid-template-columns: auto auto auto;
	color: white;
	font-weight: bold;
	background-color: var(--dark-grey);
	z-index: 10;
}
.text-footer {
  grid-row: 1;
	font-size: 0.7rem;
	margin: 0.15rem;
	white-space: nowrap;
}
.footer-left   { grid-column: 1; justify-self: start; }
.footer-center { grid-column: 2; justify-self: center; }
.footer-center1 {display: inline-block;}
.footer-center2 {display: none;}

.footer-right  { grid-column: 3; justify-self: end; }
.menu-footer .footer-left a { color: white; }
.menu-footer .footer-right a { color: var(--light-grey); }

/* Side/Bottom bar */
.side {
  grid-row: 3;
	justify-self: center;
	width: 100%;
	line-height: 1.75rem;
	display: grid;
	grid-auto-flow: column;
  grid-auto-columns: 5fr minmax(13ch, 1fr);
	grid-gap: 0 0.5rem;
	z-index: 10;
}
.side .socialbox {
	white-space: nowrap;
}
.side .socialbox a {
	margin: 0 0.25rem 0 0.25rem;
	padding-top: .5rem;
}
.side .socialbox a img {
	height: 2rem;
	border: none;
}
.side .advert {
	display: none;
}

/* A-Z PAGE */
.menu-main1, .menu-main2 {
	display: grid;
  grid-template-columns: repeat(auto-fit, minmax(3.5rem, 1fr));
	grid-auto-rows: 3.5rem;
	grid-auto-flow: dense;
	grid-gap: 0.25rem;
	padding: 0.1875rem;
	margin: 0;
	background: transparent;
	overflow: auto;
}
.menu-main2 li {
	background-color: var(--light-blue);
	list-style: none;
}
.menu-main1 a {
	display: grid;
	text-align: left;
	align-items: top;
	padding: 0.1875rem;
}
.menu-main2 a {
	display: grid;
	text-align: center;
	align-items: center;
}
.menu-main1 a, .menu-main2 a {
	height: 100%;
	width: 100%;
	font-size: 0.9375rem;
	font-weight: bold;
	color: white;
	text-decoration: none;
	text-shadow: 1px 1px 2px var(--dark-grey);
	overflow: hidden;
	z-index: 10;
}
.menu-main2 li a img { /* make image, e.g. advert2, fit cell */
	height: 100%;
	width: 100%;
	padding: 0;
	margin: 0;
}
.menu-alphabetic a {
	display:inline-block;
  font-size: 1.4rem;
  position: absolute; 
  text-align: left;
	align-items: center;
  padding-left: 1rem;
	padding-top: 0.5rem;
}
.menu-alphabetic a span {
	margin-right: 1.0rem;
	color:white;
}
.menu-main1 .menu-noimage {
	background: transparent;
	display: none;
}

.menu-alphabetic {
	background: var(--dark-grey); 
	background: -webkit-linear-gradient(left, var(--dark-grey) 0%, var(--light-grey) 110%); 
	background: linear-gradient(90deg, var(--dark-grey) 0%, var(--light-grey) 110%);	
}
.menu-alphabetic-image {
	background: transparent; 
	height: 100%; 
	border: none; 
	margin: 0; 
	float: right;
}
.menu-main1 a:hover, .menu-main2 a:hover, .menu-main3 a:hover, .advert:hover {
	box-shadow: 0 0 0 1px var(--light-grey), 0 0 0 3px var(--light-blue);
}

.size1x1   { grid-column: span 1 ; grid-row: span 1; position: relative; }
.size1x2   { grid-column: span 1 ; grid-row: span 2; position: relative; }
.size1x3   { grid-column: span 1 ; grid-row: span 3; position: relative; }
.size2x1   { grid-column: span 2 ; grid-row: span 1; position: relative; }
.size2x2   { grid-column: span 2 ; grid-row: span 2; position: relative; }
.size2x3   { grid-column: span 2 ; grid-row: span 3; position: relative; }
.size3x1   { grid-column: span 3 ; grid-row: span 1; position: relative; }
.size3x2   { grid-column: span 3 ; grid-row: span 2; position: relative; }
.size3x3   { grid-column: span 3 ; grid-row: span 3; position: relative; }
.size5x2   { grid-column: span 5 ; grid-row: span 2; position: relative; }
.advert2   { grid-column: 1 / 5;   grid-row: span 7; position: relative; background-color:transparent !important;}
.fullwidth { grid-column: 1 / -1;  grid-row: span 1; position: relative; }

/* Animation on index page */
.menu-main1 article { /* fade in most picture links */
	opacity: 0;
	z-index: 10;
	-webkit-animation: animation-home 2s ease-out 1.5s forwards;
	        animation: animation-home 2s ease-out 1.5s forwards;
}
@-webkit-keyframes animation-home {
	to   {opacity: 1.0;}
}
@keyframes animation-home {
	to   {opacity: 1.0;}
}
#menu-thirsk {
	top: 10.5rem;
	left: 0rem;
	width: 150%;
	max-width: calc(100vw - 1.5rem);
	height: 150%;
	max-height: calc(0.4*(100vw - 1.5rem));
	z-index: 20;
	-webkit-animation: animation-thirsk 0.5s ease-out 1s forwards;
	        animation: animation-thirsk 0.5s ease-out 1s forwards;
}
@-webkit-keyframes animation-thirsk {  /* position animation on home page link */
	to   {
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
}
@keyframes animation-thirsk {  /* position animation on home page link */
	to   {
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
}
#menu-thirsk a { /* font size animation on home page link */
	font-size: 250%;
	z-index: 20;
	-webkit-animation: animation-thirsk-text 0.5s ease-out 1s forwards;
	        animation: animation-thirsk-text 0.5s ease-out 1s forwards;
}
@-webkit-keyframes animation-thirsk-text {
	to   {font-size: 115%;}
}
@keyframes animation-thirsk-text {
	to   {font-size: 115%;}
}
#menu-thirsk, #menu-alphabetic { /* exclude these from fade in animation */
	opacity: 1.0; /* no opacity animation */
}

/* Boxes */
.wrapleft  {width: 100%; z-index: 1;}
.wrapright {width: 100%; z-index: 1;}
.wrapright ul, .wrapright ol { margin: 5px; padding: 0; list-style: none;}
.head-side {display: none;}
.socialItem {
	float: left;
	padding: 0.2em 0.5em;
}

/* CONTENT PAGES */

/* Sub-menus */
.menuLevel3 ul {
	display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: start;
  align-content: flex-start;
	margin: 0;
}
.menuLevel3 ul li {
	margin: 0;
  padding: 0.2rem 0.4rem;
	list-style-type: none;
	font-size: 0.875rem;
	padding-bottom: 0.2rem;
}
.menu-highlight {
	color: var(--magenta);
}

/* Boxes & tables */
.box {
  margin: 0.375rem 0;
  padding: 0.375rem 1%;
  border: 0.125rem solid var(--dark-blue);
	overflow: hidden;
  background-color: white;
  border-radius: 0.375rem;
	box-shadow: var(--dark-grey) 0.1875rem 0.1875rem 0.5625rem;
	z-index: 10;
}

.grid-table {
	display: grid;
  grid-template-columns: auto auto;
	grid-auto-rows: minmax(2.5rem, auto);
	grid-gap: 0 0.5rem;
  -webkit-box-align: start;
  align-items: start;
  justify-items: start;
	font-size: 1.0rem;
}
.grid-full-row {
	grid-column: 1 / -1;
}

table {
	width: 100%;
}
.tableFixed {
	table-layout: fixed;
	width: 100%;
}
td {
	padding: 3px;
	text-align: left;
  vertical-align: middle;
}
tr {
	page-break-before: auto; /* 'always,' 'avoid,' 'left,' 'inherit,' or 'right' */
	page-break-after: auto; /* 'always,' 'avoid,' 'left,' 'inherit,' or 'right' */
	page-break-inside: avoid; /* or 'auto' */
}

.tabular {
	position: relative;
  margin: 0.5em 0 0.5em 0;
  padding: 6px 6px 6px 6px;
  border: 2px solid var(--dark-blue);  background-color: var(--light-grey);
  border-radius: 6px;
	box-shadow: var(--dark-grey) 3px 3px 9px ;
}
.tabular h2, .tabular h3, .tabular h4, .tabular h5 {
  padding: 12px 3px 0px 3px;
}
.tabular .tableFixed {
  padding: 12px 3px 0px 3px;
	word-break: break-word;
}

.break-word, .tableFixed {
  word-wrap: break-word;
}

.subscriber {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: auto;
  grid-column-gap: 1rem;
  border-bottom: 2px solid var(--light-blue);
  page-break-inside: avoid;
  margin: 0;
	padding: 0.5rem 0 0.5rem 0;
  word-wrap: break-word;
}
.subscriber h3 {
	padding-top: 0; 
}
.subscriber > a {
	border-bottom: 0;
}
.subscriber a img {
  margin: 0;
  width: 100%;
}

/* Card items */
.card-container {
  display: flex;
  flex-wrap: wrap; /* Allows cards to wrap to the next line on smaller screens */
  gap: 1.5rem 0.5rem; /* Space between cards, row & column */
  justify-content: center; /* Center cards if there's extra space in the row */
  max-width: 100%;  /* constrain the max width for very large screens */
	margin: 0.25rem auto 0 auto;
}
.card {
  display: flex;
  flex-direction: column;
  background-color: var(--light-cream);
  border-radius: 1.0rem;
  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.3);
  overflow: hidden; /* Ensures the image corners are also rounded if the image is a direct child */
  width: 100%;
  max-width: 20rem;
}
.card img {
  border: none !important;
  padding: 0;
  margin: 0;
  width: 100%;
  height: 11.25rem; /* Fixed height for landscape orientation */
  object-fit: cover; /* Ensures the image covers the area, cropping if necessary */
}
.card a {
	border-bottom: none;
}
.card-text {
  padding: 0.25rem;
  overflow-wrap: break-word;
}

/* JQuery accordian */
.lineItem {
	margin-top: 0.5em;
	display: block; 
}
.lineItem span {
	background-color: inherit;
	margin-left: 0.2em;
}
#accordion h3 {
	cursor: pointer;
}
#accordion h3:hover {
	text-decoration: underline;
}

/* Video & audio players */
.player {
	position: relative;
	top: 6px;
	left: 50%;
	width: 100%;
	padding-top: 56.25%;
	margin-left: -50%;
	margin-bottom: 6px;
}
.audioplayer {
	position: relative;
	top: 6px;
	left: 50%;
	width: 100%;
	padding-top: 5%;
	margin-left: -50%;
	margin-bottom: 30px;
}
.screen {
  position: absolute;
	height: 100%;
	width: 100%;
  top: 0;
  left: 0;
	z-index: 10;
}
.not-supported {
	color :#fff;
	width: 90%;
	height: 330px;
	padding: 15px;
	background-color:#000;
}

/* Yorkshire image map */
#mapHolder {
  position: relative;
	margin: 0 1% 18px 1%;
	width: 98%;
}
.hotspot {
  position: absolute; 
  padding: 0; 
  margin: 0;
 }
.hotspot a {
	display: block;
	width: 100%;
	height: 100%;
}
#picBronte {
  left: 10%; 
  top: 68%;
	width: 45%;
	height: 30%; 
  z-index: 20;
	background: transparent url('../images/transparent.png') repeat 0 0;  
	 /* IE10 fix: http://alex.leonard.ie/2013/01/27/ie-bug-text-ignores-z-index-of-higher-elements */
}
#picDales {
  left: 0%; 
  top: 0%; 
	width: 34%;
	height: 55%;
  z-index: 20;
	background: transparent url('../images/transparent.png') repeat 0 0;  
	 /* IE10 fix: http://alex.leonard.ie/2013/01/27/ie-bug-text-ignores-z-index-of-higher-elements */
}
#picMoors {
  left: 67%; 
  top: 0%; 
	width: 33%;
	height: 45%;
  z-index: 20;
	background: transparent url('../images/transparent.png') repeat 0 0;  
	 /* IE10 fix: http://alex.leonard.ie/2013/01/27/ie-bug-text-ignores-z-index-of-higher-elements */
}
#picVale {
  left: 42%; 
  top: 0%; 
	width: 16%;
	height: 40%;
  z-index: 20;
	background: transparent url('../images/transparent.png') repeat 0 0;  
	 /* IE10 fix: http://alex.leonard.ie/2013/01/27/ie-bug-text-ignores-z-index-of-higher-elements */
}
#picYork {
  left: 55%; 
  top: 47%; 
	width: 33%;
	height: 30%;
  z-index: 20;
	background: transparent url('../images/transparent.png') repeat 0 0;  
	 /* IE10 fix: http://alex.leonard.ie/2013/01/27/ie-bug-text-ignores-z-index-of-higher-elements */
}

/* --- TABLET, TABLET LARGE & DESKTOP  --- */
@media (min-width: 481px) {
	body {
	  font-size: 0.9rem;
		background: url(/images/backTablet.jpg) fixed repeat-x right top;
	}

	.menu-text {
		opacity: 1.0;
	}
	.search-icon {
		grid-column: 6 / 7;
	}

	main, p, li {
		font-size: 1.25rem;
	}

	.menuLevel3 ul li {
	  font-size: 1.0rem;
	}

	.subscriber {
		grid-template-columns: 30% 1fr;
		align-items: center;
  }
}
	
/* --- TABLET LARGE & DESKTOP  --- */
@media (min-width: 769px) {
	body {
	  font-size: 1.0rem;
		background: url(/images/backTabletLarge.jpg) fixed repeat-x right top;
	}

	.menu-footer {
		margin-bottom: 0.375rem;
	}

	.search-box {
	  grid-column: 6;
		grid-row: 1;
		opacity: 1.0;
		width: auto;
		height: 2.375rem;
		border: none;
		left: 0; /* bring back on stage, was off to left while mobile */
	}
	.search-icon {
		opacity: 0;
	}

	.menu-main1 .menu-noimage {
		display: block;
	}
	
	main, p, li {
		font-size: 1.375rem;
	}
	
	.wrapleft  {float: left;  width: 72.5%;}
	.wrapright {float: right; width: 25.5%;}
	.head-side {display: block;}

	.grid-table {
    grid-template-columns: auto auto auto;
		grid-auto-rows: auto;
	}

	.footer-center1 {display: none;}
	.footer-center2 {display: inline-block;}

	.menuLevel3 ul li {
	  font-size: 1.25rem;
	}

	.col1 {
		clear: both;
		float: left;
		margin-left: 0%;
		width: 49.4506%; 
		display: block;
	}
	.col2 {
		clear: none;
		float: left;
		margin-left: 1.0989%;
		width: 49.4506%;
		display: block;
	}
}
	
/* --- DESKTOP ONLY  --- */
@media (min-width: 967px) {
	body {
	  font-size: 1.0rem;
		background: url(/images/backDesktop.jpg) fixed repeat-x right top;
	}
	
	.grid-top {
		margin: 2.0rem auto;
		height: calc(100vh - 4.0rem);
    grid-template-columns: 1fr 12.5rem;
    grid-template-rows: 2.5rem 1fr auto;
		border: 2px solid var(--dark-grey);
		box-shadow: var(--dark-grey) 3px 3px 9px ;
	}

	main, p, li {
		font-size: 1.25rem;
	}
	
	.menu-footer {
    grid-row: 3;
	}

	.side {
    grid-column: 2;
    grid-row: 2;
		display: block;
		line-height: 2.0rem;
	}
	.side .advert {
		position: relative !important;
		display: block;
		margin-top: .25rem;
	}

	/* Sub-menus */
	button, .button, .linkButton, input[type=submit], input[type=button] {  
		padding: 0.125rem 0.125rem 0.25rem 0.125rem;
	}
	.column1 {
		clear: both;
		float: left;
		margin-left: 0;
		width: 49%; 
		display: block;
	}
	.column2 {
		clear: none;
		float: left;
		margin-left: 2%;
		width: 49%;
		display: block;
	}

	.form-central {
		left: calc(0.2*(100% - 1rem - var(--side-width)));
		width: calc(0.6*(100% - 1rem - var(--side-width)));
	}
}
	
/* END OF TTI CUSTOM STYLES */
/* ------------------------------------------------------- */
/* BOILERPLATE PART 2

/* ==========================================================================
   Helper classes
   ========================================================================== */

/*
 * Hide visually and from screen readers
 */

.hidden {
  display: none !important;
}

/*
* Hide only visually, but have it available for screen readers:
* https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
*
* 1. For long content, line feeds are not interpreted as spaces and small width
*    causes content to wrap 1 word per line:
*    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
*/

.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
  /* 1 */
}

/*
* Extends the .sr-only class to allow the element
* to be focusable when navigated to via the keyboard:
* https://www.drupal.org/node/897638
*/

.sr-only.focusable:active,
.sr-only.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  white-space: inherit;
  width: auto;
}

/*
* Hide visually and from screen readers, but maintain layout
*/

.invisible {
  visibility: hidden;
}

/*
* Clearfix: contain floats
*
* For modern browsers
* 1. The space content is one way to avoid an Opera bug when the
*    `contenteditable` attribute is included anywhere else in the document.
*    Otherwise it causes space to appear at the top and bottom of elements
*    that receive the `clearfix` class.
* 2. The use of `table` rather than `block` is only necessary if using
*    `:before` to contain the top-margins of child elements.
*/

.clearfix:before,
.clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */
}

.clearfix:after {
  clear: both;
}

/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */

@media (min-width: 35em) {
  /* Style adjustments for viewports that meet the condition */
}

@media print,
  (-webkit-min-device-pixel-ratio: 1.25),
  (min-resolution: 1.25dppx),
  (min-resolution: 120dpi) {
  /* Style adjustments for high resolution devices */
}

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   https://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */

@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    /* Black prints faster */
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
		border-bottom: none;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  /*
     * Don't show links that are fragment identifiers,
     * or use the `javascript:` pseudo protocol
     */
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre {
    white-space: pre-wrap !important;
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  /*
     * Printing Tables:
     * https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables
     */
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}

/* END OF BOILERPLATE PART 2
/* ------------------------------------------------------- */

/* TTI PRINT STYLES */

@media print {

	@page  
	{ 
		size: A4;							/* paper size */ 
		margin: 1.0cm; 				/* this affects the margin in the printer settings */ 
	} 

	html, body {
		width: 190mm;
		height: 277mm;
		background-image: none;
		padding: 0;
		font-size: 10pt;
		color: black;
	}

	h1, h2, h3, h4, h5, p, .MsoNormal { padding: 4pt 0; margin:0;}
	h1, h2, h3, h4, h5 { font-family: 'Trebuchet MS', Tahoma, Sans-serif; font-weight: bold; color: black;}
	h1 { 
		font-size: 7.5mm;
		color: #666666; /* dark grey */
		border-top: 2pt solid #cccc00; /* light green */
		border-bottom: none;
		padding-bottom: 11mm;
	}
	h2 {font-size: 18pt; color: #0000c0 !important; } /* blue */
	h3 {font-size: 15pt; color: #ff3399 !important; } /* magenta */
	h4 {font-size: 12.5pt; }
	h5 {font-size: 11pt; }
	main, p, li {font-size: 10pt; color: black; }

	.subspic   { max-width: 45% !important; }
	.eventspic { max-width: 60% !important; }

	.noPageBreak { 
		position: relative;
		display: block;
		page-break-inside: avoid; 
	}
	.clearfixExtra {
		display: block; 
		margin-top: -0.2rem; 
		content: ' ';
	}
	#lineItem {
		border-bottom: 1px solid #666666;
	}
		
	.printonly {
		display: block;
		padding: 0;
		margin: 0;
	}
	.printinline {
		display: inline;
	}
	.displayonly {
		display: none;
	}

	.tabular, .box {
		border: 1px solid white; /* to give no border */
	}
	
	.price { 
		float: right;
		color: #cccc00; /* light green */
		font-weight:bold;
		border: 3pt solid #cccc00;
		margin: 6pt 0pt 0pt 0pt;
		padding: 6pt;
	}

	.barcode {
		float: right;
		width: 4.0cm; 
		border: none; 
		padding: 0;
		margin-top: 2mm;
	}

	.box {
		border: none;
		padding: 0cm 0cm 0cm 0cm;
		margin: 0;
		-webkit-box-shadow: #fff 0px 0px 0px ;
		box-shadow: #fff 0px 0px 0px ;
	}

	a, a:visited, a:hover, .pseudolink {
		color: #0000c0 !important;  /* blue */
		text-decoration: none !important;
	}

	/* Contain floats: http://stackoverflow.com/questions/5087419/what-might-cause-this-css-margin-sharing-bug-in-firefox-to-occur */ 
	.clearfix:before, .clearfix:after { 
		content: "\0020";
		display: block;
		height: 0;
		visibility: hidden;
	}
	.clearfix:after { clear: both; }
	.clearfix { zoom: 1; }

	a[href]:after { /* negates a setting in tti3.css from Boilerplate @print style */
		content: "";
	}
}
