@charset 'UTF-8';

/*----------------------------------------

	- common
	- header
	- kv
	- proposal
	- links
	- contents
		- strength
		- ownersvoice
		- service
		- support
		- aside
		- pagetop
	- footer

-----------------------------------------*/

/*----------------------------------------
	common
-----------------------------------------*/
@media screen and (min-width: 769px) {
	a[href^="tel:"] {
		pointer-events: none;
	}
}

/*----------------------------------------
	header
-----------------------------------------*/
header {
	z-index: 1000;
	position: relative;
}

header .logo {
	position: absolute;
	top: 30px;
	left: 34px;
	width: 226px;
	line-height: 1;
}

header .logo a {
	display: block;
}

/* hover */
@media (hover: hover) {
	header>a:hover {
		opacity: 0.4;
		transition: opacity 0.2s ease-out;
	}
}

/* sp */
@media screen and (max-width: 768px) {
	header .logo {
		top: 4vw;
		left: 4.6vw;
		width: 45.33vw;
	}
}

/*----------------------------------------
	kv
-----------------------------------------*/
#kv {
	position: relative;
	width: 100%;
	height: 90dvh;
	max-height: 845px;
	/*min-height: 700px;*/
	overflow: hidden;
}

#kv #kvcover {
	z-index: 3000;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--color_white);
	animation: kv-start 1s 0.5s ease-in-out forwards;
}

@keyframes kv-start {
	from {
		height: 100%;
	}

	to {
		height: 0%;
	}
}

#kv #kv_txt {
	position: absolute;
	bottom: 25%;
	left: 4%;
	width: 514px;
	margin: auto;
}

#kv #kv_txt p.t1 {
	/*padding-left: 0.2em;*/
	color: var(--color_sub);
	font-size: var(--font-size59);
	text-align: center;
	line-height: 1;
	letter-spacing: 0.32em;
	text-shadow: var(--kv-shadow-y);
	opacity: 0;
	animation: txt-animation 1s 1.5s ease-out forwards;
}

#kv #kv_txt p.t1 span {
	display: inline-block;
	margin-inline: -0.5em;
}

#kv #kv_txt p.t2 {
	margin-top: 0.18em;
	padding-right: 0.2em;
	color: var(--color_white);
	font-size: var(--font-size25);
	text-align: center;
	letter-spacing: 0.035em;
	text-shadow: var(--kv-shadow-y);
	opacity: 0;
	animation: txt-animation 1s 1.8s ease-out forwards;
}

#kv #kv_txt p.t3 {
	margin-top: 1.1em;
	/*padding-left: 1.1em;*/
	color: var(--color_white);
	font-size: var(--font-size20);
	text-align: center;
	letter-spacing: 0;
	transform: translateX(0.6em);
	text-shadow: var(--kv-shadow-y);
	opacity: 0;
	animation: txt-animation 1s 2s ease-out forwards;
}

#kv #kv_txt ul {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: min(14px, 0.9vw);
	margin-top: 3em;
	opacity: 0;
	animation: txt-animation 1s 2.5s ease-out forwards;
}

#kv #kv_txt ul li {
	display: flex;
	justify-content: center;
	align-items: center;
	align-content: center;
	flex-wrap: wrap;
	width: calc((100% - min(28px, 1.8vw))/3);
	aspect-ratio: 1 / 0.7;
	border-top-right-radius: 10px;
	border-bottom-left-radius: 10px;
	background-color: rgba(214, 183, 61, 0.5);
	color: var(--color_white);
}

#kv #kv_txt ul li span {
	display: block;
	font-size: var(--font-size16);
	line-height: 1.55;
	text-shadow: var(--kv-shadow-y);
}

#kv #kv_txt ul li span+span {
	font-size: var(--font-size20);
}

/* テキストアニメーション */
@keyframes txt-animation {
	from {
		transform: translateY(min(14px, .9vw));
		opacity: 0;
	}

	to {
		transform: translateY(0);
		opacity: 1;
	}
}

#kv #p1 {
	z-index: inherit;
	position: absolute;
	top: 0;
	width: 100%;
	height: 90dvh;
	max-height: 845px;
	min-height: 700px;
	background: #333 url(../img/kv_p_night.webp) no-repeat center center;
	background-size: cover;
	transform: translate(3vw, 0) scale(1.1);
}

#kv #p2 {
	z-index: inherit;
	position: absolute;
	top: 0;
	width: 100%;
	height: 90dvh;
	max-height: 845px;
	min-height: 700px;
	background: #333 url(../img/kv_p_day.webp) no-repeat center center;
	background-size: cover;
	opacity: 0;
	transform: translate(3vw, 0) scale(1.1);
}

#kv #p1 {
	animation: slideIn1 16s 0s ease-out infinite;
}

#kv #p2 {
	animation: slideIn2 16s 0s ease-out infinite, fadeInOut 16s 0s ease-out infinite;
}

/* KV画像アニメーション */
@keyframes slideIn1 {
	0% {
		transform: translate(-3vw, 0) scale(1.1);
	}
	10% {
		transform: translate(-3vw, 0) scale(1.1);
	}
	89.99% {
		transform: translate(-3vw, 0) scale(1.1);
	}
	90% {
		transform: translate(3vw, 0) scale(1.1);
	}
	100% {
		transform: translate(-3vw, 0) scale(1.1);
	}
}
@keyframes slideIn2 {
	0% {
		transform: translate(3vw, 0) scale(1.1);
	}
	35% {
		transform: translate(3vw, 0) scale(1.1);
	}
	45% {
		transform: translate(-3vw, 0) scale(1.1);
	}
	90% {
		transform: translate(-3vw, 0) scale(1.1);
	}
	100% {
		transform: translate(-3vw, 0) scale(1.1);
	}
}
@keyframes fadeInOut {
	0% {
		opacity: 0;
	}
	35% {
		opacity: 0
	}
	45% {
		opacity: 1;
	}
	90% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

/* sp */
@media screen and (max-width: 768px) {
	#kv {
		max-height: 90dvh;
		min-height: unset;
		height: unset;
		aspect-ratio: 750 / 1064;
		background-position: center center;
		background-size: cover;
	}

	#kv #kv_txt {
		position: absolute;
		bottom: 20%;
		left: 0;
		width: 100%;
		height: fit-content;
		margin: auto;
	}

	#kv #kv_txt p.t1 {
		padding-left: 0.3em;
		font-size: var(--font-size36);
		letter-spacing: 0.32em;
	}

	#kv #kv_txt p.t1 span {
		display: inline-block;
		margin-inline: -0.5em;
	}

	#kv #kv_txt p.t2 {
		margin-top: 0.18em;
		padding-right: 0;
		font-size: var(--font-size16);
		letter-spacing: 0.065em;
	}

	#kv #kv_txt p.t3 {
		margin-top: 2.7em;
		padding-left: 0.25em;
		font-size: var(--font-size14);
		line-height: 1.5;
		letter-spacing: 0.035em;
		transform: translateX(0);
	}

	#kv #kv_txt ul {
		gap: min(17px, 2.2vw);
		width: 95.2%;
		max-width: 357px;
		margin-top: 1.95em;
		margin-inline: auto;
	}

	#kv #kv_txt ul li {
		border-top-right-radius: 4px;
		border-bottom-left-radius: 4px;
	}

	#kv #kv_txt ul li span {
		font-size: var(--font-size12);
		line-height: 1.55;
	}

	#kv #kv_txt ul li span+span {
		font-size: var(--font-size15);
	}

	#kv #p1 {
		width: 100%;
		height: 90dvh;
		background: #333 url(../img/kv_p_night_sp.webp) no-repeat center top;
		background-size: contain;
	}

	#kv #p2 {
		width: 100%;
		height: 90dvh;
		background: #333 url(../img/kv_p_day_sp.webp) no-repeat center top;
		background-size: contain;
	}
}

@media screen and (min-width: 426px) and (max-width: 768px) {
	#kv #p1 {
		background-size: cover;
	}

	#kv #p2 {
		background-size: cover;
	}
}


/*----------------------------------------
	links
-----------------------------------------*/
#links {
	z-index: 1000;
	position: fixed;
	top: min(50px, 3.26vw);
	right: 0;
}

#links ul {
	display: flex;
	flex-direction: column;
	gap: 1.3em;
}

#links ul li {
	width: 50px;
}

#links ul li a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.8em;
	position: relative;
	width: 100%;
	padding: 21px 10px 19px 11px;
	background-color: #24314A;
	border: 1px solid var(--color_white);
	border-bottom-left-radius: min(10px, 0.65vw);
	color: var(--color_white);
	font-size: var(--font-size14);
	line-height: 1.2;
	letter-spacing: 0.3em;
	transition: color 0.2s;
	writing-mode: vertical-rl;
	text-orientation: upright;

}
#links ul li a span.sp {
        display: none;
    }
#links ul li a span.pc {
        display: block;
    }

#links ul li a::before {
	content: '';
	display: block;
}

#links ul li:nth-of-type(1) a::before {
	width: 1.5vw;
	height: 1.2em;
	background: transparent url(../img/icon_pc01.svg) no-repeat center center;
	background-size: cover;
}

#links ul li:nth-of-type(2) a::before {
	width: 1.4em;
	height: 1.4em;
	background: transparent url(../img/icon_tel.svg) no-repeat center center;
	background-size: cover;
}

@media (hover: hover) {
	#links ul li a:hover {
		opacity: 0.5;
		transition: color 0.2s;
	}
}

/* sp */
@media screen and (max-width: 768px) {
	#links {
		z-index: 2000;
		position: fixed;
		top: unset;
		right: 0;
		bottom: 20px;
		/*left: 0;*/
	}

	#links ul {
		/*justify-content: space-between;*/
		flex-direction: column-reverse;
		gap: 1.2vw;
		width: 13.4vw;
	}

	#links ul li {
		width: 13.4vw;
	}

	#links ul li:nth-of-type(1) {
		order: 2;
	}

	#links ul li:nth-of-type(2) {
		order: 1;
	}

	#links ul li a {
		justify-content: center;
        flex-direction: column;
		gap: 0.4em;
		max-height: 50px;
		height: 13.4vw;
		border-top-left-radius: 6px;
		border-bottom-left-radius: 6px;
		padding: 0;
		font-size: var(--font-size12);
		line-height: 1.3;
		letter-spacing: 0.15em;
		writing-mode: unset;
		text-orientation: unset;
        background-color: var(--color_primary);
        border-color: var(--color_primary);
        padding-top: 4px;
	}
    
    #links ul li a span.__web {
       font-size: var(--font-size11); 
        letter-spacing: 0;
    }
    
    #links ul li a span.pc {
        display: none;
    }
    #links ul li a span.sp {
        display: block;
    }

	#links ul li:nth-of-type(1) a::before {
		width: 1.6em;
		height: 1.4em;
	}

	#links ul li:nth-of-type(2) a::before {
		width: 1.6em;
		height: 1.6em;
	}
}

/*----------------------------------------
	proposal
-----------------------------------------*/
#proposal {
	position: relative;
	padding-block-end: min(92px, 6vw);
	background: var(--color_gradation);
}

#proposal::before {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	width: 100%;
	padding-top: 6%;
	margin-inline: auto;
	margin-bottom: -1px;
	clip-path: polygon(100% 0%, 49% 100%, 100% 100%);
	background: var(--color_white);
}

#proposal::after {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	width: 100%;
	padding-top: 6%;
	margin-inline: auto;
	margin-bottom: -1px;
	clip-path: polygon(0% 0%, 0% 100%, 51% 100%);
	background: var(--color_white);
}

#proposal>div {
	position: relative;
	width: min(1350px, 88.12%);
	margin: auto;
	padding-top: min(100px, 6.5vw);
}

#proposal p.ttl {
	width: min(711px, 46.4vw);
	margin-inline: auto;
	transform: translateX(-0.5vw);
}

#proposal ul {
	display: flex;
	width: 100%;
	margin: min(95px, 6.2vw) auto 0;
	background-color: var(--color_white);
}

#proposal ul li {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	width: calc((100% - 2px)/3);
	height: min(14.3vw, 219px);
}

#proposal ul li::before {
	content: '';
	display: block;
	position: absolute;
	width: calc((100% - 2px)/3);
	height: min(14.3vw, 219px);
}

#proposal ul li.t1::before {
	top: calc((min(14.3vw, 219px)/2)*-1);
	width: min(5.2vw, 80px);
	aspect-ratio: 1 / 1;
	background: transparent url(../img/icon-money.svg) no-repeat center center;
	background-size: contain;
}

#proposal ul li.t2::before {
	top: calc((min(14.3vw, 219px)/2)*-1);
	width: min(5.2vw, 80px);
	aspect-ratio: 1 / 1;
	background: transparent url(../img/icon-bill.svg) no-repeat center center;
	background-size: contain;
}

#proposal ul li.t2::after {
	content: '';
	display: block;
	position: absolute;
	width: 100%;
	height: 35%;
	border-right: 1px solid var(--color_sub2);
	border-left: 1px solid var(--color_sub2);
}

#proposal ul li.t3::before {
	top: calc((min(14.3vw, 219px)/2)*-1);
	width: min(5.2vw, 80px);
	aspect-ratio: 1 / 1;
	background: transparent url(../img/icon-man.svg) no-repeat center center;
	background-size: contain;
}

#proposal ul li.t1 img {
	width: min(12.46vw, 191px);
	transform: translateY(0.5vw);
}

#proposal ul li.t2 img {
	width: min(15vw, 230px);
	transform: translateY(0.2vw);
}

#proposal ul li.t3 img {
	width: min(18.8vw, 288px);
	transform: translateY(0.2vw);
}

#proposal p.t4 {
	width: min(48.63vw, 745px);
	padding-block: min(4.3vw, 66px) min(2vw, 31px);
	margin-inline: auto;
}

/* sp */
@media screen and (max-width: 768px) {
	#proposal {
		position: relative;
		padding-block-end: min(92px, 6vw);
		background: var(--color_gradation);
	}

	#proposal::before {
		margin-bottom: -1px;
		padding-top: 13%;
		clip-path: polygon(100% 0%, 49% 100%, 100% 100%);
	}

	#proposal::after {
		margin-bottom: -1px;
		padding-top: 13%;
		clip-path: polygon(0% 0%, 0% 100%, 51% 100%);
	}

	#proposal>div {
		position: relative;
		width: 86.6%;
		margin: auto;
		padding-top: 50px;
	}

	#proposal p.ttl {
		width: 73%;
		margin-inline: auto;
		transform: translateX(0.2vw);
	}

	#proposal ul {
		display: flex;
		flex-direction: column;
		max-width: 375px;
		width: 100%;
		margin: 43px auto 0;
		background-color: var(--color_white);
	}

	#proposal ul li {
		justify-content: unset;
		width: 100%;
		height: 98px;
	}

	#proposal ul li.t3 {
		height: 118px;
	}

	#proposal ul li.t1::before {
		top: 0;
		bottom: 0;
		left: 38px;
		width: 50px;
		margin: auto;
	}

	#proposal ul li.t2::before {
		top: 0;
		bottom: 0;
		left: 38px;
		width: 50px;
		margin: auto;
	}

	#proposal ul li.t2::after {
		content: '';
		display: block;
		position: absolute;
		left: 20px;
		width: 87.8%;
		height: 100%;
		border-right: none;
		border-left: none;
		border-top: 1px solid var(--color_sub2);
		border-bottom: 1px solid var(--color_sub2);
	}

	#proposal ul li.t3::before {
		top: 0;
		bottom: 0;
		left: 38px;
		width: 50px;
		margin: auto;
	}

	#proposal ul li.t1 img {
		position: absolute;
		left: 112px;
		width: 143px;
		transform: translateX(0) translateY(1vw);
	}

	#proposal ul li.t2 img {
		position: absolute;
		left: 112px;
		width: 172px;
		transform: translateX(0) translateY(0.3vw);
	}

	#proposal ul li.t3 img {
		position: absolute;
		left: 112px;
		width: 136px;
		transform: translateX(0) translateY(-0.3vw);
	}

	#proposal p.t4 {
		width: 90.3%;
		padding-block: 38px 79px;
		margin-inline: auto;
	}
}

/*----------------------------------------
	strength
-----------------------------------------*/
#strength {
	display: flex;
	flex-direction: column;
	gap: min(400px, 26.1vw);
	position: relative;
	max-width: 1299px;
	width: 84.79%;
	margin: min(15.66vw, 240px) auto 0;
	padding-block-end: min(302px, 19.7vw);
}

/* sp */
@media screen and (max-width: 768px) {
	#strength {
		gap: unset;
		width: 86.9%;
		margin: 76px auto 0;
		padding-block-end: 75px;
	}
}

#strength_bg {
	z-index: -1;
	position: fixed;
	inset: 0;
	width: min(78.3%, 1200px);
	height: 70vh;
	margin: auto;
	background: var(--color_white) url(../img/strength_bg_pc.webp) repeat-y center top;
	background-size: cover;
	opacity: 0;
	transition: opacity 0.5s ease-in;
}

#strength_bg.active {
	opacity: 1;
	transition: opacity 0.5s ease-out;
}

/* sp */
@media screen and (max-width: 768px) {
	#strength_bg {
		display: none;
	}
}

#strength_head {
	z-index: 101;
	position: sticky;
	top: 16dvh;
	width: 100%;
	margin: auto;
	opacity: 0;
	transition: opacity 0.3s ease-in;
}

#strength_head.active {
	opacity: 1;
	transition: opacity 0.3s ease-out;
}

/* sp */
@media screen and (max-width: 768px) {
	#strength_head {
		display: flex;
		justify-content: center;
		position: static;
		width: 100%;
		margin: auto;
		opacity: 1;
	}
}

#strength h1#strength_ttl {
	top: 0;
	left: 0;
	width: min(25vw, 384px);
	transform: translate(min(-0.45vw, -7px), min(-3.59vw, -55px));
}

/* sp */
@media screen and (max-width: 768px) {
	#strength h1#strength_ttl {
		width: 64.3%;
		transform: unset;
	}
}

#strength #strength_nums {
	position: absolute;
	top: 0;
	right: 0;
	width: min(238px, 15.53vw);
	height: min(146px, 9.53vw);
	transform: translate(min(-67px, -4.37vw), min(-69px, -4.5vw));
}

#strength #strength_nums span {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	width: auto;
	height: 100%;
	opacity: 0;
	transition: opacity 0.3s ease-out delay 0.3s;
}

#strength #strength_nums span.active {
	opacity: 1;
	transition: opacity 0.3s ease-out;
}

#strength #dots {
	z-index: 102;
	display: none;
	justify-content: space-between;
	align-items: center;
	flex-direction: column;
	gap: min(10px, 0.65vw);
	position: absolute;
	top: min(20px, 1.3vw);
	right: min(24px, 1.57vw);
	width: min(10px, 0.65vw);
	height: fit-content;
}

#strength #dots li {
	width: min(10px, 0.65vw);
	height: min(10px, 0.65vw);
	background-color: #F5F2E8;
	border-radius: 50%;
}

#strength #dots li.active {
	background-color: var(--color_primary);
}

/* sp */
@media screen and (max-width: 768px) {
	#strength #dots {
		display: none;
	}
}

/* slides */
#strength .slides {
	z-index: 100;
	position: relative;
	height: fit-content;
}

#strength .slides.locked {
	position: sticky;
	top: min(194px, 12.66vw);
}

/*#strength .slide+.slide {
	margin-block-start: 100dvh;
}*/

#strength .slide {
	display: grid;
	grid-template-columns: 1fr min(500px, 40.5%);
	align-items: end;
	gap: min(3.2vw, 50px);
	height: fit-content;
	letter-spacing: 0.1em;
}

#strength .slide>figure {
	position: sticky;
    bottom: 5%;
	opacity: 0;
	scale: 0.95;
	transition: all 0.3s ease-out;
}

#strength .slide>figure.active {
	opacity: 1;
	scale: 1;
	transition: all 0.5s ease-out;
}

/* sp */
@media screen and (max-width: 768px) {
	#strength .slide {
		grid-template-columns: 1fr;
		background: var(--color_white) url(../img/strength_bg_sp.webp) no-repeat center top 20px;
		background-size: 90% auto;
	}
}

#strength .slide .slide_ttl {
	color: var(--color_primary);
	font-size: var(--font-size32);
	line-height: 1.45;
}

#strength .slide .slide_ttl+p {
	font-size: var(--font-size16);
	line-height: 1.9;
}

@media screen and (max-width: 1100px) {
	#strength .slide .slide_ttl {
		font-size: var(--font-size28);
	}

	#strength .slide .slide_ttl+p {
		font-size: var(--font-size14);
	}
}

/* sp */
@media screen and (max-width: 768px) {
	#strength .slide .slide_ttl {
		position: relative;
		width: 100%;
		font-size: var(--font-size24);
	}

	#strength .slide .slide_ttl::after {
		content: '';
		display: block;
		position: absolute;
		margin: 0;
	}

	#strength .slide .slide_ttl+p {
		font-size: var(--font-size13);
	}
}

/* step1 */
#strength .slide1 .slide_ttl+p {
	margin-block-start: min(18px, 1.17vw);
}

#strength .slide1 dl {
	width: min(749px, 48.8vw);
	border: 1px solid var(--color_sub2);
	margin-block-start: min(36px, 2.3vw);
	padding: min(20px, 1.3vw) min(30px, 1.96vw) min(30px, 1.96vw);
	background-color: var(--color_white);
}

#strength .slide1 dl dt {
	color: var(--color_primary);
	font-size: var(--font-size22);
	font-weight: 600;
}

#strength .slide1 dl dd {
	margin-block-start: min(2px, 0.13vw);
	font-size: var(--font-size16);
	line-height: 1.9;
}

#strength .slide1 dl dd+dt {
	margin-block-start: min(36px, 2.35vw);
}

@media screen and (max-width: 1100px) {
	#strength .slide1 dl dt {
		font-size: var(--font-size20);
	}

	#strength .slide1 dl dd {
		font-size: var(--font-size14);
	}
}

/* sp */
@media screen and (max-width: 768px) {
	#strength .slide1 {
		margin-block-start: 43px;
	}

	#strength .slide1 .slide_ttl::after {
		top: 5px;
		right: -10px;
		width: 90px;
		height: 60px;
		background: transparent url(../img/strength_num01.svg) no-repeat center center;
		background-size: contain;
	}

	#strength .slide1 .slide_ttl+p {
		margin-block-start: 20px;
		line-height: 1.5;
	}

	#strength .slide1 dl {
		width: 100%;
		margin-block-start: 20px;
		padding: 10px 15px;
	}

	#strength .slide1 dl dt {
		font-size: var(--font-size18);
		line-height: 1.5;
	}

	#strength .slide1 dl dd {
		margin-block-start: 5px;
		font-size: var(--font-size13);
		letter-spacing: 0.1em;
		line-height: 1.5;
	}

	#strength .slide1 dl dd+dt {
		margin-block-start: 20px;
	}

	#strength .slide1 .p1-1 {
		display: none;
	}
}

/* step2 */
#strength .slide2 .slide_ttl+p {
	margin-block-start: min(28px, 1.83vw);
}

#strength .slide2 ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: repeat(2, 1fr);
	gap: 13px;
	width: min(650px, 42.43vw);
	margin-block-start: min(36px, 2.35vw);
}

/* sp */
@media screen and (max-width: 768px) {
	#strength .slide2 {
		margin-block-start: 77px;
	}

	#strength .slide2 .slide_ttl::after {
		top: 7px;
		right: -8px;
		width: 100px;
		height: 58px;
		background: transparent url(../img/strength_num02.svg) no-repeat center center;
		background-size: contain;
	}

	#strength .slide2 .slide_ttl+p {
		margin-block-start: 20px;
		line-height: 1.5;
	}

	#strength .slide2 ul {
		gap: 20px;
		width: 100%;
		margin-block-start: 20px;
	}

	#strength .slide2 .p2-1 {
		display: none;
	}
}

/* step3 */
#strength .slide3 .slide_ttl+p {
	margin-block-start: min(28px, 1.83vw);
}

#strength .slide3 ul {
	width: min(749px, 48.8vw);
	border: 1px solid var(--color_sub2);
	margin-block-start: min(36px, 2.3vw);
	padding: min(30px, 1.96vw);
	background-color: var(--color_white);
}

#strength .slide3 ul li {
	display: grid;
	grid-template-columns: min(194px, 12.66vw) auto;
	align-items: center;
	gap: 20px;
}

#strength .slide3 ul li:nth-of-type(n+2) {
	margin-block-start: min(1.17vw, 18px);
}

#strength .slide3 dl dt {
	font-size: var(--font-size24);
	line-height: 1.45;
}

#strength .slide3 dl dd {
	margin-block-start: min(10px, 0.65vw);
	font-size: var(--font-size14);
	line-height: 1.5;
}

@media screen and (max-width: 1100px) {
	#strength .slide3 dl dt {
		font-size: var(--font-size18);
	}

	#strength .slide3 dl dd {
		font-size: var(--font-size13);
	}
}

/* sp */
@media screen and (max-width: 768px) {
	#strength .slide3 {
		margin-block-start: 77px;
	}

	#strength .slide3 .slide_ttl::after {
		top: 5px;
		right: -8px;
		width: 100px;
		height: 58px;
		background: transparent url(../img/strength_num03.svg) no-repeat center center;
		background-size: contain;
	}

	#strength .slide3 .slide_ttl+p {
		margin-block-start: 20px;
		line-height: 1.5;
	}

	#strength .slide3 ul  {
		width: 100%;
		margin-block-start: min(19px, 56vw);
		padding: 5.3vw 4vw 6.66vw 5.3vw;
	}

	#strength .slide3 ul li {
		display: grid;
		grid-template-columns: 1fr;
		align-items: center;
		gap: 6px;
	}

	#strength .slide3 ul li:nth-of-type(n+2) {
		margin-block-start: 26px;
	}

	#strength .slide3 dl dt {
		font-size: var(--font-size18);
	}

	#strength .slide3 dl dd {
		margin-block-start: 4px;
		font-size: var(--font-size12);
	}

	#strength .slide3 .p3-1 {
		display: none;
	}
}

/* step4 */
#strength .slide4 .slide_ttl+p {
	margin-block-start: min(28px, 1.83vw);
}

#strength .slide4 .p4-1 {
	margin-block-start: min(49px, 3.2vw);
	/*transform: translateX(min(8px, 0.52vw)) scale(1.03);*/
}

/*@media screen and (min-width: 769px) and (max-height: 600px) {
	#strength .slide4 .p4-1 {
		max-height: 485px;
		height: 70vh;
	}

	#strength .slide4 .p4-1 img {
		width: auto;
		height: 100%;
	}
}*/

/* sp */
@media screen and (max-width: 768px) {
	#strength .slide4 {
		margin-block-start: 77px;
		padding-block-end: 30px;
	}

	#strength .slide4 .slide_ttl::after {
		top: 7px;
		right: -10px;
		width: 100px;
		height: 58px;
		background: transparent url(../img/strength_num04.svg) no-repeat center center;
		background-size: contain;
	}

	#strength .slide4 .slide_ttl+p {
		margin-block-start: 24px;
		line-height: 1.5;
	}

	#strength .slide4 .p4-1 {
		margin-block-start: 30px;
		transform: translateX(3px) scale(1.07);
	}

	#strength .slide4 .p4-2 {
		display: none;
	}
}

/*----------------------------------------
	Owners Voice
-----------------------------------------*/
#ownersVoice {
	background: var(--color_gradation);
	color: var(--color_text);
	padding-block: min(6.527vw, 100px);
}

#ownersVoice h1 {
	color: var(--color_white);
	text-align: center;
	line-height: 1.5;
}

#ownersVoice h1 span {
	display: block;
}

#ownersVoice h1 span:nth-child(1) {
	font-size: var(--font-size20);
}

#ownersVoice h1 span:nth-child(2) {
	font-size: var(--font-size40);
}

#ownersVoice .box {
	width: min(78%, 1200px);
	margin-block-start: min(4.569vw, 70px);
	margin-inline: auto;
	display: grid;
	grid-template-columns: repeat(2, minmax(auto, 486px));
    column-gap: min(6.527vw, 100px);
    justify-content: space-between;
}

#ownersVoice .item {
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 4;
}

#ownersVoice .item > p:nth-of-type(1) {
	font-size: var(--font-size32);
	color: var(--color_primary2);
	letter-spacing: 0.05em;
	text-align: center;
	line-height: 1.5;
}

#ownersVoice .item > p:nth-of-type(1) span {
	font-size: var(--font-size14);
	letter-spacing: 0.05em;
	display: block;
}

/* オーナー様ご要望 */
#ownersVoice .item .owner {
	margin-block-start: min(1.958vw, 30px);
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: min(1.305vw, 20px);
}

#ownersVoice .item .owner::before {
	content: "";
	display: block;
	width: 46px;
	height: 61px;
	background-image: url(../img/icon_owner.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	margin-block: auto 0;
}

#ownersVoice .item .owner p {
	position: relative;
	background-color: var(--color_white);
	padding: min(0.653vw, 10px) min(1.175vw, 18px);
	margin-block-end: 30px;
}

#ownersVoice .item .owner {
	--line: 17px;
	--none: 20px;
	--left: 43px;
	--right: calc(100% - (var(--left) + var(--none)));
	--line-position: calc(var(--left) + (var(--none) / 2) - (var(--line) / 2))
}

#ownersVoice .item .owner p span:nth-child(2)::before {
	content: "";
	display: block;
	position: absolute;
	left: var(--line-position);
	top: 100%;
	height: var(--line);
	width: 1px;
	background-color: var(--color_white);
	transform: rotate(45deg) translateY(-4px);
}

#ownersVoice .item .owner p span {
	display: block;
	letter-spacing: 0.05em;
}

#ownersVoice .item .owner p span:nth-of-type(1) {
	font-size: var(--font-size16);
	font-weight: 600;
	display: flex;
	align-items: center;
}

#ownersVoice .item .owner p span:nth-of-type(2) {
	font-size: var(--font-size18);
	line-height: 1.88;
}

#ownersVoice .item .owner p span:nth-of-type(1)::before,
#ownersVoice .item .owner p span:nth-of-type(1)::after {
	content: "";
	display: block;
	height: 1.4em;
	aspect-ratio: 5 / 17;
	background-image: url(../img/icon_arrow.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

#ownersVoice .item .owner p span:nth-of-type(1)::before {
	margin-inline-end: 0.5em;
}

#ownersVoice .item .owner p span:nth-of-type(1)::after {
	margin-inline-start: 0.5em;
	transform: rotate(180deg);
}

/* ご提案・実施内容 */
#ownersVoice .item .propose {
	margin-block-start: min(1.305vw, 20px);
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: 1fr auto;
}

#ownersVoice .item .propose::after {
	content: "";
	display: block;
	margin-block-start: 12px;
	margin-inline: auto 5px;
	width: 46px;
	height: 61px;
	background-image: url(../img/icon_man.svg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

#ownersVoice .item .propose p {
	position: relative;
	background-color: var(--color_white);
	padding: min(1.175vw, 18px);
}

#ownersVoice .item .propose {
	--line: 17px;
	--none: 30px;
	--right: 55px;
	--left: calc(100% - (var(--right) + var(--none)));
	--line-position: calc(var(--left) + (var(--none) / 2) + (var(--line) / 2))
}

#ownersVoice .item .propose p span:nth-child(2)::before {
	content: "";
	display: block;
	position: absolute;
	left: var(--line-position);
	top: 100%;
	height: var(--line);
	width: 1px;
	background-color: var(--color_white);
	transform: rotate(-45deg) translateY(-4px);
}

#ownersVoice .item .propose p span {
	display: block;
	letter-spacing: 0.05em;
}

#ownersVoice .item .propose p span:nth-of-type(1) {
	font-size: var(--font-size16);
	font-weight: 600;
	display: flex;
	align-items: center;
}

#ownersVoice .item .propose p span:nth-of-type(2) {
	font-size: var(--font-size18);
	line-height: 1.88;
	margin-block-start: min(0.457vw, 7px);
}

#ownersVoice .item .propose p span:nth-of-type(1)::before,
#ownersVoice .item .propose p span:nth-of-type(1)::after {
	content: "";
	display: block;
	height: 1.4em;
	aspect-ratio: 5 / 17;
	background-image: url(../img/icon_arrow.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

#ownersVoice .item .propose p span:nth-of-type(1)::before {
	margin-inline-end: 0.5em;
}

#ownersVoice .item .propose p span:nth-of-type(1)::after {
	margin-inline-start: 0.5em;
	transform: rotate(180deg);
}

/* ご評価ポイント */
#ownersVoice .item .point {
	background-color: #FFF2BE;
	margin-block-start: min(1.958vw, 30px);
	padding: min(1.175vw, 18px);
}

#ownersVoice .item .point p {
	color: var(--color_text);
}

#ownersVoice .item .point p span {
	display: block;
	letter-spacing: 0.05em;
}

#ownersVoice .item .point p span:nth-of-type(1) {
	font-size: var(--font-size14);
	font-weight: 600;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}

#ownersVoice .item .point p span:nth-of-type(2) {
	font-size: var(--font-size16);
	line-height: 1.88;
	margin-block-start: min(0.457vw, 7px);
}

#ownersVoice .item .point p span:nth-of-type(1)::before,
#ownersVoice .item .point p span:nth-of-type(1)::after {
	content: "";
	display: block;
	height: 1.4em;
	aspect-ratio: 5 / 17;
	background-image: url(../img/icon_arrow02.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

#ownersVoice .item .point p span:nth-of-type(1)::before {
	margin-inline-end: 0.5em;
}

#ownersVoice .item .point p span:nth-of-type(1)::after {
	margin-inline-start: 0.5em;
	transform: rotate(180deg);
}

/* sp */
@media screen and (max-width: 768px) {
	#ownersVoice {
		padding-block: min(20vw, 75px);
	}

	#ownersVoice h1 {
		width: 87%;
		margin-inline: auto;
	}

	#ownersVoice h1 span:nth-child(1) {
		font-size: var(--font-size12);
	}

	#ownersVoice h1 span:nth-child(2) {
		font-size: var(--font-size30);
	}

	#ownersVoice .box {
		grid-template-columns: 1fr;
		gap: min(10.667vw, 40px);
		width: 87%;
		margin-block-start: min(10.667vw, 40px);
	}

	#ownersVoice .item {
		display: block;
	}

	#ownersVoice .item > p:nth-of-type(1) {
		font-size: var(--font-size24);
		text-align: left;
		padding-inline-start: min(2.667vw, 10px);
	}

	#ownersVoice .item > p:nth-of-type(1) span {
		font-size: var(--font-size10);
	}

	#ownersVoice .item:nth-of-type(2) > p:nth-of-type(1) {
		text-align: center;
		padding-inline-start: 0;
		letter-spacing: 0.02em;
	}

	/* オーナー様ご要望 */
	#ownersVoice .item .owner {
		margin-block-start: min(6.667vw, 25px);
		column-gap: min(2.667vw, 10px);
	}

	#ownersVoice .item .owner p {
		padding: min(2.667vw, 10px) min(2.667vw, 10px);
		margin-block-end: min(8vw, 30px);
	}

	#ownersVoice .item .owner::before {
		width: 35px;
		height: 45px;
		margin-inline-start: min(4vw, 15px);
	}

	#ownersVoice .item .owner {
		--left: 30px;
		--none: 20px;
	}

	#ownersVoice .item .owner p span:nth-child(2)::before {
		transform: rotate(25deg) translateY(0);
	}

	#ownersVoice .item .propose p span:nth-child(2)::before {
		content: "";
		display: block;
		position: absolute;
		left: var(--line-position);
		top: 100%;
		height: var(--line);
		width: 1px;
		background-color: var(--color_white);
		transform: rotate(-45deg) translateY(-2px);
	}

	#ownersVoice .item .owner p span:nth-of-type(1) {
		font-size: var(--font-size14);
		line-height: 1.25;
	}

	#ownersVoice .item .owner p span:nth-of-type(2) {
		font-size: var(--font-size15);
		line-height: 1.5;
		margin-block-start: min(1.333vw, 5px);
	}

	/* ご提案・実施内容 */
	#ownersVoice .item .propose {
		margin-block-start: min(7.467vw, 28px);
		column-gap: min(2.667vw, 10px);
	}

	#ownersVoice .item .propose p {
		padding: min(2.667vw, 10px) min(4vw, 15px);
	}

	#ownersVoice .item .propose::after {
		width: 35px;
		height: 45px;
	}

	#ownersVoice .item .propose {
		--none: 20px;
	}

	#ownersVoice .item .propose p span:nth-child(2)::before {
		transform: rotate(-25deg) translateY(-2px);
	}

	#ownersVoice .item .propose p span:nth-of-type(1) {
		font-size: var(--font-size16);
		line-height: 1.5;
	}

	#ownersVoice .item .propose p span:nth-of-type(2) {
		font-size: var(--font-size15);
		line-height: 1.5;
		margin-block-start: min(1.333vw, 5px);
	}

	/* ご評価ポイント */
	#ownersVoice .item .point {
		margin-block-start: min(7.467vw, 28px);
		padding: min(2.667vw, 10px) min(4vw, 15px);
	}

	#ownersVoice .item .point p span:nth-of-type(1) {
		font-size: var(--font-size16);
	}

	#ownersVoice .item .point p span:nth-of-type(2) {
		font-size: var(--font-size15);
		line-height: 1.5;
	}
}

/* もっと見る */
#ownersVoice .viewMore {
	display: none;
}

/* sp */
@media screen and (max-width: 768px) {
	#ownersVoice {
		position: relative;
	}
	
	#ownersVoice .accordion-box {
		display: grid;
		grid-template-rows: min(145.333vw, 545px);
		transition: grid-template-rows 0.3s;
	}

	#ownersVoice .accordion-box.is-show {
		grid-template-rows: 100%;
		transition: grid-template-rows 0.3s;
	}

	#ownersVoice .accordion-inner {
		overflow: hidden;
	}

	#ownersVoice .viewMore {
		position: absolute;
		bottom: 0;
		left: 0;
		display: flex;
		justify-content: center;
		width: 100%;
		padding-block-end: min(20vw, 75px);
	}

	#ownersVoice .viewMore::before {
		content: "";
		display: block;
		width: 100%;
		height: 150%;
		background: linear-gradient(180deg, rgba(36, 49, 74, 0) 0%, rgba(36, 49, 74, 0.3) 10%, rgba(36, 49, 74, 0.8) 30%, rgba(36, 49, 74, 1) 50%);
		position: absolute;
		bottom: 0;
		z-index: 1;
	}

	#ownersVoice .accordion-box.is-show .viewMore {
		display: none;
	}

	#ownersVoice .viewMore button {
		color: var(--color_white);
		font-size: var(--font-size13);
		letter-spacing: 0.05em;
		border-bottom: 1px solid var(--color_white);
		width: min(60vw, 225px);
		padding: min(2.667vw, 10px);
		position: relative;
		z-index: 2;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 1em;
	}

	#ownersVoice .viewMore button::after {
		content: "";
		display: block;
		height: 0.75em;
		aspect-ratio: 14 / 7;
		background-image: url(../img/icon_arrow_down02.svg);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center;
	}
}
/*----------------------------------------
	Service
-----------------------------------------*/
#service {
	padding-block: min(4.569vw, 70px) min(6.527vw, 100px);
	background-color: var(--color_white);
	background-image: url(../img/seervice_bg_pc.webp);
	background-repeat: repeat;
	background-size: 100% auto;
}

#service h1 {
	text-align: center;
	line-height: 1.5;
}

#service h1 span {
	display: block;
}

#service h1 span:nth-child(1) {
	font-size: var(--font-size20);
}

#service h1 span:nth-child(2) {
	font-size: var(--font-size40);
}

#service h1 + p {
	font-size: var(--font-size20);
	text-align: center;
	line-height: 1.5;
	margin-block-start: min(1.632vw, 25px);
}

#service > div {
	width: min(78%, 1200px);
	margin-inline: auto;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: min(3.264vw, 50px) min(2.611vw, 40px);
	margin-block-start: min(4.243vw, 65px);
}

#service .item {
	background-color: var(--color_white);
}

#service div.item {
	padding: min(3.264vw, 50px);
}

#service .item:nth-child(1) {
	grid-column: 1 / -1;
}

#service .item:nth-child(2) {
	grid-column: 1 / -1;
}

#service .item:nth-child(3) {
	grid-column: 1 / 2;
}

#service .item:nth-child(4) {
	grid-column: 2 / 3;
}

/* カード大 */
#service div.item > p:nth-child(1) {
	font-size: var(--font-size32);
	color: var(--color_primary);
	letter-spacing: 0.05em;
	line-height: 1.5;
}

#service div.item > p:nth-child(2) {
	font-size: var(--font-size16);
	letter-spacing: 0.05em;
	line-height: 1.88;
	margin-block-start: min(0.653vw, 10px);
}

#service div.item > p:nth-child(3) {
	display: grid;
	grid-template-columns: 174px minmax(auto, 634px);
	margin-block-start: min(1.958vw, 30px);
}

#service div.item > p:nth-child(3) span {
	font-size: var(--font-size14);
	line-height: 2.14;
	letter-spacing: 0.05em;
}

#service div.item > p:nth-child(3) span:nth-child(1) {
	background-color: var(--color_red);
	color: var(--color_white);
	padding-inline: min(3.264vw, 50px);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
}

#service div.item > p:nth-child(3) span:nth-child(2) {
	background-color: var(--color_lightgray);
	padding-inline: min(1.958vw, 30px);
	text-align: left;
	display: block;
}

#service div.item img {
	margin-block-start: min(2.611vw, 40px);
}

#service div.item:nth-of-type(2) img {
	margin-block: min(3.264vw, 50px) min(4.569vw, 70px);
}

/* カード小 */
#service dl.item  {
	border-radius: 3px;
	overflow: hidden;
}

#service .item dt {
	color: var(--color_white);
	padding: min(0.653vw, 10px);
	text-align: center;
	font-size: var(--font-size20);
	line-height: 1.5;
	letter-spacing: 0.05em;
	font-weight: 600;
}

#service .item:nth-child(3) dt {
	background-color: var(--color_red);
}

#service .item:nth-child(4) dt {
	background-color: var(--color_green);
}

#service .item dd {
	position: relative;
	padding-inline-start: min(1.958vw, 30px);
}

#service .item dd:nth-of-type(1) {
	margin: min(2.611vw, 40px) min(1.958vw, 30px) min(1.958vw, 30px);
}

#service .item dd:nth-of-type(2) {
	margin: 0 min(1.958vw, 30px) min(2.611vw, 40px);
}

#service .item:nth-child(3) dd::before {
	content: "";
	display: block;
	height: 100%;
	width: 3px;
	background-color: var(--color_red);
	position: absolute;
	left: 0;
	top: 0;
}

#service .item:nth-child(4) dd::before {
	content: "";
	display: block;
	height: 100%;
	width: 3px;
	background-color: var(--color_green);
	position: absolute;
	left: 0;
	top: 0;
}

#service .item:nth-child(3) dd > p:nth-child(1) {
	color: var(--color_red);
}

#service .item:nth-child(4) dd > p:nth-child(1) {
	color: var(--color_green);
}

#service .item dd > p:nth-child(1) {
	font-size: var(--font-size18);
	line-height: 1.67;
	letter-spacing: 0.05em;
	font-weight: 600;
}

#service .item dd > p:nth-child(1) span {
	font-size: var(--font-size16);
}

#service .item dd > p:nth-child(2) {
	font-size: var(--font-size16);
	line-height: 1.88;
	letter-spacing: 0.05em;
}

#service .item dd > p:nth-child(2) span {
	display: block;
}

#service .item dd > p:nth-child(3) {
	font-size: var(--font-size12);
	line-height: 1.5;
	letter-spacing: 0.05em;
	margin-block-start: min(0.653vw, 10px);
	text-indent: -1em;
	padding-inline-start: 1em;
}

#service .item dd > p:nth-child(3) > span {
	display: block;
	text-indent: 0;
}

#service .item dd > p:nth-child(3) > span span {
	display: inline-block;
	margin-inline-end: 1em;
}

/* sp */
@media screen and (max-width: 768px) {
	#service {
		background-image: url(../img/seervice_bg_sp.webp);
		padding-block: min(20vw, 75px);
	}

	#service h1,
	#service h1 + p {
		width: 87%;
		margin-inline: auto;
	}

	#service h1 + p {
		margin-block-start: min(2.667vw, 10px);
	}

	#service h1 + p span {
		display: inline-block;
	}

	#service h1 span:nth-child(1) {
		font-size: var(--font-size12);
	}

	#service h1 span:nth-child(2) {
		font-size: var(--font-size30);
	}

	#service h1 + p {
		font-size: var(--font-size13);
	}

	#service > div {
		grid-template-columns: 1fr;
		gap: min(8vw, 30px);
		width: 87%;
		margin-block-start: min(10.667vw, 40px);
	}

	#service div.item {
		padding: min(7.467vw, 28px) min(6.933vw, 26px) min(5.333vw, 20px);
		overflow: hidden;
	}

	#service .item:nth-child(4) {
		grid-column: 1 / -1;
	}

	#service div.item > p {
		text-align: center;
	}

	#service div.item figure {
		position: relative;
		overflow-x: scroll;
	}

	#service div.item img {
		width: auto;
		height: 100%;
		max-height: min(46.667vw, 175px);
		margin-block: min(6.4vw, 24px) min(4vw, 15px);
	}

	#service div.item:nth-of-type(2) img {
		margin-block: min(6.4vw, 24px) min(4vw, 15px);
	}

	#service div.item figure::before {
		content: "";
		display: block;
		position: absolute;
		top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        margin: auto;
		width: min(17.333vw, 65px);
		height: min(17.333vw, 65px);
		background-image: url(../img/icon_swipe.svg);
		background-position: center;
		background-size: cover;
		opacity: 1;
		animation: swipeAnimation01 2s ease-in-out forwards infinite;
	}

	#service div.item figure.is-active::before {
		animation: swipeAnimation02 2s ease-in-out forwards;
	}

	/* スワイプアニメ */
	@keyframes swipeAnimation01 {
		0% {
			transform: translateX(0);
		}
		50% {
			transform: translateX(10%);
		}
		100% {
			transform: translateX(0);
		}
	}

	@keyframes swipeAnimation02 {
		0% {
			transform: translateX(0);
		}
		50% {
			transform: translateX(10%);
			opacity: 1;
		}
		100% {
			transform: translateX(0);
			opacity: 0;
		}
	}

	/* カード大 */
	#service div.item > p:nth-child(1) {
		font-size: var(--font-size24);
	}

	#service div.item > p:nth-child(2) {
		font-size: var(--font-size13);
		line-height: 1.5;
	}

	#service div.item > p:nth-child(2) span {
		display: inline-block;
	}

	#service div.item > p:nth-child(3) {
		grid-template-columns: auto 1fr;
		margin-block-start: min(6.4vw, 24px);
	}
	
	#service div.item > p:nth-child(3) span {
		font-size: var(--font-size10);
	}
	
	#service div.item > p:nth-child(3) span:nth-child(1) {
		padding-inline: min(2.667vw, 10px);
	}

	#service div.item > p:nth-child(3) span:nth-child(2) {
		padding: min(1.333vw, 5px) min(2.667vw, 10px);
		line-height: 1.5;
	}

	/* カード小 */
	#service .item dt {
		font-size: var(--font-size15);
		line-height: 1;
		padding-block: min(3.2vw, 12px);
	}

	#service .item dd {
		padding-inline-start: min(4vw, 15px);
		padding-block: min(1.333vw, 5px);
	}

	#service .item dd:nth-of-type(1) {
		margin: min(8vw, 30px) min(4.533vw, 17px) min(6.667vw, 25px);
	}

	#service .item dd:nth-of-type(2) {
		margin: 0 min(4.533vw, 17px) min(6.667vw, 25px);
	}

	#service .item dd > p:nth-child(1) {
		font-size: var(--font-size16);
		line-height: 1.33;
	}

	#service .item dd > p:nth-child(1) span {
		font-size: var(--font-size13);
	}

	#service .item dd > p:nth-child(2) {
		font-size: var(--font-size13);
		margin-block-start: min(2.667vw, 10px);
	}

	#service .item dd > p:nth-child(3) {
		font-size: var(--font-size10);
		margin-block-start: min(2.667vw, 10px);
	}
}

/*----------------------------------------
	Support
-----------------------------------------*/
#support {
	background: var(--color_gradation);
	color: var(--color_white);
	padding-block: min(6.527vw, 100px);
}

#support h1 {
	color: var(--color_white);
	text-align: center;
	line-height: 1.5;
}

#support h1 span {
	display: block;
}

#support h1 span:nth-child(1) {
	font-size: var(--font-size20);
}

#support h1 span:nth-child(2) {
	font-size: var(--font-size40);
}

#support h1 + p {
	font-size: var(--font-size20);
	text-align: center;
	line-height: 1.5;
	margin-block-start: min(2.611vw, 40px);
}

#support > div {
	width: min(78%, 1200px);
	margin-inline: auto;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	margin-block-start: min(6.527vw, 100px);
	gap: min(2.611vw, 40px);
}

#support .item {
	position: relative;
	background-color: var(--color_white);
	display: grid;
	grid-template-rows: auto auto 1fr;
	padding: min(3.264vw, 50px) min(1.958vw, 30px) min(1.958vw, 30px);
}

#support .item:nth-of-type(2) {
	padding-block-end: min(3.264vw, 50px);
}

#support .item::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	width: min(9.791vw, 150px);
	height: min(9.791vw, 150px);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

#support .item:nth-of-type(1)::before {
	background-image: url(../img/support_num01.svg);
}

#support .item:nth-of-type(2)::before {
	background-image: url(../img/support_num02.svg);
}

#support .item:nth-of-type(3)::before {
	background-image: url(../img/support_num03.svg);
}

#support .item > p:nth-child(1) {
	font-size: var(--font-size32);
	letter-spacing: 0.05em;
	color: var(--color_primary);
	padding-inline-end: min(3.264vw, 50px);
	line-height: 1.5;
}

#support .item > p:nth-child(1) span {
	display: inline-block;
}

#support .item > p:nth-child(2) {
	color: var(--color_text);
	font-size: var(--font-size16);
	line-height: 1.88;
	letter-spacing: 0.05em;
	margin-block-start: min(0.979vw, 15px);
}

#support .item > p:nth-child(2) span {
	display: block;
	font-size: var(--font-size12);
	line-height: 1.5;
	margin-block-start: min(0.326vw, 5px);
}

#support .item > figure {
	margin-block-start: min(1.958vw, 30px);
	display: flex;
	align-items: center;
}

#support .item > figure picture {
	display: block;
	width: 100%;
}

#support .item:nth-of-type(3) {
	grid-column: 1 / -1;
}

#support .item:nth-of-type(3) ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: min(3.003vw, 46px);
	margin-block-start: min(1.958vw, 30px);
}

#support .item:nth-of-type(3) figcaption {
	background-color: var(--color_darkblue);
	text-align: center;
	font-size: var(--font-size24);
	letter-spacing: 0.05em;
}

/* sp */
@media screen and (max-width: 768px) {
	#support {
		padding-block: min(20vw, 75px);
	}

	#support h1,
	#support h1 + p {
		width: 87%;
		margin-inline: auto;
	}

	#support h1 + p span {
		display: inline-block;
	}

	#support h1 span:nth-child(1) {
		font-size: var(--font-size12);
	}

	#support h1 span:nth-child(2) {
		font-size: var(--font-size30);
	}

	#support h1 + p {
		font-size: var(--font-size13);
	}

	#support > div {
		grid-template-columns: 1fr;
		gap: min(6.667vw, 25px);
		margin-block-start: min(10.667vw, 40px);
		width: 87%;
	}

	#support .item,
	#support .item:nth-of-type(2) {
		padding: min(4vw, 15px);
	}

	#support .item::before {
		width: min(29.333vw, 110px);
		height: min(29.333vw, 110px);
	}

	#support .item > p:nth-child(1) {
		font-size: var(--font-size24);
		padding-inline-end: min(17.333vw, 65px);
		line-height: 1.33;
	}

	#support .item > p:nth-child(2) {
		font-size: var(--font-size13);
		padding-inline-end: min(17.333vw, 65px);
		line-height: 1.5;
		margin-block-start: min(4.8vw, 18px);
	}

	#support .item > p:nth-child(2) span {
		font-size: var(--font-size10);
		margin-block-start: min(2.667vw, 10px);
	}

	#support .item > figure {
		margin-block-start: min(6.667vw, 25px)
	}

	#support .item:nth-of-type(3) ul {
		grid-template-columns: 1fr;
		margin-block-start: min(6.667vw, 25px);
		gap: min(4vw, 15px);
	}

	#support .item:nth-of-type(3) figcaption {
		font-size: var(--font-size16);
		line-height: 1;
		padding-block: min(3.2vw, 12px);
	}
}

/*----------------------------------------
	Q&A
-----------------------------------------*/
#qa {
	background: var(--color_white);
	padding-block: min(7.7vw, 118px) min(6.527vw, 100px);
}

#qa h1 {
	text-align: center;
	line-height: 1.4;
}

#qa h1 > span {
	display: block;
}

#qa h1 > span:nth-child(1) {
	font-size: var(--font-size20);
}

#qa h1 > span:nth-child(2) {
	font-size: var(--font-size40);
}

#qa h1 span > span {
	display: inline-block;
	margin-inline: 0.2em;
	font-size: var(--font-size14);
}

#qa > dl {
	width: min(78%, 1200px);
	margin-block-start: min(10.444vw, 160px);
	margin-inline: auto;
}

#qa > dl > div {
	margin-block-start: min(3.264vw, 50px);
	padding-block-end: min(0.522vw, 8px);
	border-bottom: 1px solid var(--color_text);
	transition: border-color 0.3s;
}

#qa > dl > div:has(.is-show) {
	border-color: transparent;
	transition: border-color 0.3s;
}

#qa > dl dt {
	font-size: var(--font-size18);
	letter-spacing: 0.05em;
	cursor: pointer;
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 12px;
}

#qa dt::after {
	content: "";
	display: block;
	width: 28px;
	height: 14px;
	background-image: url(../img/icon_arrow_down01.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin: auto 20px auto 0;
}

#qa dl > div:has(.is-show) dt::after {
	transform: rotate(-180deg);
}

#qa > dl dt::before {
	content: "Q";
	font-size: var(--font-size24);
	font-family: 'Lato', sans-serif;
	line-height: 1;
	margin-block: 0.25em auto;
}

#qa .accordion-box {
	font-size: var(--font-size18);
	letter-spacing: 0.05em;
	line-height: 1.5;
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.3s, padding 0.3s;
}

#qa .accordion-box.is-show {
	grid-template-rows: 1fr;
	padding-block-end: 0;
	transition: grid-template-rows 0.3s, padding 0.3s;
}

#qa .accordion-inner {
	overflow: hidden;
}

#qa .accordion-inner > div {
	background-color: var(--color_lightgray);
	margin-block-start: min(1.305vw, 20px);
	margin-inline-start: min(1.632vw, 25px);
	padding: min(1.958vw, 30px);
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: flex-start;
}

#qa .accordion-inner > div::before {
	content: "A";
	font-size: var(--font-size24);
	font-family: 'Lato', sans-serif;
	line-height: 1;
	margin-inline-end: min(0.783vw, 12px);
	color: var(--color_primary);
}

/* sp */
@media screen and (max-width: 768px) {
	#qa {
		padding-block: min(20vw, 75px);
	}

	#qa h1,
	#qa h1 + p {
		width: 87%;
		margin-inline: auto;
	}

	#qa h1 + p span {
		display: inline-block;
	}

	#qa h1 > span:nth-child(1) {
		font-size: var(--font-size12);
	}

	#qa h1 > span:nth-child(2) {
		font-size: var(--font-size30);
	}

	#qa h1 span > span {
		margin-inline: 0.2em;
		font-size: var(--font-size10);
	}

	#qa h1 + p {
		font-size: var(--font-size13);
	}

	#qa > dl {
		grid-template-columns: 1fr;
		gap: min(6.667vw, 25px);
		margin-block-start: min(10.667vw, 40px);
		width: 87%;
	}

	#qa > dl > div {
		margin-block-start: min(4vw, 15px);
		padding-block-end: min(4vw, 15px);
	}

	#qa > dl dt {
		font-size: var(--font-size14);
		line-height: 1.25;
		gap: min(1.6vw, 6px);
	}

	#qa > dl dt::before {
		font-size: var(--font-size16);
		margin-block-start: 0;
	}

	#qa > dl dt::after {
		width: 14px;
		height: 7px;
		margin-inline-end: 5px;
	}

	#qa .accordion-box {
		font-size: var(--font-size13);
	}

	#qa .accordion-inner > div {
		margin-block-start: min(4vw, 15px);
		margin-inline-start: min(3.733vw, 14px);
		padding: min(4.267vw, 16px);
		grid-template-columns: 1fr;
		gap: min(1.333vw, 5px);
	}

	#qa .accordion-inner > div::before {
		font-size: var(--font-size16);
		margin: 0;
	}
}

/*----------------------------------------
	Contact
-----------------------------------------*/
#contact {
	padding-block: min(3.916vw, 60px) min(6.527vw, 100px);
	background-color: var(--color_white);
	background-image: url(../img/seervice_bg_pc.webp);
	background-repeat: repeat;
	background-size: 100% auto;
}

#contact h1 {
	font-size: var(--font-size32);
	color: var(--color_primary);
	letter-spacing: 0.05em;
	line-height: 1.7;
	text-align: center;
}

#contact h1 + p {
	font-size: var(--font-size18);
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-align: center;
	margin-block-start: min(1.958vw, 30px);
}

#contact ul {
	width: min(78%, 1200px);
	margin-inline: auto;
	margin-block-start: min(3.264vw, 50px);
	display: grid;
	grid-template-columns: 52% 1fr;
	gap: min(3.916vw, 60px);
}

/* WEBお問い合わせ */
#contact li:nth-of-type(1) {
	background-color: var(--color_darkblue);
	color: var(--color_white);
	position: relative;
	margin-inline-start: min(3.068vw, 47px);
	transition: opacity 0.3s;
}

#contact li:nth-of-type(1) a {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: 15px;
	width: 100%;
	height: 100%;
	font-size: var(--font-size24);
	line-height: 1.5;
	text-align: center;
	padding: min(1.828vw, 28px) min(1.305vw, 20px);
}

@media (hover: hover) {
	#contact li:nth-of-type(1):hover {
		opacity: 0.6;
	}
}

#contact li:nth-of-type(1) a::before {
	content: "";
	display: block;
	width: 50px;
	height: 40px;
	background-image: url(../img/icon_pc02.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	margin-block-start: 16px;
}

#contact li:nth-of-type(1) a::after {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	background-image: url(../img/icon_triangle.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	position: absolute;
	right: 20px;
	bottom: 20px;
}

/* 電話お問い合わせ */
#contact li:nth-of-type(2) {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	padding-block: min(1.305vw, 20px) min(1.958vw, 30px);
}

#contact li:nth-of-type(2) p:nth-child(1) {
	font-size: var(--font-size24);
	letter-spacing: 0;
	line-height: 1.5;
}

#contact li:nth-of-type(2) p:nth-child(2) {
	font-size: var(--font-size16);
	letter-spacing: 0.05em;
	line-height: 1.69;
	margin-block-start: min(0.979vw, 15px);
}

#contact li:nth-of-type(2) p:nth-child(3) {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
	column-gap: 13px;
	font-size: var(--font-size48);
	color: var(--color_primary);
	letter-spacing: 0.05em;
	line-height: 1;
	font-weight: 700;
	margin-block-start: min(0.653vw, 10px);
}

#contact li:nth-of-type(2) p:nth-child(3)::before {
	content: "";
	display: block;
	width: 57px;
	height: 38px;
	background-image: url(../img/icon_freedial.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

#contact li:nth-of-type(2) p:nth-child(4) {
	font-size: var(--font-size16);
	letter-spacing: 0.05em;
	line-height: 1.69;
	margin-block-start: min(0.522vw, 8px);
}

/* 中間 */
@media screen and (max-width: 1200px) {
	#contact ul {
		grid-template-columns: 1fr;
	}

	#contact li:nth-of-type(1) {
		margin-inline: auto;
		width: 100%;
		max-width: 500px;
	}

	#contact li:nth-of-type(2) {
		width: fit-content;
		margin-inline: auto;
	}
}

@media screen and (max-width: 768px) {
	#contact {
		background-image: url(../img/seervice_bg_sp.webp);
		padding-block: min(20vw, 75px);
	}

	#contact h1 {
		font-size: var(--font-size24);
		line-height: 1.5;
		padding-inline: min(2.667vw, 10px);
	}

	#contact h1 + p {
		font-size: var(--font-size13);
		line-height: 1.5;
		margin-block-start: min(5.333vw, 20px);
		padding-inline: min(2.667vw, 10px);
	}

	#contact ul {
		width: 87%;
		margin-block-start: min(10.933vw, 41px);
		gap: min(6.667vw, 25px);
	}

	#contact li:nth-of-type(1) {
		margin-inline: auto;
		max-width: 325px;
	}

	#contact li:nth-of-type(1) a {
		font-size: var(--font-size12);
		gap: min(1.867vw, 7px);
		padding: min(5.333vw, 20px);
	}

	#contact li:nth-of-type(1) a::before {
		width: min(7.467vw, 28px);
		height: min(5.333vw, 20px);
		background-size: contain;
		margin-block-start: min(2.667vw, 10px);
	}

	#contact li:nth-of-type(1) a::after {
		width: min(2.667vw, 10px);
		height: min(2.667vw, 10px);
		right: min(2.667vw, 10px);
		bottom: min(2.667vw, 10px);
	}

	/* 電話お問い合わせ */
	#contact li:nth-of-type(2) {
		padding-block: 0;
	}
	#contact li:nth-of-type(2) p {
		text-align: center;
		margin-inline: auto;
	}

	#contact li:nth-of-type(2) p:nth-child(1) {
		font-size: var(--font-size16);
	}

	#contact li:nth-of-type(2) p:nth-child(2) {
		font-size: var(--font-size12);
		margin-block-start: min(2.133vw, 8px);
	}

	#contact li:nth-of-type(2) p:nth-child(3) {
		font-size: var(--font-size36);
		margin-block-start: min(2.133vw, 8px);
	}

	#contact li:nth-of-type(2) p:nth-child(3)::before {
		width: 34px;
		height: 22px;
	}

	#contact li:nth-of-type(2) p:nth-child(4) {
		font-size: var(--font-size12);
		margin-block-start: min(2.133vw, 8px);
	}
}

/*----------------------------------------
	Modal
-----------------------------------------*/
.modal-box {
	overflow: visible;
	width: 737px;
	background-image: url(../img/seervice_bg_pc.webp);
	background-repeat: repeat;
	background-size: 100% auto;
	padding: 0;
	opacity: 0;
	transition: opacity 0.5s;
}

.modal-box::backdrop {
	opacity: 0;
	background-color: rgba(0, 0, 0, 0.4);
}

.modal-box.is-show,
.modal-box.is-show::backdrop {
	opacity: 1;
	transition: opacity 0.5s;
}

.modal-box .modal-content {
	position: relative;
	padding: min(6.201vw, 95px) min(1.305vw, 20px);
}

.modal-box .modal-close {
	position: absolute;
	bottom: 100%;
	right: 0;
	width: 30px;
	height: 30px;
	margin: 0 min(1.305vw, 20px) min(1.305vw, 20px) 0;
	background-image: url(../img/icon_close.svg);
	background-size: 30px 30px;
}

/* 中身レイアウト */
.modal-box[data-modal="modal01"] .modal-content > div {
	display: flex;
	align-items: center;
	flex-direction: column;
}

.modal-box[data-modal="modal01"] .modal-content > div p {
	text-align: center;
}

.modal-box[data-modal="modal01"] .modal-content > div p:nth-child(1) {
	font-size: var(--font-size24);
	letter-spacing: 0;
	line-height: 1.5;
}

.modal-box[data-modal="modal01"] .modal-content > div p:nth-child(2) {
	font-size: var(--font-size16);
	letter-spacing: 0.05em;
	line-height: 1.69;
	margin-block-start: min(0.979vw, 15px);
}

.modal-box[data-modal="modal01"] .modal-content > div p:nth-child(3) {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
	column-gap: 13px;
	font-size: var(--font-size48);
	color: var(--color_primary);
	letter-spacing: 0.05em;
	line-height: 1;
	font-weight: 700;
	margin-block-start: min(0.653vw, 10px);
}

.modal-box[data-modal="modal01"] .modal-content > div p:nth-child(3)::before {
	content: "";
	display: block;
	width: 57px;
	height: 38px;
	background-image: url(../img/icon_freedial.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.modal-box[data-modal="modal01"] .modal-content > div p:nth-child(4) {
	font-size: var(--font-size16);
	letter-spacing: 0.05em;
	line-height: 1.69;
	margin-block-start: min(0.522vw, 8px);
}

@media screen and (max-width: 768px) {
	.modal-box {
		background-image: url(../img/seervice_bg_sp.webp);
		max-width: 400px;
		width: 90%;
	}

	.modal-box .modal-content {
		padding: min(5.333vw, 20px) min(4vw, 15px);
	}
	
	.modal-box .modal-close {
		width: 20px;
		height: 20px;
		background-size: 20px 20px;
		margin: 0 min(1.305vw, 10px) min(1.305vw, 10px) 0;
	}

	.modal-box[data-modal="modal01"] .modal-content > div p {
		margin-inline: auto;
	}

	.modal-box[data-modal="modal01"] .modal-content > div p:nth-child(1) {
		font-size: var(--font-size16);
	}

	.modal-box[data-modal="modal01"] .modal-content > div p:nth-child(2) {
		font-size: var(--font-size12);
		margin-block-start: min(2.133vw, 8px);
	}

	.modal-box[data-modal="modal01"] .modal-content > div p:nth-child(3) {
		font-size: var(--font-size36);
		margin-block-start: min(2.133vw, 8px);
	}

	.modal-box[data-modal="modal01"] .modal-content > div p:nth-child(3)::before {
		width: 34px;
		height: 22px;
	}

	.modal-box[data-modal="modal01"] .modal-content > div p:nth-child(4) {
		font-size: var(--font-size12);
		margin-block-start: min(2.133vw, 8px);
	}
}

/*----------------------------------------
	aside
-----------------------------------------*/
aside {
	z-index: 13;
	display: flex;
	flex-direction: column;
	gap: 20px;
	align-items: center;
	position: relative;
	margin: auto;
	padding: 97px 0 99px;
	/*background-color: var(--color_white);*/
}

aside p {
	font-size: var(--font-size11);
	letter-spacing: 0.1em;
}

aside ul {
	display: flex;
	gap: 1.5em;
}

aside ul li {
	color: var(--color_primary);
	font-size: var(--font-size14);
	letter-spacing: 0.1em;
}

aside ul li:nth-of-type(3) {
	display: none;
}

aside ul li a {
	display: flex;
	align-items: center;
	transition: color 0.3s ease-out;
}

aside ul li a::after {
	content: '';
	display: block;
	opacity: 1;
	width: 1em;
	height: 1em;
	margin-left: 0.5em;
	background: transparent url(../img/ic_browser01.svg) no-repeat center center;
	transition: transform 0.2s ease-out;
}

@media (hover: hover) {
	aside ul li a:hover {
		color: rgba(13, 83, 177, 0.6);
		transition: color 0.2s ease-out;
	}

	aside ul li a:hover::after {
		transform: translate(0.25em);
	}
}

aside small {
	font-size: var(--font-size11);
	letter-spacing: 0.1em;
}

/* sp */
@media screen and (max-width: 768px) {
	aside {
		gap: 10px;
		width: 84.3%;
		padding: 48px 0 48px;
	}

	aside p {
		font-size: var(--font-size11);
		letter-spacing: 0.05em;
	}

	aside ul {
		display: flex;
		flex-wrap: wrap;
		gap: 2px 1em;
		justify-content: center;
	}

	aside ul li {
		font-size: var(--font-size14);
	}

	aside ul li:nth-of-type(3) {
		display: block;
		width: 100%;
		padding-top: 2px;
		border-top: 1px solid rgba(0, 0, 0, 0.3);
	}

	aside ul li:nth-of-type(3) a {
		justify-content: center;
	}

	aside small {
		font-size: var(--font-size10);
	}
}

/*----------------------------------------
	pagetop
-----------------------------------------*/
/*.pagetop {
	z-index: 14;
	display: flex;
	justify-content: flex-end;
	position: relative;
	width: 100%;
	height: 0;
	margin: auto;
}

.pagetop span {
	display: block;
	transform: translateX(-30px) translateY(-104px);
	width: 74px;
	height: 74px;
	background-color: var(--color_primary);
	cursor: pointer;
	caret-color: transparent;
	transition: background-color 0.3s ease-out;
}*/

/* hover */
/*@media (hover: hover) {
	.pagetop span:hover {
		background-color: var(--color_sub2);
		transition: background-color 0.2s ease-out;
	}
}

@media screen and (max-width: 768px) {
	.pagetop span {
		transform: translateX(-15px) translateY(-52px);
		width: 37px;
		height: 37px;
	}
}*/


/*----------------------------------------
	footer
-----------------------------------------*/
footer {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 121px;
	background-color: var(--color_white);
}

footer small {
	font-size: var(--font-size11);
	letter-spacing: 0.1em;
}

/* sp */
@media screen and (max-width: 768px) {
	footer {
		align-items: flex-start;
		width: 100%;
		height: 150px;
		padding-block-start: 13px;
	}

	footer small {
		font-size: var(--font-size10);
	}
}