.p-school__single-wrapper {
 padding-block-end: clamp(3rem, -1.205rem + 17.99vw, 10.938rem);

 @media (width<48rem) {
  padding-block-end: 0;
 }
}

.p-school__button {
 margin-block-start: 1.5rem;
 display: flex;
 justify-content: flex-end;
}

/* access */
.p-school__single-access {
 padding-block: clamp(2rem, -0.251rem + 9.63vw, 6.25rem) clamp(1.5rem, 0.97rem + 2.27vw, 2.5rem);
}

.school-single__access-title {
 font-size: 2.5rem;
 color: var(--c-navy-primary);
 line-height: var(--line-height-140);
 letter-spacing: var(--tracking-wider);

 @media (width<48rem) {
  text-align: center;
  font-size: 2rem;
 }
}

.school-single__access-heading {

 @media (width >=48rem) {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
 }

 .c-button.--large {
  max-width: 240px;
  height: 3rem;
  min-width: 15rem;
  border: solid 2px var(--c-navy-primary);

  .c-button__text {
   font-size: 1.125rem;
   line-height: var(--line-height-180);
   letter-spacing: var(--tracking-wide);
  }
 }
}

.school-single__access-body {
 .p-school__address {
  margin-block-start: clamp(1.5rem, 0.97rem + 2.27vw, 2.5rem);
 }

 .p-school__info-group {
  margin-block-start: 1rem;
 }

 @media (width<48rem) {
  address {
   letter-spacing: var(--tracking-normal);
  }
 }
}

@media (width >=48rem) {
 .school-single__access-inner {
  display: flex;
  align-items: flex-start;
  gap: 5rem;
 }

 .school-single__access-body {
  width: 51%;
  flex: 0 0 51%;
 }
}

.school-single__access-address {
 margin-block-start: 1rem;
}

.school-single__access-address dl {
 display: flex;
 gap: .5rem;
 align-items: flex-start;

 dt {
  margin-block-start: 1px;
  font-size: 0.875rem;
  line-height: var(--line-height-100);
  color: var(--c-navy-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--c-white);
  border: solid 1px var(--c-navy-primary);
  padding: calc(6 * var(--torem)) calc(4 * var(--torem));
  min-width: clamp(4.875rem, 4.809rem + 0.28vw, 5rem);
  letter-spacing: var(--tracking-normal);
  font-weight: var(--font-weight-bold);
 }

 dd {
  line-height: var(--line-height-180);
  letter-spacing: 0.01em;
  font-size: clamp(0.875rem, 0.809rem + 0.28vw, 1rem);

  span {
   font-size: clamp(0.75rem, 0.684rem + 0.28vw, 0.875rem);
  }
 }

 &:nth-child(n + 2) {
  margin-block-start: 12px;

  dd {
   display: flex;
   align-items: center;
  }
 }
}

.school-single__access-image {
 display: grid;
 gap: 1.5rem;

 @media (width<48rem) {
  /*   display: flex; */
  margin-block-start: 1rem;
  gap: .5rem;

  &.is-pc {
   display: none;
  }
 }

 &.is-sp {
  @media (width >=48rem) {
   display: none;
  }
 }
}

.google-map {
 max-width: 100%;
 aspect-ratio: 335 / 160;
 margin-block-start: 1.5rem;

 @media (width >=48rem) {
  aspect-ratio: 559 / 261;
 }

 iframe {
  width: 100%;
  height: 100%;
 }
}

/* schedule */
.p-school__single-schedule {
 padding-block-start: clamp(3rem, 1.941rem + 4.53vw, 5rem);
}

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

.p-school__schedule-memo {
 margin-top: clamp(0.75rem, 0.618rem + 0.57vw, 1rem);
 margin-left: 3.5rem;

 @media (width<48rem) {
  margin-left: 0;
 }
}

@media (width<48rem) {
 .p-school__schedule-image {
  overflow-x: auto;

  img {
   display: block;
   width: auto;
   height: 128vw;
   max-width: none;
  }
 }

 .p-school__schedule-memo {
  font-size: 0.75rem;
 }
}

@media (min-width: 768px) {
 .scroll-hint-shadow-wrap .p-school__schedule-image {
  transform: inherit !important;
  overflow: inherit !important;
 }
}

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

.school-course__lists {
 margin-block-start: clamp(1.5rem, 0.97rem + 2.27vw, 2.5rem);
}

.p-course-accordion {
 list-style: none;
 margin: 0;
 padding: 0;
 border: 2px solid #C9E7FF;
}


/* 各項目 */
.p-course-accordion__item {
 border-bottom: 2px solid #C9E7FF;
}

.p-course-accordion__item:last-child {
 border-bottom: none;
}

.p-course-accordion__head {
 width: 100%;
 padding: clamp(0.5rem, 0.235rem + 1.13vw, 1rem) clamp(1rem, 0.735rem + 1.13vw, 1.5rem);
 background: var(--c-white);
 border: 0;
 cursor: pointer;
 display: flex;
 align-items: center;
 justify-content: space-between;
 text-align: left;
}

.p-course-accordion__title {
 font-weight: var(--font-weight-bold);
 color: var(--c-navy-primary);
 line-height: var(--line-height-160);
 font-size: clamp(1.375rem, 1.309rem + 0.28vw, 1.5rem);
 letter-spacing: var(--tracking-normal);

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

.p-course-accordion__icon {
 width: 1rem;
 height: 1rem;
 position: relative;
}

.p-course-accordion__icon::before {
 content: "";
 position: absolute;
 inset: 50% auto auto 50%;
 width: 0.5rem;
 height: 0.5rem;
 border-left: 2px solid #174592;
 border-bottom: 2px solid #174592;
 transform: translate(-50%, -60%) rotate(-45deg);
 transition: transform 0.2s ease;
}

.p-course-accordion__item.is-open .p-course-accordion__icon::before {
 transform: translate(-50%, -40%) rotate(135deg);
}

.p-course-accordion__body {
 height: 0;
 overflow: hidden;
 opacity: 0;
 transition: height .35s ease, opacity .3s ease;
 background-color: var(--c-white);
  .c-button {
   margin-block-end: clamp(1rem, 0.735rem + 1.13vw, 1.5rem);
    @media (width >=48rem) {
     margin-right: clamp(2.375rem, 2.044rem + 1.42vw, 3rem);
    }
  }
}

.p-course-accordion__item.is-open .p-course-accordion__body {
 opacity: 1;
}

.p-course-accordion__inner {
 padding: 0 clamp(2.375rem, 2.044rem + 1.42vw, 3rem) 0 clamp(1rem, 0.735rem + 1.13vw, 1.5rem);
}

.course-accordion__price-item {
 display: flex;
 letter-spacing: var(--tracking-normal);
 line-height: var(--line-height-140);
 color: var(--c-black-primary);

 dt {
  font-weight: var(--font-weight-bold);
  padding-right: clamp(1.25rem, 1.118rem + 0.57vw, 1.5rem);
  position: relative;
  color: var(--c-blue-primary);
  font-size: clamp(0.75rem, 0.618rem + 0.57vw, 1rem);
  flex-shrink: 0;

  &:after {
   position: absolute;
   content: "";
   top: .5rem;
   width: clamp(0.75rem, 0.618rem + 0.57vw, 1rem);
   height: 1px;
   background-color: var(--c-blue-primary);
   right: .25rem;

   @media (width >=48rem) {
    top: .7rem;
   }
  }
 }

 dd {
  font-size: clamp(0.875rem, 0.809rem + 0.28vw, 1rem);
 }
}

.p-course-accordion__price {
 display: flex;
 gap: clamp(0.5rem, -0.03rem + 2.27vw, 1.5rem);
 align-items: flex-start;
 margin-block: clamp(0.5rem, 0.235rem + 1.13vw, 1rem) 1rem;

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

 dl {
  display: grid;
  gap: clamp(0.5rem, 0.235rem + 1.13vw, .8rem);
 }
}

.accordion-image {
 border-radius: .5rem;
 width: clamp(7.5rem, 6.176rem + 5.67vw, 10rem);
}

.school-course__lists {

 @media (width >=48rem) {
  display: flex;
  gap: 3rem;
  align-items: flex-start;
  justify-content: space-between;
 }
}

.school-course__item {
 @media (width >=48rem) {
  width: calc(50% - 1.5rem);
 }
}

@media (width<48rem) {
 .school-single__access-button {
  margin-block-start: 1.5rem;

  a {
   margin-inline: auto;
  }
 }

 .school-course__item:last-child:not(:first-child) {
  border-top: 0;
 }
}

/* teacher */
.p-single__school-teacher {
 overflow: hidden;
}

@media (width >=48rem) {

 .p-teacher__lists .splide__track,
 .p-teacher__lists .splide__list,
 .p-teacher__lists .splide__slide {
  overflow: visible !important;
  height: auto !important;
  width: auto !important;
  visibility: visible !important;
 }
}

@media (width <48rem) {
 .p-teacher__pagination {
  position: absolute !important;
  left: 50%;
  bottom: -2.28rem;
  transform: translateX(-50%);
 }

 .p-teacher__arrow {
  background-color: var(--c-white);
  border: solid 2px #C9E7FF;

  svg {
   fill: var(--c-blue-primary);
   height: 14px;
   width: 14px;
  }
 }

 .p-teacher__lists .splide__list {
  align-items: center;
  width: auto !important;
 }

 .p-teacher__lists .splide__slide {
  opacity: 0.6;
  transition: opacity 0.35s ease;
 }

 .p-teacher__lists .splide__slide .single-school__teacher-item {
  transform: scale(0.9);
  transition: transform 0.35s ease;
 }

 /* アクティブ時 */
 .p-teacher__lists .splide__slide.is-active {
  opacity: 1;
 }

 .p-teacher__lists .splide__slide.is-active .single-school__teacher-item {
  transform: scale(1);
 }

 .p-teacher__lists .splide__track {
  overflow: visible !important;
 }

 .p-single__school-teacher h2 {
  margin-bottom: clamp(1.5rem, 0.97rem + 2.27vw, 2.5rem);
 }
}


.p-single__school-teacher {
 padding-block: clamp(2.5rem, -0.149rem + 11.33vw, 7.5rem) clamp(2.8rem, 0.691rem + 4.53vw, 3.75rem);
}

.single-school__teacher-lists {
 margin-block-start: clamp(1.5rem, 0.705rem + 3.4vw, 3rem) !important;
}

.single-school__teacher-lists {
 @media (width >=48rem) {
  gap: 2.5rem min(3vw, 3rem);
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
 }
}

.single-school__teacher-item {
 padding: clamp(1rem, 0.901rem + 0.42vw, 1.188rem) 1rem clamp(1.5rem, 1.334rem + 0.71vw, 1.813rem);
 border: solid 2.4px var(--c-bg-gray);
 border-radius: 0.75rem;
 max-width: calc(480 * var(--torem));
 max-width: 14.45rem;
}

.single-teacher__figure {
 max-width: clamp(8.688rem, 7.595rem + 4.67vw, 10.75rem);
 margin-inline: auto;
}

.single-teacher__name {
 font-size: 1.5rem;
 font-weight: var(--font-weight-bold);
 font-family: var(--font-en);
 line-height: var(--line-height-100);
 color: var(--c-blue-primary);
 text-align: center;

 @media (width >=48rem) {
  line-height: var(--line-height-180);
 }

 @media (width <48rem) {
  margin-block-start: calc(12 * var(--torem));
 }
}

.single-teacher__meta {
 width: 100%;
 margin-block-start: .25rem;
 display: grid;
 gap: .25rem;

 @media (width <48rem) {
  margin-block-start: 1rem;
 }
}

.single-teacher__meta-item {
 display: flex;
 gap: clamp(0.25rem, 0.224rem + 0.11vw, 0.3rem);
 align-items: flex-start;
}

.single-teacher__badge {
 font-size: clamp(0.625rem, 0.559rem + 0.28vw, 0.75rem);
 max-width: 3rem;
 flex: 0 0 3rem;
 text-align: center;
 width: 100%;
 line-height: var(--line-height-180);
 background: #F5F5EE;
 border-radius: 4px;
 color: var(--c-navy-primary);

 @media (width >=48rem) {
  max-width: 3.2rem;
  flex: 0 0 3.2rem;
  margin-top: 2px;
 }
}

.single-teacher__meta-text {
 color: var(--c-navy-primary);
 line-height: var(--line-height-160);
 font-size: clamp(0.75rem, 0.717rem + 0.14vw, 0.813rem);
 letter-spacing: var(--tracking-normal);
}

.single-teacher__text {
 text-align: justify;
 margin-block-start: clamp(0.625rem, 0.559rem + 0.28vw, 0.75rem);
 font-size: clamp(0.75rem, 0.684rem + 0.28vw, 0.875rem);

 @media (width <48rem) {
  letter-spacing: var(--tracking-normal);
  line-height: var(--line-height-140);
 }
}



/* voice */
.p-single__school-voice {
 padding-block: clamp(1.75rem, 0.691rem + 4.53vw, 3.75rem) clamp(1.75rem, 1.353rem + 1.7vw, 2.5rem);

 @media (width <48rem) {
  padding-block-start: 4.1625rem;
 }

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

/* news */
.p-single__school-news {
 padding-block: clamp(1.75rem, 1.353rem + 1.7vw, 2.5rem) clamp(1.75rem, 0.691rem + 4.53vw, 3.75rem);
}

@media (width <48rem) {
 .p-single__school-news .c-news__button {
  margin-block-start: 1.5rem;
 }
}

.single-school__news-lists {
 margin-block-start: clamp(1.5rem, 0.705rem + 3.4vw, 3rem);
 margin-inline: auto;
}

/* feature */
.p-single__school-feature {
 padding-block: clamp(1.75rem, 0.691rem + 4.53vw, 3.75rem);
}

.single-school__feature-title {
 display: grid;
 line-height: var(--line-height-140);
 font-weight: var(--font-weight-bold);
 letter-spacing: var(--tracking-wider);

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

.single-school__feature-text {
 font-size: calc(12 * var(--torem));
 color: var(--c-navy-primary);
 line-height: var(--line-height-140);
 margin-block-start: .5rem;

 @media (width <48rem) {
  max-width: 87.128%;
 }
}

.single-school__feature-card {
 display: block;
 padding: 1rem;

 @media (width >=48rem) {
  padding-block: 1.5rem;
 }


 &.--bg-pink {
  background-color: #FFF2FB;

  .single-feature-card__label,
  .single-school__feature-title {
   color: var(--c-pink-primary);
  }
 }

 &.--bg-blue {
  background-color: #F1FBFF;

  .single-feature-card__label,
  .single-school__feature-title {
   color: var(--c-blue-primary);
  }
 }

 &.--bg-green {
  background-color: #F3FFF9;

  .single-feature-card__label,
  .single-school__feature-title {
   color: #2DC497;
  }
 }

 &.--bg-orange {
  background-color: #FFF8EE;

  .single-feature-card__label,
  .single-school__feature-title {
   color: var(--c-orange-primary);
  }
 }
}

.single-feature-card__label {
 position: absolute;
 font-family: var(--font-en);
 font-weight: var(--font-weight-bold);
 display: grid;
 line-height: var(--line-height-100);
 font-size: calc(8.21 * var(--torem));
 letter-spacing: 0.01em;
 text-transform: uppercase;

 @media (width <48rem) {
  top: -.25rem;
  right: 1rem;
  font-size: calc(10 * var(--torem));

  .space {
   margin-inline-end: .3rem;
  }
 }

 .--number {
  font-size: calc(17.6 * var(--torem));

  @media (width <48rem) {
   text-align: right;
   font-size: 1.5rem;
  }
 }
}

@media (width >=48rem) {
 .single-feature-card__label {
  text-align: center;
  top: -.95rem;
  left: 50%;
  transform: translateX(-50%);
 }
}


.single-school__feature-image {
 margin-block-start: 1rem;
 width: 100%;

 @media (width <48rem) {
  margin-block-start: 0;
  max-width: calc(98 * var(--torem));
 }

 img {
  width: 100%;
  border-radius: clamp(0.25rem, 0.051rem + 0.85vw, 0.625rem);
 }
}

.single-school__feature-button {
 display: flex;
 align-items: flex-end;
 gap: 1rem;
 transition: transform .3s;
 margin-block-start: 1rem;

 @media (width <48rem) {
  margin-block-start: 0;
  position: absolute;
  right: 1rem;
  bottom: 1rem;
 }
}

@media (width >=48rem) {
 .single-school__feature-button__button {
  position: relative;
  transition: transform .3s;
  border: none;
  background-color: var(--c-white);
  width: 100%;
  max-width: calc(208 * var(--torem));
  margin-inline: auto;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: var(--line-height-100);
  font-weight: var(--font-weight-bold);
  color: var(--c-navy-primary);
  letter-spacing: var(--tracking-normal);
  text-align: center;
  border: solid 1px var(--c-white);
  box-shadow: 0 3px 0 #EAF1FF;
  border-radius: 2.5rem;
  font-size: calc(14 * var(--torem));

  .--arrow {
   position: absolute;
   right: .5rem;
  }
 }
}

.single-school__feature-card:hover,
.single-school__feature-card:focus-visible {
 .single-school__feature-button__button {
  @media (width >=48rem) {
   transform: translateY(3px);
   box-shadow: none;
  }

  @media (width <48rem) {
   transform: translateX(3px);
  }
 }
}

.p-single__school-feature-text {
 margin-block-start: clamp(0.5rem, 0.235rem + 1.13vw, 1rem);

 @media (width >=48rem) {
  margin-left: 3.5rem;
 }
}

.single-school__feature-lists {
 display: grid;
 gap: 1.25rem;
 padding-block-start: clamp(1.5rem, 1.088rem + 2.83vw, 3.5rem);

 @media(min-width: 768px) and (max-width:999px) {
  gap: 3rem 1.25rem;
  grid-template-columns: repeat(2, 1fr);
 }

 @media (width >=1000px) {
  grid-template-columns: repeat(4, 1fr);
 }

 li {
  position: relative;
 }
}

/* flow */
.p-single__school-flow {
 padding-block: clamp(1.75rem, 0.691rem + 4.53vw, 3.75rem) clamp(6.563rem, 4.079rem + 10.62vw, 11.25rem);

 @media (width <48rem) {
  .c-title__pattern {
   align-items: flex-start;

   img {
    margin-top: 3px;
   }
  }
 }
}

.single-school__feature-heading {
 display: grid;

 @media (width <48rem) {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 1rem;
  align-items: center;
 }
}

/* cta */
.cta-school__text {
 font-weight: var(--font-weight-semi-bold);
 text-align: center;
 font-size: clamp(1rem, 0.868rem + 0.57vw, 1.25rem);
 color: var(--c-blue-secondary);
 font-family: var(--font-en);
 line-height: var(--line-height-100);
 letter-spacing: var(--tracking-widest);
 margin-block-end: clamp(0.5rem, 0.235rem + 1.13vw, 1rem);
}

.cta-school {
 @media (width >=48rem) {
  margin-top: -95px;
 }

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

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

 .l-cta__class-inner {
  border-radius: clamp(1.25rem, 0.588rem + 2.83vw, 2.5rem);
  padding-block: 2.75rem;

  @media (width <48rem) {
   padding-block: 3.5rem;
  }
 }
}

.cta-school__button {
 margin-block-start: clamp(1.5rem, 0.97rem + 2.27vw, 2.5rem);
 display: flex;
 justify-content: center;
 align-items: center;

 .c-button.--large {
  min-width: 100%;

  @media (width >=48rem) {
   min-width: calc(412 * var(--torem));
  }
 }
}

@media (width <48rem) {
 .cta-school__button .c-button__text {
  font-size: calc(18 * var(--torem));
  letter-spacing: var(--tracking-wide);
 }

 .p-school__address-contact dd {
  display: grid !important;

  a {
   color: var(--c-blue-primary);
   text-decoration: underline;
  }
 }
}

.p-school__address-contact dt {
 white-space: nowrap;
}

.p-school__address-contact dd {
 flex-wrap: wrap;
}

/* 教室一覧スマホボタンセンター */
@media (width <48rem) {
 .c-school__info-body .p-school__info-button a {
  margin-inline: auto;
 }
}