@charset "utf-8";
/*==================================================
	設定部
--------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:ital,wght@0,100..700;1,100..700&display=swap');

:root {
	/*------▼色設定▼------*/
	--color-font: #333;
	--color-red: #FF0000;
	--color-primary: #b6b8a1;
	--color-secondary: #998a7f;
	--color-thin: #888;
	--color-tbl-border: #ccc;
	--color-tbl-th: #f5f5f5;
	/*------▼フォント設定▼------*/
	--font-sans: 'Noto Sans JP', sans-serif;
	--font-zen: 'Zen Old Mincho', serif;
	--font-josefin: 'Josefin Sans', sans-serif;
}
/*==================================================
  基本スタイル
==================================================*/
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
body {
	background: #fff;
	color: var(--color-font);
	font-family: "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-size: 90%;
	text-align: center;
	-webkit-text-size-adjust: none;
}
p {
	text-align: justify;
	text-justify: inter-ideograph;
}
p.nm {
	margin-bottom: 0px !important;
}
h1, h2, h3, h4 {
	font-size: 100%;
	line-height: 1.4;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
	empty-cells: show;
}
th {
	font-weight: normal;
	text-align: left;
}
img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
	-webkit-backface-visibility: hidden;
}
ul {
	list-style: none;
}
hr {
	border: none;
	border-bottom: 1px solid var(--color-tbl-border);
}
/*--------------------------------------------------
  フォント色指定
--------------------------------------------------*/
.sans { font-family: var(--font-sans); }
.zen { font-family: var(--font-zen); }
.josefin { font-family: var(--font-josefin); }
/**/
.red { color: var(--color-red); }
.pri { color: var(--color-primary); }
.sec { color: var(--color-secondary); }
.thin { color: var(--color-thin); }	/* 薄い色 */
/*--------------------------------------------------
  フォントサイズ
--------------------------------------------------*/
.b  { font-weight: bold; }		/* 太字 */
.fs { font-size: 85%; }				/* 小さい文字 */
.fm { font-size: 115%; }			/* 大きい文字 */
/*--------------------------------------------------
  リンク
--------------------------------------------------*/
a {
	color: var(--color-primary);
	text-decoration: none;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
a img { border: none; }
@media print, screen and (min-width:769px){
	a:not(.nothin):active, a:not(.nothin):hover {
		filter:alpha(opacity=60);
		-moz-opacity: 0.6;
		opacity: 0.6;
	}
}
/*--------------------------------------------------
  配置
--------------------------------------------------*/
.cen { text-align: center; }	/* 中央寄せ */
.lft { text-align: left; }		/* 左寄せ */
.rit { text-align: right; }		/* 右寄せ */
.vtop { vertical-align: top; }		/* 上詰め */
.vbtm { vertical-align: bottom; }	/* 下詰め */
/* 画像配置（文字を回り込ます） */
.img_lft { float: left; margin-right: 20px; }
.img_rit { float: right; margin-left: 20px; }
@media only screen and (max-width: 768px) {  /* タブレット以下 */
	/* アンカーリンク用上部スペース */
	.pad_anchor {
		margin-top: -50px;
		padding-top: 50px;
	}
}
/*--------------------------------------------------
  各表示用
--------------------------------------------------*/
@media print, screen and (min-width: 769px){ /* PCのみ */
	.dsp_tbs, .dsp_smt { display: none; }
	.cen_pc { text-align: center; }
}
@media only screen and (max-width: 768px) and (min-width: 641px){ /* タブレットのみ */
	.dsp_smt { display: none; }
}
@media only screen and (max-width: 768px) {  /* タブレット以下 */
	.dsp_hp { display: none; }
}
@media only screen and (max-width: 640px){ /* スマホ */
	.dsp_hp, .dsp_hpt { display: none; }
	.cen_sp { text-align: center; }
}
/*--------------------------------------------------
	IME（フォームコントロール用）
--------------------------------------------------*/
/* 半角 */
.disabled {
	ime-mode: disabled;
	border: 1px solid #A5ACB2;
	padding: 4px;
}
/* 全角(切替可) */
.active {
	ime-mode: active;
	border: 1px solid #A5ACB2;
	padding: 4px;
}
/*--------------------------------------------------
  その他
--------------------------------------------------*/
/* フロート解除 */
.cb { clear: both; }
/* クリアフィックス */
.cf:after,
.cb:after {
	clear: both;
	display: block;
	overflow: hidden;
	height: 0px;
	content: "";
}
/* 背景固定 */
html, body, #wrap {
	height: 100%;
}
body > #wrap {
	height: auto;
	min-height: 100%;
	display: flex;
	flex-direction: column;
}