/*Reset Style*/

* {
	margin: 0;
	padding: 0;
}

h1,
h3,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-weight: 400;
}

li {
	list-style-type: none;
}

a {
	color: #000;
	text-decoration: none;
	outline: 0;
}

/*Common Setting*/

.clearfix:after {
	content: "";
	clear: both;
	display: block;
}

body {
	font-family: "ryo-gothic-plusn", "open-sans", sans-serif;
	background: #fff;
	letter-spacing: 0.1rem;
}

.wrap {
	max-width: 62.5rem;
	margin: 0 auto;
}

section {
	background: #fff;
	color: #000;
}

.odd {
	background: #cd201f;
	color: #fff;
}

.studs {
	width: 0;
	height: 0;
	border-top: 56px solid #fff;
	border-right: 50vw solid #cd201f;
	border-bottom: 56px solid #cd201f;
	border-left: 50vw solid #fff;
}

.studs.main-bottom {
	position: absolute;
	bottom: 0;
	left: 0;
	border-top: 56px solid transparent;
	border-right: 50vw solid #cd201f;
	border-bottom: 56px solid #cd201f;
	border-left: 50vw solid transparent;
}

.studs.even {
	width: 0;
	height: 0;
	border-top: 56px solid #cd201f;
	border-right: 50vw solid #fff;
	border-bottom: 56px solid #fff;
	border-left: 50vw solid #cd201f;
}

header {
	position: fixed;
	top: 0;
	left: 0;
	background: #fff;
	width: 100%;
	height: 6rem;
	box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.3);
	z-index: 4;
}

.brand,
.g-nav {
	line-height: 6rem;
}

.brand {
	float: left;
}

.brand h1 img {
	vertical-align: middle;
}

.g-nav {
	float: right;
}

.g-nav ul li {
	display: inline;
	padding: 0 0.75rem;
}

.g-nav ul li:not(:last-child) a {
	position: relative;
	transition: .3s;
}

.g-nav ul li:not(:last-child) a::after {
	position: absolute;
	bottom: 0;
	left: 50%;
	content: '';
	width: 0;
	height: 1px;
	background-color: #cd201f;
	transition: .3s;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

.g-nav ul li:not(:last-child) a:hover::after {
	width: 100%;
}

.g-nav ul li:last-child {
	padding: 0 0 0 1.88rem;
}

.g-nav ul li:last-child a {
	background: #cd201f;
	color: #fff;
	padding: 0.75rem 1.75rem;
	border-radius: 1.75rem;
	position: relative;
	transition: .5s;
}

.g-nav ul li:last-child a:hover {
	background: #000;
}

#main {
	position: relative;
	background-image: url('../images/main.jpg');
	background-repeat: no-repeat;
	background-size: cover;
	margin-top: 6rem;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100vw;
	height: calc(100vh - 9.5rem);
}

#main h2 {
	font-size: 3rem;
	font-weight: 400;
	font-style: italic;
	text-align: center;
	display: inline-block;
	background: #000;
	color: #fff;
	padding: 1.25rem 1.88rem;
}

.section-title {
	text-align: center;
}

.section-title h3 {
	font-size: 3rem;
	font-weight: 500;
	line-height: 1.2;
}

.section-title h3 span {
	display: block;
	font-size: 2rem;
	font-weight: 400;
}

.section-content {
	padding: 3rem 1.25rem 3.5rem;
	display: flex;
	flex-direction:row;
	justify-content: center;
}

#access .section-content {
	flex-direction: column;
}

.section-content .list-disp,
.section-content p {
	text-align: left;
	line-height: 2.44;
}

.list-disp dt,
.list-disp dd {
	display: inline;
}

.list-disp dt {
	padding-right: 1rem;
}

#news .list-disp span {
	text-indent: 7.5rem;
	display: block;
}

#company .list-disp span {
	text-indent: 4.65rem;
	display: block;
}

.list-disp a {
	color: #fff;
	text-decoration: underline;
}

/*SERVICE*/
.service {
	text-align: center;
	width: calc(100% / 3);
}

.service:nth-child(2) {
	margin: 0 1.44rem;
}

.service-icon {
	position: relative;
	display: inline-block;
	background: #fff;
	width: 9.75rem;
	height: 9.75rem;
	border-radius: 9.75rem;
	box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.3);
	z-index: 1;
}

.service-icon::before {
	position: absolute;
	display: inline-block;
	width: 5.5rem;
	height: 5.5rem;
	top: calc(50% - 2.75rem);
	left: calc(50% - 2.75rem);
}

.graph::before {
	content: '';
	background: url('../images/icon-graph.svg') no-repeat;
}

.gear::before {
	content: '';
	background: url('../images/icon-gear.svg') no-repeat;
}

.speaker::before {
	content: '';
	background: url('../images/icon-loud-speaker.svg') no-repeat;
}

.service-box {
	position: relative;
	background: #fff;
	box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.3);
	display: inline-block;
	padding: 5.5em 1rem 2.75rem;
	margin-top: calc(-9.75rem / 2);
	
}

.service-desc {
	min-height: 14.63rem;
}

.service-title h3 {
	color: #cd201f;
	text-align: center;
	font-size: 1.25rem;
	font-weight: 600;
	margin-bottom: 0.75rem;
}

/*ACCESS*/
.map-wrap {
	box-shadow: 0px 1px 1px 1px rgba(0, 0, 0, 0.3);
}

#map {
	width: 60rem;
	height: 25rem;
}

.map-link {
	padding: 1rem 0;
	text-align: right;
	
}

.map-link a {
	color: #cd201f;
	text-decoration: underline;
	font-size: 1rem;
}

.map-link a::before {
	display: inline-block;
	content: '';
	width: 1.5rem;
	height: 1.5rem;
	background: url('../images/icon-pin.svg') no-repeat;
	vertical-align: text-bottom;
}

.access-detail {
	line-height: 1.8;
}

.access-detail dt {
	font-weight: 600;
}

/*CONTACT*/
.contact-btn {
	text-align: center;
}

.btn {
	display: flex;
	margin: 0 auto;
	width: 19.88rem;
	color: #fff;
	box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.3);
	transition: .5s;
}

.btn span {
	display: inline-block;
	text-align: center;
	height: 3.5rem;
	line-height: 3.5rem;
}

.btn .text {
	width: 16.38rem;
	background: #000;
	color: #fff;
}

.btn .icon {
	width:  3.5rem;
	background: #fff;
	color: #000;
}

.btn:hover {
	box-shadow: none;
}

/*PAGE TOP BTN*/
#pageTop {
	display: none;
	background: #000;
	width: 5.5rem;
	height: 5.5rem;
	border-radius: 5.5rem;
	text-align: center;
	position: fixed;
	bottom: 2.25rem;
	right: 2.25rem;
	box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.3);
	transition: .5s;
}

#pageTop img {
	display: inline-block;
	position: relative;
	top: calc(5.5rem / 2 - 0.75rem);
}

#pageTop:hover {
	box-shadow: none;
}

footer {
	text-align: center;
	font-size: 1rem;
	font-style: italic;
}

footer small {
	padding-bottom: 2rem;
}

.pc { display: block; }
.pc-inline { display: inline-block; }
.sp, .sp-inline { display: none; }

@media (max-width: 767px) {
	.pc,
	.pc-inline {
		display: none;
	}
	
	.sp {
		display: block;
	}
	
	.sp-inline {
		display: inline-block;
	}
	
	.wrap {
		width: 100%;
		margin: 0;
		padding-top: 2rem;
	}
	
	.section-content,
	#service .section-content {
		flex-direction: column;
	}

	.section-title h3 span {
		font-size: 1.5rem;
	}

	.studs {
		border-top: 28px solid #fff;
		border-bottom: 28px solid #cd201f;
	}
	
	.studs.main-bottom {
		border-top: 28px solid transparent;
		border-bottom: 28px solid #cd201f;
	}
	
	.studs.even {
		border-top: 28px solid #cd201f;
		border-bottom: 28px solid #fff;
	}
	
	header .wrap {
		padding: 0 0 0 1.5rem;
	}

	.brand {
		float: none;
		display: inline-block;
	}
	
	.switch {
		position: absolute;
		width: 6rem;
		height: 6rem;
		line-height: 6rem;
		font-size: 2rem;
		color: #cd201f;
		display: inline-block;
		text-align: center;
		right: 0;
	}
	
	.sp-nav {
		width: 70vw;
		height: calc(100vh - 6rem);
		position: fixed;
		background: #000;
		z-index: 3;
		left: 100vw;
		overflow: auto;
		transition: all 0.3s;
	}
	
	.sp-nav.active {
		left: 30vw;
	}
	
	.sp-nav ul li {
		padding: 2rem;
		border-bottom: 1px solid #fff;
		box-sizing: border-box;
	}
	
	.sp-nav ul li a {
		display: block;
		color: #fff;
		
	}
	
	.overray {
		display: none;
		width: 100vw;
		height: 120%;
		background: rgba(0,0,0,0.8);
		position: fixed;
		top: 0;
		left: 0;
		z-index: 2;
	}
	
	#main h2 {
		background: rgba(0,0,0,0.8);
	}
	
	#main h2,
	.section-title h3 {
		font-size: 2.5rem;
	}
	
	.list-disp dl {
		margin-bottom: 1.5rem;
		text-align: center;
	}
	
	.list-disp dt,
	.list-disp dd {
		display: block;
	}

	.list-disp dt {
		font-weight: 600;
		padding-right: 0;
	}
	
	.list-disp dt::after {
		position: absolute;
		display: block;
		content: '';
		background: #fff;
		width: 3.2rem;
		height: 2px;
		left: calc(50% - 1.6rem);
	}
	
	.list-disp dd {
		margin-top: 0.75rem;
		line-height: 2;
	}

	#news .list-disp span,
	#company .list-disp span {
		display: inline;
		text-indent: 0;
	}
	
	.service {
		width: 100%;
	}
	
	.service:nth-child(2) {
		margin: 1.44rem 0;
	}
	
	.service-icon,
	.service-box {
		box-shadow: 1px 2px 4px 1px rgba(0, 0, 0, 0.3);
	}

	
	.service-desc {
		min-height: auto;
	}
	
	.map-wrap {
		box-shadow: none;
	}
	
	#map {
		width: 100%;
		height: 400px;
	}
	
	.contact-btn {
		padding-bottom: 2rem;
	}
	
	#pageTop {
		right: 1rem;
		opacity: 0.9;
	}
}