@charset "UTF-8";

/* ==========================================================================
   Layout
   ========================================================================== */

.pc {
	display: block;
}
.sp {
	display: none;
}

body {
	font-family: 'Noto Sans JP';
	background: #F8F8F8;
}

body.member {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

body.member > footer {
	margin-top: auto;
}

.header_logo {
	height: 55px;
}

header {
    padding: 16px;
    width: auto;
    height: auto;
    text-align: center;
    border-bottom: none;
    margin-top: 20px;
}

header select.form_drop {
	height: 31px !important;
	line-height: 30px;
	padding: 0 35px 0 10px;
	background: #fff url("/common/img/form_drop.png") right 4px no-repeat;
}

.field_error {
  background: #fff0f0 !important;
}

.field_error + .select2-container--default .select2-selection--single {
    background: #fff0f0 !important;
}

.field_error + .select2-container--default .select2-selection--single .select2-selection__rendered {
    background: #fff0f0 !important;
}

.field_error + .select2-container--default.select2-container--open .select2-selection--single .select2-selection__rendered {
    background: #fff0f0 url("../img/form_drop.png") right 4px no-repeat !important;
}

/* Select2 styling for member register country dropdown */
.select_country + .select2-container {
	margin-top: 20px;
	min-width: 230px;
	max-width: 593px;
}

.select_country + .select2-container .select2-selection--single {
	height: 41px;
	line-height: 41px;
	padding: 0;
	border: 1px solid #d1d1d1;
	border-radius: 4px;
	background: #fff url(../images_app/pc/default/selectbox.svg) no-repeat right 10px center;
	box-sizing: border-box;
	overflow: hidden;
}

.select_country + .select2-container .select2-selection--single .select2-selection__rendered {
	display: flex;
	align-items: center;
	height: 100%;
	line-height: 1.4;
	box-sizing: border-box;
	padding: 0 36px 0 12px;
	background: transparent !important;
}

.select2-dropdown {
	background: #fff !important;
}

.select_country + .select2-container.select2-container--open .select2-selection--single,
.select_country + .select2-container .select2-selection--single {
	background: #fff url(../images_app/pc/default/selectbox.svg) no-repeat right 10px center !important;
}

.select_country + .select2-container .select2-selection--single .select2-selection__arrow {
	    display: none !important;
}

.select_country + .select2-container.select2-container--open .select2-selection--single .select2-selection__rendered::after {
	background: none !important;
	    content: none !important;
}

@media screen and (max-width: 799px) {
	header .selectLanguage {
		margin: 0 0 10px;
	}
}

.member #form article {
	float: none;
	margin: auto;
	width: auto;
	max-width: 980px;
}

#form_step02 {
	float: none;
	background-color: white;
	padding: 48px;
	margin: auto 30px;
}

#form_step03-doui {
    margin: 50px 30px;
    background-color: white;
    border: none;
    width: auto;
    max-width: 886px;
    padding: 28px;
}

.member #form_login {
	margin: 2em auto 0;
	width: 60%;
}

.member #form #form_login {
	height: auto;
}

section {
	width: 100%;
	max-width:980px;
	margin: 20px auto;
}

/* ==========================================================================
   Form
   ========================================================================== */

.titStyle4 {
    font-size: 28px;
    margin-bottom: 20px;
    font-weight: bold;
    text-decoration: none;
    text-indent: 0px;
    display: block;
    height: auto;
    background: #ffffff url(/common/mypage/img/title_point.png) left no-repeat;
    overflow-wrap: break-word;
    padding-left: 15px;
    background-size: 4px 35px;
}

.errorbox {
    border: none;
    color: #CC0000;
    background: #fff0f0 url(../images_app/pc/default/icon_error.svg) no-repeat 20px center;
    padding: 20px 20px 20px 120px;
    background-size: 70px;
    font-size: 14px;
    margin-bottom: 30px;
	border-radius: 8px;
}

.required {
    color: #cc0000;
    font-size: 11px;
	margin-bottom: 15px;
}

input.txt, select {
	background-color: unset;
	border-radius: 4px;
	padding: 0 10px;
    height: 41px;
	width: 215px;
}

input.txt[name="given_name"] {
	margin-right: 10px;
}

/* input.txt[name="family_name"] {
	margin-top: 20px;
} */

html[lang="en"] select[name="birthday_month"],
html[lang="en"] select[name="birthday_day"] {
	width: 82px;
}

input.txt[name="city"], select {
	width: 72%;
}

.row-middle {
	display: flex;
	align-items: center;
	width: 100%;
}

/* .row-middle > * { 
	display: flex;
 } */

.d-flex {
	display: flex;
}

.name-fields {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	width: 72%;
	max-width: 593px;
	min-width: 0;
}

.name-fields .form_info {
	flex: 0 0 100%;
	width: 100%;
	padding-top: 0px;
}

.birthday-selects {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.birthday-fields {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	min-width: 0;
}

.birthday-field {
	display: flex;
	align-items: center;
}

.birthday-field span {
	display: inline-block;
	white-space: nowrap;
}

.row-middle p {
	width: 180px;
	padding-right: 10px;
	line-height: 1;
	font-weight: bolder;
	margin-top: 30px;
}

.name-row > p {
	display: flex;
	align-items: center;
	min-height: 41px;
	margin-top: 10px;
}

.selectbox1 {
    background: #fff url(../images_app/pc/default/selectbox.svg) no-repeat right;
    background-position: right 10px center;
    margin: 0;
    height: 41px;
	margin-right: 10px;
	width: 230px;
}

.selectbox1.field_error {
	background: #fff0f0 url(../images_app/pc/default/selectbox.svg) no-repeat right 10px center !important;
}

.w80 {
	width: 80px;
}

.w60 {
	width: 60px;
}

.birthday-field-month .selectbox1,
.birthday-field-day .selectbox1 {
	background-position: right 6px center !important;
	padding-right: 20px;
}

.w180 {
	width: 180px;
}

#form select.form_drop {
	background-color: unset;
}

hr {
    border: 0px;
    border-top: 1px solid #DFDFDF;
	margin-top: 15px;
}

.icon_required {
	color: #E01747;
    display: inline-block;
    margin: 0 3px;
	font-weight: normal;
}

#form_step02 label:before,
#form_step03 label:before {
	background: none;
	width: 15px;
    height: 15px;
}

#form_step02 input[type="radio"]:checked+label:after,
#form_step03 input[type="radio"]:checked+label:after {
	position: absolute;
    content: "";
    top: 50%;
    left: 5px;
    width: 7px;
    height: 7px;
    margin-top: -5px;
    border-radius: 50%;
    background: #E01747;
}

.form_inputarea {
	display: grid;
}

.txt::placeholder {
	color: #bbbbbb;
	font-size: 13px;
}

.form_info {
	padding-top: 5px;
	display: block;
}

.member-confirm #form_step02 .confirm-value {
	word-break: break-word;
}

.member-confirm #form_step02 .confirm-value a,
.member-confirm #form_step02 .confirm-value a[href^="tel"],
.member-confirm #form_step02 .confirm-value a[x-apple-data-detectors],
.member-confirm #form_step02 .confirm-value a[x-apple-data-detectors="true"] {
	color: inherit !important;
	-webkit-text-fill-color: currentColor !important;
	text-decoration: none !important;
	font: inherit !important;
	line-height: inherit !important;
}

.password-row {
	align-items: flex-start;
}

.password-row > p {
	display: flex;
	align-items: center;
	min-height: 41px;
	margin-top: 20px;
}

.password-field {
	width: 72%;
	max-width: 593px;
	min-width: 0;
}

.password-help {
	font-size: 12px;
	line-height: 1.4;
	text-align: right;
	margin: 6px 0 0;
	width: auto;
}

p.password-help {
	width: 230px;
	font-weight: normal;
	line-height: 2;
}

/* ==========================================================================
   Footer
   ========================================================================== */

footer {
	background-color: white;
	font-family: "Poppins", "Outfit", "Noto Sans JP", "Hiragino Kaku Gothic Pro", Meiryo, "MS PGothic", sans-serif;
}

footer address.callcenter {
	border-top: none;
	padding: 20px 0px 0;
}

footer address.vision {
	border-top: none;
}

.tel_number {
	display: inline-flex;
	font-weight: 600;
	font-size: 20px;
	color: #202124;
	margin-bottom: 10px;
}

.tel_number:before {
	content: '';
	display: inline-block;
	background: url(../images/icon_phone.png) center / contain no-repeat;
	width: 24px;
	height: 24px;
	margin-right: 5px;
}

footer div.graybase {
	background-color: white;
	text-align: center;
	padding: 10px 10px 20px;
	max-width: 780px;
	margin: auto;
	position: relative;
}

footer div.graybase img {
	height: 36px;
	padding: 6px;
}

footer .callcenter span {
	font-size: 10px;
}

footer div.graybase p {
	color: #A3A3A3;
	font-size: 10px;
}

footer div.graybase .footerSelect {
	position: absolute;
	display: inline-block;
	right: 0;
	bottom: 20px;
}

footer div.graybase .footerSelect select {
	top: 0;
	left: 0;
	z-index: 1;
}

.cfooterSelect {
	font-size: 12px;
	padding: 5px 10px;
	background: url(../images/globe.svg) left center no-repeat;
	background-position: 5px center;
	background-size: 22px;
	width: 42px;
	text-align: right;
	display: block;
	line-height: 2;
	border: 1px solid #CCCCCC;
	border-radius: 5px;
	padding: 5px 7px;
	color: black;
	font-weight: 700;
}

.cfooterSelectInner {
	width: 100% !important;
}

.contact_box {
	font-weight: 600;
	font-size: 20px;
	line-height: 25px;
	color: #202124;
}

.nwi-757 .contact_box p {
	font-weight: bold;
}

.nwi-757 .contact_box p.mail::before {
	background: url(../images/icon_mail.svg) no-repeat;
	width: 23px;
	height: 23px;
	margin-right: 5px;
}

.nwi-757 .contact_box p.facebook a {
	text-decoration: none;
	cursor: pointer;
	color: #202124;
}

/* ==========================================================================
   Page
   ========================================================================== */

.form_step03-doui01 {
	text-align: left;
	font-size: 14px;
	padding: 0px 0 16px 0;
}

.form_step03-doui02 img {
	margin-right: 3px;
}

.form_step03-doui02 a {
	text-decoration: underline;
	font-weight: bold;
	font-size: 14px;
}

#form_step03-doui input[type="checkbox"] {
	width: 12px;
	height: 12px;
	margin-right: 3px;
}

.form_step03-doui03 {
	font-weight: bold;
}

.form_step03-doui_label {
	cursor: pointer;
}

.confirm_btn {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 20px;
	margin-bottom: 100px;
}

#form input.btn_form_next {
	width: 350px;
	height: 50px;
	font-size: 14px;
	background-color: #CC0000;
	border-radius: 4px;
	color: #fff;
	padding: 0 24px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M4 2l4 4-4 4' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 11px 11px;
	background-position: calc(50% + 2em) calc(50% + 1px);
	font-weight: 600;
}

.btn_form_back {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	gap: 10px;
	width: 350px;
	height: 50px;
	background: #333333;
	border-radius: 4px;
	color: #ffffff;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M8 2L4 6l4 4' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: 11px 11px;
	background-position: calc(50% - 2em) calc(50% + 1px);
}

.btn_form_back,
.btn_form_back:link,
.btn_form_back:visited,
.btn_form_back:hover,
.btn_form_back:active,
.btn_form_back:focus {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff;
	text-decoration: none;
}

.btn_center {
	clear: both;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	margin: 30px auto 100px;
}

.btn_m {
	padding: 5px 20px 5px 45px;
	height: auto;
	line-height: inherit;
	border-color: #333;
	transition: .3s;
	position: relative;
	color: #333;
	border: 1px solid #c2c2c2;
	background: #fff;
	border-radius: 999px;
}

.btn_m:hover {
	background: #333;
	border-color: #333;
}

.btn_m::before {
	content: "";
	display: block;
	height: 100%;
	width: 15px;
	position: absolute;
	left: 20px;
	top: 50%;
	transform: translateY(-50%);
	background: url(../../img/completion/top-icon.svg) center / contain no-repeat;
}

.btn_m:hover:before {
	background-image: url(../../img/completion/top-icon-white.svg);
}

A:link.btn_m,
A:visited.btn_m {
	color: #333;
}

a.btn_m:hover,
a.btn_m:focus {
	color: #fff;
}

@media screen and (max-width: 799px) {
	/* Layout */

	.pc {
		display: none;
	}

	.sp {
		display: block;
	}

	/* Form */

	.required {
		margin-bottom: 0;
	}

	.errorbox {
		background: #fff0f0 url(../images_app/pc/default/icon_error.svg) no-repeat center 20px;
		padding: 60px 20px 20px;
	}

	.errorbox p {
		margin: 0;
	}

	#form_step02 .mgt20,
	#form_step03-doui .mgt20 {
		margin-top: 10px !important;
	}

	html {
		-webkit-text-size-adjust: 100%;
	}

	input.txt, select {
		width: 100%;
	}

	#form_step02 input.txt,
	#form_step02 select {
		box-sizing: border-box;
		-webkit-appearance: none;
		appearance: none;
		font-size: 16px !important;
		height: 41px !important;
		min-height: 41px;
		padding: 0 10px;
	}

	.selectbox1 {
		width: 100%;
		margin-right: 0;
		font-size: 1.2em;
	}

	.select_country + .select2-container {
		width: 50% !important;
		min-width: 160px;
		max-width: 220px;
	}

	.password-field {
		flex: 0 0 100%;
		width: 100%;
		max-width: none;
	}

	.row-middle > input.txt {
		box-sizing: border-box;
		flex: 0 0 100%;
		width: 100% !important;
		max-width: 100%;
	}

	.password-field input.txt {
		box-sizing: border-box;
		width: 100% !important;
		max-width: 100%;
	}

	.name-fields {
		display: flex;
		flex-wrap: wrap;
		gap: 10px;
		width: 100%;
	}

	.name-fields input.txt {
		box-sizing: border-box;
		flex: 0 0 calc(50% - 5px);
		width: calc(50% - 5px) !important;
		margin-right: 0;
		min-width: 0;
	}

	.name-fields input.txt[name="family_name"],
	.name-fields input.txt[name="given_name"] {
		margin-top: 10px !important;
	}

	.name-fields .form_info {
		width: 100%;
	}

	html[lang="en"] #form_step02 .name-fields {
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 14px;
		margin-top: 10px;
	}

	html[lang="en"] #form_step02 .name-fields input.txt {
		flex: 0 0 100%;
		width: 100% !important;
		max-width: none;
		align-self: stretch;
		height: 41px !important;
		line-height: normal;
		margin-top: 0 !important;
	}

	html[lang="en"] #form_step02 .name-fields .form_info {
		padding-top: 0;
	}

	.password-row > p {
		min-height: auto;
	}

	.password-help {
		text-align: left;
		width: auto !important;
		max-width: none;
	}

	.birthday-fields {
		width: 100%;
		flex-wrap: nowrap;
		align-items: center;
		gap: 8px;
	}

	.birthday-field {
		gap: 6px;
		flex: 0 0 auto;
		min-width: 0;
	}

	.birthday-field-year {
		flex: 0 0 auto;
	}

	.birthday-field-month,
	.birthday-field-day {
		flex: 0 0 auto;
	}

	.birthday-fields .mgt20 {
		margin-top: 0;
	}

	.birthday-fields .mgr10 {
		margin-right: 0;
	}

	.birthday-fields .selectbox1 {
		box-sizing: border-box;
		flex: 0 0 auto;
		min-width: 0;
	}

	.birthday-field-year .selectbox1 {
		width: 100px !important;
	}

	.birthday-field-month .selectbox1,
	.birthday-field-day .selectbox1 {
		width: 82px !important;
	}

	.row-middle {
		flex-wrap: wrap;
	}

	.row-middle p {
		width: 100%;
		margin-top: 20px;
	}

	.name-row > p {
		min-height: auto;
		margin-top: 20px;
	}

	.member-confirm #form_step02 .confirm-row {
		align-items: flex-start;
		gap: 16px;
		padding: 12px 0;
	}

	.member-confirm #form_step02 .confirm-row > p {
		margin-top: 0 !important;
		padding-right: 0;
		line-height: 1.45 !important;
	}

	.member-confirm #form_step02 .confirm-row > .txt_16 {
		flex: 0 0 44%;
		width: 44%;
	}

	.member-confirm #form_step02 .confirm-row > .confirm-value {
		flex: 1 1 auto;
		width: auto;
		padding-left: 0;
	}

	.member-confirm #form_step02 hr {
		margin-top: 0;
	}

	#form_step02 {
		margin: 0;
	}

	#form #form_step02 {
		padding: 20px;
		width: auto;
	}

	#form_step03-doui {
		margin: 10px;
		padding: 20px;
	}

	input.txt[name="given_name"] {
		margin-right: 0;
	}

	input.txt[name="family_name"] {
		margin-top: 10px;
	}

	input.txt[name="city"], select {
		width: 100%;
	}

	/* Footer */

	footer div.graybase .footerSelect {
		position: relative;
		bottom: 0;
		margin-bottom: 10px;
		margin-top: 5px;
	}

	.nwi-757 .contact_box {
		display: block;
	}

	/* Page */

	.confirm_btn {
		flex-direction: column-reverse;
		gap: 12px;
		margin: 24px 20px 0;
	}
}

@media screen and (max-width: 699px) {
	/* Page */

	.form_step03-doui01 {
		width: auto;
	}
}
