@charset "UTF-8";
/*------------------------
スタイルの初期化
------------------------*/
body,div,pre,p,blockquote,
form,fieldset,input,textarea,select,option,
dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,
table,th,td,embed,object,figure { margin:0; padding:0; }
html {
	font-size: 62.5%;
}
body {
	font-family: 'Noto Sans JP','メイリオ','Meiryo','ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ Ｐゴシック',sans-serif;
	font-weight: 400;
	font-size: 3.73vw;
	color: var(--black);
	line-height: 1.65;
	text-autospace:ideograph-alpha;
	font-feature-settings: 'palt';
	letter-spacing: .04em;
	position: relative;
	padding-top: 16vw;
}
main {
	display: block;
}
a {
	text-decoration: none;
	color:#000;
	transition: all .3s ease 0s;
	display: block;
}
a img {
	border:0;
}
img{
	vertical-align:top;
	max-width: 100%;
}
ul, ol { list-style-type:none; }
sup { position: relative; vertical-align: baseline; top: -0.9em; font-size: 0.5em; }
hr { width: 100%;
margin: 20px 0;}
h1,h2,h3,h4,h5,h6 { font-size: 100%;}
th, caption{ text-align: left; font-weight: normal; }
th,td { empty-cells:show; }
input[type="text"] , 
input[type="email"] , 
input[type="tel"] , 
input[type="password"] { padding:0 2px; margin-right:0.4em; }
input[type="submit"] { display:inline; margin:0; }
input[type="radio"] { margin-right:0.1em; }
textarea { padding:2px; }
optgroup { font-style:normal; }
option { padding-right: 10px;
	font-size: 3.73vw;}
*:focus {
outline: none;
}
*{
	box-sizing: border-box;
}
table {
	width: 100%;
	border-collapse: collapse;
	box-sizing: border-box;
}
/*ボタンデフォルトスタイルをリセット */
input[type="submit"],
input[type="button"],button {
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
	font-family: 'Noto Sans JP','メイリオ','Meiryo','ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ Ｐゴシック',sans-serif;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus {
	outline-offset: -2px;
}
input[type="text"] , 
input[type="email"] , 
input[type="tel"] , 
input[type="password"] ,
textarea {
	-webkit-appearance : none;
	appearance: none;
	border-radius:0;
	padding:8px;
	border:1px solid #dddddd;
	width: 100%;
	box-sizing: border-box;
	font-family: 'Noto Sans JP','メイリオ','Meiryo','ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ Ｐゴシック',sans-serif;
}
input[type="tel"] {
	width: 16em;
}
area{
	border:none;
	outline:none;
}
input, select, textarea {
	font-size: 3.73vw;
}
textarea {
	width: 100%;
	height: 10em;
}
select {
	text-overflow: "";
	background: #fff;
	background-size: auto 4px;
	padding: 2.13vw 12.8vw 2.13vw 2.67vw;
	border: 1px solid #dddddd;
	max-width: 16em;
}
select::-ms-expand {
	display: none;
}
::placeholder {
	color: #c9c9c9;
	font-size: 3.4vw;
}

/*------------------------
共通指定デザイン
------------------------*/
:root{
	--navy:#1b3c59;
	--green:#63c1b3;
	--blue: #00adcd;
	--bg:#edf2f6;
	--black:#11181e;
	--bg_grad: rgb(0,173,205);
	--bg_grad2: linear-gradient(90deg, rgba(0,173,205,1) 0%, rgba(99,193,179,1) 100%);
}
.wf{
	font-family: 'Open Sans', sans-serif;
}
/*ボタン*/
.btn a{
	background: var(--navy);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	transition: all .3s ease 0s;
	font-size: 4.27vw;
	height: 15vw;
	border-radius: 5px;
}
.btn.gd a{
	background: var(--bg_grad);
	background: var(--bg_grad2);
}
.btn a::after{
	content: '';
	width: 1.6vw;
	height: 1.6vw;
	border-bottom: 1px solid #fff;
	border-left: 1px solid #fff;
	-webkit-transform: rotate( -135deg);
	transform: rotate( -135deg);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 4vw;
	margin: auto;
}
.flex-box {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
}
.red , 
.must {
	color: #ff0007;
}
.image img{
	width: 100%;
	height: 100%;
}
.textarea{
	text-align: justify;
}
/*pc*/
.pc,.pc-inline{
	display: none;
}
.sp {
	display: block;
}
.sp-inline {
	display: inline-block;
}

/*------------------------
header
------------------------*/
header {
	width: 100%;
	background: #fff;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
}
header .inner {
	justify-content: space-between;
	align-items: center;
	padding: 2vw 2vw 2vw 4vw;
}
header .logo a .image{
	width: 56vw;
	display: block;
}
header .logo .ttl img {
	width: auto;
}

header .inner .right {
	position: relative;
	z-index: 200;
	align-items: center;
}

/* メール */
header .inner .right .mail a{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding-right: 2.67vw;
	margin-right: 2.67vw;
	border-right: 1px solid var(--navy);
}
header .inner .right .mail .image{
	width: 4.67vw;
	height: 3.6vw;
	display: block;
}
header .inner .right .mail p{
	font-size: 2.93vw;
	font-weight: 600;
	color: var(--navy);
}

header .inner .right .menu {
	width: 11vw;
	height: 12vw;
	position: relative;
}
header .menu > div {
	position: absolute;
	left: 0;
	right: 0;
	margin: auto;
	width: 67%;
	height: 2px;
	background: var(--black);
	transition: .35s ease-in-out;
}
header .menu .menu1 {
	top: 20%;
}
header .menu .menu2 {
	top: calc(40% - 1px);
}
header .menu .menu3 {
	top: calc(58% - 1px);
}
header .menu span {
	position: absolute;
	display: block;
	top: 70%;
	left: 0;
	right: 0;
	margin: auto;
	font-size: 2.67vw;
	line-height: 1;
	text-align: center;
	font-weight: 500;
}
header .menu.active .menu1 {
	top: 44%;
	left: 0;
	right: 0;
	width: 62%;
	margin: auto;
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	transform: rotate(-45deg);
}
header .menu.active .menu2,
header .menu.active .menu3{
	top: 44%;
	left: 0;
	right: 0;
	width: 62%;
	margin: auto;
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	transform: rotate(45deg);
}

/*------------------------
ナビ 
------------------------*/
/*メニューリスト*/
#menu-list {
	width: 100%;
	padding: 6% 4.5% 6%;
	min-height: 100vh;
	box-sizing: border-box;
	position: absolute;
	overflow: hidden;
	z-index: 150;
	top: 16vw;
	left: 0;
	background: var(--navy);
	transform: translateY(-200%);
	transition: all .6s;
}
#menu-list.active {
	transform: translateY(0);
}
#menu-list li {
	font-size: 4vw;
}
#menu-list li a{
	display: block;
	padding: 2vw 0 2vw 4vw;
	color: #fff;
	font-weight: bold;
	position: relative;
}
#menu-list li.has-child > a span{
	position: relative;
}
#menu-list li.has-child > a span::after{
	content: '';
	width: 6px;
	height: 6px;
	border-bottom: 2px solid #fff;
	border-right: 2px solid #fff;
	-webkit-transform: translateY(-50%) rotate(45deg);
	transform: translateY(-50%) rotate(45deg);
	position: absolute;
	right: -8vw;
	top: 50%;
	margin: auto;
	transition: border-color .2s ease-out;
}
#menu-list li.has-child li a{
	margin-left: 4vw;
}
#menu-list li.has-child li a::before{
	content: "-";
	margin-right: 2vw;
}

/*------------------------
共通
------------------------*/
section .inner{
	padding: 8vw 4vw 10.33vw;
}
section .inner .ttl-wrap{
	margin-bottom: 8vw;
	text-align: center;
}
section .inner .ttl-wrap .sub{
	line-height: 1.3;
}
section .inner .ttl-wrap .sub span {
	font-size: 4vw;
	font-weight: bold;
	margin-bottom: 1vw;
	line-height: 1;
	background: var(--bg_grad);
	background: var(--bg_grad2);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
section .inner .ttl-wrap h2 {
	font-size: 5.33vw;
	color: var(--navy);
	position: relative;
}
section .inner .ttl-wrap h2::after {
	content: "";
	width: 10.67vw;
	height: 4px;
	background: var(--bg_grad);
	background: var(--bg_grad2);
	border-radius: 50px;
	position: absolute;
	bottom: -3vw;
	left: 50%;
	transform: translateX(-50%);
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
}

section .inner .sub-text {
	font-size: 4vw;
	margin-bottom: 4vw;
}


/*------------------------
後続共通
------------------------*/
/*パンくず*/
#breadcrumb {
	overflow: hidden;
	overflow-x: scroll;
	white-space: nowrap;
	margin-bottom: 8vw;
}
#breadcrumb li{
	display: inline-block;
}
#breadcrumb li a{
	color: #fff;
	font-size: 3.47vw;
	display: inline-block;
}
#breadcrumb li::before{
	content: '';
	width: 6px;
	height: 6px;
	display: inline-block;
	border-bottom: 1px solid #fff;
	border-right: 1px solid #fff;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	margin: auto 12px 0 5px;
	vertical-align: 1px;
}
#breadcrumb li:first-child::before{
	content:none;
}


#top-ttl {
	background: var(--navy) url(/pc/img/common/pattern_footer.png);
	position: relative;
	margin-bottom: 6vw;
}
#top-ttl .inner {
	padding: 2vw 4vw 11.47vw;
}
#top-ttl .image {
	width: 53.33vw;
	height: 40vw;
	position: absolute;
	right: 0;
	top: 10vw;
}
#top-ttl .image::before{
	content: "";
	width: 53.33vw;
	height: 40vw;
	background: rgba(0,0,0,.3);
	position: absolute;
	right: 0;
}
#top-ttl .image img{
	object-fit: cover;
}

/* ページタイトル */
#top-ttl .page-ttl{
	position: relative;
	z-index: 200;
}
#top-ttl .page-ttl .sub span{
	font-size: 3.73vw;
	font-weight: bold;
	margin-bottom: 1vw;
	line-height: 1;
	background: var(--bg_grad);
	background: var(--bg_grad2);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
#top-ttl .page-ttl h1{
	font-size: 6.4vw;
	color: #fff;
	font-weight: 500;
	line-height: 1.3;
}
#top-ttl .page-ttl h1 span{
	font-size: 4.2vw;
}

/*------------------------
2カラム
------------------------*/
.contents-wrap{
	background: var(--bg);
	padding: 6vw 4vw 10vw;
}
.topbg{
	background: var(--bg);
	padding-bottom: 2vw;
}

/*------------------------
サイドバー
------------------------*/
#sidebar .block{
	background: #fff;
	margin: 0 0 5vw;
}
#sidebar .block h2{
	background: var(--navy) url(/pc/img/common/sidebar-ttl.png);
	color: #fff;
	width: 100%;
	height: 12vw;
	display: flex;
	align-items: center;
	font-size: 4.8vw;
	padding-left: 5vw;
	position: relative;
}
#sidebar .block h2::before{
	content: "";
	width: 4px;
	height: 6.4vw;
	background: #fff;
	position: absolute;
	left: 0;
}
#sidebar .block ul{
	padding: 1vw 4vw 4vw;
}
#sidebar .block .month-archive-list{
	padding: 1vw 3vw 1vw;
	display: none;
}
#sidebar .block .acv_open .month-archive-list {
	display: block;
}
#sidebar .archive-list .year {
	padding: 1.5vw 0;
	font-size: 4vw;
	font-weight: bold;
	position: relative;
}
#sidebar .block ul li a{
	font-size: 3.73vw;
	padding: 2vw 0;
	border-bottom: 1px solid #d1d1d1;
	position: relative;
	font-weight: 500;
}
#sidebar .block ul li a::before{
	content: '';
	width: 1.6vw;
	height: 1.6vw;
	border-bottom: 1px solid var(--navy);
	border-left: 1px solid var(--navy);
	-webkit-transform: rotate( -135deg);
	transform: rotate( -135deg);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 2vw;
	margin: auto;
}

/*------------------------
pageトップ
------------------------*/
#to_pagetop{
	width: 13.33vw;
	height: 13.33vw;
	position: fixed;
	right: 0;
	bottom: 0;
	z-index: 20;
	cursor: pointer;
	margin: 4vw;
	opacity:0;
	visibility: hidden;
	-webkit-transition: 0.2s opacity ease-in-out,0.2s visibility ease-in-out;
	transition: 0.2s opacity ease-in-out,0.2s visibility ease-in-out;
}
#to_pagetop a {
	display: block;
	width: 100%;
	height: 100%;
	position: relative;
	background: var(--navy);
}
#to_pagetop a:after{
	position: absolute;
	content: '';
	top: 8px;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	vertical-align: middle;
	width: 12px;
	height: 12px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(-45deg);
}
#to_pagetop.show{
	opacity: 1;
	visibility: visible;
}


/*------------------------
フッターコンタクト
------------------------*/
#bottom-contact {
	background: url(/sp/img/common/bg_contact.jpg) no-repeat top #edf2f6;
	background-size: 100%;
	padding: 8vw 0;
}
#bottom-contact .inner {
	background: #fff;
	padding: 5vw 4vw 5vw;
	margin: 0 4vw;
}
#bottom-contact .inner .ttl-wrap{
	margin-bottom: 6vw;
}
#bottom-contact .textarea{
	font-size: 4.27vw;
	font-weight: 500;
	text-align: center;
	margin-bottom: 3vw;
}
#bottom-contact .mail .btn a{
	font-size: 4.27vw;
	font-weight: 500;
}
#bottom-contact .mail .btn a::before{
	content: "";
	width: 4.8vw;
	height: 4vw;
	background: url(/pc/img/common/icon_mail_f.png) no-repeat;
	background-size: contain;
	display: block;
	margin-right: 6px;
}

/*------------------------
バナー
------------------------*/
#bottom-banner{
	padding: 8vw 6vw;
}
#bottom-banner h2 {
	font-size: 5.33vw;
	color: var(--navy);
	position: relative;
	margin-bottom: 8vw;
	text-align: center;
}
#bottom-banner h2::after {
	content: "";
	width: 10.67vw;
	height: 4px;
	background: var(--bg_grad);
	background: var(--bg_grad2);
	border-radius: 50px;
	position: absolute;
	bottom: -3vw;
	left: 50%;
	transform: translateX(-50%);
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
}
#bottom-banner .banner a{
	width: 100%;
	height: 34.67vw;
	margin-bottom: 3vw;
}
#bottom-banner .banner a img{
	object-fit: cover;
	border: 1px solid #dcdcdc;
}


/*------------------------
フッター
------------------------*/
footer{
	background: var(--navy) url(/pc/img/common/pattern_footer.png);
}
footer .inner{
	margin: 0 4vw;
	padding: 10.67vw 0 16vw;
	color: #fff;
}
footer .company{
	padding: 3vw 4vw 4vw;
	background: rgba(255,255,255,.2);
	margin-bottom: 5.33vw;
}
footer .company .logo{
	width: 74.67vw;
	margin-bottom: 2vw;
}
footer .company p{
	font-size: 4vw;
}

/* menu */
footer .menu-wrap{
	display: flex;
	justify-content: space-between;
	margin-bottom: 6vw;
}
footer .menu-wrap .box{
	width: 48%;
}
footer .menu-wrap .ttl{
	font-size: 4.2vw;
	font-weight: bold;
	margin-bottom: 3vw;
	position: relative;
}
footer .menu-wrap .ttl::after{
	content: "";
	width: 100%;
	height: 1px;
	background: var(--bg_grad);
	background: var(--bg_grad2);
	display: block;
	margin-top: 1vw;
}
footer .menu-wrap ul li a{
	color: #fff;
	padding: 1.5vw 0;
	display: flex;
	align-items: center;
}
footer .menu-wrap ul li a::before{
	content: "";
	width: 8px;
	height: 1px;
	background: #fff;
	display: block;
	margin-right: 6px;
}
footer .menu-wrap ul li.out .blank{
	content: "";
	width: 5vw;
	height: 5vw;
	background: url(/pc/img/common/icon_other.png) no-repeat;
	background-size: contain;
	display: inline-block;
	margin-left: 1vw;
}
footer .sns-wrap{
	display: flex;
	align-items: center;

}
footer .sns-wrap .icon{
	width: 10.67vw;
	height: 10.67vw;
	margin-left: 2vw;
}

/* コピー */
#copy{
	background: var(--black);
	color: #fff;
	text-align: center;
	padding: 3vw 2vw;
	font-size: 3.2vw;
}

/*------------------------
ページャー
------------------------*/
.pager {
	justify-content: space-between;
	text-align: center;
	display: flex;
	margin-bottom: 12vw;
}
.pager .prev,.pager .next {
	width: calc((100% - 4px) / 2);
	height: auto;
	float: left;
	font-size: 4.2vw;
	background: var(--navy);
}
.pager .none span {
	background: #7b8da1;
	display: block;
	padding: 8% 0;
	position: relative;
}
.pager a, .pager span {
	display: block;
	padding: 8% 0;
	position: relative;
	color: #fff;
}
.pager .prev a::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 6%;
	width: 1.5vw;
	height: 1.5vw;
	border-top: 1px solid #fff;
	border-left: 1px solid #fff;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	margin: auto;
}
.pager .next a::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	right: 6%;
	width: 1.5vw;
	height: 1.5vw;
	border-bottom: 1px solid #fff;
	border-right: 1px solid #fff;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	margin: auto;
}


/*------------------------
エフェクト
------------------------*/
.fadein {
	opacity : 0;
	transform : translate(0, 30px);
	transition: all 800ms;
}
.fadein.scrollin {
	opacity : 1;
	transform : translate(0, 0);
}
.fadein.scrollin:nth-of-type(2) {
	-moz-transition-delay:200ms;
	-webkit-transition-delay:200ms;
	-o-transition-delay:200ms;
	-ms-transition-delay:200ms;
}
.fadein.scrollin:nth-of-type(3) {
	-moz-transition-delay:400ms;
	-webkit-transition-delay:400ms;
	-o-transition-delay:400ms;
	-ms-transition-delay:400ms;
}
.fadein.scrollin:nth-of-type(4) {
	-moz-transition-delay:600ms;
	-webkit-transition-delay:600ms;
	-o-transition-delay:600ms;
	-ms-transition-delay:600ms;
}
.fadein.scrollin:nth-of-type(5) {
	-moz-transition-delay:800ms;
	-webkit-transition-delay:800ms;
	-o-transition-delay:800ms;
	-ms-transition-delay:800ms;
}
.btn.fadein.scrollin {
	opacity: 1;
	transform: translate(0, 0);
	-moz-transition-delay: unset;
	-webkit-transition-delay: unset;
	-o-transition-delay: unset;
	-ms-transition-delay: unset;
}
.img-animation {
	overflow: hidden;
	position: relative;
	opacity: 0;
}
.img-animation.active::before {
	animation: img-animation 1.5s cubic-bezier(.4, 0, .2, 1) forwards;
	background: var(--navy);
	content: '';
	pointer-events: none;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 1;
}
.img-animation.active{
	opacity: 1;
	transition: all 800ms;
}
@keyframes img-animation {
	100% {
		transform: translateX(100%);
	}
}

/* リキャプチャ */
.grecaptcha-badge{
	margin-bottom: 18vw;
}