@charset "UTF-8";

/* ====================================
	グローバル：リセットスタイル
 ==================================== */
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-weight: 500;
}

p,
figure {
	margin: 0;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

em {
	font-style: normal;
	font-weight: bold;
}

hr {
	margin: 0;
	border: none;
	border-top: solid 1px #bfbfbf;
}

:focus {
	outline: none;
}

/* ====================================
	グローバル：ベーススタイル
 ==================================== */
html {
	font-size: 62.5%;
}

body {
	min-width: 320px;
	font-family: ten-mincho-text, serif;
	font-weight: 400;
	font-style: normal;
	font-size: 1.4rem;
	line-height: 1.4;
	color: #000;
}

a {
	color: #000;
	text-decoration: underline;
}

a:hover {
	color: #000;
	text-decoration: none;
}

/* ====================================
	ユーティリティ
 ==================================== */
.bold {
	font-weight: bold;
}

.tc {
	text-align: center !important;
}

.tl {
	text-align: left !important;
}

.tr {
	text-align: right !important;
}

.red {
	color: red !important;
}

.blue {
	color: #00a0e9 !important;
}

.mt05em {
	margin-top: 0.5em;
}

.mt1em {
	margin-top: 1em;
}

.font-s {
	font-size: 0.8em;
}

.flex-container {
	display: flex;
	flex-wrap: wrap;
	align-content: space-between;
}

.flex-item {
	width: 100%;
}

/* Youtube 動画 */
.youtube {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}

.youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}

/* ====================================
	グローバル：共通スタイル
 ==================================== */

/* グローバルフッター */
#globalFooter {
	box-shadow: 0px -4px 10px 0px rgba(0, 0, 0, 0.2);
}

#copyright {
	padding: 1em;
	font-size: 1.5rem;
	background: #000;
	color: #7d7d7d;
	text-align: center;
}

.address-cautions {
	color: #c7000b;
}

/* ====================================
	スマートフォン専用スタイル
===================================== */
@media only screen and (max-width: 767px) {

	img {
		width: 100%;
	}

	.pc {
		display: none;
	}

	.base-width-sp,
	.base-width {
		padding-left: 5%;
		padding-right: 5%;
	}

	/* ユーティリティ */
	ul.star li span {
		/* リスト（青字・※n） */
		margin-right: 0.5em;
	}

	ul.star-double li span {
		/* リスト（青字・※nn） */
		margin-right: 0.5em;
	}

	ul.ast li:BEFORE {
		/* リスト（青字・＊） */
		content: "\ff0a";
		margin-right: 0.5em;
	}

	ul.kome li:BEFORE {
		/* リスト（黒字・※） */
		content: "\203b";
		margin-right: 0.5em;
	}

	ul.normal {
		/* リスト（・） */
		list-style: none;
	}

	ul.normal li:BEFORE {
		content: "\30fb";
		margin-right: 0.5em;
	}

	ul.disc li:BEFORE {
		/* リスト（●） */
		content: "\25cf";
		margin-right: 0.5em;
	}

	ul.single li span {
		/* リスト（黒字・1文字） */
		margin-right: 0.5em;
	}

	.caption {
		font-size: 1.2rem;
	}

	/* グローバルフッター */
	.global-footer-container {
		padding: 2rem 0;
	}

	.global-footer-container .access-container {
		padding: 0 5%;
	}

	.global-footer-container .access-map {
		width: 100%;
		margin-top: 1em;
	}

	.global-footer-container .access-map iframe {
		width: 100%;
		height: 100%;
	}

	.global-footer-container .address-container {
		margin-top: 2rem;
	}

	.address {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}

	.address-img {
		width: 70px;
		margin: 1rem auto;
	}

	.address-img img {
		width: 100%;
		height: auto;
	}

	.address-sub-text {
		margin-bottom: .5em;
		font-size: .9em;
		line-height: 1;
	}

	.address-cautions {
		font-size: 1.3rem;
	}

	.site-name {
		font-size: 1.8em;
		line-height: 1;
	}

	.address-text {
		width: 100%;
		margin-top: 1em;
		font-size: 1.3rem;
		text-align: center;
	}

	ul.list-map-btn li {
		margin-top: 1em;
	}

	ul.list-map-btn a {
		display: block;
		width: 100%;
		padding: .5em 0;
		border: 1px solid rgba(0, 0, 0, .8);
		border-radius: 8px;
		box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.3) inset, 0px 4px 0px 0px rgba(0, 0, 0, .15);
		text-align: center;
		text-decoration: none;
	}

	.global-footer-navi-title {
		margin-top: 3rem;
		margin-bottom: .5em;
		border-top: solid 1px #000;
		border-bottom: solid 1px #000;
		text-align: center;
	}

	.global-footer-navi-logo {
		width: 40%;
		max-width: 205px;
		margin: 0 auto;
	}

	ul.list-global-footer-navi {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: flex-end;
		margin-top: 1rem;
	}

	ul.list-global-footer-navi li {
		padding: 0 0.5em;
		border-left: solid 1px #000;
	}

	ul.list-global-footer-navi li:first-child {
		width: 100%;
		border-left: none;
		text-align: center;
	}

	ul.list-global-footer-navi li:nth-child(2) {
		border-left: none;
	}
}

/* ====================================
	PC&タブレット、印刷専用スタイル
===================================== */
@media print,
screen and (min-width: 768px) {

	body {
		font-size: 1.5rem;
	}

	.sp {
		display: none;
	}

	#globalFooter,
	main {
		min-width: 1200px;
	}

	.contents-width {
		width: 960px;
		margin-left: auto;
		margin-right: auto;
	}

	.base-width-pc,
	.base-width {
		width: 960px;
		margin-left: auto;
		margin-right: auto;
	}

	.outer-base-width {
		padding-left: 1.5%;
		padding-right: 1.5%;
	}

	/* ユーティリティ */
	ul.star {
		/* リスト（青字・※n） */
		padding-left: 2em;
	}

	ul.star li {
		text-indent: -2em;
	}

	ul.star li span {
		margin-right: 0.5em;
	}

	ul.star-double {
		/* リスト（青字・※nn） */
		padding-left: 2.5em;
	}

	ul.star-double li {
		text-indent: -2.5em;
	}

	ul.star-double li span {
		margin-right: 0.5em;
	}

	ul.ast {
		/* リスト（青字・＊） */
		padding-left: 1.5em;
	}

	ul.ast li {
		text-indent: -1.5em;
	}

	ul.ast li:BEFORE {
		content: "\ff0a";
		margin-right: 0.5em;
	}

	ul.kome {
		/* リスト（黒字・※） */
		padding-left: 1.5em;
	}

	ul.kome li {
		text-indent: -1.5em;
	}

	ul.kome li:BEFORE {
		content: "\203b";
		margin-right: 0.5em;
	}

	ul.normal {
		/* リスト（・） */
		padding-left: 1.5em;
		list-style: none;
	}

	ul.normal li {
		text-indent: -1.5em;
	}

	ul.normal li:BEFORE {
		content: "\30fb";
		margin-right: 0.5em;
	}

	ul.disc {
		/* リスト（●） */
		padding-left: 1.5em;
	}

	ul.disc li {
		text-indent: -1.5em;
	}

	ul.disc li:BEFORE {
		content: "\25cf";
		margin-right: 0.5em;
	}

	ul.single {
		/* リスト（黒字・1文字） */
		padding-left: 1.5em;
	}

	ul.single li {
		text-indent: -1.5em;
	}

	ul.single li span {
		margin-right: 0.5em;
	}

	.caption {
		font-size: 1.2rem;
	}

	/* グローバルフッター */
	.global-footer-container {
		width: 920px;
		margin: 0 auto;
		padding: 50px 0 0;
	}

	.access-container {
		height: 530px;
		position: relative;
	}

	.access-map iframe {
		width: 100%;
		height: 100%;
	}

	.address-container {
		width: 210px;
		text-align: center;
	}

	.address {
		font-size: 1.3rem;
	}

	.address-sub-text {
		margin-top: 1em;
	}

	.address-text {
		margin-top: 0.25em;
	}

	.address-img {
		width: 86px;
		margin: 0 auto;
	}

	.address-img img {
		width: 100%;
		height: auto;
	}

	.site-name {
		font-size: 2em;
	}

	.address-cautions {
		font-size: 1.2rem;
	}

	.access-map {
		width: 210px;
		margin-top: 130px;
	}

	.access-map .img {
		width: 690px;
		position: absolute;
		top: 0;
		right: 0;
	}

	.access-map .img img {
		width: 100%;
	}

	ul.list-map-btn li {
		margin-top: 1em;
	}

	ul.list-map-btn a {
		display: block;
		width: 100%;
		padding: .5em 0;
		border: 1px solid rgba(0, 0, 0, .8);
		border-radius: 8px;
		box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.3) inset, 0px 4px 0px 0px rgba(0, 0, 0, .15);
		text-align: center;
		text-decoration: none;
	}

	#globalFooterNavi {
		display: flex;
	}

	.global-footer-navi-title {
		margin-top: 3rem;
		margin-bottom: 0.5em;
		border-bottom: solid 1px #000;
	}

	.global-footer-navi-logo {
		flex: 1;
	}

	.global-footer-navi-logo a {
		display: block;
		width: 208px;
	}

	.global-footer-navi-logo img {
		width: 100%;
		height: auto;
	}

	ul.list-global-footer-navi {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: flex-end;
	}

	ul.list-global-footer-navi li {
		padding: 0 0.5em;
		border-left: solid 1px #000;
	}

	ul.list-global-footer-navi li:first-child {
		border-left: none;
	}
}

/* ====================================
	スクリーン専用スタイル
===================================== */
@media screen {

	/* ページトップへ戻る */
	#pageTop {
		position: relative;
	}

	#pageTop.default {
		height: 5rem;
	}

	#pageTop.default .page-top-container {
		padding: 0 5% 2rem;
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
	}

	#pageTop.fix .page-top-container {
		position: fixed;
		z-index: 10;
		pointer-events: none;
	}

	#pageTop.default a {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 30px;
		height: 30px;
		margin-left: auto;
		font-weight: 900;
		font-size: 1.8rem;
		line-height: 1;
		background: rgba(0, 0, 0, 0.8);
		color: #fff;
		text-decoration: none;
		border-radius: 0.25rem;
		transition: opacity 0.5s ease 0s;
		-webkit-transition: opacity 0.5s ease 0s;
		-moz-transition: opacity 0.5s ease 0s;
		-ms-transition: opacity 0.5s ease 0s;
		pointer-events: auto;
	}

	#pageTop.default a::before {
		content: '';
		display: block;
		width: 50%;
		height: 50%;
		background: url(../img/chevron-up-solid.svg) no-repeat center center;
		background-size: contain;
	}

	#pageTop.default a.hovering {
		opacity: 0.6;
	}

	/* マウスオーバー：フェード */
	.hover-fade a,
	a.hover-fade {
		transition: 0.5s ease 0s;
		-webkit-transition: 0.5s ease 0s;
		-moz-transition: 0.5s ease 0s;
		-ms-transition: 0.5s ease 0s;
	}

	.hover-fade a.hovering,
	a.hover-fade.hovering {
		opacity: 0.6;
	}

	/* マウスオーバー：テキストアンダーライン＆フェード */
	a.hover-parent {
		display: block;
		pointer-events: none;
		text-decoration: none;
	}

	a.hover-parent .hover-trigger {
		pointer-events: auto;
	}

	a.hover-parent span.hover-trigger {
		display: inline-block;
		/* IE, Edge 対応 */
	}

	a.hover-parent.hovering .hover-trigger {
		text-decoration: underline;
	}

	a.hover-parent.hovering .hover-trigger.fade {
		transition: 0.5s ease 0s;
		-webkit-transition: 0.5s ease 0s;
		-moz-transition: 0.5s ease 0s;
		-ms-transition: 0.5s ease 0s;
	}

	a.hover-parent.hovering .hover-trigger.fade {
		opacity: 0.6;
	}
}

@media screen and (min-width: 768px) {

	/* ページトップへ戻る */
	#pageTop.default {
		height: 6rem;
	}

	#pageTop.default a {
		width: 40px;
		height: 40px;
	}

	#pageTop.default .page-top-container {
		padding: 0 1.5% 2rem;
	}
}

/* ====================================
	スクリーン専用スタイル
===================================== */
@media screen {
	[data-check="checking"] {
		background: #ffccd5 !important;
	}
}

/* ====================================
	印刷専用スタイル
===================================== */
@media print {
	body {
		width: 960px;
		margin-left: auto;
		margin-right: auto;
	}
}