.contact-form {
	max-width: 1100px;
	margin: 0 auto;
	padding-top: 80px;
	overflow: visible;
}

.contact-form__row {
	margin-bottom: 24px;
}

.contact-form__row label {
	display: block;
	color: var(--color-text);
	font-size: var(--font-size-body);
	font-weight: 100;
	margin-bottom: 10px;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 3px solid #ccc;
	border-radius: 6px;
	font-size: var(--font-size-body-small);
	box-sizing: border-box;
	background: #fff;
}

.contact-form textarea {
	min-height: 180px;
	resize: vertical;
}

.contact-form .required {
	display: inline-block;
	margin-left: 8px;
	padding: 0px 10px;
	font-size: 12px;
	font-weight: 100;
	color: #fff;
	background: #c00;
	border-radius: 8px;
	vertical-align: middle;
}

.contact-form__privacy {
	font-size: var(--font-size-meta);
}

.contact-form__submit {
	text-align: center;
	margin-top: 1.5rem;
}

.contact-form__submit input[type="submit"] {
	padding: 14px 40px;
	font-size: var(--font-size-body);
	border: none;
	border-radius: 999px;
	cursor: pointer;
}

.contact-form__row {
	margin-bottom: 40px;
}

.required {
	display: inline-block;
	margin-left: 10px;
	padding: 2px 8px;
	font-size: 12px;
	font-weight: 100;
	color: var(--color-white);
	background: #e54d4d;
	border-radius: 4px;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
	width: 100%;
	border: 1px solid #d9d9d9;
	border-radius: 4px;
	padding: 14px 18px;
	font-size: var(--font-size-body-small);
	background: #fff;
}

.contact-form textarea {
	height: 320px;
	resize: vertical;
}

.contact-form__privacy-text {
	text-align: center;
	font-size: 14px;
}

.contact-form__agree {
	text-align: center;
	margin-top: 20px;
}

.contact-form__privacy-link {
	text-align: center;
	margin-top: 20px;
}

.contact-form__privacy-link a {
	font-weight: 700;
	text-decoration: underline;
}

.contact-form__submit {
	text-align: center;
	margin-top: 50px;
}

.contact-form input[type="submit"] {
	width: 290px;
	height: 44px;
	border: none;
	border-radius: 999px;
	background: var(--color-primary);
	color: #fff;
	font-size: 0.85rem;
	font-weight: 700;
	cursor: pointer;
	line-height: 1;
}

/* reCAPTCHAメッセージ用 */
.recaptcha_msg {
	text-align: center;
	font-size: 12px;
}

/* お問い合わせページだけreCAPTCHAアイコン表示 */
.page-id-93 .grecaptcha-badge {
	visibility: visible !important;
}

.contact-thanks {
	max-width: 760px;
	margin: 80px auto;
	text-align: center;
}

.contact-thanks__title {
	margin: 0 0 48px;
	border: none !important;
	color: #123b67;
	font-size: 3rem;
	font-weight: 700;
	line-height: 1.45;
}

.contact-thanks__title::before,
.contact-thanks__title::after {
	display: none !important;
	content: none !important;
}

.contact-thanks__text {
	margin-bottom: 44px;
	color: var(--color-text);
	font-size: 0.95rem;
	line-height: 2.1;
}

.contact-thanks__text p {
	margin: 0 0 0.8em;
}

.contact-thanks__button a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 290px;
	height: 44px;
	border-radius: 999px;
	background: #123b67;
	color: #fff;
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: none;
}

.page-id-112 .lower-header-deco-wrap .lower-common-header-deco-01 {
	top: -410px !important;
}
.page-id-112 .lower-header-deco-wrap .lower-common-header-deco-02 {
	top: -525px !important;
}

.page-id-112 .lower-contact-deco-07, 
.page-id-112 .lower-contact-deco-08,
.page-id-112 .lower-contact-deco-09 
{
	display: none !important;
}

@media (max-width: 991px) {
	.page-id-112 .lower-header-deco-wrap .lower-common-header-deco-01 {
		top: -396px !important;
	}
	.page-id-112 .lower-header-deco-wrap .lower-common-header-deco-02 {
		top: -511px !important;
	}
}

@media (max-width: 767px) {
	.page-id-93 .entry-body {
		padding: 0 20px 0;
	}

	.contact-form {
		overflow: hidden;
	}

	.contact-thanks {
		margin: 48px auto 120px;
		padding: 0 20px;
	}

	.contact-thanks__title {
		font-size: 2rem;
	}

	.contact-thanks__text {
		font-size: 0.9rem;
	}

	.page-id-112 .lower-header-deco-wrap .lower-common-header-deco-01 {
		top: -298px !important;
	}
	.page-id-112 .lower-header-deco-wrap .lower-common-header-deco-02 {
		top: -389px !important;
	}
}


.page-id-93 .entry-body,
.page-id-112 .entry-body {
	position: relative;
	isolation: isolate;
	overflow: visible;
}

.lower-page-deco-wrap--contact {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: visible;
}

.page-id-93 .entry-body > :not(.lower-page-deco-wrap),
.page-id-112 .entry-body > :not(.lower-page-deco-wrap) {
	position: relative;
	z-index: 2;
}

/* ========================================
   お問い合わせ完了ページ
======================================== */
html,
body.page-id-112 {
	overflow-x: clip;
}

body.page-id-112 {
	position: relative;
	isolation: isolate;
}

/* スクロール領域を増やさない背景円 */
body.page-id-112::before {
	content: "";
	position: fixed;
	inset: 0;

	width: 100%;
	height: 100%;

	background:
		radial-gradient(
			circle at 130% 48%,
			rgba(126, 220, 157, 0.22) 0%,
			rgba(126, 220, 157, 0.13) 28%,
			rgba(126, 220, 157, 0.06) 52%,
			transparent 75%
		);

	background-repeat: no-repeat;
	background-size: min(150vw, 1900px) min(150vw, 1900px);
	background-position: center;

	pointer-events: none;
	z-index: 0;
}

body.page-id-112 .breadcrumb,
body.page-id-112 .site-body,
body.page-id-112 .custom-footer {
	position: relative;
	z-index: 1;
}

body.page-id-112 .site-body {
	overflow: visible !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
	background: transparent;
}

body.page-id-112 .site-body-container,
body.page-id-112 .main-section,
body.page-id-112 .entry,
body.page-id-112 .entry-body {
	position: relative;
	overflow: visible !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

body.page-id-112 .contact-thanks {
	position: relative;
	z-index: 2;

	max-width: 760px;
	margin: 80px auto 0;
	padding: 0 20px 100px;

	text-align: center;
}

/* 共通CSSの巨大疑似要素は使わない */
body.page-id-112 .contact-thanks::before {
	display: none !important;
}

body.page-id-112 .lower-page-deco-wrap--contact {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: visible;
}

body.page-id-112 .entry-body > p:empty {
	display: none;
}

body.page-id-112 .custom-footer {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

@media (max-width: 767px) {
	body.page-id-112::before {
		background-size: 1300px 1300px;
		background-position: 62% 48%;
	}

	body.page-id-112 .contact-thanks {
		margin-top: 48px;
		padding-bottom: 80px;
	}
}