@charset "UTF-8";


/*color/fonts =============================





font-family: 'Noto Sans JP', sans-serif;

font-family: 'Lusitana', serif;





========================================*/




/*========================================
==========================================

reset

==========================================
========================================*/

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    /*overflow-y: scroll;*/
}

body {
	position: relative;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
    font-size: 1em;
    color: #313131;
    -webkit-text-size-adjust: 100%;
}

h1,h2,h3,h4,h5 {
    font-size: 1em;
    font-weight: normal;
}

p {
	font-size: 1em;
}

ul {
    list-style: none;
}

img,iframe {
   vertical-align: bottom;
}

a {
    text-decoration: none;
    color: #313131;
}

.cf:after {
    content: "";
    display: block;
    clear: both;
}

table {
	border-spacing: 0;
}

th {
    font-weight: normal;
}

address {
    font-style: normal;
}

input {
    -webkit-appearance: none;
}









/*========================================
==========================================

animation

==========================================
========================================*/

.anim_up {
    opacity: 0;
    transition: 1s all ease;
	transform: translateY(10px);
}

.anim_up.show {
    opacity: 1;
	transform: translateY(0);
}

.anim_left {
    opacity: 0;
    transition: 1s all ease; 
    transform: translateX(10px);
}

.anim_left.show {
    opacity: 1;
    transform: translateX(0);
}

.anim_right {
    opacity: 0;
    transition: 1s all ease; 
    transform: translateX(-10px);
}

.anim_right.show {
    opacity: 1;
    transform: translateX(0);
}

.anim_down {
    opacity: 0;
    transition: 1s all ease; 
    transform: translateY(-10px);
}

.anim_down.show {
    opacity: 1;
    transform: translateY(0);
}

@keyframes show {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        transform: translate(0,0);
    }
}









/*========================================
==========================================

All page

==========================================
========================================*/

#body_wrap {
	position: relative;
	overflow: hidden;
	background: #ffffff;
}

.en {
	font-family: 'Lusitana', serif;
}

.ja {
	font-family: 'Noto Sans JP', sans-serif;
}










/*========================================
==========================================

#menu_button

==========================================
========================================*/

#menu_button {
    position: fixed;
    top: 20px;
    right: 4%;
    z-index: 300;
    width: 80px;
    height: 80px;
	background: #ffffff;
    cursor: pointer;
}

#menu_button .menu_button_wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 40px;
}

#menu_button .menu_button_wrap > div {
    position: relative;
    height: 30px;
}

#menu_button .bar {
    position: absolute;
    width: 100%;
    height: 1px;
    background: #024789;
    transition: all 0.5s;
}

#menu_button .bar1 {
    top: 0px;
    right: 0;
}

#menu_button .bar2 {
    top: 10px;
    right: 0;
}

#menu_button .menu_txt {
    position: absolute;
    bottom: 0;
    width: 100%;
    text-align: center;
    font-size: 0.75em;
    font-weight: 500;
    color: #024789;
}

input#menu_checkbox:checked ~ #menu_button .bar1 {
    top: 5px;
    transform: rotate(20deg);
}

input#menu_checkbox:checked ~ #menu_button .bar2 {
    top: 5px;
    transform: rotate(-20deg);
}


@media (min-width: 768px) {

	#menu_button {
		top: 40px;
		right: 4%;
	}

}


@media (min-width: 1024px) {
	
	#menu_button {
		display: none;
	}

}









/*========================================
==========================================

#menu_body

==========================================
========================================*/

#menu_body {
    position: fixed;
    top: 0;
    left: 0;
    z-index: -10;
    width: 100%;
    height: 100%;
    background: rgba(2,71,137,0.95);
    transition: all 0.5s;
    /* overflow-y: scroll; */
    opacity: 0;
}

input#menu_checkbox:checked ~ #menu_body {
    opacity: 1;
    z-index: 200;
}

#menu_body .menu_body_wrap {
    padding: 40px 6.25% 80px;
}

#menu_body .nav_area {
    padding: 40px 0 0;
}

#menu_body nav.menu_links ul li {
    border-bottom: solid 1px #ffffff;
}

#menu_body nav.menu_links ul li a {
    display: block;
    padding: 20px 0;
}


#menu_body nav.menu_links ul li a span {
    display: block;
    float: left;
    padding-right: 20px;
    font-size: 1.2em;
    font-weight: 700;
    line-height: 20px;
    color: #ffffff;
    transition: all 0.3s;
}

#menu_body nav.menu_links ul li a p {
	float: left;
    font-size: 0.8em;
    font-weight: 700;
    line-height: 20px;
    letter-spacing: 1px;
    color: #ffffff;
    transition: all 0.3s;
}

#menu_body nav.menu_links ul li a:hover span,
#menu_body nav.menu_links ul li a:hover p {
    color: #6596c4;
}

#menu_body nav.sns_links {
    padding: 20px 0 0;
}

#menu_body nav.sns_links ul li {
    float: left;
    width: 30%;
    margin: 0 0 20px;
}

#menu_body nav.sns_links ul li a {
    display: inline-block;
    font-size: 0.8em;
    line-height: 1;
    color: #ff3052;
    transition: all 0.3s;
}

#menu_body nav.sns_links ul li a:hover {
    color: #6fb334;
}

#menu_body nav.sns_links ul li a i {
    padding-right: 2px;
}

#menu_body .logo {
    width: 200px;
}

#menu_body .logo img {
    display: block;
    width: 100%;
    height: auto;
}


@media (min-width: 768px) {

	
}


@media (min-width: 1024px) {
	
	#menu_body {
		display: none;
	}

}









/*========================================
==========================================

header

==========================================
========================================*/

/*----------------------------------------

common

----------------------------------------*/

header {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
}

header .con {
	position: relative;
	width: 100%;
	height: 120px;
}


@media (min-width: 768px) {

	header .con {
		height: 160px;
	}

}


@media (min-width: 1024px) {

}




/*----------------------------------------

.head_logo

----------------------------------------*/

header .head_logo {
	position: absolute;
	top: 50%;
	left: 4%;
	transform: translateY(-50%);
	width: 160px;
}

header .head_logo a {
	display: block;
}

header .head_logo img {
	display: block;
	width: 100%;
	height: auto;
	transition: all 0.3s;
}

header .head_logo a:hover img {
	opacity: 0.7;
}


@media (min-width: 768px) {

	header .head_logo {
		width: 240px;
	}
	
}


@media (min-width: 1024px) {
	

}




/*----------------------------------------

.head_nav

----------------------------------------*/

header .head_nav {
	display: none;
}


@media (min-width: 768px) {

}


@media (min-width: 1024px) {

	header .head_nav {
		display: block !important;
		position: absolute;
		top: 50%;
		right: 3.125%;
		transform: translateY(-50%);
		width: 65%;
		max-width: 720px;
	}

	header .head_nav ul {
		display: flex;
	}

	header .head_nav ul li {
		flex: auto;
	}

	header .head_nav ul li a {
		display: inline-block;
	}

	header .head_nav ul li a span.en {
		display: block;
		font-size: 1em;
		font-weight: 700;
		letter-spacing: 1px;
		color: #024789;
		transition: all 0.3s;
	}

	header .head_nav ul li a:hover span.en {
		color: #6596c4;
	}

	header .head_nav ul li a p {
		font-size: 0.75em;
		font-weight: 700;
		letter-spacing: 1px;
		line-height: 1;
		color: #024789;
		transition: all 0.3s;
	}

	header .head_nav ul li a:hover p {
		color: #6596c4;
	}

}









/*========================================
==========================================

#kv_front
#kv_sub

==========================================
========================================*/

/*----------------------------------------

#kv_front

----------------------------------------*/

#kv_front {
	height: 100%;
}

#kv_front .kv_front_wrap {
	position: relative;
	height: 100%;
	padding: 120px 0 0 12.5%;
}

#kv_front .bg_img {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	background-position: center;
	background-size: cover;
}

#kv_front .kv_copy {
	position: absolute;
	top: 60px;
	left: -6.25%;
	z-index: 10;
	width: 100%;
}

#kv_front .kv_copy p.en_copy {
	text-shadow: 1px 1px 1px #ffffff;
	font-size: 12vw;
	line-height: 1.2;
	color: #6596c4;
}

#kv_front .kv_copy p.ja_copy {
	text-shadow: 1px 1px 1px #ffffff;
	font-size: 4vw;
	color: #024789;
	letter-spacing: 2px;
}


@media (min-width: 768px) {
	
	#kv_front .kv_front_wrap {
		padding: 160px 0 0 25%; 
	}
	
	#kv_front .kv_copy {
		top: 50%;
		transform: translateY(-50%);
		left: -12.5%;
	}

	#kv_front .kv_copy p.en_copy {
		font-size: 6em;
	}

	#kv_front .kv_copy p.ja_copy {
		font-size: 2em;
	}

}


@media (min-width: 1024px) {

}




/*----------------------------------------

.scrolldown

----------------------------------------*/

#kv_front .scrolldown {
	position: absolute;
	bottom: 8vw;
	left: 6.25%;
	z-index: 10;
}

#kv_front .scrolldown::before {
	content: "";
	position: absolute;
    bottom: 0;
    left: -4px;
    width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #1C5066;
	animation: circlemove 2s ease-in-out infinite, cirlemovehide 2s ease-out infinite;
}

#kv_front .scrolldown::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 1px;
	height: 100px;
	background: #1C5066;
}

#kv_front .scrolldown span {
	position: absolute;
	left: 8px;
	bottom: 0px;
	font-size: 0.7em;
	font-weight: 700;
	letter-spacing: 1px;
	-ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    color: #1C5066;
}


@keyframes circlemove {
	0%{bottom:95px;}
	100%{bottom:-5px;}
}

@keyframes cirlemovehide {
      0%{opacity:0}
     50%{opacity:1;}
    80%{opacity:0.9;}
	100%{opacity:0;}
 }


@media (min-width: 768px) {

	#kv_front .scrolldown {
		position: absolute;
		bottom: 4vw;
	}

}


@media (min-width: 1024px) {

	#kv_front .scrolldown {
		left: 3.125%;
	}

}




/*----------------------------------------

#kv_sub

----------------------------------------*/

#kv_sub {
	position: relative;
}

#kv_sub .kv_sub_wrap {
	position: relative;
	height: 100%;
	padding: 120px 0 0;
}

#kv_sub .h1_ttl {
	position: relative;
	z-index: 1;
	padding: 16vw 0 16vw 8%;
}

#kv_sub .h1_ttl::before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	z-index: -1;
	width: 84%;
	height: 100%;
	background: #e9eff5;
}

#kv_sub .h1_ttl span {
	font-size: 9vw;
	font-weight: 700;
	color: #024789;
}

#kv_sub .h1_ttl h1 {
	font-size: 4.5vw;
	font-weight: 900;
	color: #024789;
}


@media (min-width: 768px) {

	#kv_sub .kv_sub_wrap {
		padding: 160px 0 0;
	}

	#kv_sub .h1_ttl {
		padding: 8vw 0 8vw 8%;
	}

	#kv_sub .h1_ttl span {
		font-size: 6vw;
	}

	#kv_sub .h1_ttl h1 {
		font-size: 3vw;
	}

}


@media (min-width: 1024px) {

}









/*========================================

front-page.php

========================================*/

/*----------------------------------------

#sdgs_logo

----------------------------------------*/

#sdgs_logo .con {
	padding: 40px 8% 0;
}

#sdgs_logo .logo_area a {
	display: flex;
}

#sdgs_logo .flex_box {
	display: flex;
	align-items: center;
	border-bottom: solid 1px #000000;
	padding-bottom: 40px;
}

#sdgs_logo .logo_area {
	width: 100px;
}

#sdgs_logo .logo_area img {
	display: block;
	width: 100%;
}

#sdgs_logo .txt_area {
	flex: 1;
	padding-left: 20px;
}

#sdgs_logo .txt_area p {
	font-size: 0.8em;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 1px;
}


@media (min-width: 768px) {

	#sdgs_logo .txt_area p {
		font-size: 0.9em;
	}

}


@media (min-width: 1024px) {

}




/*----------------------------------------

#front_partner

----------------------------------------*/

#front_partner .con {
	padding: 40px 8%;
}

#front_partner h2 {
	margin: 0 0 20px;
	font-size: 4vw;
	font-weight: 700;
	color: #024789;
}

#front_partner .partner_list ul {
	display: flex;
}

#front_partner .partner_list ul li {
	flex-basis: auto;
	margin-right: 6.25%;
}

#front_partner .partner_list ul li:last-of-type {
	margin-right: 0;
}

#front_partner .partner_list ul li a {
	display: block;
	transition: all 0.3s;
}

#front_partner .partner_list ul li a:hover {
	opacity: 0.8;
}

#front_partner .partner_list ul li a img {
	display: block;
	width: 100%;
	height: auto;
}


@media (min-width: 768px) {

	#front_partner h2 {
		font-size: 2vw;
	}

	#front_partner .partner_list ul {
		width: 50%;
	}

}


@media (min-width: 1024px) {
	
}




/*----------------------------------------

#philosophy

----------------------------------------*/

#philosophy .con {
	position: relative;
	z-index: 0;
	padding: 24vw 0 16vw;
}

#philosophy .h2_ttl {
	position: absolute;
	top: 8vw;
	left: 6.25%;
	z-index: 2;
}

#philosophy .h2_ttl span {
	display: block;
	font-size: 12vw;
	font-weight: 700;
	line-height: 1;
	color: #e9eff5;
}

#philosophy .txt_area {
	position: relative;
	z-index: 3;
	padding: 0 6.25% 16vw;
}

#philosophy .txt_area .ttl {
	display: inline-block;
	margin: 0 0 5vw;
}

#philosophy .txt_area .ttl h2 {
	position: relative;
	margin-bottom: 5px;
}

#philosophy .txt_area .ttl h2::before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	margin: auto;
	background: #55B9E5;
}

#philosophy .txt_area .ttl h2 span {
	display: inline-block;
	position: relative;
	padding-right: 10px;
	font-size: 4vw;
	font-weight: 700;
	letter-spacing: 2px;
	color: #55B9E5;
	background: #ffffff;
}

#philosophy .txt_area .ttl > span {
	display: block;
	font-size: 8vw;
	font-weight: 700;
	letter-spacing: 1px;
	color: #55B9E5;
}

#philosophy .txt_area .p1 {
	padding: 0 0 2vw;
	font-size: 6vw;
	font-weight: 900;
	line-height: 1.8;
	letter-spacing: 1px;
	color: #1C5066;
}

#philosophy .txt_area .p2 {
	font-size: 0.9em;
	font-weight: 700;
	line-height: 2;
	letter-spacing: 1px;
	color: #1C5066;
}

#philosophy .img_area img {
	display: block;
	position: relative;
	z-index: 1;
	width: 100%;
	height: auto;
}


@media (min-width: 768px) {

	#philosophy .con {
		padding: 16vw 0;
	}

	#philosophy .h2_ttl {
		top: 11.5vw;
		left: auto;
		right: 6.25%;
	}

	#philosophy .h2_ttl span {
		font-size: 10vw;
	}

	#philosophy .flex_box {
		display: flex;
		flex-direction: row-reverse;
		align-items: center;
	}

	#philosophy .right_box {
		flex-basis: 50%;
	}

	#philosophy .left_box {
		flex-basis: 50%;
	}

	#philosophy .txt_area {
		padding: 0 12.5% 0 6.25%;
	}

	#philosophy .txt_area .ttl {
		margin: 0 0 2.5vw;
	}

	#philosophy .txt_area .ttl > span {
		font-size: 4vw;
	}
	
	#philosophy .txt_area .ttl h2 span {
		font-size: 2vw;
	}
	
	#philosophy .txt_area .p1 {
		font-size: 2.5vw;
	}
	
	#philosophy .txt_area .p2 {
		font-size: 0.9em;
	}

}


@media (min-width: 1024px) {

	#philosophy .con {
		/* padding: 8vw 0 16vw; */
	}

	#philosophy .txt_area .p1 {
		font-size: 2.8vw;
	}

	#philosophy .txt_area .p2 {
		font-size: 1em;
	}

}




/*----------------------------------------

#front_project

----------------------------------------*/

#front_project .con {
	position: relative;
	z-index: 1;
	padding: 16vw 8%;
}

#front_project .con::before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	z-index: -1;
	width: 75%;
	height: 100%;
	background: #e9eff5;
}

#front_project .h2_ttl {
	margin: 0 0 8vw;
}

#front_project .h2_ttl span {
	display: block;
	font-size: 12vw;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 1px;
	color: #024789;
}

#front_project .h2_ttl h2 {
	font-size: 6vw;
	font-weight: 700;
	letter-spacing: 2px;
	color: #024789;
}


@media (min-width: 768px) {

	#front_project .con {
		padding: 0vw 8% 16vw;
	}

	#front_project .con::before {
		width: 25%;
	}
	
	#front_project .h2_ttl {
		margin: 0 0 5vw;
	}
	
	#front_project .h2_ttl span {
		font-size: 8vw;
	}

	#front_project .h2_ttl h2 {
		font-size: 4vw;
	}

}


@media (min-width: 1024px) {

	#front_project .con {
		padding: 0vw 8% 8vw;
	}
	
}




/*----------------------------------------

.project_list (archive-project.php共通)

----------------------------------------*/

.project_list ul li {
	margin: 0 0 8vw;
	padding: 6.25% 6.25% 12.5%;
	background: #ffffff;
	box-shadow: 0 0 5px rgba(0,0,0,0.3);
}

.project_list ul li:last-of-type {
	margin: 0;
}

.project_list ul li .img_area img {
	display: block;
	width: 100%;
	margin: 0 auto;
}

.project_list ul li .txt_area h3 {
	border-bottom: solid 1px #87E9EB;
	padding: 20px 0;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 1px;
	color: #024789;
}

.project_list ul li .txt_area .summary p {
	padding: 10px 0 8vw;
	font-size: 0.8em;
	line-height: 1.8;
	letter-spacing: 1px;
}

.project_list ul li .txt_area .summary p span {
	display: block;
	font-size: 0.8em;
	line-height: 2;
	letter-spacing: 1px;
	color: #808080;
}

.project_list ul li .txt_area table {
	width: 100%;
}

.project_list ul li .txt_area table caption {
	padding: 10px 0;
	text-align: left;
	font-size: 0.9em;
	font-weight: 700;
}

.project_list ul li .txt_area table tr {
	display: flex;
	padding: 10px 0;
}

.project_list ul li .txt_area table th {
	width: 80px;
	font-size: 0.8em;
	font-weight: 500;
}

.project_list ul li .txt_area table td {
	flex: 1;
}

.project_list ul li .txt_area table td p {
	position: relative;
	padding-left: 15px;
	font-size: 0.8em;
	line-height: 1.5;
}

.project_list ul li .txt_area table td p::before {
	display: block;
	content: '●';
	position: absolute;
	top: 0;
	left: 0;
}

.project_list ul li .txt_area .delivery_list span {
	font-size: 0.9em;
	font-weight: 700;
	line-height: 2;
}

.project_list ul li .txt_area .delivery_list p {
	font-size: 0.8em;
	line-height: 1.5;
}

.project_list ul li .txt_area .page_link a {
	display: block;
	padding: 20px 0;
	text-align: center;
	font-size: 1em;
	line-height: 1;
	letter-spacing: 2px;
	color: #ffffff;
	background: #6596c4;
	border-radius: 40px;
	transition: all 0.3s;
}

.project_list ul li .txt_area .page_link a:hover {
	background: #024789;
}

.project_list ul li .txt_area .page_link a i {
	padding-left: 10px;
}


@media (min-width: 768px) {
	
	.project_list ul li {
		margin: 0 0 4vw;
	}

	.project_list ul li:nth-of-type(odd) {
		display: flex;
		float: left;
		width: 93.75%;
		padding: 4%;
	}

	.project_list ul li:nth-of-type(even) {
		display: flex;
		flex-direction: row-reverse;
		float: right;
		width: 93.75%;
		padding: 4%;
	}

	.project_list ul li .img_area {
		flex-basis: 50%;
	}

	.project_list ul li:nth-of-type(odd) .img_area {
		margin-right: 2%;
	}

	.project_list ul li:nth-of-type(even) .img_area {
		margin-left: 2%;
	}

	.project_list ul li .txt_area {
		flex-basis: 50%;
	}

	.project_list ul li:nth-of-type(odd) .txt_area {
		margin-left: 2%;
	}

	.project_list ul li:nth-of-type(even) .txt_area {
		margin-right: 2%;
	}

	.project_list ul li .txt_area h3 {
		padding: 0 0 20px;
	}

	.project_list ul li .txt_area .summary p {
		padding: 10px 0 4vw;
	}

}


@media (min-width: 1024px) {

	.project_list ul li .img_area {
		flex-basis: 37.5%;
	}

	.project_list ul li .txt_area {
		flex-basis: 62.5%;
	}

	.project_list ul li .txt_area h3 {
		font-size: 1.5em;
	}

	.project_list ul li .txt_area .summary p {
		padding: 10px 0 2vw;
	}

	.project_list ul li:nth-of-type(odd) .txt_area .page_link {
		text-align: right;
	}

	.project_list ul li .txt_area .page_link a {
		display: inline-block;
		padding: 20px 40px;
	}

	.project_list ul li .txt_area .page_link a:hover {
		background: #024789;
	}

}




/*----------------------------------------

#latest_post

----------------------------------------*/

#latest_post .con {
	padding: 16vw 8%;
}

#latest_post .h2_ttl span {
	display: block;
	font-size: 12vw;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 1px;
	color: #024789;
}

#latest_post .h2_ttl h2 {
	font-size: 6vw;
	font-weight: 700;
	letter-spacing: 2px;
	color: #024789;
}

#latest_post .page_link {
	text-align: right;
}

#latest_post .page_link a {
	display: inline-block;
	font-weight: 700;
	color: #6596c4;
	transition: all 0.3s;
}

#latest_post .page_link a:hover {
	color: #024789;
}

#latest_post .page_link a span {
	display: inline-block;
	width: 60px;
	height: 60px;
	line-height: 60px;
	margin-left: 20px;
	text-align: center;
	color: #ffffff;
	background: #6596c4;
	border-radius: 50%;
	transition: all 0.3s;
}

#latest_post .page_link a:hover span {
	background: #024789;
}


@media (min-width: 768px) {

	#latest_post .con {
		display: flex;
		justify-content: space-between;
		position: relative;
		padding: 8vw 8%;
	}

	#latest_post .flex_box {
	}

	#latest_post .h2_ttl {
		flex-basis: 25%;
	}

	#latest_post .h2_ttl span {
		font-size: 6vw;
	}

	#latest_post .h2_ttl h2 {
		font-size: 3vw;
	}

	#latest_post .page_link {
		position: absolute;
		bottom: 8vw;
		left: 8%;
		width: 25%;
		text-align: left;
	}

}


@media (min-width: 1024px) {

}




/*----------------------------------------

#latest_post / .post_list

----------------------------------------*/

#latest_post .post_list {
	padding: 8vw 0;
}

#latest_post .post_list article {
	border-top: solid 1px #6596c4;
	padding: 20px 0;
}

#latest_post .post_list article:last-of-type {
	border-bottom: solid 1px #6596c4;
}

#latest_post .post_list article a {
	display: block;
}

#latest_post .post_list article .post_info {
	padding: 0 0 10px;
}

#latest_post .post_list article .post_info ul li.date {
	float: left;
	margin-right: 20px;
}

#latest_post .post_list article .post_info ul li.date time {
	display: block;
	font-size: 0.8em;
	line-height: 1;
	color: #024789;
}

#latest_post .post_list article .post_info ul li.cat {
	float: left;
}

#latest_post .post_list article .post_info ul li.cat span {
	display: block;
	font-size: 0.8em;
	line-height: 1;
	color: #024789;
}

#latest_post .post_list article .post_ttl h3 {
	font-size: 0.9em;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 1px;
	color: #024789;
	transition: all 0.3s;
}

#latest_post .post_list article a:hover .post_ttl h3 {
	color: #6596c4;
}


@media (min-width: 768px) {

	#latest_post .post_list {
		flex-basis: 62.5%;
		padding: 0 0 0vw;
	}
	
}


@media (min-width: 1024px) {

}









/*========================================
==========================================

archive-project.php
taxonomy-works.php

==========================================
========================================*/

/*========================================

archive-project.php

========================================*/

/*----------------------------------------

#archive_project

----------------------------------------*/

#archive_project .con {
	padding: 16vw 8%;
}


@media (min-width: 768px) {

	#archive_project .con {
		padding: 8vw 8% 16vw;
	}

}


@media (min-width: 1024px) {

	#archive_project .con {
		padding: 8vw 8% 8vw;
	}

}




/*========================================

taxonomy-works.php

========================================*/

/*----------------------------------------

#tax_works

----------------------------------------*/

#tax_works .con {
	padding: 16vw 8%;
}

#tax_works .post_list article {
	border-bottom: solid 1px #6596c4;
	padding: 40px 0;
}

#tax_works .post_list .no_post {
	padding: 40px 0;
}

#tax_works .return_link {
	padding: 80px 0 0;
}

#tax_works .return_link a {
	display: block;
	width: 100%;
	max-width: 400px;
	margin: 0 auto;
	padding: 25px 0;
	text-align: center;
	font-size: 1em;
	line-height: 1;
	color: #ffffff;
	background: #6596c4;
	border-radius: 50px;
	transition: all 0.3s;
}

#tax_works .return_link a:hover {
	background: #024789;
}


@media (min-width: 768px) {

	#tax_works .con {
		padding: 8vw 8%;
	}

}


@media (min-width: 1024px) {

	#tax_works .con {
		padding: 8vw 16%;
	}

}










/*========================================
==========================================

home.php
archive-works.php

==========================================
========================================*/

/*----------------------------------------

common

----------------------------------------*/

#archive .con {
	padding: 16vw 8%;
}


@media (min-width: 768px) {

	#archive .con {
		padding: 8vw 8%;
	}

}


@media (min-width: 1024px) {

	#archive .con {
		padding: 8vw 16%;
	}

}




/*----------------------------------------

.post_list

----------------------------------------*/

#archive .post_list article {
	border-bottom: solid 1px #6596c4;
	padding: 40px 0;
}

#archive .post_list article a {
	display: block;
}

#archive .post_list article .post_info {
	padding: 0 0 10px;
}

#archive .post_list article .post_info ul li.date {
	float: left;
	margin-right: 20px;
}

#archive .post_list article .post_info ul li.date time {
	display: block;
	font-size: 0.8em;
	line-height: 1;
	color: #024789;
}

#archive .post_list article .post_info ul li.cat {
	float: left;
}

#archive .post_list article .post_info ul li.cat span {
	display: block;
	font-size: 0.8em;
	line-height: 1;
	color: #024789;
}

#archive .post_list article .post_info p {/* カスタム投稿「works」用CSS */
	font-size: 0.8em;
	color: #024789;
}

#archive .post_list article .post_ttl h2 {
	font-size: 0.9em;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 1px;
	color: #024789;
	transition: all 0.3s;
}

#archive .post_list article a:hover .post_ttl h2 {
	color: #6596c4;
}


@media (min-width: 768px) {

	#archive .post_list article .post_info p {/* カスタム投稿「works」用CSS */
		font-size: 0.9em;
	}

	#archive .post_list article .post_ttl h2 {
		font-size: 1em;
	}

}


@media (min-width: 1024px) {

	#archive .post_list article a {
		display: flex;
		align-items: center;
	}

	#archive .post_list article .post_info {
		width: 200px;
		padding: 0;
	}

	#archive .post_list article .post_ttl {
		flex: 1;
	}

}




/*----------------------------------------

.pager

----------------------------------------*/

#archive .pager {
    padding: 8vw 0 0;
}

.wp-pagenavi {
    text-align: center;
}

.wp-pagenavi a.first {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    margin-right: 5px;
    text-align: center;
    font-size: 0.8em;
    color: #ffffff;
    background: #6596c4;
	border-radius: 50%;
    transition: all 0.3s;
}

.wp-pagenavi a.page {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    margin: 0 5px;
    text-align: center;
    font-size: 0.8em;
    color: #ffffff;
    background: #6596c4;
	border-radius: 50%;
    transition: all 0.3s;
}

.wp-pagenavi span.current {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    margin-right: 10px;
    text-align: center;
    font-size: 0.9em;
    color: #ffffff;
    background: #024789;
    border-radius: 50%;
}

.wp-pagenavi .extend {
    display: inline-block;
    line-height: 1;
    color: #313131;
}

.wp-pagenavi a.last {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    margin-left: 5px;
    text-align: center;
    font-size: 0.8em;
    color: #ffffff;
    background: #6596c4;
	border-radius: 50%;
    transition: all 0.3s;
}

.wp-pagenavi a.first:hover,
.wp-pagenavi a.page:hover,
.wp-pagenavi a.last:hover {
    color: #ffffff;
    background: #024789;
}


@media (min-width: 768px) {

	#archive .pager {
		padding: 4vw 0 0;
	}

}


@media (min-width: 1024px) {

}









/*========================================
==========================================

single.php
single-works.php

==========================================
========================================*/

/*----------------------------------------

common

----------------------------------------*/

#single {
	padding: 120px 0 0;
}

#single .con {
	padding: 8vw 8% 16vw;
}


@media (min-width: 768px) {

	#single {
		padding: 160px 0 0;
	}

	#single .con {
		padding: 4vw 8% 8vw;
	}

}


@media (min-width: 1024px) {

	#single .con {
		padding: 4vw 16% 8vw;
	}

}




/*----------------------------------------

.post_headline

----------------------------------------*/

#single .post_headline {
	border-bottom: solid 1px #6596c4;
	padding: 0 0 8vw;
}

#single .post_headline .post_info {
	padding: 0 0 20px;
}

#single .post_headline .post_info ul li.date {
	float: left;
	margin-right: 20px;
}

#single .post_headline .post_info ul li.date time {
	display: block;
	font-size: 0.8em;
	line-height: 1;
	color: #024789;
}

#single .post_headline .post_info ul li.cat {
	float: left;
}

#single .post_headline .post_info ul li.cat span {
	display: block;
	font-size: 0.8em;
	line-height: 1;
	color: #024789;
}

#single .post_headline .post_info p {/* カスタム投稿「works」用CSS */
	font-size: 0.9em;
	color: #024789;
}

#single .post_headline .post_ttl h1 {
	font-size: 1.2em;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 1px;
	color: #024789;
}


@media (min-width: 768px) {

	#single .post_headline {
		padding: 0 0 4vw;
	}

	#single .post_headline .post_info p {/* カスタム投稿「works」用CSS */
		font-size: 1em;
	}

	#single .post_headline .post_ttl h1 {
		font-size: 1.4em;
	}

}


@media (min-width: 1024px) {

	#single .post_headline .post_ttl h1 {
		font-size: 1.6em;
	}

}




/*----------------------------------------

.post_content

----------------------------------------*/

#single .post_content {
	padding: 8vw 0 16vw;
}

#single .post_content p {
	padding: 0 0 15px;
	font-size: 0.9em;
	line-height: 1.6;
	letter-spacing: 1px;
}

#single .post_content img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 0 20px;
}


@media (min-width: 768px) {


	#single .post_content img {
		width: 50%;
		margin: 0 auto 20px;
	}

}


@media (min-width: 1024px) {

	#single .post_content {
		padding: 4vw 0 8vw;
	}

}




/*----------------------------------------

.np_link

----------------------------------------*/

#single .np_link .next_link {
	margin: 0 0 20px;
}

#single .np_link .next_link a {
	display: flex;
	align-items: center;
	padding: 6.25%;
	background: #e9eff5;
	transition: all 0.3s;
}

#single .np_link .prev_link a {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	padding: 6.25%;
	background: #e9eff5;
	transition: all 0.3s;
}

#single .np_link .next_link a:hover,
#single .np_link .prev_link a:hover {
	opacity: 0.7;
}

#single .np_link .next_link .lead,
#single .np_link .prev_link .lead {
	width: 100px;
}

#single .np_link .lead span {
	display: block;
	font-size: 1.2em;
	font-weight: 700;
	line-height: 1;
	color: #024789;
}

#single .np_link .prev_link .lead span {
	text-align: right;
}

#single .np_link .lead p {
	font-size: 0.8em;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 1px;
	color: #024789;
}

#single .np_link .prev_link .lead p {
	text-align: right;
}

#single .np_link .post_ttl {
	flex: 1;
}

#single .np_link .post_ttl p {
	font-size: 1em;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 1px;
	color: #024789;
}


@media (min-width: 768px) {

}


@media (min-width: 1024px) {

	#single .np_link .next_link {
		float: left;
		width: 48%;
		margin: 0;
	}

	#single .np_link .prev_link {
		float: right;
		width: 48%;
	}

}









/*========================================
==========================================

page-partnership.php

==========================================
========================================*/

/*----------------------------------------

common

----------------------------------------*/

#page_partnership .h2_ttl {
	margin: 0 0 40px;
}

#page_partnership .h2_ttl span {
	display: block;
	text-align: center;
	font-size: 7vw;
	font-weight: 700;
	color: #024789;
}

#page_partnership .h2_ttl h2 {
	text-align: center;
	font-size: 3.5vw;
	font-weight: 900;
	color: #024789;
}


@media (min-width: 768px) {

	#page_partnership .h2_ttl span {
		font-size: 5vw;
	}
	
	#page_partnership .h2_ttl h2 {
		font-size: 2.5vw;
	}

}


@media (min-width: 1024px) {
	
}




/*----------------------------------------

#our_vision

----------------------------------------*/

#our_vision .con {
	position: relative;
	z-index: 1;
	padding: 24vw 6.25%;
}

#our_vision .txt_area p {
	padding-bottom: 10px;
	font-size: 0.9em;
	line-height: 1.8;
	letter-spacing: 1px;
	color: #024789;
}

#our_vision .bg_logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 75%;
}

#our_vision .bg_logo img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
}


@media (min-width: 768px) {

	#our_vision .con {
		padding: 16vw 12.5%;
	}

	#our_vision .txt_area p {
		text-align: center;
		font-size: 1em;
	}

	#our_vision .bg_logo {
		width: 50%;
	}

}


@media (min-width: 1024px) {

	#our_vision .txt_area p {
		font-size: 1.2em;
	}
	
}




/*----------------------------------------

#loop

----------------------------------------*/

#loop {
    display: flex;
    overflow: hidden;
}

#loop .loop_area {
    display: flex;
    animation: loop-list 20s linear infinite;
}

#loop .loop_img img {
	display: block;
	width: calc(100vw / 3);
}


@keyframes loop-list {

    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }

}


@media (min-width: 768px) {

	#loop .loop_area {
		animation: loop-list 30s linear infinite;
	}

	#loop .loop_img img {
		width: calc(100vw / 4);
	}

}




/*----------------------------------------

#plan

----------------------------------------*/

#plan .con {
	padding: 16vw 6.25%;
	background: #ffffff;
}

#plan .plan_list ul li {
	margin: 0 0 8vw;
	border: solid 1px #024789;
	padding: 8vw 6.25%;
	background: #e9eff5;
}

#plan .plan_list ul li:last-of-type {
	margin: 0;
}

#plan .plan_list .plan_name span {
	display: block;
	text-align: center;
	font-size: 8vw;
	font-weight: 700;
	color: #024789;
}

#plan .plan_list .plan_name h3 {
	text-align: center;
	font-size: 4vw;
	font-weight: 900;
	color: #024789;
}

#plan .plan_list .plan_name p {
	text-align: center;
	font-size: 3vw;
	color: #024789;
	line-height: 2;
	letter-spacing: 1px;
}

#plan .plan_list .price {
	padding: 8vw 0;
}

#plan .plan_list .price p {
	text-align: center;
	font-size: 8vw;
	font-weight: 900;
	color: #024789;
}

#plan .plan_list .price span {
	display: block;
	text-align: center;
	font-size: 4vw;
	font-weight: 900;
	color: #024789;
}

#plan .plan_list .benefits p {
	font-size: 0.9em;
	font-weight: 700;
	color: #024789;
	line-height: 2;
	letter-spacing: 1px;
}

#plan .plan_list .benefits span {
	display: block;
	font-size: 0.8em;
	color: #024789;
	line-height: 1.6;
	letter-spacing: 1px;
}


@media (min-width: 768px) {

	#plan .con {
		padding: 8vw 8%;
	}

	#plan .plan_list ul {
		display: flex;
		justify-content: space-between;
	}

	#plan .plan_list ul li {
		flex-basis: 32%;
		margin: 0;
		padding: 4vw 3.125%;
	}

	#plan .plan_list .plan_name span {
		font-size: 3vw;
	}
	
	#plan .plan_list .plan_name h3 {
		font-size: 1.5vw;
	}
	
	#plan .plan_list .plan_name p {
		font-size: 1.5vw;
	}
	
	#plan .plan_list .price {
		padding: 4vw 0;
	}
	
	#plan .plan_list .price p {
		font-size: 3vw;
	}
	
	#plan .plan_list .price span {
		font-size: 1.5vw;
	}

	#plan .plan_list .benefits p {
		font-size: 0.8em;
	}
	
	#plan .plan_list .benefits span {
		font-size: 0.7em;
	}

}


@media (min-width: 1024px) {

}









/*========================================
==========================================

page-association.php

==========================================
========================================*/

/*----------------------------------------

#page_association / common

----------------------------------------*/

#page_association .h2_ttl {
	margin: 0 0 40px;
}

#page_association .h2_ttl span {
	display: block;
	font-size: 6vw;
	font-weight: 700;
	color: #024789;
}

#page_association .h2_ttl h2 {
	font-size: 3vw;
	font-weight: 700;
	color: #024789;
}


@media (min-width: 768px) {

	#page_association .h2_ttl span {
		font-size: 5vw;
	}

	#page_association .h2_ttl h2 {
		font-size: 2.5vw;
	}

}


@media (min-width: 1024px) {

	#page_association .h2_ttl span {
		font-size: 4vw;
	}

	#page_association .h2_ttl h2 {
		font-size: 2vw;
	}

}




/*----------------------------------------

#tsuiki_message

----------------------------------------*/

#tsuiki_message .con {
	padding: 16vw 8%;
}

#tsuiki_message .message p {
	margin: 0 0 20px;
	font-size: 1em;
	line-height: 1.8;
	color: #024789;
}

#tsuiki_message .message .name span {
	display: block;
	text-align: right;
	font-size: 1em;
	line-height: 2;
}

#tsuiki_message .message .name h3 {
	text-align: right;
	font-size: 1.2em;
	font-weight: 700;
}


@media (min-width: 768px) {

	#tsuiki_message .con {
		padding: 16vw 16%;
	}

}


@media (min-width: 1024px) {

	#tsuiki_message .con {
		padding: 8vw 16%;
	}

}




/*----------------------------------------

#tsuiki_prof

----------------------------------------*/

#tsuiki_prof .con {
	background: #e9eff5;
}

#tsuiki_prof .img_area img {
	display: block;
	width: 100%;
	height: auto;
}

#tsuiki_prof .txt_area {
	padding: 8vw 8% 16vw;
}

#tsuiki_prof .txt_area .name {
	margin: 0 0 20px;
}

#tsuiki_prof .txt_area .name p {
	font-size: 1em;
	color: #024789;
}

#tsuiki_prof .txt_area .name h3 {
	font-size: 2em;
	font-weight: 700;
	line-height: 2;
	color: #024789;
}

#tsuiki_prof .txt_area .name span {
	display: block;
	font-size: 1.2em;
	color: #024789;
}

#tsuiki_prof .txt_area .career {
	margin: 0 0 20px;
}

#tsuiki_prof .txt_area .career p {
	font-size: 1em;
	line-height: 1.6;
	color: #024789;
}

#tsuiki_prof .txt_area .position ul li {
	margin: 0 0 5px;
}

#tsuiki_prof .txt_area .position ul li p {
	position: relative;
	padding-left: 18px;
	font-size: 0.9em;
	color: #024789;
}

#tsuiki_prof .txt_area .position ul li p::before {
	display: block;
	content: '●';
	position: absolute;
	top: 0;
	left: 0;
}


@media (min-width: 768px) {

	#tsuiki_prof .con {
		padding: 16vw 16%;
	}

	#tsuiki_prof .txt_area {
		padding: 8vw 0 0;
	}
	
	
}


@media (min-width: 1024px) {
	
	#tsuiki_prof .con {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 8vw 0;
	}
	
	#tsuiki_prof .txt_area {
		flex-basis: 50%;
		padding: 0 8%;
	}
	
	#tsuiki_prof .img_area {
		flex-basis: 50%;
	}

	/* #tsuiki_prof .con {
		align-items: center;
	}

	#tsuiki_prof .txt_area {
	} */
	
}




/*----------------------------------------

#overview

----------------------------------------*/

#overview .txt_area {
	padding: 16vw 8%;
}

#overview .txt_area table {
	width: 100%;
}

#overview .txt_area table tr {
	display: flex;
	align-items: center;
	border-top: solid 1px #024789;
	padding: 20px 0;
}

#overview .txt_area table th {
	flex-basis: 25%;
}

#overview .txt_area table th p {
	font-size: 0.9em;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 1px;
	color: #024789;
}

#overview .txt_area table td {
	flex-basis: 75%;
}

#overview .txt_area table td p {
	font-size: 0.9em;
	line-height: 1.5;
	letter-spacing: 1px;
	color: #024789;
}

#overview .txt_area table td ul.works li {
	margin: 0 0 5px;
}

#overview .txt_area table td ul.works li p {
	position: relative;
	padding-left: 18px;
}

#overview .txt_area table td ul.works li p::before {
	display: block;
	content: '・';
	position: absolute;
	top: 0;
	left: 0;
}

#overview .map_area iframe {
	width: 100%;
	height: 64vw;
}


@media (min-width: 768px) {

	#overview .con {
		padding: 16vw 16%;
	}

	#overview .txt_area {
		padding: 0 0 8vw;
	}
	
}


@media (min-width: 1024px) {
	
	#overview .con {
		display: flex;
		justify-content: space-between;
		padding: 8vw 8%;
	}
	
	#overview .txt_area {
		flex-basis: 42%;
		padding: 0;
	}
	
	#overview .map_area {
		flex-basis: 50%;
	}
	
	#overview .map_area iframe {
		height: 100%;
	}

}









/*========================================

page-contact.php

========================================*/

/*----------------------------------------

#contact_form

----------------------------------------*/

#contact_form .con {
    padding: 16vw 8%;
}

#contact_form .opening {
    padding: 0 0 40px;
}

#contact_form .opening p {
    font-size: 1em;
}

#contact_form .opening p br {
    display: none;
}

#contact_form .opening p span {
    color: #ff0000;
}

#contact_form .form_box {
	border-top: solid 1px #6596c4;
	padding: 40px 0;
}

#contact_form .form_box.confirm {
    border-bottom: solid 1px #6596c4;
}


@media (min-width: 768px) {

	#contact_form .con {
		padding: 8vw 16%;
	}

    #contact_form .opening p br {
        display: block;
    }
    
}


@media (min-width: 1024px) {

    #contact_form .form_box {
		display: flex;
		align-items: center;
	}

	#contact_form .label_area {
		flex-basis: 25%;
	}

	#contact_form .input_area {
		flex-basis: 75%;
	}

}




/*----------------------------------------

.label_area

----------------------------------------*/

#contact_form .label_area {
    padding: 0 0 10px;
}

#contact_form .label_area label {
	display: block;
	font-size: 1em;
	font-weight: 500;
	line-height: 1.5;
}

#contact_form .label_area label span {
	margin-left: 10px;
	color: #ff0000;
}


@media (min-width: 768px) {

}


@media (min-width: 1024px) {

	#contact_form .label_area {
		padding: 0;
	}

}




/*----------------------------------------

.input_area / text,textarea

----------------------------------------*/

#contact_form .input_area input.input_left_50,
#contact_form .input_area input.input_right_50,
#contact_form .input_area input.input_100,
#contact_form .input_area textarea {
    display: block;
    width: 100%;
    border: solid 1px #6596c4;
    border-radius: 0;
    padding: 20px;
    outline: none;
    font-size: 1em;
}

#contact_form .input_area .name_kanji {
    margin: 0 0 2%;
}

#contact_form .input_area .wpcf7-form-control-wrap[data-name="kanji_sei"],
#contact_form .input_area .wpcf7-form-control-wrap[data-name="kana_sei"],
#contact_form .input_area .wpcf7-form-control-wrap[data-name="kanji_sei_guardian"],
#contact_form .input_area .wpcf7-form-control-wrap[data-name="kana_sei_guardian"]  {
    float: left;
    width: 49%;
    margin-right: 2%;
}

#contact_form .input_area .wpcf7-form-control-wrap[data-name="kanji_mei"],
#contact_form .input_area .wpcf7-form-control-wrap[data-name="kana_mei"],
#contact_form .input_area .wpcf7-form-control-wrap[data-name="kanji_mei_guardian"],
#contact_form .input_area .wpcf7-form-control-wrap[data-name="kana_mei_guardian"] {
    float: left;
    width: 49%;
}

#contact_form .input_area .wpcf7-form-control-wrap[data-name="post_code"] {
    display: block;
    width: 49%;
    margin: 0 0 2%;
}

#contact_form .input_area .wpcf7-form-control-wrap[data-name="address_01"] {
    display: block;
    margin: 0 0 2%;
}

#contact_form .input_area p.kakunin {
    margin: 0 0 10px;
    font-size: 0.9em;
    font-weight: 500;
}




/*----------------------------------------

.input_area / .wpcf7-checkbox

※デフォルトのチェックボックスを任意のデザインに変更

----------------------------------------*/

#contact_form .input_area .wpcf7-checkbox span.wpcf7-list-item {
    display: block;
    margin: 0;
}

#contact_form .input_area .wpcf7-checkbox input[type="checkbox"] {
    display: none;
}

#contact_form .input_area .wpcf7-checkbox span.wpcf7-list-item-label {
    display: block;
	position: relative;
	z-index: 1;
	border: solid 1px #6596c4;
	padding: 20px 20px 20px 50px;
	font-size: 0.9em;
	line-height: 1.5;
	background: #ffffff;
	cursor: pointer;
	transition: all 0.3s;
}

#contact_form .input_area .wpcf7-checkbox span.wpcf7-list-item-label::before {
    font: var(--fa-font-solid);
    content: '\f00c';
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 19px;
    transform: translateY(-50%);
    color: #024789;
    opacity: 0;
}

#contact_form .input_area .wpcf7-checkbox span.wpcf7-list-item-label::after {
    display: block;
	content: '';
	position: absolute;
	z-index: 2;
	top: 50%;
	left: 15px;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	border: solid 1px #6596c4;
	border-radius: 3px;
	background: #ffffff;
}

#contact_form .input_area .wpcf7-checkbox input:checked + span.wpcf7-list-item-label {
    background: #e9eff5;
}

#contact_form .input_area .wpcf7-checkbox input:checked + span.wpcf7-list-item-label::before {
    opacity: 1;
}




/*----------------------------------------

.submit_area

----------------------------------------*/

#contact_form input.submit_btn {
    display: block;
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
    padding: 25px 0;
    border: none;
    outline: none;
    font-size: 1em;
    line-height: 1;
    letter-spacing: 1px;
    color: #ffffff;
    background: #6596c4;
    border-radius: 50px;
    cursor: pointer;
    transition: all 0.3s;
}

#contact_form .submit_area {
    padding: 40px 0 0;
}

#contact_form input.submit_btn:hover {
    background: #024789;
}









/*========================================

page-privacy.php

========================================*/

/*----------------------------------------

common

----------------------------------------*/

#page_privacy .con {
    padding: 16vw 6.25%;
}

#page_privacy .opening {
	margin: 0 0 40px;
}

#page_privacy .opening p {
	font-size: 0.9em;
	line-height: 1.5;
	letter-spacing: 1px;
}

#page_privacy section {
	padding: 40px 0;
	border-top: solid 1px #6596c4;
}

#page_privacy section h2 {
	font-size: 1em;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 1px;
	color: #000000;
}

#page_privacy section .info > p {
	padding-top: 20px;
	font-size: 0.9em;
	line-height: 1.5;
	letter-spacing: 1px;
}

#page_privacy section ol.list1 {
	margin: 20px 0 0 20px;
}

#page_privacy section ol.list2 {
	margin: 20px 0 0 20px;
}

#page_privacy section ol.list3 {
	margin: 20px 0 0 20px;
}

#page_privacy section ol li {
	margin: 0 0 20px;
	font-size: 0.9em;
	line-height: 1.5;
	letter-spacing: 1px;
}

#page_privacy section ul.window {
    padding-top: 20px;
}

#page_privacy section ul.window li p {
    font-size: 0.9em;
	line-height: 1.5;
	letter-spacing: 1px;
}

#page_privacy .thats_all {
	text-align: right;
}


@media (min-width: 768px) {

    #page_privacy .con {
        padding: 8vw 6.25%;
    }

}


@media (min-width: 1024px) {

    #page_privacy .con {
        padding: 8vw 12.5%;
    }
    
}









/*========================================
==========================================

#partner_fixed

==========================================
========================================*/

#partner_fixed .con {
	padding: 16vw 6.25%;
	background: #e9eff5;
}

#partner_fixed .h2_ttl {
	margin: 0 0 40px;
}

#partner_fixed .h2_ttl span {
	display: block;
	text-align: center;
	font-size: 6vw;
	font-weight: 700;
	color: #024789;
}

#partner_fixed .h2_ttl h2 {
	text-align: center;
	font-size: 3vw;
	font-weight: 900;
	color: #024789;
}

#partner_fixed .partner_list ul li {
	width: 50%;
	margin: 0 auto 8vw;
}

#partner_fixed .partner_list ul li a {
	display: block;
	transition: all 0.3s;
}

#partner_fixed .partner_list ul li a:hover {
	opacity: 0.8;
}

#partner_fixed .partner_list ul li img {
	display: block;
	width: 100%;
	height: auto;
}


@media (min-width: 768px) {

	#partner_fixed .h2_ttl span {
		font-size: 5vw;
	}

	#partner_fixed .h2_ttl h2 {
		font-size: 2.5vw;
	}

	#partner_fixed .partner_list ul {
		display: flex;
	}

	#partner_fixed .partner_list ul li {
		width: auto;
		margin: 0 6.25% 0 0;
	}

	#partner_fixed .partner_list ul li:last-of-type {
		margin: 0;
	}

}


@media (min-width: 1024px) {

	#partner_fixed .con {
		padding: 8vw 12.5%;
	}

	#partner_fixed .h2_ttl span {
		font-size: 4vw;
	}

	#partner_fixed .h2_ttl h2 {
		font-size: 2vw;
	}
	
}









/*========================================
==========================================

#partner_plan

==========================================
========================================*/

#partner_plan .bg_img {
	width: 100%;
	background-position: center;
	background-size: cover;
}

#partner_plan .filter {
	width: 100%;
	height: 100%;
	background: rgba(2,71,137,0.75);
}

#partner_plan .con {
	padding: 16vw 6.25%;
}

#partner_plan .h2_ttl img {
	display: block;
	width: 50%;
	height: auto;
	margin: 0 auto 10px;
}

#partner_plan .h2_ttl span {
	display: block;
	text-align: center;
	font-size: 6vw;
	font-weight: 700;
	color: #ffffff;
}

#partner_plan .h2_ttl h2 {
	text-align: center;
	font-size: 4vw;
	font-weight: 700;
	color: #ffffff;
}

#partner_plan .txt_area {
	padding: 40px 0;
}

#partner_plan .txt_area p {
	text-align: center;
	font-size: 0.9em;
	line-height: 1.6;
	letter-spacing: 1px;
	color: #ffffff;
}

#partner_plan .page_link {
	width: 50%;
	margin: 0 auto;
}

#partner_plan .page_link a {
	display: block;
	padding: 25px 0;
	text-align: center;
	font-size: 0.9em;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 1px;
	color: #024789;
	background: #ffffff;
	border-radius: 50px;
	transition: all 0.3s;
}

#partner_plan .page_link a:hover {
	color: #ffffff;
	background: #6596c4;
}


@media (min-width: 768px) {

	#partner_plan .h2_ttl img {
		width: 40%;
	}

	#partner_plan .h2_ttl span {
		font-size: 5vw;
	}

	#partner_plan .h2_ttl h2 {
		font-size: 2.5vw;
	}

}


@media (min-width: 1024px) {

	#partner_plan .con {
		padding: 16vw 6.25%;
	}

	#partner_plan .h2_ttl img {
		width: 30%;
	}

	#partner_plan .h2_ttl span {
		font-size: 4vw;
	}

	#partner_plan .h2_ttl h2 {
		font-size: 2vw;
	}
	
}









/*========================================
==========================================

#action_fixed

==========================================
========================================*/

#action_fixed {
	background: #e9eff5;
}

#action_fixed .con {
	padding: 16vw 6.25%;
}

#action_fixed .association {
	border-bottom: solid 1px #6596c4;
	padding: 0 0 16vw;
}

#action_fixed .contact {
	padding: 16vw 0 0;
}

#action_fixed .h2_ttl span {
	display: block;
	text-align: center;
	font-size: 6vw;
	font-weight: 700;
	color: #024789;
}

#action_fixed .h2_ttl h2 {
	text-align: center;
	font-size: 3vw;
	font-weight: 900;
	color: #024789;
}

#action_fixed .txt_area {
	padding: 40px 0;
}

#action_fixed .txt_area p {
	text-align: center;
	font-size: 0.9em;
	line-height: 2;
	letter-spacing: 1px;
	color: #024789;
}

#action_fixed .txt_area p.corp_name {
	font-weight: 700;
}

#action_fixed .page_link {
	width: 50%;
	margin: 0 auto;
}

#action_fixed .page_link a {
	display: block;
	padding: 20px 0;
	text-align: center;
	font-size: 0.8em;
	line-height: 1;
	letter-spacing: 1px;
	color: #024789;
	background: #ffffff;
	border-radius: 40px;
	transition: all 0.3s;
}

#action_fixed .page_link a:hover {
	color: #ffffff;
	background: #6596c4;
}


@media (min-width: 768px) {

	#action_fixed .con {
		display: flex;
		padding: 8vw 6.25%;
	}

	#action_fixed .association {
		flex-basis: 50%;
		border-bottom: none;
		border-right: solid 1px #6596c4;
		padding: 0 6.25%;
	}

	#action_fixed .contact {
		flex-basis: 50%;
		padding: 0 6.25%;
	}

	#action_fixed .h2_ttl span {
		font-size: 5vw;
	}

	#action_fixed .h2_ttl h2 {
		font-size: 2.5vw;
	}

}


@media (min-width: 1024px) {

	#action_fixed .h2_ttl span {
		font-size: 3vw;
	}

	#action_fixed .h2_ttl h2 {
		font-size: 1.5vw;
	}
	
}









/*========================================
==========================================

footer

==========================================
========================================*/

/*----------------------------------------

common

----------------------------------------*/

footer {
	background: #024789;
}

footer .con {
	padding: 16vw 8%;
}

footer .copyright p {
	text-align: center;
	font-size: 0.8em;
	line-height: 1;
	letter-spacing: 1px;
	color: #ffffff;
}


@media (min-width: 768px) {
	
	footer .con {
		padding: 8vw 8%;
	}
	
}


@media (min-width: 1024px) {
	
	footer .con {
		padding: 4vw 4%;
	}
	
	footer .flex_box {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 0 0 40px;
	}

	footer .copyright p {
		text-align: right;
	}

}




/*----------------------------------------

.foot_logo

----------------------------------------*/

footer .foot_logo {
	width: 240px;
	margin: 0 auto;
}

footer .foot_logo a {
	display: block;
}

footer .foot_logo img {
	display: block;
	width: 100%;
	height: auto;
	transition: all 0.3s;
}

footer .foot_logo a:hover img {
	opacity: 0.7;
}


@media (min-width: 768px) {

	
}


@media (min-width: 1024px) {
	
	footer .foot_logo {
		margin: 0;
	}

}




/*----------------------------------------

.foot_nav

----------------------------------------*/

footer .foot_nav ul {
	padding: 16vw 0;
}

footer .foot_nav ul li {
	margin: 0 0 10px;
	text-align: center;
}

footer .foot_nav ul li:last-of-type {
	margin: 0;
}

footer .foot_nav ul li a {
	display: inline-block;
	font-size: 0.8em;
	line-height: 1;
	letter-spacing: 1px;
	color: #ffffff;
	transition: all 0.3s;
}

footer .foot_nav ul li a:hover {
	color: #6596c4;
}


@media (min-width: 768px) {

	footer .foot_nav ul {
		display: flex;
		padding: 8vw 0;
	}

	footer .foot_nav ul li {
		flex: auto;
		margin: 0 20px 0 0;
	}

}


@media (min-width: 1024px) {
	
	footer .foot_nav ul {
		padding: 0;
	}

}









/*========================================
==========================================

404.php

==========================================
========================================*/

#page_404 .con {
	padding: 16vw 8%;
}

#page_404 .sorry {
	margin: 0 0 8vw;
}

#page_404 .sorry p {
	font-size: 0.9em;
	line-height: 1.6;
	letter-spacing: 1px;
}

#page_404 .sorry p br {
	display: none;
}

#page_404 .page_link a {
	display: block;
	padding: 20px 0;
	text-align: center;
	font-size: 0.9em;
	line-height: 1;
	letter-spacing: 2px;
	color: #ffffff;
	background: #6596c4;
	border-radius: 40px;
	transition: all 0.3s;
}

#page_404 .page_link a:hover {
	background: #024789;
}


@media (min-width: 768px) {

	#page_404 .con {
		padding: 8vw 8%;
	}

	#page_404 .sorry {
		margin: 0 0 4vw;
	}

	#page_404 .sorry p {
		font-size: 1em;
	}

	#page_404 .sorry p br {
		display: block;
	}

	#page_404 .page_link a {
		display: inline-block;
		width: 320px;
	}

}


@media (min-width: 1024px) {

	#page_404 .con {
		padding: 8vw 16%;
	}

}