@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap');

/*contact
----------------------------------------*/
.contact .ttl_page {
	padding-bottom: 5.6rem;
}
.contact .topicpath {
	margin-top: 6.9rem;
}
.contact .intro_link {
	display: inline-block;
	margin-top: 3rem;
	width: fit-content;
	text-decoration: underline;
}
.contact_contact {
	border-top: 1px solid rgba(147, 136, 130, .2);
}
.contact_contact h2 {
	text-align: center;
	font-size: 1.3rem;
	letter-spacing: .1em;
	font-weight: 400;
	color: #938882;
	margin-bottom: 3.2rem;
}
.contact_contact h2 .en {
	display: block;
	font-size: 2.4rem;
	letter-spacing: .1em;
	margin-bottom: 1rem;
}
@media only screen and (max-width: 768px) {
	.contact .topicpath {
		margin-top: 4.7rem;
	}
	.contact_contact {
		padding: 2.8rem 0 0;
	}
	.contact_contact h2 {
		margin-bottom: 2.1rem;
	}
}



/*forms
----------------------------------------*/
.forms {
	max-width: 97.1rem;
	margin: 0 auto 15rem;
	padding: 11rem 0 0;
}
.forms .txt {
	font-size: 1.3rem;
	letter-spacing: .1em;
	color: #938882;
}
.formlist {
	margin-top: 2.7rem;
	display: grid;
	grid-template-columns: 21.8rem auto;
	gap: 2rem 0;
	color: #938882;
}
.formlist dt {
	font-size: 1.3rem;
	line-height: 1.9231;
	font-weight: 400;
	letter-spacing: .1em;
	padding: .6rem 0 0 2.3rem;
}
body.confirm main .formlist dt {
	padding-top: 0;
	padding-left: 0;
}
.formlist dt:nth-last-of-type(1) {
	padding-top: 0;
}
.formlist dt.need::before {
	content: '※';
	display: block;
	color: #704535;
	position: absolute;
	left: 0;
	top: .5rem;
	font-size: 1.5rem;
}
.formlist > dd.ct label {
	display: inline-block;
	font-size: 1.3rem;
	letter-spacing: .1em;
	padding: 1.2rem 1.7rem 1.2rem 0;
	line-height: 1;
	border-radius: .5rem;
	min-width: 11.2rem;
}
.formlist input[type=radio],
.formlist input[type=checkbox] {
	vertical-align: -.2rem;
	margin-right: 0.8rem;
}
.formlist input[type=text],
.formlist input[type=email],
.formlist select,
.formlist textarea {
	width: 34.8rem;
	max-width: 100%;
	appearance: none;
	background: #fff;
	border-radius: .5rem;
	border: .1rem solid #D9D9D9;
	color: inherit;
	font-family: inherit;
	font-weight: 500;
	font-size: 1.3rem;
	letter-spacing: .1em;
	padding: .95rem 1.8rem;
}
.formlist select {
	width: 24rem;
	background: #fff url(../../img/common/icon_arrow_select.svg) no-repeat center right 1.5rem;
}
.formlist textarea {
	width: 72.1rem;
	height: 18rem;
	resize: vertical;
}
.policy {
	max-width: 91.1rem;
	background: #fff;
	border-radius: .3rem;
	margin: 3.5rem auto 0;
}
.policy dl {
	color: #938882;
	padding: 1.2rem 2.8rem 1rem;
	height: 14.1rem;
}
.policy dt {
	font-size: 1.3rem;
	letter-spacing: .1em;
	line-height: 1.9231;
	margin: 2rem 0 .5rem;
}
.policy dt:first-child {
	margin-top: 0;
}
.policy dd {
	font-size: 1.3rem;
	line-height: 2.1538;
	letter-spacing: .05em;
}
.agree {
	color: #333;
	text-align: center;
	font-size: 1.3rem;
	font-weight: 500;
	letter-spacing: .1em;
	margin-top: 3.5rem;
}
.agree input[type=checkbox] {
	margin-right: .8rem;
	vertical-align: -.2rem;
}
.send {
	display: flex;
	justify-content: center;
	margin-top: 4.4rem;
	gap: 1rem;
}
.send .next input[type=submit],
.send .back input[type=button] {
	appearance: none;
	width: 32rem;
	height: 7rem;
	border: 0;
	background: #164114;
	border-radius: 3.5rem;
	text-align: center;
	color: #fff;
	font-size: 1.5rem;
	letter-spacing: .1em;
	font-family: inherit;
	box-shadow: 0 .4rem .4rem rgba(0, 0, 0, .15);
	cursor: pointer;
	transition: opacity .3s;
}
.send .back input[type=button] {
	background: #E0E1E0;
	color: #6B9982;
}
.formlist input[type="radio"] {
    -webkit-appearance: none;
    appearance: none;
    display: inline-block;
    width: 1.2rem;
    height: 1.2rem;
    vertical-align: middle;
    cursor: pointer;
    background-color: #D9D9D9;
    border-radius: 50%;
    position: relative;
    transition: background-color 0.2s, border-color 0.2s;
}

.formlist input[type="radio"]:checked {
    background-color: #D9D9D9;
}

.formlist input[type="radio"]:checked::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 0.9rem;
    height: 0.9rem;
    background-color: #938882;
    border-radius: 50%;
}
@media (hover:hover) {
	.send .next input[type=submit]:hover,
	.send .back input[type=button]:hover {
		opacity: .6;
	}
}
@media only screen and (max-width: 768px) {
	.forms {
		max-width: 37.5rem;
		margin: 0 auto 4rem;
		padding: 2.6rem 2.2rem 8rem;
	}
	.forms .txt {
		padding: 0;
	}
	.formlist {
		margin-top: 2.6rem;
		padding: 0;
		display: block;
	}
	.formlist dt {
		padding: .6rem 0 1rem 2.3rem !important;
	}
	.formlist dt.will {
		padding-left: 0 !important;
	}
	body.confirm main .formlist dt {
		padding-left: 0 !important;
	}
	.formlist dd {
		margin-bottom: 1.2rem;
	}
	.formlist dd.ct {
		margin-left: -1rem;
		margin-top: 0.5rem;
	}
	.formlist > dd.ct label {
		padding: .85rem 1.5rem .85rem 1rem;
		margin-bottom: .5rem;
	}
	.formlist input[type=radio],
	.formlist input[type=checkbox] {
		margin-right: .5rem;
		margin-bottom: .2rem;
	}
	.formlist input[type=text],
	.formlist select,
	.formlist textarea {
		font-size: 1.6rem;
		width: 100%;
	}
	.formlist select {
		width: 100%;
	}
	.formlist textarea {
		width: 100%;
		height: 18rem;
	}
	.policy {
		margin-top: 2.2rem;
	}
	.policy dl {
		height: 14.9rem;
		overflow-y: auto;
		padding: 1.8rem 2.2rem 1rem;
	}
	.send {
		flex-direction: column;
		margin-top: 3.5rem;
	}
	.send .next input[type=submit],
	.send .back input[type=button] {
		width: 100%;
		height: 7rem;
	}
	.policy_ttl {
		margin-top: 2.4rem;
		color: #938882;
		font-size: 1.3rem;
		letter-spacing: .1em;
		line-height: 1.9231;
	}
	.agree {
		margin-top: 3rem;
	}
	.send {
		margin-top: 4.5rem;
	}
}