/* debug */

* 
{ 
	border: 0px solid black; 
	box-sizing: border-box;
}

/* generics*/

:root /* color definitions  */
{
	--primary: rgb(132,146,227); /* header bg */ 
	--primary-text: #090677; /* text */
	--primary-dark: #721BA5; /* hyperlink text */
	--standard-bg: #F7F7FF; /* text bg */
	--primary-header: var(--primary-text); /* header-text */

	--primary-shadow: lightgray; /* shadow for images */
	--primary-light: rgb(200,210,255); /* (internal) shadow for reviews/speerpunten */
	
	--secondary: var(--primary-light); /* var(--standard-bg); /* h1/h2 bg, borders here and there */
	--secondary-dark: var(--secondary); /* h3 textcolor */
	
	--headerheight: 6.5rem;
	--menuswitchwidth: 1350px; /* for javascript, change below too */
}

@font-face
{
	font-family: 'robotoserif';
	src: url('img/robotoserif.ttf') format('truetype');
	font-weight: 400;	
	font-style: normal;	
}

html, body
{
	font-family: robotoserif, Garamond, Georgia, serif;
	min-height: 100vh;
	margin: 0px;
	min-width: 282px;
	letter-spacing: 0.5px;
}

@media (max-width: 600px) 
{
	html, body
	{
		letter-spacing: 0px;
	}
}

html
{
	font-size: 17px;
	background-color: var(--standard-bg);

	overflow-x: hidden; /* because !@#$ header banners. MAKE SURE nothing else falls off. */
	scroll-behavior: smooth;
}	

@media (max-width: 600px) 
{
	html
	{
		font-size: 15px;
	}

	.title
	{
		font-size: 2rem;
	}
}

body
{
	display: flex;
	flex-direction: column;
}

a:focus
{
	outline: none;
}

.content
{
	max-width: 80rem;
	margin: 0px auto;

	flex-grow: 1; /* TODO why this again? */
	
	color: var(--primary-text);
}

.content a, .link
{
	color: var(--primary-dark);
	text-decoration: none;
	font-weight: 700;
	padding: 0 3px 3px 3px;
	margin: 0 -3px -3px -3px;
	border-radius: 7px;
	
	transition-property: color, background-color;
	transition-duration: 0.25s;
}

.content a:hover, .content a:focus, .link:hover, .link:focus
{
	color: var(--standard-bg);
	background-color: var(--primary);
}

.content a[target="_blank"]:after
{
	content: "";
	background-image: url('img/external.svg');
	/* Image adapted from https://commons.wikimedia.org/wiki/File:Link-external-small-ltr-progressive.svg */
	color: var(--primary);
	opacity: 40%;

	position: relative;
	margin-right: 0.1rem;
	margin-left: 0.1rem;
	width: 0.8rem;
	height: 0.8rem;

	background-size: cover; 
	background-repeat: no-repeat; 
	
	display: inline-block;
}

h1, h2, h3, p
{
	margin: 0px auto;
	margin-bottom: 10px;
}

h1, h2, h3
{
	position: relative; /* to enforce background banners */
	z-index: 10;

	clear: both; /* no images to float through headers */
	
	font-weight: 700;
	
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: last baseline; 
}

h1, h2, h3, .title
{
	text-shadow: 
		 1px  1px 5px var(--standard-bg),
		-1px  1px 5px var(--standard-bg),
		 1px -1px 5px var(--standard-bg),
		-1px -1px 5px var(--standard-bg);
	/* -webkit-text-stroke: 1px var(--standard-bg); /* this actually eats into the fonts */
}

h1
{
	font-size: 2rem;
	padding: 1rem 3rem 1rem 1rem;
}

h2
{
	font-size: 1.8rem;
	padding: 0px 2.5rem 1rem 1.5rem;
}

h3
{
	font-size: 1.6rem;
	padding: 0px 2.5rem 2px 1.5rem;
}

h1, h2
{
	min-height: var(--headerheight);
	color: var(--primary-header);

	background-repeat: no-repeat;
	background-position: right center;
	background-size: auto 100%; 
	/* background-size: cover; */	
}

h3
{
	color: var(--secondary-dark);
}

/* header background banners */

h1::before, h2::before
{
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	height: 100%;

	transform: translateX(-50vw);

	background-image: url('img/default.gif'); /* bug in Firefox Mobile */
	background-color: var(--secondary);
	mix-blend-mode: multiply; 
	
	z-index: -1;
} /**/

@media (max-width: 84rem) /* special calculation case if smaller than 80rem plus 4rem padding */
{
	h1::before, h2::before
	{
		width: 100%;
		transform: translateX(-50%);
	}
}

hr
{
	border: none;
	height: 2px;
	background-image: linear-gradient(to right, transparent 0%, var(--secondary) 30%, var(--secondary) 70%, transparent 100%);
	width: 100%;
	margin: 1rem auto 1.5rem auto;
}

/* paragraphs & tables */

table
{
	border-collapse: collapse;
	margin-bottom: 20px;
}

td
{
	padding: 0 0 0 1rem;
	vertical-align: top;
}

td:first-child
{
	padding-left: 2rem;
}

.textlist li
{
	padding: 0 2rem 0 2rem;
	list-style-position: inside;
	line-height: 1.35;
}

p
{
	padding: 0.7rem 2rem 0.7rem 2rem;
	line-height: 1.35;
}	

p, td, .textlist li
{
	font-size: 1.2rem;
}	

p img
{
	display: inline;
	margin-top: 5px;
	margin-bottom: 13px;
	border-radius: 10px;
	box-shadow: 5px 5px 5px var(--primary-shadow); 
}

p img.left
{
	max-width: calc(min(10rem,50%));
	float: left; 
	margin: 0px 15px 20px 5px;
}

p img.right
{
	max-width: calc(min(10rem,50%));
	float: right; 
	margin: 0px 5px 20px 7px;
}

p img.full
{		
	width: 75%;
	max-width: 60rem;
	
	display: block;
	margin: 0px auto;
}

.logos
{
	max-width: calc(min(150px,33%));
	float: right;
	margin: 5px;
}

.logo
{
	width: 100%;
	height: auto;
	display: block;
}

/* reviews en speerpunten --------------------------------------------------*/

p.citaat
{
	border: 0px inset var(--primary);
	border-radius: 1rem;
 	padding: 0.6rem 0.8rem;
	max-width: 76rem;
	margin: 0px 2rem 0.4rem 2rem;

	color: var(--textcolor);
	background-image: linear-gradient(to bottom right, var(--primary-light), var(--standard-bg), var(--standard-bg), var(--primary-light));	
}

p.auteur
{
	width: 100%;
	text-align: right;
	padding-bottom:5px;
	font-style: italic;
}

p.auteur::before
{
	content: "- ";
}

p.speerpunt
{
	border: 0px inset var(--primary);
	border-radius: 1rem;
 	padding: 0.6rem 0.8rem;
	max-width: 76rem;
	margin: 0px 2rem 0.4rem 2rem;

	color: var(--primary);
	background-image: linear-gradient(to bottom right, var(--primary-light), var(--standard-bg), var(--standard-bg), var(--primary-light));	
}

.reviews
{
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: top;

	width: 100%;
	max-width: 80rem; 
	margin: 0px auto; 
	padding: 1rem 2rem 2rem 2rem;
	gap: 1rem;
	
	list-style: none;
	overflow-x: auto;
	position: relative;
}

.review
{
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	overflow: hidden;
	
	width: 15rem;
	min-width: 15rem;
	min-height: 15rem;

	border: 2px outset var(--primary-shadow);
	border-radius: 1rem;
	padding: 0.5rem;
	padding-bottom: 1rem;

	color: var(--primary);
	background-image: linear-gradient(to bottom right, var(--primary-light), var(--standard-bg), var(--standard-bg), var(--primary-light));
}

.review .titel
{
	color: var(--primary);

	font-size: 1.5rem;
	font-weight: 700;
	padding: 0px;
	
	text-align: center;
	top: 0px;
}

/* stars * /
.review .titel::before
{
	content: "\2605\2605\2605\2605\2605\a"; 
	white-space: pre; /* enable the \a character * /
}
*/

.review .auteur
{
	font-size: 1rem;
	width: 100%;
	text-align: right;
	padding-bottom:5px;
}

.review .inhoud
{
	font-size: 1.2rem;
	text-align: center;
	font-style: italic;
	padding-top: 1rem;

	white-space: normal;
}

@media (max-width: 400px) 
{
	.review .inhoud
	{
		font-size: 1rem;
	}
}

.review .inhoud::before, .review .inhoud::after
{
    content: '"';
}

/* header/footer -----------------------------------------------------------*/

.header, .footer
{
	position: relative;
	
	color: var(--standard-bg);
	background: var(--primary);

	padding-top: 1rem;
	padding-bottom: 1rem;

	margin: 0px auto;
	left: 0px;
	width: 100%;
	max-width: 80rem;

	display: flex;
	justify-content: space-between;
	align-items: center;
}
	
.header::before, .footer::before
{
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 100vw;
	transform: translateX(-50vw);
	background-color: var(--primary);
	
	z-index: -1;
}

.header
{
	flex-direction: row;
}

.header, .header::before
{
	background-image: linear-gradient(to bottom, var(--standard-bg), var(--primary));
}

.footer
{
	min-height: 3rem;
	
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}

.footer span
{
	padding: 1rem;
}

.footer span.right
{
	text-align: right;
	margin-left: auto;	
}

.footer, .footer::before
{
	background-image: linear-gradient(to top, var(--standard-bg), var(--primary));
}

.header a, .footer a
{
	color: var(--primary-dark );
	background: rgba(0,0,0,0);
	text-decoration: none;
}

.title a
{
	background: transparent;
	color: var(--primary-header);
	/* text-shadow: 1px 1px 3px var(--primary-text); */
}

.title
{
	font-size: 3rem;
	font-weight: 900;
	padding: 1rem;
}

.menu
{
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-content: center;
	list-style: none;

	gap: 1rem;
}

.menu, .footer
{
	font-size: 1.2rem;
	text-align: left;
	padding-right: 1rem;
	z-index: 2;
}

.menu a, .footer a, #floater a
{
	padding: 1px 5px 1px 4px;
	margin: 1px;
	border-radius: 9px;

	transition-property: color, background-color;
	transition-duration: 0.25s; /* doesn't work well with pen list-style */
}

.menu a:hover, .footer a:hover, #floater a:hover,
.menu a:focus, .footer a:focus, #floater a:focus
{
	color: var(--primary);
	background: var(--standard-bg);
}

.hamburger
{
	font-size: 1.5rem;
	display: none;

	color: var(--standard-bg);
    background: var(--primary);
    border: none;
	border-radius: 9px;
    padding: 0.5rem;
	padding-top: 0.4rem;
    cursor: pointer;
}

.hamburger:focus 
{
    outline: 2px solid var(--standard-bg);
    border-radius: 10px;
}

.hamburger:focus:not(:focus-visible) 
{
    outline: none;
}

.menuheader
{
	font-style: italic;
	display: none;
}

@media (max-width: 700px) 
{
	.title
	{
		font-size: 2rem;
	}
}

@media (max-width: 1350px) /* same value as menuswitchwidth */
{
	.menu
	{
		display: none;

		flex-direction: column;
		justify-content: space-between;
		align-content: left;
		list-style: disc; 

		background-color: var(--standard-bg);
		/* background-image: linear-gradient(to bottom left, var(--primary), var(--standard-bg)); */
		
		border: 3px outset lightgray;
		border-radius: 15px;
		gap: 4px;
		
		position: absolute;
		top: 0.8rem;
		right: 0.8rem;
		z-index: 100;
		
		padding: 1rem;
		padding-left: 2rem;
		margin: 0px;
	}
	
	.menu li:hover
	{
		/* list-style: url('img/pen.png'); */ /* doesn't work well with fading background transition */
	}

	.hamburger
	{
		display: block;
		margin: 1rem;
	}
	
	.menuheader
	{
		display: inherit;
	}

/*    .hamburger:hover + .menu,
	.menu:hover
	{
        display: flex;
    }  */
}

#floater
{
	position: fixed;
	display: block;
	text-align: center;
	vertical-align: top;
	min-width: 2rem;

	left: 0;
	bottom: 0;
	
	z-index: 99;

	margin-left: 2px;
}

#floater a
{
	font-size: 2rem;
	line-height: 3rem;
	min-height: calc(3rem - 8px);

	color: var(--standard-bg);
	background-color: var(--primary);
	border: 2px solid var(--standard-bg);
	
	text-decoration: none;
}

/* print -------------------------------------------------------------------*/

@media print
{
	*
	{
		color: black !important;
		background-color: white !important;
	}
	
	.menu, .hamburger, .footer, #floater
	{
		display: none !important; 
	}
	
	img
	{
		page-break-inside: avoid;
		break-inside: avoid;
	}
}