@font-face {
  font-family: "mkpop";
  src: url("https://jp5.tokyo/fonts/MkPOP_101.woff")format("woff"),
        url("https://jp5.tokyo/fonts/MkPOP_101.ttf")format("truetype");
}
body {
  background: rgb(207, 207, 255);
  backdrop-filter: none;
}
#topbutton {
  /* ▼ボタンの表示位置を画面の右下に固定 */
  position: fixed; /* ←表示場所を固定 */
  bottom: 10px; /* ←下端からの距離 */
  right: 30px; /* ←右端からの距離 */

  /* ▼最初は非表示にしておく */
  /* display: none; */

  /* ▼配色・配置・文字の装飾など */
  background-color: #2525aa; /* ←背景色 */

  border-radius: 24px; /* ←角丸の半径 */
  text-align: center; /* ←文字の位置 */
  font-size: 110%; /* ←文字サイズ */
  font-weight: bold; /* ←文字の太さ */
  margin: 0px; /* ←外側の余白 */
  padding: 10px; /* ←内側の余白 */
  z-index: 10000;
  opacity: 0;
}
#topbutton a {
  /* ▼リンクの装飾 */
  color: white; /* ←文字色 */
  text-decoration: none; /* ←下線なし */
}
#topbutton a:hover {
  /* ▼マウスが載ったときの装飾 */
  color: yellow; /* ←文字色 */
  text-decoration: underline; /* ←下線あり */
}
/* パンくずリスト */
.breadcrumb {
  margin: 0;
  padding: 0;
  list-style: none;
  padding-left: 2rem;
}

.breadcrumb li {
  display: inline-block; /*横に並ぶように*/
  list-style: none;
  font-weight: bold; /*太字*/
  padding-left: 1rem;
}

.breadcrumb a:after {
  /* ▶を表示*/
  font-family: 'Material Symbols Outlined';
  content: "\e163";
  position: absolute;
  top: -2px;
  right: -37px;
  padding: 0 0.2em;
  font-size: 1.3em;
  color: silver;
}

.breadcrumb li:last-child a:after {
  content: "";
}

.breadcrumb li a {
  position: relative;
  padding-left: 1rem;
  text-decoration: none;
  color: #888;
}

/*家アイコン*/
.breadcrumb li:first-child a:before {
  font-family: 'Material Symbols Outlined';
  content: "\e88a";
  position: absolute;
  top: -4px;
  left: -10px;
  font-weight: normal;
  font-size: 1.5em;
  color: #f3948f;
  font-variation-settings:
  'FILL' 1
}

.breadcrumb li a:hover {
  text-decoration: underline;
  border: none;
}

.entry-meta {
  display: flex;
  justify-content: end;
  line-height: 1em;
}
main p.entry-meta {
  margin-top: 0;
}
.posted-date,
.modified-date {
  margin-right: 10px;
}
.fa-clock-o:before {
  font-family: 'Material Symbols Outlined';
  content: "\e8b5";
  font-size: 1.5rem;
  margin: 0 7px;
}
.fa-refresh:before {
  font-family: 'Material Symbols Outlined';
  content: "\e627";
  font-size: 1.5rem;
  margin: 0 7px;
}


/* 会話アニメーション */
main .conversation{
  margin: 100px auto;
}
main .wrapper img {
  width: 70px;
  height: 70px;
  object-fit: cover;
  margin: 10px;
  margin-right: 40px;
  border-radius: 50%;
}
main .wrapper {
  display: flex;
  align-items: center;
  padding: 10px;
  opacity: 0;
  transition: all 1s ease;
}
main .wrapper.active {
  animation: appear 2s forwards;
}
@keyframes appear {
  0% {
    opacity: 0;
    transform: translateY(50px);
  }
  50% {
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}
main .wrapper:nth-of-type(even) {
  flex-direction: row-reverse;
}
main .wrapper:nth-of-type(even) img {
  margin-left: 40px;
}
.personA,
.personB {
  position: relative;
  max-width: 500px;
  height: 100%;
  padding: 20px;
  text-align: left;
  line-height: 1em;
  color: #333;
  font-size: 20px;
  font-weight: bold;
  border-radius: 15px;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  /* text-shadow: 1px 1px 2px #111; */
}
.personA {
  background: rgb(249, 232, 235);
  /* border: 2px solid #999; */
}
.personB {
  background: rgb(224, 224, 253);
  /* border: 2px solid #999; */
}
.personA:after,
.personA:before,
.personB:after,
.personB:before {
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  pointer-events: none;
  position: absolute;
  top: 50%;
}
.personA:after,
.personA:before {
  right: 100%;
}
.personB:after,
.personB:before {
  left: 100%;
}
.personA::after,
.personB::after {
  border-top-width: 10px;
  border-bottom-width: 10px;
  border-left-width: 20px;
  border-right-width: 20px;
  margin-top: -10px;
}
.personA:after {
  border-color: #33333300;
  border-right-color: rgb(249, 232, 235);
}
.personB:after {
  border-color: #33333300;
  border-left-color: rgb(224, 224, 253);
}
.personA:before,
.personB:before {
  border-top-width: 12px;
  border-bottom-width: 12px;
  border-left-width: 24px;
  border-right-width: 24px;
  margin-top: -12px;
}
.personA:before {
  border-color: rgba(56, 155, 12, 0);
  margin-right: 1px;
  border-right-color: #33333300;
}
.personB:before {
  border-color: rgba(155, 53, 10, 0);
  margin-left: 1px;
  border-left-color: #33333300;
}

@keyframes slide {
  0% {
    transform: translateX(-50%);
    opacity: 0;
  }
  20% {
    transform: translateX(0px);
    opacity: 1;
  }
}
main .wrapper.active > .textAni > span > span {
  animation: slide 0.5s ease-in-out backwards;
  font-family: "mkpop", sans-serif;
}
.textAni span {
  display: inline-block;
  overflow: hidden;
}

.container {
  display: grid;
  grid-template:
    "main aside" 1fr
    /68% 32%;
  max-width: 1300px;
  margin: 0 auto;
  width: 100%;
}
main .section {
  display: block;
  margin: 20px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.63);
  border-radius: 10px;
}
table {
  width: 100%;
  margin: 30px 5px;
}
td {
  text-align: center;
  color: #333;
  font-size: 1.5em;
}
td a {
  text-decoration: none;
  color: #333;
  font-weight: bold;
}
td a:hover {
  color: red;
}
h1 {
  text-align: center;
  width: 90%;
  border-radius: 10px;
  background: purple;
  margin: 30px auto;
  padding: .5rem 1rem;
  color: #fff;
  text-shadow: 5px 5px 10px #000;
}
*:target {
  scroll-margin-top: 80px;
}
.grammarContentBox {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  grid-gap: 5px;
}
.grammarContentBox a {
  text-decoration: none;
  text-align: center;
}
.grammarContentBox a:hover {
  color: red;
}
.grammarContentBox .wrapper {
  display: flex;
}

.grammarContentBox .wrapper .lesson:hover {
  color: red;
}
.grammarContentBox a {
  text-decoration: none;
}
.grammarContentBox li {
  background: rgba(207, 207, 255, 0.3);
  padding: 5px;
  color: #333;
  font-size: 1.3em;
  font-weight: bold;
  border-radius: 10px;
  transition: all 0.3s ease;
  list-style: none;
}
.grammarContentBox li:hover {
  background: blue;
  color: #fff;
}
main .top,
main .content {
  display: block;
  background: rgba(255, 255, 255, 0.63);
  width: 90%;
  margin: 30px auto;
  padding: 10px;
  position: relative;
  border-radius: 5px;
}
main .top {
  font-size: 1.1em;
  font-weight: bold;
}
main .content {
  opacity: 0;
  transition: all 0.5s ease-in-out;
  transform: translateY(-100px);
}
main .content.show {
  opacity: 1;
  transform: none;
}
main .intro {
  font-size: 1.3em;
  font-weight: bold;
  margin-bottom: 100px;
}
.content p {
  font-size: 1em;
  margin: 10px;
}
main h2 {
  margin: 20px auto;
  font-size: 1.6em;
  font-weight: bold;
  text-align: center;
  color: rgb(2, 2, 206);
  text-shadow: 5px 5px 5px #fff;
}
section.index h2 {
  width: 90%;
  background: rgba(255, 255, 255, 0.253);
  border-radius: 10px;
}

.only {
  background-color: purple;
  border-radius: 5px;
  padding: 3px;
  color: #fff;
}

.ks {
  border-bottom: 1px solid #333;
}
.bold {
  font-weight: bold;
}

.red {
  color: red;
  font-weight: bold;
  font-size: 1.2em;
}
.green {
  color: green;
  font-weight: bold;
  font-size: 1.2em;
}
.blue {
  color: blue;
  font-weight: bold;
  font-size: 1.2em;
}
.black {
  color: #333;
  font-weight: bold;
  font-size: 1.2em;
}
.orange {
  color: orange;
  font-weight: bold;
  font-size: 1.2em;
}
.yellow {
  color: orange;
  font-weight: bold;
  font-size: 1.2em;
}
.purple {
  color: purple;
  font-weight: bold;
  font-size: 1.2em;
}
.gray {
  color: rgb(197, 197, 197);
  font-weight: bold;
}
.para {
  background: rgba(255, 255, 255, 0.253);
  padding: 10px;
  border-radius: 3px;
  margin: 50px 0;
  font-size: 1.2em;
}
.main .para p {
  margin: 10px;
  line-height: 1.5em;
}
.sen {
  border-top: 1px dotted #333;
  width: 100%;
  margin: 30px 0;
}
#index {
  background: rgba(255, 255, 255, 0.815);
  border-radius: 20px;
  width: 90%;
  margin: 30px auto;
  padding: 30px 20px;
}
ol {
  position: relative;
  counter-reset: number-ol; /*ポイント*/
  padding: 5px;
  margin-left: 20px;
}
ol a {
  text-decoration: none;
}
ol li {
  list-style: none;
  margin-bottom: 1em;
  margin: 5px 0;
  padding: 5px 0 5px 30px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.253);
  text-indent: 1em;
  font-weight: bold;
  transition: all 0.3s ease;
}
ol li:hover {
  color: #fff;
  background: rgb(128, 128, 255);
}
ol li:last-of-type {
  margin-bottom: 0;
}
ol li:before {
  position: absolute;
  counter-increment: number-ol; /*ポイント*/
  content: counter(number-ol); /*ポイント*/
  background: #333;
  color: #fff;
  border-radius: 50%;
  left: 0px;
  width: 1.5em;
  height: 1.5em;
  text-align: center;
  text-indent: 0;
}
#index ol {
  margin: 0;
}
#index ol li {
  font-size: 1.5em;
  line-height: 1.5em;
}
#index ol li::before {
  background: purple;
}
main .ex {
  padding: 0;
}
.ex h2 {
  background: rgb(2, 2, 197);
  color: #fff;
  font-weight: bold;
  border-radius: 5px 5px 0 0;
  padding: 5px 20px;
  margin: 0 auto 30px auto;
  text-shadow: none;
  font-size: 1.5em;
}
.ex h3 {
  width: 90%;
  background: rgb(105, 105, 245);
  border-radius: 5px;
  margin: 30px auto;
  padding: 5px 20px;
  color: #fff;
  font-size: 1.3em;
}
.setuzoku {
  text-align: center;
  font-weight: bold;
}
.imi {
  font-weight: bold;
  color: purple;
}
.sentence {
  font-weight: bold;
}

@media screen and (max-width: 480px) {
  .grammarContentBox h2 {
    font-size: 2em;
  }
  .grammarContentBox p {
    font-size: 1.5em;
  }
}

.custom-box {
  background: rgba(255, 255, 255, 0.63);
  width: 98%;
  margin: 0 auto;
  border-radius: 10px;
  margin: 30px auto;
}
.quiz-box.hide {
  display: none;
}
.custom-box header {
  background: purple;
  padding: 20px;
  box-shadow: 0 3px 10px rgb(99, 99, 255);
  font-size: 1.2em;
  font-weight: bold;
  color: #fff;
  border-radius: 5px 5px 0 0;
}
.quiz-box section {
  display: block;
  padding: 20px;
}
.question-text {
  font-size: 1.3em;
  font-weight: bold;
  padding: 10px 0;
  color: rgb(0, 0, 136);
  text-shadow: 5px 5px 5px #fff;
}
.option {
  padding: 5px;
  background: #fff;
  border-radius: 10px;
  margin-bottom: 5px;
}
.quiz-box .option-container .option.already-answered {
  pointer-events: none;
}
.quiz-box .option-container .option {
  background-color: #fdfdfd;
  padding: 15px;
  font-size: 16px;
  line-height: 22px;
  color: #000000;
  border-radius: 5px;
  margin-bottom: 10px;
  cursor: pointer;
  text-transform: capitalize;
  opacity: 0;
  animation: fadeIn 0.3s ease forwards;
  position: relative;
  overflow: hidden;
}

.quiz-box .option-container .option.already-answered {
  pointer-events: none;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.quiz-box .option-container .option.correct::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  background: blue;
  z-index: -1;
  animation: slideInLeft 0.5s ease forwards;
}
@keyframes slideInLeft {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0%);
  }
}

.quiz-box .option-container .option.wrong::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  background: red;
  z-index: -1;
  animation: slideInLeft 0.5s ease forwards;
}

.quiz-box .option-container .option.correct,
.quiz-box .option-container .option.wrong {
  color: #ffffff;
}
.quiz-box .btn,
.result-box .btn {
  padding: 5px 45px;
  background-color: rgb(0, 0, 116);
  color: #ffffff;
  border: none;
  border-radius: 5px;
  font-size: 20px;
  cursor: pointer;
  display: inline-block;
  margin-bottom: 20px;
}

.quiz-box .answers-indicator {
  border-top: 1px solid #cccccc;
  margin-bottom: 10px;
}

.quiz-box .answers-indicator div {
  height: 40px;
  width: 40px;
  display: inline-block;
  background-color: #cccccc;
  border-radius: 50%;
  margin-right: 3px;
  margin-top: 15px;
}

.quiz-box .answers-indicator div.correct {
  background: blue;
  background-image: url(./new-standard/img/correct.png);
  background-size: 50%;
  background-repeat: no-repeat;
  background-position: center;
}

.quiz-box .answers-indicator div.wrong {
  background: red;
  background-image: url(./new-standard/img/wrong.png);
  background-size: 50%;
  background-repeat: no-repeat;
  background-position: center;
}

.result-box {
  text-align: center;
}
.result-box.hide {
  display: none;
}

.result-box h3 {
  font-size: 30px;
  line-height: 42px;
  padding-top: 20px;
  color: rgb(0, 0, 117);
  text-shadow: 5px 5px 5px rgb(114, 114, 114);
}

.result-box table {
  width: 98%;
  margin: 30px auto;
  background: #fff;
}

.result-box table td {
  border: 1px solid #cccccc;
  padding: 8px 15px;
  font-weight: 500;
  color: #000000;
  width: 50%;
  text-align: left;
  font-size: 18px;
}

#practiceBtn {
  display: block;
  margin: 10px auto;
  margin-bottom: 150px;
}
#practice2 {
  display: none;
  margin-bottom: 150px;
}
.box {
  background: rgba(255, 255, 255, 0.253);
  margin: 5px;
  padding: 15px;
}
.box .correct {
  background: rgb(1, 1, 158);
  color: #fff;
  font-weight: bold;
}
.box .wrong {
  background: rgb(172, 0, 0);
  color: #fff;
}
.box button,
#practiceBtn {
  padding: 5px 15px;
  font-size: 1.3em;
  font-weight: bold;
}

@media (max-width: 970px) {
  .container{
    display: grid;
    grid-template:
    "main"
    "aside";
    width: 97%;
    margin: 0 auto;
  }
  .grammarContentBox p {
    font-size: 1em;
  }
}
@media (max-width: 480px) {
  main .section {
    margin: 5px;
  }
  section ol {
    margin-left: 0;
  }
  section ol li::before {
    width: 1.3rem;
    height: 1.3rem;
    font-size: 1rem;
    line-height: 1.5rem;
  }
  main h1{
    font-size: 1.2rem;
  }
  main .intro {
    font-size: 1.2rem;
  }
  main section h2 {
    font-size: 1.2rem;
    text-align: start;
    padding-left: 2rem;
  }
  .grammarContentBox {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  }
}
