/* Contact page */
.p-page-contact {
	overflow-x: clip;
}

.p-page-contact .p-page-layout__body {
	padding-top: 92px;
	padding-bottom: 120px;
}

.p-page-contact__content {
	/* 720px content width scale (from 1172px reference): 0.614 */
	--contact-col-left: 240px;
	--contact-row-sm: 104px;
	--contact-row-lg: 210px;
	--contact-row-md: 129px;
	--contact-input-h: 63px;
	--contact-textarea-h: 167px;
	--contact-check-size: 24px;
	--contact-submit-h: 50px;
	--contact-tone: #2b4f5e;
	--contact-tone-dark: #244754;
	--contact-border: rgba(43, 79, 94, 0.35);
	--contact-border-soft: rgba(43, 79, 94, 0.2);
	--contact-border-strong: rgba(43, 79, 94, 0.48);
	--contact-soft-bg: rgba(241, 231, 215, 0.35);
	--contact-soft-bg-hover: rgba(241, 231, 215, 0.55);
	--contact-field-bg: rgba(255, 255, 255, 0.92);
	--contact-placeholder: rgba(43, 79, 94, 0.45);
	--contact-disabled-text: rgba(43, 79, 94, 0.42);
	display: grid;
	gap: 32px;
	width: min(100% - 40px, 720px);
}

.p-page-contact__content .wpcf7 {
	width: 100%;
	margin: 0;
}

.p-page-contact__content .wpcf7-form {
	display: grid;
	gap: 56px;
}

.p-page-contact__content .wpcf7-form p {
	margin: 0;
}

.p-page-contact__content .wpcf7-response-output {
	margin: 0;
	padding: 12px 16px;
	border-radius: 12px;
	font-size: 16px;
	line-height: 1.6;
}

.p-page-contact__content .wpcf7-spinner {
	margin: 0 0 0 8px;
}

.p-page-contact-channel-wrap {
	position: relative;
	display: grid;
	gap: 0;
	padding-top: 56px;
	border-top: 0;
}

.p-page-contact-channel-wrap::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 100vw;
	transform: translateX(-50%);
	border-top: 1px solid var(--contact-border);
	pointer-events: none;
}

.p-page-contact-channel-wrap.p-page-contact-channel-wrap--top {
	padding-top: 0;
	border-top: 0;
}

.p-page-contact-channel-wrap.p-page-contact-channel-wrap--top::before {
	display: none;
}

.p-page-contact-channel-wrap.p-page-contact-channel-wrap--top::after {
	display: none;
}

.p-page-contact-channel-wrap--top .p-page-contact-channel {
	padding-top: 0;
}

.p-page-contact-channel {
	display: grid;
	gap: 16px;
	padding: 56px 0;
}

.p-page-contact-channel + .p-page-contact-channel {
	border-top: 1px solid var(--contact-border);
}

.p-page-contact-channel__title {
	margin: 0;
	color: var(--contact-tone);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.p-page-contact-channel__lead {
	margin: 0;
	color: var(--contact-tone);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.04em;
}

.p-page-contact-channel__lead a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.16em;
}

.p-page-contact-channel__tel {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	color: var(--contact-tone);
	text-decoration: none;
}

.p-page-contact-channel__tel-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	color: var(--contact-tone);
	line-height: 0;
}

.p-page-contact-channel__tel-icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.p-page-contact-channel__tel-icon svg path {
	fill: currentColor;
}

.p-page-contact-channel__tel-number {
	font-family: "Overpass", sans-serif;
	font-size: 34px;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.02em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.12em;
}

.p-page-contact-channel__time {
	margin: 0 0 0 44px;
	color: var(--contact-tone);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.03em;
}

.p-page-contact-channel__line-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	min-height: 50px;
	padding: 12px 24px;
	border: 1px solid #708684;
	border-radius: 999px;
	background: #fafafa;
	color: #617b78;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.04em;
	text-decoration: none;
	transition:
		background-color 0.2s ease,
		transform 0.26s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-page-contact-channel__line-btn:hover,
.p-page-contact-channel__line-btn:focus-visible {
	background: #f3f5f5;
	transform: translateY(-2px);
	box-shadow: 0 10px 20px rgba(112, 134, 132, 0.24);
}

.p-page-contact-precheck {
	position: relative;
	display: grid;
	gap: 14px;
	padding-bottom: 28px;
	border-bottom: 0;
}

@media (min-width: 901px) {
	.p-page-contact-precheck {
		padding-bottom: 60px;
	}

	.p-page-contact-channel-wrap.p-page-contact-channel-wrap--top {
		padding-top: 60px;
	}

	.p-page-contact-channel-wrap--top .p-page-contact-channel {
		padding-top: 10px;
	}

	.p-page-contact-channel {
		padding: 10px 0;
	}
}

.p-page-contact-precheck::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 100vw;
	transform: translateX(-50%);
	border-top: 1px solid var(--contact-border);
	pointer-events: none;
}

.p-page-contact-precheck__title {
	margin: 0;
	color: var(--contact-tone);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.p-page-contact-precheck__links {
	display: grid;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.p-page-contact-precheck__links li {
	position: relative;
	padding-left: 1em;
	color: var(--contact-tone);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 0.04em;
}

.p-page-contact-precheck__links li::before {
	content: "‧";
	position: absolute;
	left: 0;
	top: 0;
}

.p-page-contact-precheck__links a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.16em;
}

.p-page-contact__content .p-page-contact-precheck__text {
	margin: 0;
	color: var(--contact-tone);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.04em;
}

.p-page-contact-form-note {
	display: grid;
	gap: 0;
	padding-bottom: 42px;
}

.p-page-contact-form-note__list {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.p-page-contact-form-note__list li {
	position: relative;
	margin: 0;
	padding-left: 1.1em;
	color: var(--contact-tone);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.04em;
}

.p-page-contact-form-note__list li::before {
	content: "•";
	position: absolute;
	left: 0;
	top: 0;
}

.p-contact-form {
	display: grid;
	gap: 44px;
	width: 100%;
}

.p-contact-form__lead {
	display: grid;
	gap: 16px;
}

.p-contact-form__lead-title {
	margin: 0;
	color: var(--contact-tone);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.04em;
}

.p-contact-form__lead-text {
	margin: 0;
	color: var(--contact-tone);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.04em;
	display: none;
}

.p-contact-form__lead-text a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.16em;
}

.p-contact-form__table {
	border: 1px solid var(--contact-border);
	border-radius: 20px;
	overflow: hidden;
}

.p-contact-form__row {
	display: grid;
	grid-template-columns: var(--contact-col-left) minmax(0, 1fr);
	border-top: 1px solid var(--contact-border);
}

.p-contact-form__row:first-child {
	border-top: 0;
}

.p-contact-form__head {
	display: grid;
	gap: 12px;
	align-content: flex-start;
	padding: 22px 38px;
	border-right: 1px solid var(--contact-border);
	background: var(--contact-soft-bg);
}

.p-contact-form__label {
	margin: 0;
	color: var(--contact-tone);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.04em;
}

.p-page-contact__content .p-contact-form__required {
	margin: 0;
	color: #e95532;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.p-contact-form__field {
	padding: 18px 20px;
	display: flex;
	align-items: center;
}

.p-contact-form__table .p-contact-form__row:nth-child(1),
.p-contact-form__table .p-contact-form__row:nth-child(2) {
	min-height: var(--contact-row-sm);
}

.p-contact-form__table .p-contact-form__row:nth-child(3) {
	min-height: var(--contact-row-lg);
}

.p-contact-form__table .p-contact-form__row:nth-child(4),
.p-contact-form__table .p-contact-form__row:nth-child(5) {
	min-height: var(--contact-row-md);
}

.p-contact-form__table .p-contact-form__row:nth-child(3) .p-contact-form__field,
.p-contact-form__table .p-contact-form__row:nth-child(4) .p-contact-form__field,
.p-contact-form__table .p-contact-form__row:nth-child(5) .p-contact-form__field {
	align-items: flex-start;
	padding-top: 18px;
}

.p-contact-form__field .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="text"],
.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="email"],
.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="tel"],
.p-page-contact__content .wpcf7-form .p-contact-form__field textarea,
.p-page-contact__content .wpcf7-form .p-contact-form__field select {
	width: 100%;
	border: 0;
	border-radius: 0;
	background: var(--contact-field-bg);
	padding: 16px 21px;
	color: var(--contact-tone);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.03em;
	height: var(--contact-input-h);
}

.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="text"]::placeholder,
.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="email"]::placeholder,
.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="tel"]::placeholder,
.p-page-contact__content .wpcf7-form .p-contact-form__field textarea::placeholder {
	color: var(--contact-placeholder);
}

.p-page-contact__content .wpcf7-form .p-contact-form__field textarea {
	min-height: var(--contact-textarea-h);
	height: var(--contact-textarea-h);
	resize: vertical;
}

.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="text"]:focus,
.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="email"]:focus,
.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="tel"]:focus,
.p-page-contact__content .wpcf7-form .p-contact-form__field textarea:focus,
.p-page-contact__content .wpcf7-form .p-contact-form__field select:focus {
	outline: 2px solid rgba(43, 79, 94, 0.38);
	outline-offset: -2px;
}

.p-contact-form__field .wpcf7-list-item {
	margin: 0;
}

.p-contact-form__field .wpcf7-list-item label {
	display: flex;
	align-items: center;
	gap: 16px;
}

.p-contact-form__field .wpcf7-list-item input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	width: var(--contact-check-size);
	height: var(--contact-check-size);
	margin: 0;
	border: 1px solid var(--contact-border-strong);
	border-radius: 5px;
	background: #fff;
	position: relative;
	flex-shrink: 0;
}

.p-contact-form__field .wpcf7-list-item input[type="checkbox"]:checked {
	border-color: var(--contact-tone);
	background: var(--contact-tone);
}

.p-contact-form__field .wpcf7-list-item input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	top: 5px;
	left: 8px;
	width: 6px;
	height: 10px;
	border-right: 1.5px solid #fff;
	border-bottom: 1.5px solid #fff;
	transform: rotate(42deg);
}

.p-contact-form__field .wpcf7-list-item-label {
	color: var(--contact-tone);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.04em;
}

.p-contact-form__table .p-contact-form__row:nth-child(4) .wpcf7-list-item-label,
.p-contact-form__table .p-contact-form__row:nth-child(5) .wpcf7-list-item-label {
	font-size: 15px;
	font-weight: 500;
}

.p-contact-form__field .wpcf7-list-item-label a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.14em;
}

.p-contact-form__actions {
	display: block;
	margin-top: 4px;
}

.p-contact-form__actions > p {
	margin: 0;
}

.p-contact-form__submit-wrap {
	display: block;
}

.p-page-contact__content .wpcf7-form input.p-contact-form__submit[type="submit"] {
	width: min(100%, 300px);
	margin-inline: auto;
	display: block;
	min-height: var(--contact-submit-h);
	padding: 10px 0;
	text-align: center;
	border: 1px solid var(--contact-border-soft);
	border-radius: 999px;
	background-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 1l5 5-5 5' fill='none' stroke='%23a5acaa' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 21px center;
	background-size: 16px 16px;
	color: var(--contact-disabled-text);
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.08em;
	cursor: not-allowed;
	transition: color 0.2s ease, border-color 0.2s ease, background-image 0.2s ease;
}

.p-page-contact__content .wpcf7-form input.p-contact-form__submit[type="submit"]:disabled {
	opacity: 1;
}

.p-page-contact__content .wpcf7-form input.p-contact-form__submit[type="submit"].is-ready {
	border-color: var(--contact-tone);
	color: var(--contact-tone);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 1l5 5-5 5' fill='none' stroke='%232b4f5e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	cursor: pointer;
}

.p-page-contact__content .wpcf7-form input.p-contact-form__submit[type="submit"].is-ready:hover,
.p-page-contact__content .wpcf7-form input.p-contact-form__submit[type="submit"].is-ready:focus-visible {
	border-color: var(--contact-tone-dark);
	outline: none;
}

.p-contact-form__note {
	display: none;
}

.p-contact-form__note a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.16em;
}

.p-contact-form .wpcf7-not-valid-tip {
	margin-top: 8px;
	color: #e34828;
	font-size: 16px;
	font-weight: 700;
}

@media (max-width: 1200px) {
	.p-page-contact .p-page-layout__body {
		padding-top: 72px;
		padding-bottom: 96px;
	}

	.p-contact-form {
		width: 100%;
		gap: 40px;
	}

	.p-contact-form__lead-title {
		font-size: 24px;
	}

	.p-contact-form__lead-text {
		font-size: 16px;
	}

	.p-contact-form__row {
		grid-template-columns: 220px minmax(0, 1fr);
	}

	.p-contact-form__head {
		padding: 20px 24px;
	}

	.p-contact-form__label {
		font-size: 16px;
	}

	.p-page-contact__content .p-contact-form__required {
		font-size: 12px;
	}

	.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="text"],
	.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="email"],
	.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="tel"],
	.p-page-contact__content .wpcf7-form .p-contact-form__field textarea,
	.p-page-contact__content .wpcf7-form .p-contact-form__field select {
		font-size: 16px;
		height: 58px;
		padding: 14px 16px;
	}

	.p-page-contact__content .wpcf7-form .p-contact-form__field textarea {
		height: 156px;
		min-height: 156px;
	}

	.p-contact-form__field .wpcf7-list-item-label {
		font-size: 16px;
	}

	.p-page-contact__content .wpcf7-form input.p-contact-form__submit[type="submit"] {
		min-height: 46px;
		font-size: 16px;
	}

	.p-contact-form__note {
		font-size: 16px;
	}

	.p-page-contact-channel-wrap {
		padding-top: 40px;
	}

	.p-page-contact-channel {
		padding: 40px 0;
	}

	.p-page-contact-channel__tel-number {
		font-size: 34px;
	}
}

@media (max-width: 900px) {
	.p-page-contact-channel-wrap {
		padding-top: 28px;
	}

	.p-page-contact-channel {
		gap: 12px;
		padding: 28px 0;
	}

	.p-page-contact-channel__title {
		font-size: 20px;
	}

	.p-page-contact-precheck__title {
		font-size: 22px;
	}

	.p-page-contact-channel__tel {
		gap: 12px;
	}

	.p-page-contact-channel__tel-number {
		font-size: 30px;
	}

	.p-page-contact-channel__time {
		margin-left: 36px;
	}

	.p-page-contact-channel__line-btn {
		min-height: 44px;
		padding: 10px 16px;
	}

	.p-contact-form {
		gap: 40px;
		width: 100%;
	}

	.p-contact-form__lead {
		gap: 16px;
	}

	.p-contact-form__table {
		border-radius: 24px;
	}

	.p-contact-form__row {
		grid-template-columns: 1fr;
		min-height: auto;
	}

	.p-contact-form__head {
		padding: 22px 18px 16px;
		border-right: 0;
		border-bottom: 1px solid var(--contact-border);
	}

	.p-contact-form__label {
		font-size: 16px;
	}

	.p-page-contact__content .p-contact-form__required {
		font-size: 12px;
	}

	.p-contact-form__field {
		padding: 18px;
	}

	.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="text"],
	.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="email"],
	.p-page-contact__content .wpcf7-form .p-contact-form__field input[type="tel"],
	.p-page-contact__content .wpcf7-form .p-contact-form__field textarea,
	.p-page-contact__content .wpcf7-form .p-contact-form__field select {
		padding: 16px;
		font-size: 16px;
		height: 60px;
	}

	.p-page-contact__content .wpcf7-form .p-contact-form__field textarea {
		min-height: 190px;
		height: 190px;
	}

	.p-contact-form__field .wpcf7-list-item input[type="checkbox"] {
		width: 28px;
		height: 28px;
		border-radius: 6px;
	}

	.p-contact-form__field .wpcf7-list-item input[type="checkbox"]:checked::after {
		top: 5px;
		left: 9px;
		width: 6px;
		height: 11px;
	}

	.p-contact-form__field .wpcf7-list-item-label {
		font-size: 16px;
	}

	.p-page-contact__content .wpcf7-form input.p-contact-form__submit[type="submit"] {
		width: min(100%, 300px);
		min-height: 60px;
		font-size: 16px;
	}

	.p-contact-form__note {
		font-size: 16px;
	}
}

@media (max-width: 480px) {
	.p-page-contact__content {
		gap: 24px;
	}

	.p-contact-form__lead-title {
		font-size: 24px;
	}

	.p-contact-form__lead-text {
		font-size: 16px;
	}

	.p-page-contact__content .wpcf7-form input.p-contact-form__submit[type="submit"] {
		background-position: right 21px center;
	}

	.p-page-contact-channel__title {
		font-size: 18px;
	}

	.p-page-contact-precheck__title {
		font-size: 20px;
	}

	.p-page-contact-channel__lead {
		font-size: 15px;
	}

	.p-page-contact-channel__tel-number {
		font-size: 24px;
	}

	.p-page-contact-channel__time {
		font-size: 14px;
		margin-left: 0;
	}
}
