.title{
  font-size: 22.5px;
  font-weight: bold;
  padding: 4.5px 0 6.75px;
  text-align: center;
}

.title-student{
  background-color: rgb(207, 230, 180);
}

.title-admin{
  background-color: rgb(233, 246, 255);
}

.keyword-student {
  background-color: rgb(151, 201, 92);
}

.keyword-admin {
  background-color: rgb(65, 131, 215);
}

.keyword-option {
  background-color: rgb(255, 183, 77);
}

.keyword-basic {
  background-color: rgb(144, 164, 174);
}

.keyword-guide {
  background-color: rgb(240, 128, 128);
}

/* 各所のラベル */
.label {
  display: inline-block;
  padding: 0.2em 0.6em 0.3em;
  font-size: 75%;
  font-weight: normal;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 1.25em;

  /* 四角っぽくする */
  &.label-square {
    border-radius: 0.25em;
  }
  /* 1行目にアイコン、2行目にテキストを積む(問題形式/解答条件アイコン用) */
  &.label-stacked {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.3;
  }
  /* 黄緑色(若草色？) */
  &.label-spring-green {
    background-color: #8bc34a;
  }
  /* 赤色(スカーレット？) */
  &.label-red {
    background-color: #ef5350;
  }
  /* オレンジ */
  &.label-orange {
    background-color: #FF9800;
  }
  /* 緑色(エメラルドグリーン？) */
  &.label-green {
    background-color: #37bc9b;
  }
  /* 紫色 */
  &.label-purple {
    background-color: #967adc;
  }
  /* 灰色 */
  &.label-gray {
    background-color: #90a4ae;
  }
  /* 青色(スカイブルー？) */
  &.label-blue {
    background-color: #4FC1E9;
  }
  /* 水色 */
  &.label-lightblue {
    background-color: #5bc0de;
  }
  /* 顔情報用の青色 */
  &.label-face {
    background-color: #5c9cec;
  }
  /* 択一問題用の黄緑色 */
  &.label-lime {
    background-color: #cadd51;
  }
  /* 要正解用のピンク色 */
  &.label-pink {
    background-color: #f68bb0;
  }
  /* 選択問題用の紫色(薄) */
  &.label-lavender {
    background-color: #ce93d8;
  }
  /* 要解答用のオレンジ色(薄) */
  &.label-amber {
    background-color: #ffb74d;
  }
  /* 自由入力用の水色(ターコイズ) */
  &.label-turquoise {
    background-color: #4cd1e2;
  }
  /* 正解用の水色 */
  &.label-cyan {
    background-color: #52b7db;
  }
  /* 不正解用の赤色 */
  &.label-crimson {
    background-color: #ee5465;
  }
  /* 必須マーク用の赤(サーモン) */
  &.label-salmon {
    background-color: rgb(229, 115, 115);
  }
  /* 一回のみ用の濃い赤(マルーン) */
  &.label-maroon {
    background-color: rgb(167, 24, 75);
  }
}

/* 各所のボタン */
.btn {
  display: inline-block;
  padding: 0.4em 1em;
  font-size: 75%;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  border: 1px solid transparent;
  border-radius: 0.25em;
  color: #fff;

  /* 完全に丸くする */
  &.btn-pill {
    border-radius: 1.25em;
  }
  /* トグルボタン等、左側だけ丸める(右側と併用可能、両方付けると全体が丸くなる) */
  &.btn-round-left {
    border-top-left-radius: 1em;
    border-bottom-left-radius: 1em;
  }
  /* トグルボタン等、右側だけ丸める(左側と併用可能、両方付けると全体が丸くなる) */
  &.btn-round-right {
    border-top-right-radius: 1em;
    border-bottom-right-radius: 1em;
  }
  /* 影を付ける */
  &.btn-shadow {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
  }

  /* 白(枠線あり) */
  &.btn-default {
    color: #333;
    background-color: #fff;
    border-color: #ccc;
  }
  /* 青 */
  &.btn-primary {
    background-color: #337ab7;
    border-color: #337ab7;
  }
  /* 緑 */
  &.btn-success {
    background-color: #28a745;
    border-color: #28a745;
  }
  /* シアン寄りの青 */
  &.btn-info {
    background-color: #17a2b8;
    border-color: #17a2b8;
  }
  /* 赤 */
  &.btn-danger {
    background-color: #dc3545;
    border-color: #dc3545;
  }
  /* 藍色(Bootstrap標準色ではない) */
  &.btn-indigo {
    background-color: #5c6bc0;
    border-color: #5c6bc0;
  }
  /* もう一度解答するボタン専用の黄緑色(btn-successとは別) */
  &.btn-leaf-green {
    background-color: #a0d468;
    border-color: #a0d468;
  }
  /* シアン(Bootstrap標準色ではない、選択済み状態用) */
  &.btn-selected {
    background-color: #4dd0e1;
    border-color: #4dd0e1;
  }
  /* 教材一覧へ戻るボタン専用の灰色 */
  &.btn-slategray {
    background-color: #778899;
    border-color: #708090;
  }
  /* 学習終了ボタン専用色(黄色地、文字・枠線は専用色、太字) */
  &.btn-study-end {
    background-color: #ffff00;
    border-color: rgb(204, 204, 204);
    color: rgb(101, 109, 120);
    font-weight: 700;
    box-shadow: 0 2px 4px rgb(204, 204, 204);
  }
}

html {
  /* ページ内リンクでジャンプした際、固定表示されるヘッダーの下に見出しが隠れないようにする */
  scroll-padding-top: 100px;
}

body {
  margin: 0;
  color: rgb(22, 24, 26);
  font-family: -apple-system, blinkmacsystemfont, segoe ui, roboto, oxygen-sans, ubuntu, cantarell, helvetica neue, helvetica, arial, sans-serif;
}

header{
  padding-top: 35px;
  position: sticky;
  top: -102px;
  z-index: 10;
  background: #ffffff;

  .site-branding{
    text-align: center;
    img {
      display: block;
      margin: 0 auto;
    }
  }

  #site-navigation{
    max-width: 1240px;
    padding-bottom: 10px;
    margin: 0 auto;
    border-bottom: 2px solid rgb(216, 56, 0);
    .menu {
      font-size: 17.25px;
      display: flex;
      margin: 0;
      padding: 0;
      list-style: none;
      justify-content: center;
      > li {
        margin: 15px;
        position: relative;
        .submenu-toggle {
          display: none;
        }
        .submenu {
          display: none;
          position: absolute;
          top: 100%;
          left: 0;
          margin: 0;
          padding: 0;
          list-style: none;
          background: white;
          border: 1px solid #eee;
          text-decoration: none;
          a {
            white-space: nowrap;
          }
          li{
            box-sizing: border-box;
            height: 66px;
            line-height: 66px;
            width: 200px;
            padding: 0 20px;
            + li {
              border-top: 1px solid #eee;
            }
          }
        }
      }
      > li:hover{
        color: rgb(216, 56, 0);
        >.submenu{
          display: block;
        }
      }
      a {
        display: block;
        text-decoration: none;
        color: rgb(22, 24, 26);
        &.is-current{
          color: rgb(216, 56, 0);
        }
        &:hover {
          color: rgb(216, 56, 0);
        }
      }
      .header-search-bar {
        border: 2px solid rgb(33, 150, 243);
        border-radius: 18px;
        padding: 3px;
        input {
          background: transparent;
          appearance: none;
          flex: 1;
          font-size: 14px;
          margin: 0 12px;
          border: none;
          &:focus{
            outline: 0;
          }
        }
      }
    }
    #menu-toggle {
      display: none;
    }
    .hamburger {
      display: none;
    }
    @media (max-width: 768px) {
      transform: translateX(-100%);
      transition: transform 0.3s ease;
      .hamburger {
        display: block;
        position: absolute;
        top: 20px;
        right: -60px;
        width: 40px;
        height: 40px;
        display: grid;
        place-items: center;
        cursor: pointer;
        font-size: 28px;
        .fa-bars{
          display: block;
        }
        .fa-xmark{
          display: none;
        }
      }
      &:has(#menu-toggle:checked) {
        box-shadow: 8px 0 24px rgb(0 0 0 / 20%);
        transform: translateX(0);
        .hamburger {
          right: 20px;
          .fa-bars{
            display: none;
          }
          .fa-xmark{
            display: block;
          }
        }
      }
      padding: 40px 20px 20px;
      position: fixed;
      top: 0;
      left: 0;
      width: 280px;
      height: 100dvh;
      background: white;
      z-index: 1000;
      .menu{
        display: block;
        font-size: 15px;
        > li {
        margin: 0;
        padding: 7.2px;
        position: static;
        label {
          display: block;
        }
        .submenu {
          display: none;
          position: static;
          list-style: none;
          border: none;
          padding: 0;
          a {
            white-space: nowrap;
          }
          li{
            display: block;
            box-sizing: border-box;
            height: 30px;
            line-height: 30px;
            width: 100%;
            padding: 0 20px;
            margin-top: 8px;
            + li {
              border: none;
            }
          }
        }
        &:has(.submenu-toggle:checked) > .submenu {
          display: inline;
        }
      }
      > li:hover{
        color: rgb(216, 56, 0);
        >.submenu{
          display: none;
        }
      }
      .header-search-bar {
        border: 2px solid rgb(33, 150, 243);
        border-radius: 18px;
        padding: 3px;
        input {
          background: transparent;
          appearance: none;
          flex: 1;
          font-size: 14px;
          margin: 0 12px;
          border: none;
          &:focus{
            outline: 0;
          }
        }
      }
      }
    }
  }

}

main{
  margin: 50px auto 100px;
  max-width: 700px;
  a{
    font-size: 18px;
    text-decoration: none;
    color: rgb(33, 150, 243);
    &:hover {
      color: rgb(153, 153, 153);
    }
  }
  .keyword-list{
    margin: 10px 0;
    padding-left: 20px;
    padding-bottom: 10px;
    display: flex;
    list-style: none;
    color: #fff;
    font-size: 12px;
    .keyword{
      margin: 3px;
      padding: 3px 10px;
    }
  }
  
  .group{
    padding: 0;
    list-style: none;
    display: flex;
    gap: 20px;
  }
  /* .group > liに指定して幅調整 */
  .flex-1{
    flex: 1;
  }
  .flex-2{
    flex: 2;
  }
  .flex-3{
    flex: 3;
  }
  /* .sectionに指定して段組み */
  .col-2{
    column-count: 2;
  }
  .col-3{
    column-count: 3;
  }
  .col-4{
    column-count: 4;
  }
  @media (max-width: 768px) {
    .group {
      flex-direction: column;
    }
    [class*="col-"] {
      column-count: 1;
    }
  }
}

footer{
  position: fixed;
  left: 0;
  bottom: 0;
  height: 33px;
  width: 100%;
  background-color: rgb(117, 117, 117);
  p{
    color:#fff;
    text-align: center;
    margin: 6px auto;
    font-size: 12px;
    font-weight: normal;
  }
}
