@charset "utf-8";
@import 'common.css';
body{
	font-family:Arial, Helvetica, "sans-serif";
	line-height: 1.8;
	font-size: 18px;
	color:#2A2A2A;
	position: relative;
}

/* *****ヘッダー***** */
#main_header{
	width: 100%;
background-color: #dec4d9;
 
}
.main_header-inner{
	width: 1200%;
	max-width: 100%!important;
	margin:0 auto;
	position: relative;
}
.main_header-inner h1{
	text-align: center;
	color: #a8518e;
	font-size: 250%;
	max-width: 100%;
	margin:0 auto;
	position: relative;
	padding: 10px 0;
	font-weight: bold;
}
.main-image {
	max-width: 100%!important;
	width: 1200px;
	height: auto;
	margin: 0 auto;
}

.main-image img{
	max-width: 100%!important;
	width: 1200px;
	height: auto;
	margin: 0 auto;
}

@media screen and (max-width: 768px){
	.main_header-inner h1{
		font-size: 150%;
	}

}

.wrap{
	width: 100%;
}

/* *****コンテント***** */

#content{
	width:100%;
	max-width: 1200px;
	background: #FFF;
	margin: 0 auto;
}

.flex {
    display: flex;
    width: 100%;
    height: 200px; /* バナーの高さを調整 */
    overflow: hidden; /* はみ出し部分を隠す */
}

/* 左側：背景ありの白抜き文字エリア */
#title {
    flex: 0 0 40%; /* 固定で40% */
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #a8518e; /* 背景色 */
    color: #fff; /* 白抜き文字 */
    padding: 10px;
    box-sizing: border-box;
}

#title h2 {
    margin: 0;
    font-size: 28px;
    font-weight: bold;
    text-align: center;
    line-height: 1.2;
}

/* 右側：画像エリア */
.title {
    flex: 0 0 60%; /* 固定で60% */
    overflow: hidden;
    position: relative;
}

.title img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 比率を保ったまま領域を埋める */
    object-position: center; /* 画像の中央を表示 */
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
    .flex {
        height: 150px; /* モバイルでは少し低く */
    }
    
    #title h2 {
        font-size: 18px; /* モバイルでは文字サイズを小さく */
    }
}

@media screen and (max-width: 480px) {
    .flex {
        height: 120px; /* さらに小さい画面では低く */
    }
    
    #title h2 {
        font-size: 16px;
    }
	body{
	font-size: 14px;

}
}


section{
	margin: 20px 40px;
	padding: 10px;
}

#page_top{
  display: none;
  position: fixed;
  bottom: 65px;
  right: 20px;
  cursor: pointer;
}

#footer{
	width: 100%;
	background: #a8518e;
	margin-top: 50px;
}
#footer-inner{
	text-align: center;
	color: #FFF;
	padding: 10px 0;
}




/* news */
#news{
	width: 100%;
	margin: 10px auto;
	line-height: 1.6em;
	border: 1px solid #a8518e;
}
#news-inner{
	overflow: auto;
	height: 10em;
}
#news dl {
	margin: 10px 1%;
	height: 120px;
	overflow:auto;
	}
#news dl dt {
	margin-bottom:0px;
	color:#a8518e;
	font-weight: bold;
	float:left;
	padding: 5px 0 5px 2%;
	}
#news dl dd {
	padding: 5px 0;
	margin-bottom:5px;
	padding-bottom:5px;
	border-bottom: dotted 1px #ccc;
	padding-left:9em;
	}
#news h2{
	border: none;
	padding: 8px;
	font-size: 120%;
	position: relative;
	background: #a8518e;
	border-bottom: #FBF681 2px solid;
	color: #FFF;
}


/* sponsor */
#sponsor{
	width: 100%;
	margin: 10px auto;
	line-height: 1.6em;
	border: 1px solid #a8518e;
}

#sponsor img {
max-width: 90%;

padding: 20px;
	}

.sponsor-banner{
	display: block;
}

#sponsor h2{
	border: none;
	padding: 8px;
	font-size: 120%;
	position: relative;
	background: #a8518e;
	border-bottom: #FBF681 2px solid;
	color: #FFF;
}

@media screen and (max-width: 768px){
	
	.sponsor-banner{
	text-align: center;
}
	
	#sponsor img {
max-width: 60%!important;
text-align: center!important;
margin: 0 auto;
}
}



/* contact */
#contact{
width: 100%;
display: flex;
grid-column-gap: 30px;
}
.contact h2{
	padding: 10px 0;
	font-size: 110%;
	text-align: center;
	background: #a8518e;
	color:#FFF;
	border: none;
	font-weight: normal;
}
.contact p{
	margin: 10px 15px;
	color: #2A2A2A;
}

.contact{
width: 50%;
border: 1px solid #a8518e;
padding: 10px;
margin: 10px auto;
}
@media screen and (max-width: 768px){
#contact{
width: 100%;
display: block;
}
.contact{
width: 100%;
border: 1px solid #a8518e;
padding: 10px;
margin: 10px auto;
}
	#link_bnr{
		display: block;
		text-align: center;
	}
	.linl-b{padding: 10px;}
}


/* soshiki */

#soshiki h4{
color: #a8518e;
margin-top: 26px;
font-size: 110%;
margin-bottom: 0;
}
/* dt dd 横並び設定 */
#soshiki dl {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 20px 0;
    padding: 0;
    border-top: 1px solid #e0e0e0;
}

#soshiki dt {
    flex: 0 0 20%; /* dtの幅を20%に */
    font-weight: bold;
    margin: 0;
    padding: 15px 20px 15px 15px;
 
    border-bottom: 1px solid #e0e0e0;
  
    box-sizing: border-box;
    display: flex;
    align-items: center; /* 縦中央揃え */
}

#soshiki dd {
    flex: 0 0 80%; /* ddの幅を80%に */
    margin: 0;
    padding: 15px 0 15px 20px;
    border-bottom: 1px solid #e0e0e0;
    box-sizing: border-box;
    display: flex;
    align-items: center; /* 縦中央揃え */
}

/* dtのみの行（見出しとして使用する場合） */
#soshiki dt:only-child {
    flex: 0 0 100%;
    border-right: none;
    background-color: #a8518e;
    color: #fff;
    font-size: 16px;
}
@media screen and (max-width: 768px){
	#soshiki dl{
		display: block;
		border: none;
	}
	#soshiki dt {
    display: block;
		border: none;
  flex: 0;
}

#soshiki dd {
  display: block;
     flex: 0;
}
}

/* venue */

#venue ul{
	margin: 30px auto;
	text-align: center;
}
#venue li{
	list-style: none;
	margin: 0 auto;
}

/* endai */
.poster{
  float: left;
  width: 100%;
}
.poster > ul{
  float: left;
  width: 48%;
  margin-bottom: 20px;
  padding-right: 2%;
}
.poster figure{
  float: right;
  width: 48%;
  padding-left: 2%;
  text-align: center;
}
.poster figcaption{
  font-size: 90%;
}
@media screen and (max-width: 640px){
  .poster > ul, .poster figure{
    width: 100%;
    padding-right: 0;
  }
}

/* 演題募集 */
.flow .disc li{
  list-style: disc;
  list-style-position: outside;
	margin-left: 1.5em;
}
.flow .decimal li{
  list-style: decimal;
  list-style-position: outside;
	margin-left: 1.5em;
}


/* 事前参加登録 */


#flow li {
  list-style: none;
    margin: 10px 0;
    padding-bottom: 20px;
    background: url(../img/arrow.gif) no-repeat center bottom;
}
#flow li > div {
    padding: 10px 2%;
    border: solid 1px #999;
    background: #eee;
}
#flow li > div p {
  margin: 10px 0;
}
#flow li:last-child {
    background: none;
}
.koza {
  width: 95%;
  padding: 10px 2%;
  border: 2px solid #ccc;
  margin: 20px 0;
}
.koza dt {
  clear: both;
  float: left;
  width: 6em;
}
.koza dt::after {
    content: "：";
}
.koza dd {
    margin-left: 6em;
}
.attention {
  margin: 20px 2% 30px;
  padding: 10px 2% 15px;
  background: #FFC;
  border: double 4px #FC0;
}
.attention.blk {
  background: #FFF;
  border: double 4px #222;
}
.uketuke{
	font-weight: 400;
	font-size: 110%;
	margin-bottom: 0.5em;
}


/* 市民公開講座 */
#course_menu ul{
  display: flex;
  justify-content:space-around;
}
#course_menu ul li{
  list-style: none;
}
#course_menu ul li.btn{
  width: 30%;
}

.bluebox{background-color: #0f62c4;
	color: #fff;
	font-weight: bold;
	padding: 6px;
	margin-bottom: 15px;
	
}

.mb15{margin-bottom: 15px;
	
}

#koushi img{margin: 0px 30px 30px 0;
	float: left;
}

#koushi p{
	margin-top: 20px;
	line-height: 1.5;
}

.map {
	text-align: center;
}
.map img{
	width: 80%;
	margin: 20px auto;

}
dl.sankasha{
display: block;
}
.sankasha dt{
display: inline-block;
width: 110px;
}
dt.dt_midashi{
text-align: center;
width:110px;
font-size: small;
font-weight: bold;
background:#EFEFEF;
border-bottom: 2px solid #c0c0c0;
vertical-align: top!important;
}
.sankasha dd{
display: inline-block;
margin-left: 5px;
/*border-bottom: 1px solid #c0c0c0;*//*border-bottom: 1px solid #c0c0c0;*/
margin-bottom:5px;
width: 80%;
}
ul.sankasha{
margin-left: 1.2rem;
list-style: disc;
}
ol.sankasha{
margin-left: 1.2rem;
}
.bbox{
border:2px solid #c0c0c0;
}
.mT15{
margin-top: 15px;
}
.mT50{
margin-top: 50px;
}
.tri_outer{
display: block;
/*background-color: #212529;*/
  /*display: grid;*/
  height: 30px;
  margin: 0 auto;
  padding: 8px;
  /*place-items: center;*/
  width: 30px;
}
.triangle {
  border-left: 15px solid transparent;
  border-right: 15px solid transparent;
  border-top: calc(tan(60deg) * 15px) solid #ed7978;
}
.step_dt dt{
background: #ed7978;
color: #fff;
font-size: 1.2rem;
font-weight:bold;
border-radius: 5px 5px 0 0;
text-align: center;
}
p.step_dt{
padding: 2px 5px;
line-height: 2rem;
border-radius: 5px;
border: 2px solid #ed7978;
}
.step_dt dd{
border-radius: 0 0 5px 5px;
border-left: 2px solid #ed7978;
border-right: 2px solid #ed7978;
border-bottom: 2px solid #ed7978;
padding: 2px 5px;
line-height: 2rem;
}
a button{
width: 300px;
height: 65px;
background: #ed7978;
color: #fff;
font-weight: bold;
font-size: 18px;
margin: 10px 0;
border-top: 1px solid #ed7978;
border-left: 1px solid #ed7978;
border-right: 1px solid #ed7978;
border-bottom: 3px solid #dc143c;
}
a button:hover{
color: #4169e4;
background: #fff;
border: 1px solid #4169e4;
border-bottom: 3px solid #4169e4;
transform: translateY(3px);
}

@media screen and (min-width: 769px){
.sanka_ttl{
width: 70%;
display: inline-block;
}
.sanka_ttl table.schedule{
margin-top: 0!important;
}
.bbox{
width: 95%;
margin: 0 auto;
padding: 1rem;
}
}
@media screen and (max-width: 768px){
  .map img{
	width: 95%;
	margin: 10px auto;

}
.sanka_ttl{
width: 100%;
}
.sankasha dd{
width: 100%;
margin-bottom: 10px;
}
.bbox{
width: calc(100% - 20px);
padding: 10px;
margin: 0 auto;
}
}

@media screen and (max-width: 540px){
  #koushi img{
	 margin: 20px auto;
	float: none;
	 text-align: center;
  }
}

.pic{
	width:130px;
	margin-bottom: 20px;
}


@media screen and (min-width: 421px){
.pc{
	display: block;
}

.sp{
	display: none;
}
}

@media screen and (max-width: 420px){
	
	section{
	margin: 10px 10px;
	padding: 5px;
}
	.pc{
	display: none;
}
	
	.sp{display: block;}
}

.text-block{
	margin: 0 auto;
	padding: 20px;
	width: 100%;
}


 /*ホームバナーエリア*/
#link_bnr {
  width: 100%;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
  margin: 30px 0;
}

#link_bnr {
  width: 100%;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
  margin: 30px 0;
}

.event-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #c265a8, #8f4579);
  color: white;
  text-decoration: none;
  padding: 16px 20px;
  border-radius: 6px;
  font-size: 20px;
  font-weight: bold;
  font-family: 'Hiragino Sans', 'Yu Gothic', sans-serif;
  min-width: 280px;
  min-height: 60px;
  text-align: center;
  
  /* ベベルエンボス効果 */
  box-shadow: 
    inset 1px 1px 2px rgba(255, 255, 255, 0.3),
    inset -1px -1px 2px rgba(0, 0, 0, 0.2),
    0 3px 6px rgba(0, 0, 0, 0.2);
  
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: all 0.3s ease;
}

.event-banner:hover {
  background: linear-gradient(145deg, #b85a9c, #7d3e6b);
  transform: translateY(-1px);
  box-shadow: 
    inset 1px 1px 2px rgba(255, 255, 255, 0.4),
    inset -1px -1px 2px rgba(0, 0, 0, 0.3),
    0 4px 8px rgba(0, 0, 0, 0.3);
}

.icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: linear-gradient(145deg, #ffffff, #e8e8e8);
  color: #a8518e;
  border-radius: 50%;
  font-size: 14px;
  margin-right: 12px;
  flex-shrink: 0;
  
  /* アイコンにもベベル効果 */
  box-shadow: 
    inset 1px 1px 2px rgba(255, 255, 255, 0.8),
    inset -1px -1px 2px rgba(0, 0, 0, 0.1),
    0 1px 2px rgba(0, 0, 0, 0.1);
}

.banner-text {
  line-height: 1.4;
  text-align: center;
  flex: 1;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  #link_bnr {
    flex-direction: column;
    align-items: center;
  }
  
  .event-banner {
    min-width: 300px;
    font-size: 18px;
  }
}