@charset "UTF-8";

/* styleをタグ名で指定 */
h2{
	 	color:white;
	margin:0 auto;
}




i {
	font-size:2.0rem;
}

a{
 	text-decoration: none;
}

a:hover{
	text-decoration: underline;
}
.new{
	display:inline-block;
	margin-right:4px;
	margin-left:4px;
	white-space:nowrap;
}
.new::before{
	font-size:0.7em;
	color:#fff;
    content: "NEW";
    background-color: crimson;
	padding: 5px 25px;
	
}

header{
	margin:0 auto;
	padding:2%;
	background-color: #8ACDD7;
	text-align:center;
	color:white;
}

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
}

.breadcrumb li:not(:last-of-type)::after {
  content: "»";
  margin: 0 .6em; /* 記号の左右の余白 */
  color: #777; /* 記号の色 */
}


main{
	margin:0 auto;
	text-align:center;
	padding: 20px 0px;
}

main div{
	width:80%;
	margin:0 auto;
}

main div img{
	width:98%;
	height:auto;
}
main div table{
	width:98%;
	height:auto;
}
.kairandiv{
	margin-top:5%;
	margin-bottom:5%;
}

.kairandiv p{
	margin:5% 1%;
	font-size:1.2rem;
}

.kairanli{
	text-align:left;
	font-size:1.3rem;
	margin:2% 10%;
}

.kairanspan{
    display: inline-block;
	width:9em
	}

section{
	width:90%;
	margin:0 auto;
	margin-top:20px;
	display:flex;
	flex-direction: row;
	justify-content: space-evenly;
}

section div{
	width:150px;
	height:150px;
	border: 1px solid gray;
		color:gray;
	display:block;
	text-align:center;
	vertical-align:middle;
	background:#82A0D8;
	box-shadow: 2px 2px gray;
}


/* トップへ戻るボタン */
.page_top_btn {
position: fixed;
bottom: 10px;
right: 10px;
font-weight: bold;
padding: 0.7em;
text-align: center;
background: rgb(255, 0, 0);
color: #fff;
		transition: 0.3s0;
		opacity: 0.7;
		border-radius: 4%;
}

/* マウスオーバー時 */
.page_top_btn:hover {
background: rgb(255, 0, 0, 0.8);
color: rgb(255, 255, 255, 0.8);
}

.content.white {
height: 500px;
background-color: #fff;
}

.content.gray {
height: 500px;
background-color: #eee;
	}
	
	
	
	
section div ul{
	list-style:none;
	padding:30px 0;
	display:inline-block;
	color:white;
}

section div ul li{
	width:100%;
}

.btnshow{
	width:auto;
	text-align:right !important;
	margin:auto;
	background:none;
	border:none;
	margin:20px;
		height:20px;
	border: 0px;
	box-shadow: none;
}

footer{
	width: 100%;
	height: 100px;

	background-color: #8ACDD7;
	color: white;
	text-align: center;
	_margin-top:30px;
	padding-top:20px;
}

footer ul {
	width:80%;
	margin:0 auto;
	text-align:center;

}

footer ul li {
	width:18%;
	display: inline-block;
}

footer ul li a {
	color: white;
}

.evebtn1{
	display: block;
	width: 80%;
	height:40px;
	line-height:40px;
	max-width:600px;
	padding: 1rem;
	margin:0 auto;
	font-size: 1rem;
	background-color: #007acc;
	color: white;
	border: none;
	cursor: pointer;
	border-radius: 5px;
}

.evebtn2{
	display: block;
	width: 80%;
	height:40px;
	line-height:40px;
	max-width:600px;
	padding: 1rem;
	margin:40px auto 60px;
	font-size: 1.2rem;
	background-color: #4169e1;
	color: white;
	border: none;
	cursor: pointer;
	border-radius: 5px;
}


.nav-list {
	text-align: center;
	padding: 10px 0;
	margin: 0 auto;
}
.nav-list a{
	color:white;
}
.nav-list-item {
	list-style: none;
	display: inline-block;
	margin: 0 20px;
}

.detail_text{
	width:80%;
	margin:5% auto;
	display:block;
}

.detail_text div{
	width:100%;
	margin:0 auto;

}

.box{
	border: 1px solid #e9bb72;

background:#fff;
height: 240px;
padding: 1%;
overflow: scroll;
}

.box p{
font-size: 1.2em;
margin-left:72px;
text-align:left;
}

.box hr{
border: 1px dotted #d8cfc7;
}

.box p span{
margin-left:-62px;
font-size:1em;
color:#bd7800;
padding-right: 10px;

}

.box2{
	border: 1px solid #e9bb72;
background:#fff;
height:auto;
padding: 1%;

}
.box2 p{
font-size: 14px;
margin-left:72px;
text-align:left;
}
.box2 p span{
margin-left:-62px;
font-size:14px;
color:#bd7800;
padding-right: 10px;

}




table {
  width: 100%;
	height:auto;
	margin: 20px auto;
}
.tbl-r02 th {
	width:20%;
  background: #8ACDD7;
  color: #fff;
	padding:10px 0;
}
.tbl-r02 td {
	border: solid 1px #ccc;
	padding: 10px;
	text-align:left;
}

.thmonth{
	background:#A3DC9A  !important;
}
	
.tbl-r03 th {
	width:20%;
  background:none;
		padding:10px 10px;
		text-align:left;
}
.tbl-r03 td {
  background:none;
	padding: 10px;
	text-align:left;
	}
	
	.tdsanka{
	width:20%;	
	}
	.titletr{
	  background:#abc594;	
	}
	
	.titletr2{
	  background:#a2c2e2;	
	}
	
	.thtxt01{
	width:40%;	
	}
	.thtxt02{
	font-size:1.4rem;	
	}	
	
	
	
	.hensyubtn{
  width: 80%;
	padding: 0.6rem;
	margin:5px auto;
  font-size: 1rem;
  background-color: #007acc;
  color: white;
  border: none;
  cursor: pointer;
  border-radius: 5px;
	}
	
	
form {
  max-width: 1200px;
  margin: 0 auto;
	padding: 1rem;
	font-size:1.2rem;
}

.form-group {
	  margin-top: 1rem;
  margin-bottom: 1rem;
}


label {
    display: inline-block;
  margin-bottom: 0.5rem;
}

.radioItem {
  align-items: center;
  column-gap: 4px;
  width: fit-content;
  line-height: 1;
  cursor: pointer;
}

.radioItem:not(:last-of-type) {
  margin-bottom: 16px;
}
.txta {
 display: inline-block;
    width: 300px;
    padding: 0.5em;
    border: 1px solid #999;
    box-sizing: border-box;
    background: #f2f2f2;
    margin: 0.5em 0;
}
	
.radioButton {
  appearance: none;
  position: relative;
  width: 20px;
	height: 20px;
	top:3px;
  border: 1px solid #06b6d4;
  border-radius: 9999px;
  cursor: pointer;
}

.radioButton:checked::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 12px;
  height: 12px;
  margin: auto;
  border-radius: 9999px;
  background-color: #06b6d4;
}

textarea {
		width: 100%;
				max-width:600px;
  padding: 0.75rem;
  font-size: 1rem;
  box-sizing: border-box;
}

button {
  display: block;
		width: 80%;
		max-width:600px;
	padding: 1rem;
	margin:0 auto;
  font-size: 1rem;
  background-color: #007acc;
  color: white;
  border: none;
  cursor: pointer;
  border-radius: 5px;
}


.pagination-3 {
    display: flex;
    justify-content: right;
    align-items: center;
    gap: 0 8px;
    list-style-type: none;
	padding: 0;

}

.pagination-3 a {
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 1.6em;
    height: 1.6em;
    border-bottom: 2px solid #fff0D8;
	color:#82A0D8;
    text-decoration: none;
}

.pagination-3 .current a {
    border-bottom: 2px solid #2589d0;
    pointer-events: none;
	}
	
	
/*チャット*/
	.room {
	width: 80%;      /* チャットルームの幅を指定 */

		padding: 10px;     /* 余白を10pxキープ */
			text-align:left;
}

.chat {
	display: flex;        /* 要素を横並び */
	margin-bottom: 10px;  /* チャット同士に隙間を作る */
}

.chat .mes {
	max-width: 70%;       /* 短いチャットにも対応させるため、widthではなくmax-widthを指定 */
	border-radius: 20px;  /* （あとでも可）角丸を指定 */
	padding: 0.5em;       /* （あとでも可）メッセージの内側に余白 */
}

.chat.you {
	margin-bottom: 0px;
	flex-direction: column;		/* 縦方向のFlexboxに変更 */
	align-items: flex-start;	/* 全体を左寄せにする */
}

/* 相手メッセージのCSS */
.chat.you .mes{
	width:40%;
	padding:10px 20px;
	color: #fff;        /* 文字色を白 */
	background: #7ebbdc;   /* 背景を黒 */
	order: 2;
}
.chat.you .date_div {
	order: 3;
	font-size: 0.8em;
	color: #666;
	margin-top: 3px;
	width: 100% !important;
}

/* 自分メッセージのCSS */
.chat.me {
	/*
	flex-direction: row-reverse;  左右の並び順を逆順にする
	*/
	margin-left: auto;
	margin-bottom: 0px;
	flex-direction: column;	/* 縦方向のFlexboxに変更 */
	align-items: flex-end;	/* 全体を右寄せにする */
}

.chat.me .mes{
		background: #5AC323;
		padding:10px 20px;
		order: 1;
}
.chat.me .date_div {
	order: 2;
	font-size: 0.8em;
	color: #666;
	margin-top: 3px;
	text-align:right;
	width: 100% !important;
}



#room_result_div {
    overflow-y: auto;
    height: 50vh;
    _scrollbar-width: none;
    _-ms-overflow-style: none;
	border:1px solid gray;
	background-color:#f5f5f5;
}

#room_result_div::-webkit-scrollbar {
    _width: 0;
    _height: 0;
}
	
.texta2{
height:50px;
width:98%;
  font-size:16px;
  margin-bottom:15px;
}

.texta3{
height:150px;
width:98%;
  font-size:16px;
  margin-bottom:15px;
}

	
	
	
/* 登録変更画面 */
.contact-bg form{
	max-width: 2200px !important;
	margin: 0 auto;
	padding: 1rem;
	font-size:1.2rem;
}

.essential{
	color:red;
	font-size:0.8rem;
	vertical-align: top;
}
.contact-table {
}
.contact-table th{
	font-weight:normal;
	font-size:1.2rem;
}



.input-area{
	width:84%;
	padding:10px;
	margin-bottom:10px;
	border-radius:6px;
	border:1px solid #ddd;
}

.table-list th{
	text-align:left !important;
}
.table-list td{
	text-align:left;
}
.inp02{
	width:1200px;
}

.click_span {
	cursor:pointer;
}
.click_span:hover{
	text-decoration: underline;
}

.changetbl {
	width: 100%;
	max-width:1000px;
}

.changetbl td {
	word-break: break-all;
	overflow-wrap: break-word;
	padding-left:5px;
	padding-right:5px;
}

.bp012 {
	margin-top:0px;
}

.box p.news_line .date_part {
	margin-left: -50px !important;
}

/* 2番目：タイトル（2行目の先頭） */
.box p.news_line .title_part {
    margin-left: 10px !important;
}

/* 3番目：NEW（タイトルのすぐ後ろ） */
.box p.news_line span.new {
    margin-left: 5px !important;
}

/*
.box p.news_line span.new:empty + span.date_part {
    margin-left: -50px !important;
}
*/

@media screen and (max-width: 1024px) {

    /* メインコンテンツの横幅を少し広げて余裕を持たせる */
    main div {
        width: 95%;
    }

    /* 自治会システムのメニューボタンなどの横並びを調整 */
    section {
        flex-wrap: wrap; /* 要素が入り切らない場合に折り返す */
        gap: 10px;       /* ボタン同士の隙間 */
    }

    section div {
        width: 140px;    /* 少し小さくして横に並びやすくする */
        height: 140px;
    }

    /* フォーム周りの入力欄を少し大きくしてタップしやすくする */
    .input-area {
        width: 90%;
        font-size: 1.1rem; /* 指でタップしやすいサイズ */
    }

    /* フッターのリンクの間隔を調整 */
    footer ul li {
        width: 30%; /* 4つ並びが厳しい場合は3つにするなど */
        margin-bottom: 10px;
    }

    /* モバイル版の「日付を1行・タイトルとNEWを2行」にする設定を移植 */
    .box p.news_line {
        margin-left: 5px !important;
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
    }

    /* 日付を100%幅にして1行目に固定 */
    .box p.news_line .date_part {
        order: 1 !important;
        margin-left: 3px !important;
        flex-basis: 100% !important;
        color: #bd7800;
        margin-bottom: 5px;
		font-size: 0.85em;
    }

    /* タイトル（2行目の開始） */
    .box p.news_line .title_part {
        order: 2 !important;
        display: inline !important;
        margin-left: 10px !important;
        word-break: break-all;
    }

    /* NEWバッジ */
    .box p.news_line span.new {
        order: 3 !important;
        display: inline-block !important;
        margin-left: 5px !important;
        vertical-align: middle;
    }

    /* 日付の後に強制改行を入れるための擬似要素 */
    .box p.news_line::before {
        content: "";
        order: 2;
        flex-basis: 100%;
    }

	.changetbl {
		margin-left: auto !important;
		margin-right: auto !important;
	}
}
