/* リセット
-------------------------------------------------------------- */
* {
	box-sizing: border-box;
}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	vertical-align: baseline;
}

body {
    font-family: "Helvetica Neue", Helvetica, Arial, "Droid Sans", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
/*	font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;; */
	line-height: 1;
	font-size: 14px;
	color: #111;
	height: 100%;
}
ol,
ul {
	list-style: none;
}
blockquote,
q {
	quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
caption,
th,
td {
	font-weight: normal;
	text-align: left;
}
h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
	font-weight: normal;
}
html {
	font-size: 100%;
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	height: 100%;
	background: #fff;
}

a:focus {
	outline: none;
}

a {
	color: #5a87d2;
    text-decoration: none;
}

a:hover {
	color: #f05a69;
    text-decoration: none;
}

footer,
header {
	display: block;
}

img {
	border: 0;
	-ms-interpolation-mode: bicubic;
}

select {
	border:1px solid #e0e0e0;
	padding: 3px;
	border-radius: 4px;
}

form {
	display: inline;
}

/*
-------------------------------------------------------------- */

/* Clearing floats */
.clear:after,
#body:after {
	clear: both;
}
.clear:before,
.clear:after,
#body:before,
#body:after {
	display: block;
	content: "";
}

/* 共通
-------------------------------------------------------------- */
#content{
	margin: 0 auto;
	padding: 0 5px;
	position: relative;
/*	width: 1240px; */
}

header{
	width: 100%;
	padding: 20px 0 40px 0;
	font-size: 16px;
}

footer{
	padding: 40px;
	text-align: center;
}

section{
}

@media screen and (min-width:640px) {
	#content{
		padding: 0 30px;
	}
}

/* top
-------------------------------------------------------------- */
.top{
	display: flex;
	flex-wrap: wrap;
	margin: 20px 0;
}

.top > div{
	width: 100%;
}

.top h2{
	font-size: 48px;
}

.top h2 span{
	display: block;
}

.top .sub-title{
	margin-top: 20px;
	text-align: left;
	font-size: 16px;
}

@media screen and (min-width:640px) {

	.top h2{
		font-size: 7vw;
	}

	.top .sub-title{
		margin-top: -12%;
		text-align: right;
	}

}

/* メニュー
-------------------------------------------------------------- */
.menu{
	margin: 20px 0;
}

.menu ul {
    display: block;
}

.menu li {
	width: 100%;
    height: 150px;
    overflow: hidden;
    margin-bottom: 10px;
}

.menu li img{
    width: 100%;
	height: 100%;
	object-fit: cover;
}
.menu li:hover img {
    width: 100%;
}

.menu li.active {
    height: 60vh;
}

@media screen and (min-width:640px) {

	.menu ul {
	    display: -webkit-flex;
	    display: flex;
	    justify-content: space-between;
	}

	.menu li {
	    width: 23%;
		height: 530px;
	    -webkit-transition: width 0.3s ease-out;
	    transition: width 0.3s ease-out;
	}

	.menu li.active {
	    width: 50%;
		height: 530px;
	}

}


/* about
-------------------------------------------------------------- */
.about{
	margin: 80px 0;
	padding: 0;
}

.about .description{
	display: flex;
}

.about .description > div{
	width: 50%;
}

.about .description .left{
	display: flex;
	justify-content: space-around;
	flex-direction: row-reverse;
	padding: 20px;
}

.about .description .left span{
	writing-mode: vertical-rl;
	font-size: 32px;
	font-weight: bold;
	line-height: 110%;
}

.about .description .right{
	padding: 20px;
}

.about .description .right p{
	font-size: 1rem;
	font-weight: bold;
	line-height: 180%;
}

@media screen and (min-width:640px) {

	.about{
		margin: 80px 0;
		padding: 0 160px;
	}

	.about .description > div{
		min-width: 250px;
	}

	.about .description .left{
		display: flex;
		justify-content: space-around;
		flex-direction: row-reverse;
		padding: 0 70px;
	}

	.about .description .left span{
		writing-mode: vertical-rl;
		font-size: 48px;
		font-weight: bold;
		text-align: center;
		line-height: 110%;
	}

	.about .description .right{
		padding: 80px 0;
	}

	.about .description .right p{
		font-size: 1.03rem;
		font-weight: bold;
		line-height: 240%;
	}

}

/* service
-------------------------------------------------------------- */
.service{
	margin: 20px 0;
}

.service .description{
}

.service .description .left{
	padding: 10px;
}

.service .description .left h3{
	margin: 20px 0;
	font-size: 24px;
	font-weight: bold;
	line-height: 140%;
}

.service .description .sub_description{
	font-size: 1rem;
	line-height: 180%;
}

.service .description .right{
	padding: 10px 0;
}

.service img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media screen and (min-width:640px) {

	.service .description{
		display: flex;
	}

	.service .description > div{
		width: 50%;
	}

	.service .description .left{
		padding: 50px 20px;
	}

	.service .description .left h3{
		font-size: 3.2vw;
	}

	.service .description .sub_description{
		font-size: 1.03rem;
		line-height: 200%;
	}

	.service .description .right{
		padding: 40px 0;
	}

}

/* info
-------------------------------------------------------------- */
.info{
	margin: 20px 0;
}

.info table{
	margin: 30px auto;
	width: 90%
}

.info table th{
	padding: 15px 0;
	width: 40%;
}

.info table td{
	width: 60%;
}

.info table td p{
	height: 20px;
}

@media screen and (min-width:640px) {

	.info > div{
		display: flex;
		justify-content: flex-end;
	}

	.info table{
		margin: 30px 0;
		width: 50%;
	}
}
