@charset "UTF-8";
/* ------------------------------------------------
                    共通css
--------------------------------------------------- */
/*---------- header ----------*/
header {
    width: 100%;
	position: fixed;
	top:0;
	left:0;
	z-index: 9999;
	background: var(--col-white);
	-webkit-transition: 0.3s ease-in-out;
    -moz-transition: 0.3s ease-in-out;
    -o-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out;
}
.index header,
.no_col header{
	background: none
}
header .header-inn {
    width: 93%;
    /*max-width: 1340px;*/
	height:80px;
    margin: 0 auto;
    display: flex;
	align-items: center;
	justify-content: space-between;
}

/*ロゴ*/
header .header-logo {
    width: 120px;
	height:auto;
    display: block;
	
}
header .header-logo a{
	display: block;
}
#logo {
  display: block;
}
#logo .cls-1{
	fill: var(--col_taiyo-blue);
}
.index #logo .cls-1,
.no_col #logo .cls-1{
	fill: var(--col-white);
}

header .gnav-wrap {
    width: calc(100% - 120px - 40px);
	height:100%;
}
header .gnav-wrap ul#gnav {
    width: 100%;
	height:100%;
    display: flex;
	justify-content: flex-end;
	align-items: center;
	gap:10px;
}
header .gnav-wrap ul li {
	height:100%;
	display: flex;
	align-content: center;
	justify-content: center;
	flex-wrap: wrap;
}
header .gnav-wrap ul li a,
header .gnav-wrap ul li > p{
	padding: 0.5em 1em;
	font-weight: 600;
	display: flex;
	align-content: center;
	flex-wrap: wrap;
	position: relative;
}
header .gnav-wrap ul li.nav-txt > a,
header .gnav-wrap ul li.nav-txt > p{
	height:100%;
	color:var(--col-black);
}
.index header .gnav-wrap ul li.nav-txt > a,
.index header .gnav-wrap ul li.nav-txt > p,
.no_col header .gnav-wrap ul li.nav-txt > a,
.no_col header .gnav-wrap ul li.nav-txt > p{
	color:var(--col-white);
}

header .gnav-wrap ul li.recruit a{
	background: var(--col-white);
	color:var(--col-blue);
	border-radius: var(--radius-40);
	padding: 0.5em 4em;
	border:1px solid var(--col-blue);
}
header .gnav-wrap ul li.contact a{
	background: var(--col-blue);
	color:var(--col-white);
	border-radius: var(--radius-40);
	padding: 0.5em 3em;
	border:1px solid var(--col-blue);
}
.index header .gnav-wrap ul li.recruit a,
.no_col header .gnav-wrap ul li.recruit a{
	border:1px solid var(--col-white);
}
header .gnav-wrap ul li.recruit a::after,
header .gnav-wrap ul li.contact a::after{
	position: absolute;
	content:'';
	width:1em;
	height:1em;
	top:0;
	bottom:0;
	right:1.1em;
	margin: auto;
	background-repeat: no-repeat;
	background-position: center;
}
header .gnav-wrap ul li.recruit a::after{	background-image: url("../../img/common/arrow_blue.svg");}
header .gnav-wrap ul li.contact a::after{	background-image: url("../../img/common/arrow_white.svg");}


@media (max-width: 1296px) {
	header .header-logo {
		width: 8vw;
		height:auto;
		display: block;
	}
	header .gnav-wrap {
		width: calc(100% - 8vw - 4vw);
	}
	header .gnav-wrap ul#gnav {
		gap:2vw
	}
	header .gnav-wrap ul li a,
	header .gnav-wrap ul li > p{
    	padding: 0.5em 0;
	}

	header .gnav-wrap ul li.recruit a{
		padding: 0.5em 2.5em 0.5em 1.2em;
	}
	header .gnav-wrap ul li.contact a{
		padding: 0.5em 2.5em 0.5em 1.2em;
	}
	header .gnav-wrap ul li a span{
		white-space: nowrap
	}
	
	header .gnav-wrap ul li{
		display: block
	}
}
@media (max-width:1080px) {
	header .header-logo {
		width: 120px;
	}
    header .gnav-wrap {
        width: 300px;
        height: 100%;
        padding: 110px 0 0;
		background:var(--col_navbg);
        position: fixed;
        top: 0;
        right:-300px;
        z-index: 998;
    }
	header .gnav-wrap ul#gnav,
	header .gnav-wrap ul li,
	header .gnav-wrap ul li.nav-txt > a,
	header .gnav-wrap ul li.nav-txt > p{
		height:auto;
	}

    header .gnav-wrap ul#gnav {
        width: 80%;
		margin: 0 auto;
        padding: 0;
        display: block;
        position: relative;
        z-index: 999;
    }

    header .gnav-wrap ul li a,
	header .gnav-wrap ul li > p{
        display: block;
        font-size: 1.8rem;
        position: relative;
		margin-bottom: 0.5em
    }
	.index header .gnav-wrap ul li.nav-txt > a,
	.index header .gnav-wrap ul li.nav-txt > p,
	.no_col header .gnav-wrap ul li.nav-txt > a,
	.no_col header .gnav-wrap ul li.nav-txt > p{
		color: var(--col-black);
	}
	
	/* 開閉ボタン */
	.sp-menu-trigger {
		width: 12vw;
		max-width: 60px;
		height: 12vw;
		max-height: 60px;
		border-radius: 50%;
		z-index: 2001;
		background: var(--col-blue);
		border: none;
	}
	.index .sp-menu-trigger {
		background: var(--col-white);
	}
	.index .is-open.sp-menu-trigger {
		background: var(--col-blue);
	}
	.sp-menu-btn {
		width: 60%;
		height: 100%;
		margin: 0 auto;
		padding: 0;
		position: relative;
	}
	.sp-menu-btn span{
		display: block;
		height: 2px;
		background:var(--col-white);
		position:absolute;
		width: 100%;
		left: 0;
		transition: 0.5s ease-in-out;	
	}
	.index .sp-menu-btn span{
		background: var(--col-blue);
	}
	.sp-menu-btn span:nth-child(1){
		top: calc(50% - 15%);
	}
	.sp-menu-btn span:nth-child(2){
		top: calc(50%);
	}
	.sp-menu-btn span:nth-child(3){
		top: calc(50% + 15%);
	}

	
	/*開閉ボタンopen時*/
	.is-open .sp-menu-btn span:nth-child(1) {
		top: 50%;
		transform: rotate(45deg);
		background:var(--col-white);
	}
	.is-open .sp-menu-btn span:nth-child(2) {
		opacity: 0;
	}
	.is-open .sp-menu-btn span:nth-child(3) {
		top: 50%;
		transform: rotate(-45deg);
		background:var(--col-white);
	}

}

@media (max-width: 768px) {
	header .header-inn {
		width: 93%;
		height:14vw;
		margin: 0 auto;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
	
	header .header-logo {
		width:20vw;
	}
	header .gnav-wrap {
        width: 65%;
        height:100%;
        padding: 4vw 0 0;
        top: 0;
        right:-65%;
		border-top:14vw solid var(--col-white);
    }
	.index header .gnav-wrap,
	.no_col header .gnav-wrap{
		border-top:14vw solid var(--col_navbg);
	}

    header .gnav-wrap ul li a,
	header .gnav-wrap ul li > p{
        display: block;
        font-size: 3.6vw;
		margin-bottom: 0em
    }

	header .gnav-wrap ul li.contact a,
	header .gnav-wrap ul li.recruit a{
		border-radius: var(--radius-40_sp);
		margin-top: 0.5em
	}

	.index header .gnav-wrap ul li.recruit a,
	.no_col header .gnav-wrap ul li.recruit a{
		border:1px solid var(--col-blue);
		
	}

}




/* ==========================
   SUB MENU
========================== */

.has-submenu{
	position: relative;
}

.has-submenu a{
	color: var(--col-white)!important;
}

/* PC */
.has-submenu .sub-menu{
	min-width: 10em;
	position: absolute;
	top:100%;
	left: -1em;
	background: var(--col-blue_o8);
	opacity: 0;
	visibility: hidden;
	transition: .3s;
	z-index: 100;
	border-radius: var(--radius-20);
	padding: 10px 1em
}

.has-submenu .sub-menu ul li a{
	width:100%;
	padding: 0.2em 0;
	white-space: nowrap
}

.has-submenu:hover .sub-menu{
	opacity: 1;
	visibility: visible;
}

@media (max-width:1080px) {
	.has-submenu .sub-menu{
		position: static;
		transform: none;
		background: none;
		min-width: auto;
		opacity: 1;
		visibility: visible;
		max-height: 0;
		overflow: hidden;
		transition: max-height .3s ease;
		padding: 0
	}

	.has-submenu.open .sub-menu{
		max-height: 500px;
	}

	.has-submenu > p::after{
		content:"+";
		position:absolute;
		right:0;
		top:0;
		bottom:0;
		display: flex;
		align-items: center;
		font-size:1.6em;
		color: var(--col-blue)
	}

	.has-submenu.open > p::after{
		content:"−";
	}

	.has-submenu .sub-menu ul{
		padding-left:1em;
	}

	.has-submenu .sub-menu ul li a{
		color:var(--col-black)!important;;
		padding: 0;
		font-size: 1.7rem;
		margin-bottom: 0.2em

	}
	.has-submenu .sub-menu ul li:last-child{
		
	}
}
@media (max-width: 768px) {
	.has-submenu .sub-menu ul li a{
		font-size: 3.4vw
	}
}

/*---------- footer ----------*/

/* pagetop */
.pagetop {
    width: 60px;
    height: 60px;
    margin-bottom: 1px;
	position: fixed;
    right: 0;
    bottom: 0;
    z-index: 9996;

}
.pagetop span{
	width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--col-blue);
    border: 1px solid var(--col-white);
    cursor: pointer;
    text-align: center;
    color: var(--col-white);
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1;
}
@media (max-width: 768px) {
    .pagetop {
        width: 12vw;
        height: 12vw;
        bottom: 0.5vw;
	}
	.pagetop a{
        font-size: 2.2vw;
        line-height: 1;
    }
    
}

footer {
    width: 100%;
	background: var(--col_footer-gray);
	padding: 80px 0 15px
}
footer .footer-logo{
	margin-bottom:40px
}
footer .footer-logo p{
	width:120px;
}
footer .footer-navi{
	margin-bottom: 70px;
	display: flex;
	gap:40px;
	
}
footer .footer-navi .navi-txt-area{
	width:calc(100% - 260px - 40px)
}
footer .footer-navi  .clm-wrap{
	display: flex;
	flex-wrap: wrap;
	gap:0 40px
}
footer .footer-navi  .clm-wrap .navi-clm{
	width:calc((100%- (40px * 3) / 4));
	min-width:170px;
	margin-bottom: 40px
}
footer .footer-navi  .clm-wrap .navi-clm a{
	display: block
}
footer .footer-navi  .clm-wrap .navi-clm .parent{
	border-top:1px solid var(--col-white);
	padding: 1em 20px 0 0;
	font-size:1.4rem;
	font-weight: 600;
	position: relative;
}
footer .footer-navi  .clm-wrap .navi-clm .parent::after{
	position: absolute;
	content:'';
	width:18px;
	height:18px;
	border:1px solid  var(--col-black);
	border-radius: 50%;
	bottom:1px;
	right:0;
	margin: auto;
	background-image: url("../../img/common/arrow_black.svg");
	background-repeat: no-repeat;
	background-size: 50%;
	background-position: center
}

footer .footer-navi  .clm-wrap .navi-clm .parent:not(:first-child){
	margin-top: 2em
}
footer .footer-navi  .clm-wrap .navi-clm .child{
	font-size:1.3rem;
}
footer .footer-navi  .clm-wrap .navi-clm .child:not(:first-child){
	margin-top: .8em
}

footer .footer-navi .navi-btn-area{
	width:260px;
}
footer .footer-navi .navi-btn-area .btn:not(:first-child){
	margin-top: 20px
}

footer .footer-navi .navi-btn-area .btn-area-inner{
	display: flex;
	justify-content: center;
	gap:1em;
	margin-top: 20px
}
footer .footer-navi .navi-btn-area .btn-area-inner a{
	padding: 0.2em 1em;
	border:1px solid  var(--col-black);
	border-radius: 0.5em
}

footer .copy-area{
	background: var(--col-black);
	width:calc(100% - 30px);
	margin: 0 auto;
	padding: 30px 0;
	border-radius: 15px;
	font-size:1.3rem;
	color:var(--col-white);
}
footer .copy-area .cont-inn{
		display: flex;
	justify-content: space-between
}
footer .copy-area .cont-inn .link{
	display: flex;
	gap:4em
}
footer .copy-area a{
	color:var(--col-white);
}
footer .copy-area .link p{position: relative}
footer .copy-area .link p:not(:first-child)::after{
	position: absolute;
	content:'';
	width:1px;
	height:100%;
	left:-2em;
	top:0;
	bottom:0;
	margin: auto;
	background: var(--col-white);
		
}
@media (max-width: 1080px) {
	footer .footer-navi  .clm-wrap .navi-clm{
		width:40%;
	}
	footer .footer-navi{
		flex-wrap: wrap;
	}
		footer .footer-navi .navi-txt-area{
		width:100%
	}
		footer .footer-navi .navi-btn-area{
		width:100%;
	}
	footer .footer-navi .navi-btn-area .btn{
		margin-left: auto;
		margin-right: auto
	}
}

@media (max-width: 768px) {
	footer {
		padding: 8vw 0 1vw
	}
	footer .footer-logo{
		margin-bottom:4vw
	}
	footer .footer-logo p{
		width:30vw
	}
	
	footer .footer-navi{
		margin-bottom: 6vw;
		display: flex;
		flex-wrap: wrap;
		gap:4vw;
	}
	footer .footer-navi .navi-txt-area{
		width:100%
	}
	footer .footer-navi  .clm-wrap{
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap:0 2vw
	}
	footer .footer-navi  .clm-wrap .navi-clm{
		width:39vw;
		min-width:inherit;
		margin-bottom: 4vw
	}
	footer .footer-navi  .clm-wrap .navi-clm .parent{
		border-top:1px solid var(--col-white);
		padding: 1em 5vw 0 0;
		font-size:3.3vw;
		font-weight: 600;
		position: relative;
	}
	footer .footer-navi  .clm-wrap .navi-clm .parent::after{
		width:4.2vw;
		height:4.2vw;
	}

	footer .footer-navi  .clm-wrap .navi-clm .parent:not(:first-child){
		margin-top: 2em
	}
	footer .footer-navi  .clm-wrap .navi-clm .child{
		font-size:3.2vw;
	}

	footer .footer-navi .navi-btn-area{
		width:100%;
	}
	footer .footer-navi .navi-btn-area .btn:not(:first-child){
		margin-top: 4vw
	}

	footer .copy-area{
		width:calc(100% - 4vw);
		margin: 0 auto;
		padding: 4vw 2vw;
		border-radius: 2vw;
		font-size:2.2vw;
		color:var(--col-white);
	}
	footer .copy-area .cont-inn{
			display: flex;
		justify-content: space-between;
		flex-direction: column;
		gap:2vw
	}
	footer .copy-area .cont-inn .link{
		display: flex;
		gap:4em
	}
	footer .copy-area a{
		color:var(--col-white);
		font-size:3.2vw;
	}

}




/*---------- コンテンツ レイアウト ----------*/
.cont-inn {
    width: 90%;
    max-width: 1296px;
    margin: 0 auto;
    position: relative;
}
.cont-inn-s {
	width: 80%;
    max-width: 1152px;
	 margin: 0 auto;
    position: relative;

}

@media (max-width: 768px) {
    .cont-inn {
        width: 96%;
        max-width: initial;
        margin: 0 auto;
        position: relative;
    }
    .cont-inn-s {
        width: 88%;
        max-width: initial;
        margin: 0 auto;
        position: relative;
    }
}


/*---------- カラー ----------*/

@media (max-width: 768px) {
}


/*---------- テキスト ----------*/
.sec-ttl-wrap{
	color:var(--col-blue);
	font-weight: 600;
}
.sec-ttl-jp{
	font-size:1.4rem
}
.sec-ttl{
	font-size:6.2rem;
	margin-bottom: 0.5em
}
.sec-lead{
	font-size:3.2rem;
	margin-bottom: 1em
}

.sub-ttl{
	font-size:4.2rem;
	color:var(--col-blue);
	font-weight: 600;
	line-height: 1;
}
@media (max-width: 768px) {
	.sec-ttl-jp{
		font-size:3.4vw
	}
	.sec-ttl{
		font-size:12vw;
		line-height: 1.2;
		margin-top: 0.1em;
		margin-bottom: 0.4em
	}
	.sec-lead{
		font-size:5vw;
		margin-bottom: 0.8em
	}

	.sub-ttl{
		font-size:9vw;
	}

}

/*---------- ボタン ----------*/
.btn{
	width:100%;
	max-width: 415px
}
.btn a{
	display: block;
	font-size:1.4rem;
	font-weight: 600;
	border:2px solid var(--col-black);
	background: var(--col-white);
	padding: 1em 2em;
	text-align: center;
	position: relative
}
.btn a::after{
	position: absolute;
	content:'';
	width:1.2em;
	height:1.2em;
	top:0;
	bottom:0;
	right:2em;
	margin: auto;
	background-repeat: no-repeat;
	background-position: center;
	background-image: url("../../img/common/arrow_black.svg");
}

.arrow_blue::after{
	position: absolute;
	content:'';
	width:36px;
	height:36px;
	border:1px solid var(--col-blue);
	border-radius: 50%;
	right:0;
	bottom:0;
	margin: auto;
	background-image: url("../../img/common/arrow_blue.svg");
	background-repeat: no-repeat;
	background-size: 50%;
	background-position: center

}

.btn.blue{
	display: block;
	font-size:1.4rem;
	font-weight: 600;
	border:2px solid var(--col-blue);
	background: var(--col-blue);
	color: var(--col-white);
	padding: 1em 2em;
	text-align: center;
	position: relative
}
.btn.blue::after{
	position: absolute;
	content:'';
	width:1.2em;
	height:1.2em;
	top:0;
	bottom:0;
	right:2em;
	margin: auto;
	background-repeat: no-repeat;
	background-position: center;
	background-image: url("../../img/common/arrow_white.svg");
}


@media (max-width: 768px) {
	.btn{
		width:100%;
		max-width: inherit
	}
	.btn a{
		font-size:3.2vw;
	}


	.arrow_blue::after{
		width:7vw;
		height:7vw;
	}
	.btn.blue{
		font-size:3.2vw;
		padding: 0.5em 1em;
	}
	.btn.blue::after{
		right:1em;
	}

}

/*---------- パンくず ----------*/
.breadcrumb-wrap {
	width: 100%;
	padding:1.2em 0 0.8em;
	border-bottom: 1px solid var(--col-white)
}
.breadcrumbs ol {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
}
.breadcrumbs ol li {
    position: relative;
    font-size: 1.2rem;
	line-height: 1
}
.breadcrumbs ol li::after {
    content: '>';
    margin: 0 5px;
    display: inline-block;
}
.breadcrumbs ol li:last-child::after {
    content: none;
}

@media screen and (max-width: 768px) {
	.breadcrumb-wrap {
		width: 100%;
	}
	.breadcrumbs ol {
		width: 100%;
		display: flex;
		flex-wrap: wrap;
	}
	.breadcrumbs ol li {
		font-size: 3.2vw;
	}
	.breadcrumbs ol li::after {
		margin: 0 1vw;
	}
}


/* ------------------------------------------------
     cta             
--------------------------------------------------- */
.section.cta{
	padding: 80px 0 0
}
.section.cta .cont-inn{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap:60px 30px;
}
.section.cta a{
	display: block;
	position: relative;
	width:calc((100% - 30px)/2)
}

.section.cta a .sec-ttl{
	font-size:4.2rem
}

.section.cta .sec-ttl-wrap{
	position: absolute;
	top:20px;
	left:0;
}

.section.cta .cta-img{
	border-radius: var(--radius-140);
	overflow: hidden
}

@media (max-width: 1080px) {
	.section.cta{
		padding: 40px 0 0
	}
	.section.cta .cont-inn{
		gap:30px;
	}
	.section.cta a .sec-ttl{
		line-height: 1.3
	}
	.section.cta .sec-ttl-wrap{
		top:5px;
	}
	.section.cta .cta-img{
		border-radius: var(--radius-100);
	}
}

@media (max-width: 768px) {
	.section.cta{
	padding: 4vw 0 0
	}
	.section.cta .cont-inn{
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		gap:10vw 4vw
	}
	.section.cta a{
		display: block;
		position: relative;
		width:calc((100% - 4vw)/2)
	}

	.section.cta a  .sec-ttl{
		font-size:6vw;
		margin-top: 0
	}
	.section.cta  .sec-ttl-wrap{
		position: absolute;
		top:1vw;
		left:2vw;
	}
	.section.cta .cta-img{
		border-radius: var(--radius-80_sp);
		overflow: hidden
	}

}


/* ------------------------------------------------
     contact             
--------------------------------------------------- */
.section.contact{
	padding: 60px 0 120px
}
.section.contact .cont-inn{
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap:60px 30px;
}
.section.contact a{
	display: block;
	position: relative;
	width:100%
}

.section.contact .sec-ttl-wrap{
	position: absolute;
	top:20px;
	left:0;
}
.section.contact .cta-img{
	border-radius: var(--radius-180);
	overflow: hidden
}

.section.contact .cta-txt{
	position: absolute;
	top:0;
	left:0;;
	bottom:0;
	right:0;
	margin: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size:2.2rem;
	color: var(--col-white);
	text-align: center
}
.section.contact .btn{
	position: absolute;
	bottom:40px;
	right:0;
	margin: auto;
}

@media (max-width: 1080px) {
	.section.contact{
		padding: 30px 0 80px
	}
	.section.contact .cont-inn{
		gap:30px;
	}
	.section.contact a .sec-ttl{
		line-height: 1.3
	}
	.section.contact .sec-ttl-wrap{
		top:5px;
	}
	.section.contact .cta-img{
		border-radius: var(--radius-140);
	}
	.section.contact .cta-txt{
		font-size:1.8rem;
		padding-top: 30px
	}
	.section.contact .btn{
		bottom:10px;
	}
}

@media (max-width: 768px) {
	.section.contact{
	padding: 10vw 0 14vw
	}
	.section.contact .cont-inn{
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		gap:10vw 4vw
	}
	.section.contact a{
		display: block;
		position: relative;
		width:100%
	}
	.section.contact a .sec-ttl{
		font-size:9vw;
		margin-top: 0;
	}
	.section.contact  .sec-ttl-wrap{
		top:-5.5vw;
	}
	.section.contact .cta-img{
		border-radius: var(--radius-120_sp);
		overflow: hidden
	}

	.section.contact .cta-txt{
		position: absolute;
		top:0;
		left:0;;
		bottom:0;
		right:0;
		margin: auto;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size:3.2vw;
		line-height: 1.4;
		color: var(--col-white);
	}

	.section.contact .btn{
		width:60vw;
		position: absolute;
		bottom:-6vw;
		right:0;
		margin: auto;
	}
}