.p-class__single-wrapper {
 @media (width <48rem) {
  background-size: 100% auto;
  background-repeat: no-repeat;
  background-position: left top;
 }
}

.p-class__single {
 padding-block: calc(80 * var(--torem)) calc(24 * var(--torem));

 @media (width <48rem) {
  padding-block: calc(32 * var(--torem)) 0;
 }
}

.p-class__single-title {
 font-size: var(--font-size-3xl);

 em {
  display: block;
  line-height: var(--line-height-140);
  letter-spacing: var(--tracking-wider);
  font-size: clamp(1.25rem, 1.118rem + 0.57vw, 1.5rem);
 }
}

.p-class__text {
 text-align: justify;
}

.cta-class__text {
 margin-block-start: 1rem;

 @media (width >=48rem) {
  text-align: center;
 }
}

.p-class__item-body .class-sub__title {
 margin-block-start: 1rem;
 line-height: var(--line-height-100);
 letter-spacing: var(--tracking-wider);
}

.cta-class__button {
 display: flex;
 align-items: center;
 justify-content: center;
}

.cta-class__button .--cta-data {
 background-color: var(--c-white);
 color: var(--c-blue-primary);
 margin-block-start: clamp(1.5rem, 0.97rem + 2.27vw, 2.5rem);
 justify-content: center;
 border: 2px solid var(--c-blue-primary);
 min-width: calc(320 * var(--torem));
 box-shadow: 0 2px 0 #4684E8;
 transition:
  background-color .6s var(--ease-in-out-cubic),
  color .6s var(--ease-in-out-cubic),
  box-shadow var(--duration-fast) var(--ease-in-out-cubic),
  transform var(--duration-fast) var(--ease-in-out-cubic);

 @media (width<48rem) {
  min-width: calc(305* var(--torem));
 }

 &:hover,
 &:focus-visible {
  color: var(--c-white);
  box-shadow: none;
  background-color: var(--c-blue-primary);
 }

 .arrow-right {
  margin-left: .5rem;
 }
}

.p-class__introduction {
 display: grid;
 gap: 1.5rem;

 @media (width >=48rem) {
  display: flex;
  flex: 0 0 51.85185%;
  gap: clamp(1.5rem, 0.441rem + 4.53vw, 3.5rem);
 }
}

@media (width >=48rem) {
 .p-class__introduction-image {
  width: 100vw;
  margin-right: calc(50% - 50vw);
 }

 .p-class__item-body {
  width: 100%;
  max-width: min(51.851vw, 35rem);
 }
}

.c-class {
 padding-block: clamp(5rem, 3.676rem + 5.67vw, 7.5rem) clamp(9.813rem, 9.614rem + 0.85vw, 10.188rem);
}

.p-class__price {
 padding: calc(24 * var(--torem)) calc(10 * var(--torem));
 margin-block-start: 2.5rem;

 @media (width <48rem) {
  display: grid;
  gap: 1.5rem;
  align-items: center;
  justify-content: center;
 }

 @media (width >=48rem) {
  display: flex;
  justify-content: center;
  max-width: min(51.851vw, 35rem);
  padding: calc(21 * var(--torem)) calc(10 * var(--torem));
 }

 dl {
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  display: flex;
  gap: min(2.2222vw, 1.5rem);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-100);
  letter-spacing: var(--tracking-wider);

  @media (width >=48rem) {
   padding-block: calc(8 * var(--torem));
   line-height: var(--line-height-140);
  }

  dt {
   color: var(--c-blue-primary);
  }
 }
}

@media (width >=48rem) {
 .p-class__price dl:first-child {
  padding-inline-end: min(2.2222vw, 1.5rem);
  border-right: 2px solid #C9E7FF;
 }

 .p-class__price dl:last-child {
  padding-inline-start: min(2.2222vw, 1.5rem);
 }
}

.p-class__point {
 padding-block-start: clamp(2.5rem, 1.176rem + 5.67vw, 5rem);
}

.p-class__point-card {
 padding: clamp(1rem, 0.205rem + 3.4vw, 2.5rem) 2rem clamp(1rem, 0.205rem + 3.4vw, 2.5rem) clamp(1.25rem, 0.058rem + 5.1vw, 3.5rem);
 max-width: 56rem;
 margin-block-start: clamp(0.5rem, -0.03rem + 2.27vw, 1.5rem);
 margin-inline: auto;
}

.class-point__card-lists {
 display: grid;
 gap: clamp(1rem, 0.735rem + 1.13vw, 1.5rem);

 li {
  font-size: clamp(1.125rem, 0.926rem + 0.85vw, 1.5rem);
  color: var(--c-navy-primary);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-140);
  letter-spacing: var(--tracking-normal);
  display: grid;

  @media (width >=48rem) {
   display: flex;
   align-items: center;
   gap: 1rem;
   letter-spacing: var(--tracking-wider);
  }
 }
}

@media (width >=48rem) {
 .class-point__card-lists li img {
  flex-shrink: 0;
 }
}

@media (width <48rem) {
 .class-point__card-lists li img {
  max-width: calc(70 * var(--torem));
 }
}

.p-class__curriculum {
 padding-block-start: clamp(4rem, 3.47rem + 2.27vw, 5rem);
}

.p-class__curriculum-inner {
 margin-block-start: clamp(1.5rem, 0.705rem + 3.4vw, 3rem);

 @media (width >=48rem) {
  display: flex;
  gap: min(5.18vw, 3.5rem);
 }
}

.p-class__curriculum-image img {
 border-radius: calc(10 * var(--torem));
 width: 100%;
}

@media (width >=48rem) {
 .p-class__curriculum-image {
  max-width: 20rem;
  display: grid;
  gap: 2rem;
 }

 .p-class__curriculum-lists {
  counter-reset: cp_clist;

  li {
   padding-inline-start: clamp(3rem, 2.735rem + 1.13vw, 3.5rem);
  }
 }

 .p-class__curriculum-inner.is-sp {
  display: none;
 }
}

.p-class__curriculum-lists {
 display: grid;
 gap: 1rem;

 li {
  position: relative;

  .class-curriculum__list-title {
   color: var(--c-black-primary);
   font-size: clamp(1.125rem, 0.926rem + 0.85vw, 1.5rem);
   line-height: var(--line-height-140);
   letter-spacing: var(--tracking-normal);

   @media (width >=48rem) {
    letter-spacing: var(--tracking-wider);
   }
  }

  &:before {
   position: absolute;
   font-family: var(--font-en);
   display: flex;
   justify-content: center;
   align-items: center;
   counter-increment: cp_clist;
   content: counter(cp_clist);
   font-size: clamp(1rem, 0.868rem + 0.57vw, 1.25rem);
   background: var(--c-white);
   border: solid 2px #C9E7FF;
   color: #93C7FF;
   width: clamp(2rem, 1.735rem + 1.13vw, 2.5rem);
   height: clamp(2rem, 1.735rem + 1.13vw, 2.5rem);
   border-radius: 50%;
   margin-top: -2px;
   left: 0;
  }
 }

 .p-class__curriculum-lists p {
  margin-block-start: .5rem;
 }
}

@media (width <48rem) {

 /* 最初のリストだけリセット */
 .p-class__curriculum-inner.is-sp ol:first-of-type {
  counter-reset: cp_clist;
  margin-block-start: 1.5rem;
 }

 .p-class__curriculum-image.--sp {
  margin-block: 1rem;

  img {
   display: none;
  }
 }

 .p-class__curriculum-lists li:before {
  margin-top: -3px;
 }

 .class-curriculum__list-title {
  padding-inline-start: clamp(2.4rem, 1.47rem + 2.27vw, 3rem);
 }

 .p-class__curriculum-lists p {
  margin-block-start: .6rem;
  padding-inline-start: 2.5rem;
 }
}

/* 中高生 */
.p-class__price.--teen {
 margin-inline: auto;
}

.class-teens__tab {
 margin-block-start: clamp(4rem, 3.47rem + 2.27vw, 5rem);
 display: flex;
 align-items: center;
 justify-content: center;

 li {
  text-align: center;
  cursor: pointer;
  max-width: 25rem;
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--tracking-wider);
  line-height: var(--line-height-140);
  width: 100%;
  font-size: clamp(1.375rem, 1.044rem + 1.42vw, 2rem);
  padding-bottom: calc(12 * var(--torem));
  border-bottom: 4px solid #B6B6B6;
  color: #B6B6B6;
 }
}

.tab-panel {
 display: none;
}

.tab-panel.is-active {
 display: block;
}

.class-teens__tab li.is-active {
 border-bottom: 4px solid var(--c-navy-primary);
 color: var(--c-navy-primary);
}

.otona-list {
 margin-block: 1rem;
}

.otona-memo {
 max-width: 45rem;
 margin-inline: auto;
 margin-block-start: 2.5rem;
}

.p-top__class-item a.link-card-current {
  border: 1px solid #ddd;
  box-shadow: none;
  transform: none;
  pointer-events: none;
}

.p-top__class-item a.link-card-current .p-top__class-image figcaption {
  color: #B6B6B6;
}

.p-top__class-item a.link-card-current
.p-top__class-image figcaption .arrow-right {
  border-right-color: #DDDDDD;
  border-bottom-color: #DDDDDD;
}