@charset "utf-8";

/* =========================
   Base
========================= */

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	color: var(--textW);
	font-family: "ヒラギノ角ゴ Pro W3","メイリオ",sans-serif;
	font-size: 16px;
	line-height: 1.9;
	background:var(--bg);
}

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

/*リンクの基本*/
a {
	color: var(--link);
	text-decoration: none;
}

a:visited {
	color: var(--linkVisited); 
}

a:hover {
	color: var(--linkHover);
}


/* =========================
   Layout wrappers
========================= */

#container {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.inner {
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: 20px;
	width: 100%;
}

/* =========================
   Header
========================= */

header {
	padding: 0 20px;
}

.home header {
	padding: 0;
}

#logo {
	width: 300px;
	margin-inline: auto;
}

.home #logo {
	display: none;
}

/* =========================
   Navigation (modern flex)
========================= */

#menubar {
	position: relative;
	z-index: 10;
	background: var(--manu);
	border-block: 1px solid #ccc;
}

#menubar ul.inner {
	display: flex;
}

#menubar li {
	flex: 1;
	list-style: none;
}

#menubar a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	text-decoration: none;
	color: #333;
	font-size: 18px;
}


#menubar a:hover {
	color: var(--linkHoverRed);
	font-weight: bold;
}

/* 固定メニュー */

body.is-fixed-menu #menubar,
body.is-fixed #menubar {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
}

body.is-fixed-menu #contents,
body.is-fixed #contents {
	margin-top: 100px;
}

/* =========================
   Mobile menu toggle assets
========================= */

#menubar-s,
#menubar_hdr {
	display: none;
}

/* =========================
   Main contents
========================= */

#contents {
	padding: 10px 0 20px;
	flex: 1;
}

#contents h1 {
	text-align: center;
	font-size: 2rem;
}

#contents h2 {
	text-align: center;
	font-size: 2rem;
}

#contents h3 {
	font-size: 1.4rem;
	margin-bottom: 20px;
}

#contents .listbox {
	margin-bottom: 30px;
}

#contents .info {
	margin-bottom: 30px;
	color: var(--textB);
	background: var(--boxBg1);
	padding: 15px;
	padding-left: 30px;
	border-radius: 8px;

}

#contents .info h2 {
	text-align: center;
	border-bottom: var(--boxLine1) 1px solid;

}

/* =========================
   3 column grid (ListBox)
========================= */

.list-column-container {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 24px;
}

/* =========================
   2 column grid(ListBox)
========================= */

.list-column-container2 {
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 24px;
	margin-bottom: 50px;
}

.list-column {
	display: flex;
	flex-direction: column;
	background: var(--boxBg1);
	border-radius: 8px;
	overflow: hidden;
}


.list-column .text {
	padding: 5px 10px 10px 5px;
	flex: 1;
	color: var(--boxText1);
}

.list-column .text2 {
	padding: 20px;
	flex: 1;
	color: var(--boxText1);
}

.list-column h3 {
	font-size: 1.5rem;
	margin-top: 10px;
	margin-bottom: 10px;
	text-align: center;
	color:var(--boxText1);
	border-bottom: var(--boxLine1) 2px solid;
}

.list-column h4 {
	font-size: 1.2rem;
	margin-bottom: 10px;
	color: var(--boxText1);
}

.btn1 a {
	display: block;
	text-align: center;
	border: 1px solid var(--btnLineBlue);
	padding: 12px;
	margin: 20px;
	text-decoration: none;
	color: var(--btnLink);
}

.btn1 a:hover {
	background: var(--btn);
	color: var(--btnLinkHover);
}


.examCard img{
  width:100%;
  height:320px;   /* PC */
  object-fit:cover;
}

@media (max-width:768px){

  .examCard img{
    height:180px;   /* スマホ 約半分 */
  }

}


/* =========================
   news
========================= */
#new dl {
	padding: 0px 20px;		/*上下、左右へのブロック内の余白*/
}
/*日付設定*/
#new dt {
	float: left;
	width: 9em;		/*幅*/
	letter-spacing: 0.1em;
}
/*記事設定*/
#new dd {
	padding-left: 9em;
}


.info a{
	color: var(--link2);
}


/* =========================
   Footer grid
========================= */

footer {
	background: var(--bgFoot);
	color: var(--textFoot);
	margin-top: auto;
}

#footermenu {
	display: grid;
	grid-template-columns: repeat(auto-fit,minmax(200px,1fr));
	gap: 30px;
	padding: 20px 0;
}

#footermenu .title {
	font-weight: bold;
	margin-bottom: 5px;
	padding-left:0px;
}

#footermenu ul {
	list-style: none;
	padding: 0;
}

#footermenu li {
	padding-left: 20px;
}

#footermenu a {
	color: #ccc;
	text-decoration: none;
	opacity: .8;
}

#footermenu a:hover {
	opacity: 1;
}

#copyright {
	background: var(--textCopyRight);
	text-align: center;
	padding: 20px;
}

#copyright a {
	color: var(--textFoot);
	text-decoration: none;
}

#copyright a:visited {
	color: var(--textFoot);
}	

/* =========================
   Responsive
========================= */

@media (max-width: 1024px) {
	.list-column-container {
		grid-template-columns: repeat(2,1fr);
	}
		.list-column-container2 {
		grid-template-columns: repeat(2,1fr);
	}
}

@media (max-width: 768px) {

	body {
		font-size: 15px;
	}

	#menubar {
		display: none;
	}

	#menubar_hdr {
		display: block;
		position: fixed;
		top: 15px;
		right: 15px;
	}

	#menubar-s {
		display: block;
	}

	#contents {
		padding: 5px 0;
	}

	#contents h2 {
	font-size: 1.5rem;
	margin-bottom: 10px;
	margin-top: 0;
}

	.list-column-container {
		grid-template-columns: 1fr;
	}

	.list-column-container2 {
		grid-template-columns: 1fr;
	}


	#updateinfo dl {
		grid-template-columns: 1fr;
	}



}

