/* ========================================
   カスタマイズCSS
   ======================================== */
html {
  scroll-behavior: smooth !important;
}
body{
  font-family: "M PLUS U", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 16px;
}
.row {
    margin-right: 0;
    margin-left: 0;
}
.container{
  max-width: 1200px;
  width: 100%;
}
.container-wrap{
  max-width: 100%;
  margin: 60px auto auto auto;
  background-color: #e9ecef54;
}
.container-wrap.page .row{
  display:none;
}
.container-wrap.home p{
  display:block;
  margin: 0 auto;
}
.navbar-brand {
  font-weight:normal;
  font-size: 1.9rem;
}
h3{
  color:#A72C29;
  font-weight: 400;
  border-bottom: solid 3px #938383;
  position: relative;
  margin-top: 20px;
  }

h3:after {
  position: absolute;
  content: " ";
  display: block;
  border-bottom: solid 3px #A72C29;
  bottom: -3px;
  width: 20%;
}
h4 {
    font-size: 1.5rem;
    padding: 20px 0;
    border-bottom: 1px dotted #334;
    margin-bottom: 20px;
}
.page + div h5 {
  display:inline-block;
  position: relative;
  padding: 0 65px;
  text-align: center;
  font-weight: normal;
  color: #a72c29;
  font-size: 1.18rem;
}
.page + div h5:before,
.page + div h5:after {
  position: absolute;
  top: calc(50% - 3px);
  width: 50px;
  height: 6px;
  content: '';
  border-top: solid 2px #A72C29;
  border-bottom: solid 2px #A72C29;
}
.page + div h5:before {
  left: 0;
}
.page + div h5:after {
  right: 0;
}
h6 {
    font-size: 1.2rem;
}
.new-stu-info {
	display: inline-block;
    font-weight: 500;
    border: 1px solid #a72c29;
    border-radius: 5px;
    padding: 5px 10px;
    margin-right: 5px;
}
.container-search .plugin{
    border-bottom: 0;
}
.anchor-info a{
	display: block;
    border: 1px solid #A72C29;
    width: 100%;
    margin: 10px auto 0 auto;
    padding: 35px;
    text-align: center;
    border-radius: 6px;
    font-size:1.3rem;
}
/* ホバー時 */
.anchor-info a:hover {
    background-color: #A72C29;
    color: #fff;
}
.card-modern {
	border-bottom: 0;
    padding-bottom:0;
}
.font-small{
	font-size:0.85rem;
}
table{
	font-size: 0.95rem;
}
table th{
	font-weight: 500;
}
strong{
	font-weight: 500;
}

/* ========================================
   タブ切り替え
   ======================================== */
/*タブを並べる設定*/
.tab-arrow {
    display: flex;
    flex-wrap: wrap;
    max-width: 100%;
}
/*タブ見出しの設定*/
.tab-arrow > label {
    flex: 1 1;
    order: -1;
    position: relative;
    min-width: 70px;
    padding: 0.7em 1em;
    font-weight: 500;
	font-size: 1.25rem;
    text-align: center;
    border-color: #a72c29;
    border-style: solid;
    border-width: 1px;
    cursor: pointer;
}
.tab-arrow > .label-1{
    color: #a72c29;
}
.tab-arrow > .label-2{
    color: #28a745;
}
.tab-arrow > .label-3{
    color: #f31818;
}
/*ホバーされた時とクリックされた時*/
.tab-arrow > label:hover,
.tab-arrow label:has(:checked) {
    background-color: #a72c29;
    color: #fff;
}
/*クリックされた時にでる矢印*/
.tab-arrow label:has(:checked)::before {
    position: absolute;
    bottom: -13px; /*縦位置*/
    left: 30%; /*横位置*/
    transform: translateX(-50%);
    width: 30px; /*横幅*/
    height: 15px; /*高さ*/
    background-color: #a72c29;
    content: '';
    clip-path: polygon(0 0, 100% 0, 50% 100%); /*三角の角部分*/
}
/*表示しない*/
.tab-arrow input {
    display: none;
}
/*デフォルトでは表示しない*/
.tab-arrow > div {
    display: none;
    width: 100%;
    padding: 1.5em 1em;
}
/*クリックされたら表示*/
.tab-arrow label:has(:checked) + div {
    display: block;
}
/* ========================================
   パンくず
   ======================================== */
.breadcrumb {
	justify-content: space-between;
	padding: 0;
    margin-bottom: 0;
    background-color: #fff;
    border-radius: 0;
    margin-top: 10px;
}
.breadcrumb.end {
	justify-content: end;
}
/* ========================================
   ナビゲーション
   ======================================== */
.navbar-nav li{
    margin-right: 6px;
}

/* ========================================
   外部リンク
   ======================================== */
h2.plugin-label{
    margin-bottom:5px;
   }
.outer-link a {
    display: inline-block;       /* 横に並べる */
    padding: 10px 12px;          /* 余白 */
    margin: 5px;                 /* 間隔 */
    border: 1px solid #A72C29;      /* 枠線 */
    border-radius: 50px;          /* 角丸 */
    text-decoration: none;       /* 下線削除 */
    color: #A72C29;                 /* 文字色 */
    background-color: #f9f9f9;   /* 背景 */
    transition: 0.2s;
}

/* ホバー時 */
.outer-link a:hover {
    background-color: #A72C29;
    color: #fff;
}
/* ========================================
   サイドバー
   ======================================== */
.sidebar-container {
	margin-bottom: 20px;
	margin-top: 10px;
}
.plugin-list{
	margin: 15px 0;
    font-size: 1.0rem;
}
/* ========================================
   詳細ページ　ラベル
   ======================================== */
.audience-labels {
  margin: 10px 0;
}

.label {
  display: inline-block;
  padding: 4px 10px;
  margin-right: 6px;
  font-size: 12px;
  border-radius: 12px;
  border: 1px solid #666;
}

/* 通常（控えめ） */
.label.normal {
  background-color: #e5e7eb;
  color: #444;
}

/* 強調表示（アクティブ） */
.label.active {
  color: #fff;
  border: 0;
}

/* 種別ごとの色（active時に効く） */
.label.staff.active {
  background-color: #3A5F8A;
}

.label.faculty.active {
  background-color: #C37A2E;
}

.label.student.active {
  background-color: #3F8A50;
}
/* ========================================
   トップページ上段
   ======================================== */
/* カードデザイン */
.container-top .menu-card .card {
  border-radius: 6px;
  transition: all 0.3s ease;
  box-shadow: 3px 3px 3px 0px rgba(0, 0, 0, 0.20);
}
.container-top .facultystaff .card {
  border: 1px solid #3A5F8A;   /* 少し明るい落ち着きブルー */
  background-color: #3A5F8A;
}

.container-top .student .card {
  border: 1px solid #3F8A50;   /* 元気だけど派手すぎないグリーン */
  background-color: #3F8A50;
}

.container-top .new-student .card {
  border: 1px solid #C9B037;   /* 明るめマスタード */
  background-color: #C9B037;
}
.container-top div .col-12{
  margin-bottom:20px;
}
.container-top .faq .card {
  border: 1px solid #C37A2E;   /* 温かみあるオレンジ */
  background-color: #C37A2E;
}


/* ホバーで浮き上がり */
.container-top .menu-card:hover .card {
  transform: translateY(-6px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
}

/* アイコン */
.container-top .icon {
  font-size: 3rem;
  color: #fff;
}

/* テキスト */
.container-top h5 {
  color: #fff;
}
/* ========================================
   よく利用されるサービス
   ======================================== */
/* カード全体 */
.container-service .menu-card .card {
  border: 1px solid #A72C29;
  background: #f8f9fa;
  border-radius: 6px;
  transition: all 0.3s ease;
  box-shadow: 3px 3px 3px 0px rgba(0, 0, 0, 0.20);
}
.container-service div .col-6{
  margin-bottom:20px;
}

/* hover浮き上がり */
.container-service .menu-card:hover .card {
  transform: translateY(-6px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
  background: #ffffff;
  border-color: #ff9f0a;
}

/* アイコン */
.container-service .icon {
  font-size: 2.8rem;
  color: #A72C29;
}

/* タイトル */
.container-service h5 {
  color: #A72C29;
}
/* ========================================
   下段のインフォメーションボタン
   ======================================== */

/* カードデザイン */
.container-info .menu-card .card {
  border: 1px solid #A72C29;
  background: #f8f9fa;
  border-radius: 6px;
  transition: all 0.3s ease;
  box-shadow: 3px 3px 3px 0px rgba(0, 0, 0, 0.20);
}
.container-info div .col-6{
  margin-bottom:20px;
}

/* hover浮き上がり */
.container-info .menu-card:hover .card {
  transform: translateY(-6px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
  background: #ffffff;
  border-color: #ff9f0a;
}

/* アイコン */
.container-info .icon {
  font-size: 2.6rem;
  color: #A72C29;
}

/* タイトル */
.container-info h5 {
  color: #A72C29;
}
.container-info span {
    font-size: 13px;
    padding-top: 10px;
    color: #333;
    border-top: 1px solid #a72c29;
}
/* ========================================
   IPAicatサービスからのお知らせ
   ======================================== */
.audience-labels + div{
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
/* ========================================
   困ったとき
   ======================================== */
details {
	margin-bottom: 20px;
}
summary+p{
	margin-left: 20px;
    padding: 20px 0 20px 0;
    border-bottom: 1px dotted #333;
    background-color: #e9ecef;
}
/* ========================================
   検索結果
   ======================================== */
.container-search-wrap{
	min-height: 400px;
}
.search-results-header {
	margin-top: 50px;
	margin-bottom: 0;
    border-bottom: 0;
}
.search-item h2{
	font-size: 1.5rem;
	margin-bottom: 20px;
	padding-left: 20px;
}
/* ========================================
   フッター
   ======================================== */
.footer-modern h4{
	border-bottom:none;
	margin-bottom: 0;
}
.footer-modern h4 span{
	font-size: 1.0rem;
}
.footer-modern li{
	list-style: none;
	margin-bottom: 3px;
}
.footer-modern li a{
	font-size: 0.85rem;
}
.footer .plugin {
    border-bottom: 0;
}
/* ========================================
   ページトップ
   ======================================== */
#pageTopBtn {
    position: fixed;
    bottom: 30px;
    right: 50px;

    width: 80px;
    height: 80px;

    background-color: #A72C29;
    color: #fff;
    border: 1px solid #fff;
    border-radius: 50%;

    font-size: 20px;
    cursor: pointer;

    display: none; /* 最初は非表示 */
    z-index: 999;

    transition: 0.3s;
}

#pageTopBtn:hover {
    background-color: #ff9f0a;
}
/* ========================================
   RESPONSIVE ADJUSTMENTS
   ======================================== */
@media (max-width: 1020px) and (min-width: 768px) {
	.container-top .col-6,
	.container-service  .col-6,
	.container-info .col-6{
		margin-bottom: 10px;
    	padding-right: 5px;
    	padding-left: 5px;
    }
	.anchor-info a{
		font-size: 1rem;
		padding: 10px;
	}
	.outer-link a {
		padding: 10px 10px;
	    margin: 3px 0;
	    font-size: 13px;
	}
}
@media (max-width: 768px) {
	.container{
	    padding-right: 0;
	    padding-left: 0;
	}
	.row {
	    margin-right: 0;
	    margin-left: 0;
	}
	h1.title {
		font-size: 1.8rem;
	}

	h2.title {
		font-size: 1.5rem;
	}
	h5 {
	    font-size: 1.15rem;
	}
	.p-4 {
	    padding: 1.2rem !important;
	}
	body {
		font-size: 0.95rem;
	}
	.navbar-brand {
	    margin: 0 auto 0 0;
		font-size: 1.0rem;
	}
	.navbar-nav {
	    background-color: #9f5258;
	}
	.navbar-nav li{
		border-bottom: 1px solid #fff;
	}
	.navbar .nav-link {
		border-radius: 0;
	}
	.navbar-nav li:nth-child(1) a::before {
	  content: "\f2c1"; /* icon code */
	  font-family: "Font Awesome 5 Free";
	  font-weight: 900;
	  margin-right: 6px;
	}
	.navbar-nav li:nth-child(2) a::before {
	  content: "\f51c"; /* icon code */
	  font-family: "Font Awesome 5 Free";
	  font-weight: 900;
	  margin-right: 6px;
	}
	.navbar-nav li:nth-child(3) a::before {
	  content: "\f501"; /* icon code */
	  font-family: "Font Awesome 5 Free";
	  font-weight: 900;
	  margin-right: 6px;
	}
	.navbar-nav li:nth-child(4) a::before {
	  content: "\f059"; /* icon code */
	  font-family: "Font Awesome 5 Free";
	  font-weight: 900;
	  margin-right: 6px;
	}
	.table-wrap{
		overflow:auto;
	}
	.plugin {
		padding: var(--space-md);
	}
	.container-search .plugin {
 	   padding-top: 0;
	}
	.container-wrap p{
		padding: 0;
	}
	.card-modern .card-body {
    	padding: 0;
    }
	.btn-primary-gradient {
		width: 100%;
		justify-content: center;
	}
	.card-modern {
		margin-top: 0 !important;
	}
	.anchor-info a{
		font-size: 1rem;
		padding: 10px;
	}
	.anchor-info{
		margin-bottom: 20px;
	    padding: 0;
	}
	.outer-link a {
		padding: 10px 10px;
	    margin: 3px 0;
	    font-size: 13px;
	}
	.outer-link{
	    margin-bottom: 20px;
	    padding: 0;
	}
	.container-top .col-6,
	.container-service  .col-6,
	.container-info .col-6{
		margin-bottom: 10px;
    	padding-right: 5px;
    	padding-left: 5px;
    }
	.container-info .col-12{
		margin-bottom: 20px;
	}
	.container-info span{
		text-align:left;
	}
	.responsive-table th,
	.responsive-table td {
		display: block;
		width: 100% !important;
	}
	.responsive-table th{
		background-color: #eee;
	}
	.responsive-table tr:last-child{
		border-bottom: solid 1px #ccc;
	}
	.footer-modern li{
		margin-bottom: 10px;
	}
}
