@import url("https://fonts.googleapis.com/css2?family=Kalnia:wght@500&display=swap");
@font-face {
	font-family: "Avenir Next Regular";
	src: url("../fonts/avenir-next-regular.ttf");
}
@font-face {
	font-family: "Avenir Next Medium";
	src: url("../fonts/avenir-next-medium.ttf");
}
@font-face {
	font-family: "Avenir Next Bold";
	src: url("../fonts/avenir-next-bold.ttf");
}
@font-face {
	font-family: "Avenir Next Ultralight";
	src: url("../fonts/avenir-next-ultralight.ttf");
}
/* The fix:
	https://stackoverflow.com/questions/23754655/css-not-recognizing-avenir-next-as-my-font-family
*/
.shizuru-regular {
  font-family: "Shizuru", system-ui;
  font-weight: 400;
  font-style: normal;
}


/* TYPOGRAPHY */

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	margin: 0;
	font-size: 16pt;
	font-family: "Avenir Next Regular";
}

h1 {
	font-size: 280pt;
	font-family: "Avenir Next Medium";
}

h2 {
	font-size: 40pt;
	font-family: "Avenir Next Ultralight";
	span {
		font-family: "Avenir Next Medium";
	}
}

h3 {
	color: #84a86e;
	font-size: 30pt;
	font-family: "Avenir Next Regular";
	span {
		font-family: "Avenir Next Medium";
	}
}

h4 {
	font-size: 18pt;
	font-family: "Avenir Next Medium";
}

a,
nav span {
	/*font-size: 16pt;*/
	font-family: "Avenir Next Medium";
	text-decoration: none;
	color: black;
}

/* BUTTONS */
.btn-primary {
	margin-left: 50px;
	font-family: "Avenir Next Bold";
	color: black;
	text-decoration: none;
	font-weight: bold;
	background-color: white;
	border: 4px solid #97b287;
	padding: 15px 25px;
}

.btn-primary:hover,
.btn-primary:active {
	background-color: #97b287;
}

/* NAVIGATION */
nav#web {
	display: flex;
	z-index: 1000;
}

nav#mobile {
	display: none;
	z-index: 1000;
}

nav {
	background-color: #97b287;
	padding: 15px 30px 15px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	user-select: none;
	white-space: nowrap;
}

nav img {
	width: 45px;
	height: auto;
}

nav a {
	display: flex;
	padding: 0 10px 0 10px;
}

nav #spacer {
	width: 15%;
}

nav span:hover,
nav a.current,
nav .current,
nav a:hover {
	color: white;
}

nav .logo span {
	margin-left: 20px;
	margin-top: auto;
	margin-bottom: auto;
}

nav .nav-dropdown {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;

	&#submenu {
		padding: 0;
	}
}

nav .nav-dropdown img {
	transform: rotate(90deg);
	width: 15px;
	height: 15px;
	user-select: none;
	padding: 0 5px 0 5px;
}

nav #uppermenu.nav-dropdown:hover img#uppermenu,
nav #submenu.nav-dropdown:hover img#submenu {
	transform: rotate(0deg);
}

nav .nav-dropdown .title {
	cursor: pointer;
	padding: 15px;
}

nav ul {
	display: none;
	list-style: none;
	padding: 0;
	margin: 0;
	z-index: 1000;
	white-space: nowrap;
	background-color: #97b287;

	> :nth-child(odd) {
		background-color: #7e9570;
	}

	*:is(a, span) {
		padding: 15px;
	}
}

nav .nav-dropdown ul {
	position: absolute;

	&#uppermenu {
		top: 100%;
		left: 0;
	}

	&#submenu {
		top: 0%;
		left: 100%;
	}
}

nav .nav-dropdown#uppermenu:hover ul#uppermenu,
nav .nav-dropdown#submenu:hover ul#submenu {
	display: block;
}

nav a#icon {
	display: none;
}

#darken-page {
	position: fixed;
	content: "";
	display: none;
	width: 100%;
	height: 100%;
	z-index: 999;
	background-color: rgba(0, 0, 0, 0.5);
}

@media screen and (max-width: 1125px) {
	nav#web {
		display: none;
	}

	nav#mobile {
		display: flex;
		position: relative;
	}

	nav#mobile ul {
		position: absolute;
		top: 100%;
		right: 0;
	}

	nav a#icon {
		padding: 20px;
		display: block;
		position: absolute;
		right: 0;
		color: aliceblue;
	}

	.fa.fa-bars {
		font-size: 20pt;
	}

	/*FOOTER*/

	.sponsors {
		margin-left: 20px;
	}
}

/* MAIN */
main {
	width: 100%;
	max-width: 1280px;
	min-height: 60vh;
	padding-bottom: 100px;
	margin: 0 0 auto 0;
	justify-self: center;
	align-self: center;

	> * {
		padding: 0 60pt;
	}
}

/* === FOOTER STRUCTUUR === */

footer {
	background-color: #97b287;
	padding: 2rem 4rem;
	color: black;
}

/* Buitenste structuur: logo's links, contactblok rechts */
.footer-content {
	/*display: flex;*/
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 3rem;
	margin-top:20px;
}

/* SPONSORS BLOK – LINKS */
.sponsors {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/*.bovenSponsors,
.onderSponsors {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
}*/

/* Center the entire sponsors row on the page */
/*.bovenSponsors {
  display: flex;
  flex-wrap: wrap;
  justify-content: center !important;   
  align-items: center;
  gap: clamp(12px, 2vw, 32px);
  margin-left: auto;                     
  margin-right: auto;
  width: 100%;
}*/

/* Make sure child items don't force weird spacing */
/*.bovenSponsors > * {
  flex: 0 0 auto;
  margin: 0 !important;
  float: none !important;
}*/

/*.bovenSponsors {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(12px, 2vw, 32px);
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: auto; 
}*/

.sponsors img {
	object-fit: contain;
	filter: grayscale(20%);
	transition: transform 0.3s ease, filter 0.3s ease;
	max-height: 80px;
}

.sponsors img:hover {
	transform: scale(1.05);
	filter: grayscale(0%);
}

.febi { max-width: 120px; }
.caritas { max-width: 120px; }
.cocom { max-width: 235px; }

/* CONTACTGEGEVENS + ADRES – RECHTS */
.emailAdres {
	display: flex;
	align-items: flex-start;
	gap: 2rem;
	flex: 1;
	flex-wrap: nowrap;
}

.tracé {
	width: 2px;
	height: auto;
	background-color: black;
}

.contact,
.adress {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	min-width: 250px;
	max-width: 300px;
	font-family: "Avenir Next Regular";
	font-size: 18px;
}

.contact h4,
.adress h4 {
	margin: 0 0 0.5rem 0;
}

.contactInfo {
	display: flex;
	flex-direction: column;
	row-gap: 0.2rem;
}

.contactInfo p {
	display: block;
margin-block-start: 1em;
margin-block-end: 0em;
margin-inline-start: 0px;
margin-inline-end: 0px;

}

.email,
.phone {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	line-height: 1.4;
}

.email img,
.phone img {
	/*width: 20px;*/
	height: auto;
	object-fit: contain;
	margin-top: 1em;
}

/* === RESPONSIVE FOOTER === */
@media screen and (max-width: 768px) {
	.footer-content {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.emailAdres {
		flex-direction: column;
		align-items: center;
		gap: 1.5rem;
	}

	.tracé {
		display: none;
	}

	.contact,
	.adress {
		margin: 1rem 0;
	}
}

.logo-wrapper {
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 5px;
	box-sizing: border-box;
}

.logo-wrapper img {
	height: 49px;
	width: auto;
	max-width: 100%; /* voorkom dat het buiten de wrapper treedt */
	object-fit: contain;
}

/* === Sponsors row (footer) === */
.bovenSponsors {
  display: flex !important;
  flex-wrap: wrap;                     /* allows wrapping only if viewport is too narrow */
  gap: clamp(12px, 2vw, 32px);
  justify-content: center !important;  /* centers row items */
  align-items: center;

  width: 100% !important;              /* row can span viewport */
  margin-inline: auto !important;      /* center inside parent */
  transform: none !important;          /* no shifting */
}

.bovenSponsors > * {
  flex: 0 0 auto;   /* items keep their natural size */
  margin: 0 !important;
  float: none !important;
}

/* === Footer contact details row === */
footer .footer-columns,
footer .contact-columns,
footer .contactgrid,
footer .contact-wrapper {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center !important;  /* center all columns together */
  align-items: flex-start;
  gap: clamp(20px, 4vw, 60px);
  width: 100% !important;
  margin-inline: auto !important;
}

footer .footer-columns > *,
footer .contact-columns > *,
footer .contactgrid > *,
footer .contact-wrapper > * {
  flex: 0 0 auto;               /* shrink to content instead of stretching */
  text-align: center !important;/* center text inside each column */
  margin: 0 auto !important;    /* center the block itself */
  max-width: max-content;       /* keeps address column from spanning full width */
}


@media (max-width: 768px) {
  footer .footer-columns,
  footer .contact-columns,
  footer .contactgrid,
  footer .contact-wrapper {
    flex-direction: column;
    align-items: center;
  }
}

/*EINDE FOOTER*/