@charset "utf-8";

:root{
	--white: #fff;
	--gray: #6b7280;
	--soft-gray: #d1d5db;
	--light-gray: #e5e7eb;
	--primary-dark: #1e40af;
	--primary: #2f5fbf;
	--primary-soft: #2a6fd6;
	--primary-light: #93c5fd;

	--card: var(--white);
	--text: #111827;
	--text-light: var(--gray);
	--font-size-base: 1.4rem;
	--font-size-big: 1.8rem;
	--font-size-btn: 1.6rem;
	--font-weight-bold: 600;
}

.utility-txt.home::after {
	content: "";
	display: inline-block;
	width: 200px;
	height: 35px;
	vertical-align: middle;
}

@media screen and (max-width: 1000px) {
	.utility-txt.home::after {
		display: none;
	}
}

.login-form h2 {
	font-size: var(--font-size-big);
	font-weight: var(--font-weight-bold);
	margin-bottom: 16px;
}

/* ログインフォームの入力フィールドのスタイル */
.login-form .input-field {
	width: 100%;
	padding: 8px 10px;
	margin-bottom: 15px;
	border: 1px solid var(--light-gray);
	border-radius: 4px;
	box-sizing: border-box;
	height: 45px;
}

/* プレースホルダーのスタイル */
.login-form .input-field::placeholder {
	color: var(--text-light);
	/* font-style: italic; */
}

.login-form .input-field:focus {
	outline: none;
	border-color: var(--primary-light);
	box-shadow: 0 0 0 2px rgba(147, 197, 253, 0.5);
}

/* フォームのコンテナ */
.login-form {
	max-width: 600px;
	margin: 24px auto 16px;
	padding: 20px;
	border: 1px solid var(--light-gray);
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0,0,0,.06);
	background: var(--card);
	text-align: center;
}

.login-form .form-fields-wrapper {
	padding-left: 20px;
	padding-right: 20px;
}

/* ボタンのスタイル */
.login-form .submit-button {
	width: 100%;
	padding: 10px;
	background: var(--primary-soft);
	color: var(--white);
	border: 1px solid transparent;
	box-shadow: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: var(--font-size-btn);
	font-weight: var(--font-weight-bold);
	margin-top: 10px;
	margin-bottom: 10px;
}

.login-form form:nth-of-type(1) .submit-button {
  background-color: var(--light-gray);
  color: #333;
  box-shadow: none;
}

.login-form form:nth-of-type(1) .submit-button:hover {
  background-color: var(--soft-gray);
}

.login-form .submit-button:hover {
	background-color: var(--primary);
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* テキストのスタイル */
.login-form .login-info {
	margin-bottom: 15px;
}

.login-form .login-info {
	font-size: var(--font-size-base);
	color: var(--text);
	line-height: 1.6;
	text-align: left !important;
}

.login-form .login-info ul {
  font-size: 0.9em;
}

.login-form .login-info .help-link {
	color: var(--primary-soft);
	text-decoration: underline;
}

.login-form .login-info .help-link:hover {
	color: var(--primary-dark);
	text-decoration: none;
}



/*
.password-wrapper {
    position: relative;
}

.password-wrapper .input-field {
    padding-right: 40px;
    margin-bottom: 15px;
}

.toggle-password {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);

    border: none;
    background: transparent;
    cursor: pointer;

    color: var(--text);
    font-size: 2.4rem;
    padding: 0;
}

.toggle-password:hover {
    color: var(--primary);
}

.toggle-password:focus {
    outline: none;
}*/

.password-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}

.password-wrapper .input-field {
    flex-grow: 1;
    padding-right: 40px;
    margin-bottom: 0;
    line-height: normal;
    /*height: 40px;*/
}

.toggle-password {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);

    border: none;
    background: transparent;
    cursor: pointer;

    color: var(--text);
    font-size: var(--font-size-big);
    line-height: 1;
    padding: 0;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.toggle-password:hover {
    color: var(--primary);
}

.toggle-password:focus {
    outline: none;
}
