@charset "UTF-8";
@media (min-width: 768px) {
  .is-hidden_pc {
    display: none;
  }
}
@media (max-width: 767px) {
  .is-hidden_sp {
    display: none;
  }
}
.u-txt_left {
  text-align: left !important;
}

.u-txt_center {
  text-align: center !important;
}

.u-txt_right {
  text-align: right !important;
}

.u-mb5 {
  margin-bottom: 5px !important;
}

.u-mb10 {
  margin-bottom: 10px !important;
}

.u-mb15 {
  margin-bottom: 15px !important;
}

.u-mb20 {
  margin-bottom: 20px !important;
}

.u-mb25 {
  margin-bottom: 25px !important;
}

.u-mb30 {
  margin-bottom: 30px !important;
}

.u-mb35 {
  margin-bottom: 35px !important;
}

.u-mb40 {
  margin-bottom: 40px !important;
}

.u-mb45 {
  margin-bottom: 45px !important;
}

.u-mb50 {
  margin-bottom: 50px !important;
}

.u-mb60 {
  margin-bottom: 60px !important;
}

.u-mb70 {
  margin-bottom: 70px !important;
}

.u-mb80 {
  margin-bottom: 80px !important;
}

.u-mt5 {
  margin-top: 5px !important;
}

.u-mt10 {
  margin-top: 10px !important;
}

.u-mt15 {
  margin-top: 15px !important;
}

.u-mt20 {
  margin-top: 20px !important;
}

.u-mt25 {
  margin-top: 25px !important;
}

.u-mt30 {
  margin-top: 30px !important;
}

.u-mt40 {
  margin-top: 40px !important;
}

.u-mt50 {
  margin-top: 50px !important;
}

.u-mr5 {
  margin-right: 5px !important;
}

.u-mr10 {
  margin-right: 10px !important;
}

.u-mr15 {
  margin-right: 15px !important;
}

.u-mr20 {
  margin-right: 20px !important;
}

.u-mr30 {
  margin-right: 30px !important;
}

.u-mr40 {
  margin-right: 40px !important;
}

.u-mr50 {
  margin-right: 50px !important;
}

.u-ml5 {
  margin-left: 5px !important;
}

.u-ml10 {
  margin-left: 10px !important;
}

.u-ml15 {
  margin-left: 15px !important;
}

.u-ml20 {
  margin-left: 20px !important;
}

.u-ml30 {
  margin-left: 30px !important;
}

.u-ml40 {
  margin-left: 40px !important;
}

.u-ml50 {
  margin-left: 50px !important;
}

.u-orange_circle {
  padding-left: 1em;
  text-indent: -1em;
}
.u-orange_circle::before {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 7px;
  vertical-align: middle;
  content: "";
  background: #f39801;
  border-radius: 50%;
}

.is-required::after {
  position: absolute;
  top: 15px;
  right: 15px;
  padding: 3px 5px;
  font-size: 1.2rem;
  font-weight: normal;
  line-height: 1;
  color: #c90000;
  content: "必須";
  border: solid 1px #c90000;
}
@media (max-width: 767px) {
  .is-required::after {
    top: 7px;
    right: 10px;
  }
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

table:not(.product_index--table, .cart_product--item--list, .cart_form_confirm) {
  width: 100%;
}
@media (max-width: 767px) {
  table:not(.product_index--table, .cart_product--item--list, .cart_form_confirm) {
    display: block;
  }
  table:not(.product_index--table, .cart_product--item--list, .cart_form_confirm) tbody,
  table:not(.product_index--table, .cart_product--item--list, .cart_form_confirm) tr,
  table:not(.product_index--table, .cart_product--item--list, .cart_form_confirm) th,
  table:not(.product_index--table, .cart_product--item--list, .cart_form_confirm) td {
    box-sizing: border-box;
    display: block;
    width: 100% !important;
  }
}

.bold {
  font-family: "Noto Sans JP", "Helvetica Neue", "Arial", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "YuGothic", "Yu Gothic", "Meiryo", sans-serif;
  font-weight: bold;
}

.eyecatch {
  display: flex;
  align-items: center;
  height: 200px;
  margin-bottom: 20px;
  background: url(../img/common/bg.png);
}
@media (max-width: 767px) {
  .eyecatch {
    height: 100px;
    margin-bottom: 50px;
    background-size: 300px;
  }
}
.eyecatch--txt {
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
}
.eyecatch--txt::after {
  display: block;
  width: 100px;
  height: 2px;
  margin: 10px auto 0;
  content: "";
  background: #1d1d1d;
}
@media (max-width: 767px) {
  .eyecatch--txt {
    font-size: 2rem;
  }
  .eyecatch--txt.-option {
    padding-top: 70px;
  }
}
.eyecatch--txt.-icon::before {
  display: inline-block;
  width: 50px;
  height: 50px;
  margin-right: 20px;
  vertical-align: middle;
  content: "";
  background: no-repeat center right/50px auto;
}
@media (max-width: 767px) {
  .eyecatch--txt.-icon::before {
    width: 30px;
    height: 30px;
    margin-right: 10px;
    background-size: 30px auto;
  }
}
.eyecatch--txt.-box::before {
  background-image: url(../img/common/icon_box.svg);
}
.eyecatch--txt.-cart::before {
  background-image: url(../img/common/icon_cart.svg);
}
.eyecatch--txt.-favorite::before {
  background-image: url(../img/common/icon_favorite.svg);
}

.product_item {
  display: flex;
  align-items: flex-start;
}
.product_item + .product_item {
  margin-top: 40px;
}
@media (max-width: 767px) {
  .product_item {
    flex-direction: column;
  }
}
.product_item--img {
  box-sizing: border-box;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 250px;
  height: 250px;
  padding: 20px 0;
  border: 1px solid #707070;
}
.product_item--img.-column {
  flex-direction: column;
  gap: 20px;
  height: auto;
  padding-left: 20px;
  padding-right: 20px;
}
.product_item--img img {
  max-height: 100%;
}
@media (min-width: 768px) {
  .product_item--img {
    margin-right: 40px;
  }
}
@media (max-width: 767px) {
  .product_item--img {
    padding: 20px 0;
    margin: 0 auto 10px;
  }
}
.product_item--txt {
  flex-grow: 1;
}
.product_item--txt--notes {
  font-size: 1.2rem;
  font-weight: 400;
}
@media (max-width: 767px) {
  .product_item--txt {
    width: 100%;
    padding-bottom: 15px;
    border-bottom: 2px solid #004182;
  }
}
.product_item--ttl {
  font-size: 2.4rem;
  letter-spacing: 0.1em;
}
@media (max-width: 767px) {
  .product_item--ttl {
    font-size: 1.8rem;
    text-align: center;
  }
}
.product_item--ttl--price {
  display: inline-block;
}
.product_item--ttl--price::before {
  display: inline-block;
  padding-right: 5px;
  margin-left: 5px;
  font-weight: bold;
  vertical-align: text-bottom;
  content: "/";
}
.product_item--ttl--tax {
  margin-left: 5px;
  font-size: 0.66em;
  letter-spacing: 0;
  vertical-align: middle;
}
.product_item--ttl--wrap {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding-bottom: 5px;
  margin-bottom: 20px;
}
@media (min-width: 768px) {
  .product_item--ttl--wrap {
    border-bottom: 2px solid #004182;
  }
}
@media (max-width: 767px) {
  .product_item--ttl--wrap {
    flex-direction: column;
    align-items: center;
    margin-bottom: 0;
  }
}
.product_item--ttl--wrap .btn {
  flex-shrink: 0;
}
@media (max-width: 767px) {
  .product_item--ttl--wrap .btn {
    margin: 10px;
  }
}

@media (max-width: 767px) {
  .cart_item--img {
    width: 104px;
    height: 120px;
    margin-left: 0;
    position: absolute;
    right: 10px;
  }
  .cart_item--txt {
    position: relative;
  }
  .cart_item--ttl {
    width: calc(100% - 110px);
    align-items: baseline;
    min-height: 130px;
  }
  .cart_item--btn {
    margin: auto;
  }
}
.pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  justify-content: center;
  margin-top: 50px;
}

.page-item {
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  background: #004182;
  border: solid 1px #004182;
}
.page-item.active {
  color: #1d1d1d;
  background: #fff;
}
.page-item:first-child {
  margin-right: 0;
}
.page-item:last-child {
  margin-left: 0;
}
.page-item a:hover {
  color: #004182;
  background: #fff;
}
@media (max-width: 767px) {
  .page-item {
    font-size: 1.4rem;
  }
}

.page-link {
  display: block;
  padding: 10px 15px;
}
@media (max-width: 767px) {
  .page-link {
    padding: 8px 10px;
  }
}

.ttl_icon {
  padding-left: 70px;
  margin-bottom: 25px;
  font-size: 3rem;
  font-weight: bold;
  color: #004182;
  background: no-repeat left;
}
@media (max-width: 767px) {
  .ttl_icon {
    padding-left: 50px;
    font-size: 2rem;
    background-size: auto 30px;
  }
}
.ttl_icon.-line {
  display: flex;
  align-items: center;
}
.ttl_icon.-line::after {
  display: block;
  flex-grow: 1;
  height: 1px;
  margin-left: 20px;
  content: "";
  background: #004182;
}
@media (max-width: 767px) {
  .ttl_icon.-line::after {
    margin-left: 10px;
  }
}
.ttl_icon.-favorite {
  width: 100% !important;
  padding-left: 35px;
  background-image: url(../img/common/icon_favorite.svg);
}
.ttl_icon.-box {
  background-image: url(../img/common/icon_box.svg);
}
.ttl_icon.-lang {
  background-image: url(../img/common/icon_lang_white.svg);
}
.ttl_icon.-book {
  background-image: url(../img/common/icon_book_white.svg);
}
.ttl_icon.-pack {
  background-image: url(../img/common/icon_pack.svg);
}
.ttl_icon.-megaphone {
  background-image: url(../img/common/icon_megaphone.svg);
}
.ttl_icon.-building {
  padding-block: 2px;
  background-image: url(../img/common/icon_building.svg);
}
.ttl_icon.-sidebar {
  padding: 5px 0 5px 55px;
  margin-bottom: 0;
  font-size: 1.6rem;
  color: #fff;
  background-color: #004182;
  background-position: center left 10px;
  background-size: 30px;
}

.ttl_simple {
  margin-bottom: 10px;
  font-size: 2.4rem;
  font-weight: bold;
}
@media (max-width: 767px) {
  .ttl_simple {
    font-size: 1.8rem;
  }
}
.ttl_simple.-line {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}
.ttl_simple.-line::after {
  display: block;
  flex-grow: 1;
  height: 1px;
  margin-left: 20px;
  content: "";
  background: #004182;
}
@media (max-width: 767px) {
  .ttl_simple.-line::after {
    margin-left: 10px;
  }
}
.ttl_simple.-underline {
  padding-bottom: 10px;
  margin-bottom: 20px;
  font-size: 3rem;
  border-bottom: 1px solid #1d1d1d;
}
@media (max-width: 767px) {
  .ttl_simple.-underline {
    font-size: 2rem;
  }
}

.ttl_band {
  padding: 0 10px;
  font-size: 2.4rem;
  font-weight: bold;
  color: #fff;
  background: #004182;
}
@media (max-width: 767px) {
  .ttl_band {
    font-size: 1.8rem;
  }
}

.link--small_txt {
  color: #004182;
  font-weight: 400;
  text-align: center;
  text-decoration-line: underline;
}
.link--small_txt:hover {
  color: #000;
}
.link--txt {
  color: #004182;
  font-weight: 400;
  text-align: center;
  text-decoration-line: underline;
  font-size: 2rem;
}
.link--txt:hover {
  color: #000;
}

.btn {
  box-sizing: border-box;
  display: inline-block;
  width: 180px;
  padding: 12px 20px;
  line-height: 1;
  color: #fff;
  text-align: left;
  cursor: pointer;
  background: #004182 url(../img/common/icon_arrow_white.svg) no-repeat center right 20px;
  border: 1px solid #004182;
  transition: 0.3s;
}
.btn.-buyonly {
  width: 220px;
  margin-left: 10px;
}
.btn.-buyonly.-buyonlyschool {
  margin-left: 0;
}
@media (max-width: 767px) {
  .btn.-buyonly {
    margin-left: 0;
  }
}
.btn:hover {
  color: #004182;
  background-color: #fff;
  background-image: url(../img/common/icon_arrow.svg);
}
.btn.-lg {
  width: 270px;
}
.btn.-black {
  background-color: #1d1d1d;
}
.btn.-reverse {
  color: #004182;
  background-color: #fff;
  background-image: url(../img/common/icon_arrow.svg);
}
.btn.-reverse:hover {
  color: #fff;
  background-color: #004182;
  background-image: url(../img/common/icon_arrow_white.svg);
}
.btn.-black {
  color: #fff;
  background-color: #1d1d1d;
  background-image: url(../img/common/icon_arrow_white.svg);
}
.btn.-black:hover {
  color: #1d1d1d;
  background-color: #fff;
  background-image: url(../img/common/icon_arrow_black.svg);
}
.btn.-login {
  width: 200px;
  padding-left: 50px;
  text-align: center;
  background-image: url(../img/common/icon_login_white.svg);
  background-position: center left 50px;
}
.btn.-login:hover {
  background-image: url(../img/common/icon_login.svg);
}

.check_item {
  display: inline-block;
  margin: 0 5px 5px 0;
  background: #e5ecf2;
}
@media (max-width: 767px) {
  .check_item {
    width: 100%;
  }
}
.check_item input[type=checkbox],
.check_item input[type=radio] {
  float: left;
  margin: 0.9em 20px 0;
  clear: left;
  cursor: pointer;
}
@media (max-width: 767px) {
  .check_item input[type=checkbox],
  .check_item input[type=radio] {
    margin-inline: 10px;
  }
}
.check_item label {
  box-sizing: border-box;
  display: block;
  width: 400px;
  max-width: 100%;
  padding: 6px 6px 6px 53px;
  font-size: 1.8rem;
  cursor: pointer;
}
@media (max-width: 767px) {
  .check_item label {
    padding-left: 30px;
    font-size: 1.6rem;
  }
}
.check_item.-sm {
  width: 210px;
}
.check_item.-gray {
  background: #d6d6d6;
}

.alert {
  --remodeling-block-main-color: #004182;
  --remodeling-block-sub-color: #e5ecf2;
}
.alert.-primary {
  --remodeling-block-main-color: #084298;
  --remodeling-block-sub-color: #cfe2ff;
}
.alert.-secondary {
  --remodeling-block-main-color: #41464b;
  --remodeling-block-sub-color: #e2e3e5;
}
.alert.-success {
  --remodeling-block-main-color: #0f5132;
  --remodeling-block-sub-color: #d1e7dd;
}
.alert.-danger {
  --remodeling-block-main-color: #842029;
  --remodeling-block-sub-color: #f8d7da;
}
.alert.-warning {
  --remodeling-block-main-color: #664d03;
  --remodeling-block-sub-color: #fff3cd;
}
.alert.-info {
  --remodeling-block-main-color: #055160;
  --remodeling-block-sub-color: #cff4fc;
}
.alert.-light {
  --remodeling-block-main-color: #636464;
  --remodeling-block-sub-color: #fefefe;
}
.alert.-dark {
  --remodeling-block-main-color: #141619;
  --remodeling-block-sub-color: #d3d3d4;
}
.alert.-school {
  top: 81px;
}
.alert {
  position: fixed;
  top: 120px;
  left: 0;
  z-index: 1000;
  box-sizing: border-box;
  width: 100%;
  padding: 20px;
  color: var(--remodeling-block-main-color);
  text-align: center;
  background: var(--remodeling-block-sub-color);
  border: solid 1px var(--remodeling-block-main-color);
}
.alert button {
  position: absolute;
  top: 50%;
  right: 20px;
  width: 30px;
  height: 30px;
  background: none;
  border: none;
  transform: translateY(-50%);
}
.alert button::before, .alert button::after {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 20px;
  height: 2px;
  content: "";
  background: var(--remodeling-block-main-color);
}
.alert button::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.alert button::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
@media (max-width: 767px) {
  .alert {
    top: 56px !important;
  }
}

html {
  font-size: 62.5%;
}

body {
  font-family: "Noto Sans JP", "Helvetica Neue", "Arial", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "YuGothic", "Yu Gothic Medium", "Meiryo", sans-serif;
  font-size: 1.5em;
  font-weight: 500;
  line-height: 1.6;
  color: #1d1d1d;
}
.wrap {
  min-width: 1285px;
  margin: auto;
}
@media (max-width: 767px) {
  .wrap {
    width: 100%;
    min-width: auto;
    min-width: initial;
  }
}

.container {
  width: 1000px;
  margin: auto;
}
.container.-sm {
  width: 980px;
}
.container.-lg {
  width: 1060px;
}
.container.-xl {
  width: 1200px;
}
@media (max-width: 767px) {
  .container {
    box-sizing: border-box;
    width: 100% !important;
    padding: 0 10px;
  }
}

.main {
  display: block;
  margin-top: 80px;
}
.main:where(.main.-teacher) {
  margin-top: 120px;
}
.main.-parent {
  margin-top: 120px;
}
.main.-pay {
  padding: 0 0 100px;
  margin: 0;
  border-top: solid 20px #004182;
  border-bottom: solid 20px #004182;
}
@media (max-width: 767px) {
  .main {
    margin-top: 62px;
  }
  .main.-pay {
    padding-bottom: 50px;
  }
}
@media (min-width: 768px) and (max-width: 769px) and (orientation: portrait) {
  .main {
    min-height: 95vh;
  }
}

.totop {
  position: fixed;
  right: 10px;
  bottom: 10px;
  display: none;
  cursor: pointer;
}
@media (max-width: 767px) {
  .totop {
    width: 44px;
    height: 44px;
  }
}

.header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  width: 100%;
  background: #fff;
  border-top: 5px solid #004182;
  border-bottom: 1px solid #d6d6d6;
}
.header .container.-xl {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 767px) {
  .header .container.-xl {
    display: block;
    padding: 0;
  }
}
.header .container.-xl.-login {
  justify-content: space-between;
}
@media (max-width: 767px) {
  .header .container.-xl.-login {
    display: flex;
  }
}
.header--logo {
  flex-shrink: 0;
}
.header--logo a {
  transition: opacity 0.2s;
}
.header--logo a:hover {
  opacity: 0.8;
}
@media (max-width: 767px) {
  .header--logo {
    width: 100px;
    padding: 10px;
  }
}

.header_btn {
  box-sizing: border-box;
  display: inline-block;
  width: 220px;
  min-height: 50px;
  padding: 12px 8px 12px 40px;
  font-weight: bold;
  color: #fff;
  text-align: center;
  background: #004182 no-repeat;
  border: 1px solid #004182;
  transition: 0.3s;
}
.header_btn:hover {
  color: #004182;
  background-color: #fff;
}
.header_btn.-reverse {
  color: #004182;
  background: #fff no-repeat;
}
.header_btn.-reverse:hover {
  color: #fff;
  background-color: #004182;
}
.header_btn.-sm {
  width: 150px;
}
.header_btn.-md {
  width: 180px;
}
.header_btn.-back {
  padding-left: 75px;
  color: #1d1d1d;
  text-align: left;
  background: url(../img/common/icon_login_back.svg) no-repeat center left 20px, #e5ecf2;
  border-color: #e5ecf2;
}
.header_btn.-back:hover {
  color: #fff;
  background: url(../img/common/icon_login_back_white.svg) no-repeat center left 20px, #004182;
  border-color: #004182;
}
@media (max-width: 767px) {
  .header_btn.-back {
    padding: 17px 10px 17px 30px;
    font-size: 1.2rem;
    background-position: center left 6px;
    background-size: 16px;
  }
  .header_btn.-back:hover {
    background-position: center left 6px;
    background-size: 16px;
  }
}
.header_btn.-user {
  padding-left: 30px;
  color: #004182;
  background: #fff url(../img/common/icon_user.svg) no-repeat center left 20px;
}
.header_btn.-user:hover {
  color: #fff;
  background-color: #004182;
  background-image: url(../img/common/icon_user_white.svg);
}
.header_btn.-cart {
  position: relative;
  background-image: url(../img/common/icon_cart_white.svg);
  background-position: center left 30px;
}
.header_btn.-cart:hover {
  background-image: url(../img/common/icon_cart.svg);
}
.header_btn.-cart span {
  position: absolute;
  top: 10px;
  right: 10px;
  box-sizing: border-box;
  width: 21px;
  height: 21px;
  padding: 4px 0;
  font-size: 1.2rem;
  line-height: 1;
  color: #004182;
  background-color: red;
  color: #fff;
  border-radius: 25px;
}
.header_btn.-favorite {
  position: relative;
  background-image: url(../img/common/icon_favorite.svg);
  background-position: center left 20px;
}
.header_btn.-favorite:hover {
  background-image: url(../img/common/icon_favorite_white.svg);
}
.header_btn.-logout {
  color: #fff;
  background: #1d1d1d url(../img/common/icon_logout_white.svg) no-repeat center left 15px;
}
.header_btn.-logout:hover {
  color: #1d1d1d;
  background-color: #fff;
  background-image: url(../img/common/icon_logout.svg);
  border-color: #1d1d1d;
}
.header_btn--wrap.-hidden {
  opacity: 0;
}
@media (max-width: 767px) {
  .header_btn--wrap.-hidden {
    display: none;
  }
}
.header_btn--wrap .header_btn.-cart span {
  right: 50px;
}
@media (min-width: 768px) {
  .header_btn--wrap .header_btn {
    height: 75px;
  }
}
@media (max-width: 767px) {
  .header_btn--wrap .header_btn {
    width: 100%;
  }
}
.header_btn--wrap .header_btn.-login {
  padding: 15px 0 15px 70px;
  line-height: 1.4;
  text-align: left;
  background: #004182 url(../img/common/icon_login_white.svg) no-repeat center left 25px;
  display: flex;
  align-items: center;
}
.header_btn--wrap .header_btn.-login:hover {
  background-color: #fff;
  background-image: url(../img/common/icon_login.svg);
}
@media (max-width: 767px) {
  .header_btn--wrap .header_btn.-login {
    padding-left: 30vw;
    background-position: center left 20vw;
  }
}
@media (min-width: 768px) {
  .header_btn--wrap .header_btn.-cart {
    padding: 22px 0 22px 35px;
    background-position: center left 60px;
  }
}
@media (max-width: 767px) {
  .header_btn--wrap .header_btn.-cart {
    background-position: center left 35vw;
  }
}

.gnav_btn {
  position: fixed;
  top: 10px;
  right: 10px;
  z-index: 100;
  display: block;
  width: 44px;
  height: 44px;
  cursor: pointer;
  background: #004182;
  border: solid 2px #fff;
}
@media (min-width: 768px) {
  .gnav_btn {
    display: none;
  }
}

.gnav_btn--line {
  position: absolute;
  left: 15%;
  display: block;
  width: 70%;
  height: 3px;
  background: #fff;
  transition: 0.3s;
}
.gnav_btn--line:first-child {
  top: 23%;
}
.gnav_btn--line:nth-child(2) {
  top: 48%;
  opacity: 1;
}
.gnav_btn--line:last-child {
  top: 72%;
}

.gnav_btn.is-open .gnav_btn--line {
  transition: 0.2s;
}
.gnav_btn.is-open .gnav_btn--line:first-child {
  top: 48%;
  transform: rotate(45deg);
}
.gnav_btn.is-open .gnav_btn--line:nth-child(2) {
  display: none;
  opacity: 0;
}
.gnav_btn.is-open .gnav_btn--line:last-child {
  top: 48%;
  transform: rotate(-45deg);
}

.gnav {
  display: flex;
  flex-grow: 1;
  justify-content: flex-end;
}
.gnav.-teacher {
  flex-direction: column-reverse;
}
@media (max-width: 767px) {
  .gnav {
    display: none;
    overflow-y: scroll;
  }
  .gnav.-parent {
    display: block;
  }
}

.gnav--list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}
@media (max-width: 767px) {
  .gnav--list {
    display: block;
  }
}
.gnav--list li a {
  display: block;
  padding: 15px 0;
  transition: opacity 0.2s;
}
.gnav--list li a:hover {
  opacity: 0.8;
}
@media (min-width: 768px) {
  .gnav--list li {
    margin: 0 25px;
  }
}
@media (max-width: 767px) {
  .gnav--list li {
    text-align: center;
  }
}

.gnav.-teacher .nav_teacher {
  padding-top: 10px;
}
@media (max-width: 767px) {
  .gnav.-teacher .nav_teacher {
    border-top: 1px solid #d6d6d6;
  }
}
.nav_teacher--list {
  display: flex;
  justify-content: flex-end;
  color: #004182;
}
@media (max-width: 767px) {
  .nav_teacher--list {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .nav_teacher--list li {
    margin-bottom: 20px;
  }
}
.nav_teacher--name {
  font-weight: 400;
}
@media (min-width: 768px) {
  .nav_teacher .header_btn {
    margin-left: 10px;
  }
}
@media (max-width: 767px) {
  .gnav.-teacher .nav_teacher .header_btn {
    display: block;
  }
}

.footer {
  margin-top: 100px;
}
@media (max-width: 767px) {
  .footer {
    margin-top: 50px;
  }
}

.footer_top {
  padding: 35px 0;
  font-weight: bold;
  color: #fff;
  background: #004182;
}
@media (min-width: 768px) {
  .footer_top .container {
    display: flex;
    justify-content: center;
  }
}
.footer_top--ttl {
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 10px;
  font-size: 2.4rem;
  background: no-repeat center left;
}
@media (max-width: 767px) {
  .footer_top--ttl {
    font-size: 1.8rem;
    background-size: auto 25px;
  }
}
.footer_top--txt {
  margin-bottom: 20px;
  font-weight: 400;
  text-align: center;
  text-decoration-line: underline;
}
.footer_top--large_txt {
  margin-bottom: 20px;
  font-weight: 400;
  text-align: center;
  text-decoration-line: underline;
  font-size: 2rem;
}
.footer_top--link {
  box-sizing: border-box;
  display: block;
  width: 280px;
  height: 40px;
  margin: auto;
  color: #004182;
  background: #fff;
  border: 1px solid #fff;
  transition: 0.3s;
}
.footer_top--link:hover {
  color: #fff;
  background: #004182;
}
.footer_top--inner.-form .footer_top--ttl {
  padding-left: 70px;
  background-image: url(../img/common/icon_mail_white.svg);
}
.footer_top--inner.-form .footer_top--link {
  padding: 7px 20px;
  background: #fff url(../img/common/icon_arrow.svg) no-repeat center right 20px;
}
.footer_top--inner.-form .footer_top--link:hover {
  background-color: #004182;
  background-image: url(../img/common/icon_arrow_white.svg);
}
@media (max-width: 767px) {
  .footer_top--inner.-form .footer_top--ttl {
    padding-left: 40px;
  }
}
.footer_top--inner.-tel .footer_top--ttl {
  padding-left: 50px;
  background-image: url(../img/common/icon_phone_white.svg);
}
.footer_top--inner.-tel .footer_top--link {
  display: flex;
  align-items: center;
  justify-content: center;
}
.footer_top--inner.-tel .footer_top--link address {
  margin-right: 10px;
  font-size: 1.8rem;
}
.footer_top--inner.-tel .footer_top--link p {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .footer_top--inner.-tel .footer_top--ttl {
    padding-left: 22px;
  }
}

.footer_bottom {
  line-height: 1;
  color: #fff;
  background: #1d1d1d;
}
.footer_bottom a {
  transition: opacity 0.2s;
}
.footer_bottom a:hover {
  opacity: 0.8;
}

.footer_nav {
  padding: 40px 0;
  border-bottom: 1px solid #d6d6d6;
}
.footer_nav ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.footer_nav li {
  margin: 0 25px;
}
@media (max-width: 767px) {
  .footer_nav {
    padding: 10px 0;
  }
  .footer_nav li {
    margin: 15px 20px;
  }
}

.footer_copy {
  padding: 20px 0;
}
.footer_copy--logo {
  display: inline-block;
  padding: 6px 25px;
  background: #fff;
}
.footer_copy--txt {
  padding: 10px 0;
  font-size: 1.2rem;
}
@media (min-width: 768px) {
  .footer_copy {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
  }
}
@media (max-width: 767px) {
  .footer_copy {
    text-align: center;
  }
  .footer_copy--logo {
    margin-bottom: 20px;
  }
}

.cookie-consent {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(51, 51, 51, 0.8);
  /* 透明度を0.8に設定 */
  color: white;
  padding: 1em;
  text-align: center;
  z-index: 1000;
}

.cookie-text {
  margin-bottom: 10px;
}

.cookie-agree,
.cookie-disagree {
  padding: 10px 20px;
  margin: 5px;
  border: none;
  cursor: pointer;
  display: inline-block;
}

.cookie-agree {
  background-color: #4CAF50;
  border-radius: 2px;
  /* 角を丸くする */
}

/* 背景色が赤の「同意しない」ボタン */
.cookie-disagree {
  background-color: #f44336;
  border-radius: 2px;
  /* 角を丸くする */
}

/* パッと消える */
.cc-hide1 {
  display: none;
}

.mv {
  margin-bottom: 30px;
  text-align: center;
}

.top_about {
  box-sizing: border-box;
  max-width: 800px;
  padding: 20px;
  margin: 0 auto 50px;
  text-align: center;
  border: 1px solid #004182;
}
.top_about.-package {
  margin-top: 110px;
}
@media (max-width: 767px) {
  .top_about.-package {
    margin-top: 80px;
  }
}
.top_about--ttl {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  font-size: 2rem;
}
.top_about--ttl::before, .top_about--ttl::after {
  display: inline-block;
  width: 1.25em;
  height: 2px;
  content: "";
  background: #1d1d1d;
}
.top_about--ttl::before {
  margin-right: 1em;
}
.top_about--ttl::after {
  margin-left: 1em;
}
@media (max-width: 767px) {
  .top_about--ttl {
    font-size: 1.6rem;
  }
}
.top_about--paragraph {
  font-weight: 400;
  text-align: left;
}

@media (min-width: 768px) {
  .top_news {
    display: flex;
    align-items: center;
    margin: 80px 0;
  }
}
@media (max-width: 767px) {
  .top_news {
    margin: 40px 0;
  }
}
.top_news--head {
  flex-shrink: 0;
  margin-right: 50px;
}
@media (max-width: 767px) {
  .top_news--head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin: 0;
  }
  .top_news--head .btn {
    width: auto;
    padding-right: 50px;
  }
}
.top_news .news_archive {
  flex-grow: 1;
}

.top_esapo {
  display: flex;
  color: #fff;
  gap: 60px;
  align-items: center;
  font-weight: 700;
}
@media (max-width: 767px) {
  .top_esapo {
    flex-direction: column;
    gap: 30px;
  }
}
.top_esapo--lead {
  padding-right: 60px;
  color: #fff;
  border-right: solid 1px #fff;
}
.top_esapo--lead img {
  vertical-align: middle;
  margin-right: 10px;
}
@media (max-width: 767px) {
  .top_esapo--lead {
    padding: 0px 0 20px;
    margin-bottom: 0px;
    border: none;
    border-bottom: solid 1px #fff;
  }
}
.top_esapo--txt p {
  font-size: 2rem;
  margin-bottom: 10px;
}
.top_esapo--txt em {
  font-size: 4.2rem;
  position: relative;
}
.top_esapo--txt em::before {
  position: absolute;
  top: -48px;
  left: 18px;
  content: url(../img/top/dots.png);
}
@media (max-width: 767px) {
  .top_esapo--txt {
    text-align: center;
  }
  .top_esapo--txt p {
    font-size: 1.6rem;
    margin-bottom: 20px;
  }
  .top_esapo--txt em {
    font-size: 3rem;
  }
  .top_esapo--txt em::before {
    top: -37px;
    left: -2px;
    transform: scale(0.8);
  }
}
.top_esapo--section {
  padding: 80px 0;
  background: url(../img/common/bg_02.png);
}

.top_esapo_points h2 {
  text-align: center;
}
.top_esapo_points h2 img {
  vertical-align: baseline;
}
.top_esapo_points img {
  vertical-align: middle;
  margin-right: 10px;
}
.top_esapo_points ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px 12px;
}
.top_esapo_points ul li {
  font-size: min(2rem, 4.2vw);
  font-weight: 700;
  width: min(437px, 100%);
  background-color: #044182;
  color: #fff;
  text-align: center;
  box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.16);
  padding: 34px 0;
}
@media (max-width: 767px) {
  .top_esapo_points h2 {
    padding-left: 0;
  }
}
.top_esapo_points--section {
  background-color: #E5ECF2;
  padding: 50px 0 80px;
}

.top_esapo_use li {
  width: 283px;
}
.top_esapo_use li span {
  font-weight: 700;
  display: block;
  width: 185px;
  text-align: center;
  background: #E5ECF2;
  font-size: 2rem;
  margin: 0 auto 20px;
  line-height: 1.2;
  padding: 11px 0;
}
.top_esapo_use li b {
  display: block;
  font-size: 1.8rem;
  color: #044182;
}
.top_esapo_use li div {
  border: solid 2px #044182;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  height: 240px;
  padding: 20px;
  background-color: #fff;
}
.top_esapo_use--step {
  position: relative;
  display: flex;
  gap: 25px;
}
.top_esapo_use--step::before, .top_esapo_use--step::after {
  position: absolute;
  content: "";
  z-index: -1;
}
.top_esapo_use--step::before {
  width: 100%;
  height: 13px;
  background-color: #044182;
  top: 30px;
  left: 0;
}
.top_esapo_use--step:after {
  right: -35px;
  top: 5px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 30px 0 30px 40px;
  border-color: transparent transparent transparent #044182;
}
@media (max-width: 767px) {
  .top_esapo_use--step {
    flex-direction: column;
    align-items: center;
    padding-bottom: 40px;
  }
  .top_esapo_use--step::before, .top_esapo_use--step::after {
    left: 50%;
    transform: translate(-50%);
  }
  .top_esapo_use--step::before {
    width: 13px;
    height: 100%;
    background-color: #044182;
    top: 0;
  }
  .top_esapo_use--step:after {
    right: auto;
    top: auto;
    bottom: -35px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 40px 30px 0 30px;
    border-color: #044182 transparent transparent transparent;
  }
}
.top_esapo_use--section {
  text-align: center;
  padding: 50px 0;
}
.top_esapo_use--section h2 {
  text-align: center;
  margin-bottom: 60px;
}
@media (max-width: 767px) {
  .top_esapo_use--section h2 {
    padding-left: 0;
  }
}

.top_product {
  padding: 50px 0;
  background: url(../img/common/bg.png);
  border: solid #004182;
  border-width: 1px 0;
}
@media (max-width: 767px) {
  .top_product {
    background-size: 300px;
  }
}
.top_product--inner {
  padding: 20px;
  margin-bottom: 50px;
  background: #fff;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15);
}
@media (min-width: 768px) {
  .top_product--inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
}
.top_product--txt {
  max-width: 540px;
}
@media (min-width: 768px) {
  .top_product--txt {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
}
.top_product--txt > div {
  border-bottom: 1px solid #004182;
}
@media (min-width: 768px) {
  .top_product--txt > div {
    width: 260px;
    min-height: 180px;
  }
  .top_product--txt > div:nth-child(-n+2) {
    margin-bottom: 30px;
  }
}
@media (max-width: 767px) {
  .top_product--txt > div {
    padding-bottom: 10px;
    margin-top: 20px;
  }
}
.top_product--txt .ttl_band {
  margin-bottom: 10px;
}
@media (min-width: 768px) {
  .top_product--txt li {
    font-size: 1.8rem;
  }
}
.top_product--txt li::before {
  content: "・";
}
.top_product--btn {
  text-align: center;
}
.top_product--btn span {
  font-size: 1.4em;
}
@media (min-width: 768px) {
  .top_product--btn {
    width: 450px;
    padding: 30px 80px 30px 30px;
    font-size: 1.8rem;
    background-position: center right 15%;
    background-size: 30px;
  }
}
@media (max-width: 767px) {
  .top_product--btn {
    width: auto;
    padding: 20px 50px 20px 20px;
  }
}

.top_publisher {
  padding-top: 50px;
}
.top_publisher--inner {
  display: flex;
  flex-wrap: wrap;
}
.top_publisher--inner > div {
  width: 510px;
  margin: 20px;
}
@media (max-width: 767px) {
  .top_publisher--inner > div {
    width: 100%;
    margin: 0 0 20px;
  }
}
.top_publisher--ttl {
  margin-bottom: 20px;
  font-size: 1.8rem;
  color: #004182;
  border-bottom: 1px solid #004182;
}
.top_publisher--list {
  width: calc(100% + 5px);
}
.top_publisher--list li {
  display: inline-block;
  padding: 2px 15px;
  margin: 0 5px 10px 0;
  border: 1px solid #1d1d1d;
}

.about_introduction {
  padding-bottom: 110px;
}
.about_introduction img {
  margin-bottom: 25px;
}
.about_introduction--paragraph {
  font-weight: 400;
}
.about_introduction--purchase {
  margin-top: 60px;
  text-align: center;
}
.about_introduction--purchase p {
  margin-bottom: 15px;
}
@media (max-width: 767px) {
  .about_introduction--purchase {
    margin-top: 30px;
  }
}
@media (max-width: 767px) {
  .about_introduction {
    padding-bottom: 60px;
  }
}

.about_merit {
  padding-bottom: 105px;
}
.about_merit li {
  margin-bottom: 10px;
  font-size: 2.4rem;
  font-weight: 500;
}
@media (max-width: 767px) {
  .about_merit {
    padding-bottom: 60px;
  }
  .about_merit li {
    margin-bottom: 5px;
    font-size: 1.8rem;
  }
}

.terms_flow--ttl {
  position: relative;
  padding: 6px 53px 6px 10px;
  margin-bottom: 10px;
  cursor: pointer;
  background: url(../img/term/circle_white.svg) no-repeat top 11px right 19px, #004182;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.terms_flow--ttl .small {
  font-size: 1.5rem;
  font-weight: normal;
  line-height: 1;
}
.terms_flow--ttl--toggle.is-open::before {
  transform: rotate(90deg);
}
.terms_flow--ttl--toggle::before, .terms_flow--ttl--toggle::after {
  position: absolute;
  display: block;
  content: "";
  background: #004182;
  transition: 0.2s;
}
.terms_flow--ttl--toggle::before {
  top: 19px;
  right: 33px;
  width: 2px;
  height: 15px;
}
.terms_flow--ttl--toggle::after {
  top: 25px;
  right: 27px;
  width: 15px;
  height: 2px;
}
.terms_flow--ttl--toggle span {
  margin-left: 10px;
  font-size: 2rem;
  font-weight: 400;
}
.terms_flow--ttl--newtab::after {
  position: absolute;
  display: block;
  content: "";
  background: url("../img/term/icon_new_tab.svg") no-repeat center center/cover;
  top: 50%;
  right: 4px;
  width: 30px;
  height: 30px;
  transform: translate(-50%, -50%);
}
@media (max-width: 767px) {
  .terms_flow--ttl {
    background-position: top 8px right 10px;
    background-size: 25px;
    padding: 6px 40px 6px 10px;
  }
  .terms_flow--ttl--toggle::before {
    top: 15px;
    right: 21px;
    width: 2px;
    height: 13px;
  }
  .terms_flow--ttl--toggle::after {
    top: 20px;
    right: 15px;
    width: 14px;
    height: 2px;
  }
  .terms_flow--ttl--newtab::after {
    right: -6px;
  }
  .terms_flow--ttl span {
    font-size: 1.2rem;
  }
}
.terms_flow--detail {
  margin-bottom: 80px;
}
@media (max-width: 767px) {
  .terms_flow--detail {
    margin-bottom: 40px;
  }
}
.terms_flow--list {
  display: none;
  padding: 0 20px;
  counter-reset: number 0;
}
@media (max-width: 767px) {
  .terms_flow--list {
    padding: 0;
  }
}
.terms_flow--item {
  display: flex;
  justify-content: space-between;
  padding-top: 10px;
}
.terms_flow--item:last-child p {
  border-bottom: none;
}
.terms_flow--num {
  position: relative;
  box-sizing: border-box;
  width: 50px;
  height: 50px;
  padding: 10px 0;
  font-family: "Nunito", sans-serif;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  text-align: center;
  background-color: #004182;
  border-radius: 50%;
}
.terms_flow--num::after {
  display: block;
  font-size: 1.5rem;
  content: counter(number, decimal-leading-zero) " ";
  counter-increment: number 1;
}
.terms_flow--txt {
  width: calc(100% - 60px);
  padding: 12px 0 25px;
  border-bottom: solid 1px #1d1d1d;
}
.terms_flow--txt a {
  color: #004182;
  text-decoration: underline;
}
@media (max-width: 767px) {
  .terms_flow--txt {
    padding: 0 0 15px;
  }
}
.terms_flow--caption {
  display: block;
  padding: 15px 10px;
  margin-top: 20px;
  background-color: #e5ecf2;
}

.terms_payment {
  margin-bottom: 60px;
}

.rules_list p {
  margin-bottom: 20px;
}
.rules_list ul {
  margin-bottom: 20px;
  margin-left: 20px;
}
.rules_list li {
  position: relative;
  padding-left: 1em;
  text-indent: -1em;
}
.rules_list--circle li::before {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 7px;
  vertical-align: middle;
  content: "";
  background: #1d1d1d;
  border-radius: 50%;
}
@media (max-width: 767px) {
  .rules_list ul {
    margin-left: 5px;
  }
}

.trading_table th,
.trading_table td {
  padding: 10px;
  line-height: 2;
  border: solid 1px #d6d6d6;
}
.trading_table th {
  width: 210px;
  color: #fff;
  text-align: left;
  background-color: #004182;
}
.trading_table span {
  display: block;
  font-weight: bold;
}
.trading_table li {
  padding-left: 1em;
}
.trading_table--highlight {
  display: inline;
  background: linear-gradient(0deg, #ffd52c 10px, transparent 11px);
}
@media (max-width: 767px) {
  .trading_table th,
  .trading_table td {
    border: none;
  }
  .trading_table td {
    border-right: solid 1px #d6d6d6;
    border-left: solid 1px #d6d6d6;
  }
}

.news_archive dl a {
  display: block;
  padding: 20px 40px 20px 0;
}
.news_archive dt {
  float: left;
  padding: 20px 0;
  pointer-events: none;
}
.news_archive dd {
  padding-left: 150px;
  background: url("../img/common/icon_arrow_lg.svg") no-repeat center right;
  border-bottom: 1px solid #d6d6d6;
}
.news_archive dd:first-of-type {
  border-top: 1px solid #d6d6d6;
}
@media (min-width: 768px) {
  .news_archive dt {
    width: 150px;
    text-align: center;
  }
}
@media (max-width: 767px) {
  .news_archive dd {
    padding-left: 90px;
    background-size: 20px 20px;
  }
  .news_archive a {
    padding-right: 30px;
  }
}

.news_detail--ttl {
  padding-bottom: 8px;
  margin-bottom: 30px;
  border-bottom: solid 2px #004182;
}
.news_detail--ttl p {
  font-size: 1.8rem;
  color: #004182;
}
.news_detail--ttl h2 {
  font-size: 3rem;
  font-weight: bold;
}
@media (min-width: 768px) {
  .news_detail--ttl {
    display: flex;
    align-items: flex-end;
  }
  .news_detail--ttl h2 {
    padding-left: 30px;
  }
}
@media (max-width: 767px) {
  .news_detail--ttl {
    margin-bottom: 20px;
  }
  .news_detail--ttl p {
    margin-bottom: 5px;
    font-size: 1.5rem;
  }
  .news_detail--ttl h2 {
    font-size: 2.2rem;
  }
}
.news_detail--content {
  margin-bottom: 80px;
}

.faq_list dt {
  padding-left: 1em;
  margin-bottom: 10px;
  font-size: 2rem;
  text-indent: -1em;
}
.faq_list dt::before {
  padding-right: 3px;
  color: #f39801;
  content: "Q.";
}
.faq_list dd {
  padding-bottom: 20px;
  padding-left: 24px;
  margin-bottom: 20px;
  color: #004182;
  text-indent: -24px;
  border-bottom: solid 1px #1d1d1d;
}
.faq_list dd::before {
  padding-right: 10px;
  content: "A.";
}
@media (max-width: 767px) {
  .faq_list dt {
    font-size: 1.6rem;
  }
  .faq_list dd {
    padding-left: 1.5em;
    text-indent: -1.5em;
  }
}

.faq_txt--confirm {
  margin-bottom: 30px;
  font-size: 2rem;
}
@media (max-width: 767px) {
  .faq_txt--confirm {
    font-size: 1.6rem;
  }
}

.login--wrapper {
  width: 500px;
  padding-top: 100px;
  margin: auto;
}
@media (max-width: 767px) {
  .login--wrapper {
    width: auto;
  }
}
.login--ttl {
  margin-bottom: 50px;
  font-size: 3rem;
  font-weight: 700;
  text-align: center;
}
@media (max-width: 767px) {
  .login--ttl {
    margin-bottom: 25px;
    font-size: 2rem;
  }
}

.login_input--block {
  margin-bottom: 25px;
}
.login_input--form {
  box-sizing: border-box;
  width: 100%;
  height: 50px;
  padding: 5px;
  border: solid 1px #004182;
}

.password_reset {
  display: inline-block;
  margin-bottom: 50px;
  line-height: 1;
  color: #004182;
  text-align: center;
  border-bottom: solid 1px;
}

.product_col {
  display: flex;
  justify-content: space-between;
}
@media (max-width: 767px) {
  .product_col {
    display: block;
  }
}

.product_search {
  width: 210px;
}
.product_search label,
.product_search input,
.product_search select {
  cursor: pointer;
}
@media (max-width: 767px) {
  .product_search {
    width: auto;
    padding-bottom: 50px;
  }
}
.product_search--btn input {
  width: 100%;
}

.product_name {
  margin-bottom: 10px;
  background-color: #f7f7f7;
}
.product_name select {
  width: 190px;
  height: 40px;
  margin: 10px;
}
.product_name--ttl {
  padding: 5px 10px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #004182;
  background-color: #e5ecf2;
}
@media (max-width: 767px) {
  .product_name--year {
    margin-bottom: 20px;
  }
}
.product_name--word input[type=text] {
  box-sizing: border-box;
  width: 190px;
  height: 40px;
  margin: 10px;
  cursor: text;
}
@media (max-width: 767px) {
  .product_name--word {
    margin-bottom: 20px;
  }
}

.product_cat {
  padding-bottom: 10px;
  background: #f7f7f7;
}
@media (max-width: 767px) {
  .product_cat {
    width: 100%;
  }
}
.product_cat .ttl_band {
  padding: 5px 10px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #004182;
  background: url(../img/common/icon_arrow_close.svg) no-repeat center right 10px, #e5ecf2;
}
.product_cat .ttl_band.is-open {
  background: url(../img/common/icon_arrow_open.svg) no-repeat center right 10px, #e5ecf2;
}
.product_cat--content {
  display: none;
}
.product_cat--inner {
  padding: 10px;
}
.product_cat--wrap {
  margin-bottom: 10px;
}
.product_cat--ttl {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
}
.product_cat--ttl span {
  color: #004182;
}
.product_cat--ttl::after {
  display: block;
  flex-grow: 1;
  height: 1px;
  margin-left: 10px;
  content: "";
  background: #004182;
}
.product_cat label {
  display: inline-block;
  padding-left: 1em;
  margin-right: 8px;
  text-indent: -1.5em;
}
.product_cat input[type=checkbox] {
  margin-right: 5px;
}

.product_index {
  width: 978px;
  overflow: hidden;
}
@media (max-width: 767px) {
  .product_index {
    width: auto;
  }
}
.product_index .ttl_icon {
  width: -moz-fit-content;
  width: fit-content;
  margin: auto;
}
.product_index--result {
  margin: 20px 0;
  font-size: 2rem;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.1em;
}
.product_index--result em {
  font-size: 2.4rem;
  font-weight: 700;
  color: #004182;
}
.product_index--result span {
  font-size: 1.2rem;
}
@media (max-width: 767px) {
  .product_index--result {
    font-size: 1.6rem;
  }
  .product_index--result em {
    font-size: 1.8rem;
  }
  .product_index--result span {
    font-size: 1rem;
  }
}
.product_index--result--wrap ul {
  margin-top: 0;
}
.product_index--nav {
  padding: 8px;
  margin-top: 50px;
  background-color: #e5ecf2;
}
.product_index--item {
  display: flex;
  align-items: center;
  justify-content: end;
}
.product_index--item li {
  margin-right: 20px;
}
.product_index--item li:last-child {
  margin-right: 0;
}
.product_index--item a {
  display: inline-block;
  transition: 0.2s;
}
.product_index--item a:hover {
  opacity: 0.8;
}
.product_index--item img {
  width: 80%;
}
.product_index--inner {
  padding: 50px 0;
}
@media (max-width: 767px) {
  .product_index--inner {
    padding-bottom: 0;
  }
  .product_index--inner.-school {
    padding-top: 0;
  }
}
.product_index--table {
  width: calc(100% + 12px);
  margin-right: -6px;
  margin-bottom: 10px;
  margin-left: -6px;
  border-spacing: 4px;
  border-collapse: separate;
}
.product_index--table th,
.product_index--table td {
  padding: 6px;
  text-align: center;
  vertical-align: top;
  border: 1px solid;
}
.product_index--table th {
  background: #e5ecf2;
  border-color: #e5ecf2;
}
.product_index--table td {
  border-color: #d6d6d6;
}
@media (min-width: 768px) {
  .product_index--table tbody {
    display: flex;
  }
  .product_index--table th,
  .product_index--table td {
    display: block;
    margin: 4px 2px;
  }
  .product_index--table tr {
    flex-grow: 1;
  }
}
@media (max-width: 767px) {
  .product_index--table {
    font-size: 1.2rem;
  }
  .product_index--table th {
    width: 90px;
  }
  .product_index--table th,
  .product_index--table td {
    padding: 3px;
  }
}
.product_index--feature {
  font-weight: 500;
}

.product_school_flow {
  margin-bottom: 100px;
}
@media (max-width: 767px) {
  .product_school_flow {
    margin-bottom: 50px;
  }
}
.product_school_flow .terms_flow--detail {
  margin-bottom: 50px;
}
@media (max-width: 767px) {
  .product_school_flow .terms_flow--detail {
    margin-bottom: 20px;
  }
}
@media (min-width: 768px) {
  .product_school_flow .top_product--btn {
    padding-right: 30px;
  }
}

.package_school--ttl {
  display: flex;
  justify-content: space-between;
}
@media (max-width: 767px) {
  .package_school--ttl {
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
  }
}
.package_school .product_show_detail {
  margin-top: 0;
}

.favorite_btn {
  text-align: left;
}
.favorite_btn .btn {
  margin: 10px 0;
}
@media (max-width: 767px) {
  .favorite_btn a {
    margin-top: 10px;
  }
  .favorite_btn .btn {
    width: 215px;
    font-size: 1.3rem;
  }
}

.school_gakunen_filter {
  margin-bottom: 20px;
}
.school_gakunen_filter select {
  width: 250px;
  padding: 8px 15px;
}
.school_gakunen_filter .btn {
  width: 120px;
}
@media (max-width: 767px) {
  .school_gakunen_filter select {
    width: 180px;
    margin-bottom: 5px;
  }
}

.product_thumbnail button::before {
  font-size: 2.5rem !important;
}
.product_thumbnail--wrap {
  position: relative;
  display: flex;
  width: 430px;
}
@media (max-width: 767px) {
  .product_thumbnail--wrap {
    display: block;
    width: 100%;
    max-width: 320px;
    height: auto;
    margin: 0 auto 50px;
  }
}

.thumbnail_single {
  width: 320px;
  margin-right: 20px;
  border: solid 1px #1d1d1d;
}
.thumbnail_single img {
  margin: auto;
}
.thumbnail_single > .thumbnail_single--item:not(:first-child) {
  display: none;
}
.thumbnail_single--img {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 320px;
}
@media (max-width: 767px) {
  .thumbnail_single {
    width: 100%;
    max-width: 320px;
    margin: 0 auto 20px;
  }
  .thumbnail_single img {
    max-height: 250px;
  }
}

.thumbnail_list--item {
  position: relative;
  box-sizing: border-box;
  width: 100px !important;
  height: 100px !important;
  padding-top: 90px;
  margin: 4px 0;
  border: solid 1px #1d1d1d !important;
}
@media screen and (max-width: 320px) {
  .thumbnail_list--item {
    margin: 0 20px !important;
  }
}
@media (max-width: 767px) {
  .thumbnail_list--item {
    padding: 10px;
    margin: 0 3.5px;
  }
}
.thumbnail_list img {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 90%;
  height: 90%;
  margin: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (min-width: 768px) {
  .thumbnail_list > .thumbnail_list--item:nth-child(4), .thumbnail_list--item:nth-child(5) {
    display: none;
  }
}
@media (max-width: 767px) {
  .thumbnail_list {
    width: auto;
    max-width: 500px;
    margin: auto;
  }
  .thumbnail_list > .thumbnail_list--item:not(:first-child) {
    display: none;
  }
}

.product_show_detail {
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
}
@media (max-width: 767px) {
  .product_show_detail {
    display: block;
  }
}
.product_show_detail--section {
  margin-bottom: 110px;
}
@media (max-width: 767px) {
  .product_show_detail--section {
    margin-bottom: 50px;
  }
}
.product_show_detail--price em {
  padding-right: 5px;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}
@media (max-width: 767px) {
  .product_show_detail--price em {
    font-size: 1.8rem;
  }
}
.product_show_detail--cart_btn {
  display: flex;
  gap: 20px;
}
@media (max-width: 767px) {
  .product_show_detail--cart_btn {
    flex-direction: column;
  }
}

.product_info {
  display: flex;
  justify-content: space-between;
  margin-bottom: 20px;
}
.product_info--wrap {
  width: 600px;
}
@media (max-width: 767px) {
  .product_info--wrap {
    width: auto;
  }
}
.product_info--ttl {
  padding-left: 44px;
  margin-bottom: 15px;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  background: url(../img/show/prduct_detail_ttl.svg) no-repeat 0 center;
}
.product_info--tbl {
  max-width: 300px;
  border-top: solid 1px #1d1d1d;
}
.product_info--tbl tr {
  display: block;
  border-bottom: solid 1px #1d1d1d;
}
.product_info--tbl th,
.product_info--tbl td {
  box-sizing: border-box;
  padding: 5px 10px;
  text-align: left;
  vertical-align: middle;
}
.product_info--tbl th {
  width: 120px;
  background-color: #e5ecf2;
}
@media (max-width: 767px) {
  .product_info--tbl {
    width: auto !important;
    max-width: unset;
    margin-bottom: 25px;
    border: none;
  }
  .product_info--tbl tr {
    border-bottom: none;
  }
  .product_info--tbl td {
    min-height: 2em;
  }
}
.product_info--txt {
  width: 285px;
}
.product_info--txt h4 {
  padding: 5px 5px 5px 10px;
  margin-bottom: 5px;
  background: #e5ecf2;
  border-top: solid 1px #1d1d1d;
}
.product_info--txt p {
  padding: 0 8px;
}
@media (max-width: 767px) {
  .product_info--txt {
    width: auto;
  }
  .product_info--txt h4 {
    margin-bottom: 5px;
  }
}
@media (max-width: 767px) {
  .product_info {
    display: block;
  }
}

.cart_order {
  margin: 15px 0 50px;
  border-spacing: 4px;
  border-collapse: separate;
}
.cart_order.-sm span {
  width: 90px;
}
.cart_order.-sm dt {
  width: 200px;
}
.cart_order.-sm dd {
  padding-left: 210px;
}
.cart_order span {
  position: absolute;
  top: 7px;
  right: 0;
  display: block;
  width: 170px;
}
.cart_order dt {
  position: relative;
  box-sizing: border-box;
  float: left;
  width: 400px;
  padding: 8px 24px;
  clear: left;
  background-color: #e5ecf2;
}
.cart_order dt:nth-of-type(4) {
  background-color: #d6d6d6;
}
.cart_order dt::after {
  top: 10px;
}
.cart_order dd {
  padding-left: 415px;
  margin-bottom: 5px;
}
.cart_order input {
  width: 100px;
}
.cart_order input:-moz-read-only {
  pointer-events: none;
  background-color: #d6d6d6;
  border-color: #d6d6d6;
}
.cart_order input:read-only {
  pointer-events: none;
  background-color: #d6d6d6;
  border-color: #d6d6d6;
}
.cart_order input,
.cart_order select {
  box-sizing: border-box;
  padding: 8px;
  margin: 2px 5px 2px 0;
  border: solid 1px #1d1d1d;
}
.cart_order textarea {
  box-sizing: border-box;
  width: 100%;
  height: 90px !important;
  padding: 5px;
}
.cart_order p {
  display: inline-block;
}
.cart_order--ttl {
  margin-bottom: 5px !important;
  color: #004182;
}
.cart_order--txtbox {
  position: relative;
  display: inline-block;
  margin-right: 5px;
}
.cart_order--txtbox input {
  margin-right: 0;
}
.cart_order--txtbox button {
  position: absolute;
  top: -7px;
  right: -7px;
  z-index: 1;
  box-sizing: border-box;
  width: 15px;
  height: 15px;
  content: "";
  background: url(../img/show/icon_btn_sub.svg) no-repeat 0;
  border: none;
}
.cart_order--txtbox:first-child {
  margin-left: 0;
}
.cart_order--txtbox:first-child button {
  content: none;
  background: none;
}
.cart_order--btn_add {
  display: inline-block;
  padding: 8px 30px;
  margin-left: 5px;
  background: url(../img/show/icon_btn_add.svg) no-repeat 0 center;
  border: none;
}
.cart_order--btn {
  display: flex;
  justify-content: center;
  text-align: center;
}
.cart_order--btn input {
  text-align: left;
}
@media (max-width: 767px) {
  .cart_order--btn {
    display: block;
  }
}
.cart_order--section {
  margin-bottom: 100px;
}
@media (max-width: 767px) {
  .cart_order--section {
    margin-bottom: 50px;
  }
}
@media (max-width: 767px) {
  .cart_order {
    margin-bottom: 40px;
  }
  .cart_order span {
    position: static;
    top: 10px;
    width: auto;
    font-size: 1.2rem;
  }
  .cart_order dt {
    width: 100% !important;
    padding: 8px 10px;
    margin-bottom: 10px;
  }
  .cart_order dd {
    padding-left: 0 !important;
    margin-bottom: 20px;
  }
  .cart_order input,
  .cart_order select {
    box-sizing: border-box;
    padding: 8px;
    border: solid 1px #1d1d1d;
  }
  .cart_order textarea {
    width: 100%;
    height: auto;
  }
}

.cart_product--section {
  padding-bottom: 100px;
}
@media (max-width: 767px) {
  .cart_product--section {
    padding-bottom: 50px;
  }
}
.cart_product--back {
  margin-top: 50px;
  text-align: right;
}
.cart_product--back a {
  border: none;
}
@media (max-width: 767px) {
  .cart_product--back {
    text-align: center;
  }
}

.cart_product--item--list {
  width: 100%;
}
.cart_product--item--list tr {
  border-bottom: solid 1px #f5f5f5;
}
.cart_product--item--list th {
  box-sizing: border-box;
  width: 110px;
  padding: 5px 0;
  text-align: left;
}
.cart_product--item--package {
  display: inline-block;
  padding: 5px 10px;
  margin: 5px;
  background: #e5ecf2;
}
@media (max-width: 767px) {
  .cart_product--item--package {
    padding: 2px 8px;
  }
}
@media (max-width: 767px) {
  .cart_product--item {
    margin: auto;
  }
  .cart_product--item--txt {
    width: 100%;
  }
  .cart_product--item--ttl, .cart_product--item--btn {
    margin-right: auto;
    text-align: left;
  }
}

.cart_form {
  width: 100%;
  margin-bottom: 50px;
}
.cart_form th {
  position: relative;
  width: 150px;
  vertical-align: top;
}
.cart_form th,
.cart_form td {
  padding: 10px;
  text-align: left;
}
.cart_form tr {
  border-bottom: solid 1px #f5f5f5;
}
.cart_form button {
  margin: 0 10px;
}
.cart_form--input input {
  width: 50%;
  padding: 5px;
}
.cart_form--input textarea {
  box-sizing: border-box;
  width: 100%;
  height: 200px;
  padding: 5px;
}
@media (max-width: 767px) {
  .cart_form--input input {
    width: 100%;
  }
}
.cart_form--btn {
  text-align: center;
}
@media (min-width: 768px) {
  .cart_form--btn a {
    margin-right: 40px;
  }
}
@media (max-width: 767px) {
  .cart_form--checkbox {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
  }
  .cart_form--checkbox span {
    width: 150px !important;
  }
}
@media screen and (max-width: 350px) {
  .cart_form--checkbox span {
    width: 120px !important;
  }
}
@media (max-width: 767px) {
  .cart_form th {
    width: 110px;
  }
  .cart_form button {
    margin: 10px 0;
  }
}

.cart_total {
  display: inline-block;
  padding-bottom: 10px;
  padding-left: 50px;
  margin-top: 50px;
  border-bottom: solid 2px #004182;
}
.cart_total--price {
  font-size: 2.4rem;
}
@media (max-width: 767px) {
  .cart_total {
    margin-top: 10px;
  }
  .cart_total--price {
    font-size: 2rem;
  }
}

.school_cart_form {
  margin-bottom: 25px;
}
.school_cart_form dd {
  margin-bottom: 15px;
}
.school_cart_form dd span {
  font-size: 1.2rem;
  color: #757575;
}
.school_cart_form dt {
  float: left;
  width: 250px;
  clear: left;
  text-align: left;
}
.school_cart_form input {
  padding: 5px;
  border-width: 1px;
  border-radius: 0;
}
.school_cart_form ::-moz-placeholder {
  font-size: 1.4rem;
}
.school_cart_form ::placeholder {
  font-size: 1.4rem;
}
@media (max-width: 767px) {
  .school_cart_form dt {
    width: 100%;
  }
  .school_cart_form input {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 5em;
  }
  .school_cart_form input.p-postal-code {
    min-width: 8em;
  }
}

.form-address {
  width: 60%;
  height: 100px;
  resize: none;
}

@media (max-width: 767px) {
  .form-address {
    width: 100%;
    height: 100px;
    resize: none;
  }
}
.contact_form--table {
  width: 100%;
  margin-top: 50px;
  border-collapse: collapse;
  border: solid 1px #1d1d1d;
  border-bottom: none;
}
.contact_form--table tr {
  border-bottom: solid 1px #1d1d1d;
}
.contact_form--table th,
.contact_form--table td {
  padding: 15px 10px;
}
.contact_form--table td {
  vertical-align: middle;
}
.contact_form--table th {
  position: relative;
  width: 225px;
  font-weight: bold;
  text-align: left;
  vertical-align: top;
  background-color: #e5ecf2;
  background-clip: padding-box !important;
  border-right: 1px solid #1d1d1d;
  border-bottom: 1px solid #1d1d1d;
}
@media (max-width: 767px) {
  .contact_form--table th {
    padding: 5px;
    border-right: none;
    border-bottom: none;
  }
}
.contact_form--table input[type=text],
.contact_form--table input[type=email],
.contact_form--table input[type=tel],
.contact_form--table input[type=nmber],
.contact_form--table input[type=date],
.contact_form--table textarea {
  box-sizing: border-box;
  width: 100%;
  padding: 8px 5px;
  font-family: inherit;
  font-size: 16px;
  font-weight: normal;
  color: #333;
  border: solid 1px #d6d6d6;
  box-shadow: none;
}
.contact_form--table input[type=text]:focus,
.contact_form--table input[type=email]:focus,
.contact_form--table input[type=tel]:focus,
.contact_form--table input[type=nmber]:focus,
.contact_form--table input[type=date]:focus,
.contact_form--table textarea:focus {
  background: #fff;
  border: solid 1px #e6edf2;
  outline: none;
}
.contact_form--table textarea {
  height: 120px;
}
.contact_form--table--name {
  display: flex;
  justify-content: space-between;
}
.contact_form--table--name input {
  width: 48% !important;
}
@media (max-width: 767px) {
  .contact_form--table--name {
    display: block;
  }
  .contact_form--table--name input {
    width: 100% !important;
  }
  .contact_form--table--name input:first-child {
    margin-bottom: 5px;
  }
}
.contact_form--table--tel input {
  width: 130px !important;
}
@media (max-width: 767px) {
  .contact_form--table--tel input {
    width: 95px !important;
  }
}
@media (max-width: 767px) {
  .contact_form--table {
    margin-top: 40px;
  }
  .contact_form--table td {
    padding: 5px 5px 10px;
  }
}

.contact_form--btn {
  margin-top: 25px;
  text-align: center;
}
@media (max-width: 767px) {
  .contact_form--btn {
    margin-top: 25px;
  }
}

.thanks {
  font-size: 2rem;
  text-align: center;
}
@media (max-width: 767px) {
  .thanks {
    font-size: 1.7rem;
  }
}

.pay_confirm_tbl {
  max-width: unset;
}
.pay_confirm_tbl th {
  width: 250px;
}

.pay_confirm_ttl {
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 25px;
}

.pay_confirm_form {
  padding-top: 20px;
  text-align: center;
}
.pay_confirm_form div {
  margin-top: 20px;
}
.pay_confirm_form span {
  text-align: left;
}
.pay_confirm_form p {
  margin-bottom: 10px;
}

.pay_confirm_package {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 10px;
}
.pay_confirm_package--item {
  box-sizing: border-box;
  width: calc(50% - 5px);
  padding: 20px;
  margin-bottom: 10px;
  border: 1px solid #d6d6d6;
}
@media (max-width: 767px) {
  .pay_confirm_package--item {
    width: 100%;
  }
}
.pay_confirm_package--item--ttl {
  margin-bottom: 10px;
  color: #004182;
}
.pay_confirm_package--item--desc {
  font-weight: 400;
}
.pay_confirm_package--wrap + .pay_confirm_package--wrap {
  margin-top: 40px;
}
@media (max-width: 767px) {
  .pay_confirm_package--wrap .product_item--txt {
    padding-bottom: 5px;
    border-bottom: none;
  }
}

.pay_link_override a:not(.btn) {
  color: #004182;
  text-decoration: underline;
}

.pay_index_main label {
  display: inline-block;
  margin: 0 10px 5px 0;
  font-weight: bold;
  color: #004182;
}
.pay_index_main .card_pay input {
  box-sizing: border-box;
  width: 10%;
  padding: 8px;
  margin-right: 5px;
}
.pay_index_main .card_pay input:last-child {
  margin-right: 0;
}
.pay_index_main .card_pay input.card_name_input {
  width: auto;
}
.pay_index_main .card_pay select {
  max-width: 100%;
  padding: 8px;
  cursor: pointer;
}
.pay_index_main .card_pay .description {
  box-sizing: border-box;
  padding: 20px;
  margin: 0 auto 15px;
  background-color: #e5ecf2;
  font-size: 12px;
}
.pay_index_main .card_pay .title {
  font-size: 15px;
  font-weight: bold;
  padding-bottom: 10px;
}
@media (max-width: 767px) {
  .pay_index_main .card_pay input {
    width: 22%;
  }
}
.pay_index_main .cvs_pay input {
  max-width: 350px;
}
.pay_index_main input {
  box-sizing: border-box;
  width: 100%;
  padding: 8px;
}
.pay_index_main select {
  max-width: 100%;
  padding: 8px;
  cursor: pointer;
}

.pay_index_id {
  display: flex;
}
.pay_index_id input {
  width: 60%;
  margin-right: 20px;
}

.notfound_page {
  text-align: center;
}

.notfound_page--ttl {
  margin-bottom: 30px;
  font-size: 2rem;
}

.notfound_page--paragraph {
  margin-bottom: 1em;
}

.notfound_page--link a {
  text-decoration: underline;
}
