@charset "UTF-8";

/* お気軽にご連絡ください */

.p-lead__content {
	display: flex;
	align-items: center;
}

.p-lead__img {
	width: 50%;
	max-width: 320px;
	margin: 0 auto;
}

.p-lead__txt {
	max-width: 600px;
	width: 50%;
}

.p-lead__heading {
	font-size: clamp(16px, calc(24 / 768 * 100vw), 24px);
	border-bottom: solid 1px currentcolor;
	font-weight: var(--fw_jp_bold);
	letter-spacing: 0.1em;
	line-height: 2em;
	padding-bottom: 16px;
	margin-bottom: 20px;
}

.p-lead__desc {
	line-height: 2.5em;
	margin-bottom: 24px;
}

.p-lead__note {
	color: var(--color01);
	text-decoration: underline;
	text-underline-offset: 8px; 
}

/* 無料耐震相談 */

.p-aseismic__content {
	background-color: var(--color04);
	padding: 32px 100px 48px 100px;
	max-width: 1000px;
	margin: 0 auto;
	border-radius: 24px;
}

.p-contact__ttl {
	text-align: center;
	font-size: clamp(20px, calc(32 / 768 * 100vw), 32px);
	color: var(--color01);
	font-weight: var(--fw_jp_bold);
	letter-spacing: 0.1em;
	margin-bottom: 16px;
}

.p-aseismic__body {
	max-width: 800px;
	margin: 0 auto;
}

.p-aseismic__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.p-aseismic__lead {
	line-height: 2.5em;
	margin-bottom: 24px;
}

.p-aseismic__heading {
	font-size: clamp(16px, calc(20 / 768 * 100vw), 20px);
	padding-left: 1.2em;
	position: relative;
	font-weight: var(--fw_jp_bold);
	letter-spacing: 0.1em;
}

.p-aseismic__desc {
	padding-left: 1.4em;
}

.p-aseismic__heading::before {
	content: "●";
	position: absolute;
	top: 0;
	left: 0;
}

/* お電話・FAXでのお問い合わせ */

.p-tel-fax__content {
	width: min(100%, 1200px);
	margin: 0 auto;
	padding: 32px 60px 64px 60px;
	text-align: center;
	border: 1px solid var(--color01);
	border-radius: 24px;
	box-sizing: border-box;
}

.p-tel-fax__body {
	display: grid;
	gap: 42px;
}

.p-tel-fax__unit {
	width: 100%;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 16px 48px;
}

.p-tel-fax__number {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 28px;
	flex: 0 1 520px;
}

.p-tel-fax__img {
	width: 48px;
	height: auto;
	flex-shrink: 0;
}

.p-tel-fax__link,
.p-tel-fax__txt {
	margin: 0;
	font-size: clamp(20px, calc(32 / 768 * 100vw), 32px);
	font-weight: var(--fw_en_bold);
	line-height: 1;
	white-space: nowrap;
}

.p-tel-fax__link {
	text-decoration: none;
	color: var(--color_black);
}

.p-tel-fax__desc {
	margin: 0;
	text-align: left;
	font-size: clamp(14px, calc(16 / 768 * 100vw), 16px);
	line-height: 2;
	letter-spacing: 0.06em;
	flex: 0 1 430px;
}


/* メールフォーム */
.p-form {
	margin: 80px auto 160px;
}

.p-form__content {
	max-width: 1200px;
	border: solid 1px var(--color01);
	border-radius: 24px;
	margin: 0 auto;
	padding-top: 32px;
}

.p-form__unit {
	padding: 50px 100px 0 100px;
}

.p-form__lead {
	padding: 32px;
	background-color: var(--color_gray05);
	margin-bottom: 64px;
	border-radius: 8px;
	-webkit-border-radius: 8px;
	-moz-border-radius: 8px;
	-ms-border-radius: 8px;
	-o-border-radius: 8px;
}

.p-form__lead p {
	text-align: center;
}

.p-form__recaptcha-error {
	color: var(--color_err);
	text-align: center;
	margin-top: 24px;
}

.p-form__unit dl {
	display: flex;
	justify-content: space-between;
	gap: 4px 16px;
	padding: 20px 0;
}

.p-form__unit dl dt {
	width: calc(30% - 16px);
	margin-top: 6px;
}

.p-form__unit dl dd {
	width: 70%;
}

.p-form__privacy {
	padding: 16px 0 0 0;
}

.p-form__privacy label {
    display: flex;
    justify-content: center;
	align-items: flex-start;
    width: fit-content;
    gap: 0.5em;
    margin: 0 auto;
}

.p-form__privacy label a {
	display: inline;
}

.p-form__privacy label input[type="checkbox"] {
	margin-top: 0.6em;
	width: 1.2em;
	height: 1.2em;
}

.p-form__req {
	font-size: clamp(12px, calc(14 / 768 * 100vw), 14px);
	line-height: 1.0;
	padding: 0.2em 0.8em 0.4em;
	margin-right: 1.0em;
	background: #d12926;
	color: var(--color_white);
	border-radius: 4px;
}

.p-form__any {
	font-size: clamp(12px, calc(14 / 768 * 100vw), 14px);
	line-height: 1.0;
	padding: 0.2em 0.8em 0.4em;
	margin-right: 1.0em;
	background: var(--color_gray02);
	color: var(--color_white);
	border-radius: 4px;
}

::placeholder {
	color: var(--color_gray02);
}

.p-form__unit input[type="text"],
.p-form__unit textarea {
	width: 100%;
	border: 1px solid var(--color_gray03);
	background: var(--color_white);
	border-radius: 8px;
	padding: 14px 12px;
}

.p-form__unit select,
.p-form__unit input[type="date"] {
	border: 1px solid var(--color_gray03);
	background: var(--color_white);
	border-radius: 8px;
	color: var(--color_gray02);
	padding: 0 12px;
}

.p-form__unit input[type="text"],
.p-form__unit input[type="date"],
.p-form__unit select {
	height: 48px;
}

.p-form__unit textarea {
	height: 320px;
}

.p-form__btns {
	margin-top: 48px auto;
	text-align: center;
}

.p-form__conf-btn {
	font-size: clamp(13px, calc(16 / 768 * 100vw), 16px);
	line-height: 1.2;
	font-weight: var(--fw_jp_bold);
	letter-spacing: 0.1em;
	text-decoration: none;
	padding: 12px 48px 12px 20px;
	position: relative;
	display: inline-block;
	margin: 16px auto 80px auto;
	transition: .3s;
	-webkit-transition: .3s;
	-moz-transition: .3s;
	-ms-transition: .3s;
	-o-transition: .3s;
	color: var(--color01);
	background-color: var(--color_white);
	border: solid 2px var(--color01);
	width: 240px;
	border-radius: 10px;
}

.p-form__conf-btn::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-moz-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-o-transform: translateY(-50%);
	width: 0.7em;
	aspect-ratio: 1/1;
	background-image: url(../img/common/icon_arrow-right_blue.svg);
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
}

.p-form__conf-btn:hover {
	background-color: var(--color01);
	color: var(--color_white);
}

.p-form__conf-btn:hover::after {
	background-image: url(../img/common/icon_arrow-right_white.svg);
}


/* スマートフォン用 - ブレイクポイント768 */
@media screen and (max-width: 768px) {
	
	
	/* お気軽にご連絡ください */
	
	.p-lead__content {
		flex-direction: column;
	}
	
	.p-lead__txt {
		margin-top: 24px;
		width: 100%;
	}
	
	/* 無料耐震相談 */

    .p-aseismic__content {
        padding: 24px;
        border-radius: 16px;
    }

    .p-contact__ttl {
        margin-bottom: 8px;
    }

	
	/* お電話・FAXでのお問い合わせ */
	
	.p-tel-fax__content {
		padding: 40px 20px;
		border-radius: 16px;
	}

	.p-tel-fax__ttl {
		margin-bottom: 32px;
	}

	.p-tel-fax__body {
		gap: 32px;
	}

	.p-tel-fax__unit {
		gap: 12px;
	}

	.p-tel-fax__number {
		gap: 16px;
		flex-basis: 100%;
	}

	.p-tel-fax__img {
		width: 38px;
	}

	.p-tel-fax__link,
	.p-tel-fax__txt {
		font-size: clamp(18px, calc(24 / 375 * 100vw), 24px);
	}

	.p-tel-fax__desc {
		flex-basis: 100%;
		text-align: center;
		font-size: 14px;
		line-height: 1.8;
	}
	

	/* メールフォーム */
	
	.p-form {
		margin-top: 40px auto 80px;
	}
	
	.p-form__content {
		max-width: 480px;
		border-radius: 16px;
	}
	
	.p-form__unit {
		padding: 20px 20px 0 20px;
	}

	.p-form__lead {
		padding: 24px;
		margin-bottom: 32px;
	}

	.p-form__lead p {
		text-align: justify;
	}

	.p-form__unit dl {
		flex-direction: column;
		padding: 16px 0;
	}

	.p-form__unit dl dt {
		width: 100%;
	}

	.p-form__unit dl dd {
		width: 100%;
	}
	
	.p-form__unit input,
	.p-form__unit select,
	.p-form__unit textarea {
		margin-top: 8px;
	}

	.p-form__btns {
		margin-top: 0px;
	}

	.p-form__conf-btn {
		width: 220px;
		margin-bottom: 40px;
	}

}



/* 確認画面用 */
.p-confirm {
	margin-top: 80px;
}

.p-confirm__ttl {
	font-size: clamp(16px, calc(24 / 768 * 100vw), 24px);
	line-height: 1.5;
	font-weight: var(--fw_jp_bold);
	letter-spacing: 0.1em;
	text-align: center;
	color: var(--color01);
	margin-bottom: 32px;
}

.p-confirm__lead {
	margin-bottom: 32px;
	text-align: center;
}

.p-confirm__content {
	max-width: 720px;
	margin: 0 auto;
}

.p-confirm__unit dl {
	display: flex;
	justify-content: space-between;
	gap: 4px 16px;
	padding: 32px 0;
	border-bottom: 1px solid var(--color_gray03);
}

.p-confirm__unit dl:first-of-type {
	border-top: 1px solid var(--color_gray03);
}

.p-confirm__unit dl dt {
	width: calc(30% - 16px);
	font-weight: var(--fw_jp_bold);
}

.p-confirm__unit dl dd {
	width: 70%;
}

.p-confirm__err {
	color: var(--color_err);
}

.p-confirm__btns {
	display: flex;
	justify-content: center;
	width: 100%;
	margin-top: 48px;
	gap: 16px 24px;
}

.p-confirm__submit-btn {
	font-size: clamp(13px, calc(16 / 768 * 100vw), 16px);
	letter-spacing: 0.1em;
	line-height: 1.2;
	font-weight: var(--fw_jp_bold);
	text-align: center;
	text-decoration: none;
	padding: 12px 48px 12px 20px;
	display: block;
	transition: .3s;
	-webkit-transition: .3s;
	-moz-transition: .3s;
	-ms-transition: .3s;
	-o-transition: .3s;
	border: solid 2px var(--color01);
	background-color: var(--color_white);
	border-radius: 10px;
	color: var(--color01);
	width: 200px;
	position: relative;
}

.p-confirm__submit-btn:hover {
	background-color: var(--color01);
	color: var(--color_white);
}

.p-confirm__back-btn {
	font-size: clamp(13px, calc(16 / 768 * 100vw), 16px);
	line-height: 1.2;
	letter-spacing: 0.1em;
	font-weight: var(--fw_jp_bold);
	text-align: center;
	text-decoration: none;
	padding: 12px 48px 12px 20px;
	display: block;
	transition: .3s;
	-webkit-transition: .3s;
	-moz-transition: .3s;
	-ms-transition: .3s;
	-o-transition: .3s;
	background-color: var(--color01);
	color: var(--color_white);
	border-radius: 10px;
	width: 200px;
	position: relative;
}

.p-confirm__submit-btn::after,
.p-confirm__back-btn::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-moz-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-o-transform: translateY(-50%);
	width: 0.7em;
	aspect-ratio: 1/1;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
}

.p-confirm__submit-btn::after,
.p-confirm__back-btn:hover::after{
	background-image: url(../img/common/icon_arrow-right_blue.svg);
}

.p-confirm__back-btn::after,
.p-confirm__submit-btn:hover::after{
	background-image: url(../img/common/icon_arrow-right_white.svg);
}


.p-confirm__back-btn:hover {
	background-color: var(--color_white);
	border: solid 2px var(--color01);
	color: var(--color01);
}



/* スマートフォン用 */
@media screen and (max-width: 768px) {

	/* 確認画面用 */
	.p-confirm__ttl {
		letter-spacing: 0;
		margin-bottom: 24px;
	}

	.p-confirm__lead {
		margin-bottom: 24px;
	}

	.p-confirm__content {
		max-width: 480px;
	}

	.p-confirm__unit dl {
		flex-direction: column;
	}

	.p-confirm__unit dl dt {
		width: 100%;
		color: var(--color_gray02);
	}

	.p-confirm__unit dl dd {
		width: 100%;
	}

	.p-confirm__btns {
		flex-direction: column;
		margin-top: 32px;
	}

	.p-confirm__submit-btn {
		margin: 0 auto;
	}
	
	.p-confirm__back-btn {
		margin: 0 auto;
	}

}



/* 送信完了用 */
.p-finish__comment {
	font-size: clamp(15px, calc(18 / 768 * 100vw), 18px);
	line-height: 2.0;
	text-align: center;
	margin: 50px auto;
}

.c-btns {
	text-align: center;
}

.p-finish .c-btn {
	margin: 0 auto;
}
