/*
Theme Name: Artemis Blue
Theme URI: https://artemisblue.nl
Author: Artemis Blue
Author URI: https://artemisblue.nl
Description: Blokthema voor Artemis Blue — softwarestudio. Mobile first, donkere huisstijl, WCAG 2.2 AA.
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.1
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: artemisblue
Tags: block-theme, full-site-editing, one-column, accessibility-ready, custom-colors
*/

/* ==========================================================================
   Artemis Blue — designsysteem
   Volgorde: fonts → tokens → reset → basis → typografie → componenten → utilities
   Mobile first: alles hieronder geldt vanaf 320px. Media queries voegen alleen toe.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Fonts (zelf gehost — geen derde partij, zie BRIEF §3.2)
   -------------------------------------------------------------------------- */

@font-face {
	font-family: 'Inter Variable';
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url('assets/fonts/inter-var-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
		U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Space Grotesk Variable';
	font-style: normal;
	font-display: swap;
	font-weight: 300 700;
	src: url('assets/fonts/space-grotesk-var-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
		U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --------------------------------------------------------------------------
   2. Tokens
   -------------------------------------------------------------------------- */

:root {
	/* Kleur — alle tekstparen geverifieerd tegen WCAG 2.2 AA, zie BRIEF §3.1 */
	--ab-bg: #060b16;
	--ab-bg-alt: #0a1322;
	--ab-surface: #0e1a2d;
	--ab-surface-2: #142238;
	--ab-line: #1e2e48;
	/*
	 * --ab-line-bright is UITSLUITEND decoratief: een haarlijn die vlakken van elkaar scheidt.
	 * Hij haalt 1,92:1 op --ab-bg en 1,70:1 op --ab-surface en blijft daarmee ruim onder de
	 * 3:1 die WCAG 2.2 SC 1.4.11 eist. Gebruik hem daarom nooit als de rand die een
	 * bedieningselement identificeert — dus niet op invoervelden, aanvinkvakken, keuzelijsten
	 * of het zoekveld. Daar geldt --ab-text-subtle (rust) en --ab-text-muted (hover).
	 *
	 * Hij staat nog wél op de rand van .ab-btn--secondary, .ab-nav-toggle, .ab-nav-close en
	 * .ab-pagination. Dat mag, want die dragen alle vier hun eigen zichtbare tekstlabel in
	 * --ab-text (16,87:1): de rand voegt daar vorm toe maar geen informatie, en SC 1.4.11
	 * vraagt alleen 3:1 voor wat nodig is om het element te herkennen. Komt er ooit een
	 * variant zonder tekstlabel — een icoonknop — dan moet die rand mee omhoog.
	 */
	--ab-line-bright: #2a4166;

	--ab-text: #e8eef7;         /* 16,87:1 op --ab-bg */
	--ab-text-muted: #a3b3c9;   /*  9,23:1 op --ab-bg  |  8,18:1 op --ab-surface */
	--ab-text-subtle: #7d8fa8;  /*  5,97:1 op --ab-bg  |  5,29:1 op --ab-surface — tekst alleen ≥16px */

	--ab-blue: #0090f0;         /* vlakken en randen; NOOIT tekstkleur op donker */
	--ab-blue-bright: #38adff;  /* tekst en links op donker — 8,05:1 */
	--ab-blue-deep: #0062c4;
	--ab-blue-ink: #041020;     /* tekst óp --ab-blue — 5,68:1 */

	--ab-danger: #ff8a8a;
	--ab-danger-bg: #2a1116;
	--ab-success: #4ade9a;
	--ab-success-bg: #0c2320;
	--ab-focus: #7cc6ff;

	/* Typografie */
	--ab-font-display: 'Space Grotesk Variable', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--ab-font-body: 'Inter Variable', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

	--fs-display: clamp(2.25rem, 1.45rem + 3.4vw, 4rem);
	--fs-h2: clamp(1.625rem, 1.28rem + 1.5vw, 2.5rem);
	--fs-h3: clamp(1.1875rem, 1.12rem + 0.3vw, 1.375rem);
	--fs-body: 1.0625rem;
	--fs-small: 0.9375rem;
	--fs-micro: 0.8125rem;

	/* Ruimte (4-basis) */
	--sp-1: 0.25rem;
	--sp-2: 0.5rem;
	--sp-3: 0.75rem;
	--sp-4: 1rem;
	--sp-5: 1.5rem;
	--sp-6: 2rem;
	--sp-7: 3rem;
	--sp-8: 4rem;
	--sp-9: 6rem;
	--sp-10: 8rem;

	/* Maat en vorm */
	--container: 75rem;         /* 1200px */
	--gutter: clamp(1.25rem, 5vw, 3rem);
	--section-y: clamp(3.5rem, 8vw, 7.5rem);
	--measure: 68ch;

	--radius-sm: 4px;
	--radius: 10px;
	--radius-lg: 16px;
	--radius-pill: 999px;

	/* Beweging */
	--ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--dur: 220ms;
	--dur-slow: 320ms;

	/* Tap target ondergrens (WCAG 2.2 doelgrootte) */
	--tap: 44px;
	--control-h: 48px;
}

/* --------------------------------------------------------------------------
   3. Reset
   -------------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	/* Vaste offset zodat ankerdoelen niet onder de sticky header verdwijnen */
	scroll-padding-top: 6rem;
}

body {
	margin: 0;
	background-color: var(--ab-bg);
	color: var(--ab-text);
	font-family: var(--ab-font-body);
	font-size: var(--fs-body);
	line-height: 1.62;
	font-synthesis-weight: none;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	/* R10: nooit horizontaal scrollen, ook niet bij een uitschieter */
	overflow-x: hidden;
}

img,
svg,
video,
canvas {
	display: block;
	max-width: 100%;
	height: auto;
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

/* --------------------------------------------------------------------------
   4. Focus — nooit uitzetten (standaard §10)
   -------------------------------------------------------------------------- */

:focus-visible {
	outline: 3px solid var(--ab-focus);
	outline-offset: 2px;
	border-radius: var(--radius-sm);
}

/* Muisklik op een knop hoeft geen ring te tonen, toetsenbord altijd wel. */
:focus:not(:focus-visible) {
	outline: none;
}

.ab-skip-link {
	position: absolute;
	left: var(--sp-4);
	top: var(--sp-4);
	z-index: 1000;
	padding: var(--sp-3) var(--sp-5);
	background: var(--ab-blue);
	color: var(--ab-blue-ink);
	font-weight: 600;
	border-radius: var(--radius-sm);
	transform: translateY(-200%);
	transition: transform var(--dur) var(--ease);
}

.ab-skip-link:focus {
	transform: translateY(0);
}

/* --------------------------------------------------------------------------
   5. Typografie
   -------------------------------------------------------------------------- */

h1,
h2,
h3,
h4 {
	font-family: var(--ab-font-display);
	color: var(--ab-text);
	margin: 0 0 var(--sp-4);
	text-wrap: balance;
	letter-spacing: -0.02em;
}

h1 {
	font-size: var(--fs-display);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -0.035em;
	max-width: 20ch;
}

h2 {
	font-size: var(--fs-h2);
	font-weight: 700;
	line-height: 1.14;
	max-width: 26ch;
}

h3 {
	font-size: var(--fs-h3);
	font-weight: 600;
	line-height: 1.3;
}

h4 {
	font-size: var(--fs-body);
	font-weight: 600;
	line-height: 1.4;
}

p {
	margin: 0 0 var(--sp-4);
	max-width: var(--measure);
}

a {
	color: var(--ab-blue-bright);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
	transition: color var(--dur) var(--ease);
}

a:hover {
	color: var(--ab-text);
	text-decoration-thickness: 2px;
}

strong {
	font-weight: 600;
	color: var(--ab-text);
}

/* Eyebrow — het enige plek waar hoofdletters gebruikt worden */
.ab-eyebrow {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	margin: 0 0 var(--sp-4);
	font-family: var(--ab-font-body);
	font-size: var(--fs-micro);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ab-text-muted);
}

.ab-eyebrow__mark {
	flex: none;
	width: 0.75rem;
	height: 0.875rem;
	color: var(--ab-blue);
}

.ab-lead {
	font-size: clamp(1.0625rem, 1rem + 0.4vw, 1.25rem);
	line-height: 1.55;
	color: var(--ab-text-muted);
	max-width: 58ch;
}

.ab-note {
	font-size: var(--fs-small);
	color: var(--ab-text-subtle);
}

/* --------------------------------------------------------------------------
   6. Layout
   -------------------------------------------------------------------------- */

.ab-container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.ab-section {
	padding-block: var(--section-y);
}

.ab-section--alt {
	background-color: var(--ab-bg-alt);
}

/* Haarlijn tussen secties — draagt het "technische" karakter van het merk */
.ab-section--ruled {
	border-top: 1px solid var(--ab-line);
}

.ab-stack > * + * {
	margin-top: var(--sp-4);
}

.ab-section__head {
	margin-bottom: var(--sp-6);
}

.ab-section__head p {
	color: var(--ab-text-muted);
}

/* Kolommenraster: op mobiel altijd één kolom (R2) */
.ab-grid {
	display: grid;
	gap: var(--sp-4);
	grid-template-columns: 1fr;
}

@media (min-width: 48rem) {
	.ab-grid--2 {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--sp-5);
	}

	.ab-grid--3 {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--sp-5);
	}

	.ab-grid--4 {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--sp-5);
	}
}

@media (min-width: 64rem) {
	.ab-grid--4 {
		grid-template-columns: repeat(4, 1fr);
	}

	.ab-section__head {
		margin-bottom: var(--sp-7);
	}
}

/* --------------------------------------------------------------------------
   7. Knoppen
   -------------------------------------------------------------------------- */

.ab-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--sp-2);
	min-height: var(--control-h);
	padding: var(--sp-3) var(--sp-6);
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	font-family: var(--ab-font-body);
	font-size: var(--fs-body);
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease),
		color var(--dur) var(--ease), transform var(--dur) var(--ease);
}

.ab-btn:focus-visible {
	outline: 3px solid var(--ab-focus);
	outline-offset: 3px;
}

.ab-btn--primary {
	background-color: var(--ab-blue);
	color: var(--ab-blue-ink);
}

.ab-btn--primary:hover {
	background-color: #2ba4ff;
	color: var(--ab-blue-ink);
}

.ab-btn--primary:active {
	background-color: var(--ab-blue-deep);
	color: #fff;
	transform: translateY(1px);
}

.ab-btn--secondary {
	background-color: transparent;
	border-color: var(--ab-line-bright);
	color: var(--ab-text);
}

.ab-btn--secondary:hover {
	border-color: var(--ab-blue-bright);
	color: var(--ab-text);
	background-color: rgba(56, 173, 255, 0.08);
}

.ab-btn--secondary:active {
	transform: translateY(1px);
}

.ab-btn[disabled],
.ab-btn[aria-disabled='true'] {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
}

/* Laadstatus: tekst blijft staan, spinner ernaast, aria-live meldt het apart */
.ab-btn__spinner {
	width: 1rem;
	height: 1rem;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: ab-spin 640ms linear infinite;
}

@keyframes ab-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Knoppenrij: op mobiel vol breed onder elkaar */
.ab-btn-row {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
}

.ab-btn-row .ab-btn {
	width: 100%;
}

/* Pas op 48rem naast elkaar. Dat is exact het punt waarop patterns.css
   .ab-btn-row.wp-block-buttons omzet, zodat een rij losse .ab-btn-knoppen (contactformulier)
   en een rij core-knoppen (patronen) nooit op verschillende breedtes omklappen.
   Dit blok staat hier en niet bij de layoutregels op 48rem: media queries verhogen de
   specificiteit niet, dus het moet ná de basisregel hierboven komen om te winnen. */
@media (min-width: 48rem) {
	.ab-btn-row {
		flex-direction: row;
		flex-wrap: wrap;
		gap: var(--sp-4);
	}

	.ab-btn-row .ab-btn {
		width: auto;
	}
}

/* --------------------------------------------------------------------------
   8. Kaarten
   -------------------------------------------------------------------------- */

.ab-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
	padding: var(--sp-5);
	background-color: var(--ab-surface);
	border: 1px solid var(--ab-line);
	border-radius: var(--radius);
	transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}

.ab-card h3 {
	margin: 0;
}

.ab-card p {
	margin: 0;
	color: var(--ab-text-muted);
}

.ab-card__icon {
	width: 2.5rem;
	height: 2.5rem;
	color: var(--ab-blue);
}

/* Hele kaart klikbaar via een uitgerekte link — het anker blijft de focusdrager */
.ab-card--link:hover,
.ab-card--link:focus-within {
	border-color: var(--ab-line-bright);
	background-color: var(--ab-surface-2);
}

.ab-card__link {
	margin-top: auto;
	font-weight: 600;
	text-decoration: none;
}

.ab-card__link::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.ab-card__link .ab-card__chev {
	display: inline-block;
	width: 0.6em;
	height: 0.7em;
	margin-left: 0.4em;
	vertical-align: -0.02em;
	transition: transform var(--dur) var(--ease);
}

.ab-card--link:hover .ab-card__chev {
	transform: translateX(3px);
}

.ab-card__link:focus-visible {
	outline: none;
}

.ab-card--link:focus-within {
	outline: 3px solid var(--ab-focus);
	outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   9. Lijsten met het chevron-motief
   -------------------------------------------------------------------------- */

.ab-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--sp-3);
}

.ab-list li {
	display: grid;
	grid-template-columns: 1rem 1fr;
	gap: var(--sp-3);
	align-items: start;
	color: var(--ab-text-muted);
}

.ab-list li > svg {
	width: 0.75rem;
	height: 0.875rem;
	margin-top: 0.4em;
	color: var(--ab-blue);
	flex: none;
}

/* --------------------------------------------------------------------------
   10. Formulier
   -------------------------------------------------------------------------- */

.ab-field {
	display: flex;
	flex-direction: column;
	gap: var(--sp-2);
	margin-bottom: var(--sp-5);
}

.ab-label {
	font-size: var(--fs-small);
	font-weight: 600;
	color: var(--ab-text);
}

.ab-label__optional {
	font-weight: 400;
	color: var(--ab-text-subtle);
}

.ab-hint {
	font-size: var(--fs-small);
	color: var(--ab-text-subtle);
}

.ab-input,
.ab-select,
.ab-textarea {
	width: 100%;
	min-height: var(--control-h);
	padding: var(--sp-3) var(--sp-4);
	background-color: var(--ab-bg);
	/* SC 1.4.11: de rand is het enige wat het veld begrenst — 5,97:1 op --ab-bg, 5,29:1 op --ab-surface. */
	border: 1px solid var(--ab-text-subtle);
	border-radius: var(--radius-sm);
	color: var(--ab-text);
	font-size: var(--fs-body);
	transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
	/* iOS zoomt in onder 16px — vandaar de body-maat van 17px */
	appearance: none;
}

.ab-textarea {
	min-height: 9rem;
	resize: vertical;
	line-height: 1.6;
}

.ab-select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23a3b3c9' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right var(--sp-4) center;
	background-size: 0.75rem;
	padding-right: var(--sp-8);
}

.ab-input:hover,
.ab-select:hover,
.ab-textarea:hover {
	border-color: var(--ab-text-muted);
}

.ab-input:focus-visible,
.ab-select:focus-visible,
.ab-textarea:focus-visible {
	outline: 3px solid var(--ab-focus);
	outline-offset: 1px;
	border-color: var(--ab-blue-bright);
}

.ab-input::placeholder,
.ab-textarea::placeholder {
	color: var(--ab-text-subtle);
}

/* Foutstatus — kleur is nooit het enige signaal: er komt een tekst én een icoon bij */
.ab-field--error .ab-input,
.ab-field--error .ab-select,
.ab-field--error .ab-textarea {
	border-color: var(--ab-danger);
	border-width: 2px;
}

.ab-field__error {
	display: flex;
	align-items: flex-start;
	gap: var(--sp-2);
	font-size: var(--fs-small);
	font-weight: 500;
	color: var(--ab-danger);
}

.ab-field__error svg {
	flex: none;
	width: 1rem;
	height: 1rem;
	margin-top: 0.15em;
}

/* Checkbox: eigen vormgeving, maar het echte input blijft bedienbaar */
.ab-check {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--sp-3);
	align-items: start;
	margin-bottom: var(--sp-5);
	cursor: pointer;
}

.ab-check input[type='checkbox'] {
	appearance: none;
	flex: none;
	width: 1.5rem;
	height: 1.5rem;
	margin: 0.1rem 0 0;
	background-color: var(--ab-bg);
	/* Zelfde eis als bij .ab-input: zonder rand is het vakje niet te zien (SC 1.4.11). */
	border: 1px solid var(--ab-text-subtle);
	border-radius: var(--radius-sm);
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.ab-check input[type='checkbox']:checked {
	background-color: var(--ab-blue);
	border-color: var(--ab-blue);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23041020' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' d='m3.5 8.5 3 3 6-7'/%3E%3C/svg%3E");
	background-size: 1rem;
	background-position: center;
	background-repeat: no-repeat;
}

.ab-check span {
	font-size: var(--fs-small);
	color: var(--ab-text-muted);
}

/* Foutsamenvatting bovenaan het formulier */
.ab-alert {
	display: flex;
	gap: var(--sp-3);
	padding: var(--sp-4);
	margin-bottom: var(--sp-5);
	border-radius: var(--radius-sm);
	border: 1px solid;
	font-size: var(--fs-small);
	/* R10: de meldingen noemen een e-mailadres als uitweg. Op 320px is de tekstkolom smaller
	   dan dat adres, en body { overflow-x: hidden } zou het zonder scrollbalk wegknippen. */
	overflow-wrap: anywhere;
}

.ab-alert--error {
	background-color: var(--ab-danger-bg);
	border-color: var(--ab-danger);
	color: var(--ab-text);
}

.ab-alert--success {
	background-color: var(--ab-success-bg);
	border-color: var(--ab-success);
	color: var(--ab-text);
}

.ab-alert svg {
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.1em;
}

.ab-alert h2,
.ab-alert h3 {
	font-size: var(--fs-body);
	margin: 0 0 var(--sp-2);
}

.ab-alert ul {
	margin: 0;
	padding-left: var(--sp-5);
}

.ab-alert a {
	color: var(--ab-text);
}

/* Honeypot: weg voor mensen én voor schermlezers, maar wel invulbaar voor bots */
.ab-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   11. Badges en truststrip
   -------------------------------------------------------------------------- */

.ab-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-2);
	padding: var(--sp-2) var(--sp-4);
	background-color: rgba(56, 173, 255, 0.1);
	border: 1px solid var(--ab-line-bright);
	border-radius: var(--radius-pill);
	font-size: var(--fs-small);
	color: var(--ab-text-muted);
}

.ab-badge svg {
	flex: none;
	width: 1rem;
	height: 1rem;
	color: var(--ab-blue);
}

/* --------------------------------------------------------------------------
   12. Screenreader-hulpmiddelen
   -------------------------------------------------------------------------- */

.screen-reader-text,
.ab-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* --------------------------------------------------------------------------
   13. Entree-animatie
   -------------------------------------------------------------------------- */

/*
 * Faalt bewust naar zichtbaar. De klasse .ab-anim komt van site.js en wordt pas gezet als het
 * script de animatie daadwerkelijk overneemt (IntersectionObserver aanwezig én geen voorkeur
 * voor minder beweging). Struikelt het script na het zetten van de js-klasse, dan is er hooguit
 * geen animatie — nooit een halve pagina onzichtbare tekst.
 */
.ab-anim .ab-reveal {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);
}

.ab-anim .ab-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* --------------------------------------------------------------------------
   14. Bewegingsvoorkeur — harde eis, geen nette bijkomstigheid
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.ab-anim .ab-reveal {
		opacity: 1;
		transform: none;
	}
}

/* --------------------------------------------------------------------------
   15. Contrastvoorkeur en print
   -------------------------------------------------------------------------- */

@media (prefers-contrast: more) {
	:root {
		--ab-text-muted: #cdd8e8;
		--ab-text-subtle: #b3c1d4;
		--ab-line: #3a4f70;
		--ab-line-bright: #58729a;
	}
}

@media print {
	body {
		background: #fff;
		color: #000;
	}

	.ab-site-header,
	.ab-site-footer,
	.ab-btn {
		display: none;
	}
}
