@charset "UTF-8";

/* reset */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 14px;
    font-weight: normal;
    vertical-align: baseline;
    font-family: "Hiragino Kaku Gothic ProN", ヒラギノ角ゴ ProN W3, メイリオ, Meiryo, Osaka, ＭＳ\ Ｐゴシック, MS PGothic, Sans-Serif, monospace;
    list-style: none;
    transition: 0.3s;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}

html {
    scroll-behavior: smooth;
}
* {
    box-sizing: border-box;
}

body {
    line-break: strict;
    margin: 0;
    padding: 0;
    background-color: #bae8e8;
    color: #2d334a;
    word-wrap: break-word;
    text-decoration-skip-ink: none;
    display: flex;
    flex-flow: column;
    min-height: 100vh;
}

header {
    text-align: center;
    padding: 20px 0 10px 0;
    margin-bottom: 30px;
    box-shadow: 0 3px 6px rgb(0 0 0 / 18%);
    background-color: #2d334a;
    z-index: 1;
}
main {
    margin: 0 auto;
    flex: 1;
    z-index: 1;
}
@media screen and (min-width: 1200px) {
    main {
        width: 1200px;
    }
}
@media screen and (max-width: 1199px) {
    main {
        width: 100%;
    }
}
footer {
    text-align: center;
    font-size: 70%;
    color: #fffffe;
    box-shadow: 0 3px 6px rgb(0 0 0 / 18%);
    background-color: #2d334a;
    position: relative;
    clear: both;
    margin-top: 30px;
    z-index: 1;
}

/* ヘッダーロゴ */
header img {
    height: 50px;
}

@media screen and (min-width: 1200px) {
    /* 左カラム */
    article {
        float: left;
        width: 67%;
        padding-right: 20px;
    }
    /* 右カラム */
    aside {
        float: left;
        width: 33%;
    }
}

/* コンテンツ毎のbox */
section {
    background-color: #fffffe;
    padding: 1.5em;
    border-radius: 3px;
    font-size: 15px;
    line-height: 180%;
    margin-bottom: 30px;
}
section:not(:last-child) {
    padding-bottom: 30px;
}

/* 記事内 */
section.article h2 {
    padding-bottom: 10px;
    border-bottom: 1px solid #272343;
    font-size: 27px;
    color: #2d334a;
    font-weight: bold;
}
section.article h2 a {
    font-weight: bold;
    font-size: 27px;
    color: #2d334a;
    text-decoration: none;
}
section.article h3 {
    background-color: #60667d;
    color: #fff;
    border-radius: 5px;
    padding: 5px 20px;
    font-weight: bold;
    font-size: 110%;
    margin-top: 1em;
}
section.article h4 {
    border-left: #60667d 10px solid;
    border-bottom: #60667d 3px solid;
    padding-left: 3px;
    font-weight: bold;
    font-size: 105%;
    margin-top: 1em;

}
section.article h5 {
    border-bottom: #60667d 3px solid;
    padding-left: 3px;
    font-weight: bold;
    margin-top: 1em;
}
section.article h6 {
    margin-top: 1em;
    font-weight: bold;
}
section.article li {
    list-style: '・';
    margin-left: 2.5em;
}
section.article p {
    margin: 0.25em 0.75em;
}
section.article em {
    font-weight: bold;
}
section.article strong {
    background: linear-gradient(transparent 60%, #ffd803 60%);
    font-weight: bold;
}
section.article em strong {
    color: #f00;
}
section.article blockquote {
    border-left: 5px solid #ddd;
    color: #777;
    padding: 0.25em 0 0.25em 1em;
    margin: 1em 0;
}
section.article blockquote > blockquote {
    margin: 0.5em 0 0 0;
}
section.article blockquote > p {
    margin: 0;
}
section.article code {
    display: inline-block;
    background-color: #dddddd;
    color: #333;
    padding: 0.1em 0.4em;
    font-family: Consolas, Menlo, Courier, monospace;
}
section.article pre {
    background-color: #364549;
    font-size: 11px;
    margin-top: 1em;
}
section.article pre code {
    background: none;
    color: #fffffe;
    font-size: 11px;

}
section.article img {
    max-width: 100%;
    border: 1px solid #000;
}
section.article table {
    width: 100%;
    text-align: center;
    border-collapse: collapse;
    border-spacing: 0;
    margin: 0.5em 0;
}
section.article table th {
    padding: 5px;
    background-color: #bae8e8;
    border: solid 1px #778ca3;
}
section.article table td {
    padding: 5px;
    border: solid 1px #778ca3;
    vertical-align: top;
}
section.article .articleDate {
    display: block;
    text-align: right;
    border-top: 1px dotted #777;
    color: #777;
    margin-top: 1em;
}
section.article .articleCategory {
    display: block;
    border-top: 1px dotted #777;
    margin: 1em 0 0.25em 0.75em;
    padding-top: 1em;
}
section.article .articleCategory ul li {
    font-weight: bold;
    display: inline-block;
    background-color: #f3f3f3;
    margin-left: 0;
}
section.article .articleCategory ul li a {
    font-size: 14px;
    color: #8996a2;
    letter-spacing: 1px;
    text-decoration: none;
    width: 100%;
    display: block;
    background-color: #f3f3f3;
    padding: 0.25em 1em;
}
section.article .articleCategory ul li a:hover {
    background-color: #ffd803;
}

/* 右カラムコンテンツ内 */
section.aside h3 {
    padding-bottom: 5px;
    margin-bottom: 10px;
    font-size: 20px;
    font-weight: bold;
    border-bottom: 1px solid #272343;
}
section.aside h3 a {
    padding-bottom: 10px;
    font-size: 125%;
    font-weight: bold;
}
section.aside ul li {
    font-weight: bold;
}
section.aside ul li a {
    font-size: 14px;
    color: #8996a2;
    letter-spacing: 1px;
    text-decoration: none;
    display: inline-block;
    width: 100%;
    padding: 0.25em 1em;
}
section.aside ul li a:hover {
    background: #f3f3f3;
    color: #2d334a;
}
section.aside ul li span {
    display: inline-block;
    overflow: hidden;
    min-width: 2em;
    padding: 0 0.5em;
    margin-left: 3px;
    border-radius: 5px;
    background: #f3f3f3;
    color: #626262;
    font-size: 12px;
    text-align: center;
    vertical-align: middle;
}
section.aside ul li ul li {
    padding-left: 1em;
}
section.aside ul li ul li ul li {
    padding-left: 1em;
}
section.aside ul li ul li ul li ul li {
    padding-left: 1em;
}
section.aside .introduction {
    text-decoration: none;
    display: table;
    width: 100%;
    position: relative;
    vertical-align: middle;
    color: #8996a2;
}
section.aside .introduction:hover {
    background: #f3f3f3;
    color: #2d334a;
}
section.aside .introduction .number {
}
section.aside .introduction .number {
    display: inline-block;
    position: absolute;
    top: 0;
    left: 0;
    text-align: center;
    padding: 0 1em;
    font-size: 120%;
    background: #ffd803;
    color: #2d334a;
    box-sizing: border-box;
}
section.aside .introduction img {
    max-width: 100px;
    margin: 5px;
    display: table-cell;
}
section.aside .introduction .title{
    display: table-cell;
    vertical-align: middle;
    text-align: left;
    width: 100%;
}

/* ページング */
nav {
    text-align: center;
    margin: 1em 0;
    position: relative;
    clear: both;
}
@media screen and (min-width: 1200px) {
    nav {
        padding-right: 31%;
    }
}
nav ul {
    display: flex;
    justify-content: center;
    padding: 0;
    margin: 0 auto;
}
nav ul li {
    display: block;
    margin: 0 6px;
    overflow: hidden;
    padding: 0;
    text-align: center;
}
nav ul li span,
nav ul li a {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    border-radius: 4px;
    font-weight: bold;
    text-decoration: none;
}
nav ul li span {
    color: #272343;
    background: #cccccc;
}
nav ul li a:hover {
    color: #272343;
    background: #fffffe;
}
nav ul li a {
    background: #272343;
    color: #fffffe;
}

@media screen and (max-width: 1199px) {
    .mobileHidden {
        display: none;
    }
}

#searchTxt {
    display: inline-block;
    vertical-align: middle;
    width: calc(100% - 2em - 20px);
    padding: 0 5px;
    font-size: 120%;
    height: 41px;
}
#searchBtn {
    display: inline-block;
    vertical-align: middle;
    width: 45px;
    height: 41px;
    padding: 5px;
    background-color: #fffffe;
    text-decoration: none;
    text-align: center;
    color: #2d334a;
    font-size: 120%;
    border: 2px solid #2d334a;
    border-radius: 3px;
}
#searchBtn i {
    vertical-align: middle;
    text-align: center;
}
#searchBtn:hover {
    background-color: #ffd803;
}

.information {
    background-image: url("img/info.png");
}
.caution {
    background-image: url("img/warning.png");
}
.warning {
    background-image: url("img/error.png");
}
.information,
.caution,
.warning {
    display: inline-block;
    width: 100%;
    vertical-align: middle;
    background-size: 2em 2em;
    background-repeat: no-repeat;
    padding-left: 2em;
    min-height: 2em;
}
.caution p {
    font-weight: bold;
    font-size: 110%;
}
.warning p {
    font-weight: bold;
    color: #f00;
    font-size: 120%;
}

#pageTop {
    display: block;
    position: fixed;
    bottom: 10px;
    right: 10px;
    z-index: 9999;
    background-color: #fffffe;
    border-radius: 50%;
    padding: 13px;
    box-shadow: 10px 10px 5px rgb(0 0 0 / 18%);
    cursor: pointer;
}
#pageTop:hover {
    background-color: #ffd803;
}
#pageTop > i {
    font-size: 24px;
    width: 27px;
    height: 27px;
    text-align: center;
}


.information {
    background-image: url("/img/info.png");
}
.caution {
    background-image: url("/img/warning.png");
}
.warning {
    background-image: url("/img/error.png");
}
.information,
.caution,
.warning {
    display: inline-block;
    width: 100%;
    vertical-align: middle;
    background-size: 2em 2em;
    background-repeat: no-repeat;
    padding-left: 2em;
    min-height: 2em;
}
.caution p {
    font-weight: bold;
    font-size: 110%;
}
.warning p {
    font-weight: bold;
    color: #f00;
    font-size: 120%;
}

/* 目次 */
#index {
    display: block;
    position: relative;
    margin: 1em 0.5em 2em 0.5em;
    background-color: #f3f3f3;
}
#index .body {
    padding-bottom: 0.5em;
}
#index p {
    margin: 0;
}
#index .headline {
    background-color: #2d334a;
    padding: 10px 5px;
    color: #fffffe;
    font-weight: bold;
}
#index .toggle {
    position: absolute;
    right: 5px;
    padding: 5px;
    background-color: #fffffe;
    border: 2px solid #2d334a;
    border-radius: 5px;
    cursor: pointer;
    font-weight: bold;
    margin: 0.25em 0 0.25em 0.75em;
}
#index .toggle:hover {
    background-color: #ffd803;
}
#index .h3 a,
#index .h4 a,
#index .h5 a,
#index .h6 a {
    margin: 5px;
    display: block;
    text-decoration: none;
    color: #2d334a;
}
#index :not(:last-child) {
    border-bottom: 1px dotted #2d334a;
}
#index .h3 a:hover,
#index .h4 a:hover,
#index .h5 a:hover,
#index .h6 a:hover {
    color: #1bf;
}
#index .h4 a {
    padding-left: 1em;
}
#index .h5 a {
    padding-left: 2em;
}
#index .h6 a {
    padding-left: 3em;
}

/* 一覧表示用 */
section.list {
    overflow: hidden;
    max-height: 600px;
    position: relative;
}
.more {
    position: absolute;
    width: calc(100% - 3em);
    bottom: 0;
    padding-top: 5em;
    padding-bottom: 1em;
    background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.01), #FFF);
    background: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.01), #FFF);
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.01), #FFF);
}
.more a {
    display: block;
    border: 3px solid #2d334a;
    border-radius: 5px;
    padding: 5px;
    text-align: center;
    cursor: pointer;
    background-color: #fff;
}
.more a:hover {
    background-color: #ffd803;
}

#selfPortrait {
    float: left;
    max-width: 100px;
    margin: 0 1em;
}

/* 広告 */
@media screen and (min-width: 1200px) {
    #adArea {
        text-align: center;
    }
}
#adArea * {
    margin: 0;
    padding: 0;
}
