* {
	box-sizing: border-box;
}

html {
	overflow-x: hidden;
	font-size: 62.5%;
}

body {
	background-color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	color: #333;
	line-height: 1.875;
}

img {
	max-width: 100%;
	height: auto;
}

p {
	margin-bottom: 1.6rem;
}


.lead-text {
	padding: 2rem;
	background-color: #e9ebf0;
	border-radius: .8rem;
}

.lead-text > :last-child {
	margin-bottom: 0;
}


/* --------------------------------------------------

	color

-------------------------------------------------- */

a { color: #3b4e9a; text-decoration: underline; transition: 0.3s;}
a:hover { color: #8a9abd; text-decoration: none;}

.text-info { color: #df6f5f;}

.is-req { background-color: #df6f5f;}
.is-any { background-color: #666;}


.text-arrow {
	position: relative;
	display: inline-block;
	padding-left: 2.4rem;
}

.text-arrow::before {
	content: "";
	position: absolute;
	left: 0; 
	top: 50%;
	height: 1rem;
	width: 1rem;
	border-top: 2px solid #3b4e9a;
	border-right: 2px solid #3b4e9a;
	transform: rotate(45deg) translateY(-50%);
}

.text-arrow:hover::before,
.text-arrow:hover::after {
	border-top-color: #8a9abd;
	border-right-color: #8a9abd;
}


/* --------------------------------------------------

	layout

-------------------------------------------------- */

.container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 2rem;
}


/* --------------------------------------------------

	display

-------------------------------------------------- */

.d-none { display: none;}
.d-inline { display: inline-block;}

@media screen and (max-width: 767px) {
	
	.d-xs-none { display: none;}
	.d-xs-block { display: block;}
	
}


/* --------------------------------------------------

	heading

-------------------------------------------------- */

.h1 {
	margin: 0 0 2rem;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.h2 {
	margin: 0 0 2rem;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.4;
}

.language-title {
	margin: 0 0 .4rem;
	font-weight: 700;
}


/* --------------------------------------------------

	width

-------------------------------------------------- */

.w-24 { width: 24%;}
.w-38 { width: 38%;}
.w-76 { width: 76%;}
.w-100 { width: 100%;}

@media screen and (max-width: 767px) {
	
	.w-xs-100 { width: 100%;}
	
}

.size-200 { width: 200px;}
.ant2api-zip { width: 100px;}


/* --------------------------------------------------

	spacing

-------------------------------------------------- */

.mt-1 { margin-top: 1rem;}

.mb-2 { margin-bottom: 2rem;}
.mb-4 { margin-bottom: 4rem;}

@media screen and (max-width: 767px) {
	
	.mt-xs-1 { margin-top: 1rem;}
	
	.ml-xs-2 { margin-left: 2rem;}
	
}


.pl-2 { padding-left: 2rem;}

@media screen and (max-width: 767px) {
	
	.pl-xs-0 { padding-left: 0;}
	
}


/* --------------------------------------------------

	form

-------------------------------------------------- */

.legend {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0 0 1.6rem;
	padding: 0 0 1rem;
	border-bottom: 2px solid #000;
	font-size: 2rem;
	font-weight: 700;
}

.is-req,
.is-any {
	float: right;
	display: block;
	margin-top: 8px;
	padding: 2px 4px;
	border-radius: 4px;
	font-size: 13px;
	line-height: 1;
	color: #fff;
}

.text-sup {
	font-size: 1.4rem;
	line-height: 1.5;
}

.input {
	padding: 0.8rem;
	border: 1px solid #a6a6a6;
	border-radius: 4px;
	font-size: 1.6rem;
	line-height: 1.4;
}

/* ------------------------------

	select

------------------------------ */

.selectbox-wrap {
	display: inline-flex;
	align-items: center;
	position: relative;
}

.selectbox-wrap::after {
    position: absolute;
    right: 15px;
    width: 10px;
    height: 7px;
    background-color: #535353;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    content: '';
    pointer-events: none;
}

.select {
    appearance: none;
    min-width: 230px;
	padding: 0.8rem 4rem 0.8rem 0.8rem;
    border: 1px solid #a6a6a6;
    border-radius: 4px;
    background-color: #fff;
	font-size: 1.6rem;
	line-height: 1.4;
    cursor: pointer;
}


/* ------------------------------

	radio

------------------------------ */

.radio-wrap {
	display: flex;
	flex-direction: column;
}
 
.radio-wrap label {
	width: 100%;
}
 
.radio-wrap label input[type="radio"] {
	opacity: 0;
	appearance: none;
	position: absolute;
}

.radio-wrap label .radio-text {
	display: inline-block;
	position: relative;
	padding-left: 26px;
	line-height: 2.2;
}

.radio-wrap label .radio-text::before {
	position: absolute;
	top: 8px;
	left: 0;
	width: 18px;
	height: 18px;
	border: 1px solid #a6a6a6;
	background: #fff;
	content: "";
	border-radius: 50%;
}
 
.radio-wrap label .radio-text::after {
	position: absolute;
	top: 11px;
	left: 3px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background-color: #3b4e9a;
	content: "";
	opacity: 0;
	transition: all 0.3s;
}

.radio-wrap label input:checked + span::after {
	opacity: 1;
}


/* ------------------------------

	checkbox

------------------------------ */

.checkbox-wrap {
	display: flex;
	flex-direction: column;
}
 
.checkbox-wrap label {
	width: 100%;
}
 
.checkbox-wrap input[type="checkbox"] {
	opacity: 0;
	appearance: none;
	position: absolute;
}
 
.checkbox-wrap .checkbox-text {
	display: inline-block;
	position: relative;
	padding-left: 26px;
	line-height: 2.2;
}
 
.checkbox-wrap .checkbox-text::before {
	position: absolute;
	top: 8px;
	left: 0;
	width: 18px;
	height: 18px;
	border: 1px solid #a6a6a6;
	background: #fff;
	content: "";
	transition: all 0.3s;
}
 
.checkbox-wrap .checkbox-text::after {
	position: absolute;
	top: 11px;
	left: 6px;
	width: 6px;
	height: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	content: "";
	border-bottom: 2px solid #3b4e9a;
	border-right: 2px solid #3b4e9a;
	opacity: 0;
	transform: rotate(45deg);
	transition: all 0.3s;
}
 
.checkbox-wrap input:checked + span::after {
  opacity: 1;
}


/* ------------------------------

	submit

------------------------------ */

.btn-group {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4rem;
}

@media screen and (max-width: 767px) {
	
	.btn-group {
		flex-direction: column-reverse;
	}
	
}


.btn {
	display: inline-block;
	max-width: 320px;
	width: 100%;
	padding: 12px 24px;
	background-color: #3b4e9a;
	border: 2px solid #3b4e9a;
	font-size: 100%;
	border-radius: 10px !important;
	color: #fff;
	line-height: 1.4;
	font-weight: 700 !important;
	text-align: center;
	text-decoration: none;
	transition: 0.3s;
	cursor: pointer;
}

.btn:hover {
	background-color: #fff;
	color: #3b4e9a;
}

.btn-secondary {
	background-color: #6c757d;
	border-color: #6c757d;
	color: #fff;
}

.btn-secondary:hover {
	background-color: #fff;
	color: #6c757d;
}

.btn-large {
	max-width: 400px;
	padding: 24px;
}

.btn:disabled {
	opacity: 0.5;       /* 半透明に */
	cursor: not-allowed; /* カーソルも変更して分かりやすく */
}

.btn:disabled:hover {
	background-color: #3b4e9a;
	color: #fff;
}


/* --------------------------------------------------

	table

-------------------------------------------------- */

.table {
	width: 100%;
	border-top: 1px solid #d2d2d2;
	border-left: 1px solid #d2d2d2;
}

.table th,
.table td {
	padding: 1.2rem;
	border-right: 1px solid #d2d2d2;
	border-bottom: 1px solid #d2d2d2;
}

.table th > :last-child,
.table td > :last-child {
	margin-bottom: 0;
}

.table th {
	background-color: #e9ebf0;
	font-weight: 700;
}


/* --------------------------------------------------

	完了画面

-------------------------------------------------- */

.thankyou-text {
	margin-top: 4rem;
	border: 1px solid #d2d2d2;
	padding: 4rem;
	text-align: center;
}

.thankyou-text > :last-child {
	margin-bottom: 0;
}


/* --------------------------------------------------

	header

-------------------------------------------------- */

.header {
	padding: 2rem;
}

.header-logo a {
	display: block;
	width: 150px;
	max-width: 100%;
	margin: 0 auto;
}


/* --------------------------------------------------

	footer

-------------------------------------------------- */

.footer {
	margin-top: 8rem;
	padding: 2rem;
	text-align: center;
}

.copyright {
	margin: 4rem 0 0;
	font-size: 1.3rem;
}


/* --------------------------------------------------

	modal

-------------------------------------------------- */

.modal__header {
	margin-bottom: 2rem;
}

.modal__header > :last-child {
	margin-bottom: 0;
}

.modal__title {
	font-size: 2rem;
	font-weight: 700;
}

.modal__body {
	margin-bottom: 4rem;
}