@charset "utf-8";

/* vfZbg */
body{
	margin: 0;
	padding: 0;
	text-align: center;
	font-size: 75%;
	font-family:Avenir , "Open Sans" , "Helvetica Neue" , Helvetica , Arial , Verdana , Roboto , "SVbN" , "Yu Gothic" , "SVbN" , "YuGothic" , "qMmpS Pro W3" , "Hiragino Kaku Gothic Pro" , "Meiryo UI" , "CI" , Meiryo , "lr oSVbN" , "MS PGothic" , sans-serif;
	color: #000000; /* WF */
	min-width: 320px;
	background-color: #efefef;
}
/* SafaripnbN TCY */
/*\*/
html:first-child body{
    font-size: 70%;
}
/* end */

img{
    border-top: 0;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
}


/*--------------------------------------------------------
  ﾊイAEgp[cﾝ
--------------------------------------------------------*/
/* wb_[p[c */
#headerMain{
	background-image : url(../image/headerMainBg1.png);
	background-repeat: no-repeat;
	background-position: 0px 10px;
	padding-top:10px;
	padding-bottom:13px;
	padding-left:10px;
	padding-right:30px;
	text-align: left;
	height:26px;
	overflow:hidden;
}

#header h1{
	margin-top: 0;
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 11px;
	padding-right: 13px;
	padding-left: 13px;
	padding-top:10px;
	padding-bottom:8px;
	text-align: left;
	margin-top:0em;
	margin-bottom:0em;
	color: #cccc33;
	background-color: #ffffff;
	clear:both;
    font-size: 4em;
	font-weight:normal;
}

#headerMain h6{
	margin-top: 0;
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	padding-top: 0px;
	padding-right: 20px;
	padding-bottom: 0px;
	padding-left: 0;
	text-align: left;
	font-weight: normal;
	line-height: 26px;
	font-size: 12px;
	height:26px;
	color:#ffffff;
	background-color: #2D70B4;
	background-image : url(../image/headerMainBg2.png);
	background-repeat: no-repeat;
	background-position: right center;
	display:inline-block;
}

#headerLogo{
    width: 660px;
	padding-bottom:13px;
	padding-left:30px;
}

#headerLogo a{
    display: block;
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
    text-indent: -9999px;
    overflow: hidden;
    height: 45px;
    background-image : url(../image/logo.png);
    background-position: top left;
    background-repeat: no-repeat;
}


/* tb^[p[c */
#footerMain{
    padding-top: 5px;
}

#footerMain p{
    /* Rs[Cgﾝ */
    color: #FFFFFF;
    font-size: 1em;
    text-align: center;
	padding-top:5px;
	padding-bottom:5px;
	margin-top:0;
	margin-bottom:0px;
	background-color: #2d70b4;
}

#footerLogo
{
}

#footerExtra1{
    padding-top: 2px;
}

#footerExtra1 ul{
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
    list-style-type: none;
    text-align: left;
}

#footerExtra1 li{
    /* tb^[irﾝ */
    display: inline;
    padding-left: 23px;
    padding-right: 10px;
    font-weight: bold;
}

#footerExtra1 a:link{
    color: #333333;
    text-decoration:underline;
}
#footerExtra1 a:visited{
    color: #333333;
    text-decoration:underline;
}
#footerExtra1 a:hover{
    color: #333333;
    text-decoration: none;
}
#footerExtra1 a:active{
    color: #333333;
    text-decoration: none;
}

#footerExtra2
{
}

/* TChubNp[c */
#banner
{
}

#banner ul{
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
    list-style-type: none;
}

#banner li{
    padding-bottom: 6px;
}

#banner li a{
    display: block;
    width: 253px;
    height: 159px;
    margin-left: auto;
    margin-right: auto;
    text-indent: -9999px;
    overflow: hidden;
}

#banner a#banner-abis{
    /* XPW[oi[ */
    background-image : url(../image/banner01.png);
    background-position: top left;
    background-repeat: no-repeat;
}

#banner a#banner-kakenhi{
    /* ごﾄ登i[ */
    background-image : url(../image/banner02.png);
    background-position: top left;
    background-repeat: no-repeat;
}

#banner a#banner-jsps{
    /* \uOoi[ */
    background-image : url(../image/banner03.png);
    background-position: top left;
    background-repeat: no-repeat;
}

/* cﾌ */
#inner #associationinfo{
    padding-top: 0px;
    padding-bottom: 10px;
	margin-top:10px;
}

#inner #associationinfo h3{
	padding-right: 15px;
	padding-left: 15px;
	padding-top:13px;
	padding-bottom:8px;
	margin-top:1em;
	margin-bottom:1em;
	color: #000000;
	clear:both;
	background-image : url(../image/indexBg_9J.png);
	background-repeat: repeat-x;
	background-position: left top;
	text-align:left;
}

#inner #associationinfo p{
    margin-bottom: 10px;
    padding-left: 18px;
    padding-right: 5px;
}




/*--------------------------------------------------------
  {p[cfUCﾝ
--------------------------------------------------------*/

/* NF */
a:link{
    color: #2d70b4;
    text-decoration: underline;
}
a:visited{
    color: #2d70b4;
    text-decoration: underline;
}
a:hover{
    color: #2d70b4;
    text-decoration: none;
}
a:active{
    color: #2d70b4;
    text-decoration: none;
}

#skip{
    /* wb_[XLbvﾌ能 */
    height: 1px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    text-indent: -9999px;
}

#skip a{
    position: absolute;
    left: -9999px;
    top: 0;
    padding: 8px 12px;
    background: #ffffff;
    border: 1px solid #2d70b4;
    z-index: 9999;
    text-indent: 0;
}

#skip a:focus{
    left: 10px;
    top: 10px;
}

p{
    margin-top: 10px;
    margin-bottom: 15px;
    padding-right: 5px;
    padding-left: 5px;
    line-height: 1.8;
    text-align: left;
}

p.large{
    font-weight: bold;
	font-size:1.2em;
}
p.indent{
    padding-left: 25px;
}

.left{
    float: left;
}
.right{
    float: right;
}

hr{
    width: 100%;
    height: 1px;
    margin-top: 20px;
    margin-right: auto;
    margin-bottom: 20px;
    margin-left: auto;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
    clear: both;
    border-top-width: 1px;
    border-top-style: none;
    border-right-width: 1px;
    border-right-style: none;
    border-left-width: 1px;
    border-left-style: none;
    color: #FFFFFF;
    border-bottom-width: 1px;
    border-bottom-style: none;
}

#wrapper h3{
	padding-right: 13px;
	padding-left: 13px;
	padding-top:10px;
	padding-bottom:8px;
	margin-top:1em;
	margin-bottom:1em;
	color: #000000;
	clear:both;
	background-image : url(../image/indexBg_9J.png);
	background-repeat: repeat-x;
	background-position: left top;
    font-size: 1.6em;
	font-weight:normal;
}


h3 span.ja{
    display: none;
}

h3 span.en{
    color: #000000;
	text-transform:uppercase;
}

h3.c-index{
    height: 1px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    text-indent: -9999px;
    background: none;
}

h4{
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
    padding-top: 5px;
    padding-right: 10px;
    padding-bottom: 2px;
    padding-left: 2px;
    text-align: left;
    font-size: 1.2em;
    line-height: 1.2;
	font-weight:bold;
    color: #2d70b4;
}

h5{
    display: inline;
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 4px;
    padding-right: 10px;
    padding-bottom: 2px;
    padding-left: 2px;
    text-align: left;
    font-size: 1em;
    line-height: 1.2;
	font-weight:bold;
}

table{
    margin-top: 5px;
    margin-left: 15px;
    margin-bottom: 5px;
    margin-left: 15px;
    border-collapse: collapse;
    border-top-width: 1px;
    border-top-style: solid;
    border-top-color: #cccccc;
    border-left-width: 1px;
    border-left-style: solid;
    border-left-color: #cccccc;
}

table th{
    padding-top: 8px;
    padding-right: 15px;
    padding-bottom: 8px;
    padding-left: 8px;
    text-align: left;
	font-weight:bold;
    background-color: #f3f3f3;
    border-right-width: 1px;
    border-right-style: solid;
    border-right-color: #cccccc;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #cccccc;
}

table td{
    padding-top: 8px;
    padding-right: 15px;
    padding-bottom: 8px;
    padding-left: 8px;
    text-align: left;
    border-right-width: 1px;
    border-right-style: solid;
    border-right-color: #cccccc;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #cccccc;
}

/* tH[p[cﾝ */
input.button{
    margin-top: 10px;
    margin-bottom: 15px;
	margin-left:auto;
	margin-right:auto;
}

textarea{
    width: 400px;
    height: 200px;
}

input.l{
    width: 400px;
}
input.m{
    width: 250px;
}
input
{
}
input.s{
    width: 50px;
}
form{
	text-align:center;
}


/* CRec{p[c */

#main ul{
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 15px;
    margin-left: 0;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
    list-style-type: none;
}

#main ul li{
	text-align: left;
	line-height: 1.4;
	padding-top: 10px;
	padding-right: 15px;
	padding-bottom: 10px;
	padding-left: 25px;
	border-bottom-width: 1px;
	border-bottom-style: solid;
	border-bottom-color: #cccccc;
	background-image : url(../image/point.png);
	background-repeat: no-repeat;
	background-position: 3px 10px;
}

#main dl{
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 20px;
    margin-left: 0;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
}


#main dt{
    float: left;
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
    text-align: left;
    line-height: 16px;
    font-weight: normal;
    width: 170px !important;
    padding-top: 10px;
    padding-right: 0;
    padding-bottom: 2px;
    padding-left: 15px;
}

#main dd{
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
    padding-top: 10px;
    padding-right: 0;
    padding-bottom: 10px;
    text-align: left;
    line-height: 16px;
    padding-left: 185px;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #cccccc;
}


#main img.left{
    margin-top: 5px;
    margin-right: 20px;
    margin-bottom: 10px;
    float: left;
}

#main img.right{
    margin-top: 5px;
    margin-bottom: 10px;
    margin-left: 20px;
    float: right;
}

#pagetop{
    margin-top: 35px;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: auto;
    text-align: right;
	padding-bottom:40px;
}

#pagetop a{
    /* y[Wﾌ先頭ﾖのクﾝ */
    display: block;
    margin-left: auto;
    width: 127px;
    height: 20px;
    overflow: hidden;
    background-image : url(../image/returnTop_9J.png);
    background-position: top left;
    background-repeat: no-repeat;
    text-align: left;
    text-indent: -9999px;
}



/* gbvy[W fUC` */
#toppage p.large{
    color: #000000;
    font-weight: normal;
}
#toppage p.large::first-line{
    font-weight: bold;
	font-size:1.2em;
}

#toppage-info h4{
    margin-top: 0px;
    margin-bottom: 0px;
    margin-left: 0px;
    margin-right: 0px;
    padding-top: 0px;
    padding-bottom: 0px;
    padding-left: 0px;
    padding-right: 0px;
    line-height: 1.5;
    font-weight: bold;
	color:#000000;
}

#toppage-news dt{
	color:#666666;
	float:none;
	margin-top: 7px;
	margin-right: 0;
	margin-bottom: 0;
	margin-left: 0;
	text-align: left;
	line-height: 19px;
	font-weight: normal;
	width:auto !important;
	padding-top: 3px;
	padding-right: 0;
	padding-bottom: 5px;
	padding-left: 30px;
	background-image : url(../image/top_point.png);
	background-repeat: no-repeat;
	background-position: 10px 3px;
}

#toppage-news dd{
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 15px;
    margin-left: 0;
    padding-top: 0px;
    padding-right: 15px;
    padding-bottom: 10px;
    text-align: left;
    line-height: 19px;
    min-height: 19px;
    padding-left: 15px;
	font-size:1.2em;
	font-weight:bold;
}

#toppage-info{
	overflow:hidden;
	padding-bottom:30px;
}
#toppage-info h3,
#toppage-news h3{
	margin-top:10px;
}
.info-photo{
	float: left;
	padding-right: 10px;
	padding-left: 20px;
	padding-bottom: 2px;
}
.info-photo img{
	width:96px;
	height:auto;
	border-top-width: 2px;
	border-right-width: 2px;
	border-bottom-width: 2px;
	border-left-width: 2px;
	border-top-style: solid;
	border-right-style: solid;
	border-bottom-style: solid;
	border-left-style: solid;
	border-top-color: #FFFFFF;
	border-right-color: #FFFFFF;
	border-bottom-color: #FFFFFF;
	border-left-color: #FFFFFF;
}

.info-comment{
    float: left;
	width:310px;
	height:100px;
}
.info-comment br{
	display:none;
}

#toppage-info hr{
	display:none;
}

/* =======================================================
  X|Vuﾝ
======================================================= */
@media screen and (max-width: 568px) {
	
	body{
		min-width: 100%;
	}

	/*--------------------------------------------------------
		ﾊイAEgp[cﾝ
	--------------------------------------------------------*/
	/* wb_[p[c */
	#headerMain{
		background-image : none;
		padding-top: 0px;
		padding-bottom: 0px;
		padding-left: 0px;
		padding-right: 0px;
		height: auto;
	}
	
	#headerMain h6{
    padding-top: 5px;
    padding-right: 5px;
    padding-bottom: 5px;
		padding-left: 5px;
    line-height: 1.4;
		height: auto;
		background-image : none;
		display: block;
	}
	
	#headerLogo{
		width: 98%;
		padding-top: 13px;
		padding-left: 0px;
		margin-right: auto;
		margin-left: auto;
	}
	
	#headerLogo a{
		background-position: center center;
		background-size: contain;
	}
	
	
	/* tb^[p[c */
	#footerMain{
    padding-top: 0px;
	}

	#footerMain p{
		/* Rs[Cgﾝ */
		padding-right: 5px;
		padding-left: 5px;
		word-break: break-all;
	}
		
	/* TChubNp[c */
	#banner li a{
		max-width: 100%;
	}
	
	#banner a#banner-abis{
		/* XPW[oi[ */
		background-position: top center;
		background-size: contain;
	}
	
	#banner a#banner-kakenhi{
		/* ごﾄ登i[ */
		background-position: top center;
		background-size: contain;
	}
	
	#banner a#banner-jsps{
		/* \uOoi[ */
		background-position: top center;
		background-size: contain;
	}
	
	/* cﾌ */	
	#inner #associationinfo h3{
		background-image : none;
		border-top-width: 5px;
		border-top-color: #000000;
		border-top-style: solid;
		background-color: #F5F5F5;
	}
	
	#inner #associationinfo p{
    padding-left: 5px;
	}
	
	/*--------------------------------------------------------
	  irQ[VfUCﾝ
	--------------------------------------------------------*/
	#nav h3.c-index{
		width: 27px;
		height: 20px;
		background-image : url(../image/btn_menu.png);
		background-position: top left;
		background-repeat: no-repeat;
		margin-left: 10px;
		margin-top: 10px;
		margin-bottom: 10px;
		overflow: hidden;
		text-indent: -9999px;
		cursor: pointer;
	}
	
	/*--------------------------------------------------------
		{p[cfUCﾝ
	--------------------------------------------------------*/
	p{
		padding-right: 0px;
		padding-left: 0px;
	}
		
	#wrapper h3{
		background-image : none;
		border-top-width: 5px;
		border-top-color: #000000;
		border-top-style: solid;
		background-color: #F5F5F5;
	}

	table{
		margin-left: auto;
		margin-right: auto;
		width: 96%;
		boder-sizing: border-box;
	}
	
	/* tH[p[cﾝ */
	textarea{
		width: 96%;
	}
	input.l{
		width: 96%;
	}
	input.m{
		width: 60%;
	}
	input.s{
		width: 30%;
	}
	
	/* CRec{p[c */	
	#main img.left{
		margin-right: 0px;
		float: none;
	}
	
	#main img.right{
		margin-left: 0px;
		float: none;
	}
	
	#pagetop{
		padding-bottom: 0px;
	}

	/* gbvy[W fUC` */
	#toppage-news dt{
		max-width: 100%;
	}
	.info-photo{
		padding-left: 0px;
	}
	.info-photo img{
		border-top-width: 0px;
		border-right-width: 0px;
		border-bottom-width: 0px;
		border-left-width: 0px;
	}
	.info-comment{
		width: 100%;
		height: auto;
		margin-bottom: 5px;
	}

}
/* =======================================================
  Responsive adjustments (<=980px)
======================================================= */
@media screen and (max-width: 980px) {
  #headerMain{
    height: auto;
    overflow: visible;
  }
  #headerMain h6{
    display: block;
    height: auto;
    line-height: 1.4;
    padding: 6px 10px;
    background-image: none;
    word-break: break-word;
  }
  #header h1{
    font-size: 2.4em;
    line-height: 1.1;
    margin-left: 0;
    padding-left: 10px;
    padding-right: 10px;
  }
  #headerLogo{
    width: auto;
    padding-left: 10px;
    padding-right: 10px;
  }
}

/* =======================================================
  TOPICS cards (toppage)
======================================================= */
#toppage-info .toppage-topics{
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
#toppage-info .topic-card{
  display: block;
  width: calc(50% - 7px);
  text-decoration: none;
  color: inherit;
}
#toppage-info .topic-card .info-photo{
  width: 100%;
  margin: 0 0 6px 0;
}
#toppage-info .topic-card .info-photo img{
  display: block;
  width: 100%;
  height: auto;
}
@media screen and (max-width: 568px){
  #toppage-info .topic-card{
    width: 100%;
  }
}

/* News archive disclosure */
details.news-archive{
  margin-top: 8px;
}
details.news-archive > summary{
  cursor: pointer;
  font-weight: bold;
}


/* Readability improvements */
#toppage p.large{
    max-width: 70ch;
    margin-left: auto;
    margin-right: auto;
    padding-left: 13px;
    padding-right: 13px;
}

#toppage{
    padding-bottom: 10px;
}

#toppage-news dl dt{
    font-weight: bold;
}

#toppage-news dl dd{
    margin-bottom: 12px;
}

details.news-archive{
    margin-top: 12px;
}

details.news-archive > summary{
    font-weight: bold;
}

details.news-archive .news-archive-list{
    margin-top: 10px;
}


/* ===== v9: Header subtitle and NEWS details polish ===== */
#headerMain h6 .header-subtitle{
  white-space: nowrap;
}

@media (max-width: 980px){
  #headerMain h6{
    display: block;
    height: auto;
    line-height: 1.35;
    padding: 8px 12px;
    background-image: none;
  }
  #headerMain h6 .header-subtitle{
    display: block;
    white-space: normal;
  }
}

/* NEWS archive: make <details> look clickable and consistent */
details.news-archive{
  margin-top: 12px;
  border: 1px solid #dddddd;
  border-radius: 6px;
  background: #f9f9f9;
}

details.news-archive > summary{
  cursor: pointer;
  font-weight: bold;
  padding: 10px 12px;
  margin: 0;
  list-style: none;
}

details.news-archive > summary::-webkit-details-marker{
  display: none;
}

details.news-archive > summary::before{
  content: "笆ｶ ";
}

details.news-archive[open] > summary::before{
  content: "笆ｼ ";
}

details.news-archive[open] > summary{
  border-bottom: 1px solid #dddddd;
}

details.news-archive .news-archive-list{
  padding: 10px 12px 12px 12px;
}


/* =========================================================
   v10 additions: readability + responsive stability
   ========================================================= */

/* images: shrink-to-fit for narrow screens */
img{ max-width:100%; height:auto; }

/* Skip link: show on keyboard focus only */
#skip a{
  position:absolute;
  left:-9999px;
  top:0;
  background:#000;
  color:#fff;
  padding:8px 12px;
  z-index:9999;
  text-decoration:none;
}
#skip a:focus{
  left:12px;
  top:12px;
  outline:2px solid #fff;
}

/* Top page text: limit line length for readability */
#toppage p.large{
  max-width:70ch;
  margin-left:auto;
  margin-right:auto;
  line-height:1.7;
}

/* TOPICS cards (toppage-topics) */
#toppage-info .toppage-topics{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:16px;
  margin-top:10px;
}
#toppage-info .topic-card{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  text-align:left;
  text-decoration:none;
  background:#fff;
  border:1px solid #d9d9d9;
  border-radius:10px;
  overflow:hidden;
  min-height: 100%;
}
#toppage-info .topic-card:hover{
  text-decoration:none;
}
#toppage-info .topic-card h4{
  margin:12px 12px 14px 12px;
  font-size:1.2em;
  line-height:1.35;
}
#toppage-info .topic-card .info-photo{
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
}
#toppage-info .topic-card .info-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* NEWS list spacing */
#toppage-news dl{
  margin: 0;
}
#toppage-news dt{
  margin-top: 10px;
  font-weight: bold;
}
#toppage-news dd{
  margin: 4px 0 0 0;
  padding-left: 1em;
  position: relative;
}
#toppage-news dd:before{
  content:"•";
  position:absolute;
  left:0;
}

/* details: past news */
details.news-archive{
  margin-top:12px;
  background:#ffffff;
  border:1px solid #d9d9d9;
  border-radius:10px;
  padding:10px 12px;
}
details.news-archive summary{
  cursor:pointer;
  font-weight:bold;
  list-style:none;
}
details.news-archive summary::-webkit-details-marker{ display:none; }
details.news-archive summary:before{
  content:"▶";
  display:inline-block;
  margin-right:8px;
}
details.news-archive[open] summary:before{
  content:"▼";
}
details.news-archive .news-archive-list{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #e5e5e5;
}

/* Narrow screens */
@media (max-width: 980px){
  #headerMain{
    height:auto;
    overflow:visible;
    padding-right:10px;
    background-image:none;
  }
  #headerMain h6{
    height:auto;
    line-height:1.3;
    padding:6px 10px;
    background-image:none;
    display:block;
    word-break:break-word;
  }
  #header h1{
    font-size: 2.4em;
    margin-left: 8px;
    margin-right: 8px;
  }
  #toppage-info .toppage-topics{
    grid-template-columns: 1fr;
  }
}


/* ==============================
   v14 polish (topics/news/aside)
   ============================== */

/* TOPICS: larger, consistent cards */
#toppage-info .toppage-topics{
  gap: 18px;
}
#toppage-info .topic-card{
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  padding: 12px;
  background: #fff;
  box-sizing: border-box;
}
#toppage-info .topic-card:hover{
  border-color: #c9c9c9;
}
#toppage-info .topic-card .info-photo{
  margin: 0 0 10px 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 8px;
  background: #f5f5f5;
}
#toppage-info .topic-card .info-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
#toppage-info .topic-card h4{
  margin: 0;
  font-size: 14px;
  line-height: 1.35;
  letter-spacing: 0.02em;
  /* avoid awkward ultra-narrow wrapping */
  overflow-wrap: break-word;
  word-break: normal;
}

@media screen and (max-width: 768px){
  #toppage-info .topic-card{
    padding: 14px;
  }
}
@media screen and (max-width: 568px){
  #toppage-info .toppage-topics{
    gap: 14px;
  }
}

/* NEWS: improve scanability */
#toppage-news dl{
  margin-top: 8px;
}
#toppage-news dt{
  color: #666;
  font-size: 12px;
  margin-top: 14px;
}
#toppage-news dd{
  margin: 6px 0 0 0;
  padding-left: 1.1em;
  position: relative;
  line-height: 1.5;
}
#toppage-news dd::before{
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  color: #2b6cb0;
}
#toppage-news dd a{
  font-weight: 600;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
#toppage-news dd a:hover{
  text-decoration: underline;
}

/* ASIDE banners: equal spacing and subtle card framing */
#aside #banner{
  padding: 10px 0;
}
#aside #banner ul{
  display: flex;
  flex-direction: column;
  gap: 14px;
}
#aside #banner ul li{
  list-style: none;
}
#aside #banner a{
  border-radius: 10px;
  overflow: hidden;
}

/* Reduce visual heaviness of thick rules on narrow screens */
@media screen and (max-width: 768px){
  .layoutset-01 #headerLine,
  .layoutset-01 #nav{
    border-bottom-width: 2px;
  }
}



/* =========================
   Patch v15: fix header H1 right protrusion
   Cause: #header h1 has margin-left (11px) while being a block element with background-color,
          which can create a visible overflow/protrusion at the right edge.
   ========================= */
#header h1{
  margin-left: 0 !important;
  /* preserve the original text indent (was 11px margin + 13px padding) */
  padding-left: 24px !important;
  box-sizing: border-box;
}

/* Patch v16: move white background from H1 to header container to avoid edge protrusions */
#header{ background-color:#ffffff; }
#header h1{ background-color:transparent !important; display:inline-block; max-width:100%; }


/* ==== Patch v17: header white protrusion fix ==== */
/* Let the container background (containerBg_9J.png) define the white panel.
   Avoid painting an extra white slab in the header area that can appear as left/right "protrusions". */
#header{
  background-color: transparent !important;
}
#headerLogo,
#headerLogo a{
  background-color: transparent !important;
}
/* Keep the top blue bar (#header h1) intact; do not change it. */
