:root {
	--ep-navy-950: #061224;
	--ep-navy-900: #0a1c34;
	--ep-navy-800: #102a49;
	--ep-blue-500: #2da8e8;
	--ep-blue-400: #57c2f3;
	--ep-ink: #11233b;
	--ep-muted: #607189;
	--ep-white: #ffffff;
	--ep-error: #b42318;
	--ep-success: #067647;
}

body.ep-access-page {
	margin: 0;
	min-height: 100vh;
	background:
		radial-gradient(circle at 12% 12%, rgba(45, 168, 232, .20), transparent 34rem),
		linear-gradient(145deg, var(--ep-navy-950), var(--ep-navy-800));
	color: var(--ep-ink);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.ep-access-page #fkcart-floating-toggler {
	display: none !important;
}

body.ep-access-page .ep-access-main {
	min-height: 100vh;
}

body.ep-access-page .ep-access-shell {
	box-sizing: border-box;
	width: min(100%, 660px);
	margin: 0 auto;
	padding: clamp(30px, 8vh, 82px) 20px 34px;
}

body.ep-access-page .ep-access-brand {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 56px;
	margin-bottom: 22px;
	color: var(--ep-white);
	font-size: clamp(24px, 4vw, 34px);
	font-weight: 780;
	letter-spacing: -.035em;
}

body.ep-access-page .ep-access-logo {
	display: block;
	width: min(380px, 84vw);
	height: auto;
	max-width: 100%;
}

body.ep-access-page .ep-access-card {
	box-sizing: border-box;
	padding: clamp(26px, 6vw, 46px);
	border: 1px solid rgba(255,255,255,.58);
	border-radius: 24px;
	background: rgba(255,255,255,.985);
	box-shadow: 0 30px 80px rgba(0, 10, 28, .36);
}

body.ep-access-page .ep-access-card h1 {
	margin: 7px 0 11px;
	color: var(--ep-navy-950);
	font-size: clamp(28px, 5vw, 39px);
	line-height: 1.08;
	letter-spacing: -.035em;
	text-align: center;
}

body.ep-access-page .ep-access-eyebrow {
	margin: 0;
	color: #147eb5;
	font-size: 12px;
	font-weight: 850;
	letter-spacing: .12em;
	text-align: center;
	text-transform: uppercase;
}

body.ep-access-page .ep-access-lead {
	max-width: 480px;
	margin: 0 auto 25px;
	color: var(--ep-muted);
	font-size: 14px;
	line-height: 1.55;
	text-align: center;
}

body.ep-access-page .ep-access-form {
	display: grid;
	gap: 14px;
}

body.ep-access-page .ep-quick-confirmations {
	display: grid;
	gap: 10px;
}

body.ep-access-page .ep-check {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	box-sizing: border-box;
	padding: 15px;
	border: 1px solid #d2e1ec;
	border-radius: 12px;
	background: #f7fbfe;
	color: #304861;
	font-size: 14px;
	font-weight: 620;
	line-height: 1.45;
	cursor: pointer;
}

body.ep-access-page .ep-check:hover {
	border-color: #9ecfe7;
}

body.ep-access-page .ep-check input {
	width: 19px;
	height: 19px;
	margin: 1px 0 0;
	accent-color: var(--ep-blue-500);
	flex: 0 0 auto;
}

body.ep-access-page .ep-select-label {
	margin: 5px 0 -5px;
	color: var(--ep-navy-900);
	font-size: 13px;
	font-weight: 780;
}

body.ep-access-page .ep-access-form select {
	box-sizing: border-box;
	width: 100%;
	min-height: 52px;
	padding: 11px 13px;
	border: 1px solid #c9d7e4;
	border-radius: 11px;
	background: var(--ep-white);
	color: var(--ep-ink);
	font: inherit;
	outline: none;
	transition: border-color .16s ease, box-shadow .16s ease;
}

body.ep-access-page .ep-access-form select:focus {
	border-color: var(--ep-blue-500);
	box-shadow: 0 0 0 4px rgba(45, 168, 232, .15);
}

body.ep-access-page .ep-primary-button {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 54px;
	margin-top: 4px;
	padding: 12px 20px;
	border: 0;
	border-radius: 11px;
	background: linear-gradient(135deg, #168cc6, var(--ep-blue-500));
	color: var(--ep-white) !important;
	font: inherit;
	font-weight: 820;
	text-decoration: none !important;
	box-shadow: 0 12px 25px rgba(22, 140, 198, .24);
	cursor: pointer;
	transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}

body.ep-access-page .ep-primary-button:hover,
body.ep-access-page .ep-primary-button:focus {
	transform: translateY(-1px);
	box-shadow: 0 15px 28px rgba(22, 140, 198, .30);
}

body.ep-access-page .ep-primary-button:disabled {
	opacity: .68;
	cursor: wait;
}

body.ep-access-page .ep-access-notice {
	padding: 12px 14px;
	margin: 0 0 4px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 720;
	line-height: 1.45;
}

body.ep-access-page .ep-access-notice--error {
	border: 1px solid #f4c7c3;
	background: #fff2f0;
	color: var(--ep-error);
}

body.ep-access-page .ep-access-notice--success {
	border: 1px solid #a9dfc4;
	background: #ecfdf3;
	color: var(--ep-success);
}

body.ep-access-page .ep-access-notice--info {
	border: 1px solid #b9dcef;
	background: #eef8fd;
	color: #174d6d;
}

body.ep-access-page .ep-access-login-divider {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 20px 0 13px;
	color: var(--ep-muted);
	font-size: 11px;
	font-weight: 760;
	letter-spacing: .08em;
	text-transform: uppercase;
}

body.ep-access-page .ep-access-login-divider::before,
body.ep-access-page .ep-access-login-divider::after {
	content: "";
	height: 1px;
	background: #dce7ef;
	flex: 1 1 auto;
}

body.ep-access-page .ep-access-login {
	border: 1px solid #d2e1ec;
	border-radius: 12px;
	background: #f7fbfe;
	overflow: hidden;
}

body.ep-access-page .ep-access-login > summary {
	position: relative;
	padding: 15px 43px 15px 16px;
	color: var(--ep-navy-900);
	font-size: 14px;
	font-weight: 790;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

body.ep-access-page .ep-access-login > summary::-webkit-details-marker {
	display: none;
}

body.ep-access-page .ep-access-login > summary:focus-visible {
	outline: 3px solid rgba(45, 168, 232, .35);
	outline-offset: -3px;
}

body.ep-access-page .ep-access-login > summary::after {
	content: "+";
	position: absolute;
	top: 50%;
	right: 16px;
	transform: translateY(-50%);
	color: #147eb5;
	font-size: 20px;
	font-weight: 500;
}

body.ep-access-page .ep-access-login[open] > summary::after {
	content: "−";
}

body.ep-access-page .ep-access-login__panel {
	padding: 0 16px 16px;
	border-top: 1px solid #dce7ef;
}

body.ep-access-page .ep-access-login__panel > p {
	margin: 14px 0;
	color: var(--ep-muted);
	font-size: 12px;
	line-height: 1.5;
}

body.ep-access-page .ep-access-login .woocommerce-notices-wrapper,
body.ep-access-page .ep-access-login .woocommerce-error,
body.ep-access-page .ep-access-login .woocommerce-message,
body.ep-access-page .ep-access-login .woocommerce-info {
	box-sizing: border-box;
	width: 100%;
}

body.ep-access-page .ep-access-login .woocommerce-error,
body.ep-access-page .ep-access-login .woocommerce-message,
body.ep-access-page .ep-access-login .woocommerce-info {
	margin: 0 0 13px;
	padding: 12px 14px;
	border: 1px solid #f4c7c3;
	border-radius: 9px;
	background: #fff2f0;
	color: var(--ep-error);
	font-size: 12px;
	line-height: 1.45;
	list-style: none;
}

body.ep-access-page .ep-access-login .woocommerce-error::before,
body.ep-access-page .ep-access-login .woocommerce-message::before,
body.ep-access-page .ep-access-login .woocommerce-info::before,
body.ep-access-page .ep-access-login .clear {
	display: none;
}

body.ep-access-page .ep-access-login .woocommerce-form-login {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

body.ep-access-page .ep-access-login .form-row {
	float: none;
	box-sizing: border-box;
	width: 100%;
	margin: 0;
	padding: 0;
}

body.ep-access-page .ep-access-login label {
	display: block;
	margin: 0 0 5px;
	color: var(--ep-navy-900);
	font-size: 12px;
	font-weight: 730;
}

body.ep-access-page .ep-access-login input[type="text"],
body.ep-access-page .ep-access-login input[type="password"] {
	box-sizing: border-box;
	width: 100%;
	min-height: 46px;
	padding: 10px 12px;
	border: 1px solid #c9d7e4;
	border-radius: 9px;
	background: var(--ep-white);
	color: var(--ep-ink);
	font: inherit;
}

body.ep-access-page .ep-access-login input:focus {
	border-color: var(--ep-blue-500);
	outline: none;
	box-shadow: 0 0 0 4px rgba(45, 168, 232, .15);
}

body.ep-access-page .ep-access-login .woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}

body.ep-access-page .ep-access-login .woocommerce-form-login__rememberme input {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--ep-blue-500);
}

body.ep-access-page .ep-access-login .woocommerce-form-login__submit {
	width: 100%;
	min-height: 46px;
	margin: 4px 0 0;
	padding: 10px 16px;
	border: 0;
	border-radius: 9px;
	background: var(--ep-navy-800);
	color: var(--ep-white);
	font: inherit;
	font-weight: 780;
	cursor: pointer;
}

body.ep-access-page .ep-access-login .lost_password {
	margin: 0;
	font-size: 12px;
	text-align: center;
}

body.ep-access-page .ep-access-login a {
	color: #0a709c;
	font-weight: 700;
}

body.ep-access-page .ep-cookie-note,
body.ep-access-page .ep-legal-note {
	margin: 0;
	color: var(--ep-muted);
	font-size: 11px;
	line-height: 1.45;
	text-align: center;
}

body.ep-access-page .ep-legal-note a,
body.ep-access-page .ep-access-footer a {
	color: #107eaf;
	font-weight: 720;
	text-decoration: none;
}

body.ep-access-page .ep-legal-note a:hover,
body.ep-access-page .ep-legal-note a:focus,
body.ep-access-page .ep-access-footer a:hover,
body.ep-access-page .ep-access-footer a:focus {
	text-decoration: underline;
}

body.ep-access-page .ep-access-footer {
	padding: 20px 12px 0;
	color: rgba(255,255,255,.78);
	font-size: 12px;
	line-height: 1.5;
	text-align: center;
}

body.ep-access-page .ep-access-footer p {
	margin: 5px 0;
}

body.ep-access-page .ep-access-footer span {
	padding: 0 7px;
}

body.ep-access-page .ep-access-footer a {
	color: #dff4ff;
}

body.ep-access-page .ep-noscript {
	padding: 12px;
	border-radius: 10px;
	background: #fff2f0;
	color: var(--ep-error);
}

body.ep-access-page .ep-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

@media (max-width: 600px) {
	body.ep-access-page .ep-access-shell {
		padding: 24px 12px;
	}

	body.ep-access-page .ep-access-card {
		padding: 25px 18px;
		border-radius: 18px;
	}

	body.ep-access-page .ep-check {
		padding: 13px;
	}
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}
