/* Google・Apple でのログイン(js/externallogin.js)。ログイン・会員登録・セキュリティ設定の画面。ボタンは Google・Apple の決まりの色(白地に灰の枠・黒地) */
.externalloginarea[hidden], .externalloginstatearea[hidden], .externalregistrationarea[hidden], .externalloginmethodsbox[hidden], .externalloginpasswordconfirm[hidden] {
	display: none;
}
.externalloginarea {
	width: 400px;
	margin: 6px auto 0;
}
.externallogindivider {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 16px;
	color: #757575;
	font-size: 13px;
	line-height: 18px;
}
.externallogindivider::before, .externallogindivider::after {
	content: "";
	flex: 1;
	height: 1px;
	background: #E0E0E0;
}
.externalloginbuttons {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.externalloginbutton, .externalloginlinkbutton {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	height: 42px;
	box-sizing: border-box;
	padding: 0 12px;
	border-radius: 4px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 500;
	cursor: pointer;
}
.externalloginbutton_google {
	background: #FFFFFF;
	border: 1px solid #747775;
	color: #1F1F1F;
}
.externalloginbutton_google:hover {
	background: #F8FAFF;
}
.externalloginbutton_apple {
	background: #000000;
	border: 1px solid #000000;
	color: #FFFFFF;
}
.externalloginbutton_apple:hover {
	background: #222222;
}
.externalloginbutton:disabled, .externalloginlinkbutton:disabled {
	opacity: 0.6;
	cursor: default;
}
.externalloginicon {
	flex: none;
}
.externallogindescription {
	margin: 10px 0 0;
	color: #757575;
	font-size: 13px;
	line-height: 19px;
	text-align: center;
}
.externalloginstatearea {
	width: 480px;
	margin: 0 auto 10px;
}
/* 会員登録の画面: 外の枠(.generalentryformarea)の最初の子。中のカードは「企業情報を登録」と同じ白いカード(.axopsrich .generalentryformbox)に重ねる(モックアップどおり) */
.externalregistrationarea {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.axopsrich .generalentryformbox.externalregistrationcard {
	align-items: center;
	padding: 22px 24px 26px;
}
.axopsrich .generalentryformbox.externalregistrationstart {
	gap: 12px;
	padding: 18px 16px 22px;
}
/* 状態のカード(確認コード・連絡先・既に会員・完了)は真ん中にそろえ、文は 600px、入力とボタンは 400px(モックアップどおり) */
.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) > .externalloginguide,
.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) > .externalloginnote {
	width: 600px;
	max-width: 100%;
	text-align: center;
}
.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) > .richinputbox,
.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) > .buttonbox,
.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) > .externalloginbuttons {
	width: 400px;
	max-width: 100%;
}
.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) .externallogintitle {
	font-size: 21px;
	line-height: 30px;
}
.axopsrich .generalentryformbox.externalregistrationbanner {
	align-items: stretch;
	padding: 16px 20px;
}
.externalregistrationtitle {
	margin: 0;
	font-size: 22px;
	line-height: 30px;
	font-weight: 400;
	text-align: center;
}
.externalregistrationdescription {
	width: 640px;
	max-width: 100%;
	margin: 0;
	color: #757575;
	font-size: 14px;
	line-height: 21px;
	text-align: center;
}
.externalregistrationstart > .externalloginbuttons {
	width: 400px;
	max-width: 100%;
	margin-top: 4px;
}
.externalregistrationnote {
	margin: 0;
	color: #757575;
	font-size: 12px;
	line-height: 18px;
	text-align: center;
}
.externalregistrationarea > .externallogindivider {
	width: 640px;
	max-width: 100%;
	margin: 0 0 13px;
	color: #616161;
	font-size: 14px;
}
.externalregistrationarea > .externallogindivider::before, .externalregistrationarea > .externallogindivider::after {
	background: rgba(0, 0, 0, 0.18);
}
.externalloginpanel {
	box-sizing: border-box;
	margin: 0 auto 20px;
	padding: 22px 26px;
	background: #F7F8FF;
	border-radius: 18px;
	color: #212121;
}
/* サイト全体の折り返しは英字の途中でも切れるので、この中は語の切れ目で折り返す(長いメールアドレスだけはどこでも折る) */
.externalloginpanel, .externalloginsuggestionbox, .externalloginarea, .externalregistrationarea, .externalloginmethods {
	word-break: normal;
	overflow-wrap: anywhere;
}
.externalloginpanel .richinputbox, .externalloginpanel .buttonbox {
	width: 100%;
}
.externalloginpanel .buttonbox {
	padding: 10px 0 0;
}
.externalloginaccount {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-bottom: 10px;
	color: #424242;
	font-size: 15px;
}
.externallogintitle {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-bottom: 12px;
	font-size: 19px;
	line-height: 28px;
	text-align: center;
}
.externalloginguide {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 24px;
}
.externalloginnote {
	margin: 12px 0 0;
	color: #757575;
	font-size: 13px;
	line-height: 20px;
}
.externallogincompanyguide {
	box-sizing: border-box;
	margin: 0 0 14px;
	padding: 10px 14px;
	border-radius: 4px;
	background: #F5F5F5;
	color: #424242;
	font-size: 13px;
	line-height: 20px;
	text-align: left;
}
.externalregistrationstart > .externallogincompanyguide {
	width: 640px;
	max-width: 100%;
	margin: 0;
}
.generalentryformexplanation + .externallogincompanyguide {
	margin: 8px 5px 4px;
}
.externalloginlinks {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
	font-size: 14px;
	line-height: 20px;
	text-align: center;
}
.externalloginqrcode {
	margin: 4px 0 12px;
	text-align: center;
}
.externalloginqrcode img {
	width: 200px;
	height: 200px;
}
.externalregistrationbanner .externallogintitle {
	justify-content: flex-start;
	text-align: left;
}
.externalregistrationbanner .externalloginlinks {
	align-items: flex-start;
	margin-top: 4px;
}
.externalregistrationdone {
	text-align: center;
}
.externalregistrationdone .buttonbox {
	width: 400px;
	max-width: 100%;
}
.externalloginstartbutton {
	display: block;
	box-sizing: border-box;
	text-align: center;
	text-decoration: none;
}
.externalregistrationcoupon {
	color: #2E7D32;
}
.externalloginverifiedbadge {
	margin-left: 8px;
	padding: 1px 8px;
	border-radius: 10px;
	background: #E8F5E9;
	color: #2E7D32;
	font-size: 12px;
	line-height: 18px;
	white-space: nowrap;
}
input.externalloginlocked {
	background: #F5F5F5;
	color: #424242;
}
.externalloginprefilled {
	color: #757575;
}
.externalloginsuggestion {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	padding: 16px;
	background: rgba(0, 0, 0, 0.45);
}
.externalloginsuggestionbox {
	box-sizing: border-box;
	width: 100%;
	max-width: 480px;
	padding: 28px 28px 22px;
	background: #FFFFFF;
	border-radius: 18px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
}
.externalloginsuggestionlater {
	padding: 8px;
	background: none;
	border: none;
	color: #1A3FD6;
	font-family: inherit;
	font-size: 15px;
	cursor: pointer;
}
/* セキュリティ設定の 1 行は、ほかの行(左に見出し・右に入力)と違い、見出しの下に一覧を全幅で並べる */
.generalentrybox.externalloginmethodsbox {
	box-sizing: border-box;
	flex-direction: column;
	align-items: stretch;
}
.externalloginmethodsbox .generalentrycaptionarea {
	box-sizing: border-box;
	width: 100%;
	margin-right: 0;
}
.externalloginmethodsbox .externalloginmethods {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
	margin: 10px 0 14px;
}
.externalloginmethod {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 16px;
	border: 1px solid #E0E0E0;
	border-radius: 10px;
}
.externalloginmethodname {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 220px;
	font-size: 15px;
}
.externalloginmethoddetail {
	flex: 1;
	color: #424242;
	font-size: 14px;
	line-height: 20px;
}
.externalloginmethodsub {
	color: #757575;
	font-size: 13px;
}
.externalloginunlinkbutton {
	padding: 6px 14px;
	background: #FFFFFF;
	border: 1px solid #BDBDBD;
	border-radius: 4px;
	font-family: inherit;
	font-size: 14px;
	cursor: pointer;
}
.externalloginmethod .externalloginlinkbutton {
	width: auto;
	min-width: 180px;
}
.externalloginmethodlink {
	font-size: 14px;
}
.externalloginpasswordconfirm {
	padding: 14px 16px;
	background: #F7F8FF;
	border-radius: 10px;
}
.externalloginpasswordconfirm .richinputbox, .externalloginpasswordconfirm .buttonbox {
	width: 100%;
	max-width: 400px;
	margin-left: 0;
}
/* MEDIA START **********************************************/
@media (max-width: 800px) {
	.externalloginarea, .externalloginstatearea {
		width: 90%;
	}
	.axopsrich .generalentryformbox.externalregistrationcard {
		padding: 18px 16px 20px;
	}
	.axopsrich .generalentryformbox.externalregistrationstart {
		padding: 16px 14px 18px;
	}
	/* 固定の幅(640・600・400px)は最小の幅にも数えられて枠が画面より広がるので、狭い画面では外す */
	.externalregistrationdescription, .externalregistrationstart > .externallogincompanyguide,
	.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) > .externalloginguide,
	.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) > .externalloginnote {
		width: auto;
	}
	.externalregistrationstart > .externalloginbuttons,
	.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) > .richinputbox,
	.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) > .buttonbox,
	.externalregistrationcard:not(.externalregistrationbanner):not(.externalregistrationstart) > .externalloginbuttons {
		width: 100%;
	}
	.externalregistrationarea > .externallogindivider {
		width: 92%;
	}
	.externalregistrationtitle {
		font-size: 20px;
		line-height: 28px;
	}
	.externalregistrationdescription {
		text-align: left;
	}
	.externalloginpanel {
		padding: 18px 16px;
	}
	.externalloginmethod {
		flex-wrap: wrap;
	}
	.externalloginmethodname {
		min-width: 0;
	}
	.externalloginmethod .externalloginlinkbutton {
		width: 100%;
	}
} /** END ********************************************************************/
