@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap");
*, *::before, *::after {
  box-sizing: border-box;
}

a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  box-sizing: border-box;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }

body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:after, blockquote:before, q:after, q:before {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

img { vertical-align: bottom; }


/* --- 変数の定義 --- */
:root {
  --side-w: 100%;
  --side-r: 100%;
  --col-main: #003E8D;
  --sub-blue: #F0F6FF;
  --col-yellow: #BA9718;
  --con-blue: #E5EDF8;

  --sub-yellow: #FCF9ED;
  --text: #0F0F0F;
  --border: #D8D8D8;
  --gray-2: #ECEFF4;
  --gray-3: #F7F7F7;
}

@media (min-width: 768px) {
  :root {
    --side-w: min(25%, 300px);
    --side-r: min(25%, 180px);
  }
}


html {
  font-size: 62.5%;
  font-weight: 400;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  font-size: 1.6rem;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "メイリオ", sans-serif;
  font-style: normal;
  font-weight: 500;
  color: var(--text);
  background-color: #fff;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  margin: 0;
}

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

button, input, select, textarea {
  font: inherit;
  color: inherit;
  background: transparent;
  border: none;
  border-radius: 0;
  outline: none;
  appearance: none;
}

button { cursor: pointer; }


a {
  color: inherit;
  text-decoration: none;
  transition: all 0.3s ease 0s;
}

.pcv { display: none; }
.tbv { display: block; }
.spv { display: block; }

@media (min-width: 1200px) {
  .pcv { display: block; }
  .tbv { display: none; }
  .spv { display: none; }
}

.floL { float: left; }
.floR { float: right; }


.clear {
  content: "";
  display: table;
  clear: both;
  zoom: 1;
}

.rob { font-family: "Roboto", sans-serif; }
.fm { font-family: "Noto Serif JP", serif; }



/*********************************************************************************************

	LAYOUT

**********************************************************************************************/
.l-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

#header {
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 70px;
  z-index: 1000;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 0 0 15px;
}

#footer {
  flex-shrink: 0;
  width: 100%;
}

@media (min-width: 768px) {
  #header {
    width: var(--side-w);
    height: 100px;
    padding: 0;
  }
  #footer { display: flex; }
}


.container {
  flex: 1;
  display: flex;
  align-items: stretch;
}

.col-side {
  position: fixed;
  top: 0; left: 0;
  width: var(--side-w);
  height: 100vh;
  background-color: #fff;
  z-index: 999;
  padding-top: 70px;
  overflow-y: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
  padding-bottom: 100px;
  transform: translateY(-100%);
  transition: transform 0.4s ease;
}

.col-side::-webkit-scrollbar { display: none; }

body.is-menu-open { overflow: hidden; }
body.is-menu-open .col-side { top: 0; transform: translateY(0); }

.col-main-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.col-main {
  flex: 1;
  margin-top: 70px;
  padding-bottom: 50px;
}

@media (min-width: 768px) {
  .container {
    flex: 1;
    display: flex;
    align-items: stretch;
  }
  .col-side {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
    transform: translateY(0);
  }
  .col-side::-webkit-scrollbar { display: none; }

  .col-side {
    width: var(--side-w);
    flex-shrink: 0;
    background-color: #fff;
    padding-top: 100px;
    padding-bottom: 50px;
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.15);
  }
  .col-main-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  .col-main {
    flex: 1;
    min-width: 0;
    margin-top: 0;
  }
}


/*********************************************************************************************

	HEADER

**********************************************************************************************/
.header-inner { width: 100%; }

.header-inner .site-top {
  display: flex;
  justify-content: start;
}

.site-id { margin: 0 8px 0 0; }

.site-id img {
  width: 123px;
  height: auto;
  vertical-align: top;
}

.site-title {
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 2px 0 0 0;
  color: var(--col-main);
}

@media (min-width: 768px) {
  .header-inner {
    text-align: center;
  }
  .site-top {
    flex-direction: column;
    justify-content: center;
  }
  .site-id {
    margin: 0 0 12px 0;
  }
  .site-title {
    margin: 0;
  }
}
.l-header__btn {
  display: block;
  width: 70px;
  height: 70px;
  z-index: 30;
  position: absolute;
  top: 0;
  right: 0px;
  z-index: 9999;
  background-color: var(--col-main);
}

.l-header__btn div {
  width: 30px;
  height: 30px;
  margin: 18px auto 0;
  position: relative;
  transition: all 0.4s;
  box-sizing: border-box;
}

.l-header__btn div span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #fff;
  transition: all 0.4s;
}

.l-header__btn div span:nth-of-type(1) { top: 5px; }
.l-header__btn div span:nth-of-type(2) { top: 15px; }
.l-header__btn div span:nth-of-type(3) { top: 25px; }
.is-menu-open .l-header__btn { background-color: #fff; }
.is-menu-open .l-header__btn div span { background-color: var(--col-main); }
.is-menu-open .l-header__btn span:nth-of-type(1) { transform: translateY(10px) rotate(-30deg); }
.is-menu-open .l-header__btn span:nth-of-type(2) { opacity: 0; }
.is-menu-open .l-header__btn span:nth-of-type(3) { transform: translateY(-10px) rotate(30deg); }

@media (min-width: 768px) {
  .l-header__btn {
    display: none;
  }
}



/*********************************************************************************************

	FOOTER

**********************************************************************************************/
#footer {
  background-color: var(--gray-3);
  padding: 30px 0;
}

.footer-inner {
  margin: 0 3%;
  text-align: center;
}
.footer-inner ul {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 0 20px;
  gap: 15px;
}
.footer-inner ul li {
  height: 25px;
}
.footer-inner ul li img {
  width: auto;
  height: 100%;
  mix-blend-mode: multiply;
}
.footer-inner ul li img.unv {
  width: auto;
  height: 80%;
  margin-top: 2px;
}

.copy {
  font-size: 1.2rem;
  color: #767676;
}
.copy span {
  margin: 0 0 0 1em;
}

@media (min-width: 768px) {
  .footer-inner {
    width: 100%;
    margin: 0 2%;
    padding-right: 30px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: center;
  }
  .footer-inner ul {
    justify-content: start;
    margin: 0;
    gap: 25px;
  }
  .footer-inner ul li {
    height: 30px;
  }
  .footer-inner ul li img.unv {
    height: 68%;
    margin-top: 5px;
  }
}


/* ページトップ */
#page_top {
  display: block;
  position: fixed;
  bottom: 25px;
  right: 10px;
  opacity: 1;
  z-index: 500;
}

#page_top a {
  display: block;
  text-decoration: none;
  background-color: #003E8D;
  width: 30px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  flex: 1;
}
#page_top a img {
  width: 20px;
  height: 13px;
  transform: rotate(90deg);
}



/*********************************************************************************************

	SIDE - menu

**********************************************************************************************/
.menu-all-btn {
  background-color: var(--col-yellow);
}
.menu-all-btn a {
  display: block;
  padding: 25px 20px;
  font-size: 1.6rem;
  line-height: 1;
  font-weight: 500;
  color: #fff;
}
.menu-all-btn span {
  position: relative;
  padding: 0 0 0 23px;
}
.menu-all-btn span::before {
  content: "\f0c9";
  display: block;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1.8rem;
  position: absolute;
  top: 5px;
  left: 0;
  color: #fff;
}

.trg, .trg_s { cursor: pointer; }

.trg::after,
.trg_s::after {
  content: "+";
  display: block;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1.5rem;
  position: absolute;
  top: 50%;
  right: 18px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  color: #fff;
}

.menu-sub {
  display: none;
}

.trg.open::after,
.trg_s.open::after {
  content: "\f068";
}


/* trg：ボタン */
.nav-link {
  display: block;
  background-color: var(--col-main);
  color: #fff;
  position: relative;
  font-size: 1.6rem;
  line-height: 1.4;
  border-bottom: 1px solid #fff;
}
.nav-link a, .nav-link.toggle {
  display: block;
  padding: 20px 30px 19px;
  display: flex;
  align-items: center;
  gap:10px;
}
.nav-link i {
  font-size: 1.8rem;
  flex-shrink: 0;
}
.nav-link span { display: block; }


.nav-link_2nd,
.nav-link_3rd {
  display: block;
  background-color: #fff;
  padding: 18px 20px;
  color: var(--text);
  font-size: 1.4rem;
  line-height: 1.4;
  border-top: 1px solid var(--border);
  position: relative;
}
.nav-link_2nd.trg::after,
.nav-link_3rd.trg::after {
  color: var(--col-main);
}
.nav-link_2nd:hover,
.nav-link_3rd:hover {
  background-color: var(--sub-blue);
}

.nav-link_3rd {
  padding-left: 30px;
  border-bottom:1px solid $border;
}


/* サブリスト */
.nav-3rd-list li,
.nav-4th-list li {
  font-size: 1.4rem;
  line-height: 1.4;
  color: var(--text);
}
.nav-3rd-list li a,
.nav-4th-list li a {
  display: block;
  padding: 8px 20px 8px 30px;
  position: relative;
}
.nav-3rd-list li a.trg::after,
.nav-4th-list li a.trg::after {
  color: var(--col-main);
}
.nav-3rd-list li a:hover,
.nav-4th-list li a:hover {
  background-color: var(--sub-blue);
}

.nav-4th-list li a {
  padding-left: 40px;
}


/* 学内限定アイコンのスタイル */
.has-domain-icon::after {
  display: inline-block;
  margin-left: 0.25em;
  font-family: "Font Awesome 6 Free";
  font-weight: 600;
  color: #003E8D;
}
.icon-lock::after {content: "\f502";}
.icon-door::after {content: "\f52b";}


.i-key {
  position: relative;
  padding-right: 15px;
}
.i-key::after {
  content: "";
  display: inline-block;
  width: 10px;
  height: 13px;
  background-color: var(--col-main);
  margin-left: 5px;
  mask-image: url(/infosys/theme-images/img/i_key.svg);
  -webkit-mask-image: url(/infosys/theme-images/img/i_key.svg);
  mask-repeat: no-repeat;
  mask-position: 0 1px;
  mask-size: contain;
}

@media (min-width: 768px) {
  .col-side .search-box {
    display: none;
  }
}

.search-form {
  display: flex;
  justify-content: space-between;
  align-items: center;
  overflow: hidden;
}

.search-form label { width: calc(100% - 60px); }

.search-form input {
  width: 100%;
  height: 60px;
  padding: 5px 15px;
  border: none;
  box-sizing: border-box;
  border: 1px solid var(--border);
  font-size: 1em;
  outline: none;
  background-color: #fff;
}

.search-form input::placeholder { color: #B5B5B5; }

.search-form button {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 60px;
  height: 60px;
  border: none;
  background-color: var(--col-main);
  cursor: pointer;
}

.search-form button::after {
  content: "";
  width: 22px;
  height: 28px;
  background: url(/infosys/theme-images/i_search.png) 0 0 no-repeat;
  background-size: 100%;
}

.search-form input,
.search-form button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: 0;
}


@media (min-width: 768px) {
  .search-form button {
    width: 70px;
    height: 60px;
  }
  .search-form label {
    width: calc(100% - 70px);
  }
}
.page-header .search-form { width: 240px; }
.page-header .search-form input { height: 38px; }
.page-header .search-form label { width: calc(100% - 38px); }
.page-header .search-form button {
  width: 38px;
  height: 38px;
}
.page-header .search-form button::after {
  width: 12px;
  height: 15px;
}

.page-header .search-form { width: 240px; }
.page-header .search-form input { height: 38px; }
.page-header .search-form label { width: calc(100% - 38px); }
.page-header .search-form button {
  width: 38px;
  height: 38px;
}
.page-header .search-form button::after {
  width: 12px;
  height: 15px;
}

.col-side .search-form { width: 100%; }
.col-side .search-form input { height: 60px; }
.col-side .search-form label { width: calc(100% - 60px); }
.col-side .search-form button {
  width: 60px;
  height: 60px;
}




/*********************************************************************************************

	MAIN

**********************************************************************************************/
/* トップページ */
.hero-top {
  height: 410px;
  background-position: center 0;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  margin: 0 0 30px;
}


.hero-top {

  background-image: url(https://cms-campus.bunkyo.ac.jp/infosys/files/mainBG_infosys.png);

}


.hero-info {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
}

@media (min-width: 768px) {
  .hero-top {
    height: 525px;
  }
  .hero-info {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 90%;
  }
}
@media (min-width: 1200px) {
  .hero-info {
    max-width: 70%;
  }
}

/* トップナビ */
.hero-menu {
  background-color: #fff;
  padding: 20px 0 20px;
  margin: 0 15px;
}
.hero-menu ul {
  margin: 0 15px;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hero-menu ul li {
  border: 1px solid var(--border);
  text-align: center;
}
.hero-menu ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--col-main);
}
.hero-menu ul li a span i {
  display: none;
}
.hero-menu ul li a:hover {
  background-color: var(--gray-2);
}

@media (min-width: 768px) {
  .hero-menu {
    margin: 0;
    padding: 30px 0;
  }
  .hero-menu ul {
    margin: 0 30px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
  }
  .hero-menu ul li a {
    height: 70px;
    font-size: 1.5rem;
  }
  .hero-menu ul li a span i {
    display: inline-block;
    margin: 0 10px 0 0;
    font-size: 1.7rem;
  }
}



.search-box {
  background: rgba(255, 255, 255, 0.8);
  padding: 20px 20px;
  margin: 0 15px;
}

@media (min-width: 768px) {
  .search-box {
    padding: 20px 20px;
    margin: 0;
  }
}


/* コンテンツ */
.contents {
  margin: 0 4%;
}

.con-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 768px) {
  .con-inner {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }
}


/*********************************************************************************************

	PAGE

**********************************************************************************************/
.page-header {
  padding: 20px 0;
  margin: 0 0 30px;
}
.page-header .search-set { display: none; }

@media (min-width: 768px) {
  .page-header {
    padding: 30px 0;
    margin: 0 0 40px;
  }
  .page-header .search-set {
    display: block;
  }
}
.page-header_inner {
  margin: 0 15px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
}

@media (min-width: 768px) {
  .page-header_inner {
    margin: 0 4%;
  }
}
.topicpath {
  display: flex;
  justify-content: start;
  flex-wrap: wrap;
  gap: 10px;
}
.topicpath li {
  font-size: 1.2rem;
  color: #A7A7A7;
}
.topicpath li a,
.topicpath li span {
  color: var(--text);
  position: relative;
  padding: 0 0;
}
.topicpath li a::after,
.topicpath li span::after {
  content: "／";
  display: inline-block;
  margin-left: 0.5em;
}

/* ============================================================
  見出し
============================================================== */
.th2,
.c-pages h2,
.c-entries h2 {
  font-size: 3.3rem;
  font-weight: 500;
  color: var(--col-main);
}

@media (min-width: 768px) {
  .th2,
  .c-pages h2,
  .c-entries h2 {
    font-size: 4rem;
  }
}
.th3 {
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--col-main);
}


/* ============================================================
  お知らせ用
============================================================== */
.news-box {
  background-color: var(--sub-blue);
  padding: 30px 25px;
  position: relative;
}
.news-box h2 {
  font-size: 2rem;
  line-height: 1.4;
  font-weight: 700;
  color: var(--col-main);
  margin: 0 0 15px;
}

.news-more {
  position: absolute;
  top: 37px;
  right: 25px;
}
.news-more a {
  display: block;
  font-size: 1.4rem;
  font-weight: 500;
}
.news-more a span {
  position: relative;
  padding: 0 15px 0 0;
}
.news-more a span::after {
  content: "\f105";
  display: block;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1.5rem;
  position: absolute;
  top: 3px;
  right: 0;
  color: var(--col-main);
}

.c-news .news-more {
  top: 42px;
}


.news-list .n-set,
.news-list_v2 .n-set {
  display: block;
  border-bottom: 1px solid var(--border);
  padding: 15px 0;
}
.news-list .n-set:last-child,
.news-list_v2 .n-set:last-child {
  border: none;
}
.news-list dt,
.news-list_v2 dt {
  margin: 0 0 8px;
  display: flex;
}
.news-list dt .n-day,
.news-list_v2 dt .n-day {
  font-size: 1.6rem;
  line-height: 1.4;
  font-weight: 500;
  color: #7E7E7E;
  font-family: "Roboto", sans-serif;
  margin: 0 0 5px;
}
.news-list dd,
.news-list_v2 dd {
  font-size: 1.4rem;
  line-height: 1.4;
  font-weight: 500;
  display: flex;
  flex-direction: column;
}
.news-list dd a,
.news-list_v2 dd a {
  display: block;
}
.news-list dd a:hover,
.news-list_v2 dd a:hover {
  color: var(--col-main);
}
.news-list dd p,
.news-list_v2 dd p {
  padding: 0;
  margin: 0;
}

.icon-list {
  display: flex;
  justify-content: start;
  flex-wrap: wrap;
  gap: 5px;
  margin-left: 10px;
}

.i-cat {
  background-color: #ffffff;
  border: 1px solid var(--border);
  display: block;
  padding: 0 5px;
  width: 90px;
  height: 20px;
  text-align: center;
  font-size: 1.2rem;
  line-height: 18px;
  font-weight: 500;
  color: var(--col-main);
}

.c-news {
  padding-bottom: 40px;
}
.c-news .th2 {
  margin-bottom: 35px;
}
.c-news .news-box {
  padding: 30px 15px 0 15px;
  margin-bottom: 80px;
}
.c-news .news-box h2 {
  font-size: 2.8rem;
}
.c-news .news-list .n-set {
  padding: 15px 10px;
}
.c-news .news-list dd {
  font-size: 1.8rem;
  line-height: 1.4;
  font-weight: 500;
}

.c-news .is-impn {
  padding: 30px 15px 20px 15px;
}

@media (min-width: 768px) {
  .c-news { padding-bottom: 60px; }
  .c-news .th2 { margin-bottom: 50px; }
  .c-news .news-box {
    padding-left: 4%;
    margin-bottom: 120px;
  }
  .c-news .news-box h2 { font-size: 2.8rem; }
  .c-news .news-list .n-set { padding: 23px 10px; }
  .c-news .news-list dd {
    font-size: 1.8rem;
    line-height: 1.4;
    font-weight: 500;
  }
  .c-news .is-impn { padding: 0 4% 30px 4%; }
}

.c-news_main { margin: 0 0 80px; }
.c-news_main .th3 {
  font-size: 2.8rem;
  line-height: 1.4;
  font-weight: 700;
  color: var(--col-main);
  margin: 0 0 30px;
}

.c-news_side { margin: 0 15px; }
.c-news_side h3 {
  font-size: 2rem;
  font-weight: 700;
  padding-bottom: 10px;
  margin-bottom: 15px;
  border-bottom: 1px solid var(--border);
}

.n-archive li { margin: 0 0 15px; }
.n-archive li span { margin-left: 5px; }
.n-archive li a { color: var(--col-main); }

.s-inner { margin: 0 0 60px; }

.is-cat li { margin: 0 0 20px; }
.is-cat li.cat-sub { margin: 0 0 20px; }
.is-cat li.cat-sub a {
  padding: 0 0 0 20px;
  position: relative;
}
.is-cat li.cat-sub a::before {
  content: "";
  width: 15px;
  height: 1px;
  background-color: var(--border);
  position: absolute;
  top: 12px;
  left: 0;
}

@media (min-width: 768px) {
  .c-news_wrapper {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .c-news_main {
    width: calc(100% - var(--side-r));
    flex-shrink: 0;
    box-sizing: border-box;
    padding: 0 40px 0 4%;
    margin: 0;
  }
  .c-news_side {
    width: var(--side-r);
    flex-shrink: 0;
    position: sticky;
    top: 20px;
    margin: 0;
  }
  .c-news_side h3 { font-size: 1.6rem; }
  .n-archive li a { color: var(--text); }
  .n-archive li a:hover { color: var(--col-main); }
}

.news-con { margin: 0 15px; }


@media (min-width: 768px) {
  .news-con { margin: 0 0 0 0; }
}
.news-cat_link ul {
  display: grid;
  --gap-w: 8px;
  gap: var(--gap-w);
  margin: 20px 0 30px;
  grid-template-columns: repeat(auto-fill, minmax(clamp(18%, 150px, 48%), 1fr));
}
.news-cat_link ul li {
  display: flex;
  background-color: #fff;
  border: 1px solid var(--border);
  text-align: center;
  box-sizing: border-box;
  font-size: 1.2rem;
  line-height: 1.4;
}
.news-cat_link ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  flex: 1;
  padding: 5px 0;
}
.news-cat_link ul li a span { display: inline-block; }
.news-cat_link ul li a:hover { background-color: var(--sub-blue); }
.news-cat_link ul li.current a {
  background-color: var(--col-main);
  color: #fff;
}

@media (min-width: 768px) {
  .news-cat_link ul { margin: 20px 0 50px; }
  .news-cat_link ul li { font-size: 1.6rem; }
  .news-cat_link ul li span { display: inline-block; }
  .news-cat_link ul li a { padding: 15px 0; }
}

.news-list_v2 { margin-bottom: 40px; }
.news-list_v2 .n-day { display: inline-block; }

.news-list_v2 .n-set { padding: 0; }
.news-list_v2 .n-set a {
  display: block;
  padding: 20px 0px;
}
.news-list_v2 .n-set a:hover {
  background-color: var(--gray-3);
}
.news-list_v2 .n-set a:hover h3 {
  color: var(--col-main);
}
.news-list_v2 .n-set:last-child {
  border-bottom: 1px solid var(--border);
}
.news-list_v2 dd h3 {
  font-size: 1.8rem;
  line-height: 1.4;
  margin: 0 0 15px;
}
.news-list_v2 dd p {
  font-size: 1.4rem;
  line-height: 1.4;
  font-weight: 500;
}

@media (min-width: 768px) {
  .news-list_v2 {
    margin-bottom: 40px;
  }
  .news-list_v2 .n-set a {
    padding: 30px 15px;
  }
  .news-list_v2 dd h3 {
    margin: 0 0 10px;
  }
}


.nav-pagination ul,
.nav-pagination_single ul {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.nav-pagination ul .link_page,
.nav-pagination ul span,
.nav-pagination_single ul .link_page,
.nav-pagination_single ul span {
  text-align: center;
  display: block;
  width: 43px;
  height: 43px;
  line-height: 43px;
  border-radius: 50%;
  background-color: var(--sub-blue);
}
.nav-pagination ul .link_page:hover,
.nav-pagination ul span:hover,
.nav-pagination_single ul .link_page:hover,
.nav-pagination_single ul span:hover {
  background-color: var(--col-main);
  color: #fff;
}
.nav-pagination ul .current_page,
.nav-pagination_single ul .current_page {
  background-color: var(--col-main);
  color: #fff;
}

.nav-pagination ul .prev a,
.nav-pagination ul .next a,
.nav-pagination_single ul .prev a,
.nav-pagination_single ul .next a {
  display: block;
  position: relative;
}

.nav-pagination ul .prev a::before, .nav-pagination ul .prev a::after,
.nav-pagination ul .next a::before,
.nav-pagination ul .next a::after,
.nav-pagination_single ul .prev a::before,
.nav-pagination_single ul .prev a::after,
.nav-pagination_single ul .next a::before,
.nav-pagination_single ul .next a::after {
  display: block;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1.7rem;
  position: absolute;
  top: 0px;
  color: var(--col-main);
}
.nav-pagination ul .prev a,
.nav-pagination_single ul .prev a {
  margin-right: 10px;
  padding: 0 0 0 15px;
}
.nav-pagination ul .prev a::before,
.nav-pagination_single ul .prev a::before {
  content: "\f104";
  left: 0;
}
.nav-pagination ul .next a,
.nav-pagination_single ul .next a {
  margin-left: 10px;
  padding: 0 15px 0 0;
}
.nav-pagination ul .next a::before,
.nav-pagination_single ul .next a::before {
  content: "\f105";
  right: 0;
}

.nav-pagination_single {
  border-top: 1px solid var(--col-main);
  padding-top: 20px;
  margin-top: 40px;
}
.nav-pagination_single ul {
  gap: 30px;
}

@media (min-width: 768px) {
  .nav-pagination_single {
    padding-top: 30px;
    margin-top: 50px;
  }
  .nav-pagination_single ul {
    gap: 40px;
  }
}



/* ============================================================
  固定・詳細
============================================================== */
.c-pages h2,
.c-entries h2 {
  margin-bottom: 40px;
}
.c-pages p,
.c-entries p {
  line-height: 1.6;
}

.page-lead { line-height:1.6; }

.c-entries {
  padding: 0 15px 40px 15px;
}

@media (min-width: 768px) {
  .c-entries {
    padding: 0 0 80px 0;
  }
}

/* 目次 */
.box-toc {
  background-color: #F8F8F8;
  padding: 20px 20px;
  margin: 50px 0;
}
.box-toc .toc_ttl {
  font-size: 1.6rem;
  padding-bottom: 20px;
  /*margin-bottom: 20px;*/
  border-bottom: 1px solid var(--border);
  display: block;
  position: relative;
}
.box-toc .trg_s::after {
  content: "\f068";
  color: var(--col-main);
  font-size: 2rem;
  top:26%;
}
.box-toc .trg_s.open::after {
  content: "+";
}

.box-toc ul {
  margin: 0;
  padding: 0;
}
.box-toc ul a {
  text-decoration: underline;
}
.box-toc .h3, .box-toc .h3 a,
.box-toc .h4, .box-toc .h4 a,
.box-toc .h5, .box-toc .h5 a {
  font-size: 1.4rem;
}

.box-toc ul .h3 {
  margin: 25px 0 20px;
  line-height: 1.4;
}
.box-toc ul .h3 a {
  line-height: 1.4;
  color: var(--col-main);
}
.box-toc ul .h4 {
  line-height: 1.4;
  margin: 20px 0 10px 20px;
}
.box-toc ul .h4 a {
  color: var(--text);
}
.box-toc ul .h5 {
  line-height: 1.4;
  margin: 10px 0 10px 23px;
}
.box-toc ul .h5 a {
  color: var(--text);
  position: relative;
  padding: 0 0 0 15px;
}
.box-toc ul .h5 a::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #CBCBCB;
  position: absolute;
  top: 8px;
  left: 0;
}

@media (min-width: 768px) {
  .box-toc {
    padding: 25px 35px;
    margin: 40px 0 80px;
  }
  .box-toc .toc_ttl {
    font-size: 1.8rem;
  }
  .box-toc .h3, .box-toc .h3 a,
  .box-toc .h4, .box-toc .h4 a,
  .box-toc .h5, .box-toc .h5 a {
    font-size: 1.6rem;
  }
}


.page-body .n-ttl_area,
.entry-body .n-ttl_area {
  display: flex;
  justify-content: start;
  align-items: center;
  margin-bottom: 50px;
}
.page-body .n-ttl_area .n-day,
.entry-body .n-ttl_area .n-day {
  margin: 0 10px 0 0;
  line-height: 1;
  color: #7E7E7E;
}

.page-body .n-ttl_area ul,
.entry-body .n-ttl_area ul {
  padding: 0;
  margin: 0;
}
.page-body .n-ttl_area ul li,
.entry-body .n-ttl_area ul li {
  padding: 0;
  margin: 0 3px 0 0;
}
.page-body .n-ttl_area ul li::before,
.entry-body .n-ttl_area ul li::before {
  display: none;
}


/* 本文 */
.page-body h3,
.entry-body h3 {
  font-size: 2.5rem;
  line-height: 1.4;
  font-weight: 700;
  padding-bottom: 15px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--col-main);
  color: var(--col-main);
}
.page-body h3 ~ h3,
.entry-body h3 ~ h3 {
  margin-top: 40px;
}

.page-body h4,
.entry-body h4 {
  font-size: 2.2rem;
  line-height: 1.4;
  font-weight: 700;
  margin-bottom: 15px;
}

.page-body h5,
.entry-body h5 {
  font-size: 2rem;
  line-height: 1.4;
  font-weight: 700;
  margin-bottom: 15px;
}

.page-body p,
.entry-body p {
  line-height: 1.6;
  margin-bottom: 0.7em;
  text-align: justify;
  line-break: strict;
  word-break: break-all;
}

.page-body a,
.entry-body a {
  color: var(--col-main);
  text-decoration: underline;
  position: relative;
  display: inline-block;
  padding: 0;
}

.page-body .i-key,
.entry-body .i-key {
  padding-right: 5px;
}
.page-body .i-key::after,
.entry-body .i-key::after {
  width: 13px;
  height: 16px;
}

@media (min-width: 768px) {
  .page-body h3,
  .entry-body h3 {
    font-size: 2.8rem;
    margin-bottom: 20px;
  }
  .page-body h3 ~ h3,
  .entry-body h3 ~ h3 {
    margin-top: 50px;
  }
  .page-body h4,
  .entry-body h4 {
    font-size: 2.5rem;
    margin-bottom: 20px;
  }
  .page-body h5,
  .entry-body h5 {
    margin-bottom: 20px;
  }
}


.page-body ul,
.entry-body ul {
  padding: 0 0 30px 0;
}
.page-body ul li,
.entry-body ul li {
  position: relative;
  padding: 0 0 0 15px;
  margin: 0 0 10px;
  line-height: 1.5;
}
.page-body ul li::before,
.entry-body ul li::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #CBCBCB;
  position: absolute;
  top: 8px;
  left: 0;
}
.page-body ul li strong,
.entry-body ul li strong {
  font-weight: 700;
}
.page-body ul li a,
.entry-body ul li a {
  display: inline-block;
}

.page-body ul ul,
.entry-body ul ul {
  padding-bottom: 0;
  margin: 0.7em 0 0;
}
.page-body ul ol,
.entry-body ul ol {
  padding: 0;
  margin: 0.7em 0 0;
  counter-reset: step-counter_2;
}
.page-body ul ol li,
.entry-body ul ol li {
  counter-increment: step-counter_2;
  padding: 0;
  margin: 0 0 6px;
}
.page-body ul ol li::before,
.entry-body ul ol li::before {
  content: counter(step-counter_2) ". ";
  font-weight: bold;
  white-space: nowrap;
  padding-top: 2px;
  background: none;
  width: auto;
  height: auto;
  position: static !important;
  top: auto;
  left: auto;
}

@media (min-width: 768px) {
  .page-body ul,
  .entry-body ul {
    padding: 0 0 30px 0;
  }
  .page-body ul li,
  .entry-body ul li {
    padding: 0 0 0 15px;
    margin: 0 0 10px;
  }
}


.page-body ol,
.entry-body ol {
  padding: 0 0 30px 0;
  counter-reset: step-counter;
}
.page-body ol li,
.entry-body ol li {
  counter-increment: step-counter;
  align-items: flex-start;
  margin: 0 0 20px;
  line-height: 1.5;
}
.page-body ol li::before,
.entry-body ol li::before {
  content: counter(step-counter) ". ";
  font-weight: bold;
  white-space: nowrap;
  padding-top: 2px;
}
.page-body ol li .p-img,
.entry-body ol li .p-img {
  text-align: center;
  margin: 15px 0 0 0;
}


.page-body ol li p,
.entry-body ol li p {
  display: inline;
  margin: 0;
  padding: 0;
}

.page-body ol li strong,
.entry-body ol li strong { font-weight: 700; }

.page-body ol ul, .page-body ol ol,
.entry-body ol ul,
.entry-body ol ol {
  padding-bottom: 0;
  margin-bottom: 0;
  margin: 0.7em 0 0 1.2em;
}
.page-body ol ul li, .page-body ol ol li,
.entry-body ol ul li,
.entry-body ol ol li { margin: 0 0 10px; }

.page-body ol ol,
.entry-body ol ol {
  counter-reset: step-counter-2;
  margin: 10px 0 0 1.2em;
}
.page-body ol ol li,
.entry-body ol ol li {
  counter-increment: step-counter-2;
  margin: 0 0 10px;
}
.page-body ol ol li::before,
.entry-body ol ol li::before { content: counter(step-counter-2, lower-roman) ". "; }

.page-body ol ol li ol,
.entry-body ol ol li ol { counter-reset: step-counter-3; }

.page-body ol ol li ol li,
.entry-body ol ol li ol li { counter-increment: step-counter-3; }

.page-body ol ol li ol li::before,
.entry-body ol ol li ol li::before { content: counter(step-counter-3, lower-latin) ". "; }


@media (min-width: 768px) {
  .page-body ol,
  .entry-body ol {
    padding: 0 0 30px 0;
  }
  .page-body ol li .p-img,
  .entry-body ol li .p-img {
    margin: 20px 0 0 0;
  }
}

.c-entries .page-body ol li,
.c-entries .entry-body ol li {
  padding: 0 0 0 0;
  text-indent: 0;
}

.page-body dl,
.entry-body dl {
  margin: 0 0 30px;
}
.page-body dl dt,
.entry-body dl dt {
  line-height: 1.4;
  font-weight: 700;
  margin: 0 0 3px;
  position: relative;
  padding: 0 0 0 15px;
}
.page-body dl dt::before,
.entry-body dl dt::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #CBCBCB;
  position: absolute;
  top: 5px;
  left: 0;
}
.page-body dl dd,
.entry-body dl dd {
  margin: 0 0 20px 15px;
  line-height: 1.5;
}

@media (min-width: 768px) {
  .page-body dl,
  .entry-body dl {
    margin: 0 0 30px;
  }
  .page-body dl dt,
  .entry-body dl dt {
    margin: 0 0 3px;
  }
  .page-body dl dd,
  .entry-body dl dd {
    margin: 0 0 20px 15px;
  }
}


.page-body table,
.entry-body table {
  width: 100% !important;
  height: auto !important;
  border-collapse: collapse;
  border-spacing: 0;
  border: none;
  margin: 0 0 25px;
  padding: 0;
  border: 1px solid var(--border);
}
.page-body table caption,
.entry-body table caption {
  font-size: 1.8rem;
  line-height: 1.4;
  font-weight: 500;
  margin: 0 0 10px;
  text-align: left;
}
.page-body table tr:nth-child(even),
.entry-body table tr:nth-child(even) {
  background-color: var(--gray-3);
}
.page-body table th, .page-body table td,
.entry-body table th,
.entry-body table td {
  width: auto !important;
  height: auto !important;
  padding: 10px;
  text-align: left;
  border: 1px solid var(--border);
  vertical-align: middle;
  font-size: 1.4rem;
  line-height: 1.4;
}
.page-body table th[rowspan], .page-body table td[rowspan],
.entry-body table th[rowspan],
.entry-body table td[rowspan] {
  width: 20% !important;
  text-align: center;
  vertical-align: middle;
}
.page-body table th,
.entry-body table th {
  background-color: var(--con-blue);
  width: 20% !important;
}

@media (min-width: 768px) {
  .page-body table,
  .entry-body table {
    margin: 0 0 40px;
  }
  .page-body table caption,
  .entry-body table caption {
    margin: 0 0 20px;
  }
  .page-body table th, .page-body table td,
  .entry-body table th,
  .entry-body table td {
    padding: 15px;
    font-size: 1.6rem;
  }
  .page-body table th,
  .entry-body table th {
    width: 20% !important;
  }
}



/* 画像付き番号リスト */
.numbered_image_item_Lv1:first-of-type {counter-reset: item_Lv1;}
.numbered_image_item_Lv2:first-of-type {counter-reset: item_Lv2;}
.numbered_image_item_Lv3:first-of-type {counter-reset: item_Lv3;}

.page-body h2,
.page-body h3,
.page-body h4,
.page-body h5 {
  counter-reset: item item_Lv1 item_Lv2 item_Lv3;
}

.entry-body h2,
.entry-body h3,
.entry-body h4,
.entry-body h5 {
  counter-reset: item item_Lv1 item_Lv2 item_Lv3;
}


.numbered_image_item_Lv1 {
  counter-increment: item_Lv1;
  position: relative;
  margin-bottom: 2.5em;
  padding-left: 2em;
  min-height: 1.5em;
}
.numbered_image_item_Lv2 {
  counter-increment: item_Lv2;
  position: relative;
  margin-bottom: 2.5em;
  padding-left: 2em;
  min-height: 1.5em;
}
.numbered_image_item_Lv3 {
  counter-increment: item_Lv3;
  position: relative;
  margin-bottom: 2.5em;
  padding-left: 2em;
  min-height: 1.5em;
}

.numbered_image_item_Lv1::before {
  content: counter(item_Lv1) ".";
  position: absolute;
  top: 0;
  left: 0;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.4;
}
.numbered_image_item_Lv2::before {
  content: counter(item_Lv2,lower-roman) ".";
  position: absolute;
  top: 0;
  left: 0;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.4;
}
.numbered_image_item_Lv3::before {
  content: counter(item_Lv3,lower-alpha) ".";
  position: absolute;
  top: 0;
  left: 0;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.4;
}

.numbered_image_item_Lv1 .image {
  margin: 0 0 10px 0;
  display: block;
}
.numbered_image_item_Lv2 .image {
  margin: 0 0 10px 0;
  display: block;
}
.numbered_image_item_Lv3 .image {
  margin: 0 0 10px 0;
  display: block;
}

.numbered_image_item_Lv1 .image:has(img[src=""]),
.numbered_image_item_Lv1 .image:not(:has(img)) {
  display: none !important;
}
.numbered_image_item_Lv2 .image:has(img[src=""]),
.numbered_image_item_Lv2 .image:not(:has(img)) {
  display: none !important;
}
.numbered_image_item_Lv3 .image:has(img[src=""]),
.numbered_image_item_Lv3 .image:not(:has(img)) {
  display: none !important;
}

.numbered_image_item_Lv1 .image img {
  width: 100%;
  height: auto;
  display: block;
  margin:0 auto;
}
.numbered_image_item_Lv2 .image img {
  width: 100%;
  height: auto;
  display: block;
  margin:0 auto;
}
.numbered_image_item_Lv3 .image img {
  width: 100%;
  height: auto;
  display: block;
  margin:0 auto;
}

.numbered_image_item_Lv1 .text {
  margin: 0 0 10px;
  font-size: 1.6rem;
  line-height: 1.4;
  display: block;
}
.numbered_image_item_Lv2 .text {
  margin: 0 0 10px;
  font-size: 1.6rem;
  line-height: 1.4;
  display: block;
}
.numbered_image_item_Lv3 .text {
  margin: 0 0 10px;
  font-size: 1.6rem;
  line-height: 1.4;
  display: block;
}

@media (min-width: 768px) {
  .numbered_image_item_Lv1 .image img {
    width: auto !important;
    max-width: 50% !important;
  }
  .numbered_image_item_Lv2 .image img {
    width: auto !important;
    max-width: 50% !important;
  }
  .numbered_image_item_Lv3 .image img {
    width: auto !important;
    max-width: 50% !important;
  }
}




.p-block { margin: 0 0 70px; }

@media (min-width: 768px) {
  .p-block {
    margin: 0 0 90px;
  }
}


/* 注意ボックス */
.attention_box {
  padding: 20px 20px 10px 20px;
  border: 1px solid var(--border);
  margin: 0 0 30px;
}
.attention_box .att_title {
  text-align: center;
  color: var(--col-main);
  margin: 0 0 15px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  gap: 8px;
  width: 100%;
}
.attention_box .att_title::before {
  content: "\f071";
  display: block;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 2rem;
  display: inline-block;
  color: #003E8D;
}

@media (min-width: 768px) {
  .attention_box {
    padding: 30px 40px 10px 40px;
    margin: 0 12% 50px;
  }
}


/* よくある質問 */
.page-body .p-fqa {
  margin: 0 0 20px;
  border: 1px solid var(--border);
}
.page-body .p-fqa dt, .page-body .p-fqa dd {
  position: relative;
  font-size: 1.6rem;
  line-height: 1.4;
  font-weight: 500;
}
.page-body .p-fqa dt::before, .page-body .p-fqa dd::before {
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.4;
}
.page-body .p-fqa dt {
  background-color: var(--con-blue);
  padding: 25px 50px 25px 20px;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 15px;
  align-items: flex-start;
}
.page-body .p-fqa dt::before {
  content: "Q";
  display: inline-block;
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--col-main);
  position: static;
  flex-shrink: 0;
}
.page-body .p-fqa dd {
  background-color: #fff;
  display: none;
  padding: 25px 30px 20px 40px;
}
.page-body .p-fqa dd::before {
  content: "A";
  color: var(--col-yellow);
  position: absolute;
  top: 20px;
  left: 8px;
}
.page-body .p-fqa dd ul {
  margin: 15px 0 0;
}
.page-body .p-fqa dt {
  cursor: pointer;
}
.page-body .p-fqa dt::after {
  content: "+";
  display: block;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 2rem;
  position: absolute;
  top: 50%;
  right: 16px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  color: var(--col-main);
}
.page-body .p-fqa dt.open::after {
  content: "\f068";
}

@media (min-width: 768px) {
  .page-body .p-fqa dt {
    padding: 25px 60px 25px 30px;
    align-items: center;
  }
  .page-body .p-fqa dt::after {
    right: 30px;
  }
  .page-body .p-fqa dd {
    padding: 25px 50px 20px 50px;
  }
  .page-body .p-fqa dd::before {
    left: 18px;
  }
}
/* ファイルアイコン */
.page-body a[href$=".pdf"],
.page-body a[href$=".docx"],
.page-body a[href$=".xls"],
.page-body a[href$=".xlsx"],
.page-body a[href$=".pptx"],
.entry-body a[href$=".pdf"],
.entry-body a[href$=".docx"],
.entry-body a[href$=".xls"],
.entry-body a[href$=".xlsx"],
.entry-body a[href$=".pptx"] {
  display: inline-block;
}
.page-body a[href$=".pdf"]::after,
.page-body a[href$=".docx"]::after,
.page-body a[href$=".xls"]::after,
.page-body a[href$=".xlsx"]::after,
.page-body a[href$=".pptx"]::after,
.entry-body a[href$=".pdf"]::after,
.entry-body a[href$=".docx"]::after,
.entry-body a[href$=".xls"]::after,
.entry-body a[href$=".xlsx"]::after,
.entry-body a[href$=".pptx"]::after {
  content: "";
  display: inline-block;
  width: 17px;
  height: 22px;
  background: url(/infosys/theme-images/i_pdf.png) 0 0 no-repeat;
  background-size: 100%;
  margin-left: 10px;
  vertical-align: -4px;
}
.page-body a[href$=".docx"]::after,
.entry-body a[href$=".docx"]::after {
  background: url(/infosys/theme-images/i_docx.png) 0 0 no-repeat;
  background-size: 100%;
}
.page-body a[href$=".pptx"]::after,
.entry-body a[href$=".pptx"]::after {
  background: url(/infosys/theme-images/i_pptx.png) 0 0 no-repeat;
  background-size: 100%;
}
.page-body a[href$=".xls"]::after,
.page-body a[href$=".xlsx"]::after,
.entry-body a[href$=".xls"]::after,
.entry-body a[href$=".xlsx"]::after {
  background: url(/infosys/theme-images/i_xlsx.png) 0 0 no-repeat;
  background-size: 100%;
}

.n-set h3,
.n-set dd a {
  position: relative;
}
.n-set h3::after,
.n-set dd a::after {
  content: "";
  display: inline-block;
}

.i-site::after {
  width: 16px;
  height: 16px;
  background: url(/infosys/theme-images/i_site.png) 0 0 no-repeat;
  background-size: 100%;
  margin-left: 10px;
  vertical-align: -1px;
}

.n-set a[href$=".pdf"] h3,
.n-set a[href$=".docx"] h3,
.n-set a[href$=".xls"] h3,
.n-set a[href$=".xlsx"] h3,
.n-set a[href$=".pptx"] h3,
.n-set dd a[href$=".pdf"],
.n-set dd a[href$=".docx"],
.n-set dd a[href$=".xls"],
.n-set dd a[href$=".xlsx"],
.n-set dd a[href$=".pptx"] {
  display: inline-block;
}
.n-set a[href$=".pdf"] h3::after,
.n-set a[href$=".docx"] h3::after,
.n-set a[href$=".xls"] h3::after,
.n-set a[href$=".xlsx"] h3::after,
.n-set a[href$=".pptx"] h3::after,
.n-set dd a[href$=".pdf"]::after,
.n-set dd a[href$=".docx"]::after,
.n-set dd a[href$=".xls"]::after,
.n-set dd a[href$=".xlsx"]::after,
.n-set dd a[href$=".pptx"]::after {
  content: "";
  display: inline-block;
  width: 17px;
  height: 22px;
  background: url(/infosys/theme-images/i_pdf.png) 0 0 no-repeat;
  background-size: 100%;
  margin-left: 10px;
  vertical-align: -4px;
}
.n-set a[href$=".docx"] h3::after {
  background: url(/infosys/theme-images/i_docx.png) 0 0 no-repeat;
  background-size: 100%;
}
.n-set a[href$=".pptx"] h3::after {
  background: url(/infosys/theme-images/i_pptx.png) 0 0 no-repeat;
  background-size: 100%;
}
.n-set a[href$=".xls"] h3::after,
.n-set a[href$=".xlsx"] h3::after {
  background: url(/infosys/theme-images/i_xlsx.png) 0 0 no-repeat;
  background-size: 100%;
}
.n-set dd a[href$=".docx"]::after {
  background: url(/infosys/theme-images/i_docx.png) 0 0 no-repeat;
  background-size: 100%;
}
.n-set dd a[href$=".pptx"]::after {
  background: url(/infosys/theme-images/i_pptx.png) 0 0 no-repeat;
  background-size: 100%;
}
.n-set dd a[href$=".xls"]::after,
.n-set dd a[href$=".xlsx"]::after {
  background: url(/infosys/theme-images/i_xlsx.png) 0 0 no-repeat;
  background-size: 100%;
}


/* サイドメニュー */
.side-menu .children {
  display: none;
  overflow: hidden;
  width: 100%;
  transform: translateZ(0);
}

.side-menu a, .side-menu .toggle {
  box-sizing: border-box;
}

.side-menu .page_1 a {
  font-size: 1.4rem;
  line-height: 1.4;
  color: var(--text);
  display: block;
  position: relative;
  padding: 18px 20px;
  border-top: 1px solid var(--border);
  background-color: #fff;
}

.side-menu .page_2 a,
.side-menu .page_3 a,
.side-menu .page_4 a {
  font-size: 1.4rem;
  line-height: 1.4;
  color: var(--text);
  display: block;
  padding: 8px 20px 8px 20px;
  position: relative;
}
.side-menu .page_3 a { padding-left: 30px; }
.side-menu .page_4 a { padding-left: 40px; }

.side-menu li.is-current a {
  position: relative;
  display: block;
}

.side-menu li.is-current a::before {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background-color: #003E8D;
  position: absolute;
  top: 8px; left: 20px;
}
.side-menu .page_1.is-current a { padding-left: 45px; }
.side-menu .page_1.is-current a::before { top: 18px; }

.side-menu .page_2.is-current a { padding-left: 45px; }
.side-menu .page_2.is-current a::before { left: 20px; }

.side-menu .page_3.is-current a { padding-left: 55px; }
.side-menu .page_3.is-current a::before { left: 30px; }

.side-menu .page_4.is-current a { padding-left: 55px; }
.side-menu .page_4.is-current a::before { left: 30px; }


.side-menu li.is-current a::after {
  content: "";
  display: block;
  width: 7px;
  height: 7px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  position: absolute;
  top: 15px;
  left: 25px;
  transform: rotate(45deg);
}

.side-menu .page_1.is-current a::after { top: 25px; }
.side-menu .page_2.is-current a::after { left: 25px; }
.side-menu .page_3.is-current a::after { left: 36px; }
.side-menu .page_4.is-current a::after { left: 36px; }

.toggle {
  cursor: pointer;
  position: relative;
  padding-right:30px;
}

.toggle::after {
  content: "+";
  display: block;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1.5rem;
  position: absolute;
  top: 50%;
  right: 18px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  color: #fff;
}
.toggle.n-open::after { content: "\f068"; }
.toggle.nav-link_2nd::after { color: var(--col-main); }

.lv_3 .toggle.nav-link_2nd {
  padding-left: 30px;
  border-bottom:1px solid var(--border);
}
.side-menu .nav-faq li.is-current a { padding-left: 45px; }
.side-menu .nav-faq li.is-current a::before { top: 17px; }
.side-menu .nav-faq li.is-current a::after { top: 24px; }


/*********************************************************************************************

	COLOR

**********************************************************************************************/

.news-box { background-color: var(--box-bg) !important; }
.news-box h2 { color: var(--box-arw, #003E8D); }
.news-more a span::after { color: var(--box-arw, #003E8D); }

.i-cat {
  background-color: var(--ico-bg, #ffffff);
  color: var(--ico-txt, #003E8D);
}
