@charset "UTF-8";
/*
	* Bootstrap ヘッダ・フッタに関するカスタムCSS

	@media screen and (max-width: 1499.98px) {}
	@media (max-width: 991.98px) {}
	@media print {}
	@media screen and (max-width: 767px) {}
 
	xxl-1500over(min-1500)
	xl-1500(max-1499) 左右余白15pxを含む（1470）
	lg-992(max-991)
	md-768(max-767)
	sm-576(max-575)
 
	-------------------

	初期設定（変更不要）
	-ドロップダウンメニュー内設定

	ヘッダーレイアウト（PCのベースレイアウト・ホバー動作）
	-追加ボタン（svgアイコン付き）
	
	ヘッダースクロール時にバックドロップフィルター

	バーガーメニューCSS 外観
	バーガーメニューCSS 内容
	
	ヘッダー印刷専用スタイル
	
	フッターレイアウト

*/

/* 初期設定（変更不要） */
	#nav-overlay{/* メニュー外クリックで閉じる為の追加オーバーレイ */
		display: block !important;
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.5);
		z-index: 1000;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.6s ease, visibility 0.6s;
	}
	#nav-overlay.is-active{
		visibility: visible;
		opacity: 1;
	}

	.cus-header-normal .header-nav .header-nav-col{/* Bootstrap設定上書き */
		display: -webkit-flex !important;
		display: flex !important;
		justify-content: flex-end !important;
		text-align: right !important;
	}

/* PCサイズ ヘッダー */
	@media screen and (min-width: 992px) {
		.cus-header-normal{
			position: fixed;
			display: flex;
			align-items: center;
			background-color: rgba(29, 51, 99, 0.9) !important;
			background-color: red;
			padding: 0 2%;
			width: 100%;
			height: 88px;
			z-index: 5;
		}

		.cus-header-normal .header-logo{
			position: relative;
			top: 5px;
			flex-shrink: 0;
			width: 379px;
			z-index: 8;
		}

		.cus-header-normal .header-menu-toggle{
			display: none;
		}

		.cus-header-normal .header-nav{
			flex: 1;
			display: flex;
			justify-content: flex-end;
			align-items: center;
		}

		.cus-header-menu{
			display: flex;
			align-items: center;
			gap: 30px;
			padding-right: 60px;
		}
		.cus-header-menu li a{
			position: relative;
			display: block;
			color: white;
			text-decoration: none;
		}
		.cus-header-menu li a::before{
			content: '';
			position: absolute;
			bottom: -3px;
			left: 0px;
			background-color: white;
			width: 100%;
			height: 1px;
			transform: scaleX(0);
			transform-origin: left;
			transition: transform 0.3s ease;
		}
		.cus-header-menu li a:hover::before,
		.cus-header-menu li .active::before{
			transform: scaleX(1);
		}
		.cus-header-menu li .active::before{
			content: '';
			position: absolute;
			bottom: -3px;
			left: 0px;
			background-color: white;
			width: 100%;
			height: 1px;
		}

		.cus-header-phone{
			color: white;
			text-align: center;
		}
		.cus-header-phone .dial{
			font-size: 28px;
			font-weight: 500;
			line-height: 1.2;
		}
		.cus-header-phone .text{
			font-size: 14px;
		}
	}
	@media screen and (min-width: 992px) and (max-width: 1499.98px) {
		.cus-header-normal .header-logo{
			top: 8px;
			width: 22vw;
		}
		.cus-header-menu{
			gap: 20px;
			padding-right: 2vw;
		}
		.cus-header-menu li a{
			font-size: 16px;
		}

		.cus-header-phone .dial{
			font-size: 22px;
		}
		.cus-header-phone .text{
			font-size: 13px;
		}
	}

/* PCサイズ ヘッダースクロール時にバックドロップフィルター */
	@media screen and (min-width: 992px) {
		.cus-header-normal{
			background-color: rgba(255, 255, 255, 0);
			backdrop-filter: blur(0px);
			-webkit-backdrop-filter: blur(0px);
			
			/* スクロール連動アニメーションの設定 */
			animation: headerGlass linear both;
			animation-timeline: scroll(root);
			animation-range: 200px 400px; /* 2px〜400pxの間でアニメーションを変化 */
		}

		/* すりガラスへ変化するアニメーションの中身 */
		@keyframes headerGlass{
			to {
				background-color: rgba(255, 255, 255, 0.75);
				backdrop-filter: blur(12px);/* すりガラスのボカシ具合 */
				-webkit-backdrop-filter: blur(12px);/* Safari用保守 */
				box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05); /* 軽い陰影で立体感をプラス */
			}
		}
	}


/* バーガーメニューCSS */
	@media screen and (max-width: 991.98px) {/* 991.98px以下でバーガーメニューに切り替え */
		.cus-header-normal{
			position: sticky;
			top: 0;
			display: flex;
			align-items: center;
			justify-content: space-between;
			background-color: rgba(29, 51, 99, 0.9) !important;
			padding: 0 5%;
			width: 100%;
			height: 78px;
			z-index: 1001;
		}
	
		.cus-header-normal .header-logo{
			margin: 0;
			width: min(68vw, 300px);
		}
		.cus-header-normal .header-logo img{
			display: block;
			width: 100%;
			height: auto;
		}
	
		.cus-header-normal .header-menu-toggle{
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 7px;
			border: 0;
			background: transparent;
			padding: 10px;
			width: 52px;
			height: 52px;
		}
		.cus-header-normal .header-menu-toggle span{
			display: block;
			background-color: white;
			width: 32px;
			height: 3px;
			transition: transform 0.3s ease, width 0.3s ease;
		}
		.cus-header-normal.is-menu-open .header-menu-toggle span:nth-child(1){
			width: 20px;
			transform: translate(-6px, 10px) rotate(45deg);
			transform-origin: left center;
		}
		.cus-header-normal.is-menu-open .header-menu-toggle span:nth-child(3){
			width: 20px;
			transform: translate(-6px, -10px) rotate(-45deg);
			transform-origin: left center;
		}
	
		.cus-header-normal .header-nav{
			position: fixed;
			top: 78px;
			bottom: 0;
			left: 0;
			overflow-y: auto;
			background-color: rgba(29, 51, 99, 0.98);
			padding: 30px 8%;
			width: 90%;
			transform: translateX(-100%);
			transition: transform 0.4s ease;
			z-index: 1002;
		}
		.cus-header-normal.is-menu-open .header-nav{
			transform: translateX(0);
		}
	
		.cus-header-normal .cus-header-menu{
			display: block;
			padding: 0;
		}
		.cus-header-normal .cus-header-menu li{
			border-bottom: rgba(255, 255, 255, 0.3) solid 1px;
		}
		.cus-header-normal .cus-header-menu li a{
			display: block;
			padding: 18px 0;
			color: white;
			text-decoration: none;
		}
		.cus-header-normal .cus-header-menu li a::before{
			display: none;
		}
		.cus-header-normal .cus-header-menu li .active{
			background: rgba(255, 255, 255, 0.8);
			padding-left: 5px;
			color: #1d3363;
		}

		.cus-header-normal .cus-header-phone{
			margin-top: 30px;
			color: white;
			text-align: left;
		}
		.cus-header-normal .cus-header-phone .dial{
			font-size: 24px;
		}
		.cus-header-normal .cus-header-phone .text{
			font-size: 13px;
		}
	
		#nav-overlay{
			z-index: 1000;
		}
	}

	
	/* ヘッダー印刷専用スタイル */
	@media print {
		/* バーガーメニュー関連は印刷しない */
		.cus-header-normal .header-menu-toggle,
		#nav-overlay {
			display: none !important;
		}
	
		/* PCと同じ横並びヘッダー */
		.cus-header-normal {
			position: relative !important;
			display: flex !important;
			align-items: center;
			background-color: #1d3363 !important;
			width: 100%;
			height: 60px;
		}
	
		/* ロゴは印刷用に縮小 */
		.cus-header-normal .header-logo {
			position: static;
			flex-shrink: 0;
			margin: 0;
			width: 220px;
		}
	
		.cus-header-normal .header-logo img {
			display: block;
			width: 100%;
			height: auto;
		}
	
		.cus-header-normal .header-nav {
			position: static !important;
			flex: 1;
			display: flex !important;
			justify-content: flex-end;
			align-items: center;
			width: auto;
			height: auto;
			background: transparent;
			transform: none !important;
		}
	
		.cus-header-normal .cus-header-menu {
			display: flex !important;
			align-items: center;
			gap: 16px;
			margin: 0;
			padding: 0 18px 0 0;
		}
	
		.cus-header-normal .cus-header-menu li {
			border: 0;
		}
	
		/* メニュー文字を印刷用に縮小 */
		.cus-header-normal .cus-header-menu li a {
			display: block;
			padding: 0;
			font-size: 11px;
			color: #fff;
			text-decoration: none;
		}
	
		.cus-header-normal .cus-header-menu li a::before {
			display: none;
		}
	
		/* 電話番号も縮小 */
		.cus-header-normal .cus-header-phone {
			flex-shrink: 0;
			margin: 0;
			padding-right: 12px;
			color: #fff;
			text-align: center;
		}
	
		.cus-header-normal .cus-header-phone .dial {
			font-size: 17px;
			line-height: 1.15;
		}
	
		.cus-header-normal .cus-header-phone .text {
			font-size: 9px;
		}
	}


	/* フッターレイアウト お問い合わせ */
	.cus-contact{
		background-image: url("../img/site/contact-bg.jpg");
		background-size: cover;
		background-position: center center;
		padding: 100px 0;
		color: white;
	}

	.cus-contact-con01{
		border-bottom: white solid 1px;
	}

	.cus-contact-con02{
		display: flex;
		align-items: center;
	}
	.cus-contact-con02 .con02-phone{
		flex-shrink: 0;
		width: 340px;
	}
	.cus-contact-con02 .con02-form{
		flex: 1;
	}

	.cus-contact-con02 .con02-phone .dial{
		font-size: 32px;
		letter-spacing: 0.08em;
		line-height: 1.4;
	}

	.cus-contact-button a{
		position: relative;
		display: inline-block;
		overflow: hidden;
		padding: 20px 160px 20px 60px;
		color: initial;
		font-size: 28px;
		font-weight: 500;
		text-decoration: none;
		background-color: #beb697;
		background-image: linear-gradient(#9d936f, #9d936f);
		background-repeat: no-repeat;
		background-position: left top;
		background-size: 0 100%;
		border-radius: 6px;
		transition: background-size .45s ease;
	}
	.cus-contact-button a .text,
	.cus-contact-button a .arrow{
		position: relative;
		z-index: 1;
	}
	.cus-contact-button a .arrow{
		position: absolute;
		top: 50%;
		right: 60px;
		display: flex;
		justify-content: center;
		align-items: center;
		overflow: hidden;
		width: 56px;
		height: 38px;
		color: #1d3363;
		font-size: 20px;
		background-color: #fff;
		border-radius: 4px;
		transform: translateY(-50%);
	}
	.cus-contact-button a .arrow i{
		transition: transform .35s ease;
	}
	.cus-contact-button a:hover{
		background-size: 100% 100%;
	}
	.cus-contact-button a:hover .arrow i{
		animation: contact-arrow-slide .45s ease;
	}
	@keyframes contact-arrow-slide {
		0% {
			transform: translateX(0);
		}
		45% {
			transform: translateX(180%);
		}
		46% {
			transform: translateX(-180%);
		}
		100% {
			transform: translateX(0);
		}
	}
	@media screen and (max-width: 1499.98px) {
		.cus-contact{
			padding: 80px 0;
		}

		.cus-contact-con02 .con02-phone{
			width: 320px;
		}
	
		.cus-contact-con02 .con02-phone .dial{
			font-size: 32px;
		}
	
		.cus-contact-button a{
			padding: 20px 150px 20px 50px;
			font-size: 26px;
		}
		.cus-contact-button a .arrow{
			right: 50px;
			width: 56px;
			height: 38px;
			font-size: 20px;
		}
	}
	@media (max-width: 991.98px) {
		.cus-contact{
			padding: 70px 0;
		}

		.cus-contact-con02 .con02-phone{
			width: 280px;
		}
	
		.cus-contact-con02 .con02-phone .dial{
			font-size: 30px;
		}
	
		.cus-contact-button a{
			padding: 20px 80px 20px 30px;
			font-size: 23px;
		}
		.cus-contact-button a .arrow{
			right: 25px;
			width: 45px;
			height: 30px;
			font-size: 18px;
		}
	}
	@media print {
		.cus-contact{
			padding: 60px 0;
		}

		.cus-contact-con02 .con02-phone{
			width: 240px;
		}
	
		.cus-contact-con02 .con02-phone .dial{
			font-size: 24px;
		}
	
		.cus-contact-button a{
			padding: 18px 70px 18px 20px;
			font-size: 19px;
		}
		.cus-contact-button a .arrow{
			right: 10px;
			width: 34px;
			height: 23px;
			font-size: 16px;
		}
	}
	@media screen and (max-width: 767px) {
		.cus-contact{
			padding: 60px 0;
		}

		.cus-contact-con02{
			display: block;
		}
		.cus-contact-con02 .con02-phone{
			margin-bottom: 20px;
			width: auto;
		}
	
		.cus-contact-con02 .con02-phone .dial{
			font-size: 30px;
		}
	
		.cus-contact-button a{
			padding: 18px 50px 18px 18px;
			font-size: 19px;
			width: 100%;
		}
		.cus-contact-button a .arrow{
			right: 14px;
			width: 34px;
			height: 23px;
			font-size: 15px;
		}
	}

/* フッター */
	.cus-footer{
		background-color: #1d3363;
		padding: 80px 0;
	}
	.cus-footer-con{
		display: flex;
		color: white;
	}
	.cus-footer-con .con-left{
		flex-shrink: 0;
		width: 40%;
	}
	.cus-footer-con .con-right{
		flex: 1;
		display: flex;
		flex-direction: column;
		text-align: right;
	}

	.cus-footer-menu{
		display: flex;
		justify-content: flex-end;
		gap: 30px;
	}
	.cus-footer-menu li{
		position: relative;
	}
	.cus-footer-menu li::before{
		content: '';
		position: absolute;
		top: 20%;
		right: -15px;
		background-color: white;
		width: 1px;
		height: 60%;
	}
	.cus-footer-menu li:last-child::before{
		display: none;
	}
	.cus-footer-menu li a{
		position: relative;
		display: block;
		font-size: 16px;
		color: white;
		text-decoration: none;
	}
	.cus-footer-menu li a:hover::before{
		content: '';
		position: absolute;
		bottom: -2px;
		left: 0px;
		background-color: white;
		width: 100%;
		height: 1px;
	}

	.cus-footer-copy{
		margin-top: auto;
	}
	@media screen and (max-width: 1499.98px) {
		.cus-footer{
			padding: 70px 0;
		}
		.cus-footer-con .con-left{
			width: 40%;
		}
	
		.cus-footer-menu{
			gap: 26px;
		}
		.cus-footer-menu li::before{
			right: -13px;
		}
		.cus-footer-menu li a{
			font-size: 16px;
		}
	}
	@media (max-width: 991.98px) {
		.cus-footer{
			padding: 60px 0;
		}
		.cus-footer-con .con-left{
			width: 40%;
		}
	
		.cus-footer-logo{
			padding-right: 20px;
		}

		.cus-footer-menu{
			gap: 20px;
		}
		.cus-footer-menu li::before{
			right: -10px;
		}
		.cus-footer-menu li a{
			font-size: 15px;
		}
	}
	@media print {
		.cus-footer{
			padding: 60px 0;
		}
		.cus-footer-con .con-left{
			width: 32%;
		}
	
		.cus-footer-logo{
			padding-right: 20px;
		}

		.cus-footer-menu{
			gap: 20px;
		}
		.cus-footer-menu li::before{
			right: -10px;
		}
		.cus-footer-menu li a{
			font-size: 13px;
		}
	}
	@media screen and (max-width: 767px) {
		.cus-footer{
			padding: 60px 0;
		}
		.cus-footer-con{
			display: block;
		} 
		.cus-footer-con .con-left{
			margin-bottom: 20px;
			width: auto;
		}
		.cus-footer-con .con-left p{
			font-size: 16px !important;
		}
	
		.cus-footer-logo{
			padding-right: 20px;
			margin-left: auto;
			margin-right: auto;
			width: 94%;
		}
		.cus-footer-address{
			margin-left: auto;
			margin-right: auto;
			width: 94%;
		}

		.cus-footer-menu{
			overflow: hidden;
			display: block;
			border-top: white solid 1px;
		}
		.cus-footer-menu li{
			float: left;
			border-bottom: white solid 1px;
			width: 50%;
		}
		.cus-footer-menu li:nth-child(2n){
			border-left: white solid 1px;
		}
		.cus-footer-menu li::before{
			display: none;
		}
		.cus-footer-menu li a{
			padding: 12px 0;
			font-size: 16px;
			text-align: center;
		}
		.cus-footer-menu li a:hover::before{
			display: none;
		}
	
		.cus-footer-copy{
			margin: 40px auto;
		}
	}










