:root {
	--highlight-colour: #8A2BE2;
	--int-link: rgba(138, 43, 226, 0.1);
	--ext-link: rgba(255, 0, 0, 0.1);
	--border-rad: 1.5em;
}
* {
  box-sizing: border-box;
}
html {
	background-color:#eee;
	font-family:Verdana, Arial, Helvetica, sans-serif;
	font-style:normal;
	font-weight:normal; 
	font-variant:normal; 
	text-transform:none;
	text-decoration:none;
	color:#333;
}
table {width:100%;}
ul {list-style:square;}
.text_white {color:#FFF;}
/* small print */ 
.small {font-size:0.8rem; line-height:1rem; color:#999;}
/* headers */
h1 {font-size:1.52rem; font-weight:bold;}
h2 {font-size:1.48rem; font-weight:bold;}
h3 {font-size:1.44rem; font-weight:bold;}
h4 {font-size:1.4rem; font-weight:bold;}
h5 {font-size:1.36rem; font-weight:bold;}
h6 {font-size:1.32rem; font-weight:bold;}
.title {text-align: center;}
p {
	max-width:65ch;
	margin: 0 auto;
}
/* images */
img {
	border-radius: var(--border-rad);
	border: none;
	object-fit:scale-down;
}
img.right {
	display:block;
	float:right;
	clear:left;
	margin:1em 0em 1em 1em;
	text-align:right;
}
img.left {
	display:block;
	float:left;
	clear:right;
	margin:1em 1em 1em 0em;
	text-align:left;
}
/* links */
div#body a[href^="/"]:not(.product) {
	color:#000;
	background-color: var(--int-link);
	position: relative;
}
div#body a[href^="/"]:not(.product)::after {
	content: "";
	position:absolute;
	top:0;
	left:0;
	height:100%;
	width:100%;
	background-color: var(--highlight-colour);
	transform:scaleX(0);
	transform-origin: right;
	transition: transform 2s ease;
	z-index: -1;
}
div#body a[href^="/"]:not(.product):hover::after {
	transform: scaleX(1);
	transform-origin: left;
}
/*
div.highlight a[href^="/"]::after {
	content="";
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	background-color: white;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 2s ease;
	z-index: -1;
}
div.highlight a[href^="/"]:hover::after {
	transform: scaleX(1);
	transform-origin: left;
}
*/
div#body a[href^="http"] {
	color:#000;
	background-color: var(--ext-link);
	position:relative;
}
div#body a[href^="http"]::after {
	content: "";
	position:absolute;
	top:0;
	left:0;
	height:100%;
	width:100%;
	background-color: red;
	transform:scaleX(0);
	transform-origin: right;
	transition: transform 2s ease;
	z-index: -1;
}
div#body a[href^="http"]:hover::after {
	transform:scaleX(1);
	transform-origin: left;
}
/* MAIN DIV */
div#main {
	background-color: #fff;
	border-radius: var(--border-rad);
	position: absolute;
	text-align:left;
	box-shadow:0 0 3em rgba(0, 0, 0, 0.5);
}
div.highlight {
	background-color: var(--highlight-colour);
	color:#000;
	padding:1em;
	border-radius: var(--border-rad);
	margin:1em;
}
div.highlight-border {
	padding:1em;
	border-radius: var(--border-rad);
	border:0.1em solid var(--highlight-colour);
	margin:1em;
}
div.flex-row {
	display: flex;
	justify-content: space-around;
	align-items: center;
	flex-wrap: wrap;
}
div.flex-row > *:nth-child(n+2) {
	padding-left:1em;
	flex-basis: 75%;
}
div.flex-row-wrap {
	display: flex;
	justify-content: space-around;
	align-items: center;
	flex-wrap: wrap;
}
div.product-card {
	display: flex;
	justify-content: space-around;
	align-items: center;
	flex-wrap: wrap;
}
a.product {
	color:#000;
	text-decoration:none;
	background-color: #fff;
	padding:1em;
	border-radius: var(--border-rad);
	margin:1em;
	text-align: center;
	border:0.1em solid var(--highlight-colour);
	box-shadow: 0 0 0.5em var(--highlight-colour);
}
a.product:hover, a.product:focus {
	background-color: var(--highlight-colour);
	box-shadow: none;
	transition: background-color 2s ease, box-shadow 2s ease;
}
a.product img {
	background-color: var(--highlight-colour);
}
/*
div.product-card:hover > a{
	opacity: 0.7;
}
div.product-card:hover > a:hover {
	opacity:1;
	transition: opacity 2s ease;
}
/* body, print, nav & header to be children of main div */
div#body {
	grid-column-start: span 2;
	width: 100%;
	padding:1em 1em 0 1em;
}
div#header-img {
	grid-row-start:1;
	background-color:#FFF;
	border-radius: var(--border-rad) 0;
	padding-left: 1em;
}
div#header-img img {
	width: 95%;
	min-width: 150px;
	border-radius: 0;
}
div#header-h1 {
	background-color:#FFF;
	color:var(--highlight-colour);
	font-size:2rem;
	padding-left:0.75em;
	line-height: 3rem;
	border-top-right-radius: var(--border-rad);
}
/* PRINT */
div#print { /* not been made into grid */
	display:block;
	position:absolute;
	width:100%;
	height:3.2em;
	left:0;
	text-align:center;
	padding-top:20px;
}
/* Footer */
div#footer {
	width:100%;
	grid-column-start: span 2;
	justify-self:stretch;
	align-self:center;
	display: flex;
	justify-content: space-around;
	align-items: center;
	border-top: 1px solid #000;
	margin-top: 1em;
	margin-bottom: 1em;
}
/* NAVIGATION */
div#nav {
	grid-column-start: span 2;
	width:100%;
	background-color:#000;
	display:flex;
	align-content:center;
	flex-wrap:wrap;
}
div#nav ul {
	list-style:none;
}
div#nav li {
	float: left;
   margin-right: 1em;
   position: relative;
}
div#nav a {
	line-height:2.1rem;
	font-size:1.5rem;
	font-weight:bold;
   display: block;
   padding: 5px;
   color: #fff;
   background-color: #000;
   text-decoration: none;
}
div#nav ul ul { /* Hide off-screen fully transparent (more accessible than display: none;) */
	background-color: #fff;
   background: rgba(255,255,255,0);
   position: absolute;
   left: -9999em;
   z-index:100;
}
div#nav ul ul li {
   float: none;
}
div#nav ul ul a {
   white-space: nowrap;
}
div#nav ul li:hover ul {
	left: -3.4em;
}
div#nav ul li:hover a {
   background-color: var(--highlight-colour);
   text-decoration: underline;
   border-radius:0.5em;
	border:1px solid var(--highlight-colour);
	margin: -1px;
}
div#nav ul li:hover ul a {
   text-decoration: none;
   background-color: #000;
}
div#nav ul li:hover ul a:hover {
   background-color: var(--highlight-colour);
   text-decoration:underline;
}
form ul {
	list-style:none;
	margin:0;
	padding:0;
	border:none;
	height:1.5em;
	display: inline; /* display: inline only needed to correct IE bug */
} 
form label {
	text-align:right;
	width:12em;
	float:left;
	clear:right;
	margin-right:0.5em;
}
form input {
	text-align:left;
	float:left;
	clear:right;
	margin-right:2em;
}
form textarea {
	text-align:left;
	float:left;
	clear:right;
	margin-right:2em;
	width:50%;
}
form ul li {
	clear:both;
	width:auto;
	margin-bottom:0.5em;
	padding:0.5em;
	border:none;
}
form fieldset {
	margin-bottom:2em;
	padding:0;
	display: inline; /* display: inline only needed to shrink the fieldset to size, otherwise it takes up 100% width */
} 
form input:focus, select:focus, textarea:focus {background-color:#FF9;}
form input.error, textarea.error {border:#FF0 solid 0.5em; background: #F00;}