/*!
Theme Name: Remedial Style
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: underscores
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Underscores is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

html,
body,
div,
span,
h1,
h2,
h3,
h4,
h5,
h6,
p,
address,
em,
img,
strong,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
footer,
header,
nav,
section {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  box-sizing: border-box;
}
article,
aside,
footer,
header,
nav,
section {
  display: block;
}
nav ul {
  list-style: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
input,
select {
  vertical-align: middle;
}
h1,
h2,
h3,
h4,
h5 {
  line-height: 1;
}
p,
li,
dt,
dd {
  line-height: 1.8;
}
img {
  max-width: 100%;
  vertical-align: top;
}
a {
  color: #0b00cc;
  font-weight: normal;
  text-decoration: underline;
}
a:hover {
  text-decoration: none;
}
a img {
  border: none;
}
a:hover img {
  filter: alpha(opacity= "75");
  opacity: 0.75;
}
.clear:before,
.clear:after {
  content: " ";
  display: table;
}

.clear:after {
  clear: both;
}
.clear {
  *zoom: 1;
}

html {
  font-size: 10px;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro",
    "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
}

body {
  font-size: 1.6rem;
}
.wrapper {
  background: #e0e0e0;
  padding: 0 0 50px;
}
header {
  background: #fff;
  margin: 0 0 50px;
  height: 80px;
}
@media only screen and (max-width: 768px) {
  header {
    height: 60px;
    margin: 0 0 25px;
  }
}
header .inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 10px 0 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media only screen and (max-width: 1420px) {
  header .inner {
    padding: 10px;
  }
}
header .inner .site-title {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.8;
}
@media only screen and (max-width: 768px) {
  header .inner .site-title {
    font-size: 2.6rem;
  }
}
header .inner .site-title a {
  color: #000;
  text-decoration: none;
  font-weight: 700;
}
header .inner .menu li {
  display: inline-block;
}
main {
  background: #fff;
  border-radius: 10px;
  max-width: 1200px;
  margin: 0 auto;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.16);
  padding: 30px 20px;
}
@media only screen and (max-width: 1240px) {
  main {
    margin: 0 20px;
  }
}
@media only screen and (max-width: 768px) {
  main {
    margin: 0 10px;
    padding: 20px 10px;
  }
}
main h1 {
  background: #2a418a;
  border-radius: 10px;
  color: #fff;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.2;
  padding: 20px 1em;
}
@media only screen and (max-width: 768px) {
  main h1 {
    font-size: 2rem;
    padding: 10px 0.5em;
  }
}
.cxplain,
.formula,
.example,
.question {
  margin: 30px 50px;
  border-top: 3px solid #b53537;
  border-bottom: 3px solid #b53537;
}
@media only screen and (max-width: 768px) {
  .cxplain,
  .formula,
  .example,
  .question {
    margin: 20px 10px;
  }
}
h2 {
  background: #b53537;
  border-radius: 0 0 50% 50%;
  width: 80px;
  height: 40px;
  line-height: 30px;
  color: #fff;
  font-size: 2rem;
  text-align: center;
}
.textArea {
  margin: 20px;
}
@media only screen and (max-width: 768px) {
  .textArea {
    margin: 20px 10px;
    overflow: scroll;
  }
}
.formulaBlock {
  background: #d4d4d4;
  border-radius: 5px;
  padding: 20px;
  margin: 20px 0;
}
@media only screen and (max-width: 768px) {
  .formulaBlock {
    padding: 10px;
  }
}
.single-unit_commentary main img {
  display: block;
  margin: 0 0 10px;
}
details.accordion__item {
  margin: 30px 50px;
  border: 3px solid #b53537;
  border-radius: 10px;
}
@media only screen and (max-width: 768px) {
  details.accordion__item {
    margin: 20px 10px;
  }
}
summary.accordion__head {
  display: block;
  list-style: none;
  height: 40px;
  line-height: 40px;
  color: #b53537;
  font-size: 2rem;
  font-weight: 700;
  padding: 0 20px;
  position: relative;
  cursor: pointer;
}

summary::-webkit-details-marker,
summary::marker {
  display: none;
}
.arrow-icon {
  display: inline-block;
  position: absolute;
  right: 20px;
  top: 20px;
  transition: transform 0.4s ease;
  height: 14px;
  width: 14px;
  transform: rotate(135deg);
}
.arrow-icon::before {
  content: "";
  width: 10px;
  height: 10px;
  border-top: solid 2px #b53537;
  border-right: solid 2px #b53537;
  position: absolute;
  top: 50%;
  right: 50%;
}
.arrow-icon.active {
  transform: rotate(315deg);
}
.accordion__item[open] .accordion__body {
  height: auto;
}

.accordion__body {
  overflow: hidden;
  height: 0;
  transition: height 0.4s ease;
  margin: 20px;
}

form.questionForm {
  margin: 30px 50px;
  border-top: 3px solid #2a418a;
  border-bottom: 3px solid #2a418a;
}
@media only screen and (max-width: 768px) {
  form.questionForm {
    margin: 20px 10px;
  }
}
form.questionForm fieldset {
  margin: 20px;
}
form.questionForm legend {
  color: #2a418a;
  font-size: 2rem;
  font-weight: 700;
  margin: 0 0 20px;
}
form.questionForm fieldset div {
  margin: 0 0 10px;
}
form.questionForm .time {
  margin: 0 20px 20px;
}
form.questionForm .time input {
  padding: 0.25em;
  width: 5em;
  margin: 0 5px;
}
form.questionForm .btnArea {
  margin: 30px;
  display: flex;
  justify-content: center;
}
@media only screen and (max-width: 500px) {
  form.questionForm .btnArea {
    display: block;
  }
}
form.questionForm .btnArea input {
  background: #2a418a;
  border: none;
  border-radius: 5px;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 500;
  width: 200px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  margin: 0 20px;
  cursor: pointer;
}
@media only screen and (max-width: 500px) {
  form.questionForm .btnArea p {
    text-align: center;
  }
  form.questionForm .btnArea input {
    margin: 0 auto 30px;
  }
}
form.questionForm .btnArea input:hover {
  opacity: 0.7;
}

.list {
  margin: 30px 50px;
}
.list li {
  margin: 0 0 20px;
}
.list li.child {
  margin: 0 0 20px 20px;
}
@media only screen and (max-width: 768px) {
  .list {
    margin: 20px 30px;
  }
}
.pagination {
  margin: 30px 0 0;
}
.pagination ul {
  list-style: none;
  text-align: center;
}
.pagination li {
  display: inline-block;
  width: 40px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  margin: 0 10px;
  font-size: 1.6rem;
  font-weight: 700;
  border-radius: 3px;
}
.pagination li a {
  display: block;
  text-decoration: none;
  width: 40px;
  height: 40px;
  line-height: 40px;
  background: #e0e0e0;
  font-weight: 700;
  border-radius: 3px;
}
@media only screen and (max-width: 768px) {
  .pagination li {
    margin: 0 0 10px;
  }
  .pagination li,
  .pagination li a {
    width: 30px;
    height: 30px;
    line-height: 30px;
  }
}
.pagination li .current {
  display: block;
  background: #2a418a;
  color: #fff;
}
.swContainer {
  background: #d4d4d4;
  border-radius: 5px;
  width: 300px;
  margin: 0 auto;
  padding: 0 0 20px;
}
@media only screen and (max-width: 320px) {
  .swContainer {
    width: 260px;
  }
}
.swContainer p {
  background: #2a418a;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  margin: 0 0 20px;
  padding: 5px 0;
}
.swContainer .stopwatch {
  background: #fff;
  font-size: 2.6rem;
  font-weight: 700;
  margin: 20px;
  padding: 5px 0;
  text-align: center;
}
.swContainer .button-container {
  display: flex;
  justify-content: center;
}
.swContainer .button-container .button {
  font-size: 1.6rem;
  font-weight: 700;
  width: 100px;
  height: 30px;
  color: #fff;
  border-radius: 5px;
  border: none;
  margin: 0 10px;
}
.swContainer .button-container .toggle-button {
  background: #2a418a;
}
.swContainer .button-container .reset-button {
  background: #b53537;
}
.loginForm {
  margin: 50px 50px;
}
@media only screen and (max-width: 768px) {
  .loginForm {
    margin: 20px 10px;
  }
}
.loginForm .flexContainer {
  display: flex;
  justify-content: center;
  margin: 0 0 30px;
}
@media only screen and (max-width: 768px) {
  .loginForm .flexContainer {
    display: block;
  }
}
.loginForm .flexContainer label {
  font-size: 1.8rem;
  font-weight: bold;
  width: 6em;
}
.loginForm .flexContainer input {
  border-radius: 3px;
  width: 300px;
  font-size: 1.6rem;
  height: 2em;
  line-height: 2em;
  padding: 0 0.5em;
}
@media only screen and (max-width: 768px) {
  .loginForm .flexContainer label,
  .loginForm .flexContainer input {
    width: 300px;
    display: block;
    margin: 0 auto;
  }
}
@media only screen and (max-width: 430px) {
  .loginForm .flexContainer label {
    width: 100%;
  }
  .loginForm .flexContainer input {
    width: calc(100% - 20px);
  }
}
.loginForm .btn {
  text-align: center;
  margin: 50px 0;
}
.loginForm .btn input {
  background: #2a418a;
  border: none;
  border-radius: 5px;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 500;
  width: 200px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  margin: 0 20px;
  cursor: pointer;
}
.loginForm .btn input:hover {
  opacity: 0.7;
}

.progress-container {
  margin: 20px 0;
  text-align: center;
}

progress {
  width: 100%;
  height: 20px;
  appearance: none;
}

progress::-webkit-progress-bar {
  background-color: #f3f3f3;
  border-radius: 5px;
}

progress::-webkit-progress-value {
  background-color: #4caf50;
  border-radius: 5px;
}

/* 全体のレイアウト */
.container {
  max-width: 900px;
  margin: 20px auto;
  padding: 20px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* タイトル */
h1 {
  font-size: 2.4rem;
  color: #333;
  text-align: left; /* 左寄せ */
  margin-bottom: 20px;
}

/* カード表示 */
.card {
  padding: 20px;
  margin-bottom: 20px;
  background: #f9f9f9;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  font-size: 1.6rem;
  line-height: 1.8;
}

/* ボタンスタイル */
.start-button .button {
  display: inline-block;
  background: #4caf50;
  color: #fff;
  padding: 10px 20px;
  font-size: 1.8rem;
  font-weight: bold;
  text-decoration: none;
  border-radius: 5px;
  text-align: center;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  transition: background-color 0.3s ease;
}

.start-button .button:hover {
  background: #388e3c;
}

/* 管理者情報テーブル */
.admin-info {
  margin-top: 30px;
}

.admin-info h2 {
  font-size: 2rem;
  color: #2a418a;
  margin-bottom: 10px;
}

.admin-info table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.6rem;
}

.admin-info th,
.admin-info td {
  padding: 10px;
  text-align: left;
  border-bottom: 1px solid #ddd;
}

.admin-info th {
  background: #f3f3f3;
  font-weight: bold;
}

.admin-info td {
  background: #fff;
}
