@charset "utf-8";


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

body {
	width: 100vw;
	margin: 0 auto;
	background: #fdfdfd;
	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;
}

/*========= body背景色の変化CSS ===============*/


@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;}
}

.pc_none {
	display: none;
}

h2 {
	font-size: 28px;
	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: 20px;
	font-weight: 700;
	margin: 50px 0 20px 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;
	color: #333;
	transition: 0.2s;
}

ul li {
	list-style: none;
}

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

.btn {
	margin: 50px 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;
}

.btn a:hover {
	color: #3f96a6;
	background: #fff;
	border: 2px solid #3f96a6;
}

.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;
}

.txt {
	color: #909099;
	font-weight: lighter;
	margin-top: 5px;
}

.non_txt {
	margin-bottom: 25vh;
}


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

.pagetop_btn {
	position: fixed;
	bottom: 25px;
	right: 30px;
	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 {
	width: 1080px;
	background: #fff;
	border-radius: 0 0 25px 25px;
	margin: 0 auto 20px;
	justify-content: center;
	text-align: center;
}

.logo_nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.logo_nav .logo {
	margin: 30px 0 30px 60px;
}

.logo_nav .logo {
	transition: 0.2s;
}

.logo_nav .logo:hover {
	opacity: 0.7;
	transition: 0.2s;
}

nav ul {
	display: flex;
}

nav ul li {
	font-weight: 700;
	margin: 0 40px 0 0;
	list-style: none;
}

nav ul li a:hover {
	color: #3f96a6;
}

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

nav ul li:last-child {
	margin: 0 60px 0 0;
}


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

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

footer nav {
	width: 1080px;
	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:last-child {
	margin-right: 0;
}

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

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

.policy_copylight p a:hover {
	font-size: 13px;
	opacity: 0.7;
}

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

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


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

.kv {
	position: relative;
	width: 1080px;
	height: 450px;
	border-radius: 25px;
	margin: 0 auto 20px;
}

.kv img {
	position: absolute;
	width: 100%;
	opacity: 0;
	border-radius: 25px;
	animation: change-img-anim 20s infinite;
}

.kv img:nth-of-type(1) {
	animation: change-img-anim-first 24s infinite;
	animation-delay: 0s;
}

.kv img:nth-of-type(2) {
	animation-delay: 4s;
}

.kv img:nth-of-type(3) {
	animation-delay: 8s;
}

.kv img:nth-of-type(4) {
	animation-delay: 12s;
}

.kv img:nth-of-type(5) {
	animation-delay: 16s;
}

@keyframes change-img-anim-first {
	0%{ opacity: 1;}
	20%{ opacity: 1;}
	40%{ opacity: 0;}
	60%{ opacity: 0;}
	100%{ opacity: 1;}
}

@keyframes change-img-anim {
	0%{ opacity: 0;}
	20%{ opacity: 1;}
	40%{ opacity: 1;}
	60%{ opacity: 0;}
	100%{ opacity: 0;}
}

.kv img {
	border-radius: 25px;
}

.kv p {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 440px;
	height: 450px;
	background: #3f96a6;
	color: #fff;
	font-size: 34px;
	font-weight: 700;
	padding: 0 60px;
	border-radius: 0 25px 25px 0;
}


.whats_joblog {
	width: 1080px;
	padding: 20px;
}

.whats_joblog .blog_img img {
	margin: 0 auto;
}


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

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: flex;
	justify-content: center;
	margin-bottom: 20px;
}

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


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

.main {
	width: 690px;
	height: fit-content;
	margin-right: 20px;
	padding: 50px;
}

.main_tit {
	font-size: 30px;
	font-weight: 700;
	text-align: center;
}

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

.article a:hover {
	opacity: 0.7;
}

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

.blog_img img {
	border-radius: 10px;
}

.blog_time {
	position: absolute;
	bottom: 0;
	left: 0;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	margin: 0;
	padding: 1px 13px;
	background: #3f96a6;
	border-radius: 0 10px 0 10px;
}

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


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

.side_menu {
	width: 370px;
	padding: 35px 50px;
}

.side_menu_tit {
	font-size: 24px;
	font-weight: 700;
	text-align: center;
}

.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;
}

.side_menu .photo_article img:hover {
	opacity: 0.7;
	transition: 0.4s;
}

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

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

.profile {
	width: 370px;
	padding: 50px;
}

.profile img {
	border-radius: 10px;

}

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


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

.blog_all {
	width: 1080px;
	margin: 0 auto;
	background: #fff;
	border-radius: 25px;
	padding: 50px 60px 60px;
}

.blog_all_flex {
	display: flex;
	flex-wrap: wrap;
}

.blog_all .blog_all_flex .article {
	width: 300px;
	margin: 0 30px 40px 0;
}

.blog_all .blog_all_flex .article:nth-of-type(3n) {
	width: 300px;
	margin: 0 0 40px 0;
}

.blog_all .blog_all_flex .article a .blog_img .blog_time {
	font-size: 13px;
	padding: 1px 10px;
}

.blog_all_tit {
	font-weight: 700;
}

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


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

.detail_img img {
	border-radius: 10px;
}

.detail_time {
	font-size: 18px;
	font-weight: 700;
	color: #636363;
}

.detail_txt_bold {
	font-weight: 700;
}

.border_txt {
	border: 2px solid #3f96a6;
	border-radius: 10px;
	padding: 25px;
}

.detail_link {
	font-size: 12px;
	color: #818181;
	width: fit-content;
	padding: 0 20px 0 0;
	background: url(../img/link.svg) 100% 50% / 13px no-repeat;
}

.other_site_link {
	transition: 0.2s;
}

.other_site_link:hover {
	opacity: 0.7;
}

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

.spot a {
	text-decoration: underline;
}


/*------------------ 写真日記一覧 ここから ------------------*/

.blog_all {
	width: 1080px;
	margin: 0 auto 20px;
	background: #fff;
	border-radius: 25px;
	padding: 50px 60px 70px;
}

.blog_all_flex {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 30px;
}

.side_blog_all {
	margin-bottom: 0;
}

.blog_all .blog_all_flex .article {
	width: 300px;
	margin: 0 30px 40px 0;
}

.blog_all .blog_all_flex .article:nth-of-type(3n) {
	width: 300px;
	margin: 0 0 40px 0;
}

.blog_all .blog_all_flex .article a .blog_img .blog_time {
	font-size: 13px;
	margin: 0;
	padding: 0 10px;
}

.blog_all_tit {
	font-weight: 700;
	margin-top: 10px;
}


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

.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;
	border-radius: 6px;
}

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

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

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

.pagination li.page a {
	color: #3f96a6;
	padding: 4px 15px;
}

.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;
}
