@charset "UTF-8";
/* CSS Document */

h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, figure {
  margin: 0;
  padding: 0;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

h1, h2, h3, h4, h5, h6, th {
	font-weight: bold;
	font-weight: 600;
}

ol, ul { list-style: none; }

strong {
	font-weight: bold;
	font-weight: 600;
}

body {
	min-width: 1200px;
  color: #333;
  font-size: 16px;
  font-family: source-han-sans-japanese, sans-serif;
  font-weight: 300;
  font-style: normal;
  line-height: 1.5;
	letter-spacing: 0.08em;
}

a {
  color: #0f2f6e;
  transition: color 0.3s;
}
a:hover { color: #0000aa; }

a img { transition: opacity 0.3s; }
a:hover img { opacity: 0.7; }

img { vertical-align: bottom; }

*, *:before, *:after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

*:focus { outline: none; }

::selection {
	background: #0f2f6e;
	color: #fff;
}
/* for Firefox */
::-moz-selection{
	background: #0f2f6e;
	color: #fff;
}

@media screen and (max-width:500px) {
	body {
		min-width: auto;
	}
}

/* # common
   -------------------------------------------------------------------------- */
.point-txt01 { color: #F47B28; }

.marker {
	background: linear-gradient(transparent 60%, #ffed8c 60%)
}

.ib { display: inline-block;}

.js-fadein {
	opacity: 0;
	transform: translateY(5px);
	transition: all 0.8s;
}

@media screen and (max-width:500px) {
	
	img {
		width: 100%;
		height: auto;
	}
	
	.sp-none { display: none; }
	
}
@media screen and (min-width:501px) {
	.pc-none { display: none; }
}

/* # header
   -------------------------------------------------------------------------- */
.l-header {
	position: fixed;
	top: 0;
	left: 0;
	bottom: 0;
	width: 200px;
	background-color: #fff;
	box-shadow: 3px 5.196px 12px 0px rgba(0, 0, 0, 0.05);
	z-index: 999;
}

.header {
	overflow: scroll;
	height: 100%;
	-ms-overflow-style: none;
}
.header::-webkit-scrollbar{
  display: none;
}

.header-inner {
	position: relative;
	height: 100%;
	min-height: 580px;
	padding: 60px 0;
}

.headeer-logo {
	font-size: 0;
	line-height: 1;
	text-align: center;
}
.headeer-logo a { display: block; }

/* # header-menu
   ------------------------------------- */
/* heqder-nav */
.header-nav {
	position: absolute;
	bottom: 60px;
	left: 20px;
	right: 20px;
}

.header-nav nav {  }

.header-nav ul {  }

.header-nav ul li { margin-bottom: 20px; }
.header-nav ul li:last-child { margin-bottom: 0; }
.header-nav ul li a {
	display: block;
	color: #333;
	font-size: 14px;
	font-family: trajan-pro-3, serif;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.12em;
	text-decoration: none;
}
.header-nav ul li a:hover { color: #0000aa; }

@media screen and (max-width:500px) {
	.l-header {
		width: 100%;
		right: 0;
		bottom: auto;
		z-index: 100;
	}
	.header-inner {
		padding: 10px;
		height: auto;
		min-height: inherit;
	}
	.headeer-logo {
		width: 226px;
	}
	
	
	/* header-btn */
	.header-btn {
		position: fixed;
		top: 0;
		right: 0;
		width: 50px;
		height: 50px;
		font-size: 0;
		text-align: center;
		vertical-align: middle;
		background-color: #0f2f6e;
		z-index: 101;
	}

	.header-btn-ico,
	.header-btn-ico:before,
	.header-btn-ico:after {
		content: "";
		position: absolute;
		width: 30px;
		height: 1px;
		background-color: #fff;
		transition: 0.3s;
	}

	.header-btn-ico {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translateX(-50%) translateY(-50%);
	}

	.header-btn-ico:before {
		top: -8px;
		left: 0;
	}
	.header-btn-ico:after {
		bottom: -8px;
		left: 0;
	}

	.header-btn.btn-active .header-btn-ico { background-color: #0f2f6e; }
	.header-btn.btn-active .header-btn-ico:before {
		top: 0;
		transform: rotate(45deg);
	}

	.header-btn.btn-active .header-btn-ico:after {
		bottom: 0;
		transform: rotate(-45deg);
	}

	/* heqder-nav */
	.header-nav {
		position: fixed;
		top: 50px;
		right: 0;
		left: auto;
		bottom: 0;
		display: block;
		width: 100%;
		background-color: #21212f;
		transform: translateX(100%);
		transition: 0.1s;
		z-index: 100;
	}
	.header-nav.menu-active { transform: translateX(0); }

	.header-nav nav {
		overflow: scroll;
		width: 100%;
		height: 100%;
		padding: 0 0 60px;
	}

	.header-nav ul { border-top: 1px solid #313140; }

	.header-nav ul li {
		margin-bottom: 0;
		border-bottom: 1px solid #313140;
	}

	.header-nav ul li a {
		display: block;
		padding: 20px;
		color: #fff;
		font-size: 14px;
		line-height: 1.25;
		text-decoration: none;
	}

	/* overlay */
	.gnav-overlay {
		content: "";
		visibility: hidden;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(15,47,110,0);
		cursor: pointer;
		transition: 0.1s;
		z-index: 98;
	}
	.overlay-active .gnav-overlay {
		visibility: visible;
		background: rgba(15,47,110,0.7);
	}
}


/* # レイアウト
   -------------------------------------------------------------------------- */
main {
	margin-left: 200px;
}

@media screen and (max-width:500px) {
	main {
		margin-top: 50px;
		margin-left: 0;
	}
}


/* # works
   -------------------------------------------------------------------------- */
.l-works {
	padding: 120px 7.5%;
	background-color: #21212f;
}

.works-ttl {
	margin-bottom: 60px;
	color: #fff;
	font-size: 66px;
	font-family: trajan-pro-3, serif;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.04em;
	text-align: center;
}

.works-list {
	overflow: hidden;
	margin-bottom: 20px;
	font-size: 0;
	letter-spacing: 0;
}

.works-list-item {
	width: 33.333333%;
	display: inline-block;
	margin-bottom: 37px;
	padding: 0 10px;
	vertical-align: top;
}

.works-list-item a {
	display: block;
	text-align: left;
	text-decoration: none;
}

.works-list-item-img {
	margin-bottom: 20px;
}
.works-list-item-img img { width: 100%; }

.works-list-item-time {
	display: inline-block;
	margin-bottom: 3px;
	padding: 4px 8px;
	color: #333;
	font-size: 14px;
	line-height: 1;
	letter-spacing: 0.08em;
	background-color: #fff;
}

.works-list-item-name {
	color: #fff;
	font-size: 18px;
	line-height: 1.3333333333;
	letter-spacing: 0.08em;
}

.works-btn {
	position: relative;
	display: block;
	width: 320px;
	margin: 0 auto;
	padding: 24px 0;
	color: #fff;
	font-size: 14px;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	border: 1px solid #fff;
}
.works-btn:before {
	content: "";
	position: absolute;
	top: 50%;
	right: 30px;
	width: 40px;
	height: 1px;
	background-color: #fff;
	transition: background-color 0.8s;
}
.works-btn:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 30px;
	width: 5px;
	height: 1px;
	background-color: #fff;
	transform-origin: top right;
	transform: rotate(45deg);
	transition: background-color 0.8s;
}
.works-btn:hover {
	color: #21212f;
	background-color: #fff;
}
.works-btn:hover:before { background-color: #21212f; }
.works-btn:hover:after { background-color: #21212f; }

@media screen and (max-width:500px) {
	.l-works {
		padding: 40px 5px 80px;
	}
	.works-ttl {
		margin-bottom: 20px;
		font-size: 40px;
	}
	.works-list { margin-bottom: 10px; }
	.works-list-item {
		width: 50%;
		margin-bottom: 15px;
	}
	.works-list-item-img {
		margin-bottom: 10px;
	}
	.works-list-item-time {
		padding: 3px 5px;
		font-size: 12px;
	}
	.works-list-item-name {
		font-size: 14px;
	}
	.works-btn {
		width: auto;
		margin: 0 15px;
	}
}


/* # CTA
   -------------------------------------------------------------------------- */
.l-cta {
	padding: 100px 0 80px;
	text-align: center;
	background: url("../../images/cta/bg.jpg") no-repeat;
	background-size: cover;
	background-position: center;
}

.cta-ttl {
	margin-bottom: 20px;
	color: #fff;
	font-size: 68px;
	font-family: trajan-pro-3, serif;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.04em;
}

.cta-txt {
	margin-bottom: 32px;
	color: #fff;
	font-size: 20px;
	font-family: source-han-serif-japanese, serif;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.12em;
}

.cta-btn {
	display: block;
	width: 320px;
	margin: 0 auto;
	padding: 31px 0;
	color: #333;
	font-size: 18px;
	line-height: 1;
	text-decoration: none;
	background-color: #fff;
	border-radius: 40px;
	transition: all 0.8s;
}
.cta-btn:hover {
	color: #fff;
	background-color: #00a;
}

@media screen and (max-width:500px) {
	.l-cta {
		padding: 40px 15px;
	}
	.cta-ttl {
		margin-bottom: 10px;
		font-size: 36px;
	}
	.cta-txt {
		margin-bottom: 15px;
		font-size: 14px;
	}
}

/* # フッター
   -------------------------------------------------------------------------- */
.l-footer {
	margin-left: 200px;
}

.footer-inner {
	padding: 40px 80px;
	background-color: #e4edf7;
}

.footer-logo {
	margin-bottom: 24px;
}

.footer-desc {
	font-size: 14px;
	line-height: 1.4285714286;
}

.footer-copyright small {
	display: block;
	padding: 10px 0;
	color: #d3dfec;
	font-size: 12px;
	line-height: 1;
	text-align: center;
	background-color: #a3bbd6;
}

@media screen and (max-width:500px) {
	.l-footer { margin-left: 0; }
	.footer-inner {
		padding: 40px 15px;
	}
	.footer-logo {
		width: 180px;
		margin-bottom: 15px;
	}
	.footer-desc {
		font-size: 12px;
	}
	.footer-copyright small { font-size: 10px; }
}

/* # 凡庸クラス
   -------------------------------------------------------------------------- */
.clearfix:before, .clearfix:after {
  content: "";
  display: table;
}
.clearfix:after { clear: both; }
.clearfix { zoom: 1; } /* For IE 6/7 */

.tr { text-align: right!important; }
.tl { text-align: left!important; }
.tc { text-align: center!important; }

.m0 { margin: 0!important; }
.mt0 { margin-top: 0!important; }
.mb0 { margin-bottom: 0!important; }
.ml0 { margin-left: 0!important; }
.mr0 { margin-right: 0!important; }

.p0 { padding: 0!important; }
.pt0 { padding-top: 0!important; }
.pb0 { padding-bottom: 0!important; }
.pl0 { padding-left: 0!important; }
.pr0 { padding-right: 0!important; }

.ib { display: inline-block!important; }