@charset "utf-8";
/* CSS Document */

/* view */
.viewpc {
    display: block;
}

.viewmb {
    display: none;
}

/* common */
body {
    background-attachment: fixed;
    /*background-image: url(../img/top/top-back.jpg);*/
    background-repeat: no-repeat;
    background-position: 85% 75%;
    margin: 0px;
}

/* img hover */
.imgHover {
    position: relative;
    width: 100%;
}

.imgHover .imgFrame {
    display: block;
    padding-bottom: 5em;
    position: relative;
    text-align: center;
}

.imgHover #imgHoverList {
    list-style: none;
    position: relative;
}

.imgHover ul li {
    display: inline-block;
}

.imgHover ul li img {
    border: none;
}

.imgHover ul li a {
    display: block;
    opacity: 1.0;
    filter: alpha(opacity=100);
    -ms-filter: "alpha( opacity=100 )";
}

.imgHover ul li a:hover {
    position: static;
}

.imgHover ul li a .mainImage {
    display: none;
}

.imgHover ul li a:hover .mainImage {
    display: block;
    position: absolute;
    top: -100px;
    left: 50%;
}

/* block */
.block-container {
    margin-top: 1em;
    width: 100%;
}

.block-list {
    height: 150px;
    text-align: center;
}

.block-menu {
    font-size: 2em;
    margin: 1.25em 0 0.5em 0;
    text-align: center;
}

.block-container .block-menu a {
    color: #333;
    display: inline-block;
    font-family: 'Times New Roman', Times, serif;
    padding: 0.5em;
    margin-top: 0;
    position: relative;
}

.block-menu span {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 0.75rem;
    display: block;
    padding-top: 0.5em;
}

.block-copy {
    font-size: 0.75em;
    text-align: center;
}

/* logo */
.logo {
    z-index: 6;
    width: 330px;
    height: 265px;
    position: absolute;
    top: 30%;
    left: 40%;
}

/* nav */
nav {
    margin: 0 auto;
    top: auto;
    left: auto;
    width: 800px;
    position: relative;
    flex-wrap: wrap;
}

nav {
    display: flex;
    list-style: none;
    color: #666666;
    margin-top: 2em;
    /*padding: 1em; */
}

nav .up {
    width: 100%;
    padding-bottom: 0.5em;
    margin: 0.5em;
    padding: 1em;
    background-color: rgba(240, 240, 240, 0.808);
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    text-align: left;
}

nav .up dl dt {
    width: 7%;
}

nav .up dl dd {
    margin-left: 7%;
}

/*nav .up dl dd a {
    display: block;
}*/

nav .bnr {
    padding-bottom: 0.5em;
    width: 275px;
    margin: 0.5em;
    padding: 1em;
    background-color: rgba(240, 240, 240, 0.808);
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    text-align: left;
}

nav .bnr .txt {
    font-size: 0.75em;
    margin-top: 1em;
}

nav p {
    border-bottom: #333 1px solid;
    display: block;
    font-family: 'Times New Roman', Times, serif;
    font-weight: bold;
    margin: 0;
    padding-bottom: 0.25em;
}

nav dt {
    clear: left;
    float: left;
    width: 20%;
    font-size: 0.75em;
    font-weight: bold;
    line-height: 1.8;
}

nav dd {
    font-size: 0.75em;
    margin: 0 0 0 20%;
    line-height: 1.8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: wrap;
}

nav .links {
    width: 30%;
}

/*nav dd::before {
    content: '…　';
}*/
nav img {
    display: block;
    padding-top: 1em;
}

nav span {
    display: block;
}

nav .linkfree {
    margin: 0.5em;
    padding: 1em;
    background-color: rgba(240, 240, 240, 0.808);
    border-radius: 4px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    flex-grow: 2;
    text-align: left;
}

.linkfree dl {
    margin-top: 1em;
    margin-bottom: 0;
}

.linkfree dl dd {
    text-overflow: clip;
    white-space: normal;
    padding-left: 1.5rem;
    text-indent: -1.5rem;
}

.block-prologue {
    left: 20px;
    padding: 1em;
    position: fixed;
    text-align: center;
    top: 410px;
    z-index: 2;
}

.block-prologue p,
.block-diagnosis p {
    font-size: 0.75em;
    margin-top: 0.25rem;
}

.block-diagnosis {
    left: 20px;
    padding: 1em;
    position: fixed;
    text-align: center;
    top: 563px;
    z-index: 2;
}

/* gear */
.top-gear {
    animation: smile 0.7s steps(8) infinite;
    z-index: -1;
    top: 0px;
    left: 0px;
    position: fixed;
}

.top-gear-nosteps {
    animation: smile 1s infinite;
}

/* copy */
.block-copy p {
    padding-bottom: 6em;
}