@charset "UTF-8";

/* ------------------------------------------------------------
  Reset / Normalize (lightweight)
  - 目的：ブラウザ差を潰し、上書きしやすい土台を作る
------------------------------------------------------------ */

/* box model を統一（疑似要素も含める） */
*, *::before, *::after {
  box-sizing: border-box;
}

/* 主要ブロックの余白を落とす（列挙より意図が明確） */
body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd {
  margin: 0;
}

/* リストの見た目を消す（必要な箇所で戻す前提） */
ul, ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* テーブル */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* 画像・メディアの扱いを安定させる */
picture, svg, video, canvas {
  display: block;
  max-width: 100%;
  height: auto;
}
img {
  max-width: 100%;
  height: auto;
}

/* フォーム部品のフォントを揃える（デフォ差対策） */
button, input, select, textarea {
  font: inherit;
}

/* リンクは必要に応じてプロジェクト方針で */
a {
  color: inherit;
  text-decoration: none; /* 下線を残したいならここは消す */
}



/* ------------------------------------------------------------
  Base
------------------------------------------------------------ */

html {
  line-height: 1.5;          /* ここで基準を決める */
  -webkit-text-size-adjust: 100%;
  /* 旧来の overflow-y: scroll 相当の「ガタつき防止」目的なら検討
     対応が気になる場合は overflow-y: scroll のままでもOK */
  /* scrollbar-gutter: stable; */
}

body {
  font-family: "Noto Sans", "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;
  line-height: 1.5;
  position:relative;
}

/* ------------------------------------------------------------
  Utility: PC / SP switch
  - クラス名はそのまま維持
------------------------------------------------------------ */
@media (min-width: 768px) {
  .pcOFF { display: none; }   /* 基本は !important なし推奨 */
}
@media (max-width: 767px) {
  .spOFF { display: none; }
}

/* !important が必要な運用（既存CSSが強すぎて負ける等）なら、ここだけ戻す */
/*
@media (min-width: 768px) { .pcOFF { display: none !important; } }
@media (max-width: 767px) { .spOFF { display: none !important; } }
*/


/* ----------
#wrapper
   ---------- */
#wrapper{
	margin-top:100px;
}

/* SP */
@media screen and (max-width: 767px) {
	#wrapper{
		margin-top:73px;
	}
}



/* ----------
pageHeader
   ---------- */

.pageHeader {
}

.pageHeader .inner {
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
	padding-bottom: clamp(20.0000px, calc(5.8594vw + -25.0000px), 35.0000px);
	margin-bottom: clamp(22.0000px, calc(7.0313vw + -32.0000px), 40.0000px);
	border-bottom:solid 1px #EFEFEF;
}

/* ---- */

/* ---- */
.pageHeader .inner .tit {
	font-size: clamp(20.0000px, calc(3.1250vw + -4.0000px), 28.0000px);
	text-align:center;
}

/* Wide Breakpoint */
@media screen and (max-width: 980px) {
  .pageHeader .inner {
    width: calc(100% - 30px);
  }
}

/* SP */
@media screen and (max-width: 767px) {
}






/* ----------
mainContent
   ---------- */
.mainContent{
	border:solid 2px #f00;
}





/* ----------
breadcrumb
   ---------- */

.breadcrumb {
  width: 100%;
  max-width:1400px;
  margin:0 auto;

  padding: 14px 0;
  background: #fff;
  color: #2D6540;
  font-size: clamp(13.0000px, calc(0.3906vw + 10.0000px), 14.0000px);
  font-weight: 600;
  line-height: 1.4;
  margin-bottom:25px;
}

.breadcrumb * {
  box-sizing: border-box;
}

/* ---- */

/* ---- */
.breadcrumb .breadcrumb__lst {
  display: flex;
  align-items: center;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* 先頭アイコン */
.breadcrumb .breadcrumb__lst::before {
  content: "";
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  background: url("/shared/img/breadcrumb_icon.png") no-repeat center / contain;
}

.breadcrumb .breadcrumb__lst .breadcrumb__lst__item {
  display: inline-flex;
  align-items: center;
  color: #2D6540;
  white-space: nowrap;
}

.breadcrumb .breadcrumb__lst .breadcrumb__lst__item:not(:last-child)::after {
  content: ">";
  display: inline-block;
  margin-left: 10px;
  color: #222222;
  opacity: 0.9;
}

.breadcrumb .breadcrumb__lst .breadcrumb__lst__item a {
  color: #2D6540;
  text-decoration: none;
}

.breadcrumb .breadcrumb__lst .breadcrumb__lst__item a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 最後の要素（現在地） */
.breadcrumb .breadcrumb__lst .breadcrumb__lst__item:last-child {
  color: #222222;
}

/* Wide Breakpoint */
@media screen and (max-width: 1400px) {
  .breadcrumb {
    width: calc(100% - 30px);
  }
}

/* SP */
@media screen and (max-width: 767px) {
  .breadcrumb {
    padding: 12px 0;
  }

  .breadcrumb .breadcrumb__lst {
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .breadcrumb .breadcrumb__lst::-webkit-scrollbar {
    display: none;
  }

  .breadcrumb .breadcrumb__lst .breadcrumb__lst__item {
    flex: 0 0 auto;
  }
}




/* ----------
footer
   ---------- */
.footer{
}

.footer .inner{
}

/* ---- */
.footer .footer__lnkBox{
	background:#2D6540;
}

.footer .footer__lnkBox .footer__lnkBox__lnk{
	width:100%;
	max-width:1200px;
	margin:0 auto;
	padding:35px 0;

	display:flex;
	gap:0;
	flex-wrap:wrap;

}

.footer .footer__lnkBox .footer__lnkBox__lnk .item{
	width:20%;
	text-align:center;
}
.footer .footer__lnkBox .footer__lnkBox__lnk .item:first-child{
	text-align:left;
}
.footer .footer__lnkBox .footer__lnkBox__lnk .item:last-child{
	text-align:right;
}

.footer .footer__lnkBox .footer__lnkBox__lnk .item a{
	color:#fff;
	font-size: clamp(13.0000px, calc(0.7813vw + 7.0000px), 15.0000px);
	text-decoration:underline;
}

/* ---- */
.footer .footer__infoBox{
	background:#2B2B2B;
}
.footer__infoBox__inner{
	width:100%;
	max-width:1200px;
	margin:0 auto;
	padding:35px 0;

	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	align-items:flex-end;

	color:#fff;
}
.footer .footer__infoBox .footer__infoBox__info{
	display:flex;
	flex-wrap:wrap;
	gap:15px;
}

.footer .footer__infoBox .footer__infoBox__info .logo{
}

.footer .footer__infoBox .footer__infoBox__info .logo a{
}

.footer .footer__infoBox .footer__infoBox__info .logo img{
	width:100%;
	max-width:257px;
	height:auto;
}

.footer .footer__infoBox .footer__infoBox__info .info{
	font-size: clamp(11.0000px, calc(0.3906vw + 8.0000px), 12.0000px);
}

.footer .footer__infoBox .footer__infoBox__info .info .info__add{
	display:block;
}

.footer .footer__infoBox .footer__infoBox__info .info .info__tit{
	display:block;
}

.footer .footer__infoBox .footer__infoBox__info .info .info__tel{
	display:block;
}

/* ---- */
.footer .footer__infoBox .footer__infoBox__address{
	font-size: clamp(10.0000px, calc(0.7813vw + 4.0000px), 12.0000px);
	font-style:normal;
	text-align:right;
}

/* Wide Breakpoint */
@media screen and (max-width: 1200px) {
	.footer .footer__lnkBox .footer__lnkBox__lnk{
	}
	.footer__infoBox__inner{
		max-width:calc( 100% - 30px);
	}
}
@media screen and (max-width: 1200px) {

	.footer .footer__lnkBox .footer__lnkBox__lnk{
		padding:0;
	}
	.footer .footer__lnkBox .footer__lnkBox__lnk .item{
		width:50%;
		text-align:center !important;
	}
	.footer .footer__lnkBox .footer__lnkBox__lnk .item a{
		display:block;
		text-decoration:none;
		width:100%;
		padding:15px 0;
	}
	.footer .footer__lnkBox .footer__lnkBox__lnk .item:first-child{
		width:100%;
		border-bottom:dashed 1px #fff;
	}	
	.footer .footer__lnkBox .footer__lnkBox__lnk .item:nth-child(2) {
		border-right:dashed 1px #fff;
		border-bottom:dashed 1px #fff;
	}
	
	.footer .footer__lnkBox .footer__lnkBox__lnk .item:nth-child(3) {
		border-bottom:dashed 1px #fff;
	}
	
	.footer .footer__lnkBox .footer__lnkBox__lnk .item:nth-child(4) {
		border-right:dashed 1px #fff;
	}
	
	.footer .footer__lnkBox .footer__lnkBox__lnk .item:last-child {
	}


}

/* SP */
@media screen and (max-width: 1000px) {
	.footer .footer__infoBox .footer__infoBox__info{
		width:100%;
		margin-bottom:15px;
	}

	.footer .footer__infoBox .footer__infoBox__info .logo{
		width:100%;
		text-align:center;
	}
	.footer .footer__infoBox .footer__infoBox__info .logo a{
		text-align:center;
	}
	.footer .footer__infoBox .footer__infoBox__info .info{
		width:100%;
		text-align:center;
	}
	.footer .footer__infoBox .footer__infoBox__address{
		width:100%;
		text-align:center;
	}
}


/* SP */
@media screen and (max-width: 767px) {
}



/* ----------
.pageLayout
---------- */
.pageLayout{
	/*
	background:url(../img/topMainContent_bk.png) no-repeat center center;
	background-size:cover;
	*/
	position:relative;
}

.pageLayout__inner {
	width:100%;
	max-width:1400px;
	margin:0 auto;

	display:flex;
	flex-wrap:wrap;
	gap:0px 30px;
	position:relative;
}
.pageLayout__inner:before{
	content:"";
	display:block;
	height:100%;
	width:100%;
	position:absolute;
	left:-100%;
	top:0;
	background:#fff;
	z-index:1;
}

.pageUtility{
	width:calc( 100% - ( 30px + 370px) );
	order:2;

	padding-top: clamp(30.00px, calc(7.81vw + -30.00px), 50.00px);
	padding-bottom: clamp(80.0000px, calc(15.6250vw + -40.0000px), 120.0000px);
}
body:not(.topPage) .pageUtility{
	padding-top: 0
}

/* 基本的な書式は sideNav.css に記述*/
.sidebar{
}


@media screen and (max-width: 1400px) {
	.pageLayout__inner {
		max-width:calc(100% - 30px);
	}
}
@media screen and (max-width: 1100px) {
	.pageLayout__inner:before{
		content:none;
	}
	.pageUtility{
		width:100%;
		order:1;
	}
}
@media screen and (max-width: 767px) {
	.pageLayout{
		/*background-image:url(../img/topMainContent_sp_bk.png);*/
	}
}


/* CSS（完全なソースコード例） */
/* ----------
topBannerArea
---------- */
.topBannerArea{
  background: #eaf2ea;          /* 画像の薄いグリーン帯の雰囲気 */
  padding: 18px 0 50px;
  overflow-x:clip;
}

.topBannerArea .inner{
  max-width: 1400px;            /* PC最大幅 1600px */

  margin: 0 auto;               /* コンテンツ中央揃え */
	margin-top:-80px;

  padding: 0 0px;              /* 端の余白 */
  position: relative;           /* 矢印の絶対配置用 */
}

/* Slick対象 */
.topBannerArea__list{
  margin: 0;
  padding: 0;
  list-style: none;
}

.topBannerArea__list .slick-track{
  margin-left: auto;
  margin-right: auto;
}


/* スライド間の余白（ガター） */
.topBannerArea__list .slick-slide{
  padding: 0 10px;
  box-sizing: border-box;
}

/* クリック領域・画像 */
.topBannerArea__item a{
  display: block;
  overflow: hidden;
  text-decoration: none;
}

.topBannerArea__item img{
  display: block;
  width: 100%;
  height: auto;
}

/* Slickのデフォルト矢印・ドットを調整 */
.topBannerArea .slick-dots{
  display: none !important; /* デザイン上、不要なら非表示 */
}

/* カスタム矢印 */
.topBannerArea .slick-arrow{
  width: 56px;
  height: 56px;
  z-index: 5;
}

.topBannerArea .slick-prev,
.topBannerArea .slick-next{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);

  width:60px;
  height:auto;
}

.topBannerArea .slick-prev{ left: -30px; }
.topBannerArea .slick-next{ right: -30px; }

/* slick-theme.css の疑似要素アイコンを消す */
.topBannerArea .slick-prev:before,
.topBannerArea .slick-next:before{
  content: "";
}

/* 画像矢印の見た目 */
.topBannerArea .topBannerArea__arrowImg{
  display: block;
  width: 60px;
  height: 60px;
}

/* 矢印の無効化時 */
.topBannerArea .slick-disabled{
  opacity: .3;
  pointer-events: none;
}
/* SP */
@media screen and (max-width: 1450px) {

  .topBannerArea .slick-arrow{
    width: 48px;
    height: 48px;
  }

  .topBannerArea .topBannerArea__arrowImg{
    width: 48px;
    height: 48px;
  }

	.topBannerArea .slick-prev{ left: -15px; }
	.topBannerArea .slick-next{ right: -27px; }
}


/* Wide Breakpoint */
@media screen and (max-width: 1400px) {
  .topBannerArea .inner{
    width: calc(100% - 30px);   /* 既存方針に合わせる */
    padding: 0;
  }
}



/* SP */
@media screen and (max-width: 767px) {
  .topBannerArea{
    padding: 14px 0;
  }

  .topBannerArea .slick-arrow{
    width: 48px;
    height: 48px;
  }

  .topBannerArea .topBannerArea__arrowImg{
    width: 48px;
    height: 48px;
  }

	.topBannerArea .slick-prev{ left: -15px; }
	.topBannerArea .slick-next{ right: -27px; }
}


/* SP */
@media screen and (max-width: 450px) {
	.topBannerArea__list .slick-slide{
	  padding: 0 0px;
	}
  .topBannerArea .slick-arrow{
    width: 35px;
    height: 35px;
  }

  .topBannerArea .topBannerArea__arrowImg{
    width: 35px;
    height: 35px;
  }

	.topBannerArea .slick-prev{ left: -15px; }
	.topBannerArea .slick-next{ right: -40px; }
}


/* =========================
   Top News
   ========================= */

.topNews{
  border: 1px solid #94B19F; /* 添付画像記事全体の線 */
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08); /* box-shadowあり */
  background: rgba(255, 255, 255, 0.7);
}

.topNews .topNews__inner{
  padding: 30px;
}

/* ---- */
/* Block */
.topNews .topNews__block{
}

.topNews .topNews__block--important{
}

.topNews .topNews__block--recent{
  margin-top: 40px;
}

/* ---- */
/* Head */
.topNews .topNews__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 10px;
}

.topNews .topNews__title{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #222222;
  font-size: clamp(16px, 0.5vw + 14px, 20px);
  font-weight: 700;
}

.topNews .topNews__titleIcon{
  width: 28px;
  height: 28px;
  display: block;
}

/* 過去の記事一覧ボタン（border/文字色：#2D6540、アイコン画像使用） */
.topNews .topNews__more{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 25px 8px 12px;
  color: #2D6540;              /* 指定 */
  border: 1px solid #2D6540;   /* 指定 */
  background: #fff;
  text-decoration: none;
  font-size: 12px;
  line-height: 1;
  border-radius: 2px;
}

.topNews .topNews__more:hover,
.topNews .topNews__more:focus-visible{
  text-decoration: underline;
}

.topNews .topNews__more{
  background: url(../img/icon_btn_arrow.png) no-repeat right 10px center;
}

.topNews .topNews__moreIcon{
  width: 14px;
  height: 14px;
  display: block;
}

/* ---- */
/* List */
.topNews .topNews__list{
  margin: 0;
  padding: 0;
  list-style: none;
}

.topNews .topNews__item{
  border-bottom: solid 1px #F3F2F4; /* 記事の区切り罫線 */
}

.topNews .topNews__item:last-child{
  border-bottom: none;
}

/* ---- */
/* Link layout */
.topNews .topNews__link{
  position: relative;
  display: grid;
  grid-template-columns: 195px 1fr; /* 左：日付＋カテゴリ / 右：タイトル＋学生等 */
  align-items: center;
  gap: 14px 18px;
  padding: 18px 0;
  text-decoration: none;
  color: inherit;
}

.topNews .topNews__link:hover .topNews__text,
.topNews .topNews__link:focus-visible .topNews__text{
  text-decoration: underline;
}

/* ---- */
/* Meta (date + category label) */
.topNews .topNews__meta{
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.topNews .topNews__date{
  color: #ACACAC; /* 指定 */
  font-size: 14px;
  white-space: nowrap;
  width: 80px;
}

/* カテゴリラベル（サイズ統一） */
.topNews .topNews__label{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 26px;          /* サイズ揃え */
  padding: 0 14px;
  border-radius: 4px;
  font-size: 12px;       /* 指定 */
  line-height: 1;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  width: calc(100% - (80px + 12px));
}
.topNews .topNews__label--failure{
  background: #b92b2b; /* 指定 */
}

.topNews .topNews__label--other{
  background: #5C6CC0; /* 指定 */
}

.topNews .topNews__label--maintenance{
  background: #FFC001; /* 指定 */
  color: #222222;
}

.topNews .topNews__label--event{
  background: #82C05C; /* 指定 */
}

/* ---- */
/* Content (title + targets inline / wrap when narrow) */
/* ★ .topNews__targets 親を廃止したので、.topNews__content 自体を折り返し可能な横並びにする */
.topNews .topNews__content{
  display: flex;
  align-items: center;
  flex-wrap: wrap;      /* 幅が狭いとき、必要に応じて次行へ */
  gap: 8px 10px;        /* 横/縦の間隔 */
  min-width: 0;
  padding-right:20px;
}

/* タイトルは優先して伸びる（ラベルは後ろに付いて、狭いと折り返す） */
.topNews .topNews__text{
  margin: 0;
  color: #222222; /* 指定 */
  font-size: clamp(14.0000px, calc(0.3906vw + 11.0000px), 15.0000px); /* 指定 */
  font-weight: 600;
  line-height: 1.6;
  min-width: 0;
  flex: 1 1 18em;       /* ★ここで「タイトル＋ラベル」を同じ行にしつつ、狭い時は自然に改行 */
}

/* 対象ラベル（学生/教員/職員/一般） */
.topNews .topNews__target{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 26px;          /* サイズ揃え */
  padding: 0 12px;
  border-radius: 4px;
  font-size: 12px;       /* 指定 */
  line-height: 1;
  font-weight: 700;
  background: #fff;
  border: 1px solid currentColor;
  white-space: nowrap;
  flex: 0 0 auto;        /* ★ラベルは内容幅で保持（必要なら次行へ回る） */
}

.topNews .topNews__target--student{
	background: #eef6ff;
	border-color: #bcd9ff;
	color: #245a9b;
}

.topNews .topNews__target--teacher{
	background: #f3f0ff;
	border-color: #d2c7ff;
	color: #5a43b5;
}

.topNews .topNews__target--staff{
	background: #eefaf0;
	border-color: #bfe2c5;
	color: #2f7d3f;
}

.topNews .topNews__target--important{
	background: #fff0f0;
	border-color: #e2b1b1;
	color: #b92b2b;
}

.topNews .topNews__target--general{
	background: #fff7ea;
	border-color: #f0d4a4;
	color: #9a6400;
}

/* ---- */
/* Right arrow (chevron) */
.topNews .topNews__arrow{
  position: absolute;
  right: 0;
  top: 50%;
  width: 7px;
  height: 7px;
  border-top: 2px solid #2D6540;
  border-right: 2px solid #2D6540;
  transform: translateY(-50%) rotate(45deg);
}


/* Wide Breakpoint */
@media screen and (max-width: 1100px){
}

/* SP */
@media screen and (max-width: 767px){
  .topNews .topNews__inner{
    padding: 18px;
  }

  .topNews .topNews__head{
    align-items: flex-start;
    gap: 12px;
  }

  .topNews .topNews__more{
    flex: 0 0 auto;
  }

  .topNews .topNews__link{
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 16px 0;
  }

  .topNews .topNews__arrow{
    display: none;
  }
}


/* =========================
   News List
   ========================= */

.newsList{
	margin-bottom:80px;
}

.newsList .newsList__inner{
  padding: 30px;
}

/* ---- */
/* Block */
.newsList .newsList__block{
}

.newsList .newsList__block--important{
}

.newsList .newsList__block--recent{
  margin-top: 40px;
}

/* ---- */
/* Head */
.newsList .newsList__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 10px;
}

.newsList .newsList__title{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: #222222;
  font-size: clamp(16px, 0.5vw + 14px, 20px);
  font-weight: 700;
}

.newsList .newsList__titleIcon{
  width: 28px;
  height: 28px;
  display: block;
}

/* 過去の記事一覧ボタン（border/文字色：#2D6540、アイコン画像使用） */
.newsList .newsList__more{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 25px 8px 12px;
  color: #2D6540;              /* 指定 */
  border: 1px solid #2D6540;   /* 指定 */
  background: #fff;
  text-decoration: none;
  font-size: 12px;
  line-height: 1;
  border-radius: 2px;
}

.newsList .newsList__more:hover,
.newsList .newsList__more:focus-visible{
  text-decoration: underline;
}

.newsList .newsList__more{
  background: url(../img/icon_btn_arrow.png) no-repeat right 10px center;
}

.newsList .newsList__moreIcon{
  width: 14px;
  height: 14px;
  display: block;
}

/* ---- */
/* List */
.newsList .newsList__list{
  margin: 0;
  padding: 0;
  list-style: none;
}

.newsList .newsList__item{
  border-bottom: solid 1px #F3F2F4; /* 記事の区切り罫線 */
}

.newsList .newsList__item:last-child{
  border-bottom: none;
}

/* ---- */
/* Link layout */
.newsList .newsList__link{
  position: relative;
  display: grid;
  grid-template-columns: 195px 1fr; /* 左：日付＋カテゴリ / 右：タイトル＋学生等 */
  align-items: center;
  gap: 14px 18px;
  padding: 18px 0;
  text-decoration: none;
  color: inherit;
}

.newsList .newsList__link:hover .newsList__text,
.newsList .newsList__link:focus-visible .newsList__text{
  text-decoration: underline;
}

/* ---- */
/* Meta (date + category label) */
.newsList .newsList__meta{
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.newsList .newsList__date{
  color: #ACACAC; /* 指定 */
  font-size: 14px;
  white-space: nowrap;
  width: 80px;
}

/* カテゴリラベル（サイズ統一） */
.newsList .newsList__label{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 26px;          /* サイズ揃え */
  padding: 0 14px;
  border-radius: 4px;
  font-size: 12px;       /* 指定 */
  line-height: 1;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  width: calc(100% - (80px + 12px));
}

.newsList .newsList__label--other{
  background: #5C6CC0; /* 指定 */
}

.newsList .newsList__label--maintenance{
  background: #FFC001; /* 指定 */
  color: #222222;
}

.newsList .newsList__label--event{
  background: #82C05C; /* 指定 */
}
.newsList .newsList__label--failure{
  background: #b92b2b; 
}

/* ---- */
/* Content (title + targets inline / wrap when narrow) */
/* ★ .newsList__targets 親を廃止したので、.newsList__content 自体を折り返し可能な横並びにする */
.newsList .newsList__content{
  display: flex;
  align-items: center;
  flex-wrap: wrap;      /* 幅が狭いとき、必要に応じて次行へ */
  gap: 8px 10px;        /* 横/縦の間隔 */
  min-width: 0;
  padding-right:20px;
}

/* タイトルは優先して伸びる（ラベルは後ろに付いて、狭いと折り返す） */
.newsList .newsList__text{
  margin: 0;
  color: #222222; /* 指定 */
  font-size: clamp(14.0000px, calc(0.3906vw + 11.0000px), 15.0000px); /* 指定 */
  font-weight: 600;
  line-height: 1.6;
  min-width: 0;
  flex: 1 1 18em;       /* ★ここで「タイトル＋ラベル」を同じ行にしつつ、狭い時は自然に改行 */
}

/* 対象ラベル（学生/教員/職員/一般） */
.newsList .newsList__target{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 26px;          /* サイズ揃え */
  padding: 0 12px;
  border-radius: 4px;
  font-size: 12px;       /* 指定 */
  line-height: 1;
  font-weight: 700;
  background: #fff;
  border: 1px solid currentColor;
  white-space: nowrap;
  flex: 0 0 auto;        /* ★ラベルは内容幅で保持（必要なら次行へ回る） */
}

.newsList .newsList__target--student{
	background: #eef6ff;
	border-color: #bcd9ff;
	color: #245a9b;
}

.newsList .newsList__target--teacher{
	background: #f3f0ff;
	border-color: #d2c7ff;
	color: #5a43b5;
}

.newsList .newsList__target--staff{
	background: #eefaf0;
	border-color: #bfe2c5;
	color: #2f7d3f;
}

.newsList .newsList__target--general{
	background: #fff7ea;
	border-color: #f0d4a4;
	color: #9a6400;
}
.newsList .newsList__target--important{
	background: #fff0f0;
	border-color: #e2b1b1;
	color: #b92b2b;
}

/* ---- */
/* Right arrow (chevron) */
.newsList .newsList__arrow{
  position: absolute;
  right: 0;
  top: 50%;
  width: 7px;
  height: 7px;
  border-top: 2px solid #2D6540;
  border-right: 2px solid #2D6540;
  transform: translateY(-50%) rotate(45deg);
}

/* Wide Breakpoint */
@media screen and (max-width: 1100px){
}

/* SP */
@media screen and (max-width: 767px){
  .newsList .newsList__inner{
    padding: 18px;
  }

  .newsList .newsList__head{
    align-items: flex-start;
    gap: 12px;
  }

  .newsList .newsList__more{
    flex: 0 0 auto;
  }

  .newsList .newsList__link{
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 16px 0;
  }

  .newsList .newsList__arrow{
    display: none;
  }
}

/* =========================
   Search News List
   ========================= */

.searchNews{
	margin-bottom: 80px;
}

.searchNews__heading{
	line-height: 1.5;
}

.searchNews__list{
	margin: 0;
	padding: 0;
	list-style: none;
}

.searchNews__item{
	border-bottom: solid 1px #F3F2F4;
}

.searchNews__item:last-child{
	border-bottom: none;
}

.searchNews__link{
	position: relative;
	display: grid;
	grid-template-columns: 120px 1fr;
	align-items: start;
	gap: 14px 24px;
	padding: 22px 20px 22px 0;
	text-decoration: none;
	color: inherit;
}

.searchNews__link:hover .searchNews__title,
.searchNews__link:focus-visible .searchNews__title{
	text-decoration: underline;
}

.searchNews__meta{
	min-width: 0;
}

.searchNews__date{
	display: inline-block;
	color: #ACACAC;
	font-size: 14px;
	line-height: 1.4;
	white-space: nowrap;
}

.searchNews__content{
	min-width: 0;
	padding-right: 20px;
}

.searchNews__title{
	margin: 0 0 8px;
	color: #222222;
	font-size: clamp(14px, calc(0.3906vw + 11px), 15px);
	font-weight: 600;
	line-height: 1.6;
}

.searchNews__excerpt{
	margin: 0;
	color: #666666;
	font-size: 14px;
	line-height: 1.8;
}

.searchNews__arrow{
	position: absolute;
	right: 0;
	top: 50%;
	width: 7px;
	height: 7px;
	border-top: 2px solid #2D6540;
	border-right: 2px solid #2D6540;
	transform: translateY(-50%) rotate(45deg);
}

.searchNews__pagination{
	margin-top: 40px;
}

.searchNews__pagination ul{
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.searchNews__pagination li{
	margin: 0;
}

.searchNews__pagination a{
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 8px 18px;
	color: #2D6540;
	border: 1px solid #2D6540;
	background: #fff;
	text-decoration: none;
	font-size: 12px;
	line-height: 1;
	border-radius: 2px;
}

.searchNews__pagination a:hover,
.searchNews__pagination a:focus-visible{
	text-decoration: underline;
}

/* SP */
@media screen and (max-width: 767px){
	.searchNews__link{
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 16px 0;
	}

	.searchNews__content{
		padding-right: 0;
	}

	.searchNews__title{
		margin-bottom: 6px;
	}

	.searchNews__excerpt{
		font-size: 13px;
		line-height: 1.7;
	}

	.searchNews__arrow{
		display: none;
	}
}

/* ----------
ページ内目次
---------- */
.pageIndexList {
	display: none;
	margin: 0 0 50px;
	padding: 26px 28px;
	border: 1px solid #d9e2ef;
	background: #fff;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
}

.pageIndexList.is-active {
	display: block;
}

.pageIndexList::before {
	display: block;
	margin-bottom: 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid #d9e2ef;
	color: #2d6540;
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.08em;
	content: "目次";
}

.pageIndexList ol {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: page-index;
}

.pageIndexList li {
	position: relative;
	margin: 0;
	padding: 0;
}

.pageIndexList li + li {
}

.pageIndexList a {
	position: relative;
	display: block;
	padding: 8px 12px 8px 42px;
	border-radius: 8px;
	color: #333;
	font-size: 15px;
	line-height: 1.7;
	text-decoration: none;
}

.pageIndexList a::before {
	position: absolute;
	top: 9px;
	left: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
}

/* h2：番号付き */
.pageIndexList .blog_tit_h2 {
	font-weight: 700;
	counter-increment: page-index;
}

.pageIndexList .blog_tit_h2::before {
	border-radius: 50%;
	background: #2d6540;
	color: #fff;
	content: counter(page-index);
}

/* h3 / FAQ質問：番号ではなく > */
.pageIndexList .blog_tit_h3 {
	padding: 0 12px 0 60px;
	font-size: 14px;
	color: #555;
}

.pageIndexList .blog_tit_h3::before {
	top: 4px;
	left: 40px;
	width: auto;
	height: auto;
	border-radius: 0;
	background: transparent;
	color: #7c8da6;
	font-size: 15px;
	font-weight: 700;
	content: "・";
}

/* スマホ調整 */
@media screen and (max-width: 767px) {
	.pageIndexList {
		margin-bottom: 36px;
		padding: 10px;
		border-radius: 10px;
	}

	.pageIndexList::before {
		margin-bottom: 14px;
		font-size: 18px;
	}

	.pageIndexList a {
		padding: 7px 10px 7px 38px;
		font-size: 14px;
	}

	.pageIndexList .blog_tit_h3 {
		padding: 0 10px 0 48px;
		font-size: 13px;
	}

	.pageIndexList .blog_tit_h3::before {
		top: 0;
		left: 22px;
	}
}
