﻿@charset "UTF-8";

/* 共通部分 */
html {
	font-size: 100%;
}
body {
	font-family: " Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体","ヒラギノ角ゴ Pro W3", sans-serif;
	/* line-height: 1.7; */
	margin: 0;
      padding: 0;
      width: 100%;
      height: 100%;
}

a {
	text-decoration: none;
}
img {
	max-width: 100%;
}
.mb10 {
	margin-bottom: 10px;
}
.mb15 {
	margin-bottom: 15px;
}
.mb20 {
	margin-bottom: 20px;
}
.mb25 {
	margin-bottom: 25px;
}

/* header */
.logo { 
	width: 700px;
	margin-top: 0px;
	padding: 0 4%;
}

/* header */
.co { 
	width: 400px;
	margin-top: 0px;
	padding: 0 4%;
}

/* header */
.kumiai { 
	width: 700px;
	margin-top: 0px;
	padding: 0 4%;
}

/* header */
.gyoumu { 
	width: 800px;
	margin-top: 0px;
	padding: 0 %;
}

.sisin { 
	width: 900px;
	margin-top: 0px;
	padding: 0 4%;
}

/* header */
.hen { 
	width: 600px;
	margin-top: 0px;
	padding: 0 4%;
}

/* header */
.sei { 
	width: 600px;
	margin-top: 0px;
	padding: 0 4%;
}

/* navigation */
.gnav {
	margin: 0;
	padding: 0;
}
.nav {
	width: 100%;
	/* display: flex; */
	font-size: 2rem;
	text-align: center;
	list-style: none;
	background-color: #191970;
	padding: 0 0px;
}

.nav ul {
	padding: 0 200px;
}

.nav li {
	margin: 0 36px;
	display: inline-block;
}

.nav li a {
	color: #fff;
}

.nav li a:hover {
	color: #191970;
	background: #fff;
	border-bottom: 5px solid #191970;
}

.wrapper {
	max-width: 100px;
	margin: 0 auto;
	padding: 0 4%;
}

/* home-content wrapper */
.home-content {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	min-height: auto;
	margin-bottom: 20px;
}

/* slide */
#slick01 {
	width: 100%;
	margin: 0 auto;
	padding: 0 4%;
}
.slick-prev:before,
.slick-next:before {
	color: #191970;
	font-size: 20px;
}
/* ./slide */

/* news-contents -- 2column-- article to aside*/
.news-contents {
	display: flex;
	justify-content: space-between;
	margin-bottom: 50px;
}
/* article */
article {
	width: 100%;
}
/* news */
.post-info {
	position: relative;
	padding-top: 20px;
	margin-bottom: 40px;
}
.post-date {
	background: #191970;
	border-radius: 50%;
	color: #fff;
	width: 100px;
	height:100px;
	font-size: 1.625rem;
	text-align: center;
	position: absolute;
	top: 0;
	padding-top: 10px;
}
.post-date span {
	font-size: 1rem;
	border-top: 1px rgba(255,255,255,.5) solid;
	padding-top: 6px;
	display: block;
	width: 60%;
	margin: 0 auto;
}
.post-title {
	font-family: "Yu Mincho", "YuMincho", serif;
	font-size: 2rem;
	font-weight: normal;
}
.post-title,
.post-cat {
	margin-left: 100px;
}
/* aside */
aside {
	width: 28%;
	padding: 0;
}
.sub-title {
	font-size: 1.375rem;
	padding: 0 8px 8px;
	border-bottom: 2px solid #191970;
	font-weight: normal;
}
.sub-menu {
	/* margin-bottom: 60px; */
	list-style: none;
	padding: 0 4%;
}
.sub-menu li {
	border-bottom: 1px #ddd solid;
}
.sub-menu a {
	color: #432;
	/* padding: 10px; */
	display: block;
}
.sub-menu a:hover {
	color: #191970;
}
/* about */
.msg-contents {
	display: flex;
	justify-content: space-between;
	margin-bottom: 50px;
}
.image,
.image_cmd {
	width: 280px;
	height: auto;
	margin: auto;
	padding-top: 0;
}
.cmd-photo,
.cmdmc-photo {
	float: right;
}
/* ハッピーちゃん対応 */
.carrier_pigeon-img {
	width: 250px;
	height: 210px;
	object-fit: cover;
	border-radius: 80% 10% 30% 30%/100%;
}
.carrier_pigeon-img dl {
	font-size: 10px;
	margin: auto;
}
.carrier_pigeon-img dl dt {
	margin: auto;
}
.carrier_pigeon-img dl dt dd {
	margin: auto;
}
.carrier_pigeon {
	float: right;
}
/* ハッピーちゃん対応ここまで */
/* 部隊紹介 */
.under_construct {
	margin: 0 auto;
}
/* 部隊紹介ここまで */
/* history */
.timeline {
	width: 100%;
	max-width: 840px;
	margin: 28px auto;
	border: 1px solid #eeeeeeee;
}
.timeline-list {
	padding: 40px 0;
}
.timeline-list-item {
	display: flex;
	line-height: 1.1;
	font-size: 16px;
}
.timeline-list-item .date {
	width: 20%;
	padding: 0 0 0 20px;
}
.timeline-list-item .summary {
	position: relative;
	width: 80%;
	padding: 0 20px 60px 30px;
	border-left: 1px solid #aaaaaa;
}
.timeline-list-item .summary::before {
	content: "";
	position: absolute;
	top: 0;
	left: -10px; /* widthの半分の値を指定 */
	width: 20px;
	height: 20px;
	background-color: #00c2bc;
	border-radius:10px;
}
/* link */
.link-wrapper {
	display: flex;
	flex-direction: column;
	line-height: 1.7;
}
#yt_link {
	display: inline-block;
	margin: 0 auto;
}
.link-title01 {
	margin: 0;
	padding: 0;
	border-left: 4px solid;
	border-color: #191970;
	border-collapse: separate;
	border-spacing: 25px 2px;

}
.line-title02 {
	margin: 0;
	padding: 0;
	border-bottom: 2px solid;
	border-color: #aaaaaa;
}
.link-title03 {
	margin: 0;
	padding: 0;
	overflow-x: auto;
	display: flex;
	font-size: 14px;
	flex-wrap: wrap;
	justify-content: space-between;
	list-style: none;
	gap: 20 20px;
}
.link-title03 li {
	width: calc(100% / 4 - 20px);
}
/* notice */
.notice {
	width: 80%;
	max-width: 840px;
	margin: 0 auto;
	list-style: none;
}
.title01 {
	font-size: 33px;
	padding-top: 10px;
	margin-bottom: 38px;
	letter-spacing: 2px;
	font-weight: 500;
}
.notice .title03 {
	margin-top: 20px;
	margin-bottom: 15px;

}
.notice p {
	margin: 0 30px 30px;
}
.notice ul li {
	font-size: 15px;
	line-height: 1.8em;
	list-style: none;
}
.notice ul li a {
	text-decoration: underline;
	color: #002c60;
}
.indent01 {
	margin-left: 1.0em;
}
.indent01 li {
	margin: 0 0 0.7em 2em;
	text-indent: -2.0em;
}
.indent02 li {
	text-indent: 0.1em;
	font-size: 1.0em;
}
.txt-red {
	color: red;
}
/* youtube */
#yt_link {
	display: inline-block;
	margin: 0 auto;
}
/* footer */
footer {
	background: #191970;
	text-align: center;
	padding: 2px 0;
}
footer p {
	color: #fff;
	font-size: 0.875rem;
}
/* humberger */
/* checkbox hiden */
.menu-hidden {
	display: none;
}
	/* モバイル対応 */
@media screen and (max-width: 600px) {

	/* header */
	#header {
		width: 100%;
		display: flex;
		justify-content: space-between;
	}
	h1 {
		min-width: 100px;
		margin: 0;
	}

	.gnav {
		margin: 0;
	}
	
	.logo { 
		width: 210px;
		margin-top: 8px;
	}
	

	/* navigation */

	/* humberger icon space */
	.menu-open {
		display: flex;
		width: 100px;
		height: 100px;
		justify-content: center;
		align-items: center;
		position: relative;
		z-index: 100;
		cursor: pointer;
	}
	/* humberger icon */
	.menu-open span,
	.menu-open span:before,
	.menu-open span:after {
		content: '';
		display: block;
		width:25px;
		height:20px;
		border-radius: 3px;
		background: #333;
		transition: .5s;
		position: absolute;
	}
	.menu-open span:before{
		bottom: 8px;
	}
	.menu-open span:after {
		top: 8px;
	}
	#menu-check:checked ~ .menu-open span {
		background: rgba(255,255,255,0);
	}
	#menu-check:checked ~ .menu-open span:before {
		bottom: 0;
		transform: rotate(45deg);
	}
	#menu-check:checked ~ .menu-open span:after {
		top: 0;
		transform: rotate(-45deg);
	}

	.nav {
		width: 100%;
		height: 100%;
		position: fixed;
		flex-direction: column;
		top: 40px;
		left: 100%;
		transition: .10s;
		z-index: 99;
		font-size: 1.2rem;
		background-color: rgba(25,25,112,0.6);
		color: #000000;
	}

	.nav ul {
		border: 100px solid;
		margin: 10;
		padding: 10;
	}
	
	.nav li {
		margin: 0;
		display: block;
		flex-direction: column;
	}

	.nav a {
		display: block;
		color: #191970;
	}
	
	.nav a:hover {
		border: 5px solid #191970;
	}

	#menu-check:checked ~ .nav {
		left:0;
	}

	/* news */

	.news-contents {
		flex-direction: column;
		margin: 40px 0 0 0;
		padding:0;
	}

	article,
	aside {
		width:100%;
	}

	article {
		padding-left:0;
	}

	aside {
		margin-top: 0;
		padding: 0 4%;
	}

	.post-info {
		margin-bottom: 30px;
	}

	.post-date {
		width: 70px;
		height: 70px;
		font-size: 1rem;
	}

	.post-date span {
		font-size: 0.8rem;
		padding-top: 2px;
	}

	.post-title {
		font-size: 1.1rem;
	}

	.post-cat {
		font-size: 0.875rem;
		margin-top: 10px;
	}

	.post-title,
	.post-cat {
		margin-left: 80px;
	}

	/* message */

	article,
	aside {
		width:100%;
	}

	.msg-contents {
		font-size: 0.875rem;
		flex-direction: column;
	}

	.cmd-photo,
	.cmdmc-photo {
		float: none;
	}

	.carrier_pigeon {
		float: none;
	}

	.cmd-photo {
		margin: auto;
	}

	/* footer */

	footer {
		background: #191970;
		padding: 0px 0;
	}

	footer p {
		color: #fff;
		font-size: 0.875rem;
	}
}
/* モバイル対応ここまで */

/* 左右に並べるための親要素 */
.container {
  display: flex;
  align-items: flex-start; /* 上揃えにする */
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
}

/* 左側のリンク集（固定側） */
.sidebar {
  width: 250px;            /* リンク集の横幅 */
  position: sticky;        /* スクロール時に固定する設定 */
  top: 20px;               /* 画面上部からどの位置で固定するか */
  background-color: #f4f4f4;
  padding: 20px;
  box-sizing: border-box;
}

/* 右側の文章（スクロール側） */
.content {
  flex: 1;                 /* 残りの横幅をすべて使う */
  margin-left: 40px;       /* リンク集との間の余白 */
}

/* リンク集全体の枠組み */
.sidebar {
  width: 250px;
  position: sticky;
  top: 20px;
  background-color: #ffffff; /* 白背景 */
  border: 1px solid #e0e0e0;  /* 薄いグレーの囲み線 */
  border-radius: 8px;        /* 角を少し丸める */
  padding: 24px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); /* ほのかな影 */
}

/* 「リンク集」の見出し */
.sidebar h3 {
  font-size: 16px;
  color: #333333;
  margin-top: 0;
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid #333333; /* 見出しの下に太線 */
}

/* リストの箇条書きをリセット */
.sidebar ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* 各メニューの行 */
.sidebar li {
  border-bottom: 1px solid #f0f0f0; /* 各リンクの間に薄い区切り線 */
}
.sidebar li:last-child {
  border-bottom: none; /* 最後の線の消去 */
}

/* リンク（文字）の装飾 */
.sidebar a {
  display: block;             /* 文字以外をクリックしても反応させる */
  padding: 12px 0;            /* 上下に程よい余白 */
  color: #666666;             /* 落ち着いたグレー */
  text-decoration: none;      /* 下線を消す */
  font-size: 14px;
  transition: all 0.2s ease;  /* 変化をなめらかにする */
}

/* マウスを乗せたとき（ホバー時）の動き */
.sidebar a:hover {
  color: #0066cc;             /* 鮮やかなブルーに変わる */
  padding-left: 4px;          /* 右に少しズレるアニメーション */
}

.container-center {
  display: flex;
  justify-content: center; /* 中央に寄せる */
  gap: 30px; /* 左右の要素の間のスペース */
}