/****************
- page.css

- トップページ以外の共通css
- sitemap
- contact
- front
  - /xxx/index.html
  - /work/service.html
- news
- policy
- 403,404
****************/






/**************************************
** 共通css
*/


section.main {
	background: #eee;
	width: 100%;
	margin: 10px auto;
	padding-bottom: 20px;

}
@media screen and (max-width:549px){
	section.main{
		width: 95%;
		font-size: 14px;
	}
}
@media screen and (min-width:550px){
	section.main{
		font-size: 1rem;
	}
}


section.main > h1 {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	-webkit-align-items: center;
	-ms-align-items: center;
	align-items: center;
	background: #4a4a4a;
	height: 50px;
	border-top: 1px solid #eee;
	color: #eee;
	position: relative;
}

@media screen and (max-width:549px){
	section.main > h1 {
		font-size: 16px;
		text-indent: 16px;
	}
}
@media screen and (min-width:550px){
	section.main > h1 {
		font-size: 1.2rem;
		text-indent: 1rem;
	}
}

section.main > h1.pagetitle-limited::after{
	content: "学内限定コンテンツ";
	right:8px;
	position: absolute;
	border:white 1px solid;
	border-radius:3px;
	padding:1px 5px;
	text-indent:0;
}




section.main > article {
	color: #323232;
}
@media screen and (max-width:549px){
	section.main > article {
		margin: 21px;
		padding-right: 30px;
		font-size: 14px;
	}
}
@media screen and (min-width:550px){
	section.main > article {
		max-width: 900px;
		margin: 34px;
	}
}



/* ページタイトル下のリード文など*/
.main article div.overview{
	margin-bottom: 13px;
}

/* h2 */
section.main h2 {
	margin: 15px 0px;

}






/*
section.main > article > h2::before{
	padding-right: 0.2rem;
	content: "\025a0";
}*/
@media screen and (max-width:549px){
	section.main h2 {
		font-size: 16px;
		line-height: 22px;
	}
}
@media screen and (min-width:550px){
	section.main h2 {
		font-size: 1.1rem;
		line-height: 1.5rem;
	}
}


/* ul */
.main article ul.list {}


.main article ul.link li {
	line-height: 2.0rem;
}

.main article ul li{
	margin-bottom: 8px;
}
.main article ul li div{
	margin-top: 8px;
}





/* SP */
@media screen and (max-width:549px){
	.main article ul {
		margin-top: 8px;
	}
	.main article ul li{
		margin-bottom: 21px;
	}
}



/* a */
.main article a,
.main article a:visited {
	position: relative;
	color: #0044cc;
	/*border-bottom:1px solid #323232;*/
}

.main article a:hover {
	text-decoration: underline;
}

/* p */
.main article p.indentation {
	text-indent: 1rem;
}



/* ==================== */
/* sitemap */
/* -- */


@media screen and (max-width:549px){
	article#sitemap{
		font-size: 14px;
	}
}


/* サイトマップ */
div.sitemap-content {
	margin-bottom: 89px;
}
@media screen and (min-width:550px){
	div.sitemap-content {
		display: -webkit-flex;
		display: -moz-flex;
		display: -ms-flex;
		display: -o-flex;
		display: flex;
		flex-wrap: wrap;
	}
}


/* a */

/*
article#sitemap ul li a::before {
	padding-right : 0.3rem;
	content: "\025b6";
}

article#sitemap ul li a:hover {
	color: #d1474c;
}
*/


/* sitemap-list (第1階層) */
@media screen and (min-width:550px){
	article#sitemap .sitemap-list {
		flex: 1;/*親要素 - sitmap-content*/
		min-width: 400px;
	}
	
	article#sitemap .sitemap-list li{
		font-size: 1.1rem;
	}
}


/* ul.sitemap-list-page (第2階層) */
article#sitemap .sitemap-list-page {
	position:  relative; /*fot .sitemap-list-page::before*/
}

article#sitemap .sitemap-list-page::before{
	position: absolute;
	border-top: 1px solid #919191;
	content: "";
}

article#sitemap .sitemap-list-page li{
	margin-bottom: 13px;
}

@media screen and (max-width:549px){
	article#sitemap .sitemap-list-page {
		margin:8px 0px 23px 14px;
		padding-top: 13px;
	}
	article#sitemap .sitemap-list-page::before {
		top: -8px;
		right: 0px;
		left: -12px;
	}
}
@media screen and (min-width:550px){
	article#sitemap .sitemap-list-page {
		margin: 8px 0 23px 1.3rem; /*1rem + 疑似セレクタのpadding0.3rem*/
		padding-top: 21px;
		padding-left: 1rem;
		text-indent: -1rem;
	}
	
	article#sitemap .sitemap-list-page::before{
		top: -8px;
		right: 61px;
		left: -1.3rem;
	}

	article#sitemap .sitemap-list-page li{
		font-size: 1rem;
	}

}


/* sitemap-list-page ul (第3階層) */
@media screen and (max-width:549px){
	article#sitemap .sitemap-list-page ul{
		margin: 8px 30px 0 18px;
	}
}
@media screen and (min-width:550px){
	article#sitemap .sitemap-list-page ul{
		margin-top: 5px;
		margin-left: 1.3rem;
	}

	article#sitemap .sitemap-list-page ul li a::before {
		margin-left: 1rem;
		padding-right: 3px;
		content: "\025b6";
	}
}






/* 訪問者別メニュー */

.sitemap-user div{
	margin-bottom: 55px;
}


/* h1 */
.sitemap-user h1{
	padding-left: 5px;
	border-top: 1px solid #323232;
	border-bottom: 1px solid #323232;
	font-weight: bold;
}
@media screen and (max-width:549px){
	.sitemap-user h1{
		margin-bottom: 34px;
	}
}
@media screen and (min-width:550px){
	.sitemap-user h1{
		margin-bottom: 55px;
		font-size: 1.2rem;
		line-height:1.9rem;
	}
}


/* h2 */
article#sitemap .sitemap-user h2{
	margin-bottom: 34px;
	padding-left: 8px;
	border-left-width: 13px;
	border-left-style: solid;
}
@media screen and (max-width:549px){

}
@media screen and (min-width:550px){
	article#sitemap .sitemap-user h2{
		font-size: 1.1rem;
		line-height: 1.1rem;
	}
}


/* ul li */
@media screen and (max-width:549px){
	article#sitemap .sitemap-user ul {
		display: block;
		margin-bottom:8px;
	}
	
	article#sitemap .sitemap-user ul li {
		margin-right: 30px;
		margin-bottom: 13px;
	}
	
	article#sitemap .sitemap-user ul.flex {
		display: block;
	}
}
@media screen and (min-width:550px){
	article#sitemap .sitemap-user ul {
		/*flex*/
		flex-wrap: wrap;
		margin-bottom:8px;
		margin-left:1.3rem;
	}

	article#sitemap .sitemap-user li {
		margin-right:34px;
	}
}






/* ==================== */
/* お問い合わせ - contact */
/* -- */

#contact .contact-all {
/*	display: inline-block;*/
	margin-top: 8px;
	padding: 13px;
/*	border: 1px solid #919191;*/
	border-left: 13px solid #323232;
}

	#contact .contact-item {
		margin-top: 34px;
	}

/* h1 */
article#contact h1 {
    margin: 15px 0px;
}
article#contact h1::before{
	padding-right: 0.3rem;
	content:"\025a0";
}
@media screen and (max-width:549px){
	article#contact h1 {
		font-size: 14px;
		line-height: 21px;
	}
}
@media screen and (min-width:550px){
	article#contact h1 {
		font-size: 1.1rem;
	    line-height: 1.5rem;
	}
}


/* h2 */
article#contact h2 {
    margin:0 0;;
}
article#contact h2::before{
	content:"";
}
@media screen and (max-width:549px){
	article#contact h2 {
		font-size: 14px;
	    line-height: 14px;
	}
	#contact p + h2{
		margin-top: 21px;
	}
}
@media screen and (min-width:550px){
	article#contact h2 {
		font-size: 1rem;
	    line-height: 1rem;
	}
	#contact p + h2{
		margin-top: 13px;
	}
}


/* p */

@media screen and (max-width:549px){

	#contact .contact-item p {
		font-size: 12px;
		margin-bottom: 8px;
	}
}
@media screen and (min-width:550px){

	#contact .contact-item p {
		margin-left: 1.3rem;
	}
}






/* ==================== */
/* front */
/* -- */


/* ul */
article#front ul li {
	margin-bottom: 8px;

}
@media screen and (max-width:549px){
	article#front ul li {
		font-size: 14px;
	}
}
@media screen and (min-width:550px){
	article#front ul li {
		font-size: 1.0rem;
	}
}

/*ul ul*/
article#front ul ul{
	margin-top: 13px;
	margin-left: 10px;
}
article#front ul ul li:not(:last-child) {
	margin-bottom: 13px;
}










/* ==================== */
/* news */
/* -- */


#news time {
	display: inline-block;
	min-width: 7rem;
	}
	@media screen and (max-width:549px){
		#news time {
			display: block;
		}
	}

/* exlink - icon */
#news a.exlink::after { /* icon */
	display: inline-block;
	position: absolute;
	top: 2px;
	background-image: url(/../img/exlink_blue.svg);
	background-size: contain;
	border-bottom: none;
	content: "";
	}

	@media screen and (max-width:549px){
		#news a.exlink {
			margin-left: 20px;
		}
		#news a.exlink::after {
			left: -19px;
			width: 16px;
			height: 16px;
			/*top: 0;*/
		}
	}

	@media screen and (min-width:550px){
		#news a.exlink {
			margin-left: 1.3em;
		}
		#news a.exlink::after {
			left: -1.3rem;
			/*top: -10%;*/
			width: 1.2em;
			height: 1.2em;
		}
	}











/* ==================== */
/* policy */
/* -- */

	#policy p {
		/*text-indent: 1rem;*/
	}
	/* 外部サイトのアイコン */
	#policy a {
		position: relative;
    	padding-left: 3px;
    }
	#policy a.exlink::before {
	    content: "";
	    width: 1.2em;
    	height: 1.2em;
    	display: inline-block;
    	position: absolute;
    	top: 10%;
    	background-image: url(/img/exlink_blue.svg);
    	background-size: contain;
    	border-bottom: none;
    	}

    #policy a span{
    	padding-left: 23px;/*アイコン分の余白*/
    }





/* ==================== */
/* 403 404 */
/* -- */
@media screen and (max-width:549px){
	section.page403 {
		margin-top: 95px;
	}
	section.page404 {
		margin-top: 95px;
	}
}






/* ==================== */
/* front */
/* -- */



section.main .page h2,
section.main .front h2,
section.main #front h2{
	padding: 8px 13px;
	border-left: 13px solid #323232;
	position: relative;

}

section.main .page h2::before,
section.main .page h2::after,
section.main .front h2::before,
section.main .front h2::after,
section.main #front h2::before,
section.main #front h2::after {
  background-image: linear-gradient(to right, #323232, 80%, transparent); /* 線の両端を透過 */
  background-repeat: no-repeat;
  content: "";
  height: 1px; /* 横線の高さ */
  left: 0; /* 線を中央寄せ */
  position: absolute;
  right: 0; /* 線を中央寄せ */
  width: 100%; /* 横線の長さの割合 */
}

section.main .page h2::before,
section.main .front h2::before,
section.main #front h2::before {
  bottom: 0; /* タイトルの下に配置 */
}
section.main .page h2::after,
section.main .front h2::after,
section.main #front h2::after {
  top: 0; /* タイトルの上に配置 */
}



section.main #front h2:nth-child(n+2) {
	margin-top: 34px;
}

.front ul,
#front ul {
	margin-left:21px;
}

.front li::before,
#front li::before{
	padding-right: 0.5rem;
	content: "\025a0";
}








