@charset "UTF-8";
/* --------------------------------

  reset

-------------------------------- */
html, body,
h1, h2, h3, h4, h5, h6,
a, p, span,
em, small, strong,
sub, sup,
mark, del, ins, strike,
abbr, dfn,
blockquote, q, cite,
code, pre,
ol, ul, li, dl, dt, dd,
div, section, article,
main, aside, nav,
header, hgroup, footer,
img, figure, figcaption,
address, time,
audio, video,
canvas, iframe,
details, summary,
fieldset, form, label, legend,
table, caption,
tbody, tfoot, thead,
tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: normal;
  font-style: normal;
}

article, aside, footer, header, nav, section, main, figure, figcaption {
  display: block;
}

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

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

img {
  height: auto;
  border: none;
  vertical-align: top;
}

a {
  color: #006935;
  border: none;
  text-decoration: none;
}

a:hover {
  color: #6cbb5a;
  text-decoration: underline;
}

table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

th, td {
  padding: 0;
  vertical-align: middle;
}

th {
  text-align: left;
}

li {
  list-style: none;
}

b, strong {
  font-weight: bold;
}

img, iframe, object {
  max-width: 100%;
}

.font-feature-settings {
  -webkit-font-feature-settings: "palt" 1;
          font-feature-settings: "palt" 1;
}

.fs-lg {
  font-size: 1.1em;
}

.fs-sm {
  font-size: .85em;
}

.text-indent {
  margin-left: 1em;
  text-indent: -1em;
}

.flex-1 {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.w-100 {
  width: 100%;
}

/* --------------------------------

  共通スタイル

-------------------------------- */
/* 共通見出し */
.heading.h2 {
  margin: 3em -20px 1em;
  padding: .3em 20px .1em;
  font-size: 1.3em;
  font-weight: 800;
  color: #465f4b;
  background-color: #f9f0f7;
}

.heading.h3 {
  margin: 2em -20px 1em;
  padding: 0 20px .3em;
  font-size: 1.2em;
  font-weight: 800;
  color: #465f4b;
  border-bottom: 1px solid #006b30;
}

/* 共通リスト */
.main ul > li {
  margin-left: 2em;
  text-indent: -1em;
  list-style-type: none;
}

.main ul > li:before {
  content: "●";
  display: inline-block;
  vertical-align: middle;
  margin: 0 .5em;
}

.main ol > li {
  margin-left: 2em;
  list-style-type: decimal;
}

ul.list-style-none > li {
  margin-left: 0;
  text-indent: 0;
  list-style-type: none;
}

ul.list-style-none > li:before {
  display: none;
}

ul.list-style-note > li {
  margin-left: 1em;
  text-indent: 0;
}

ul.list-style-note > li:before {
  content: "※";
  display: block;
  float: left;
  margin: 0 0 0 -1em;
}

ol.list-style-none > li {
  margin-left: 0;
  list-style-type: none;
}

/* 本文テキストエリア */
.description {
  line-height: 1.8;
}

@media screen and (min-width: 640px), print {
  .description {
    font-size: 1.1em;
  }
}

/* 注釈（※）用インデント */
.note {
  margin-left: 1em;
  text-indent: -1em;
}

/* 共通リンクボタン */
.more {
  margin-top: 2em;
  text-align: center;
}

.link-button {
  display: inline-block;
  padding: .7em 1.5em;
  color: #fff;
  font-size: 1.1em;
  text-align: center;
  background-color: #006935;
  border-radius: 10em;
  -webkit-transition: .2s;
  transition: .2s;
  margin: 1em 0;
}

@media screen and (min-width: 640px), print {
  .link-button {
    font-size: 1.3em;
  }
}

.link-button:hover {
  color: #fff;
  text-decoration: none;
  background-color: #6cbb5a;
}

/* コンテンツ画面中央寄せ */
.inner {
  position: relative;
  max-width: 1100px;
  margin-right: auto;
  margin-left: auto;
}

.inner:after {
  content: "";
  display: table;
  clear: both;
}

/* 画像 */
.fig-img {
  margin-top: 2em;
}

.fig-center {
  margin-top: 2em;
  text-align: center;
}

.fig-caption {
  margin-top: .75rem;
  line-height: 1.4;
  font-size: 1.1rem;
}

@media screen and (min-width: 768px), print {
  .fig-caption {
    font-size: 1.2rem;
  }
}

.fig-credit {
  margin-top: .75rem;
  line-height: 1.4;
  font-size: 1.1rem;
  text-align: left;
}

@media screen and (min-width: 768px), print {
  .fig-credit {
    font-size: 1.2rem;
  }
}

/* アンカー位置調整 */
.anchor-point:before {
  content: "";
  display: block;
  position: relative;
  width: 100%;
  height: 1px;
  margin-top: -80px;
  padding-top: 80px;
  z-index: -1;
}

@media screen and (min-width: 1100px), print {
  .anchor-point:before {
    margin-top: -150px;
    padding-top: 150px;
  }
}

/* --------------------------------

  utility

-------------------------------- */
/* clearfix */
.clearfix:after {
  content: "";
  display: table;
  clear: both;
}

/* visual */
.block {
  display: block;
}

.inline {
  display: inline;
}

.table {
  display: table;
}

.tcell {
  display: table-cell;
}

.dn {
  display: none;
}

.vh {
  visibility: hidden;
}

/* clear */
.cb {
  clear: both;
}

.cl {
  clear: left;
}

.cr {
  clear: right;
}

/* float */
.fl {
  float: left;
}

.fr {
  float: right;
}

/* align */
.center {
  text-align: center;
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

.top {
  vertical-align: top;
}

.middle {
  vertical-align: middle;
}

.bottom {
  vertical-align: bottom;
}

/* font */
.f80 {
  font-size: .8em;
}

.f90 {
  font-size: .9em;
}

.f120 {
  font-size: 1.2em;
}

.f130 {
  font-size: 1.3em;
}

.f140 {
  font-size: 1.4em;
}

.f150 {
  font-size: 1.5em;
}

.normal {
  font-weight: normal;
}

.bold {
  font-weight: bold;
}

.indent {
  text-indent: 1em;
}

.strike {
  text-decoration: line-through;
}

.italic {
  font-style: italic;
}

.mincho {
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

/* color */
.red {
  color: #f00;
}

.red2 {
  color: #c00;
}

.blue {
  color: #09f;
}

.blue2 {
  color: #06f;
}

.orange {
  color: #f90;
}

.orange2 {
  color: #f60;
}

.yellow {
  color: #ff0;
}

.green {
  color: #096;
}

.black {
  color: #000;
}

/* margin */
.m1 {
  margin-bottom: 1em;
}

.m5 {
  margin-bottom: 5px;
}

.m10 {
  margin-bottom: 10px;
}

.m15 {
  margin-bottom: 15px;
}

.m20 {
  margin-bottom: 20px;
}

.m30 {
  margin-bottom: 30px;
}

/* --------------------------------

  Webフォント

-------------------------------- */
@font-face {
  font-family: 'icomoon';
  src: url("../fonts/icomoon.eot?rclnvf");
  src: url("../fonts/icomoon.eot?rclnvf#iefix") format("embedded-opentype"), url("../fonts/icomoon.ttf?rclnvf") format("truetype"), url("../fonts/icomoon.woff?rclnvf") format("woff"), url("../fonts/icomoon.svg?rclnvf#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-home:before {
  content: "\e906";
}

.icon-tel:before {
  content: "\e901";
}

.icon-arrowright:before {
  content: "\e905";
}

.icon-arrowtop:before {
  content: "\e902";
}

.icon-mail:before {
  content: "\e900";
}

/*
 * adobe-fonts/source-han-serif is licensed under the SIL Open Font License 1.1
 * http://scripts.sil.org/OFL
 */
@font-face {
  font-family: "SourceHanSerifJP";
  src: url("../fonts/SourceHanSerifJP-Regular.woff2") format("woff2"), url("../fonts/SourceHanSerifJP-Regular.woff") format("woff"), url("../fonts/SourceHanSerifJP-Regular.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
}

/* --------------------------------

  html, body

-------------------------------- */
html,
body {
  height: 100%;
}

html {
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -o-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

@media screen and (min-width: 1100px), print {
  html {
    overflow-y: scroll;
  }
}

body {
  min-width: 320px;
  color: #333;
  font-family: "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
  font-size: 1.4rem;
  line-height: 1.4;
  text-align: left;
  background: #fff;
}

/* --------------------------------

  wrapper

-------------------------------- */
.wrapper {
  position: relative;
  padding: 0 1em;
  overflow: hidden;
}

@media screen and (min-width: 1100px), print {
  .wrapper {
    max-width: 1100px;
    margin: auto;
    padding: 0;
  }
}

/* --------------------------------

  header

-------------------------------- */
.header {
  padding-top: 74px;
  padding-top: calc( 60px + 1em);
}

@media screen and (min-width: 993px), print {
  .header {
    padding: 2em 0;
  }
}

.header .inner {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 60px;
  text-align: center;
  background-color: #006b30;
  z-index: 1000;
}

@media screen and (min-width: 993px), print {
  .header .inner {
    position: relative;
    height: 130px;
    z-index: auto;
  }
}

.header-logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  height: 100%;
}

@media screen and (min-width: 993px), print {
  .header-logo {
    display: block;
    position: absolute;
    top: 15px;
    left: 20px;
    width: auto;
    height: auto;
  }
}

.header-logo a {
  display: block;
  width: 100%;
  max-width: 188px;
  margin: auto;
}

@media screen and (min-width: 993px), print {
  .header-logo a {
    max-width: 352.5px;
  }
}

.header-contact {
  display: none;
}

@media screen and (min-width: 993px), print {
  .header-contact {
    display: block;
    position: absolute;
    top: 50%;
    right: 220px;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
  }
}

.header-contact a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding: .75em;
  font-size: 1.1em;
  font-weight: 700;
  color: #006935;
  border-radius: .3em;
  background-color: #fff;
}

@media screen and (min-width: 993px), print {
  .header-contact a {
    padding: .5em 1em;
  }
}

.header-contact a:hover {
  color: #fff;
  text-decoration: none;
  background-color: #6cbb5a;
}

.header-contact .icon-mail {
  display: inline-block;
  vertical-align: middle;
  font-size: 28px;
  font-size: 2rem;
  margin-right: .5em;
}

.header-banner {
  display: none;
}

@media screen and (min-width: 993px), print {
  .header-banner {
    display: block;
    position: absolute;
    top: 0;
    right: 20px;
    bottom: 0;
    width: 152.85714px;
    height: 50px;
    margin: auto;
  }
}

/* --------------------------------

  nav

-------------------------------- */
.nav {
  display: none;
}

@media screen and (min-width: 993px), print {
  .nav {
    position: relative;
    display: block;
    float: left;
    width: 290px;
    z-index: 102;
  }
}

.nav-open .nav {
  display: block;
}

.nav .inner {
  padding-bottom: 1em;
}

@media screen and (min-width: 993px), print {
  .nav .inner {
    padding-bottom: 0;
  }
}

.nav-item:not(:last-child) {
  margin-bottom: .5em;
}

.nav-link {
  display: block;
  padding: .8em;
  border: 1px solid #006b30;
}

.nav-link:hover {
  text-decoration: none;
}

.nav-link:hover .nav-title {
  color: #6cbb5a;
}

.nav-link:hover .nav-caption {
  color: #6cbb5a;
}

.nav-link br {
  display: none;
}

@media screen and (min-width: 993px), print {
  .nav-link br {
    display: block;
  }
}

.nav-title {
  display: block;
  color: #465f4b;
  font-size: 1.1em;
  font-weight: 500;
}

.nav-caption {
  display: block;
  margin: .3em 0 0 .1em;
  color: #888;
  font-size: .9em;
  line-height: 1.3;
}

.nav-button {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 60px;
  height: 60px;
  cursor: pointer;
  outline: none;
  z-index: 910;
}

@media screen and (min-width: 993px), print {
  .nav-button {
    display: none;
  }
}

.nav-button-icon {
  display: block;
  position: absolute;
  top: -14px;
  right: 0;
  bottom: 0;
  left: 0;
  width: 30px;
  height: 2px;
  margin: auto;
  background-color: #fff;
}

.nav-button-icon:before, .nav-button-icon:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  margin: auto;
  background-color: #fff;
}

.nav-button-icon:before {
  margin-top: -8px;
}

.nav-button-icon:after {
  margin-top: 8px;
}

.nav-button:after {
  content: "MENU";
  display: block;
  position: absolute;
  bottom: 6px;
  left: 0;
  width: 100%;
  color: #fff;
  font-size: .7em;
  font-weight: 700;
  text-align: center;
}

/* --------------------------------

  main

-------------------------------- */
.main {
  display: block;
  position: relative;
  margin: 0 -1em;
  z-index: 100;
}

@media screen and (min-width: 993px), print {
  .main {
    float: right;
    width: 100%;
    margin: 0 0 0 -290px;
    padding-left: 320px;
  }
}

.main > .inner {
  padding: 0 20px;
  line-height: 1.8;
}

/* --------------------------------

  footer

-------------------------------- */
.footer {
  display: block;
  clear: both;
  position: relative;
  padding-top: 3em;
  background: #fff;
  z-index: 100;
}

.footer .inner {
  padding: 2em 0;
  border-top: 1px solid #006b30;
}

/* 所在地・連絡先 */
.footer-info {
  text-align: center;
}

@media screen and (min-width: 1100px), print {
  .footer-info {
    margin-bottom: 1em;
  }
}

.footer-info p {
  margin: .25em 0;
  font-size: .9em;
}

@media screen and (min-width: 640px), print {
  .footer-info p {
    font-size: 1em;
  }
}

@media screen and (min-width: 768px), print {
  .footer-info p {
    display: inline-block;
    vertical-align: top;
    margin: 0 .5em;
  }
}

/* ページトップ */
.pagetop {
  display: block;
  width: 50px;
  height: 50px;
  margin: 1em auto;
  color: #fff;
  text-align: center;
  border-radius: .3em;
  background-color: #888;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: .3s;
  transition: .3s;
}

@media screen and (min-width: 1100px), print {
  .pagetop {
    position: fixed;
    right: 10px;
    bottom: 10px;
    margin: 0;
    background-color: #006b30;
  }
}

.pagetop.fixed {
  opacity: 1;
  visibility: visible;
}

.pagetop:hover {
  color: #fff;
  text-decoration: none;
  background-color: #006935;
}

.pagetop .icon-arrowtop {
  display: block;
  line-height: 50px;
  font-size: 28px;
  font-size: 2rem;
}

/* コピーライト */
.copy {
  display: block;
  text-align: center;
  font-size: .95em;
}

/* --------------------------------

  トップページ

-------------------------------- */
/* メイン画像 */
.mainvisual {
  margin: 0 -1em;
  border-top: 1px solid #006b30;
}

@media screen and (min-width: 768px), print {
  .mainvisual {
    margin: 0;
  }
}

.mainvisual h2 {
  margin: 0;
  padding: .7em .5em .7em 0;
  font-size: 1.1em;
  line-height: 1.1;
  text-align: right;
  background: none;
}

@media screen and (min-width: 481px), print {
  .mainvisual h2 {
    font-size: 1.3em;
  }
}

@media screen and (min-width: 768px), print {
  .mainvisual h2 {
    font-size: 1.6em;
  }
}

.mainvisual h2 strong {
  font-size: 1.4em;
  font-weight: 800;
}

.mainvisual h2 span {
  display: block;
  font-size: .6em;
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  letter-spacing: 1.0pt;
}

.mainvisual a {
  display: block;
  -webkit-transition: opacity .3s;
  transition: opacity .3s;
}

.mainvisual a:hover {
  opacity: .8;
}

.mainvisual a img {
  width: 100%;
}

/* お知らせ一覧 */
.topics {
  margin-bottom: 3em;
}

.topics h2 {
  position: relative;
  margin-bottom: 1em;
  padding: .7em .5em .5em;
  color: #465f4b;
  font-size: 1.2em;
  font-weight: 700;
  border-bottom: 1px solid #006b30;
}

.topics-list {
  line-height: 1.5;
}

.topics-list li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.topics-list .date {
  width: 7em;
}

.topics-list .title {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

/* 学部の特徴 */
.features {
  text-align: center;
  margin-top: 3em;
}

.features-list > li {
  position: relative;
  color: #465f4b;
  font-size: 1.3em;
  line-height: 1.5;
}

.features-list > li:not(:last-child):before {
  content: "";
  display: block;
  position: absolute;
  right: 0;
  bottom: 1.1em;
  left: 0;
  width: 100%;
  height: 1px;
  margin: auto;
  background-color: #eee;
}

@media screen and (min-width: 768px), print {
  .features-list > li:not(:last-child):before {
    width: 85%;
  }
}

.features-list > li:not(:last-child):after {
  content: "★";
  display: block;
  position: relative;
  width: 1.5em;
  margin: .5em auto;
  color: #006b30;
  font-size: 1.5em;
  background-color: #fff;
}

.features-link {
  margin: .5em -.5em -.5em 0;
}

@media screen and (min-width: 768px), print {
  .features-link {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.features-link > li {
  padding: 0 .5em .5em 0;
}

.features a {
  display: block;
  width: 100%;
  padding: .5em 1em .5em;
  font-size: .7em;
  border: 1px dotted #006b30;
}

.features a:hover {
  color: #fff;
  text-decoration: none;
  border: 1px solid #6cbb5a;
  background-color: #6cbb5a;
}

/* facebook */
.facebook {
  height: 485px;
  margin-right: auto;
  margin-left: auto;
  margin-top: 2.5em;
  text-align: center;
}

@media screen and (min-width: 993px), print {
  .facebook {
    position: relative;
    float: left;
    clear: left;
    width: 290px;
    margin-top: 2em;
    z-index: 102;
  }
}

/*topページの2024年トピック*/
.topics2024 {
  border: 1px solid #6EB92C;
  border-radius: 5px;
  padding: 1em;
  margin: 20px 0;
}

.topics2024-title {
  font-size: 1.5em;
  font-weight: bolder;
  text-align: center;
  letter-spacing: 0.5em;
  margin: 0 -20px 1em;
  padding: .3em 20px .1em;
  color: #ffffff;
  background-color: #006b30;
}

.main .topics2024 ul li {
  margin: 0 1em 1em 2.4em;
  font-size: 1.2em;
}

.page-topics2024-intro p {
  margin-bottom: 1em;
}

.topics2024-paper-half {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: 2em -1rem -1rem 0;
}

.topics2024-paper-half-item {
  width: 50%;
  padding: 0 1.5rem 1.5rem 0;
}

.topics2024-paper-half img {
  width: 100%;
}

.topic-message {
  margin-bottom: 3.5em;
  padding: 2em;
  margin-top: .5em;
  border: 1px dotted #6ba066;
}

.topic-message h3 {
  margin-bottom: 1em;
  color: #006935;
  font-weight: bold;
  border-bottom: 3px dotted #006935;
}

.topic-message .message-name span {
  font-size: 1.2em;
}

.topic-message img {
  display: block;
  float: right;
  width: 200px;
  margin: 0 0 1em 1em;
}

/* --------------------------------

  下層ページ

-------------------------------- */
.page-intro {
  font-size: 1.1em;
}

.teacher-container {
  padding: 1em;
  border: 1px solid #000;
  background-color: #fff;
}

@media screen and (min-width: 768px), print {
  .teacher-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 2em;
  }
}

.teacher-container:not(:first-child) {
  margin-top: 2em;
}

.teacher-head {
  max-width: 30rem;
  margin: 1em auto 1.5em;
}

@media screen and (min-width: 768px), print {
  .teacher-head {
    max-width: none;
    width: 19rem;
    margin: 0 2em 0 0;
  }
}

.teacher-img {
  margin-bottom: 1em;
  text-align: center;
}

.teacher-title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-bottom: 1em;
  line-height: 1.2;
  font-size: 1em;
}

.teacher-name {
  margin-right: .35em;
  font-size: 1.4em;
}

@media screen and (min-width: 768px), print {
  .teacher-name {
    font-size: 1.6em;
  }
}

.teacher-profile {
  margin-top: 1.5em;
}

.teacher-profile dt {
  margin-bottom: .75em;
  padding: .85em 0;
  line-height: 1em;
  font-size: 1.1em;
  text-align: center;
  border-radius: 10em;
  background-color: #eee;
}

.teacher-profile dd {
  position: relative;
  margin-right: -1em;
  margin-left: .5em;
  padding-left: 1.25em;
}

.teacher-profile dd::before {
  content: "・";
  display: block;
  position: absolute;
  left: 0;
}

.teacher-subimg {
  margin-top: 1em;
}

@media screen and (min-width: 768px), print {
  .teacher-subimg {
    margin-top: 1.5em;
  }
}

.teacher-subtitle {
  margin-top: .25em;
  margin-bottom: .5em;
  line-height: 1.4;
  font-weight: 800;
  font-size: 1.4em;
}

.student-container {
  padding: 1em;
  border: 1px solid #000;
  background-color: #f7f4f4;
}

@media screen and (min-width: 768px), print {
  .student-container {
    padding: 2em;
  }
}

.student-container:not(:first-child) {
  margin-top: 2em;
}

.student-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  margin-bottom: 1em;
}

@media screen and (min-width: 768px), print {
  .student-head {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    margin-bottom: 2em;
  }
}

.student-main {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
  width: 100%;
  padding: 1em;
  line-height: 1.2;
  background-color: #dedada;
}

@media screen and (min-width: 768px), print {
  .student-main {
    width: auto;
    padding: 1.5em 1.5em 1.25em 2em;
  }
}

.student-title {
  margin-bottom: .5em;
  font-size: 1.1em;
  text-align: center;
}

@media screen and (min-width: 768px), print {
  .student-title {
    text-align: left;
  }
}

.student-name {
  font-size: 1.4em;
}

@media screen and (min-width: 768px), print {
  .student-name {
    font-size: 1.6em;
  }
}

.student-profile li {
  position: relative;
  padding-left: 1.3em;
}

.student-profile li::after {
  content: "●";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}

.student-profile li:not(:last-child) {
  margin-bottom: .3em;
}

.student-profile-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

@media screen and (min-width: 768px), print {
  .student-profile-wrap {
    display: block;
  }
}

@media screen and (min-width: 768px), print {
  .student-img {
    width: 23rem;
  }
}

.student-img img {
  width: 100%;
}

@media screen and (min-width: 768px), print {
  .student-img-lg {
    width: 32rem;
  }
}

.student-subimg {
  float: right;
  width: 40%;
  max-width: 120px;
  margin: .25em 0 .5em 1.25em;
}

@media screen and (min-width: 768px), print {
  .student-subimg {
    width: 120px;
  }
}

.student-subimg img {
  width: 100%;
}

.student-seminar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  margin-bottom: 1em;
}

@media screen and (min-width: 768px), print {
  .student-seminar {
    position: static;
    width: auto;
    margin-right: 1em;
  }
}

.student-seminar-has-wrap {
  position: relative;
  padding-top: calc( 5.6rem + 1em);
}

@media screen and (min-width: 768px), print {
  .student-seminar-has-wrap {
    position: static;
    padding-top: 0;
  }
}

.student-seminar-name {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
  font-size: 1.3em;
  color: #776a6a;
}

@media screen and (min-width: 768px), print {
  .student-seminar-name {
    font-size: 1.4em;
  }
}

.student-seminar-name::before {
  content: "★";
}

.student-seminar-sdgs {
  margin-left: auto;
}

.category-icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  float: left;
  margin: 0 1.5rem 1rem 0;
}

@media screen and (min-width: 768px), print {
  .category-icon {
    margin: 0 1.5em 1em 0;
  }
}

.category-icon-class {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 7rem;
  height: 7rem;
  line-height: 1.2;
  font-weight: 700;
  font-size: 1.1rem;
  text-align: center;
  border-radius: 100%;
  background-color: #f9d2d8;
}

@media screen and (min-width: 768px), print {
  .category-icon-class {
    width: 7.6rem;
    height: 7.6rem;
    font-size: 1.4rem;
  }
}

.category-icon-class.__sm {
  padding-top: .25em;
}

@media screen and (min-width: 768px), print {
  .category-icon-class.__sm {
    font-size: 1.2rem;
  }
}

.category-icon-sdgs {
  width: 7rem;
  margin-left: 1rem;
}

@media screen and (min-width: 768px), print {
  .category-icon-sdgs {
    width: 7.6rem;
    margin-left: 1em;
  }
}

/* --------------------------------

  北星経済学科の３ポリシー
  （201023追加ページ）

-------------------------------- */
.policy-list {
  margin: 1em 0 0 1em;
}

.policy-list a {
  margin-right: 1em;
  font-size: 1.1em;
  text-decoration: underline;
}

.policy-list a:hover {
  text-decoration: none;
}

.policy-list .label {
  margin-left: -1em;
}

.policy-img {
  max-width: 240px;
  margin: 1.5em auto 1em;
}

@media screen and (min-width: 768px), print {
  .policy-img {
    float: right;
    width: 240px;
    margin: .5em 0 0 1em;
  }
}

.policy-point-title {
  margin: 1em 0 .5em;
  color: #465f4b;
  font-weight: 800;
  font-size: 1.2em;
}

.policy-point-list dt {
  color: #465f4b;
  font-weight: 600;
}

.policy-point-list dt:not(:first-child) {
  margin-top: .5em;
}

.policy-point-list dd {
  margin-left: 1em;
}

.policy-list2 {
  margin-top: 1em;
  margin-left: 1em;
}

.policy-list2:not(:last-child) {
  margin-bottom: 1em;
}

.policy-list2 li {
  position: relative;
  padding-left: 1.75em;
}

.policy-list2 li:not(:last-child) {
  margin-bottom: .8em;
}

.policy-list2 span {
  display: block;
  position: absolute;
  left: 0;
  color: #465f4b;
  font-weight: 600;
}

/* --------------------------------

  《知》の魅力に触れ、なりたい《自分》に出会い、《社会の主人公》になろう。

-------------------------------- */
.about h2 {
  padding: 2em;
  font-size: 1.4em;
  font-weight: 800;
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  background: url(../img/pages/about/bg.jpg) top repeat;
}

.about h3 {
  margin: 2em 0 .5em;
  font-size: 1.4em;
  line-height: 1.5;
}

.about strong {
  color: #005129;
  font-size: 1.1em;
  font-weight: 800;
}

.about-list-lv1 > li::before {
  content: "☆" !important;
}

.about-list-lv2 > li::before {
  content: "◎" !important;
}

/* --------------------------------

  SDGsと北星経済学科の学び

-------------------------------- */
.course-page .page-title {
  color: #2383cc;
  border-color: #2383cc;
}

.course-page .h2 {
  color: #2383cc;
  background-color: #c5e3ff;
}

.course-page .h3 {
  color: #2383cc;
  border-bottom-color: #2383cc;
}

.sdgs-img {
  max-width: 540px;
  margin: 1em auto 0;
}

.course-img {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin: 2em -1rem -1rem 0;
}

.course-img-item {
  width: 50%;
  padding: 0 1rem 1rem 0;
}

.course-img img {
  width: 100%;
}

/* --------------------------------

  《活かせる国際性》を身につける

-------------------------------- */
.global-page .page-title {
  color: #a6b51e;
  border-color: #a6b51e;
}

.global-page .h2 {
  color: #333;
  background-color: #e9f0a6;
}

.global-page .h3 {
  color: #a6b51e;
  border-bottom-color: #a6b51e;
}

.global-page .global-sp-title {
  color: #fed700;
  background-color: #005395;
}

.global-intro-img {
  max-width: 320px;
  margin: 0 auto 1em;
}

@media screen and (min-width: 768px), print {
  .global-intro-img {
    display: block;
    float: right;
    width: 320px;
    margin: .3em 0 1em 1em;
  }
}

@media screen and (min-width: 768px), print {
  .fairtrade-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

.fairtrade-img {
  width: 20rem;
  margin: 1em auto 0;
}

@media screen and (min-width: 768px), print {
  .fairtrade-img {
    margin: .35em 0 0 1em;
  }
}

/* --------------------------------

  経済学的思考をその土台から理解する

-------------------------------- */
.intelligence-page .page-title {
  color: #ed7ca0;
  border-color: #ed7ca0;
}

.intelligence-page .h2 {
  color: #333;
  background-color: #f9d2dc;
}

.intelligence-page .h3 {
  color: #ed7ca0;
  border-bottom-color: #ed7ca0;
}

.intelligence-img {
  margin-top: 2em;
}

/* --------------------------------

  データを活用し、実践現場の〈知〉を識る。

-------------------------------- */
.analysis-page .page-title {
  color: #f08200;
  border-color: #f08200;
}

.analysis-page .h2 {
  color: #333;
  background-color: #fbd6aa;
}

.analysis-page .h3 {
  color: #f08200;
  border-bottom-color: #f08200;
}

.data-science {
  margin-top: 1em;
}

.data-science-row {
  font-size: 1.1em;
}

@media screen and (min-width: 1100px), print {
  .data-science-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

.data-science dt {
  position: relative;
  padding-left: 1em;
}

.data-science dt::before {
  content: "☆";
  display: block;
  position: absolute;
  left: 0;
}

.data-science dd {
  margin-left: 1em;
}

/* --------------------------------

  新聞で差を付けよう

-------------------------------- */
.newspaper-page .page-title {
  color: #b690c1;
  border-color: #b690c1;
}

.newspaper-page .h2 {
  color: #b690c1;
  background-color: #fdf0f3;
}

.newspaper-page .h3 {
  color: #b690c1;
  border-bottom-color: #b690c1;
}

.newspaper-img-fr {
  margin-bottom: 1em;
  text-align: center;
}

@media screen and (min-width: 768px), print {
  .newspaper-img-fr {
    float: right;
    margin: 0 0 1em 1em;
  }
}

/* --------------------------------

  ひと夏をかけて取り組む

-------------------------------- */
.active-learning-page .page-title {
  color: #6cc6c9;
  border-color: #6cc6c9;
}

.active-learning-page .h2 {
  color: #333;
  background-color: #c1e7e8;
}

.active-learning-page .h3 {
  color: #6cc6c9;
  border-bottom-color: #6cc6c9;
}

.debate-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
}

@media screen and (min-width: 768px), print {
  .debate-wrap {
    display: block;
  }
}

.debate-img {
  margin-top: 1em;
  width: 100%;
  text-align: center;
}

@media screen and (min-width: 768px), print {
  .debate-img {
    float: right;
    width: 160px;
    margin: 0 0 0 1em;
    text-align: left;
  }
}

.debate-theme li {
  margin-bottom: .5em;
}

.debate-theme .year {
  display: block;
}

@media screen and (min-width: 1100px), print {
  .debate-theme li {
    margin-bottom: 0;
  }
  .debate-theme .year {
    display: inline;
    margin-right: 1em;
  }
}

/* --------------------------------

  緑美しいキャンパスで学ぶ

-------------------------------- */
.campuslife-page .page-title {
  color: #3faf38;
  border-color: #3faf38;
}

.campuslife-page .h2 {
  margin: 2em 0 1em;
  padding: 0 0 .3em;
  font-size: 1.5em;
  color: #3faf38;
  border-bottom-color: #3faf38;
  border-bottom: 1px solid #ccc;
  background: none;
}

.campuslife-page .h3 {
  color: #3faf38;
  border-bottom-color: #3faf38;
}

.campuslife-img {
  display: block;
  margin: 1em 0;
  text-align: center;
}

.campuslife-img figcaption {
  display: block;
  margin-top: .5em;
  font-size: .8em;
  text-align: right;
}

.campuslife-img-courtyard {
  margin: 0 -20px -2em;
}

@media screen and (min-width: 768px), print {
  .campuslife-img-courtyard {
    margin: 0 0 -2em;
  }
}

/* --------------------------------

  入試情報

-------------------------------- */
.examinfo-head {
  margin-bottom: 1em;
  padding: 0 0 0 1em;
  border-left: 7px solid #cb4802;
}

.examinfo-head h2 {
  padding: .1em 0 .3em;
  font-size: 1.4em;
  color: #cb4802;
}

.examinfo-head dt {
  float: left;
  clear: left;
  width: 6em;
  text-align: justify;
  text-justify: inter-ideograph;
}

.examinfo-item:not(:first-child) {
  margin-top: 3em;
}

/*240722*/
.examinfo-wrap {
  padding: 1em;
  margin-top: 2em;
  border: 1px solid #006b30;
  background-color: #fff;
}

@media screen and (min-width: 768px), print {
  .examinfo-wrap {
    padding: 2em;
  }
}

.examinfo-curriculum {
  margin-top: 3em;
}

.examinfo-curriculum p.text1 {
  margin: 1em 0;
}

.examinfo-curriculum p.text2 {
  color: #444;
  font-size: 1.5rem;
  font-weight: 700;
  padding: .7em 1em;
  margin-top: 1em;
  background-color: #DCECC6;
}

.examinfo-curriculum table tr:not(:last-child) th,
.examinfo-curriculum table tr:not(:last-child) td {
  border-bottom: 1px solid #ccc;
}

.examinfo-curriculum table th,
.examinfo-curriculum table td {
  padding: .5em .7em;
  vertical-align: middle;
}

.examinfo-curriculum table th {
  width: 20%;
  min-width: 85px;
  background-color: #ddd;
  text-align: center;
}

.examinfo-curriculum table td {
  background-color: #f7f7f7;
}

/* --------------------------------

  就職支援

-------------------------------- */
/* 円グラフ */
.career-graph {
  margin-top: 2em;
  text-align: center;
  line-height: 1.3;
}

.career-graph-title {
  margin-bottom: .25em;
  font-size: 1.2em;
}

.career-graph-img {
  display: block;
  max-width: 640px;
  margin: 0 auto 2em;
}

.career-graph-text {
  font-size: 1.1em;
}

.career-percentage {
  font-weight: 700;
  font-size: 3em;
  color: #cb4802;
}

/* --------------------------------

  卒業生紹介

-------------------------------- */
.obog-list-items li:not(:last-child) {
  margin-bottom: 1em;
  padding-bottom: .35em;
  border-bottom: 1px dotted #888;
}

.obog-list-items a {
  display: inline-block;
  vertical-align: top;
  padding: 0 0 0 .5em;
  font-size: 1.15em;
  line-height: 1.5;
}

.obog-list-items a:hover {
  text-decoration: none;
}

.obog-list-items span {
  display: block;
  font-size: .8em;
  color: #333;
}

@media screen and (min-width: 640px), print {
  .obog-list-items span {
    display: inline-block;
    vertical-align: middle;
    margin: 0 0 0 2em;
  }
}

.obog-item {
  position: relative;
  line-height: 1.5;
  text-align: center;
}

@media screen and (min-width: 1100px), print {
  .obog-item {
    padding: 65px 0 0 220px;
    text-align: left;
  }
}

.obog-item:first-child {
  margin-top: 2em;
  border-top: 1px dotted #888;
}

.obog-item:not(:last-child) {
  padding-bottom: 2em;
  border-bottom: 1px dotted #888;
}

.obog-item:after {
  content: "";
  display: table;
  clear: both;
}

h3.obog-name {
  margin: 0 0 .5em;
  padding: 2em 0 0;
  text-align: center;
  border-bottom: none;
}

@media screen and (min-width: 1100px), print {
  h3.obog-name {
    display: inline-block;
    vertical-align: baseline;
    margin: 0;
    padding: 0;
  }
}

.obog-name span {
  display: inline-block;
  margin-right: .2em;
  font-size: 1.4em;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 2px;
}

.obog-img {
  display: block;
  position: relative;
  width: 180px;
  margin: 0 auto .5em;
  padding: 3px;
  border: 1px solid #888;
  background-color: #fff;
}

@media screen and (min-width: 1100px), print {
  .obog-img {
    position: absolute;
    top: 65px;
    left: 0;
    margin: 0;
  }
}

@media screen and (min-width: 1100px), print {
  .obog-img:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: -19px;
    bottom: 0;
    width: 36px;
    height: 36px;
    margin: auto;
    border-right: 1px solid #888;
    border-bottom: 1px solid #888;
    background-color: #fff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
}

.obog-img img {
  display: block;
  position: relative;
  width: 100%;
  margin: auto;
  z-index: 1;
}

@media screen and (min-width: 640px), print {
  .obog-school {
    display: inline-block;
    vertical-align: baseline;
    margin-left: 1em;
  }
}

@media screen and (min-width: 1100px), print {
  .obog-school {
    font-size: .9em;
  }
}

@media screen and (min-width: 640px), print {
  .obog-graduation {
    display: inline-block;
    vertical-align: baseline;
    margin-left: 1em;
  }
}

@media screen and (min-width: 1100px), print {
  .obog-graduation {
    font-size: .9em;
  }
}

@media screen and (min-width: 1100px), print {
  .obog-office {
    display: block;
    padding-top: .3em;
    font-size: .9em;
  }
}

.obog-message {
  margin-top: 1em;
  line-height: 1.8;
  text-align: left;
}

@media screen and (min-width: 1100px), print {
  .obog-message {
    font-size: .9em;
  }
}

.obog-sideimg {
  float: right;
  margin: .2em .5em 1em 1.5em;
  font-size: .7em;
  line-height: 1.5;
  text-align: center;
}

.obog-sideimg img {
  display: block;
  margin: auto;
}

.ikemi .obog-sideimg img {
  width: 150px;
  padding: 3px;
  border: 1px solid #888;
}

.kakeya_s .obog-sideimg img {
  margin-bottom: .5em;
}

.obog-lede {
  margin-bottom: .5em;
  font-size: 1.5em;
  line-height: 1.4;
}

@media screen and (min-width: 1100px), print {
  .obog-lede {
    position: absolute;
    top: 1em;
    left: 0;
    margin-bottom: 0;
    font-size: 1.7em;
    line-height: 1;
  }
}

.obog-message p:not(.obog-lede) {
  text-indent: 1em;
}

/* --------------------------------

  お問い合わせ

-------------------------------- */
.contact-page .main h2 {
  margin: 1em -20px 1em;
  padding: .3em 20px .1em;
  font-size: 1.3em;
  font-weight: 800;
  color: #fff;
  background-color: #006b30;
}

.contact-page .main h3 {
  margin: 2em -20px .5em;
  padding: 0 20px .3em;
  font-size: 1.2em;
  color: #6EB92C;
  border-bottom: 1px solid #6EB92C;
}

.contact-page .main ul {
  line-height: 1.5;
}

.contact-page .main dl dt {
  margin-top: 1em;
  font-size: 1.2em;
}

.contact-page .main dl dt span {
  color: #006b30;
}

.contact-page .main dl dt b {
  color: #c00;
  font-size: .7em;
}

.contact-page .main input[type=text],
.contact-page .main button[type=submit],
.contact-page .main button[type=button],
.contact-page .main textarea {
  width: 100%;
  padding: .5em;
  color: #333;
  font-family: "メイリオ", Meiryo, "ＭＳ Ｐゴシック", sans-serif;
  font-size: 1.2em;
  border: 1px solid #ccc;
  background: #fff;
}

.contact-page .main input[type=text]:focus,
.contact-page .main button[type=submit]:focus,
.contact-page .main button[type=button]:focus,
.contact-page .main textarea:focus {
  border-color: #006b30;
}

.contact-page .main textarea {
  vertical-align: top;
  height: 6em;
  min-height: 4em;
  resize: vertical;
}

.contact-page .main button[type=submit] {
  display: block;
  text-align: center;
  width: 100%;
  max-width: 150px;
  height: 50px;
  margin: 1em auto 0;
  padding: 0;
  line-height: 50px;
  border: none;
  border-radius: 6px;
  font-weight: 800;
  color: #fff;
  background-color: #006935;
  overflow: hidden;
  cursor: pointer;
}

.contact-page .main button[type=submit]:hover {
  background-color: #6cbb5a;
  -webkit-box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2);
  box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2);
}

.contact-page .main .contact-button-items {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  margin: 1em -1em 0 0;
}

.contact-page .main .contact-button-items li {
  -ms-flex-preferred-size: 50%;
  flex-basis: 50%;
  max-width: 50%;
  padding: 0 1em 0 0;
}

.contact-page .main button[type=button] {
  display: block;
  text-align: center;
  width: 100%;
  max-width: 150px;
  height: 50px;
  margin: 1em auto 0;
  padding: 0;
  line-height: 50px;
  border: none;
  border-radius: 6px;
  font-weight: 800;
  color: #333;
  background-color: #ddd;
  overflow: hidden;
  cursor: pointer;
}

.contact-page .main .validate-error {
  color: #c00;
}

/* --------------------------------

  ページタイトル

-------------------------------- */
.page-title {
  margin: 0 0 2em;
  padding: 2em 20px 1.5em;
  line-height: 1.3;
  color: #465f4b;
  border-top: 1px solid #006b30;
  border-bottom: 1px solid #006b30;
}

.page-title h1 {
  font-weight: 800;
  font-size: 1.8em;
}

.page-subtitle {
  display: block;
  margin-top: .15em;
  font-size: .8em;
}

/* --------------------------------

  プリント

-------------------------------- */
@media print {
  html,
  body {
    width: 1100px;
    background: none;
  }
}
