/*
 * GPTestPro — branded wp-login.php (log in, create account, lost and reset password).
 * Enqueued after core login.css by functions.php. The brand panel (.gtp-login-aside) shows from 960px up.
 */

@font-face { font-family: Inter; font-style: normal; font-weight: 100 900; font-display: swap; src: url(fonts/inter-latin-wght-normal.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: Inter; font-style: normal; font-weight: 100 900; font-display: swap; src: url(fonts/inter-latin-ext-wght-normal.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

body.login.gtp-login {
	--gtp-ink: #13232F;
	--gtp-teal: #0F6B5C;
	--gtp-teal-dark: #0B5649;
	--gtp-teal-soft: #E3F2EE;
	--gtp-amber: #F2A93B;
	--gtp-slate: #5B6B77;
	--gtp-mist: #F4F7F6;
	--gtp-line: #DBE3E8;
	--gtp-field: #C5D1D9;
	--gtp-night: #0F2F2A;
	--gtp-ring: 0 0 0 4px rgba(15, 107, 92, .16);
	/* Core buttons, focus rings and checkboxes read these. */
	--wp-admin-theme-color: #0F6B5C;
	--wp-admin-theme-color--rgb: 15, 107, 92;
	--wp-admin-theme-color-darker-10: #0B5649;
	--wp-admin-theme-color-darker-10--rgb: 11, 86, 73;
	--wp-admin-theme-color-darker-20: #08463B;
	--wp-admin-theme-color-darker-20--rgb: 8, 70, 59;
	display: flex;
	flex-direction: column;
	height: auto;
	min-height: 100vh;
	min-height: 100dvh;
	background: #fff;
	color: var(--gtp-ink);
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	font-size: 15px;
	line-height: 1.5;
	letter-spacing: -0.005em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.gtp-login input, .gtp-login button, .gtp-login select { font-family: inherit; }

/* ---- Form column ---------------------------------------------------- */
body.gtp-login #login {
	box-sizing: border-box;
	width: 100%;
	max-width: 432px;
	margin: auto; /* centred in the space beside the brand panel */
	padding: 48px 24px;
}
body.gtp-login.login-action-confirm_admin_email #login { max-width: 560px; }

.gtp-login h1.wp-login-logo a {
	width: 188px;
	height: 40px;
	margin: 0 0 36px;
	background: url(img/logo.svg) no-repeat left center / contain;
	border-radius: 6px;
}
.gtp-login h1.wp-login-logo a:focus { outline: 2px solid transparent; box-shadow: 0 0 0 3px rgba(15, 107, 92, .35); }

.gtp-login .gtp-login-head h2 { margin: 0 0 8px; color: var(--gtp-ink); font-size: 30px; font-weight: 800; line-height: 1.15; letter-spacing: -0.025em; }
.gtp-login .gtp-login-head p { margin: 0 0 28px; color: var(--gtp-slate); font-size: 16px; line-height: 1.55; }

/* Notices: errors, "check your email", "logged out" */
.gtp-login .notice,
.gtp-login .message,
.gtp-login .success {
	margin: 0 0 22px;
	padding: 12px 14px;
	border: 1px solid #BFDDD5;
	border-left: 4px solid var(--gtp-teal);
	border-radius: 10px;
	background: var(--gtp-teal-soft);
	box-shadow: none;
	color: var(--gtp-ink);
}
.gtp-login .notice p, .gtp-login .message p, .gtp-login .success p { margin: 0; font-size: 14px; line-height: 1.5; }
.gtp-login .notice p + p { margin-top: 6px; }
.gtp-login .notice-error { border-color: #F1C4BF; border-left-color: #C9372C; background: #FDF3F2; }
.gtp-login .login-error-list li + li { margin-top: 6px; }
.gtp-login .notice a { color: var(--gtp-teal); font-weight: 600; }

/* Fields */
.gtp-login form {
	margin: 0;
	padding: 0;
	overflow: visible;
	border: 0;
	background: none;
	box-shadow: none;
}
body.gtp-login #login form p,
body.gtp-login #login .user-pass-wrap { margin: 0 0 18px; }
body.gtp-login #login label {
	display: inline-block;
	margin: 0 0 6px;
	color: var(--gtp-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}
body.gtp-login #login form .input,
body.gtp-login #login input[type="text"],
body.gtp-login #login input[type="email"],
body.gtp-login #login input[type="password"] {
	box-sizing: border-box;
	width: 100%;
	height: 48px;
	min-height: 48px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid var(--gtp-field);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(19, 35, 47, .05);
	color: var(--gtp-ink);
	font-size: 16px; /* 16px stops iOS zooming into the field */
	line-height: 1.4;
	transition: border-color .15s ease, box-shadow .15s ease;
}
body.gtp-login #login input.password-input { padding-right: 52px; }
body.gtp-login #login form .input:hover,
body.gtp-login #login input[type="text"]:hover,
body.gtp-login #login input[type="email"]:hover,
body.gtp-login #login input[type="password"]:hover { border-color: #A3B3BE; }
body.gtp-login #login form .input:focus,
body.gtp-login #login input[type="text"]:focus,
body.gtp-login #login input[type="email"]:focus,
body.gtp-login #login input[type="password"]:focus { border-color: var(--gtp-teal); box-shadow: var(--gtp-ring); outline: 2px solid transparent; }

/* Show / hide password */
.gtp-login .button.wp-hide-pw {
	top: 4px;
	right: 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	min-width: 40px;
	min-height: 40px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	color: var(--gtp-slate);
}
.gtp-login .button.wp-hide-pw:hover { background: var(--gtp-mist); color: var(--gtp-ink); }
.gtp-login .button.wp-hide-pw:focus { background: transparent; border: 0; box-shadow: 0 0 0 2px var(--gtp-teal); color: var(--gtp-ink); }
.gtp-login .button.wp-hide-pw .dashicons { position: static; top: auto; width: 20px; height: 20px; font-size: 20px; }

/* Remember me + Forgot password? share a row */
.gtp-login #loginform { display: grid; grid-template-columns: 1fr auto; grid-auto-flow: row dense; align-items: center; column-gap: 12px; }
.gtp-login #loginform > * { grid-column: 1 / -1; }
.gtp-login #loginform > .forgetmenot { grid-column: 1; }
.gtp-login #loginform > .gtp-forgot { grid-column: 2; }
body.gtp-login #login form .forgetmenot { float: none; display: flex; align-items: center; gap: 8px; margin: 0 0 24px; }
body.gtp-login #login .forgetmenot label { margin: 0; color: var(--gtp-ink); font-size: 14px; font-weight: 500; }
body.gtp-login #login form .gtp-forgot { margin: 0 0 24px; font-size: 14px; line-height: 1.4; }
.gtp-login .wp-tooltip .wp-tooltip__toggle { width: 22px; height: 22px; color: #8A99A4; }
.gtp-login .wp-tooltip .wp-tooltip__toggle .dashicons { width: 18px; height: 18px; font-size: 18px; }

.gtp-login input[type="checkbox"] {
	width: 18px;
	height: 18px;
	min-width: 18px;
	margin: 0;
	border: 1.5px solid #9FB0BB;
	border-radius: 5px;
	transition: background-color .15s ease, border-color .15s ease;
}
.gtp-login input[type="checkbox"]:hover { border-color: var(--gtp-teal); }
.gtp-login input[type="checkbox"]:focus { border-color: var(--gtp-teal); }
.gtp-login input[type="checkbox"]:checked {
	border-color: var(--gtp-teal);
	background: var(--gtp-teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.4l3.3 3.3L15 7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
}
.gtp-login input[type="checkbox"]:checked::before { content: none; }

/* Links inside the form column */
.gtp-login .gtp-forgot a,
body.gtp-login #backtoblog .gtp-login-switch a,
.gtp-login .notice a,
.gtp-login .privacy-policy-page-link a { color: var(--gtp-teal); font-weight: 600; text-decoration: none; }
.gtp-login .gtp-forgot a:hover,
body.gtp-login #backtoblog a:hover,
.gtp-login .notice a:hover,
.gtp-login .privacy-policy-page-link a:hover { color: var(--gtp-teal-dark); text-decoration: underline; text-underline-offset: 3px; }
.gtp-login .gtp-forgot a:focus,
body.gtp-login #backtoblog a:focus,
.gtp-login .notice a:focus,
.gtp-login .privacy-policy-page-link a:focus { outline: 2px solid var(--gtp-teal); outline-offset: 2px; border-radius: 4px; box-shadow: none; }

/* Buttons */
body.gtp-login #login form p.submit { margin: 0; padding: 0; }
body.gtp-login #login #wp-submit {
	float: none;
	display: block;
	width: 100%;
	height: 48px;
	min-height: 48px;
	margin: 0;
	padding: 0 20px;
	border: 1px solid var(--gtp-teal);
	border-radius: 10px;
	background: var(--gtp-teal);
	box-shadow: 0 1px 2px rgba(19, 35, 47, .14), inset 0 1px 0 rgba(255, 255, 255, .12);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-shadow: none;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .05s ease;
}
body.gtp-login #login #wp-submit:hover { border-color: var(--gtp-teal-dark); background: var(--gtp-teal-dark); }
body.gtp-login #login #wp-submit:active { transform: translateY(1px); }
body.gtp-login #login #wp-submit:focus { outline: 2px solid transparent; box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--gtp-teal); }
body.gtp-login #login .button.wp-generate-pw,
body.gtp-login #login .admin-email__actions .button:not(.button-primary) {
	height: 48px;
	min-height: 48px;
	margin: 0;
	padding: 0 18px;
	border: 1px solid var(--gtp-field);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(19, 35, 47, .05);
	color: var(--gtp-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
}
body.gtp-login #login .button.wp-generate-pw:hover { border-color: var(--gtp-teal); color: var(--gtp-teal); }
body.gtp-login #login .button.wp-generate-pw:focus { border-color: var(--gtp-teal); box-shadow: var(--gtp-ring); outline: 2px solid transparent; }

/* Create account: "we'll email you a link" note */
body.gtp-login #login #reg_passmail {
	margin: 0 0 22px;
	padding: 11px 14px 11px 40px;
	border-radius: 10px;
	background: var(--gtp-mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6B77' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E") 14px 50% / 17px no-repeat;
	color: var(--gtp-slate);
	font-size: 14px;
	line-height: 1.45;
}

/* Reset password */
body.gtp-login #login .user-pass1-wrap { margin: 0 0 18px; }
body.gtp-login #login .user-pass1-wrap > p { margin: 0; }
body.gtp-login #login #pass-strength-result { box-sizing: border-box; margin: 8px 0 0; padding: 8px 12px; border-radius: 8px; font-size: 13px; text-align: left; }
body.gtp-login #login .pw-weak { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; }
body.gtp-login #login .pw-weak label { margin: 0; font-weight: 500; }
body.gtp-login #login form .indicator-hint { margin: 0 0 22px; color: var(--gtp-slate); font-size: 13px; line-height: 1.5; }
body.gtp-login #login .reset-pass-submit { display: flex; flex-wrap: wrap; gap: 10px; }
body.gtp-login #login .reset-pass-submit #wp-submit { flex: 1 1 160px; width: auto; }
body.gtp-login #login .reset-pass-submit .button { margin: 0; }

/* Under the form */
body.gtp-login #nav { display: none; } /* replaced by .gtp-forgot and .gtp-login-switch */
body.gtp-login #backtoblog { margin: 28px 0 0; padding: 0; color: var(--gtp-slate); font-size: 14px; text-align: center; }
.gtp-login .gtp-login-switch { display: block; margin: 0 0 18px; padding: 24px 0 0; border-top: 1px solid var(--gtp-line); font-size: 15px; }
body.gtp-login #backtoblog .gtp-login-home { color: var(--gtp-slate); font-weight: 500; text-decoration: none; }
body.gtp-login #backtoblog .gtp-login-home:hover { color: var(--gtp-ink); }
.gtp-login .privacy-policy-page-link { margin: 20px 0 0; font-size: 13px; }
body.gtp-login .privacy-policy-page-link a { color: var(--gtp-slate); font-weight: 500; }

/* ---- Brand panel ---------------------------------------------------- */
.gtp-login-aside { display: none; }

@media (min-width: 960px) {
	body.gtp-login:not(.interim-login) { padding-left: min(46vw, 680px); }
	body.gtp-login:not(.interim-login) h1.wp-login-logo { display: none; } /* the panel carries the logo */

	.gtp-login .gtp-login-aside {
		position: fixed;
		inset: 0 auto 0 0;
		z-index: 1;
		isolation: isolate;
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
		gap: 40px;
		width: min(46vw, 680px);
		padding: 44px clamp(40px, 4.6vw, 76px);
		overflow-y: auto;
		background:
			radial-gradient(900px 560px at 100% 0%, rgba(15, 107, 92, .62), transparent 62%),
			radial-gradient(640px 460px at 0% 100%, rgba(242, 169, 59, .16), transparent 62%),
			var(--gtp-night);
		color: #CFE3DE;
	}
	/* The pulse line from the logo mark, faint, behind the copy. */
	.gtp-login .gtp-login-aside::after {
		content: "";
		position: absolute;
		z-index: -1;
		left: 0;
		right: 0;
		bottom: 22%;
		height: 140px;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 680 140' preserveAspectRatio='none'%3E%3Cpath d='M0 78h250l18-40 24 74 20-50h16l24 28 42-58 18 46h268' fill='none' stroke='%23fff' stroke-opacity='.07' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
		pointer-events: none;
	}

	.gtp-login .gtp-login-brand { display: inline-flex; align-self: flex-start; border-radius: 8px; }
	.gtp-login .gtp-login-brand img { display: block; width: auto; height: 38px; }
	.gtp-login .gtp-login-brand:focus { outline: 2px solid #fff; outline-offset: 4px; box-shadow: none; }

	.gtp-login .gtp-login-pitch { max-width: 500px; margin: auto 0; }
	.gtp-login .gtp-login-eyebrow {
		display: inline-block;
		margin: 0 0 20px;
		padding: 5px 12px;
		border: 1px solid rgba(255, 255, 255, .14);
		border-radius: 999px;
		background: rgba(255, 255, 255, .07);
		color: var(--gtp-teal-soft);
		font-size: 13px;
		font-weight: 600;
		letter-spacing: .02em;
	}
	.gtp-login .gtp-login-title { margin: 0 0 30px; color: #fff; font-size: clamp(32px, 3vw, 44px); font-weight: 800; line-height: 1.1; letter-spacing: -0.03em; }
	.gtp-login .gtp-login-title em { font-style: normal; color: var(--gtp-amber); }
	.gtp-login .gtp-login-points { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
	.gtp-login .gtp-login-points li { position: relative; padding-left: 36px; color: #E6F1EE; font-size: 16px; line-height: 1.45; }
	.gtp-login .gtp-login-points li::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 23px;
		height: 23px;
		border-radius: 50%;
		background: rgba(242, 169, 59, .16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.4l3.3 3.3L15 7' fill='none' stroke='%23F2A93B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat;
	}

	.gtp-login .gtp-login-foot { display: grid; gap: 18px; }
	.gtp-login .gtp-login-countdown {
		display: flex;
		align-items: center;
		gap: 16px;
		max-width: 440px;
		margin: 0;
		padding: 16px 20px;
		border: 1px solid rgba(255, 255, 255, .12);
		border-radius: 14px;
		background: rgba(255, 255, 255, .06);
		backdrop-filter: blur(6px);
	}
	.gtp-login .gtp-login-countdown strong { color: var(--gtp-amber); font-size: 40px; font-weight: 800; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
	.gtp-login .gtp-login-countdown span { color: #CFE3DE; font-size: 14px; line-height: 1.45; }
	.gtp-login .gtp-login-countdown b { display: block; color: #fff; font-size: 15px; font-weight: 700; }
	.gtp-login .gtp-login-fine { margin: 0; color: #9FBDB6; font-size: 13px; }
}

/* Short laptop screens: keep the panel from scrolling. */
@media (min-width: 960px) and (max-height: 760px) {
	.gtp-login .gtp-login-aside { gap: 28px; padding-block: 32px; }
	.gtp-login .gtp-login-title { margin-bottom: 22px; font-size: 32px; }
	.gtp-login .gtp-login-points { gap: 10px; }
	.gtp-login .gtp-login-points li:nth-child(n+4) { display: none; }
	.gtp-login .gtp-login-aside::after { display: none; }
}

/* ---- Phones and small tablets -------------------------------------- */
@media (max-width: 959px) {
	body.gtp-login #login { padding: 40px 20px 32px; }
}
@media (max-width: 480px) {
	.gtp-login h1.wp-login-logo a { width: 160px; height: 34px; margin-bottom: 28px; }
	.gtp-login .gtp-login-head h2 { font-size: 26px; }
	.gtp-login .gtp-login-head p { margin-bottom: 24px; font-size: 15px; }
}

/* ---- wp-admin "session expired" pop-up ------------------------------ */
body.gtp-login.interim-login { display: block; min-height: 0; }
body.gtp-login.interim-login #login { max-width: 360px; margin: 0 auto; padding: 24px 20px; }
body.gtp-login.interim-login h1.wp-login-logo a { margin-bottom: 20px; }

@media (prefers-reduced-motion: reduce) {
	.gtp-login *, .gtp-login *::before { transition: none !important; }
}
