/** ------------------------------
 * Reset CSSリセット
 *
 * ------------------------------
 *

 * html5doctor.com Reset v1.6.1 (http://html5doctor.com/html-5-reset-stylesheet/) - http://cssreset.com */
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}
body{line-height:1;-webkit-text-size-adjust: 100%;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
ul{list-style:none}
blockquote,q{quotes:none}
blockquote:before,blockquote:after,q:before,q:after{content:none}
a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}
ins{background-color:#ff9;color:#000;text-decoration:none}
mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold}
del{text-decoration:line-through}
abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}
table{border-collapse:collapse;border-spacing:0}
hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}
input,select{vertical-align:middle}


/* ------------------------------
 * Style
 *
 * ------------------------------
 */

* {
	box-sizing: border-box;
}

html {
  font-size: 62.5%; /* 10px */
  overflow-y:scroll;
}
body {
  padding-top: 60px;
  overflow: hidden;
  background: #fff;
  text-align: center;
  font-family: YuGothic, "游ゴシック", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic", Meiryo, sans-serif;
  font-weight: 300;
  font-size: 1.6rem;
  line-height: 1.9;
  color: #888;
  width: 100%;
  -webkit-text-size-adjust: 100% !important;
  border-left: 20px solid #000;
}
@media (max-width: 767px) {
	body {
		border-width: 10px;
	}
}
img {
	max-width: 100%;
}
h1, h2, h3, h4, h5 {
	font-weight: normal;
}
::placeholder {
  color: #ddd;
  font-weight: normal;
}

@media (min-width: 768px) {
	body::before {
		content: "";
		position: fixed;
		z-index: -1;
		top: 25px;
		bottom: 20px;
		right: 20px;
		width: calc(40% - 20px);
		background: url(../img/bg.jpg) no-repeat center center / cover;
	}
}

.container, main {
	margin: 0 auto;
	max-width: 700px;
	text-align: left;
}

@media (min-width: 768px) {
	main {
		margin-right: 40%;
		width: 60%;
		padding-right: 5rem;
		padding-left: 5rem;
	}
}

#header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	padding-top: 15px;
	padding-left: 20px;
	border-top: 5px solid #000;
	vertical-align: middle;
	background: transparent;
}
#header #logo {
	display: block;
	margin: 0 20px;
	float: left;
	transition: .2s;
}
#header #logo:hover {
	opacity: 0.5;
}
#header > .inner, #footer > .inner {
	max-width: 1200px;
	margin: 0 auto;
}
#gnav {
	float: left;
}
@media (max-width: 767px) {
	#gnav {
		float: right;
		margin-top: 5px;
		margin-right: 10px;
	}
}
.gnav {
	display: flex;
	font-size: 11px;
}
.gnav li {
	position: relative;
	margin: 5px 0 0 20px;
	vertical-align: middle;
}
.gnav li::before {
	content: "";
	display: inline-block;
	margin-right: 0.5em;
	width: .3rem;
	height: .3rem;
	border: solid #aaa;
	border-width: 1px 1px 0 0;
	transform: rotate(45deg);
	vertical-align: middle;
}
.gnav a {
	text-decoration: none;
	color: #333;
	transition: .2s;
}
.gnav a:hover {
	text-decoration: underline;
}

.section-container {
	margin: 12rem auto;
}
.section-container:not(:last-child) {
	padding-bottom: 12rem;
	border-bottom: 1px solid #ddd;
}
@media (max-width: 767px) {
	.section-container {
		margin: 6rem auto;
	}
	.section-container:not(:last-child) {
		padding-bottom: 6rem;
	}
}

.section-container section > p {
	margin-bottom: 1.7em;
}

h2 {
	margin: 8rem 0;
	font-size: 2.8rem;
	letter-spacing: 2px;
	line-height: 1.4;
	color: #333;
}
h2 small {
	font-size: 1.2rem;
	color: #999;
	display: block;
	letter-spacing: 0;
}
@media (max-width: 767px) {
	h2 {
		margin: 4rem 0;
	}
}
h3 {
	margin: 20px 0;
	font-size: 1.8rem;
	border-left: 6px solid #ddd;
	padding-left: 1.8rem;
	line-height: 1.5;
	color: #666;
}

#introduction {
	padding-top: 20vh;
	padding-bottom: 20vh;
	font-size: 8vh;
	color: #000;
	line-height: 1.2;
	font-family: 'Futura', sans-serif;
	text-shadow: 2vh 1.5vh 0 rgba(0,0,0,0.05);
}
@media (max-width: 767px) {
	#introduction {
		background: url(../img/bg.jpg) no-repeat center center / cover;
		text-align: center;
		color: #fff;
	}
}

.flow {
	list-style-type: none;
}
.flow > li {
  counter-increment: item;
}
.flow > li::before {
  content: counter(item)'.';
  padding-right: .5em;
  color: #ccc;
}

.summary dt {
	font-weight: bold;
	color: #666;
	margin-top: 2rem;
}

.declaration {
	list-style-type: none;
}
.declaration > li {
  counter-increment: declaration;
  margin-bottom: 1em;
}
.declaration > li::before {
  content: counter(declaration)'.';
  padding-right: .5em;
  color: #ccc;
}

@media (min-width: 768px) {
	#form-contact {
		border-left: 1px solid #888;
	}
	.form-contact {
		padding-left: 4rem;
	}
}
@media (max-width: 767px) {
	#form-contact {
		padding: 0 2rem;
	}
}

.form-contact > .input + .label {
	margin-top: 4rem;
}
.form-contact > .input {
	position: relative;
	margin: 0;
}
.form-contact > .input input[type='text'],
.form-contact > .input textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 1em;
	padding-left: 4rem;
	border: solid #888;
	border-width: 0 0 1px;
	font-size: inherit;
	transition: 0.3s;
}
.form-contact > .input input[type='text']:focus,
.form-contact > .input textarea:focus {
	border-color: #000;
	outline: none;
}
.form-contact > .input .fa {
	position: absolute;
	top: 1.15em;
	left: .6rem;
	transition: 0.3s;
	color: #999;
	font-size: inherit;
}
.form-contact > .input input[type='text']:focus + .fa,
.form-contact > .input textarea:focus + .fa {
	color: #000;
}

.btn-wrap {
	margin: 4rem auto;
	text-align: right;
}
.btn-form {
	display: inline-block;
	width: 14rem;
	border: none;
	background: #000;
	color: #fff;
	font-size: inherit;
	padding: 0.5em 1em;
	transition: .3s;
	cursor: pointer;
}
.btn-form:hover, .btn-form:focus {
	background: #666;
}


#footer {
	margin-top: 40px;
	border-top: 20px solid #fff;
	background: #000;
	color: #fff;
}
#copyright {
	padding: 1em 0 2em;
	font-size: 1.4rem;
	color: #999;
}

@media screen and (max-width: 1040px) {
	.container, main {
		margin-left: 20px;
		margin-right: 20px;
	}
}
@media screen and (max-width: 640px) {
	body {
		padding-top: 50px;
		line-height: 1.7;
	}
	#header {
		padding-top: 10px;
		height: 35px;
		font-size: 1.2rem;
	}
	#header #logo {
		width: auto;
		height: 20px;
		margin: 0;
	}
	.container, main {
		margin-left: 10px;
		margin-right: 10px;
	}
}