@charset "UTF-8";


*{
	box-sizing: border-box;
}
html,body{
	margin: 0;
	padding 0;
}
html{
	font-size: 62.5%;
}
body{
	min-width: 320px;
	/*
	font-family: "メイリオ","Meiryo",verdana,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro",Osaka,"MS Pゴシック","MS PGothic",Sans-Serif;
	*/
	font-family: "ヒラギノ明朝 ProN W3", "HiraMinProN-W3", "HG明朝E", "MS P明朝", "MS PMincho", "MS 明朝", serif;
	font-size: 1.5rem;
	line-height: 1.7em;
}


/********** 表示モード */

/* ライトモード (デフォルト) */
body,
body header,
body footer {
	background: #fafafa;
	color: #000;
	transition: background-color 0.3s, color 0.3s;
}
body a,
body .nav-menu div{
	color: #000;
}
body .page-link{
	background: #eee;
}

/* ダークモード */
body.dark-mode,
body.dark-mode header,
body.dark-mode footer {
	background: #050505;
	color: #fff;
}
body.dark-mode a,
body.dark-mode .nav-menu div {
	color: #fff;
}

body.dark-mode .page-link{
	background: #333;
}

/* 共通 */
body a:hover {
	color: #e7578d;
}


header,
footer{
	padding: 20px 0;
	box-shadow: 0px 0px 10px #ddd;
	color: #111;
	text-align: center;
}
footer{
	margin-top: 200px;
	font-size: 1.6rem;
	line-height: 2em;
}
	h1{
		font-size: 4rem;
		font-weight: normal;
	}
	h1 a{
		text-decoration: none;
	}
	h1 span{
		display: none;
	}
	
	footer a{
		text-decoration: none;
	}

main{
	width: 100%;
	max-width: 1400px;
	margin-left: auto;
	margin-right: auto;
}


/********** 投稿内容 */
main article{
	margin-top: 200px;
	max-width: 100%;
}
main article:nth-of-type(1){
	margin-top: 100px;
}

main article .img{
	margin-top: 50px;
	display: flex;	/* 中央寄せ */
	justify-content: center;
	align-items: center;
	width: 100%; /* 親要素の幅に合わせる */
	height: 100%; /* 親要素の高さに合わせる */
	overflow: hidden; /* 画像のはみ出しを防ぐ */
}
main article .img img{
	max-width: 100vw;	/* 画面幅を超えない */
	/*max-height: 100vh;*/ /* 画面高さを超えない */
	max-height: 95vh; /* 画面高さを超えない */
	/*width: auto;*/	/* 縦横比を維持 */
	width: 100%;	/* 縦横比を維持 */
	height: auto; /* 縦横比を維持 */
	object-fit: contain; /* 画面内に収める */
	object-position: center; /* 中央寄せ */
}

main article h2.title{
	margin: 0 auto;
	padding: 0 10px;
	max-width: 700px;
	font-size: 2.5rem;
	text-align: center;
}
main article h2.title a{
	text-decoration: none;
}
main article .concept{
	margin: 50px auto 0;
	padding: 0 10px;
	max-width: 700px;
}
main article .img.img2,
main article .img.img3{
	margin-top: 100px;
}


/********** 前後ページ・一覧ページリンク */
.page-link{
	margin: 100px auto 0;
	padding: 30px 5px 20px 5px;
	max-width: 920px;
	text-align: center;
}
.page-link h2{
	margin: 0;
	padding: 0 10px;
	max-width: 900px;
	font-weight: bold;
}
.page-link ul{
	margin: 20px 0 0 0;
	padding: 0;
}
.page-link li{
	margin-top: 10px;
	list-style: none;
}

.page-link li{
	padding: 5px;
	width: 25%;
	vertical-align: top;
	display: inline-block;
}
	@media screen and (max-width:799px){
		.page-link li{ width: 33.333%; }
	}
	@media screen and (max-width:599px){
		.page-link li{ width: 50%; }
	}

.page-link li span.img{
	width: 100%;
	height: auto;
	/*background: #999;*/
	display: block;
	position: relative;
	aspect-ratio: 3 / 2;
}
.page-link li span.img img{
	height: auto;
	max-height: 100%;
	width: auto;
	max-width: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
}
.page-link li span.title{
	padding: 5px;
	display: block;
	font-size: 1.4rem;
	text-align: center;
}



/********** ハンバーガーメニューのスタイル */
.menu-toggle {
	display: none;
}

.hamburger {
	padding: 5px;
	width: 36px;
	height: 36px;
	background: #000;
	box-shadow: 0px 0px 3px #fff;
	border-radius: 3px;
	z-index: 200;
	
	cursor: pointer;
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	top: 5px;
	left: 5px;
}

.hamburger span,
.hamburger::before,
.hamburger::after {
	content: "";
	position: absolute;
	width: 30px;
	height: 4px;
	background: white;
	transition: all 0.3s ease-in-out;
	border-radius: 3px;
}
.hamburger:hover{
	background: #fff;
}
.hamburger:hover span,
.hamburger:hover::before,
.hamburger:hover::after {
	background: #000;
}
/*
*/


.hamburger span {
	top: 50%;
	transform: translateY(-50%);
}

.hamburger::before,
.hamburger::after {
	transform-origin: center;
}

.hamburger::before {
	transform: translateY(-8px);
}

.hamburger::after {
	transform: translateY(8px);
}

/********** メニュー本体 */
.nav-menu {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	max-width: 350px;
	background: #f1f1f1;
	box-shadow: 0px 0px 3px #999;
	color: #fff;
	overflow: auto;
	max-height: 0;
	transition: max-height 0.3s ease-out;
	z-index: 100;
}
body.dark-mode .nav-menu {
	background: #222;
}

.nav-menu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nav-menu li {
	margin: 0;
	padding: 0;
	border-top: 1px solid #aaa;
}
/**/
.nav-menu li:nth-of-type(1){
	border-top: none;
}


.nav-menu a,
.nav-menu div { /* モード切替、フォントサイズ変更用 */
	margin: 0;
	padding: 7px 20px;
	display: block;
	font-size: 1.5rem;
	font-weight: normal;
	text-decoration: none;
	transition: background 0.3s ease;
}
	/* カテゴリ */
	.nav-menu li.c a{
		padding-left: 40px;
	}

.nav-menu a:hover {
	background: #111;
	color: #fff;
}
body.dark-mode .nav-menu a:hover {
	background: #f1f1f1;
	color: #000;
}


/* モード切替、フォントサイズ変更用 */
.nav-menu div {
	padding: 5px 5px;
	display: inline-block;
	text-align: center;
	font-size: 1.3rem;
	font-weight: normal;
}
li.switch{
	text-align: right;
}
li.switch button{
	margin: 0 3px;
	padding: 3px 7px;
	border: 1px solid #666;
	border-radius: 3px;
	font-size: 1.5rem;
	background: #000;
	color: #fff;
	height: 36px;
	cursor: pointer;
	transition: all 0.2s ease-in-out;
}
li.switch button:hover{
	background: #fff;
	color: #000;
}

/* メニューの開閉 */
.menu-toggle:checked + .hamburger + .nav-menu {
	max-height: 100%; /* 適宜調整 */
}

/* ハンバーガーアイコンの変形 */
.menu-toggle:checked + .hamburger span {
	opacity: 0;
}
.menu-toggle:checked + .hamburger::before {
	transform: rotate(225deg);
}
.menu-toggle:checked + .hamburger::after {
	transform: rotate(-225deg);
}




/********** SNSシェアボタン */
.sns{
	margin: 50px auto 0;
	padding: 0 10px;
	max-width: 700px;
	text-align: right;
}
.sns ul ,
.sns li {
	margin: 0;
	padding: 0;
	list-style: none;
}
.sns ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: right;
}
.sns li a {
	display: inline-block;
	margin: 0 8px;
	padding: 0;
	text-align: center;
	font-weight: bold;
	color: #fff;
	width: 48px;
	height: 48px;
	font-size: 24px;
	line-height: 48px;
	border-radius: 48px;
	box-shadow: 0px 0px 10px #999;
	text-decoration: none;
}
/* 背景色の指定 */
.twitter,
.facebook,
.hatena {
	font-family: Verdana;
	font-weight: bold
}
.twitter {
	background: #000;
	transition: background 0.3s ease;
}
.facebook {
	background: #0866ff;
	transition: background 0.3s ease;
}
.hatena {
	background: #00A4DE;
	transition: background 0.3s ease;
}
.twitter:hover {
	background: #fff;
	color: #000;
}
.facebook:hover {
	background: #fff;
	color: #0866ff;
}
.hatena:hover {
	background: #fff;
	color: #00A4DE;
}
