﻿/* ----------------------------------------
LPページ 変数宣言など
---------------------------------------- */
.page-template-page-furusato_denki {
	/* variables */
	--orange: #F3934A;
	--green: #21925E;
	--light-green: #AAC662;
	--blue: #1DBDBF;
	--color-text: #444;

	--ff-inter: 'Inter', sans-serif;
	--ff-sans: 'Noto Sans JP', sans-serif;

	font-family: var(--ff-sans);
	letter-spacing: 0.05em;
	color: var(--color-text);

	img {
		max-width: 100%;
	}
	strong {
		color: var(--orange);
	}
}

/* ----------------------------------------
アニメーション
---------------------------------------- */
.js-fade-up {
	transition: transform 0.8s ease, opacity 0.8s ease;
	transform: translateY(10px);
	opacity: 0;

	&.in {
		opacity: 1;
		transform: translateY(0);
	}
}

/* ----------------------------------------
共通スタイル
---------------------------------------- */
.ff-inter {
	font-family: 'Inter', sans-serif;
}

.ff-sans {
	font-family: 'Noto Sans JP', sans-serif;
}

.fr-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.fr-content {
	padding: 80px 0;
	background-color: var(--light-green);
	@media screen and (min-width: 768px) {
		padding: 80px 0 120px;
	}
}

.fr-container {
	max-width: 1192px;
	margin: 0 auto;
	padding: 0 20px;
	/* padding: 0 100px; */
}

.fr-panel {
	background-color: #fff;
	margin-inline: -20px;
	padding: calc(48 / 375 * 100vw) 32px;
	border-radius: 32px;
	@media screen and (min-width: 768px) {
		margin-inline: 0!important;
		padding: calc(80 / 1440 * 100vw) calc(100 / 1440 * 100vw);
	}
}

.fr-section {
	margin-bottom: 60px;
	@media screen and (min-width: 768px) {
		margin-bottom: 100px;
	}
	&:last-child {
		margin-bottom: 0;
	}

	.fr-section-header {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 10px;
		margin-bottom: 32px;
		text-align: center;
		.fr-title {
			line-height: 1.6;
		}
		@media screen and (min-width: 768px) {
			margin-bottom: 48px;
		}
	}

}

.fr-block {
	margin-bottom: 48px;
	&:last-child {
		margin-bottom: 0;
	}
	@media screen and (min-width: 768px) {
		margin-bottom: 80px;
	}
}

.fr-btn {
	transition: all 0.3s ease;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	padding-inline: 30px;
	max-width: 320px;
	min-height: 56px;
	border-radius: 999px;
	text-align: center;
	background-color: var(--orange);
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
	&:hover {
		opacity: 0.9;
		color: #fff;
	}
	@media screen and (min-width: 768px) {
		min-height: 64px;
	}
}

.fr-label {
	padding-inline: 20px;
	padding-block: 10px;
	width: fit-content;
	border-radius: 999px;
	font-size:clamp(16px, calc(18 / 375 * 100vw), 18px);
	font-family: var(--ff-inter);
	font-weight: 900;
	line-height: 1;
	background-color: var(--green);
	letter-spacing: 0.05em;
	color: #fff;
	@media screen and (min-width: 768px) {
		font-size: clamp(16px, calc(18 / 1440 * 100vw), 18px);
	}
}

.fr-title {
	font-size: clamp(20px, calc(28 / 375 * 100vw), 28px);
	font-weight: 900;
	line-height: 1.2;
	@media screen and (min-width: 768px) {
		font-size: clamp(32px, calc(44 / 1440 * 100vw), 44px);
	}
}
.fr-pc {
	display: none;
	@media screen and (min-width: 768px) {
		display: block;
	}
}
.fr-sp {
	display: block;
	@media screen and (min-width: 768px) {
		display: none;
	}
}

/* ----------------------------------------
Header
---------------------------------------- */
.fr-header {
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-right: 16px;
	width: 100%;
	z-index: 100;
	.fr-header-logo {
		aspect-ratio: 256 / 100;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 10px 25px 10px 15px;
		width: clamp(100px, calc(168 / 375 * 100vw), 200px);
		background-color: #fff;
		border-radius: 0 0 16px 0;
		box-shadow: 0 3px 12px 0 rgba(0, 0, 0, 0.15);
		img {
			transition: all 0.3s ease;
		}
		&:hover {
			img {
				opacity: 0.7;
			}
		}
		img {
			max-width: 100%;
		}
	}
	.fr-btn {
		padding-inline: 20px;
		height: 38px;
		width: fit-content;
		min-height: 0;
		font-size: clamp(12px, calc(14 / 375 * 100vw), 18px);
		box-shadow: 0 3px 12px 0 rgba(0, 0, 0, 0.15);
	}
	@media screen and (min-width: 768px) {
		padding-right: 40px;
		.fr-header-logo {
			padding: 20px 35px 20px 25px;
			width: clamp(200px, calc(256 / 1440 * 100vw), 280px);
		}
		.fr-btn {
			padding-inline: calc(24 / 1440 * 100vw);
			height: clamp(48px, calc(48 / 1440 * 100vw), 60px);
			min-height: 0;
			font-size: clamp(16px, calc(16 / 1440 * 100vw), 24px);
			box-shadow: 0 3px 12px 0 rgba(0, 0, 0, 0.15);
		}
	}
}

/* ----------------------------------------
KV
---------------------------------------- */
.fr-kv {
	position: relative;
	padding-top: calc(123 / 375 * 100vw);
	height: 100vh;
	background-image: url(../img/furusato_denki/kv_furusato_sp.png);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	background-color: var(--blue);
	.fr-kv-title {
		aspect-ratio: 284 / 223;
		margin-inline: auto;
		width: calc(284 / 375 * 100vw);
		background-image: url(../img/furusato_denki/txt_kv_title_sp.svg);
		background-size: contain;
		background-position: center;
		background-repeat: no-repeat;
	}
	.fr-btn {
		position: absolute;
		bottom: 48px;
		left: 50%;
		translate: -50% 0;
		padding-inline: 50px;
		width:calc(247 / 375 * 100vw);
		box-shadow: 0 3px 12px 0 rgba(0, 0, 0, 0.15);
		font-size: clamp(18px, calc(18 / 375 * 100vw), 18px);
	}
	@media screen and (min-width: 768px) {
		padding-top: calc(160 / 1440 * 100vw);
		height: calc(900 / 1440 * 100vw);
		background-image: url(../img/furusato_denki/kv_furusato_pc.png);
		.fr-kv-title {
			aspect-ratio: 987 / 246;
			width: calc(987 / 1440 * 100vw);
			background-image: url(../img/furusato_denki/txt_kv_title_pc.svg);
		}
		.fr-btn {
			position: static;
			translate: 0 0;
			margin-inline: auto;
			margin-top: calc(57 / 1440 * 100vw);
			padding-block: 20px;
			padding-inline: 80px;
			width: fit-content;
			height: auto;
			max-width: none;
			font-size: clamp(24px, calc(26 / 1440 * 100vw), 26px);
		}
	}
}


/* ----------------------------------------
Main
---------------------------------------- */

.fr-section-point {
	.fr-feature {
		display: grid;
		grid-template-columns: 1fr;
		gap: 20px;
		.fr-feature-item {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: space-between;
			gap: 20px;
			padding: 40px 20px;
			border-radius: 16px;
			background-color: #f5f5f5;
			.fr-feature-item-title {
				font-size: clamp(18px, calc(18 / 375 * 100vw), 20px);
				font-weight: 700;
				text-align: center;
				line-height: 1.4;
			}
			.fr-feature-item-icon {
				width: calc(120 / 375 * 100vw);
			}
		}
		@media screen and (min-width: 768px) {
			grid-template-columns: repeat(3, 1fr);
			.fr-feature-item {
				.fr-feature-item-title {
					font-size: clamp(20px, calc(22 / 1440 * 100vw), 22px);
				}
				.fr-feature-item-icon {
					width: clamp(100px, calc(100 / 1440 * 100vw), 140px);
				}
			}
		}
	}
	.fr-btn {
		margin-inline: auto;
		margin-top: 32px;
	}

	.fr-about {
		background-color: #f5f5f5;
		padding: calc(40 / 375 * 100vw) calc(16 / 375 * 100vw);
		border-radius: 16px;
		@media screen and (min-width: 768px) {
			padding: calc(80 / 1440 * 100vw);
		}
		.fr-about-item {
			margin-bottom: 40px;
			padding-bottom: 40px;
			border-bottom: 1px solid #bbb;
			&:last-child {
				margin-bottom: 0;
				padding-bottom: 0;
				border-bottom: none;
			}
			&.fr-about-item01 {
				.fr-about-item-image {
					max-width: clamp(120px, calc(120 / 375 * 100vw), 150px);
				}
			}
			&.fr-about-item02 {
				.fr-about-item-image {

				}
			}
			.fr-about-item-title {
				margin-bottom: 20px;
				font-size: calc(24 / 375 * 100vw);
				font-weight: 900;
				line-height: 1.4;
				text-align: center;
			}
			.fr-about-item-description {
				font-size: clamp(14px, calc(14 / 375 * 100vw), 16px);
				line-height: 1.8;
			}
			.fr-about-item-inner {
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				gap: 20px;
			}
			.fr-about-item-content {

			}
			.fr-about-item-image {
				margin: 0 auto 30px;
				max-width: clamp(150px, calc(180 / 375 * 100vw), 200px);
				img {
					max-width: 100%;
				}
			}
			.fr-about-item-step {
				display: grid;
				grid-template-columns: 1fr;
				gap: 20px;
				margin-top: 32px;
				.fr-about-item-step-item {
					display: flex;
					flex-direction: column;
					align-items: center;
					justify-content: center;
					background-color: #fff;
					padding:30px 20px;
					border-radius: 16px;
					.fr-label {
						margin-bottom: 15px;
					}
					p {
						font-size: clamp(18px, calc(18 / 375 * 100vw), 18px);
						font-weight: 700;
						text-align: center;
						line-height: 1.6;
					}

				}
			}
		}

		@media screen and (min-width: 768px) {
			.fr-about-item {
				margin-bottom: 60px;
				padding-bottom: 60px;
				&.fr-about-item01 {
					.fr-about-item-image {
						max-width: clamp(150px, calc(210 / 1440 * 100vw), 210px);
					}
				}
				&.fr-about-item03 {
					.fr-about-item-image {
						max-width: clamp(200px, calc(292 / 1440 * 100vw), 292px);
						img {
							width: 100%;
						}
					}
				}
				.fr-about-item-title {
					margin-bottom: 30px;
					font-size: clamp(32px, calc(36 / 1440 * 100vw), 36px);
					text-align: left;
				}
				.fr-about-item-description {
					font-size: clamp(14px, calc(16 / 1440 * 100vw), 16px);
				}
				.fr-about-item-inner {
					flex-direction: row;
					gap: 40px;
				}

				.fr-about-item-content {

				}
				.fr-about-item-image {
					margin: 0;
					max-width: 100%;
					img {
						width: clamp(200px, calc(200 / 1440 * 100vw), 300px);
					}
				}
				.fr-about-item-step {
					grid-template-columns: repeat(3, 1fr);
					margin-top: 48px;
					.fr-about-item-step-item {
						padding:40px 20px;
						.fr-label {
							margin-bottom: 20px;
						}
						p {
							font-size: clamp(20px, calc(22 / 1440 * 100vw), 22px);
						}
					}
				}
			}

		}
	}

	.fr-map {
		background-color: #f5f5f5;
		padding: 40px 16px;
		border-radius: 16px;
		@media screen and (min-width: 992px) {
			padding: 50px;
		}

		.fr-map-inner {
			.fr-map-note {
				margin-top: 10px;
				font-size: 12px;
				text-align: right;
			}
			@media screen and (min-width: 992px) {
				position: relative;
				aspect-ratio: 792 / 830;
				display: flex;
				align-items: flex-start;
				flex-wrap: wrap;
				gap: 10px;
				width: 100%;
				height: 100%;
				background-image: url(../img/furusato_denki/bg_map_japan.svg);
				background-size: contain;
				background-repeat: no-repeat;
				background-position: top center;
				.fr-map-note {
					position: absolute;
					bottom: 0;
					right: 0;
					z-index: 1;
					margin-top: 0;
					font-size: 14px;
				}
			}
		}
	}
}

.fr-area-panel {

	@media screen and (max-width: 991px) {
		border-inline: 1px solid #ddd;
		background-color: #fff;
		&:last-of-type {
			border-bottom: 1px solid #ddd;
		}
		.fr-area-panel-title {
			transition: all 0.3s ease;
			display: flex;
			align-items: center;
			justify-content: space-between;
			padding: 22px 16px 22px 20px;
			border-top: 1px solid #ddd;
			.is-open & {
				background-color: #eee;
				.icon-arrow-toggle {
					rotate: -180deg;
				}
			}
		}
		.fr-area-panel-list {
			display: none;
			.is-open & {
				display: block;
			}
			li {
				position: relative;
				a {
					display: block;
					padding: 14px 20px;
					border-top: 1px solid #ddd;
					font-weight: 600;
				}
				&.is-disabled {
					a {
						pointer-events: none;
						opacity: 0.2;
					}
				}
			}
		}
		.icon-arrow-right {
			position: absolute;
			top: 50%;
			right: 20px;
			transform: translateY(-50%) rotate(45deg);
			display: inline-block;
			box-sizing: border-box;
			width: 10px;
			height: 10px;
			border-style: solid;
			border-width: 1.5px 1.5px 0 0;
			border-color: #aaa;
		}
		.icon-arrow-toggle {
			transition: all 0.3s ease;
			display: grid;
			place-items: center;
			width: 24px;
			height: 24px;
			border-radius: 50%;
			background-color: var(--green);
			&::before {
				rotate: 135deg;
				translate: 0 -1px;
				transform-origin: center center;
				content: "";
				width: 6px;
				height: 6px;
				border-style: solid;
				border-width: 2px 2px 0 0;
				border-color: #fff;
			}
		}
	}

	@media screen and (min-width: 992px) {
		background-color: #fff;
		padding: 20px;
		width: fit-content;
		max-width: 236px;
		border-radius: 16px;
		.fr-area-panel-title {
			margin-bottom: 15px;
			pointer-events: none;
			.icon-arrow-toggle {
				display: none;
			}
		}
		.fr-area-panel-list {
			display: flex !important;
			flex-wrap: wrap;
			gap: 4px;
			li {
				a {
					transition: all 0.3s ease;
					white-space: nowrap;
					display: block;
					padding: 6px 5px 8px 5px;
					width: 62px;
					border-radius: 8px;
					background-color: #D4E3AA;
					line-height: 1;
					font-weight: 600;
					font-size: 15px;
					text-align: center;
					&:hover {
						opacity: 0.7;
						color: currentColor;
					}
					i {
						display: none;
					}
				}
				&.is-disabled {
					a {
						pointer-events: none;
						background-color: #ddd;
					}
				}
			}
		}

		/* PC版のエリアパネル位置調整 */
		position: absolute;
		&.fr-hokkaido {
			top: clamp(40px, calc(40 / 1440 * 100vw), 40px);
			right: 0;
		}
		&.fr-tohoku {
			top: clamp(260px, calc(260 / 1440 * 100vw), 260px);
			right: 0;
		}
		&.fr-kanto {
			top: clamp(430px, calc(430 / 1440 * 100vw), 430px);
			right: 0;
		}
		&.fr-chubu {
			bottom: clamp(50px, calc(50 / 1440 * 100vw), 50px);
			left: clamp(430px, calc(430 / 1440 * 100vw), 430px);
			max-width: 168px;
		}
		&.fr-kansai {
			top: clamp(279px, calc(279 / 1440 * 100vw), 279px);
			left: clamp(249px, calc(249 / 1440 * 100vw), 249px);
		}
		&.fr-chugoku {
			top: clamp(386px, calc(386 / 1440 * 100vw), 386px);
			left: 0;
		}
		&.fr-shikoku {
			bottom: clamp(50px, calc(50 / 1440 * 100vw), 50px);
			left: clamp(250px, calc(250 / 1440 * 100vw), 250px);
			max-width: 168px;
		}
		&.fr-kyushu {
			bottom: 0;
			left: 0;
		}
	}
}

.fr-section-cta {
	overflow: clip;
	padding:40px 0 80px 0;
	background-color: var(--blue);
	.fr-title {
		color: #fff;
	}
	.fr-contact-image {
		margin-bottom: 32px;
		margin-inline: -120px;
		@media screen and (min-width: 768px) {
			margin-bottom: 48px;
			margin-inline: 0;
		}
	}
	.fr-contact-description {
		font-weight: 600;
		font-size: clamp(14px, calc(14 / 375 * 100vw), 14px);
		text-align: center;
		line-height: 1.8;
		color: #fff;
	}
	.fr-btn {
		margin-inline: auto;
		margin-top: 32px;
		/* padding-block: 20px; */
        /* padding-inline: 80px; */
		box-shadow: 0 3px 12px 0 rgba(0, 0, 0, 0.15);
		font-size: clamp(18px, calc(18 / 375 * 100vw), 18px);
	}
	@media screen and (min-width: 768px) {
		padding: 100px 0;
		.fr-title {
			font-size: clamp(32px, calc(44 / 1440 * 100vw), 44px);
		}
		.fr-contact-description {
			font-size: clamp(16px, calc(16 / 1440 * 100vw), 18px);
		}
		.fr-btn {
			margin-top: 48px;
			padding-block: 20px;
			font-size: clamp(24px, calc(26 / 1440 * 100vw), 26px);
		}
	}
}

.fr-section-faq {
	.fr-panel {
		padding-inline: 16px;
	}
	@media screen and (min-width: 768px) {
		.fr-panel {
			padding-inline: calc(100 / 1440 * 100vw);
		}
	}
}

.fr-section-contact {
	.fr-panel {
		padding-inline: 16px;
	}
	@media screen and (min-width: 768px) {
		.fr-panel {
			padding-inline: calc(100 / 1440 * 100vw);
		}
	}
}

.fr-faq {
	.fr-faq-item {
		margin-bottom: 12px;
		&:last-child {
			margin-bottom: 0;
		}
		.fr-faq-item-title {
			transition: all 0.3s ease;
			cursor: pointer;
			position: relative;
			font-size: clamp(15px, calc(15 / 375 * 100vw), 15px);
			font-weight: 900;
			background-color: var(--light-green);
			padding: 15px 40px 15px 35px;
			border-radius: 16px;
			line-height: 1.4;
			color: #fff;
			.is-open & {
				border-radius: 16px 16px 0 0;
			}
			&::after {
				content: "Q";
				position: absolute;
				top: 10px;
				left: 10px;
				font-family: var(--ff-inter);
				font-weight: 700;
				font-size: clamp(21px, calc(21 / 375 * 100vw), 21px);
				color: #fff;
			}
		}
		.fr-toggle-icon {
			.is-open & {
				&::after {
					rotate: 180deg;
				}
			}
			position: absolute;
			top: 50%;
			right: 13px;
			transform: translateY(-50%);
			width: 16px;
			height: 16px;
			&::before,
			&::after {
				transition: all 0.3s ease;
				content: "";
				position: absolute;
				top: 8px;
				width: 16px;
				height: 2px;
				background-color: #fff;
			}
			&::after {
				rotate: 90deg;
			}
			@media screen and (min-width: 768px) {
				width: 24px;
				height: 24px;
				right: 23px;
				&::before,
				&::after {
					top: 12px;
					width: 24px;
					height: 3px;
				}
			}
		}
		.fr-faq-item-content {
			display: none;
			background-color: #E7F2E2;
			border-radius: 0 0 16px 16px;
			.fr-faq-item-content-inner {
				padding: 15px 20px;
				p {
					font-size: clamp(15px, calc(15 / 375 * 100vw), 15px);
					line-height: 1.6;
				}
			}
		}
	}
	@media screen and (min-width: 768px) {
		.fr-faq-item {
			margin-bottom: 16px;
			&:last-child {
				margin-bottom: 0;
			}
			.fr-faq-item-title {
				padding: 20px 60px 20px 63px;
				font-size: clamp(24px, calc(24 / 1440 * 100vw), 24px);
				&::after {
					left: 23px;
					font-size: clamp(40px, calc(40 / 1440 * 100vw), 40px);
				}
			}
			.fr-faq-item-content {
				.fr-faq-item-content-inner {
					padding: 30px;
					p {
						font-size: clamp(16px, calc(16 / 1440 * 100vw), 16px);
					}
				}
			}
		}
	}
}

.fr-contact-form {
	font-size: 14px;
	line-height: 1.6;
	input {
		&[type="tel"],
		&[type="email"],
		&[type="text"],
		&[type="password"]{
			background: #f5f5f5;
			border: 1px solid #ddd;
			padding: 10px;
			height: 44px;
			width: 100%;
			border-radius: 4px;
		}
		&[type="file"] {
			font-size: 14px;
		}
	}
	textarea {
		width: 100%;
		background: #f5f5f5;
		border: 1px solid #ddd;
		padding: 10px;
		height: 200px;
		border-radius: 4px;
	}

	.wpcf7-not-valid-tip {
		margin-top: 0.5rem;
		display: block;
		width: 100%;
		font-size: 14px;
		font-weight: 600;
	}
	.wpcf7-response-output {
		font-size: 14px;
		font-weight: 600;
	}

	.wpcf7-form-control-wrap {
		display: flex;
		flex-wrap: wrap;
		z-index: 0;
	}
	.wpcf7-radio,
	.wpcf7-checkbox,
	.wpcf7-acceptance {
		display: flex;
		flex-wrap: wrap;
		row-gap: 5px;
		column-gap: 10px;
		.wpcf7-list-item {
			margin: 5px 20px 5px 0;
			display: block;
			label {
				position: relative;
				cursor: pointer;
				input[type="radio"],
				input[type="checkbox"] {
					opacity: 0;
					position: absolute;
					top: 0;
					left: 0;
					width: 0;
					height: 0;
				}
				.wpcf7-list-item-label {
					display: flex;
					position: relative;
					padding-left: 30px;
					&:before,
					&:after {
						position: absolute;
						transform: translateY(1px);
					}
					&:before {
						content: "";
						top: 0;
						left: 0;
						display: block;
						width: 20px;
						height: 20px;
						border: 1px solid #ddd;
						border-radius: 4px;
						background: #f5f5f5;
					}
					&:after {
						content: "";
						display: block;
					}
				}
				input[type="radio"] {
					& + .wpcf7-list-item-label {
						&:before,
						&:after {
							transition: all 0.3s ease;
							border-radius: 50%;
						}
						&:after {
							top: 5px;
							left: 5px;
							width: 12px;
							height: 12px;
							background: var(--light-green);
							opacity: 0;
						}
					}
					&:checked {
						& + .wpcf7-list-item-label {
							&:after {
								opacity: 1;
							}
						}
					}
				}
				input[type="checkbox"] {
					& + .wpcf7-list-item-label {
						&:after {
							transition: all 0.3s ease;
							top: 4px;
							left: 7px;
							transform: rotate(50deg);
							width: 6px;
							height: 11px;
							border-right: 2px solid var(--light-green);
							border-bottom: 2px solid var(--light-green);
							opacity: 0;
						}
					}
					&:checked {
						& + .wpcf7-list-item-label {
							&:after {
								opacity: 1;
							}
						}
					}
				}
			}
		}
	}
	.wpcf7-acceptance {
		width: fit-content;
		font-size: 15px;
		.wpcf7-list-item {
			margin-right: 0 !important;
		}
	}
	.w100 {
		max-width: 100px;
	}
	.w120 {
		max-width: 120px;
	}
	.w130 {
		max-width: 130px;
	}
	.w185 {
		max-width: 185px;
	}
	.w330 {
		max-width: 330px;
	}
	.w500 {
		max-width: 500px;
	}

	.mod-form {
		[data-id="group-inquiry-type"] {
			display: contents;
			.form-item {
				&:last-child {
					border-bottom: none;
					padding-bottom: 0;
				}
			}
		}
		.form-item {
			margin-bottom: min(calc(24 / 375 * 100vw), 24px);
			padding-top: min(calc(24 / 375 * 100vw), 24px);
			border-top: 1px dotted #ddd;
			&:last-child {
				border-bottom: 1px dotted #ddd;
				padding-bottom: min(calc(24 / 375 * 100vw), 24px);
			}
			.label {
				margin-bottom: 10px;
				font-weight: 700;
				font-size: clamp(14px, calc(14 / 375 * 100vw), 14px);
			}
			.required {
				color: #E83E3E;
			}
			.input {
				font-size: clamp(14px, calc(14 / 375 * 100vw), 14px);
			}
			.input-wrap {
				display: flex;
				align-items: center;
				gap: 10px;
				width: 100%;
				.item {
					display: flex;
					align-items: center;
					gap: 10px;
				}
			}
			p {
				font-size: clamp(14px, calc(14 / 375 * 100vw), 14px);
			}

			p.note {
				margin-top: 10px;
				font-size: clamp(12px, calc(12 / 375 * 100vw), 12px);
			}
			&.acceptance {
				p {
					margin-bottom: clamp(16px, calc(16 / 375 * 100vw), 16px);
				}
			}
		}
		@media screen and (min-width: 768px) {
			display: grid;
			grid-template-columns: max-content 1fr;
			row-gap: 0;

			.form-item {
				display: grid;
				grid-template-columns: subgrid;
				grid-column: span 2;
				align-items: flex-start;
				gap: min(calc(80 / 1440 * 100vw), 80px);
				padding-right: min(calc(28 / 1440 * 100vw), 28px);
				&:last-child {
				}
				.label {
					margin-top: min(calc(8 / 1440 * 100vw), 8px);
					margin-bottom: 0;
					font-size: clamp(16px, calc(16 / 1440 * 100vw), 16px);
				}
				.input {
					font-size: clamp(16px, calc(16 / 1440 * 100vw), 16px);
				}
				.input-wrap {
					flex-direction: row;
					align-items: center;
					gap: 10px;
					.item {
						align-items: center;
						gap: min(calc(8 / 1440 * 100vw), 8px);
						.wpcf7-form-control-wrap {
							width: auto;
						}
					}
				}
				p.note {
					margin-top: min(calc(12 / 1440 * 100vw), 12px);
				}
				p {
					margin-top: min(calc(12 / 1440 * 100vw), 12px);
					font-size: clamp(16px, calc(16 / 1440 * 100vw), 16px);
				}
				&.acceptance {
					p {
						margin-bottom: min(calc(24 / 1440 * 100vw), 24px);
					}
				}
			}
		}
	}

	.fr-acceptance-privacy {
		width: fit-content;
		margin-inline: auto;
		margin-top: 20px;
		font-size: 14px;
		a {
			display: block;
			width: fit-content;
			margin-top: 15px;
			margin-inline: auto;
			text-align: center;
			text-decoration: underline;
		}
	}
	.submit-wrap {
		position: relative;
		margin-top: 30px;
		z-index: 0;
		.btn-submit {
			transition: all 0.3s ease;
			cursor: pointer;
			display: block;
			text-decoration: none;
			margin: 30px auto 0;
			border: 2px solid var(--light-green);
			padding: 10px;
			height: 60px;
			min-width: 240px;
			text-align: center;
			background: #fff;
			border-radius: 999px;
			font-weight: 700;
			line-height: 1.2;
			color: var(--light-green);
			&[disabled] {
				opacity: 0.3;
				pointer-events: none;
				color: #999;
				border-color: #999;
				cursor: not-allowed;
			}
		}
		.wpcf7-spinner {
			position: absolute;
			top: 0;
			bottom: 0;
			right: 0;
			left: 0;
			margin: auto;
			z-index: -1;
		}
		.submitting & {
			.btn-submit {
				opacity: 0;
			}
		}
	}

}


/* ----------------------------------------
Footer
---------------------------------------- */
.fr-footer {
	.fr-footer-inner {
		display: flex;
		flex-direction: column;
		gap: 32px;
		padding: 40px 0;
		.fr-btn {
			display: none;
		}
		.fr-footer-company {
			display: flex;
			flex-direction: column;
			gap: 20px;
			.fr-footer-logo {
				margin-inline: auto;
				width: clamp(195px, calc(195 / 375 * 100vw), 250px);
				img {
					max-width: 100%;
				}
			}
			p {
				font-size: 13px;
				line-height: 1.6;
				text-align: center;
			}
			.fr-footer-links {
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				flex-wrap: wrap;
				gap: 10px;
				li {
					a {
						font-size: 13px;
					}
				}
			}
		}
		.fr-footer-copyright {
			display: flex;
			flex-direction: column;
			justify-content: space-between;
			gap: 10px;
			text-align: center;
			p {
				font-size: 12px;
				font-family: var(--ff-inter);
				line-height: 1.6;
				white-space: nowrap;
			}
		}
	}
	@media screen and (min-width: 768px) {
		.fr-footer-inner {
			flex-direction: row;
			justify-content: space-between;
			gap: 0;
			padding: 60px 0;
			.fr-btn {
				display: flex;
				width: fit-content;
				min-height: 50px;
				background-color: var(--green);
			}
			.fr-footer-company {
				.fr-footer-logo {
					margin-inline: 0;
					width: clamp(195px, calc(195 / 1440 * 100vw), 250px);
				}
				p {
					font-size: 15px;
					text-align: left;
				}
				.fr-footer-links {
					flex-direction: row;
				}
			}
			.fr-footer-copyright {
				align-items: flex-end;
				text-align: right;
			}
		}
	}
}
