@charset "utf-8";

/* Base
------------------------------------------------------------------------------*/* {
*, ::before, ::after {
	box-sizing: border-box;
}
html {
	height: 100%;
}
body {
	height: 100%;
	margin: 0;
	padding: 0;
	font: 15px "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	color: #333;
	line-height: 1.8;
	-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;
}


/* hr --------------------*/
hr {
	width: auto;
	height: 1px;
	border-width: 1px 0 0;
	border-style: solid;
	border-color: #ccc;
	margin: 10px auto;
}


/* テキスト関係 --------------------*/
.left		{ text-align: left; }
.center		{ text-align: center; }
.right		{ text-align: right; }
.f-left		{ float: left;	margin: 5px 10px 10px 0; }
.f-right	{ float: right;	margin: 5px 0 10px 10px; }
.f-clear	{ clear: both; }
.red		{ color: red; }
.blue		{ color: blue; }
.celeste	{ color: #0095bf; }
.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; }
.italic		{
	font-family: "游ゴシック", "Yu Gothic", sans-serif;
	font-style: italic;
}
.oblique	{
	font-family: "游ゴシック", "Yu Gothic", sans-serif;
	font-style: oblique;
}

.com {
	width: 100%;
	padding: 6px;

}


/* image --------------------*/
img	{
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	border: none;
	vertical-align: bottom;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
	-webkit-touch-callout: none;
	-moz-touch-callout: none;
	touch-callout: none;
}


/* table --------------------*/
table {
	border-collapse: collapse;
}
table,
table td,
table th　{
	border: 1px solid #ccc;
}

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

/* ulタグ --------------------*/
/* マークのリセット */ 
li {
	list-style-type: none;
}

/* オリジナルマークを付与可 -------------------- */
[data-mark] {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.6em;
	width: fit-content;
}
[data-mark]::before {
	content: attr(data-mark);
	color: inherit;
	font-weight: inherit;
	grid-column: 1;
}

[data-mark][data-align="center"] {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

[data-mark][data-align="right"] {
	margin-left: auto;
	margin-right: 0;
	text-align: right;
}

[data-mark] > [data-mark]::before {
	
}

/* flex / grid --------------------*/
/* flex box/grid box 共通設定(デフォルトはflexbox) */
[data-column] {
	--data-column: 3;
	display: flex;
	flex-wrap: wrap;
	--gap: 6px;
	gap: var(--gap);
}
[data-column="2"] { --data-column: 2; }
[data-column="3"] { --data-column: 3; }
[data-column="4"] { --data-column: 4; }
[data-column="5"] { --data-column: 5; }
[data-column="6"] { --data-column: 6; }

[data-column]:not(.grid) > * {
	width: calc((100% - (var(--data-column) - 1) * var(--gap)) / var(--data-column));
}

/* grid -------------------------------*/ 
.grid[data-column] {
	display: grid;
	grid-template-columns: repeat(var(--data-column), 1fr);
	align-items: start;
}
.grid > * {
	grid-column: span 1;
	grid-row: span 1;
}

/* アコーディオンメニュー --------------------*/
input[type="radio"].ac-trigger {
	display: none;
}
.ac-item {
/*	border-bottom: 1px solid #ddd;*/
}
.ac-label {
	display: block;
	cursor: pointer;
	user-select: none;
}
.ac-content-wrapper {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.3s ease-out;
}
input[type="radio"]:checked + .ac-label + .ac-content-wrapper,
.ac-item.is-hover:hover .ac-content-wrapper {
	grid-template-rows: 1fr;
}

.ac-item.is-hover .ac-label {
	cursor: pointer;
}
.ac-content-inner {
	overflow: hidden;
}

/* section --------------------*/
section + section {
	margin-top: 50px;
}


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

/* header
------------------------------------------------------------------------------*/
header {
	margin: 30px auto 0;
	text-align: center;
}
header h1 {
	font-size: 1.5em;
	color: blue;
}
header h1 span {
	display: block;
	font-size: 1rem;
	color: #333;
	font-weight: normal;
}



/* footer
------------------------------------------------------------------------------*/
footer small {
	color: #000080;

}

