@charset "utf-8";

.content-page {
  --page-accent: var(--color-primary);
  --page-accent-soft: #eaf2fb;
}

.access-description {
  margin: 2rem 0;
  color: var(--color-primary);
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.7;
  text-align: center;
}

.tram-bus-information {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.75rem 1.5rem;
  align-items: stretch;
  padding: 1.5rem;
  margin-top: 2rem;
  width: min(100%, 824px);
  margin-inline: auto;
  box-sizing: border-box;
  color: var(--color-text);
  background: var(--color-pale);
}

.tram-bus-information dl {
  display: flex;
  flex: 1 1 calc(33.333% - 1rem);
  min-width: 12rem;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  gap: 0.35rem;
  padding: 1rem 1.25rem;
  background: #fff;
}

.tram-bus-information dt {
  color: var(--color-primary);
  font-weight: 700;
}

.tram-bus-information dd {
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 600;
}

.tram-bus-information>p {
  flex-basis: 100%;
  margin: 0;
}

/* News list */
.content-page .news-list {
  margin-top: 2rem;
}

.content-page .news-item {
  border-bottom: 0.0625rem solid var(--color-divider);
}

.content-page .news-item>a {
  display: grid;
  grid-template-columns: 3.5rem 7.75rem minmax(0, 1fr);
  align-items: center;
  gap: 1.5rem;
  min-height: 5rem;
  padding: 0.75rem 0;
  text-decoration: none !important;
}

.content-page .news-item__school {
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  color: #fff;
  background: var(--color-primary);
  font-family: var(--font-serif);
  font-size: 0.9rem;
  font-weight: 500;
}

.content-page .news-item__school--high {
  background: var(--color-primary-bright);
}

.content-page .news-item__school--junior {
  background: var(--color-junior);
}

.content-page .news-item__meta {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  border-right: 0.0625rem solid var(--color-divider);
  color: var(--color-body);
  line-height: 1;
}

.content-page .news-item__meta time {
  font-family: var(--font-serif);
}

.content-page .news-item__meta small {
  font-size: 0.9rem;
  font-weight: 500;
}

.content-page .news-item__important {
  display: inline-block;
  margin-right: .5rem;
  padding: .15rem .45rem;
  border-radius: .15rem;
  color: #fff;
  background: #c33;
  font-size: .8em;
  font-weight: 700;
  line-height: 1.2;
}

.content-page .news-item__title {
  font-weight: 500;
  line-height: 1.5;
}

@media (max-width: 48rem) {
  .access-description {
    margin: 1.25rem 0 0.5rem;
    font-size: 1.1rem;
    display: flex;
    flex-direction: column;
    line-height: 1.5;
  }

  .tram-bus-information {
    flex-direction: column;
    gap: 0;
    padding: 0;
    margin-top: 1.25rem;
    background: none;
  }

  .tram-bus-information dl {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    align-items: baseline;
    flex-direction: row;
    justify-content: space-between;
    padding: 0.35rem 0.75rem;
    border-bottom: 1px solid var(--color-divider);
  }

  .tram-bus-information dt::before {
    content: "●";
    margin-right: 0.35em;
  }

  .tram-bus-information dd {
    font-size: var(--font-size-base);
  }

  .tram-bus-information>p {
    font-size: var(--font-size-base);
    line-height: 1.6;
    text-align: left;
    margin-top: 1rem;
  }

  .content-page .news-list {
    margin-top: 1rem;
  }

  .content-page .news-item>a {
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 0.3rem 0.625rem;
    min-height: 100%;
    padding: 0.5rem 0;
    overflow: hidden;
  }

  .content-page .news-item__school {
    grid-row: 1 / 3;
    width: 2.5rem;
    height: 1.125rem;
    font-size: 0.7rem;
  }

  .content-page .news-item__meta {
    grid-column: 2;
    flex-direction: row;
    gap: 0.375rem;
    padding: 0.25rem 0 0;
    border-right: 0;
    font-size: 0.7rem;
    align-items: center;
  }

  .content-page .news-item__meta small {
    font-size: 0.68rem;
  }

  .content-page .news-item__title {
    grid-column: 1 / 3;
    font-size: 0.8rem;
    line-height: 1.3;
  }
}

/* イベント一覧：トップページのEVENTカードを下層用グリッドに展開 */
.admissions-information-section {
  padding-top: 0;
  padding-bottom: 3rem;
  background: var(--color-surface);
}

.content-page--news .events-list-section {
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 0;
}

.admissions-information-feature {
  display: flex;
  align-items: flex-start;
  gap: 3.5rem;
  margin-bottom: 0;
}

.admissions-information-feature__content {
  flex: 1 1 0;
  min-width: 0;
}

.admissions-information-feature__poster img {
  width: 100%;
  height: auto;
  box-shadow: var(--shadow-card-soft);
}

.admissions-information-feature__poster {
  flex: 0 0 min(22rem, 36%);
  width: min(22rem, 36%);
}

.admissions-information-feature__content>.lower-lined-heading {
  margin-bottom: 2rem;
  color: var(--color-primary);
}

.admissions-information-program {
  margin-top: 1.5rem;
  padding: 1.5rem;
  border-left: 0.25rem solid var(--color-primary);
  background: var(--color-surface);
}

.admissions-information-program--open-school {
  border-left-color: var(--color-primary-bright);
}

.admissions-information-program__heading span {
  color: var(--color-primary-bright);
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.12em;
}

.admissions-information-program__heading h3 {
  margin-top: 0.3rem;
  color: var(--color-primary);
  font-family: var(--font-sans);
  font-size: 1.25rem;
  font-weight: 600;
}

.admissions-information-section--other>.lower-lined-heading {
  margin-bottom: 2rem;
}

.admissions-information-other-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.admissions-information-other-item {
  padding: 1.5rem;
  border-left: 0.25rem solid var(--color-primary);
  background: var(--color-surface);
}

.admissions-information-other-item h3 {
  color: var(--color-primary);
  font-size: 1.2rem;
  font-weight: 600;
}

.admissions-information-other-item p {
  margin-top: 0.75rem;
  line-height: 1.8;
}

.admissions-information-group {
  margin-top: 2rem;
}

.admissions-information-program__date {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  align-items: baseline;
  margin-top: 1rem;
}

.admissions-information-program__date strong {
  color: var(--color-primary);
  font-family: var(--font-sans);
  font-size: 1.4rem;
  font-weight: 600;
}

.admissions-information-program__date span {
  font-weight: 600;
}

.admissions-information-program dl {
  display: grid;
  gap: 0.45rem;
  margin-top: 0.9rem;
  font-size: 1.1rem;
  line-height: 1.75;
}

.admissions-information-program dl>div {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 0.75rem;
}

.admissions-information-program dt {
  color: var(--color-primary);
  font-weight: 600;
}

.admissions-information-schedule {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
}

.admissions-information-schedule-layout {
  display: flex;
  align-items: flex-start;
  gap: 2.5rem;
  margin-bottom: 2rem;
}

.admissions-information-schedule-layout .admissions-information-schedule {
  flex: 1 1 0;
  min-width: 0;
}

.admissions-information-schedule p {
  padding: 0.85rem;
  background: var(--color-surface-subtle);
}

.admissions-information-schedule strong,
.admissions-information-schedule span,
.admissions-information-schedule small {
  display: block;
}

.admissions-information-schedule strong {
  color: var(--color-primary);
  font-size: 1.1rem;
  font-weight: 600;
}

.admissions-information-schedule span {
  margin-top: 0.35rem;
  font-weight: 600;
}

.admissions-information-schedule small {
  margin-top: 0.3rem;
  line-height: 1.5;
}

.admissions-information-feature__applications {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.admissions-information-feature__application {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  color: var(--color-surface) !important;
  background: var(--color-primary);
  font-weight: 600;
  text-decoration: none !important;
}

.admissions-information-feature__application--junior {
  background: var(--color-junior);
}

.admissions-information-feature__application--high {
  background: var(--color-primary-bright);
}

.admissions-information-feature__application span {
  font-size: 1.5rem;
  line-height: 1;
}

.events-list-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2rem 1.5rem;
  margin-top: 2rem;
}

.events-list-card {
  min-width: 0;
}

.events-list-card a {
  display: block;
  height: 100%;
}

.events-list-card figure {
  position: relative;
  overflow: hidden;
  aspect-ratio: 7 / 5;
}

.events-list-card figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.events-list-card figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  display: grid;
  place-items: center;
  min-width: 6.5rem;
  height: 1.5rem;
  padding-inline: 0.65rem;
  color: var(--color-surface);
  background: var(--color-primary);
  font-family: var(--font-sans);
  font-size: 0.875rem;
}

.events-list-card .events-list-card__label--high {
  background: var(--color-primary-bright);
}

.events-list-card .events-list-card__label--junior {
  background: var(--color-junior);
}

.events-list-card__body {
  padding-top: 1rem;
}

.events-list-card time {
  font-family: var(--font-sans);
  font-size: 1rem;
}

.events-list-card h3 {
  min-height: 4.5rem;
  margin-top: 0.75rem;
  color: var(--color-text);
  font-weight: 500;
  line-height: 1.5;
}

.events-list-card p {
  min-height: 3.5rem;
  padding: 1rem 0;
  border-bottom: 0.0625rem solid var(--color-divider);
  color: var(--color-muted);
  font-size: 0.9375rem;
}

@media (max-width: 48rem) {
  .content-page--news .events-list-section {
    margin-top: 1.5rem;
    /*
    padding-top: 5rem;
    */
  }

  .events-list-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem 1rem;
    margin-top: 1.5rem;
  }

  .events-list-card figcaption {
    min-width: 4.5rem;
    height: 1.25rem;
    font-size: 0.75rem;
  }

  .events-list-card__body {
    padding-top: 0.75rem;
  }

  .events-list-card time,
  .events-list-card p {
    font-size: 0.875rem;
  }

  .events-list-card h3 {
    min-height: 4.25rem;
    margin-top: 0.5rem;
    font-size: 1rem;
  }

  .events-list-card p {
    min-height: 3rem;
    padding: 0.75rem 0;
  }
}

.content-page--career {
  --page-accent: #174f91;
  --page-accent-soft: #edf4fb;
}

.content-page--school-life {
  --page-accent: #2d6280;
  --page-accent-soft: #edf5f7;
}

.content-page--admissions {
  --page-accent: var(--color-junior);
  --page-accent-soft: #f7eef1;
}

.content-page--audience {
  --page-accent: #3d5777;
  --page-accent-soft: #eff3f7;
}

.content-page--news {
  --page-accent: #285b87;
  --page-accent-soft: #eef5fa;
}

.content-page--news .lower-main {
  padding-top: 2rem;
}

.content-page .lower-intro__eyebrow,
.content-page .lower-section__title,
.content-page .lower-card h3,
.content-page .lower-data-table th {
  color: var(--page-accent);
}

.content-page .lower-section__heading::before {
  border-color: var(--page-accent);
}

.content-page .lower-section--tint::before {
  background: var(--page-accent-soft);
}

.cd-lead {
  max-width: 860px;
}

.page-intro {
  max-width: 48rem;
  margin: 0 auto;
  color: var(--color-body);
  line-height: 2;
  text-align: center;
}

.for-students-parents__heading {
  margin: 0 0 1.25rem;
  color: var(--color-primary);
  font-family: var(--font-sans);
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 2;
}

.cd-lead h2 {
  text-wrap: balance;
}

.cd-lead p:last-child {
  max-width: 720px;
  margin-inline: auto;
}

.cd-summary {
  display: grid;
  grid-template-columns: 136px 1fr;
  gap: 40px;
  align-items: start;
  padding: 36px 40px;
  border-top: 1px solid color-mix(in srgb, var(--page-accent) 35%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--page-accent) 35%, transparent);
}

.cd-summary__label {
  color: var(--page-accent);
  font-family: var(--font-latin);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.16em;
}

.cd-summary p:last-child {
  font-size: 0.94rem;
  line-height: 2;
}

.cd-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.cd-card-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cd-card {
  position: relative;
  display: flex;
  min-height: 248px;
  flex-direction: column;
  padding: 34px 32px 30px;
  border: 1px solid color-mix(in srgb, var(--page-accent) 22%, transparent);
  background: var(--color-surface);
  box-shadow: var(--shadow-card-soft);
  transition:
    border-color var(--transition),
    opacity var(--transition);
}

a.cd-card:hover {
  border-color: var(--page-accent);
  opacity: 0.72;
}

.cd-card__index {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--page-accent);
  font-family: var(--font-latin);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
}

.cd-card__index::before {
  width: 28px;
  border-top: 1px solid currentColor;
  content: "";
}

.cd-card h3 {
  margin-top: 22px;
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.38rem;
  font-weight: 600;
  line-height: 1.5;
}

.cd-card p {
  margin-top: 16px;
  color: var(--color-muted);
  font-size: 0.88rem;
  line-height: 1.9;
}

.cd-card__arrow {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin: auto 0 0 auto;
  border: 1px solid var(--page-accent);
  border-radius: 50%;
  color: var(--page-accent);
  font-family: var(--font-latin);
}

.cd-card__status {
  width: fit-content;
  margin-top: 14px;
  padding: 5px 10px;
  border-radius: 999px;
  color: var(--page-accent);
  background: var(--page-accent-soft);
  font-size: 0.7rem;
  font-weight: 700;
}

.cd-feature {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  align-items: stretch;
  min-height: 420px;
  background: var(--page-accent-soft);
}

.cd-feature--reverse {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
}

.cd-feature--reverse .cd-feature__media {
  order: 2;
}

.cd-feature__media {
  min-height: 420px;
}

.cd-feature__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cd-feature__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 56px 64px;
}

.cd-feature__eyebrow {
  color: var(--page-accent);
  font-family: var(--font-latin);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
}

.cd-feature h3 {
  margin-top: 14px;
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.65rem;
  font-weight: 600;
  line-height: 1.55;
}

.cd-feature__body>p:not(.cd-feature__eyebrow) {
  margin-top: 22px;
  font-size: 0.92rem;
  line-height: 2;
}

.cd-text-link {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 12px;
  margin-top: 28px;
  color: var(--page-accent);
  font-size: 0.82rem;
  font-weight: 700;
}

.cd-text-link::after {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid currentColor;
  border-radius: 50%;
  content: "›";
}

.cd-placeholder {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 24px;
  padding: 36px 40px;
  border: 1px solid color-mix(in srgb, var(--page-accent) 24%, transparent);
  border-left: 4px solid var(--page-accent);
  background: #fff;
}

.cd-placeholder__mark {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  color: #fff;
  background: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.25rem;
}

.cd-placeholder h3 {
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.2rem;
  font-weight: 600;
}

.cd-placeholder p {
  margin-top: 10px;
  color: var(--color-muted);
  font-size: 0.86rem;
  line-height: 1.85;
}

.cd-note {
  padding: 26px 30px;
  border-radius: 2px;
  background: var(--page-accent-soft);
}

.cd-note h3 {
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.08rem;
  font-weight: 600;
}

.cd-note p,
.cd-note li {
  font-size: 0.87rem;
  line-height: 1.9;
}

.cd-note p {
  margin-top: 10px;
}

.cd-note ul {
  display: grid;
  gap: 6px;
  margin-top: 14px;
}

.cd-note li {
  position: relative;
  padding-left: 18px;
}

.cd-note li::before {
  position: absolute;
  top: 0.72em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--page-accent);
  content: "";
}

.cd-step-list {
  display: grid;
  gap: 16px;
  counter-reset: step;
}

.cd-step {
  display: grid;
  grid-template-columns: 72px 1fr;
  min-height: 132px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--page-accent) 20%, transparent);
  background: #fff;
  counter-increment: step;
}

.cd-step::before {
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--page-accent);
  content: counter(step, decimal-leading-zero);
  font-family: var(--font-latin);
  font-size: 1.1rem;
}

.cd-step__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 24px 30px;
}

.cd-step h3 {
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.15rem;
  font-weight: 600;
}

.cd-step p {
  margin-top: 8px;
  color: var(--color-muted);
  font-size: 0.86rem;
  line-height: 1.8;
}

.cd-table-wrap {
  overflow-x: auto;
  border-top: 2px solid var(--page-accent);
}

.cd-table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
}

.cd-table th,
.cd-table td {
  padding: 20px 24px;
  border-bottom: 1px solid var(--color-divider);
  text-align: left;
  vertical-align: top;
}

.cd-table th {
  width: 28%;
  color: var(--page-accent);
  background: var(--page-accent-soft);
  font-weight: 700;
}

.cd-table td {
  background: #fff;
  line-height: 1.85;
}

.cd-download-list,
.cd-article-list {
  border-top: 2px solid var(--page-accent);
}

.cd-download,
.cd-article-row {
  display: grid;
  grid-template-columns: 132px 1fr auto;
  align-items: center;
  gap: 24px;
  min-height: 104px;
  padding: 20px 24px;
  border-bottom: 1px solid var(--color-divider);
  background: #fff;
}

.cd-download__type,
.cd-article-row__category {
  display: inline-grid;
  place-items: center;
  min-height: 30px;
  padding: 5px 12px;
  color: var(--page-accent);
  background: var(--page-accent-soft);
  font-size: 0.7rem;
  font-weight: 700;
}

.cd-download h3,
.cd-article-row h3 {
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 600;
}

.cd-download p,
.cd-article-row p {
  margin-top: 6px;
  color: var(--color-muted);
  font-size: 0.78rem;
}

.cd-download__action {
  color: var(--page-accent);
  font-size: 0.76rem;
  font-weight: 700;
}

.cd-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 32px;
}

.cd-filter span {
  display: inline-grid;
  place-items: center;
  min-width: 112px;
  min-height: 42px;
  padding: 8px 18px;
  border: 1px solid color-mix(in srgb, var(--page-accent) 34%, transparent);
  border-radius: 999px;
  color: var(--page-accent);
  background: #fff;
  font-weight: 700;
}

.cd-filter span:first-child {
  color: #fff;
  background: var(--page-accent);
}

.cd-contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid color-mix(in srgb, var(--page-accent) 24%, transparent);
  background: #fff;
}


.cd-contact__intro {
  color: #fff;
  background: var(--page-accent);
}

.cd-contact__intro p:first-child {
  font-family: var(--font-latin);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
}

.cd-contact__intro h3 {
  margin-top: 10px;
  font-family: var(--font-serif);
  font-size: 1.55rem;
  font-weight: 600;
}

.cd-contact__intro p:last-child {
  margin-top: 1rem;
  line-height: 1.9;
}

.cd-contact__details {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.cd-contact__tel {
  color: var(--page-accent);
  font-family: var(--font-latin);
  font-size: 1.8rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.cd-contact__details p:not(.cd-contact__tel) {
  margin-top: 8px;
  font-size: 0.82rem;
  line-height: 1.8;
}

.cd-contact__details a {
  width: fit-content;
  margin-top: 20px;
  color: var(--page-accent);
  font-size: 0.82rem;
  font-weight: 700;
}

.principal-message-panel {
  position: relative;
  display: grid;
  grid-template-columns: 25rem minmax(0, 1fr);
  align-items: start;
  gap: 3.5rem clamp(2.5rem, 6vw, 4.5rem);
}

.principal-message-panel>.shinwa-heading {
  grid-column: 1 / -1;
  margin: 0;
}

.principal-message__photo {
  width: 25rem;
}

.principal-message__photo img {
  width: 100%;
  height: auto;
}

.principal-message__photo-placeholder {
  position: relative;
  display: grid;
  overflow: hidden;
  place-items: center;
  align-content: center;
  aspect-ratio: 3 / 4;
  border: 0;
  color: var(--color-primary);
  background: var(--color-pale);
  font-family: var(--font-serif);
}

.principal-message__photo-placeholder::before {
  position: absolute;
  inset: 1.5rem;
  border-bottom: 0.125rem solid var(--color-primary);
  border-left: 0.125rem solid var(--color-primary);
  content: "";
  opacity: 0.28;
}

.principal-message__photo-placeholder::after {
  position: absolute;
  right: -0.25rem;
  bottom: 0.25rem;
  color: var(--color-primary);
  content: "SHINWA";
  font-family: var(--font-latin);
  font-size: 2.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1;
  opacity: 0.05;
}

.principal-message__photo-placeholder span {
  position: relative;
  font-size: 1rem;
  letter-spacing: 0.12em;
}

.principal-message__photo-placeholder small {
  position: relative;
  margin-top: 8px;
  font-family: var(--font-latin);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
}

.principal-message__body {
  position: relative;
  font-size: 1.05rem;
  line-height: 2.1;
}

.principal-message__body>p+p {
  margin-top: 1.75em;
}

.principal-message__body> p.goto-rijicho-link a{
  display: inline-block;
}

  .principal-message__body> p.goto-rijicho-link a::after {
    content: "";
    display: inline-block;
    width: 1rem;
    aspect-ratio: 1;
    background: url(../images/arr-right-blue.png) center/contain no-repeat;
  }

@media (min-width: 48.001rem) {
  .principal-message-panel {
    grid-template-columns: minmax(0, 1fr) 25rem;
  }

  .principal-message__body {
    grid-column: 1;
    grid-row: 2;
  }

  .principal-message__photo {
    grid-column: 2;
    grid-row: 2;
  }
}

.principal-message__signature {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 20px;
  padding-top: 20px;
  font-family: var(--font-serif);
  font-weight: 500;
}

.principal-message__signature span {}

.principal-message__signature strong {
  font-size: 1.35rem;

  letter-spacing: 0.12em;
}

.access-content-section {
  padding-top: 0;
}

.access-map,
.access-original-map-placeholder {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--color-divider);
  background: color-mix(in srgb, var(--color-muted) 12%, transparent);
}

.access-original-map-placeholder {
  background-color: color-mix(in srgb, var(--color-muted) 10%, var(--color-surface));
  background-image:
    linear-gradient(color-mix(in srgb, var(--color-primary) 7%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 7%, transparent) 1px, transparent 1px);
  background-size: 3rem 3rem;
}

.access-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.access-original-maps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 0;
}

.access-original-map-3 {
  position: absolute;
  right: 0;
  bottom: 0;
  grid-column: 1 / -1;
}

.access-original-maps img {
  display: block;
  width: 100%;
  height: auto;
}

@media (min-width: 48.0625rem) {
  .access-original-maps {
    grid-template-columns: 528px 296px;
    width: max-content;
    max-width: 100%;
    margin-inline: auto;
  }

  .access-original-map-1 img {
    width: 528px;
  }

  .access-original-map-2 img {
    width: 296px;
  }

  .access-original-map-3 img {
    width: 424px;
  }
}

.access-information-grid {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 2rem;
  margin-top: 2rem;
  margin-bottom: 4rem;
}

.access-information-grid .cd-contact {
  grid-template-columns: 1fr;
  min-width: 0;
  border: 0;
}

.access-information-grid .cd-contact__intro {
  color: var(--color-text);
  background: #fff;
}

.access-information-grid .cd-contact__intro h3 {
  margin-top: 0;
  font-family: var(--font-serif);
  font-size: 1.5rem;
  line-height: 1.6;
}

.access-information-grid .cd-contact__intro {
  text-align: center;
}

.access-information-grid .cd-contact__tel {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
}

.access-contact__numbers {
  white-space: nowrap;
}

.access-information-grid .access-map {
  width: min(100%, 824px);
  height: 560px;
  min-height: 0;
  margin-inline: auto;
  aspect-ratio: auto;
}

.cd-policy {
  display: grid;
  gap: 56px;
  max-width: 860px;
  margin-inline: auto;
}

.cd-policy section {
  padding-bottom: 48px;
  border-bottom: 1px solid var(--color-divider);
}

.cd-policy h2 {
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.6;
}

.cd-policy p,
.cd-policy li {
  font-size: 0.9rem;
  line-height: 2;
}

.cd-policy p,
.cd-policy ul {
  margin-top: 20px;
}

.cd-policy li {
  position: relative;
  padding-left: 20px;
}

.cd-policy li::before {
  position: absolute;
  top: 0.78em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--page-accent);
  content: "";
}

.cd-policy ol {
  list-style: decimal;
  padding-left: 1.5rem;
}

.cd-policy ol ol {
  margin-top: 0;
}

.cd-policy ol li {
  padding-left: 0;
}

.cd-policy ol li::before {
  display: none;
}

.cd-article-header {
  max-width: 860px;
  padding-bottom: 36px;
  margin: 0 auto 48px;
  border-bottom: 1px solid var(--color-divider);
}

.cd-article-header__meta {
  display: flex;
  align-items: center;
  gap: 16px;
  color: var(--color-muted);
  font-size: 0.78rem;
}

.cd-article-header__category {
  padding: 5px 12px;
  color: var(--page-accent);
  background: var(--page-accent-soft);
  font-weight: 700;
}

.cd-article-header h2 {
  margin-top: 22px;
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.6;
}

.cd-article-body {
  display: grid;
  gap: 32px;
  max-width: 800px;
  margin-inline: auto;
}

.cd-article-body h3 {
  margin-top: 18px;
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 600;
}

.cd-article-body p {
  font-size: 0.92rem;
  line-height: 2;
}

.cd-back-link {
  display: flex;
  justify-content: center;
  margin-top: 64px;
}

.cd-back-link a {
  display: grid;
  place-items: center;
  min-width: 240px;
  min-height: 58px;
  border: 1px solid var(--page-accent);
  color: var(--page-accent);
  font-weight: 700;
}

.cd-sitemap {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.cd-sitemap a {
  text-decoration: none;
}

.cd-sitemap__group {
  padding: 30px;
  border-top: 3px solid var(--page-accent);
  background: #fff;
  box-shadow: 0 14px 40px rgba(18, 45, 78, 0.06);
}

.cd-sitemap__group h2 {
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 600;
}

.cd-sitemap__group h2 a {
  color: inherit;
}

.cd-sitemap__group>a {
  display: inline-block;
  margin-top: 14px;
  color: var(--page-accent);
  font-size: 1rem;
  font-weight: 700;
}

.cd-sitemap__group ul {
  display: grid;
  gap: 10px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--color-divider);
}

.cd-sitemap__group li a {
  position: relative;
  display: block;
  padding-left: 15px;
  font-size: 1rem;
  line-height: 1.6;
}

.cd-sitemap__group li a::before {
  position: absolute;
  top: 0.58em;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--page-accent);
  content: "";
}

.content-page .lower-cta {
  background: var(--page-accent);
}

.content-page .lower-cta a {
  flex: 0 0 auto;
}

.book-pdf-list {
  --book-pdf-accent: var(--color-primary);
}

.recruitment-teachers-link {
  color: var(--color-primary-bright);
  text-decoration: underline;
  text-decoration-thickness: 0.0625rem;
  text-underline-offset: 0.18em;
}

.recruitment-teachers-link:hover,
.recruitment-teachers-link:focus-visible {
  opacity: 0.7;
}

.admissions-results-announcements__notice-list ul {
  padding: 0;
  margin: 1.5rem 0 0;
  border-top: 0.0625rem solid var(--color-divider);
  list-style: none;
}

.admissions-results-announcements__notice-list li {
  display: flex;
  gap: 1.5rem;
  padding: 1rem 0;
  border-bottom: 0.0625rem solid var(--color-divider);
}

.admissions-results-announcements__notice-list time {
  flex: 0 0 5rem;
  color: var(--color-muted);
  font-family: var(--font-latin);
}

.admissions-results-announcements__compass {
  margin-top: 3rem;
  text-align: center;
}

.admissions-results-announcements__compass-link {
  display: inline-flex;
  align-items: center;
  gap: 1.25rem;
  margin-top: 1.25rem;
  padding: 0.9rem 1.5rem;
  color: var(--color-surface) !important;
  text-decoration: none !important;
  background: var(--color-primary);
  font-weight: 600;
}

.admissions-results-announcements__compass-link span {
  font-size: 1.5rem;
  line-height: 1;
}

.admissions-results-announcements__compass-link:hover,
.admissions-results-announcements__compass-link:focus-visible {
  opacity: 0.78;
}

.admissions-information-entry {
  margin: 2rem 0 0;
}

.admissions-information-entry__list {
  display: flex;
  gap: 3rem;
  padding-inline: 1rem;
}

.admissions-information-entry__list>li {
  display: flex;
  flex: 1 1 0;
  min-width: 0;
}

.admissions-information-intro {
  width: min(50rem, 100%);
  margin: 0 auto 3rem;
  color: var(--color-body);
  font-size: 1rem;
  line-height: 2;
}

.admissions-information-entry__list a {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  gap: 0.5rem;
  color: var(--color-primary);
  text-decoration: none !important;
}

.admissions-information-entry__list a:hover,
.admissions-information-entry__list a:focus-visible {
  opacity: 0.75;
}

.admissions-information-entry__description {
  color: var(--color-body);
}

.admissions-information-entry img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  order: 1;
}

.admissions-information-entry .page-directory__title {
  order: 0;
  width: 100%;
}

.admissions-information-entry__description {
  order: 2;
  line-height: 1.8;
}

.admissions-information-entry~.admissions-information-section {
  display: none;
}

.admissions-information-poster {
  width: min(25rem, 100%);
  margin: 0 auto 4rem;
}

.admissions-information-schedule-layout .admissions-information-poster {
  flex: 0 0 min(18rem, 32%);
  width: min(18rem, 32%);
  margin: 1rem 0 0;
}

.admissions-information-poster a {
  display: block;
  color: var(--color-primary);
  font-family: var(--font-serif);
  font-weight: 600;
  text-align: center;
}

.admissions-information-poster a:hover,
.admissions-information-poster a:focus-visible {
  opacity: 0.75;
}

.admissions-information-poster img {
  width: 100%;
  height: auto;
  box-shadow: var(--shadow-card-soft);
}

.admissions-information-poster span {
  display: block;
  margin-top: 1rem;
  font-family: var(--font-sans);
}

/* 説明会：SP上書き */
@media (max-width: 48rem) {
  .admissions-information-feature {
    flex-direction: column;
    gap: 2rem;
    margin-bottom: 0;
  }

  .admissions-information-feature__poster {
    width: min(18rem, 100%);
    margin-inline: auto;
  }

  .admissions-information-program {
    padding: 1.15rem 1rem;
  }

  .admissions-information-program__date strong {
    font-size: 1.15rem;
  }

  .admissions-information-schedule {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .admissions-information-schedule-layout {
    flex-direction: column;
    align-items: initial;
  }

  .admissions-information-schedule-layout .admissions-information-poster {
    width: min(18rem, 100%);
    margin: 0 auto;
  }

  .admissions-information-feature__applications {
    grid-template-columns: 1fr;
  }

  .admissions-information-entry__list {
    flex-direction: column;
    gap: 1.5rem;
  }
}

.admissions-results-data__lead {
  margin-bottom: 2rem;
}

.admissions-results-data__school+.admissions-results-data__school {
  margin-top: 3rem;
}

.admissions-results-data__years {
  display: grid;
  gap: 2rem;
  margin-top: 2rem;
}

.admissions-results-data__years h3 {
  margin-bottom: 0.75rem;
  font-size: 1.15rem;
}

.admissions-results-data__table-wrap {
  display: none;
}

.admissions-results-data__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  padding: 0;
  margin: 0 0 1rem;
  list-style: none;
}

.admissions-results-data__links a {
  color: var(--color-primary);
  text-decoration: none;
}

.admissions-results-data__links a::after {
  margin-left: 0.5rem;
  content: "›";
}

.admissions-results-data table {
  width: 100%;
  min-width: 34rem;
  border-collapse: collapse;
  background: var(--color-surface);
}

.admissions-results-data th,
.admissions-results-data td {
  padding: 0.85rem 1rem;
  border: 0.0625rem solid var(--color-divider);
  text-align: center;
}

.admissions-results-data thead th {
  color: var(--color-primary);
  background: var(--color-surface-subtle);
  font-weight: 600;
}

.admissions-results-data tbody th {
  text-align: left;
  font-weight: 500;
}

@media (min-width: 48.0625rem) {
  .recruitment-teachers-information {
    text-align: center;
  }
}

.book-pdf-list__items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.book-pdf {
  display: grid;
  grid-template-columns: 164px minmax(0, 1fr);
  gap: 28px;
  min-height: 300px;
  padding: 28px;
  border: 1px solid color-mix(in srgb, var(--book-pdf-accent) 24%, transparent);
  background: #fff;
}

.book-pdf:hover {
  border-color: var(--book-pdf-accent);
  opacity: 1;
}

.book-pdf:focus-visible {
  outline-color: var(--book-pdf-accent);
}

.book-pdf .book-pdf__preview {
  align-self: start;
  padding: 10px;
  background: var(--page-accent-soft);
  box-shadow: 0 16px 30px rgba(16, 60, 120, 0.14);
}

.book-pdf .book-pdf__preview img {
  /*
  width: 100%;
  height: auto;
  aspect-ratio: 192 / 271;
  object-fit: cover;
  */
}

.book-pdf .book-pdf__body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding-top: 8px;
}

.book-pdf__label {
  color: var(--book-pdf-accent);
  font-family: var(--font-latin);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.12em;
}

.book-pdf :is(h3, h4) {
  margin-top: 14px;
  color: var(--book-pdf-accent);
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.5;
}

.book-pdf__action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.25rem;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--color-divider);
  color: var(--book-pdf-accent);
  font-weight: 500;
}

.book-pdf__book-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
}

.book-pdf__book-icon svg {
  width: 24px;
  height: 24px;
}

.curriculum-entrance,
.curriculum-detail {
  --curriculum-white: var(--color-surface);
  --curriculum-surface: var(--color-surface-subtle);
  --curriculum-shadow: var(--shadow-card-soft);
}

.curriculum-entrance {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  width: min(var(--lower-detail-content-width), calc(100% - 3rem));
  padding: 6rem 0 8rem;
  margin-inline: auto;
}

.curriculum-entry {
  --curriculum-entry-accent: var(--color-primary);

  display: grid;
  min-height: 26rem;
  overflow: hidden;
  grid-template-columns: minmax(10rem, 42%) minmax(0, 1fr);
  border: 0.0625rem solid color-mix(in srgb, var(--curriculum-entry-accent) 20%, transparent);
  background: var(--curriculum-white);
  box-shadow: var(--curriculum-shadow);
  transition:
    border-color var(--transition),
    opacity var(--transition);
}

.curriculum-entry--junior {
  --curriculum-entry-accent: var(--color-junior);
}

.curriculum-entry:hover,
.curriculum-entry:focus-visible {
  border-color: var(--curriculum-entry-accent);
  opacity: 0.86;
}

.curriculum-entry__media {
  min-width: 0;
  overflow: hidden;
  background: var(--curriculum-surface);
}

.curriculum-entry__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.curriculum-entry__body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 3.25rem 2.5rem 2.5rem;
}

.curriculum-entry__label {
  color: var(--curriculum-entry-accent);
  font-family: var(--font-latin);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
}

.curriculum-entry__title {
  margin-top: 1.5rem;
  color: var(--curriculum-entry-accent);
  font-family: var(--font-serif);
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 1.55;
}

.curriculum-entry__title small {
  display: block;
  margin-top: 0.25rem;
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 500;
}

.curriculum-entry__action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  padding-top: 1.25rem;
  border-top: 0.0625rem solid var(--color-divider);
  color: var(--curriculum-entry-accent);
  font-size: 0.8rem;
  font-weight: 700;
}

.curriculum-entry__action span {
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  border: 0.0625rem solid currentColor;
  border-radius: 50%;
  font-family: var(--font-latin);
}

.curriculum-detail {
  padding-bottom: 4rem;
}

.curriculum-section-heading {
  position: relative;
  max-width: 48rem;
  padding-top: 1.5rem;
  margin: 0 auto 4.5rem;
  text-align: center;
}

.curriculum-section-heading::before {
  position: absolute;
  top: 0;
  left: 50%;
  width: 5rem;
  border-top: 0.125rem solid var(--page-accent);
  content: "";
  transform: translateX(-50%);
}

.curriculum-section-heading__eyebrow {
  color: var(--page-accent);
  font-family: var(--font-latin);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
}

.curriculum-section-heading h2 {
  margin-top: 1.125rem;
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 500;
  line-height: 1.45;
  text-wrap: balance;
}

.curriculum-section-heading__lead {
  display: grid;
  gap: 0.35rem;
  margin-top: 2rem;
  line-height: 2;
}

.curriculum-stage-list {
  display: grid;
  gap: 3rem;
  counter-reset: curriculum-stage;
}

.curriculum-stage {
  display: grid;
  overflow: hidden;
  grid-template-columns: minmax(15rem, 17rem) minmax(0, 1fr);
  border-radius: var(--radius-card);
  border: 0.0625rem solid color-mix(in srgb, var(--page-accent) 18%, transparent);
  background: var(--curriculum-white);
  box-shadow: var(--shadow-card-soft);
}

.curriculum-stage-list .curriculum-stage.is-reveal-ready .curriculum-stage__header {
  opacity: 0;
  transform: translateX(-1rem);
  transition:
    opacity 0.7s ease-out var(--curriculum-stage-delay, 0s),
    transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) var(--curriculum-stage-delay, 0s);
  will-change: opacity, transform;
}

.curriculum-stage-list .curriculum-stage.is-reveal-ready.is-visible .curriculum-stage__header {
  opacity: 1;
  transform: translateX(0);
}

.curriculum-stage__header {
  position: sticky;
  top: 6.5rem;
  display: flex;
  min-height: 18rem;
  align-self: start;
  flex-direction: column;
  padding: 2.25rem 2rem;
  color: var(--curriculum-white);
  background: var(--page-accent);
}

.curriculum-stage__number {
  font-family: var(--font-latin);
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1;
  opacity: 0.32;
}

.curriculum-stage__title>p:first-child {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.curriculum-stage__title {
  margin-top: 2rem;
}

.curriculum-stage__title h3 {
  margin-top: 0.55rem;
  font-family: var(--font-serif);
  font-size: 1.75rem;
  color: #fff;
}

.curriculum-stage__concept {
  position: relative;
  padding-top: 1.25rem;
  margin-top: 1.5rem;
  font-family: var(--font-serif);
  font-size: 0.9rem;
  line-height: 1.75;
}

.curriculum-stage__concept::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 2.5rem;
  border-top: 0.0625rem solid currentColor;
  content: "";
  opacity: 0.6;
}

.curriculum-stage__content {
  padding: 3rem 3.5rem;
}

.curriculum-stage__content>p {
  line-height: 2;
  margin-left: 1em;
  margin-right: 1em;
}

.curriculum-stage__content>p+p {
  margin-top: 1em;
}

.curriculum-stage__figs {
  margin: 1.5rem 1rem 0 1rem;
}

.curriculum-example {
  margin: 2rem;
}

.curriculum-hours {
  padding: 2rem;
  background: var(--curriculum-surface);
}

.curriculum-hours h4 {
  color: var(--page-accent);
  font-size: 1.2rem;
  font-weight: 600;
}

.curriculum-hours__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.25rem;
}

.curriculum-hours__item {
  padding: 1.5rem;
  border-top: 0.1875rem solid var(--color-muted);
  background: var(--curriculum-white);
}

.curriculum-hours__item--shinwa {
  border-color: var(--page-accent);
}

.curriculum-hours__school {
  color: var(--page-accent);
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 600;
}

.curriculum-hours__item>p:nth-child(2) {
  min-height: 4.5rem;
  margin-top: 0.75rem;
  line-height: 1.7;
}

.curriculum-hours__total {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0.35rem;
  padding-top: 1rem;
  margin-top: 1rem;
  border-top: 0.0625rem solid var(--color-divider);
  color: var(--page-accent);
}

.curriculum-hours__total span {
  margin-right: 0.25rem;
  color: var(--color-text);
}

.curriculum-hours__total span em {
  font-weight: 600;
  text-decoration: underline;
  margin-right: 0.25em;
}

.curriculum-hours__total strong {
  font-family: var(--font-latin);
  font-size: 2rem;
  font-weight: 500;
  line-height: 1;
}

.curriculum-growth-chart {
  margin-top: 3rem;
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.curriculum-growth-chart figcaption,
.curriculum-chart figcaption,
.curriculum-chart h3 {
  margin-bottom: 0;
  color: var(--page-accent);
  /*font-family: var(--font-serif);*/
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.6;
}

.curriculum-growth-chart figcaption br {
  display: none;
}

.curriculum-chart h3 {
  margin-bottom: 0.5rem;
}

.curriculum-growth-chart__image {
  width: 50%;
  background: var(--curriculum-white);
}

.curriculum-growth-chart__image img {
  width: 100%;
  height: auto;
}

.curriculum-growth-chart__text {
  flex: 1;
}

.curriculum-growth-chart__text p {
  line-height: 2;
}

.curriculum-growth-chart__text p+p {
  margin-top: 1rem;
}

.curriculum-growth-chart__text .curriculum-growth-chart__note {
  margin-top: 0.75rem;
  color: var(--color-muted);
  font-size: 0.9rem;
}

.curriculum-stage__close {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .curriculum-stage-list .curriculum-stage.is-reveal-ready .curriculum-stage__header {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@media (hover: hover) {
  .curriculum-stage-list.is-modal-ready .curriculum-stage__header {
    transition:
      filter var(--transition),
      box-shadow var(--transition);
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__header:hover {
    filter: brightness(1.1);
    box-shadow: inset 0 0 0 0.125rem rgba(255, 255, 255, 0.38);
  }
}

@media (min-width: 48.001rem) {
  body.is-curriculum-modal-open {
    overflow: hidden;
  }

  html.is-curriculum-modal-open {
    overflow: hidden;
  }

  .curriculum-stage-list.is-modal-ready {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.75rem;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage {
    position: relative;
    display: block;
    overflow: visible;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage:not(:last-child)::after {
    position: absolute;
    top: 50%;
    right: -1.9375rem;
    z-index: 1;
    width: 0;
    height: 0;
    border-top: 0.875rem solid transparent;
    border-bottom: 0.875rem solid transparent;
    border-left: 1.125rem solid var(--color-gold);
    content: "";
    transform: translateY(-50%);
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__header {
    position: relative;
    top: auto;
    min-height: 22rem;
    height: 100%;
    padding-bottom: 5.5rem;
    cursor: pointer;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__header::after {
    position: absolute;
    right: auto;
    bottom: 1.5rem;
    left: 50%;
    padding: 0.5rem 1.25rem;
    border: 0.0625rem solid var(--curriculum-white);
    border-radius: 9999px;
    color: var(--page-accent);
    background: var(--curriculum-white);
    font-family: var(--font-sans);
    font-size: 0.875rem;
    font-weight: 700;
    content: "詳しく見る ＋";
    transform: translateX(-50%);
    white-space: nowrap;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__header:focus-visible {
    outline: 0.1875rem solid var(--curriculum-white);
    outline-offset: -0.5rem;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__content {
    position: fixed;
    inset: 2rem;
    z-index: 121;
    display: none;
    width: min(60rem, calc(100% - 4rem));
    max-height: calc(100dvh - 4rem);
    padding: 4.5rem 4rem 3.5rem;
    margin: auto;
    overflow-y: auto;
    border-radius: var(--radius-card);
    background: var(--curriculum-white);
    box-shadow: 0 1.5rem 4rem rgba(8, 34, 68, 0.28);
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage.is-open::before {
    position: fixed;
    inset: 0;
    z-index: 120;
    background: rgba(8, 34, 68, 0.68);
    content: "";
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage.is-open .curriculum-stage__content {
    display: block;
    animation: curriculum-modal-in 0.28s ease both;
  }

  .curriculum-stage__close {
    position: sticky;
    top: -3rem;
    z-index: 1;
    display: block;
    width: fit-content;
    margin: -3rem 0 1.5rem auto;
    padding: 0.5rem 1rem;
    border: 0.0625rem solid var(--page-accent);
    border-radius: 999rem;
    color: var(--page-accent);
    background: var(--curriculum-white);
    font-family: var(--font-sans);
    font-weight: 700;
  }

  .curriculum-stage__content .curriculum-example {
    margin: 3rem 0 0;
  }

  .curriculum-stage__modal-heading {
    display: flex;
    align-items: flex-end;
    gap: 1.5rem;
    padding: 1rem;
    margin-bottom: 2rem;
    color: var(--curriculum-white);
    background: var(--page-accent);
  }

  .curriculum-stage__modal-number {
    font-family: var(--font-latin);
    font-size: 3rem;
    font-weight: 300;
    line-height: 0.9;
    opacity: 0.4;
  }

  .curriculum-stage__modal-heading p {
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
  }

  .curriculum-stage__modal-heading h2 {
    margin-top: 0;
    font-family: var(--font-serif);
    font-size: 1.75rem;
    font-weight: 600;
  }

  @keyframes curriculum-modal-in {
    from {
      opacity: 0;
      transform: translateY(1rem);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}

.curriculum-chart-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 3rem;
}

.curriculum-chart {
  min-width: 0;
  padding: 2.25rem;
  background: var(--curriculum-white);
}

.brand-section-title {
  display: grid;
  gap: 0.35rem;
}

.brand-section-kicker {
  color: var(--page-accent);
  font-family: var(--font-latin);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1.4;
}

.curriculum-chart__guide {
  display: none;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  color: var(--color-muted);
  font-size: 0.8rem;
}

.curriculum-chart__viewport {
  width: 100%;
  min-width: 0;
  overflow-x: auto;
  scrollbar-color: var(--page-accent) var(--curriculum-surface);
  scrollbar-width: thin;
}

.curriculum-chart__viewport img {
  width: 100%;
  height: auto;
}

.student-message-list {
  display: flex;
  align-items: stretch;
  gap: 2.5rem;
}

.student-message-list>.student-message {
  flex: 1 1 0;
  min-width: 0;
}

.student-message {
  display: flex;
  min-height: 100%;
  overflow: hidden;
  border-radius: 1rem;
  background: var(--curriculum-surface);
}

.student-message__body {
  position: relative;
  display: flex;
  min-width: 0;
  width: 100%;
  flex-direction: column;
  padding: 0;
  border: 0;
  background: var(--curriculum-white);
}

.student-message blockquote {
  position: relative;
  padding-top: 1.5rem;
}

.student-message__body::before {
  position: absolute;
  top: 0;
  left: 0;
  color: color-mix(in srgb, var(--page-accent) 16%, transparent);
  content: "“";
  font-family: var(--font-serif);
  font-size: 5rem;
  line-height: 1;
}

.student-message blockquote p {
  position: relative;
  line-height: 1.7;
}

.student-message blockquote p+p {
  margin-top: 1.25rem;
}

.student-message__profile {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: baseline;
  margin-top: 0;
  padding-top: 0;
  color: var(--page-accent);
  text-align: right;
}

.student-message__profile span,
.student-message__profile small {
  color: var(--color-muted);
  font-size: 0.9rem;
}

.student-message__profile strong {
  margin-left: 1em;
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 600;
}

.student-message__profile small {
  flex-basis: 100%;
}

.career-results {
  --results-white: var(--color-surface);
  --results-shadow: var(--shadow-card-soft);

  padding-bottom: 4rem;
}

.career-results__lead {
  display: flex;
  align-items: center;
  gap: 4rem;
  margin-bottom: 5rem;
}

.career-results__lead-content {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
  min-width: 0;
}

.career-results__lead-content>p {
  font-size: 1.05rem;
  line-height: 2;
}

.career-results__lead-image {
  flex: 0 1 26rem;
  margin: 0;
}

.career-results__lead-image img {
  display: block;
  width: 100%;
  height: auto;
}

.career-results__reason-link {
  display: flex;
  align-self: stretch;
  min-height: 5.5rem;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.25rem 1.5rem;
  border: 0.0625rem solid color-mix(in srgb, var(--page-accent) 28%, transparent);
  color: var(--page-accent);
  background: var(--results-white);
  font-family: var(--font-serif);
  font-size: 1.2rem;
  font-weight: 600;
  transition:
    border-color var(--transition),
    opacity var(--transition);
}

.career-results__reason-link:hover,
.career-results__reason-link:focus-visible {
  border-color: var(--page-accent);
  opacity: 0.8;
}

.career-results__reason-arrow,
.career-results__pdf-arrow {
  position: relative;
  display: grid;
  flex: 0 0 auto;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border: 0.0625rem solid var(--color-primary);
  border-radius: 50%;
  color: var(--color-primary);
  font-size: 0;
}

.career-results__reason-arrow::after,
.career-results__pdf-arrow::after {
  width: 1rem;
  height: 1rem;
  background: url("../images/arr-right-blue.png") center / contain no-repeat;
  content: "";
}

/* パンフ同様、枠で囲わず罫線と余白だけで数値を見せる */
.admission-results {
  padding: 0;
}

.admission-results__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  padding-bottom: 1.75rem;
}


.admission-results__header>p {
  color: var(--page-accent);
  font-size: 1rem;
  font-weight: 700;
  text-align: right;
}

.admission-results__header small {
  display: block;
  margin-top: 0.35rem;
  color: var(--color-muted);
  font-size: 0.8rem;
  font-weight: 400;
}

.university-results {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-top: 2.5rem;
}

/* 上揃えにして、注記の有無で数字の位置がずれないようにする */
.university-result {
  display: flex;
  flex: 1 1 calc(25% - 1.125rem);
  flex-wrap: wrap;
  align-items: baseline;
  min-width: 0;
  gap: 0.6rem;
  padding: 1.5rem 0 0;
  border-top: 0.1875rem solid var(--page-accent);
}

.university-result>p:first-child {
  flex: 1 1 auto;
  color: var(--page-accent);
  font-size: 1.25rem;
  font-weight: 600;
  padding-left: 0.5em;
}

.university-result>p:nth-child(2) {
  flex: 0 0 auto;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.25rem;
  color: var(--page-accent);
}

.university-result strong {
  font-family: var(--font-latin);
  font-size: 4rem;
  font-weight: 500;
  line-height: 1;
}

.university-result small {
  flex: 0 0 100%;
  color: var(--color-muted);
  /*font-size: 0.7rem;*/
  text-align: center;
}

.result-summary {
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
  margin-top: 1.5rem;
}

/* 個別大学と同じ「罫線＋数字」の骨格に、面で色を足して総括数値を一段強くする */
.result-summary__item {
  display: flex;
  flex: 1 1 0;
  min-width: 0;
  align-items: center;
  gap: 1.5rem;
  padding: 1.75rem;
  color: var(--color-primary);
  background: var(--color-pale);
}

/* パンフ同様、医歯薬は下段の帯として独立させる（長い見出しの折返しも防げる） */
.result-summary__item--medical {
  flex: 1 1 0;
  color: var(--color-primary);
  background: var(--color-pale);
}

.result-summary__item--medical h4 {
  white-space: normal;
  overflow-wrap: anywhere;
}

.result-summary__item--medical .result-summary__body {
  column-gap: 1em;
}

.result-summary__item--medical .result-summary__body>p {
  white-space: nowrap;
}

.result-summary__item--public,
.result-summary__item--private {
  flex: 0 1 auto;
}

.result-summary__item--public h4,
.result-summary__item--private h4 {
  white-space: nowrap;
}

.result-summary__item--public .result-summary__body,
.result-summary__item--private .result-summary__body {
  column-gap: 1em;
}

.result-summary__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: row;
  align-items: baseline;
}

.result-summary__body>h4 {
  flex: 1 1 auto;
  min-width: 0;
}

.result-summary__body>p,
.result-summary__body>small {
  flex: 0 0 auto;
}

/* 帯が横に広い分、内訳を左・数値を右に振り分けて間延びを防ぐ */
.result-summary__item--medical .result-summary__body {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
}

.result-summary__item--medical h4,
.result-summary__item--medical small {
  flex: 0 1 auto;
}

.result-summary__item--medical h4 {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
}

.result-summary__item--medical small {
  flex-basis: 100%;
}

.result-summary__item--medical p {
  flex: 0 0 auto;
}

.result-summary__item--medical p {
  margin-top: 0;
}

/* 元SVGがfill="white"で白背景に埋もれるため、maskにして色をCSS側から与える */
.result-summary__icon {
  width: 3.25rem;
  height: 3.25rem;
  background: currentColor;
  mask: var(--icon) center / contain no-repeat;
  -webkit-mask: var(--icon) center / contain no-repeat;
}

.result-summary__icon--public {
  --icon: url("../images/icon-value-career.svg");
}

.result-summary__icon--private {
  --icon: url("../images/icon-value-school.svg");
}

.result-summary__icon--medical {
  --icon: url("../images/icon-value-medical.svg");
}

.result-summary__item h4 {
  /*flex: 1 1 auto;*/
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.55;
}

.result-summary__item p {
  flex: 0 0 auto;
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0.25rem;
}

.result-summary__item strong {
  font-family: var(--font-latin);
  font-size: 4rem;
  font-weight: 500;
  line-height: 1;
}

.result-summary__item small {
  flex: 0 1 auto;
  display: block;
  margin-top: 0.6rem;
  /*font-size: 0.68rem;*/
  line-height: 1.7;
  opacity: 0.75;
}

.career-results__pdf-link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.5rem;
  min-height: 6.5rem;
  padding: 1.25rem 1.75rem;
  margin-top: 2rem;
  border: 0.0625rem solid color-mix(in srgb, var(--page-accent) 24%, transparent);
  color: var(--page-accent);
  background: var(--results-white);
  transition:
    border-color var(--transition),
    opacity var(--transition);
}

.career-results__pdf-link:hover,
.career-results__pdf-link:focus-visible {
  border-color: var(--page-accent);
  opacity: 0.8;
}

.career-results__pdf-type {
  display: grid;
  width: 3.5rem;
  height: 3.5rem;
  place-items: center;
  color: var(--results-white);
  background: var(--page-accent);
  font-family: var(--font-latin);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.career-results__pdf-link strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 600;
}

.career-results__pdf-link small {
  display: block;
  margin-top: 0.35rem;
  color: var(--color-muted);
  font-size: 0.7rem;
}

.career-results__recommendation-lead {
  margin-bottom: 3.5rem;
  line-height: 2;
}

.recommendation-panel {
  padding: 3rem;
  border-radius: 1rem;
  border: 1px solid var(--page-accent);
  background: var(--results-white);
}

.recommendation-panel+.recommendation-panel {
  margin-top: 2rem;
}

.recommendation-panel h3 small {
  margin-left: 0.5rem;
  color: var(--color-muted);
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 400;
}

/* 1行1罫線をやめ、パンフ同様の詰まった多段リストにする */
.recommendation-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 2rem;
  row-gap: 0.5em;
  margin-top: 1.75rem;
}

/* 学部タグが付く分だけ列幅に余裕を持たせる */
.recommendation-panel--medical .recommendation-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.recommendation-list li {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  padding-left: 0.9rem;
  line-height: 1.7;
}

.recommendation-list li::before {
  position: absolute;
  top: 0.62rem;
  left: 0;
  width: 0.3rem;
  height: 0.3rem;
  border-radius: 50%;
  background: var(--page-accent);
  content: "";
}

/* 学部タグは大学名の直後に置く（右端に飛ばさない） */
.recommendation-list li span {
  display: inline-grid;
  min-width: 2.1rem;
  flex: 0 0 auto;
  align-self: center;
  place-items: center;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  color: var(--page-accent);
  background: var(--page-accent-soft);
  font-size: 0.84rem;
  font-weight: 700;
}

.recommendation-panel__note {
  margin-top: 1.25rem;
  color: var(--color-muted);
  font-size: 0.85rem;
  text-align: right;
}

.disclosure-description {
  display: flex;
  justify-content: center;
  margin: 0 0 2rem 0;
}

.disclosure-list {
  display: flex;
  flex-direction: column;
  gap: 1.5em;
  margin-bottom: 4rem;
}

.disclosure-list li {
  position: relative;
  padding-left: 0;
}

.disclosure-list li::before {
  display: none;
}

.disclosure-list a {
  position: relative;
  display: inline-block;
  padding-left: 1.35rem;
}

.disclosure-list a::before {
  position: absolute;
  top: 0;
  left: 0;
  color: var(--color-junior);
  content: "\f1c1";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}

.disclosure-list.evaluation-list>li>ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  column-gap: 1.5rem;
  row-gap: 0.5rem;
  margin-top: 0.5em;
}

.disclosure-list.evaluation-list>li {
  font-weight: 500;
  font-size: 1.1rem;
}

.disclosure-list.evaluation-list>li ul {
  font-weight: normal;
  font-size: 1rem;
}

.error-404{
  display: flex;
  flex-direction: column;
  gap: 2em;
  text-align: center;
}


@media (max-width: 64rem) {
  .cd-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .curriculum-entry {
    grid-template-columns: minmax(9rem, 40%) minmax(0, 1fr);
  }

  .curriculum-entry__body {
    padding: 2.5rem 2rem 2rem;
  }

  .curriculum-entry__title {
    font-size: 1.5rem;
  }

  .curriculum-stage {
    grid-template-columns: 14rem minmax(0, 1fr);
  }

  .curriculum-stage__content {
    padding: 2.5rem;
  }

  .student-message__body {
    padding: 2.25rem 1.5rem 2rem;
  }

  .career-results__lead {
    gap: 2.5rem;
  }

  .admission-results {
    padding: 3rem 2.5rem;
  }

  .university-results {
    gap: 1.5rem 1rem;
  }

  .university-result {
    flex-basis: calc(50% - 0.5rem);
  }

  .result-summary {
    flex-direction: column;
  }

  .result-summary__item {
    flex: 1 1 auto;
    min-height: 0;
  }

  .recommendation-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .book-pdf-list__items {
    grid-template-columns: 1fr;
  }

  .cd-sitemap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 48rem) {
  .content-page--news .lower-main {
    padding-top: 1.5rem;
  }

  .content-page--career .lower-hero,
  .content-page--school-life .lower-hero,
  .content-page--admissions .lower-hero,
  .content-page--audience .lower-hero,
  .content-page--news .lower-hero {
    background-position: center;
  }

  .cd-lead p:last-child {
    margin-inline: 0;
  }

  .curriculum-entrance {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    width: calc(100% - 2.5rem);
    padding: 3.5rem 0 5rem;
  }

  .curriculum-entry {
    min-height: 18rem;
    grid-template-columns: minmax(7.5rem, 40%) minmax(0, 1fr);
  }

  .curriculum-entry__body {
    padding: 1.75rem 1.5rem 1.5rem;
  }

  .curriculum-entry__title {
    margin-top: 1rem;
    font-size: 1.25rem;
  }

  .curriculum-entry__title small {
    font-size: 0.75rem;
  }

  .curriculum-entry__action {
    font-size: 0.72rem;
  }

  .curriculum-detail {
    padding-bottom: 2rem;
  }

  .curriculum-section-heading {
    margin-bottom: 3rem;
    text-align: left;
  }

  .curriculum-section-heading__eyebrow {
    text-align: center;
  }

  .curriculum-section-heading h2 {
    font-size: 1.75rem;
    text-align: center;
  }

  .curriculum-section-heading__lead {
    margin-top: 1.5rem;
    line-height: 1.8;
  }

  .curriculum-stage-list {
    gap: 2rem;
  }

  .curriculum-stage {
    grid-template-columns: 1fr;
    background: var(--curriculum-white);
  }

  .curriculum-stage__header {
    position: static;
    flex: 0 0 auto;
    min-height: 0;
    padding: 1.75rem 1.5rem;
  }

  .curriculum-stage__number {
    font-size: 2.5rem;
  }

  .curriculum-stage__title {
    margin-top: 2rem;
  }

  .curriculum-stage__title h3 {
    font-size: 1.5rem;
  }

  .curriculum-stage__content {
    padding: 2rem 1.5rem;
  }

  .curriculum-stage__content>p {
    line-height: 1.7;
  }

  body.is-curriculum-modal-open {
    overflow: hidden;
  }

  html.is-curriculum-modal-open {
    overflow: hidden;
  }

  .curriculum-stage-list.is-modal-ready {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    width: calc(100% - 2rem);
    margin-left: 1rem;
    margin-right: 1rem;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: visible;
    border: 0;
    border-radius: 0.75rem;
    box-shadow: none;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage:not(:last-child)::after {
    position: absolute;
    bottom: -1.25rem;
    left: 50%;
    z-index: 1;
    width: 0;
    height: 0;
    border-top: 0.75rem solid var(--color-gold);
    border-right: 0.75rem solid transparent;
    border-left: 0.75rem solid transparent;
    content: "";
    transform: translateX(-50%);
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__header {
    position: relative;
    top: auto;
    display: flex;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    min-height: 6.5rem;
    flex-direction: column;
    align-items: center;
    gap: 0;
    padding: 0.875rem 1rem;
    cursor: pointer;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__header::after {
    position: relative;
    margin-top: 0.75rem;
    display: flex;
    align-items: center;
    white-space: nowrap;
    content: "詳しく見る ＋";
    transform: none;
    font-size: 0.9rem;
    text-align: center;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__number {
    font-size: 2.8rem;
    position: absolute;
    top: 0.875rem;
    right: 1rem;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__title {
    width: 100%;
    margin-top: 0;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__title>p:first-child {
    font-size: 0.75rem;
    white-space: nowrap;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__title h3 {
    margin-top: 0;
    font-size: 1.3rem;
    white-space: nowrap;
    margin-bottom: 0;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__concept {
    display: block;
    margin-top: 0.75rem;
    padding-top: 0.5rem;
    font-size: 1rem;
    line-height: 1.5;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__content {
    position: fixed;
    inset: 1rem;
    z-index: 121;
    display: none;
    width: calc(100% - 2rem);
    max-height: calc(100dvh - 2rem);
    padding: 3.5rem 1.25rem 2rem;
    margin: auto;
    overflow-y: auto;
    border-radius: 0.75rem;
    background: var(--curriculum-white);
    box-shadow: 0 1rem 3rem rgba(8, 34, 68, 0.28);
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage.is-open::before {
    position: fixed;
    inset: 0;
    z-index: 120;
    background: rgba(8, 34, 68, 0.68);
    content: "";
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage.is-open .curriculum-stage__content {
    display: block;
    animation: curriculum-modal-in 0.28s ease both;
  }

  .curriculum-stage-list.is-modal-ready .curriculum-stage__close {
    position: sticky;
    top: -2.75rem;
    z-index: 1;
    display: block;
    width: fit-content;
    margin: -2.75rem 0 0.75rem auto;
    padding: 0.4rem 0.875rem;
    border: 0.0625rem solid var(--page-accent);
    border-radius: 999rem;
    color: var(--page-accent);
    background: var(--curriculum-white);
    font-family: var(--font-sans);
    font-size: 0.75rem;
    font-weight: 700;
  }

  .curriculum-stage__modal-heading {
    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
    padding: 0.5rem 1rem;
    margin-bottom: 1.25rem;
    border-bottom: 0;
    color: var(--curriculum-white);
    background: var(--page-accent);
  }

  .curriculum-stage__modal-number {
    font-family: var(--font-latin);
    font-size: 2rem;
    font-weight: 300;
    line-height: 0.9;
    opacity: 0.4;
    margin-bottom: 0.2em;
  }

  .curriculum-stage__modal-heading p {
    font-size: 0.6875rem;
    font-weight: 700;
  }

  .curriculum-stage__modal-heading h2 {
    margin-top: 0;
    font-family: var(--font-serif);
    font-size: 1.3rem;
    font-weight: 600;
  }

  .curriculum-stage__content .curriculum-example {
    margin: 2rem 0 0;
  }

  .curriculum-hours {
    padding: 1.25rem;
    margin-top: 2rem;
  }

  .curriculum-hours h4 {
    font-size: 1.1rem;
  }

  .curriculum-hours__grid {
    grid-template-columns: 1fr;
    margin-top: 0.5rem;
  }

  .curriculum-hours__item {
    padding: 1.25rem;
  }

  .curriculum-hours__item>p:nth-child(2) {
    min-height: 0;
    margin-top: 0.25rem;
  }

  .curriculum-hours__total {
    padding-top: 0.5rem;
    margin-top: 0.5rem;
  }

  .curriculum-growth-chart {
    flex-direction: column;
    margin-top: 2.25rem;
    gap: 1.5rem;
  }

  .curriculum-growth-chart figcaption,
  .curriculum-chart figcaption,
  .curriculum-chart h3 {
    font-size: 1.2rem;
  }

  .curriculum-growth-chart figcaption {
    text-align: center;
    line-height: 1.5;
  }

  .curriculum-growth-chart figcaption br {
    display: inline;
  }

  .curriculum-growth-chart__image {
    width: 100%;
  }

  .curriculum-growth-chart__text {
    width: 100%;
    padding: 0 1em;
  }

  .curriculum-growth-chart__text p {
    line-height: 1.7;
  }

  .curriculum-chart-list {
    gap: 1.5rem;
  }

  .curriculum-chart {
    padding: 1.25rem;
  }

  .curriculum-chart__guide {
    display: block;
  }

  .curriculum-chart__viewport img {
    width: 180vw;
    max-width: initial;
    max-width: auto;
  }

  .student-message-list {
    flex-direction: column;
    gap: 1.5rem;
  }

  .student-message,
  .student-message--reverse {
    min-height: 0;
    /*border-radius: 0.75rem;*/
  }

  .student-message-list>.student-message {
    flex: 1;
  }

  .student-message__body {
    padding: 0;
  }

  .student-message blockquote {
    padding-top: 0.75rem;
  }

  .student-message blockquote p {
    line-height: 1.6;
  }

  .career-results {
    /*padding: 0 1.25rem 2rem;*/
  }

  .career-results__lead {
    flex-direction: column;
    align-items: stretch;
    gap: 1.5rem;
    margin-bottom: 3rem;
  }

  .career-results__lead-content {
    gap: 1.5rem;
  }

  .career-results__lead-content>p {
    font-size: 0.9rem;
    line-height: 1.9;
  }

  .career-results__lead-image {
    flex-basis: auto;
  }

  .career-results__reason-link {
    align-self: flex-start;
    width: min(100%, 18rem);
    min-height: 0;
    padding: 0.75rem 1.5rem;
    margin-left: auto;
    margin-right: auto;
  }

  .career-results__reason-arrow {
    width: 1.75rem;
    height: 1.75rem;
  }

  .admission-results {
    padding: 0;
  }

  .admission-results__header {
    display: block;
    padding-bottom: 0;
  }

  .admission-results__header>p {
    margin-top: 1rem;
    text-align: left;
  }

  .admission-results__header small {
    display: inline;
  }

  .university-results {
    gap: 1.25rem 1rem;
    margin-top: 1rem;
  }

  .university-result {
    flex-basis: calc(50% - 0.5rem);
    padding-top: 1rem;
  }

  .university-result strong {
    font-size: 2.5rem;
  }

  .result-summary {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .result-summary__item {
    flex: 1 1 calc(50% - 0.375rem);
    gap: 1.25rem;
    padding: 0.9rem 1rem;
  }

  .result-summary__item--medical {
    flex-basis: 100%;
  }

  .result-summary__item .result-summary__body,
  .result-summary__item--medical .result-summary__body {
    flex-direction: column;
    align-items: center;
    gap: 0;
    text-align: center;
  }

  .result-summary__item .result-summary__body>p {
    margin-top: 0;
  }

  .result-summary__item--public h4,
  .result-summary__item--private h4 {
    white-space: normal;
  }

  .result-summary__item--medical h4 {
    flex: 0 1 auto;
  }

  .result-summary__item--medical .result-summary__body>p {
    margin-top: 0;
  }

  .result-summary__icon {
    width: 2.75rem;
    height: 2.75rem;
  }

  .result-summary__item strong {
    font-size: 2.5rem;
  }

  .result-summary__item--medical p {
    margin-top: 0.6rem;
  }

  .career-results__pdf-link {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    padding: 1.25rem;
  }

  .career-results__pdf-arrow {
    display: none;
  }

  .career-results__recommendation-lead {
    margin-bottom: 1.5rem;
    line-height: 1.7;
  }

  .recommendation-panel {
    padding: 1rem 1.25rem;
    width: calc(100vw - 2rem);
    margin-inline: calc(50% - 50vw + 1rem);
  }

  .recommendation-panel+.recommendation-panel {
    margin-top: 1rem;
  }

  .recommendation-panel h3 {
    font-size: 1.15rem;
    line-height: 1.6;
  }

  .recommendation-panel h3 small {}

  .recommendation-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1rem;
    margin-top: 1rem;
    row-gap: 0.3em;
    font-size: 0.92rem;
  }

  .recommendation-list li {
    line-height: 1.4;
  }

  /* タグ付きは折り返しやすいので1列に落とす */
  .recommendation-panel--medical .recommendation-list {
    grid-template-columns: 1fr;
  }

  .cd-summary {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 26px 22px;
  }

  .cd-card-grid,
  .cd-card-grid--two {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .cd-card {
    min-height: 210px;
    padding: 26px 24px 22px;
  }

  .cd-card h3 {
    margin-top: 16px;
    font-size: 1.2rem;
  }

  .book-pdf-list__items {
    gap: 18px;
  }

  .book-pdf {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 18px;
    min-height: 224px;
    padding: 18px;
  }

  .book-pdf .book-pdf__preview {
    padding: 7px;
    box-shadow: 0 10px 22px rgba(16, 60, 120, 0.12);
  }

  .book-pdf .book-pdf__body {
    padding-top: 2px;
  }

  .book-pdf h3 {
    margin-top: 8px;
    font-size: 1.08rem;
  }

  .book-pdf__action {
    padding-top: 12px;
    font-size: 0.72rem;
  }

  .book-pdf__book-icon {
    width: 28px;
    height: 28px;
  }

  .book-pdf__book-icon svg {
    width: 20px;
    height: 20px;
  }

  .cd-feature,
  .cd-feature--reverse {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .cd-feature--reverse .cd-feature__media {
    order: initial;
  }

  .cd-feature__media {
    min-height: 220px;
  }

  .cd-feature__body {
    padding: 34px 26px 38px;
  }

  .cd-feature h3 {
    font-size: 1.35rem;
  }

  .cd-placeholder {
    grid-template-columns: 42px 1fr;
    gap: 16px;
    padding: 26px 22px;
  }

  .cd-placeholder__mark {
    width: 42px;
    height: 42px;
    font-size: 1rem;
  }

  .cd-step {
    grid-template-columns: 54px 1fr;
  }

  .cd-step__body {
    padding: 20px;
  }

  .cd-table {
    min-width: 560px;
  }

  .cd-download,
  .cd-article-row {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 20px;
  }

  .cd-download__type,
  .cd-article-row__category {
    justify-self: start;
  }

  .cd-contact {
    grid-template-columns: 1fr;
  }

  .cd-contact__tel {
    font-size: 1.45rem;
  }

  .principal-message-panel {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .principal-message__photo,
  .principal-message__photo-placeholder {
    width: min(17.5rem, 100%);
    margin-inline: auto;
  }

  .principal-message__body {
    font-size: var(--font-size-base);
    line-height: 2;
  }

  .principal-message__signature {
    gap: 14px;
  }

  .principal-message__signature strong {
    font-size: 1.15rem;
  }

  .access-information-grid {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 40px;
  }

  .access-original-maps {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .access-original-map-3 {
    position: static;
    grid-column: auto;
  }

  .access-original-map-2 {
    width: 80%;
    margin: 0 auto 1rem;
  }

  .access-information-grid .access-map {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
  }

  .cd-policy {
    gap: 40px;
  }

  .cd-policy section {
    padding-bottom: 36px;
  }

  .cd-article-header h2 {
    font-size: 1.5rem;
  }

  .cd-sitemap {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .cd-sitemap__group {
    padding: 24px;
  }

  .disclosure-list {
    margin-bottom: 3rem;
  }
}

.clubs-overview {
  padding-top: 0;
}

.clubs-lead {
  max-width: 48rem;
  margin: 0 auto 5rem;
  text-align: center;
}

.clubs-lead__title {
  margin-top: 0.75rem;
  font-family: var(--font-serif);
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: 0.08em;
  color: var(--color-primary);
}

.clubs-lead>p:last-child {
  margin-top: 1rem;
  color: var(--color-body);
}

.club-category+.club-category {
  margin-top: 5rem;
}

.club-category__heading {
  margin-bottom: 2rem;
}

.club-category__heading h2 {
  /*margin-top: 0.5rem;*/
}

.club-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.5rem;
  padding: 0;
  list-style: none;
}

.club-card {
  overflow: hidden;
  background: var(--color-surface);
}

.club-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.club-card__body {
  position: relative;
  padding: 0.3rem 0 0;
}

.club-card__body p {
  color: var(--color-primary);
  font-size: 1.1rem;
  font-weight: 500;
}

.club-card__badges {
  position: absolute;
  top: -2.25rem;
  left: 0.5rem;
  display: flex;
  gap: 0.35rem;
}

.club-card__badges span {
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  color: #fff;
  font-size: 0.8rem;
}

.club-card__badges .club-badge--junior {
  background: var(--color-junior);
}

.club-card__badges .club-badge--high {
  background: var(--color-primary);
}

@media (max-width: 48rem) {
  .clubs-overview {
    padding-top: 0;
  }

  .clubs-lead {
    margin-bottom: 3rem;
  }

  .club-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: -1rem;
  }

  .club-category+.club-category {
    margin-top: 4rem;
  }
}

.content-page--news .lower-hero {
  margin-bottom: 0;
}

.content-page--news .lower-main {
  padding-top: 0;
}

.content-page--news .lower-section:not(.events-list-section) {
  padding-top: 0;
}

.content-page--news .news-filters {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 1rem 0;
}

.news-detail {
  width: 100%;
}

.news-detail__header {
  padding-bottom: 1.75rem;
}

.news-detail__meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-top: 1rem;
  color: var(--color-muted);
  font-size: 0.9rem;
}

.news-detail__meta .news-item__school {
  width: 3.5rem;
  height: 1.5rem;
  font-size: 0.75rem;
}

.news-detail__header h2 {
  margin-top: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--color-divider);
  color: var(--color-primary);
  font-family: var(--font-sans);
  font-size: clamp(1.3rem, 2.5vw, 1.9rem);
  font-weight: 600;
  line-height: 1.6;
}

.news-detail__body {
  padding: 1rem 0 2.5rem;
  color: var(--color-body);
  line-height: 2;
}

.news-detail__body p+p,
.news-detail__body h3 {
  margin-top: 1.5rem;
}

.news-detail__body h3 {
  color: var(--color-primary);
  font-family: var(--font-serif);
  font-size: 1.25rem;
}

.news-detail__back {
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-divider);
  text-align: center;
}

.news-detail__back a {
  color: var(--color-primary);
  font-weight: 600;
}

.content-page--news .news-filter-group h3 {
  color: var(--color-primary);
  font-size: 1rem;
  font-weight: 600;
}

.content-page--news .news-filter-select {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 0.2rem;
  color: var(--color-primary);
  font-size: 1rem;
  font-weight: 600;
}

.content-page--news .news-filter-select select {
  width: 7rem;
  padding: 0.4rem 2rem 0.4rem 0.65rem;
  border: 1px solid var(--color-divider);
  border-radius: 0.25rem;
  color: var(--color-body);
  background: var(--color-surface);
  font: inherit;
  font-size: 0.82rem;
}

.content-page--news form.news-filters button {
  flex: 0 0 auto;
  white-space: nowrap;
  padding: 0.4rem 1rem;
  border: 1px solid var(--color-primary);
  border-radius: 0.25rem;
  color: #fff;
  background: var(--color-primary);
  font: inherit;
  font-size: 0.82rem;
  line-height: 1.5;
  cursor: pointer;
}

.content-page--news form.news-filters button:hover,
.content-page--news form.news-filters button:focus-visible {
  background: var(--color-secondary, #333);
}

.content-page--news .news-filter-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.content-page--news .news-filter-options a {
  padding: 0.4rem 0.9rem;
  border: 1px solid var(--color-divider);
  border-radius: 999px;
  color: var(--color-body);
  font-size: 0.82rem;
}

.content-page--news .news-filter-options a.is-active {
  border-color: var(--color-primary);
  color: #fff;
  background: var(--color-primary);
}

@media (max-width: 48rem) {
  .content-page--news .news-filters {
    flex-wrap: nowrap;
    gap: 0.25rem;
    padding: 0.75rem 0;
  }

  .content-page--news .news-filter-select {
    gap: 0.2rem;
    gap: 0.1rem;
    font-size: 0.65rem;
    white-space: nowrap;
  }

  .content-page--news .news-filter-select select {
    width: 5.25rem;
    padding: 0.3rem 1.5rem 0.3rem 0.5rem;
    font-size: 0.65rem;
  }

  .content-page--news form.news-filters button {
    padding: 0.3rem 0.45rem;
    font-size: 0.65rem;
  }

  .content-page--news .news-filter-options {
    gap: 0.35rem;
  }

  .content-page--news .news-filter-options a {
    padding: 0.3rem 0.6rem;
    font-size: 0.72rem;
  }

  .error-404{
    text-align: left;
  }

  .error-404__link{
    text-align: center;
  }
}


/* news_deail */
div.wys_imgList ul {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

div.wys_img2 li {
  width: 49%;
}

div.wys_img3 li {
  width: 30%;
}

div.wys_img4 li {
  width: 23%;
}

div.wys_imgList li {
  text-align: center;
  /* display: inline-block; */
  vertical-align: top;
}

div.wys_template img {
  margin: auto;
  vertical-align: middle;
  max-width: 100% !important;
  height: auto;
}

.news-detail__body p {
  margin-bottom: 14px;
}

@media (max-width: 48rem) {
  div.wys_imgList ul {
    flex-direction: column;
  }

  div.wys_template li {
    width: auto;
  }

  #cont_body img {
    max-width: 100% !important;
    height: auto !important;
  }
}
