@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c&display=swap");

/* root
----------------------------------------------------------------------------------------------------*/
:root {
  /* color */
  --key-color: #2a3c41;
  --txt-color: #395057;

  --color1: #5584bc; /* 数物科学専攻 */
  --color2: #f47973; /* 物質化学専攻 */
  --color3: #f69031; /* 機械科学専攻 */
  --color4: #f9d746; /* フロンティア工学専攻 */
  --color5: #a389c9; /* 電子情報通信学専攻 */
  --color6: #c68a5d; /* 地球社会基盤学専攻 */
  --color7: #6fc7d1; /* 生命理工学専攻 */

  /* font size(min375 - max1440) */
  --fs-12: clamp(0.625rem, 0.581rem + 0.19vw, 0.75rem); /* 10 - 12px */
  --fs-13: clamp(0.75rem, 0.728rem + 0.09vw, 0.813rem); /* 12 - 13px */
  --fs-14: clamp(0.75rem, 0.706rem + 0.19vw, 0.875rem); /* 12 - 14px */
  --fs-15: clamp(0.813rem, 0.768rem + 0.19vw, 0.938rem); /* 13 - 15px */
  --fs-16: clamp(0.813rem, 0.746rem + 0.28vw, 1rem); /* 13 - 16px */
  --fs-18: clamp(1rem, 0.956rem + 0.19vw, 1.125rem); /* 16 - 18px */
  --fs-20: clamp(0.875rem, 0.743rem + 0.56vw, 1.25rem); /* 14 - 20px */
  --fs-22: clamp(1.125rem, 1.037rem + 0.38vw, 1.375rem); /* 18 - 22px */
  --fs-24: clamp(1.25rem, 1.162rem + 0.38vw, 1.5rem); /* 20 - 24px */
  --fs-26: clamp(1.375rem, 1.287rem + 0.38vw, 1.625rem); /* 22 - 26px */
  --fs-28: clamp(1.5rem, 1.412rem + 0.38vw, 1.75rem); /* 24 - 28px */
  --fs-32: clamp(1.5rem, 1.324rem + 0.75vw, 2rem); /* 24 - 32px */
  --fs-40: clamp(1.875rem, 1.655rem + 0.94vw, 2.5rem); /* 30 - 40px */
  --fs-48: clamp(2.25rem, 1.986rem + 1.13vw, 3rem); /* 36 - 48px */
  --fs-60: clamp(3rem, 2.736rem + 1.13vw, 3.75rem); /* 48 - 60px */
  --fs-62: clamp(1.875rem, 1.171rem + 3vw, 3.875rem); /* 30 - 62px */
  --fs-64: clamp(2.625rem, 2.141rem + 2.07vw, 4rem); /* 42 - 64px */
  --fs-72: clamp(3.125rem, 2.641rem + 2.07vw, 4.5rem); /* 50 - 72px */
  --fs-88: clamp(3rem, 2.12rem + 3.76vw, 5.5rem); /* 48 - 88px */
  --fs-96: clamp(3rem, 1.944rem + 4.51vw, 6rem); /* 48 - 96px */
  --fs-200: clamp(5.625rem, 3.204rem + 10.33vw, 12.5rem); /* 90 - 200px */

  /* transition */
  --trans-fast: cubic-bezier(0.215, 0.61, 0.355, 1) 0.16s;
  --trans-basis: cubic-bezier(0.215, 0.61, 0.355, 1) 0.64s;
  --trans-slow: cubic-bezier(0.215, 0.61, 0.355, 1) 1.6s;
}

.txt_c {
  text-align: center;
}

/* body
----------------------------------------------------------------------------------------------------*/
body {
  color: var(--txt-color);
  font-family: "Noto Sans JP", serif;
  overflow-x: hidden;
}

/* wrapper
----------------------------------------------------------------------------------------------------*/
.wrapper {
}

/* a
----------------------------------------------------------------------------------------------------*/
a {
  color: var(--txt-color);
}

/* トップ固定背景
----------------------------------------------------------------------------------------------------*/
.mainv_img {
  background: url("../img/common/mainv.jpg") no-repeat;
  background-size: 100% 100%;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100%;
  z-index: -2;
}
.mainv_img span {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
}

@media screen and (min-width: 1440px) {
  .mainv_img span img {
    height: auto;
    min-width: 603px;
    width: 41.875%; /* 603/1440 */
  }
}

@media screen and (max-width: 768px) {
  .mainv_img {
    background: url("../img/common/mainv_sp.jpg") no-repeat;
    background-size: 100% 100%;
  }
  .mainv_img span {
    margin-left: auto;
    margin-right: auto;
    width: 87.5%;
  }
}

/* トップ固定背景内の要素
----------------------------------------------------------------------------------------------------*/
.mainv_txt {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100vh;
}

/* 上部エリア */
.section_top {
  display: flex;
  justify-content: space-between;
  padding-top: 22px;
  padding-left: 31px;
  padding-right: 40px;
  position: relative;
  width: 100%;
  z-index: 777;
}
#top .mainv_txt .section_top::before {
  background: linear-gradient(
    to top,
    rgba(255, 255, 255, 0),
    rgba(255, 255, 255, 1)
  );
  content: "";
  height: 114px;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: -1;
}

@media screen and (max-width: 1280px) {
  .section_top {
    padding-right: 20px;
  }
}
@media screen and (max-width: 768px) {
  .section_top {
    padding-top: 16px;
    padding-left: 16px;
  }
}

/* サイト名のロゴ
----------------------------------------------------------------------------------------------------*/
.section_top h1,
.section_top h2 {
  flex-shrink: 0;
  height: 64px;
  width: 410px;
}
.section_top h1 a,
.section_top h2 a {
  display: block;
  height: 100%;
  width: 100%;
}
.section_top h1 img,
.section_top h2 img {
  height: auto;
  transition: var(--trans-basis);
  width: 100%;
}
.section_top h1 a:hover img,
.section_top h2 a:hover img {
  opacity: 0.5;
}

@media screen and (max-width: 480px) {
  .section_top h1,
  .section_top h2 {
    height: 39px;
    width: 240px;
  }
}

/* ハンバーガーメニュー（.h_menu_wrap1と.h_menu_wrap2）
----------------------------------------------------------------------------------------------------*/
div[class^="h_menu_wrap"] {
  width: calc(100% - 410px);
}

/* グローバルメニュー上段 */
article[class^="hamburger_menu"] nav {
  display: flex;
  justify-content: flex-end;
}
article[class^="hamburger_menu"] nav p {
  margin-left: 24px;
}
article[class^="hamburger_menu"] nav p a {
  display: inline-block;
  font-size: 14px;
  height: 20px;
  line-height: 1;
  letter-spacing: 0.05em;
  padding-left: 24px;
  position: relative;
  transition: var(--trans-basis);
  white-space: nowrap;
}
article[class^="hamburger_menu"] nav p a:hover {
  color: #2aad70;
}
article[class^="hamburger_menu"] nav p a::before {
  content: "";
  display: inline-block;
  height: 20px;
  margin-top: -12px;
  position: absolute;
  top: 50%;
  left: 0;
  width: 20px;
}
article[class^="hamburger_menu"] nav p:nth-of-type(1) a::before {
  background: url("../img/common/nav_icon1.svg") no-repeat;
  background-size: 20px 20px;
}
article[class^="hamburger_menu"] nav p:nth-of-type(2) a::before {
  background: url("../img/common/nav_icon2.svg") no-repeat;
  background-size: 20px 20px;
}
article[class^="hamburger_menu"] nav p:nth-of-type(3) a::before {
  background: url("../img/common/nav_icon3.svg") no-repeat;
  background-size: 20px 20px;
}
article[class^="hamburger_menu"] nav p:nth-of-type(4) a::before {
  background: url("../img/common/nav_icon4.svg") no-repeat;
  background-size: 20px 20px;
}

/* 言語切り替え */
article[class^="hamburger_menu"] .languages {
  display: flex;
  align-items: center;
  margin-left: 24px;
  padding-left: 24px;
  position: relative;
}
article[class^="hamburger_menu"] .languages::before {
  background: rgba(0, 0, 0, 0.2);
  content: "";
  display: inline-block;
  height: 20px;
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 1px;
}
article[class^="hamburger_menu"] .languages a {
  font-family: "futura-pt", sans-serif;
  font-size: var(--fs-14);
  font-weight: 600;
  transition: var(--trans-basis);
}
article[class^="hamburger_menu"] .languages a:hover {
  color: #2aad70;
}
article[class^="hamburger_menu"] .languages .en {
  color: rgba(57, 80, 87, 0.5);
  margin-left: 8px;
}

article[class^="hamburger_menu"] .languages .on {
  color: #2aad70;
  position: relative;
}
article[class^="hamburger_menu"] .languages .on::before {
  background: #2aad70;
  content: "";
  display: inline-block;
  height: 2px;
  position: absolute;
  left: -1px;
  bottom: -1px;
  width: 16px;
}

/* _subはハンバーガーメニューの隣にのみ表示 */
.languages_sub {
  display: none;
}

@media screen and (max-width: 1280px) {
  article[class^="hamburger_menu"] .languages,
  article[class^="hamburger_menu"] .languages::before {
    display: none;
  }

  .languages_sub {
    display: block;
    position: absolute;
    top: 20px;
    right: calc(40px + 16px);
  }
  .fixed_item .languages_sub {
    top: 20px;
  }
  .languages_sub a {
    color: #2aad70;
    font-size: var(--fs-16);
    font-weight: 600;
  }
}
@media screen and (max-width: 480px) {
  .fixed_item .languages_sub {
    top: 5px;
  }
}

/* グローバルメニュー下段 */
article[class^="hamburger_menu"] menu {
  display: flex;
  justify-content: flex-end;
  font-size: var(--fs-14);
  list-style: none;
  margin-top: 10px;
}
article[class^="hamburger_menu"] menu a {
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.05em;
  margin-left: 28px;
  padding-left: 13px;
  position: relative;
  transition: var(--trans-basis);
  white-space: nowrap;
}
article[class^="hamburger_menu"] menu a:hover {
  color: #2aad70;
}
article[class^="hamburger_menu"] menu a::before {
  background: #2aad70;
  content: "";
  display: inline-block;
  height: 5px;
  margin-top: -2px;
  position: absolute;
  top: 50%;
  left: 0;
  width: 5px;
}
article[class^="hamburger_menu"] menu a span {
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: 12px;
  display: none;
  letter-spacing: 0.05em;
}

/* ハンバーガーメニューのトリガー（.h_trg1と.h_trg2）
----------------------------------------------------------------------------------------------------*/
/* 1281px以上のときは非表示 */
a[class^="h_trg"] {
  display: none;
}

@media screen and (max-width: 1280px) {
  a[class^="h_trg"] {
    cursor: pointer;
    display: block;
    align-items: center;
    height: 16px;
    position: absolute;
    top: 26px;
    right: 20px;
    width: 20px;
    z-index: 888;
  }
  .fixed_item a[class^="h_trg"] {
    top: 22px;
  }
  .g_open1 a[class^="h_trg"],
  .g_open2 a[class^="h_trg"] {
    position: fixed;
    top: 26px;
    right: 20px;
  }
  a[class^="h_trg"] span {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    height: 100%;
    width: 100%;
  }
  a[class^="h_trg"] span i,
  a[class^="h_trg"] span i::before,
  a[class^="h_trg"] span i::after {
    background: var(--txt-color);
    height: 2px;
    transition: var(--trans-basis);
    width: 100%;
  }
  a[class^="h_trg"]:hover span i,
  a[class^="h_trg"]:hover span i::before,
  a[class^="h_trg"]:hover span i::after {
    background: #2aad70;
    transition: var(--trans-basis);
  }
  .g_open1 a[class^="h_trg"] span i,
  .g_open2 a[class^="h_trg"] span i,
  .g_open1 a[class^="h_trg"] span i::before,
  .g_open2 a[class^="h_trg"] span i::before,
  .g_open1 a[class^="h_trg"] span i::after,
  .g_open2 a[class^="h_trg"] span i::after {
    background: #fff;
  }
  a[class^="h_trg"] span i {
    position: absolute;
    top: -7px;
    left: 0;
  }
  a[class^="h_trg"] span i {
    margin-top: 0.8em;
    position: relative;
    transition: var(--trans-slow);
    transition-delay: 0.4s;
  }
  .g_open1 a[class^="h_trg"] span i,
  .g_open2 a[class^="h_trg"] span i {
    background: transparent;
    transition: var(--trans-fast);
  }
  a[class^="h_trg"] span i::before,
  a[class^="h_trg"] span i::after {
    content: "";
    position: absolute;
    left: 0;
  }
  a[class^="h_trg"] span i::before {
    top: -7px;
  }
  .g_open1 a[class^="h_trg"] span i::before,
  .g_open2 a[class^="h_trg"] span i::before {
    transform: translateY(7px) rotateZ(135deg);
  }
  a[class^="h_trg"] span i::after {
    bottom: -7px;
  }
  .g_open1 a[class^="h_trg"] span i::after,
  .g_open2 a[class^="h_trg"] span i::after {
    transform: translateY(-7px) rotateZ(-135deg);
  }
}

@media screen and (max-width: 480px) {
  .fixed_item a[class^="h_trg"] {
    top: 11px;
  }
  /* 開いたとき */
  .g_open2 a[class^="h_trg"] {
    top: 23px;
  }
}

/* 下部エリア（リード文とバナー）
----------------------------------------------------------------------------------------------------*/
.section_bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-left: 40px;
}
.section_bottom section {
  margin-bottom: 44px;
  width: calc(100% - 280px);
}

/* 左下のリード文 */
.section_bottom h2 {
  font-family: "M PLUS Rounded 1c", serif;
  font-size: var(--fs-20);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2;
}

.section_bottom h3 span {
  display: inline-block;
  font-size: var(--fs-62);
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  letter-spacing: 0.03em;
  margin-top: 12px;
  position: relative;
  white-space: nowrap;
  z-index: 1;
}
.section_bottom h3 span::before {
  background: #fff;
  content: "";
  display: inline-block;
  height: 47.2440944882%; /*30px*/
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: -1;
}
.section_bottom h3 span:nth-of-type(2)::before {
  bottom: -4px;
}
.section_bottom h3 span + span {
  margin-top: -4px;
}

/* 調整 */
.section_bottom h3.sp {
  display: none;
}

@media screen and (max-width: 1400px) {
  .section_bottom h3.pc {
    display: none;
  }
  .section_bottom h3.sp {
    display: block;
  }
}
@media screen and (max-width: 768px) {
  .section_bottom {
    flex-direction: column-reverse;
    align-items: flex-start;
    margin-left: 20px;
  }
  .section_bottom section {
    margin-bottom: 25px;
    width: 100%;
  }
  .section_bottom h2 {
    position: absolute;
    top: calc(56px + 30px); /* ヘッダー分の高さ + 余白 */
    left: 20px;
  }
  .section_bottom h2 span {
    display: block;
  }
  .section_bottom h3 span:nth-of-type(2)::before {
    bottom: 0;
  }
  .section_bottom h3 span::before {
    height: 33.8028169014%; /*12px*/
  }
}

/* 右下のバナー */
.mainv_bnr {
  display: flex;
  justify-content: flex-end;
  margin-right: 40px;
  margin-bottom: 40px;
  position: relative;
  /* width: 16.6666666667%; */
  z-index: 1;
  gap: 8px;
}
.mainv_bnr img {
  box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.1);
  display: block;
  flex-shrink: 0;
  height: auto;
  max-width: 240px;
  position: relative;
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.mainv_bnr a {
  transition: var(--trans-basis);
}
.mainv_bnr a:hover {
  opacity: 0.5;
}

@media screen and (max-width: 768px) {
  .mainv_bnr {
    margin-right: 20px;
    margin-bottom: 10px;
  }
  .mainv_bnr {
    align-self: flex-end;
    /* width: 31.1170212766%; */
  }
}

/* 右下のバナー（×ボタン） */
.mainv_bnr_close {
  background: #6e797c;
  border-radius: 50%;
  cursor: pointer;
  height: 26px;
  position: absolute;
  top: -13px;
  right: -13px;
  transition: var(--trans-basis);
  width: 26px;
  z-index: 2;
}
.mainv_bnr_close:hover {
  background: #2aad70;
}
.mainv_bnr_close i {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  position: relative;
  height: 100%;
  width: 100%;
}
.mainv_bnr_close i::before {
  background: url("../img/common/bnr_hakase_close.svg") no-repeat;
  content: "";
  display: inline-block;
  height: 9px;
  width: 9px;
}

/* 右下のバナー（×を押したら消える） */
.mainv_bnr {
  opacity: 1;
  transition: var(--trans-basis);
  visibility: visible;
}
.mainv_bnr.hidden {
  opacity: 0;
  pointer-events: none;
  visibility: none;
}

@media screen and (max-width: 1280px) {
  .mainv_bnr_close {
    height: 17px;
    top: -8.5px;
    right: -8.5px;
    width: 17px;
  }
  .mainv_bnr_close i::before {
    background: url("../img/common/bnr_hakase_close_sp.svg") no-repeat;
    height: 6px;
    width: 6px;
  }
}

/* 上部固定するヘッダー
----------------------------------------------------------------------------------------------------*/
.fixed_item {
  background: #fff;
  box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 95px;
  opacity: 0;
  position: fixed;
  top: 0;
  transition: var(--trans-fast);
  width: 100%;
  visibility: hidden;
  z-index: 777;
}
.fixed_item.fixed {
  opacity: 1;
  transition: var(--trans-basis);
  visibility: visible;
}

.fixed_item .section_top {
  align-items: center;
  padding-top: 0;
}
.fixed_item h2 a {
  margin-top: 0;
}

@media screen and (max-width: 480px) {
  .fixed_item {
    height: 62px;
  }
}

/* ハンバーガーメニュー開いたとき
----------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 1280px) {
  .g_open1 article[class^="hamburger_menu"] .languages,
  .g_open2 article[class^="hamburger_menu"] .languages {
    display: none;
  }
  .g_open1 article[class^="hamburger_menu"] nav p a,
  .g_open2 article[class^="hamburger_menu"] nav p a,
  .g_open1 article[class^="hamburger_menu"] menu a,
  .g_open2 article[class^="hamburger_menu"] menu a {
    color: #fff;
  }

  article[class^="hamburger_menu"] {
    background: var(--txt-color);
    border-radius: 0 0 0 32px;
    display: flex;
    flex-direction: column-reverse;
    margin-right: 0;
    padding-top: 106px;
    position: fixed;
    top: 0;
    right: -334px;
    transform: translateX(100%);
    transition: var(--trans-basis);
    width: 334px;
  }
  .g_open1 article[class^="hamburger_menu"],
  .g_open2 article[class^="hamburger_menu"] {
    right: 0;
    transform: translateX(0);
    z-index: 887;
  }
  article[class^="hamburger_menu"] menu {
    display: block;
    margin-top: 0;
    margin-left: 24px;
    margin-right: 24px;
  }
  article[class^="hamburger_menu"] menu a {
    display: block;
    margin-left: 0;
    position: relative;
  }
  article[class^="hamburger_menu"] menu a::before {
    top: 0.35em;
    margin-top: 0;
  }
  article[class^="hamburger_menu"] menu a::after {
    background: var(--key-color) url("../img/common/hamburger_menu_arrow.svg")
      no-repeat;
    background-size: 10px 9px;
    background-position: center center;
    border-radius: 50%;
    content: "";
    display: inline-block;
    height: 28px;
    position: absolute;
    top: 0;
    right: 0;
    width: 28px;
  }
  article[class^="hamburger_menu"] menu li {
    margin-bottom: 16px;
    padding-bottom: 16px;
    position: relative;
  }
  article[class^="hamburger_menu"] menu li::after {
    border-bottom: 1px dashed rgba(255, 255, 255, 0.12);
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
  }
  article[class^="hamburger_menu"] nav {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    padding-left: 37px;
    padding-right: 37px;
    margin-bottom: 56px;
  }
  article[class^="hamburger_menu"] nav p {
    margin-top: 18px;
    margin-left: 0;
    width: 50%;
  }

  /* 順番を入れ替える */
  article[class^="hamburger_menu"] nav p:nth-of-type(1) {
    order: 1;
  }
  article[class^="hamburger_menu"] nav p:nth-of-type(2) {
    order: 3;
  }
  article[class^="hamburger_menu"] nav p:nth-of-type(3) {
    order: 2;
  }
  article[class^="hamburger_menu"] nav p:nth-of-type(4) {
    order: 4;
  }

  article[class^="hamburger_menu"] menu a span {
    display: block;
    visibility: hidden;
  }
  .g_open1 article[class^="hamburger_menu"] menu a span,
  .g_open2 article[class^="hamburger_menu"] menu a span {
    color: #a0a8b0;
    margin-top: 8px;
    visibility: visible;
  }
}

/* すりガラス風の背景
----------------------------------------------------------------------------------------------------*/
.bg_blur {
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  background: rgba(244, 245, 246, 0.4);
}

.bg_dark {
  background: var(--key-color);
}

/* 専攻・学科
----------------------------------------------------------------------------------------------------*/
.academics {
  padding-top: 105px;
  padding-left: 40px;
  padding-right: 40px;
}
.academics_inner {
  display: flex;
  gap: 32px 24px;
  flex-wrap: wrap;
  margin-left: auto;
  margin-right: auto;
  max-width: 1360px;
}

@media screen and (max-width: 640px) {
  .academics {
    padding: 38px 20px 0;
  }
  .academics_inner {
    gap: 16px 0;
  }
}

/* 専攻・学科のボックス（幅） */
.academics section {
  width: calc((100% - 72px) / 4);
}
@media screen and (max-width: 1280px) {
  .academics section {
    width: calc((100% - 48px) / 3);
  }
}
@media screen and (max-width: 960px) {
  .academics section {
    width: calc((100% - 24px) / 2);
  }
}
@media screen and (max-width: 640px) {
  .academics section {
    width: 100%;
  }
}

/* 専攻・学科のボックス（最初の見出し） */
.academics section:first-of-type {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: 32px;
  position: relative;
}
.academics section:first-of-type h2 {
  padding-top: 34px;
  margin-top: 0;
  white-space: nowrap;
}
.academics section:first-of-type h2::before {
  background: url("../img/common/ttl_kazari.svg") no-repeat;
  background-size: 100% 100%;
  content: "";
  display: inline-block;
  height: 34px;
  margin-top: -34px;
  position: absolute;
  left: 0;
  width: 35px;
}
@media screen and (max-width: 640px) {
  .academics section:first-of-type {
    margin-bottom: calc(40px - 16px);
    padding-left: 16px;
  }
  .academics section:first-of-type h2 {
    padding-top: 21px;
    white-space: nowrap;
  }
  .academics section:first-of-type h2::before {
    height: 21px;
    margin-top: -21px;
    width: 22px;
  }
}

.academics section:first-of-type h2 span {
  color: var(--key-color);
  font-family: "futura-pt", sans-serif;
  font-size: var(--fs-60);
  font-weight: 200;
  letter-spacing: 0.02em;
}
.academics section:first-of-type h2 i {
  display: block;
  font-style: normal;
  font-size: var(--fs-16);
  font-weight: 400;
  letter-spacing: 0.05em;
}
.academics section:first-of-type p {
  color: #889099;
  font-size: var(--fs-14);
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 2;
  margin-top: 32px;
  margin-right: 32px;
}

/* 専攻・学科のボックス（最初の見出しを除く） */
.academics_inner section:not(:first-of-type) {
  box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.08);
}
.academics_inner section:not(:first-of-type) a {
  background: #fff;
  border-radius: 8px;
  display: flex;
  align-items: center;
  flex-direction: column;
  /* justify-content: center; */
  height: 100%;
  padding: 40px 12px 40px;
  width: 100%;
  /* min-height: 375px; */
}
@media screen and (max-width: 1280px) {
  .academics_inner section:not(:first-of-type) a {
    min-height: 295px;
    padding: 30px 12px 30px;
  }
}
@media screen and (max-width: 960px) {
  .academics_inner section:not(:first-of-type) a {
    min-height: 270px;
  }
}
@media screen and (max-width: 640px) {
  .academics_inner section:not(:first-of-type) a {
    min-height: auto;
  }
}

.academics_inner section:not(:first-of-type) i {
  display: inline-block;
  height: 44px;
  width: 52px;
}
.academics_inner section:nth-of-type(2) i {
  background: url("../img/common/academics_symbol1.svg") no-repeat;
}
.academics_inner section:nth-of-type(3) i {
  background: url("../img/common/academics_symbol2.svg") no-repeat;
}
.academics_inner section:nth-of-type(4) i {
  background: url("../img/common/academics_symbol3.svg") no-repeat;
}
.academics_inner section:nth-of-type(5) i {
  background: url("../img/common/academics_symbol4.svg") no-repeat;
}
.academics_inner section:nth-of-type(6) i {
  background: url("../img/common/academics_symbol5.svg") no-repeat;
}
.academics_inner section:nth-of-type(7) i {
  background: url("../img/common/academics_symbol6.svg") no-repeat;
}
.academics_inner section:nth-of-type(8) i {
  background: url("../img/common/academics_symbol7.svg") no-repeat;
}
.academics_inner section h2 {
  font-family: "M PLUS Rounded 1c", serif;
  font-weight: 400;
  font-size: var(--fs-24);
  letter-spacing: 0.1em;
  margin-top: 20px;
}
.academics_inner section h2 span {
  color: var(--key-color);
}
.academics_inner section p {
  color: #a0a8b0;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-14);
  letter-spacing: 0.03em;
  margin-top: 8px;
  text-align: center;
}
.academics_inner section ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 20px;
}
.academics_inner section li {
  background: #f5f6f7;
  border-radius: 4px;
  font-weight: 400;
  font-size: var(--fs-12);
  letter-spacing: 0.03em;
  margin: 2px;
  padding: 1px 4px 2px;
}
.academics_inner section li span {
  color: var(--txt-color);
}
.academics_inner section li span::before {
  content: "#";
  margin-right: 2px;
}
.academics_inner section:nth-of-type(2) li span::before {
  color: var(--color1);
}
.academics_inner section:nth-of-type(3) li span::before {
  color: var(--color2);
}
.academics_inner section:nth-of-type(4) li span::before {
  color: var(--color3);
}
.academics_inner section:nth-of-type(5) li span::before {
  color: var(--color4);
}
.academics_inner section:nth-of-type(6) li span::before {
  color: var(--color5);
}
.academics_inner section:nth-of-type(7) li span::before {
  color: var(--color6);
}
.academics_inner section:nth-of-type(8) li span::before {
  color: var(--color7);
}

@media screen and (max-width: 640px) {
  .academics_inner section {
    position: relative;
  }
  .academics_inner section h2 {
    margin-top: 0;
  }
  .academics_inner section p {
    margin-top: 6px;
  }
  .academics_inner section ul {
    justify-content: flex-start;
    margin-top: 12px;
  }
  .academics_inner section:not(:first-of-type) i {
    position: absolute;
    top: 20px;
    left: 20px;
    height: 28px;
    width: 28px;
  }
  .academics_inner section:not(:first-of-type) a {
    align-items: flex-start;
    padding: 18px 20px 20px 68px;
  }
}

/* 専攻・学科のボックス（ホバーしたとき） */
.academics_inner section:not(:first-of-type) a {
  position: relative;
  z-index: 1;
}
.academics_inner section:not(:first-of-type) a:hover h2,
.academics_inner section:not(:first-of-type) a:hover h2 span,
.academics_inner section:not(:first-of-type) a:hover p {
  color: #fff;
}
.academics_inner section a::before {
  background: #fff;
  border-radius: 8px;
  content: "";
  opacity: 1;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  transition: opacity var(--trans-basis);
  width: 100%;
  z-index: -1;
}
.academics_inner section a:hover::before {
  border-radius: 8px;
  content: "";
  opacity: 1;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  transition: opacity var(--trans-basis);
  width: 100%;
  z-index: -2;
}
.academics_inner section a::before {
  opacity: 0;
}
.academics_inner section:nth-of-type(2) a::before {
  background: linear-gradient(180deg, #75b4ff 0%, #115fbe 100%);
}
.academics_inner section:nth-of-type(3) a::before {
  background: linear-gradient(180deg, #ff7d77 0%, #d0332b 100%);
}
.academics_inner section:nth-of-type(4) a::before {
  background: linear-gradient(180deg, #ffd0a4 0%, #dd6b00 100%);
}
.academics_inner section:nth-of-type(5) a::before {
  background: linear-gradient(135deg, #ffec99 0%, #e9bd00 100%);
}
.academics_inner section:nth-of-type(6) a::before {
  background: linear-gradient(180deg, #c8adef 0%, #6b499c 100%);
}
.academics_inner section:nth-of-type(7) a::before {
  background: linear-gradient(180deg, #f8b888 0%, #9c5e31 100%);
}
.academics_inner section:nth-of-type(8) a::before {
  background: linear-gradient(180deg, #c2f9ff 0%, #16c3d7 100%);
}

.academics_inner section:nth-of-type(2) a:hover i {
  background: url("../img/common/academics_symbol1_hover.svg") no-repeat;
}
.academics_inner section:nth-of-type(3) a:hover i {
  background: url("../img/common/academics_symbol2_hover.svg") no-repeat;
}
.academics_inner section:nth-of-type(4) a:hover i {
  background: url("../img/common/academics_symbol3_hover.svg") no-repeat;
}
.academics_inner section:nth-of-type(5) a:hover i {
  background: url("../img/common/academics_symbol4_hover.svg") no-repeat;
}
.academics_inner section:nth-of-type(6) a:hover i {
  background: url("../img/common/academics_symbol5_hover.svg") no-repeat;
}
.academics_inner section:nth-of-type(7) a:hover i {
  background: url("../img/common/academics_symbol6_hover.svg") no-repeat;
}
.academics_inner section:nth-of-type(8) a:hover i {
  background: url("../img/common/academics_symbol7_hover.svg") no-repeat;
}

/* お知らせ
----------------------------------------------------------------------------------------------------*/
.news {
  padding-top: 150px;
  padding-left: 40px;
  padding-right: 40px;
  padding-bottom: 126px;
}
.news_inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-left: auto;
  margin-right: auto;
  max-width: 1162px;
}

/* お知らせの見出し */
.news_ttl {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: 32px;
  position: relative;
  width: 378px;
}
.news_ttl h2 {
  padding-top: 34px;
}
.news_ttl h2::before {
  background: url("../img/common/ttl_kazari.svg") no-repeat;
  background-size: 100% 100%;
  content: "";
  display: inline-block;
  height: 34px;
  margin-top: -34px;
  position: absolute;
  left: 0;
  width: 35px;
}
.news_ttl h2::after {
  display: none;
}

@media screen and (max-width: 640px) {
  .news_ttl {
    padding-left: 16px;
  }
  .news_ttl h2::before {
    height: 21px;
    margin-top: -21px;
    width: 22px;
  }
}

.news_ttl h2 span {
  color: var(--key-color);
  font-family: "futura-pt", sans-serif;
  font-size: var(--fs-60);
  font-weight: 200;
  letter-spacing: 0.02em;
}
.news_ttl h2 i {
  display: block;
  font-style: normal;
  font-size: var(--fs-16);
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-top: 8px;
}
.news_ttl > div + .txt_link_m {
  margin-top: 64px;
}

/* お知らせの記事一覧タイトル */
.news ul {
  width: calc(100% - 346px);
}
.news ul li {
  /* display: block; */
  display: grid;
  grid-template-columns: 15% 1fr;
  gap: 0 1rem;
  padding: 32px 0;
  position: relative;
}

@media screen and (max-width: 640px) {
  .news ul li {
    grid-template-columns: 1fr;
    gap: 0.5rem 0;
    padding: 20px 0;
  }
}

.news ul li::after {
  border-bottom: 1px dashed #d0d6dc;
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}
.news_date_cat time {
  color: #2aad70;
  font-family: "futura-pt", sans-serif;
  font-weight: 450;
  font-size: var(--fs-16);
  letter-spacing: 0.02em;
}
.news_date_cat a {
  border: 1px solid #d0d6dc;
  border-radius: 4px;
  font-weight: 400;
  font-size: var(--fs-13);
  letter-spacing: 0.03em;
  margin-left: 12px;
  padding: 3px 12px 4px;
  transition: var(--trans-basis);
}

.news_item_ttl {
  font-weight: 500;
  font-size: var(--fs-15);
  line-height: 1.7;
  letter-spacing: 0.05em;
  /* margin-top: 20px; */
  /* margin-right: 54px; */
  display: inline-block;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 90%;
  overflow: hidden;
}
@media screen and (max-width: 640px) {
  .news_item_ttl {
    width: 85%;
  }
}
.news_item_ttl a {
  transition: var(--trans-basis);
}
.news_item_ttl a::before {
  background: #fff url("../img/common/news_arrow.svg") no-repeat;
  background-size: 11px 9px;
  background-position: center center;
  border-radius: 15px;
  content: "";
  display: inline-block;
  height: 30px;
  /* margin-top: -15px; */
  position: absolute;
  /* top: 50%; */
  top: 0;
  bottom: 0;
  margin-block: auto;
  right: 8px;
  transition: var(--trans-basis);
  width: 30px;
}

/* hoverしたとき */
.news_date_cat a:hover {
  background: #a0a8b0;
  border-color: #a0a8b0;
  color: #fff;
}
.news_item_ttl a:hover {
  color: #a0a8b0;
}
.news_item_ttl a:hover::before {
  transform: translate(8px);
}
/*.news_item_ttl a:hover::before{
	background: #A0A8B0 url("../img/common/news_arrow_hover.svg") no-repeat;
	background-size: 11px 11px;
	background-position: center center;
}*/

/* 調整 （View moreボタン）*/
.news .sp {
  display: none;
}

@media screen and (max-width: 880px) {
  .news .pc {
    display: none;
  }
  .news .sp {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-top: 48px;
  }
  .news_inner {
    flex-direction: column;
    widht: 100%;
  }
  .news_ttl,
  .news ul {
    width: 100%;
  }
  /* .news ul {
    margin-top: 20px;
  } */
}
@media screen and (max-width: 640px) {
  .news {
    padding-top: 100px;
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* ボタン（テキストリンク＿中）
----------------------------------------------------------------------------------------------------*/
.txt_link_m a {
  border: solid 1px #a0a8b0;
  border-radius: 35px;
  display: inline-block;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-18);
  line-height: 18px;
  letter-spacing: 0.02em;
  padding: 20px 48px;
  transition: var(--trans-basis);
}
.txt_link_m a:hover {
  background: #395057;
  border-color: #395057;
  color: #fff;
}

@media screen and (max-width: 640px) {
  .txt_link_m a {
    padding: 16px 40px;
  }
}

/* 3つの特徴の大見出し「Features」のところ
----------------------------------------------------------------------------------------------------*/
/* セクションごとに切り替わるボタン */
/*.features_nav{
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: fixed;
	top: 0;
	left: 40px;
	bottom: 0;
	margin: auto;
}
.features_nav li{
	background: #D0D6DC;
	border-radius: 0;
	display: block;
	height: 7px;
	width: 7px;
}
.features_nav li.current{
	background: #2AAD70;
}
.features_nav li + li{
	margin-top: 12px;
}*/

.features_ttl {
  background: url("../img/common/mainv.jpg") no-repeat;
  background-size: 100% 100%;
  background-position: center top;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100vh;
  position: relative;
}
.features_ttl_inner {
  padding-left: 9vw;
  padding-right: 9vw;
}

@media screen and (max-width: 880px) {
  .features_ttl {
    background: url("../img/common/mainv_sp.jpg") no-repeat;
    background-size: 100% 100%;
    background-position: center top;
  }
}

.features_ttl h2 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
.features_ttl h2 span {
  color: #d5d9dd;
  font-family: "futura-pt", sans-serif;
  font-weight: 450;
  font-size: var(--fs-200);
  line-height: 1;
  letter-spacing: 0.02em;
}
.features_ttl h2 i {
  font-style: normal;
  font-weight: 500;
  font-size: var(--fs-20);
  letter-spacing: 0.05em;
  margin-top: 6px;
}
@media screen and (max-width: 880px) {
  .features_ttl h2 i {
    margin-top: 12px;
  }
}

/* 3つの特徴の内容
----------------------------------------------------------------------------------------------------*/
.features_inner {
  background: url("../img/common/mainv.jpg") no-repeat;
  background-size: cover;
  background-position: center top;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100vh;
  padding-left: 9vw;
  padding-right: 9vw;
  position: relative;
}
@media screen and (max-width: 880px) {
  .features_inner {
    background: url("../img/common/mainv_sp.jpg") no-repeat;
    background-size: 100% 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
  .features_ttl .features_inner {
    padding-left: 32px;
    padding-right: 32px;
  }
}
@media screen and (max-width: 640px) {
  /* SP時、100vhでは足りないセクションに対応 */
  .features_inner {
    height: auto;
    padding-top: 20vh;
    padding-bottom: 20vh;
  }
}

.features_box {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.features_box section {
  width: 26.8251273345%; /*346px*/
}
.features_item_img {
  height: auto;
  margin-left: 5.3480475382%; /*63px*/
  margin-right: 7.64006791171%; /*90px*/
  width: 30.5602716469%; /*360px*/
}
.features_item_link {
  width: 27.0797962649%; /*319px*/
}

@media screen and (max-width: 880px) {
  .features_box {
    flex-direction: column;
  }
  .features_box section,
  .features_item_link {
    width: 100%;
  }
  .features_box section {
    order: 2;
  }
  .features_item_img {
    margin-top: 30px;
    margin-left: 0;
    margin-right: 0;
    max-width: 226px;
    order: 1;
    width: 60.1063829787%; /*226/376*/
  }
  .features_item_link {
    order: 3;
  }
}

/* section1のみ下部にメニューあり */
.features_major {
  background: rgba(57, 80, 87, 0.08);
  border-radius: 8px;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 56px;
  margin-left: auto;
  margin-right: auto;
  max-width: 1178px;
  padding: 12px 0;
  width: 100%;
}
.features_major li a {
  display: block;
  font-weight: 400;
  font-size: var(--fs-14);
  letter-spacing: 0.05em;
  margin-left: 14px;
  margin-right: 14px;
  padding: 8px;
  padding-right: 0;
  padding-left: calc(12px + 6px); /* アイコンの隣の余白分 */
  position: relative;
  transition: var(--trans-basis);
  white-space: nowrap;
}
.features_major li a:hover {
  opacity: 0.5;
}
.features_major li a::before {
  content: "";
  display: inline-block;
  height: 14px;
  position: absolute;
  top: 50%;
  left: 0;
  margin-top: -7px;
  width: 14px;
}
.features_major li:nth-of-type(1) a::before {
  background: url("../img/common/features_symbol1.svg") no-repeat;
  background-size: 100% 100%;
}
.features_major li:nth-of-type(2) a::before {
  background: url("../img/common/features_symbol2.svg") no-repeat;
  background-size: 100% 100%;
}
.features_major li:nth-of-type(3) a::before {
  background: url("../img/common/features_symbol3.svg") no-repeat;
  background-size: 100% 100%;
}
.features_major li:nth-of-type(4) a::before {
  background: url("../img/common/features_symbol4.svg") no-repeat;
  background-size: 100% 100%;
}
.features_major li:nth-of-type(5) a::before {
  background: url("../img/common/features_symbol5.svg") no-repeat;
  background-size: 100% 100%;
}
.features_major li:nth-of-type(6) a::before {
  background: url("../img/common/features_symbol6.svg") no-repeat;
  background-size: 100% 100%;
}
.features_major li:nth-of-type(7) a::before {
  background: url("../img/common/features_symbol7.svg") no-repeat;
  background-size: 100% 100%;
}

@media screen and (max-width: 880px) {
  .features_major {
    justify-content: flex-start;
    margin-top: 32px;
    padding: 12px 16px;
  }
  .features_major li {
    width: 50%;
  }
  .features_major li a {
    margin-left: 0;
  }
}

/* 左側の番号 */
.features_item_no {
  color: #2aad70;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-15);
  font-style: normal;
}

/* 左側の見出し */
.features_item_ttl {
  margin-top: 24px;
}
.features_item_ttl span {
  color: var(--key-color);
  display: inline-block;
  font-size: var(--fs-40);
  font-family: "M PLUS Rounded 1c", serif;
  font-weight: 400;
  letter-spacing: 0.1em;
  position: relative;
  white-space: nowrap;
  z-index: 1;
}
.features_item_ttl span::before {
  background: #fff;
  content: "";
  display: inline-block;
  height: 20px;
  position: absolute;
  left: 0;
  bottom: 5px;
  width: 100%;
  z-index: -1;
}
.features_item_ttl span:nth-of-type(2) {
  margin-top: 8px;
}

@media screen and (max-width: 880px) {
  .features_item_ttl {
    margin-top: 30px;
  }
  .features_item_ttl span::before {
    bottom: 1px;
  }
}

/* 左側の説明文 */
.features_item_txt {
  font-weight: 400;
  font-size: var(--fs-14);
  letter-spacing: 0.05em;
  line-height: 2;
  margin-top: 28px;
}

@media screen and (max-width: 880px) {
  .features_item_txt {
    margin-top: 16px;
  }
}

/* 右側のリンク */
.features_item_link a {
  display: flex;
  align-items: center;
  position: relative;
  transition: var(--trans-basis);
}
.features_item_link a span {
  display: inline-block;
  font-weight: 500;
  font-size: var(--fs-16);
  letter-spacing: 0.05em;
  position: relative;
  white-space: nowrap;
}
.features_item_link a span::before {
  background: var(--txt-color);
  content: "";
  display: inline-block;
  height: 1px;
  opacity: 1;
  position: absolute;
  left: 0;
  bottom: -1px;
  transition: var(--trans-basis);
  width: 100%;
}
.features_item_link a i {
  border: solid 1px rgba(57, 80, 87, 0.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 180px;
  position: absolute;
  right: 0;
  transform: scale(1);
  transition: var(--trans-basis);
  width: 180px;
}
.features_item_link a i::before {
  background: url("../img/common/features_arrow.svg") no-repeat;
  background-size: 100% 100%;
  content: "";
  display: inline-block;
  height: 24px;
  transition: var(--trans-basis);
  width: 28px;
}
.features_item_link a:hover i {
  transform: scale(1.2);
}
.features_item_link a:hover i::before {
  transform: translate(8px);
}

/* hoverしたとき */
.features_item_link a:hover span::before {
  opacity: 0;
}

/* 調整 */
.features_section .sp {
  display: none;
}

@media screen and (max-width: 880px) {
  .features_item_link a {
    display: flex;
    flex-direction: row-reverse;
  }
  .features_item_link a i {
    height: 66px;
    margin-right: 13px;
    position: static;
    flex-shrink: 0;
    width: 66px;
  }
  .features_item_link a i::before {
    background: url("../img/common/features_arrow2.svg") no-repeat;
    background-size: 100% 100%;
    height: 9px;
    width: 11px;
  }
  .features_section .pc {
    display: none;
  }
  .features_section .sp {
    display: block;
  }
  .features_item_link,
  .features_item_link.sp {
    display: flex;
    justify-content: flex-start;
    margin-top: 32px;
  }
}

/* 数字で見る
----------------------------------------------------------------------------------------------------*/
.numbers {
  padding-top: 100px;
  padding-left: 40px;
  padding-right: 40px;
  /*	padding-bottom: 150px;*/
}
.numbers_inner {
  background: var(--txt-color) url("../img/common/numbers_pattern.svg")
    no-repeat;
  background-position: top left;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-left: auto;
  margin-right: auto;
  max-width: 1130px;
  transition: var(--trans-basis);
}
.numbers_inner:hover {
  opacity: 0.8;
}

.numbers_inner section {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-left: 8.93805309735%; /*101px*/
  width: 66.3716814159%; /*750px*/
}
.numbers_inner section h2 {
  color: #fff;
  display: inline-block;
  margin-right: 16.8%; /*126px*/
  white-space: nowrap;
}
.numbers_inner section h2 span {
  font-family: "futura-pt", sans-serif;
  font-weight: 450;
  font-size: var(--fs-64);
  letter-spacing: 0.02em;
}
.numbers_inner section h2 i {
  display: block;
  font-style: normal;
  font-weight: 500;
  font-size: var(--fs-16);
  letter-spacing: 0.1em;
}
.numbers_inner section figure {
  display: inline-block;
  height: auto;
  padding-top: 56px;
  padding-bottom: 61px;
  width: 42.5333333333%; /*319px*/
}

.numbers_arrow {
  width: 33.6283185841%; /*380px*/
}
.numbers_arrow {
  aspect-ratio: 1 / 1;
  background: #fff url("../img/common/numbers_bg.svg") no-repeat;
  background-size: 79px 79px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 9.38053097345%; /*106px*/
  width: 6.99115044248%; /*79px*/
}
.numbers_arrow i {
  aspect-ratio: 1 / 1;
  background: #fff url("../img/common/numbers_arrow.svg") no-repeat;
  background-size: 100% 100%;
  background-position: center center;
  display: inline-block;
  flex-shrink: 0;
  width: 27.8481012658%; /*22px*/
}

/* 調整 */
.numbers .sp {
  display: none;
}

@media screen and (max-width: 640px) {
  .numbers .pc {
    display: none;
  }
  .numbers .sp {
    display: block;
  }
  .numbers {
    padding-top: 101px;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 157px;
  }
  .numbers_inner {
    background: var(--txt-color) url("../img/common/numbers_pattern_sp.svg")
      no-repeat;
    background-position: top left;
    flex-direction: column;
    padding-top: 44px;
    padding-left: 24px;
    padding-right: 24px;
    padding-bottom: 25px;
  }
  .numbers_inner section {
    margin-left: 0;
    width: 100%;
  }
  .numbers_inner figure {
    margin-top: 41px;
    padding-left: 10px;
    padding-right: 10px;
  }
  .numbers_inner section h2 {
    margin-right: 0;
  }
  .numbers_arrow.sp {
    display: flex;
    margin-right: 0;
    width: 16.3763066202%; /*47/287*/
  }
  .numbers_arrow i {
    width: 31.914893617%; /*15/47*/
  }
}

@media screen and (max-width: 480px) {
  .numbers_arrow.sp {
    margin-top: -16px;
  }
}

/* 学生インタビュー
----------------------------------------------------------------------------------------------------*/
.interview {
  background: #fff url("../img/common/Interview_bg_txt.svg") no-repeat;
  background-size: 54.7857142857%; /*767/1400*/
  background-position: right top;
  border-radius: 40px 0 0 40px;
  margin-top: 150px;
  margin-left: 40px;
  margin-right: 0;
  width: calc(100% - 40px);
}
.interview_inner {
  margin-left: auto;
  margin-right: auto;
  max-width: 1400px;
  padding-top: 75px;
  padding-left: 115px;
  padding-right: 155px;
  padding-bottom: 120px;
}

.interview_read h2 {
  color: var(--key-color);
  display: flex;
  font-weight: 400;
  font-size: var(--fs-40);
  font-family: "M PLUS Rounded 1c", serif;
  flex-direction: column;
  justify-content: center;
  letter-spacing: 0.1em;
  position: relative;
  padding-top: 30px;
  padding-left: 0;
  width: 378px;
}
.interview_read h2::before {
  background: url("../img/common/ttl_kazari.svg") no-repeat;
  background-size: 100% 100%;
  content: "";
  display: inline-block;
  height: 34px;
  position: absolute;
  top: 0;
  left: -37px;
  width: 35px;
}
.interview_read h2::after {
  display: none;
}

/* .interviewのスライドエリア */
.interview .swiper_area {
  margin-top: 36px;
  overflow-x: hidden;
  position: relative;
}
.interview .swiper_area > p {
  font-weight: 400;
  font-size: var(--fs-15);
  line-height: 2;
  letter-spacing: 0.05em;
  margin-bottom: 48px;
}

/* スライドの数 */
#interview_slide .swiper-slide {
  border-radius: 8px 8px 0 0;
  display: block;
  margin-right: 31px;
  width: calc((100% - 62px) / 3);
}

/* スライドの画像とタグ */
#interview_slide figure {
  border-radius: 8px;
  overflow: hidden;
  position: relative;
}
#interview_slide figure img {
  transition: var(--trans-basis);
}
#interview_slide figure span {
  border-radius: 0 8px 0 0;
  display: inline-block;
  font-weight: 400;
  font-size: var(--fs-16);
  line-height: 1;
  letter-spacing: 0.05em;
  padding-top: 17px;
  padding-right: 24px;
  padding-bottom: 9px;
  padding-left: 34px;
  position: absolute;
  left: 0;
  bottom: 0;
}
#interview_slide .swiper-slide:hover figure img {
  transform: scale(1.1);
}

#interview_slide figure .tag_symbol1 {
  background: #fff url("../img/common/features_symbol1.svg") no-repeat;
}
#interview_slide figure .tag_symbol2 {
  background: #fff url("../img/common/features_symbol2.svg") no-repeat;
}
#interview_slide figure .tag_symbol3 {
  background: #fff url("../img/common/features_symbol3.svg") no-repeat;
}
#interview_slide figure .tag_symbol4 {
  background: #fff url("../img/common/features_symbol4.svg") no-repeat;
}
#interview_slide figure .tag_symbol5 {
  background: #fff url("../img/common/features_symbol5.svg") no-repeat;
}
#interview_slide figure .tag_symbol6 {
  background: #fff url("../img/common/features_symbol6.svg") no-repeat;
}
#interview_slide figure .tag_symbol7 {
  background: #fff url("../img/common/features_symbol7.svg") no-repeat;
}
#interview_slide figure span[class^="tag_symbol"] {
  background-size: 18px 18px;
  background-position: 8px 17px;
}

/* スライドの見出し */
#interview_slide h3 {
  color: var(--txt-color);
  font-weight: 500;
  font-size: var(--fs-22);
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin-top: 20px;
  padding-left: 8px;
  padding-right: 8px;
}

/* 先輩たちの名前など */
.interview_person {
  display: flex;
  align-items: center;
  font-weight: 400;
  font-size: var(--fs-15);
  letter-spacing: 0.05em;
  margin-top: 32px;
}
.interview_person p {
  padding-left: 8px;
  line-height: 1;
}
.onwards_inner .interview_person p {
  margin-bottom: 0;
}
.interview_person span {
  color: #a0a8b0;
  display: inline-block;
  margin-left: 16px;
  padding-left: 16px;
  position: relative;
}
.interview_person span::before {
  background: #d0d6dc;
  content: "";
  display: inline-block;
  height: 18px;
  position: absolute;
  top: 3px;
  left: 0;
  width: 1px;
}

/* スライドのナビゲーション */
.interview_prev_next {
  display: flex;
  position: absolute;
  top: 8px;
  right: 0;
}
.interview_prev_next .swiper-button-next,
.interview_prev_next .swiper-button-prev {
  border: solid 1px #a0a8b0;
  border-radius: 50%;
  height: 48px;
  margin-top: 0;
  position: static;
  transition: var(--trans-basis);
  width: 48px;
}
.interview_prev_next .swiper-button-next {
  background: url("../img/common/interview_arrow.svg") no-repeat;
  background-size: 9px 14px;
  background-position: center center;
  transform: scale(-1, 1);
}
.interview_prev_next .swiper-button-prev {
  background: url("../img/common/interview_arrow.svg") no-repeat;
  background-size: 9px 14px;
  background-position: center center;
}

.interview_prev_next .swiper-button-next:hover {
  background: #a0a8b0 url("../img/common/interview_arrow_hover.svg") no-repeat;
  background-size: 9px 14px;
  background-position: center center;
}
.interview_prev_next .swiper-button-prev:hover {
  background: #a0a8b0 url("../img/common/interview_arrow_hover.svg") no-repeat;
  background-size: 9px 14px;
  background-position: center center;
}
.interview_prev_next .swiper-button-next::after,
.interview_prev_next .swiper-button-prev::after {
  display: none;
}
.interview_prev_next .swiper-button-next {
  margin-left: 24px;
}

/* インタビューの［View more］ボタン */
.interview .txt_link_m {
  margin-top: 72px;
  text-align: center;
}

@media screen and (max-width: 880px) {
  .interview .pc {
    display: none;
  }
  .interview {
    background: #fff url("../img/common/Interview_bg_txt.svg") no-repeat;
    background-size: 83.9436619718%; /*298/355*/
    background-position: right top;
    border-radius: 16px 0 0 16px;
    margin-left: 20px;
    width: calc(100% - 20px);
  }
  .interview_inner {
    overflow-x: hidden;
    padding-top: 79px;
    padding-left: 20px;
    padding-right: 0;
    padding-bottom: 80px;
  }
  .interview_read h2 {
    font-size: 24px;
    padding-top: 0;
    padding-left: 30px;
    width: 100%;
  }
  .interview_read h2::before {
    background-size: 100% 100%;
    top: 8px;
    left: 0;
    height: 21px;
    width: 22px;
  }
  .swiper_area {
    padding-bottom: 88px;
  }
  .interview .swiper_area {
    margin-top: 15px;
  }
  .interview .swiper_area > p {
    margin-right: 20px;
    margin-bottom: 37px;
  }
  #interview_slide .swiper-slide {
    margin-right: auto;
    width: auto;
  }
  #interview_slide figure span {
    padding-top: 14px;
    padding-right: 20px;
    padding-bottom: 10px;
  }
  #interview_slide figure span[class^="tag_symbol"] {
    background-position: 8px 12px;
  }
  .interview_person {
    margin-top: 24px;
  }
  .onwards_inner .interview_person p {
    padding-left: 0;
  }
  /* スライドのナビゲーション */
  .interview_prev_next {
    top: auto;
    left: 0;
    bottom: 0;
  }
  .interview_prev_next .swiper-button-next {
    margin-left: 14px;
  }
  /* スライドのプログレスバー（スマホのみ） */
  .interview_bar {
    position: absolute;
    right: 20px;
    bottom: 23px;
    width: 52.676056338%;
  }
  .progress_bar {
    position: relative;
    height: 2px;
    background: #d0d6dc;
    overflow: hidden;
    width: 100%;
  }
  .progress_bar span {
    background: #2aad70;
    display: block;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    transform: scaleX(0);
    transform-origin: left center;
    transition-timing-function: linear;
    width: 100%;
  }
  /* インタビューのボタン */
  .interview .txt_link_m {
    margin-top: 56px;
    margin-right: 20px;
  }
}

/* 下部バナー
----------------------------------------------------------------------------------------------------*/
.banner {
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  background: linear-gradient(
    to top,
    rgba(244, 245, 246, 1),
    rgba(244, 245, 246, 0.4)
  );
  padding-top: 128px;
  padding-left: 40px;
  padding-right: 40px;
}
.banner_inner {
  margin-left: auto;
  margin-right: auto;
  max-width: 1130px;
}
.banner_inner ul {
  display: flex;
  gap: 25px 25px;
  justify-content: center;
  flex-wrap: wrap;
}
.banner_inner ul li {
  height: auto;
  max-width: 360px;
}
.banner_inner ul li a {
  transition: var(--trans-basis);
}
.banner_inner ul li a:hover {
  opacity: 0.5;
}

@media screen and (max-width: 640px) {
  .banner {
    padding-top: 100px;
    padding-left: 20px;
    padding-right: 20px;
  }
  .banner_inner ul {
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }
  .banner_inner ul li {
    max-width: 335px;
  }
}

/* footer
----------------------------------------------------------------------------------------------------*/
.footer_inner {
  background: url("../img/common/footer_bg.jpg") no-repeat;
  background-size: cover;
  background-position: top center;
  padding-top: 68px;
  text-align: center;
}
.footer_inner hr {
  border-color: rgba(57, 80, 87, 0.12);
  padding-top: 56px;
}
.footer_inner h2 {
  margin-top: 251px;
  margin-bottom: 230px;
  padding-left: 36px;
  padding-right: 42px;
}
.footer_inner h2 a {
  transition: var(--trans-basis);
}
.footer_inner h2 a:hover {
  opacity: 0.5;
}
.footer_inner h2 img {
  height: auto;
  width: 550px;
}
.footer_inner small {
  color: rgba(57, 80, 87, 0.5);
  display: block;
  font-weight: 400;
  font-size: var(--fs-12);
  letter-spacing: 0.05em;
  margin-bottom: 40px;
}
.footer_inner menu {
  background: var(--key-color);
  display: flex;
  justify-content: center;
  list-style: none;
  padding-top: 17px;
  padding-bottom: 20px;
}
.footer_inner menu li + li {
  margin-left: 48px;
}
.footer_inner menu a {
  color: #fff;
  font-weight: 400;
  font-size: var(--fs-14);
  letter-spacing: 0.05em;
  padding-left: 22px;
  transition: var(--trans-basis);
}
.footer_inner menu a:hover {
  opacity: 0.5;
}
.footer_inner menu .icon_arrow {
  background: url("../img/common/footer_arrow.svg") no-repeat;
  background-size: 20px 20px;
  background-position: 0 1px;
}
.footer_inner menu .icon_window {
  background: url("../img/common/footer_window.svg") no-repeat;
  background-size: 20px 20px;
  background-position: 0 1px;
}

@media screen and (max-width: 640px) {
  .footer_inner {
    background: url("../img/common/footer_bg_sp.jpg") no-repeat;
    background-size: cover;
    background-position: center center;
  }
  .footer_inner hr {
    border-color: rgba(208, 214, 220, 1);
    padding-top: 48px;
  }
  .footer_inner small {
    margin-bottom: 32px;
  }
  .footer_inner h2 {
    margin-top: 222px;
    margin-bottom: 222px;
  }
  .footer_inner menu {
    flex-wrap: wrap;
    padding-left: 55px;
    padding-right: 56px;
  }
  .footer_inner menu li {
    padding-top: 6px;
    padding-bottom: 6px;
    width: 50%;
  }
  .footer_inner menu li a {
    display: flex;
  }
  .footer_inner menu li + li {
    margin-left: 0;
  }
}

.footer .txt_link_inner {
  margin-left: auto;
  margin-right: auto;
  max-width: 1130px;
  margin-top: 56px;
}

.footer .txt_link_l a {
  border-bottom: solid 1px #d0d6dc;
  display: inline-block;
  position: relative;
  transition: var(--trans-basis);
  padding: 22px 50px 22px 8px;
}
.footer .txt_link_l a::after {
  background: url("../img/common/txt_link_l_arrow.svg") no-repeat;
  background-size: 13px 11px;
  background-position: center center;
  content: "";
  display: inline-block;
  height: 11px;
  margin-top: -5.5px;
  position: absolute;
  top: 50%;
  right: 12px;
  transition: var(--trans-basis);
  width: 13px;
}
.footer .txt_link_l a:hover::after {
  transform: translate(8px);
}

.footer .txt_link_l a span {
  display: block;
  font-weight: 400;
  font-size: var(--fs-16);
  letter-spacing: 0.05em;
}
.footer .txt_link_l a i {
  color: #a0a8b0;
  display: block;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-13);
  font-style: normal;
  letter-spacing: 0.05em;
  margin-top: 4px;
}

.footer .flex_wrap {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  width: 100%;
}
.footer .flex_wrap a {
  width: 100%;
}

/* 3列 */
.footer .flex_wrap.three > div {
  width: calc((100% - 64px) / 3);
}

@media screen and (max-width: 960px) {
  .footer .flex_wrap {
    gap: 0;
  }
  .footer .flex_wrap.three > div {
    margin-left: auto;
    margin-right: auto;
    max-width: 360px;
    width: 100%;
  }
}

/* 見出しのアニメーション
----------------------------------------------------------------------------------------------------*/
.ttl_anim > span span,
.ttl_anim > i {
  display: inline-block;
  opacity: 0;
  transform: translateY(50%);
  transition: transform 0.7s cubic-bezier(0.43, 0.05, 0.17, 1),
    opacity 0.7s cubic-bezier(0.43, 0.05, 0.17, 1);
}
.ttl_anim.on > span span,
.ttl_anim.on > i {
  transform: translateY(0%);
  opacity: 1;
}
.ttl_anim.on > span span.up1 {
  transition-delay: 0.08s;
}
.ttl_anim.on > span span.up2 {
  transition-delay: 0.16s;
}
.ttl_anim.on > span span.up3 {
  transition-delay: 0.24s;
}
.ttl_anim.on > span span.up4 {
  transition-delay: 0.32s;
}
.ttl_anim.on > span span.up5 {
  transition-delay: 0.4s;
}
.ttl_anim.on > span span.up6 {
  transition-delay: 0.48s;
}
.ttl_anim.on > span span.up7 {
  transition-delay: 0.56s;
}
.ttl_anim.on > span span.up8 {
  transition-delay: 0.64s;
}
.ttl_anim.on > span span.up9 {
  transition-delay: 0.72s;
}
.ttl_anim.on > span span.up10 {
  transition-delay: 0.8s;
}
.ttl_anim.on > span span.up11 {
  transition-delay: 0.88s;
}
.ttl_anim.on > span span.up12 {
  transition-delay: 0.96s;
}
.ttl_anim.on > span span.up13 {
  transition-delay: 1.04s;
}
.ttl_anim.on > span span.up14 {
  transition-delay: 1.12s;
}
.ttl_anim.on > span span.up15 {
  transition-delay: 1.2s;
}

/* 第二階層（お知らせ）
----------------------------------------------------------------------------------------------------*/
#s_page .news {
  padding-top: 104px;
  padding-left: 10.7638888889%;
  padding-right: 10.7638888889%;
  padding-bottom: 120px;
}

@media screen and (max-width: 767px) {
  #s_page .news {
    padding-top: 50px;
  }
}
@media screen and (max-width: 640px) {
  #s_page .news {
    padding-left: 20px;
    padding-right: 20px;
  }
}

#s_page .news_inner {
  max-width: 100%;
}

/* お知らせの見出し */
#s_page .news_ttl {
  padding-left: 0;
  width: 346px;
}
#s_page .news_ttl h2 {
  padding-top: 0;
}
#s_page .news_ttl h2 span {
  font-size: var(--fs-72);
}
#s_page .news_ttl h2::before {
  display: none;
}

/* お知らせのカテゴリ */
.cat_wrap {
  display: flex;
  gap: 10px 6px;
  flex-wrap: wrap;
  margin-right: 27.7456647399%; /* 改行調整 */
}
.cat_wrap a {
  background: #f5f6f7;
  border-radius: 8px;
  border: 1px solid #d0d6dc;
  display: inline-block;
  font-weight: 400;
  font-size: var(--fs-13);
  line-height: 1;
  letter-spacing: 0.03em;
  padding: 15px 26px 16px;
}
.cat_wrap a.current {
  background: #2aad70;
  border-color: #2aad70;
  color: #fff;
}

@media screen and (max-width: 880px) {
  .cat_wrap a {
    border-radius: 6px;
    padding: 12px 20px 13px;
  }
}

.news_ttl + .year_wrap {
  margin-top: 50px;
}

/* お知らせの年（PCのとき） */
.year_wrap {
  margin-right: 27.7456647399%; /*96/346*/
}
.year_wrap p {
  color: rgba(57, 80, 87, 0.5);
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-15);
  line-height: 1;
  letter-spacing: 0;
  border-bottom: 1px solid #d0d6dc;
  margin-bottom: 22px;
  padding-bottom: 10px;
}
.year_wrap a {
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-16);
  display: block;
  line-height: 1;
  letter-spacing: 0.03em;
  margin-top: 18px;
  padding-left: 15px;
  position: relative;
}
.year_wrap a::before {
  background: #d0d6dc;
  border-radius: 50%;
  content: "";
  display: inline-block;
  height: 5px;
  margin-top: -2.5px;
  position: absolute;
  top: 50%;
  left: 0;
  width: 5px;
}
.year_wrap a.current::before {
  background: #2aad70;
  height: 7px;
  margin-top: -3.5px;
  width: 7px;
}

/* お知らせの年（SPのとき） */
.year_wrap.sp {
  margin-top: 30px;
  margin-left: 0;
  margin-right: 0;
  position: relative;
}
.year_wrap.sp select {
  appearance: none;
  background: transparent;
  border: none;
  color: rgba(57, 80, 87, 0.5);
  cursor: pointer;
  display: block;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-15);
  height: calc(1em + 20px);
  line-height: 1;
  letter-spacing: 0;
  width: 100%;
}
.year_wrap.sp::before {
  background: #d0d6dc;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  bottom: 0;
  position: absolute;
  width: 100%;
}
.year_wrap.sp::after {
  background: url("../img/common/news_select_arrow.svg") no-repeat;
  background-size: 10px 6px;
  content: "";
  display: inline-block;
  height: 6px;
  margin-top: -3px;
  position: absolute;
  top: 50%;
  right: 8px;
  pointer-events: none;
  width: 10px;
}

/* お知らせの記事一覧タイトル */
#s_page .news_item {
  width: calc(100% - 346px);
}
#s_page.page_news .news ul {
  width: 100%;
}
/* #s_page .news ul li:first-of-type{
	padding-top: 0;
} */
#s_page .news_item_ttl a::before {
  background: #f4f5f6 url("../img/common/news_arrow.svg") no-repeat;
  background-size: 11px 9px;
  background-position: center center;
}

/* 調整 */
#s_page .news_ttl > div + .txt_link_m {
  margin-top: 53px;
}

@media screen and (max-width: 880px) {
  .page_news .news_inner {
    flex-direction: column;
  }
  #s_page.page_news .news_item {
    margin-top: 70px;
    width: 100%;
  }
  #s_page.page_news .news_ttl {
    width: 100%;
  }
  .cat_wrap,
  .year_wrap {
    margin-right: 0;
  }
}

/* 第二階層（研究室ポートレート）
----------------------------------------------------------------------------------------------------*/
.page_portrait .onwards_inner {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
}

.lab_inner {
  display: flex;
}

@media screen and (max-width: 1024px) {
  .lab_inner {
    align-items: center;
    flex-direction: column;
  }
}

article[class^="lab_"] {
  padding-top: 106px;
  padding-left: 6.31944444444%;
  padding-right: 10.7638888889%;
  padding-bottom: 100px;
}
article[class^="lab_"]:nth-child(even) {
  background: #f4f5f6;
}
@media screen and (max-width: 1024px) {
  article[class^="lab_"] {
    padding-top: 56px;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 56px;
  }
}

article[class^="lab_"] .symbol {
  height: 100px;
  margin-top: 16px;
  margin-right: 80px;
  width: 100px;
}
.lab_1 .symbol {
  background: url("../img/common/lab_symbol_1.svg") no-repeat;
  background-size: 100% 100%;
}
.lab_2 .symbol {
  background: url("../img/common/lab_symbol_2.svg") no-repeat;
  background-size: 100% 100%;
}
.lab_3 .symbol {
  background: url("../img/common/lab_symbol_3.svg") no-repeat;
  background-size: 100% 100%;
}
.lab_4 .symbol {
  background: url("../img/common/lab_symbol_4.svg") no-repeat;
  background-size: 100% 100%;
}
.lab_5 .symbol {
  background: url("../img/common/lab_symbol_5.svg") no-repeat;
  background-size: 100% 100%;
}
.lab_6 .symbol {
  background: url("../img/common/lab_symbol_6.svg") no-repeat;
  background-size: 100% 100%;
}
.lab_7 .symbol {
  background: url("../img/common/lab_symbol_7.svg") no-repeat;
  background-size: 100% 100%;
}

@media screen and (max-width: 1024px) {
  article[class^="lab_"] .symbol {
    height: 56px;
    margin-top: 0;
    margin-left: 0;
    margin-right: auto;
    margin-bottom: 24px;
    width: 56px;
  }
}

article[class^="lab_"] section {
  width: calc((100% - 180px) / 2);
}
article[class^="lab_"] section:nth-of-type(1) {
  padding-right: 70px;
}
article[class^="lab_"] section:nth-of-type(2) {
  border-left: 1px dashed #d0d6dc;
  padding-left: 70px;
}

@media screen and (max-width: 1024px) {
  article[class^="lab_"] section {
    width: 100%;
  }
  article[class^="lab_"] section:nth-of-type(1) {
    padding-right: 0;
  }
  article[class^="lab_"] section:nth-of-type(2) {
    border-left: none;
    border-top: 1px dashed #d0d6dc;
    margin-top: 40px;
    padding-top: 40px;
    padding-left: 0;
  }
}

.lab_item_wrap {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.lab_item_wrap > span {
  color: #2aad70;
  display: block;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-15);
  line-height: 1;
  letter-spacing: 0;
  margin-top: -2px;
}

.lab_item_wrap h3 {
  background: none;
  margin-top: 32px;
  margin-bottom: 8px;
  padding: 0;
}
.lab_item_wrap h3 a {
  display: block;
  font-weight: 400;
  padding-right: calc(40px + 1em);
  width: 100%;
}
.lab_item_wrap h3::before {
  display: none;
}
.lab_item_wrap.ja h3 {
  margin-top: 24px;
}
.lab_item_wrap.ja h3 a {
  font-family: "M PLUS Rounded 1c", serif;
  /* font-size: var(--fs-32); */
  font-size: var(--fs-24);
  letter-spacing: 0.01em;
  line-height: 2.1;
}
.lab_item_wrap.en h3 a {
  font-family: "futura-pt", sans-serif;
  font-size: var(--fs-28);
  letter-spacing: 0.02em;
  line-height: 1.5;
}
.lab_item_wrap h3 a::after {
  background: #395057 url("../img/common/lab_item_wrap_arrow.svg") no-repeat;
  background-size: 14px 12px;
  background-position: center center;
  border-radius: 50%;
  content: "";
  display: inline-block;
  height: 40px;
  position: absolute;
  top: 0.375em;
  right: 0;
  transition: var(--trans-basis);
  width: 40px;
}
.lab_item_wrap.en h3 a::after {
  top: 0;
}
.lab_item_wrap h3 a:hover::after {
  transform: translate(8px);
}

@media screen and (max-width: 1024px) {
  .lab_item_wrap.ja h3,
  .lab_item_wrap.en h3 {
    margin-top: 8px;
    margin-bottom: 8px;
  }
}

article[class^="lab_"] .anchor_wrap {
  margin-top: auto;
  gap: 4px 24px;
}
article[class^="lab_"] .anchor_wrap div {
  width: 100%;
}

/* 第二階層（就職・進路）
----------------------------------------------------------------------------------------------------*/
.page_career .onwards_inner {
  padding-top: 104px;
}

.page_career h3 {
  background: transparent;
  border-radius: 0;
  padding: 0;
  margin-bottom: 56px;
}
.page_career h3::before {
  display: none;
}
.page_career h3 span {
  color: var(--key-color);
  font-family: "futura-pt", sans-serif;
  font-weight: 300;
  font-size: var(--fs-72);
  line-height: 1;
  letter-spacing: 0;
}
.page_career h3 i {
  display: block;
  font-weight: 400;
  font-size: var(--fs-15);
  font-style: normal;
  line-height: 1;
  letter-spacing: 0.05em;
  margin-top: 16px;
}

.page_career .accordion_contents {
  max-width: 970px;
  margin-left: auto;
  margin-right: auto;
}

.page_career h4 {
  margin-top: 48px;
}

@media screen and (max-width: 767px) {
  .page_career h4 {
    margin-top: 32px;
  }
}

/* アコーディオンの中のテーブル（SPのとき調整あり） */
.table_flex tbody {
  display: grid;
}

.table_flex tr {
  display: flex;
  flex-direction: column;
}

.table_flex th {
  border-bottom: none;
  flex-grow: 1;
}
.table_flex tr:not(:last-of-type) th,
.table_flex tr:not(:last-of-type) td {
  border-right: none;
}

/* 5列のとき（PC） */
.table_flex.five tbody {
  grid-template-columns: repeat(5, 1fr);
}
.table_flex.five tr:nth-of-type(n + 6) {
  margin-top: 16px;
}
.table_flex.five tr:nth-of-type(5n) th,
.table_flex.five tr:nth-of-type(5n) td {
  border-right: solid 1px #d0d6dc;
}

/* 3列のとき（PC） */
.table_flex.three tbody {
  grid-template-columns: repeat(3, 1fr);
}
.table_flex.three tr:nth-of-type(n + 4) {
  margin-top: 16px;
}
.table_flex.three tr:nth-of-type(3n) th,
.table_flex.three tr:nth-of-type(3n) td {
  border-right: solid 1px #d0d6dc;
}

@media screen and (max-width: 767px) {
  .table_flex tbody {
    display: table;
    width: 100%;
  }
  .table_flex tr {
    flex-direction: row;
  }
  .table_flex td,
  .table_flex th {
    display: flex;
    align-items: center;
    text-align: left;
    padding: 12px 16px;
  }
  .table_flex th {
    width: 135px;
  }
  .table_flex tr:last-of-type th {
    border-right: none;
    border-bottom: solid 1px #d0d6dc;
  }
  .table_flex td {
    width: calc(100% - 135px);
  }
  .table_flex tr:not(:last-of-type) td {
    border-right: solid 1px #d0d6dc;
    border-bottom: none;
  }
  /* 5列のとき（SP）*/
  .table_flex.five tr:nth-of-type(n + 6) {
    margin-top: 0;
  }
  .table_flex.five tr:nth-of-type(5n) th {
    border-right: none;
  }
  /* 3列のとき（SP）*/
  .table_flex.three tr:nth-of-type(n + 4) {
    margin-top: 0;
  }
  .table_flex.three tr:nth-of-type(3n) th {
    border-right: none;
  }
}

/* 第二階層（就職・進路 - アーカイブ）
----------------------------------------------------------------------------------------------------*/
.archive .onwards_inner {
  padding-bottom: 120px;
}
.archive section {
  display: flex;
}
.archive section h3 {
  margin-right: 146px; /*146px*/
  width: 200px;
}
.archive section > div {
  width: calc(100% - (200px + 146px));
}

.archive .flex_wrap.two {
  gap: 24px 32px;
  margin-bottom: 0;
}
.archive .txt_link_l a::after {
  background: url(../img/common/icon_pdf.svg) no-repeat;
  background-size: 36px 36px;
  background-position: center center;
  content: "";
  display: inline-block;
  height: 36px;
  margin-top: -18px;
  position: absolute;
  top: 50%;
  right: 0;
  transition: var(--trans-basis);
  width: 36px;
}
.archive .txt_link_l a:hover::after {
  transform: translate(0);
}

@media screen and (max-width: 1024px) {
  .archive section {
    flex-direction: column;
  }
  .archive section h3 {
    margin-right: 0;
    width: 100%;
  }
  .archive section > div {
    width: 100%;
  }
}
@media screen and (max-width: 640px) {
  .archive .flex_wrap.two {
    gap: 0 32px;
  }
}

/* 第二階層（自然科学研究科について）
----------------------------------------------------------------------------------------------------*/
.page_about .onwards_inner {
  padding-top: 104px;
}
.page_about h3 {
  background: transparent;
  border-radius: 0;
  padding: 0;
  margin-bottom: 32px;
}
.page_about h3::before {
  display: none;
}
.page_about h3 span {
  color: var(--key-color);
  font-family: "futura-pt", sans-serif;
  font-weight: 300;
  font-size: var(--fs-72);
  line-height: 1;
  letter-spacing: 0;
}
.page_about h3 i {
  display: block;
  font-weight: 400;
  font-size: var(--fs-15);
  font-style: normal;
  line-height: 1;
  letter-spacing: 0.05em;
  margin-top: 16px;
}

/* 研究科長のメッセージ */
.message_wrap h4 {
  background: url("../img/common/icon_double_quotation.svg") no-repeat;
  background-size: 54px 50px;
  font-family: "M PLUS Rounded 1c", serif;
  font-weight: 400;
  font-size: var(--fs-40);
  letter-spacing: 0.01em;
  padding-top: 24px;
  padding-left: 76px;
}
.message_wrap h4::before,
.message_wrap h4::after {
  display: none;
}

@media screen and (max-width: 640px) {
  .message_wrap h4 {
    background: url("../img/common/icon_double_quotation.svg") no-repeat;
    background-size: 27px 25px;
    padding-left: 38px;
  }
}

.message_inner {
  margin-top: 82px;
  margin-left: auto;
  margin-right: auto;
  max-width: 898px;
}
.message_inner p:first-of-type {
  margin-top: 32px;
}
.message_inner p + p {
  margin-top: 16px;
}

.message_inner .flex_wrap.two.dean_wrap {
  align-items: center;
  gap: 0 7.12694877506%; /*64px*/
  margin-top: 72px;
  margin-bottom: 120px;
}
.message_inner .dean_wrap div:nth-of-type(1) {
  width: 48.5523385301%;
}
.message_inner .dean_wrap div:nth-of-type(2) {
  width: calc(100% - (48.5523385301% + 7.12694877506%));
}
.message_inner .dean_wrap div:nth-of-type(2) i {
  color: #a0a8b0;
  display: block;
  font-weight: 400;
  font-size: var(--fs-16);
  line-height: 1.7;
  letter-spacing: 0.05em;
  font-style: normal;
}
.message_inner .dean_wrap div:nth-of-type(2) span {
  display: block;
  font-weight: 500;
  font-size: var(--fs-40);
  line-height: 1;
  letter-spacing: 0.01em;
  margin-top: 16px;
}

/* 研究科紹介 */
.about_wrap {
  display: flex;
  justify-content: space-between;
  padding-bottom: 120px;
}
.about_wrap > div:nth-of-type(1) {
  margin-right: 111px;
  width: 235px;
  white-space: nowrap;
}

.about_wrap .flex_wrap.two {
  margin-bottom: 80px;
}
.about_wrap .flex_wrap.txt_link_l_icon {
  gap: 24px 32px;
  max-width: 100%;
}
.about_wrap .research_bnr_wrap a {
  width: 100%;
}

@media screen and (max-width: 1120px) {
  .about_wrap {
    display: block;
  }
}
@media screen and (max-width: 960px) {
  .about_wrap .flex_wrap.txt_link_l_icon {
    gap: 0 32px;
  }
}

/* 数字で見る */
.numbers_wrap h3 {
  margin-bottom: 80px;
}
.numbers_wrap h3 span {
  color: #fff;
  padding-right: 32px;
}
.numbers_wrap h3 i {
  color: #fff;
  display: inline;
}

.numbers_wrap a {
  color: #fff;
}

.numbers_wrap .flex_wrap {
  gap: 120px 40px;
}
.numbers_wrap .flex_wrap + section {
  margin-top: 120px;
  padding-bottom: 150px;
}

.numbers_wrap section {
  color: #fff;
}
.numbers_wrap .flex_wrap > section {
  width: calc((100% - 80px) / 3);
}
.numbers_wrap figure {
  text-align: center;
}

@media screen and (max-width: 960px) {
  .numbers_wrap .flex_wrap {
    gap: 50px 40px;
  }
  .numbers_wrap .flex_wrap > section {
    width: calc((100% - 40px) / 2);
  }
  .numbers_wrap .flex_wrap + section {
    margin-top: 56px;
  }
}
@media screen and (max-width: 640px) {
  .numbers_wrap h3 i {
    display: block;
  }
}

.numbers_wrap h4 span {
  margin-right: 8px;
}
.numbers_wrap h4 i {
  color: #a0a8b0;
  font-weight: 400;
  font-style: normal;
  font-size: var(--fs-12);
  line-height: 1;
  letter-spacing: 0.05em;
}
.numbers_wrap h4::before {
  background: rgba(255, 255, 255, 0.2);
}

@media screen and (max-width: 960px) {
  .numbers_wrap h4 {
    position: relative;
  }
  .numbers_wrap h4 i {
    position: absolute;
    left: 13px;
    bottom: -1.2em;
  }
}

.number_box {
  margin-top: 24px;
}
.onwards_inner .number_box p {
  display: inline;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-88);
  line-height: 1;
  letter-spacing: 0.02em;
  margin-bottom: 0;
}
.number_box span {
  color: #a0a8b0;
  font-weight: 500;
  font-size: var(--fs-24);
  line-height: 1;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 960px) {
  .number_box {
    margin-top: 12px;
  }
  .number_box span {
    font-size: var(--fs-18);
  }
}

.numbers_wrap .txt_link_s {
  margin-top: 24px;
}
.numbers_wrap .txt_link_s a::after {
  background: rgba(0, 0, 0, 0.3) url(../img/common/txt_link_s_arrow_w.svg)
    no-repeat;
  background-size: 12px 10px;
  background-position: center center;
  border-radius: 16px;
  content: "";
  display: inline-block;
  height: 32px;
  margin-top: -16px;
  position: absolute;
  top: 50%;
  right: 0;
  transition: var(--trans-basis);
  width: 32px;
}

@media screen and (max-width: 960px) {
  .numbers_wrap .txt_link_s {
    margin-top: 12px;
  }
  .numbers_wrap .txt_link_s a::after {
    border-radius: 12px;
    height: 24px;
    margin-top: -12px;
    width: 24px;
  }
}

.numbers_wrap .flex_wrap.two {
  gap: 0 40px;
  margin-top: 48px;
}
.numbers_wrap .flex_wrap.two article {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc((100% - 40px) / 2);
}

@media screen and (max-width: 640px) {
  .numbers_wrap .flex_wrap.two {
    margin-bottom: 24px;
  }
  .numbers_wrap .flex_wrap.two {
    gap: 40px 0;
  }
  .numbers_wrap .flex_wrap.two article {
    width: 100%;
  }
}

.numbers_wrap .flex_wrap.two article figure {
  margin-right: 40px;
}
@media screen and (max-width: 960px) {
  .numbers_wrap .flex_wrap.two article figure {
    margin-right: 16px;
    width: 130px;
  }
  .numbers_wrap .flex_wrap.two article figure + div {
    width: calc(100% - 130px);
  }
}

.numbers_wrap .flex_wrap.two article h5 {
  font-weight: 500;
  font-size: var(--fs-13);
  line-height: 1;
  letter-spacing: 0.05em;
  padding-top: 0;
  padding-left: 0;
}
.numbers_wrap .flex_wrap.two article h5::before {
  display: none;
}
.numbers_wrap .flex_wrap.two article ul li {
  display: flex;
  align-items: flex-end;
  margin-top: 12px;
}
.numbers_wrap .flex_wrap.two article ul li i {
  color: #a0a8b0;
  font-style: normal;
  font-weight: 400;
  font-size: var(--fs-13);
  line-height: 1;
  letter-spacing: 0.05em;
  margin-right: 16px;
  padding-left: 11px;
  padding-bottom: 0.4em;
  position: relative;
  width: 4em;
  white-space: nowrap;
}
.numbers_wrap .flex_wrap.two article ul li i::before {
  content: "";
  display: block;
  height: 5px;
  margin-top: -4.5px;
  position: absolute;
  top: 50%;
  left: 0;
  width: 5px;
}
.numbers_wrap .first_box ul li:nth-of-type(1) i::before {
  background: url("../img/common/icon_circle_r.svg") no-repeat;
  background-size: 5px 5px;
  background-position: left center;
}
.numbers_wrap .first_box ul li:nth-of-type(2) i::before {
  background: url("../img/common/icon_circle_y.svg") no-repeat;
  background-size: 5px 5px;
  background-position: left center;
}
.numbers_wrap .first_box ul li:nth-of-type(3) i::before {
  background: url("../img/common/icon_circle_b.svg") no-repeat;
  background-size: 5px 5px;
  background-position: left center;
}
.numbers_wrap .second_box ul li:nth-of-type(1) i::before {
  background: url("../img/common/icon_circle_g.svg") no-repeat;
  background-size: 5px 5px;
  background-position: left center;
}
.numbers_wrap .second_box ul li:nth-of-type(2) i::before {
  background: url("../img/common/icon_circle_o.svg") no-repeat;
  background-size: 5px 5px;
  background-position: left center;
}
.numbers_wrap .second_box ul li:nth-of-type(3) i::before {
  background: url("../img/common/icon_circle_p.svg") no-repeat;
  background-size: 5px 5px;
  background-position: left center;
}

.onwards_inner .numbers_wrap .flex_wrap.two article ul li p {
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-40);
  line-height: 1;
  letter-spacing: 0.02em;
  margin-bottom: 0;
}
.numbers_wrap .flex_wrap.two article ul li span {
  color: #a0a8b0;
  font-weight: 500;
  font-size: var(--fs-13);
  line-height: 1;
  letter-spacing: 0.05em;
  padding-bottom: 0.4em;
}

/* 第二階層
----------------------------------------------------------------------------------------------------*/
.page_interview .onwards_inner {
  padding-top: 98px;
}

@media screen and (max-width: 767px) {
  .page_interview .onwards_inner {
    padding-top: 50px;
  }
}

/* 第二階層（学生インタビュー）
----------------------------------------------------------------------------------------------------*/
.page_interview h3 {
  background: transparent;
  border-radius: 0;
  padding: 0;
  margin-bottom: 32px;
}
.page_interview h3::before {
  display: none;
}
.page_interview h3 span {
  color: var(--key-color);
  font-family: "futura-pt", sans-serif;
  font-weight: 300;
  font-size: var(--fs-72);
  line-height: 1;
  letter-spacing: 0;
}

.page_interview #interview_slide {
  display: flex;
  gap: 64px 31px;
  flex-wrap: wrap;
}
.page_interview #interview_slide > a {
  border-radius: 8px 8px 0 0;
  display: block;
  transition: var(--trans-basis);
  width: calc((100% - 62px) / 3);
}
.page_interview #interview_slide > a:hover figure img {
  transform: scale(1.1);
}

.page_interview .pager_wrap {
  margin-top: 0;
  margin-bottom: 112px;
}

@media screen and (max-width: 880px) {
  .page_interview h3 {
    margin-bottom: 24px;
  }
  .page_interview #interview_slide > a {
    width: calc((100% - 31px) / 2);
  }
  .page_interview .pager_wrap {
    margin-top: 64px;
  }
  .page_interview #interview_slide {
    gap: 40px 15px;
  }
  .page_interview #interview_slide > a {
    width: calc((100% - 15px) / 2);
  }
  .page_interview #interview_slide figure span {
    border-radius: 0 6px 0 0;
    font-size: 12px;
    line-height: 1.3;
    max-width: 67%;
  }
  .page_interview #interview_slide figure span[class^="tag_symbol"] {
    padding: 4px 8px 4px 23px;
  }
  .page_interview #interview_slide figure span[class^="tag_symbol"] {
    background-size: 13px 13px;
    background-position: 4px 50%;
  }
  .page_interview #interview_slide h3 {
    font-size: 15px;
    margin-top: 16px;
    margin-bottom: 0;
    padding: 0;
  }
  .page_interview #interview_slide .interview_person {
    display: block;
    margin-top: 16px;
  }
  .onwards_inner .page_interview #interview_slide .interview_person p {
    padding-left: 0;
    margin-bottom: 0;
  }
  .page_interview #interview_slide .interview_person span {
    display: block;
    margin-left: 0;
    margin-top: 2px;
    padding: 0;
  }
  .page_interview #interview_slide .interview_person span::before {
    display: none;
  }
}

/* 第三階層（学生インタビュー詳細）
----------------------------------------------------------------------------------------------------*/
#t_page.page_interviewitem .ttl_box h2 {
  margin-top: 32px;
}
#t_page.page_interviewitem .ttl_box p {
  margin-top: 24px;
}
#t_page.page_interviewitem .onwards_inner {
  padding-top: 100px;
}

.interview_item section {
  margin-left: auto;
  margin-right: auto;
  max-width: 898px;
}

.interview_item h3 {
  border-radius: 32px 4px 4px 4px;
  display: flex;
  align-items: center;
  font-weight: 500;
  font-size: var(--fs-20);
  line-height: 1;
  letter-spacing: 0.05em;
  padding: 12px 24px;
}
.interview_item h3::before {
  display: none;
}
.interview_item h3 span {
  color: #2aad70;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-40);
  line-height: 1;
  letter-spacing: 0.01em;
  margin-right: 24px;
}

.onwards_inner .interview_item p {
  font-weight: 400;
  font-size: var(--fs-15);
  line-height: 2;
  letter-spacing: 0.05em;
  margin-bottom: 0;
}

.interview_item > figure {
  border-radius: 32px;
  margin-top: 80px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 100px;
  max-width: 1040px;
}

/* 受験生へのメッセージ */
.student_wrap {
  border: 1px solid #d0d6dc;
  border-radius: 8px;
  display: flex;
  align-items: center;
  margin-top: 110px;
  margin-left: auto;
  margin-right: auto;
  max-width: 898px;
  padding: 66px 48px 75px;
  position: relative;
}

.student_wrap h4 {
  font-weight: 500;
  font-size: var(--fs-20);
  height: 20px;
  line-height: 1;
  letter-spacing: 0.05em;
  padding: 0;
  position: absolute;
  top: -10px;
  left: 40px;
}
.student_wrap h4::before,
.student_wrap h4::after {
  display: none;
}
.student_wrap h4 span {
  background: #fff;
  padding-left: 8px;
  padding-right: 8px;
}

.student_wrap figure {
  margin-right: 48px;
  width: 200px;
}
.student_wrap article {
  width: calc(100% - (200px + 48px));
}
.student_wrap article > span {
  color: #2aad70;
  display: block;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-15);
  line-height: 1;
  letter-spacing: 0.02em;
  margin-bottom: 16px;
}
.interview_item .txt_link_m.txt_ja {
  padding-top: 99px;
  padding-bottom: 121px;
  text-align: center;
}
.interview_item .txt_link_m.txt_ja a {
  line-height: 1;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 880px) {
  .student_wrap {
    display: block;
  }
  .student_wrap figure {
    margin-left: auto;
    margin-right: auto;
    max-width: 200px;
    width: 100%;
  }
  .student_wrap article {
    margin-top: 24px;
    width: 100%;
  }
}

/* 第二階層（寄付について）
----------------------------------------------------------------------------------------------------*/
.page_donation .onwards_inner {
  padding-top: 105px;
}
.donations_wrap {
  padding-left: 40px;
  padding-right: 40px;
}
.donations_slide .donations_inner {
  background: #f1f4f8;
  border-radius: 32px;
  display: flex;
  justify-content: space-between;
  height: 722px;
  padding-left: 10.2941176471%; /*140/1360*/
  padding-right: 8.45588235294%;
}
.donations_slide .donations_inner > section:nth-of-type(1) {
  padding-top: 150px;
  padding-bottom: 151px;
  width: 524px;
}

@media screen and (max-width: 880px) {
  .donations_wrap {
    padding-left: 20px;
    padding-right: 20px;
  }
  .donations_slide .donations_inner {
    display: block;
    padding-left: 0;
    padding-right: 0;
    height: auto;
  }
  .donations_slide .donations_inner > section:nth-of-type(1) {
    padding-top: 48px;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 32px;
    width: 100%;
  }
}

/* 寄付ページの縦スライダー */
.donations_slide .donations_inner > section:nth-of-type(2) {
  overflow: hidden;
  height: 100%;
  width: 39.6380090498%; /*438/1105*/
}
#donations_slide .swiper-wrapper {
  aspect-ratio: 146 / 97;
  max-height: 291px; /*firefox対策*/
  /* common.jsにてdelay: 1にする */
  -webkit-transition-timing-function: linear !important;
  -o-transition-timing-function: linear !important;
  transition-timing-function: linear !important;
  width: 100%;
}
#donations_slide .swiper-slide {
  height: auto;
  position: relative; /*firefox対策*/
  padding-top: 66.4383%; /*firefox対策*/
}
#donations_slide .swiper-slide img {
  border-radius: 8px;
  height: 100%; /*firefox対策*/
  object-fit: cover; /*firefox対策*/
  object-position: center center; /*firefox対策*/
  position: absolute; /*firefox対策*/
  top: 0; /*firefox対策*/
  left: 0; /*firefox対策*/
}

@media screen and (max-width: 880px) {
  .donations_slide .donations_inner > section:nth-of-type(2) {
    height: 100%;
    width: auto;
  }
  #donations_slide .swiper-wrapper {
    aspect-ratio: 125 / 83;
    margin-bottom: 48px;
    max-height: 558px;
  }
}

.donations_inner > span,
.donations_inner section > span {
  color: #2aad70;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-15);
  line-height: 1;
  letter-spacing: 0.02em;
}
.donations_inner h2 {
  font-family: "Noto Sans JP", serif;
  font-weight: 500;
  font-size: var(--fs-40);
  line-height: 1.7;
  letter-spacing: 0.1em;
  margin-bottom: 40px;
}
.donations_inner h2::before,
.donations_inner h2::after {
  display: none;
}
.donations_inner h2 span {
  display: block;
}
.donations_inner > p {
  font-weight: 400;
  font-size: var(--fs-15);
  line-height: 2;
  letter-spacing: 0.05em;
}
.donations_wrap .donations_inner p.com {
  color: #a0a8b0;
  font-weight: 400;
  font-size: var(--fs-12);
  line-height: 2;
  letter-spacing: 0.05em;
}

@media screen and (max-width: 880px) {
  main .donations_inner h2 {
    margin-bottom: 16px;
    padding-top: 16px;
  }
}

.txt_link_dark a {
  background: #2a3c41 url("../img/common/txt_link_dark_window.svg") no-repeat;
  background-size: 22px 22px;
  background-position: center right 48px;
  border-radius: 43px;
  color: #fff;
  display: inline-block;
  font-weight: 500;
  font-size: var(--fs-16);
  line-height: 1;
  letter-spacing: 0.05em;
  margin-top: 16px;
  margin-bottom: 16px;
  max-width: 292px;
  padding: 35px 76px 35px 48px;
}

@media screen and (max-width: 880px) {
  .txt_link_dark a {
    margin-top: 12px;
    margin-bottom: 12px;
    max-width: 320px;
    padding: 28px 88px 28px 66px;
  }
}

.onwards_box {
  display: flex;
  flex-wrap: wrap;
}
.onwards_box article {
  width: 50%;
}
.onwards_box article section {
  padding: 40px 32px;
  position: relative;
}
.onwards_box article:first-of-type section::before {
  border-bottom: 1px dashed #d0d6dc;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 0;
  width: calc(100% - 16px);
}
.onwards_box article:first-of-type section::after {
  border-right: 1px dashed #d0d6dc;
  content: "";
  display: block;
  height: calc(100% - 16px);
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
}
.onwards_box article:last-of-type section::before {
  border-top: 1px dashed #d0d6dc;
  content: "";
  display: block;
  height: 1px;
  position: absolute;
  top: 0;
  left: 16px;
  width: calc(100% - 16px);
}
.onwards_box article:nth-of-type(3) section::after {
  border-right: 1px dashed #d0d6dc;
  content: "";
  display: block;
  height: calc(100% - 16px);
  position: absolute;
  top: 16px;
  right: 0;
  width: 1px;
}
.onwards_box section span {
  color: #2aad70;
  display: block;
  font-family: "futura-pt", sans-serif;
  font-weight: 400;
  font-size: var(--fs-15);
  line-height: 1;
  letter-spacing: 0.02em;
  margin-bottom: 24px;
}
.onwards_box section h3 {
  background: none;
  font-weight: 500;
  font-size: var(--fs-22);
  line-height: 1;
  letter-spacing: 0.05em;
  margin-bottom: 16px;
  padding: 0;
}
.onwards_box section h3::before {
  display: none;
}

@media screen and (max-width: 880px) {
  .onwards_box {
    display: block;
  }
  .onwards_box article {
    width: 100%;
  }
  .onwards_box article section {
    padding: 24px 0;
  }
  .onwards_box article:first-of-type section {
    padding-top: 0;
  }
  .onwards_box article:not(:last-of-type) section {
    border-bottom: 1px dashed #d0d6dc;
  }
  .onwards_box article section p {
    margin-bottom: 0;
  }
  .onwards_box article:first-of-type section::before,
  .onwards_box article:first-of-type section::after,
  .onwards_box article:last-of-type section::before,
  .onwards_box article:nth-of-type(3) section::after {
    display: none;
  }
}

.purpose_wrap {
  padding-bottom: 120px;
}

.donations_wrap.bg_dark .donations_inner {
  background: none;
  border-radius: 0;
  color: #fff;
  padding-top: 120px;
  padding-left: 8.45588235294%; /*115/1360*/
  padding-right: 8.45588235294%; /*115/1360*/
  padding-bottom: 120px;
}
.donations_wrap.bg_dark .donations_inner h2 {
  color: #fff;
  margin-bottom: 56px;
}
.donations_wrap .donations_inner p {
  font-weight: 400;
  font-size: var(--fs-15);
  line-height: 2;
  letter-spacing: 0.05em;
}

.donations_wrap.bg_dark .txt_link_dark a {
  background: rgba(0, 0, 0, 0.5) url("../img/common/txt_link_dark_window.svg")
    no-repeat;
  background-size: 22px 22px;
  background-position: center right 48px;
}

@media screen and (max-width: 880px) {
  .donations_wrap.bg_dark .donations_inner {
    padding-left: 0;
    padding-right: 0;
  }
  .donations_wrap.bg_dark .donations_inner h2 {
    color: #fff;
    margin-bottom: 32px;
  }
}

.donations_wrap.bg_dark .flex_wrap {
  gap: 0;
}
.donations_wrap.bg_dark .flex_wrap section {
  position: relative;
  width: 50%;
}
.donations_wrap.bg_dark .flex_wrap section:nth-of-type(1) {
  padding-right: 40px;
}
.donations_wrap.bg_dark .flex_wrap section:nth-of-type(2) {
  padding-left: 40px;
}
.donations_wrap.bg_dark .flex_wrap section:nth-of-type(2)::before {
  border-left: 1px dashed rgba(255, 255, 255, 0.2);
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
}

@media screen and (max-width: 880px) {
  .donations_wrap.bg_dark .flex_wrap {
    display: block;
  }
  .donations_wrap.bg_dark .flex_wrap section {
    width: 100%;
  }
  .donations_wrap.bg_dark .flex_wrap section:nth-of-type(1) {
    padding-right: 0;
  }
  .donations_wrap.bg_dark .flex_wrap section:nth-of-type(2) {
    margin-top: 32px;
    padding-top: 32px;
    padding-left: 0;
  }
  .donations_wrap.bg_dark .flex_wrap section:nth-of-type(2)::before {
    border-left: none;
    border-top: 1px dashed rgba(255, 255, 255, 0.2);
    height: 1px;
    left: auto;
    width: 100%;
  }
}

.donations_wrap.bg_dark .txt_link_s_window {
  margin-top: 32px;
}
.donations_wrap.bg_dark .txt_link_s_window a {
  color: #fff;
}
.donations_wrap.bg_dark .txt_link_s_window a::after {
  background: rgba(0, 0, 0, 0.3) url(../img/common/txt_link_s_window_w.svg)
    no-repeat;
  background-size: 10px 8px;
  background-position: center center;
}

.about_donations {
  padding-bottom: 120px;
}
.about_donations .onwards_inner p {
  margin-bottom: 0;
}
.about_donations .onwards_inner p + h3 {
  margin-top: 40px;
}
.about_donations .onwards_inner .txt_link_s_window {
  margin-top: 16px;
}

.donations_bnr img {
  border: 1px solid #d0d6dc;
  margin-top: 40px;
  max-width: 553px;
}
