@charset "utf-8";
@viewport {
	zoom: 1.0; width: extend-to-zoom;
}
* {
	margin:0; padding:0;
	-webkit-margin-before:0; -webkit-margin-after:0; -webkit-margin-start:0; -webkit-margin-end:0;
	-webkit-padding-before:0; -webkit-padding-after:0; -webkit-padding-start:0; -webkit-padding-end:0;
	-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
	-moz-box-sizing: border-box; -webkit-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box;
}
section::after, header::after, div::after, ul::after, dl::after {
	content: "";
	display: block;
	clear: both;
}
::-moz-selection {
	color: #fff;
	background: #e3007f;
}
::selection {
  color: #fff;
  background: #e3007f;
}
html, body {
	margin:0; padding:0;
	width:100%; max-width:100%;
	overflow-x: hidden;
}
body {
	font-family: 'Meiryo', 'Osaka', 'MS Gothic', 'Arial', 'Helvetica', sans-serif;
	font-size: 14px;
	line-height: 1.8;
	color: #33405A;
	background: #F7F7F5;
}
img {
	image-rendering: crisp-edges;
	max-width: 100%;
}

/* リンク */
a {
	color: #33405A;
	text-decoration: none;
	transition: all 0.2s ease;
}
@media screen and (min-width:1030px) {
	a:hover {
		color: #33405A;
		text-decoration: underline;
		transition: all 0.2s ease;
	}
}
a img {
	zoom: 1;
	filter: alpha(opacity=100);
	opacity: 1;
	-webkit-transition: opacity .2s ease-in-out;
	-moz-transition: opacity .2s ease-in-out;
	-ms-transition: opacity .2s ease-in-out;
	-o-transition: opacity .2s ease-in-out;
	transition: opacity .2s ease-in-out;
	transform: translateX(0);
	-webkit-transform: translateX(0);
	filter: blur(0);
	-webkit-filter: blur(0);
}
a:hover img {
	zoom: 1;
	filter: alpha(opacity=80);
	opacity: 0.8;
	-webkit-transition: opacity .2s ease-in-out;
	-moz-transition: opacity .2s ease-in-out;
	-ms-transition: opacity .2s ease-in-out;
	-o-transition: opacity .2s ease-in-out;
	transition: opacity .2s ease-in-out;
	transform: translateX(0);
	-webkit-transform: translateX(0);
	filter: blur(0);
	-webkit-filter: blur(0);
}
.btn {
	display: inline-block;
	background: #33405A;
	color: #fff;
	padding: 12px;
	text-align: center;
	min-width: 200px;
	transition: all 0.2s;
}
@media screen and (min-width:1030px) {
	.btn:hover {
		background: #4f5d79;
		color: #fff;
		text-decoration: none;
	}
}

.anchor {
	display: block;
	background: #f0f;
	height: 10px;
	position: absolute;
	top: -42px;
}

/* 見出し */
h1, h2, h3, h4, h5, h6 {
	font-weight: normal;
	font-size: 1em;
}
h2.sect_head {
	margin: 18px 0 42px;
	text-align: center;
	color: #33405A;
	/* font-family: 'Barlow Semi Condensed', sans-serif; */
	font-family: 'Barlow Condensed', sans-serif;
	font-size: 3em;
	line-height: 1;
	font-weight: normal;
	letter-spacing: 0.4em;
}
h2.page_head {
	font-size: 2em;
	line-height: 1;
	margin: 0 0 18px;
}
@media screen and (max-width:768px) {
	h2.sect_head {
		letter-spacing: 0.2em;
		font-size: 2.5em;
	}
	h2.page_head {
		font-size: 1.4em;
	}
}

/* レイアウト */
section {
	position: relative;
}
#frontpage section {
	margin-bottom: 60px;
}
.container {
	max-width: 966px;
	margin: auto;
	padding: 12px;
	border-radius: 2px;
}
@media screen and (min-width:1030px) {
	.container.p_24 {
		padding: 24px;
	}
}
dl.note {
	margin: 12px 0;
	color: #777;
}
dl.note dt {
  width: 3em;
  float: left;
  clear: left;
}
dl.note dd {
	margin: 0 0 3px;
	margin-left: 3em;
}

/* ヘッダー */
header h1#logo {
	padding: 6px 12px;
}
header h1#logo img {
	height: 48px;
}
header h1#logo,
nav#main_nav,
nav#main_nav ul li {
	display: inline-block;
}
nav#main_nav {
	float: right;
}
nav#main_nav ul {
	padding: 0 12px;
}
nav#main_nav ul li a {
	display: block;
	padding: 0 12px;
	line-height: 68px;
}
nav#main_nav ul li a:hover {
	color: #e3007f;
	text-decoration: none;
}

@media screen and (max-width:768px) {
	nav#main_nav ul {
		padding: 0;
	}
	nav#main_nav ul li a {
		padding: 0 12px;
	}
}
@media screen and (max-width:480px) {
	header h1#logo {
		padding: 6px 0 0 6px;
	}
	header h1#logo img {
		height: 36px;
	}
	nav#main_nav ul li a {
		line-height: 36px;
		padding: 6px;
	}
}
@media screen and (max-width:400px) {
	header h1#logo {
		padding: 6px 0 0 6px;
	}
	header h1#logo img {
		height: 36px;
	}
	nav#main_nav {
		width: 60%;
		float: right;
	}
	nav#main_nav ul li {
		width: 48%;
		text-align: center;
	}
	nav#main_nav ul li a {
		line-height: 0;
		padding: 6px;
		font-size: 11px;
		text-transform: uppercase;
	}
}


/* フロント */
#front_header {
	display: block;
	width: 100%;
	padding: 60px 0;
	position: relative;
	background: url("../img/header_img.jpg") no-repeat;
	background-position: left 450px center;
	background-size: 90% auto;
	margin: 0 0 60px;
}
#front_header h2 {
	text-align: left;
	margin: 0 0 54px;
}
#front_header h3 {
	font-size: 1.4em;
	letter-spacing: 0.3em;
	font-weight: normal;
	margin: 0 0 18px;
	text-align: left;
}
#front_header .bg_white {
	display: block;
	width: 100%;
	padding: 12px;
}
@media screen and (min-width:768px) {
	#front_header p {
		letter-spacing: 0.2em;
	}
	#front_header .bg_white {
		padding: 60px;
		padding-left: 78px;
		width: 558px;
	}
}
@media screen and (max-width:1030px) {
	#front_header {
		padding: 0;
	}
}
@media screen and (max-width:768px) {
	#front_header {
		padding: 120px 0 0;
		background-position: center top;
		background-size: 100%;
	}
	#front_header h2 {
		margin: 0 0 12px;
		letter-spacing: 0.1em;
	}
}

/* サービス */
#front_service {
	max-width: 1600px;
	margin-left: auto;
	margin-right: auto;
}
.service_box {
	padding: 0 12px;
	margin: 0 0 12px;
}
.service_box h3 {
	font-size: 1.4em;
	text-align: center;
	margin: 30px 0 18px;
}
.service_box p {
	min-height: 5em;
	margin: 0;
}
.service_box h4 {
	background: url("../img/icon.png") no-repeat center left;
	background-size: auto auto;
	padding: 0 0 0 42px;
	margin: 0 0 18px;
	line-height: 30px;
	color: #d8d8d3;
	letter-spacing: 0.3em;
	font-size: 2em;
	font-weight: normal;
	font-family: 'Barlow Condensed', sans-serif;
}
.service_box .content {
	background: #fff;
	padding: 30px;
}
@media screen and (min-width:900px) {
	.service_box {
		float: left;
		width: 33.33%;
	}
}
@media screen and (max-width:768px) {
	.service_box h4 {
		letter-spacing: 0.2em;
		font-size: 20px;
	}
	.service_box .content {
		padding: 12px;
	}
}

/* 会社要項 */
dl.dl_basic {
	margin: 30px 0;
}
@media screen and (min-width:769px) {
	dl.dl_basic {
		-webkit-columns: 2;
		-moz-columns: 2;
		columns: 2;
		-webkit-column-gap: 42px;
		-moz-column-gap: 42px;
		column-gap: 42px;
	}
}
@media screen and (max-width:768px) {
	dl.dl_basic .breaker {
		display: none;
	}
}
dl.dl_basic > * {
	display: inline-block;
	vertical-align: top;
	float: left;
	margin: 0 0 30px;
}
dl.dl_basic dt {
	clear: both;
	width: 8em;
}
dl.dl_basic dd {
	color: #656C7A;
	width: calc(100% - 8em);
}

/* 地図 */
.map {
	width: 100%;
	margin: 0 0 60px;
}
.map_wrap {
	position: relative;
	height: 0;
	padding: 0 0 60%;
	margin: 0 0 30px;
}
.map iframe {
	position: absolute;
	top: 0; right: 0; bottom: 0; right: 0;
	margin: auto;
	height: 100%; width: 100%;
}

/* スライダー */
button {
	border: none;
	-webkit-appearance: none;
	background: none;
	outline: none;
}
button:hover {
	cursor: pointer;
}

button.slick-next,
button.slick-prev {
	position: absolute;
	top: 0; bottom: 0;
	margin: auto;
	font-size: 0;
	width: 45px;
}
button.slick-prev { left: -12px; }
button.slick-next { right: -12px; }
button.slick-next::after,
button.slick-prev::after {
	content: "";
	display: inline-block;
	width: 20px; height: 20px;
	border: 2px solid #DFDFD7;
	border-bottom: none;
	transition: all 0.2s;
}
button.slick-prev::after {
	transform: rotate(-45deg);
	border-right: none;
}
button.slick-next::after {
	transform: rotate(45deg);
	border-left: none;
}
@media screen and (min-width:1030px) {
	button.slick-next:hover::after,
	button.slick-prev:hover::after {
		border-color: #e3007f;
	}
}
ul.slider {
	width: 100%;
	position: relative;
}
ul.slider li {
	position: relative;
	text-align: center;
	height: 120px;
}
ul.slider li img {
	display: block;
	margin: auto;
	max-width: 90%;
	max-height: 100%;
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;
}
ul.slick-dots {
	list-style-type: none;
	text-align: center;
	position: absolute;
	bottom: -30px;
	width: 100%;
}
ul.slick-dots li {
	display: inline-block;
	width: 20px; height: 20px;
	margin: 0 12px;
	line-height: 0;
	border: 2px solid #0dd;
	border-radius: 20px;
	text-align: center;
	list-style-type: none;
}
ul.slick-dots li.slick-active {
	background: #0dd;
}

/* お問い合わせ */
#front_contact h3 {
	font-size: 1.4em;
	margin: 0 0 18px;
}
@media screen and (max-width:600px) {
	#front_contact .container {
		max-width: 320px;
		padding: 18px;
		border: 1px solid #DFDFD7;
	}
	#front_contact .btn {
		display: block;
	}
}






/* プライバシーポリシー */
.format section {
	margin: 0 0 30px;
	text-align: justify;
}
.format h4 {
	color: #fff;
	background: #33405A;
	padding: 3px 12px; margin: 0 0 12px;
	border-radius: 2px;
}
.format ul,
.format ol {
	padding-left: 1.5em;
}


/* 最上へ戻る */
.top-btn {
	display: block;
}
.top-btn span {
	padding: 18px 12px 12px;
	display: block;
	text-align: center;
}
.top-btn span::after {
	content: "";
	display: inline-block;
	width: 24px; height: 24px;
	border: 2px solid #656C7A;
	border-right: none;
	border-bottom: none;
	transform: rotate(45deg);
	transition: all 0.3s;
}
.top-btn:hover span::after {
	border-color: #33405A;
}
@media screen and (min-width:768px) {
	.top-btn {
		opacity: 0;
		width: 60px; height: 60px;
		position: fixed;
		bottom: 0; right: 12px;
		z-index: 10;
		transition: all 0.3s;
	}
	.top-btn.visible {
		opacity: 1;
	}
}


/* フッター */
footer {
	text-align: center;
	padding: 60px 0;
	font-size: 0;
	line-height: 0;
	color: #4f5d79;
}
footer ul {
	margin: 0 0 42px;
}
footer ul li {
	font-size: 14px;
	line-height: normal;
	display: inline-block;
	position: relative;
}
footer ul li::after {
	content: "";
	border-right: 1px solid #33405A;
	height: 14px; width: 0;
	position: absolute;
	right: 0; top: 0; bottom: 0;
	margin: auto;
}
footer ul li:last-child::after {
	display: none;
}
footer ul li a {
	display: block;
	padding: 12px;
}
footer small {
	font-size: 11px;
	letter-spacing: 0.05em;
}
.helvetica {
  font-family: helvetica;
  font-size: 12px;
}

.lighter { color: #656C7A; }
.mb_12 { margin-bottom: 12px; }
.mb_30 { margin-bottom: 30px; }
center { text-align: center; }
.break, em { font-style: normal; display: inline-block; }
.bg_white { background: #fff; }
