@charset "utf-8";

/*============================　
　既存スタイル上書き及び追加
=============================*/
.p-contetns-contact:has(+ .p-contents) {
  padding-bottom: 0;
}

.p-top+.p-contetns-contact {
  padding-top: 32px;
}

.p-contents--top+.p-contents:not(.short-news) {
  margin-top: clamp(64px, calc(32.609865470852014px + 8.370702541106128vw), 120px);
}

.p-contents--top>.p-contetns-contact {
  padding-bottom: 24px;
}

.p-info__item.n-hover {
  pointer-events: none;
}

.p-info-item__heading {
  margin-block-start: 0;
}

.comment-item {
  margin-block-start: auto;
}

.comment-item[data-bg="orange"] {
  color: #fff;
  background-color: #F39800;
}

.comment-item[data-bg="green"] {
  color: #fff;
  background-color: #8EC31F;
}

.p-page-heading {
  margin-block-start: 0;
}

@media not (min-width: 768px) {
  .titleLine {
    margin-bottom: 0;
  }
}

/* メインビジュアル */
.p-top {
  position: relative;
  background-image: url("../images/mv.webp");
  background-position: center;
  background-size: cover;
}

@media (min-width: 768px) {
  .p-top {
    background-color: #f0f0f0;
    padding-block: 140px 200px;
    border-radius: 15px;
    background-attachment: fixed;
  }
}

@media not (min-width: 768px) {
  .p-top {
    background-color: #000000;
    padding: 100px 0 50px;
    border-radius: 10px;
    background-repeat: no-repeat;
  }

  .p-top__heading {
    font-size: 1.7rem;
  }
}

/* ナビゲーション */
.contentPageLink {
  flex-wrap: wrap;
}

@media (min-width: 768px) {
  .contentPageLink li {
    width: 220px;
  }

  .contentPageLink li a {
    padding: 20px 1em;
    height: 100%;
  }
}


/* 共通 */
/* ------------------- */
.u-text-sm {
  font-size: 14px;
}

.u-text {
  font-size: 16px;
  line-height: 1.75;
}

.u-text-lg {
  font-size: clamp(1rem, calc(0.9299rem + 0.29895366218236175vw), 1.125rem);
  line-height: 1.3;
}

.u-text-xl {
  font-size: clamp(1.125rem, calc(1.054932735426009rem + 0.29895366218236175vw), 1.25rem);
  line-height: 1.3;
}

.u-text-2xl {
  font-size: clamp(1.3125rem, calc(1.0672645739910314rem + 1.046337817638266vw), 1.75rem);
  line-height: 1.3;
}

.u-text-3xl {
  font-size: clamp(1.5625rem, calc(1.2471973094170403rem + 1.345291479820628vw), 2.25rem);
  line-height: 1.3;
}

[class*="s-text-"]:has(> .mark) {
  line-height: 1.65;
}

[class*="s-text"]:is(.p-page-heading + *) {
  margin-top: 48px;
}

[data-marker] span {
  display: inline;
  background: linear-gradient(transparent 70%, #fee833 70%);
}

.u-indent {
  text-indent: -1em;
  padding-inline-start: 1em;
}

.u-sup-text {
  font-size: 0.6em;
  vertical-align: baseline;
}

.u-note-text {
  font-size: 14px;
  line-height: 1.3;
  color: #888;
}

/* 色 */
.u-text-primary {
  color: #003366;
}

.u-text-white {
  color: #fff;
}

.u-text-red {
  color: #da1111;
}

.u-text-whiteBlue {
  color: #3a7abf;
}

.u-bg-primary {
  background-color: #003366;
}

.u-bg-white {
  background-color: #fff;
}

.u-bg-gray {
  background-color: #f2f2f2;
}


/* ボックス */
.u-mx-auto {
  margin-inline: auto;
}

.u-w-fit {
  max-width: fit-content;
}

.u-fit-mx {
  max-width: fit-content;
  margin-inline: auto;
}

.u-ml-auto {
  margin-inline-start: auto;
}

.u-wbr {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.u-h-full {
  height: 100%;
}

.u-fit-cover {
  object-fit: cover;
}


/* レイアウト */
.u-grid {
  display: grid;
  align-items: center;
  gap: 16px 48px;
}

.u-note-lists li {
  display: flex;
  align-items: flex-start;
}

.u-note-lists li>span:first-child {
  flex-shrink: 0;
  white-space: nowrap;
}

:where(.u-note-lists) li:not(:first-of-type) {
  margin-block-start: 4px;
}

@media (min-width:768px) {
  .u-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* 日本人学生受入制度 */
/* ------------------- */
.s-support-plus::before {
  content: "";
  display: inline-block;
  width: 80px;
  height: 80px;
  background-color: #003366;
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px' fill='%231f1f1f'%3E%3Cpath d='M440-440H200v-80h240v-240h80v240h240v80H520v240h-80v-240Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px' fill='%231f1f1f'%3E%3Cpath d='M440-440H200v-80h240v-240h80v240h240v80H520v240h-80v-240Z'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

/* サポート概要 */
.s-support-heading {
  padding-block: 10px 8px;
  padding-inline: 12px;
  color: #fff;
  background-color: #003366;
}

.s-support-flow {
  padding-block: 20px;
  padding-inline: clamp(1rem, 0.7671rem + 0.9938vw, 1.5rem);
  border: 1px solid #ddd;
}

/* NCN特別奨学金制度 */
:where(.s-scholarship-lists) li:not(:first-of-type) {
  margin-block-start: 4px;
}

.s-scholarship-system {
  padding-block: 20px;
  padding-inline: clamp(1rem, 0.7671rem + 0.9938vw, 1.5rem);
  border: 1px solid #ddd;
}

.s-scholarship-system img {
  width: min(680px, 100%);
  margin-inline: auto;
  display: block;
}

.s-scholarship-features {
  position: relative;
  display: grid;
  align-items: center;
  gap: 24px;
  margin-block-start: 48px;
}

.s-scholarship-features__circle {
  max-width: clamp(18.75rem, -5.8654rem + 38.4615vw, 22.5rem);
  margin-inline: auto;
  display: block;
}

.s-scholarship-features__lists {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.s-scholarship-features__item {
  padding-block: 10px 8px;
  padding-inline: 12px;
  font-size: 15px;
  line-height: 1.3;
  color: #fff;
  background-color: var(--bg-color);
  border-radius: 6px;
  z-index: 1;
}

.s-scholarship-features__item--level {
  --top: -210;
  --left: 390;
  --bg-color: #227FC4;
}

.s-scholarship-features__item--specialty {
  --top: 240;
  --left: 760;
  --bg-color: #E9536B;
}

.s-scholarship-features__item--flexibility {
  --top: 650;
  --left: 760;
  --bg-color: #8EC31F;
}

.s-scholarship-features__item--career {
  --top: 1100;
  --left: 390;
  --bg-color: #EA5533;
}

.s-scholarship-features__item--economy {
  --top: 650;
  --left: 20;
  --bg-color: #00ADA9;
}

.s-scholarship-features__item--select {
  --top: 240;
  --left: 20;
  --bg-color: #F39800;
}

.s-scholarship-features__lists--image {
  display: none;
}

.s-scholarship-features__lists--image img {
  object-fit: cover;
}

.s-scholarship-features__lists--image li {
  z-index: 0;
}

@media (min-width: 680px) and (max-width: 1023px) {
  .s-scholarship-features {
    grid-template-columns: auto 1fr;
  }

  .s-scholarship-features__circle {
    position: sticky;
    top: 0;
  }
}

@media (min-width:1024px) {
  .s-scholarship-features {
    margin-block-start: 160px;
  }

  .s-scholarship-features__item {
    --width: 260px;
    position: absolute;
    width: min(var(--width), 100%);
    --scaled-px: calc(min(100%, 1200px) / 1200);
    left: calc(50% + (var(--left) - 390) * var(--scaled-px));
    transform: translateX(-50%);
    top: calc(var(--top) * var(--scaled-px));
  }

  .s-scholarship-features__lists--image {
    display: block;
  }

  .s-scholarship-features__item--image01 {
    --width: 320px;
    --top: -270;
    --left: 750;
  }

  .s-scholarship-features__item--image02 {
    --width: 240px;
    --top: 800;
    --left: 850;
  }

  .s-scholarship-features__item--image03 {
    --width: 240px;
    --top: 720;
    --left: -40;
  }

  .s-scholarship-features__item--image04 {
    --width: 270px;
    --top: -250;
    --left: -20;
  }
}

/* 日本人学生受け入れ制度・受入大学一例 */
/* ------------------- */
.s-hostUniversities {
  padding-block: 120px;
  background-color: #e8f4ff;
}

.s-hostUniversities-lists {
  display: grid;
  gap: 24px 32px;
}

.s-hostUniversities-item {
  display: flex;
  flex-direction: column;
  background-color: #fff;
  border-radius: 0 24px 0 0;
  --padding-inline: 16px;
}

.s-hostUniversities-item__head {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 4px;
  align-items: baseline;
  padding-block: 12px 10px;
  padding-inline: var(--padding-inline);
  background-color: #0b4b98;
  color: #fff;
  border-radius: 0 24px 0 0;
}

.s-hostUniversities-item__body {
  display: flex;
  flex-direction: column;
  padding-block-start: 16px;
  padding-inline: var(--padding-inline);
  flex-grow: 1;
}

.s-hostUniversities-item__majors {
  margin-block-start: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.s-hostUniversities-item__majors span {
  background-color: #242b5c;
  color: #fff;
  padding-block: 2px;
  padding-inline: 6px;
  border-radius: calc(infinity * 1px);
  white-space: nowrap;
}

.s-hostUniversities-item__explanation {
  margin-block-start: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex-grow: 1;
}

.s-hostUniversities-item__explanation img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.s-hostUniversities-item__footer {
  margin-block-start: 16px;
  padding-block: 16px;
  border-top: 2px dotted #8faecf;
}

.s-hostUniversities-item__footer>div {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-inline: var(--padding-inline);
}

.s-hostUniversities-item__gpa {
  padding-block: 8px;
  padding-inline: 12px;
  background-color: #12519c;
  color: #fff;
  font-size: 13px;
  line-height: 1.2;
  text-align: center;
  place-content: center;
}

.s-hostUniversities-item__gpa span {
  font-size: 16px;
}

.s-hostUniversities-item__costs {
  max-width: fit-content;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0px 32px;
}

.s-hostUniversities-item__cost-minus::before,
.s-hostUniversities-item__cost-equal::before {
  position: static;
  transform: none;
  display: block;
  text-align: center;
  font-size: 20px;
  line-height: 1;
  font-weight: normal;
}

.s-hostUniversities-item__cost-minus::before {
  content: "−";
}

.s-hostUniversities-item__cost-equal::before {
  content: "＝";
}

.s-hostUniversities-item__cost-base,
.s-hostUniversities-item__cost-minus,
.s-hostUniversities-item__cost-equal {
  position: relative;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
}

:where(.s-hostUniversities-item__cost-base, .s-hostUniversities-item__cost-minus, .s-hostUniversities-item__cost-equal) .-small {
  font-size: 13px;
  font-weight: normal;
}


@media (min-width: 640px) {
  .s-hostUniversities-item__costs {
    flex-direction: row;
  }

  .s-hostUniversities-item__cost-minus::before,
  .s-hostUniversities-item__cost-equal::before {
    position: absolute;
    display: inline;
    left: -20px;
    top: 50%;
    transform: translateY(-50%);
    margin-bottom: 0;
    font-size: 16px;
  }
}

@media (min-width:768px) {
  .s-hostUniversities-lists {
    grid-template-columns: repeat(2, 1fr);
  }

  .s-hostUniversities-item {
    display: grid;
    grid-template-rows: subgrid;
    gap: 0;
    grid-row: span 5;
  }

  .s-hostUniversities-item__body {
    display: contents;
  }


  .s-hostUniversities-item__body>* {
    padding-inline: var(--padding-inline);
  }

  .s-hostUniversities-item__body>p.u-text-lg {
    padding-block-start: 16px;
  }
}

@media (min-width: 768px) and (max-width: 940px) {
  .s-hostUniversities-item__costs {
    zoom: 0.75;
  }
}

@media (min-width:1024px) {
  .s-hostUniversities-item__head {
    flex-direction: row;
  }

  .s-hostUniversities-item__explanation {
    flex-direction: row-reverse;
  }

  .s-hostUniversities-item__explanation img {
    width: min(200px, 100%);
    aspect-ratio: auto;
  }
}

/* インフォ */
/* ------------------- */
.s-info-box {
  padding-block: 24px;
  padding-inline: clamp(1rem, 0.7671rem + 0.9938vw, 1.5rem);
  color: #fff;
  background-color: #242b5c;
}

.s-contact {
  padding-block: 24px;
  padding-inline: clamp(1rem, 0.7671rem + 0.9938vw, 1.5rem);
  background-color: #f2f2f2;
}

.s-contact__inner {
  max-width: fit-content;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px 64px;
}

.s-contact__info {
  display: grid;
  gap: 4px;
}

.s-contact__box {
  flex: 1;
  background-color: #fff;
  border: 4px solid #333;
  padding-block: 12px;
  padding-inline: 12px;
}

.s-contact__box-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 6px;
}

/* リンクテキスト共通設定 */
.s-contact__tel-link,
.s-contact__mail-link {
  text-decoration: none;
  line-height: 1;
  transition: opacity 0.2s;
}

.s-contact__time {
  font-size: 14px;
  font-weight: bold;
}

.s-contact__divider {
  border: none;
  border-top: 1px dashed #888;
  margin-block: 8px;
}

.s-contact__icon {
  max-width: clamp(1rem, 0.7671rem + 0.9938vw, 1.5rem);
}

@media (any-hover: hover) {

  .s-contact__tel-link:hover,
  .s-contact__mail-link:hover {
    opacity: 0.7;
  }
}

@media (min-width:768px) {
  .s-contact__inner {
    flex-direction: row;
  }
}