@charset "UTF-8";

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box
}

html {
	scroll-behavior: smooth
}

body {
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	font-size: 16px;
	color: #333;
	line-height: 1.8;
	background: #fff;
}

img {
	width: 100%;
	height: auto;
	display: block
}

a {
	text-decoration: none;
	color: #000;
}

ul {
	list-style: none
}

.inner {
	width: 1280px;
	max-width: 90%;
	margin: auto
}

.section {
	overflow: hidden
}

/* HEADER */
.header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 96px;
	background: #fff;
	z-index: 1000
}

.header-inner {
	height: 100%;
	max-width: 1440px;
	margin: auto;
	padding: 0 30px;
	display: flex;
	align-items: center;
	justify-content: space-between
}

.logo {
	font-size: 32px;
	letter-spacing: 5%;
}

.nav ul {
	display: flex;
	gap: 30px
}

.nav li {
	text-align: center;
}

.nav a {
	position: relative;
	display: inline-block;
	padding-bottom: 8px;
	font-weight: 500;
	letter-spacing: 5%;
	line-height: 1.5;
}


.nav a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 1px;
	background: #A40000;
	transition: .4s ease;
}


.nav a:hover::after {
	width: 100%;
}

.nav span {
	display: block;
	font-size: 14px;
	font-weight: 900;
	color: #A40000;
}

.header-btn {
	display: flex;
	gap: 7px
}

.header-btn a {
	width: 176px;
	height: 52px;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 39px;
	color: #fff;
	font-size: 20px;
	font-weight: 900;
}

.header-btn a:hover {
	opacity: 0.8;
}

.tel .i-tel {
	content: url("../images/top/i-tel.png");
	height: 16px;
	margin-right: 10px;
}

.header-btn .contact-btn {
	font-size: 15px;
}

.contact-btn .i-mail {
	content: url("../images/top/i-mail.png");
	height: 16px;
	margin-right: 10px;
}

.header.scroll {
	box-shadow: 0 5px 20px rgba(0, 0, 0, .1)
}

.tel {
	background: #333
}

.contact-btn {
	background: #b40000
}

.hamburger {
	display: none
}

/* FV */
.fv {
	height: 650px;
	position: relative;
	overflow: hidden;
	margin-top: 96px;
	transform: translateZ(0);
	backface-visibility: hidden;
}

.fv-slider {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.fv-slide {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	visibility: hidden;
	transition: opacity 1.5s ease;
}

.fv-slide.active {
	opacity: 1;
	visibility: visible;
	z-index: 1;
}

.fv-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	will-change: transform;
}

.fv-slide.active img {
	animation: fvZoom 8s linear forwards;
}

@keyframes fvZoom {
	0% {
		transform: scale(1);
	}

	100% {
		transform: scale(1.08);
	}
}

.fv-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, .54);
	z-index: 2
}

.fv-copy {
	position: absolute;
	left: 8%;
	bottom: 110px;
	color: #fff;
	z-index: 3
}

.fv-copy h2 {
	font-size: 40px;
	letter-spacing: 2%;
	line-height: 1.6;
}

.fv-copy p {
	font-size: 24px;
	font-weight: 900;
	letter-spacing: 4%;
	margin-top: 10px
}

/* FV SCROLL */

.fv-scroll {
	position: absolute;
	right: 7%;
	bottom: 0;
	z-index: 5;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 15px;
	color: #fff;
	font-size: 20px;
	letter-spacing: 4%;
}


.fv-scroll-text {
	writing-mode: vertical-rl;
}


.fv-scroll-line {
	display: block;
	width: 1px;
	height: 70px;
	position: relative;
	overflow: hidden;
}


.fv-scroll-line::after {
	content: "";
	position: absolute;
	top: -70px;
	left: 0;
	width: 1px;
	height: 70px;
	background: #fff;
	animation: scrollMove 2s infinite ease-in-out;
}


@keyframes scrollMove {

	0% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(70px);
	}

	100% {
		transform: translateY(140px);
	}
}

/* GREETING */

.greeting {
	padding: 85px 0 70px;
	background: #fff;
	overflow: hidden;
}

.greeting-inner {
	width: 1440px;
	max-width: 100%;
	margin: auto;
	position: relative;
}

.greeting-box {
	position: absolute;
	left: 0;
	top: 0;
	width: 60%;
	height: 660px;
	background: #A40000;
	z-index: 2;
	clip-path: polygon(0 0, 95% 0, 100% 100%, 10% 100%);
	color: #fff;
}

.greeting-content {
	padding: 50px 100px;
}

.greeting-content h3 {
	font-size: 64px;
	line-height: 1.5;
}

.greeting-content h3 span {
	font-size: 96px;
	line-height: 1;
}

.greeting-content .sub-ttl {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 5%;
	margin-top: 10px;
}

.greeting-content p {
	line-height: 2;
	margin-top: 25px;
}

.greeting-image {
	width: 67%;
	margin-left: auto;
	padding-top: 70px;
}

.greeting-image img {
	width: 100%;
	max-height: 672px;
}

.greeting-image .gree-rwd {
	display: none;
}

/* TITLE */
.section-title {
	font-size: 64px;
	color: #A40000;
	line-height: 1.3;
}

.section-title small {
	display: block;
	font-size: 24px;
	font-weight: 700;
	color: #333;
}

.section-title span {
	font-size: 96px;
}

/* COMPANY */
.company {
	background: url("../images/top/company-bg.jpg") center/cover;
	padding: 80px 20px;
	text-align: center
}

.company-inner {
	max-width: 1000px;
	margin: auto
}

.company .section-title {
	text-align: center;
	font-size: 64px;
}

.company p {
	line-height: 2;
	margin: 40px auto 56px;
	font-weight: 500;
}

.btn-more {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 40px;
	width: 280px;
	height: 65px;
	background: #A40000;
	color: #fff;
	font-size: 15px;
	font-weight: 900;
	position: relative;
	overflow: hidden;
	transition: .4s;
	margin: 0 auto;
}

.btn-text {
	position: relative;
	z-index: 2;
}

.btn-arrow {
	position: absolute;
	right: 30px;
	width: 40px;
	height: 1px;
	background: #fff;
	transition: .4s;
}

.btn-arrow::after {
	content: "";
	position: absolute;
	top: -3px;
	right: 0;
	width: 8px;
	height: 5px;
	border-top: 1px solid #fff;
	transform: rotate(45deg);
	transition: .4s;
}

.btn-more:hover {
	background: #980000;
}

.btn-more:hover .btn-arrow {
	transform: translateX(12px);
}

/* RECRUIT */
.recruit {
	padding: 100px 0;
}

.recruit-inner {
	display: flex;
	justify-content: space-between;
}

.recruit h4 {
	font-size: 36px;
	font-weight: 700;
	line-height: 2;
	letter-spacing: 5%;
	margin: 15px 0;
}

.recruit-text {
	width: 60%;
}

.recruit p {
	line-height: 2;
	margin-bottom: 30px;
}

.recruit .btn-more {
	margin: 40px 0 0 0;
}

.recruit-images {
	width: 40%;
	position: relative;
}


.recruit-images img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


.recruit-images .img01 {
	position: absolute;
	left: 45px;
	top: 70px;
	z-index: 2;
}


.recruit-images .img02 {
	position: absolute;
	right: 0;
	top: 0;
}

/* CONTACT */
.contact {
	position: relative;
	padding: 90px 0;
	overflow: hidden;
}

.contact-bg {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 60%;
	height: 80%;
	background: #fdeaea;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.contact-inner {
	display: flex;
	justify-content: space-between;
	position: relative;
	z-index: 2;
}

.contact-images {
	width: 40%;
	position: relative;
}

.contact-img01 {
	position: absolute;
	left: 0;
	top: 0;
}

.contact-img02 {
	position: absolute;
	right: 45px;
	top: 74px;
}

.contact-content {
	width: 60%;
	padding-top: 80px;
}

.contact-content p {
	line-height: 2;
	margin: 40px 0;
}

.contact-btns {
	display: flex;
	gap: 22px;
}

.contact-btns a {
	width: 176px;
	height: 52px;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 39px;
	color: #fff;
	font-size: 15px;
	font-weight: 900;
}

.contact-btns a:hover {
	opacity: 0.8;
}

.contact-btns a:first-child {
	background: #333;
	font-size: 20px;
}

/* INSTAGRAM */
.instagram {
	position: relative;
	margin-top: 125px;
}

.instagram a {
	display: block;
	width: 578px;
	max-width: 100%;
	margin: 0 auto;
}

.instagram a:hover {
	opacity: 0.8;
}

/* ACCESS */
.access iframe {
	width: 100%;
	height: 420px;
	border: 0;
	display: block;
}

/* FOOTER */
.footer {
	background: #F2F2F2;
	border-top: 9px solid #D0D0D0;
	padding: 70px 0 25px;
}


.footer-inner {
	max-width: 1280px;
	width: 90%;
	margin: auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.footer-info .ttl {
	font-size: 32px;
	font-weight: 700;
	margin-bottom: 50px;
}

.company-info {
	display: grid;
	grid-template-columns: 120px 1fr;
	row-gap: 18px;
	column-gap: 28px;
	font-weight: 700;
}

.footer-info .btn-more {
	margin: 50px 0 0 0;
}

.footer-nav .nav ul {
	flex-wrap: wrap;
	gap: 0;
}

.footer-nav .nav li {
	width: 50%;
	margin-top: 30px;
}

.footer-btn a {
	width: 176px;
	height: 52px;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 39px;
	color: #fff;
	font-size: 15px;
	font-weight: 900;
}

.footer-btn a:hover {
	opacity: 0.8;
}

.footer-btn a:first-child {
	background: #333;
	font-size: 20px;
	margin: 20px 0 9px;
}

.footer-btn .i-insta {
	display: block;
	width: 40px;
	margin: 20px auto 0;
}

.copyright {
	text-align: center;
	font-size: 14px;
	font-weight: 500;
	margin-top: 70px;
}

.page-top {
	position: fixed;
	right: 80px;
	bottom: 30px;
	z-index: 999;
	opacity: 0;
	visibility: hidden;
	transition: .4s;
}

.page-top.show {
	opacity: 1;
	visibility: visible;
}

.page-top a {
	position: relative;
	display: block;
	width: 50px;
	height: 50px;
	background: #333;
	transition: .3s;
}

.page-top a:hover {
	background: #b30000;
}

.page-top a::before,
.page-top a::after {
	content: "";
	position: absolute;
	top: 20px;
	width: 11px;
	height: 2px;
	background: #fff;
}

.page-top a::before {
	left: 14px;
	transform: rotate(-45deg);
	transform-origin: right center;
}

.page-top a::after {
	right: 14px;
	transform: rotate(45deg);
	transform-origin: left center;
}

/* FIX */
.sp-fixed {
	display: none
}

/* ANIMATION */
.fadeUp {
	opacity: 0;
	transform: translateY(50px);
	transition: 1s
}

.fadeUp.show {
	opacity: 1;
	transform: translateY(0)
}

@media(max-width:1024px) {
	.header-btn {
		display: none
	}

	.greeting-box {
		width: 100%;
		height: auto;
		clip-path: none;
		position: relative;
	}

	.greeting-image {
		width: 100%;
	}

	.greeting-image img {
		width: 100%;
		max-height: 500px;
		object-fit: cover;
		object-position: bottom;
	}

	.greeting-content {
		padding: 50px;
	}

	.page-top {
		right: 30px;
	}

	.greeting-image .gree-pc {
		display: none;
	}

	.greeting-image .gree-rwd {
		display: block;
	}
}

/* レスポンシブ */
@media(max-width:768px) {

	.header-inner {
		padding: 0 20px
	}

	.nav {
		display: none
	}

	.hamburger {
		display: block;
		width: 41px;
		height: 41px;
		background: #A40000;
		padding-top: 8px;
	}

	.hamburger span {
		display: block;
		width: 18px;
		height: 2px;
		background: #fff;
		margin: 5px auto;
	}

	.section-title {
		text-align: center;
	}

	.greeting {
		padding: 50px 0;
	}

	.greeting-inner {
		height: auto;
	}

	.greeting-box {
		position: relative;
		width: 100%;
		height: auto;
		top: 0;
		clip-path: none;
	}

	.greeting-content {
		padding: 35px 25px;
		text-align: center;
	}

	.greeting-content p {
		text-align: left;
	}

	.greeting-image {
		position: relative;
		top: auto;
		right: auto;
		width: 100%;
	}

	.greeting-image img {
		height: 350px;
	}

	.greeting-image p {
		left: 10px;
		font-size: 22px;
	}

	.inner {
		max-width: 90%
	}

	.recruit .text,
	.contact .text,
	.contact-image,
	.recruit .image {
		width: 100%
	}

	.recruit .image {
		margin-top: 30px
	}

	.recruit .btn-more {
		margin: 40px auto;
	}

	.contact {
		padding-top: 0;
	}

	.contact-image {
		margin-bottom: 30px
	}

	.footer-inner {
		display: block;
		padding: 0 20px
	}

	.footer-nav {
		margin: 30px 0
	}

	.sp-fixed {
		display: flex;
		position: fixed;
		align-items: center;
		gap: 10px;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 86px;
		z-index: 999;
		padding: 10px;
		background: #fff;
		box-shadow: 0 -5px 20px rgba(0, 0, 0, .1);
	}

	.sp-fixed a {
		width: 50%;
		height: 52px;
		display: flex;
		justify-content: center;
		align-items: center;
		border-radius: 39px;
		color: #fff;
		font-size: 15px;
		font-weight: 900;
	}

	.sp-fixed .tel {
		background-color: #333333;
		font-size: 20px;
	}

	.sp-fixed .tel .i-tel {
		content: url("../images/top/i-tel.png");
		height: 16px;
		margin-right: 10px;
	}

	.sp-fixed .map {
		background-color: #8F8F8F;
	}

	.sp-fixed .map .i-map {
		content: url("../images/top/i-map.png");
		height: 18px;
		margin-right: 10px;
	}

	.page-top {
		bottom: 110px;
	}

	.nav.open {
		display: flex;
		justify-content: center;
		align-items: center;
		position: fixed;
		top: 65px;
		left: 0;
		width: 100%;
		height: calc(100vh - 65px);
		background: #fff;
		padding: 40px 20px;
	}

	.nav.open ul {
		display: block;
	}

	.nav.open li {
		margin-bottom: 25px;
	}

	.hamburger span {
		transition: .3s;
	}

	.hamburger.active span:nth-child(1) {
		transform: translateY(6px) rotate(45deg);
	}

	.hamburger.active span:nth-child(2) {
		opacity: 0;
	}

	.hamburger.active span:nth-child(3) {
		transform: translateY(-8px) rotate(-45deg);
	}

	.company {
		padding: 60px 20px;
		text-align: left;
	}

	.recruit-inner {
		display: block;
	}

	.recruit-text {
		width: 100%;
	}

	.recruit-images {
		width: 70%;
		height: 400px;
		margin: 40px auto;
	}

	.recruit-images .img01 {
		left: 0;
	}

	.contact-inner {
		flex-wrap: wrap-reverse;
	}

	.contact-images,
	.contact-content {
		width: 100%;
	}

	.contact-images {
		width: 70%;
		height: 400px;
		margin: 40px auto;
	}

	.contact-img02 {
		right: 0;
	}

	.contact-bg {
		width: 80%;
	}

	.contact-btns {
		justify-content: center;
		flex-wrap: wrap;
	}

	.footer-inner {
		display: block;
		padding: 0 20px;
	}

	.footer-nav {
		margin: 30px 0;
	}

	.footer-btn {
		display: none;
	}

	.footer-info .btn-more {
		margin: 50px auto 0;
	}
}

@media(max-width:480px) {
	body {
		font-size: 13px;
	}

	.nav a {
		font-size: 16px;
	}

	.header {
		height: 77px;
	}

	.header-inner {
		padding: 0 10px;
	}

	.logo {
		font-size: 20px;
	}

	.fv {
		height: 573px;
		margin-top: 77px
	}

	.fv-copy h2 {
		font-size: 32px;
	}

	.fv-copy {
		width: 90%;
		text-align: center;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.fv-copy p {
		font-size: 16px;
	}

	.fv-scroll {
		right: 50%;
		transform: translate(50%);
	}

	.section-title {
		font-size: 48px;
	}

	.section-title span {
		font-size: 64px;
	}

	.section-title small {
		font-size: 20px;
	}

	.greeting-content h3 {
		font-size: 48px;
	}

	.greeting-content h3 span {
		font-size: 64px;
	}

	.greeting-content .sub-ttl {
		font-size: 20px;
	}

	.company .section-title {
		font-size: 48px;
	}

	.recruit h4 {
		font-size: 24px;
	}

	.recruit-images img {
		width: 132px;
	}

	.btn-more {
		width: 211px;
		height: 53px;
		font-size: 12px;
	}

	.btn-arrow {
		right: 15px;
		width: 30px;
	}

	.recruit-images {
		width: 67%;
		height: 160px;
	}

	.contact-images {
		width: 67%;
		height: 160px;
	}

	.contact-images img {
		width: 132px;
	}

	.instagram {
		width: 90%;
		margin: 150px auto 0;
	}

	.access {
		display: none;
	}

	.page-top {
		right: 10px;
		bottom: 100px;
	}

	.greeting-box {
		height: 640px;
	}

	.greeting-image .gree-rwd {
		width: 90%;
		height: auto;
		margin: -120px auto 0;
	}

	.greeting-image {
		z-index: 9;
		padding-top: 0;
	}

	.company-info {
		grid-template-columns: 80px 1fr;
	}
}

@media(max-width:320px) {
	.fv-copy h2 {
		font-size: 28px;
	}

	.greeting-image .gree-rwd {
		margin-top: -20px;
	}
}