@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800;900&display=swap");

:root {
	--tmas-auth-navy: #071f4d;
	--tmas-auth-text: #344767;
	--tmas-auth-orange: #ff4b0a;
	--tmas-auth-line: #d8e1ee;
	--tmas-auth-white: rgba(255, 255, 255, 0.88);
}

.tmas-auth-page .entry-title,
.tmas-auth-page .page-title,
.tmas-registration-page .entry-title,
.tmas-registration-page .page-title,
.tmas-auth-page .woocommerce > h2,
.tmas-registration-page .woocommerce > h2 {
	display: none !important;
}

.tmas-auth-page main,
.tmas-auth-page .site-main,
.tmas-auth-page .content-area,
.tmas-auth-page .entry-content,
.tmas-registration-page main,
.tmas-registration-page .site-main,
.tmas-registration-page .content-area,
.tmas-registration-page .entry-content {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding-inline: 0 !important;
}

.tmas-auth-page .woocommerce,
.tmas-registration-page .woocommerce,
.tmas-registration-page .entry-content {
	font-family: "Nunito", sans-serif;
}

.tmas-auth-page .woocommerce {
	display: flex;
	width: 100% !important;
	max-width: none !important;
	margin-inline: auto !important;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	padding: clamp(30px, 4.2vw, 72px) clamp(16px, 3vw, 40px);
}

.tmas-registration-page .entry-content {
	display: flex;
	width: 100% !important;
	max-width: none !important;
	margin-inline: auto !important;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	padding: clamp(30px, 4.2vw, 72px) clamp(16px, 3vw, 40px);
}

body.tmas-auth-page .site-main,
body.tmas-registration-page .site-main {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	justify-items: center !important;
}

body.tmas-auth-page article,
body.tmas-registration-page article,
body.tmas-auth-page .entry-content,
body.tmas-registration-page .entry-content {
	box-sizing: border-box !important;
	width: 100% !important;
	max-width: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.tmas-auth-page .woocommerce .u-columns,
.tmas-auth-page .woocommerce .col2-set,
.tmas-auth-page .woocommerce .u-column1,
.tmas-auth-page .woocommerce .col-1 {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

.tmas-auth-page .woocommerce .u-column2,
.tmas-auth-page .woocommerce .col-2 {
	display: none !important;
}

.tmas-auth {
	box-sizing: border-box;
	width: min(100%, clamp(520px, 31vw, 660px));
	margin-inline: auto;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: clamp(26px, 1.7vw, 34px);
	color: var(--tmas-auth-navy);
	background: var(--tmas-auth-white);
	border: 1px solid rgba(255, 255, 255, 0.95);
	border-radius: clamp(21px, 1.25vw, 25px);
	box-shadow: 0 20px 54px rgba(18, 35, 65, 0.095);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
}

.tmas-auth--register {
	width: min(100%, 720px);
}

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

.tmas-auth__intro {
	max-width: 530px;
	margin: 0 auto clamp(18px, 1.4vh, 23px);
	text-align: center;
}

.tmas-auth__icon {
	display: grid;
	place-items: center;
	width: clamp(54px, 2.8vw, 62px);
	aspect-ratio: 1;
	margin: 0 auto clamp(11px, 1vh, 14px);
	color: var(--tmas-auth-orange);
	background: rgba(255, 247, 241, 0.78);
	border: 2px solid rgba(255, 255, 255, 0.95);
	border-radius: 50%;
	box-shadow: 0 18px 34px rgba(255, 75, 10, 0.1);
}

.tmas-auth__icon svg {
	width: 44%;
	height: 44%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tmas-auth__intro h1 {
	margin: 0;
	color: var(--tmas-auth-navy);
	font-family: "Nunito", sans-serif;
	font-size: clamp(29px, 1.8vw, 37px);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.035em;
}

.tmas-auth__intro p {
	max-width: 490px;
	margin: 9px auto 0;
	color: var(--tmas-auth-text);
	font-size: clamp(14px, 0.82vw, 16px);
	font-weight: 500;
	line-height: 1.48;
}

.tmas-auth form.woocommerce-form-login {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(11px, 1.1vh, 14px) 17px;
}

.tmas-auth form.woocommerce-form-login > .form-row-wide {
	grid-column: 1 / -1;
	margin: 0 !important;
}

.tmas-auth form.woocommerce-form-login > .form-row:not(.form-row-wide) {
	display: contents;
}

.tmas-auth form.woocommerce-form-login > .clear {
	display: none;
}

.tmas-auth form.login,
.tmas-auth form.lost_reset_password,
.tmas-auth form.register,
.tmas-auth .woocommerce-ResetPassword {
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
}

.tmas-auth .form-row {
	float: none !important;
	width: 100% !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
}

.tmas-auth__name-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.tmas-auth label {
	display: block;
	margin: 0 0 9px;
	color: var(--tmas-auth-navy);
	font-family: "Nunito", sans-serif;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.3;
}

.tmas-auth .required {
	color: #c02216;
}

.tmas-auth input[type="text"],
.tmas-auth input[type="email"],
.tmas-auth input[type="password"],
.tmas-auth input[type="tel"],
.tmas-auth select {
	width: 100% !important;
	height: clamp(58px, 3vw, 64px);
	min-height: clamp(58px, 3vw, 64px);
	margin: 0 !important;
	padding: 0 20px 0 clamp(48px, 2.4vw, 54px) !important;
	color: var(--tmas-auth-navy) !important;
	background: rgba(255, 255, 255, 0.88) !important;
	border: 1.5px solid var(--tmas-auth-line) !important;
	border-radius: 18px !important;
	box-shadow: 0 12px 28px rgba(18, 35, 65, 0.045) !important;
	font-family: "Nunito", sans-serif !important;
	font-size: clamp(15px, 0.86vw, 17px) !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	transition: border-color 220ms ease, box-shadow 220ms ease, background-color 220ms ease;
	background-repeat: no-repeat !important;
	background-position: clamp(16px, 0.95vw, 19px) center !important;
	background-size: clamp(20px, 1.05vw, 22px) clamp(20px, 1.05vw, 22px) !important;
}

.tmas-auth select {
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23647792' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8 10 4 4 4-4'/%3E%3C/svg%3E") !important;
	background-position: right 18px center !important;
	background-size: 20px 20px !important;
	padding-right: 50px !important;
}

.tmas-auth input#username,
.tmas-auth input#user_login,
.tmas-auth input#reg_email {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23647792' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E") !important;
}

.tmas-auth input#reg_billing_first_name,
.tmas-auth input#reg_billing_last_name {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23647792' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3Cpath d='M4.5 21c.6-5 3.1-7.5 7.5-7.5s6.9 2.5 7.5 7.5'/%3E%3C/svg%3E") !important;
}

.tmas-auth input#reg_billing_phone {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23647792' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.8 19.8 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.9.33 1.78.62 2.63a2 2 0 0 1-.45 2.11L8 9.73a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.85.29 1.73.5 2.63.62A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") !important;
}

.tmas-auth input#reg_billing_company {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23647792' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='14' rx='2'/%3E%3Cpath d='M8 21V3h8v18M8 8h8M11 11h2M11 15h2'/%3E%3C/svg%3E") !important;
}

.tmas-auth__optional {
	color: #8492aa;
	font-size: 12px;
	font-weight: 700;
}

.tmas-auth input[type="password"] {
	padding-right: 52px !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23647792' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10' width='14' height='11' rx='3'/%3E%3Cpath d='M8 10V7a4 4 0 0 1 8 0v3M12 14v3'/%3E%3C/svg%3E") !important;
}

.tmas-auth input::placeholder {
	color: #9aa9c1;
	opacity: 1;
}

.tmas-auth input:focus,
.tmas-auth select:focus {
	outline: none !important;
	background-color: #fff !important;
	background-repeat: no-repeat !important;
	border-color: rgba(255, 75, 10, 0.7) !important;
	box-shadow: 0 0 0 4px rgba(255, 75, 10, 0.1), 0 15px 32px rgba(18, 35, 65, 0.07) !important;
}

.tmas-auth .password-input {
	display: block;
	width: 100%;
}

.tmas-auth .show-password-input {
	top: 50% !important;
	right: 18px !important;
	transform: translateY(-50%);
}

.tmas-auth .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	grid-column: 1;
	order: 3;
	align-self: center;
	margin: 0 !important;
	cursor: pointer;
}

.tmas-auth .woocommerce-form-login__rememberme input,
.tmas-auth input[type="checkbox"] {
	width: 22px;
	height: 22px;
	margin: 0;
	accent-color: var(--tmas-auth-orange);
}

.tmas-auth .lost_password {
	grid-column: 2;
	order: 3;
	align-self: center;
	float: none;
	margin: 0 !important;
	text-align: right;
}

.tmas-auth .lost_password a {
	color: var(--tmas-auth-orange);
	font-weight: 800;
	text-decoration: none;
	font-size: 14px;
}

.tmas-auth button.button,
.tmas-auth .woocommerce-button,
.tmas-auth .woocommerce-Button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	grid-column: 1 / -1;
	min-height: clamp(56px, 2.8vw, 62px);
	margin: 4px 0 0 !important;
	padding: 14px 26px !important;
	color: #fff !important;
	background: var(--tmas-auth-orange) !important;
	border: 0 !important;
	border-radius: 18px !important;
	box-shadow: 0 16px 34px rgba(255, 75, 10, 0.2) !important;
	font-family: "Nunito", sans-serif !important;
	font-size: clamp(16px, 0.9vw, 18px) !important;
	font-weight: 900 !important;
	line-height: 1.15 !important;
	cursor: pointer;
	transition: transform 220ms ease, box-shadow 220ms ease, background-color 220ms ease;
}

.tmas-auth form.woocommerce-form-login button.button {
	order: 4;
}

.tmas-auth button.button::after,
.tmas-auth .woocommerce-button::after,
.tmas-auth .woocommerce-Button::after {
	content: "→";
	margin-left: 16px;
	font-size: 1.25em;
	font-weight: 400;
}

.tmas-auth button.button:hover,
.tmas-auth .woocommerce-button:hover,
.tmas-auth .woocommerce-Button:hover {
	background: #ea3f00 !important;
	box-shadow: 0 18px 38px rgba(255, 75, 10, 0.28) !important;
	transform: translateY(-1px);
}

.tmas-auth__divider {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 18px;
	margin: clamp(16px, 1.4vh, 20px) 0 clamp(14px, 1.25vh, 18px);
	color: #8492aa;
	font-size: 15px;
	font-weight: 700;
}

.tmas-auth__divider::before,
.tmas-auth__divider::after {
	content: "";
	height: 1px;
	background: var(--tmas-auth-line);
}

.tmas-auth__secondary-link {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: clamp(54px, 2.7vw, 60px);
	padding: 11px 17px;
	color: var(--tmas-auth-navy) !important;
	background: rgba(255, 255, 255, 0.56);
	border: 1.5px solid rgba(255, 75, 10, 0.58);
	border-radius: 18px;
	font-size: clamp(15px, 0.86vw, 17px);
	font-weight: 800;
	text-align: center;
	text-decoration: none !important;
	transition: border-color 220ms ease, background-color 220ms ease, transform 220ms ease;
}

.tmas-auth__secondary-link svg,
.tmas-auth__secure svg {
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tmas-auth__secondary-link strong {
	color: var(--tmas-auth-orange);
}

.tmas-auth__secondary-link:hover {
	background: rgba(255, 246, 240, 0.92);
	border-color: var(--tmas-auth-orange);
	transform: translateY(-1px);
}

.tmas-auth__secure,
.tmas-auth__hint {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin: clamp(15px, 1.35vh, 19px) 0 0;
	color: #8492aa;
	font-size: 13px;
	font-weight: 700;
	text-align: center;
}

.tmas-auth__hint {
	margin: -3px 0 22px;
}

.tmas-auth-page .woocommerce-error,
.tmas-auth-page .woocommerce-info,
.tmas-auth-page .woocommerce-message,
.tmas-registration-page .woocommerce-error,
.tmas-registration-page .woocommerce-info,
.tmas-registration-page .woocommerce-message {
	width: min(100%, 670px);
	margin: 0 auto 18px !important;
	padding: 16px 20px 16px 48px !important;
	font-family: "Nunito", sans-serif;
	border-radius: 15px;
}

@media (max-width: 767px) {
	.tmas-auth-page .woocommerce,
	.tmas-registration-page .entry-content {
		padding: 18px 12px 32px;
	}

	.tmas-auth {
		width: 100%;
		padding: 25px 16px 22px;
		border-radius: 22px;
	}

	.tmas-auth__intro {
		margin-bottom: 22px;
	}

	.tmas-auth__intro h1 {
		font-size: clamp(27px, 8.2vw, 31px);
	}

	.tmas-auth__name-grid {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.tmas-auth input[type="text"],
	.tmas-auth input[type="email"],
	.tmas-auth input[type="password"],
	.tmas-auth input[type="tel"],
	.tmas-auth select {
		height: 56px;
		min-height: 56px;
		border-radius: 15px !important;
	}

	.tmas-auth .woocommerce-form-login__rememberme {
		font-size: 14px;
	}

	.tmas-auth .lost_password {
		font-size: 14px;
	}

	.tmas-auth__secondary-link {
		gap: 8px;
		min-height: 56px;
		padding-inline: 12px;
	}

	.tmas-auth__secondary-link svg {
		width: 22px;
		height: 22px;
	}
}

@media (max-width: 390px) {
	.tmas-auth .woocommerce-form-login__rememberme,
	.tmas-auth .lost_password {
		float: none;
		display: flex;
		width: 100%;
		margin-bottom: 13px !important;
	}

	.tmas-auth__secondary-link span {
		display: flex;
		flex-direction: column;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tmas-auth *,
	.tmas-auth *::before,
	.tmas-auth *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* Theme and browser focus/autofill rules must never tile the field icons. */
body .tmas-auth input[type="text"],
body .tmas-auth input[type="email"],
body .tmas-auth input[type="password"],
body .tmas-auth input[type="tel"],
body .tmas-auth select,
body .tmas-auth input[type="text"]:focus,
body .tmas-auth input[type="email"]:focus,
body .tmas-auth input[type="password"]:focus,
body .tmas-auth input[type="tel"]:focus,
body .tmas-auth select:focus,
body .tmas-auth input:-webkit-autofill {
	background-repeat: no-repeat !important;
}

/* Dedicated registration password area. */
.tmas-auth__password-panel {
	margin: 6px 0 20px;
	padding: clamp(16px, 2vw, 22px);
	border: 1px solid rgba(255, 75, 10, 0.18);
	border-radius: 20px;
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.82), rgba(255, 246, 239, 0.9));
	box-shadow: 0 14px 34px rgba(18, 35, 65, 0.055);
}

.tmas-auth__password-panel .form-row {
	margin-bottom: 0 !important;
}

.tmas-password-rules {
	margin-top: 16px;
	padding-top: 15px;
	border-top: 1px solid rgba(7, 29, 75, 0.1);
}

.tmas-password-rules strong {
	display: block;
	margin-bottom: 10px;
	color: var(--tmas-auth-navy);
	font-size: 14px;
	font-weight: 900;
}

.tmas-password-rules ul {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tmas-password-rules li {
	position: relative;
	min-width: 0;
	padding-left: 19px;
	color: #74809a;
	font-size: 12px;
	font-weight: 750;
	line-height: 1.4;
	transition: color 180ms ease;
}

.tmas-password-rules li::before {
	content: "";
	position: absolute;
	top: 0.35em;
	left: 0;
	width: 9px;
	height: 9px;
	border: 1.5px solid #aab4c6;
	border-radius: 50%;
	background: #fff;
	transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.tmas-password-rules li.is-valid {
	color: #25763e;
}

.tmas-password-rules li.is-valid::before {
	border-color: #2f9b50;
	background: #2f9b50;
	box-shadow: inset 0 0 0 2px #fff;
}

@media (max-width: 767px) {
	.tmas-auth__password-panel {
		padding: 14px;
		border-radius: 17px;
	}

	.tmas-password-rules ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 390px) {
	.tmas-password-rules ul {
		grid-template-columns: 1fr;
	}
}
