@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;
	}

	@media screen and (min-width: 992px) {/* PCサイズレイアウト */
		.cus-header-normal{
			position: sticky;
			top: 0;
			background-color: white;
			z-index: 1001;
		}

		.cus-header-normal .header-col01{/* header */
			overflow: hidden;
			position: relative;
			display: flex;
			align-items: center;
			gap: 40px;
			padding: 30px 2%;
			width: 100%;
			max-height: 150px;
			opacity: 1;
			transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;
		}

		.cus-header-normal .header-col01 .col01-h1{
			overflow: hidden;
			position: absolute;
			width: 1px;
			height: 1px;
			padding: 0;
			margin: -1px;
			clip: rect(0, 0, 0, 0);
			clip-path: inset(50%);
			white-space: nowrap;
			border: 0;
		}
		.cus-header-normal .header-col01 .col01-logo{
			position: relative;
			flex-shrink: 0;
			background-color: white;
			margin: 0;
			width: 421px;/* 468px 90 */
			z-index: 3;
		}

		.cus-header-normal .header-col01 .col01-phone{
			flex: 1;
			display: flex;
			align-items: center;
			justify-content: flex-end;
			gap: 20px;
		}
		.cus-header-normal .header-col01 .col01-phone .phone-ic{
			overflow: hidden;
			width: 52px;
		}
		.cus-header-normal .header-col01 .col01-phone .phone-text .text01{
			font-size: 18px;
		}
		.cus-header-normal .header-col01 .col01-phone .phone-text .text02{
			font-size: 32px;
			line-height: 1;
		}
		.cus-header-normal .header-col01 .col01-phone .phone-text .text02 .time{
			font-size: 18px;
		}

		.cus-header-normal .header-col01{
			overflow: hidden;
			max-height: 90px;
			opacity: 1;
			transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;
		}
		.cus-header-normal.is-scrolled .header-col01{
			max-height: 0;
			padding-top: 0;
			padding-bottom: 0;
			opacity: 0;
		}

		.cus-header-normal .header-col02{/* 追従header */
			overflow: hidden;
			position: relative;
			display: flex;
			align-items: center;
			max-height: 0;
			opacity: 0;
			padding-top: 0;
			padding-bottom: 0;
			padding: 0px 2%;
			width: 100%;
			height: 80px !important;
			transition: max-height 0.4s ease, padding 0.4s ease, opacity 0.3s ease;
		}
		.cus-header-normal.is-scrolled .header-col02{
			max-height: 150px;
			opacity: 1;
			padding: 20px 2%;
		}
		.cus-header-normal.is-scrolled .header-nav{
			position: relative;
			box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
			z-index: 2;
		}

		.cus-header-normal .header-col02{
			height: 70px !important;
		}
		.cus-header-normal .header-col02 .col02-logo{
			position: relative;
			flex-shrink: 0;
			background-color: white;
			margin: 0;
			width: 374px;/* 468px 80 */
			z-index: 3;
		}

		.cus-header-normal .header-col02 .col02-phone{
			flex: 1;
			display: flex;
			align-items: center;
			justify-content: flex-end;
			gap: 20px;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-ic{
			overflow: hidden;
			width: 48px;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text01{
			padding-right: 10px;
			font-size: 18px;
			line-height: 1.4;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text02{
			display: flex;
			flex-direction: column;
			border-left: #047c46 solid 3px;
			padding-left: 30px;
			margin: 0;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text02 .dial{
			overflow: hidden;
			font-size: 32px !important;
			line-height: 1 !important;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text02 .time{
			font-size: 18px;
			line-height: 1;
		}
		
		.cus-header-normal .header-nav{
			overflow: hidden;
		}
		.cus-header-normal .header-nav .nav-menu{
			display: flex;
			justify-content: center;
			align-items: stretch;
			border-top: #e9e9e9 solid 1px;
		}
		.cus-header-normal .header-nav .nav-menu li{
			display: flex;
			width: calc(100% / 7);
		}
		.cus-header-normal .header-nav .nav-menu li a{
			position: relative;
			flex: 1;
			display: flex;
			align-items: center;
			justify-content: center;
			border-right: #e9e9e9 solid 1px;
			padding: 14px 0;
			color: initial;
			text-align: center;
			text-decoration: none;
			transition: background-color 0.3s ease, color 0.3s ease;
		}
		.cus-header-normal .header-nav .nav-menu li:last-child a{
			border-right: #e9e9e9 solid 0px;
		}

		.cus-header-normal .header-nav .nav-menu li a::before{
			content: '';
			position: absolute;
			bottom: 0px;
			left: 0px;
			background-color: #047c46;
			width: 100%;
			height: 3px;
			transform: scaleX(0);
			transform-origin: left;
			transition: transform 0.3s ease;
			z-index: 3;
		}
		.cus-header-normal .header-nav .nav-menu li .active,
		.cus-header-normal .header-nav .nav-menu li a:hover{
			background-color: #e5fff3;
			color: #047c46;
		}
		.cus-header-normal .header-nav .nav-menu li .active::before,
		.cus-header-normal .header-nav .nav-menu li a:hover::before{
			transform: scaleX(1);
		}

		.header-mobile{
			display: none;
		}
	}
	@media screen and (max-width: 1699.98px) {
		.cus-header-normal .header-nav .nav-menu li a{
			font-size: 17px;
		}
	}
	@media screen and (max-width: 1399.98px) {
		.cus-header-normal .header-nav .nav-menu li a{
			font-size: 16px;
		}
	}
	@media screen and (min-width: 992px) and (max-width: 1340.98px) {
		.cus-header-normal .header-col01 .col01-logo{
			width: 346px;/* 468px 74 */
		}
		.cus-header-normal .header-col02 .col02-logo{
			width: 300px;/* 468px 64 */
		}

		.cus-header-normal .header-col01 .col01-phone .phone-text .text01{
			font-size: 17px;
		}
		.cus-header-normal .header-col01 .col01-phone .phone-text .text02{
			font-size: 29px;
			line-height: 1;
		}
		.cus-header-normal .header-col01 .col01-phone .phone-text .text02 .time{
			font-size: 17px;
		}

		.cus-header-normal .header-col01{
			max-height: 80px;
		}

		.cus-header-normal .header-col02{
			height: 60px !important;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-ic{
			width: 40px;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text01{
			font-size: 16px;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text02{
			padding-left: 25px;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text02 .dial{
			font-size: 28px !important;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text02 .time{
			font-size: 16px;
		}

		.cus-header-normal .header-nav .nav-menu li a{
			flex-direction: column;
			padding: 4px 0;
		}
		.cus-header-normal .header-nav .nav-menu li a .menu-slim-none{
			display: none;
		}
		.cus-header-normal .header-nav .nav-menu li a .menu-slim-block{
			display: block;
		}
	}


	/*PCサイズのヘッダー揺れ防止 */
	@media screen and (min-width: 992px) {
		.cus-header-normal {
			display: grid;
			grid-template-columns: 100%;
			grid-template-rows: 90px auto;
		}
		.cus-header-normal .header-col01,
		.cus-header-normal .header-col02 {
			grid-column: 1;
			grid-row: 1;
			box-sizing: border-box;
			width: 100%;
			height: 90px !important;
			max-height: none;
			padding: 0 2%;
			transition:
				opacity 0.35s ease,
				transform 0.35s ease,
				visibility 0.35s ease;
		}
		.cus-header-normal .header-col01 {
			visibility: visible;
			opacity: 1;
			transform: translateY(0);
			pointer-events: auto;
		}
		.cus-header-normal .header-col02 {
			visibility: hidden;
			opacity: 0;
			transform: translateY(-8px);
			pointer-events: none;
		}
		.cus-header-normal.is-scrolled .header-col01 {
			visibility: hidden;
			max-height: none;
			padding: 0 2%;
			opacity: 0;
			transform: translateY(8px);
			pointer-events: none;
		}
		.cus-header-normal.is-scrolled .header-col02 {
			visibility: visible;
			max-height: none;
			padding: 0 2%;
			opacity: 1;
			transform: translateY(0);
			pointer-events: auto;
		}
		.cus-header-normal .header-nav {
			grid-column: 1;
			grid-row: 2;
		}
	}


	/* ヘッダーバーガーメニュー用スタイル */
	@media (max-width: 991.98px) {
		.cus-header-normal{
			position: sticky;
			top: 0;
			background-color: #047c46;
			z-index: 1001;
		}

		.cus-header-normal .header-col01,
		.cus-header-normal .header-col02{
			display: none;
		}

		.cus-header-normal .header-mobile{
			display: flex;
			align-items: center;
			justify-content: space-between;
			padding: 12px 5%;
			height: 72px;
		}
		.cus-header-normal .header-mobile .mobile-logo{
			margin: 0;
			width: 220px;
		}
		.cus-header-normal .header-mobile .mobile-logo img{
			display: block;
			width: 100%;
			height: auto;
		}

		.cus-header-normal .header-mobile .menu-toggle{
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 7px;
			border: 0;
			background: transparent;
			padding: 10px;
			width: 52px;
			height: 48px;
		}
		.cus-header-normal .header-mobile .menu-toggle span{
			display: block;
			background-color: white;
			width: 32px;
			height: 3px;
			transition: transform 0.3s ease, opacity 0.3s ease;
		}
		.cus-header-normal.is-menu-open .header-mobile .menu-toggle span:nth-child(1){
			transform: translateY(10px) rotate(-45deg);
		}
		.cus-header-normal.is-menu-open .header-mobile .menu-toggle span:nth-child(2){
			opacity: 0;
		}
		.cus-header-normal.is-menu-open .header-mobile .menu-toggle span:nth-child(3){
			transform: translateY(-10px) rotate(45deg);
		}

		.cus-header-normal .header-nav{
			position: fixed;
			top: 72px;
			bottom: 0;
			left: 0;
			overflow-y: auto;
			background-color: white;
			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 .header-nav .nav-menu{
			border-top: #e9e9e9 solid 1px;
		}
		.cus-header-normal .header-nav .nav-menu li{
			border-bottom: #e9e9e9 solid 1px;
		}
		.cus-header-normal .header-nav .nav-menu li a{
			display: block;
			padding: 18px 8%;
			color: initial;
			text-decoration: none;
		}
		.cus-header-normal .header-nav .nav-menu li .active{
			background-color: #e5fff3;
			color: #047c46;
		}

		#nav-overlay{
			z-index: 1000;
		}
	}


	/* ヘッダー印刷専用スタイル */
	@media print {
		.cus-header-normal {
			position: static !important;
			background: #fff !important;
		}
	
		/* モバイル用を非表示 */
		.cus-header-normal .header-mobile,
		.cus-header-normal .header-col02,
		#nav-overlay {
			display: none !important;
		}
	
		/* PC用ヘッダーを表示（スクロール後の状態も解除） */
		.cus-header-normal .header-col01,
		.cus-header-normal.is-scrolled .header-col01 {
			display: flex !important;
			align-items: center;
			gap: 40px;
			padding: 30px 2%;
			width: 100%;
			max-height: none !important;
			opacity: 1 !important;
			overflow: visible;
		}

		.cus-header-normal .header-col01 .col01-h1{
			display: none;
		}
		.cus-header-normal .header-col01 .col01-logo{
			width: 200px;
		}
	
		.cus-header-normal .header-col01 .col01-phone .phone-ic{
			display: none !important;
		}
		.cus-header-normal .header-col01 .col01-phone .phone-text .text01{
			font-size: 14px;
		}
		.cus-header-normal .header-col01 .col01-phone .phone-text .text02{
			font-size: 24px;
			line-height: 1;
		}
		.cus-header-normal .header-col01 .col01-phone .phone-text .text02 .time{
			font-size: 14px;
		}

		.cus-header-normal .header-col02 .col02-phone .phone-ic{
			display: none !important;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text01{
			font-size: 13px;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text02{
			padding-left: 15px;
			font-size: 24px;
			line-height: 18px;
		}
		.cus-header-normal .header-col02 .col02-phone .phone-text02 .time{
			font-size: 12px;
		}
	
		/* PC用ナビを表示 */
		.cus-header-normal .header-nav {
			position: static !important;
			display: block !important;
			width: 100% !important;
			overflow: visible;
			transform: none !important;
			box-shadow: none !important;
		}
	
		.cus-header-normal .header-nav .nav-menu {
			display: flex !important;
			justify-content: center;
			border-top: #e9e9e9 solid 1px;
		}
	
		.cus-header-normal .header-nav .nav-menu li {
			display: flex;
			width: calc(100% / 7);
		}
	
		.cus-header-normal .header-nav .nav-menu li a {
			display: flex;
			align-items: center;
			justify-content: center;
			padding: 18px 0;
			font-size: 9px;
		}
	}


	/* フッターレイアウト */
	.cus-footer{
		background-image: url("../img/site/f-bg.jpg");
		background-size: cover;
		background-repeat: no-repeat;
		padding: 80px 0;
		color: white;
		text-align: center;
	}

	.cus-footer-logo img{
		width: 608px;
	}

	.cus-footer-text01{
		background-color: white;
		padding: 30px 20px;
		margin-left: auto;
		margin-right: auto;
		width: 720px;
		color: #000000;
	}
	.cus-footer-text01 .dial{
		font-size: 40px;
		line-height: 1.4;
	}

	.cus-footer-link a:hover{color: white;}

	.cus-footer-menu{
		border-bottom: #035d34 solid 1px;
		padding-bottom: 80px;
		margin-bottom: 30px;
	}
	.cus-footer-nav{
		display: flex;
		justify-content: space-between;
		margin: 0 100px;
	}
	.cus-footer-nav li a{
		position: relative;
		display: inline-block;
		color: white;
		text-decoration: none;
	}
	.cus-footer-nav li a::before{
		content: '';
		position: absolute;
		bottom: -2px;
		left: 0px;
		background-color: white;
		width: 100%;
		height: 1px;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.3s ease;
	}
	.cus-footer-nav li a:hover::before{
		transform: scaleX(1);
	}
			
	footer small{
		margin: 0;
		font-size: 18px;
		color: #035d34;
	}
	@media screen and (max-width: 1499.98px) {
		.cus-footer{
			padding: 70px 0;
		}
	
		.cus-footer-logo img{
			width: 486px;/* 608 */
		}
	
		.cus-footer-text01{
			padding: 30px 20px;
			width: 680px;
		}
		.cus-footer-text01 .dial{
			font-size: 40px;
		}
	
		.cus-footer-menu{
			padding-bottom: 70px;
			margin-bottom: 30px;
		}
		.cus-footer-nav{
			margin: 0 4.5vw;
		}
		.cus-footer-nav li a{
			font-size: 18px;
		}
				
		footer small{
			font-size: 17px;
		}
	}
	@media (max-width: 991.98px) {
		.cus-footer{
			padding: 60px 0;
		}
	
		.cus-footer-logo img{
			width: 426px;/* 608 */
		}
	
		.cus-footer-text01{
			padding: 30px 20px;
			width: 640px;
		}
		.cus-footer-text01 .dial{
			font-size: 36px;
		}
	
		.cus-footer-menu{
			padding-bottom: 60px;
			margin-bottom: 25px;
		}
		.cus-footer-nav{
			justify-content: center;
			flex-wrap: wrap;
			margin: 0 3vw;
		}
		.cus-footer-nav li{
			margin-bottom: 10px;
			width: 25%;
			text-align: center;
		}
		.cus-footer-nav li:nth-child(5),
		.cus-footer-nav li:nth-child(6),
		.cus-footer-nav li:nth-child(7){
			width: 33.333%;
		}
		.cus-footer-nav li a{
			font-size: 18px;
		}
				
		footer small{
			font-size: 16px;
		}
	}
	@media print {
		.cus-footer{
			padding: 50px 0;
		}
	
		.cus-footer-logo img{
			width: 304px;/* 608 */
		}
	
		.cus-footer-text01{
			padding: 20px 15px;
			width: 100%;
		}
		.cus-footer-text01 .dial{
			font-size: 30px;
		}
	
		.cus-footer-menu{
			padding-bottom: 50px;
			margin-bottom: 20px;
		}
		.cus-footer-nav{
			justify-content: center;
			flex-wrap: wrap;
			margin: 0 3vw;
		}
		.cus-footer-nav li{
			margin-bottom: 10px;
			width: 25%;
			text-align: center;
		}
		.cus-footer-nav li:nth-child(5),
		.cus-footer-nav li:nth-child(6),
		.cus-footer-nav li:nth-child(7){
			width: 33.333%;
		}
		.cus-footer-nav li a{
			font-size: 16px;
		}
				
		footer small{
			font-size: 14px;
		}
	}
	@media screen and (max-width: 767px) {
		.cus-footer{
			padding: 50px 0;
		}
	
		.cus-footer-logo img{
			width: 304px;/* 608 */
		}
	
		.cus-footer-text01{
			padding: 20px 15px;
			width: 100%;
		}
		.cus-footer-text01 .dial{
			font-size: 32px;
		}

		.cus-footer-menu{
			overflow: hidden;
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			border-top: white solid 1px;
		}
		.cus-footer-nav{
			margin: 0;
		}
		.cus-footer-nav li{
			margin: 0;
			width: 50% !important;
		}
		.cus-footer-nav li:first-child{
			width: 100% !important;
		}
		.cus-footer-nav li a{
			display: flex;
			align-items: center;
			justify-content: center;
			border-bottom: white solid 1px;
			padding: 12px 0;
			width: 100%;
			height: 100%;
			font-size: 17px;
		}
		.cus-footer-nav li:nth-child(2n) a{
			border-right: white solid 1px;
		}
		.cus-footer-nav li a .nav-sm-none{
			display: none;
		}

		.cus-footer-nav li a::before{
			display: none;
		}
	}
























