/*=========================================================
■ ベースCSS(2022/10/03)
■ Copyright(c) スカヘルネット
■ https://isp.sukaheru.net/
=========================================================*/
/* Base
------------------------------------------------------------------------------*/
* {
	box-sizing: border-box;
}
body	{
	position: relative;
	display: flex;
	flex-direction: column;
	background: url(../images/bg_pc.jpg);
	margin: 0;
	padding: 0;
	font: 16px "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	color: #333;
	line-height: 1.6;
	-webkit-text-size-adjust: 100%;
}
h1,h2,h3,h4,h5,
div,p,dl,dt,dd,
ul,ol,li,
figure,form {
	margin: 0;
	padding: 0;
	font-size: 1em;
}
/* iframe ----------------------*/
iframe {
	width: 100%;
	border: none;
}
.ifrm-container {
	display: inline-block;
	width: 100%;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	margin: auto;
}
.ifrm-container iframe {
	display: block;
	width: 100%;
	height: 100%;
}

/* input / select / textarea --------------------*/
input,
select,
textarea {
	padding: 6px;
	border: 1px solid #aaa;
	outline: none;
}
button {
	background: #eee;
	border: 1px solid #aaa;
	padding: 4px 10px 5px;
	text-decoration: none;
	white-space: nowrap;
	font-size: 0.95em;
	color: #333;
	cursor: pointer;
}

/* link --------------------*/
a {
	color: #06f;
	text-decoration: none;
	transition: 0.5s;
	outline: none;
}
a:hover	{
	color: #f60;
	text-decoration: underline;
}

/* box ---------*/
.box {
	margin: auto;
	overflow: hidden;
}
*+.box {
	margin-top: 20px;
}

/* flexbox ---------*/
[class*="column"] {
	display: flex;
	flex-wrap: wrap;
}
[class*="column"]>* {
	margin: 0;
	padding: 3px;
}
.column6>*	{ width: calc((100% - 0.01px) / 6);	max-width: calc((100% - 0.01px) / 6); }
.column5>*	{ width: calc(100% / 5);		max-width: calc(100% / 5); }
.column4>*	{ width: calc(100% / 4);		max-width: calc(100% / 4); }
.column3>*	{ width: calc((100% - 0.01px) / 3);	max-width: calc((100% - 0.01px) / 3); }
.column2>*	{ width: calc(100% / 2);		max-width: calc(100% / 2); }
[class*="column"]>.column-full-width {
	display: block;
	width: 100%;
	max-width: 100%;
}

/* text --------------------*/
.com	{ margin: auto;	padding: 0 10px;	overflow: hidden; }
*+.com	{ margin-top: 20px; }
p+p	{ margin-top: 10px; }
.c	{ text-align: center; }
.r	{ text-align: right; }
.fl	{ float: left; }
.fr	{ float: right; }
.red	{ color: red; }
.blue	{ color: blue; }
.green	{ color: green; }
.pink	{ color: #ff8080; }
.orange	{ color: orange; }
.purple	{ color: purple; }
.grey	{ color: grey; }
.brown	{ color: brown; }
.big	{ font-size: 1.25em; }
.small	{ font-size: 0.85em; }
[data-mark]		{ position: relative;	display: inline-block;	padding-left: 1.25em; }
[data-mark]::before	{ content: attr(data-mark);	position: absolute;	left: 0; }
.tel::before	{ content: "TEL."; }
.fax::before	{ content: "FAX."; }
.eml::before	{ content: "E-mail:"; }
.new::after {
	position: relative;
	left: 5px;
	top: -0.1em;
	content: "NEW";
	font-size: 0.8rem;
	color: red;
	font-weight: bold;
	animation: new 1s linear infinite;
}
@keyframes new {
	0%,100%	{ color: red; }
	50%	{ color: orange; }
}
.up::after {
	position: relative;
	left: 5px;
	top: -0.1em;
	content: "UP";
	font-size: 0.8rem;
	color: red;
	font-weight: bold;
	animation: up 1s linear infinite;
}
@keyframes up {
	0%,100%	{ color: red; }
	50%	{ color: orange; }
}
.pdf {
	position: relative;
	padding-left: 20px;
}
.pdf::before {
	position: absolute;
	left: 0;
	content: "";
	background: url(../images/pdf.gif) no-repeat left 0 top 3px;
	width: 20px;
	height: 100%;
}


/* list --------------------*/
ul {
	list-style-type: none;
}
li+li {
	margin-top: 5px;
}

/* count --------------------*/
.cnt {
	counter-reset: cnt 0;
}
.cnt>* {
	position: relative;
	padding-left: 20px;
}
.cnt>*::before {
	counter-increment: cnt 1;
	content: counter(cnt) "．";
	position: absolute;
	left: 0;
}

/* image --------------------*/
img	{
	max-width: 100%;
	width: auto;
	height: auto;
	border: 0;
	vertical-align: bottom;
}
img.fl {
	margin-right: 10px;
	margin-bottom: 5px;
}
img.fr {
	margin-left: 10px;
	margin-bottom: 5px;
}
.noimage,
.nophoto {
	position: relative;
	max-width: 600px;
	padding-top: 75%;
	border: 1px solid #ccc;
	background: #fff;
}
.noimage::before,
.nophoto::before {
	content: "No Image";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 0.9em;
	color: #ccc;
	font-weight: bold;
}
.noimage::before {
	content: "No Photo";
}

/* table --------------------*/
table {
	border: 1px solid #D7D7FF;
	border-collapse: collapse;
	background: #fff;
	width: 100%;
	margin: 0 auto;
}
table th,
table td {
	border: 1px solid #D7D7FF;
	padding: 5px;
}
table th {
	background: #b0b0ff;
	color: #fff;
}
.scroll-table {
	overflow: auto;
	white-space: nowrap;
}


/* ページ遷移 --------------------*/
/* page top */
.pagetop {
	position: fixed;
	bottom: 0;
	right: 0;
	display: none;
	z-index: 5;
}
.pagetop a {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	background: rgba(0,0,0,0.5);
	width: 60px;
	height: 50px;
	padding: 8px;
	text-align: center;
	font-size: 0.9em;
	color: #fff;
	font-weight: bold;
	text-decoration: none;
	line-height: 1;
}
.pagetop a::before {
	content: "▲";
	width: 100%;
	margin: 0;
}
.pagetop a:hover {
	color: yellow;
	text-decoration: none;
}

/* page back */
.pageback {
	width: 95%;
	margin: 20px auto;
	text-align: center;
}
.pageback a {
	display: inline-block;
	border: 1px solid #bbb;
/*	box-shadow: 1px 1px 2px rgba(0,0,0,0.6);*/
	width: 200px;
	padding: 8px;
	font-size: 0.95em;
	color: #333;
	line-height: 1;
	text-decoration: none;
}
.pageback a:hover {
	background: #999;
	color: #fff;
}

/* パンくずリスト --------------------*/
.breadcrumb {
	margin: 5px 2%;
	font-size: 0.8em;
}
.breadcrumb li {
	display: inline;
	margin-bottom: 4px;
	line-height: 1.4;
}
.breadcrumb li:not(:last-of-type)::after {
	content: "＞";
	margin-left: 5px;
}

/* section --------------------*/
section {
	margin-bottom: 50px;
}


/* wrapper / レイアウト
------------------------------------------------------------------------------*/
#wrapper {
	position: relative;
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	width: 100%;
	min-width: 1000px;
	min-height: 100vh;
	height: 100%;
	margin: 0 auto;
	padding: 0;
}
header {
	position: relative;
	width: 100%;
	margin: 0 auto;
}
.contents {
	flex: 1 1 auto;
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
	padding: 0 15px 30px;
}
footer {
	position: relative;
	width: 100%;
	margin-top: auto;
}

/* header
------------------------------------------------------------------------------*/
header {
	margin: 15px auto;
	text-align: center;
}
header h1 {
	width: 100%;
	margin: 0 auto;
	font-size: 2.0em;
	color: #3E3EFF;
	text-shadow: 2px 2px 2px #8080ff;
	font-weight: bold;
	line-height: 1.25;
}
header h1 br {
	display: none;
}
header h1 span {
	display: block;
	font-size: 0.6em;
}
header .period,
header .date {
	width: 100%;
	margin: auto;
	text-align: center;
	font-size: 1.3em;
	color: #009F9B;
	font-weight: bold;
}


/* contents
------------------------------------------------------------------------------*/
.breadcrumb+.contents {
	margin-top: 15px;
}

.main-ttl {
	width: 100%;
	margin: 0 auto;
	text-align: center;
	font-size: 2.0em;
	color: #3E3EFF;
	text-shadow: 2px 2px 2px #8080ff;
	font-weight: bold;
	line-height: 1.25;
}
.main-ttl br {
	display: none;
}
.main-ttl span {
	display: block;
	font-size: 0.6em;
}
.main-period,
.main-date {
	width: 100%;
	margin: auto;
	text-align: center;
	font-size: 1.3em;
	color: #009F9B;
	font-weight: bold;
}

h2 {
	position: relative;
	margin: 0 auto 10px;
	text-align: center;
	font-size: 1.3em;
	color: #00B;
	font-weight: bold;
	line-height: 1.2;
}

/* footer
------------------------------------------------------------------------------*/
footer {

}
footer .btn {
	display: block;
	background: #fff;
	border: 1px solid #999;
	border-radius: 5px;
	width: fit-content;
	margin: 15px auto;
	padding: 10px 20px;
	line-height: 1;
	text-decoration: none;

}
/* copyright */
footer small {
	display: block;
	background: #fff;
	padding: 10px 5px;
	text-align: center;
	color: #333;
	line-height: 1;
}
footer small a {
	color: #333;
}
footer small a:hover {
	text-decoration: underline;
}
footer small::before {
	content: "Copyright";
	margin-right: 5px;
}
footer small::after {
	content: "All Rights Reserved.";
	margin-left: 5px;
}

/* タブレット版
---------------------------------------------------------------------------*/
@media screen and (max-width: 800px) {
	.breadcrumb {
		font-size: 0.8em;
	}
	header h1 {
		font-size: 1.8em;
	}
	header h1 br {
		display: block;
	}
	header .period,
	header .date {
		font-size: 1.4em;
	}

	h2 {
		font-size: 1.1em;
	}

	.main-ttl {
		font-size: 1.8em;
	}
	.main-ttl br {
		display: block;
	}
	.main-period,
	.main-date {
		font-size: 1.4em;
	}

}

/* スマホ版
---------------------------------------------------------------------------*/
@media screen and (max-width: 500px) {
	body {
		font-size: 15px;
	}

	/* header
	------------------------------------------------------------------------------*/
	header h1 {
		font-size: 1.6em;
	}
	header .period,
	header .date {
		font-size: 1.15em;
	}



	/* contents
	------------------------------------------------------------------------------*/
	h2 {
		font-size: 1.05em;
	}
	.main-ttl {
		font-size: 1.6em;
	}
	.main-period,
	.main-date {
		font-size: 1.15em;
	}


	/* footer
	------------------------------------------------------------------------------*/
	footer small::before,
	footer small::after {
		display: none;
	}

}
