/**
 * 全体
----------------------------------------------------------------*/
body{
	font-size:14px;
	line-height:1.6;
	font-family:"Helvetica Neue", HelveticaNeue, "Segoe UI", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
a{
	transition:color .2s;
	color:rgb(0,147,170,1);
}
a.hover{ color:rgb(60,60,60,1); }
p{ text-align:justify; }
table{ width:100%; }
img{ display:block; max-width:100%; margin:0 auto; }
strong{
	font-weight:bold;
	font-size:20px;
	line-height:30px;
}
.c{ text-align:center; }
.r{ text-align:right; }
.j{ text-align:justify; }
@media screen and (max-width: 768px){
	img{
		max-width:100%;
		height:auto;
	}
	.spmargin{
		margin-left:20px !important;
		margin-right:20px !important;
	}
}

/**
 * プロトタイプ
----------------------------------------------------------------*/
/* 分岐 */
.sp,
.spinline{ display:none; }
@media screen and (max-width: 768px){
	.pc{ display:none; }
	.sp{ display:block; }
	.spinline{ display:inline-block; }
}

/* 汎用バナー */
.banners{
	padding:40px;
	text-align:center;
}
.banner{
	display:inline-block;
	transition:opacity .2s;
}
.banner.hover{ opacity:.6; }
@media screen and (max-width: 768px){
	.banners{ padding:40px 20px; }
}

/* 汎用ボタン */
.buttons{
	padding:40px;
	text-align:center;
}
.button{
	background:rgb(0,147,170,1);
	color:white;
	font-size:22px;
	padding:15px 20px;
	display:inline-block;
	text-align:center;
	max-width:280px;
	margin:20px 10px;
	letter-spacing:.1em;
	box-sizing:border-box;
	transition:background .2s, box-shadow .2s;
}
.button.min{
	font-size:16px;
	padding:10px;
}
.button.hover{
	color:white;
	background:rgb(0,147,170,1);
	box-shadow:0 0 10px 2px rgb(0,147,170,1);
}
@media screen and (max-width: 768px){
	.button{
		font-size:16px;
		padding:10px 20px;
	}
	.button.min{ display:block; }
}

/* テーブル1 */
table.type1{ width:100%; }
table.type1,
table.type1 th,
table.type1 td{
	border-top:1px solid rgb(60,60,60,1);
	padding:10px;
}
table.type1 th{
	padding-left:20px;
	font-weight:bold;
	text-align:right;
	min-width:130px;
}
table.type1 td{ padding-right:20px; }
table.type1 tr:last-child > *{ border-bottom:1px solid rgb(60,60,60,1); }

/* GoogleMaps */
.gm > iframe{ height:500px; }

/**
 * レイアウト
----------------------------------------------------------------*/
.smargin{ padding:20px; }
.pmargin{ padding:40px; }
.vmargin{ padding:80px 0; }
.bmargin{ padding-bottom:80px; }
.tmargin{ padding-top:80px; }
.base{
	max-width:1024px;
	margin:0 auto;
}
.gap{
	padding-right:40px;
	padding-left:40px;
}
@media screen and (max-width: 768px){
	.gap{
		padding-right:20px;
		padding-left:20px;
	}
	.smart{
		max-width:512px;
		margin:0 auto;
	}
}
@media screen and (max-width: 480px){
	.flex.around{ margin:20px 0; }
}

/**
 * フォーム
----------------------------------------------------------------*/






/* すべて */
.form,
.form input,
.form textarea,
.form button,
.form select,
.form optgroup,
.form option{
	font-size:18px;
	line-height:1.6;
	font-family:inherit;
}

/* 入力系 */
.form input[type="text"],
.form input[type="search"],
.form input[type="tel"],
.form input[type="url"],
.form input[type="email"],
.form input[type="password"],
.form input[type="datetime"],
.form input[type="date"],
.form input[type="month"],
.form input[type="week"],
.form input[type="time"],
.form input[type="datatime-local"],
.form input[type="number"],
.form textarea{
	border:1px solid black;
	width:300px;
	min-width:40px;
	border-radius:4px;
padding:8px 4px;
display:inline-block;
margin:4px;
box-sizing:border-box;
transition:box-shadow .2s, background .2s;
}

/* ボタン系 */
.form input[type="submit"],
.form input[type="reset"],
.form input[type="button"],
.form button{
	border:0;
	background:rgb(0,147,170,1);
	color:white;
	text-align:center;
	min-width:100px;
	border-radius:4px;
padding:8px 4px;
display:inline-block;
margin:4px;
box-sizing:border-box;
transition:box-shadow .2s, background .2s;
	margin:40px;
	border-radius:6px;
	font-size:22px;
	padding:8px 30px;
	min-width:200px;
	-webkit-appearance:none;
}

/* ラジオボタン */
.form .radio > input[type="radio"]{ display:none; }
.form .radio > input[type="radio"] + span{
	background:rgb(0,147,170,1);
	color:white;
	text-align:center;
	min-width:100px;
	border-radius:4px;
padding:8px 4px;
display:inline-block;
margin:4px;
box-sizing:border-box;
transition:box-shadow .2s, background .2s;
}

/* フォーカス */
.form input[type="text"]:focus,
.form input[type="search"]:focus,
.form input[type="tel"]:focus,
.form input[type="url"]:focus,
.form input[type="email"]:focus,
.form input[type="password"]:focus,
.form input[type="datetime"]:focus,
.form input[type="date"]:focus,
.form input[type="month"]:focus,
.form input[type="week"]:focus,
.form input[type="time"]:focus,
.form input[type="datatime-local"]:focus,
.form input[type="number"]:focus,
.form textarea:focus,
.form input[type="submit"].hover,
.form input[type="reset"].hover,
.form input[type="button"].hover,
.form button.hover,
.form .radio > input[type="radio"]:focus + span,
.form .radio > input[type="radio"]:checked + span{
	box-shadow:0 0 10px 6px rgb(0,147,170,1);
}
.form .radio.hover > input[type="radio"] + span,
.form .radio > input[type="radio"]:checked + span{
	background:rgb(0,147,170,1);
}

/* フォーム */
.form{ text-align:center; }
.form .label{
	padding:16px 0 16px 240px;
	border-top:1px solid #ccc;
	position:relative;
	display:flex;
	align-items:center;
	text-align:left;
}
.form .label:last-of-type{ border-bottom:1px solid #ccc; }
.form .label::before{
	content:'任意';
	background:skyblue;
	color:white;
	display:inline-block;
	padding:2px 10px;
	height:20px;
	font-size:70%;
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	margin:auto 0;
}
.form .label.req::before{
	content:'必須';
	background:crimson;
}
.form .label > span{
	font-weight:bold;
	width:160px;
	display:inline-block;
	position:absolute;
	height:28.8px;
	top:0;
	bottom:0;
	left:60px;
	margin:auto 0;
}
.form textarea{ width:100%; }
@media screen and (max-width: 768px){
	.form .label{
		display:block;
		padding:80px 0 40px;
	}
	.form .label::before{
		top:40px;
		margin-top:4.4px;
		bottom:auto;
	}
	.form .label > span{
		top:40px;
		bottom:auto;
	}
	.form input[type="text"],
.form input[type="search"],
.form input[type="tel"],
.form input[type="url"],
.form input[type="email"],
.form input[type="password"],
.form input[type="datetime"],
.form input[type="date"],
.form input[type="month"],
.form input[type="week"],
.form input[type="time"],
.form input[type="datatime-local"],
.form input[type="number"],
.form textarea{
		width:100%;
		margin:4px 0;
	}
	.form input[type="submit"],
.form input[type="reset"],
.form input[type="button"],
.form button{
		margin:40px 0;
		font-size:16px;
		font-weight:bold;
		padding:8px 10px;
		min-width:auto;
		width:100%;
		display:block;
	}
}















