﻿/*--全体設定----------------------------------*/

* {
margin: 0;
padding: 0;
outline: 0;
}

html{ /*html:focus-within {*/
scroll-behavior: smooth;
}

body {
font-size: 81.25%;
font-family: "メイリオ","Meiryo","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","Osaka","ＭＳ Ｐゴシック","MS PGothic",sans-serif;
line-height: 180%;
color: #222;
background-color: #f5f5f5;
overflow-y: scroll;
}

a, nav li a:hover, footer li a:hover {
text-decoration: none;
}

a:visited {
color: #5b72e8;
}

a:link, #contents a:visited {
color: #4694d3; /* ←#56a0e3 */
}

a:hover {
text-decoration: underline;
}

a:active, strong {
color: #ef3d45;
}

em {
font-style: normal;
font-weight: bold;
}

img {
border: 0;
vertical-align: text-bottom;
}

p {
margin-bottom: 1em;
text-align: justify;
line-break: strict;
}

small {
color: #777;
}

article .ul {
margin-left: 1.5em;
}

header, article, footer {
min-width: 960px;
}

header div, article, footer div {
width: 960px;
margin: 0 auto;
}

nav ul:after, footer ul:after, ul#browser:after, ul.link:after, #pi_list > ul:after, footer > div:after, dl:after, div.column_2:after, ul.column_list:after {
content: "";
display: block;
clear: both;
}

/*--header------------------------------------*/

header {
background-color: #fff;
background-image: -webkit-linear-gradient(#fff,#eee);
background-image: linear-gradient(#fff,#eee);
-webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.2), inset 0 -3px 0 #58c9ce;
box-shadow: 0 1px 5px rgba(0,0,0,0.2), inset 0 -3px 0 #58c9ce;
position: relative;
z-index: 1;
}

h1 {
padding: 22px;
}

h1 a {
display: block;
width: 285px;
margin: 0 auto;
}

h1 img + img {
opacity: 0.5;
margin-bottom: 14px;
padding-left: 20px;
}

nav li, footer li {
float: left;
list-style: none;
padding: 0 1px 0 2px;
-webkit-box-shadow: inset 0 -3px 0 #eee;
box-shadow: inset 0 -3px 0 #eee;
text-shadow: 0 1px #fff;
}

nav li:first-child, footer li:first-child {
}

nav a, footer li a {
display: block;
width: 134px;
text-align: center;
padding: 8px 0;
font-size: 116%;
border-bottom: 3px solid #58c9ce;
background: -webkit-linear-gradient(rgb(244,244,244), rgba(240,240,240,0));
background: linear-gradient(rgb(243,243,243), rgba(240,240,240,0));
-webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s;
-moz-transition: border-color 0.3s, background-color 0.3s, color 0.3s;
-o-transition: border-color 0.3s, background-color 0.3s, color 0.3s;
-ms-transition: border-color 0.3s, background-color 0.3s, color 0.3s;
transition: border-color 0.3s, background-color 0.3s, color 0.3s;
}

nav li:first-child a:before, footer li:first-child a:before, nav a:after, footer li a:after {
content: "";
position: absolute;
display: block;
width: 1px;
height: calc(1.8em + 19px);
margin: -12px 0 0 -2px;
background: -webkit-linear-gradient(rgb(187,187,187,0) 0%, rgb(187,187,187) 40%, rgba(187,187,187) 100%);
background: linear-gradient(rgb(187,187,187,0) 0%, rgb(187,187,187) 40%, rgba(187,187,187) 100%);
}

nav li:first-child a:before, footer li:first-child a:before {
margin: -12px 0 0 -2px;
}

nav a:after, footer li a:after {
margin: calc(-1.8em - 8px) 0 0 135px;
}

footer li:first-child a:before, footer li a:after {
background: -webkit-linear-gradient(rgb(187,187,187) 0%, rgb(187,187,187) 60%, rgba(187,187,187,0) 100%);
background: linear-gradient(rgb(187,187,187) 0%, rgb(187,187,187) 60%, rgba(187,187,187,0) 100%);
}

footer li:first-child a:before {
margin-top: -8px;
}

footer li a:after {
margin-left: 81px;
}

nav li:first-child a {
/*width: 156px;*/
}

nav a:link, nav a:visited, footer li a:link, footer li a:visited {
color: #666;
}

nav a:hover, footer li a:hover {
border-color: #ccc;
background-color: rgba(255,255,255,0.6);
}

nav a:active, footer li a:active {
color: #999;
background-color: rgba(0,0,0,0.03);
}

nav a.here, footer li a.here {
border-color: #f4a742;
color: #666;
background-color: transparent;
}

/*--article-----------------------------------*/

article {
padding-bottom: 8em;
}

h2 {
margin: 2em 0;
padding: 10px 20px;
border: 1px solid #58c9ce;
-webkit-border-radius: 5px;
border-radius: 5px;
font-size: 147%;
color: #fff;
text-shadow: -1px -1px rgba(0,0,0,0.3);
background-color: #58c9ce;
background-image: -webkit-linear-gradient(rgba(255,255,255,0.2), rgba(255,255,255,0));
background-image: linear-gradient(rgba(255,255,255,0.2), rgba(255,255,255,0));
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.2), inset 0 1px rgba(255,255,255,0.3), inset 0 -1px rgba(255,255,255,0.2), inset 1px 0 rgba(255,255,255,0.3), inset -1px 0 rgba(255,255,255,0.3);
box-shadow: 0 1px 3px rgba(0,0,0,0.2), inset 0 1px rgba(255,255,255,0.3), inset 0 -1px rgba(255,255,255,0.2), inset 1px 0 rgba(255,255,255,0.3), inset -1px 0 rgba(255,255,255,0.3);
}

section > h3 {
margin: 3.5em 0 1.25em 0;
padding: 2px 8px;
border-bottom: 1px #bbb solid;
border-left: 5px #58c9ce solid;
border-radius: 5px;
font-size: 116%;
background-image: -webkit-linear-gradient(rgba(255,255,255,0),#fcfcfc);
background-image: linear-gradient(rgba(255,255,255,0),#fcfcfc);
}

h4 {
margin: 2em 0 0.5em 1em;
color: #43b8bd;
}

h4:before {
position: absolute;
content: "";
width: 0;
height: 0;
margin: 0.55em 0 0 -0.8em;
border: 4px solid transparent;
border-left-color: #43b8bd;
}

dt, dd {
float: left;
}

dt {
clear: left;
margin-right: 2em;
}

#contents {
margin-top: 2em;
padding: 0.8em 1.4em;
border: 1px solid #aaa;
border-radius: 5px;
}

#contents:first-line {
font-weight: bold;
}

#contents > ol {
margin-top: 1em;
}

#contents li ul {
margin-left: 0.5em;
}

#contents li li {
display: inline-block;
margin: 0 0.5em;
}

/*--footer------------------------------------*/

footer {
background-color: #fff;
background-image: -webkit-linear-gradient(#fff,#eee);
background-image: linear-gradient(#fff,#eee);
-webkit-box-shadow: 0 -1px 5px rgba(0,0,0,0.2), inset 0 3px 0 #58c9ce;
box-shadow: 0 -1px 5px rgba(0,0,0,0.2), inset 0 3px 0 #58c9ce;
}

footer > div {
text-align: right;
padding-bottom: 10px;
}

footer a img {
float: left;
margin: 20px 0;
}

footer > div > div {
float: right;
width: 582px;
}

footer ul {
margin-bottom: 30px;
}

footer li {
-webkit-box-shadow: inset 0 3px 0 #fff;
box-shadow: inset 0 3px 0 #fff;
}

footer li a {
float: left;
width: 80px;
padding: 5px 0;
font-size: 100%;
border-top: 3px solid #58c9ce;
border-bottom: 0;
background: -webkit-linear-gradient(rgba(240,240,240,0), #f9f9f9);
background: linear-gradient(rgba(240,240,240,0), #f9f9f9);
}

footer li a:active {
background-color: rgba(0,0,0,0.04);
}

/*--index-------------------------------------*/

div#main_img img {
position: relative;
margin: -100px 0 40px 0;
}

div#main_img:before {
content: "";
display: block;
width: 960px;
height: 100px;
background: -webkit-linear-gradient(rgba(255,255,255,0),#f3f3f3);
background: linear-gradient(rgba(255,255,255,0),#f3f3f3);
position: relative;
top: 200px;
z-index: 1;
}

ul#browser {
margin: 0 0 1em -0.25em;
}

ul#browser li {
list-style: none;
margin: 3px 10px;
background: no-repeat;
}

ul#browser li:before {
content: "";
display: block;
float: left;
width: 16px;
height: 16px;
margin: 2px 8px 0 0;
background: url(index/browser.png) no-repeat;
}

ul#browser li.ie:before {
background-position: 0 0;
}

ul#browser li.ch:before {
background-position: -16px 0;
}

ul#browser li.ff:before {
background-position: -32px 0;
}

ul#browser li.sf:before {
background-position: -48px 0;
}

ul#browser li.op:before {
background-position: -64px 0;
}

div.column_2 {
margin-top: -3em;
position: relative;
}

div.column_2 section {
float: left;
width: 465px;
}

div.column_2 section:first-child {
margin-right: 30px;
}

div.column_2 section img {
float: right;
margin: 0 0 1em 0.5em;
}

div.column_2 > a {
position: absolute;
right: 0;
bottom: 0;
}

/*--railsim･freetrain-------------------------*/

span.file_name {
margin: 0 3px;
padding: 0 4px;
border: 1px solid #bbb;
border-radius: 3px;
font-weight: bold;
background-color: #e6e6e6;
}

#pi_list > ul {
padding-left: 60px;
}

#pi_list > ul > li {
float: left;
list-style: none;
margin: 10px;
text-align: center;
font-weight: bold;
position: relative;
}

#pi_list > ul > li:first-child {
width: 18px;
height: 169px;
margin-left: -50px;
padding: 10px;
border: 1px solid #58c9ce;
border-radius: 5px;
color: #fff;
font-size: 116%;
text-shadow: 0 -1px rgba(0,0,0,0.3);
background-color: #58c9ce;
background-image: -webkit-linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0));
background-image: linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0));
-webkit-box-shadow: inset 0 1px rgba(255,255,255,0.3), inset 0 -1px rgba(255,255,255,0.2), inset 1px 0 rgba(255,255,255,0.3), inset -1px 0 rgba(255,255,255,0.3);
box-shadow: inset 0 1px rgba(255,255,255,0.3), inset 0 -1px rgba(255,255,255,0.2), inset 1px 0 rgba(255,255,255,0.3), inset -1px 0 rgba(255,255,255,0.3);
}

#pi_list > ul > li > div > img {
display: block;
margin: 0 auto 5px auto;
}

#pi_list > ul > li > a, #pi_list > ul > li > div {
position: relative;
display: block;
width: 205px;
padding-top: 10px;
box-sizing: border-box;
border: 1px solid #ddd;
border-radius: 5px;
color: #555;
text-decoration: none;
background-color: #fff;
-webkit-transition: background-color 0.2s;
-moz-transition: background-color 0.2s;
-o-transition: background-color 0.2s;
-ms-transition: background-color 0.2s;
transition: background-color 0.2s;
}

#pi_list > ul > li > div a {
display: inline-block;
width: 160px;
margin-top: 4px;
padding: 5px 0;
border-top: 1px solid #ddd;
border-radius: 0 0 0 4px;
font-weight: normal;
color: #555;
text-decoration: none;
box-sizing: border-box;
-webkit-transition: background-color 0.2s;
-moz-transition: background-color 0.2s;
-o-transition: background-color 0.2s;
-ms-transition: background-color 0.2s;
transition: background-color 0.2s;
}

#pi_list > ul > li > div a:last-child {
border-left: 1px solid #ddd;
border-radius: 0 0 4px 0;
width: calc(203px - 160px);
}

#pi_list > ul > li > div a[href*=files]:before {
content: "";
opacity: 0.66;
display: inline-block;
width: 17px;
height: 17px;
vertical-align: middle;
margin: 0 4px;
background-image: url(common/ic_file_download_black_24px.svg);
background-size: contain;
}

#pi_list > ul > li > div a:last-child {
font-size: smaller;
vertical-align: bottom;
}

#pi_list > ul > li > div a img {
vertical-align: middle;
}

#pi_list > ul > li > a:hover, #pi_list > ul > li > div a:hover {
/*background-color: #f6f6f6;*/
background-color: #eee;
}

#pi_list > ul > li > a:active, #pi_list > ul > li > div a:active {
background-color: #ddd;
}

#pi_list > ul > li > ul {
display: none;
}

#pi_list li.new:before, #pi_list li.up:before {
position: absolute;
top: -6px;
left: -6px;
width: 37px;
display: block;
border-right: #fff 1px solid;
border-bottom: #fff 1px solid;
border-radius: 5px;
font-size: 77%;
color: #fff;
text-align: center;
font-weight: bold;
z-index: 1;
}

#pi_list li.new div {
border-color: #f4a742;
}

#pi_list li.new:before {
content: "New!";
background-color: #f4a742;
}

#pi_list li.up div {
border-color: #58c9ce;
}

#pi_list li.up:before {
content: "Up!";
background-color: #58c9ce;
}

#window {
position: fixed;
opacity: 0;
width: 0;
height: 0;
z-index: 5;
overflow: hidden;
-webkit-transition: opacity 0.4s, width 0s linear 0.4s, height 0s linear 0.4s;
-moz-transition: opacity 0.4s, width 0s linear 0.4s, height 0s linear 0.4s;
-o-transition: opacity 0.4s, width 0s linear 0.4s, height 0s linear 0.4s;
-ms-transition: opacity 0.4s, width 0s linear 0.4s, height 0s linear 0.4s;
transition: opacity 0.4s, width 0s linear 0.4s, height 0s linear 0.4s;
}

#window.visible {
width: 100%;
height: 100%;
opacity: 1;
-webkit-transition: opacity 0.4s, width 0s, height 0s;
-moz-transition: opacity 0.4s, width 0s, height 0s;
-o-transition: opacity 0.4s, width 0s, height 0s;
-ms-transition: opacity 0.4s, width 0s, height 0s;
transition: opacity 0.4s, width 0s, height 0s;
}

#bg {
position: absolute;
top: 0;
width: 100%;
height: 100%;
opacity: 0.5;
background-color: #ddd;
z-index: -1;
cursor: pointer;
}

#content {
position: absolute;
top: 50%;
left: 50%;
width: 0;
height: 0;
margin: -240px 0 0 -470px;
padding-left: 15px;
border-radius: 5px;
-webkit-box-shadow: 0 1px 5px #777;
box-shadow: 0 1px 5px #777;
background-color: #f3f3f3;
overflow: hidden;
-webkit-transition: width 0s linear 0.4s, height 0s linear 0.4s;
-moz-transition: width 0s linear 0.4s, height 0s linear 0.4s;
-o-transition: width 0s linear 0.4s, height 0s linear 0.4s;
-ms-transition: width 0s linear 0.4s, height 0s linear 0.4s;
transition: width 0s linear 0.4s, height 0s linear 0.4s;
}

/* chrome向け */
@media screen and (-webkit-min-device-pixel-ratio:0) {
#content, #window.visible #content {
position: fixed;
}
}

#window.visible #content {
width: 925px;
height: 480px;
overflow: visible;
-webkit-transition: width 0s, height 0s;
-moz-transition: width 0s, height 0s;
-o-transition: width 0s, height 0s;
-ms-transition: width 0s, height 0s;
transition: width 0s, height 0s;
}

#content h3 {
width: 258px;
margin: 0 0 10px -15px;
padding: 10px 20px;
border: 1px solid #58c9ce;
border-radius: 5px 0 0 0;
font-size: 131%;
color: #fff;
text-shadow: -1px -1px rgba(0,0,0,0.3);
background-color: #58c9ce;
background-image: -webkit-linear-gradient(rgba(255,255,255,0.3) 0%, rgba(88,201,206,0) 70%);
background-image: linear-gradient(rgba(255,255,255,0.3) 0%, rgba(88,201,206,0) 70%);
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.2), inset 0 1px rgba(255,255,255,0.3), inset 0 -1px rgba(255,255,255,0.2), inset 1px 0 rgba(255,255,255,0.3), inset -1px 0 rgba(255,255,255,0.3);
box-shadow: 0 1px 3px rgba(0,0,0,0.2), inset 0 1px rgba(255,255,255,0.3), inset 0 -1px rgba(255,255,255,0.2), inset 1px 0 rgba(255,255,255,0.3), inset -1px 0 rgba(255,255,255,0.3);
}

#content img {
position: absolute;
top: 0;
right: 0;
border-radius: 0 5px 5px 0;
-webkit-transition: opacity 0.5s, width 0s, height 0s;
-moz-transition: opacity 0.5s, width 0s, height 0s;
-o-transition: opacity 0.5s, width 0s, height 0s;
-ms-transition: opacity 0.5s, width 0s, height 0s;
transition: opacity 0.5s, width 0s, height 0s;
}

#content img.hidden, #loader.hidden {
opacity: 0;
width: 0;
height: 0;
-webkit-transition: opacity 0.5s, width 0s linear 0.5s, height 0s linear 0.5s;
-moz-transition: opacity 0.5s, width 0s linear 0.5s, height 0s linear 0.5s;
-o-transition: opacity 0.5s, width 0s linear 0.5s, height 0s linear 0.5s;
-ms-transition: opacity 0.5s, width 0s linear 0.5s, height 0s linear 0.5s;
transition: opacity 0.5s, width 0s linear 0.5s, height 0s linear 0.5s;
}

#content img + span {
display: block;
z-index: 2;
position: absolute;
bottom: 5px;
right: 5px;
padding: 0 5px;
border-radius: 2px;
color: #fff;
text-shadow: 0 1px 3px rgba(0,0,0,0.5);
background: rgba(0,0,0,0.4);
}

#content > p {
width: 270px;
}
#content > dl dd {
width: 170px;
}

#content > a {
text-decoration: none;
text-align: center;
font-weight: bold;
-webkit-transition: background-color 0.2s, color 0.2s;
-moz-transition: background-color 0.2s, color 0.2s;
-o-transition: background-color 0.2s, color 0.2s;
-ms-transition: background-color 0.2s, color 0.2s;
transition: background-color 0.2s, color 0.2s;
}

#content > a:first-child {
position: absolute;
top: 5px;
right: 5px;
z-index: 2;
padding: 1px 3px;
border-radius: 2px;
line-height: 100%;
font-size: 147%;
color: #f3f3f3;
text-shadow: 0 1px 3px rgba(0,0,0,0.5);
background-color: rgba(0,0,0,0.4);
}

#content > a:first-child:hover {
color: #fff;
background-color: rgba(0,0,0,0.3);
}

#content > a:first-child:active {
color: #ddd;
background-color: rgba(0,0,0,0.7);
}

#content > a ~ a {
display: block;
float: left;
margin: 4px 0 0 10px;
padding: 3px 20px;
border: 1px solid #f4a742;
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.4), inset 0 1px rgba(255,255,255,0.3), inset 0 -1px rgba(255,255,255,0.2), inset 1px 0 rgba(255,255,255,0.3), inset -1px 0 rgba(255,255,255,0.3);
box-shadow: 0 1px 2px rgba(0,0,0,0.4), inset 0 1px rgba(255,255,255,0.3), inset 0 -1px rgba(255,255,255,0.2), inset 1px 0 rgba(255,255,255,0.3), inset -1px 0 rgba(255,255,255,0.3);
color: #fff;
text-shadow: 0 1px 3px rgba(0,0,0,0.5);
background-color: #f4a742;
background-image: -webkit-linear-gradient(rgba(255,255,255,0.3) 0%, rgba(244,167,66,0.0) 70%);
background-image: linear-gradient(rgba(255,255,255,0.3) 0%, rgba(244,167,66,0.0) 70%);
}

#content > a ~ a:after {
content: ".zip";
}

#content > a ~ a span {
display: block;
float: left;
max-width: 184px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}

#content > a ~ a:hover {
background-color: #ffb752;
}

#content > a ~ a:active {
color: #ddd;
background-color: #e49732;
}

#loader {
position: absolute;
top: 0;
right: 0;
width: 640px;
height: 480px;
background: #666;
}

#loader:before {
content: "";
display: block;
z-index: 1;
position: absolute;
top: 240px;
right: 320px;
width: 25px;
height: 25px;
margin: -18px -18px 0 0;
border: 5px solid rgba(255,255,255,0.2);
border-right: 5px solid #fff;
border-left: 5px solid #fff;
border-radius: 100%;
-webkit-animation: rotate 1.5s linear infinite;
animation: rotate 1.5s linear infinite;
}

@-webkit-keyframes rotate {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}

@keyframes rotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}

/*--column------------------------------------*/

ul.column_list {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}

ul.column_list li {
list-style: none;
margin: 10px 0;
font-weight: bold;
position: relative;
}

ul.column_list li a {
display: block;
width: calc(960px / 2 - 10px);
height: 100%;
padding: 10px;
box-sizing: border-box;
border: 1px solid #ddd;
border-radius: 5px;
color: #555;
text-decoration: none;
background-color: #fff;
-webkit-transition: background-color 0.2s, border-color 0.2s;
-moz-transition: background-color 0.2s, border-color 0.2s;
-o-transition: background-color 0.2s, border-color 0.2s;
-ms-transition: background-color 0.2s, border-color 0.2s;
transition: background-color 0.2s, border-color 0.2s;
}

ul.column_list li a:hover {
background-color: #f6f6f6;
border-color: #ccc;
}

ul.column_list li a:active {
background-color: #ddd;
border-color: #ddd;
}

ul.column_list li a img {
display: block;
float: left;
margin: 0 15px 10px 0;
}

ul.column_list li a span {
display: block;
margin-top: 1em;
font-weight: normal;
text-align: justify;
}

/*--links-------------------------------------*/

ul.link li {
float: left;
list-style: none;
margin: 15px;
width: 210px;
text-align: center;
}

ul.link li a {
display: block;
}

/*--------------------------------------------*/

footer span#copy_year:after {
content: "2025";
}

div#NnVD, ul.tdftad, #ninja-hp-inactive, #ninja-hp-inactive-footer, script + div[style], script + p, footer ~ div {
display: none;
}