@charset "utf-8";

/* ================================================================================
	1;各要素の基本設定
================================================================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;500;600;700;800;900&display=swap');
@font-face {
	font-family: 'Noto Serif Japanese';
	font-style: normal;
	font-weight: 400;
	src: url(../fonts/NotoSerifJP-Regular.woff) format("woff");
	font-display: swap;
}

:root {
  --vw: 1vw;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
	font-weight: normal;
}

body {
	height: 100vh;
	/* Use vh as a fallback for browsers that do not support Custom Properties */
	height: calc(var(--vh, 1vh) * 100);
	width: 100%;
	color: #111;
	font-family: 'Montserrat', sans-serif;
	line-height: 1;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display: block;}
blockquote, q {quotes: none}
blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}

a {
	margin: 0;
	padding: 0;
	background: transparent;
	font-size: 100%;
	color: #111;
	text-decoration: none;
	vertical-align: baseline;
}

a:hover {opacity: 0.75;}
img {
	vertical-align: top;
	max-width: 100%;
	height: auto;
}

ins {
	background-color: #ff9;
	color: #000;
	text-decoration: none;
}

mark {
	background-color: #ff9;
	color: #000;
	font-style: italic;
	font-weight: bold;
}

del {
	text-decoration: line-through;
}

abbr[title], dfn[title] {
	border-bottom: 1px dotted;
	cursor: help;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 1px solid #cccccc;
	margin: 1em 0;
	padding: 0;
}

input, select {vertical-align: middle}
ul {list-style: none}

.video_pc, .disppc {display: none}

p {
	line-height: 2.25em;
	font-size: 12px;
	letter-spacing: 0.12em;
}

#loading {
	z-index: 9999;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	background: #000;
}

#loading .spinner {
	height: 25px;
	font-size: 25px;
}

#loading i {
	color: #fff;
	width: 48px;
	height: 48px;
	font-size: 48px;
	position: absolute;
	margin: auto;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	-webkit-animation: spin 1.5s linear infinite;
	animation: spin 1.5s linear infinite;
}

@-webkit-keyframes spin {
	0% {-webkit-transform: rotate(0deg);}
	100% {-webkit-transform: rotate(360deg);}
}

@keyframes spin {
	0% {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}

#frame .top, #frame .right, #frame .bottom, #frame .left {
	position: fixed;
	margin: auto;
	background: #fff;
	z-index: 9;
}

#frame .top {
	top: 0;
	left: 0;
	right: 0;
	height: 8px;
	z-index: 11;
}

#frame .right {
	top: 0;
	right: 0;
	bottom: 0;
	width: 8px;
}

#frame .bottom {
	bottom: 0;
	left: 0;
	right: 0;
	height: 8px;
}

#frame .left {
	top: 0;
	left: 0;
	bottom: 0;
	width: 8px;
}

@media all and (min-width: 1025px) {
	#frame .right,
	#frame .left {width: 20px;}
	#frame .top,
	#frame .bottom {height: 20px;}
}

.pc {display: block;}
.sp {display: none !important;}

@media all and (max-width: 768px) {
	.pc {display: none !important;}
	.sp {display: block !important;}
}


/* ================================================================================
	2;ヘッダ設定
================================================================================ */

/* --------------------------------------------------------------------------------
	2-1：ページ共通設定
-------------------------------------------------------------------------------- */
.global-header {
	position: fixed;
	left: 0;
	top: 0;
	z-index: 99;
	height: 87px;
	width: 100%;
	background-color: rgba(255, 255, 255, 0.8);
}
	.global-header-nav {
		display: flex;
		width: 1150px;
		margin: 0 auto;
	}
		.global-header-nav-heading {
			width: 373px;
			padding: 0 0 0 4px;
			margin-right: auto;
		}
			.global-header-nav-heading-link {
				display: block;
				position: relative;
				top: 72.5%;
				transform: translateY(-50%) translateX(0);
			}

			.global-header-nav-heading-img {
				display: block;
				width: 100%;
			}

		.global-header-nav-list {display: flex;}
			.global-header-nav-list-item {
				position: relative;
				top: 72.5%;
				transform: translateY(-50%) translateX(0);
				height: 1em;
				padding: 0 10px;
				border-right: 1.5px solid #111;
				font-size: 16px;
				font-weight: 500;
				white-space: nowrap;
			}
				.global-header-nav-list-item:nth-last-child(1) {border: none;}

		.global-header-nav-sns {padding: 29px 0 0 47px;}
			.global-header-nav-sns-icon {
				max-height: 100%;
				width: 38px;
			}

		.global-header-nav-button {
			display: none;
			position: relative;
			z-index: 99;
			height: 25px;
			width: 29px;
			margin: 34px 0 0;
			padding: 0 25px 0 0;
			cursor: pointer;
		}
			.active.global-header-nav-button {
				height: 42px;
				width: 42px;
				margin: 28px 0 0;
			}

			.global-header-nav-button span {
				display: block;
				position: absolute;
				left: 0;
				-webkit-transition: all .4s;
				transition: all .4s;
				box-sizing: border-box;
				height: 3px;
				width: 29px;
				background: #E44D06;
			}

@media all and (max-width: 1200px) {
.global-header-nav {width: calc(var(--vw) * 95.83);}
	.global-header-nav-heading {width: calc(var(--vw) * 31.08);}
	.global-header-nav-list-item {font-size: 1.39vw;}
	.global-header-nav-sns {padding-left: calc(var(--vw) * 3.92);}
	.global-header-nav-button {padding-right: calc(var(--vw) * 2.08);}
}

@media all and (max-width: 768px) {
.global-header {height: 54px;}
	.global-header-nav {
		box-sizing: border-box;
		width: 100%;
		padding: 0 10px;
	}
		.global-header-nav-heading {width: 300px;}
			.global-header-nav-heading-link {top: 59%;}

		.global-header-nav-list {display: none;}
		.global-header-nav-sns {padding: 8px calc(var(--vw) * 2.08) 0 47px;}
		.global-header-nav-button {
			display: block;
			margin-top: 14.5px;
			padding-right: 0;
		}
			.active.global-header-nav-button {margin: 7px -6px 0 0;}
}

@media all and (max-width: 428px) {
.global-header-nav-heading {width: calc(var(--vw) * 70.59);}
}


/* --------------------------------------------------------------------------------
	2-2：ヘッダーメニューアニメーション設定
-------------------------------------------------------------------------------- */
.global-header-nav-button span:nth-of-type(1) {
	top: 0;
	-webkit-animation: menu-bar01 .75s forwards;
	animation: menu-bar01 .75s forwards
}

.global-header-nav-button span:nth-of-type(2) {
	top: 11px;
	-webkit-animation: menu-bar02 .75s forwards;
	animation: menu-bar02 .75s forwards
}

.global-header-nav-button span:nth-of-type(3) {
	top: 22px;
	-webkit-animation: menu-bar03 .75s forwards;
	animation: menu-bar03 .75s forwards
}

	@-webkit-keyframes menu-bar01 {
		0% {-webkit-transform: translateY(11px) rotate(45deg)}
		50% {-webkit-transform: translateY(11px) rotate(0)}
		100% {-webkit-transform: translateY(0) rotate(0)}
	}

	@keyframes menu-bar01 {
		0% {
			-webkit-transform: translateY(11px) rotate(45deg);
			transform: translateY(11px) rotate(45deg)
		}
		50% {
			-webkit-transform: translateY(11px) rotate(0);
			transform: translateY(11px) rotate(0)
		}
		100% {
			-webkit-transform: translateY(0) rotate(0);
			transform: translateY(0) rotate(0)
		}
	}

	@-webkit-keyframes menu-bar02 {
		0% {-webkit-transform: translateY(0) rotate(0)}
		50% {-webkit-transform: translateY(0) rotate(0)}
		100% {-webkit-transform: translateY(0) rotate(0)}
	}
			
	@keyframes menu-bar02 {
		0% {
			-webkit-transform: translateY(0) rotate(0);
			transform: translateY(0) rotate(0)
		}
		50% {
			-webkit-transform: translateY(0) rotate(0);
			transform: translateY(0) rotate(0)
		}
		100% {
			-webkit-transform: translateY(0) rotate(0);
			transform: translateY(0) rotate(0)
		}
	}

	@-webkit-keyframes menu-bar03 {
		0% {-webkit-transform: translateY(-11px) rotate(-45deg)}
		50% {-webkit-transform: translateY(-11px) rotate(0)}
		100% {-webkit-transform: translateY(0) rotate(0)}
	}
				
	@keyframes menu-bar03 {
		0% {
			-webkit-transform: translateY(-11px) rotate(-45deg);
			transform: translateY(-11px) rotate(-45deg)
		}
		50% {
			-webkit-transform: translateY(-11px) rotate(0);
			transform: translateY(-11px) rotate(0)
		}
		100% {
			-webkit-transform: translateY(0) rotate(0);
			transform: translateY(0) rotate(0)
		}
	}

.active.global-header-nav-button span {
	height: 8px;
	width: 42px;
	background: #FFF;
}
	.active.global-header-nav-button span:nth-of-type(1) {
		-webkit-animation: active-menu-bar01 .75s forwards;
		animation: active-menu-bar01 .75s forwards
	}

	@-webkit-keyframes active-menu-bar01 {
		0% {-webkit-transform: translateY(0) rotate(0)}
		50% {-webkit-transform: translateY(11px) rotate(0)}
		100% {-webkit-transform: translateY(18px) rotate(45deg)}
	}
				
	@keyframes active-menu-bar01 {
		0% {
			-webkit-transform: translateY(0) rotate(0);
			transform: translateY(0) rotate(0)
		}
		50% {
			-webkit-transform: translateY(11px) rotate(0);
			transform: translateY(11px) rotate(0)
		}
		100% {
			-webkit-transform: translateY(18px) rotate(45deg);
			transform: translateY(18px) rotate(45deg)
		}
	}

	.active.global-header-nav-button span:nth-of-type(2) {
		opacity: 0;
		-webkit-animation: active-menu-bar02 .75s forwards;
		animation: active-menu-bar02 .75s forwards
	}

	@-webkit-keyframes active-menu-bar02 {
		0% {-webkit-transform: translateY(0) rotate(0)}
		50% {-webkit-transform: translateY(6px) rotate(0)}
		100% {-webkit-transform: translateY(4px) rotate(-45deg)}
	}
			
	@keyframes active-menu-bar02 {
		0% {
			-webkit-transform: translateY(0) rotate(0);
			transform: translateY(0) rotate(0)
		}
		50% {
			-webkit-transform: translateY(0) rotate(0);
			transform: translateY(0) rotate(0)
		}
		100% {
			-webkit-transform: translateY(4px) rotate(-45deg);
			transform: translateY(4px) rotate(-45deg)
		}
	}

	.active.global-header-nav-button span:nth-of-type(3) {
		top: 14px;
		-webkit-animation: active-menu-bar03 .75s forwards;
		animation: active-menu-bar03 .75s forwards
	}

	@-webkit-keyframes active-menu-bar03 {
		0% {-webkit-transform: translateY(0) rotate(0)}
		50% {-webkit-transform: translateY(0) rotate(0)}
		100% {-webkit-transform: translateY(4px) rotate(-45deg)}
	}
				
	@keyframes active-menu-bar03 {
		0% {
			-webkit-transform: translateY(0) rotate(0);
			transform: translateY(0) rotate(0)
		}
		50% {
			-webkit-transform: translateY(0) rotate(0);
			transform: translateY(0) rotate(0)
		}
		100% {
			-webkit-transform: translateY(4px) rotate(-45deg);
			transform: translateY(4px) rotate(-45deg)
		}
	}


/* --------------------------------------------------------------------------------
	2-3：引き出しメニュー設定
-------------------------------------------------------------------------------- */
.global-header-nav-drawer {
	display: none;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 9;
	overflow-y: scroll;
	height: 100%;
	width: 100vw;
	margin: auto;
	padding: 130px 25px 25px;
	box-sizing: border-box;
	background-color: rgba(0, 0, 0, 0.8);
	color: #FFF;
}
	.global-header-nav-drawer-list {
		clear: both;
		display: block;
		border-top: 2px solid #B6B5B5;
		width: 774px;
		margin: 57px auto;
	}
		.global-header-nav-drawer-list-item {
			padding: 27px 0;
			border-bottom: 2px solid #B6B5B5;
			font: 500 24px/1 'Montserrat', sans-serif;
			text-align: center;
			letter-spacing: 0;
		}				
			.global-header-nav-drawer-list-item-link {color: #FFF;}

@media all and (max-width: 1200px) {
.global-header-nav-drawer {padding-top: calc(var(--vw) * 10.83)　calc(var(--vw) * 2.08)　calc(var(--vw) * 2.08);}
	.global-header-nav-drawer-list {width: calc(var(--vw) * 64.5);}
}


/* --------------------------------------------------------------------------------
	2-4：パンくずリスト設定
-------------------------------------------------------------------------------- */
#pagePath {margin-bottom: 14px;}
	#pagePath li {
		display: inline-block;
		font-size: 12px;
	}

@media all and (max-width: 768px) {
#pagePath {display: none;}
}


/* ================================================================================
	3;フローティングフッター設定
================================================================================ */

/* --------------------------------------------------------------------------------
	3-1：ページ共通設定
-------------------------------------------------------------------------------- */
.floating-footer {
	position: fixed;
	bottom: 0;
	z-index: 10;
	box-shadow: 0px -4px 4px rgba(54, 52, 47, 0.1);
	height: 75px;
	width: 100%;
	background: #F0EEEB;
}
	.floating-footer-body {
		display: table;
		box-sizing: border-box;
		width: 660px;
		margin: 13px auto;
	}
		.floating-footer-body-text {
			display: table-cell;
			box-sizing: border-box;
			padding: 0 0 0 60px;
			background: url(../img/footerFloat_icon01.gif) 0 center no-repeat;
			background-size: 50px auto;
			color: #595958;
			font-size: 24px;
			line-height: 50px;
			vertical-align: middle;
		}



		.floating-footer-body-map {
			display: table-cell;
			position: relative;
			box-sizing: border-box;
			height: 45px;
			width: 300px;
			background: url(../img/footerFloat_img01.jpg) center center no-repeat;
			background-size: cover;
		}
			.floating-footer-body-map-img {
				display: inline-block;
				position: absolute;
				top: 50%;
				left: 50%;
				padding: 8px 18px;
				background: #D35827;
				color: #FFFFFF;
				font-size: 12px;
				white-space: nowrap;
				transform: translate(-50%, -50%);
				-webkit-transform: translate(-50%, -50%);
				-ms-transform: translate(-50%, -50%);
			}

@media all and (max-width: 768px) {
.floating-footer {height: 110px;}
	.floating-footer-body {
		width: 100%;
		margin: 0;
		padding: 12.5px 30px;
	}
		.floating-footer-body-text {
			height: 85px;
			width: 50%;
			padding: 0 20px 0 80px;
			background-size: 62px auto;
			font-size: 20px;
			line-height: 1.5;
		}

		.floating-footer-body-map-img  {
			padding: 12px 27px;
			font-size: 12px;
		}
}

@media all and (max-width: 428px) {
.floating-footer-body-text {font-size: 18px;}
.floating-footer-body-map-img {font-size: 10px;}
}


/* ================================================================================
	3;グローバルフッター設定
================================================================================ */

/* --------------------------------------------------------------------------------
	3-1：ページ共通設定
-------------------------------------------------------------------------------- */
.global-footer {
	width: 100%;
	padding: 63px 0;
	background: #FFF;
}
	.global-footer-back {
		position: fixed;
		bottom: 50px;
		right: 164px;
		z-index: 11;
	}

	.global-footer-links {
		display: flex;
		width: 1150px;
		margin: 0 auto;
		padding: 0 0 58px;
	}
		.global-footer-links-item {width: fit-content;}
			.global-footer-links-item:nth-of-type(1) {padding: 0 48px 0 0;}
			.global-footer-links-item:nth-of-type(2) {padding: 0 42px 0 0;}
			.global-footer-links-item-img {
				aspect-ratio: 317 / 93;
				width: 317px;
			}

			.global-footer-links-item-sns {display: flex;}
				.global-footer-links-item-sns-item {
					padding: 27px 30px 0 0;
					font: 500 22px/1 'Montserrat', sans-serif;
					letter-spacing: 0;
					white-space: nowrap;
				}
					.global-footer-links-item-sns-item:nth-of-type(1) {padding: 34px 37px 0 0;}
					.global-footer-links-item-sns-item:nth-of-type(2) {padding: 30px 30px 0 0;}
					.global-footer-links-item-sns-item-img {
						display: block;
						max-height: 100%;
						height: auto;
						width: 40px;
					}

	.global-footer-copyright {
		display: block;
		width: 100%;
		font: 500 22px/1 'Montserrat', sans-serif;
		text-align: center;
	}


@media all and (max-width: 1600px) {
.global-footer-back {right: calc(var(--vw) * 10.25);}
}

@media all and (max-width: 1200px) {
.global-footer-links {width: calc(var(--vw) * 95.83);}
	.global-footer-links-item:nth-of-type(1) {padding-right: calc(var(--vw) * 4);}
	.global-footer-links-item:nth-of-type(2) {padding-right: calc(var(--vw) * 3.5);}
	.global-footer-links-item-img {width: calc(var(--vw) * 26.42);}
	.global-footer-links-item-sns-item {
		padding-right: calc(var(--vw) * 2.5);
		font-size: 1.91vw;
	}
		.global-footer-links-item-sns-item:nth-of-type(1) {padding-right: calc(var(--vw) * 3.08);}
		.global-footer-links-item-sns-item:nth-of-type(2) {padding-right: calc(var(--vw) * 2.5);}
		.global-footer-links-item-sns-item-img {min-width: calc(var(--vw) * 3.33);}
		.global-footer-copyright {font-size: 1.91vw;}
}

@media all and (max-width: 768px) {
.global-footer {padding: calc(var(--vw) * 10.416) 0;}
	.global-footer-back {
		bottom: calc(var(--vw) * 4.94);
		right: calc(var(--vw) * 1.95);
	}
		.global-footer-back img {width: 44px;}

	.global-footer-links {
		flex-wrap: wrap;
		justify-content: center;
		box-sizing: border-box;
		width: 100%;
		padding: 0 20px calc(var(--vw) * 7.8125);
	}

	.global-footer-links-item:nth-of-type(1) {padding-right: calc(var(--vw) * 2.6);}
	.global-footer-links-item:nth-of-type(2) {padding: 0 0 0 calc(var(--vw) * 2.6);}
	.global-footer-links-item-img {width: calc(var(--vw) * 41.27);}
		.global-footer-links-item-sns-item {
			padding-top: 33px;
			font-size: 14px;
		}
			.global-footer-links-item-sns-item:nth-of-type(1) {padding-top: 41px;}
			.global-footer-links-item-sns-item:nth-of-type(2) {padding: 36px calc(var(--vw) * 2.6) 0 0;}
			.global-footer-links-item-sns-item-img {max-width: 30px;}

	.global-footer-copyright {
		box-sizing: border-box;
		padding: 0 20px;
		font-size: 14px;
	}
}

@media all and (max-width: 428px) {
.global-footer-copyright {font-size: 10px;}
}


/* ================================================================================
	4;メインコンテナ設定
================================================================================ */

/* --------------------------------------------------------------------------------
	4-1：ページ共通設定
-------------------------------------------------------------------------------- */
.main {
	width: 100%;
	margin: 87px 0 0;
}

@media all and (max-width: 768px) {
.main {margin-top: 54px;}
}


/* --------------------------------------------------------------------------------
	4-2：Articleページ共通設定
-------------------------------------------------------------------------------- */
.article.main {
	margin-top: 87px;
	padding: 47px 0 0;
}

@media all and (max-width: 768px) {
.article.main {
	margin-top: 54px;
	padding-top: 28px;
}
}


