@charset "utf-8";



/*==================================================================================================

body

==================================================================================================*/



/*==================================================================================================

wrap

==================================================================================================*/

.wrap {
	margin: 0 auto;
}
@media all and (min-width:0px) and (max-width: 768px){
	.wrap {
		width: 100%;
		padding: 0 6vw;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
	.wrap {
		width: 100%;
		padding: 0 6vw;
	}
}
@media all and (min-width: 1081px){
	.wrap{
		width: 1080px;
		padding: 0 2rem;
	}
	.wrap.wrap-full{
		width: 100%;
		padding: 0 6vw;
	}
	.wrap.wrap-narrow{
		width: 820px;
	}
}


/*==================================================================================================

header

==================================================================================================*/

header{
	background-color: var(--c-bg);
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
	border-bottom: 2px solid transparent;
	transition: 0.3s;
}
header.is-scroll{
	background-color: var(--c-white);
	border-bottom-color: var(--c-base);
}
header .wrap{
	display: flex;
	justify-content: space-between;
}
header #header__heading h1 a{
	display: block;
}
header #header__heading h1 a img{
	height: 100%;
	width: auto;
	aspect-ratio: 200 / 43;
}
@media all and (min-width:0px) and (max-width: 768px){
	header{
		height: 5rem;
		padding: 1rem 0;
	}
	header #header__heading h1 a{
		height: 3rem;
		padding: 0.5rem;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
	header{
		height: 5rem;
		padding: 1rem 0;
	}
	header #header__heading h1 a{
		height: 3rem;
		padding: 0.5rem;
	}
}
@media all and (min-width: 1081px){
	header{
		height: 7rem;
		padding: 1.5rem 0;
	}
	header #header__heading h1 a{
		height: 4rem;
		padding: 0.5rem;
	}
	header.is-scroll{
		height: 5rem;
		padding: 1rem 0;
	}
	header.is-scroll #header__heading h1 a{
		height: 3rem;
	}
}


/*==================================================================================================

nav

==================================================================================================*/

.list-nav01{
	display: flex;
	align-items: center;
	height: 100%;
}
.list-nav01 .list__item + .list__item{
	margin-left: 1.5rem;
}
.list-nav01 .list__item a{
	color: var(--c-text);
	font-weight: 700;
}
.list-nav01 .list__item a:hover{
	color: var(--c-accent);
}

.list-nav02{
	display: flex;
	justify-content: center;
	flex-direction: column;
	text-align: center;
}
.list-nav02 .list__item + .list__item{
	margin-top: 1.5rem;
}
.list-nav02 .list__item a{
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--c-main);
}

@media all and (min-width:0px) and (max-width: 768px){
	#header__nav{
		display: none;
	}
	#nav__content01{
		display: none;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
	#header__nav{
		display: none;
	}
	#nav__content01{
		display: none;
	}
}
@media all and (min-width: 1081px){
}


/*==================================================================================================

hamburger

==================================================================================================*/

#hbg__button{
	position: fixed;
	width: 4.5rem;
	height: 5rem;
	top: 0;
	right: 0;
	z-index: 200;
}
#hbg__button span{
	position: absolute;
	left: 0.5rem;
	top: calc(50% - 1px);
	width: 3rem;
	height: 4px;
	background-color: var(--c-main);
	display: block;
	transition: 0.3s;
}
#hbg__button span:nth-child(1){
	transform: translateY(-0.75rem);
}
#hbg__button span:nth-child(3){
	transform: translateY(0.75rem);
}
#hbg__button.is-open span:nth-child(1){
	transform: rotate(-45deg);
}
#hbg__button.is-open span:nth-child(2){
	opacity: 0;
}
#hbg__button.is-open span:nth-child(3){
	transform: rotate(45deg);
}
#hbg__content{
	position: fixed;
	left: 0;
	top: 0;
	z-index: 150;
	/* height: 100dvh; */
	width: 100%;
	background-color: var(--c-base);
	color: var(--c-main);
	padding: 12vw;
}
#hbg__content h1 a{
	display: block;
	text-align: center;
}
#hbg__content h1 a img{
	height: 2rem;
	width: auto;
	margin: auto;
	aspect-ratio: 200 / 43;
}
#hbg__content .heading + .content{
	margin-top: 3rem;
}
@media all and (min-width:0px) and (max-width: 768px){
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
	#header__hbg{
		display: none;
	}
}



/*==================================================================================================

main

==================================================================================================*/

main{
	margin: 0 auto;
	width: 100%;
	min-height: 100vh;
}

@media all and (min-width:0px) and (max-width: 768px){
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}



/*==================================================================================================

section

==================================================================================================*/

.section{
	position: relative;
	padding: 7rem 0;
	overflow-x: hidden;
}
.section__heading + .section__content{
	margin-top: 3rem;
}
.section__content + .section__heading{
	margin-top: 6rem;
}
.section__content p a{
	text-decoration: underline;
}
@media all and (min-width:0px) and (max-width: 768px){
	.section{
		padding: 4rem 0;
	}
	.section__heading + .section__content{
		margin-top: 2rem;
	}
	.section__content + .section__heading{
		margin-top: 4rem;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}



/*==================================================================================================

commonHead

==================================================================================================*/
#commonHead .section__heading h2{
	font-size:2rem;
	text-align: center;
	font-weight: 900;
}
#commonHead .section__heading p{
	margin-top: 1rem;
}
@media all and (min-width:0px) and (max-width: 768px){
	#commonHead{
		padding-top: calc(5rem + 2rem);
	}
	#commonHead .section__heading p{
		font-size: 0.9rem;
	}
	#commonHead .section__heading p.p-center{
		text-align: center;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
	#commonHead{
		padding-top: calc(5rem + 1rem);
	}
}
@media all and (min-width: 1081px){
	#commonHead{
		padding-top: calc(7rem + 5rem);
	}
}




/*==================================================================================================

homeHead

==================================================================================================*/

#homeHead{
	padding-bottom: 1rem;
}
#homeHead .col .col__item.text .catch{
	font-size: 2rem;
	font-weight: 900;
	margin-top: 1rem;
}
#homeHead .col .col__item.text .catch span{
	font-size: 1.1em;
	padding: 0 0.25rem;
}
#homeHead .col .col__item.text .sub{
	margin-top: 2rem;
}
#homeHead .col .col__item.image .images img{
	width: 100%;
	height: auto;
	object-fit: contain;
	aspect-ratio: 1/2;
}
#homeHead .target{
	display: flex;
	margin: -0.25rem;
	font-size: 0.9rem;
}
#homeHead .target li{
	margin: 0.25rem;
	background: var(--c-main);
	color: var(--c-white);
	border-radius: 1.25rem;
	padding: 0.5rem 1rem;
	line-height: 1;
}
#homeHead .block-link02{
	margin: 2rem 0 0 0 ;
}
#homeHead .block-link02 a{
	width: 18rem;
	margin-left: 0;
}
@media all and (min-width:0px) and (max-width: 768px){
	#homeHead{
		padding-top: calc(5rem + 3rem);
	}
	#homeHead .col .col__item.text .catch{
		font-size: 1.7rem;
		text-align: center;
	}
	#homeHead .col .col__item.text .sub br{
		display: none;
	}
	#homeHead .col .col__item.image .images{
		width: 50%;
		margin: 1.5rem auto 0 auto;
	}
	#homeHead .block-link02{
		display: none;
	}
	#homeHead .target{
		justify-content: center;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
	#homeHead{
		padding-top: calc(5rem + 3rem);
	}
	#homeHead .col .col__item.text{
		width: 70%;
		margin-right: 5%;
	}
	#homeHead .col .col__item.image{
		width: 25%;
	}
	#homeHead .col .col__item.text .block + .block{
		margin-top: 2rem;
	}
}
@media all and (min-width: 1081px){
	#homeHead{
		padding-top: calc(7rem + 1rem);
	}
	#homeHead .col .col__item.text{
		width: 65%;
		margin-right: 5%;
		padding-top: 4rem;
	}
	#homeHead .col .col__item.image{
		width: 30%;
	}
}



/*==================================================================================================

#homeCustomer

==================================================================================================*/
#homeCustomer{
	padding-top: 4rem;
}
#homeCustomer .list{
	display: flex;
	flex-wrap: wrap;
	margin: -1rem;
	justify-content: center;
}
#homeCustomer .list li{
	margin: 1rem;
}
#homeCustomer .list li img{
	width: 100%;
	height: 1.6rem;
	object-fit: contain;
}

/*==================================================================================================

#homeFeature

==================================================================================================*/
#homeFeature{
	border-top: 2px solid var(--c-border);
}
@media all and (min-width:0px) and (max-width: 768px){
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}


/*==================================================================================================

#homePrice

==================================================================================================*/
#homePrice{
	background-color: #fff;
	text-align: center;
}
@media all and (min-width:0px) and (max-width: 768px){
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}


/*==================================================================================================

#priceOutline

==================================================================================================*/

#priceOutline{
	background-color: var(--c-white);
}
@media all and (min-width:0px) and (max-width: 768px){
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}



/*==================================================================================================

priceInitial

==================================================================================================*/

/* #priceInitial .list{
	display: flex;
	flex-wrap: wrap;
	margin: -1rem;
}
#priceInitial .list li{
	width: calc(50% - 2rem);
	margin: 1rem;
	border-radius: 1.25rem;
	background-color: var(--c-white);
	padding: 1.5rem;
}
#priceInitial .list li .title{
	text-align: center;
	font-weight: 700;
} */
#priceInitial .list-initial01{
}
#priceInitial .list-initial01 .list-initial01__item{
	border-radius: 1.25rem;
	background-color: var(--c-white);
	padding: 2rem;
	display: flex;
	align-items: center;
}
#priceInitial .list-initial01 .list-initial01__item + li{
	margin-top: 1.5rem;
}
#priceInitial .list-initial01 .list-initial01__item .title{
	text-align: center;
	font-weight: 700;
	font-size: 1.15rem;
	width: 35%;
	flex-shrink: 0;
	color: var(--c-main);
}
#priceInitial .list-initial01 .list-initial01__item .content{
	font-size: 0.9rem;
}
#priceInitial .list-sample01{
	margin-top: 1rem;
	margin-left: 1.5rem;
	list-style: circle;
}
@media all and (min-width:0px) and (max-width: 768px){
	#priceInitial .list-initial01 .list-initial01__item{
		flex-direction: column;
	}
	#priceInitial .list-initial01 .list-initial01__item .title{
		width: 100%;
	}
	#priceInitial .list-initial01 .list-initial01__item .title + .content{
		margin-top: 1.5rem;
	}
	#priceInitial .list-sample01{
		margin-top: 0;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}


/*==================================================================================================

priceMonthly

==================================================================================================*/
#priceMonthly{
	border-top: 2px solid var(--c-border);
}
#priceMonthly .list-monthly01 .list-monthly01__item{
	border-radius: 1.25rem;
	background-color: var(--c-white);
	padding: 2rem;
	display: flex;
	align-items: center;
}
#priceMonthly .list-monthly01 .list-monthly01__item + li{
	margin-top: 1.5rem;
}
#priceMonthly .list-monthly01 .list-monthly01__item .title{
	text-align: center;
	font-weight: 700;
	font-size: 1.15rem;
	width: 35%;
	flex-shrink: 0;
	color: var(--c-main);
}
#priceMonthly .list-monthly01 .list-monthly01__item .content{
	font-size: 0.9rem;
}
@media all and (min-width:0px) and (max-width: 768px){
	#priceMonthly .list-monthly01 .list-monthly01__item{
		flex-direction: column;
	}
	#priceMonthly .list-monthly01 .list-monthly01__item .title{
		width: 100%;
	}
	#priceMonthly .list-monthly01 .list-monthly01__item .title + .content{
		margin-top: 1.5rem;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}

/*==================================================================================================

flowContent

==================================================================================================*/

#flowContent{
	background-color: var(--c-white);
}
#flowContent .list-flow01 .list__item{
	display: flex;
	position: relative;
}
#flowContent .list-flow01 .list__item + .list__item{
	margin-top: 3rem;
}
#flowContent .list-flow01 .list__item + .list__item::before{
	position: absolute;
	left: 5rem;
	top: -13rem;
	height: 13rem;
	width: 0;
	border-right: 4px dotted var(--c-accent);
	content: '';
}
#flowContent .list-flow01 .list__item .icon{
	border-radius: 50%;
	width: 10rem;
	height: 10rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--c-base);
	flex-shrink: 0;
	margin-right: 3rem;
	z-index: 1;
}
#flowContent .list-flow01 .list__item .icon img{
	width: 4rem;
	height: 4rem;
}
#flowContent .list-flow01 .list__item .content .title{
	font-size: 1.5rem;
	font-weight: 900;
	color: var(--c-main);
}
#flowContent .list-flow01 .list__item .content .text{
	margin-top: 1rem;
}
@media all and (min-width:0px) and (max-width: 768px){
	#flowContent .list-flow01 .list__item + .list__item{
		margin-top: 3rem;
	}
	#flowContent .list-flow01 .list__item + .list__item::before{
		left: 3rem;
		top: -9rem;
		height: 9rem;
	}
	#flowContent .list-flow01 .list__item .icon{
		width: 6rem;
		height: 6rem;
		margin-right: 1.5rem;
	}
	#flowContent .list-flow01 .list__item .icon img{
		width: 2rem;
		height: 2rem;
	}
	#flowContent .list-flow01 .list__item .content .title{
		font-size: 1.25rem;
	}
	#flowContent .list-flow01 .list__item .content .text{
		margin-top: 0.5rem;
		font-size: 0.9rem;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}

/*==================================================================================================

faqContent

==================================================================================================*/
#faqContent{
	background-color: var(--c-white);
}

#faqContent .list-faq01 .list__item + .list__item{
	margin-top: 1.5rem;
}
#faqContent .list-faq01 .list__item{
	/* border:1px solid var(--c-border); */
	background-color: var(--c-sub01);
	border-radius: 1.25rem;
}
#faqContent .list-faq01 .list__item .question,
#faqContent .list-faq01 .list__item .answer{
	position: relative;
	padding: 1.5rem;
	padding-left: 4rem;
}
#faqContent .list-faq01 .list__item .question::before,
#faqContent .list-faq01 .list__item .question::after,
#faqContent .list-faq01 .list__item .answer::before{
	position: absolute;
	left: 1.5rem;
	font-size: 1.25rem;
	line-height: calc(1.1rem  * 1.7);
	font-weight: 900;
	color: var(--c-accent);
}
#faqContent .list-faq01 .list__item .question{
	/* color: var(--c-main); */
	font-weight: 700;
	font-size: 1.1rem;
	padding-right: 4rem;
}
#faqContent .list-faq01 .list__item .question::before{
	content: 'Ｑ';
}
#faqContent .list-faq01 .list__item .question::after{
	content: '＋';
	left: inherit;
	right: 1.5rem;
	top: 50%;
	transform: translateY(-50%);
}
#faqContent .list-faq01 .list__item .question.is-open::after{
	content: '―';
}
#faqContent .list-faq01 .list__item .answer{
	padding-top: 0;
	display: none;
	opacity: 0.8;
}
#faqContent .list-faq01 .list__item .answer::before{
	content: 'Ａ';
	color: var(--c-pinkD);
}



/*==================================================================================================

featureContent

==================================================================================================*/
#featureContent{
	background-color: var(--c-white);
}
#featureContent .section__content + .section__heading{
	margin-top: 7rem;
}
@media all and (min-width:0px) and (max-width: 768px){
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}


/*==================================================================================================

worksContent

==================================================================================================*/
#worksContent{
	background-color: var(--c-base);
	padding-top: 0;
}
@media all and (min-width:0px) and (max-width: 768px){
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}



/*==================================================================================================

contactContent

==================================================================================================*/
#contactContent{
	background-color: var(--c-base);
	padding-top: 0;
	margin-top: -3rem;
}
#contactContent .p-lead{
	margin-bottom: 1.5rem;
}
.list-contactstatus01{
	display: flex;
}
.list-contactstatus01 li{
	position: relative;
	width: calc(100% / 3);
	padding-top: 2rem;
	text-align: center;
	color: var(--c-gray);
}
.list-contactstatus01 li::before{
	content: '';
	position: absolute;
	top: 0.5rem;
	left: 50%;
	width: 1rem;
	height: 1rem;
	border-radius: 50%;
	background-color: var(--c-gray);
	transform: translateX(-50%);
	z-index: 1;
}
.list-contactstatus01 li:nth-child(n+2):after{
	content: '';
	position: absolute;
	top: calc( 1rem - 1px);
	left: -50%;
	width: 100%;
	height: 2px;
	background-color: var(--c-gray);
	z-index: 0;
}
.list-contactstatus01 li.is-done{
	color: var(--c-main);
}
.list-contactstatus01 li.is-current{
	color: var(--c-main);
	font-weight: 700;
}
.list-contactstatus01 li.is-done::before,
.list-contactstatus01 li.is-done::after,
.list-contactstatus01 li.is-current::before,
.list-contactstatus01 li.is-current::after{
	background-color: var(--c-main);
}
@media all and (min-width:0px) and (max-width: 768px){
	#contactContent{
		margin-top: -1rem;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
}
@media all and (min-width: 1081px){
}


/*==================================================================================================

aboutContent

==================================================================================================*/
#aboutContent{
	background-color: var(--c-white);
}


/*==================================================================================================

privacyContent

==================================================================================================*/
#privacyContent{
	padding-top: 0;
}
#privacyContent .section__content p,
#privacyContent .section__content ol,
#privacyContent .section__content ul{
	margin-top: 1.5rem;
}
#privacyContent .section__content ol,
#privacyContent .section__content ul{
	padding-left: 1.5rem;
	position: relative;
}
#privacyContent .section__content li ol,
#privacyContent .section__content li ul,
#privacyContent .section__content li + li{
	margin-top: 0.5rem;
}
#privacyContent .section__content ol{
	counter-reset: item;
	list-style-type: none;
}
#privacyContent .section__content ol li::before{
	font-weight: 900;
	color: var(--c-main);
	position: absolute;
	left: 0;
	counter-increment: item;
	content: counter(item)'.';
}
#privacyContent .section__content h2{
	font-weight: 700;
	font-size: 1.25rem;
	margin-top: 3rem;
}

/*==================================================================================================

breadcrumb

==================================================================================================*/
#breadcrumb{
	padding: 1.5rem 0;
}
#breadcrumb .list{
	display: flex;
	flex-wrap: wrap;
	margin: -1rem;
}
#breadcrumb .list .list__item{
	margin: 1rem;
}
#breadcrumb .list .list__item + .list__item::before{
	content: '/';
	color: var(--c-text);
	position: relative;
	left: -1rem;
	opacity: 0.5;
}
#breadcrumb .list .list__item a{
	color: var(--c-text);
}


/*==================================================================================================

cta

==================================================================================================*/

#cta{
}
#cta .wrap{
	position: relative;
	z-index: 1;
}
#cta .section__content{
	padding: 6rem;
	border-radius: 1.25rem;
	background-color: var(--c-main);
	color: var(--c-white);
}
#cta .col{
	align-items: center;
	margin: -2rem;
}
#cta .col .col__item{
	margin: 2rem;
	width: calc(50% - 4rem);
}
#cta .en{
    font-family: 'Montserrat', serif;
	color: var(--c-white);
    font-size: 1.5rem;
    text-transform: uppercase;
    line-height: 1;
	font-weight: 900;
	opacity: 0.75;
}
#cta .title{
	font-weight: 900;
	font-size: 2.5rem;
}
#cta .content{
	margin-top: 1rem;
}
#cta .block-link01 a{
	width: 100%;
}

#cta.cta-bgwhite01{
	padding-top: 0;
	background-color: var(--c-white);
}
#cta.cta-bgwhite02{
	background-color: var(--c-white);
	border-top: 2px solid var(--c-base);
}
#cta.cta-bgbase01{
	padding-top: 0;
	background-color: var(--c-base);
}

@media all and (min-width:0px) and (max-width: 768px){
	#cta .section__content{
		padding: 3rem;
		text-align: center;
	}
	#cta .col{
		margin: -1rem;
	}
	#cta .col .col__item{
		width: calc( 100% - 2rem );
		margin: 1rem;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
	#cta .section__content{
		padding: 3rem;
	}
}
@media all and (min-width: 1081px){
}


/*==================================================================================================

footer

==================================================================================================*/
footer{
	background-color: var(--c-text);
	color: var(--c-white);
}
footer a{
	color: var(--c-white);
}



/*==================================================================================================

#footer__content

==================================================================================================*/
#footer__content{
	padding: 3rem 0;
}
#footer__content .col{
	justify-content: space-between;
}
#footer__content h1 a{
	display: block;
}
#footer__content h1 a img{
	width: 15rem;
	height: auto;
	aspect-ratio: 200 / 43;
}
#footer__content .list{
	display: flex;
	flex-wrap: wrap;
	margin: -0.75rem;
}
#footer__content .list .list__item{
	margin: 0.75rem;
}
#footer__content .list .list__item a{
	font-weight: 700;
}
#footer__content .list .list__item a:hover{
	text-decoration: underline;
}

#footer__content .list + .list .list__item a{
	font-weight: 400;
	font-size: 0.85rem;
}

#footer__content #copyright{
	margin-top: 3rem;
	font-size: 0.8rem;
	text-align: center;
}



@media all and (min-width:0px) and (max-width: 768px){
	#footer__content .col{
		flex-direction: column;
		justify-content: flex-start;
	}
	#footer__content h1 a{
		text-align: center;
	}
	#footer__content .list{
		justify-content: center;
		margin:  -0.5rem -0.75rem;
	}
	#footer__content .list .list__item{
		margin: 0.5rem 0.75rem;
	}
	#footer__content .list + .list{
		margin-top: 1.5rem;
	}
}
@media all and (min-width: 769px) and (max-width:1080px){
	#footer__content .col__item + .col__item{
		margin-left: 5rem;
	}
}
@media all and (min-width: 1081px){
	#footer__content .col__item + .col__item{
		margin-left: 5rem;
	}
}