@charset "UTF-8";

[v-cloak] {
  display: none;
}

/* ユーティリティー */
#top-rev {
  position: absolute;
  width: 25vw;
  max-width: 100px;
  top: 3vh;
  left: 3%;
  z-index: 10;
}

#top-rev img {
  position: relative;
  bottom: 0;
  transition: box-shadow 0.3s, bottom 0.3s;
  box-shadow: 5px 5px 2px 0 rgba(0, 0, 0, 0.4);
  border-radius: 90%;
}

#top-rev:hover img {
  bottom: -5px;
  box-shadow: none;
}


body {
  color: #464646;
  font-family: "noto-sans-cjk-jp", sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.7;
  position: relative;
}

img {
  width: 100%;
  height: auto;
  display: block;
}

a {
  display: block;
}

.fgo {
  font-family: "noto-sans-cjk-jp", sans-serif;
  font-weight: 700;
  font-style: normal;
}

main {
  width: 100vw;
  height: 100vh;
  background: #ffdc32;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.bg_gr {
  width: 94.44vw;
  height: 91.11vh;
  background: url(../imgs/common/bg.jpg) no-repeat center / cover;
  display: flex;
  justify-content: center;
  align-items: center;
}

.bg_gr:after {
  content: "";
  width: 78.96%;
  min-width: 1137px;
  padding-top: 9vh;
  background: url(../imgs/common/chalk.svg) no-repeat bottom center / contain;
  position: absolute;
  bottom: 4.44vh;
  pointer-events: none;
}

.blk {
  width: 69.44vw;
  max-width: 1440px;
  min-width: 1000px;
  height: 77.78vh;
  position: relative;
  top: -3%;
}

[data-ruby] {
  position: relative;
}

[data-ruby]::before {
  font-size: min(1vh, 10px);
  line-height: 1;
  letter-spacing: 0;
  content: attr(data-ruby);
  white-space: nowrap;
  position: absolute;
  top: -0.5em;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
}

rt {
  display: none;
}

.bg_wh {
  width: 111.11vh;
  max-width: 100%;
  margin: 0 auto 3.33vh;
  background: #fff;
  border-radius: 3.33vh;
  position: relative;
}

/* -------------------------------------
common
------------------------------------- */
.ttl {
  width: 111.11vh;
  max-width: 84.75vw;
  max-height: 12.85vw;
  margin: 0 auto 4.44vh;
  /* position: relative;
  top: -3.33vh; */
}

.ttl img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  -o-object-fit: contain;
  object-position: center bottom;
  -o-object-position: center bottom;
}

.sp {
  display: none;
}

/*  第 ○ 問 */
.num_blk {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 24.44vh;
  /* max-width: 25vw; */
  /* max-height: 7.81vw; */
  height: 6.67vh;
  background: #b2d2c3;
  border: 0.78vh solid #fff;
  border-radius: 999px;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
}

.num_blk .num {
  /* font-size: min(2.78vh, 2.84vw, 25px); */
  font-size: min(2.78vh, 25px);
  line-height: 1;
  color: #006837;
  display: flex;
  align-items: flex-end;
  position: relative;
  top: -0.2em;
}

.num_blk .num.rb {
  position: static;
}

.num_blk .num .lg {
  font-size: 1.5em;
  line-height: 1;
  padding: 0 0.3em;
}

/*  btn */
.btn_blk .btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  -o-object-fit: contain;
  object-position: center;
  -o-object-position: center;
  filter: drop-shadow(0.78vh 0.78vh 3px rgba(0, 0, 0, 0.3));
  transition: 0.3s;
}

.btn_blk .btn:hover img {
  filter: none !important;
  transform: translate(0.2vh, 0.2vh);
}

.btn_blk.btn_blk--incorrect {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.answer .btn_blk.btn_blk--incorrect .btn {
  margin: 0;
}

/* -------------------------------------
question
------------------------------------- */
.question .bg_wh {
  min-height: 20vh;
  padding: 4.44vh 5.56vh 1.89vh;
}

.question .q_blk .txtblk p {
  font-size: min(2.78vh, 25px);
  color: #006837;
  text-align: center;
}

.question .q_blk .txtblk p span {
  display: inline-block;
}

.question .choice {
  width: 111.11vh;
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}

.question .choice .choice_item {
  width: 32%;
  height: 22.22vh;
  padding: 5px;
  border: 5px solid #b5b5b5;
  border-radius: 3.33vh;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  cursor: pointer;
  transition: 0.3s;
  box-shadow: 15px 1.67vh 5px 0px rgba(0, 0, 0, 0.3);
}

.question .choice .choice_item::before {
  content: "";
  width: 7.78vh;
  max-width: 5.93vw;
  height: 7.78vh;
  max-height: 5.93vw;
  background: #b5b5b5 url(../imgs/common/num_1.svg) no-repeat center/34% 45%;
  border-radius: 3.33vh 0 10px 0;
  position: absolute;
  left: -5px;
  top: -5px;
  transition: 0.3s;
}

.question .choice .choice_item:nth-child(2):before {
  background-image: url(../imgs/common/num_2.svg);
}

.question .choice .choice_item:nth-child(3):before {
  background-image: url(../imgs/common/num_3.svg);
}

.question .choice .choice_item:nth-child(4):before {
  background-image: url(../imgs/common/num_4.svg);
}

.question .choice .choice_item:nth-child(5):before {
  background-image: url(../imgs/common/num_5.svg);
}

.question .choice .choice_item:nth-child(6):before {
  background-image: url(../imgs/common/num_6.svg);
}

.question .choice .choice_item .imgblk {
  /* width: 174px; */
  width: 19.33vh;
  max-width: 22.53vw;
  /* height: 124px; */
  height: 13.78vh;
  max-height: 16.15vw;
}

.question .choice .choice_item .imgblk img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  -o-object-fit: contain;
  object-position: center;
  -o-object-position: center;
}

.question .choice .choice_item p {
  font-size: min(2.56vh, 1.95vw, 23px);
  text-align: center;
}

.question .choice .choice_item p [data-ruby]::before {
  font-size: min(1.22vh, 0.93vw, 11px);
}

.question .choice .choice_item p span {
  display: inline-block;
}

.question .choice .choice_item.txt_only p {
  padding-top: 1em;
}

/* -------------------------------------
answer
------------------------------------- */
.answer .bg_wh {
  width: 111.11vh;
  max-width: 100%;
  min-height: 46.67vh;
  padding: 4.44vh 5.56vh 1.89vh;
  margin: 0 auto 3.33vh;
}

.answer .answer_blk {
  width: 85%;
  height: 16.67vh;
  max-width: 570px;
  margin: 0 auto 2.22vh;
}

.answer .answer_blk img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  -o-object-fit: contain;
  object-position: center;
  -o-object-position: center;
}

.answer .txtblk {
  /* width: 72%; */
  width: 75%;
}

.answer .txtblk p {
  font-size: min(2.44vh, 22px);
  letter-spacing: 0.15em;
}

.answer .txtblk p ruby {
  display: inline-block;
}

.answer .imgblk {
  width: 24%;
  max-width: 230px;
  position: absolute;
  top: 50%;
  right: 3.5%;
  transform: translateY(-33%);
  -webkit-transform: translateY(-33%);
  -ms-transform: translateY(-33%);
  -ms-transform: translateY(-33%);
  -o-transform: translateY(-33%);
}

.answer .imgblk img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  -o-object-fit: contain;
  object-position: center;
  -o-object-position: center;
}

.answer .btn_blk .btn {
  /* width: 27.88vw; */
  max-width: 329px;
  height: 9.33vh;
  margin: 0 auto;
  cursor: pointer;
  position: relative;
  z-index: 3;
}

.answer .btn_blk .btn img {
  filter: drop-shadow(1.44vh 1.44vh 3px rgba(0, 0, 0, 0.3));
}

/* -------------------------------------
result
------------------------------------- */
.result .bg_wh {
  min-height: 38.89vh;
  padding: 9.33vh 10px 3.33vh;
}

.result .num_blk .num span {
  position: relative;
  top: 0.2em;
}

.result .q_blk>.txtblk {
  margin-bottom: 2.67vh;
}

.result .q_blk>.txtblk p {
  font-size: min(3.33vh, 3.41vw, 30px);
  line-height: 1;
  color: #006837;
  text-align: center;
}

.result .q_blk>.txtblk p .mdl {
  font-size: 1.4em;
  padding-right: 0.3em;
}

.result .q_blk>.txtblk p .mdl [data-ruby]:before {
  top: -0.2em;
}

.result .q_blk>.txtblk p .vl {
  font-size: 2em;
  padding: 0 0.3em;
}

.result .q_blk>.txtblk p br {
  display: none;
}

.result .comment .imgblk {
  width: 23%;
  max-width: 160px;
  height: 26.25vh;
  max-height: 168px;
}

.result .comment {
  max-width: 721px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.result .comment .imgblk img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  -o-object-fit: contain;
  object-position: center;
  -o-object-position: center;
}

.result .comment .txtblk {
  width: 74%;
  margin-left: 3%;
  position: relative;
}

.result .comment .txtblk_inner {
  min-height: 11.44vh;
  padding: 5px 5%;
  border-radius: 2.22vh;
  background: #50b4ff;
  display: flex;
  align-items: center;
}

.result .comment .txtblk_inner::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 2.54vw solid #50b4ff;
  border-left: 0;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
}

.result .comment .txtblk_inner.bl {
  background: #50b4ff;
}

.result .comment .txtblk_inner.bl::before {
  border-right: 2.54vw solid #50b4ff;
}

.result .comment .txtblk_inner.or {
  background: #f7931e;
}

.result .comment .txtblk_inner.or::before {
  border-right: 2.54vw solid #f7931e;
}

.result .comment .txtblk_inner.rd {
  background: #ed1c24;
}

.result .comment .txtblk_inner.rd::before {
  border-right: 2.54vw solid #ed1c24;
}

.result .comment .txtblk_inner.yl {
  background: #e6be32;
}

.result .comment .txtblk_inner.yl::before {
  border-right: 2.54vw solid #e6be32;
}

.result .comment .txtblk_inner p {
  font-size: min(2.78vh, 2.84vw, 25px);
  color: #fff;
}

.result .comment .txtblk_inner p span {
  display: inline-block;
  font-feature-settings: "palt";
}

.result .comment .txtblk_inner p .lg {
  font-size: 113.48%;
}

.result .btn_blk {
  display: flex;
  justify-content: space-between;
  width: 111.11vh;
  max-width: 100%;
  margin: 0 auto;
}

.result .btn_blk li {
  width: 24%;
  max-width: 240px;
}

.result .btn_blk .btn {
  height: 9.33vh;
  position: relative;
  z-index: 3;
}

.result .btn_blk .btn img {
  filter: drop-shadow(0.78vh 0.78vh 3px rgba(0, 0, 0, 0.3));
}

/* .result .btn_blk .btn:hover img {
  filter: none;
  transform: translate(0.2vh, 0.2vh);
} */

@media screen and (max-width: 1440px) {
  .bg_gr:after {
    content: "";
    width: 92%;
    max-width: 1137px;
    min-width: initial;
  }

  .blk {
    width: 90%;
    max-width: 1000px;
    min-width: initial;
  }

  .ttl {
    width: 100%;
    margin: 0 auto 8vh;
  }
}

@media screen and (max-width: 1180px) {
  /* -------------------------------------
	question
	------------------------------------- */
  /* .question .inner_blk {
    padding: 3% 5% 1.2%;
  } */
}

@media screen and (max-width: 900px) {
  main {
    display: block;
    background: none;
    /* overflow: hidden; */
    border: 2.08vw solid #ffdc32;
  }

  .bg_gr {
    width: 100%;
    height: 100%;
    position: relative;
    padding-top: 60px;
  }

  #top-rev {
    left: auto;
    top: 1vh;
    right: 3%;
  }

  .bg_gr:after {
    bottom: 0;
  }
}

@media screen and (max-width: 640px) {
  main {
    width: 100%;
    height: auto;
  }

  .bg_gr:after {
    bottom: 0;
    width: 100%;
    padding-top: 11%;
    background: url(../imgs/common/chalk_sp.svg) no-repeat bottom center / contain;
  }

  .blk {
    display: block !important;
    width: 94% !important;
    max-width: 426px !important;
    height: auto !important;
    padding: 3.5% 0 16%;
    margin: 0 auto !important;
  }

  .ttl {
    width: 95% !important;
    max-width: 404px;
    max-height: initial !important;
    height: auto !important;
    margin: 0 auto 13%;
    position: static;
  }

  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  .pc_br {
    display: none;
  }

  /*  第 ○ 問 */
  .num_blk {
    width: 51%;
    max-width: 207px;
    height: 12.5vw;
    max-height: 62px;
    border: 7px solid #fff;
  }

  .num_blk .num {
    font-size: min(5.21vw, 25px);
  }

  .btn_blk .btn img {
    filter: drop-shadow(13.1px 13.1px 2.6px rgba(0, 0, 0, 0.3));
  }

  .btn_blk.btn_blk--incorrect {
    flex-direction: column;
    align-items: center;
  }

  /* -------------------------------------
	question
	------------------------------------- */
  .question .bg_wh {
    min-height: initial;
    padding: 15.48% 5% 14.29%;
    border-radius: 30px;
    margin-bottom: 28%;
  }

  .question .q_blk .txtblk p {
    font-size: min(4.8vw, 25px);
  }

  .question .choice {
    width: 97%;
    max-width: 412px;
    flex-direction: column;
  }

  .question .choice .choice_item {
    width: 100%;
    margin-bottom: 9%;
    height: 41.67vw;
    max-height: 200px;
    box-shadow: 15px 15px 5px 0px rgba(0, 0, 0, 0.3);
  }

  .question .choice .choice_item::before {
    width: 17.4%;
    max-width: initial;
    height: auto;
    max-height: initial;
    padding-top: 17.4%;
    border-radius: 30px 0 10px 0;
  }

  .question .choice .choice_item .imgblk {
    width: 46%;
    max-width: 180px;
    height: auto;
    max-height: initial;
  }

  .question .choice .choice_item p {
    font-size: min(4.79vw, 23px);
  }

  .question .choice .choice_item p [data-ruby]::before {
    font-size: min(2.29vw, 11px);
  }

  /* -------------------------------------
	answer
	------------------------------------- */
  .answer .blk {
    padding-bottom: 21%;
  }

  .answer .bg_wh {
    width: 97%;
    min-height: initial;
    padding: 15.48% 5% 14.29%;
    border-radius: 30px;
    margin-bottom: 19%;
  }

  .answer .answer_blk {
    width: 81%;
    height: auto;
    max-width: 323px;
    margin-bottom: 8%;
  }

  .answer .txtblk {
    width: 100% !important;
    margin-bottom: 7%;
  }

  .answer .imgblk {
    width: 100% !important;
    max-width: 366px !important;
    position: static;
    transform: initial;
    margin: 0 auto;
  }

  .answer .txtblk p {
    font-size: min(4.58vw, 22px);
  }

  .answer .btn_blk .btn {
    width: 78.13vw;
    height: auto;
  }

  /* -------------------------------------
	result
	------------------------------------- */
  .result .bg_wh {
    min-height: initial;
    padding: 15.48% 5% 14.29%;
  }

  .result .comment {
    flex-direction: column-reverse;
  }

  .result .btn_blk {
    flex-direction: column;
    align-items: center;
  }

  .result .q_blk>.txtblk p {
    font-size: min(6.25vw, 30px);
  }

  .result .q_blk>.txtblk p br {
    display: block;
  }

  .result .comment .txtblk {
    width: 100%;
    margin-left: 0%;
    margin-bottom: 5%;
  }

  .result .comment .txtblk_inner {
    padding: 10px;
  }

  .result .comment .txtblk_inner:before {
    border-right: 15px solid #50b4ff;
    position: absolute;
    top: auto;
    bottom: 0;
    left: 50%;
    transform: rotate(270deg) translate(-100%, -50%);
    -webkit-transform: rotate(270deg) translate(-100%, -50%);
    -ms-transform: rotate(270deg) translate(-100%, -50%);
    -ms-transform: rotate(270deg) translate(-100%, -50%);
    -o-transform: rotate(270deg) translate(-100%, -50%);
  }

  .result .comment .txtblk_inner.or::before {
    border-right: 15px solid #f7931e;
  }

  .result .comment .txtblk_inner.rd::before {
    border-right: 15px solid #ed1c24;
  }

  .result .comment .txtblk_inner.yl::before {
    border-right: 15px solid #e6be32;
  }

  .result .comment .txtblk_inner p {
    text-align: center;
    font-size: min(5.21vw, 25px);
  }

  .result .comment .imgblk {
    width: 32%;
    max-width: 120px;
    height: auto;
  }

  .result .btn_blk li {
    width: 80%;
  }

  .result .btn_blk .btn {
    width: 100%;
    height: auto;
    margin-bottom: 5%;
  }
}

@media screen and (max-width: 480px) {
  [data-ruby]::before {
    font-size: min(2.29vw, 11px);
  }

  /*  第 ○ 問 */
  .num_blk {
    border: 1.46vw solid #fff !important;
  }

  /* -------------------------------------
	question
	------------------------------------- */
  .question .bg_wh {
    border-radius: 6.25vw;
  }

  .question .choice .choice_item {
    border-radius: 6.25vw;
  }

  .question .choice .choice_item::before {
    border-radius: 6.25vw 0 10px 0;
  }

  /* -------------------------------------
	answer
	------------------------------------- */
  .answer .bg_wh {
    border-radius: 6.25vw;
  }
}