@charset "utf-8";
html {
	scroll-behavior: smooth;
	overflow-x: hidden;
}
/*htmlボディの定義。背景色黒、文字色白、文字サイズ15px*/
body {
	font-family: meiryo, sans-serif;
	background-color: black;
	color: white;
	font-size: 15px;
	line-height: 1.8em;
	text-align: center;
	box-sizing: border-box;
	margin: 0px;
}
.base_wrapper {
	display: flex;
  justify-content: center;
	width: 1400px;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding: 0;
}
.base_right {
	width: 200px;
	height: 96vh;
	padding-left: 1em;
	text-align: left;
	box-sizing: border-box;
}
.base_left {
	width: 200px;
	height: 96vh;
	padding-right: 1em;
	text-align: right;
	box-sizing: border-box;
}
.base {
	width: 1000px;
	max-width: 96%;
	text-align: left;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	padding: 1px;
}
/*テキストリンクの定義。下線なし、色白固定*/
a {
	color: white;
	text-decoration:none;
}
/*通常外部リンク*/
a.link {
	color: #77bbFF;
	text-decoration: underline;
}
/* タイトル */
.title_image{
	width: 1000px;
	height: 333.3px;
	background-repeat: no-repeat;
	background-size: 100% auto;
	display: table-cell;
	vertical-align: bottom;
	text-align: right;
}
h1 {
	font-size: 3em;
	font-weight:bold;
	text-shadow: 2px 2px 1px #000, -2px 2px 1px #000, 2px -2px 1px #000, -2px -2px 1px #000;
	margin-right: 0.3em;
	margin-top: 0.2em;
	margin-bottom: 0.5em;
}
.h1_sub {
	font-size: 0.7em;
	margin-left: 0.2em;
	white-space: nowrap;
}
.text-caption{
	margin-right: 0.9em;
	font-size: 1.5em;
	text-shadow: 2px 2px 1px #000, -2px 2px 1px #000, 2px -2px 1px #000, -2px -2px 1px #000;
}
/*トップページに戻るアイコン*/
#top_page{
  width: 80px;
  height: 50px;
  position: fixed;
  right: 20;
  bottom: 25;
  background: #444444;
  opacity: 0.6;
  border-radius: 15px;
}
#top_page a{
  position: relative;
  display: block;
  width: 80px;
  height: 50px;
  text-decoration: none;
}
#top_page a::before{
  content: '\025b2';
  font-size: 25px;
  color: #ddd;
  position: absolute;
  width: 25px;
  height: 25px;
  top: -25px;
  bottom:0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}
#top_page a::after{
  content: 'PAGE TOP';
  font-size: 12px;
  color: #ddd;
  position: absolute;
  top: 22px;
  bottom: 35;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}
/*メニューに対する右側の上、サブメニュー部*/
.head {
	margin-bottom:1em;
	margin-top:0.5em;
	margin-left:0.5em;
}
/*ボタンリンクをリストで記述。*/
.ul_submenu {
	list-style:none;
	margin:0em;
	padding:0;
	overflow:hidden;
	position:relative;
	z-index:1;
	bottom:-2px;
}
.ul_submenu li {
	text-align:center;
}
hr {
	background-color:#000000;
	color:#000000;
	height:1px;
	border:0px;
}
.tab_bottom {
	position:relative;
	z-index:0;
	height:2px;
	background-color: white;
	margin:0px 3px 0px;
}
/*タブオフ、画像なしテキストリンク*/
.tab_off {
	width:80px;
	height:30px;
	font-size:0.8em;
	text-decoration:none;
	padding:12px 0px 0px;
	background-color:#3A3A3A;
	float:left;
	border-top-right-radius:10px;
	border-top-left-radius:5px;
	border-top:1px solid #000000;
	border-bottom:2px solid white;
	margin-left:3px;
}
.tab_off:hover {
	background-color: lightgray;
}
/*タブオン、画像なしテキストリンク*/
.tab_on{
	width:80px;
	height:30px;
	font-size:0.8em;
	text-decoration:none;
	padding:12px 0px 0px;
	border-top:1px solid white;
	border-left:1px solid white;
	border-right:1px solid white;
	border-bottom:2px solid #000000;
	background-color:#000000;
	float:left;
	border-top-right-radius:10px;
	border-top-left-radius:5px;
	margin-left:3px;
}
/*タブ：サイトトップへの戻り用 */
.tab_back {
	width:80px;
	height:30px;
	font-size:0.8em;
	text-decoration:none;
	padding:12px 0px 0px;
	background-color:#999999;
	color: black;
	float:left;
	border-top-right-radius:10px;
	border-top-left-radius:5px;
	border-top:1px solid #000000;
	border-bottom:2px solid white;
	margin-left:3px;
}
.tab_back:hover {
	background-color: white;
}
/* ページタイトル */
h2{
	margin-top: 2em;
	font-size:1.3em;
	text-indent:0.5em;
}
/* ページ内用のリンク */
.ul_sublink{
	margin-top:0em;
	list-style:none;
	padding-left:1em;
	overflow:hidden;
}
/*サブリンク、画像なしテキストリンク*/
.sublink{
	height:30px;
	font-size:0.8em;
	text-decoration:none;
	padding:12px 0px 0px;
	float:left;
}
.sublink:after{
	content:"\2502";
	font-size:0.8em;
	color:#cccccc;
}
.sublink:before{
	content:"\2502";
	font-size:0.8em;
	color:#cccccc;
}
.sublink:hover{
	background:#002244;
}
/* 記事ボックス */
.box{
	margin: 0.1em;
	padding-top: 0.3em;
	padding-left: 0.5em;
	padding-right: 0.5em;
	padding-bottom: 1.5em;
	background-color:#000000;
	border: #555555 solid 2px;
	border-radius: 10px;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	box-sizing: border-box;
}
/* 記事見出し */
h3 {
	text-indent:0.5em;
	border-bottom:1px solid #ffffff;
	font-size:1.3em;
}
/* 記事内見出し */
h4 {
	text-indent: 0.2em;
	font-size: 1.2em;
	margin-bottom: 0.5em;
	margin-top: 1.5em;
	padding-top: 0.3em;
	padding-bottom: 0.1em;
	border-radius: 0.2em;
	padding-left: 10px;
	background-color: #444444;
}
/* 小見出し */
h5 {
	text-indent:0.2em;
	/*border-bottom:1px dotted #dddddd;
		width:90%;*/
	font-size:1.1em;
	margin-bottom:0.3em;
	margin-top:1em;
	color:#ffffff;
	border-left: solid 5px lightgray;
	padding-left: 0.5em;
	padding-top: 0.2em;
}
/* パラグラフ */
p {
	padding-right: 3em;
	margin-top: 0.5em;
	margin-bottom: 0.1em;
}
/* 強調 */
b {
	font-size:		1.1em;
}
.big{
	font-size: large;
}
/* 記事内のリスト */
.basic_list {
	margin-top: 0.5em;
	padding-left: 2em;
	padding-right: 3em;
	margin-bottom: 0.5em;
}
/* 横長の画像 */
.wide {
	width: 100%;
}
/* ある程度まで横長の画像 */
.free {
	margin-right: 0em;
}
/* 横短の画像 */
.half {
	float: left;
	margin-right: 0.5em;
	margin-bottom: 0.5em;
}
/* さらに小さい一枚絵 */
.short {
	float: left;
	margin-right: 0.5em;
	margin-bottom: 0.5em;
	width: 300px;
}
/* テーブル用装飾*/
.title{
	text-align:center;
	background-color:#333333;
	white-space:nowrap;
}
table{
	vertical-align: top;
	border-collapse: collapse;
	max-width: 100%;
	margin-top: 1em;
}
td {
	border:1px solid #bbbbbb;
}
/* 画像ライトボックス */
.overlay {
  position: fixed; /* 背景 */
  background: rgba(0, 0, 0, 0.1);
  visibility: hidden;
  opacity: 0;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}
.pop-up {
  display: none;
}
.pop-up:checked + .overlay {
  visibility: visible;
  opacity: 1;
  z-index: 2000;
  background-color: #00000099; /* オーバーレイ背景の透過度 */
  width: 100%;
}
.popWindow {
  transform: scale(0.3); /* クリックした直後のサイズ */
  z-index: 2010;
  margin: 10px auto;
  padding: 4px 10px;
  transition: all 0.5s 0s ease;
  display: flex; /* 中央 */
  justify-content: center;
  align-items: center;
	overflow: auto;
}
.pop-up:checked + .overlay .popWindow {
  transform: scale(1); /* 最終的なサイズ */
  height: 100%;
}
.pbox {
	max-width: 100%; /*これがないと画面外が表示できない*/
	max-height: 100%;
  display: flex; /* 中央 */
  border-radius: 5px;
  overflow: auto;
	flex: 0 0 auto;
}
.thumb {
	max-width: 98%;
	margin-top: 0.5em;
	margin-right: 0.5em;
	margin-bottom: 0.5em;
	margin-left: 0;
}
/*画像スライダー用*/
.slider {
  text-align: center;
  overflow: hidden;
  float: left;
  margin-right: 1em;
  margin-top: 1em;
}
.cp {
  width: 427px;
}
.cr {
  width: 960px;
}
.slides {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}
.slides::-webkit-scrollbar {
  width: 10px;
  height: 14px;
}
.slides::-webkit-scrollbar-thumb {
  background: white;
  border-radius: 10px;
}
.slides::-webkit-scrollbar-track {
  background: transparent;
}
.slides > div {
  scroll-snap-align: start;
  flex-shrink: 0;
  margin-right: 20px;
  border-radius: 10px;
  background: #eee;
  transform-origin: center center;
  transform: scale(1);
  transition: transform 0.5s;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.cpp {
  width: 427px;
  height: 320px;
}
.author-info {
  background: rgba(0, 0, 0, 0.75);
  color: white;
  padding: 0.75rem;
  text-align: center;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0;
}
.author-info a {
  color: white;
}
.slides img {
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.slider > a {
  display: inline-flex;
  width: 1.5rem;
  height: 1.5rem;
  color: white;
  border-color: white;
  border-width:1px;
  border-style: solid;
  text-decoration: none;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  margin: 0 0 0.5rem 0;
  position: relative;
}
.slider > a:active {
  top: -2px;
}
.slider > a:focus {
  background: white;
  color: black;
}
@supports (scroll-snap-type) {
  .slider > a {
    display: none;
  }
}
.slide_play {
    display: inline-block;
    position: relative;
    width: 1em;
    height: 1em;
    border: 0.05em solid currentColor;
    border-radius: 50%;
    color: white;
    font-size: 1.5rem;
    margin-bottom:none;
}
.slide_play::before {
    position: absolute;
    top: 50%;
    left: 30%;
    transform: translateY(-50%);
    width: 0px;
    height: 0px;
    border: 0.3em solid transparent;
    border-left: 0.5em solid currentColor;
    box-sizing: border-box;
    content: "";
}
.set_play {
  position: relative;
  top: 0.45rem;
}
.set_play a:active {
  background: white;
  color: black;
  top: -2px;
}
@media screen and (max-width:1400px){
	.base_wrapper {
		width: 1200px;
	}
}
@media screen and (max-width: 1000px){
	.title_image {
		height: 33.3vw;
	}
	p {
		padding-right: 0.5em;
	}
}
@media screen and (max-width: 720px){
	h1 {
		line-height: 1.2em;
		margin-bottom: 0.2em;
	}
	/* ある程度まで横長の画像 */
	.free {
		width: 100%;
	}
	.half {
		width: 100%;
		margin-right: 0px;
		/* この処理がないとPタグの最初の全角スペースインデントが消える。 */
		float: none;
	}
		.short {
		width: 45%;
	}
	.basic_list {
		padding-left: 1.5em;
		padding-right: 0.5em;
	}
	td {
		font-size: 0.8em;
	}
	.tab_off{
		padding:8px 0px 0px;
		float:left;
		border-radius: 5px;
		border:1px solid #000000;
		margin-left:3px;
	}
	.tab_on{
		padding:8px 0px 0px;
		border:1px solid white;
		/*background-color:#000000;*/
		float:left;
		border-radius: 5px;
		margin-left:3px;
	}
	.tab_back {
		padding:8px 0px 0px;
		border:1px solid black;
		/*background-color:#000000;*/
		float:left;
		border-radius: 5px;
		margin-left:3px;
	}
	.tab_bottom{
		background-color:#000000;
	}
	/* この処理がないとPタグの最初の全角スペースインデントが消える。 */
	.slider {
		float: none;
	  margin-right: 0.5em;
	}
	.cp {
  	width:91vw;
		margin-right: 0px;
	}
	.cpp {
  	width: 91vw;
		height: 67vw;
	}
}
/*
@media screen and (max-width:1000px){
	body{
		max-height:999999px;
	}
	.short {
		width: 49vw;
	}
	p {
		margin-right: 1em;
	}
	.base{
		width: 100vw;
	}
	.fullbody{
		width: 99vw;
	}
	.ul_menu{
		list-style:none;
		margin:0;
		padding:0;
		overflow:hidden;
	}
	.box{
		width:99%;
	}
	.tab_bottom{
		background-color:#000000;
	}
*/
	/*タブオフ、画像なしテキストリンク*/
/*
	.tab_off{
		padding:8px 0px 0px;
		float:left;
		border-top-right-radius:10px;
		border-top-left-radius:5px;
		border-bottom-right-radius:10px;
		border-bottom-left-radius:5px;
		border:1px solid #000000;
		margin-left:3px;
	}
*/
	/*タブオン、画像なしテキストリンク*/
/*
	.tab_on{
		padding:8px 0px 0px;
		border:1px solid white;
		background-color:#000000;
		float:left;
		border-top-right-radius:10px;
		border-top-left-radius:5px;
		border-bottom-right-radius:10px;
		border-bottom-left-radius:5px;
		margin-left:3px;
	}
*/
	/*画像スライダー用*/
/*
  .slider {
    float: none;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: auto;
  }
}
@media screen and (max-width:720px){
	p {
		margin-right: 0.5em;
	}
	.short {
		width: 98vw;
	}
}
@media screen and (max-width:600px){
	.small {
		width: 98vw;
	}
	.cr {
  	width: 92vw;
	}
	.crr {
  	width: 92vw;
		height: 51.75vw;
	}
}
@media screen and (max-width:800px){
	table, td{
		font-size:14px;
	}
	h1{
		font-size:1.0em;
		padding-left:0.5em;
		font-weight:bold;
	}
	h2{
		font-size:1.1em;
	}
	h3{
		font-size:1.0em;
	}
	h4{
		font-size:1.0em;
	}
	h5{
		font-size:1.0em;
	}

	.body{
		padding-left:0.0em;
	}
	.box{
		padding: 0.1em 0.2em 0.5em;
		width:100%;
	}
	.button00{
		width:22vw;
		height:7.7vw;
		font-size:0.8em;
		line-height:1.1em;
	}
	.button01{
		width:23vw;
		height:7.7vw;
	}
	.button_ocb{
		width:23vw;
		height:13.7vw;
	}
	.button99{
		width:22vw;
		height:7.7vw;
		font-size:0.8em;
		line-height:1.1em;
	}
	.button98{
		width:23vw;
		height:7.7vw;
	}
	.button02{
		width:22.5vw;
		height:7.5vw;
	}
	.button02other {
	line-height: 7.5vw;
}
	.face_icon{
		width:22.5vw;
		height:7.5vw;
	}
*/
	/*タブオフ、画像なしテキストリンク*/
/*
	.tab_off{
		width:6em;
		height:2.5em;
		font-size:0.6em;
		padding: 0.5em 0px 0.5em;
		border-top-right-radius:0.8em;
		border-top-left-radius:0.4em;
		border-bottom-right-radius:0.8em;
		border-bottom-left-radius:0.4em;
		margin-left:3px;
	}
	.tab_off1{
		width:6em;
		height:2.5em;
		font-size:0.6em;
		padding: 0.5em 0px 0.5em;
		border-top-right-radius:0.8em;
		border-top-left-radius:0.4em;
		border-bottom-right-radius:0.8em;
		border-bottom-left-radius:0.4em;
		margin-left:3px;
	}
*/
	/*タブオン、画像なしテキストリンク*/
/*
	.tab_on{
		width:6em;
		height:2.5em;
		font-size:0.6em;
		padding: 0.5em 0px 0.5em;
		border-top-right-radius:0.8em;
		border-top-left-radius:0.4em;
		border-bottom-right-radius:0.8em;
		border-bottom-left-radius:0.4em;
		margin-left:3px;
	}
*/
	/*サブリンク、画像なしテキストリンク*/
/*
	.sublink{
		height:2em;
		font-size:1.0em;
	}
	.sublink:after{
		content:"│";
		font-size:1.0em;
		color:#999999;
	}
	.sublink:before{
		content:"│";
		font-size:1.0em;
		color:#999999;
	}
}
@media screen and (max-width:720px){
	.img2{
		width:98%;
	}
	.dmg{
		width:3.5em;
	}
}
@media screen and (max-width:480px){
	.img1{
		width:45%;
	}
	.img4f{
		overflow-x: auto;
		overflow-y:hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
	}
	.img4f::-webkit-scrollbar{
		height: 0.3em;
	}
	.img4f::-webkit-scrollbar-thumb{
		background-color: rgba(255, 255, 255, 0.5);
	}
	.img4{
		width: 135vw;
	}
@media screen and (max-width:400px){
	.button00{
		width:29vw;
		height:10vw;
		font-size:0.5em;
	}
	.button01{
		width:30vw;
		height:10vw;
	}
	.button02{
		width:27.9vw;
		height:9.3vw;
	}
	.button02other {
	line-height: 9.65vw;
}
	.button_ocb{
		width:30vw;
		height:17.9vw;
	}
	.button99{
		width:29vw;
		height:10vw;
		font-size:0.5em;
	}
	.button98{
		width:30vw;
		height:10vw;
	}
	.labeled{
		width:10em;
	}
	.sublink{
		font-size:10px;
		height: 24px;
	}
	.sublink:after{
		font-size:10px;
	}
	.sublink:before{
		font-size:10px;
	}
	table, td{
		font-size:10px;
	}
	.c{
		height: 10px;
	}
	ol > img {
		height: 10px;
	}
	.fr > img {
		height: 10px;
	}
	.title_text{
		font-size:x-large;
	}
	ul{
		padding-left:1.0em;
	}
	.text-caption{
		font-size:12px;
	}
	ol{
		font-size: 10px;
	}
}
*/