@charset "utf-8";

/*===cariier===cariier===cariier===
...................................

-------------------------- SP ONLY

...................................
===cariier===cariier===cariier===*/


@media screen and (max-width: 599px) {
	.pc_only,
	.pctb_only,
	.sp_none,
	.tb_only {
		display: none !important;
	}
	html {
		font-size: 2vw;
	}
	.inner02,
	.inner,
	.sp_inner,
	#tinymce,
	.w_inner,
	.w_inner02 {
		width: 86vw;
		margin-left: 5vw;
		margin-right: 5vw;
	}
	.mtll {
		margin-top: 15vw !important;
	}
	.mbll {
		margin-bottom: 15vw !important;
	}
	.ptll {
		padding-top: 15vw !important;
	}
	.pbll {
		padding-bottom: 15vw !important;
	}
	.mtl {
		margin-top: 13vw !important;
	}
	.mbl {
		margin-bottom: 13vw !important;
	}
	.ptl {
		padding-top: 13vw !important;
	}
	.pbl {
		padding-bottom: 13vw !important;
	}
	.mtml {
		margin-top: 10vw !important;
	}
	.mbml {
		margin-bottom: 10vw !important;
	}
	.ptml {
		padding-top: 10vw !important;
	}
	.pbml {
		padding-bottom: 10vw !important;
	}
	.mtm {
		margin-top: 8vw !important;
	}
	.mbm {
		margin-bottom: 8vw !important;
	}
	.ptm {
		padding-top: 8vw !important;
	}
	.pbm {
		padding-bottom: 8vw !important;
	}
	.mtms {
		margin-top: 5vw !important;
	}
	.mbms {
		margin-bottom: 5vw !important;
	}
	.ptms {
		padding-top: 5vw !important;
	}
	.pbms {
		padding-bottom: 5vw !important;
	}
	.mts {
		margin-top: 3vw !important;
	}
	.mbs {
		margin-bottom: 3vw !important;
	}
	.pts {
		padding-top: 3vw !important;
	}
	.pbs {
		padding-bottom: 3vw !important;
	}
	.mtss {
		margin-top: 1vw !important;
	}
	.mbss {
		margin-bottom: 1vw !important;
	}
	.ptss {
		padding-top: 1vw !important;
	}
	.pbss {
		padding-bottom: 1vw !important;
	}
	header {
		position: fixed;
	}
	header .logo a img {
		max-width: 180px;
		width: auto;
	}
	header .sp_menu_wrap {
		z-index: 1001;
	}
	header .fix_con {
		order: 1;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		width: 40px;
	}
	header .fix_con a {
		display: block;
		width: 40px;
		height: 40px;
		position: relative;
		background: #222;
		text-indent: 100%;
		white-space: nowrap;
		overflow: hidden;
		display: inline-block;
	}
	header .fix_con a:before {
		position: absolute;
		content: "";
		background: url(../images/h_mail.svg) center center no-repeat;
		width: 30px;
		height: 30px;
		top: 50%;
		left: 50%;
		-webkit-transform: translate(-50%, -50%);
		transform: translate(-50%, -50%);
	}
	header nav {
		z-index: 1000;
		display: none;
		background: #14375C;
		position: fixed;
		top: 60px;
		left: 0;
		width: 100%;
		max-height: calc(100vh - 60px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	header nav a {
		text-decoration: none;
		position: relative;
		display: block;
		padding-left: 1em;
		font-size: 1.5em;
		letter-spacing: 0.1em;
	}
	header nav a span {
		display: none;
	}
	header .sp_menu_wrap a:after,
	header .sp_menu_wrap a span:before,
	header .sp_menu_wrap a:before {
		transition: 0.3s ease;
	}
	header .sp_menu_wrap.on a:before {
		-webkit-transform: rotate(-45deg);
		transform: rotate(-45deg);
		top: 10px;
	}
	header .sp_menu_wrap.on a:after {
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
		bottom: 8px;
	}
	header .sp_menu_wrap.on a span:before {
		opacity: 0;
	}
	nav .h_nav > li {
		border-bottom: 1px solid #fff;
		position: relative;
	}
	nav .h_nav > li.has_child {
		background: #2b5786;
	}
	nav .h_nav li > .has_child_btn,
	nav .h_nav > li > a {
		padding: 3vw 9vw 3vw 5vw;
		display: block;
		position: relative;
		color: #ffffff;
		text-decoration: none;
		font-size: 2.3rem;
	}
	nav .h_nav > .has_child > a:before {
		border-top: 2px solid #ffffff;
		border-right: 2px solid #ffffff;
		position: absolute;
		top: 50%;
		right: 5vw;
		-webkit-transform: translate(-50%, -50%) rotate(135deg);
		transform: translate(-50%, -50%) rotate(135deg);
		content: "";
		width: 3vw;
		height: 3vw;
		transition: 0.3s;
	}
	nav .h_nav > .has_child > a.on:before {
		-webkit-transform: translate(-50%, -50%) rotate(-45deg);
		transform: translate(-50%, -50%) rotate(-45deg);
		transition: 0.3s;
	}
	nav .h_nav li > .has_child_btn {
		background: #8fb80f;
	}
	nav .h_nav li > .has_child_btn:before,
	nav .h_nav li > .has_child_btn:after {
		position: absolute;
		top: 50%;
		right: 5.2vw;
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
		content: "";
		width: 3vw;
		height: 2px;
		background: #ffffff;
		display: block;
		border-radius: 2px;
		transition: transform 0.5s ease;
	}
	nav .h_nav li > .has_child_btn:after {
		-webkit-transform: translateY(-50%) rotate(90deg);
		transform: translateY(-50%) rotate(90deg);
	}
	nav .h_nav li li {
		border-top: 1px solid #fff;
		font-size: 90%;
	}
	nav .h_nav li li a {
		color: #14375C;
		padding: 2vw 1em;
	}
	nav .h_nav > .has_child > ul > li > a {
		background: #ec8cb6;
		padding: 2.5vw 5vw;
		display: block;
		position: relative;
		color: #fff;
		font-size: 1.6rem;
	}
	nav .h_nav li.on > .has_child_btn:after {
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
	}
	.sub_menu_block {
		display: none;
		background: #8cb2da;
	}
	.nav_tel {
		padding: 3vw 5vw 5vw;
		text-align: center;
		background: #f6c9dd;
		letter-spacing: 0.1em;
	}
	.sp_only.nav_tel .tel {
		display: inline-block;
		color: #883244;
	}
	.nav_tel .tel .tel_link {
		padding-left: 1vw;
		position: relative;
		display: inline-block;
	}
	.nav_tel .tel .tel_link:before {
		background: url(../images/h_tel_black.svg) left center no-repeat;
		position: absolute;
		content: "";
		width: 4vw;
		height: 100%;
		left: 0;
		top: 0;
		background-size: contain;
	}
	.nav_tel .tel .tel_link a {
		font-size: 5.1vw;
		letter-spacing: 0.1em;
		color: #111;
	}
	.mv_area {
		padding-top: 60px;
	}
	.slick-track {
		width: 1050vw !important;
	}
	.slick-initialized .slick-slide {
		width: 150vw !important;
	}
	.message_inner {
		width: 90vw;
		margin-left: 5vw;
		margin-right: 5vw;
	}
	.sp_fix {
		position: fixed;
		width: 100%;
		bottom: 0;
		left: 0;
		-webkit-transform: translateY(100%);
		transform: translateY(100%);
		display: flex;
		z-index: 10000;
		transition: 0s;
	}
	
	.sp_fix.dom_loaded {
		transition: 0.7s;
	}

	.sp_fix p {
		width: 50%;
	}

	.sp_fix02 p {
		width: auto;
	}
	.sp_fix .tel,
	.sp_fix .form {
		flex: 1 1 0%;
	}
	.sp_fix02 .mail {
		width: 11.7%;
		background:#2897BC;
	}
	.sp_fix .form {
		background: #000;
	}
	.sp_fix .tel {
		background: #14375C;
	}

	.sp_fix a {
		width: 100%;
		height: 100%;
		display: flex;
		text-decoration: none;
		justify-content: center;
		align-items: center;
	}
	.sp_fix a span {
		position: relative;
		display: block;
		color: #fff;
		padding: 1.5vw 0 1.8vw 8.5vw;
		font-size: 4.5vw;
    }

    .sp_fix .tel span {
    	font-size: 4.3vw;
    	font-weight: 400;
    }

    .sp_fix a span:before {
    	content: '';
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 7vw;
        height: 100%;
    }

    .sp_fix .form span:before {
    	background: url(../images/h_mail.svg) center center no-repeat;
    	background-size: 7vw auto;
    }

    .sp_fix .tel span:before {
    	background: url(../images/h_tel.svg) center center no-repeat;
    	background-size: 6vw auto;
    }

	.sp_appear {
		-webkit-transform: translateY(0);
		transform: translateY(0);
	}
}


/*===cariier===cariier===cariier===
...................................

-------------------------- PC ONLY

...................................
===cariier===cariier===cariier===*/


@media screen and (min-width:1121px),
print {
	.inner02 {
		padding: 0 70px;
		margin: 0 auto;
	}
	.pc_none,
	.pctb_none,
	.sp_only,
	.tb_only {
		display: none !important;
	}
	a,
	.form_btn_block input[type="submit"],
	.form_btn_block .submit_btn {
		text-decoration: none;
		opacity: 1;
		transition: 0.5s ease;
		-webkit-transition: 0.5s ease;
	}
	a.sa.show:hover,
	a:hover,
	.form_btn_block input[type="submit"]:hover,
	.form_btn_block .submit_btn:hover {
		text-decoration: none;
		opacity: 0.7;
		transition: 0.5s ease;
		-webkit-transition: 0.5s ease;
	}
}

@media screen and (min-width:600px) and (max-width:1330px) {
	.inner {
		padding: 0 15px;
	}
}

@media screen and (min-width:600px) and (max-width:1200px),
print {
	header nav .h_nav > li > a {
		padding: 0 15px;
		font-size: 1.4rem;
	}
	header nav .tel {
		padding-right: 5px;
		width: 180px;
		font-size: 1.6rem;
	}
}


/*===cariier===cariier===cariier===
...................................

-------------------------- TB ONLY

...................................
===cariier===cariier===cariier===*/


@media screen and (min-width:600px) and ( max-width:1120px) {
	.inner02 {
		padding: 0 40px;
	}
	.pc_only,
	.pctb_none,
	.sp_only,
	.tb_none {
		display: none !important;
	}
	html {
		overflow: scroll;
	}
	.scroll_btn a {
		padding: 0 20px 0 10px;
	}
	.side_text_ttl {
		width: 190px;
	}
	.concept_list_body {
		padding: 30px;
	}
	.message_desc {
		padding: 60px 50px;
		margin-left: 380px;
	}
	
	.top_message .btn_wrap {
		margin-left: 380px;
	}
	.message_img {
		width: 440px;
	}
	.news_ttl {
		padding-top: 0;
	}
	.top_news_area .top_contact {
		padding: 50px 35px;
	}
	header .nav_contact {
		width: 170px;
	}
}