@charset "utf-8";

/*---------------------------- モバイル用設定 ここから ----------------------------*/
@media(max-width: 550px) { /*-- oopxより小さくなったら変化する --*/




/*------------------ 共通部分 ここから ------------------*/

body {
	width: 100%;
	margin: 0 auto;
	background: #f1f1f1;
	color: #333;
	font-size: 15px;
	font-weight: 400;
	font-family: 
		'Noto Sans JP',
		'Helvetica Neue',
		Arial,
		'Hiragino Kaku Gothic ProN',
		'Hiragino Sans',
		Meiryo,
		sans-serif;
	line-height: 1.8;
	letter-spacing: 0.02em;
	line-break: strict;
	animation: body-anim 0.85s both;
}

@keyframes body-anim {
	0%{ opacity: 0;}
	10%{ opacity: 0.1;}
	20%{ opacity: 0.2;}
	30%{ opacity: 0.3;}
	40%{ opacity: 0.4;}
	50%{ opacity: 0.5;}
	60%{ opacity: 0.6;}
	70%{ opacity: 0.7;}
	80%{ opacity: 0.8;}
	90%{ opacity: 0.9;}
	100%{ opacity: 1;}
}

.sp_none {
	display: none;
}

h2 {
	font-size: 18px;
	font-weight: 700;
}

h2::after {
	content: "";
	position: relative;
	width: 24px;
	height: 3px;
	top: 10px;
	left: 0;
	background: #3f96a6;
	margin: 10px 0 0 0;
}

h3 {
	font-size: 18px;
	font-weight: 700;
	margin: 40px 0 15px 0;
	padding: 0 0 0 10px;
	border-left: 2px solid #3f96a6;
}

img {
	display: block;
	transition: 0.2s;
}

.indent {
	margin-bottom: 20px;
 }

a,
a:link,
a:visited,
a:hover,
a:active {
	text-decoration: none;
}

ul li {
	list-style: none;
}

.shadow {
	box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.1);
}

.btn {
	margin: 20px 0 0 0;
	border-radius: 27px;
}

.btn a {
	width: 100%;
	height: 54px;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	background: #3f96a6;
	border: 2px solid #3f96a6;
	font-weight: 700;
	border-radius: 27px;
}

.bold {
	font-weight: 700;
}

.un_line {
	border-bottom: 1px solid #3f96a6;
}

.color {
	color: #3f96a6;
}

.flex {
	display: flex;
}

.tac { text-align: center; }
.tal { text-align: left; }
.ter { text-align: right; }

.mb5 { margin-bottom: 5px; }
.mb10 { margin-bottom: 10px; }
.mb15 { margin-bottom: 15px; }
.mb20 { margin-bottom: 20px; }
.mb25 { margin-bottom: 25px; }
.mb30 { margin-bottom: 30px; }
.mb35 { margin-bottom: 35px; }
.mb40 { margin-bottom: 40px; }
.mb50 { margin-bottom: 50px; }
.mb60 { margin-bottom: 60px; }

.pc_none { display: none; }
.clearfix { zoom: 1; }

.clearfix:after {
	display: block;
	clear: both;  /* floatを使用した際に高さが消滅し、下の要素（上に上がり重なる）が重ならないようにする */
	content: '';
}

*:after {
	display: block;
	clear: both;
}

nav ul li.nav_after::after {
	content: "";
	display: none;
	position: relative;
	width: 1px;
	height: 15px;
	top: 0.1em;
	left: 40px;
	margin: 0 40px 0 0;
	background: #dbdbdb;
}

.txt {
	margin-top: 0;
}

.non_txt {
	margin-bottom: 55vh;
}

hr {
	width:100%;
	height:1px;
	background-color:#ccc;
}


/*---------- ハンバーガー ここから ----------*/

.hum label {
	position: fixed;
	top: 16px;
	right: 18px;
	font-size: 14px;
	font-weight: 700;
	text-align: center;
	color: #fff;
	transition: 0.2s;
	z-index: 10;
}

#checkbox {
	opacity: 0;
	width: 0;
	height: 0;
}

.menu-trigger,
.menu-trigger span {
	display: inline-block;
	transition: all 0.4s;
	box-sizing: border-box;
	z-index: 100;
}

.menu-trigger {
	position: absolute;
	width: 26px;
	height: 26px;
	background: none;
	border: none;
	appearance: none;
	cursor: pointer;
}

.menu-trigger span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: #3f96a6;
	border-radius: 1px;
}

.menu-trigger span:nth-of-type(1) {
	top: 2px;
}

.menu-trigger span:nth-of-type(2) {
	top: 10px;
}

.menu-trigger span:nth-of-type(3) {
	bottom: 6px;
}

/*チェックボックスにチェックが入ったら*/
#checkbox:checked + label span:nth-of-type(1) {
	transform: translateY(8px) rotate(-45deg);
	background: #fff;
}

#checkbox:checked + label span:nth-of-type(2) {
	opacity: 0;
}

#checkbox:checked + label span:nth-of-type(3) {
	transform: translateY(-8px) rotate(45deg);
	background: #fff;
}

.sp_nav {
	display: none;
	transition: 0.2s;
}

#checkbox:checked + label + .sp_nav {
	display: inherit;
	position: fixed;
	height: 100%;
	width: 100%;
	top: 0;
	z-index: 9;
	background: #3f96a6;
	padding:  60% 0 0 0;
	animation: body-anim 0.2s both;
}

#checkbox:checked + .sp_nav ul {
	width: 100%;
}

.sp_nav ul {
	display: inherit;
	text-align: center;
}

.sp_nav ul li {
	margin: 0 0 20px 0;
}

@keyframes .sp_nav ul {
	0%{ opacity: 1;}
	100%{ opacity: 0;}
}

.sp_nav ul li:last-child {
	margin: 0;
}

.sp_nav ul li a {
	color: #fff;
	font-size: 18px;
	font-weight: 700;
}

.sp_nav ul li a:hover {
	color: #fff;
}

/*---------- pagetop ここから ----------*/

.pagetop_btn {
	position: fixed;
	bottom: 15px;
	right: 20px;
	font-size: 12px;
	font-weight: 700;
	padding: 5px 12px;
	text-align: center;
	background:  #3f96a6;
	color: #fff;
	border: 2px solid  #3f96a6;
	border-radius: 25px;
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.20);
	transition: 0.2s;
	z-index: 10;
}

.pagetop_btn:link,
.pagetop_btn:visited {
	color: #fff;
}

.pagetop_btn:hover {
	background: #fff;
	color:  #3f96a6;
}


/*------------------ header ここから ------------------*/

header {
	position: fixed;
	width: 100%;
	background: #fff;
	border-radius: 0;
	top: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: 9;
}

.logo_nav {
	width: 110px;
	height: auto;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
}

.logo_nav .logo {
	margin: 15px 0;
}

.logo_nav .logo a img {
	width: 100%;
	height: auto;
	margin: 0;
}


/*------------------ footer ここから ------------------*/

footer {
	width: 100%;
	background: #fff;
}

footer nav {
	width: 90%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 auto;
	padding: 18px 0;
}

footer nav ul {
	margin: 0 auto;
}

footer nav ul li {
	margin: 0 20px 0 0;
}

footer nav ul li:last-child {
	margin-right: 0;
}

footer nav ul li a {
	font-size: 13px;
}

.policy_copylight {
	display: flex;
	justify-content: center;
	align-items: center;
	background: #3f96a6;
	padding: 8px 0;
}

.policy_copylight p a {
	font-size: 12px;
}

.policy_copylight p a,
.copylight small {
	color: #fff;
}

.copylight {
	text-align: center;
	margin: 0 0 0 40px;
}


/*------------------ KV ここから ------------------*/

.kv {
	width: 100%;
	height: auto;
	border-radius: 0;
	margin: 55px auto 10px;
}

.kv img {
	position: static;
	align-items: flex-start;
	width: 100%;
	height: auto;
	animation: none;
	border-radius: 0;
}

.kv img:nth-of-type(1) {
	animation: none;
	opacity: 1;
}

.kv p {
	position: static;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: auto;
	background: #3f96a6;
	color: #fff;
	font-size: 16px;
	line-height: 1.6;
	font-weight: 500;
	padding: 8px;
	border-radius: 0;
}


/*------------------ パンくず ここから ------------------*/

p small a,
p small a:link,
p small a:visited,
p small a:hover,
p small a:active {
	text-decoration: underline;
}


/*------------------ main side_menu ここから ------------------*/

.main_side_menu {
	display: block;
	justify-content: center;
	width: 100%;
	margin-bottom: 10px;
}

.main,
.side_menu,
.profile {
	background: #fff;
	border-radius: 25px;
	margin: 0 auto 10px;
}


/*------------------ main ここから ------------------*/

.main {
	width: 95%;
	height: fit-content;
	padding: 20px;
}

.main_tit {
	font-size: 20px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 40px;
}

.main_tit::after {
	content: "";
	position: relative;
	width: 24px;
	height: 3px;
	top: 10px;
	left: calc(50% - 12px);
	background: #3f96a6;
}

.article {
	margin-bottom: 30px;
}

.blog_img {
	position: relative;
	border-radius: 10px;
	margin-bottom: 5px;
}

.blog_img img {
	border-radius: 10px;
	width: 100%;
	height: auto;
}

.blog_time {
	position: absolute;
	bottom: 0;
	left: 0;
	font-size: 11px;
	font-weight: 500;
	color: #fff;
	margin: 0;
	padding: 2px 10px;
	background: #3f96a6;
	border-radius: 0 10px 0 10px;
}

.blog_tit {
	font-size: 15px;
	font-weight: 700;
}


/*------------------ side_menu ここから ------------------*/

.side_menu {
	width: 95%;
	padding: 20px;
}

.side_menu_tit {
	font-size: 20px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 40px;
}

.side_menu_tit::after {
	content: "";
	position: relative;
	width: 22px;
	height: 3px;
	top: 10px;
	left: calc(50% - 12px);
	background: #3f96a6;
}

.side_menu .photo_article img {
	border-radius: 10px;
	width: 100%;
	height: auto;
}

.side_menu .btn {
	margin: 30px 0 0 0;
}


/*------------------ profile ここから ------------------*/

.profile {
	width: 95%;
	padding: 20px;
}

.profile img {
	border-radius: 10px;
	width: 100%;
	height: auto;

}

.profile_tit {
	font-weight: 700;
	text-align: left;
}


/*------------------ ブログ一覧 ここから ------------------*/

.blog_all {
	width: 95%;
	margin: 65px auto 20px;
	background: #fff;
	border-radius: 25px;
	padding: 20px;
}

.blog_all_flex {
	display: inherit;
	margin: 0 auto;
}

.blog_all .blog_all_flex .article {
	width: 100%;
	margin: 0 auto 30px;
}

.blog_all .blog_all_flex .article:nth-of-type(3n) {
	width: 100%;
	margin: 0 auto 20px;
}

.blog_all .blog_all_flex .article a .blog_img .blog_time {
	position: absolute;
	bottom: 0;
	left: 0;
	font-size: 11px;
	font-weight: 500;
	color: #fff;
	margin: 0;
	padding: 2px 10px;
	background: #3f96a6;
	border-radius: 0 10px 0 10px;
}

.blog_all_tit {
	font-weight: 500;
}

.blog_all .btn {
	margin: 10px 0 0 0;
}


/*------------------ ブログ詳細 ここから ------------------*/

.detail_img img {
	width: 100%;
	height: auto;
}

.detail_main {
	margin-top: 62px;
}

.detail_time {
	font-size: 15px;
	font-weight: 400;
}

.spot {
	font-size: 15px;
	font-weight: 700;
	color: #636363;
	width: fit-content;
	margin: 0 0 0 25px;
	padding: 0 0 0 15px;
	background: url(../img/spot.svg) 0 16% / 13px no-repeat;
}

.spot a {
	text-decoration: underline;
}


/*----- ページネーション ここから -----*/

.pagination {
	margin: 0 auto;
	justify-content: center;
}

.pagination li {
	margin: 0 auto;
	text-align: center;
}

.pagination li.prev {
	margin: 0 20px;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
}

.pagination li.first {
	margin: 0 20px;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
}

.pagination li.first a,
.pagination li.last a {
	font-size: 20px;
	font-weight: 400;
	padding-bottom: 5px;
}

.pagination li.page {
	display: flex;
	justify-content: center;
	align-items: center;
	color: #3f96a6;
	margin: 0 2px;
	padding: 4px 2px;
	background: #fff;
	border: 1px solid #3f96a6;
	border-radius: 6px;
}

.pagination li.page a {
	color: #3f96a6;
}

.pagination li:last-child {
	margin: 0 20px;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
}

.pagination li.page.active {
	background: #3f96a6;
}

.pagination li.page.active a {
	color: #fff;
}


}/*------ media 閉じ括弧 ------*/

