.pc_only {
  display: inherit;
}

.sp_only {
  display: none;
}

@media screen and (max-width: 768px) {
  .sp_only {
    display: inherit;
  }

  .pc_only {
    display: none;
  }
}

/*----------------


総進テストの特長


----------------*/

.redbox02 {
  padding: 0.5rem;
  text-align: center;
  margin-bottom: 1rem;
}

.redbox03 {
  background-color: #ff0000;
  color: #fff;
  padding: 3px 1em;
  margin-bottom: 1rem;
  font-size: 2rem;
}

.btn_close {
  background: #b3b3b3;
  color: #fff;
  padding: 1rem 2rem;
  border-radius: 5px;
  font-size: 1.5rem;
  font-weight: bold;
  text-decoration: none;
  display: block;
  margin: 0rem auto 0;
  text-align: center;
  width: 200px;
  border: none;
  margin-top: 2rem;
}

#registNew_dialog_form p.colorRed {
  line-height: 1.8;
}
#soshinTest-index .page-navi > div:nth-child(1) > ul:nth-child(1) {
  width: 69%;
}
#soshinTest-index .page-navi > div:nth-child(1) > ul:nth-child(1) li {
  width: 31%;
  position: relative;
}

#Features > table {
  border: solid 1px #b3b3b3;
  line-height: 1.5;
  width: 100%;
}
#Features > table tr > th {
  background: #dcf0f0;
  line-height: 1.8;
}
#Features > table tr th span {
  color: #3ba2a4;
  display: block;
}

#Features > table tr:nth-child(1) > th {
  background: #3ba2a4;
  color: #fff;
  padding: 5px;
}

#Features > table tr th {
  border-right: solid 1px #b3b3b3;
}
#Features > table tr td img {
  margin: auto;
  display: block;
}
#Features > table tr td {
  padding: 1rem;
}
#Features > table tr th:not(:last-of-type),
#Features > table tr td:not(:last-of-type) {
  border-bottom: solid 1px #b3b3b3;
}

#Features > table tr:nth-child(1) > th:nth-child(1) {
  width: 170px;
}
#Features > table tr:nth-child(1) > th:nth-child(2) {
  width: 830px;
}

#Features > table tr td > ul > li:not(:last-of-type) {
  margin-bottom: 2rem;
}
#Features > table tr td ul li p {
  padding-left: 2.2em;
}
#Features > table tr td ul li > span {
  font-size: 1.7rem;
  font-weight: bold;
  padding-left: 2em;
  text-indent: -2em;
  display: block;
  margin-bottom: 0.7rem;
}
#Features > table tr td ul li > ul li {
  padding-left: 5em;
  text-indent: -3em;
}
#Features > table tr td ul li img {
  margin-top: 1rem;
}
#schedule table {
  width: 100%;
}
#schedule > table {
  border: solid 1px #b3b3b3;
  margin-top: 2rem;
}
#schedule > table th {
  width: 100px;
  font-size: 1.7rem;
  border-right: solid 1px #b3b3b3;
}

#schedule > table tr:not(:last-of-type) th,
#schedule > table tr:not(:last-of-type) td {
  border-bottom: solid 1px #b3b3b3;
}
#schedule > table th.student-ttl {
  width: 160px;
  background: #dcf0f0;
  vertical-align: middle;
}

#schedule > table td {
  width: 500px;
  padding: 1rem;
}
#schedule > table td div {
  display: flex;
  gap: 3rem;
}

.Grades-btn {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1rem;
}
.Grades-btn a {
  background: #3ba2a4;
  color: #fff;
  padding: 2rem 1.5rem;
  display: block;
  font-size: 1.7rem;
  position: relative;
  font-weight: bold;
  text-align: center;
  border-radius: 5px;
}

.Grades-btn a::after {
  content: "＞";
  color: #fff;
}

#price > p:nth-child(2) {
  background: #f2f2f2;
  text-align: center;
  padding: 3rem;
  margin-bottom: 2rem;
  border-radius: 5px;
}
.Precautions-box {
  margin-bottom: 3rem;
}
div.Precautions-box > p:nth-child(1) {
  background: #dcf0f0;
  padding: 0.5rem 1rem;
  font-weight: bold;
  position: relative;
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 1rem;
}

div.Precautions-box > p:nth-child(1)::before {
  content: "";
  background: #000;
  width: 10px;
  height: 10px;
  display: inline-block;
}
div.Precautions-box ul li {
  padding-left: 2em;
  text-indent: -2em;
  margin-bottom: 0.5rem;
}

div.Precautions-box ul li > ul li {
  padding-left: 3em;
  text-indent: -3em;
  margin-bottom: 0.5rem;
}
div.Precautions-box ul li > ul li ul li {
  padding-left: 1em;
  text-indent: 0em;
  margin-bottom: 0.5rem;
  position: relative;
}
div.Precautions-box ul li > ul li ul li::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #000;
  position: absolute;
  top: 17%;
  left: 0;
  transform: translateY(-50%);
}

div.Precautions-box > p:nth-child(3) {
  color: #ff0000;
  margin-top: 2rem;
}
.application-box {
  border: solid 1px #b3b3b3;
  padding: 2rem;
}
#delivery .application-box,
#confirm .application-box {
  padding: 0;
  border-right: none;
  border-bottom: none;
}

.application-box dl {
  padding: 0 0 1.5rem;
  margin-bottom: 1.5rem;
  border-bottom: solid 1px #b3b3b3;
}
.application-box dl:last-of-type {
  border: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.application-box dl dd {
  margin-left: 1em;
}
.application-box dl dd p {
  margin-top: 1rem;
}
.application-box dl dd a,
.application-box dl dd p.open-remodal-btn,
.application-box dl dd p.open-modal2-btn {
  font-size: 1.8rem;
  font-weight: bold;
  color: #ff0000;
  padding: 1rem;
  border: solid 1px;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 45%;
  margin-top: 1rem;
  cursor: pointer;
}

.application-box dl dd p span:nth-child(1) {
  font-size: 3rem;
  font-weight: bold;
  color: #ff0000;
  display: block;
}

.application-box dl dt:nth-child(1)::before {
  content: "";
  background: #000;
  width: 10px;
  height: 10px;
  display: inline-block;
  margin-right: 2px;
}
.application-box dl dt:nth-child(1) {
  font-weight: bold;
}
.teacher-grades-area {
  display: flex;
  flex-wrap: wrap;
}
.teacher-grades-box {
  margin: 2rem auto;
}
.teacher-grades-box h3 {
  font-size: 1.8rem;
  font-weight: bold;
}
.teacher-grades-img p {
  font-weight: bold;
}
.teacher-grades-img div {
  background: #dcf0f0;
  padding: 2rem;
}
.teacher-grades-img div img {
  margin: auto;
  display: block;
}

.teacher-grades-areap:nth-child(1) {
  width: 100%;
}
.teacher-grades-area div.teacher-grades-box {
  width: 49%;
}
.teacher-grades-area div.teacher-grades-box:first-of-type,
.teacher-grades-area div.teacher-grades-box:last-of-type {
  width: 100%;
}
div.teacher-grades-box:first-of-type .teacher-grades-conts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.teacher-grades-area
  div.teacher-grades-box:last-of-type
  .teacher-grades-img
  > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.teacher-grades-area
  div.teacher-grades-box:last-of-type
  .teacher-grades-img
  > div
  p {
  font-weight: normal;
}

div.teacher-grades-box ul li span:nth-child(1) {
  display: block;
  font-weight: bold;
}

/*----------------


総進テスト　個人成績表［中学生用］


----------------*/

div.junior-grades-box {
  padding: 1rem;
  border: solid 1px #b3b3b3;
  margin-bottom: 2rem;
}

div.junior-grades-box h3:nth-child(1) {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 1rem;
}

.junior-grades-img {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr 1.2fr;
}

.junior-grades-img p {
  font-weight: bold;
  font-size: 1.7rem;
  margin-top: 0em;
}

.junior-grades-img p > span:nth-child(2) {
  display: flex;
  background: #fd3;
  width: fit-content;
  padding: 3px 1rem;
  border-radius: 5px;
  align-items: baseline;
  margin-top: 1rem;
}

.junior-grades-img p span span:nth-child(1) {
  font-size: 2.5rem;
}
div.junior-grades-box ul {
  margin-top: 2rem;
}
div.junior-grades-box ul li {
  padding-left: 1em;
  text-indent: -1em;
}
div.junior-grades-box ul li > span:nth-child(1) {
  font-weight: bold;
  display: block;
}

div.junior-grades-box:nth-child(3)
  .junior-grades-img
  div:nth-child(2)
  > p:nth-child(2) {
  padding-left: 1em;
  text-indent: -0.5em;
}
div.junior-grades-box:nth-child(3) .junior-grades-img div:nth-child(2) > p {
  font-weight: normal;
  font-size: 1.5rem;
  margin-top: 0;
}

div.junior-elementary-box .elementary-grades-img {
  padding: 2rem;
  border: solid 1px #b3b3b3;
  margin-top: 1rem;
}

.elementary-grades-img p {
  text-align: center;
  margin-bottom: 0.5rem;
}

.elementary-grades-img img {
  display: block;
  margin: auto;
}

.teacher-elementary-area > p:nth-child(3) {
  color: #ff0000;
  margin-top: 1rem;
  padding-left: 1em;
  text-indent: -0.5em;
}

/*----------------


年間実施予定と出題範囲予定


----------------*/

.grades h4 {
  font-size: 2.3rem;
  font-weight: bold;
  margin-bottom: 1rem;
  position: relative;
  padding-left: 20px;
}
.grades h4::before {
  content: "";
  width: 15px;
  height: 15px;
  background: #000;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.sTestPlan-area > p:nth-child(2) {
  font-size: 2rem;
  color: #fff;
  background: #3a7ec5;
  text-align: center;
  padding: 5px;
  margin-bottom: 1rem;
  font-weight: bold;
}

.sTestPlan {
  margin-bottom: 5px;
}

.grades .page-navi > div:nth-child(1) > ul:nth-child(1) li {
  width: 21%;
}
.sTestPlan th {
  background: #e6f0ff;
  padding: 5px 10px;
}
.sTestPlan td {
  padding: 7px 5px 7px 10px;
  position: relative;
}

.sTestPlan td:nth-child(6) > span {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}

.sTestPlan th,
.sTestPlan td {
  border: solid 1px #b3b3b3;
}

.remarks-box {
  background: #fff0f0;
  border: solid 1px #b3b3b3;
  padding: 1rem;
  margin-top: 2rem;
}
.remarks-box p {
  margin-bottom: 1.5rem;
}
.remarks-box > ul:nth-child(2) > li {
  margin-bottom: 5px;
  padding-left: 2em;
  text-indent: -2em;
}

.question-list {
  background-color: #f2f2f2;
  padding: 10px;
  display: grid;
  margin-bottom: 2rem;
  position: relative;
}
.question-list li a::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #3a7ec5;
  position: absolute;
  top: 5px;
  top: 5px;
  left: 0;
  transform: translateY(-50%);
}
.question-list li a {
  color: #3a7ec5;
  position: relative;
  display: flex;
  align-items: center;
  padding-left: 1rem;
}
.question-list li a::before {
  content: "";
  width: 10px;
  height: 10px;
  background: #3a7ec5;
  border-radius: 50%;
  position: relative;
  display: block;
  left: -10px;
}
.question-area table {
  width: 100%;
}

.question-area h5 {
  background: #3ba2a4;
  font-weight: bold;
  font-size: 2rem;
  text-align: center;
  padding: 0.3rem 1rem;
  color: #fff;
  margin-top: 2rem;
}
.question-area h5 span {
  font-size: 1em !important;
}
.question-area .detail h5:first-of-type {
  margin-top: 1rem;
}
.question-area table th,
.question-area table td {
  padding: 5px 10px;
  border: 1px solid #cacaca;
}
.question-area table th {
  width: 33%;
  font-weight: bold;
  background: #dcf0f0;
}
.question-area table td {
  vertical-align: top;
  min-height: 5em;
  line-height: 1.5;
}

.question-area table td.english_none {
  vertical-align: middle;
  text-align: center;
}

#junior-3 .question-list {
  grid-template-columns: repeat(5, 1fr);
}
#junior-2 .question-list {
  grid-template-columns: repeat(6, 1fr);
}
#junior-1 .question-list {
  display: flex;
  gap: 3rem;
}
#elementary-6 .question-list, #elementary-5 .question-list, #elementary-4 .question-list, #elementary-3 .question-list {
  display: flex;
  gap: 3rem;
}

.question-area .login-box {
  margin: 1rem 0 3rem;
}
#junior-1 .testScope tr > td:nth-child(3),
#junior-2 .testScope tr > td:nth-child(3) {
  border-bottom: solid 1px #b3b3b3 !important;
}
#junior-1 .testScope tr:nth-child(3) th:last-child,
#junior-1 .testScope tr:nth-child(4) td:last-child,
#junior-2 .testScope tr:nth-child(3) th:last-child,
#junior-2 .testScope tr:nth-child(4) td:last-child {
  border-right: none !important;
}
#elementary-3 .question-area .detail h5,
#elementary-3 .question-area .detail table,
#elementary-4 .question-area .detail h5,
#elementary-4 .question-area .detail table {
  width: 76%;
}
/*----------------

申込みフォーム

----------------*/

.application-area .page-ttl-box .application-notice {
  font-size: 1.8rem;
  text-align: center;
  font-weight: bold;
  color: #ff0000;
  background: #fff0f0;
  padding: 1rem;
  justify-content: flex-start;
  gap: 2rem;
  display: flex;
  justify-content: center;
}
.application-notice > a:nth-child(1) {
  font-size: 1.4rem;
  font-weight: normal;
  display: flex;
  align-items: center;
  gap: 5px;
}

.page-ttl.breadcrumb-box-flow h2,
.application-area .page-ttl h2 {
  margin: 0;
}
.page-ttl.breadcrumb-box-flow,
.application-area .page-ttl {
  padding-bottom: 0rem;
}
.page-ttl.breadcrumb-box-flow .inner,
.application-area .page-ttl .inner {
  display: flex;
  align-items: center;
  border: none;
  gap: 2rem;
}
.page-ttl.breadcrumb-box-flow .breadcrumb-box,
.application-area .breadcrumb-box {
  /* background: #f2f2f2; */
  background: no-repeat;
}
.page-ttl.breadcrumb-box-flow .breadcrumb span,
.page-ttl.breadcrumb-box-flow .breadcrumb li.breadcrumb-item,
.application-area .breadcrumb span,
.application-area .breadcrumb li.breadcrumb-item {
  /* color: #333; */
  color: #b3b3b3;
  font-size: 1.6rem;
  font-weight: bold;
}

.page-ttl.breadcrumb-box-flow li.breadcrumb-item.now-point,
.application-area li.breadcrumb-item.now-point {
  color: #ff0000;
}

.form-info-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  border-bottom: solid 1px;
  padding: 1rem;
}

.form-info-grid div.info-item:nth-child(1) {
  width: 100%;
}

.application-form-container {
  border: 1px solid #b3b3b3;
  background: #f8f8f8;
  margin: 2rem 0;
  display: grid;
  grid-template-columns: 140px auto 150px;
}
.application-area .application-form-container {
  background-color: #fff;
}
#delivery .application-form-container,
#confirm .application-form-container {
  border: none;
}

.form-header {
  background: #e6f0ff;
  padding: 1.5rem;
  border-bottom: 1px solid #b3b3b3;
}

/*.form-info-grid {
  margin-bottom: 1rem;
}*/
.application-area .form-info-grid {
  margin-bottom: 0;
}
.form-spec-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1rem;
  padding: 1rem;
}

.info-item,
.spec-item {
  display: flex;
  align-items: center;
  font-size: 1.4rem;
}

.label {
  font-weight: bold;
  margin-right: 0.5rem;
}
.cart-summary {
  position: fixed;
  top: 300px;
  right: 20px;
  width: 17rem;
  height: 9.5rem;
  background: #fff;
  border-radius: 5px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}
.cart-summary a {
  color: #ff0000;
  font-size: 1.4rem;
  font-weight: bold;
  width: 100%;
  margin: 0 auto;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* カートのフォーム */
#cart .label,
#delivery .label,
#confirm .label {
  font-size: 1.4rem;
  font-weight: normal;
}

.value {
  color: #333;
}

.radio-input {
  width: 20px;
  height: 20px;
  margin-left: 0.5rem;
}

.radio-label {
  width: auto;
  height: 20px;
  border-radius: 50%;
  display: inline-block;
  margin-left: 0.5rem;
  cursor: pointer;
}

.radio-input:checked + .radio-label {
  background: #3ba2a4;
  border-color: #3ba2a4;
}

.form-notice {
  font-size: 1.4rem;
}
.form-notice p {
  font-size: 1.4rem;
  width: 47em;
}
#cart .form-notice p,
#delivery .form-notice p,
#confirm .form-notice p {
  font-size: 1.3rem;
  width: 47em;
}
.form-main {
  background: #fff;
  border-right: 1px solid #b3b3b3;
}

.form-main > div {
  border-bottom: 1px solid #b3b3b3;
  padding: 1rem;
}

.grade-year {
  background: #dcf0f0;
  padding: 2rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  border-right: 1px solid #b3b3b3;
}

.grade-text {
  font-size: 1.6rem;
  font-weight: bold;
}

.issue-number {
  font-size: 2.2rem;
  font-weight: bold;
}

.month-number {
  font-size: 2.2rem;
  font-weight: bold;
}

.form-fields {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
}

.form-fields p {
  font-size: 1.4rem;
}
.form-fields p span {
  font-weight: bold;
}

.form-fields textarea {
  width: 47em;
}
#cart .form-fields textarea,
#delivery .form-fields textarea,
#confirm .form-fields textarea {
  width: 47em;
  font-size: 1.3rem;
}
.form-fields.form-title-section {
  background-color: #f2f2f2;
}
.form-fields.form-fields-end {
  border-bottom: none;
}
.field-group {
  display: flex;
  align-items: center;
  gap: 0 1rem;
  flex-wrap: wrap;
}
.field-group {
  font-size: 1.5rem;
}
.field-label {
  font-size: 1.5rem;
  font-weight: bold;
}
.field-error {
  width: 100%;
}
#cart .field-label,
#delivery .field-label,
#confirm .field-label {
  font-size: 1.4rem;
  font-weight: normal;
}

.field-label .required {
  color: #ff0000;
}
.form-fields .update {
  font-size: 1.2rem;
  color: #3a7ec5;
  cursor: pointer;
}
.field-value.remarks {
  width: 47em;
}

.date-inputs {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-size: 1.5rem;
}

.date-input {
  width: 60px;
  padding: 0.5rem;
  border: 1px solid #b3b3b3;
  text-align: center;
  font-size: 1.5rem;
}

.select-input {
  padding: 0.5rem 1rem;
  border: 1px solid #b3b3b3;
  min-width: 100px;
  font-size: 1.5rem;
}

.number-input {
  width: 80px;
  padding: 0.5rem;
  border: 1px solid #b3b3b3;
  text-align: center;
  font-size: 1.4rem;
}

.cd-notice {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.2rem;
}

.notice-text {
  color: #3a7ec5;
}

.notice-link {
  color: #3a7ec5;
}
.external-link {
  color: #3a7ec5;
}

.submit-btn {
  background: #ff0000;
  color: #fff;
  border: none;
  padding: 1.5rem 2.5rem;
  font-size: 1.7rem;
  font-weight: bold;
  border-radius: 5px;
  cursor: pointer;
  margin-left: 2rem;
  margin-right: 2rem;
  align-self: center;
}

.submit-btn:hover {
  background: #cc0000;
}
.move-grade {
  font-size: 1.5rem;
  font-weight: bold;
  color: #fff;
  background: #3a7ec5;
  padding: 0.5rem 3rem;
  border-radius: 5px;
  margin-left: auto;
  cursor: pointer;
}

#cart .main-contents > .inner {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 2rem;
}

#cart .application-form-container {
  grid-template-columns: 1fr 100px;
}

#cart .grade-year {
  padding: 1rem 1rem;
  flex-direction: unset;
  justify-content: flex-start;
  grid-area: 1 / 1 / 2 / 3;
  font-size: 1.7rem;
  font-weight: bold;
}

#cart .grade-year span {
  font-size: 1.7rem;
}

#cart .submit-btn {
  grid-area: 1 / 3 / 3 / 4;
}
#cart .form-main {
  grid-area: 2 / 1 / 3 / 3;
  border-right: 1px solid #b3b3b3;
}
#cart .form-main > div:last-child {
  border-bottom: none;
}

#cart-side-box {
  padding: 2rem 1rem;
  position: fixed;
  right: 0;
  top: 270px;
  position: fixed;
  right: calc((100vw - 1000px) / 2);
  z-index: 1000;
  width: 220px;
  border: solid 1px #b3b3b3;
  background: #fff;
}

.cart-side-box-inner > h2:nth-child(2) {
  font-size: 1.5rem;
  color: #ff0000;
  font-weight: bold;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}

.cart-side-box-inner-inner-btn,
.cart-button-box .btn {
  appearance: none;
  font-size: 1.8rem;
  width: 100%;
  padding: 3rem 1rem;
  font-weight: bold;
  border-radius: 5px;
}
.cart-button-box .btn {
  padding: 1rem 1rem;
}
.cart-button-box .btn.next {
  padding: 1.4rem 1rem;
  border: none;
  width: 19em;
  color: #fff;
}
.cart-button-box .btn.addition-btn {
  margin-top: 0;
  width: 19em;
}
.cart-side-box-inner-inner-btn,
.cart-button-box .btn.next {
  border: none;
  background: #ff0000;
  color: #fff;
}

.addition-btn {
  border: solid 1px;
  color: #ff0000;
  background: none;
  text-align: center;
  padding: 1rem 1rem;
  margin-top: 3rem;
  cursor: pointer;
}
.addition-btn:hover {
  opacity: 0.5;
}
.click-no {
  pointer-events: none;
  background: #ccc;
  color: #fff;
}
.cart-button-box {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  justify-content: space-between;
  margin: 2rem 0;
}
.cart-side-box-inner-inner-link > a {
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
  margin-top: 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
}

#cart .submit-btn {
  color: #3a7ec5;
  background: no-repeat;
  background-color: #fff;
  border: solid 1px;
}

#cart .application-form-container {
  background: none;
}
.cart-empty {
  margin: 2rem 0;
}
.cart-empty > p:nth-child(1) {
  color: #333;
  border: solid #b3b3b3 1px;
  font-size: 2rem;
  text-align: center;
  padding: 3rem;
  font-weight: bold;
}
/* 配達指定サイドボックス */
.delivery-side-box {
}

.delivery-side-box-inner {
  background: #f2f2f2;
  border: solid 1px #b3b3b3;
}
.delivery-side-box-inner > h2 {
  font-size: 1.8rem;
  color: #ff0000;
  font-weight: bold;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e0e0e0;
}

#delivery .main-contents .delivery-form-container,
#confirm .main-contents .delivery-form-container {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 2rem;
  margin-bottom: 4rem;
}

.delivery-ttl {
  font-size: 1.8rem;
  font-weight: bold;
  background: #fb6666;
  color: #fff;
  text-align: left;
  margin-bottom: 0rem;
  padding: 5px 1rem;
  grid-area: 1 / 1 / 2 / 3;
}

#delivery .application-form-container,
#confirm .application-form-container {
  grid-template-columns: 1fr;
  margin-top: 0;
  margin-bottom: 0;
  align-items: flex-start;
  gap: 2rem;
}

#delivery .application-form-container .grade-year,
#confirm .application-form-container .grade-year {
  flex-direction: unset;
  justify-content: flex-start;
  font-size: 1.7rem;
  padding: 1rem;
  font-weight: bold;
}
#delivery .application-form-container .grade-year span,
#confirm .application-form-container .grade-year span {
  font-size: 1.7rem;
}

/* 配達フォーム */
.delivery-form {
}
.delivery-form > div {
  background: #f2f2f2;
}

.delivery-form .field-group {
  flex-direction: column;
  align-items: flex-start;
  padding: 1.5rem 1rem;
  gap: 0;
  border: 1px solid #b3b3b3;
}
.delivery-form .field-group:last-child {
  /* border-bottom: none; */
}
.delivery-form .first-show {
  /* border-bottom: none; */
}
.delivery-form .field-label {
  font-size: 1.5rem;
  font-weight: bold;
  color: #333;
  display: block;
  margin-bottom: 1rem;
}

.delivery-form .field-label::before {
  content: "※";
  color: #ff0000;
  margin-right: 0.2rem;
}

/* ラジオボタンスタイル */
.delivery-form .radio-group {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.time-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.8rem;
}

.delivery-form .radio-label {
  display: flex;
  align-items: center;
  font-size: 1.5rem;
  cursor: pointer;
  position: relative;
  width: auto;
  border: none;
}

.radio-label input[type="radio"] {
  opacity: 0;
  position: absolute;
  width: 0;
  height: 0;
}

.radio-custom {
  width: 18px;
  height: 18px;
  border: 2px solid #ccc;
  border-radius: 50%;
  margin-right: 0.8rem;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
}

.delivery-form .radio-label input[type="radio"]:checked + .radio-custom {
  border-color: #808080;
  background: #000;
}

.delivery-form .radio-label input[type="radio"]:checked + .radio-custom::after {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #0000;
}

/* 日付入力 */
.delivery-side-box .date-inputs {
  display: flex;
  align-items: center;
  gap: 0rem 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0rem;
}

.delivery-side-box .date-input {
  width: 40px;
  padding: 0.5rem;
  border: 1px solid #ccc;
  text-align: center;
  font-size: 1.3rem;
  background: #f9f9f9;
}
.date-input-month {
  width: 2em !important;
  min-width: 4em !important;
}
.date-input-day {
  width: 2em !important;
  min-width: 4em !important;
}
.date-input-week {
  width: 2em !important;
  min-width: 2.5em !important;
}

.delivery-side-box .date-input-year {
  width: 60px;
}

.date-inputs span {
  font-size: 1.3rem;
  color: #666;
}

/* 注意事項テキスト */
.delivery-note,
.calendar-note {
  font-size: 1.35rem;
  color: #333;
  line-height: 1.4;
  margin-top: 0.8rem;
}

/* ボタン部分 */
.delivery-side-box-inner-inner {
  border-top: 1px solid #e0e0e0;
  padding-top: 2rem;
}

.delivery-side-box-inner-inner-btn {
  appearance: none;
  font-size: 1.8rem;
  width: 100%;
  padding: 2rem 1rem;
  font-weight: bold;
  border-radius: 5px;
  border: none;
  background: #ff0000;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.delivery-side-box-inner-inner-btn:hover {
  background: #e60000;
}

.delivery-side-box-inner-inner .addition-btn {
  border: solid 1px #ff0000;
  color: #ff0000;
  background: #fff;
  text-align: center;
  padding: 1rem;
  margin-top: 1.5rem;
  cursor: pointer;
  transition: all 0.3s ease;
}

.delivery-side-box-inner-inner .addition-btn:hover {
  background: #ff0000;
  color: #fff;
}

.delivery-side-box-inner-inner-link {
  margin-top: 1.5rem;
  text-align: center;
}

.delivery-side-box-inner-inner-link > a {
  font-size: 1.3rem;
  font-weight: bold;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5px;
  color: #3a7ec5;
  text-decoration: none;
}

.delivery-side-box-inner-inner-link > a:hover {
  text-decoration: underline;
}

.time-group > .radio-label {
  width: 46%;
}

.delivery-none {
  display: none;
}
/* 確認ページ */
#confirm .main-contents .delivery-form-container {
  gap: 0;
}
#confirm .derivery-form-container {
  grid-template-columns: repeat(1fr, 320px);
  grid-template-rows: repeat(3, 1fr);
}
#confirm .confirm-ttl {
  font-size: 1.8rem;
  font-weight: bold;
  background: #fb6666;
  color: #fff;
  text-align: left;
  margin-bottom: 0rem;
  padding: 5px 1rem;
  grid-area: 1 / 1 / 2 / 2;
}
#confirm .confirm-info-table {
  grid-area: 2 / 1 / 3 / 2;
}
#confirm .application-form-container {
  grid-area: 3 / 1/ 4 / 2;
}

/* 完了ページ */
#complete .completion-box {
  background: #fff;
  border: solid 1px #b3b3b3;
  padding: 2rem;
  margin-bottom: 3rem;
}
#complete .completion-box h2 {
  font-size: 2rem;
  font-weight: bold;
}
#complete .completion-box dl {
  display: flex;
  gap: 2rem;
  border: solid 1px #b3b3b3;
  padding: 1rem;
  width: 40rem;
  margin: 1rem 0;
}
#complete .completion-box dl dt {
  font-size: 1.5rem;
  font-weight: normal;
}

/* クリック無効状態 */
.click-no {
  pointer-events: none;
  background: #ccc !important;
  color: #fff !important;
}
.Grade_selection_modal {
  width: 870px;
  padding: 5rem 4rem;
}

.Grade_selection_modal .remodal-header,
.Grade_selection_modal .modal2-header {
  font-size: 2.4rem;
  margin-bottom: 3rem;
  padding-bottom: 0.5rem;
  border-bottom: solid 1px #666666;
}

.Grade_selection_modal .remodal-content,
.Grade_selection_modal .modal2-content {
  margin-bottom: 3rem;
}
.Grade_selection_modal div.remodal-content > p,
.Grade_selection_modal div.modal2-content > p {
  font-size: 1.8rem;
  font-weight: bold;
  text-align: left;
}
.Grade_selection_modal div.remodal-content > ul,
.Grade_selection_modal div.modal2-content > ul {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 1rem;
}

.Grade_selection_modal div.remodal-content > ul > li > a,
.Grade_selection_modal div.modal2-content > ul > li > a {
  display: flex;
  font-size: 1.8rem;
  font-weight: bold;
  color: #fff;
  justify-content: center;
  padding: 1.5rem 1rem;
  border-radius: 5px;
  width: 100%;
}

.Grade_selection_modal
  div.remodal-content.Grade_selection_modal-content-01
  > ul
  > li
  > a,
  .Grade_selection_modal div.modal2-content.Grade_selection_modal-content-01 > ul > li > a {
  background: #6fc680;
}
.Grade_selection_modal
  div.remodal-content.Grade_selection_modal-content-02
  > ul
  > li
  > a,
  .Grade_selection_modal div.modal2-content.Grade_selection_modal-content-02 > ul > li > a {
  background: #ff9933;
}

.Grade_selection_modal .close-remodal-btn,
.Grade_selection_modal .close-modal2-btn {
  background: no-repeat;
  color: #3a7ec5;
  font-weight: bold;
}

/* ----------------

お申し込み履歴　詳細

----------------*/

.mypage-area .main-ttl > h2 {
  font-size: 3rem;
  font-weight: bold;
}

.myPage-history-ttl {
  font-size: 1.7rem;
  font-weight: bold;
  background: #fb6666;
  color: #fff;
  text-align: left;
  margin-bottom: 1rem;
  padding: 9px 1rem;
  grid-area: 1 / 1 / 2 / 3;
}

.myPage-history-box .application-form-container {
  grid-template-columns: 1fr;
  margin-top: 1rem;
  border: 1px solid #b3b3b3;
}

.myPage-history-box .form-main {
  border-right: none;
}
.myPage-history-box .form-main > div:last-child {
  border-bottom: none;
}
.myPage-history-group.smogiticket dt.label {
  width: 8em;
}
.myPage-history-group.smogiticket .body-item {
  margin-left: 12.5em;
  margin-bottom: 1em;
}
.myPage-history-group.smogiticket .body-item .field-label {
  width: 8em;
  font-weight: normal;
}
.myPage-history-group.smogiticket .body-item .field-value {
  width: 30em;
}

.inner:has(.myPage-sidemenu),
.changeReserv .inner {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr 220px;
}

.changeReserv section {
  margin-top: 2rem !important;
}

.myPage-sidemenu ul h3:nth-child(1) {
  background: #999;
  color: #fff;
  text-align: center;
  font-weight: bold;
  font-size: 1.5rem;
  padding: 2px;
}
.myPage-sidemenu ul + ul {
  margin-top: 2rem;
}
.myPage-sidemenu ul li {
  padding: 0.5rem 1rem;
}

.myPage-sidemenu ul li:nth-child(2n) {
  background: #f2f2f2;
}
.myPage-sidemenu ul li a {
  margin-bottom: 0;
}

.myPage-history-summary {
  border: solid 1px #b3b3b3;
  padding: 2rem;
  margin-bottom: 4rem;
}
.myPage-history-summary {
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  align-items: center;
}
.myPage-history-summary .myPage-history-summary-inner > dl {
  display: grid;
  grid-template-columns: 110px 1fr;
}

.myPage-history-box .grade-year {
  padding: 0.5rem 1rem;
  flex-direction: unset;
  justify-content: flex-start;
  border-right: none;
  font-size: 1.7rem;
  font-weight: bold;
  border-bottom: 1px solid #b3b3b3;
}

.myPage-history-box .grade-year span {
  font-size: 1.7rem;
}

/* 申込検索コンテナ */
.application-search-container {
  margin: 20px 0;
}

/* 検索タイトル */
.search-title {
  font-size: 2rem;
  font-weight: bold;
  color: #333;
  margin-bottom: 0rem;
}

.application-search-container .search-form {
  background: #f2f2f2;
  padding: 2rem;
}

/* フォームグループ */
.form-group {
  margin-bottom: 30px;
}

/* フォームラベル */
.form-label {
  display: block;
  font-size: 1.6rem;
  font-weight: bold;
  color: #333;
  margin-bottom: 15px;
}

/* 日付選択エリア */
.date-selection {
  display: flex;
  align-items: center;
  gap: 9px;
}
/* ラジオボタングループ */
.application-search-container .radio-group {
  display: flex;
  flex-direction: unset;
  gap: 10px;
  min-width: 120px;
}

/* ラジオボタンラベル */
.radio-label {
  display: flex;
  align-items: center;
  font-size: 1.4rem;
  cursor: pointer;
  color: #333;
}

/* ラジオボタン非表示 */
.radio-label input[type="radio"] {
  display: none;
}

/* カスタムラジオボタン */
.radio-custom {
  width: 18px;
  height: 18px;
  border: 2px solid #999;
  border-radius: 50%;
  margin-right: 8px;
  position: relative;
  background: #fff;
}

/* ラジオボタン選択時 */

.radio-label input[type="radio"]:checked + .radio-custom {
  border-color: #333;
}

.radio-label input[type="radio"]:checked + .radio-custom::after {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #333;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* 日付入力エリア */
.date-inputs {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* 日付セレクトボックス */
.date-select {
  padding: 5px 10px;
  border: 1px solid #ccc;
  border-radius: 3px;
  font-size: 1.4rem;
  background: #fff;
  padding-right: 4px;
}

/* 日付単位 */
.date-unit {
  font-size: 1.4rem;
  color: #333;
}

/* 日付区切り */
.date-separator {
  font-size: 1.4rem;
  color: #333;
  margin: 0px;
  font-weight: bold;
}

/* 検索入力グループ */
.search-input-group {
  display: flex;
  align-items: center;
  gap: 15px;
}

/* 入力ラベル */
.input-label {
  font-size: 1.5rem;
  color: #333;
}

/* 検索入力フィールド */
.search-input {
  padding: 10px 15px;
  border: 1px solid #ccc;
  border-radius: 3px;
  font-size: 1.4rem;
  width: 220px;
  background: #fff;
}

/* 検索ボタンコンテナ */
.search-button-container {
  text-align: center;
  margin-top: 2rem;
}

/* 検索ボタン */
.search-button {
  background: #537990;
  color: #fff;
  border: none;
  border-radius: 5px;
  padding: 5px 20px;
  font-size: 1.5rem;
  font-weight: bold;
  cursor: pointer;
}

.application-search-container .form-group:nth-child(1) {
  padding-bottom: 1rem;
  border-bottom: solid 1px #b3b3b3;
  margin-bottom: 1rem;
}
.search-number-group.form-group {
  display: flex;
  align-items: center;
}
.search-number-group,
.form-label {
  margin-bottom: 0;
}
.application-table {
  width: 100%;
  border: solid 0.5px #b1b1b1;
}
.application-table tr th {
  background: #dcf0f0;
  font-size: 1.5rem;
  text-align: left;
}

.application-table tr th,
.application-table tr td {
  border: solid 0.5px #b1b1b1;
  padding: 0.8rem 1rem;
}

/* ----------------

ページネーション 

----------------*/
.pagination-container {
  text-align: center;
  margin: 20px 0 5px 0;
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
}

.page-info {
  font-size: 1.5rem;
  color: #333;
}

.pagination {
  list-style: none;
  padding: 0;
  display: inline-block;
  font-size: 1.5rem;
  text-align: right;
}

.page-item {
  display: inline;
  margin: 0 3px;
}

.page-link {
  text-decoration: none;
  color: #007bff;
}

.pagination .page-item.active .page-link {
  color: #333;
  font-weight: bold;
  cursor: default;
  pointer-events: none;
}

/* ----------------

並び順 

----------------*/
.sort-container {
  margin: 20px 0;
  text-align: right;
}
.sort-label {
  margin-right: 10px;
  font-size: 1.5rem;
}
.sort-select {
  padding: 5px;
  background: #fff;
  border-radius: 0;
  border: solid 1px #b1b1b1;
  font-size: 1.5rem;
  width: 220px;
}

/* デバッグ用出力テーブルスタイル設定
------------------------------------- */
#bfDebug {
  line-height: 1em;
}
table#bfDebug {
  border: #363e7e 1px solid;
  border-collapse: collapse;
  width: 100%;
}
table#bfDebug th {
  background-color: #adbaeb;
  font-size: 0.8em;
  border: #363e7e 1px solid;
  padding: 0.5em;
  vertical-align: middle;
}
table#bfDebug td {
  font-size: 0.8em;
  border: #363e7e 1px solid;
  padding: 0.5em;
}

/* 

ご利用ガイド

------------------------------------- */

#cramschool-flow .main-contents .main-ttl h3:nth-child(1) {
  font-size: 2.5rem;
  font-weight: bold;
  border-bottom: solid 2px #b3b3b3;
  padding-bottom: 3px;
}

#cramschool-flow .page-navi > div:nth-child(1) > ul:nth-child(1) {
  gap: 1rem 4rem;
  width: 80%;
}
#cramschool-flow .page-navi > div:nth-child(1) > ul:nth-child(1) li {
  width: auto;
}

#cramschool-flow .contents-box > .main-ttl > h3:nth-child(1) {
  background: #3ba2a4;
  color: #fff;
  text-align: center;
  border-radius: 25px;
  padding: 5px;
}

.flow-box-inner-item-title h4 {
  color: #3ba2a4;
  font-size: 2.5rem;
  font-weight: bold;
  margin-bottom: 2rem;
  border-bottom: solid 2px;
}

section.flow-box {
  padding: 2rem;
  background: #f2f2f2;
}

.flow-box-btn > p:nth-child(1) {
  font-size: 1.7rem;
  font-weight: bold;
  margin-bottom: 5px;
}

.flow-box-btn > a:nth-child(2) {
  background: #3877b8;
  color: #fff;
  text-align: center;
  width: 50%;
  display: block;
  padding: 1rem 2rem;
  font-size: 1.8rem;
  font-weight: bold;
  border-radius: 5px;
  margin: auto;
}

.flow-box-btn {
  text-align: center;
}

.flow-box-inner-item-text {
  font-size: 1.7rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
  margin-top: 2rem;
}
.flow-box-inner-item-list {
  margin-bottom: 3rem;
}

.flow-box-inner-item-list dl {
  margin: 1.5rem 0 1.5rem auto;
  width: 98%;
}
.flow-box-inner-item-list dl:not(:last-child)::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 20px solid #808080;
  position: relative;
  left: 90px;
  margin-top: 1.5rem;
}
.flow-box-inner-item-list dl dt {
  font-size: 1.7rem;
  font-weight: bold;
  background: #fff;
  border: #b3b3b3 solid 1px;
  border-radius: 20px;
  padding: 5px 3rem;
  margin-bottom: 1rem;
}

.flow-box-inner-item-list dl dd {
  width: 93%;
  margin: auto;
}

.flow-box-2 .attention-box > p:nth-child(1) {
  border: solid 1px #f00;
  background: #fff;
  padding: 1rem;
}

.flow-box-2 .attention-box > p:nth-child(1) > span {
  display: block;
  color: #f00;
  font-weight: bold;
}

.Registration-table > dl {
  display: grid;
  grid-template-columns: 1fr 3.5fr;
  background: #fff;
  border: solid 1px #b3b3b3;
  align-items: center;
}
.Registration-table > dl:not(:last-child) {
  border-bottom: none;
}
.Registration-table > dl dt {
  font-size: 1.7rem;
  text-align: center;
  font-weight: bold;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1rem 0;
}
.Registration-table > dl dt img:nth-child(1) {
  display: block;
  margin: 0 auto 5px;
}

.Registration-table > dl > dd {
  padding: 1rem 2rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  border-left: solid 1px #b3b3b3;
}
.online-btn {
  background: #fb6666;
  color: #fff;
  text-align: center;
  font-size: 1.7rem;
  text-align: center;
  font-weight: bold;
  border-radius: 20px;
  margin-top: 0.5rem;
  padding: 3px;
  width: 100%;
}
.Registration-table {
  margin-bottom: 2rem;
}

.Registration-table > dl > dd .pdf-btn {
  width: 100%;
}

.Registration-table > dl > dd .pdf-btn a {
  color: #f00;
  padding: 1rem 2rem;
  font-size: 1.7rem;
  border: solid 1px;
  border-radius: 5px;
  display: block;
  width: fit-content;
  font-weight: bold;
  margin: 5px 0;
}

.Registration-table > dl > dd > p.fax-text {
  font-size: 2rem;
  font-weight: bold;
  color: #f00;
}

.Registration-table > dl > dd > p.fax-text span {
  letter-spacing: -1px;
}

.online-ttl {
  color: #fb6666;
  font-size: 2rem;
  font-weight: bold;
  padding: 0px 0;
  border-bottom: solid 1px;
  border-top: solid 1px;
  margin-bottom: 1rem;
}

.online-text span {
  font-size: 1.7rem;
  font-weight: bold;
}
.online-table {
  width: 100%;
}
.online-table th,
.online-table td {
  border: solid 1px #b3b3b3;
  background: #fff;
  padding: 1rem;
  text-align: left;
}
.online-table th {
  width: 210px;
  padding: 1.5rem 1rem;
}

.online-table th a {
  display: block;
  font-weight: normal;
  margin-top: 5px;
}
.online-table td {
  line-height: 1.8;
}

div.Apply-box-inner-item {
  background: #fff;
  border: solid #b3b3b3 1px;
  padding: 1rem;
  margin: 2rem auto;
}

div.Apply-box-inner-item h5 {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 4px;
}

div.Apply-box-btn-inner {
  margin-top: 1rem;
  display: flex;
  gap: 2rem;
}

div.Apply-box-btn-inner > a {
  display: block;
  color: #ff0000;
  font-size: 1.8rem;
  font-weight: bold;
  width: 40%;
  border: solid 1px;
  border-radius: 5px;
  text-align: center;
  padding: 0.5rem;
}

.Apply-box-btn:not(:last-child) {
  border-bottom: solid 1px #b3b3b3;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
}

.Apply-box-btn-title,
.Claim-box-title {
  font-size: 1.7rem;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.Apply-box-btn-title::before,
.Claim-box-title::before {
  content: "";
  background: #000;
  width: 10px;
  height: 10px;
  display: inline-block;
}

.main-contents section.flow-box-5 {
  margin-bottom: 10rem;
}
div.Claim-box {
  margin-top: 2rem;
}

div.Claim-box > p:nth-child(2) {
  background: #fff;
  border: solid #b3b3b3 1px;
  padding: 1rem;
}

div.Claim-box table tr > th,
div.Claim-box table tr > td {
  background: #fff;
  border: solid #b3b3b3 1px;
  padding: 1rem 1.5rem;
  line-height: 1.6;
}
div.Claim-box table tr > th {
  line-height: 1.8;
  width: 180px;
}

.Claim-box li {
  text-indent: -2em;
  padding-left: 2em;
}

.two-step-certification {
  display: grid;
  grid-template-columns: 210px 3fr;
  border: solid 1px #b3b3b3;
  margin-top: 1rem;
}

.two-step-certification > dt:nth-child(1) {
  background: #f2f2f2;
  text-align: center;
  padding: 1.5rem;
  border-right: solid 1px #b3b3b3;
  font-weight: bold;
}
.two-step-certification > dd {
  padding: 1.5rem;
}

/* 
会社概要
------------------------------------- */
.browser_table {
  width: 100%;
}
.browser_table th {
  background: #f2f2f2;
}
.browser_table th,
.browser_table td {
  border: solid 1px #b3b3b3;
  padding: 1rem;
  padding-left: 1.5rem;
}
.browser_table th {
  vertical-align: top;
  text-align: left;
}

.pdf_attention {
  border: solid 1px #b3b3b3;
  padding: 2rem 1.5rem;
  margin-top: 1rem;
}

.pdf_attention h4 {
  font-size: 1.7rem;
  font-weight: bold;
  color: #ff0000;
  margin-bottom: 0.5rem;
}
.pdf_attention ul li {
  padding-left: 2em;
  text-indent: -2em;
  line-height: 1.8;
}
/* 
会社概要
------------------------------------- */

.main-contents .company_about_contents .main-ttl h3 {
  color: #6f8398;
  border-bottom: solid 2px #6f8398;
}

.page-navi.company_about {
  background: #6f8398;
  padding: 1rem 0;
}

.page-navi.company_about ul {
  display: flex;
  gap: 1rem;
  align-items: center;
  width: 100% !important;
}

.page-navi.company_about ul:nth-child(1) li {
  width: 17% !important;
}

.page-navi.company_about ul li a {
  font-size: 1.5rem;
  font-weight: bold;
  color: #fff;
}
.round-navi.page-navi.company_about
  > div:nth-child(1)
  > ul:nth-child(1)
  li
  a::before {
  background: #fff;
}

.company_about {
  width: 100%;
}
.company_about tr td,
.company_about tr th {
  border: solid 1px #b3b3b3;
  padding: 0.8rem;
  padding-left: 2rem;
}

.company_about tr th {
  background: #f2f2f2;
  width: 170px;
  text-align: left;
}

.business-content h5 {
  background: #6f8398;
  color: #fff;
  font-size: 1.5rem;
  font-weight: bold;
  padding: 0.5rem 1rem;
  margin-bottom: 1rem;
}
.business-content h5.empty {
  margin-bottom: 3rem;
}

.business-content ul {
  margin-bottom: 2rem;
}

.business-content ul li {
  position: relative;
  padding-left: 2em;
  text-indent: -1em;
}
.business-content ul li::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #333333;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

#greeting {
  background: #f2f2f2;
  text-align: center;
  padding: 1rem;
  font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
}
#greeting p {
  line-height: 1.8;
}

.lineOnly {
  width: 100%;
}
.lineOnly tr:first-child th,
.lineOnly tr:first-child td {
  padding-top: 0;
}
.lineOnly tr th {
  font-weight: normal;
  text-align: left;
  vertical-align: top;
}
.lineOnly tr td {
  line-height: 1.8;
}
.lineOnly tr th,
.lineOnly tr td {
  padding: 2rem 0;
  border-bottom: solid 1px #b3b3b3;
}

/* 
利用規約
------------------------------------- */

.terms-section h4 {
  font-size: 1.5rem;
  font-weight: bold;
  margin-top: 2rem;
  margin-bottom: 0.5rem;
}
.terms-section li {
  position: relative;
  margin-bottom: 2.5rem;
  padding-left: 1em;
  text-indent: -0.6em;
}
.terms-section li::before {
  content: "";
  position: relative;
  left: -5px;
  top: 0;
  width: 8px;
  height: 8px;
  background: #000;
  display: inline-block;
}
.terms-section li ol li {
  list-style: none;
  padding-left: 1em;
}

.rule-box-text {
  font-size: 2.4rem;
  font-weight: bold;
  margin-bottom: 1rem;
  background: #f2f2f2;
  padding: 1rem 2rem;
}

.terms-section > h3:nth-child(1) {
  padding: 0.5rem;
  text-align: center;
  font-size: 2rem;
  font-weight: bold;
  border-bottom: solid 3px #b3b3b3;
  border-top: solid 1px #b3b3b3;
  margin-top: 3rem;
  margin-bottom: 2rem;
}

.terms-section > p {
  text-align: right;
}

.terms-section > p.information {
  text-align: left;
}
.terms-page .terms-section h4 {
  font-size: 1.5rem;
  font-weight: bold;
  margin-top: 2rem;
  margin-bottom: 0.5rem;
}
.terms-page .terms-section li {
  list-style: conic-gradient;
  list-style: decimal;
  list-style: decimal;
  list-style-position: inside;
  margin-bottom: 5px;
  padding-left: 1em;
  text-indent: -1.2em;
}
.terms-page .terms-section li ol li {
  list-style: none;
  padding-left: 1em;
}
.terms-page .terms-section li::before {
  content: none;
}
.terms-page .rule-box-text {
  font-size: 1.5rem;
  border: solid 1px #b3b3b3;
  margin-bottom: 1rem;
  background-color: #fff;
  font-weight: normal;
}

.terms-page .terms-section > p {
  text-align: right;
}

/* 新規会員フォーム
------------------------------------- */

.form-box {
  margin: 1rem 0;
}

.register-block .form-box .border-box-none {
  border: solid 1px #b3b3b3;
}
.register-block .border-box-none dl {
  border: none;
}

.form-box .border-box-none:not(:last-child) {
  border-bottom: none;
}
.register-block dl {
  width: 100%;
  display: grid;
  grid-template-columns: 250px 1fr;
  border: solid 1px #b3b3b3;
  align-items: unset;
}
.register-block div > dl:not(:last-child) {
  border-bottom: none;
}
.register-block div.headOfficeBlock > dl:not(:last-child) {
  border-bottom: solid 1px #b3b3b3;
}

.register-block dl dt {
  font-size: 1.5rem;
  font-weight: bold;

  padding: 1rem;
}
.colorRed {
  color: #ff0000;
}

.register-block dl dd {
  background: #f2f2f2;
  padding: 1rem;
}

.register-block dl dd .sentence {
  margin-top: 1rem;
  /*
  text-indent: -0.6em;
  margin-left: 1em;
  */
}

.register-block dl dd input[type="text"] {
  width: 450px;
  padding: 0.5rem 1rem;
  border: solid 1px #b3b3b3;
  border-radius: 4px;
  transition: border-color 0.3s ease;
  font-size: 1.5rem;
}

.register-block dl dd input[type="text"]:focus {
  border-color: #3a7ec5;
  outline: none;
}

.register-block dl.s-input-block dd input[type="text"] {
  width: 300px;
}

.register-block .address-block dl:not(:first-child) {
  border-top: none;
}

.address-block dl.address-block-item dt:has(p) {
  display: grid;
  align-items: center;
  grid-template-columns: 2.5em 1fr;
  gap: 0.7rem;
  padding: 0.5rem 2rem;
}

.address-block dl dt p {
  font-weight: normal;
}

.address-block dl.address-block-item dd {
  padding: 0.5rem 1rem;
}
dl dd > .address-block dl {
  border: none;
}
/* 郵便番号フィールド */

/* 要素 | https://soshin2020.dsds.blue/register-v2/cramschool.php */

.zip-box {
  display: flex;
  align-items: center;
  gap: 5px;
}

#zip,
#zipHeadOffice,
#zipAddressee,
#zipReceiver {
  width: 9em;
}

/* 郵便番号検索ボタン */
.serchZipButton {
  background: none;
  border: none;
  color: #3a7ec5;
  cursor: pointer;
  margin-left: 10px;
}

.serchZipButton:hover {
  opacity: 0.8;
}

/* 本部情報のアコーディオン */
.headOfficeAccordion {
  /* display: none; */
  border: none !important;
}
#headOfficeAccordionBlock {
  border-top: none !important;
}

/* その他の住所入力ブロック */
.otherReceiverBlock {
  /* display: none; */
  margin-top: 1rem;
  padding: 1rem;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
}

/* 生徒在籍数のグリッドレイアウト */
.student-count-grid {
  display: grid;
  grid-template-columns: auto auto auto auto auto auto auto auto auto;
  gap: 0.5rem;
  align-items: center;
}
.numberPeople {
  width: 6em !important;
}

/* ラベルのスタイル調整 */
.labelWiddt2 {
  font-size: 1.3rem;
  margin: 0 0.5rem;
}

.labelWiddt5,
.labelWiddt3,
.labelWiddt6,
.labelWiddt8,
.labelWiddt10,
.labelWiddt14 {
  font-size: 1.3rem;
  margin-right: 1rem;
}

/* カレンダースタイル */
.calendar {
  margin: 0.5rem 0 6rem;
  border-collapse: collapse;
  width: 100%;
}
.calendar table {
  width: 100%;
}
.calendar th,
.calendar td {
  padding: 0.8rem 0.5rem;
  text-align: center;
  border: 1px solid #b3b3b3;
  font-size: 1.2rem;
}
.calendar td {
  width: 59px;
}
.calendar .testName {
  background: #dcf0f0;
  font-weight: bold;
  font-size: 1.5rem;
  width: 140px;
}

.calendar .mondt {
  background: #e6f0ff;
  font-weight: bold;
  font-size: 1.5rem;
}

.calendar .backYellow {
  background: #e6f0ff;
}

.calendar .noSelect {
  background: #f8f8f8;
}

/* ボタンブロック */

#agreeBlock {
  background: #fff0f0;
  padding: 1rem;
  text-align: center;
  font-size: 1.6rem;
  font-weight: bold;
  margin: 1rem 0;
}

#bylawBlock > p:nth-child(1) {
  text-align: center;
}
#bylawBlock {
  margin-top: 4rem;
}
#buttonBlock {
  text-align: center;
  margin: 2rem 0 0;
  display: flex;
  justify-content: center;
  gap: 1rem;
}
#thisChangeButton {
  width: 25%;
  padding: 1rem 2rem;
}

#confirmButton,
#nextButton,
#thisChangeButton,
.confirmButton,
.nextButton,
.thisChangeButton {
  background: #ff0000;
  color: #fff;
  padding: 1rem 2rem;
  border: none;
  border-radius: 5px;
  font-size: 1.8rem;
  cursor: pointer;
  transition: background-color 0.3s ease;
  width: 290px;
  margin: 0rem 0 0;
  font-weight: bold;
}
.cart-side-box-inner-inner .cart-side-box-inner-inner-btn {
  width: 100% !important;
}

#backButton,
.back-button {
  background: #b3b3b3;
  color: #fff;
  border: none;
  font-weight: bold;
  width: 25%;
  padding: 1rem 2rem;
  border-radius: 5px;
  font-size: 1.8rem;
}

.changeReserv #nextButton {
  background: #ff9933;
}
#confirmButton:hover {
  background: #e60000;
}

/* 利用規約ブロック */
#bylawBlock {
}

#bylawDetail {
  max-height: 200px;
  overflow-y: auto;
  padding: 1rem;
  background: white;
  border: 1px solid #ddd;
  margin: 1rem 0;
}

/* 注意書きスタイル */
.colorGreen {
  font-size: 1.4rem;
}

.colorGreenLeft {
  color: #008000;
  font-size: 1.2rem;
  display: block;
  margin-top: 0.5rem;
}

.noticeRed {
  color: #ff0000;
  font-weight: bold;
  font-size: 1.3rem;
}

.register-block .labelWiddt5,
.register-block .labelWiddt3,
.register-block .labelWiddt6,
.register-block .labelWiddt8,
.register-block .labelWiddt10,
.register-block .labelWiddt14 {
  font-size: 1.5rem;
}

.register-block .labelWiddt5,
.register-block .labelWiddt3,
.register-block .labelWiddt6,
.register-block .labelWiddt8,
.register-block .labelWiddt10,
.register-block .labelWiddt14 {
  margin-right: 4rem;
}
#inputBlock > h5 {
  font-size: 1.5rem;
  margin-top: 3rem;
}

#inputBlock > h5 span:nth-child(1) {
  font-weight: bold;
}
.address-radio-block {
  display: flex;
  flex-wrap: wrap;
  width: 70%;
  gap: 1rem 0;
  margin-bottom: 1rem;
}
.address-radio-block label {
  margin-right: 3rem;
  width: 95px;
}
.cramSchoolForm_confirm .register-block dl dt {
  background: #f2f2f2;
}
.cramSchoolForm_confirm .register-block dl dd {
  background: none;
}
.radio-box {
  display: flex;
  align-items: center;
}
.cramSchoolForm_confirm .address-title,
.cramSchoolForm_confirm .colorRed {
  display: none;
}
.cramSchoolForm_confirm .address-block dl.address-block-item dt:has(p) {
  grid-template-columns: 1fr;
  font-weight: bold;
}

.cramSchoolForm_confirm .address-block dl dt p {
  font-weight: bold;
}

#completeFrame {
  padding: 2rem;
  border: solid 1px #b3b3b3;
}
#completeFrame h2:nth-child(1) {
  font-size: 2rem;
  font-weight: bold;
}
#completeFrame .comp-text {
  margin-top: 1rem;
  line-height: 1.6;
}
#completeFrame .attention-text {
  border: solid 1px #f00;
  width: fit-content;
  padding: 1rem;
  margin-top: 2rem;
}

#completeFrame .attention-text span {
  display: block;
}
#completeFrame .colorRed {
  font-weight: bold;
}

#Coupon-ticket > ul {
  background: #fb6666;
  padding: 2rem;
  border-radius: 10px;
}

#Coupon-ticket > ul li {
  font-size: 1.7rem;
  font-weight: bold;
  color: #fff;
  margin-bottom: 0.5rem;
}
#issue table {
  margin-top: 1rem;
}
#issue table th span {
  display: block;
  color: #fff;
  background: #fb6666;
  border-radius: 20px;
  width: fit-content;
  padding: 2px 4rem;
  margin: 0 auto 1rem;
}
#issue table th,
#issue table td {
  border: solid 1px #b3b3b3;
  padding: 1rem 0.9rem;
  font-size: 1.5rem;
  line-height: 1.6;
}
#issue table td p {
  font-weight: bold;
}
#issue table td p > span {
  text-decoration: underline;
}

#issue table .backRed {
  background: #fff0f0;
}
.smogiticket div.Precautions-box ul > ul {
  padding-left: 3em;
}
.smogiticket div.Precautions-box ul > ul li {
  padding-left: 3em;
  text-indent: -3em;
}

/* ----------------------------

回数券オンライン申込み 

---------------------------- */

.order-form {
  width: 100%;
}

/* フォームセクション */
.form-section,
.form-section-box {
  border: 1px solid #b3b3b3;
  margin-bottom: 1rem;
  background-color: #fff;
  margin: 2rem auto !important;
}
.form-section {
  margin-bottom: 0;
  border: none;
}

.form-section:first-child {
  border-top: 1px solid #b3b3b3;
}

.form-row {
  display: flex;
  align-items: flex-start;
  border-bottom: 1px solid #b3b3b3;
}

.form-row:last-child {
  border-bottom: none;
}

/* ラベル */
.smogiticket-application .form-label {
  padding: 15px 20px;
  font-weight: bold;
  width: 150px;
  /* min-height: 100%;*/
  display: flex;
  align-items: center;
  font-size: 15px;
}

.smogiticket-application .form-label.required span {
  color: #ff6b6b;
  margin-left: 2px;
  font-size: 1.5rem;
  line-height: 1;
  display: flex;
  align-items: center;
}

/* フォームコントロール */
.form-control {
  flex: 1;
  margin: 10px;
  padding: 10px 20px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #f2f2f2;
}

/* セレクトボックス */
.select-box {
  padding: 8px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  background-color: #fff;
  min-width: 120px;
}

.prefecture-select {
  min-width: 200px;
}

.unit {
  margin-left: 8px;
  font-size: 14px;
}

/* ラジオボタン */
.radio-group {
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
}

.radio-item {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: 14px;
}

.radio-item input[type="radio"] {
  display: none;
}

.radio-mark {
  width: 16px;
  height: 16px;
  border: 2px solid #ccc;
  border-radius: 50%;
  margin-right: 8px;
  position: relative;
  background-color: #fff;
}

.radio-item input[type="radio"]:checked + .radio-mark {
  border-color: #333;
}

.radio-item input[type="radio"]:checked + .radio-mark::after {
  content: "";
  width: 8px;
  height: 8px;
  background-color: #333;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* 時間オプション */
.time-options {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}
.time-options .time-option {
  width: 22%;
  margin-bottom: 0 !important;
}
.time-options .time-option:nth-child(2) {
  width: 70%;
}
.time-option {
  margin: 0;
}

/* テキスト入力 */
.text-input {
  padding: 8px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  width: 100%;
  max-width: 450px;
}

.phone-input,
.director-input {
  max-width: 300px;
}
s
/* 郵便番号 */
.postal-code {
  display: flex;
  align-items: s;
  gap: 5px;
}

.postal-prefix {
  font-size: 14px;
}

.postal-input {
  padding: 8px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  text-align: left;
}

.postal-input:first-of-type {
  width: 80px;
}

.postal-input:last-of-type {
  width: 120px;
}

.postal-separator {
  font-size: 14px;
}

/* 住所フィールド */

.address-section,
.delivery-date-section {
  width: calc(100% - 170px);
  margin-left: auto;
  background: #f2f2f2;
  margin: 10px;
  padding: 10px 20px;
  margin-left: auto;
}

.address-section .form-row {
  align-items: center;
}
.address-section label {
  padding-left: 0;
}

.address-section .form-control {
  margin: 0;
  padding: 0;
}

.address-section .form-label {
  padding: 0;
  width: 200px;
  font-weight: bold;
}

.address-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sub-label {
  font-size: 14px;
  width: 11em;
  display: flex;
  align-items: center;
  margin-left: auto;
  font-weight: normal;
}

.delivery-section {
  border-top: solid 1px #b3b3b3;
}
.confirm-form .delivery-section {
  border-top: none;
}
.delivery-section .form-row {
  border-bottom: none;
}

/* 日付セレクター */
.date-selector {
  display: flex;
  align-items: center;
  gap: 8px;
}

.form-control .date-select {
  padding: 8px 12px;
  border: 1px solid #ccc;
  border-radius: 0px;
  font-size: 14px;
  background-color: #fff;
  min-width: 40px;
}

.date-label {
  font-size: 14px;
}

.day-of-week {
  margin-left: 12px;
  font-size: 14px;
  color: #666;
}
.delivery-date-section .form-row {
  display: block;
}
.delivery-date-section .form-row label {
  padding: 0;
  margin-bottom: 1rem;
}
.delivery-date-section .form-row .form-label {
  font-weight: bold;
}
.delivery-date-section .form-row .form-control {
  margin: 0;
  padding: 0;
}
.delivery-date-section.form-control,
.delivery-designation-section .form-control {
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}

.delivery-date-section .form-row {
  margin-top: 2rem;
}
.delivery-date-section {
  margin-top: 0;
}
/* テキストエリア */
.textarea {
  width: 100%;
  min-height: 120px;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  font-family: inherit;
  resize: vertical;
}

/* 文字制限表示 */
.char-limit {
  font-size: 12px;
  color: #ff6b6b;
  margin-top: 4px;
}

.phone-note {
  font-size: 14px;
  color: #333;
}

/* リンク */
.info-link,
.postal-search-link {
  color: #0066cc;
  text-decoration: none;
  font-size: 12px;
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.issue-section .info-link {
  margin-left: 4rem;
}

.info-link:hover,
.postal-search-link:hover {
  text-decoration: underline;
}

/* 注意事項 */
.delivery-note,
.calendar-note {
  font-size: 14px;
  color: #333;
  margin-top: 5px;
  line-height: 1.4;
  width: 100%;
}

.remarks-description {
  font-size: 14px;
  margin-bottom: 8px;
  color: #333;
}

.form-section button {
  border: none;
  padding: 15px 60px;
  font-size: 16px;
  font-weight: bold;
  border-radius: 4px;
  cursor: pointer;
  display: block;
  margin: 20px auto;
  color: white;
}
/* 次へボタン */
.next-button {
  background-color: #ff0000;

  min-width: 450px;
}
.back-button {
  background-color: #b3b3b3;
  width: 220px;
}

.form-section.button-section {
  display: flex;
  gap: 2rem;
  justify-content: center;
  align-items: center;
  margin-top: 5rem !important;
}
.button-section button {
  margin: 0;
}
.next-button:hover {
  background-color: #e60000;
}

/* 住所セクション */
.address-section .form-row {
  border-bottom: 1px solid #f0f0f0;
}
.address-section .form-row + .form-row {
  margin-top: 1rem;
}
/* フォーカス状態 */
.text-input:focus,
.select-box:focus,
.textarea:focus {
  outline: none;
  border-color: #0066cc;
  box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.2);
}

/* 無効状態 */
.text-input:disabled,
.select-box:disabled {
  background-color: #f5f5f5;
  color: #999;
  cursor: not-allowed;
}
.sheets-section .select-box {
  width: 120px;
}

.remarks-section .form-control {
  flex-direction: column;
  align-items: flex-start;
}
.confirm-form .form-label {
  font-size: 15px;
  font-weight: normal;
  padding: 10px 20px 0;
}
.confirm-form .form-control {
  font-size: 15px;
  font-weight: normal;
  margin: 0;
  background: #fff;
  padding: 10px 20px 0;
}
.confirm-form .issue-section {
  margin-bottom: 2rem;
}

.confirm-form .sheets-section .form-label {
  padding: 10px 20px;
}

.confirm-form .form-section-box .form-row {
  border-bottom: none;
  margin-top: 0;
}
.confirm-form .address-section,
.confirm-form .delivery-date-section {
  background: none;
  padding-left: 0;
  margin-top: 0;
  padding-top: 0;
  font-size: 15px;
}
.confirm-form .delivery-date-section {
  margin-bottom: 0;
}
.confirm-form .address-section .form-label,
.confirm-form .address-section .form-control,
.confirm-form .delivery-date-sectionn .form-label,
.confirm-form .delivery-date-section .form-control {
  padding: 2px 10px;
  background: #fff;
  font-size: 15px;
}
.confirm-form .address-section .form-label {
  width: 110px;
  font-size: 15px;
  font-weight: normal;
}
.confirm-form .delivery-date-section .form-label {
  font-size: 15px;
  font-weight: normal;
  width: fit-content;
  margin-bottom: 0;
}

.confirm-form .delivery-date-section .form-row {
  display: flex;
  margin-top: 0;
  align-items: center;
}

.confirm-form .form-control p {
  font-size: 15px;
}

.confirm-form .remarks-section .form-control {
  padding: 10px 20px;
  background: #f2f2f2;
  margin: 10px;
}

/* 要素 | https://soshin2020.dsds.blue/smogiticket-v2/application/?action=test */

.print-box {
  background: #fff0f0;
  padding: 2rem 3rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.print-box p {
  line-height: 1.7;
}

.print-box-link > a:nth-child(1) {
  font-size: 16px;
  display: flex;
  align-items: center;
  gap: 1rem;
  justify-content: center;
  border: solid 1px #ff0000;
  background: #fff;
  color: #ff0000;
  border-radius: 5px;
  padding: 1rem 1rem;
  font-weight: bold;
  width: 190px;
}

/* ----------------------------


総進Ｓもぎ会場受験

---------------------------- */

.Venue-examination-area .main-contents section {
  margin: 6rem auto;
}
.Venue-examination-area .main-contents section:first-of-type {
  margin-top: 0;
}

.Venue-examination-area .page-navi > div:nth-child(1) > ul:nth-child(1) {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0;
  width: 100%;
}
.Venue-examination-area .page-navi div:nth-child(1) > ul li:nth-child(1) {
  width: 16em;
}
.Venue-examination-area .page-navi div:nth-child(1) > ul li:nth-child(2) {
  width: 22em;
}
.Venue-examination-area .page-navi div:nth-child(1) > ul li:nth-child(3) {
  width: 17em;
}
.Venue-examination-area .page-navi div:nth-child(1) > ul li:nth-child(4) {
  width: 10em;
}
.Venue-examination-area .page-navi div:nth-child(1) > ul li:nth-child(5) {
  width: 16em;
}
.Venue-examination-area .page-navi div:nth-child(1) > ul li:nth-child(6) {
  width: 22em;
}
.Venue-examination-area .page-navi div:nth-child(1) > ul li:nth-child(7) {
  width: 17em;
}
.Venue-examination-area .page-navi div:nth-child(1) > ul li:nth-child(8) {
  width: 16em;
}
.Venue-examination-area .page-navi div:nth-child(1) > ul li:nth-child(9) {
  width: 22em;
}
.Venue-examination-area .page-navi div:nth-child(1) > ul li:nth-child(10) {
  width: 17em;
}

#Venue-Features ul {
  border: solid 11px #dcf0f0;
  padding: 1rem;
}

#Venue-Features ul li {
  font-size: 1.7rem;
  line-height: 2;
  padding-left: 2em;
  text-indent: -2em;
}

.school-list-ttl {
  background: #dcf0f0;
  color: #333;
  font-size: 1.8rem;
  font-weight: bold;
  padding: 3px 5px;
  margin-bottom: 2rem;
}

.school-list-box {
  display: grid;
  grid-template-columns: 225px 205px 290px 270px;
}
.school-list-box ul {
  position: relative;
}
.school-list-box ul:not(:last-child)::after {
  margin-right: 2rem;
  content: "";
  width: 1px;
  height: 100%;
  background: #b3b3b3;
  display: block;
  position: absolute;
  right: 0;
  top: 0;
}
.school-list-box ul li {
  font-size: 1.5rem;
  margin-bottom: 5px;
}

.school-list-box > p:nth-child(5) {
  font-weight: bold;
  margin-top: 1rem;
}
#yearly-schedule table {
  margin-top: 1rem;
}

#yearly-schedule table th,
#yearly-schedule table td {
  border: solid 1px #b3b3b3;
  padding: 8px 1rem;
}

#yearly-schedule table tr:nth-child(1) th {
  background: #e6f0ff;
  font-weight: bold;
  font-size: 1.5rem;
  text-align: left;
}

.Grades-btn2 a {
  background: #3ba2a4;
  color: #fff;
  padding: 2rem 1.5rem;
  display: block;
  font-size: 1.7rem;
  position: relative;
  font-weight: bold;
  text-align: center;
  border-radius: 5px;
  width: 50%;
}
#Venue-flow table {
  width: 100%;
}

#Venue-flow table th {
  background: #dcf0f0;
  width: 180px;
  text-align: left;
}

#Venue-flow table th,
#Venue-flow table td {
  border: solid 1px #b3b3b3;
  text-align: left;
  padding: 1rem 1rem 1rem 2rem;

  line-height: 1.7;
}

.wear-box + .wear-box {
  margin-top: 4rem;
}
div.wear-box .wear-ttl {
  background: #dcf0f0;
  color: #333;
  font-size: 1.5rem;
  font-weight: bold;
  padding: 3px 1rem;
  margin-bottom: 2rem;
}

div.wear-box .wear-ttl::before {
  content: "";
  background: #000;
  width: 10px;
  height: 10px;
  display: inline-block;
  margin-right: 2px;
}

.wear-txt span {
  font-size: 1.7rem;
  color: #333333;
  text-decoration: underline;
  display: block;
}

.wear-box ul li {
  font-size: 1.5rem;
  padding-left: 0em;
  text-indent: -0em;
  margin-left: 1em;
  position: relative;
}
.wear-box ul li span {
  font-weight: bold;
}

.wear-box ul li::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #333;
  position: absolute;
  top: 50%;
  left: -1em;
  transform: translateY(-50%);
}
.wear-box ul li:first-of-type::before {
  top: 50%;
}
.score-table {
  width: 100%;
  margin: 1rem 0;
}
.score-table th,
.score-table td {
  font-weight: bold;
  font-size: 1.5rem;
  text-align: left;
  border: solid 1px #b3b3b3;
  padding: 1rem;
}
.score-table th {
  text-align: center;
}
.score-table td {
  font-weight: bold;
  font-size: 3rem;
  width: 33%;
  padding: 1.5rem 1rem;

  text-align: right;
}
.timetable-table {
  width: 100%;
  margin: 1rem 0;
}
.timetable-table th {
  font-weight: bold;
  font-size: 1.5rem;
  text-align: left;
  border: solid 1px #b3b3b3;
  padding: 1rem;
  background: #f2f2f2;
  line-height: 1.7;
}
.timetable-table td {
  border: solid 1px #b3b3b3;
  vertical-align: top;
  padding: 1rem 1rem;
  text-align: left;
}

/* 要素 | https://soshin2020.dsds.blue/smogiCram-v2/ */

.fee-box {
  background: #f2f2f2;
  padding: 2rem;
}

/* 要素 | https://soshin2020.dsds.blue/smogiCram-v2/ */

.fee-box > p:nth-child(1) {
  margin-bottom: 1rem;
}

.fee-txt {
  background: #fff;
  border: solid 1px #b3b3b3;
  padding: 1rem;
  font-size: 1.5rem;
}
#Venue-notice ul ul {
  margin-left: 2em;
}
#Venue-notice ul li {
  line-height: 1.6;
}
#Venue-notice ul > ul > li {
  padding-left: 3em;
  text-indent: -3em;
}

/*

総進Sもぎ会場受験／日程・会場


*/

.schedule-contents h3 {
  font-size: 2.5rem;
  font-weight: bold;
  margin-bottom: 1rem;
}

.schedule-box {
  margin-bottom: 2rem;
}

.schedule-box .schedule-box-title {
  border: solid 1px #3a7ec5;
  padding: 1rem;
  border-radius: 5px;
  display: flex;
  gap: 5rem;
  align-items: center;
  position: relative;
}
.schedule-box .schedule-box-title::before,
.schedule-box .schedule-box-title::after {
  content: ""; /* 疑似要素に必須 */
  width: 15px; /* 幅いっぱいを指定 */
  height: 2px; /* 適度な太さを指定 */
  display: inline-block; /* 高さを持たせるためにinline-blockを指定 */
  background: #3a7ec5; /* 線の色を指定 */
  border-radius: 2px; /* 線の端を丸くしたいなら指定する */
  position: absolute; /* 相対位置に指定 */
  top: 50%; /* 表示位置を上から0pxに指定 */
  right: 10px; /* 表示位置を左から0pxに指定 */
  transform: translateY(-50%);
}

.schedule-box .schedule-box-title::before {
  transform: translateY(-50%) rotate(0deg); /* 時計回りに45度回転させる */
  transition: 0.4s;
}
.schedule-box .schedule-box-title::after {
  transform: translateY(-50%) rotate(-90deg); /* 反時計回りに45度回転させる */
  transition: 0.4s;
}
.schedule-box .schedule-box-title.active::before {
}
.schedule-box .schedule-box-title.active::after {
  transform: translateY(-50%) rotate(0deg); /* 反時計回りに45度回転させる */
}

.schedule-box .schedule-box-title span:nth-child(1) {
  font-size: 2.1rem;
  font-weight: bold;
  color: #3a7ec5;
  width: 9em;
}
.schedule-box .schedule-box-title p {
  font-size: 1.6rem;
  font-weight: bold;
  color: #ff0000;
}
.schedule-box .schedule-box-title.schedule-box-finish p,
.schedule-box .schedule-box-title.schedule-box-coming p {
  font-size: 1.6rem;
  font-weight: normal;
  color: #333;
}

.schedule-box.smogi-inner table {
  margin-top: 1rem;
}
.schedule-box.smogi-inner table tr th {
  width: 175px;
}
.schedule-box.smogi-inner table tr td {
  width: 825px;
}
.schedule-box.smogi-inner .from-comment {
  padding: 1rem;
  margin-top: -1rem;
  border: solid 1px #b3b3b3;
  border-top: none;
}
.schedule-box.smogi-inner .from-comment-title {
  font-size: 1.5rem;
}
.schedule-box.smogi-inner .from-comment-text {
  font-size: 1.5rem;
  width: 47em;
  max-height: 10em;
}

.from-content-title {
  background: #6f8398;
  color: #fff;
  padding: 1rem;
  margin-bottom: 1rem;
}
.from-content-title-date {
  font-size: 1.8rem;
  font-weight: bold;
}

.from-content {
  display: none;
}
.from-content > ul {
  background: #e6f0ff;
  padding: 2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 4rem;

  margin: 1rem 0;
}

.from-content > ul > li {
  font-size: 1.8rem;
  font-weight: bold;
}

.from-content > ul > li:nth-child(4) {
  width: 100%;
}

.from-content-list {
  width: 100%;
  margin-bottom: 5px;
}
.from-content-list th,
.from-content-list td {
  border: solid 1px #b3b3b3;
  font-size: 1.5rem;
  font-weight: normal;
  box-sizing: border-box;
}
.from-content-list th {
  background: #f2f2f2;
  width: 110px;
  padding: 5px 10px;
  text-align: left;
}
.from-content-list td {
  width: 150px;
  padding: 5px 10px;
}
.from-content-list td p {
  width: 52em;
}

.schedule-box-btn > a:nth-child(1) {
  background: #ff0000;
  color: #fff;
  display: flex;
  width: 120px;
  height: 120px;
  border-radius: 5px;
  font-size: 1.8rem;
  font-weight: bold;
  justify-content: center;
  align-items: center;
  box-shadow: 0px 1px 6px 0px rgba(0, 0, 0, 0.35);
  position: fixed;
  bottom: 50%;
  right: 2%;
}
.map-td {
  position: relative;
}
.map-td .map-td-link {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: auto;
}
.from-content-message-contents {
  display: flex;
}
.from-content-message p {
  width: 47em !important;
}

/*
総進Ｓもぎ塾内実施

*/

#schedule-question table,
#schedule-question table th,
#schedule-question table td {
  border: solid 1px #b3b3b3;
  padding: 10;
}
#schedule-question table th,
#schedule-question table td {
  padding: 8px 10px;
  text-align: left;
}

#schedule-question table {
  width: 100%;
  margin-top: 1rem;
}
#schedule-question table tr:nth-child(1) th {
  background: #e6f0ff;
}

.smogi-inner .Grades-btn {
  grid-template-columns: 1fr 1fr;
}

#Grades > p {
  margin-top: 1rem;
  font-size: 1.5rem;
}
.smogi-inner #Features ul {
  padding: 1.5rem;
  border: solid 10px #dcf0f0;
}
.smogi-inner #Features ul li {
  margin-bottom: 1rem;
  font-size: 1.7rem;
}
#shipping-flow table {
  width: 100%;
}
#shipping-flow table,
#shipping-flow table th,
#shipping-flow table td {
  border: solid 1px #b3b3b3;
  padding: 10;
}
#shipping-flow table th,
#shipping-flow table td {
  padding: 10px 15px;
  text-align: left;
}

#shipping-flown table {
  width: 100%;
  margin-top: 1rem;
}
#shipping-flow table tr th {
  background: #dcf0f0;
}
#shipping-flow table td {
  line-height: 1.8;
}

.smogi-inner #price > div:nth-child(2) {
  background: #f2f2f2;
  padding: 2rem;
  font-size: 1.5rem;
}

.smogi-inner #price > div:nth-child(2) > p:nth-child(1) {
  padding: 1rem 1.5rem;
  background: #fff;
  border: solid 1px;
  margin-top: 1rem;
  line-height: 1.8;
}

.smogi-inner .page-navi > div:nth-child(1) > ul:nth-child(1) {
  width: 100%;
}

.smogi-inner .page-navi > div:nth-child(1) > ul:nth-child(1) li {
  width: 25%;
}
/*
総進Sもぎ会場受験／日程・会場

*/

.schedule-area .page-navi > div:nth-child(1) > ul li {
  width: 21%;
  position: relative;
}

.schedule-area .page-navi > div:nth-child(1) > ul {
  width: 98%;
}
.schedule-area .page-navi > div:nth-child(1) > ul li a {
  position: relative;
  display: block;
}
.schedule-area .page-navi > div:nth-child(1) > ul li a::before {
  content: "";
  width: 10px;
  height: 10px;
  background: #3a7ec5;
  border-radius: 50%;
  position: relative;
  display: block;
  left: -10px;
  top: -50%;
  transform: translateY(-50%);
}

.smogicramresult-area div.teacher-junior-conts:nth-child(1) ul {
  margin-top: 5.5rem;
  margin-bottom: 2rem;
}

div.application-form-container .field-group.cd-box {
  align-items: flex-start;
}

div.application-form-container .field-group.cd-box select {
  margin: 0.5rem 0;
}

.smogi-inner-from .select-input {
  min-width: 120px;
}

/*----------------------------

塾会員登録

----------------------------*/

/* パンクズナビゲーションのフォントサイズ */
.cramschoolRegister
  .page-ttl.breadcrumb-box-flow
  .breadcrumb
  li.breadcrumb-item {
  font-size: 1.5rem;
}
.cramschoolRegister .from-ttl {
  display: flex;
  align-items: baseline;
  gap: 1em;
}
/* 利用規約のスクロール可能なコンテナ */
.terms-container {
  border-radius: 4px;
  background-color: #fff;
}

.agreement-content .terms-section {
  max-height: 31em; /* 約20行分の高さ（行高1.5em × 10行 + 余白） */
  overflow-y: auto;
  padding: 2rem;
  margin: 10px 0;
  border: solid 1px #a8a8a8;
  font-size: 1.5rem;
}

/* 規約前文（rule-box-text）はスクロール対象にしない */
.agreement-content .rule-box-text {
  max-height: none;
  overflow: visible;
  border: none;
  font-size: 1.5rem;
}

.agreement-content .terms-section h4 {
  margin-top: 1em;
  margin-bottom: 0.5em;
}
.agreement-content .terms-section h4:first-of-type {
  margin-top: 0;
}
.agreement-content .terms-section ol {
  margin-left: 1.5em;
  padding-left: 0;
}

.agreement-note {
  margin: 15px 0;
  text-align: center;
}

.agreement-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  background: #fff0f0;
  padding: 12px 16px;
}

.agreement-check {
  margin: 0;
  padding: 0;
}

.agreement-check label {
  display: flex;
  align-items: center;
  cursor: pointer;

  font-size: 1.6rem;
  text-align: center;
  font-weight: bold;
  margin: auto;
  justify-content: center;
  width: 100%;
}

.agreement-check input[type="checkbox"] {
  margin-right: 8px;
}

.agreement-check .error {
  color: #d32f2f;
  margin-top: 5px;
  font-size: 1.5rem;
}

.error-message {
  background-color: #ffebee;
  border: 1px solid #d32f2f;
  border-radius: 4px;
  padding: 10px;
  margin: 15px 0;
  color: #d32f2f;
}

.form-submit {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin-top: 30px;
}

.btn-back,
.btn-next {
  padding: 12px 30px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 1em;
  font-weight: bold;
  transition: background-color 0.3s;
}

.btn-back {
  background-color: #949494;
  color: #fff;
  width: 28%;
  font-size: 1.6rem;
  font-weight: bold;
}

.btn-back:hover {
  background-color: #d0d0d0;
}

.btn-next {
  background-color: #ff0000;
  color: #fff;
  font-size: 1.8rem;
  font-weight: bold;
  width: 46%;
}

.btn-next:hover {
  background-color: #b71c1c;
}

.from-ttl h3:nth-child(1) {
  font-size: 2.6rem;
  font-weight: bold;
  margin-bottom: 1rem;
}

/* 説明文 */
.mail-input-description {
  text-align: left;
  font-size: 1.5rem;
  color: #333;
  font-size: 1.5rem;
}
.mail-input-content {
  padding: 2rem;
  border: solid 1px #999999;
  margin-top: 1rem;
}
/* メールアドレス入力フィールド */
.mail-input-field {
  margin: 30px 0;
}

.input-wrapper {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
}

.email-input {
  width: 480px;
  display: block;
  padding: 12px 15px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 1.5rem;
  background-color: #fff;
}

.email-input:focus {
  outline: none;
  border-color: #d32f2f;
  box-shadow: 0 0 0 2px rgba(211, 47, 47, 0.1);
}

.input-hint {
  font-size: 1.4rem;
  white-space: nowrap;
}

.mail-input-field .error {
  color: #d32f2f;
  margin-top: 8px;
  font-size: 0.9em;
}

.error-message {
  display: none;
  background-color: #ffebee;
  border: 1px solid #d32f2f;
  border-radius: 4px;
  padding: 10px;
  margin: 15px 0;
  color: #d32f2f;
}
.error-message.backend {
  display: block;
}

/* 送信ボタン */
.form-submit {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

.btn-submit {
  background-color: #ff9800;
  color: #fff;
  padding: 12px 50px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 1.1em;
  font-weight: bold;
  transition: background-color 0.3s;
  font-size: 1.7rem;
  min-width: 290px;
}

.btn-submit:hover {
  background-color: #f57c00;
}

.btn-submit:active {
  background-color: #e65100;
}

.mail-input-field {
  padding: 2rem;
  background: #f2f2f2;
  margin-top: 1rem;
}

.otp-input-container {
  display: flex;
  gap: 10px;
}

.otp-input-form {
  background: #fff;
  border: solid 1px #999999;
  padding: 2rem;
  width: 560px;
}

.otp-input-form h3 {
  font-size: 1.5em;
  font-weight: bold;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid #e5e5e5;
}

.otp-input-form .form-box {
  margin-bottom: 20px;
}

.otp-input-form .guide-text {
  margin-bottom: 1rem;
  line-height: 1.6;
  color: #333;
  font-size: 1.5rem;
}
.otp-input-form .note {
  margin-bottom: 1rem;
  color: #ff0000;
  font-size: 1.4rem;
  text-indent: -1em;
  padding-left:1em;
}
.password-input-container {
  position: relative;
  display: flex;
  align-items: center;
}

.password-input-container input {
  flex: 1;
  padding-right: 40px;
  padding: 1rem;
  border-radius: 10px;
  border: solid 1px #999999;
}

.otp-input-form .toggle-icon {
  right: 16px;
}

.toggle-icon {
  position: absolute;
  right: 66px;
  cursor: pointer;
  font-size: 1.2em;
  color: #666;
  z-index: 10;
}

.toggle-icon:hover {
  color: #333;
}

.otp-help-section {
  width: 420px;
  background: #fff;
  padding: 2rem;
  border: 1px solid #999;
}

.otp-help-section h3 {
  font-weight: bold;
  margin-bottom: 10px;
  color: #000;
  font-size: 1.5rem;
  letter-spacing: 0;
}

.help-content {
  margin-bottom: 30px;
}

.help-content ol {
  line-height: 1.5;
  color: #000;
  font-size: 1.5rem;
}

.help-content ol li {
  margin-bottom: 10px;
  padding-left: 2em;
  text-indent: -2em;
}

.help-actions {
  margin-top: 20px;
  text-align: center;
}

.btn-back-mail {
  width: 100%;
  padding: 12.5px 20px;
  background: #b3b3b3;
  border: none;
  border-radius: 4px;
  color: #fff;
  font-size: 1.7rem;
  font-weight: bold;
  cursor: pointer;
  transition: background 0.3s;
  width: 310px;
  text-align: center;
}

.btn-back-mail:hover {
  background: #e8e8e8;
}

.form-submit {
  margin-top: 30px;
  text-align: center;
}

.s-input-block > dd:nth-child(1) {
  padding: 2rem 2rem;
  padding-right: 2rem;
  background: #f2f2f2;
  padding-right: 4rem;
  background: #f2f2f2;
}

/** 総進Sもぎ塾内実施 */
.smogi-inner-from .application-form-container {
  grid-template-columns: 130px 1fr 1fr;
}
#cart .smogi-inner-from .label {
  font-size: 1.5rem;
}
#delivery .smogi-inner-from .form-notice p,
#delivery .smogi-inner-from .field-label,
#delivery .smogi-inner-from .field-group.cd-box .field-label,
#delivery .smogi-inner-from .field-group.cd-box p,
#confirm .form-notice p,
#confirm .smogi-inner-from .form-notice p,
#confirm .smogi-inner-from .field-label,
#confirm .smogi-inner-from .field-group.cd-box .field-label,
#confirm .smogi-inner-from .field-group.cd-box p {
  font-size: 1.5rem;
}

.smogi-inner-from .info-item,
.smogi-inner-from .form-notice,
/* .smogi-inner-from .form-notice p, */
.smogi-inner-from .form-fields p,
.smogi-inner-from .form-fields p span {
  font-size: 1.5rem;
}
.smogi-inner-from .form-fields p.attention {
  font-size: 1.4rem;
}
.smogi-inner-from .field-label {
  font-weight: normal;
}
.smogi-inner-from .select-input {
  min-width: 5em;
}
.smogi-inner-from .label {
  font-weight: normal;
}
.smogi-inner-from .field-group.cd-box .field-label {
  font-size: 1.3rem;
}
.smogi-inner-from .field-group.cd-box p {
  font-size: 1.3rem;
}
.smogi-inner-from .form-spec-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 1rem;
}

.smogi-inner-from .text-input.num {
  width: 4em;
}

#errorModal .modal-body p,
#retryModal .modal-body p {
  font-size: 1.5rem;
  font-weight: bold;
}

.forgot-page #mainLoginBlock {
}
.forgot-page-inner {
  border: solid 1px #999;
  padding: 2rem;
}

.forgot-page #mainLoginBlock dl dt {
  font-size: 1.7rem;
  font-weight: bold;
}

.forgot-page #mainLoginBlock dl dt .required {
  font-size: 1.5rem;
  font-weight: normal;
}

.forgot-page #mainLoginBlock dl dd:nth-child(2) {
  margin-left: 3rem;
  background: #f2f2f2;
  padding: 1.5rem;
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem;
}
.forgot-page #mainLoginBlock dl dd:nth-child(3) {
  margin-top: 1rem;
  margin-left: 3rem;
}
.forgot-page #mainLoginBlock dl dd span {
  font-size: 1.5rem;
  font-weight: normal;
}
.forgot-page #mainLoginBlock dl dd input {
  width: 50%;
  padding: 1rem;
  border: solid #999999 1px;
  border-radius: 5px;
  font-size: 1.5rem;
}
.forgot-page #mainLoginBlock dl dd select {
  font-size: 1.5rem;
}
.forgot-page #mainLoginBlock dl + dl {
  margin-top: 2rem;
}

#userType {
  width: 35%;
}
.newPasswordu-input-box dl {
  background: #f2f2f2;
  padding: 2rem;
}

#newPassword {
  width: 100% !important;
}
.newPassword-requirements li {
  font-size: 1.4rem;
}
.newPassword-input {
  width: 50%;
  position: relative;
}
.newPasswordu-input-box dl dd input {
  width: 100% !important;
}
.forgot-page #mainLoginBlock .newPasswordu-input-box dl dd:nth-child(2) {
  margin-left: 0rem;
  padding: 0;
  gap: 1rem;
}

.forgot-page #mainLoginBlock .newPasswordu-input-box dl dd span {
  top: 50%;
  transform: translateY(-50%);
  right: 9px;
}

.forgot-page #mainLoginBlock .newPasswordu-input-box dl dt {
  font-size: 1.5rem;
}

/* お問い合わせ */

.contact-form-box p.attention {
  font-size: 1.6rem;
  text-align: center;
  background: #fff0f0;
  padding: 8px 16px;
  border: solid 2px;
  color: #f00;
  font-weight: bold;
}

.contact-page form {
  border: solid 1px #b3b3b3;
}

.contact-page form dl {
  display: grid;
  grid-template-columns: 240px auto;
  align-items: center;
}

.contact-page form dl dt {
  width: 240px;
  padding: 1rem;
  font-size: 1.5rem;
  font-weight: bold;
}
.contact-page form dl dd:nth-child(2) {
  background: #f2f2f2;
  padding: 1rem;
}
.contact-page form dl dd:nth-child(2) select {
  font-size: 1.5rem;
}
.contact-page form .contact-form-box-item dl + dl dd {
  padding-top: 1px;
}

.contact-page form dl dd:nth-child(2) input {
  width: 450px;
}
.contact-page form dl dd:nth-child(2) textarea {
  width: 100%;
  min-height: 300px;
  max-height: 50em;
}
.contact-page form dl dd:nth-child(2) input,
.contact-page form dl dd:nth-child(2) textarea {
  padding: 7px;
  border: 1px solid #ccc !important;
}
.contact-form-box-item {
  border-bottom: solid 1px #b3b3b3;
}

.contact-page form .contact-form-box-item:last-child {
  border-bottom: none;
}
.contact-box > dl {
  border: solid 1px #b3b3b3;
  border-radius: 10px;
  padding: 2rem;
}
.contact-box > dl + dl {
  margin-top: 2rem;
}

.contact-box > dl dt {
  font-size: 2rem;
  font-weight: bold;
  padding-bottom: 0.5rem;
  border-bottom: solid 1px #b3b3b3;
  margin-bottom: 1rem;
}

.contact-box > dl dd p span a {
  color: #f00;
  font-size: 2.6rem;
  font-weight: bold;
}

.contact-box > dl dd .contact-box-link a {
  width: fit-content;
  padding: 1rem 5rem;
  border: solid 1px;
  color: #f00;
  margin-top: 2rem;
  display: flex;
  border-radius: 5px;
  font-weight: bold;
}

.contact-page form .confirm-block dl dt {
  background: #f2f2f2;
  height: 100%;
  align-items: center;
  display: flex;
}

.contact-page form .confirm-block dl dd:nth-child(2) {
  background: #fff;
}

.contact-page #sentButton {
  background: #ff0000;
  color: #fff;
  padding: 1rem 2rem;
  border: none;
  border-radius: 5px;
  font-size: 1.8rem;
  cursor: pointer;
  transition: background-color 0.3s ease;
  width: 40%;
  margin: 0rem 0 0;
  font-weight: bold;
}

.inquiry-modal-buttons {
  display: flex;
  gap: 1rem;
}

.inquiry-modal-buttons button {
  border: none;
  color: #fff;
  font-size: 2.1rem;
  font-weight: bold;
  width: 260px;
  border-radius: 5px;
  height: 115px;
}
#cramMemberBtn {
  background: #3ba2a4;
}
#nonMemberBtn {
  background: #969696;
}

.contact .modal {
  overflow: unset;
}

.contact .login-box {
  display: none;
}

.cram-page #mainImage,
.cram-page #headNavi {
  display: none;
}
.h-navi-container {
  background: #3ba2a4;
  position: relative;
  /* .sticky-subheader（z-index:900）より手前にし、ドロップダウンがページナビに隠れないようにする */
  z-index: 1100;
}

.h-navi-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
}

.h-navi-list > li {
  position: relative;
}

.h-navi-list > li > a {
  display: block;
  padding: 1.5rem 16px;
  padding-right: 30px;
  text-decoration: none;
  color: #fff;
  white-space: nowrap;
  position: relative;
}
.h-navi-list > li.link-parent > a::after {
  content: "";
  width: 8px;
  height: 8px;
  position: absolute;
  right: 10px;
  border-top: solid 1px #fff;
  border-right: solid 1px #fff;
  top: 45%;
  transform: translateY(-50%) rotate(135deg);
}

.link-parent .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  border: 1px solid #ddd;
  min-width: 200px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
  z-index: 200;
  padding: 1rem 1.5rem;
}

.sub-menu li + li a {
  margin-top: 0.5rem;
}

.sub-menu li:last-child {
  border-bottom: none;
}

.sub-menu a {
  display: block;
  padding: 0px;
  color: #222;
  background: #fff;
  text-decoration: none;
  white-space: nowrap;
}

.sub-menu a:hover {
  background: #f3f7fa;
}

.top-main-contents {
  position: relative;
  /* 背景二色 */
  background: linear-gradient(to bottom, #dce6eb 0 150px, #fff 150px 100%);
}

/*--------------------------------

最新情報

--------------------------------*/
.top-main-contents .top-news-area .inner {
  display: grid;
  grid-template-columns: 800px auto;
  gap: 2rem;
}
.top-main-contents .tab-list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
  margin: 0 0 1rem 0;
}
.top-main-contents .tab-list p {
  font-size: 1.5rem;
  color: #333;
  margin: 0;
  padding: 0;
}
.top-main-contents .tab-list .tab-item {
  padding: 0.8rem 2rem;
  background: #fff;
  cursor: pointer;
  border-radius: 20px;

  color: #333;
  transition: background 0.2s;
  width: 138px;
  font-size: 1.5rem;
  text-align: center;
}
.top-main-contents .tab-item.active {
  background: #3ba2a4;
  color: #fff;
}
.top-main-contents .tab-content {
  display: none;
}

.top-main-contents .news-box-inner {
  background: #fff;
  padding: 1.5rem 1rem;
  padding-top: 0;
  border: solid 1px #d2d2d2;
  border-top: none;
  min-height: fit-content;
  overflow-y: auto;
}
.top-main-contents .tab-content.active {
  display: block;
}
.top-main-contents .tab-content ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.top-main-contents .top-news-area .top-left-area ul li {
  border-bottom: 1px solid #b3b3b3;
  padding: 1rem 0;
  font-size: 1.6rem;
}

.top-main-contents .top-news-area ul li dl dt {
  background: #f2f2f2;
  padding: 2px 5px;
  margin-bottom: 5px;
  width: 100%;
}
.date-title-wrap {
  width: 52em;
  font-size: 1.5rem;
  display: flex;
}
.top-main-contents .top-news-area ul li dl dt .date {
  width: 14em;
  font-size: 1.5rem;
  margin-right: 1em;
  display: inline-block;
  font-weight: bold;
}
.top-main-contents .tab-content li:last-child {
  border-bottom: none;
}

.top-main-contents .top-news-area .NewTitle {
  font-weight: bold;
  letter-spacing: 0.02em;
}
.top-main-contents .top-news-area .newsDetail {
  color: #222;
}
.top-main-contents .top-news-area a {
  color: #3ba2a4;
  text-decoration: underline;
}

#hotNews {
  margin-top: 1rem;
}
.top-main-contents #hotNews .news-box-inner {
  max-height: unset;
}

.resultPagingBlock {
  font-size: 1.6rem;
  margin-top: 1rem;
  margin:;
  text-align: center;
}

/* トップバナー */

.top-banner-area ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.top-banner-area {
  padding: 3rem 0;
  background: #dce6eb;
  margin: 3rem auto;
}

.top-left-area > h1:nth-child(1) {
  font-size: 2rem;
  font-weight: bold;
  margin: 1.5rem auto;
  text-align: center;
}

.top-right-area ul li {
  margin-top: 1rem;
}

/* footer */
#footer {
  width: 100%;
  padding: 20px 0 0;
  position: relative;
  overflow: hidden;
  position: relative;
  zoom: 1;
  border-top: solid 1px #d2d2d2;
  margin-top: 5rem;
}
#footer a:hover {
  color: #3a7ec5;
  opacity: 1;
  text-decoration: none;
}

.footNavi {
  display: grid;
  grid-template-columns: 300px 300px 1fr;
  gap: 2rem;
}
.footNavi .detail {
  border-right: solid 1px #d3d3d3;
}
.footNavi .detail:last-child {
  border-right: none;
}
.footNavi .detail > ul > li + li {
  margin-top: 3rem;
}
.footNavi .detail > ul > li a {
  color: #333333;
  font-size: 1.5rem;
}
.footNavi .detail > ul > li .bold {
  position: relative;
  font-weight: bold;
  padding-left: 1.5rem;
}
.footNavi .detail > ul > li .bold::before {
  content: "";
  width: 10px;
  height: 10px;
  background: #000;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  font-weight: bold;
}

.footNavi .detail > ul > li > ul {
  padding-left: 1em;
}
.footNavi .detail > ul > li > ul > li > ul {
  padding-left: 0em;
}
#footer dl {
  display: flex;
  gap: 2rem;
  margin: 1rem 0;
}

#footer dl dt,
#footer dl dd {
  font-size: 1.5rem;
}
#footer dl dd span {
  font-weight: bold;
  display: block;
}
#footer p {
  /* font-size: 0.8em; */
  font-size: 1.3em !important;
}

#footer #copyright00 {
  margin-top: 1rem;
  background-color: #3ba2a4;
  color: #fff;
  padding: 1rem;
  text-align: center;
}

.footNavi2 {
  padding: 2rem 0;
  background: #dce6eb;
  margin: 2rem auto;
}
.footNavi2 ul {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 1rem;
}

.footNavi2 ul > li > a {
  border: solid 4px #3ba2a4;
  background: #fff;
  font-size: 1.7rem;
  font-weight: bold;
  color: #3ba2a4;
  padding: 1rem;
  display: flex;
  border-radius: 30px;
  text-align: center;
  text-align: center;
  justify-content: center;
}

.footNavi2 ul > li > a:hover {
  background: #fff0c8;
  text-decoration: none;
}

#header {
  background: #fff;
}
#header #headGuide {
  justify-content: space-between;
  align-items: flex-end;
  overflow: unset;
  height: auto;
}

.header-icons {
  display: flex;
  align-items: baseline;
  gap: 3rem;
}
.header-icons .h-icon a:nth-child(1) > img:nth-child(1) {
  margin-bottom: 4px;
}
.h-icon {
  width: auto !important;
  margin-top: 0 !important ;
  line-height: 1;
}

.h-icon a:nth-child(1) > img:nth-child(1) {
  display: block;
  text-align: center;
  margin: auto;
}
.h-icon a:nth-child(1) {
  font-size: 1.3rem;
  font-weight: bold;
  color: #000;
}

.h-prason a {
  display: flex;
  align-items: end;
  gap: 1rem;
}

.mypage-login-info,
.mypage-login-out {
  width: 270px;
  position: absolute;
  border: solid 1px #b3b3b3;
  background: #fff;
  left: 0;
  top: 53px;
}
/*.mypage-login-out{
  left: 0;
  top:0;

}
.mypage-login-info
{
  left: 0;
  top:270px;

}
  */

#h-loginBlock > a:nth-child(1) {
  background: #808080;
  color: #fff;
  font-weight: bold;
  font-size: 1.5rem;
  display: block;
  text-align: center;
  padding: 1rem;
  width: 83%;
  margin: 2rem auto;
}

.mypage-login-info,
.mypage-login-out {
  z-index: 2000;
}
#h-NewMember,
.h-logout {
  border-top: solid 1px;
}
#h-NewMember > a:nth-child(1),
.h-logout > a:nth-child(1) {
  font-size: 1.5rem;
  font-weight: bold;
  display: block;
  padding: 1rem;
  color: #000;
  text-align: center;
}

/* style.css | https://soshin2020.dsds.blue/assets/css/style.css?t=1764327013 */

.h-navi-container {
  width: 100%;
}

.mypage-login-info > p:nth-child(1) {
  font-size: 1.5rem;
  font-weight: bold;
  color: #000;
  padding: 1rem;
}
.fixed-h-navi {
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

.tokusyoho-section {
  margin-top: 1rem;
}
.tokusyoho-section > div {
  border: solid 1px #b3b3b3;
}
.tokusyoho-section dl {
  display: grid;
  grid-template-columns: 250px auto;
}
.tokusyoho-section dl + dl {
  border-top: solid 1px #b3b3b3;
}
.tokusyoho-section dl dt {
  background: #f2f2f2;
  padding: 1rem;
  padding-right: 0;
  border-right: solid 1px #b3b3b3;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  font-size: 1.5rem;
  line-height: 1.6;
  letter-spacing: -0.9px;
}
.tokusyoho-section dl dd {
  padding: 1rem;
  font-size: 1.5rem;
}
.tokusyoho-section dl dd > div {
  padding: 1rem;
}
.tokusyoho-section dl dd > div + div {
  border-top: solid 1px #b3b3b3;
}
.tokusyoho-section dl dd:has(.product-link) {
  padding: 0;
}

/* 
  --------------------------------

  全塾生削除［操作方法］

  --------------------------------*/

.delete-p01 ul li {
  font-size: 1.8rem;
  font-weight: bold;
}

.student-area .explanation-area > p {
  background: #dcf0f0;
  padding: 0.5rem 1rem;
  font-weight: bold;
  position: relative;
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 1rem;
  margin-top: 2rem;
  font-size: 1.5rem;
}

.student-area .explanation-area > p {
  margin-top: 6rem;
}

.student-area .explanation-area .explanation-box {
  display: flex;
  gap: 0.8rem;
  margin-top: 2rem;
}

.student-area .explanation-area .explanation-box > p:nth-child(1) {
  width: 45%;
}

.student-area .explanation-area .explanation-box > img:nth-child(2) {
  width: 55%;
}

#excel .explanation-box {
  flex-direction: column;
  margin-top: 1rem;
}
#excel .explanation-box p,
#excel .explanation-box img {
  width: fit-content;
}
.explanation-box table {
  border: solid 1px #b3b3b3;
}
.explanation-box table th {
  background: #f2f2f2;
  padding: 1rem;
  border: solid 1px #b3b3b3;
  text-align: left;
  vertical-align: top;
  font-size: 1.5rem;
}
.explanation-box table td {
  padding: 1rem;
  font-size: 1.5rem;
  border: solid 1px #b3b3b3;
}
.explanation-box table td .text-red {
  color: #f00;
}

.attention-text {
  background: #fff0f0 !important;
  border: solid #f00 1px;
  color: #ff0000;
  font-weight: normal !important;
  margin-top: 8rem !important;
}

#excel .student-area .explanation-area > p {
  margin-bottom: 1rem;
}

/* --------------------------------

マイページ メッセージボード

--------------------------------*/

#message-board > h3 {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 0;
}

.message-board-table {
  border: solid 1px #b3b3b3;
  padding: 1em;
}

#message-board table {
  width: 100%;
}
#message-board table td.unread {
  font-weight: bold;
}
#message-board table th {
  text-align: left;
  padding-bottom: 5px;
  padding-left: 10px;
  border-bottom: solid 2px #b3b3b3;
}

#message-board table td {
  padding: 7px 10px;
  border-bottom: solid 1px #b3b3b3;
}
#message-board table td a {
  color: #000;
}
#message-board table td a:hover {
  color: #3a7ec5;
}

#message-board table td .date-box {
  display: flex;
  gap: 20px;
}
#message-board table td .date-box span {
  width: 85px;
}

.message-detail-title {
  padding: 1rem 2rem;
  border: solid 1px #b3b3b3;
}

.message-detail-content {
  padding: 2rem;
  border: solid 1px #b3b3b3;
  border-top: none;
  font-size: 1.5rem;
  font-family: monospace;
}

.company-name {
  margin-bottom: 3rem;
}

p.message-content {
  margin-bottom: 2rem;
}

.line-box {
  padding: 2rem 0;
  border-bottom: dashed 1px;
  width: 50%;
  border-top: dashed 1px;
  font-size: 1.5rem;
  margin: 2rem 0;
}

/* --------------------------------

退会ページ

--------------------------------*/

.cancel .password-input {
  display: flex;
  align-items: baseline;
}
.cancel .password-input input {
  width: 30em;
}
.cancel .toggle-icon {
  position: inherit !important;
  margin-left: -2em;
}
.cancel .char-count {
  display: flex;
}
.cancel-page dl dd span {
  display: block;
  margin-bottom: 1rem;
  font-size: 1.5rem;
}
.cancel-page dl {
  align-items: flex-start !important;
}
.cancel-confirm-box {
  background: #fff0f0;
  padding: 2rem;
  border: solid 1px #b3b3b3;
  margin-bottom: 2rem;
}
.cancel-confirm-box h2 {
  color: #f00;
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: center;
}
.cancel-confirm-box p {
  font-size: 1.5rem;
  margin-top: 1rem;
  margin-bottom: 1rem;
  text-align: center;
}
.cancel-confirm-box form {
  margin-top: 2rem;
}
.cancel-confirm-page form p {
  text-align: center;
  font-weight: bold;
  font-size: 1.6rem;
}
.cancel-confirm-page form {
  border: none;
}
.cancel-confirm-page #buttonBlock {
  gap: 6rem;
}

.cancel-confirm-page #buttonBlock input {
  width: 230px;
}

#myModal h4 {
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  border-bottom: solid 1px #333;
}

#myModal .modal-content .modal-content-text {
  font-size: 1.5rem;
  font-weight: bold;
  margin: 2rem auto;
  text-align: center;
}

.modal-btn a {
  font-size: 1.5rem;
  font-weight: bold;
  width: 165px;
  text-align: center;
  padding: 1rem;
  border-radius: 5px;
  display: block;
}
#myModal .modal-content .modal-btn-close a {
  color: #fff;
  background: #808080;
}

#myModal .modal-content .modal-btn-register a {
  color: #fff;
  background: #3a7ec5;
}

#myModal .modal-content .modal-content-btn {
  display: flex;
  justify-content: center;
  gap: 2rem;
}

#myModal .modal-content label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 1em;
  cursor: pointer;
  font-size: 1.5rem;
}

.info-registration-table,
.staff-table,
#id-pass .id-pass-table {
  width: 100%;
}

.staff-table th,
.info-registration-table th,
#id-pass .id-pass-table th {
  width: 230px;
  background: #f2f2f2;
  padding: 2rem;
  text-align: left;
  border: solid 1px #b3b3b3;
  border-right: none;
}
.info-registration-table td,
.staff-table td,
#id-pass .id-pass-table td {
  padding: 2rem;
  text-align: left;
  border: solid 1px #b3b3b3;
  width: calc(100% - 210px);
}
#id-pass .id-pass-input {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
#id-pass .id-pass-change,
.change-btn {
  font-size: 1.5rem;
  font-weight: bold;
  color: #3a7ec5;
  border: solid 1px;
  padding: 3px 2rem;
  border-radius: 30px;
  background: #fff;
}
.id-pass-back-box {
  margin-top: 3rem;
}
.id-pass-back a,
.id-pass-back button {
  background: #b3b3b3;
  color: #fff;
  padding: 1.2rem 2rem;
  border-radius: 5px;
  font-size: 1.5rem;
  font-weight: bold;
  text-decoration: none;
  display: block;
  margin: 0rem auto 0;
  text-align: center;
  width: 200px;
}

.change-password-input-box dl + dl {
  margin-top: 1rem;
}

.change-password-input-box dl dt {
  font-weight: bold;
  margin-bottom: 5px;
}
.change-password-input-box dl .forgot-page-inner {
  /* padding: 2rem; */
  padding: 1rem;
}

.change-password-input-box dl input,
.staff-input-table td input {
  padding: 1rem;
  display: flex;
  align-items: center;
  border-radius: 5px;
  border: solid 1px #b3b3b3;
}

.change-password-input-box dl div .toggle-icon {
  top: 50%;
  transform: translateY(-50%);
  right: 18px;
}
#staff-info h3 {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 1rem;
}
.staff-input-table th {
  background: #fff;
}
.staff-input-table td {
  background: #f2f2f2;
}
.staff-input-table td input {
  width: 450px;
  padding: 0.5rem 1rem;
  border: solid 1px #b3b3b3;
}

.staff-input-table th p + p,
.staff-input-table td p + p {
  margin-top: 1rem;
  margin-top: 1rem;
}
.staff-info-box + .staff-info-box {
  margin-top: 5rem;
}

.staff-input-table tr td p.clear-btn-box button {
  color: #ff0000;
  border: #ff0000 solid 1px;
  border-radius: 10px;
  background: #fff;
  padding: 3px 10px;
  font-weight: bold;
}

.staff-input-table tr td {
  position: relative;
}

.staff-input-table tr td p.clear-btn-box {
  position: absolute;
  right: 2em;
  top: 50%;
  transform: translateY(-50%);
}

.staff-info-modal + .staff-info-modal {
  margin-top: 3rem;
}
.staff-info-modal h5 {
  font-size: 1.5rem;
  text-align: left;
}
.staff-info-modal h5::before {
  content: "";
  width: 12px;
  height: 12px;
  background: #000;
  display: inline-block;
  margin-right: 5px;
}

.staff-info-modal div {
  background: #f2f2f2;
  padding: 1rem 1.5rem;
  margin-top: 0.5rem;
}
.staff-info-modal p {
  text-align: left;
}

.staff-info-modal div dl {
  display: grid;
  grid-template-columns: 5.5em auto;
  align-items: center;
}
.staff-info-modal div > dl + dl {
  margin-top: 1rem;
}

.staff-info-modal div dl dt {
  text-align: right;
  font-weight: bold;
}
.staff-info-modal div > dl dd {
  text-align: left;
}
.staff-info-modal-input div dl {
  display: grid;
  grid-template-columns: 7em auto;
}

.staff-info-modal > p {
  text-align: left;
}
.register-box-change dl dt {
  background: #f2f2f2;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 1rem;
}
.register-box-change dl dd {
  background: #fff;
}

.register-box-change01,
.address-block01,
.register-box-change03,
.student-count-block {
  display: grid;
  grid-template-columns: 1fr 110px;
  align-items: center;
}
.register-box-change02 dl,
.register-box-change03 dl,
.student-count-block dl {
  border-right: none;
}
.register-box-change-input .register-box-change02 dl,
.register-box-change-input .register-box-change03 dl {
  border-right: solid 1px #b3b3b3;
}
.register-box-change .btn-change-box {
  border: solid 1px #b3b3b3;
  border-left: none;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 110px;
}
.headquarters-block {
  position: relative;
}
.headquarters-block .btn-change-box {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 100%;
}
.headquarters-block .headOffice-section {
  width: calc(100% - 110px);
  margin-left: 0;
  margin-right: auto;
  margin-bottom: 0;
}

.headquarters-block table:last-child {
  border-bottom: solid 1px #b3b3b3 !important;
}
.headquarters-block table:last-child td,
.headquarters-block table:last-child th {
  border-top: none !important;
}
.headquarters-block table {
  width: 100%;
}
.headquarters-block th {
  width: 250px;
  background: #f2f2f2;
  padding: 1rem;
  text-align: left;
  border: solid 1px #b3b3b3;
  border-right: none;
}
.headquarters-block table td {
  padding: 1rem;
  text-align: left;
  border: solid 1px #b3b3b3;
  border-left: none;

  height: 100%;
}
.headquarters-block .address-table th {
  border-bottom: none;
  border-top: none;
}
.headquarters-block .address-table td {
  border-bottom: none;
  border-top: none;
}

.student-count-block .btn-change-box {
  border-bottom: none;
}
.register-box-change01 .btn-change-box {
  grid-area: 1 / 2 / 4 / 3;
}
.register-box-change .address-block .btn-change-box {
  grid-area: 1 / 2 / 5 / 3;
}
.register-box-change .register-box-change03 .btn-change-box {
  grid-area: 1 / 2 / 4 / 3;
}
.register-box-change .headquarters-block .btn-change-box {
  grid-area: 1 / 2 / 7 / 3;
}

.register-box-change .calendar,
.register-box-change-input .calendar {
  margin-top: 0rem;
}

.box-block dl dt,
.box-block dl dd,
.address-block01 dl dt,
.address-block01 dl dd,
.address-table tr th,
.address-table tr td {
  padding: 0rem 0.7rem 0.5rem 1rem !important;
}
.box-block dl dt:first-child,
.box-block dl dd:first-of-type {
  padding-top: 1rem !important;
}
.box-block dl dd:last-child,
.box-block dl dt:last-of-type {
  padding-bottom: 1rem !important;
}

.address-block01 dl:first-of-type dt,
.address-block01 dl:first-of-type dd {
  padding-top: 1rem !important;
}
.address-block01 dl:last-of-type dt,
.address-block01 dl:last-of-type dd {
  padding-bottom: 1rem !important;
}

.address-table tr:first-child th,
.address-table tr:first-child td {
  padding-top: 1rem !important;
}
.address-table tr:last-child th,
.address-table tr:last-child td {
  padding-bottom: 1rem !important;
}

.student-count-block.form-box {
  margin-bottom: 0;
}
.student-count-block dl {
  border-bottom: none;
}
.calendar .mondt-ttl {
  font-size: 1.5rem;
  text-align: left;
  padding-left: 1.5rem;
}

.register-box-change-input .form-box {
  display: block;
}
.change-before-ttt {
  font-size: 1.8rem;
  font-weight: bold;
  margin-bottom: 1rem;
  text-align: left !important;
}

.register-box-change-input {
  margin-top: 5rem;
}

.changeReserv #compBlock table,
.order #compBlock table {
  width: 60%;
  margin: 2rem 0;
}
.changeReserv #compBlock table tr td,
.order #compBlock table tr td {
  border: solid 1px #b3b3b3;
  padding: 5px 1rem;
  text-align: left;
}
.changeReserv #compBlock table tr th,
.order #compBlock table tr th {
  width: 150px;
  border: solid 1px #b3b3b3;
  padding: 5px 1rem;
  text-align: left;
}
.year_block ul li {
  font-weight: bold;
  font-size: 1.8rem;
  margin-bottom: 1rem;
}

.order .contents-box {
  width: 760px;
}

body.order .orangeFrame {
  /* 新年度塾生新規登録にある、「塾コード」入力枠（オレンジ背景のグレー線、角丸） */
  border: 3px solid #bfbfbf;
  background-color: #feddbc;
  text-align: center;
  width: 280px;
  padding: 10px 20px;
  border-radius: 7px; /* CSS3草案 */
  -webkit-border-radius: 7px; /* Safari,Google Chrome用 */
  -moz-border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin: 2rem 0;
}
body.order .orangeFrame label {
  margin-right: 7px;
  font-weight: bold;
  font-size: 1.2em;
}

/* --------------------------------

  説明会・イベント

  --------------------------------*/

section.event-box .event-content {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 2rem;
}

section.event-box .event-content .catch {
  font-size: 1.8rem;
  font-weight: bold;
  text-align: center;
  padding: 1rem;
  border: solid 1px #3ba2a4;
  margin-bottom: 1rem;
}

section.event-box .pdf-box a {
  display: block;
  font-size: 1.8rem;
  font-weight: bold;
  color: #f00;
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 210px;
  justify-content: center;
  padding: 1rem;
  border: solid 1px;
  border-radius: 5px;
  margin: 1rem 0;
}

.attention-box a {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 1.6rem;
}

section.event-box .reservation-text {
  background: #f00;
  color: #fff;
  text-align: center;
  font-size: 1.8rem;
  font-weight: bold;
  padding: 5px;
  margin: 1rem 0;
}

dl.information-examination-item + dl.information-examination-item {
  margin-top: 3cqh;
}

dl.information-examination-item dt br {
  display: none;
}

dl.information-examination-item dt {
  font-size: 1.5rem;
  font-weight: bold;
  background: #6f8398;
  color: #fff;
  padding: 5px 1rem;
  margin-bottom: 2rem;
}

dl.information-examination-item dd .pdfIMG a {
  display: block;
  font-size: 1.8rem;
  font-weight: bold;
  color: #f00;
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 90px;
  justify-content: center;
  padding: 5px 1rem;
  border: solid 1px;
  margin: 1rem 0;
}

@media screen and (max-width: 768px) {
  .examination-info #header,
  .examination-info footer {
    display: none;
  }
  .examination-info .inner {
    width: 96%;
    margin: 0 auto;
  }
  dl.information-examination-item dd .pdfIMG a {
    font-size: 1.6rem;
  }
  .examination-info .pdfIMG img {
    width: 20px;
  }
  .examination-info .pdfDl {
    justify-content: flex-start !important;
    font-size: 1.5rem !important;
  }
}

/*--------------------------------
  ワンタイムパスワード発行画面系
--------------------------------*/

.gw-otp .otp-send-box-ttl {
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  border-bottom: solid 1px #b3b3b3;
  padding: 1rem;
}
.gw-otp .otp-send-box {
  padding: 0rem;
  border: solid 1px #b3b3b3;
  margin: 0;
}

.gw-otp .s-input-block {
  background: #f2f2f2;
  padding: 2rem;
}

.gw-otp .s-input-block dt {
  font-size: 1.6rem;
  margin-bottom: 5px;
  font-weight: bold;
}
.gw-otp .s-input-block dd select {
  max-width: 50.7em;
}

.gw-otp .otp-send-box-content {
  padding: 2rem;
}

.gw-otp .otp-send-box-content form {
  margin-top: 1rem;
}
.gw-otp .otp-send-box-button {
  margin: 2rem auto 0;
  text-align: center;
}
.gw-otp .otp-send-box-button button {
  background: #ff0000;
  padding: 12px 34px;
  min-width: 260px;
}

.gw-otp .otp-help-section {
  width: 320px;
  padding: 0rem;

}

.gw-otp .otp-help-section h3 {
  font-size: 1.6rem !important;
  border-bottom: solid 1px;
  padding: 1rem;
  text-align: center;
}

.gw-otp .otp-input-form {
  width: 685px;
  box-sizing: border-box;
}
.gw-otp .otp-input-form .password-input-container {
  width: 80%;
}

.gw-otp .btn-back-mail {
  width: 230px;
}



.help-content ol li {
  font-size: 1.5rem;
}

.help-content-box {
  padding: 1rem;
}

/* OTP認証モーダル（塾会員GW・塾会員登録のワンタイムパスワード画面共通） */
.otp-auth-modal {
  display: none;
  position: fixed;
  z-index: 10000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
.otp-auth-modal[style*="display: block"] {
  display: block !important;
}
.otp-auth-modal .modal-overlay {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.45);
}
.otp-auth-modal-content {
  position: relative;
  max-width: 480px;
  background: #fff;
  padding: 1.5rem 2rem;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
  z-index: 10001;
}
.otp-auth-modal .modal-body p {
  margin: 0.5em 0;
  font-size: 1.5rem;
  line-height: 1.6;
  font-weight: bold;
}
.otp-auth-modal .modal-footer {
  margin-top: 1.5rem;
  text-align: center;
}
.otp-auth-modal .btn-close-modal {
  padding: 0.6em 1.5em;
  font-size: 1.4rem;
  cursor: pointer;
  border: none;
  background: #3a7ec5;
  color: #fff;
  border-radius: 4px;
}
.otp-auth-modal .btn-close-modal.glay {
  background: #b3b3b3;
}
.otp-auth-modal .modal-body {
  text-align: center;
}