@charset "utf-8";

/* 共通 */
* {
	box-sizing: border-box;
}
body {
	font-family: 'Noto Sans JP', sans-serif;
	color: #141414;
	font-size: 14px;
}
section {
	margin-top: -74px;
	padding-top: 74px;
}
ul {
	list-style: none;
}
a {
	color: #141414;
	text-decoration: none;
}
img {
	max-width: 100%;
}
.wrapper {
	margin: 0 auto;
	padding: 0 15px;
	max-width: 1030px;
}
.title {
	margin-bottom: 70px;
	font-family: 'Roboto', sans-serif;
	font-size: 36px;
	text-align: center;
	letter-spacing: 1.8px;
}
.sub-title {
	margin-bottom: 30px;
	font-size: 20px;
	font-weight: bold;
	line-height: 2;
	letter-spacing: 2px;
}
.text {
	font-size: 14px;
	line-height: 2;
	letter-spacing: .7px;
}

/* header */
header {
	position: fixed;
	padding: 20px 0;
	width: 100%;
	background: #141414;
}
header h1 {
	font-size: 26px;
	line-height: 34px;
}
header h1 a {
	color: #FFF;
}
header h1 a:hover {
	opacity: .7;
}

/* メニューボタン */
.menu {
	position: fixed;
	top: 30px;
	right: 15px;
	z-index: 3;
	width: 25px;
	height: 17px;
	border: none;
}
.menu:hover {
	cursor: pointer;
}
.menu:focus {
	outline: 0;
}
.line {
	display: block;
	position: absolute;
	right: 0;
	width: 25px;
	height: 2px;
	background-color: #FFF;
	transition: all .5s;
}
.line:nth-child(1) {
	top: 0;
}
.line:nth-child(2) {
	top: 8px;
}
.line:nth-child(3) {
	top: 16px;
}
.active .line:nth-child(1) {
	transform: translateY(8px) rotate(-45deg);
}
.active .line:nth-child(2) {
	opacity: 0;
}
.active .line:nth-child(3) {
	transform: translateY(-8px) rotate(45deg);
}

/* メニュー画面 */
.nav {
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	top: 0;
	left: -100%;
	z-index: 2;
	width: 100%;
	height: 100vh;
	background: #141414;
	transition: all .5s;
}
.nav ul {
	display: flex;
	flex-direction: column;
	gap: 50px;
	text-align: center;
}
.nav .link {
	color: #FFF;
	font-size: 16px;
	line-height: 2;
	letter-spacing: .8px;
	text-decoration: none;
}
.nav .link:hover {
	opacity: .7;
}
.nav.active {
	left: 0;
}

/* main-image */
.main-visual {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 150px;
	padding-top: 76px;
	height: 100vh;
	box-sizing: border-box;
	background: url("../images/fv-bgi_sp@2x.jpg") no-repeat center center/cover;
}
.main-visual p {
	padding: 30px 0;
	width: 300px;
	color: #FFF;
	text-align: center;
	font-size: 24px;
	letter-spacing: 2px;
	border: 1px solid #FFF;
}

.about, .service, .news {
	margin-bottom: 150px;
}

.service .text{
	margin-bottom: 40px;
}
.service .branding{
	margin-bottom: 50px;
}
.service img {
	aspect-ratio: 345/150;
	object-fit: cover;
}

.news ul{
	margin: 0 auto;
	width: 100%;
	max-width: 320px;
}
.news li{
	margin-bottom: 50px;
	box-shadow: #141414 0 0 6px;
}
.news li a{
	display: block;
}
.news li a:hover{
	opacity: .7;
}
.news li p{
	padding: 20px 30px;
	font-size: 14px;
	line-height: 2;
	letter-spacing: .7px;
}

.contact{
	margin-bottom: 150px;
	font-size: 16px;
	letter-spacing: .8px;
}
.contact .wrapper {
	margin: 0 auto;
	max-width: 700px;
}
.contact .title {
	font-family: 'Noto Sans JP', sans-serif;
}
.contact label{
	display: block;
	margin-bottom: 2px;
}
.contact input, .contact textarea{
	padding: 2px;
	width: 100%;
	border: 1px solid #141414;
}
.contact input{
	margin-bottom: 22px;
}
.contact textarea{
	margin-bottom: 50px;
	height: 171px;
}
.contact input[type="submit"]{
	display: block;
	margin: 0 auto;
	padding: 15px 0;
	width: 235px;
	color: #FFF;
	background: #141414;
	box-shadow: 0 0 6px #141414;
	border-radius: 51px;
}
.contact input[type="submit"]:hover{
	opacity: .7;
}

footer{
	padding: 20px 0;
	color: #FFF;
	text-align: center;
	background: #141414;
}
.copyright small {
	font-size: 14px;
}

/* タブレット版ブレイクポイント */
@media (min-width:600px) {
}

/* PC版ブレイクポイント */
@media (min-width:1025px) {
	.sp{
		display: none;
	}
	.wrapper {
		padding: 0;
	}
	
	header {
		border-bottom: 1px solid #FFF;
	}
	header .wrapper {
		display: flex;
		align-items: center;
		justify-content: space-between;
		max-width: 1200px;
	}
	.menu {
		display: none;
	}
	.nav {
		position: static;
		width: auto;
		height: auto;
		background: none;
	}
	.nav ul {
		flex-direction: row;
		width: auto;
		height: auto;
		gap: 55px;
	}
	
	.main-visual {
		background-image: url("../images/fv-bgi@2x.jpg");
	}
	.main-visual p {
		padding: 35px 0;
		width: 449px;
		font-size: 50px;
	}
	
	.service .branding, .service .max {
		display: flex;
		align-items: center;
		gap: 70px;
	}
	.service .branding img {
		order: 1;
	}
	.service .branding div {
		order: 2;
	}
	.service img, .service .wrapper div {
		width: 480px;
	}
	.service img {
		aspect-ratio: auto;
		object-fit: none;
	}
	.service .text {
		margin: 0;
	}
	
	.news ul {
		display: flex;
		justify-content: space-between;
		max-width: 1030px;
	}
	.news li {
		margin: 0;
		width: 320px;
	}
	
	footer {
		padding: 30px 0;
	}
}

