/* debug */

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

/* generics*/

:root /* color definitions */
{
	--primary: #A4DAF6; /* text & header bg: bubble blue */
	--primary-shadow: #A4DAF67f;
	--primary-light: #A4DAF6; 
	--primary-dark: #005171; 
	--secondary: #a3a3d2; 
	--secondary-dark: #555599;
	
	--standard-bg: #fff;
	
	--textcolor: #1740bb;
	
	--headerheight: 4.5rem;
}

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

html, body
{
	font-family: montserrat, Verdana, Geneva, sans-serif;
	min-height: 100vh;
	margin: 0px;
	min-width: 282px;
}

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

	scroll-behavior: smooth;
}	

body
{
	overflow-x: visible; /* because !@#$ header banners. MAKE SURE nothing else falls off. */
}

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

@media (max-width: 304px) 
{
	body
	{
		overflow-x: initial;
	}		
}

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(--textcolor);
}

.content a
{
	color: var(--primary-dark);
	text-decoration: none;
	background-color: var(--standard-bg);
	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
{
	color: var(--primary-dark);
	background-color: var(--primary-light);
}

.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, .title
{
	position: relative; /* to enforce background banners */
	z-index: 10;

	clear: both; /* no images to float through headers */
	
	font-weight: 700;
	
	text-shadow: 
		 1px  1px 0px var(--standard-bg),
		-1px  1px 0px var(--standard-bg),
		 1px -1px 0px var(--standard-bg),
		-1px -1px 0px var(--standard-bg);
	/* -webkit-text-stroke: 1px var(--standard-bg); /* this actually eats into the fonts */

	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: baseline;
	align-items: last baseline; 
}

h1
{
	font-size: 2rem;
	padding: 2px 2.5rem 1rem 1.5rem;
}

h2
{
	font-size: 1.8rem;
	padding: 10px 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(--textcolor);

	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/hbg.jpg'); /* bug in Firefox Mobile */
	background-size: 100% 100%;
	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;
	padding-left: 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;
}

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

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 inset var(--secondary);
	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(--textcolor);

	padding: 0rem;

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

	display: flex;
	justify-content: space-between;
	align-items: center;
}
	
.header::before
{
	background-image: url('img/bg.jpg');
	background-size: 100% 100%;
	background-position-x: 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;
	padding-top: 50px;
}

.footer
{
	min-height: 3rem;

	flex-direction: row-reverse;
	
	gap: 1rem; 
	padding-right: 1rem;
}

.header a, .footer a
{
	color: var(--textcolor);
	background: var(--standard-bg);
	text-decoration: none;
}

.title
{
	color: var(--textcolor);
	font-size: 3.5rem;
	font-variation-settings: "wght" 700; /* font-weight: 900; doesn't explicitly control the fonts weight axis */
	padding: 1rem;
}

.title a
{
	background-color: rgb(0,0,0,0);
}	

.logo
{
	flex-grow: 1;
}

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

	padding-top: 50px;
	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;
	border: 1px solid white;
	
	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-dark);
	background: var(--standard-bg);
}

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

	color: var(--textcolor);
    background: #fff;
    border: none;
    padding: 0.5rem;
	padding-top: 0.4rem;
    cursor: pointer;

	border-radius: 12px;
	border: 1px solid white;
}

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

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

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

@media (max-width: 1100px) 
{
	.menu
	{
		display: none;

		flex-direction: column;
		justify-content: space-between;
		align-content: left;
		align-items: flex-start;

		list-style: disc; 

		background-color: var(--primary);		
		/* 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 a
	{
		border: none;
		background-color: var(--primary);
	}
	
	.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;
    }  */
}

@media (max-width: 370px) 
{
	.logo
	{
		display: none;
	}
}

#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(--textcolor);
	background-color: var(--primary);
	border: 2px solid var(--standard-bg);
	
	text-decoration: none;
}

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

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