@charset "UTF-8";
@font-face{
	font-family : Hannari;
	src : url( "../font/Hannari.otf" ) format( "opentype" );
}
@font-face{
	font-family : Bebas;
	src : url( "../font/Bebas-Regular.otf" ) format( "opentype" ) , url( "../font/Bebas-Regular.ttf" ) format( "truetype" );
}
@font-face{
	font-family : HonokaMincho;
	src : url( "../font/honokamin.ttf" ) format( "truetype" );
}


/* --------------------------------------
　=Reset
------------------------------------- */
html ,
body ,
div ,
h1 ,
h2 ,
h3 ,
h4 ,
h5 ,
h6 ,
p ,
blockquote ,
pre ,
address ,
ul ,
ol ,
li ,
dl ,
dt ,
dd ,
table ,
th ,
td ,
form ,
textarea ,
fieldset ,
input{
	padding : 0;
	margin : 0;
}
ol , ul{
	list-style : none;
}
table{
	border-spacing : 0;
	border-collapse : collapse;
}
caption , th{
	text-align : left;
}
h1 , h2 , h3 , h4 , h5 , h6{
	font-size : 100%;
	font-weight : 400;
	font-size: 10px;
	font-family: "Noto Sans JP", sans-serif;
}
img{
	vertical-align : bottom;
	border : none;
}
input , textarea , select{
	font-family : "Hiragino Kaku Gothic ProN" , Meiryo , "MS PGothic" , sans-serif;
	font-size : inherit;
	font-weight : inherit;
}
input , select{
	vertical-align : middle;
}
address , caption , cite , code , dfn , em , strong , th , var{
	font-style : normal;
	font-weight : 400;
}
a{
	outline : 0;
}


/* --------------------------------------
　=clear
------------------------------------- */
.clearfix::after{
	display : block;
	height : 0;
	clear : both;
	visibility : hidden;
	content : " ";
}
.clearfix{
	display : inline-block;
}
* html .clearfix{
	height : 1%;
}
.clearfix{
	display : block;
}
.cl{
	clear : both;
	visibility : hidden;
}


/* --------------------------------------
　=common
------------------------------------- */
html{
	background : #00304f;
}
body{
	min-width : 1062px;
	font-family : "Hiragino Kaku Gothic ProN" , Meiryo , "MS PGothic" , sans-serif;
	font-size : 14px;
	line-height : 2;
	color : #595757;
	background : #fff;
}


/** html body {
	font-size: 75%;
}

*:first-child+html body {
	font-size: 75%;
}: */
a:link{
	color : #263686;
}
a:visited{
	color : #263686;
}
a:hover{
	color : black;
}
a:active{
	color : #263686;
}


/* --------------------------------------
　=header
------------------------------------- */
#header{
	position : relative;
	width : 1060px;
	height : 95px;
	margin : 0 auto;
	background-color : #fff;
}
#header h1{
	font-size : 10px;
	line-height : 14px;
}
#logo{
	padding : 8px 0 0;
}
#headerlink{
	position : absolute;
	top : 20px;
	right : 205px;
}
#headerlink a:hover{
	color : black;
}
#freedial{
	color : orange;
	text-align : right;
}
#headerlink ul li{
	display : inline;
	float : right;
	padding-left : 12px;
	margin-left : 22px;
	font-size : 12px;
	background : image-set( url( "../images/ui/arrow/arrow_gl.avif" ) type( "image/avif" ) , url( "../images/ui/arrow/arrow_gl.webp" ) ) 0 50% no-repeat;
}
#headerlink ul li a{
	color : #727171;
	-webkit-text-decoration : none;
	text-decoration : none;
}
#headercnct{
	position : absolute;
	top : 26px;
	right : 0;
}
.header-btn-sp{
	display : none;
}


/* --------------------------------------
　=glovalnav
------------------------------------- */
#gnav{
	position : relative;
	z-index : 2000;
	min-width : 1060px;
	background-color : #fff;
	border-bottom : 4px solid #002f40;
}
#gnav ul{
	display : flex;
	flex-wrap : wrap;
	width : 1060px;
	margin : 0 auto;
}
#gnav ul li > a ,
#gnav ul li > p{
	display : block;
	padding : 0 24.8px;
	margin-bottom : 0;
	font-size : 14px;
	font-weight : 700;
	line-height : 40px;
	color : #002f40;
	-webkit-text-decoration : none;
	text-decoration : none;
	letter-spacing : .08em;
}
#gnav ul li > p::after{
	display : inline-block;
	margin-left : 3px;
	font-family : "Font Awesome 6 Free";
	font-weight : 700;
	content : "\f107";
}
#gnav ul li > a:hover ,
#gnav ul li > p:hover{
	color : #fff;
	background-color : #002f40;
}
#gnav li:hover #gnav_field{
	display : block;
}
#gnav_field{
	position : absolute;
	top : 100%;
	left : 0;
	z-index : 100;
	box-sizing : border-box;
	display : none;
	width : 100%;
	padding : 40px 0;
	background : linear-gradient( to right , #015384 , #01426b );
}
#gnav_field .gnavwrapper{
	display : flex;
	flex-wrap : wrap;
	width : 1060px;
	margin : 0 auto;
}
#gnav_field .gnavbox{
	position : relative;
	box-sizing : border-box;
	width : 16.66%;
	padding : 0 15px 150px;
	font-family : "游ゴシック" , "Yu Gothic" , YuGothic , "游ゴシック体";
	line-height : 1.35;
	color : #fff;
	border-left : 1px solid #5696bc;
}
#gnav_field .gnavbox:last-of-type{
	border-right : 1px solid #5696bc;
}
#gnav_field .gnavbox .gnavttl{
	font-size : 16px;
	font-weight : 700;
	text-align : center;
}
#gnav_field .gnavbox figure{
	margin : 12px 0;
}
#gnav_field .gnavbox figure img{
	width : 100%;
	height : auto;
}
#gnav_field .gnavbox dl{
	position : absolute;
	bottom : 50px;
	left : 15px;
	right : 15px;
	padding-top : 10px;
	border-top : 1px solid #005a8b;
}
#gnav_field .gnavbox dl dt{
	margin-bottom : 7px;
	font-weight : 700;
	text-align : center;
}
#gnav_field .gnavbox dl dd{
	display : flex;
	justify-content : space-between;
}
#gnav_field .gnavbox dl dd p{
	box-sizing : border-box;
	width : calc( 50% - 3.5px );
	padding : 5px 3px 3px;
	font-size : 13px;
	font-weight : 700;
	line-height : 1.4;
	text-align : center;
	background-color : #0075bc;
}
#gnav_field .gnavbox dl dd p span{
	font-size : 20px;
}
#gnav_field .gnavbox a{
	position : absolute;
	bottom : 0;
	left : 15px;
	right : 15px;
	display : block;
	margin-top : 10px;
	font-size : 14px;
	font-weight : 700;
	line-height : 40px;
	color : #014d7c;
	text-align : center;
	-webkit-text-decoration : none;
	text-decoration : none;
	background-color : #fff;
	border : 1px solid #fff;
	border-radius : 5px;
}
#gnav_field .gnavbox a::after{
	position : absolute;
	top : 50%;
	right : 10px;
	font-family : "Font Awesome 6 Free";
	content : "\f105";
	transform : translateY( -50% );
}
#gnav_field .gnavbox a:hover{
	color : #fff;
	background-color : #014d7c;
}
#gnav_field .gnavclose{
	display : none;
}


/* --------------------------------------
　=content
------------------------------------- */
#topcontent ,
#content{
	padding-bottom : 30px;
	clear : both;
}
#content{
	width : 100%;
	padding-top : 10px;
}
#content_inner{
	width : 1060px;
	margin : 0 auto;
}
#main{
	float : left;
	width : 840px;
}
#side{
	position : relative;
	float : right;
	width : 200px;
	font-size : .9em;
}
.hot-contents{
	position : relative;
	padding : 30px 15px 20px;
	margin : 12px 0 20px;
	background-color : #f3f3f3;
	border-top : 1px solid #022044;
}
.hot-contents__ttl{
	position : absolute;
	top : -12px;
	left : 0;
}
.hot-contents ul li{
	padding : 13px 0;
	border-bottom : 1px solid #d5d5d5;
}
.hot-contents ul li a{
	display : flex;
	-webkit-text-decoration : none;
	text-decoration : none;
}
.hot-contents ul li a:hover{
	opacity : .6;
}
.hot-contents ul li a figure{
	width : 50px;
	margin : 0 6px 0 0;
}
.hot-contents ul li a figure img{
	width : 100%;
	height : auto;
}
.hot-contents ul li a p{
	flex : 1;
	font-size : 14px;
	line-height : 1.3;
	color : #022044;
	text-align : left;
}
.top_side{
	margin : 20px 0 0;
}
.top_side--1{
	margin-top : -50px;
}
#information h2{
	margin-bottom : 10px;
}
#information dl dt{
	margin-bottom : 2px;
	color : #79b2e1;
}
#information dl dd{
	padding-bottom : 7px;
	margin-bottom : 7px;
	line-height : 1.2;
	color : #595757;
	background : image-set( url( "../images/header/line_g.avif" ) type( "image/avif" ) , url( "../images/header/line_g.webp" ) ) left bottom repeat-x ;
}


/* --------------------------------------
　=Footer
------------------------------------- */
/* #footer{
	width : 100%;
	clear : both;
	background : image-set( url( "../images/footer/bg_footer.avif" ) type( "image/avif" ) , url( "../images/footer/bg_footer.webp" ) ) 0 0 / contain repeat-x;
} */
#footer-inner{
	width : 1060px;
	padding : 0 0 .5em;
	margin : 0 auto;
}
#footerlogo{
	padding : 10px 0 12px;
	text-align : center;
}
p.footeradress{
	margin-bottom : 6px;
	font-size : 12px;
	line-height : 1.5;
	color : #b3c6d1;
	text-align : center;
}
.footerlink{
	margin : .3em 0;
	font-size : 1em;
	line-height : 1.6em;
	color : #b3c6d1;
	text-align : center;
}
.footerlink a{
	color : #b3c6d1;
}
.footerlink a:hover{
	color : #fc0;
	-webkit-text-decoration : none;
	text-decoration : none;
}
.copyright{
	font-size : 10px;
	color : #b3c6d1;
	text-align : center;
}


/*
共通部品: 2011.10.06 追記
*/
#filedlink{
	height : 43px;
	margin-bottom : 28px;
	background : url( "../img/bg_fieldmenu.gif" ) no-repeat 0 0;
}
#filedlink ul{
	padding : 7px 0 0 8px;
}
#filedlink ul li{
	display : inline;
	float : left;
}
#pankuz{
	margin : 0 0 1.5em;
}


/*
共通部品: 2016.10.14 追記
*/
#side_voice{
	float : right;
	width : 200px;
	background : #ededed;
	-moz-border-radius : 10px;
	-webkit-border-radius : 10px;
	border-radius : 10px;
}
#headArea{
	width : auto;
	margin-top : 0;
	margin-bottom : 10px;
	margin-left : auto;
	margin-right : auto;
}
#headArea .spImg{
	display : none;
}
#headArea .floatR{
	float : right;
	width : 51%;
	margin : 0;
	text-align : center;
}
#headArea .floatR .imgBg{
	width : 100%;
	height : auto;
	padding-top : 28%;
	padding-bottom : 28%;
	margin-left : auto;
	margin-right : auto;
	background-image : url( "../img/academic/bg-text-b.png" );
	background-repeat : no-repeat;
	background-position : center top;
	background-size : contain;
}
#headArea .floatR .imgBg p{
	width : 50%;
	margin-left : auto;
	margin-right : auto;
	font-size : 13px;
	font-weight : 700;
	line-height : 1.4em;
	color : #999;
}
.blue{
	color : #5798bf;
}
.blue2{
	color : #0d6fb8;
}
#headArea .floatL{
	float : left;
	width : 49%;
	margin : 0;
}
#headArea .floatL .bgText{
	padding : 3%;
	margin-top : 17px;
	margin-bottom : 15px;
	margin-left : auto;
	margin-right : auto;
	background-image : url( "../img/academic/bg-text.png" );
	background-repeat : no-repeat;
	background-position : left top;
	background-size : contain;
}
#headArea .floatL .bgText h2{
	margin-top : 0;
	margin-bottom : 5px;
	font-size : 16px;
	font-weight : 700;
	line-height : 1.5em;
	color : #091f42;
	text-align : left;
}
#headArea .floatL .bgText p{
	font-size : 13px;
	line-height : 1.5em;
	color : #333;
	text-align : left;
}
#headArea .floatL .button{
	text-align : left ! important;
}
#headArea a img:hover{
	opacity : .5;
}
#headArea .floatL .button{
	text-align : center;
}
.width45per{
	width : 45% ! important;
}


/* responsive style */
@media screen and ( max-width : 768px ){
	#headArea{
		margin-bottom : 0;
	}
	#headArea .floatR{
		float : none;
		width : 100%;
		margin-bottom : 20px;
		margin-left : auto;
		margin-right : auto;
	}
	#headArea .floatL{
		float : none;
		width : 100%;
		margin-left : auto;
		margin-right : auto;
		text-align : center;
	}
	#headArea .floatL .bgText{
		margin-top : 0;
		background-position : center top;
	}
	#headArea .floatL .bgText h2{
		margin-left : 13%;
	}
	#headArea .floatL .bgText p{
		margin-left : 13%;
	}
	#headArea .floatL .button{
		text-align : center ! important;
	}
	#headArea .spImg{
		display : inline;
	}
	#headArea .pcImg{
		display : none;
	}
	#headArea .floatR .imgBg{
		padding-top : 24%;
		padding-bottom : 24%;
		padding-left : 0%;
		margin : 0;
		text-align : center;
		background-position : center top;
		background-size : contain;
	}
	#headArea .floatR .imgBg p{
		width : 45%;
		margin-top : 7px;
		line-height : 1.2em;
		text-align : left;
	}
}
@media screen and ( max-width : 600px ){
	#headArea .floatL .bgText h2{
		margin-left : 10%;
		font-size : 15px;
	}
	#headArea .floatL .bgText p{
		margin-left : 10%;
		font-size : 12px;
	}
	#headArea .floatR .imgBg{
		padding-top : 23%;
		padding-bottom : 22%;
	}
}
@media screen and ( max-width : 500px ){
	#headArea .floatL .bgText h2{
		margin-left : 6%;
	}
	#headArea .floatL .bgText p{
		margin-left : 6%;
		font-size : 11px;
	}
	#headArea .floatR .imgBg{
		padding-top : 23%;
		padding-bottom : 22%;
	}
	#headArea .floatR .imgBg p{
		margin-top : 5px;
		font-size : 11px;
	}
}
@media screen and ( max-width : 450px ){
	#headArea .floatL .bgText h2{
		margin-left : 1%;
		font-size : 14px;
	}
	#headArea .floatL .bgText p{
		margin-left : 1%;
		font-size : 10px;
	}
	#headArea .floatR .imgBg{
		padding-top : 20%;
		padding-bottom : 20%;
	}
	#headArea .floatR .imgBg p{
		line-height : 1em;
	}
}
@media screen and ( max-width : 360px ){
	#headArea .floatR .imgBg{
		padding-top : 18%;
		padding-bottom : 13%;
	}
	#headArea .floatR .imgBg p{
		font-size : 5px;
	}
}
#voice_list{
	width : 156px;
	margin : 25px auto 0;
}
#voice_list li{
	margin : 0 auto 15px;
}
#voice_list a:hover{
	-ms-filter : "alpha(opacity=80)";
	border : none;
	opacity : .8;
	-webkit-transition : all .5s;
	-moz-transition : all .5s;
}
#voice_list a span{
	display : block;
	margin : 3px auto 0;
}
#voice_list .women_img{
	margin : 70px auto 0;
}

.header-btn:hover .btn-img img {
  filter: brightness(1.08) contrast(1.08) saturate(1.06);
}

/* ===== フローティングバナー：最終微調整版（完全フィット） ===== */
.floating-banner {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 185px;
  z-index: 9999;
  overflow: visible;
  transform-origin: bottom right;
  transition: transform .25s ease, filter .25s ease;
}

.floating-banner a.banner-link {
  display: block;
  position: relative;
  z-index: 1;
}

.floating-banner .banner-link img {
  display: block;
  width: 100%;
  height: auto;
  border: none;
}

/* hover時の拡大＆明るさ */
.floating-banner:hover {
  transform: scale(1.04);
  filter: brightness(1.05);
}

/* 画像にオーバーレイ（白くふんわり） */
.floating-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 0;
  background: rgba(255,255,255,0);
  transition: background .25s ease;
  pointer-events: none;
  z-index: 2;
}

.floating-banner:hover::before {
  background: rgba(255,255,255,0.08); /* ← 白くなる量。0.06〜0.1で調整OK */
}

/* ×ボタン：画像右上ぴったり */
#close-banner.close-area {
  position: absolute;
  top: -2px;     /* ← 上に2pxずらす（画像角を完全に覆う） */
  right: -2px;   /* ← 右に2pxずらす（角にぴったり重ねる） */
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid #0b3b5a;
  background: #fff;
  cursor: pointer;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
  box-shadow: 0 0 0 1px #fff; /* ← 青い角が透けるのを防ぐ */
}

/* ×マーク */
#close-banner.close-area::before {
  content: "×";
  font-size: 16px;
  line-height: 1;
  color: #0b3b5a;
  font-weight: 700;
}

/* hoverで反転 */
#close-banner.close-area:hover {
  background: #0b3b5a;
  border-color: #0b3b5a;
}
#close-banner.close-area:hover::before {
  color: #fff;
}

@media screen and (max-width: 768px) {
  .floating-banner {
    display: none !important;
  }
}
@media (min-width: 769px) {
    .sp {
        display: none !important;
    }
}

@media (max-width: 768px) {
    .pc {
        display: none !important;
    }
}