/* ===================================================================
   custom.css - basisopzet WebsiteBaker (template bootstrap)
   Opgeschoond op 15-09-2026. Vier aanpassingen t.o.v. de oude versie,
   elk hieronder gemarkeerd met een comment. Verder ongewijzigd.
   Projectstijl hoort NIET in dit bestand: die komt per project in een
   eigen blok onderaan, met een duidelijke markering eromheen.
   =================================================================== */
/* ===== custom-blok: lettertypes sterk samen mediation ===== */
/* Google Fonts via <link> in index.php */
/* ===== einde custom-blok ===== */


html {
	overflow-y: scroll;
}
body {
	color: #555;
	font-size:1.7em;
	margin: 0;
	padding: 80px  0 0 0;
	padding-right: 0!important;
	background: #fff;
}
img {
	max-width: 100%;
	height: auto!important;   /* niet weghalen: neutraliseert de inline height die WB-modules
	                             zelf op afbeeldingen zetten. Wil je ergens toch een vaste
	                             hoogte (object-fit), gebruik daar dan zelf !important. */
}
a,
a:visited,
a:focus,
a:active,
a:hover {
	text-decoration:none;
}
/* de blanket outline-onderdrukking is weggehaald: die haalde de toetsenbord-focus
   van de hele site weg. :focus-visible toont de rand alleen bij toetsenbordgebruik,
   niet bij een muisklik. */
:focus:not(:focus-visible) {
	outline: none;
}
:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}
*::-moz-focus-inner {
	border:0;
}
button::-moz-focus-inner {
	border: 0;
}
.container-fluid {
	overflow: hidden;
}
.nopadding {
	padding: 0;
}
/*menu*/
.navbar-default {
    background-color: #fff;
    border-color: transparent;
}
.navbar {
    min-height: 70px;
	/* border: 15px solid #fff;  weggehaald: wit kader rond de navbar */
}
.navbar-nav > li > a {
    padding-top: 25px;
    padding-bottom: 25px;
}
.navbar-toggle {
    margin-top: 18px;
	border-radius:0;
}
.navbar-collapse {
    max-height: none;   /* was 100% !important */
}
/*einde menu*/
/*flex tabel*/
.buiten {
    display: flex;
    max-width: 800px;
    margin: 0;
}
.binnen {
	flex-grow: 1;
	padding: 5px;
	border: 1px solid #444750;
	width: 33%;
	margin: 1px;
	font-size: 0.9em;
}
.binnen p {
	margin: 0;
}
@media (max-width: 1199px) {
	.buiten {
		flex-wrap: wrap;
	}
	.binnen {
		flex: 1 0 95%;
	}
}
/*einde flex tabel*/
/*fixed*/
.site {
	display: flex;
	min-height: 100vh;
	flex-direction: column;
}
.wrapper {
	flex: 1;
}
footer {
    left: 0;
    bottom: 0;
	padding: 15px;
    width: 100%;
	background: #2d3f44;
	color: #c1c1c1;
}
footer a {
	-webkit-transition: all 0.3s linear;
    -moz-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
	color: #c1c1c1;
}
footer a:hover {
	color: #909090;
}
footer hr {
    width:25%;
    margin:30px auto;
	border-top: 1px solid var(--kleur-lijn, #cc3399);
}
.credit {
	text-align:center;
	font-size:85%;
}
#return-to-top {
    position: fixed;
    bottom: 100px;
	right:0;
    display: block;
	display: none;
	transition: all 0.3s ease;
	background: rgba(0,0,0,.5);
	padding: 15px;
	border-radius: 4px 0 0 4px;
    -webkit-transition: all 0.3s linear;
    -moz-transition: all 0.3s ease;
    -ms-transition: all 0.3s ease;
    -o-transition: all 0.3s ease;
    transition: all 0.3s ease;
}
a#return-to-top {
	color:#fff!important;
}


/* ===== custom-blok: hulpklassen bij de extra sectieblokken =====
   Neutrale layouthulpjes, geen projectstijl. Ze horen bij de sectieblokken 10 t/m 14
   uit index.php en info.php. Weghalen mag, dan vervallen alleen die hulpklassen. ===== */

/* --- fotokader met vaste beeldverhouding ---
   De foto vult het kader en wordt gecentreerd bijgesneden, ongeacht de afmetingen
   van het bestand. De !important op height is nodig, want de basisregel
   img { height: auto !important } bovenaan zou anders winnen. */
.foto-kader {
	position: relative;
	width: 100%;
	overflow: hidden;
}
.foto-kader > img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	object-position: center center;
	display: block;
}
.foto-kader--breed    { padding-top: 66.7%; }   /* 3:2 liggend */
.foto-kader--vierkant { padding-top: 100%; }
.foto-kader--hoog     { padding-top: 150%; }    /* 2:3 staand */
.foto-kader--zeerhoog { padding-top: 220%; }
.foto-kader--vul      { padding-top: 0; height: 100%; }  /* vult de kolomhoogte */
@media (max-width: 767px) {
	.foto-kader--hoog     { padding-top: 120%; }
	.foto-kader--zeerhoog { padding-top: 140%; }
}

/* --- tweekolomsrijen even hoog, foto kan meelopen --- */
@media (min-width: 768px) {
	.rij-2kolommen {
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
	}
	.rij-2kolommen > div > .halfway {
		height: 100%;
	}
	.rij-2kolommen > div > .halfway > .section:only-child {
		height: 100%;
	}
	/* overflow: clip in plaats van de basisregel overflow: hidden op .container-fluid.
	   Beide knippen af, maar hidden maakt van de container een scrollcontainer en dan
	   werkt position: sticky niet meer. clip doet dat niet. */
	.wrapper > .container-fluid.lr,
	.wrapper > .container-fluid.lr .container-fluid {
		overflow: clip;
	}
	.foto-kader--plakt {
		position: sticky;
		top: 100px;
	}
}

/* --- fotocollage: twee staande foto's verspringend onder elkaar --- */
.collage { position: relative; }
.collage__a { width: 45%; }
.collage__b { width: 40%; margin-left: 55%; margin-top: -12%; position: relative; z-index: 2; }
@media (max-width: 767px) {
	.collage__a,
	.collage__b {
		width: 100%;
		margin: 0 0 18px;
	}
}
/* ===== einde custom-blok ===== */

/* ===== custom-blok: projectstijl sterk samen mediation =====
   Kleuren uit het logo: paars #5E4392, donkerpaars #3B2A63, teal #5BB0B8,
   donkerteal #2C7A82 (tekst), oranje #F57A10, geel #FCB122, creme #FBF5F0.
   Achtergrondbanden via een class in de inhoud: .band--lavendel of .band--teal. */

/* --- basis --- */
body {
	font-family: 'Source Sans 3', 'Segoe UI', sans-serif;
	font-size: 18px;
	line-height: 1.65;
	color: #342B40;
	background: #FBF5F0;
	padding-top: 100px;
}
h1, h2, h3 {
	font-family: 'Lora', Georgia, serif;
	font-weight: 500;
	color: #5E4392;
	line-height: 1.2;
}
h2 { font-size: 38px; margin: 0 0 22px; }
h3 { font-size: 24px; margin: 28px 0 12px; }
p { margin: 0 0 16px; }
a { color: #5E4392; }
a:hover, a:focus { color: #3B2A63; text-decoration: underline; }

/* --- menubalk met logo en contactknop --- */
.navbar-default {
	background: #fff;
	box-shadow: 0 2px 14px rgba(59,42,99,.08);
}
.navbar .navbar-brand.logo {
	height: auto;
	padding: 8px 15px 8px 0;
}
.navbar .navbar-brand.logo img {
	height: 84px !important;
	width: auto;
}
.navbar-default .navbar-nav > li > a {
	padding: 38px 13px 36px;
	font-size: 16px;
	font-weight: 600;
	color: #342B40;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
	color: #5E4392;
	text-decoration: none;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
	background: transparent;
	color: #5E4392;
	box-shadow: inset 0 -3px 0 #F57A10;
}
.navbar .btn-contact {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	margin: 27px 0 0 12px;
	padding: 0 22px;
	border-radius: 30px;
	background: #5E4392;
	color: #fff;
	font-size: 16px;
	font-weight: 700;
}
.navbar .btn-contact:hover,
.navbar .btn-contact:focus {
	background: #3B2A63;
	color: #fff;
	text-decoration: none;
}

/* --- kruimelpad --- */
.wrapper > .breadcrumb {
	max-width: 1170px;
	margin: 0 auto;
	padding: 14px 15px 0;
	background: transparent;
	font-size: 14px;
	color: #6B6278;
}

/* --- hero (minihero) --- */
.wrapper .minihero .minihero-overlay {
	background: linear-gradient(90deg, rgba(59,42,99,.72) 0%, rgba(59,42,99,.35) 55%, rgba(59,42,99,0) 100%);
}
.wrapper .minihero .minihero-text {
	left: 0;
	right: 0;
	width: auto;
	max-width: 1170px;
	margin: 0 auto;
	padding: 0 15px;
	transform: translateY(-50%);
	text-align: left;
	font-size: 18px;
}
.wrapper .minihero .minihero-text h1 {
	max-width: 640px;
	margin: 0;
	padding: 0;
	font-family: 'Lora', Georgia, serif;
	font-size: 54px;
	font-weight: 500;
	line-height: 1.12;
	text-transform: none;
	text-shadow: none;
}
.wrapper .minihero .minihero-text h1::after {
	content: "";
	display: block;
	width: 90px;
	height: 3px;
	margin-top: 22px;
	background: #FCB122;
}
.wrapper .minihero .minihero-text p.psecond {
	margin: 26px 0 0;
}

/* --- knoppen --- */
.wrapper .knop,
.contactband .knop {
	display: inline-flex;
	align-items: center;
	min-height: 50px;
	margin: 0 10px 10px 0;
	padding: 0 28px;
	border: 2px solid #5E4392;
	border-radius: 30px;
	background: #5E4392;
	color: #fff;
	font-size: 17px;
	font-weight: 700;
	text-decoration: none;
}
.wrapper .knop:hover,
.contactband .knop:hover {
	background: #3B2A63;
	border-color: #3B2A63;
	color: #fff;
	text-decoration: none;
}
.wrapper .knop--rand {
	background: transparent;
	color: #5E4392;
}
.wrapper .knop--wit {
	background: #fff;
	border-color: #fff;
	color: #5E4392;
}
.wrapper .minihero .knop--rand {
	border-color: #fff;
	color: #fff;
}

/* --- rijen met twee kolommen (blokken 10 t/m 13 en 15 t/m 18) --- */
.wrapper .rij-2kolommen {
	max-width: 1200px;
	margin: 0 auto;
	padding: 80px 0;
	align-items: center;
}
.wrapper .rij-2kolommen > div > .halfway {
	height: auto;
}
@media (min-width: 768px) {
	.wrapper .rij-2kolommen > .left > .halfway { padding-right: 30px; }
	.wrapper .rij-2kolommen > .right > .halfway { padding-left: 30px; }
}
.wrapper .container-fluid:has(> .rij-2kolommen .band--lavendel) { background: #F1ECF6; }
.wrapper .container-fluid:has(> .rij-2kolommen .band--teal) { background: #E7F3F4; }

/* --- inhoud in blok 1 (citaat, blog, privacyverklaring) --- */
.wrapper > .container > .row > .col-xs-12 > .section {
	max-width: 860px;
	margin: 70px auto;
}

/* --- foto's --- */
.wrapper .foto-kader { border-radius: 24px; }
.wrapper .foto-boog {
	border-radius: 200px 200px 24px 24px;
	box-shadow: -24px 24px 0 #E7F3F4;
}
.wrapper .foto-boog-rechts {
	border-radius: 24px 200px 24px 24px;
	box-shadow: 24px 24px 0 #E4DCEE;
}
.wrapper .container-fluid:has(.band--teal) .foto-boog-rechts { box-shadow: 24px 24px 0 #fff; }
.wrapper .container-fluid:has(.band--lavendel) .foto-boog-rechts { box-shadow: 24px 24px 0 #fff; }
.wrapper img.diagram {
	width: 100%;
	border-radius: 24px;
	box-shadow: 0 10px 30px rgba(59,42,99,.12);
}

/* --- tekstaccenten --- */
.wrapper .lead {
	font-size: 20px;
	color: #3B2A63;
}
.wrapper .uitgelicht {
	font-family: 'Lora', Georgia, serif;
	font-size: 24px;
	line-height: 1.4;
	color: #5E4392;
}
.wrapper .slotzin {
	margin: 0;
	font-family: 'Lora', Georgia, serif;
	font-size: 23px;
	line-height: 1.4;
	color: #2A767E; /* was #2C7A82, contrast */
}
.wrapper .citaatblok {
	margin: 28px 0 0;
	padding: 26px 30px;
	border-radius: 24px;
	background: #5E4392;
	font-family: 'Lora', Georgia, serif;
	font-size: 25px;
	line-height: 1.35;
	color: #fff;
}
.wrapper .citaatblok--klein {
	margin-top: 18px;
	padding: 18px 0 0;
	border-top: 1px solid #E4DCEE;
	border-radius: 0;
	background: none;
	font-size: 21px;
	color: #5E4392;
}
.wrapper blockquote.citaat {
	margin: 0 auto;
	padding: 0;
	border: 0;
	text-align: center;
	font-family: 'Lora', Georgia, serif;
	font-size: 32px;
	line-height: 1.35;
	color: #5E4392;
}
.wrapper blockquote.citaat p { margin: 0; }

/* --- lijst met stippen --- */
.wrapper ul.lijst {
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}
.wrapper ul.lijst li {
	position: relative;
	margin-bottom: 8px;
	padding-left: 24px;
}
.wrapper ul.lijst li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 11px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #5BB0B8;
}

/* --- kaart en stijlregels --- */
.wrapper .kaart {
	padding: 34px;
	border-radius: 24px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(59,42,99,.08);
}
.wrapper .kaart--contact { margin-bottom: 30px; }
.wrapper .stijl {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-top: 8px;
}
.wrapper .stijl p {
	margin: 0;
	padding: 18px;
	border-radius: 18px;
	background: #fff;
	font-family: 'Lora', Georgia, serif;
	font-size: 18px;
	line-height: 1.4;
	color: #5E4392;
}

/* --- afsluiter op de startpagina (blok 14) --- */
.wrapper .afsluiter {
	max-width: 780px;
	margin: 0 auto;
	padding: 90px 0;
	text-align: center;
}
.wrapper .afsluiter .beeldmerk {
	height: 84px !important;
	width: auto;
}
.wrapper .slotzin--lijnen {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin-top: 30px;
	color: #5E4392;
	font-size: 26px;
}
.wrapper .slotzin--lijnen::before,
.wrapper .slotzin--lijnen::after {
	content: "";
	flex: 0 0 60px;
	height: 2px;
	background: #F57A10;
}

/* --- contactformulier --- */
.wrapper .m_miniform { margin-top: 20px; }
.page-6 .wrapper .rij-2kolommen { align-items: flex-start; }
.wrapper .m_miniform input[type="text"],
.wrapper .m_miniform input[type="email"],
.wrapper .m_miniform input[type="tel"],
.wrapper .m_miniform textarea {
	padding: 10px 12px;
	border: 1px solid #D9CFE6;
	border-radius: 10px;
	background: #fff;
}
.wrapper .m_miniform button.submit {
	min-height: 50px;
	padding: 0 28px;
	border-radius: 30px;
	background: #5E4392;
	color: #fff;
	font-size: 17px;
	font-weight: 700;
}
.wrapper .m_miniform button.submit:hover { background: #3B2A63; }

/* --- contactband boven de footer (pagina Overig) --- */
.contactband { background: #5E4392; color: #fff; }
.contactband-inhoud {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	max-width: 1170px;
	margin: 0 auto;
	padding: 60px 15px;
}
.contactband-inhoud h2 { margin: 0 0 10px; color: #fff; font-size: 34px; }
.contactband-inhoud p { margin: 0; }
.contactband .knoppen { flex-shrink: 0; }
.contactband .knop { background: #FCB122; border-color: #FCB122; color: #3B2A63; }
.contactband .knop:hover { background: #fff; border-color: #fff; color: #3B2A63; }
.contactband .knop--rand { background: transparent; border-color: #fff; color: #fff; }
.page-6 .contactband { display: none; }

/* --- footer --- */
footer {
	padding: 50px 15px 20px;
	background: #3B2A63;
	color: #E9E2F2;
	font-size: 16px;
}
footer a { color: #E9E2F2; text-decoration: underline; }
footer a:hover { color: #fff; }
.footerkolommen { max-width: 1170px; margin: 0 auto; }
.footerkolommen .footer-naam {
	margin-bottom: 6px;
	font-family: 'Lora', Georgia, serif;
	font-size: 22px;
	color: #fff;
}
footer hr { border-top-color: rgba(233,226,242,.25); }
footer .credit { color: #CFC4E0; }

/* --- mobiel --- */
@media (max-width: 767px) {
	body { padding-top: 76px; font-size: 17px; }
	h2 { font-size: 30px; }
	.navbar .navbar-brand.logo img { height: 56px !important; }
	.navbar-toggle { margin-top: 20px; }
	.navbar-default .navbar-nav > li > a { padding: 12px 15px; }
	.navbar .btn-contact { margin: 6px 15px 16px; }
	.wrapper .minihero .minihero-text h1 { font-size: 34px; }
	.wrapper .rij-2kolommen { padding: 48px 0; }
	.wrapper .rij-2kolommen > div + div { margin-top: 36px; }
	.wrapper .foto-boog { box-shadow: -14px 14px 0 #E7F3F4; }
	.wrapper .foto-boog-rechts { box-shadow: 14px 14px 0 #E4DCEE; }
	.wrapper blockquote.citaat { font-size: 25px; }
	.wrapper .stijl { grid-template-columns: 1fr; }
	.contactband-inhoud { flex-direction: column; align-items: flex-start; gap: 20px; }
}
@media (min-width: 768px) and (max-width: 1199px) {
	.navbar .btn-contact { display: none; }
}
@media (min-width: 768px) and (max-width: 991px) {
	.navbar-default .navbar-nav > li > a { padding-left: 8px; padding-right: 8px; font-size: 15px; }
}
/* ===== einde custom-blok ===== */

/* Witte heroknop: geen schaduw (leesbaarheid) */
.wrapper .minihero-text .knop--wit { text-shadow: none; }
