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

	layout.css

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

/* ----------------------------------------------------------------------------------------------------
	header
---------------------------------------------------------------------------------------------------- */
header {
	position:fixed;
	top:0;
	width:100%;
	height:auto;
	padding:0 40px;
	z-index:777;
	}
	header .inner {
		position:relative;
		display:flex;
		justify-content:space-between;
		gap:45px;
		width:100%;
		max-width:1820px;
		text-align:left;
		margin:0 auto;
		padding:40px 0;
		}
		header .inner h1 {
			flex-basis:200px;
			}
			header .inner h1 a {
				display:block;
				}
				header .inner h1 a img {
					width:200px !important;
					height:89px !important;
					max-width:200px !important;
					background:transparent;
					}
		header .inner p.headline_text {
			flex-basis:auto;
			flex-grow:1;
			font-weight:bold;
			text-align:left;
			margin:-2px 0 0 0;
			}
		header .inner div.rightbox {
			position:relative;
			display:flex;
			flex-direction:column;
			flex-shrink:0;
			margin:-9px 0 0 0;
			}
			header .inner div.rightbox p.openinghours_text {
				font-weight:normal;
				text-align:right;
				}
				header .inner div.rightbox p.openinghours_text a {
					display:inline-block;
					color:#15116f;
					font-size:22px;
					font-weight:bold;
					letter-spacing:0;
					transform:scaleX(0.85);
					margin:0 -12px 0 0;
					}
			header .inner div.rightbox nav {
				margin:20px -18px 0 0;
				}
				header .inner div.rightbox nav ul.standard {
					position:relative;
					display:flex;
					flex-wrap:wrap;
					list-style:none;
					}
					header .inner div.rightbox nav ul.standard li {
						position:relative;
						padding:0 18px 0 19px;
						}
					header .inner div.rightbox nav ul.standard li::before {
						content:"";
						position:absolute;
						top:4px;
						left:0;
						display:block;
						width:1px;
						height:15px;
						border-left:1px dotted var(--black);
						}
					header .inner div.rightbox nav ul.standard li:nth-of-type(1)::before {
						content:"";
						display:none;
						}
						header .inner div.rightbox nav ul.standard li a {
							position:relative;
							display:block;
							font-weight:bold;
							}
						header .inner div.rightbox nav ul.standard li a:hover {
							color:#14106e;
							transition:all 0.5s 0s ease;
							}
						header .inner div.rightbox nav ul.standard li a:hover::after,
						header .inner div.rightbox nav ul.standard li.current a::after {
							content:"";
							position:absolute;
							display:block;
							bottom:-10px;
							left:0;
							width:100%;
							height:2px;
							background:#14106e;
							opacity:1;
							}

/* ナビゲーションボタン */
				header .inner div.rightbox .navigation_button,
				header .inner div.rightbox .navigation_toggle,
				header .inner div.rightbox .toggle_navigation_contents {
					display:none;
					}
				header .inner div.rightbox nav .navigation_button {
					position:absolute;
					top:0;
					right:0;
					width:50px;
					height:50px;
					z-index:999;
					}
					header .inner div.rightbox nav .navigation_button .toggle_button {
						position:relative;
						display:block;
						width:50px;
						height:50px;
						background:#14116e;
						cursor:pointer;
						}
					header .inner div.rightbox nav .navigation_button .toggle_button::after {
						content:"Menu";
						position:absolute;
						bottom:3px;
						right:0;
						left:0;
						width:100%;
						color:#ffffff;
						font-size:0.6rem;
						text-align:center;
						text-transform:uppercase;
						}
						header .inner div.rightbox nav .navigation_button .toggle_button span,
						header .inner div.rightbox nav .navigation_button .toggle_button span::before,
						header .inner div.rightbox nav .navigation_button .toggle_button span::after {
							position:absolute;
							width:50%;
							height:2px;
							display:inline-block;
							background:#ffffff;
							border-radius:5px;
							transition:all .4s;
							}
						header .inner div.rightbox nav .navigation_button .toggle_button span::before,
						header .inner div.rightbox nav .navigation_button .toggle_button span::after {
							content:"";
							left:0;
							width:100%;
							}
						header .inner div.rightbox nav .navigation_button .toggle_button span {
							top:17px;
							left:calc((100% - 50%) / 2);
							}
						header .inner div.rightbox nav .navigation_button .toggle_button span::before {
							top:-8px;
							}
						header .inner div.rightbox nav .navigation_button .toggle_button span::after {
							top:8px;
							}
/*
					header .inner div.rightbox nav #navigation_toggle:checked ~ .navigation_button .toggle_button::after {
						content:"CLOSE";
						top:5px;
						left:4px;
						transform:translateY(0) rotate(-45deg);
						}
						header .inner div.rightbox nav #navigation_toggle:checked + .navigation_button .toggle_button span {
							top:14px;
							left:18px;
							width:30%;
							transform:translateY(6px) rotate(-45deg);
							}
						header .inner div.rightbox nav #navigation_toggle:checked + .navigation_button .toggle_button span::before {
							opacity:0;
							}
						header .inner div.rightbox nav #navigation_toggle:checked + .navigation_button .toggle_button span::after {
							top:26px;
							left:18px;
							width:30%;
							transform:translateY(-6px) rotate(45deg);
							}
*/

/* ナビゲーション */
						header .inner div.rightbox nav #navigation_toggle ~ .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 div.rightbox nav #navigation_toggle:checked ~ .toggle_navigation_contents {
							right:0;
							}
							header .inner div.rightbox nav #navigation_toggle ~ .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 div.rightbox nav #navigation_toggle ~ .toggle_navigation_contents .toggle_navigation_inner .toggle_logo {
									position:absolute;
									top:20px;
									left:20px;
									display:block;
									width:112px;
									height:50px;
									}
									header .inner div.rightbox nav #navigation_toggle ~ .toggle_navigation_contents .toggle_navigation_inner .toggle_logo img {
										width:100%;
										height:100%;
										}
								header .inner div.rightbox nav #navigation_toggle ~ .toggle_navigation_contents .toggle_navigation_inner ul {
									display:flex;
									flex-direction:column;
									width:100%;
									border-top:2px solid #14116e;
									margin:90px 0 0 0;
									}
									header .inner div.rightbox nav #navigation_toggle ~ .toggle_navigation_contents .toggle_navigation_inner ul li {
										width:100%;
										list-style:none;
										}
										header .inner div.rightbox nav #navigation_toggle ~ .toggle_navigation_contents .toggle_navigation_inner ul li a {
											position:relative;
											display:block;
											width:100%;
											font-size:20px;
											font-weight:bold;
											text-align:center;
											border-bottom:2px solid #14116e;
											padding:15px 20px;
											}
										header .inner div.rightbox nav #navigation_toggle ~ .toggle_navigation_contents .toggle_navigation_inner ul li a::after {
											content:'';
											position:absolute;
											top:calc(50% - 7px);
											right:30px;
											width:13px;
											height:13px;
											border:0;
											border-top:3.5px solid #2a2790;
											border-right:3.5px solid #2a2790;
											border-radius:1px;
											transform:rotate(45deg);
											}
								header .inner div.rightbox nav #navigation_toggle ~ .toggle_navigation_contents .toggle_navigation_inner .toggle_company_text {
									display:block;
									text-align:center;
									margin:20px auto 0 auto;
									padding:0 20px;
									}
								header .inner div.rightbox nav #navigation_toggle ~ .toggle_navigation_contents .toggle_navigation_inner .toggle_tel_text {
									text-align:center;
									margin:10px 0 0 0;
									padding:0 20px;
									}
									header .inner div.rightbox nav #navigation_toggle ~ .toggle_navigation_contents .toggle_navigation_inner .toggle_tel_text a {
										display:inline-block;
										color:#15116f;
										font-size:35px;
										font-weight:bold;
										letter-spacing:0;
										transform:scaleX(0.85);
										margin:0 -12px 0 0;
										}
								header .inner div.rightbox nav #navigation_toggle ~ .toggle_navigation_contents .toggle_navigation_inner .toggle_headline_text {
									display:block;
									text-align:center;
									margin:10px auto 20px auto;
									padding:0 20px;
									}

/* -----/ fixed /----- */
header.fixed {
	background:#ffffff;
	border-bottom:2px solid #2a2790;
	}
	header.fixed .inner {
		gap:20px;
		width:100%;
		max-width:1820px;
		height:90px;
		text-align:left;
		margin:0 auto;
		padding:20px 0;
		overflow:hidden;
		}
		header.fixed .inner h1 {
			flex-basis:112px;
			}
				header.fixed .inner h1 a img {
					width:112px !important;
					height:50px !important;
					max-width:112px !important;
					}
		header.fixed .inner p.headline_text {
			font-size:13px;
			}
			header.fixed .inner div.rightbox p.openinghours_text {
				font-size:13px;
				margin:2px 0 0 0;
				}
			header.fixed .inner div.rightbox nav {
				margin:5px -18px 0 0;
				}
						header.fixed .inner div.rightbox nav ul.standard li a:hover::after,
						header.fixed .inner div.rightbox nav ul.standard li.current a::after {
							display:none;
							}

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

		header .inner p.headline_text {
			display:none;
			}

}

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

header {
	padding:0 30px;
	}
	header .inner {
		padding:30px 0;
		}
		header .inner h1 {
			flex-basis:112px;
			}
				header .inner h1 a img {
					width:112px !important;
					height:50px !important;
					max-width:112px !important;
					}
		header .inner div.rightbox {
			margin:0;
			}
			header .inner div.rightbox p.openinghours_text {
				font-size:13px;
				margin:0 70px 0 0;
				}
			header.fixed .inner div.rightbox p.openinghours_text {
				font-size:13px;
				margin:0 70px 0 0;
				}
				header .inner div.rightbox p.openinghours_text a {
					display:block;
					margin:0 -20px 0 0;
					}

/* ナビゲーションボタン */
			header .inner div.rightbox nav {
				margin:0;
				}
				header .inner div.rightbox nav ul.standard {
					display:none;
					}
				header .inner div.rightbox .navigation_button {
					display:block;
					}

}

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

header {
	padding:0 20px;
	}
	header .inner {
		padding:20px 0;
		}
			header .inner div.rightbox p.openinghours_text {
				margin:0 70px 0 0;
				}

}

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

			header .inner div.rightbox p.openinghours_text {
				display:none;
				}

}


/* ----------------------------------------------------------------------------------------------------
	mainvisual
---------------------------------------------------------------------------------------------------- */
#mainvisual {
	position:fixed;
	width:100%;
	height:360px;
	min-height:initial;
	background:#ffffff url('../image/mainvisual/01.jpg') center bottom / cover no-repeat;
	z-index:111;
	}
#top #mainvisual {
	height:auto;
	min-height:800px;
	background:#ffffff url('../image/mainvisual/01.jpg') center bottom / cover no-repeat;
	padding:0 40px;
	}
	#mainvisual .inner {
		position:relative;
		width:100%;
		max-width:1820px;
		height:100%;
		min-height:800px;
		margin:0 auto;
		padding:40px 0;
		}
		#mainvisual .inner p {
			position:absolute;
			bottom:70px;
			font-size:55px;
			font-family:var(--ff-min);
			font-weight:normal;
			text-align:left;
			text-shadow:0 0 5px #ffffff;
			letter-spacing:3px;
			}

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

#top #mainvisual {
	padding:0 30px;
	}

}

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

#mainvisual {
	height:300px;
	}
#top #mainvisual {
	padding:0 20px;
	}

}

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

#mainvisual {
	height:200px;
	}
		#mainvisual .inner p {
			font-size:40px;
			}

}


/* ----------------------------------------------------------------------------------------------------
	contents
---------------------------------------------------------------------------------------------------- */
#contents {
	position:relative;
	top:360px;
	width:100%;
	background:#ffffff;
	overflow:hidden;
	z-index:555;
	}
#top #contents {
	top:800px;
	}
	#contents section.type01 {
		position:relative;
		width:100%;
		padding:75px 0 0 0;
		}
		#contents section.type01 .inner {
			width:100%;
			max-width:1200px;
			margin:0 auto;
			}
			#contents section.type01 .inner h2 {
				width:480px;
				height:87px;
				text-align:left;
				padding:0 0 0 40px;
				}
			#contents section.type01 .inner h2::before {
				content:"";
				position:absolute;
				top:71px;
				left:0;
				display:block;
				width:calc(((100% - 1200px) / 2) + 480px);
				min-width:480px;
				height:91px;
				background-color:transparent,transparent;
				background-image:url('../image/layout/subject_icon.png'),url('../image/layout/subject_bg.png');
				background-position:right 378px top,left bottom;
				background-size:129px 66px,2px 70px;
				background-repeat:no-repeat,repeat-x;
				}
				#contents section.type01 .inner h2 span {
					position:relative;
					color:#14106e;
					display:block;
					font-size:40px;
					font-weight:300;
					font-family:var(--ff-rounded);
					line-height:30px;
					letter-spacing:0;
					transform:scaleX(1.14);
					margin:0 0 0 26px;
					}
				#contents section.type01 .inner h2 small {
					position:relative;
					display:block;
					color:var(--black);
					font-size:15px;
					font-family:var(--ff-jp);
					font-weight:bold;
					line-height:15px;
					margin:17px 0 0 0;
					}

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

	#contents section.type01 {
		padding:75px 30px 0 30px;
		}
			#contents section.type01 .inner h2 {
				padding:0;
				}
				#contents section.type01 .inner h2 span {
					font-size:35px;
					line-height:30px;
					transform:scaleX(1.14);
					margin:0 0 0 30px;
					}
				#contents section.type01 .inner h2 small {
					font-size:14px;
					line-height:13px;
					margin:17px 0 0 0;
					}

}

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

#contents {
	top:300px;
	}
	#contents section.type01 {
		padding:75px 20px 0 20px;
		}

}

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

#contents {
	top:200px;
	}
			#contents section.type01 .inner h2::before {
				content:"";
				position:absolute;
				top:71px;
				left:0;
				display:block;
				width:100%;
				min-width:auto;
				height:91px;
				background-color:transparent,transparent;
				background-image:url('../image/layout/subject_icon.png'),url('../image/layout/subject_bg.png');
				background-position:left -27px top,left bottom;
				background-size:129px 66px,2px 70px;
				background-repeat:no-repeat,repeat-x;
				}

}


/* ----------------------------------------------------------------------------------------------------
	breadcrumb
---------------------------------------------------------------------------------------------------- */
#breadcrumb {
	position:relative;
	width:100%;
	text-align:left;
	margin:0 0 -30px 0;
	padding:20px 0 0 0;
	z-index:555;
	}
	#breadcrumb ul {
		display:flex;
		flex-wrap:wrap;
		gap:5px;
		max-width:1200px;
		margin:0 auto;
		padding:0 0 10px 25px;
		/*overflow-x:scroll; 物件情報を組み込みたい場合はこちら*/
		list-style:none;
		}
		#breadcrumb ul li {
			position:relative;
			flex-shrink:0;
			margin:0 35px 0 0;
			}
		#breadcrumb ul li::after {
			content:"≫";
			position:absolute;
			top:0;
			right:-2em;
			}
		#breadcrumb ul li:nth-of-type(1) {
			position:relative;
			}
		#breadcrumb ul li:nth-of-type(1)::before {
			content:"";
			position:absolute;
			top:1px;
			left:-25px;
			display:block;
			width:20px;
			height:20px;
			background:transparent url('../image/layout/ic_breadcrumb.png') left top / 20px 20px no-repeat;
			}
		#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 a:hover {
				text-decoration:none;
				}

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

#breadcrumb {
	padding:20px 30px 0 30px;
	}

}

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

#breadcrumb {
	padding:20px 20px 0 20px;
	}

}


/* ----------------------------------------------------------------------------------------------------
	under
---------------------------------------------------------------------------------------------------- */
#under {
	width:100%;
	background:#f4f4f4;
	margin:80px 0;
	padding:50px 0;
	}
	#under .inner {
		max-width:1200px;
		margin:0 auto;
		}
		#under .inner dl {
			display:flex;
			flex-wrap:wrap;
			justify-content:space-between;
			}
			#under .inner dl dt {
				width:100%;
				color:#2a2893;
				font-size:30px;
				font-weight:bold;
				margin:0 0 30px 0;
				}
			#under .inner dl dd {
				position:relative;
				width:calc(100% / 2);
				padding:120px 0 0 0;
				}
			#under .inner dl dd:nth-of-type(1) {
				background:transparent url('../image/under/icon_smartphone.png') center top / 57px 99px no-repeat;
				}
			#under .inner dl dd:nth-of-type(2) {
				background:transparent url('../image/under/icon_mail.png') center top 2px / 101px 96px no-repeat;
				}
			#under .inner dl dd:nth-of-type(1)::after {
				content:"";
				position:absolute;
				top:0;
				right:-1px;
				display:block;
				height:100%;
				border-right:2px dotted #b5b5b5;
				}
				#under .inner dl dd p {
					font-weight:bold;
					}
				#under .inner dl dd p.tel {
					margin:0 0 12px 0;
					}
					#under .inner dl dd p.tel a,
					#under .inner dl dd p.tel a:hover {
						color:#7e7cb8;
						}
				#under .inner dl dd p.button {
					margin-top:3px;
					}

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

#under {
	margin:50px 0;
	padding:10px 0;
	}
	#under .inner {
		width:calc(100% - 40px);
		overflow:hidden;
		}
		#under .inner dl {
			flex-direction:column;
			}
			#under .inner dl dt {
				margin:20px 0;
				}
			#under .inner dl dd {
				width:100%;
				max-width:540px;
				margin:0 auto;
				}
			#under .inner dl dd:nth-of-type(1) {
				background:transparent url('../image/under/icon_smartphone.png') left 38px center / auto 75px no-repeat;
				padding:20px 20px 20px 120px;
				}
			#under .inner dl dd:nth-of-type(2) {
				background:transparent url('../image/under/icon_mail.png') left 20px center / auto 75px no-repeat;
				padding:20px 20px 20px 120px;
				}
			#under .inner dl dd:nth-of-type(1)::after {
				display:none;
				}
			#under .inner dl dd:nth-of-type(1)::before,
			#under .inner dl dd:nth-of-type(2)::before {
				content:"";
				position:absolute;
				top:-1px;
				left:-50vw;
				display:block;
				width:calc(200vw);
				border-bottom:2px dotted #b5b5b5;
				}

}

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

			#under .inner dl dt {
				font-size:25px;
				}

}

/* ----------------------------------------------------------------------------------------------------
	footer
---------------------------------------------------------------------------------------------------- */
footer {
	position:relative;
	top:360px;
	background:#2a2790 url('../image/footer/bg.gif') center top 30px / 625px 324px no-repeat;
	z-index:555;
	}
#top footer {
	top:800px;
	}
	footer .inner {
		width:100%;
		max-width:1820px;
		color:#ffffff;
		text-align:center;
		margin:0 auto;
		padding:100px 0;
		}
		footer .inner .logo {
			margin:0 auto 45px auto;
			}
		footer .inner ul {
			display:flex;
			flex-wrap:wrap;
			justify-content:center;
			gap:20px;
			margin:0 0 50px 0;
			list-style:none;
			}
			footer .inner ul li {
				position:relative;
				}
				footer .inner ul li a {
					display:inline-block;
					color:#ffffff;
					font-weight:bold;
					}
				footer .inner ul li a::after {
					content:"";
					display:block;
					border-bottom:1px dotted #ffffff;
					padding:3px 0 0 0;
					}
				footer .inner ul li a:hover::after {
					border-bottom:1px solid #ffffff;
					}
		footer .inner p {
			}
			footer .inner p a,
			footer .inner p a:hover {
				color:#ffffff;
				}
	footer .copyright {
		display:block;
		width:100%;
		color:#2b288f;
		font-family:var(--ff-min);
		text-align:center;
		line-height:100px;
		background:#ffffff;
		}
@media screen and (max-width:1040px) {

footer {
	top:300px;
	}

}

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

		footer .inner ul {
			width:calc((24em + 100px) + 24px); /*(1行の文字数em + 100px) + 1行の文字数px*/
			margin:0 auto 50px auto;
			}

}

@media screen and (max-width:640px) {
footer {
	top:200px;
	background:#2a2790 url('../image/footer/bg.gif') center top 10px / 350px auto no-repeat;
	}
	footer .inner {
		padding:50px 20px;
		}
		footer .inner .logo {
			width:200px;
			margin:0 auto 30px auto;
			}
			footer .inner .logo img {
				width:200px;
				height:auto;
				}
		footer .inner ul {
			width:calc((12em + 40px) + 12px); /*(1行の文字数em + 40px) + 1行の文字数px*/
			margin:0 auto 30px auto;
			}
	footer .copyright {
		font-size:12px;
		line-height:50px;
		}

}