@charset "utf-8";
/* ====================================================================================================

	layout.css

==================================================================================================== */

/* ----------------------------------------------------------------------------------------------------
	header
---------------------------------------------------------------------------------------------------- */
header {
	width:100%;
	height:108px;
	padding:23px 30px;
	z-index:211;
	}
	header .inner {
		position:relative;
		display:flex;
		justify-content:space-between;
		gap:45px;
		width:100%;
		text-align:left;
		line-height:1;
		margin:0 auto;
		}
		header .inner h1 {
			position:relative;
			width:440px;
			text-align:left;
			margin:6px 0 0 0;
			transition:none;
			}
			header .inner h1 a {
				display:block;
				}
				header .inner h1 a span {
					position:absolute;
					top:3px;
					left:85px;
					display:block;
					font-size:13px;
					font-weight:500;
					}
				header .inner h1 a img {
					width:100% !important;
					max-width:440px !important;
					margin:6px 0 0 0;
					}
		header .inner .right_column {
			text-align:right;
			}
			header .inner .right_column p.company_text {
				font-size:13px;
				line-height:1;
				margin:0 -3.5px 0 0;
				transition:none;
				}
				header .inner .right_column p.company_text span {
					vertical-align:super;
					transition:none;
					}
				header .inner .right_column p.company_text a {
					display:inline-block;
					color:#0166b1;
					font-size:30px;
					font-family:Montserrat;
					font-weight:bold;
					letter-spacing:2.5px;
					background:transparent url('../image/layout/icon_tel_blue.png') left top 2px / 24px 24px no-repeat;
					margin:0 0 0 15px;
					padding:0 0 0 32px;
					transition:none;
					}
			header .inner .right_column nav {
				margin:12px 0 0 0;
				}
				header .inner .right_column nav > ul {
					display:flex;
					justify-content:flex-end;
					list-style:none;
					}
					header .inner .right_column nav > ul > li {
						position:relative;
						display:flex;
						flex-direction:column;
						flex-shrink:0;
						}
					header .inner .right_column nav > ul > li::after {
						content:"";
						position:absolute;
						top:2px;
						right:0;
						display:inline-block;
						width:1px;
						height:18px;
						background:#cbe1ef;
						}
						header .inner .right_column nav > ul > li > span {
							font-size:18px;
							font-weight:600;
							letter-spacing:1px;
							padding:0 clamp(20px,1.42857vw,32px);
							transition:none;
							}
						header .inner .right_column nav > ul > li > a {
							font-size:18px;
							font-weight:600;
							letter-spacing:1px;
							padding:0 clamp(20px,1.42857vw,32px);
							transition:none;
							}
						header .inner .right_column nav > ul > li > a:hover {
							color:#0165b0;
							}
						header .inner .right_column nav > ul > li > ul {
							display:none;
							}

@media screen and (max-width:1260px) {
			header .inner .right_column p.company_text {
				font-size:13px;
				line-height:1;
				margin:8px 90px 0 0;
				}
				header .inner .right_column p.company_text span {
					display:block;
					vertical-align:baseline;
					margin:0 0 8px 0;
					}
				header .inner .right_column p.company_text a {
					margin:0 -3.5px 0 0;
					}
				header .inner .right_column nav ul {
					display:none;
					}
}

@media screen and (max-width:940px) {
/*
			header .inner h1 a {
				display:block;
				}
				header .inner h1 a span{
					display:block;
					font-size:14px;
					font-weight:500;
					}
*/
			header .inner .right_column p.company_text {
				display:none;
				}
}

@media screen and (max-width:640px) {
header {
	/*height:clamp(80px,25vw,108px);*/
	padding:23px 20px;
	}
	header .inner {
		gap:20px;
		}
/*
		header .inner h1 {
			display:flex;
			flex-direction:column;
			align-items:center;
			justify-content:center;
			text-align:left;
			}
				header .inner h1 a span {
					position:absolute;
					top:clamp(18px,5.625vw,5px);
					left:clamp(43px,13.437vw,95px);
					display:block;
					font-size:clamp(9px,2.812vw,14px);
					font-weight:500;
					}
				header .inner h1 a img {
					width:100% !important;
					max-width:440px !important;
					margin:6px 0 0 0;
					}
*/
				header .inner .right_column nav .toggle_navigation {
					right:20px;
					}
}

@media screen and (max-width:560px) {
header {
	height:83px;
	padding:23px 20px;
	}
		header .inner h1 {
			position:relative;
			width:220px;
			text-align:left;
			margin:3px 0 0 0;
			transition:none;
			}
			header .inner h1 a {
				display:block;
				}
				header .inner h1 a span {
					position:absolute;
					top:5px;
					left:43px;
					display:block;
					font-size:7px;
					font-weight:500;
					}
				header .inner h1 a img {
					width:100% !important;
					margin:6px 0 0 0;
					}
/**/
}

/* --------------------------------------------------
dropdown navigation */
						header .inner .right_column nav > ul > li > .dropdown_navigation {
							display:block;
							padding:20px 0 0 0;
							opacity:0;
							z-index:311;
							transition:all 0.2s ease-in-out;
							}
						header .inner .right_column nav > ul > li:hover > .dropdown_navigation {
							filter:drop-shadow(0px 0px 15px 0px rgba(0,0,0,0.1));
							opacity:1;
							}
							header .inner .right_column nav > ul > li > .dropdown_navigation > ul {
								position:relative;
								display:flex;
								flex-direction:column;
								width:calc(100% + 80px);
								background:#ffffff;
								box-shadow:0px 0px 15px 0px rgba(0,0,0,0.1);
								filter:drop-shadow(0px 0px 15px 0px rgba(0,0,0,0.1));
								margin:0 -40px;
								padding:5px 20px;
								list-style:none;
								}
							header .inner .right_column nav > ul > li > .dropdown_navigation > ul::before {
								content:"";
								position:absolute;
								top:calc(tan(-60deg) * 15px / 2);
								right:0;
								left:0;
								width:30px;
								height:calc(tan(60deg) * 15px / 2);
								background:#ffffff;
								box-shadow:0px 0px 15px 0px rgba(0,0,0,0.1);
								clip-path:polygon(50% 0,100% 100%,0 100%);
								margin:auto;
								}
								header .inner .right_column nav > ul > li > .dropdown_navigation > ul > li {
									}
									header .inner .right_column nav > ul > li > .dropdown_navigation > ul > li > a {
										position:relative;
										display:block;
										font-size:15px;
										font-weight:normal;
										text-align:left;
										border-top:1px solid #cbe1ef;
										padding:15px 0;
										}
									header .inner .right_column nav > ul > li > .dropdown_navigation > ul > li:nth-of-type(1) > a {
										border-top:none;
										}
									header .inner .right_column nav > ul > li > .dropdown_navigation > ul > li > a:hover {
										color:#0165b0;
										}
										header .inner .right_column nav > ul > li > .dropdown_navigation > ul > li > a::after {
											content:'';
											position:absolute;
											top:calc(50% - 4px);
											right:10px;
											width:9px;
											height:9px;
											border:0;
											border-top:2.5px solid #0166b1;
											border-right:2.5px solid #0166b1;
											border-radius:1px;
											transform:rotate(45deg);
											transition:all 0.4s ease-in-out;
											}
										header .inner .right_column nav > ul > li > .dropdown_navigation > ul > li > a:hover::after {
											right:2px;
											}

/* --------------------------------------------------
toggle_navigation button */
				header .inner .right_column nav .toggle_navigation {
					display:none;
					}

@media screen and (max-width:1260px) {
				header .inner .right_column nav .toggle_navigation {
					position:fixed;
					top:23px;
					right:30px;
					display:flex;
					justify-content:center;
					align-items:end;
					width:60px;
					height:60px;
					background:#f5f7f6;
					padding:10px;
					cursor:pointer;
					transition:none;
					z-index:999;
					}
					header .inner .right_column nav .toggle_navigation span:nth-child(-n+3) {
						position:absolute;
						display:block;
						width:30px;
						height:2px;
						background:var(--black);
						transition:none;
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(1) {
						top:15px;
						transition:all .2s ease;
						}
					header .inner .right_column nav.active .toggle_navigation span:nth-child(1) {
						top:25px;
						transform:rotate(45deg);
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(2) {
						top:23px;
						transition:opacity .2s ease;
						}
					header .inner .right_column nav.active .toggle_navigation span:nth-child(2) {
						opacity:0;
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(3) {
						top:31px;
						transition:all .2s ease;
						}
					header .inner .right_column nav.active .toggle_navigation span:nth-child(3) {
						top:25px;
						transform:rotate(-45deg);
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(4) {
						color:var(--black);
						font-size:10px;
						}
}

@media screen and (max-width:640px) {
				header .inner .right_column nav .toggle_navigation {
					right:20px;
					}
/*
				header .inner .right_column nav .toggle_navigation {
					top:clamp(20px,6.25vw,23px);
					right:20px;
					width:clamp(40px,12.5vw,60px);
					height:clamp(40px,12.5vw,60px);
					padding:clamp(5px,1.562vw,10px);
					}
					header .inner .right_column nav .toggle_navigation span:nth-child(-n+3) {
						width:clamp(20px,6.25vw,30px);
						height:2px;
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(1) {
						top:clamp(10px,3.125vw,15px);
						}
					header .inner .right_column nav.active .toggle_navigation span:nth-child(1) {
						top:25px;
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(2) {
						top:clamp(18px,5.625vw,23px);
						}
					header .inner .right_column nav.active .toggle_navigation span:nth-child(2) {
						opacity:0;
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(3) {
						top:clamp(26px,8.125vw,31px);
						}
					header .inner .right_column nav.active .toggle_navigation span:nth-child(3) {
						top:25px;
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(4) {
						font-size:clamp(8px,2.5vw,10px);
						}
*/
}

@media screen and (max-width:560px) {
				header .inner .right_column nav .toggle_navigation {
					top:20px;
					width:40px;
					height:40px;
					padding:4px;
					}
					header .inner .right_column nav .toggle_navigation span:nth-child(-n+3) {
						width:20px;
						height:2px;
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(1) {
						top:10px;
						}
					header .inner .right_column nav.active .toggle_navigation span:nth-child(1) {
						top:15px;
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(2) {
						top:16px;
						}
					header .inner .right_column nav.active .toggle_navigation span:nth-child(2) {
						opacity:0;
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(3) {
						top:22px;
						}
					header .inner .right_column nav.active .toggle_navigation span:nth-child(3) {
						top:15px;
						}
					header .inner .right_column nav .toggle_navigation span:nth-child(4) {
						font-size:8px;
						}
}

/* --------------------------------------------------
toggle_navigation */
				header .inner .right_column nav .toggle_navigation_contents {
					display:none;
					}
@media screen and (max-width:1260px) {
						header .inner .right_column nav .toggle_navigation_contents {
							position:fixed;
							top:0;
							right:-120%;
							display:block;
							width:100%;
							height:100%;
							background:#ffffff;
							opacity:0.95;
							overflow:auto;
							overscroll-behavior-y:contain;
							transition:all 0.6s;
							z-index:998;
							}
						header .inner .right_column nav.active .toggle_navigation_contents {
							right:0;
							}
							header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner {
								position:relative;
								display:block;
								width:100%;
								height:calc(100% + 1px);
								overflow:auto;
								overscroll-behavior-y:contain;
								z-index:998;
								}
								header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner .toggle_logo {
									position:absolute;
									top:35px;
									left:20px;
									display:block;
									max-width:440px;
									max-height:47px;
									}
									header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner .toggle_logo img {
										width:min(100%,440px);
										height:min(100%,47px);
										}
								header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul {
									display:flex;
									flex-direction:column;
									width:100%;
									border-top:2px solid #0166b1;
									margin:108px 0 0 0;
									}
									header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li {
										width:100%;
										list-style:none;
										}
										header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > a {
											position:relative;
											display:block;
											width:100%;
											font-size:17px;
											font-weight:bold;
											text-align:center;
											border-bottom:2px solid #0166b1;
											padding:20px;
											}
										header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > a::after,
										header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > ul > li > a::after {
											content:'';
											position:absolute;
											top:calc(50% - 5px);
											right:20px;
											width:11px;
											height:11px;
											border:0;
											border-top:2.5px solid #0166b1;
											border-right:2.5px solid #0166b1;
											border-radius:1px;
											transform:rotate(45deg);
											}
										header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > ul > li > a::after {
											top:calc(50% - 4px);
											width:8px;
											height:8px;
											border-top:2px solid #0166b1;
											border-right:2px solid #0166b1;
											}
										header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > span {
											position:relative;
											display:block;
											width:100%;
											font-size:17px;
											font-weight:bold;
											text-align:center;
											border-bottom:2px solid #0166b1;
											padding:15px 20px;
											}
											header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > ul {
												display:flex;
												list-style:none;
												}
												header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > ul > li {
													width:calc(100% / 3);
													}
													header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > ul > li > a {
														position:relative;
														display:block;
														width:100%;
														text-align:center;
														border-bottom:2px solid #0166b1;
														padding:15px 15px 15px 0;
														}
													header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > ul > li:nth-of-type(1) > a,
													header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > ul > li:nth-of-type(2) > a {
														border-right:1px solid #0166b1;
														}
								header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner .toggle_tel_text {
									text-align:center;
									margin:30px 0 0 0;
									padding:0 20px;
									}
									header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner .toggle_tel_text a {
										display:inline-block;
										color:#0166b1;
										font-size:30px;
										font-family:Montserrat;
										font-weight:bold;
										letter-spacing:2.5px;
										background:transparent url('../image/layout/icon_tel_blue.png') left top 2px / 24px 24px no-repeat;
										margin:0 0 0 15px;
										padding:0 0 0 32px;
										transition:none;
										}
								header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner .toggle_headline_text {
									display:block;
									text-align:center;
									line-height:1.6;
									white-space:pre-wrap;
									word-break:keep-all;
									margin:15px auto 20px auto;
									padding:0 20px;
									}
}

@media screen and (max-width:640px) {
/*
								header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul {
									margin:clamp(80px,25vw,108px) 0 0 0;
									}
*/
												header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > ul > li {
													width:calc(100% / 3);
													}
													header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > ul > li > a {
														font-size:clamp(12px,3.75vw,17px);
														}
													header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li a::after,
													header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul > li > ul > li a::after {
														right:clamp(15px,4.687vw,20px);
														}
}

@media screen and (max-width:560px) {
								header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner .toggle_logo {
									position:absolute;
									top:28px;
									left:20px;
									display:block;
									/*width:calc(100% - clamp(100px,31.25vw,120px));*/
									width:220px;
									max-height:35px;
									}
									header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner .toggle_logo img {
										width:100%;
										height:100%;
										}
								header .inner .right_column nav .toggle_navigation_contents .toggle_navigation_inner > ul {
									margin:80px 0 0 0;
									}
}


/* ----------------------------------------------------------------------------------------------------
	mainvisual
---------------------------------------------------------------------------------------------------- */
#mainvisual {
	position:relative;
	top:0;
	width:100%;
	height:300px;
	min-height:initial;
	background:#ffffff url('../image/mainvisual/01.jpg') center bottom / cover no-repeat;
	overflow:hidden;
	}
#mainvisual::before {
	content:"";
	position:absolute;
	inset:0;
	display:block;
	width:calc(100vw + 814px);
	min-height:100%;
	background-image:linear-gradient(114deg,#0066b0 0%,#0066b0 50%,transparent 50.05%,transparent 100%);
	background-position:left -407px top;
	mix-blend-mode:multiply;
	margin:0 -407px;
	z-index:111;
	}
	#mainvisual .inner {
		position:relative;
		display:flex;
		flex-direction:column;
		align-items:center;
		width:100%;
		height:100%;
		max-width:1260px;
		min-height:300px;
		margin:0 auto;
		z-index:122;
		}
		#mainvisual .inner p {
			position:absolute;
			left:30px;
			display:inline-block;
			color:#ffffff;
			text-align:left;
			}
		#mainvisual .inner p:nth-of-type(1) {
			top:calc(50% - clamp(15px,2.343vw,20px));
			font-size:40px;
			font-weight:700;
			line-height:1;
			letter-spacing:2px;
			margin:auto;
			}

#top #mainvisual {
	height:auto;
	min-height:776px;
	/*background:#ffffff url('../image/mainvisual/03.jpg') center bottom / cover no-repeat;*/
	background:none;
	}
	#top #mainvisual ul.slider {
		position:absolute;
		display:block;
		width:100%;
		min-height:776px;
		list-style:none;
		z-index:101;
		}
		#top #mainvisual ul.slider > li {
			display:block;
			width:100%;
			height:100%;
			}
		#top #mainvisual ul.slider > li:nth-of-type(1) { background:#000000 url('../image/mainvisual/01.jpg') center bottom / cover no-repeat; }
		#top #mainvisual ul.slider > li:nth-of-type(2) { background:#ffffff url('../image/mainvisual/02.jpg') center bottom / cover no-repeat; }
		#top #mainvisual ul.slider > li:nth-of-type(3) { background:#ffffff url('../image/mainvisual/03.jpg') center bottom / cover no-repeat; }
		#top #mainvisual ul.slider > li:nth-of-type(4) { background:#ffffff url('../image/mainvisual/04.jpg') center bottom / cover no-repeat; }
		#top #mainvisual ul.slider > li:nth-of-type(5) { background:#ffffff url('../image/mainvisual/05.jpg') center bottom / cover no-repeat; }
		#top #mainvisual ul.slider > li[aria-hidden="false"] {
			animation:anime_zoom 4s linear;
			}
		#top #mainvisual ul.slider > li[aria-hidden="true"] {
			transform:scale(1.2);
			}

@keyframes anime_zoom {
0% 		{ transform:scale(1.0); }
100% 	{ transform:scale(1.2); }
}
	#top #mainvisual .inner {
		position:absolute;
		top:0;
		max-width:1550px;
		min-height:776px;
		}
		#top #mainvisual .inner p:nth-of-type(1) {
			top:250px;
			line-height:1.8;
			white-space:pre-wrap;
			word-break:keep-all;
			}
			#top #mainvisual .inner p:nth-of-type(1) .limit {
				display:none;
				}
		#top #mainvisual .inner p:nth-of-type(2) {
			top:420px;
			}
			#top #mainvisual .inner p:nth-of-type(2) span {
				display:inline-block;
				width:auto;
				font-size:20px;
				font-weight:400;
				letter-spacing:1px;
				background:#202020;
				margin:0 0 12px 0;
				padding:7px 10px 7px 20px;
				}

@media screen and (max-width:1260px) {
#mainvisual::before {
	width:calc(1260px + clamp(600px,57.692vw,814px));
	background-position:left -407px top;
	margin:0 calc((clamp(600px,57.692vw,814px) / 2) * -1);
	}
}

@media screen and (max-width:1040px) {
#mainvisual::before {
	width:calc(1260px + clamp(306px,47.812vw,600px));
	background-position:left -407px top;
	margin:0 calc((clamp(306px,47.812vw,600px) / 2) * -1);
	}
}

@media screen and (max-width:640px) {
#mainvisual::before {
	width:calc(1260px + clamp(38px,11.875vw,306px));
	background-position:calc((416px + (170px - clamp(100px,31.25vw,170px))) * -1) top;
	margin:0 calc((clamp(38px,11.875vw,306px) / 2) * -1);
	}
	#mainvisual .inner {
		max-width:640px;
		}
		#mainvisual .inner p {
			left:20px;
			}
		#mainvisual .inner p:nth-of-type(1) {
			font-size:clamp(25px,7.812vw,40px);
			}
		#top #mainvisual .inner p:nth-of-type(1) {
			top:200px;
			font-size:clamp(30px,9.375vw,40px);
			}
		#top #mainvisual .inner p:nth-of-type(2) {
			top:370px;
			}
			#top #mainvisual .inner p:nth-of-type(2) span {
				font-size:clamp(15px,4.687vw,20px);
				}
}

@media screen and (max-width:500px) {
		#top #mainvisual .inner p:nth-of-type(1) {
			top:130px;
			}
			#top #mainvisual .inner p:nth-of-type(1) .limit {
				display:inline;
				}
}
/* 20240424:旧ver.
#mainvisual {
	position:relative;
	top:0;
	width:100%;
	height:300px;
	min-height:initial;
	background:#ffffff url('../image/mainvisual/03.jpg') center bottom / cover no-repeat;
	overflow:hidden;
	}
#mainvisual::before {
	content:"";
	position:absolute;
	inset:0;
	display:block;
	width:calc(100vw + 814px);
	min-height:100%;
	background-image:linear-gradient(114deg,#0066b0 0%,#0066b0 50%,transparent 50.05%,transparent 100%);
	background-position:left -407px top;
	mix-blend-mode:multiply;
	margin:0 -407px;
	z-index:111;
	}
	#mainvisual .inner {
		position:relative;
		display:flex;
		flex-direction:column;
		align-items:center;
		width:100%;
		height:100%;
		max-width:1260px;
		min-height:300px;
		margin:0 auto;
		z-index:122;
		}
		#mainvisual .inner p {
			position:absolute;
			left:30px;
			display:inline-block;
			color:#ffffff;
			text-align:left;
			}
		#mainvisual .inner p:nth-of-type(1) {
			top:calc(50% - clamp(15px,2.343vw,20px));
			font-size:40px;
			font-weight:700;
			line-height:1;
			letter-spacing:2px;
			margin:auto;
			}

#top #mainvisual {
	height:auto;
	min-height:776px;
	background:#ffffff url('../image/mainvisual/03.jpg') center bottom / cover no-repeat;
	}
	#top #mainvisual .inner {
		max-width:1550px;
		min-height:776px;
		}
		#top #mainvisual .inner p:nth-of-type(1) {
			top:250px;
			line-height:1.8;
			white-space:pre-wrap;
			word-break:keep-all;
			}
			#top #mainvisual .inner p:nth-of-type(1) .limit {
				display:none;
				}
		#top #mainvisual .inner p:nth-of-type(2) {
			top:420px;
			}
			#top #mainvisual .inner p:nth-of-type(2) span {
				display:inline-block;
				width:auto;
				font-size:20px;
				font-weight:400;
				letter-spacing:1px;
				background:#202020;
				margin:0 0 12px 0;
				padding:7px 10px 7px 20px;
				}

@media screen and (max-width:1260px) {
#mainvisual::before {
	width:calc(1260px + clamp(600px,57.692vw,814px));
	background-position:left -407px top;
	margin:0 calc((clamp(600px,57.692vw,814px) / 2) * -1);
	}
}

@media screen and (max-width:1040px) {
#mainvisual::before {
	width:calc(1260px + clamp(306px,47.812vw,600px));
	background-position:left -407px top;
	margin:0 calc((clamp(306px,47.812vw,600px) / 2) * -1);
	}
}

@media screen and (max-width:640px) {
#mainvisual::before {
	width:calc(1260px + clamp(38px,11.875vw,306px));
	background-position:calc((416px + (170px - clamp(100px,31.25vw,170px))) * -1) top;
	margin:0 calc((clamp(38px,11.875vw,306px) / 2) * -1);
	}
	#mainvisual .inner {
		max-width:640px;
		}
		#mainvisual .inner p {
			left:20px;
			}
		#mainvisual .inner p:nth-of-type(1) {
			font-size:clamp(25px,7.812vw,40px);
			}
		#top #mainvisual .inner p:nth-of-type(1) {
			top:200px;
			font-size:clamp(30px,9.375vw,40px);
			}
		#top #mainvisual .inner p:nth-of-type(2) {
			top:370px;
			}
			#top #mainvisual .inner p:nth-of-type(2) span {
				font-size:clamp(15px,4.687vw,20px);
				}
}

@media screen and (max-width:500px) {
		#top #mainvisual .inner p:nth-of-type(1) {
			top:130px;
			}
			#top #mainvisual .inner p:nth-of-type(1) .limit {
				display:inline;
				}
}
*/

/* ----------------------------------------------------------------------------------------------------
	contents
---------------------------------------------------------------------------------------------------- */
#contents {
	position:relative;
	width:100%;
	min-width:320px;
	background:#ffffff;
	padding:0 0 135px 0;
	z-index:211;
	}
#top #contents {
	}
	#contents section {
		text-align:left;
		}
		#contents section .inner {
			width:100%;
			max-width:1200px;
			margin:0 auto;
			}
			#contents section .inner h2 {
				position:relative;
				display:block;
				width:100%;
				height:70px;
				text-align:center;
				line-height:1;
				letter-spacing:3px;
				margin:0 0 50px 0;
				transition:none;
				}
				#contents section .inner h2 span {
					position:absolute;
					/*left:50%;*/
					right:0;/**/
					bottom:0;
					left:0;/**/
					display:inline-block;
					width:100%;/**/
					color:#0066b0;
					font-size:42px;
					font-weight:700;
					line-height:45px;
					white-space:pre-wrap;
					word-break:keep-all;
					background:-webkit-linear-gradient(-160deg,#3393df,#1e48b8);
					background:-o-linear-gradient(-160deg,#3393df,#1e48b8);
					background:linear-gradient(-160deg,#3393df,#1e48b8);
					-webkit-background-clip:text;
					-webkit-text-fill-color:transparent;
					margin:auto;/**/
					/*
					transform:translateX(-50%);
					-webkit-transform:translateX(-50%);
					-ms-transform:translateX(-50%);
					*/
					transition:none;
					z-index:222;
					}
				#contents section .inner h2 i {
					position:absolute;
					top:0;
					right:0;/**/
					/*left:50%;*/
					left:0;/**/
					display:inline-block;
					width:100%;/**/
					height:70px;
					color:#ecf1f5;
					font-size:60px;
					font-family:Montserrat;
					font-style:italic;
					font-weight:500;
					white-space:nowrap;
					background:-webkit-linear-gradient(180deg,#f1f4fb,#ecf1f5);
					background:-o-linear-gradient(180deg,#f1f4fb,#ecf1f5);
					background:linear-gradient(180deg,#f1f4fb,#ecf1f5);
					-webkit-background-clip:text;
					-webkit-text-fill-color:transparent;
					margin:auto;/**/
					/*
					transform:translateX(-50%);
					-webkit-transform:translateX(-50%);
					-ms-transform:translateX(-50%);
					*/
					transition:none;
					z-index:211;
					}

@media screen and (max-width:1260px) {
#contents {
	padding:0 30px 135px 30px;
	}
			#contents section .inner h2 {
				height:clamp(60px,9.375vw,70px);
				letter-spacing:clamp(1px,0.156vw,3px);
				}
				#contents section .inner h2 span {
					font-size:clamp(35px,5.468vw,42px);
					line-height:clamp(40px,6.25vw,45px);
					letter-spacing:3px;
					}
				#contents section .inner h2 i {
					height:clamp(45px,6.25vw,70px);
					font-size:clamp(40px,6.25vw,60px);
					line-height:clamp(40px,6.25vw,1);
					}
}

@media screen and (max-width:640px) {
#contents {
	padding:0 20px 135px 20px;
	}
			#contents section .inner h2 {
				height:clamp(45px,14.062vw,60px);
				letter-spacing:clamp(0,0.031vw,1px);
				}
				#contents section .inner h2 span {
					font-size:clamp(30px,9.375vw,35px);
					line-height:clamp(35px,10.937vw,40px);
					}
				#contents section .inner h2 i {
					height:clamp(25px,7.8125vw,45px);
					font-size:clamp(20px,6.25vw,40px);
					line-height:clamp(20px,6.25vw,40px);
					}
}


/* ----------------------------------------------------------------------------------------------------
	breadcrumb
---------------------------------------------------------------------------------------------------- */
#breadcrumb {
	width:100%;
	text-align:left;
	margin:0;
	padding:20px 0 50px 0;
	}
	#breadcrumb ul {
		display:flex;
		flex-wrap:wrap;
		gap:10px 2.7em;
		max-width:1200px;
		margin:0 auto;
		padding:0 0 0 2em;
		list-style:none;
		}
		#breadcrumb ul li {
			position:relative;
			}
		#breadcrumb ul li:nth-of-type(1) {
			margin:0 0 0 -2em;
			}
		#breadcrumb ul li::after {
			content:"≫";
			position:absolute;
			top:0;
			right:-2em;
			}
		#breadcrumb ul li:nth-last-of-type(1) {
			font-weight:bold;
			}
		#breadcrumb ul li:nth-last-of-type(1)::after {
			display:none;
			}
			#breadcrumb ul li a {
				color:#2a2790;
				text-decoration:underline;
				}
			#breadcrumb ul li:nth-of-type(1) a {
				background:transparent url('../image/layout/icon_home.png') left center / 20px 20px no-repeat;
				padding:0 0 0 2em;
				}
			#breadcrumb ul li a:hover {
				text-decoration:none;
				}

@media screen and (max-width:1040px) {
	#breadcrumb ul {
		font-size:clamp(12px,1.875vw,17px);
		}
			#breadcrumb ul li a:nth-of-type(1) {
				background-size:clamp(15px,2.343vw,20px) clamp(15px,2.343vw,20px);
				}
}


/* ----------------------------------------------------------------------------------------------------
	under
---------------------------------------------------------------------------------------------------- */
#under {
	margin:80px 0 0 0;
	}
	#under .inner {
		}
		#under .inner .container {
			display:flex;
			justify-content:space-between;
			box-shadow:16px 5px 10px rgba(0,0,0,0.03);
			padding:40px 60px;
			}
			#under .inner .container article {
				position:relative;
				width:484px;
				}
			#under .inner .container article:nth-of-type(2) {
				padding:17px 0 0 0;
				}
				#under .inner .container article h3 {
					max-width:593px;
					color:#0066b0;
					font-size:22px;
					font-weight:bold;
					aspect-ratio:593 / 64;
					}
				#under .inner .container article table {
					width:100%;
					margin:20px 0 0 0;
					}
					#under .inner .container article table tbody {
						}
						#under .inner .container article table tbody tr {
							border-top:1px solid #e5e5e5;
							}
						#under .inner .container article table tbody tr:nth-of-type(1) {
							border:none;
							}
							#under .inner .container article table tbody tr th,
							#under .inner .container article table tbody tr td {
								letter-spacing:1px;
								padding:17px 0;
								}
							#under .inner .container article table tbody tr th {
								width:5.5em;
								color:#0067c6;
								font-weight:700;
								}
							#under .inner .container article table tbody tr td {
								}
				#under .inner .container article .pagelink {
					position:absolute;
					right:0;
					bottom:0;
					}
				#under .inner .container article h4 {
					position:relative;
					font-size:17px;
					padding:0 0 0 10px;
					}
				#under .inner .container article h4::before {
					content:"";
					position:absolute;
					top:1px;
					bottom:0;
					left:0;
					display:inline-block;
					width:4px;
					height:17px;
					line-height:1;
					background:#0766aa;
					margin:auto;
					}
			#under .inner .container figure {
				margin:63px 0 0 0;
				}

@media screen and (max-width:1260px) {
		#under .inner .container {
			display:block;
			margin:0 -30px;
			padding:30px;
			transition:none;
			}
			#under .inner .container article {
				width:100%;
				transition:none;
				padding:0 0 40px 0;
				}
			#under .inner .container article:nth-of-type(2) {
				margin:40px 0 0 0;
				padding:0;
				}
				#under .inner .container article .pagelink {
					position:absolute;
					right:0;
					bottom:0;
					}
			#under .inner .container figure {
				text-align:center;
				background:#afcee0;
				transition:none;
				}
}

@media screen and (max-width:640px) {
		#under .inner .container {
			margin:0 -20px;
			padding:30px 20px;
			}
				#under .inner .container article table {
					display:flex;
					}
					#under .inner .container article table tbody {
						display:flex;
						flex-direction:column;
						width:100%;
						}
						#under .inner .container article table tbody tr {
							display:flex;
							flex-direction:column;
							width:100%;
							}
							#under .inner .container article table tbody tr th,
							#under .inner .container article table tbody tr td {
								width:100%;
								white-space:pre-wrap;
								word-break:keep-all;
								}
							#under .inner .container article table tbody tr th {
								padding:17px 0 5px 0;
								}
							#under .inner .container article table tbody tr td {
								padding:0 0 17px 0;
								}
}


/* ----------------------------------------------------------------------------------------------------
	footer
---------------------------------------------------------------------------------------------------- */
footer {
	position:relative;
	width:100%;
	height:470px;
	color:#fbffff;
	background:transparent url('../image/footer/bg.jpg') center bottom / cover no-repeat;
	overflow:hidden;
	z-index:311;
	}
footer::after {
	content:"";
	position:absolute;
	top:0;
	left:0;
	display:block;
	width:100%;
	height:100%;
	background:rgba(32,32,32,0.8);
	mix-blend-mode:multiply;
	z-index:211;
	}
	footer .inner {
		position:relative;
		display:flex;
		justify-content:space-between;
		width:100%;
		height:445px;
		max-width:1200px;
		color:#ffffff;
		text-align:center;
		margin:0 auto;
		padding:80px 0;
		z-index:333;
		}
		footer .inner .left_column {
			flex-basis:500px;
			text-align:left;
			margin:9px 0 0 0;
			}
			footer .inner .left_column .logo {
				max-width:593px;
				margin:0 auto;
				}
				footer .inner .left_column .logo a {
					}
/*
					footer .inner .left_column .logo a img {
						-webkit-filter:brightness(0) invert(1);
						filter:brightness(0) invert(1);
						}
*/
			footer .inner .left_column .company_text {
				font-size:16px;
				font-weight:400;
				letter-spacing:1px;
				white-space:pre-wrap;
				word-break:keep-all;
				margin:20px 0 0 0;
				}
			footer .inner .left_column .tel_text {
				margin:10px 0 0 0;
				}
				footer .inner .left_column .tel_text a {
					color:#fbffff;
					font-size:30px;
					font-family:Montserrat;
					font-weight:bold;
					letter-spacing:2.5px;
					background:transparent url('../image/layout/icon_tel_white.png') left top 6px / 24px 24px no-repeat;
					padding:0 0 0 32px;
					}
		footer .inner .right_column {
			text-align:right;
			margin:25px 0 0 0;
			}
			footer .inner .right_column > ul {
				display:flex;
				align-items:flex-start;
				list-style:none;
				gap:30px;
				}
				footer .inner .right_column > ul > li {
					display:flex;
					flex-direction:column;
					align-items:flex-start;
					}
					footer .inner .right_column > ul > li a {
						color:#fbffff;
						text-align:left;
						border-bottom:1px solid #fbffff;
						}
					footer .inner .right_column > ul > li a:hover {
						border-bottom:1px solid transparent;
						}
					footer .inner .right_column > ul > li > ul {
						display:flex;
						flex-direction:column;
						align-items:flex-start;
						list-style:none;
						gap:5px;
						margin:5px 0 0 0;
						}
						footer .inner .right_column > ul > li > ul > li {
							text-align:left;
							}
							footer .inner .right_column > ul > li > ul > li a {
								color:#fbffff;
								font-size:14px;
								font-weight:200;
								border-bottom:1px solid #fbffff;
								}
							footer .inner .right_column > ul > li > ul > li a:hover {
								border-bottom:1px solid transparent;
								}
		footer .inner .page_top {
			position:fixed;
			right:30px;
			bottom:30px;
			z-index:333;
			}
			footer .inner .page_top a {
				display:block;
				width:60px;
				height:60px;
				background-color:#308fde;
				background-image:-webkit-linear-gradient(140deg,#308fde,#1e4fb2);
				background-image:-o-linear-gradient(140deg,#308fde,#1e4fb2);
				background-image:linear-gradient(140deg,#308fde,#1e4fb2);
				border-radius:30px;
				cursor:pointer;
				}
			footer .inner .page_top a::before {
				content:"";
				position:absolute;
				inset:0;
				display:block;
				width:16px;
				height:16px;
				border-top:3px solid #ffffff;
				border-right:3px solid #ffffff;
				border-radius:2px;
				margin:auto;
				-webkit-transform:rotate(315deg);
				transform:rotate(315deg);
				}
			footer .inner .page_top a:hover {
				background-image:-webkit-linear-gradient(140deg,transparent,transparent);
				background-image:-o-linear-gradient(140deg,transparent,transparent);
				background-image:linear-gradient(140deg,transparent,transparent);
				}
	footer .copyright {
		position:absolute;
		bottom:0;
		display:block;
		width:100%;
		color:#848484;
		font-size:12px;
		text-align:center;
		line-height:25px;
		background:#202020;
		z-index:322;
		}

@media screen and (max-width:1260px) {
	footer .inner {
		flex-direction:column;
		padding:80px 30px;
		}
		footer .inner .left_column {
			flex-basis:auto;
			width:100%;
			text-align:center;
			margin:0;
			}
			footer .inner .left_column .tel_text {
				margin:10px 0 0 0;
				}
		footer .inner .right_column {
			width:100%;
			margin:30px 0 0 0;
			}
			footer .inner .right_column > ul {
				display:flex;
				align-items:flex-start;
				justify-content:center;
				list-style:none;
				gap:30px;
				}
		footer .inner .page_top {
			position:fixed;
			right:clamp(20px,1.923vw,30px);
			bottom:clamp(20px,1.923vw,30px);
			}
}

@media screen and (max-width:1040px) {
	footer .inner {
		padding:80px 20px;
		}
			footer .inner .page_top a {
				width:clamp(40px,6.25vw,60px);
				height:clamp(40px,6.25vw,60px);
				border-radius:clamp(20px,3.125vw,30px);
				}
			footer .inner .page_top a::before {
				width:clamp(10.5px,1.640vw,16px);
				height:clamp(10.5px,1.640vw,16px);
				border-top:clamp(2px,0.312vw,3px) solid #ffffff;
				border-right:clamp(2px,0.312vw,3px) solid #ffffff;
				}
}

@media screen and (max-width:640px) {
footer {
	height:auto;
	}
	footer .inner {
		flex-direction:column;
		height:auto;
		padding:50px 20px 70px 20px;
		}
		footer .inner .left_column {
			text-align:left;
			}
		footer .inner .right_column {
			width:calc(100% + 40px);
			text-align:center;
			margin:30px -20px 0 -20px;
			}
			footer .inner .right_column > ul {
				width:100%;
				flex-direction:column;
				align-items:stretch;
				gap:0;
				}
				footer .inner .right_column > ul > li {
					display:flex;
					flex-direction:column;
					align-items:stretch;
					}
					footer .inner .right_column > ul > li a {
						position:relative;
						display:block;
						width:100%;
						color:#fbffff;
						text-align:center;
						border-bottom:1px solid #fbffff;
						padding:10px 0;
						}
					footer .inner .right_column > ul > li:nth-of-type(1) a {
						border-top:1px solid #fbffff;
						}
					footer .inner .right_column > ul > li a:hover {
						border-bottom:1px solid #fbffff;
						}
					footer .inner .right_column > ul > li span {
						display:block;
						padding:10px 0;
						}
					footer .inner .right_column > ul > li > ul {
						flex-direction:row;
						align-items:center;
						gap:0;
						margin:0;
						}
						footer .inner .right_column > ul > li > ul > li {
							width:calc(100% / 3);
							text-align:center;
							}
							footer .inner .right_column > ul > li > ul > li a {
								position:relative;
								diplay:block;
								color:#fbffff;
								/*font-size:14px;*/
								font-size:clamp(12px,3.75vw,14px);
								font-weight:200;
								border-top:1px solid #fbffff;
								border-bottom:1px solid #fbffff;
								padding:10px 15px 10px 0;
								}
							footer .inner .right_column > ul > li > a::after,
							footer .inner .right_column > ul > li > ul > li > a::after {
								content:"";
								position:absolute;
								top:0;
								/*right:20px;*/
								right:clamp(15px,4.687vw,20px);
								bottom:0;
								width:8px;
								height:8px;
								border-top:2px solid #fbffff;
								border-right:2px solid #fbffff;
								margin:auto;
								-webkit-transform:rotate(45deg);
								transform:rotate(45deg);
								transition:all 0.4s ease-in-out;
								}
							footer .inner .right_column > ul > li > ul > li > a::after {
								width:6px;
								height:6px;
								border-top:1px solid #fbffff;
								border-right:1px solid #fbffff;
								}
							footer .inner .right_column > ul > li > ul > li:nth-of-type(1) a,
							footer .inner .right_column > ul > li > ul > li:nth-of-type(2) a {
								border-right:1px solid #fbffff;
								}
							footer .inner .right_column > ul > li > ul > li a:hover {
								border-bottom:1px solid #fbffff;
								}
}

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