@charset "UTF-8";
body { margin:0; font-family:sans-serif; }
a { text-decoration:none; }
h5 { margin: 0; padding: 0; border: 0; }
html, h1, h2, h3, h4, h5, h6, form, fieldset, img {margin:0;padding:0;border:0}
p {margin:0;padding:0;word-break:break-all}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block}

*, :after, :before {
  -webkit-box-sizing:border-box;
  -moz-box-sizing:border-box;
  box-sizing:border-box;
}
button {cursor:pointer}

.top-header {border-bottom:1px solid rgba(0,0,0,0.15)}
.top-container {padding-left:0;padding-right:0}
.top_header { background:#fff; color:#fff; position:relative; }
.top-info-row { max-width:1280px; margin:0 auto; display: flex; justify-content: space-between; align-items: center; padding: 0 20px; background: #f2f2f2; font-size: 14px; color: #555; }
.top-left .links {
	font-weight: bold;
	display: flex;
	align-items: center;   /* リンクを縦中央に揃える */
	height: 30px;          /* 高さを固定 */
}

.top-right {
  float: right;
  display: flex;
  align-items: center;   /* リンクを縦中央に揃える */
  height: 30px;          /* 高さを固定 */
}

.top-header-nav { float: right; }
.top-menu-list {
  list-style: none;
  padding-left: 0;
  display: flex;       /* 横並びにする */
  gap: 10px;           /* アイテム間の余白 */
}

.top-menu-list li a {
  text-decoration: none;
  color: #333;
  padding: 2px 6px;    /* 縦横の余白を小さくして高さを抑える */
  font-size: 14px;      /* フォントサイズを小さめにする */
  line-height: 1.2;     /* 行間を詰める */
}

.header { background:#333; color:#fff; position:relative; }
.header-inner { max-width:1280px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; padding:10px 20px; }
.logo { font-size:22px; font-weight:bold; vertical-align: top;}
.logo a { color:#fff; vertical-align: top;}
.nav a, .submenu-toggle { color:#fff; display:block; padding:10px 15px; font-size: 1.0em;}
.nav { position: relative; z-index: 1000; }
.submenu-toggle .arrow { display:inline-block; margin-left:5px; transition: transform 0.3s ease; }
.submenu-toggle.open .arrow { transform:rotate(180deg); }
.submenu { max-height:0; overflow:hidden; transition:max-height 0.3s ease; background:#444; flex-direction:column; display:block; position:relative; z-index: 1001; }
.submenu.open { max-height:500px; margin-top:0px;}
.submenu.closing { transition:none; max-height:0; }
.overlay { position:fixed;inset:0; background:rgba(0,0,0,0.5); display:none; z-index:9; }

@media (min-width:800px){
	.hamburger, .overlay { display:none; }
	.nav { max-width:1280px; margin:0 auto; position:relative; }
	.nav ul { list-style:none; padding-left:0; display:flex; gap:30px; justify-content:flex-start; margin-top:10px; }
	.nav li { position:relative; }
	.submenu-toggle { background:none; border:none; cursor:pointer; }
	.submenu { position:absolute; top:100%; left:0; min-width:180px; display:none; }
	.submenu.open { display:block; }
}

.basic_body {
	position: relative;
	padding: 10px 10px;
	margin:0 auto;
	display: flex;
	flex-direction: column; /* 縦方向に並べる */
	gap: 20px;              /* ブロック間の余白 */
	align-items: center;
}
.container {
	max-width: 1280px;
	width: 100%;
	padding-left: 5px;
	padding-right: 5px;
}
.swiper { width: 100%; max-height: 400px; margin: 20px 0; }
.swiper-slide img { width: 100%; height: 100%; object-fit: cover; }

.main-wrap {
	display: flex;
	justify-content: center; /* 全体中央寄せ */
	max-width: 1280px;
	margin: 0 auto;
	padding: 0;
	align-items: flex-start;
	box-sizing: border-box;
}
.basic-body-main {
	flex: 0 0 75%;
	max-width: 960px; /* 中央で幅制限 */
	padding: 0;
	box-sizing: border-box;
}
/* メイン内部の2カラム */
.basic-body-main-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
/* サイドバー */
.basic-body-side {
	flex: 0 0 25%;
	max-width: 300px; /* 中央で幅制限 */
	padding: 0 10px;
	box-sizing: border-box;
}
/* headline-short */
.headline-short h5 {
	margin: 0 0 10px;
	font-size: 1.1em;
	word-break: keep-all;
}
/* ---------- group-latest ---------- */
.group-latest {
	position: relative;
    overflow: hidden;
    border: 1px solid #e5e5e5;
    padding: 15px;
}
.group-latest ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.group-latest li {
	display: flex;
	align-items: center;
	border-bottom: 1px solid #eee;
	padding: 5px 0;
}

.group-latest li a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	text-decoration: none;
	color: inherit;
}

.group-latest .group-subj {
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	padding-right: 10px;
}

.group-latest .group-time {
	flex: 0 0 100px;
	text-align: right;
	white-space: nowrap;
	color: #666;
	font-size: 0.9em;
}
.col-lg-6 {
	flex: 0 0 49%;       /* PC: 横並び 2カラム */
	max-width: 498%;
	width: auto;         /* 横幅自動 */
	box-sizing: border-box;
	padding: 0;
}

.m-b-30 {
	margin-bottom: 30px !important;
}
*, :after, :before {
  -webkit-box-sizing:border-box;
  -moz-box-sizing:border-box;
  box-sizing:border-box;
}


.footer { background:#222; color:#fff; font-size:14px; }
.footer a { color:#fff; }
.footer-menu-row { max-width:1280px; margin:0 auto; padding:10px 20px; }
.footer-menu-row .footer-menu {
	list-style:none;
	margin:0;
	padding-left:0;
	display:flex;
	gap:30px;
	justify-content:flex-start; /* 左寄せ */
}
.footer-info-row { display:flex; justify-content:space-between; flex-wrap:wrap; max-width:1280px; margin:0 auto; padding:20px; gap:20px; }
.footer-left, .footer-center, .footer-right { flex:1; min-width:150px; }
.footer-center { text-align:center; }
.footer-right { text-align:right; }
.footer-bottom { text-align:center; background:#111; padding:10px 0; font-size:13px; }

