@charset "UTF-8";
@-ms-viewport {
  width: auto;
  initial-scale: 1; }
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  /* background-color: inherit; */
  font-size: inherit;
  line-height: inherit;
  margin: 0;
  padding: 0; }

*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

html {
  font-size: 62.5%;
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%; }

body {
  position: relative;
  height: 100%;
  overflow: auto;
  min-width: 320px;
  line-height: 1.8;
  font-size: 1.4rem;
  overflow-x: hidden;
  font-family: "游ゴシック", YuGothic, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-weight: 500;
  color: #333;
  margin: 0; }

body.no_scroll {
  overflow: hidden;
  height: 100%; }

@media all and (-ms-high-contrast: none) {
  body {
    font-family: "メイリオ",Meiryo,"游ゴシック",YuGothic,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",sans-serif;
    font-weight: 400; } }
body.en {
  font-family: 'Roboto','Helvetica Neue',Helvetica, Arial, Verdana, sans-serif; }

#wrapper {
  -webkit-overflow-scrolling: touch; }

a {
  text-decoration: none;
  color: #0d2538;
  outline: none; }

a:hover {
  color: #089b8c; }

sub {
  font-size: x-small; }

sup {
  vertical-align: super;
  font-size: x-small; }

em {
  font-style: italic; }

b, strong {
  font-weight: bold; }

hr {
  border: medium none;
  display: block;
  height: 1px;
  margin: 50px 0;
  width: 100%;
  background-color: #ccc; }

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom; }

.container {
  max-width: 1130px;
  padding-left: 15px;
  padding-right: 15px; }
  @media screen and (max-width: 575px) {
    .container {
      padding-left: 2vw;
      padding-right: 2vw; } }

.container-slim {
  max-width: 900px;
  padding-left: 15px;
  padding-right: 15px;
  margin-left: auto;
  margin-right: auto; }
  @media screen and (max-width: 575px) {
    .container-slim {
      padding-left: 2vw;
      padding-right: 2vw; } }

.container-large {
  max-width: 1400px;
  padding-left: 15px;
  padding-right: 15px;
  margin-left: auto;
  margin-right: auto; }
  @media screen and (max-width: 575px) {
    .container-large {
      padding-left: 2vw;
      padding-right: 2vw; } }

.flex {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between; }

@media screen and (max-width: 767px) {
  .pc-only {
    display: none !important; } }

.sp-only {
  display: none; }
  @media screen and (max-width: 767px) {
    .sp-only {
      display: inherit; } }

:root {
  --header-height: 130px; }
  @media screen and (max-width: 767px) {
    :root {
      --header-height: 60px; } }

/* =========================================================
#header
========================================================= */
#header {
  background-color: #fff;
  z-index: 999;
  width: 100%;
  top: 0;
  position: fixed;
  height: var(--header-height); }

#header.is-fixed {
  position: fixed; }

#header .header-inner {
  height: 70px;
  z-index: 999;
  -ms-flex: 0 1 auto;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-align-items: center;
  align-items: center; }
  @media screen and (max-width: 767px) {
    #header .header-inner {
      height: 60px;
      padding: 10px 10px 10px;
      -webkit-align-items: center;
      align-items: center; } }

/* .header-logo */
.header-logo {
  margin-right: auto;
  max-width: 380px;
  width: 100%;
  height: auto;
  position: relative;
  display: block;
  z-index: 99999;
  transition: all 0.3s ease; }
  @media screen and (max-width: 575px) {
    .header-logo {
      max-width: 260px; } }

.header-logo a {
  display: block; }

/* .header-navi */
#header-navi {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  transition: 0.3s ease; }
  @media screen and (max-width: 767px) {
    #header-navi {
      display: none; } }

#header-navi > li + li {
  margin: 0 0 0 0.5em; }

#header-navi li a, #header-navi li span {
  font-size: 1.2rem;
  line-height: 1.2;
  color: #fff;
  padding: 1em;
  background-color: #089b8c;
  display: inline-block; }

#header-navi li a:hover {
  opacity: 0.7; }

/* .header-lang */
#header-lang {
  margin-left: 20px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-end;
  justify-content: flex-end; }
  @media screen and (max-width: 767px) {
    #header-lang {
      display: none; } }
  #header-lang li a, #header-lang li span {
    background-color: #f2f2f2;
    padding: 0.5em 1em; }

body:lang(ja) #header-lang li.header-lang-jp a, body:lang(ja) #header-lang li.header-lang-jp span {
  background-color: #0d2538;
  color: #fff; }

body:lang(en) #header-lang li.header-lang-en a, body:lang(en) #header-lang li.header-lang-en span {
  background-color: #0d2538;
  color: #fff; }

#sp-lang {
  padding: 15px 0;
  background: #fff;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: center;
  justify-content: center; }
  #sp-lang li {
    width: 40%; }
    #sp-lang li a, #sp-lang li span {
      background-color: #f2f2f2;
      padding: 0.5em 1em;
      text-align: center;
      color: #333; }

body:lang(ja) #sp-lang li.header-lang-jp a, body:lang(ja) #sp-lang li.header-lang-jp span {
  background-color: #0d2538;
  color: #fff; }

body:lang(en) #sp-lang li.header-lang-en a, body:lang(en) #sp-lang li.header-lang-en span {
  background-color: #0d2538;
  color: #fff; }

/* #gnavii */
#gnavi {
  --gnavi-height: 60px;
  background-color: #0d2538; }
  #gnavi ul {
    position: relative;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
    -webkit-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-align-items: stretch;
    align-items: stretch;
    -webkit-justify-content: space-between;
    justify-content: space-between; }
    @media screen and (max-width: 767px) {
      #gnavi ul {
        overflow-y: auto;
        height: 100vh;
        display: none; } }
  #gnavi li {
    position: relative; }
  #gnavi > ul > li {
    text-align: center;
    flex-grow: 1; }
    @media screen and (max-width: 767px) {
      #gnavi > ul > li {
        text-align: left; } }
    #gnavi > ul > li > a {
      font-size: 16px;
      position: relative;
      display: block;
      height: var(--gnavi-height);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      color: #fff;
      padding: 0.2em; }
      #gnavi > ul > li > a:hover {
        background-color: #089b8c; }
  #gnavi li:last-child {
    margin-right: 0; }
  #gnavi li i {
    font-size: 16px;
    margin-left: 5px; }
  #gnavi .sub-menu {
    background-color: #F6F6F6;
    visibility: hidden;
    opacity: 0;
    z-index: 1;
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    width: max-content;
    min-width: 120%;
    -webkit-transition: all .2s ease;
    transition: all .2s ease; }
    #gnavi .sub-menu li {
      display: block;
      text-align: left;
      padding: 0;
      margin: 0; }
    #gnavi .sub-menu li:last-child {
      border-bottom: none; }
  #gnavi ul > li:hover {
    -webkit-transition: all .5s;
    transition: all .5s; }
  #gnavi li ul li:after {
    content: none; }
  #gnavi .sub-menu a {
    font-size: 14px;
    display: block;
    border-bottom: none;
    padding: 1em;
    line-height: 1.4em; }
    #gnavi .sub-menu a:hover:after {
      content: none; }
  #gnavi li:hover ul.sub-menu {
    top: 100%;
    visibility: visible;
    opacity: 1;
    z-index: 9999; }
  #gnavi li:hover ul.sub-menu li a {
    color: #111; }
  #gnavi .sub-menu li a:hover {
    background: #fff; }
  #gnavi .contact_btn a:hover {
    color: #fff; }

/*============================
#contents
============================*/
#contents {
  margin-top: var(--header-height); }

/*============================
#footer
============================*/
#footer {
  border-top: 1px solid #eee; }

#footer-top {
  padding-top: 20px;
  padding-bottom: 20px; }

#footer-logo {
  float: left;
  margin-right: 20px;
  width: 100%;
  max-width: 300px;
  margin-bottom: 10px; }
  @media screen and (max-width: 767px) {
    #footer-logo {
      margin-right: 0px; } }

#footer-logo a {
  display: block; }

#footer-navi {
  float: left; }

#footer-navi ul {
  display: inliblock; }

#footer-navi ul li {
  font-size: 1.2rem;
  line-height: 1.2;
  position: relative;
  padding-left: 0.5em;
  margin: 0.4em 0.8em 0.4em;
  display: inline-block; }

#footer-navi ul li::before {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  font-family: 'FontAwesome';
  content: "\f0da";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

#footer-bottom {
  background-color: #fff;
  border-top: 1px solid #e5e5e5; }

.footer-bottom-inner {
  padding-top: 20px;
  padding-bottom: 20px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start; }
  @media screen and (max-width: 575px) {
    .footer-bottom-inner {
      -webkit-flex-direction: column-reverse;
      flex-direction: column-reverse; } }

#footer-bottom .copy {
  font-size: 1.2rem;
  line-height: 1.2;
  margin-bottom: 0.5em; }
  @media screen and (max-width: 575px) {
    #footer-bottom .copy {
      text-align: center;
      width: 100%; } }

#footer-bottom .univLogo {
  margin: 0 0 0.5em auto; }
  @media screen and (max-width: 575px) {
    #footer-bottom .univLogo {
      margin: 0 auto 0.5em; } }

#footer-bottom .univLogo a {
  display: block;
  color: #fff;
  width: 158px;
  height: auto; }

/* =========================================================
共通unitBox
========================================================= */
.unitBox {
  background-color: #fff;
  border: 1px solid #e5e5e5; }

.unitBox a {
  transition: all 0.2s ease;
  display: block;
  color: #333;
  cursor: pointer;
  box-shadow: 0px 10px 10px -6px rgba(0, 0, 0, 0.3); }

.unitBox a:hover {
  box-shadow: 0px 20px 20px -10px rgba(0, 0, 0, 0.7);
  background-color: #0d2538;
  color: #fff; }

.unitBox a:hover .unitBox .unitBox-imgArea {
  background-color: #089b8c; }

.unitBox .unitBox-imgArea img {
  width: 100%;
  max-height: inherit; }

.unitBox a:hover .unitBox-imgArea img {
  opacity: 0.6; }

.unitBox .unitBox-txtArea {
  padding: 30px 20px 20px; }
  @media screen and (max-width: 767px) {
    .unitBox .unitBox-txtArea {
      padding: 20px 15px 15px; } }

.unitBox .unitBox-txtArea .unitBox-title {
  text-align: center;
  font-size: 1.8rem;
  line-height: 1.4;
  font-weight: bold;
  color: #0d2538;
  font-feature-settings: "palt"; }
  @media screen and (max-width: 767px) {
    .unitBox .unitBox-txtArea .unitBox-title {
      font-size: 1.6rem; } }

.unitBox .unitBox-txtArea .unitBox-title span {
  display: inline-block; }

.unitBox a:hover .unitBox-txtArea .unitBox-title {
  color: #fff; }

.unitBox .unitBox-txtArea p {
  line-height: 1.6;
  margin-bottom: 0 !important; }

.unitBox a {
  text-decoration: none !important;
  color: inheart; }

.unitBox-title + p {
  margin-top: 0.5em; }

/* =========================================================
ニュースリスト（全記事）
========================================================= */
.newsList {
  position: relative;
  z-index: 2; }

.newsList li {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  padding-top: 1em;
  padding-bottom: 1em; }
  @media screen and (max-width: 767px) {
    .newsList li {
      -webkit-flex-wrap: wrap;
      flex-wrap: wrap; } }

body.top .newsList li {
  color: #fff; }

.newsList li + li {
  border-top: 1px dotted #ccc; }

body.top .newsList li + li {
  border-top: 1px dotted #525252; }

.newsList li .date {
  width: 9em;
  white-space: nowrap;
  padding-right: 1em;
  line-height: 1.4;
  font-size: 1.4rem;
  margin-bottom: 0.2em; }
  @media screen and (max-width: 767px) {
    .newsList li .date {
      width: 100%; } }

.newsList li .txt {
  line-height: 1.4;
  width: calc(100% - 9em); }
  @media screen and (max-width: 767px) {
    .newsList li .txt {
      width: 100%; } }

.newsList li .txt p {
  line-height: 1.4; }

.newsList li .txt a {
  line-height: 1.4; }

body.top .newsList li .txt a {
  color: #fff; }

/* =========================================================
共通バナーエリア
========================================================= */
.bnrArea-list {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin-left: -10px !important;
  margin-right: -10px !important; }
  @media screen and (max-width: 575px) {
    .bnrArea-list {
      margin-left: -5px;
      margin-right: -5px; } }

.bnrArea-list li {
  text-align: center;
  padding-left: 10px !important;
  padding-right: 10px !important;
  margin-bottom: 10px;
  margin-top: 10px;
  width: 25%; }
  @media screen and (max-width: 767px) {
    .bnrArea-list li {
      width: 50%;
      padding-left: 5px;
      padding-right: 5px;
      margin-bottom: 5px;
      margin-top: 5px; } }

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

.bnrArea-list a {
  display: block; }

.bnrArea-list a:hover img {
  opacity: 0.7; }

/* =========================================================
.pagetop
========================================================= */
.pagetop {
  width: 3em;
  height: 3em;
  background-color: #0d2538;
  bottom: 10px;
  display: inline-block;
  position: fixed;
  right: 10px;
  transform: translate3d(0px, 50px, 0px);
  transition-duration: 0.3s;
  visibility: hidden;
  z-index: 999;
  padding: 1em;
  box-shadow: rgba(255, 255, 255, 0.6) 0px 0px 0px 1px inset;
  line-height: 1;
  border-radius: 1.5em;
  color: #fff !important; }
  .pagetop i {
    text-align: center;
    width: 1em !important; }
  .pagetop:hover {
    background-color: #089b8c;
    transition-duration: 0.3s;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); }
  .pagetop.backtotop-visible {
    transform: translate3d(0px, 0px, 0px);
    transition-duration: 0.3s;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1);
    visibility: visible; }
  .pagetop.backtotop-visible:hover {
    background-color: #089b8c;
    transition-duration: 0.3s;
    transition-property: all;
    transition-timing-function: cubic-bezier(0.7, 1, 0.7, 1); }

/* =========================================================
.ボタン
========================================================= */
.btn-main, .btn-line-w {
  line-height: 1.2;
  position: relative;
  cursor: pointer;
  font-family: 'Roboto', sans-serif;
  padding: 1.1em 2em 1em 1.5em;
  transition: 0.3s ease;
  min-width: 150px;
  display: inline-block;
  text-align: center;
  text-decoration: none !important; }

.btn-line-w {
  -moz-box-shadow: 0px 0px 0px 1px #fff inset;
  -webkit-box-shadow: 0px 0px 0px 1px #fff inset;
  box-shadow: 0px 0px 0px 1px #fff inset;
  color: #fff !important; }

.btn-main {
  background-color: #0d2538;
  color: #fff !important; }

.btn-main:hover {
  background-color: #089b8c;
  color: #fff !important; }

.btn-line-w:hover {
  background-color: #fff;
  color: #4C4C4C !important; }

.btn-main::after, .btn-line-w::after {
  transition: 0.1s ease;
  display: block;
  font-weight: bold;
  content: "\f054";
  font-family: 'FontAwesome';
  color: inherit !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: absolute;
  top: 50%;
  right: 10px;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%); }

.btn-main:hover::after, .btn-line-w:hover::after {
  right: 6px; }

/* =========================================================
.エフェクト
========================================================= */
.inview-fadeIn, .inview-fadeInUp {
  opacity: 0; }

.inview-fadeIn.animated, .inview-fadeInUp.animated {
  -webkit-animation-duration: 1s !important;
  animation-duration: 1s !important; }

.curtainEffect {
  position: relative; }

.curtainEffect:after, .curtainEffect:before {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  transition-property: width;
  transition-duration: .75s;
  transition-timing-function: cubic-bezier(0.86, 0, 0.07, 1); }

.curtainEffect:before {
  background-color: #0d2538;
  z-index: 4;
  transition-delay: 0.85s; }

.curtainEffect:after {
  background-color: #fff;
  z-index: 5;
  transition-delay: .15s; }

.curtainEffect-start:after, .curtainEffect-start:before {
  width: 0; }

.text-effect .word .char {
  display: inline-block;
  -webkit-animation-delay: calc(0.25s + var(--char-index) * 0.1s);
  animation-delay: calc(0.25s + var(--char-index) * 0.1s);
  transition: all 0.25s calc(0.25s + var(--char-index) * 0.1s); }

.text-effect .word .char {
  -webkit-transform: scale(0);
  transform: scale(0); }

@keyframes fadeIn {
  0% {
    opacity: 0; }
  to {
    opacity: 1; } }
.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn; }

@keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, 30%, 0);
    transform: translate3d(0, 30%, 0); }
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0); } }
.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp; }

.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both; }
  .animated.infinite {
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite; }
  .animated.delay-1s {
    -webkit-animation-delay: 1s;
    animation-delay: 1s; }
  .animated.delay-2s {
    -webkit-animation-delay: 2s;
    animation-delay: 2s; }
  .animated.delay-3s {
    -webkit-animation-delay: 3s;
    animation-delay: 3s; }
  .animated.delay-4s {
    -webkit-animation-delay: 4s;
    animation-delay: 4s; }
  .animated.delay-5s {
    -webkit-animation-delay: 5s;
    animation-delay: 5s; }
  .animated.fast {
    -webkit-animation-duration: .8s;
    animation-duration: .8s; }
  .animated.faster {
    -webkit-animation-duration: .5s;
    animation-duration: .5s; }
  .animated.slow {
    -webkit-animation-duration: 2s;
    animation-duration: 2s; }
  .animated.slower {
    -webkit-animation-duration: 3s;
    animation-duration: 3s; }

@media (prefers-reduced-motion: reduce), (print) {
  .animated {
    -webkit-animation-duration: 1ms !important;
    animation-duration: 1ms !important;
    -webkit-transition-duration: 1ms !important;
    transition-duration: 1ms !important;
    -webkit-animation-iteration-count: 1 !important;
    animation-iteration-count: 1 !important; } }
/*============================
#loader
============================*/
#loading {
  background-color: #fff;
  position: fixed;
  top: 0%;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
  transition: ease .5s; }

#loading.is-hidden {
  opacity: 0;
  left: 100%; }

#loading span {
  font-family: sans-serif;
  display: block;
  text-align: center;
  width: 100%;
  height: 90px;
  position: absolute;
  top: calc( 50% - 45px );
  left: 0; }

#loading span img {
  width: 90px;
  height: 90px; }

/* ローディング画面の下端にプログレスバーを表示 */
#loading #bar {
  position: absolute;
  display: block;
  height: 6px;
  width: 0%;
  bottom: 0;
  left: 0;
  background-color: #008cff;
  transition: ease .2s; }

#loading #bar.hide {
  opacity: 0; }

/* =========================================================
大学側で書いたと見られるCSS
========================================================= */
.pdf_flex_box {
  display: grid;
  margin-block-start: 20px;
  margin-block-end: 20px;
  gap: clamp(15px, 3vw, 30px);
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  @media screen and (max-width: 575px) {
    .pdf_flex_box {
      grid-template-columns: 1fr 1fr; } }
  .pdf_flex_box .pdf_flex_item {
    display: flex;
    flex-direction: column;
    gap: 5px;
    align-items: center; }
    .pdf_flex_box .pdf_flex_item a {
      width: 100%;
      display: block; }
      .pdf_flex_box .pdf_flex_item a img {
        width: 100%;
        max-width: inherit; }
