html {
  font-family: 'IBM Plex Sans JP', sans-serif;
  font-weight: 300;
  color: #0a2933;
  }

body {
  background-color: #fafbf9;
  padding: 0;
  margin: 0;
  }

#site-title {
  margin: 0;
  margin-top: 10px;
  font-weight: 700;
  }

h2 {
  margin: 0;
  margin-left: 40px;
  margin-right: auto;
  padding: 0 10px;
  background-color: #fafbf9;
  width: auto;
  display: inline-block;
  }
  
.h2-space {
  position: relative;
  }
  
.h2-line {
  width: calc(100% - 40px);
  height: 2px;
  background-color: #c9d4e9;
  display: block;
  position: absolute;
  top: 15px;
  left: 20px;
  z-index: -1;
  }

p {
  line-height: 24px;
  }

/* ヘッダー */

#top-header {
  position: fixed;
  top: 0;
  width: 100%;
  text-align: center;
  background-color: #fafbf9;
  border-bottom: solid 1px #e9e9e9;
  margin: 0;
  z-index: 100;
  
  & a {
    text-decoration: none;
    color: #0a2933;
    }
  }

@media screen and (min-width: 550px) {
    
  #top-header {
    height: 90px;
    
    & div {
      font-size: 16px;
      }
      
    & #site-title {
      font-size: 32px;
      }
    }
  }
    
@media screen and (max-width: 550px) {
    
  #top-header {
    height: 80px;
  
    & #site-title {
      font-size: 24px;
      margin-left: -40px;
      }
      
    & div {
      font-size: 14px;
      margin-left: -40px;
      }
    }
  }

/* ハンバーガーメニュー */

@media screen and (min-width: 550px) {
  
  #hamburger-menu {
    display: none;
    }
  }
  
@media screen and (max-width: 550px) {

  #hamburger-menu {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    opacity: 100%;
  
    & label {
      display: block;
      width: 50px;
      font-size: 40px;
      line-height: 80px;
      position: absolute;
      left: calc(100% - 50px);
      background-color: #fafbf9;
    
      &:hover {
        background-color: #e9e9e9;
        }
      }
    
    & ul {
      position: absolute;
      left: 100%;
      top: 0;
      z-index: -90;
      width: 100%;
      height: 100dvh;
      background-color: #fafbf9;
      padding-top: 80px;
      margin: 0;
      transition: all 0.4s ease-out;
      
      & li {
        text-align: left;
        font-size: 28px;
        padding: 10px 0;
        margin-top: 12px;
        border-bottom: solid 0.8px #b9b9b9;
        
        & p {
          display: inline;
          color: #aeaca9;
          font-size: 22px;
          }
        }
      }
    }
    
  #hamburger-display {
    display: none;
    
    &:checked+ul {
      left: 0;
      }
    }
  }
  
/* トップ画像 */

#top-content {
  width: 100%;
  height: 80svh;
  margin: 0;
  overflow: hidden;
  position: relative;
  }

#top-image {
  height: 700px;
  margin: 0;
  padding: 0;
  width: 100%;
  object-fit: cover;
  display: block;
  }

/* トップコンテンツ */

@media screen and (min-width: 550px) {

  #top-content-list {
    display: block;
    z-index: 50;
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 0;
    margin: 0;
    text-align: center;
    
    & a {
      text-decoration: none;
      }
    
    & a li {
      display: inline-block;
      list-style-type: none;
      background-color: rgba(255, 255, 255, 0.65);
      width: 120px;
      margin: 20px;
      padding: 5px 20px;
      text-align: center;
    
      &:hover {
        padding: 10px 25px;
        margin: 15px;
        }
    
      & span {
        font-weight: 500;
        font-size: 20px;
        margin: 0;
        color: #0a2933;
        }
      
      & p {
        margin: 0;
        font-size: 14px;
        line-height: 18px;
        color: #404040;
        }
      }
    }
  }

@media screen and (max-width: 550px) {

  #top-content-list {
    display: none;
    }
  }

.top-thumbnail {
  margin-top: 75px;
  position: relative;
  text-align: center;
  padding: 0;

  & img {
    display: block;
    width: 100%;
    max-width: 750px;
    margin: 0 auto;
    }
  
  & div {
    background-color: #00191f;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    margin: 0 auto;
    padding: 0;
    opacity: 0.4;
    z-index: 1;
    }
  }
 
 @media screen and (min-width: 550px) {
    .top-thumbnail h1 {
    width: 100%;
    margin: 0;
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    color: #fff;
    z-index: 2;
    font-size: 40px;
    }
  }
 
  @media screen and (max-width: 550px) {
    .top-thumbnail h1 {
    width: 100%;
    position: absolute;
    margin: 0;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    color: #fff;
    z-index: 2;
    font-size: 24px;
    }
  }
 
/* パンくずリスト */
.breadcrumb {
  margin: 10px;
  padding: 0;
  font-size: 14px;
  list-style-type: none;
  
  & li {
    display: inline-block;
    
    &::before {
      content: ">";
      padding: 0 3px;
      }
    
    &:first-child::before {
      content: "";
      padding: 0;
      }
    }
  }


.written-date {
  color: #444;
  font-weight: 400;
  text-align: right;
  margin: 0;
  margin-right: 15px;
  font-size: 14px;
  
  & img {
    margin-right: 4px;
    }
  }

.normal {
  margin: 10px 20px;
  }

ol {
  margin: 10px 20px;
  }

ul {
  margin: 10px 20px;
  }

pre {
  overflow-x: scroll;
  background-color: #333;
  margin: 10px 20px;
  padding: 5px;
  padding-bottom: 0;
  border-radius: 5px;
  
  & code {
    color: #fff;
    font-size: 14px;
    }
  }

/* ホーム用 */
#readme {
  padding: 0 15px;
  text-align: center;
  }

#osusume {
  padding: 0;
  margin: 15px;
  text-align: center;
  
  & li {
    display: inline-block;
    width: 300px;
    list-style-type: none;
    vertical-align: top;
    margin: 15px;
    
    & a img {
      width: 100%;
      }
    
    & p {
      text-align: left;
      }
    }
  }

#history-list {
  background-color: #ebf1f6;
  border-radius: 30px;
  margin: 20px;
  padding: 20px;
  
  & li {
    border-bottom: solid 1px #a1b4cc;
    list-style-type: none;
        
    & span {
      color: #8ba9be;
      font-weight: 500;
      font-size: 15px;
      padding: 16px 0;
      width: 100px;
      display: inline-block;
      vertical-align: top;
      }
      
    & p {
      display: inline-block;
      width: calc(100% - 110px);
      vertical-align: top;
      
      & a {
        display: inline;
        }
      }
    }
    
  & a {
    margin-top: 8px;
    text-align: center;
    display: block;
    }
  }

.author-introduce {
  margin: 20px;
  padding: 15px;
  text-align: center;
  border: solid 5px #a1b4cc;
  
  & dt {
    font-weight: 500;
    font-size: 20px;
    }
    
  & dd {
    margin: 0;
    } 
  }

.logoimage {
  display: inline-block;
  width: 100px;
  height: 100px;
  object-fit: cover;
  border: solid 2px #fff;
  border-radius: 60px;
  vertical-align: top;
  }

/* フッター */
#footer {
  background-color: #e9e9e9;
  margin: 0;
  padding: 20px;
  }
  
.footer-mainlink {
  list-style-type: none;
  padding: 0;
  text-align: center;
  
  & li {
    display: inline-block;
    margin: 0;
    padding: 0;
    
    &::before {
      content: "|";
      padding: 0 3px;
      }
    
    &:first-child::before {
      content: "";
      padding: 0;
      }
    
    & a {
      color: #0a2933;
      }
    }
  }

.sns-link {
  list-style-type: none;
  padding: 0;
  text-align: center;
  
  & a {
    display: inline-block;
    margin: 5px;
    padding: 5px;
    width: 140px;
    height: 20px;
    text-decoration: none;
    font-weight: 600;
    border: solid 1px #0a2933;
    }
  }
  
.twitter-link {
  color: #fff;
  background-color: #000;
  }

.youtube-link {
  color: #fff;
  background-color: #f03;
  }

.github-link {
  color: #000;
  background-color: #f0f0f0;
  }

.copyright {
  text-align: center;
  }

/* 地図 */
.map {
  height: 500px;
  width: 90%;
  max-width: 600px;
  z-index: 0;
  margin: 20px auto;
  }

/* ステータス */
.author-status {
  margin: 10px;
  
  & table {
    width: 100%;
    
    & tr th {
      width: 110px;
      }
    }
  }

.status-name {
  font-size: 16px;
  font-weight: 300;
  
  & a {
    color: #0a2933;
    }
  }

.now-status {
  font-size: 14px;
  font-weight: 500;
  line-height: 16px;
  }

.total-status {
  font-size: 12px;
  font-weight: 300;
  line-height: 16px;
  }

.status-bar {
  font-size: 14px;
  font-weight: 500;
  background-color: #a1b4cc;
  color: #fff;
  text-align: right;
  line-height: 28px;
  }

/* 記事リスト */
.article-list {
  list-style-type: none;
  padding: 0;
  margin: 10px;
  
  & a {
    display: block;
    color: #0a2933;
    text-decoration: none;
    border-bottom: solid 1px #c1c9cc;
    
    &:first-child {
      border-top: solid 1px #c1c9cc;
      }
    
    & li {
      margin: 0;
      padding: 10px 0;
      
      & img {
        display: inline-block;
        width: 150px;
        max-width: 100%;
        margin: 0 5px;
        }
      
      & div {
        vertical-align: top;
        display: inline-block;
        
        & p {
          margin: 0 5px;
          }
        }
      }
    }
  }

@media screen and (min-width: 550px) {
    .article-list a li div {
    width: calc(100% - 170px);
    }
  }

@media screen and (max-width: 550px) {
    .article-list a li div {
    width: 100%;
    }
  }

.article-title {
  font-weight: 600;
  font-size: 22px;
  }

.article-date {
  font-size: 14px;
  color: #777777;
  }

.article-summary {
  
  }
  
/* サイトマップ */
details {
  margin-left: 20px;
  }

/* 更新履歴 */
.all-history-list {
  margin: 20px 10px;
  padding: 0;
  
  & li {
    border-bottom: solid 1px #90a9ab;
    list-style-type: none;
    width: 100%;
    
    & span {
      color: #90a9ab;
      font-weight: 500;
      font-size: 15px;
      width: 100px;
      padding: 16px 0;
      display: inline-block;
      vertical-align: top;
      }
      
    & p {
      display: inline-block;
      width: calc(100% - 110px);
      vertical-align: top;
      }
    }
  }
  
.library-table {
  border: solid 2px #0a2933;
  border-collapse: collapse;
  margin: 10px 20px;
  width: calc(100% - 40px);
  display: block;
  overflow-x: auto;
  
  & tr {
    white-space: nowrap;
    }
  
  & tr th {
    border: solid 1px #0a2933;
    padding: 0 10px;
    text-align: left;
    }

  & tr td {
    border: solid 1px #bbb;
    padding: 0 10px;
    width: auto;
    }
    
  }

.library-table-sum {
  font-weight: 500;
  min-width: calc(100vw - 66px);
  }

.complete {
  background-color: #def0f0;
  }
