@charset "UTF-8";

/* ==============================
   公開画面共通
   ============================== */

/* トップページとログインページに背景画像を表示する */
.top-page,
.login-page {
	min-height: 100vh;

	background-image: url("/images/Image.png");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-attachment: fixed;
}

/* ==============================
   トップページ
   ============================== */

/* トップページ中央の文字とボタンをまとめる領域 */
.top-content {
	padding: 40px;

	color: #ffffff;
	text-align: center;
}

/* 「ありものシェフ」のタイトル */
.top-content h1 {
	margin-bottom: 16px;
	font-size: 40px;
}

/* タイトル下の説明文 */
.top-content p {
	font-size: 18px;
}

/* ログインボタンと新規登録ボタンを横並びにする領域 */
.top-buttons {
	display: flex;
	justify-content: center;
	gap: 20px;

	margin-top: 36px;
}

/* aタグをボタンのように表示するための共通デザイン */
.btn {
	display: inline-block;

	min-width: 140px;
	padding: 14px 28px;

	border-radius: 999px;

	font-size: 16px;
	font-weight: 700;
	text-align: center;
	text-decoration: none;

	transition: 0.2s;
}

/* ログインボタン */
.btn-login {
	color: #ffffff;
	background-color: rgb(255, 0, 128);
}

/* 新規登録ボタン */
.btn-register {
	color: #ffffff;
	background-color: #cccccc;
	border: 2px solid #cccccc;
}

/* ボタンにマウスを重ねたとき */
.btn:hover {
	transform: translateY(-2px);
	opacity: 0.9;
}

/* ==============================
   ログイン・アカウント復旧画面
   ============================== */

/* ログインフォームを表示するカード */
.login-card {
	width: 100%;
	max-width: 420px;

	padding: 40px;

	background-color: rgba(255, 255, 255, 0.95);
	border-radius: 16px;

	box-sizing: border-box;

	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

/* ログイン画面のタイトル */
.login-title {
	margin-top: 0;
	margin-bottom: 32px;

	font-size: 28px;
	text-align: center;
}

/* ログイン画面の入力項目 */
.login-form-group {
	margin-bottom: 24px;
}

/* 入力項目のラベル */
.login-label {
	display: block;

	margin-bottom: 8px;

	font-size: 15px;
	font-weight: 700;
}

/* ログイン画面の入力欄 */
.login-input {
	width: 100%;
	height: 44px;

	padding: 8px 12px;

	border: 1px solid #cccccc;
	border-radius: 8px;

	box-sizing: border-box;

	font-size: 16px;
}

/* 入力欄を選択したとき */
.login-input:focus {
	outline: none;
	border-color: rgb(255, 0, 128);
}

/* 各入力項目のエラーメッセージ */
.login-field-error {
	margin-top: 6px;
	margin-bottom: 0;

	color: #cc3333;
	font-size: 14px;
}

/* ログイン認証失敗時のエラーメッセージ */
.login-auth-error {
	margin-top: 0;
	margin-bottom: 20px;

	color: #cc3333;
	font-size: 14px;
	text-align: center;
}

/* ログイン状態を保持する設定 */
.login-remember-group {
	margin-top: -8px;
	margin-bottom: 24px;
}

/* チェックボックスと文言を横並びにする */
.login-remember-label {
	display: flex;
	align-items: center;
	gap: 8px;

	width: fit-content;

	font-size: 14px;

	cursor: pointer;
}

/* ログイン状態保持のチェックボックス */
.login-remember-checkbox {
	flex-shrink: 0;

	width: 18px;
	height: 18px;
	margin: 0;

	accent-color: rgb(255, 0, 128);

	cursor: pointer;
}

/* キーボード操作でチェックボックスを選択したとき */
.login-remember-checkbox:focus-visible {
	outline: 2px solid rgb(255, 0, 128);
	outline-offset: 2px;
}

/* 共有端末に関する注意書き */
.login-remember-note {
	margin-top: 6px;
	margin-bottom: 0;
	margin-left: 26px;

	color: #777777;

	font-size: 12px;
	line-height: 1.5;
}

/* ログイン画面のログインボタン */
.login-button {
	width: 100%;
	padding: 13px;

	border: none;
	border-radius: 999px;

	color: #ffffff;
	background-color: rgb(255, 0, 128);

	font-size: 16px;
	font-weight: 700;

	cursor: pointer;

	transition: 0.2s;
}

/* ログインボタンにマウスを重ねたとき */
.login-button:hover {
	transform: translateY(-2px);
	opacity: 0.9;
}

/* トップページへ戻るリンク */
.login-back-link {
	display: block;

	margin-top: 20px;

	color: #666666;

	font-size: 14px;
	text-align: center;
	text-decoration: none;
}

/* トップページへ戻るリンクにマウスを重ねたとき */
.login-back-link:hover {
	text-decoration: underline;
}

/* ==============================
   退会完了画面
   ============================== */

/* 退会完了画面のカード */
.withdrawal-complete-card {
	text-align: center;
}

/* 退会完了メッセージ */
.withdrawal-complete-message {
	margin: 0 0 28px;

	color: #555555;

	line-height: 1.8;
}

/* トップページへ戻るボタン */
.withdrawal-complete-link {
	display: inline-block;

	padding: 13px 24px;

	border-radius: 999px;

	color: #ffffff;
	background-color: rgb(255, 0, 128);

	font-weight: 700;
	text-decoration: none;

	transition: 0.2s;
}

/* トップページへ戻るボタンにマウスを重ねたとき */
.withdrawal-complete-link:hover {
	transform: translateY(-2px);
	opacity: 0.9;
}

/* ==============================
   スマートフォン表示
   ============================== */

@media (max-width: 767px) {

	.top-page,
	.login-page {
		background-attachment: scroll;
	}

	.top-content {
		width: 100%;
		padding: 32px 16px;

		box-sizing: border-box;
	}

	.top-content h1 {
		font-size: 32px;
	}

	.top-content p {
		font-size: 16px;
		line-height: 1.7;
	}

	.top-buttons {
		flex-direction: column;
		align-items: center;

		gap: 12px;
		margin-top: 28px;
	}

	.top-buttons .btn {
		width: 100%;
		max-width: 280px;

		box-sizing: border-box;
	}

	.login-overlay {
		padding: 16px;

		box-sizing: border-box;
	}

	.login-card {
		padding: 28px 20px;

		border-radius: 12px;
	}

	.login-title {
		margin-bottom: 24px;

		font-size: 24px;
	}

	.login-form-group {
		margin-bottom: 20px;
	}

	.withdrawal-complete-link {
		width: 100%;

		box-sizing: border-box;
	}
}