/*
Theme Name: Zon ELO
Theme URI: https://elo.zwemonderwijsnederland.nl
Description: Lightweight standalone theme for the ZON LMS portal.
Author: YDA & Vroege Oogst
Author URI: https://yourdigitalagency.nl
Version: 1.0.0
Text Domain: zon-elo
*/

/* Basistokens / Base tokens */
:root {
	--zon-font-family: "Barlow Condensed", "Helvetica Neue", Arial, sans-serif;
	--zon-color-primary: #005689;
	--zon-color-cta: #fcc200;
	--zon-color-support: #63c2d0;
	--zon-color-bg: #eff9ff;
	--zon-color-text: #0f172a;
	--zon-color-surface: #ffffff;
	--zon-color-border: #e2e8f0;
}

/* Basisstijl van het thema / Base theme styles */
html,
body,
button,
input,
select,
textarea {
	font-family: var(--zon-font-family);
}

body {
	margin: 0;
	background: var(--zon-color-bg);
	color: var(--zon-color-text);
	line-height: 1.45;
}

a {
	color: var(--zon-color-primary);
}

a:hover,
a:focus {
	color: var(--zon-color-support);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--zon-color-primary);
}

::selection {
	background: var(--zon-color-support);
	color: var(--zon-color-text);
}

/* Toegankelijk focus-kader / Accessible focus ring */
:focus-visible {
	outline: 2px solid var(--zon-color-cta);
	outline-offset: 2px;
}

.zon-site-header,
.zon-site-footer {
	background: var(--zon-color-surface);
	border-bottom: 1px solid var(--zon-color-border);
	padding: 1rem 1.25rem;
}

.zon-site-header {
	display: flex;
	align-items: center;
}

.zon-site-logo-link {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}

.zon-site-logo {
	display: block;
	width: auto;
	max-width: min(240px, 100%);
	height: auto;
	max-height: 56px;
}

.zon-site-footer {
	border-top: 1px solid var(--zon-color-border);
	border-bottom: 0;
	margin-top: 2rem;
}

.zon-site-main {
	padding: 1.5rem 0;
	min-height: 70vh;
}

.zon-landing {
	max-width: 740px;
	margin: 2rem auto;
	background: var(--zon-color-surface);
	border: 1px solid var(--zon-color-support);
	border-radius: 14px;
	padding: 1.25rem;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.zon-landing h1 {
	margin-top: 0;
	margin-bottom: 0.75rem;
}

.zon-landing p {
	margin: 0.35rem 0;
	color: var(--zon-color-primary);
}

.zon-landing-btn {
	display: inline-block;
	margin-top: 0.9rem;
	background: var(--zon-color-cta);
	color: var(--zon-color-text);
	border: 1px solid transparent;
	border-radius: 8px;
	padding: 0.55rem 0.9rem;
	text-decoration: none;
}

.zon-landing-btn:hover {
	background: var(--zon-color-support);
}

/* Globale knopstijl voor links en formulieren / Global button style */
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.button,
.wp-element-button {
	background: var(--zon-color-cta);
	color: var(--zon-color-text);
	border: 1px solid transparent;
	border-radius: 8px;
	padding: 0.55rem 0.9rem;
	text-decoration: none;
	cursor: pointer;
}

button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
.button:hover,
.wp-element-button:hover {
	background: var(--zon-color-support);
}

/* Formuliervelden met merkaccent / Form inputs with brand accent */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="tel"],
input[type="number"],
textarea,
select {
	border: 1px solid var(--zon-color-border);
	border-radius: 8px;
	background: var(--zon-color-surface);
	color: var(--zon-color-text);
}

/* Divi-elementen in huisstijl / Divi elements in brand style */
.et_pb_button,
.et_pb_module .et_pb_button {
	background: var(--zon-color-cta);
	color: var(--zon-color-text) !important;
	border-color: transparent;
	border-radius: 8px;
}

.et_pb_button:hover,
.et_pb_module .et_pb_button:hover {
	background: var(--zon-color-support) !important;
}

.et_pb_text h1,
.et_pb_text h2,
.et_pb_text h3,
.et_pb_text h4,
.et_pb_text h5,
.et_pb_text h6,
.et_pb_module_header {
	color: var(--zon-color-primary);
}

.et_pb_section {
	background-color: var(--zon-color-bg);
}

.et_pb_blurb,
.et_pb_promo,
.et_pb_pricing,
.et_pb_tabs {
	border-color: var(--zon-color-border);
}

/* Subtiele animaties en micro-interactions / Subtle animations and micro-interactions */
a,
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.button,
.wp-element-button,
.et_pb_button,
.zon-landing,
.et_pb_blurb,
.et_pb_promo,
.et_pb_pricing,
.et_pb_tabs {
	transition: background-color 220ms ease, color 220ms ease, border-color 220ms ease,
		box-shadow 220ms ease, transform 220ms ease;
}

.zon-landing:hover,
.et_pb_blurb:hover,
.et_pb_promo:hover,
.et_pb_pricing:hover,
.et_pb_tabs:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(0, 86, 137, 0.12);
}

button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
.button:hover,
.wp-element-button:hover,
.et_pb_button:hover {
	transform: translateY(-1px);
}

button:active,
input[type="submit"]:active,
input[type="button"]:active,
input[type="reset"]:active,
.button:active,
.wp-element-button:active,
.et_pb_button:active {
	transform: translateY(0);
}

.zon-site-header,
.zon-site-main,
.zon-site-footer,
.zon-landing {
	animation: zon-fade-up 420ms ease both;
}

@keyframes zon-fade-up {
	from {
		opacity: 0;
		transform: translateY(6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Respecteer gebruikersvoorkeur / Respect user preference */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Keep frontend portals distraction-free, even with role-switch plugins active. */
#wpadminbar {
	display: none !important;
}

html {
	margin-top: 0 !important;
}
