@charset "utf-8";

html {
	overflow-y: scroll;
	-webkit-text-size-adjust: none;
	-webkit-tap-highlight-color: transparent;
	font-size: 62.5%;
}

body {
	margin: 0;
	padding: 0;
	background: #fff;
	color: #000;
	font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', "Yu Gothic Medium", "游ゴシック Medium", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", sans-serif;
	font-size: 1.0rem;
	font-weight: 300;
	line-height: 1.5;
}

article, aside, dialog, figure, footer, header, hgroup, nav, section, main {
	display: block;
}

body, 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, article, aside, dialog, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	vertical-align: baseline;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

address,caption,cite,code,dfn,em,strong,th,var {
	font-weight: normal;
	font-style: normal;
}

ul, ol, li {
	list-style: none;
}

dt {
	font-weight: normal;
}

h1, h2, h3, h4, h5, h6 {
	font-size: inherit;
	font-weight: inherit;
}

hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
	border-top-width: 1px;
	margin: 0;
	clear: both;
	color: inherit;
}

pre {
	font-family: monospace, monospace;
	font-size: inherit;
}

address {
	font-style: inherit;
}

abbr[title] {
	text-decoration: underline dotted;
}

b,
strong {
	font-weight: bolder;
}

code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: inherit;
}

small {
	font-size: 100%;
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

svg,
img,
embed,
object,
iframe {
	vertical-align: bottom;
}

button,
input,
optgroup,
select,
textarea {
	-webkit-appearance: none;
	appearance: none;
	vertical-align: middle;
	color: inherit;
	font: inherit;
	background: transparent;
	padding: 0;
	margin: 0;
	border-radius: 0;
	text-align: inherit;
	text-transform: inherit;
}

[type="checkbox"] {
	-webkit-appearance: checkbox;
	appearance: checkbox;
}

[type="radio"] {
	-webkit-appearance: radio;
	appearance: radio;
}

input:focus,
textarea:focus,
select:focus {
	outline: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
	cursor: pointer;
}

button:disabled,
[type="button"]:disabled,
[type="reset"]:disabled,
[type="submit"]:disabled {
	cursor: default;
}

:-moz-focusring {
	outline: auto;
}

select:disabled {
	opacity: inherit;
}

option {
	padding: 0;
}

fieldset {
	margin: 0;
	padding: 0;
	min-width: 0;
}

legend {
	padding: 0;
}

progress {
	vertical-align: baseline;
}

textarea {
	overflow: auto;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

[type="search"] {
	outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

label[for] {
	cursor: pointer;
}

details {
	display: block;
}

summary {
	display: list-item;
}

[contenteditable]:focus {
	outline: auto;
}

table {
	border-color: inherit;
	border-collapse: collapse;
}

caption {
	text-align: left;
}

td,
th {
	vertical-align: top;
	padding: 0;
}

th {
	text-align: left;
	font-weight: bold;
}

img {
	width: 100%;
	height: auto;
	border-style: none;
	vertical-align: top;
	font-size: 0;
	line-height: 0;
}

a {
	text-decoration: none;
	color: inherit;
	outline: none;
}

a:focus {
	outline: none;
}

a {
	transition-property: opacity;
	transition-duration: 0.5s;
}

a:hover {
	opacity: 0.6;
}

/*----- .clearfix -----*/

.clearfix::after {
	visibility: hidden;
	display: block;
	font-size: 0;
	content: " ";
	clear: both;
	height: 0;
}

.min {
	font-family: 'Hiragino Mincho ProN', 'ヒラギノ明朝 ProN', "Yu Mincho", "游明朝", "ＭＳ Ｐ明朝", serif;
}

.bel {
	font-family: 'Bellefair', serif;
}

.ebg {
	font-family: 'EB Garamond', serif;
}

.container {
	margin: 0 auto;
	width: 80%;
	max-width: 1152px;
	text-align: left;
	z-index: 20;
	position: relative;
}

/*----- header -----*/

header {
	padding: 0 5%;
	width: 100%;
	box-sizing: border-box;
	left: 0;
	top: 0;
	z-index: 999;
	position: fixed;
}

header #headerIn {
	margin: 0 auto;
	padding: 50px 0;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	display: flex;
}

header h1 {
	font-size: 1.2rem;
	font-weight: 300;
	line-height: 1.5;
	text-align: left;
	align-items: center;
	display: flex;
}

header h1 a {
	display: block;
	position: relative;
}

header h1 a::before {
	content: " ";
	width: 100%;
	height: 100%;
	background: url("../img/logo_w.svg") no-repeat left top / 100% auto;
	display: block;
	left: 0;
	top: 0;
	z-index: 1;
	position: absolute;
}

header h1 img {
	width: 250px;
	z-index: 2;
	position: relative;
}

header h1 span {
	margin-left: 54px;
	display: block;
}

header nav ul {
	align-items: center;
	justify-content: flex-end;
	display: flex;
}

header nav ul li {
	font-size: 1.5rem;
	font-weight: 600;
	line-height: 1.8rem;
	letter-spacing: 0.05em;
}

header nav ul li:not(.contact) {
	margin-right: 2em;
}

header nav ul li.contact {
	width: 180px;
	text-align: center;
}

header nav ul li.contact a {
	padding: 12px 0;
	border-radius: 22px;
	display: block;
}

header {
	transition-timing-function: linear;
	transition-duration: 0.2s;
}

header {
	transition-property: background;
}

header {
	background: rgba(255,255,255,0.6);
}

header.hdW  {
	background: none;
}

header h1,
header h1 a::before,
header h1 img {
	transition-timing-function: linear;
	transition-duration: 0.2s;
}

header h1 {
	transition-property: color;
}

header h1 {
	color: #000;
}

header.hdW h1 {
	color: #fff;
}

header h1 a::before,
header h1 img {
	transition-property: opacity;
}

header h1 a::before {
	opacity: 0;
}

header h1 img {
	opacity: 1;
}

header.hdW h1 a::before {
	opacity: 1;
}

header.hdW h1 img {
	opacity: 0;
}

header nav ul li a,
header nav ul li.contact a {
	transition-property: background,border,color,opacity;
}

header nav ul li a {
	color: #000;
}

header nav ul li.contact a {
	border: 1px #000 solid;
	background: #000;
	color: #fff;
	opacity: 1;
}

header nav ul li.contact a:hover {
	background: #fff;
	color: #000;
}

header.hdW nav ul li a {
	color: #fff;
}

header.hdW nav ul li.contact a {
	border: 1px #fff solid;
	background: #fff;
	color: #000;
}

header.hdW nav ul li.contact a:hover {
	background: #000;
	color: #fff;
	opacity: 1;
}

/*----- footer -----*/

footer {
	width: 100%;
	z-index: 90;
	position: relative;
}

footer #footerT {
	background: #F1F3F5;
}

footer #footerContact {
	padding: 100px 10%;
	border-bottom: 1px #fff solid;
}

footer #footerContact h1 {
	margin: 0 auto 50px;
	font-size: 4rem;
	line-height: 4.6rem;
	text-align: center;
	letter-spacing: 0.2em;
}

footer #footerContact h2 {
	margin: 0 auto 20px;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.05em;
}

footer #footerContact h3 {
	margin: 0 auto 30px;
	font-size: 1.4rem;
	font-weight: 300;
	line-height: 2;
	text-align: center;
	letter-spacing: 0.05em;
}

footer #footerContact .bt {
	margin: 0 auto;
	width: 270px;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.8rem;
	text-align: center;
	letter-spacing: 0.05em;
}

footer #footerContact .bt a {
	padding: 14px 0;
	background: #CF111B;
	border: 1px #CF111B solid;
	border-radius: 23px;
	display: block;
	color: #fff;
	transition-property: color,background;
}

footer #footerContact .bt a:hover {
	background: #fff;
	color: #CF111B;
	opacity: 1;
}

footer #footerT nav ul {
	padding: 30px 0;
	align-items: center;
	justify-content: center;
	display: flex;
}

footer #footerT nav ul li {
	margin: 0 1em;
	font-size: 1.4rem;
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

footer #footerT nav ul li a {
	color: #777;
}

footer #footerBtm dl {
	margin: 0 auto 100px;
	padding: 40px 0;
	border-bottom: 1px #F1F3F5 solid;
	display: flex;
}

footer #footerBtm dl > div {
	width: calc(100% / 3);
}

footer #footerBtm dl dt,
footer #footerBtm dl dd {
	color: #777;
	font-size: 1.3rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

footer #footerBtm dl dt a,
footer #footerBtm dl dd a {
	color: #777;
}

footer #footerBtm h1 {
	margin: 0 auto;
	width: 230px;
}

footer #footerBtm h1 a {
	display: block;
}

footer #footerBtm p {
	padding: 48px 0 29px;
	color: #777;
	font-size: 1.2rem;
	font-weight: normal;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.05em;
}

footer #footerBtm p small {
	font-size: 1em;
}

/*----- common -----*/

main {
	overflow: hidden;
}

/*----- TOP -----*/

main > #topKv {
	padding: 0;
}

#topKv {
	width: 100%;
	height: 100vh;
	position: relative;
	overflow: hidden;
}

#topKv #topKvBg {
	aspect-ratio: 45 / 4;
	display: flex;
}

#topKv #topKvBg,
#topKv #topKvBg figure,
#topKv #topKvBg figure img {
	height: 100%;
	width: auto;
}

#topKv #topKvBg figure {
	animation-name: kvSld;
	animation-fill-mode: backwards;
	animation-duration: 60s;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
	animation-delay: 0;
	animation-direction: normal;
}

@keyframes kvSld {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(-100%);
	}
}

#topKv #topKvIn {
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	position: absolute;
	align-items: center;
	justify-content: center;
	display: flex;
}

#topKv #topKvIn > div {
	text-align: center;
	position: relative;
}

#topKv h1 {
	color: #fff;
	font-size: 4rem;
	font-weight: 600;
	line-height: 1.8;
	text-align: center;
	letter-spacing: 0.1em;
}

#topKv .bt {
	width: 100%;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.8rem;
	text-align: center;
	letter-spacing: 0.05em;
	left: 0;
	bottom: -97px;
	position: absolute;
}

#topKv .bt a {
	margin: 0 auto;
	width: 270px;
	padding: 13px 0;
	background: #005BAB;
	border: 1px #005BAB solid;
	border-radius: 23px;
	display: block;
	color: #fff;
	transition-property: color,background;
}

#topKv .bt a:hover {
	background: #fff;
	color: #005BAB;
	opacity: 1;
}

body.index header {
	opacity: 0;
}

body.index.loaded header {
	opacity: 1;
	transition-property: opacity;
	transition-timing-function: linear,cubic-bezier(0.215, 0.61, 0.355, 1);
	transition-duration: 0.5s;
	transition-delay: 2s;
}
body #topKv {
	opacity: 0;
}

body.loaded #topKv {
	opacity: 1;
	transition-property: opacity;
	transition-timing-function: linear,cubic-bezier(0.215, 0.61, 0.355, 1);
	transition-duration: 1s;
	transition-delay: 0.5s;
}

body #topKv h1,
body #topKv .bt {
	opacity: 0;
	transform: translate(0,40px);
}

body.loaded #topKv h1,
body.loaded #topKv .bt {
	opacity: 1;
	transform: translate(0,0);
	transition-property: opacity,transform;
	transition-timing-function: linear,cubic-bezier(0.215, 0.61, 0.355, 1);
	transition-duration: 0.5s;
}

body.loaded #topKv h1 {
	transition-delay: 2s;
}

body.loaded #topKv .bt {
	transition-delay: 2.2s;
}

#topConcept {
	padding-top: 164px;
	padding-bottom: 200px;
}

#topConcept .container {
	padding-top: 150px;
}

#topConcept h1 {
	width: 100%;
	color: #F1F3F5;
	font-size: 20rem;
	font-weight: 300;
	line-height: 23rem;
	text-align: center;
	letter-spacing: 0.05em;
	left: 0;
	top: 0;
	z-index: 1;
	position: absolute;
}

#topConcept .txt {
	margin-left: 200px;
	z-index: 2;
	position: relative;
}

#topConcept .txt p,
#topConcept .txt ul li {
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#topConcept .txt ul {
	margin: 40px 0;
}

#topConcept .txt ul li {
	padding-left: 1em;
	text-indent: -1em;
}

#topGreeting .container,
#topCase .container,
#topWorks .container {
	padding-bottom: 200px;
}

#topGreeting h1,
#topFeatures h1,
#topCase h1,
#topWorks h1 {
	margin-bottom: 50px;
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

#topGreeting h1 span,
#topFeatures h1 span,
#topCase h1 span,
#topWorks h1 span {
	margin-bottom: 10px;
	color: #B5BAC0;
	font-size: 1.4rem;
	font-weight: normal;
	display: block;
	letter-spacing: 0.1em;
}

#topGreeting .container,
#topWorks .container {
	justify-content: space-between;
	flex-wrap: wrap;
	display: flex;
}

#topGreeting h1,
#topWorks h1 {
	width: 32%;
}

#topGreeting .container > div,
#topWorks .container > div {
	padding-top: 31px;
	width: 60%;
}

#topGreeting figure {
	margin-bottom: 50px;
	width: 100%;
	max-width: 500px;
}

#topGreeting p {
	margin-top: 2em;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#topGreeting p:first-of-type {
	margin-top: 0;
}

#topGreeting .bt {
	margin-top: 50px;
	width: 300px;
	font-weight: 600;
	text-align: center;
}

#topGreeting .bt a {
	padding: 9px 0;
	border: 1px #000 solid;
	border-radius: 26px;
	color: #000;
	display: block;
	transition-property: color,background;
}

#topGreeting .bt a:hover {
	background: #000;
	color: #fff;
	opacity: 1;
}

#topFeatures {
	padding-bottom: 200px;
}

#topFeatures h1 {
	text-align: center;
}

#topFeaturesMain {
	padding: 10px 10px 0;
	color: #fff;
}

#topFeaturesMain .featureBox {
	margin-bottom: 10px;
	width: 100%;
	min-height: 100vh;
	position: relative;
}

#topFeaturesMain .featureBox::before,
#topFeaturesMain .featureBox::after {
	content: " ";
	width: 100%;
	height: 100%;
	display: block;
	left: 0;
	top: 0;
}

#topFeaturesMain .featureBox::before {
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
	background-attachment: fixed;
	z-index: 0;
	position: absolute;
}

#topFeaturesMain .featureBox::after {
	background: rgba(0,0,0,0.6);
	z-index: 1;
	position: absolute;
}

#topFeaturesMain #feature01::before {
	background-image: url("../img/features01.jpg");
}

#topFeaturesMain #feature02::before {
	background-image: url("../img/features02.jpg");
}

#topFeaturesMain #feature03::before {
	margin-bottom: 0;
	background-image: url("../img/features03.jpg");
}

#topFeaturesMain .featureBox .featureBoxIn {
	z-index: 2;
	position: relative;
}

#topFeaturesMain #feature01 .featureBoxIn,
#topFeaturesMain #feature02 .featureBoxIn {
	margin: 0 auto;
	width: calc(80% + 16px);
	max-width: 1152px;
	justify-content: space-between;
	flex-wrap: wrap;
	display: flex;
}

#topFeaturesMain #feature01 .featureBoxIn > div,
#topFeaturesMain #feature02 .featureBoxIn > div {
	width: calc(50% - 40px);
}

#topFeaturesMain #feature01 .featureBoxIn {
	padding: 364px 0 200px;
}

#topFeaturesMain #feature01 h2 {
	margin-bottom: 50px;
	font-size: 2rem;
	font-weight: 600;
	line-height: 2.6rem;
	letter-spacing: 0.1em;
}

#topFeaturesMain #feature01 h2 span {
	border-bottom: 1px #fff solid;
}

#topFeaturesMain #feature01 h3 {
	margin-bottom: 50px;
	font-size: 4rem;
	font-weight: normal;
	line-height: 4.6rem;
	letter-spacing: 0.1em;
}

#topFeaturesMain #feature01 p {
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.05em;
}

#topFeaturesMain #feature02 .featureBoxIn {
	padding: 0 0 100px;
}

#topFeaturesMain #feature02 h2 {
	margin-bottom: 50px;
	padding-top: 208px;
	font-size: 2.8rem;
	font-weight: 600;
	line-height: 4.2rem;
	letter-spacing: 0.1em;
	text-align: center;
	z-index: 3;
	position: relative;
}

#topFeaturesMain #feature02 h3 {
	margin-bottom: 12px;
	font-size: 2rem;
	font-weight: 600;
	line-height: 2.6rem;
	letter-spacing: 0.1em;
}

#topFeaturesMain #feature02 h4 {
	margin-bottom: 20px;
	border-bottom: 1px #fff solid;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.8;
}

#topFeaturesMain #feature02 p {
	margin-bottom: 50px;
	font-size: 1.4rem;
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.05em;
}

#topFeaturesMain #feature03 .featureBoxIn {
	margin: 0 auto;
	padding: 296px 0 150px;
	width: calc(60% + 12px);
	max-width: 864px;
}

#topFeaturesMain #feature03 .txt {
	margin-bottom: 2em;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.05em;
}

#topFeaturesMain #feature03 .bt {
	margin: 50px auto 0;
	width: 360px;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 2;
	text-align: center;
}

#topFeaturesMain #feature03 .bt a {
	padding: 9px 0;
	border: 1px #fff solid;
	border-radius: 26px;
	color: #fff;
	display: block;
	transition-property: color,background;
}

#topFeaturesMain #feature03 .bt a:hover {
	background: #fff;
	color: #000;
	opacity: 1;
}

#topCase h1 {
	text-align: center;
}

#topCase #topCaseMain h2,
#topCase #topCaseMain ul {
	align-items: stretch;
	justify-content: space-between;
	flex-wrap: wrap;
	display: flex;
}

#topCase #topCaseMain h2 > div,
#topCase #topCaseMain ul li {
	width: calc(50% - 50px);
}

#topCase #topCaseMain h2 {
	padding: 0 0 10px;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
}

#topCase #topCaseMain h2 > div {
	position: relative;
}

#topCase #topCaseMain h2 > div::before {
	content: " ";
	width: 100%;
	height: 0;
	border-bottom: 1px #F1F3F5 solid;
	display: block;
	left: 0;
	top: 50%;
	z-index: 1;
	position: absolute;
}

#topCase #topCaseMain h2 > div span {
	padding: 0 30px;
	background: #fff;
	z-index: 2;
	position: relative;
}

#topCase #topCaseMain ul li {
	margin-top: 10px;
	padding: 18px 20px;
	background: #F1F3F5;
	border-radius: 10px;
	box-sizing: border-box;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2.6rem;
	letter-spacing: 0.05em;
	position: relative;
}

#topCase #topCaseMain ul .liC::after {
	content: "\2192";
	color: #E5E9ED;
	font-family: 'Hiragino Mincho ProN', 'ヒラギノ明朝 ProN', "Yu Mincho", "游明朝", "ＭＳ Ｐ明朝", serif;
	font-size: 3.6rem;
	font-weight: 600;
	line-height: 1;
	right: -68px;
	top: 50%;
	position: absolute;
	transform: translateY(-50%);
}

#topWorks h2 {
	margin-bottom: 2em;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

#topWorks p {
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#topWorks .bold {
	font-weight: 600;
}

#topWorks .bold span {
	color: #999;
	font-size: 1.2rem;
	font-weight: 300;
}

#topWorks .bt {
	margin-top: 50px;
	width: 300px;
	font-weight: 600;
	text-align: center;
}

#topWorks .bt a {
	padding: 9px 0;
	border: 1px #000 solid;
	border-radius: 26px;
	color: #000;
	display: block;
	transition-property: color,background;
}

#topWorks .bt a:hover {
	background: #000;
	color: #fff;
	opacity: 1;
}

#topWorks figure {
	margin-top: 50px;
	width: 100%;
}

/*----- under -----*/

#subKv {
	width: 100%;
	height: 50vh;
	position: relative;
	overflow: hidden;
}

#subKv::before {
	content: " ";
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.6);
	display: block;
	left: 0;
	top: 0;
	z-index: 2;
	position: absolute;
}

#subKv figure {
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	z-index: 1;
	position: absolute;
	overflow: hidden;
}

#subKv figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

body #subKv figure img {
	transform: scale(1.2);
	transition-property: transform;
	transition-duration: 3s;
}

body.loaded #subKv figure img {
	transform: scale(1);
}

#subKv #subKvIn {
	padding-top: 94px;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	z-index: 3;
	position: relative;
	align-items: center;
	display: flex;
}

#subKv h1 {
	margin-left: 10%;
	color: #fff;
	font-size: 4rem;
	font-weight: 600;
	line-height: 1.8;
	letter-spacing: 0.1em;
	text-align: left;
}


/*----- about -----*/

#aboutFeature .container {
	padding-top: 150px;
	padding-bottom: 138px;
}

#aboutFeature ul {
	justify-content: space-between;
	flex-wrap: wrap;
	display: flex;
}

#aboutFeature ul li {
	margin-bottom: 62px;
	width: calc(50% - 30px);
}

#aboutFeature h1 {
	margin-bottom: 12px;
	color: #005BAB;
	font-size: 1.3rem;
	font-weight: normal;
	line-height: 1.7rem;
	letter-spacing: 0.05em;
	vertical-align: bottom;
}

#aboutFeature h1 span {
	margin-left: 4px;
	font-size: 2.8rem;
	line-height: 3.7rem;
}

#aboutFeature h2 {
	margin-bottom: 40px;
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 3.8rem;
	letter-spacing: 0.05em;
}

#aboutFeature p {
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#aboutFacility .container {
	padding-bottom: 140px;
}

#aboutFacility h1 {
	margin-bottom: 60px;
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

#aboutFacility h2 {
	margin-bottom: 20px;
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

#aboutFacility .facilitySec {
	padding-bottom: 60px;
	justify-content: space-between;
	align-items: flex-start;
	display: flex;
}

#aboutFacility .facilitySec figure,
#aboutFacility .facilitySec > div {
	width: calc(50% - 30px);
}

#aboutFacility .facilitySec h3 {
	margin-bottom: 20px;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: 0.05em;
}

#aboutFacility .facilitySec p {
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#aboutPrice .container {
	padding-bottom: 140px;
}

#aboutPrice h1 {
	margin-bottom: 60px;
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

#aboutPrice .menu {
	padding-bottom: 10px;
	justify-content: space-between;
	flex-wrap: wrap;
	display: flex;
}

#aboutPrice .menu > div {
	margin-bottom: 10px;
	padding: 36px 20px 33px;
	width: calc((100% - 33px) / 4);
	border: 2px #F7F7F7 solid;
	box-sizing: border-box;
}

#aboutPrice .menu > div dt {
	margin-bottom: 13px;
	color: #B5BAC0;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.5;
	text-align: center;
}

#aboutPrice .menu > div dd {
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.05em;
	text-align: center;
}

#aboutPrice .note {
	padding-bottom: 60px;
}

#aboutPrice .note li {
	padding-left: 1em;
	color: #666;
	font-size: 1.4rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
	text-indent: -1em;
}

#aboutPrice .pack {
	justify-content: space-between;
	display: flex;
}

#aboutPrice .pack > div {
	width: calc(50% - 16px);
}

#aboutPrice .pack > div dt {
	padding: 13px 30px;
	background: #333;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
}

#aboutPrice .pack > div dd {
	padding: 22px 29px;
	border: 1px #E6E6E6 solid;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
	text-align: left;
}


/*----- case -----*/

#caseHead .container {
	padding-top: 150px;
	padding-bottom: 110px;
}

#caseHead h1 {
	margin-bottom: 60px;
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

#caseHead .ex {
	position: relative;
}

#caseHead .ex .fig {
	margin: 0 0 0 144px;
	overflow: hidden;
	z-index: 10;
	position: relative;
}

#caseHead .ex p {
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.05em;
	left: 0;
	bottom: 15%;
	z-index: 1;
	position: absolute;
}

#caseHead .ex .fig p {
	color: #fff;
	left: -144px;
	z-index: 11;
}

#caseHead .ex p span {
	color: #CDCDCD;
	font-size: 1.2rem;
}

#caseMain {
	padding-bottom: 100px;
}

#caseMain > .point,
#caseMain > .about {
	background: #F3F5F7;
}

#caseMain > section .container {
	padding-top: 100px;
	padding-bottom: 100px;
}

#caseMain > .point .container {
	padding-bottom: 50px;
}

#caseMain h1 {
	margin-bottom: 50px;
	font-size: 2.4rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

#caseMain p {
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#caseMain > .point ul {
	justify-content: space-between;
	flex-wrap: wrap;
	display: flex;
}

#caseMain > .point ul li {
	margin-bottom: 50px;
	width: calc(50% - 20px);
}

#caseMain > .point ul li figure {
	margin-bottom: 10px;
}

#caseMain > .about .aboutIn {
	display: flex;
}

#caseMain > .about .aboutIn figure {
	margin-right: 50px;
	width: 33%;
}

#caseMain > .about .aboutIn p {
	flex: 1;
}

/*----- company -----*/

#companyHead .container {
	padding-top: 150px;
	padding-bottom: 200px;
}

#companyHead h1 {
	margin-bottom: 8px;
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

#companyHead p {
	font-size: 1.3rem;
	font-weight: 300;
	line-height: 2rem;
	letter-spacing: 0.05em;
}

#companyDsc .container {
	padding-bottom: 100px;
}

#companyDsc h1 {
	margin-bottom: 60px;
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

#companyDsc p {
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#companyProf {
	position: relative;
}

#companyProf::before {
	content: " ";
	width: 50%;
	height: 100%;
	background: #F3F5F7;
	display: block;
	left: 0;
	top: 0;
	z-index: 1;
	position: absolute;
}

#companyProf .container {
	padding-top: 100px;
	padding-bottom: 70px;
	align-items: flex-start;
	justify-content: space-between;
	display: flex;
}

#companyProf h1 {
	margin: 0 60px 60px 0;
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

#companyProf dl {
	width: calc(50% + 115px);
}

#companyProf dl dt {
	margin-top: 30px;
	color: #999;
	font-size: 1.4rem;
	font-weight: 300;
	line-height: 3.2rem;
	letter-spacing: 0.05em;
}

#companyProf dl dt:first-of-type {
	margin-top: 0;
}

#companyProf dl dd {
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#companyProf dl dd a {
	color: #000;
}

#companyAddr .addrT {
	padding-top: 100px;
	padding-bottom: 60px;
}

#companyAddr .addrB {
	padding-top: 30px;
	padding-bottom: 200px;
}

#companyAddr h1 {
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

#companyAddr dl dt {
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#companyAddr dl dd {
	color: #666;
	font-size: 1.4rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#companyAddr .mapArea {
	width: 100%;
	height: 500px;
}

#companyAddr .mapArea iframe {
	width: 100%;
	height: 100%;
}

/*----- contact -----*/

#contactHead .container {
	padding-top: 150px;
	padding-bottom: 50px;
}

#contactHead h1 {
	margin-bottom: 60px;
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

#contactHead p {
	margin: 0 auto;
	width: 100%;
	max-width: 582px;
}

#contactMain {
	margin-bottom: 200px;
	background: #F3F5F7;
}

#contactMain .container {
	padding-top: 50px;
	padding-bottom: 50px;
}

#contactMain #contactMainIn {
	padding: 80px 150px;
	background: #fff;
}

#contactMain #contactMainIn.end h2 {
	margin-bottom: 40px;
	color: #333;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.05em;
}

#contactMain #contactMainIn.end p {
	margin-top: 2em;
	color: #333;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.05em;
}

#contactMain .contactForm {
	margin: 0 auto;
	width: 100%;
	max-width: 640px;
}

#contactMain .contactForm dl dt {
	margin-bottom: 10px;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0.05em;
	position: relative;
}

#contactMain .contactForm.check dl dt {
	color: #999;
	font-size: 1.4rem;
}

#contactMain .contactForm dl dt.required::before {
	content: "\203B";
	color: #000;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0.05em;
	left: -36px;
	top: 0;
	position: absolute;
}

#contactMain .contactForm dl dd {
	margin-bottom: 40px;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

#contactMain .contactForm.check dl dd {
	padding-bottom: 15px;
	border-bottom: 1px #E6E6E6 solid;
}

#contactMain .contactForm .errorTop {
	margin-bottom: 40px;
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.05em;
}

#contactMain .contactForm .errorMessage {
	margin-bottom: 40px;
	color: #CF111B;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 2;
	letter-spacing: 0.05em;
}

#contactMain .contactForm .submit {
	padding-top: 20px;
}

#contactMain .contactForm input[type="email"],
#contactMain .contactForm input[type="tel"],
#contactMain .contactForm input[type="text"],
#contactMain .contactForm textarea {
	-webkit-appearance: none;
	outline: none;
	padding: 12px 14px;
	width: 100%;
	border: 1px #E6E6E6 solid;
	border-radius: 0px;
	box-sizing: border-box;
	font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', "Yu Gothic Medium", "游ゴシック Medium", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", sans-serif;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

#contactMain .contactForm textarea {
	height: 200px;
	font-family: sans-serif;
}

#contactMain .contactForm input[type="email"]::placeholder,
#contactMain .contactForm input[type="tel"]::placeholder,
#contactMain .contactForm input[type="text"]::placeholder,
#contactMain .contactForm textarea::placeholder {
	color: #ccc;
}

#contactMain .contactForm .submit input[type="submit"],
#contactMain .contactForm .submit input[type="button"] {
	-webkit-appearance: none;
	margin: 0 0 10px;
	padding: 18px 20px;
	width: 100%;
	background: #333;
	border: 1px #333 solid;
	border-radius: 0px;
	outline: none;
	box-sizing: border-box;
	color: #fff;
	font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', "Yu Gothic Medium", "游ゴシック Medium", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", sans-serif;
	font-size: 1.6rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.05em;
	text-align: center;
	display: block;
	cursor: pointer;
	transition-property: color,background;
	transition-duration: 0.5s;
}

#contactMain .contactForm .submit input:last-of-type {
	margin-bottom: 0;
}

#contactMain .contactForm .submit input[type="submit"]:hover,
#contactMain .contactForm .submit input[type="button"]:hover {
	background: #fff;
	color: #333;
}



@media screen and (max-width: 767px) {

}

/*----- flg -----*/

.flgP {
	display: block;
}

.flgS {
	display: none;
}

@media screen and (max-width: 767px) {

	.flgP {
		display: none;
	}

	.flgS {
		display: block;
	}
}

.fade {
	opacity: 0;
	transform: translate(0,40px);
}

.fade.fadeOn {
	opacity: 1;
	transform: translate(0,0);
	transition-property: opacity,transform;
	transition-timing-function: linear,cubic-bezier(0.215, 0.61, 0.355, 1);
	transition-duration: 0.6s;
}

