@import url("https://use.typekit.net/omx4nld.css");

/* Design-tokens van spits.online
=================================================== */
body.login {
	--color-primary: #00E6F0;
	--color-secondary: #000082;
	--color-dark: #000014;
	--color-light: #F2F2F3;
	--color-white: #fff;
	--color-muted: #4A4E63;
	--color-muted-dark: #C9CCDA;
	--color-sep: #B9BCC8;
	--color-glow: #0A0ACF;
	--color-danger: #dc3545;
	--color-success: #64A319;
	--border-color: #D8DAE1;
	--radius: 14px;
	--radius-lg: 20px;
	--ease-brand: cubic-bezier(0.65, 0.05, 0, 1);
	--glow: 0 0 2rem rgba(0, 230, 240, 0.5);
	--font-body: "halyard-display", "Halyard", "Helvetica Neue", Arial, sans-serif;

	/* Briefhoofd-paneel: hoogte van de tab en minimale tabbreedte */
	--so-step: 4rem;
	--so-tab: 13.5rem;
	--so-pad-x: 3rem;
}

body.login,
body.login * {
	box-sizing: border-box;
}

body.login {
	position: relative;
	isolation: isolate;
	min-height: 100vh;
	margin: 0;
	padding: 1.5rem clamp(1rem, 3vw, 2.5rem) 2rem;
	display: grid;
	grid-template-rows: auto 1fr auto;
	overflow-x: hidden;
	font-family: var(--font-body);
	font-weight: 300;
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--color-dark);
	background: var(--color-white);
	-webkit-font-smoothing: antialiased;
}

body.login .clear,
body.login .caps-warning,
body.login p:empty,
body.login.no-js .hide-if-no-js {
	display: none;
}

body.login .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
}

/* Licht en lijn: de hero van de site, in lichte versie
=================================================== */
body.login .so-login__light {
	position: fixed;
	inset: 0;
	z-index: -2;
	pointer-events: none;
	background: radial-gradient(ellipse 55% 75% at 82% 12%, rgba(10, 10, 207, .10) 0%, rgba(0, 0, 130, .05) 32%, rgba(0, 0, 130, 0) 72%);
	clip-path: polygon(0 0, 100% 0, 100% 100%, calc(100% - 128vh) 100%);
	animation: so-glow 1.6s ease both;
}

body.login .so-login__beam {
	position: fixed;
	left: 20%;
	top: 100%;
	z-index: -1;
	width: 1800px;
	height: 1px;
	pointer-events: none;
	transform: rotate(-38deg);
	transform-origin: 0 0;
}

body.login .so-login__beam i {
	display: block;
	height: 1px;
	transform-origin: 0 50%;
	background: linear-gradient(90deg, rgba(0, 230, 240, 0) 0%, var(--color-primary) 45%, rgba(0, 230, 240, 0) 100%);
	animation: so-draw 1.4s var(--ease-brand) .25s both;
}

@keyframes so-glow { 0% { opacity: 0; } }
@keyframes so-draw { 0% { transform: scaleX(0); } }
@keyframes so-rise { 0% { opacity: 0; transform: translateY(14px); } 100% { opacity: 1; transform: none; } }

/* Kop: logo links, telefoon rechts
=================================================== */
body.login .so-login__brand {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	color: var(--color-dark);
}

body.login .so-login__brand a {
	color: inherit;
	text-decoration: none;
}

body.login .so-login__brand svg {
	display: block;
	width: auto;
	height: 43px;
}

body.login .so-login__brand .so-brand__text {
	color: var(--color-muted);
}

body.login .so-login__phone {
	font-size: 1rem;
	font-weight: 400;
	color: var(--color-muted);
}

/* Het briefhoofd-paneel
=================================================== */
body.login .so-login__main {
	display: grid;
	justify-items: center;
	align-content: center;
	gap: 1.75rem;
	padding-block: 2rem;
}

body.login #login {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 32rem;
	margin: 0;
	padding: calc(var(--so-step) + 3.25rem) var(--so-pad-x) 3rem;
	justify-self: center;
	align-self: center;
	animation: so-rise .9s var(--ease-brand) .15s both;
}

body.login #login > svg.so-panel__shape {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
}

body.login #login > svg.so-panel__shape path {
	fill: var(--color-light);
}

body.login #login > :where(:not(svg)) {
	position: relative;
	z-index: 1;
}

/* Zonder JS geen vorm, dan een gewoon licht paneel */
body.login #login:not(.is-shaped) {
	padding-top: 3rem;
	background: var(--color-light);
	border-radius: var(--radius-lg);
}

body.login #login:not(.is-shaped) h1 {
	position: static;
	height: auto;
	margin: 0 0 1.5rem;
	padding: 0;
}

/* Tab linksboven, op wit: sitenaam | beheer */
body.login #login h1 {
	position: absolute;
	left: 0;
	top: 0;
	display: flex;
	align-items: center;
	height: var(--so-step);
	max-width: var(--so-tab);
	margin: 0;
	padding: 0 1rem 0 .25rem;
	font-size: .875rem;
	font-weight: 400;
	line-height: 1.5;
}

body.login #login h1 a {
	display: flex;
	align-items: baseline;
	gap: .5rem;
	min-width: 0;
	color: var(--color-muted);
	text-decoration: none;
	white-space: nowrap;
	background: none;
}

body.login #login h1 a strong {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	font-weight: 500;
	color: var(--color-dark);
}

body.login .so-intro__sep {
	padding-inline: .5rem;
	color: var(--color-sep);
}

body.login #login h1 .so-intro__sep {
	padding-inline: 0;
}

/* Statement: de typografische handtekening van de site
=================================================== */
body.login .so-login__statement {
	margin: 0 0 2.25rem;
	font-size: clamp(1.7rem, 3.4vw, 2.5rem);
	font-weight: 300;
	line-height: 1.12;
	letter-spacing: -.02em;
	text-wrap: pretty;
}

body.login .so-login__statement .word {
	display: inline-block;
	opacity: 0;
	transform: translateY(10px);
	animation: so-rise .7s var(--ease-brand) both;
}

body.login .so-login__statement .is-muted {
	color: var(--color-muted);
}

/* Meldingen
=================================================== */
body.login .message,
body.login .notice,
body.login .success,
body.login #login_error {
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	font-size: .9375rem;
	font-weight: 400;
	line-height: 1.5;
	background: var(--color-white);
	border: 1.5px solid var(--border-color);
	border-radius: var(--radius);
}

body.login #login_error {
	border-color: var(--color-danger);
}

body.login .success {
	border-color: var(--color-success);
}

body.login .message > :first-child,
body.login #login_error > :first-child {
	margin-top: 0;
}

body.login .message > :last-child,
body.login #login_error > :last-child {
	margin-bottom: 0;
}

body.login .message a,
body.login #login_error a {
	color: var(--color-dark);
}

/* Formulier
=================================================== */
body.login #login form {
	display: grid;
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	box-shadow: none;
}

body.login #login form p,
body.login #login .user-pass-wrap {
	margin: 0;
}

body.login #login form label {
	display: block;
	margin-bottom: .5rem;
	font-size: .9375rem;
	font-weight: 500;
}

body.login input.input,
body.login input[type="text"],
body.login input[type="email"],
body.login input[type="password"] {
	display: block;
	width: 100%;
	height: 3.5rem;
	margin: 0;
	padding: 0 1.125rem;
	font: inherit;
	font-size: 1.0625rem;
	font-weight: 400;
	color: var(--color-dark);
	background: var(--color-white);
	border: 1.5px solid var(--border-color);
	border-radius: var(--radius);
	outline: 0;
	box-shadow: none;
	appearance: none;
	transition: border-color .2s var(--ease-brand), box-shadow .2s var(--ease-brand);
}

body.login input.input::placeholder {
	color: var(--color-muted-dark);
}

body.login input.input:hover {
	border-color: #B0B4C2;
}

body.login input.input:focus {
	border-color: var(--color-dark);
	box-shadow: 0 0 0 3px rgba(0, 230, 240, .3);
}

body.login input.input:-webkit-autofill {
	-webkit-text-fill-color: var(--color-dark);
	box-shadow: 0 0 0 100px var(--color-white) inset;
}

body.login .wp-pwd {
	position: relative;
}

body.login .wp-pwd .input {
	padding-right: 3.5rem;
}

body.login .wp-pwd .button.wp-hide-pw {
	position: absolute;
	right: .5rem;
	top: 1.75rem; /* midden van het veld (3.5rem), ook als de caps-lock-melding eronder staat */
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color .2s var(--ease-brand);
}

body.login .wp-pwd .button.wp-hide-pw:hover,
body.login .wp-pwd .button.wp-hide-pw:focus-visible {
	background: rgba(0, 230, 240, .18);
	outline: 0;
}

body.login .wp-pwd .button.wp-hide-pw .dashicons {
	display: block;
	width: 1.25rem;
	height: 1.25rem;
	background: var(--color-muted);
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	transition: background-color .2s var(--ease-brand);
}

body.login .wp-pwd .button.wp-hide-pw .dashicons::before {
	content: none;
}

body.login .wp-pwd .button.wp-hide-pw:hover .dashicons {
	background: var(--color-dark);
}

body.login .wp-pwd .dashicons-visibility {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8M1.173 8a13 13 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5s3.879 1.168 5.168 2.457A13 13 0 0 1 14.828 8q-.086.13-.195.288c-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5s-3.879-1.168-5.168-2.457A13 13 0 0 1 1.172 8z'/%3E%3Cpath d='M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0'/%3E%3C/svg%3E");
}

body.login .wp-pwd .dashicons-hidden {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'%3E%3Cpath d='M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7 7 0 0 0-2.79.588l.77.771A6 6 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13 13 0 0 1 14.828 8q-.086.13-.195.288c-.335.48-.83 1.12-1.465 1.755q-.247.248-.517.486z'/%3E%3Cpath d='M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829zm-2.943 1.299.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829'/%3E%3Cpath d='M3.35 5.47q-.27.24-.518.487A13 13 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7 7 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 8.884-12-12 .708-.708 12 12z'/%3E%3C/svg%3E");
}

/* Caps-lock-melding (door WordPress na het wachtwoordveld gezet; core-CSS is uit) */
body.login .caps-warning {
	display: none;
	margin: 0 0 0 auto; /* rechts op de regel van "Onthoud mij" (zie custom-login-screen.js) */
	padding: .25rem 1rem .25rem .25rem; /* cirkel op gelijke afstand van boven, onder en links */
	font-size: .9375rem;
	line-height: 1.4;
	color: var(--color-dark);
	background: var(--color-white);
	border: 1.5px solid var(--border-color);
	border-radius: 999px;
	animation: so-caps-in .3s var(--ease-brand) both;
}

/* jQuery zet bij tonen inline display:block; flex houdt icoon en tekst op één middellijn */
body.login .caps-warning[style*="block"] {
	display: flex !important;
	align-items: center;
	gap: .625rem;
}

body.login .caps-warning .caps-icon {
	display: inline-grid;
	flex: none;
	place-items: center;
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	background: var(--color-primary);
	border-radius: 50%;
}

body.login .caps-warning .caps-icon svg {
	display: block;
	width: .6875rem;
	height: .75rem;
	transform: translateY(-.0625rem); /* de pijl in de SVG staat visueel net iets te laag */
	fill: var(--color-dark);
	stroke: var(--color-dark);
}

body.login .caps-warning .caps-warning-text {
	line-height: 1.25rem;
}

@keyframes so-caps-in {
	from {
		opacity: 0;
		transform: translateY(-.375rem);
	}
}

/* Checkbox, in de stijl van de keuzekaarten op de site */
body.login .forgetmenot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem .625rem;
	min-height: 2rem; /* even hoog als de caps-lock-pil, zodat het formulier niet verspringt */
}

body.login .forgetmenot label {
	display: inline;
	margin: 0;
	font-size: 1rem;
	font-weight: 400;
	cursor: pointer;
}

body.login input#rememberme {
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	appearance: none;
	background: var(--color-white);
	border: 1.5px solid var(--border-color);
	border-radius: 6px;
	box-shadow: none;
	cursor: pointer;
	transition: border-color .2s var(--ease-brand), box-shadow .2s var(--ease-brand), background-color .2s var(--ease-brand);
}

body.login input#rememberme:hover {
	border-color: #B0B4C2;
}

body.login input#rememberme:checked {
	border-color: var(--color-dark);
	background: var(--color-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%2300E6F0' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.4' d='m5 10.5 3.2 3L15 7'/%3E%3C/svg%3E") center / 14px no-repeat;
	box-shadow: 0 0 0 3px rgba(0, 230, 240, .3);
}

body.login input#rememberme:checked::before {
	content: none;
}

body.login input#rememberme:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

/* Toggletip bij "Onthoud mij" (WP 7.x): klein rond vraagteken, bubbel als kaartje */
body.login .wp-tooltip {
	display: inline-flex;
	align-items: center;
}

body.login .wp-tooltip__toggle {
	display: grid;
	place-items: center;
	width: 1.25rem;
	height: 1.25rem;
	min-height: 0;
	margin: 0;
	padding: 0;
	font: inherit;
	font-size: .75rem;
	font-weight: 500;
	line-height: 1;
	color: var(--color-muted);
	background: transparent;
	border: 1.5px solid var(--border-color);
	border-radius: 50%;
	box-shadow: none;
	cursor: pointer;
	transition: border-color .2s var(--ease-brand), color .2s var(--ease-brand), background-color .2s var(--ease-brand);
}

body.login .wp-tooltip__toggle::before {
	content: "?";
}

body.login .wp-tooltip__toggle .dashicons {
	display: none;
}

body.login .wp-tooltip__toggle:hover,
body.login .wp-tooltip__toggle:focus-visible {
	color: var(--color-dark);
	background: rgba(0, 230, 240, .18);
	border-color: var(--color-dark);
	outline: 0;
}

body.login .wp-tooltip__bubble {
	width: min(22rem, calc(100vw - 2rem));
	margin: auto;
	padding: 1rem 2.75rem 1rem 1.25rem;
	font-size: .875rem;
	font-weight: 400;
	line-height: 1.5;
	color: var(--color-dark);
	background: var(--color-white);
	border: 1.5px solid var(--border-color);
	border-radius: var(--radius);
	box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
}

body.login .wp-tooltip__bubble::backdrop {
	background: rgba(0, 0, 20, .2);
}

body.login .wp-tooltip__close {
	position: absolute;
	right: .5rem;
	top: .5rem;
	width: 2rem;
	height: 2rem;
	min-height: 0;
	margin: 0;
	padding: 0;
	font: inherit;
	font-size: 1rem;
	line-height: 1;
	color: var(--color-muted);
	background: transparent;
	border: 0;
	border-radius: 50%;
	box-shadow: none;
	cursor: pointer;
}

body.login .wp-tooltip__close::before {
	content: "\00d7";
}

body.login .wp-tooltip__close .dashicons {
	display: none;
}

body.login .wp-tooltip__close:hover {
	color: var(--color-dark);
	background: rgba(0, 230, 240, .18);
}

/* Knop + "wachtwoord vergeten" op één regel, zoals knop + link in de hero van de site */
body.login .so-login__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	padding-top: .5rem;
}

body.login #login form .submit {
	text-align: left;
}

body.login #nav {
	margin: 0;
	padding: 0;
	font-size: 1rem;
}

body.login .link,
body.login #nav a {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding-bottom: 3px;
	font-weight: 500;
	color: var(--color-dark);
	text-decoration: none;
	background: linear-gradient(var(--color-primary), var(--color-primary)) left bottom / 100% 2px no-repeat;
	transition: gap .3s var(--ease-brand);
}

body.login .link:hover,
body.login #nav a:hover {
	gap: .875rem;
	color: var(--color-dark);
}

/* De primaire knop van de site: donkere pil met cyaan cirkelpijl en glow */
body.login #login .button-primary {
	--arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000014' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--gap: .875rem;
	display: inline-flex;
	align-items: center;
	float: none;
	min-height: 3.5rem;
	height: auto;
	margin: 0;
	padding: 0 calc(.5rem + 2.625rem + var(--gap)) 0 1.625rem;
	font: inherit;
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.2;
	color: var(--color-white);
	text-shadow: none;
	background-color: var(--color-dark);
	background-image:
		var(--arrow),
		radial-gradient(circle at calc(100% - .5rem - 1.3125rem) 50%, var(--color-primary) 1.3125rem, transparent calc(1.3125rem + 1px)),
		radial-gradient(103.88% 92.71% at 50.18% 7.29%, rgba(255, 255, 255, .16) 0%, rgba(255, 255, 255, .02) 100%);
	background-repeat: no-repeat;
	background-size: 1.25rem 1.25rem, 100% 100%, 100% 100%;
	background-position: calc(100% - .5rem - .6875rem) 50%, 0 0, 0 0;
	border: 1.5px solid var(--color-dark);
	border-radius: 999px;
	box-shadow: var(--glow);
	cursor: pointer;
	transition: padding .3s var(--ease-brand), background-color .3s var(--ease-brand), border-color .3s var(--ease-brand), box-shadow .3s var(--ease-brand);
}

body.login #login .button-primary:hover,
body.login #login .button-primary:focus-visible {
	--gap: 1.375rem;
	color: var(--color-white);
	background-color: #0E1F4D;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 0 rgba(0, 230, 240, .5);
	outline: 0;
}

/* Hulp onder het paneel
=================================================== */
body.login .so-login__help {
	display: grid;
	gap: .625rem;
	justify-items: center;
}

body.login #backtoblog {
	margin: 0 0 .5rem;
	padding: 0;
	font-size: 1rem;
}

body.login #backtoblog a {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding-bottom: 3px;
	font-weight: 500;
	color: var(--color-dark);
	text-decoration: none;
	background: linear-gradient(var(--color-primary), var(--color-primary)) left bottom / 100% 2px no-repeat;
	transition: gap .3s var(--ease-brand);
}

body.login #backtoblog a:hover {
	gap: .875rem;
}

body.login .so-login__contact {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .375rem .25rem;
	margin: 0;
	font-size: .9375rem;
	color: var(--color-muted);
	text-align: center;
}

body.login .so-login__contact a {
	font-weight: 500;
	color: var(--color-dark);
	text-decoration: none;
}

body.login .so-login__contact a:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: var(--color-primary);
	text-underline-offset: .2em;
}

body.login .privacy-policy-page-link {
	margin: 0;
	font-size: .875rem;
	text-align: center;
}

body.login .privacy-policy-link {
	color: var(--color-muted);
	text-decoration: none;
}

body.login .privacy-policy-link:hover {
	color: var(--color-dark);
}

/* Twee-factor en herstel-schermen van plugins die op #login meeliften */
body.login .backup-methods-wrap {
	width: 100%;
	padding: 1rem 1.25rem;
	font-size: .9375rem;
	background: var(--color-white);
	border: 1.5px solid var(--border-color);
	border-radius: var(--radius);
}

body.login .backup-methods-wrap ul a {
	color: var(--color-dark);
}

body.login .two-factor-email-resend {
	text-align: center;
}

/* Herauthenticatie in een iframe (interim login): alleen het paneel */
body.login.interim-login {
	padding: 1rem;
}

body.login.interim-login .so-login__brand,
body.login.interim-login .so-login__help,
body.login.interim-login .so-login__light,
body.login.interim-login .so-login__beam,
body.login.interim-login .so-login__statement {
	display: none;
}

/* Klein scherm
=================================================== */
@media (max-width: 600px) {
	body.login {
		--so-step: 3.5rem;
		--so-tab: 11rem;
		--so-pad-x: 1.5rem;
	}

	body.login .so-login__brand svg {
		height: 36px;
	}

	body.login .so-login__phone {
		display: none;
	}

	body.login #login {
		padding-top: calc(var(--so-step) + 2.25rem);
	}

	body.login #login h1 .so-intro__sep,
	body.login #login h1 .so-login__suffix {
		display: none;
	}

	body.login .so-login__statement {
		font-size: 1.75rem;
	}

	body.login .so-login__contact {
		flex-direction: column;
		gap: .25rem;
	}

	body.login .so-login__contact .so-intro__sep {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.login .so-login__light,
	body.login .so-login__beam i,
	body.login #login,
	body.login .caps-warning,
	body.login .so-login__statement .word {
		animation: none;
		opacity: 1;
		transform: none;
	}
}
