body.login {
	--sls-login-card-bg: rgba(255, 255, 255, 0.9);
	--sls-login-card-shadow: 0 18px 34px rgba(17, 30, 47, 0.14);
	--sls-login-ink: #1f2937;
	--sls-login-muted: #5f6b7a;
	--sls-login-accent: #04588d;
	--sls-login-border: #c7d0dc;
	--sls-login-focus: #8ea0bb;
	min-height: 100dvh;
	margin: 0;
	padding: 0;
	position: relative;
	background: #c6d0dd;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	overflow-x: hidden;
}

body.login::before {
	content: "";
	position: fixed;
	inset: 0;
	border: 0;
	border-radius: 0;
	background:
		linear-gradient(95deg, rgba(248, 250, 253, 0.88) 0%, rgba(248, 250, 253, 0.56) 34%, rgba(248, 250, 253, 0.08) 62%),
		var(--sls-login-bg-image) center center / cover no-repeat;
	z-index: 0;
}

body.login div#login {
	position: relative;
	z-index: 1;
	margin: clamp(28px, 6vh, 64px) 0 0 clamp(28px, 6vw, 96px);
	width: 420px;
	max-width: calc(100vw - 32px);
	padding: 0;
}

body.login div#login h1 {
	margin: 0 0 22px;
	padding: 0;
}

body.login div#login h1 a {
	width: min(280px, 66vw);
	height: 62px;
	margin: 0;
	background-image: var(--sls-login-logo-image);
	background-size: contain;
	background-position: left center;
	background-repeat: no-repeat;
}

body.login .sls-login-intro {
	margin: 0;
	padding: 30px 36px 10px;
	background: var(--sls-login-card-bg);
	border-radius: 20px 20px 0 0;
	box-shadow: var(--sls-login-card-shadow);
}

body.login .sls-login-intro h2 {
	margin: 0 0 8px;
	font-size: clamp(30px, 2.4vw, 40px);
	line-height: 1.08;
	letter-spacing: -0.015em;
	font-weight: 500;
	color: var(--sls-login-ink);
}

body.login .sls-login-intro p {
	margin: 0;
	font-size: 15px;
	line-height: 1.45;
	font-weight: 400;
	color: var(--sls-login-muted);
}

body.login form#loginform,
body.login form#lostpasswordform {
	margin: 0;
	padding: 18px 36px 24px;
	background: var(--sls-login-card-bg);
	border: 0;
	border-radius: 0;
	box-shadow: var(--sls-login-card-shadow);
}

body.login #loginform p,
body.login #loginform .user-pass-wrap,
body.login #lostpasswordform p,
body.login #lostpasswordform .user-pass-wrap {
	margin-bottom: 14px;
}

body.login #loginform label,
body.login #lostpasswordform label {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
	color: #38465a;
}

body.login #loginform .input,
body.login #loginform .input.password-input,
body.login #lostpasswordform .input,
body.login #lostpasswordform .input.password-input {
	margin-top: 7px;
	min-height: 48px;
	border-radius: 9px;
	border: 1px solid var(--sls-login-border);
	background: #fff;
	color: #1f2937;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.2;
	box-shadow: none;
	padding-inline: 14px;
}

body.login #loginform .input:focus,
body.login #loginform .input.password-input:focus,
body.login #lostpasswordform .input:focus,
body.login #lostpasswordform .input.password-input:focus {
	border-color: var(--sls-login-focus);
	box-shadow: 0 0 0 2px rgba(142, 160, 187, 0.22);
}

body.login .wp-core-ui .button.wp-hide-pw {
	margin-top: 7px;
	border-radius: 9px;
	border-color: var(--sls-login-border);
	background: #f6f8fb;
}

body.login #loginform .forgetmenot {
	margin-bottom: 12px;
}

body.login #loginform .forgetmenot label {
	font-size: 14px;
	font-weight: 500;
	color: #3f4d62;
}

body.login #loginform .submit,
body.login #lostpasswordform .submit {
	margin: 0;
	padding: 0;
}

body.login #loginform #wp-submit,
body.login #lostpasswordform #wp-submit {
	width: 100%;
	min-height: 52px;
	padding: 0 16px;
	border: 0;
	border-radius: 9px;
	background: var(--sls-login-accent);
	color: #fff;
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.01em;
}

body.login #loginform #wp-submit:hover,
body.login #loginform #wp-submit:focus,
body.login #lostpasswordform #wp-submit:hover,
body.login #lostpasswordform #wp-submit:focus {
	background: #31384a;
}

body.login #nav {
	margin: 0;
	padding: 0 36px 22px;
	text-align: right;
	background: var(--sls-login-card-bg);
	border-radius: 0 0 20px 20px;
	box-shadow: var(--sls-login-card-shadow);
}

body.login #nav a {
	font-size: 14px;
	font-weight: 500;
	color: #293447;
}

body.login .sls-login-register-cta {
	margin: 22px 0 0;
	text-align: center;
	font-size: 16px;
	line-height: 1.35;
	color: #4b5a72;
}

body.login .sls-login-register-cta a {
	color: #1f2a3a;
	font-weight: 500;
	text-decoration-thickness: 1px;
}

body.login #backtoblog {
	margin: 12px 0 0;
	padding: 0;
	text-align: center;
}

body.login #backtoblog a,
body.login .privacy-policy-page-link a {
	font-size: 13px;
	color: #33445c;
}

body.login .privacy-policy-page-link {
	margin-top: 14px;
}

body.login .language-switcher {
	margin: 14px 0 0 clamp(28px, 6vw, 96px);
}

body.login #login_error,
body.login .message,
body.login .success {
	margin: 0 0 14px;
	border-radius: 12px;
	border-left-width: 3px;
	box-shadow: none;
}

/* Keep card flow intact when WP status notices appear between intro and form. */
body.login .sls-login-intro + #login_error,
body.login .sls-login-intro + .message,
body.login .sls-login-intro + .success {
	margin: 0;
	padding: 14px 36px;
	border-radius: 0;
	background: var(--sls-login-card-bg);
	box-shadow: none;
}

body.login.login-action-lostpassword #login .notice.notice-info.message {
	margin: 0;
	padding: 26px 36px 18px;
	border-radius: 20px 20px 0 0;
	border-left-width: 3px;
	border-left-color: #70b3ef;
	background: var(--sls-login-card-bg);
	box-shadow: var(--sls-login-card-shadow);
	font-size: 15px;
	line-height: 1.45;
	font-weight: 400;
	color: #3d4654;
}

@media (max-width: 960px) {
	body.login {
		padding: 14px 14px 20px;
	}

	body.login div#login {
		margin: 10px auto 0;
	}

	body.login div#login h1 a {
		width: min(260px, 70vw);
		height: 58px;
	}

	body.login .language-switcher {
		margin: 14px auto 0;
		text-align: center;
	}
}

@media (max-width: 782px) {
	body.login {
		padding: 18px 12px 26px;
	}

	body.login div#login {
		margin: 0 auto;
		width: 360px;
		max-width: 100%;
	}

	body.login .sls-login-intro,
	body.login form#loginform,
	body.login form#lostpasswordform,
	body.login #nav {
		padding-inline: 18px;
	}

	body.login .sls-login-intro + #login_error,
	body.login .sls-login-intro + .message,
	body.login .sls-login-intro + .success {
		padding-inline: 18px;
	}

	body.login.login-action-lostpassword #login .notice.notice-info.message {
		padding: 18px 18px 14px;
	}

	body.login .sls-login-intro {
		padding-top: 22px;
	}

	body.login .sls-login-intro h2 {
		font-size: 34px;
	}

	body.login .sls-login-intro p {
		font-size: 14px;
	}

	body.login #loginform label,
	body.login #loginform .forgetmenot label,
	body.login #lostpasswordform label {
		font-size: 14px;
	}

	body.login #loginform .input,
	body.login #loginform .input.password-input,
	body.login #lostpasswordform .input,
	body.login #lostpasswordform .input.password-input {
		min-height: 45px;
		font-size: 16px;
	}

	body.login #loginform #wp-submit,
	body.login #lostpasswordform #wp-submit {
		min-height: 48px;
		font-size: 17px;
	}

	body.login .sls-login-register-cta {
		font-size: 15px;
	}

	body.login .language-switcher {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		gap: 8px;
	}
}
