/* ******************************************

css for service site v2.0

update 2026.09.02

****************************************** */

@charset "UTF-8";

@import "./_shared.css";
@import "./multilingual.css";



/*/==========================================================
/ 
/ ヘッダ
/
==========================================================/*/

/*----------------------------------
/ 
/ 企業カラー
/
 ----------------------------------*/
:root {
	--colA1:#007ACE;
	--colA2:#E1F2FB;
	--colA3:#EDF7FB;
}


/*----------------------------------

 メインロゴ

 ----------------------------------*/
#m-hdr-logo{
	display:inline-block;
	overflow:hidden;
	position:relative;
	height:95px;
	font-size:1.8rem;
	font-weight:600;
	line-height:125%;

	align-content: end;
	padding-bottom:10px;

	background-color:#FFFFFF;
	margin-left:calc(50% - 600px);
	z-index:12;
	pointer-events:none;
}

#m-hdr-logo > *{
	position:relative;
	vertical-align:middle;
	pointer-events:initial;
}

a#m-logoimg{
	display:inline-block;
	overflow:hidden;
}

a#m-logoimg img{
	width:auto;
	height:55px;
}

#m-hdr-logo > span{
	display:inline-block;
	overflow:hidden;
	max-width:260px;
}


@media screen and ( max-width:1119px) {

	#m-hdr-logo{
		margin-left:0;
		padding-bottom:0;
	}

}


/* for Narroe --------------------*/
@media screen and ( max-width:979px) {
	
	#m-hdr-logo{
		display:block;
		margin:0 0;
		width:100%;
		height:65px;
		font-size:1.4rem;
		line-height:125%;
		align-content:center;
		float:none;
		-webkit-box-shadow: 0 3px 6px rgba(0,0,0,0.4);
		box-shadow: 0 3px 6px rgba(0,0,0,0.4);
	}

	a#m-logoimg img{
		width:auto;
		height:41px;
	}

}


/*----------------------------------

 タイトルパーツ

 ----------------------------------*/
#m-ttl-data{
	display:inline-block;
	position:relative;
	/*font-size:0;*/
}

#m-ttl-data > span{
	display:inline-block;
	position:relative;
	vertical-align:top;
	font-size:1.6rem;
	font-weight:normal;
	line-height:100%;
	text-align:center;
}

#m-ttl-data > span:nth-child(1){
	margin-left:40px;
	min-width:150px;
	padding:0.5em 1em;
	color:#FFFFFF;
	background-color:var(--colA1);
	border:1px solid var(--colA1);
}

#m-ttl-data > span:nth-child(1)::after{
	content: "";
	position: absolute;
	height: 12px;
	width: 40px;
	clip-path: polygon(0 0,50% 100%,100% 0);
	background-color: var(--colA1);
	left:calc(50% - 20px);
	bottom: -11px;
}

#m-ttl-data > span:nth-child(2){
	margin-left:15px;
	padding:0.5em 1em;
	border:1px solid #767676;
}

#m-ttl-data > a[target="_blank"]{
	display:inline-block;
	overflow:hidden;
	margin-left:5px;
	padding: 0.5em 0.5em;
	font-size:1.6rem;
	font-weight:normal;
	line-height:100%;
	border:1px solid #333333;
	-webkit-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;
}

#m-ttl-data > a[target="_blank"]:hover{
	color:#333333;
	background-color:var(--colA3);
}

#m-ttl-data > a[target="_blank"]:after{
	content:"";
	display:none;
}


/* for Narroe --------------------*/
@media screen and ( max-width:979px) {

	#m-ttl-data > span,
	#m-ttl-data > a[target="_blank"]{
		font-size:1.4rem;
		line-height:100%;
	}

}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

	#m-ttl-data > span,
	#m-ttl-data > a[target="_blank"]{
		font-size:1.2rem;
		line-height:100%;
	}

	#m-ttl-data > span:nth-child(1){
		margin-left:0;
		min-width:auto;
		padding:0.5em 0.5em;
	}

	#m-ttl-data > span:nth-child(1)::after{
		height: 7px;
		width: 20px;
		left:calc(50% - 10px);
		bottom: -7px;
	}

	#m-ttl-data > span:nth-child(2){
		margin-left:5px;
		padding:0.5em 0.5em;
	}
}


/*----------------------------------

 グローバル ナビ フレーム

 ----------------------------------*/
#l-global-navi{
	position:relative;
}

/* for Narrow --------------------*/
@media screen and ( max-width:979px) {
	
	#l-global-navi{
		display:block;
		overflow-y:auto;
		padding:0 var(--side-mgn-h) var(--side-mgn-v);
		width:100vw;
		height:calc(100dvh -  90px);
		position:absolute;
		top:-100vh;
		background-color: var(--colA2);
		-webkit-transition: all 0.3s ease-out;
		transition: all 0.3s ease-out;
	}

	.navon #l-global-navi{
		top:90px;
	}

	body.navon{
		overflow:hidden;
		height:100%;
	}
}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

}


/*----------------------------------

 サブリンク フレーム

 ----------------------------------*/
#m-hdrlink{
	display:inline-block;
	overflow:hidden;
	font-size:1.4rem;
	/*font-weight:600;*/
	line-height:125%;
	text-align:right;
	position:absolute;
	bottom:62px;
	/*right:calc(50% - 600px)*/;
	right:max(0px,calc(50% - 600px));
	z-index: 13;
}

#m-hdrlink > ul{
	display:flex;
	gap:0 1.75em;
	align-items: center;
	float:left;
	margin:0.25em 2em 0.5em 0;
}


@media screen and ( max-width:1119px) {

	#m-hdrlink{
		right:25px;
	}

}


/* for Narrow --------------------*/
@media screen and ( max-width:979px) {

	#m-hdrlink{
		display:block;
		padding:5vw 2.5vw 2.5vw;
		text-align:left;
		position:relative;
		bottom:auto!important;
		right:auto;
		z-index: initial;
	}

	#m-hdrlink > ul{
		display:none;
	}

}



/*----------------------------------

 スマホ用リンク

 ----------------------------------*/
#l-hdrlink-sp{
	display:none;
}


/* for Narrow --------------------*/
@media screen and ( max-width:979px) {

	#l-hdrlink-sp{
		display:block;
		position:relative;
		top:auto;
		right:auto;
		padding:var(--side-mgn-h) var(--side-mgn-h);
		font-size:1.4rem;
		line-height:155%;
	}

	#l-hdrlink-sp > ul{
		display:flex;
		flex-wrap: wrap;
		gap:0.5em 0;
		margin:1.0em 0;
	}

	#l-hdrlink-sp > ul > li{
		width:50%;
	}

	#l-hdrlink-sp a{
		display:block;
		line-height:155%;
		color:#000000;
	}

	#l-hdrlink-sp > ul > li > a::before{
		content: "\e90b";
		margin-right: 0.25em;
		color: var(--colA1);
	}

	#l-hdrlink-sp > a{
		font-weight:600;
	}

	#l-hdrlink-sp > a + a{
		margin-top:1.0em;
	}

}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

}




/*----------------------------------

 ページ操作ボタン フレーム

 ----------------------------------*/
#m-pagectr{
	display:block;
	overflow:hidden;
	position:relative;
	white-space:nowrap;
	clear:both;
}

#m-pagectr > *{
	display:inline-block;
	overflow:hidden;
	position:relative;
	vertical-align:middle;
}

#m-pagectr > ul{
	display:flex;
	gap:0 1.75em;
	margin-top:0.55em;
	font-size:1.4rem;
	/*font-weight:600;*/
	line-height:125%;
	align-items: center;
	float:left;
}


/* for Narrow --------------------*/
@media screen and ( max-width:979px) {

	#m-pagectr{
		/*display: inline-block;*/
		display:block;
		vertical-align: middle;
		width:calc(100% - 120px - 0.5em);
		float:right;
		vertical-align:middle;
	}

	#m-pagectr > *{
		display:block;
	}

	#m-pagectr > ul{
		display:none;
	}

}




/*----------------------------------

 グローバル ナビ

 ----------------------------------*/
nav{
	display:block;
	clear:both;
	background-color: var(--colA3);
}

/*サブナビ用背景（PCのみ）*/
.pc nav::before{
	content:"";
	display:block;
	overflow:hidden;
	background-color: rgba(0,0,0,0.22);
	width:100%;
	height:calc(100vh - 120px);
	position:fixed;
	top:121px;
	left:0;
	z-index:-1;
	-webkit-transition: all 0.25s linear;
	transition: all 0.25s linear;
	opacity:0.0;
	visibility:hidden;
	/*backdrop-filter: blur(4px);*/
}

.pc nav.opn::before{
	visibility:visible;
	opacity:1.0;
}

ul#l-gnav{
	display:flex;
	height:50px;
	justify-content:space-between;
}

ul#l-gnav::after{
	content:"";
	width:1px;
	height:1.4rem;
	position:relative;
	top:calc(50% - 0.7rem);

	border-right:1px solid var(--colA1);
}

ul#l-gnav > li{
	flex-grow: 1;
	/*flex:1;*/
}

ul#l-gnav > li::before{
	content:"";
	width:1px;
	height:1.4rem;
	position:absolute;
	top:calc(50% - 0.7rem);
	border-left:1px solid var(--colA1);
}

ul#l-gnav > li > a{
	display:block;
	overflow:hidden;
	padding:1.25em 0;
	color:#000000;
	font-size:1.4rem;
	font-weight:600;
	/*line-height:125%;*/
	line-height:1.5em;
	text-align:center;
	position:relative;
}

.pc ul#l-gnav > li > a::after{
	content:"";
}

ul#l-gnav > li >  a > span{
	display:inline-block;
	text-decoration:none;
}

.pc{

	ul#l-gnav > li:hover,
	ul#l-gnav > li.opn{
		background-color:#FFFFFF;
	}

	body[id^="sch-"] ul#l-gnav > li:nth-child(1),
	body[id^="etc-"] ul#l-gnav > li:nth-child(2),
	body[id^="rtm-"] ul#l-gnav > li:nth-child(3),
	body[id^="tif-"] ul#l-gnav > li:nth-child(4),
	body[id^="fcst-"] ul#l-gnav > li:nth-child(5),
	body[id^="dpr-"] ul#l-gnav > li:nth-child(6),
	body[id^="sfd-"] ul#l-gnav > li:nth-child(7){
		background-color: #FFFFFF;
	}

}


/***********************************
 ナビアイコン
***********************************/
ul#l-gnav > li > a::before{
	display:inline-block;
	color:var(--colA1);
	font-size: 1.5em;
	/*line-height:100%;*/
	line-height:100%;
	margin-right: 0.25em;
	vertical-align: bottom;
}
ul#l-gnav > li:nth-child(1) > a::before{
	content: "\e900";
}
ul#l-gnav > li:nth-child(2) > a::before{
	content: "\e901";
}
ul#l-gnav > li:nth-child(3) > a::before{
	content: "\e902";
}
ul#l-gnav > li:nth-child(4) > a::before{
	content: "\e903";
}
ul#l-gnav > li:nth-child(5) > a::before{
	content: "\e905";
}
ul#l-gnav > li:nth-child(6) > a::before{
	content: "\e906";
}
ul#l-gnav > li:nth-child(7) > a::before{
	content: "\e907";
}

.pc ul#l-gnav > li:hover{
	background-color:#FFFFFF;
}


/* for Wide --------------------*/
@media screen and ( max-width:1199px) {

	ul#l-gnav > li > a{
		padding:0.5em 0;
	}

	ul#l-gnav > li > a::before{
		display:block;
		margin-right:0;
	}

	/*.pc ul#l-gnav > li:hover,
	.pc ul#l-gnav > li.opn{
		background-color:unset;
	}*/

}


/* for Narrow --------------------*/
@media screen and ( max-width:979px) {

	nav{
		background-color:unset;
	}

	ul#l-gnav{
		flex-direction:column;
		padding:0 var(--side-mgn-h);
		border-top: 1px solid var(--colA1);
		border-bottom: 1px solid var(--colA1);
		height:auto!important;
	}

	ul#l-gnav > li::before,
	ul#l-gnav > li > a::before,
	ul#l-gnav::after{
		display:none;
	}

	ul#l-gnav > li > a{
		padding:0.75em 0;
		font-weight:600;
		color:#000000;
		text-align: left;
	}

	ul#l-gnav > li > a.hassub::after{
		content: "\f106";
		float:right;
		font-size:1.4em;
		color:var(--colA1);
		position:relative;
		-webkit-transition: all 0.2s ease-out;
		transition: all 0.2s ease-out;
	}

	ul#l-gnav > li.opn > a.hassub::after{
		/*content: "\f107";*/
		transform: rotate(180deg);
	}

	ul#l-gnav > li + li{
		border-top: 1px solid var(--colA1);
	}

}



/*----------------------------------

 第二階層 ナビ

 ----------------------------------*/
.m-subnani{
	display:block;
	overflow:hidden;
	margin:0 auto;
	width:100%;
	height:0;
	position:absolute;
	top:50px;
	left:0;
	padding:0 45px;
	background-color:#FFFFFF;
	
	-webkit-box-shadow: 0 3px 3px rgba(0,0,0,0.2);
	box-shadow: 0 3px 3px rgba(0,0,0,0.2);

	-webkit-transition: all 0.3s ease-in-out;
	transition: all  0.3s ease-in-out;
}

li.opn > .m-subnani{
	height:215px;
	padding:30px 45px;
	-webkit-transition-delay: 0.4s;
	transition-delay: 0.4s;
}

.pc li > .m-subnani > *{
	opacity:0.0;
	-webkit-transition: all 0.3s linear;
	transition: all 0.3s linear;
}

.pc li.opn > .m-subnani > *{
	opacity:1.0;
}


.m-subnani a{
	display: inline-block;
	overflow:hidden;
	font-size:var(--txt-m);
	line-height:155%;
}

.m-subnani > p{
	display:block;
	overflow:hidden;
	padding-bottom:15px;
	border-bottom:1px solid var(--colA1);
}

.m-subnani > p a{
	font-size: var(--txt-m);
	line-height:125%;
	font-weight:600;
}
.m-subnani > p a::before{
	content: "\e90b";
	color:var(--colA1);
	margin-right:10px;
}

.m-subnani > ul{
	display:flex;
	flex-wrap:wrap;
	width:100%;
	gap:0.5em 2em;
	padding: 15px 0 15px 1em;
}

.m-subnani > ul > li > a{
	display:inline-block;
	overflow:hidden;
}
.m-subnani > ul > li > a::before{
	content: "\e90b";
	color:var(--colA1);
	margin-right:10px;
}


/*サブナビ 閉じるボタン*/
.nav-close{
	display:block;
	overflow:hidden;
	width:calc(100% - 90px);
	text-align:center;
	padding:15px 0;
	position:absolute;
	bottom: 0;
	left:50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

.nav-close > a{
	display:inline-block;
	overflow:hidden;
}

.nav-close > a::after{
	content: "\e916";
	margin-left:10px;
}

ul+.nav-close{
	border-top:1px solid #B4B4B4;
}


/* for Narrow --------------------*/
@media screen and ( max-width:979px) {

	.m-subnani{
		display:block;
		height:auto;
		max-height:0;
		position:relative;
		top:0!important;
		left:0;
		padding:0 0;
		background-color:unset;
		-webkit-transition: all 0.3s ease-in-out;
		transition: all 0.3s ease-in-out;
		box-shadow:unset;
	}

	li.opn > .m-subnani{
		height:auto!important;
		max-height:100vh;
		padding:0 0;
		-webkit-transition-delay:unset;
		transition-delay:unset;
	}

	.m-subnani a{
		display: block;
		font-size:var(--txt-s);
		line-height:155%;
	}

	.m-subnani > p{
		padding-bottom:0;
		border-bottom:unset;
	}

	.m-subnani > p a{
		font-size: var(--txt-s);
		line-height:125%;
	}

	.m-subnani > ul{
		padding-top:0;
		padding-left:0;
		flex-direction:column;
		margin:0.5em 1em;
		gap:0.5em 0;
	}

	.m-subnani > ul > li > a{
		display:block;
		text-indent: -1.25em;
		padding-left: 1.25em;
	}

	a[target="_blank"]::after{
		display:inline-block;
	}

	.nav-close{
		display:none;
	}

}




/*/==========================================================
/ 
/ スライドバナー ブロック
/
==========================================================/*/
.swiper-box{
	display:block;
	position:relative;
	width:100%;
	-webkit-user-select: none;
	user-select: none;
}

.swiper-box.nobnr{
	display:none;
}

.swiper-box > .l-outer-frame{
	padding:30px 0 60px;
}

/*
.swiper-box .swiper-slide a{
	max-height: 166px;
}
*/


#slyder-body{
	display:block;
	overflow:hidden;
	width:min(100%,1260px);
	margin:0 auto;
}

#slyder-body .swiper-slide{
	line-height:100%;
	text-align:center;
}

.swiper-slide a{
	display:block;
	overflow:hidden;
}

.swiper-slide img{
	width: min(100%,270px);
	height:auto;
}

.swiper-slide a + p{
	display:block;
	overflow: hidden;
	width: min(100%,270px);

	margin:0.25em auto 0;
	font-size:var(--txt-s);
	line-height:125%;
	white-space: nowrap;
	text-overflow: ellipsis;
	-webkit-text-overflow: ellipsis;
}

.swiper-pagination{
	bottom:20px!important;
}

.swiper-pagination-bullet{
	width:15px;
	height:15px;
}

.swiper-pagination-bullet-active{
	background-color:#767676;
}

.swiper-button-next,
.swiper-button-prev{
	width: 30px;
	height: 30px;
}

.swiper-button-next{
	right:-30px!important;
}

.swiper-button-prev{
	left:-30px!important;
}

@media screen and ( max-width:1200px) {

}


/* for Narrow --------------------*/
@media screen and ( max-width:979px) {


}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

	.swiper-box{
		
	}

	.swiper-box > .l-outer-frame{
		padding:var(--side-mgn-v) 0 60px;
	}

	#slyder-body{
		width:96vw;
	}

	#slyder-body .swiper-slide{
		/**/
	}

	/*.swiper-slide img{
		width:94vw;
	}*/

	.swiper-button-next,
	.swiper-button-prev{
		display:none!important;
	}

}



/*/==========================================================
/ 
/ ページリンク ブロック
/
==========================================================/*/
#l-site-links{
	display:block;
	overflow:hidden;
	position:relative;
	text-align:center;
	width:100%;
	height:240px;
	background:url('../img/site-links/bg_endline.webp') no-repeat 50% 50%;
	background-size:cover;
	align-content:center;
}

#l-site-links > ul{
	display:flex;
	overflow:hidden;
	justify-content:center;
	gap:0 20px;
}

#l-site-links > ul > li{
	width:min(100%,260px);
}

#l-site-links a{
	display:block;
	overflow:hidden;
	line-height:100%;
	font-size: 0;
	background-color:#FFFFFF;
}

#l-site-links a img{
	width: 100%;
	height:auto;
}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

	#l-site-links{
		width:100%;
		height:51vw;
		background:url('../img/site-links/_sp/bg_endline.webp') no-repeat 50% 50%;
		background-size:100% auto;
		letter-spacing:-.4em;
	}

	#l-site-links > ul{
		flex-wrap:wrap;
		gap:2vw 2.5vw;
	}

	#l-site-links > ul > li{
		width:calc(50% - 5vw);
	}	

}





/*/==========================================================
/ 
/ フッタ
/
==========================================================/*/

/*----------------------------------

 サイトマップ リンク

 ----------------------------------*/
#l-ft-upper{
	display:block;
	/*overflow:hidden;*/
	width: min(calc(100% - 4em),1200px);
	padding:2em 0;
	font-size:1.6rem;
	line-height:200%;
}

#l-ft-upper h3{
	font-size:var(--txt-m);
	font-weight:600;
	line-height:125%;
}

#l-ft-upper a{
	/*white-space:nowrap;*/
	text-decoration:none;
}

#l-ft-upper > a{
	display:inline-block;
	font-size:var(--txt-m);
	font-weight:600;
	line-height:200%;
}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {

	footer ul{
		flex-wrap:wrap;
	}

	#l-ft-upper{
		width:100%;
		padding:0 calc(var(--side-mgn-h)*2) 6.4vw;
	}

	#l-ft-upper h3{
		margin:1.5em 0 1em;
	}

	#l-ft-upper > a{
		margin:0 0;
	}

	footer address{
		padding:0 calc(var(--side-mgn-h)*2);
	}

}



/************************************
 料金・交通サイト
 ************************************/
ul#m-inner-link{
	margin:1em 0 2em;
	display:grid;
	gap:1em 1em;
	grid-template-columns:1fr 1fr 1fr 0.5fr 1fr 1.5fr;
	grid-template-rows:0.5fr 1fr;
}

ul#m-inner-link > li{
	display:inline-block;
	/*overflow:hidden;*/
	grid-row: 1/3;
}

ul#m-inner-link > li:nth-child(3){
	grid-column: 3;
	grid-row: 1;
}

ul#m-inner-link > li:nth-child(4){
	grid-column: 3/5;
	grid-row: 2;
}

ul#m-inner-link > li:nth-child(5){
	grid-column: 4;
	grid-row: 1;
}

ul#m-inner-link > li > a{
	display:inline-block;
	font-size:var(--txt-s);
	font-weight:600;
	line-height:125%;
	/*white-space:nowrap;*/
	text-indent: -1.25em;
	padding-left: 1.5em;
}

ul#m-inner-link > li > a.search-link:hover,
ul#m-inner-link > li > a.lang-link:hover{
	color: var(--colA1);
}

ul#m-inner-link > li > a::before{
	content: "\e90b";
	margin-right:10px;
	color:var(--colA1);
	vertical-align:middle;
}

ul#m-inner-link ul{
	font-size:var(--txt-s);
	line-height:155%;
}

ul#m-inner-link ul > li{
	margin-left:0.75em;
	margin-top:0.75em;
}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {
	ul#m-inner-link{
		padding-bottom:1.5em;
		border-bottom: 2px solid var(--colA1);
		margin:0 0 1.5em;
		gap:0.25em 0.5em;
		grid-template-columns:1fr 1fr;
		grid-template-rows:1fr 1fr 1fr 1fr;
	}

	ul#m-inner-link > li{
		display:block;
		grid-row:unset;
		width:100%;
	}

	ul#m-inner-link > li:nth-child(3),
	ul#m-inner-link > li:nth-child(4),
	ul#m-inner-link > li:nth-child(5){
		grid-column:unset;
		grid-row:unset;
	}

	ul#m-inner-link > li > ul{
		display:none;
	}

}



/************************************
 その他リンク
 ************************************/
ul#m-sub-ftLink{
	margin-bottom: 2em;
	display: flex;
	flex-wrap:wrap;
	gap: 1em 4em;
	font-size:var(--txt-s);
	line-height:155%;
}

ul#m-sub-ftLink > li > a{
	display:inline-block;
}

ul#m-sub-ftLink > li + li{
	margin-top:0;
}

/* for Sp --------------------*/
@media screen and ( max-width:768px) {
	
	ul#m-sub-ftLink{
		gap: 1em 1em;
	}

	ul#m-sub-ftLink > li{
		flex:1;
		min-width:calc(50% - 1em);
		margin-top:0;
	}

}


/*/==========================================================
/ 
/ Notice Popup
/
==========================================================/*/
#notice_frame{
	display:none;
}

#notice_body{
	display:block;
	overflow:hidden;
	padding:var(--mgn-m) var(--mgn-m);
	text-align:center;
}

#notice_body > p{
	text-align:left;
}

#notice_body > p + p{
	margin-top:1em;
}


a#modal-close-btn{
	margin-top:var(--mgn-l);
	display:inline-block;
	overflow:hidden;
	cursor:pointer;
}

a#modal-close-btn::after {
	content: "\f057";
}


/* for Sp --------------------*/
@media screen and ( max-width:768px) {
	
	#notice_body{
		padding:var(--mgn-m) 0;
	}

}



/*/==========================================================
/ 
/ チャットbot
/
==========================================================/*/
#konnect-container{
	right:auto;
	left:5px;
}

.cbot #l-ft-bottom{
	padding-bottom:130px;
}

