/* 全体用 */
body, h1, h2, h3, table, th, td, ul, li, div, p, input, textarea {
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: "メイリオ", Meiryo,"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

#header {
	width: 100%;
	margin: 0 auto;
	background:  linear-gradient(110deg, #00747F, #00A8BC);
}
#header h1 {
	max-width: 1250px;
	width: 95%;
	padding: 15px 0 8px;
	margin: 0 auto;
	font-size: 35px;
	color: #FFF;
}
#header h1 a {
	color: #FFF;
	text-decoration: none;
}

#content {
	display: flex;
	justify-content: center;
	max-width: 1220px;
	width: 100%;
	min-height: 1000px;
	margin: 0 auto;
}

#main {
	width: 80%;
	padding: 20px;
}
#main h2 {
	color: #FFF;
	font-size: 18px;
	font-weight: bold;
	width: 100%;
	line-height: 40px;
	background: linear-gradient(110deg, #00747F, #00A8BC);
	margin: 20px auto 10px;
	padding: 0px 20px;
	box-sizing: border-box;
}


#side {
	width: 20%;
	padding: 20px;
}
#side h3 {
	color: #FFF;
	font-size: 16px;
	font-weight: bold;
	width: 100%;
	line-height: 40px;
	text-align: center;
	background: linear-gradient(110deg, #00747F, #00A8BC);
	margin: 20px auto 10px;
}
#side a {
	color: #000;
	text-decoration: none;
}
#side ul {
	padding: 0.3em 0 0.3em 1.2em;
	list-style-type: none;
	border: none;
}
#side ul li {
	position:relative;
	padding: 0.3em 0 0.3em 1.5em;
	line-height: 1.8;
}
#side ul li::after,
#side ul li::before {
	content: '';
	position: absolute;
}
#side ul li::after {
	left: -0.2em;
	top: 8px;
	width: 20px;
	height: 20px;
	background-color: #00A8BC;
	border-radius: 50%;
}
#side ul li::before {
	z-index: 2;
	left: 3px;
	top: 15px;
	width: 4px;
	height: 4px;
	border-right: 1px solid #fff;
	border-bottom: 1px solid #fff;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
}


/* ボタン風リンク */
.btn,
a.btn,
button.btn {
	font-weight: 700;
	line-height: 1.5;
	position: relative;
	display: inline-block;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	letter-spacing: 0.1em;
	color: #212529;
	border-radius: 0.5rem;
}
a.btn-link {
	margin-bottom: 0.5rem;
	padding: 0;
	border-radius: 0.75rem;
}
a.btn-link:before {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;

	height: 100%;

	content: "";
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	-webkit-transform: translate3d(0, 0.75rem, -1rem);
	transform: translate3d(0, 0.75rem, -1rem);

	border: 2px solid #000;
	border-radius: inherit;
	background: #00747F;
	-webkit-box-shadow: 0 0.6rem 0 0 rgba(0, 0, 0, 0.2);
	box-shadow: 0 0.6rem 0 0 rgba(0, 0, 0, 0.2);
}
a.btn-link:after {
	font-family: "Font Awesome 5 Free";
	font-size: 2rem;
	font-weight: normal;
	line-height: 1;
	position: absolute;
	top: calc(50% - 1rem);
	left: 1.5rem;
	margin: 0;
	padding: 0;
}
.btn-link-front {
	color: #FFF;
	position: relative;
	display: block;
	padding: 10px 20px;

	-webkit-transition: all 0.3s;
	transition: all 0.3s;
	border: 2px solid #000;
	border-radius: inherit;
	background: #00A8BC;
}
.fa-position-left {
	position: absolute;
	top: calc(50% - 0.5em);
	left: 1rem;
}
.fa-position-right {
	position: absolute;
	top: calc(50% - 0.5em);
	right: 1rem;
}
a.btn-link:hover {
	-webkit-transform: translate(0, 0.25rem);
	transform: translate(0, 0.25rem);
	background: #00747F;
}
a.btn-link:hover:before {
	-webkit-transform: translate3d(0, 0.5rem, -1rem);
	transform: translate3d(0, 0.5rem, -1rem);
	-webkit-box-shadow: 0 0.35rem 0 0 rgba(0, 0, 0, 0.2);
	box-shadow: 0 0.35rem 0 0 rgba(0, 0, 0, 0.2);
}

a.btn-link:active {
	-webkit-transform: translate(0rem, 0.75rem);
	transform: translate(0rem, 0.75rem);
}
a.btn-link:active:before {
	-webkit-transform: translate3d(0, 0, -1rem);
	transform: translate3d(0, 0, -1rem);
	-webkit-box-shadow: 0 0.35rem 0 0 rgba(0, 0, 0, 0.2);
	box-shadow: 0 0.35rem 0 0 rgba(0, 0, 0, 0.2);
}

/* 検索窓 */
#search-box {
    position: absolute;
	z-index: 2;
	top: 7px;
	right:10px;
}
#search {
	-webkit-appearance:none;
	width: 60px;/*テキスト入力エリアが伸びる前の横幅*/
	height: 60px;
    padding: 20px;
	border: none;
	background:#fff url("/images/icon_search.svg") no-repeat 17px center;
	background-size: 25px 25px;
	transition: all 0.5s;
	outline: none;
	cursor: pointer;
	color: transparent;
}
#search:focus {
	width: 350px;
	padding: 20px 0 20px 60px;
	box-shadow: 0 2px rgba(6,0,1,.26);
	font-size: 15px;
	color: #666;
}


/* タブ切替 */
.tabs {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
    margin: 50px auto 10px;
}
.tab_label {
	color: #00747F;
	font-weight: bold;
	border: solid 2px #00747F;
	position: relative;
	z-index: 1;
	cursor: pointer;
	flex: 1;
	padding: 5px 0;
	margin: 0 5px;
	text-align: center;
}
.tab_content {
	flex: 100%;
	display: none;
	overflow: hidden;
	margin: 20px 0 0;
}
input[name="tab_switch"] {
	display: none;
}
.tabs input:checked + .tab_label {
	color: #fff;
 	background-color: #00747F;
}
.tabs input:checked + .tab_label::after {
 	content: '';
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 10px 10px 0 10px;
	border-color: #00747F transparent transparent transparent;
	display: block;
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -10px;
	transition: all 0.3s ease 0s;
}
#tab01:checked ~ #tab01_content,
#tab02:checked ~ #tab02_content,
#tab03:checked ~ #tab03_content,
#tab04:checked ~ #tab04_content {
	display: block;
}
.tab_content{
	position: relative;
	animation: fadeIn 1s ease;
}


/* 戻るボタン */
.return {
	margin: 0 0 30px;
}
.return a {
	text-decoration: none;
	font-weight: bold;
	color: #00747F;
	font-size: 20px;
}


/* フォーム */
.form_box {
	margin: 0 0 20px;
}
.form_box label {
	font-size: 18px;
	padding-left: 30px;
	position: relative;
}
.form_box input[type=checkbox] {
  display: none;
}
.form_box label:before {
	opacity: 0;
	content: "";
	display: inline-block;
	width: 7px;
	height: 15px;
	border-right: 4px solid #000;
	border-bottom: 4px solid #000;
	transform: rotate(45deg);
	position: absolute;
	top: -3px;
	left: 8px;
}
.form_box label:after {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	border: 1px solid #000;
	position: absolute;
	top: 0;
	left: 0;
}
.form_box input[type=checkbox]:checked + label:before {
	opacity: 1;
}
.form_box input[type=checkbox]:hover + label:after {
	border: 1px solid #000;
	cursor: pointer;
}
.form_box input[type="text"] {
	width: 100%;
	font-size: 16px;
	padding: 7px;
}
.form_box select {
	width: 100%;
	font-size: 16px;
	padding: 7px;
}
.form_box textarea {
	width: 100%;
	height: 250px;
	font-size: 16px;
	padding: 7px;
	line-height: 20px;
	resize: vertical;
}
.form_box button[type="submit"] {
	background: linear-gradient(110deg, #00747F, #00A8BC);
	color: #FFF;
	border-radius: calc(1px / 0);
	border: 0;
	padding: 10px 30px;
	font-weight: bold;
	text-decoration: none;
	filter: drop-shadow(0px 3px 0px rgb(32 33 33 / 0.1));
	cursor: pointer;
}
.form_box .dn {
	display: none;
}
.form_box .obtn {
	margin: 5px 0 0;
	padding: 7px 10px;
	border: 1px solid #ddd;
	cursor: pointer;
	border-radius: 5px;
	color: #666;
	background: linear-gradient(to bottom, #fff 0, #f4f4f4 100%);
	box-shadow: inset 0px -1px 0px 0px rgba(0, 0, 0, 0.09);
}
.form_box .icon {
	font-size: 90%;
	border-radius: 15px;
	background: #666;
	color: #fff;
	display: inline-block;
	padding: 5px 20px;
	margin: 0 10px;
}
.form_box .icon.selected {
	background: #C00;
	color: #FFF;
}
.form_box .file {
	display: inline-block;
	padding: 5px;
}


/* ボタンアニメーション */
.btn_box {
	display: flex;
	flex-wrap : wrap;
	justify-content: flex-start;
	justify-content: space-between;
	margin: 0 0 20px;
}
.btn_box::after {
	content:"";
	display: block;
	width:32%;
}
a.btn_anime {
	display: block;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	width: 32%;
	padding: 15px 20px;
	font-weight: bold;
	border-radius: 4px;
	border: 1px solid #00747F;
	color: #00747F;
	position: relative;
 	overflow: hidden;
 	z-index: 1;
	transition: all 0.2s ease-in;
	box-sizing:border-box;
}
a.btn_anime:before {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%) scaleY(1) scaleX(1.25);
	top: 100%;
	width: 140%;
	height: 180%;
	background-color: rgba(0, 0, 0, 0.05);
	border-radius: 50%;
	display: block;
	transition: all 0.5s 0.1s cubic-bezier(0.55, 0, 0.1, 1);
	z-index: -1;
}
 
a.btn_anime:after {
	content: "";
	position: absolute;
	left: 55%;
	transform: translateX(-50%) scaleY(1) scaleX(1.45);
	top: 180%;
	width: 160%;
	height: 190%;
	background-color: #00A8BC;
	border-radius: 50%;
	display: block;
	transition: all 0.5s 0.1s cubic-bezier(0.55, 0, 0.1, 1);
	z-index: -1;
}
 
a.btn_anime:hover {
	color: #FFF;
	 border: 1px solid #00A8BC;
}
 
a.btn_anime:hover:before {
 top: -35%;
 background-color: #00747F;
 transform: translateX(-50%) scaleY(1.3) scaleX(0.8);
}
 
a.btn_anime:hover:after {
 top: -45%;
 background-color: #00A8BC;
 transform: translateX(-50%) scaleY(1.3) scaleX(0.8);
}


/* テキストボックス */
.apo_box {
	padding: 8px;
	margin-bottom: 8px;
	border-radius:10px 0 10px 0;
	border: 5px double #333333;
	width: 95%;
	margin: 0 auto;
}
.apo_box a {
	color: #00747F;
}


/* エラーメッセージ */
.err_box {
	color: F00;
	font-weight: bold;
}


/* 掲示板リスト */
.list_box {
	border-bottom: 1px solid #CCC;
	min-height: 100px;
	padding: 10px;
}
.list_box:last-of-type {
	border: 0;
}
.list_box .title {
	font-weight: bold;
	font-size: 18px;
}
.list_box .title a {
	color: #00A8BC;
}
.list_box .data {
	padding: 5px 15px;
}
.list_box .time {
	text-align: right;
}

/* 掲示板 */
.data_box {
	border-bottom: 1px solid #999;
}
.data_box .title {
	font-size: 22px;
	font-weight: bold;
	border-bottom: 5px solid #00747F;
	padding: 0 10 2px;
	margin: 0 0 5px;
}
.data_box .time {
	padding: 0 10px 0;
	text-align: right;
}
.data_box .cat {
	display: inline-block;
	margin: 0 5px 10px;
	border: 1px solid #00747F;
	border-radius: 15px;
	background: #00747F;
}
.data_box .cat a {
	display: inline-block;
	color: #FFF;
	padding: 3px 15px;
	text-decoration: none;
}
.data_box .data {
	padding: 5px 15px;
	line-height: 30px;
}
.data_box .data a {
	font-weight: bold;
	color: #00747F;
}
.data_box .file {
	padding: 5px 15px;
}
.data_box .file a {
	color: #00747F;
	text-decoration: none;
}
.data_box .fas:before {
	font-family: 'Font Awesome 5 Free';
	content: '\f0c6';
	margin: 0 3px 0 4px;
}
.data_box .del {
	text-align: right;
	padding: 5px 15px;
}
.data_box .del a {
	font-size: 14px;
	color: #F00;
	text-decoration: none;
}


/* テーブル */
.def {
	padding: 20px 0;
}
.def table {
	width: 100%;
	table-layout: fixed;
	border-collapse:  collapse;
}
.def th,
.def td {
	text-align: center;
	padding: 5px;
	border: 1px solid #333;
}
.def th {
	color: #FFF;
	background: #00747F;
}

/* 音ログ */
.flex_box {
	display: flex;
}
.audio_box {
	padding: 10px;
	width: 50%;
	box-sizing: border-box;
}
.audio_box audio {
	width: 95%;
}
.exp_box {
	padding: 10px 5px;
}
.mb20 {
	margin-bottom: 20px;
}

