@charset "utf-8";
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
#container {
	padding-top: 0 !important;
}
.mainVisual {
	margin: -3.9rem 0 3.7rem;
	height: calc(100vh + 3.9rem);
	position: relative;
	overflow: hidden;
}
.mainVisual > div:not(.scroll) {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}
.mainVisual .img02,
.mainVisual .img08,
.mainVisual .img10 {
	z-index: 1;
}
.mainVisual img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.mainVisual .scroll {
	position: absolute;
	left: 0;
	width: 100%;
	bottom: 5.3rem;
	text-align: center;
	font-size: 2.05rem;
	font-weight: 500;
	z-index: 9;
}
.mainVisual .scroll a {
	position: relative;
	display: inline-block;
	color: #0080c8;
	letter-spacing: 0.08em;
}
.mainVisual .scroll a:hover {
	opacity: 0.7;
}
.mainVisual .scroll .line {
	position: absolute;
	top: calc(100% + 0.3rem);
	height: 5rem;
	width: 1px;
	left: 50%;
	background-color: #000;
	animation: scroll 2s ease infinite;
}
@keyframes scroll {
	0% {
		height: 0;
	}
	100% {
		height: 5rem;
	}
}
@keyframes scrollsp {
	0% {
		height: 0;
	}
	100% {
		height: 4.5rem;
	}
}
#main .news {
	width: 100rem;
	margin: 0 auto 9rem;
	padding-top: 3.8rem;
}
#main .news .ttl {
	margin-bottom: 1.8rem;
	color: #0080c8;
	font-size: 2.68rem;
	font-weight: 500;
	letter-spacing: 0.08em;
}
#main .news li {
	padding: 1.7rem 0 1.4rem;
	display: flex;
	letter-spacing: 0.07em;
	font-size: 1.5rem;
	border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}
#main .news a:hover {
	opacity: 0.7;
}
#main .news .time {
	width: 13.3rem;
	flex-shrink: 0;
	color: #0080c8;
}
#main .news a {
	text-decoration: underline;
}
#main .lpLink {
	width: 100.1rem;
	margin: 0 auto 9.1rem;
}
#main .lpLink a:hover {
	opacity: 0.7;
}
#main .business {
	margin-bottom: 14.7rem;
}
#main .business .slideBox {
	width: 120.2rem;
	margin: 0 auto;
}
#main .business .slideList {
	border: 1px solid #000;
	line-height: 1;
}
#main .business .slide {
	position: relative;
	vertical-align: top;
}
#main .business .link {
	position: absolute;
	right: 0;
	bottom: 0;
}
#main .business .link:hover {
	opacity: 0.7;
}
#main .business .link img {
	width: auto;
	height: 13.8rem;
}
#main .business .link01 img {
	height: 16.6rem;
}
#main .business .arrow {
	width: 24.8rem;
	margin: 2.8rem auto 0;
}
#main .business .arrow li {
	width: 11.6rem;
	cursor: pointer;
	transition: .3s;
}
#main .business .arrow li:hover {
	opacity: 0.7;
}
#main .project {
	max-width: 128rem;
	margin: 0 auto 7.6rem;
	padding-left: 0.7rem;
	position: relative;
}
#main .project .line {
	position: absolute;
	width: 182.6rem;
	left: -60.7rem;
	top: -11.7rem;
	z-index: 1;
	pointer-events: none;
}
#main .project .phoBox {
	max-width: 113.1rem;
	margin: 0 auto;
	position: relative;
}
#main .project .link01 {
	position: absolute;
	left: 28rem;
	top: 35.6rem;
	z-index: 2;
}
#main .project .link02 {
	position: absolute;
	right: 0.4rem;
	bottom: 13.2rem;
	z-index: 2;
}
#main .project .ttl {
	position: absolute;
	width: 80.4rem;
	left: 30.8rem;
	top: 3.9rem;
	pointer-events: none;
}
#main .interview {
	max-width: 128rem;
	margin: 0 auto 10.2rem;
	position: relative;
}
#main .interview .line {
	position: absolute;
	width: 147.3rem;
	left: -32.1rem;
	top: -7.8rem;
	z-index: 1;
	pointer-events: none;
}
#main .interview .pho {
	margin: 0 10.8rem 0 auto;
	width: 73.5rem;
}
#main .interview .textBox {
	position: absolute;
	left: 7.8rem;
	top: 1.8rem;
	width: 76.1rem;
}
#main .interview .ttl {
	margin-bottom: 3.4rem;
}
#main .career {
	margin-bottom: 6.2rem;
	position: relative;
}
#main .career .line {
	position: absolute;
	width: 83.2rem;
	left: 50%;
	margin-left: -10rem;
	top: -9.1rem;
}
#main .career .ttlImg {
	margin: 0 3.8rem 0.5rem 0;
}
#main .career .ttl {
	width: 107.9rem;
	margin: 0 auto;
}
#main .career .linkList {
	display: flex;
}
#main .career .linkList li {
	margin: 0 7.65rem;
	flex-shrink: 0;
	width: 46.1rem;
	position: relative;
}
#main .career .comLink {
	position: absolute;
	right: 0.3rem;
	bottom: 11.6rem;
}
#main .culture {
	max-width: 112.4rem;
	margin: 0 auto 12.3rem;
	position: relative;
}
#main .culture .line {
	position: absolute;
	width: 135.7rem;
	left: -24.2rem;
	top: 31.9rem;
	z-index: 1;
	pointer-events: none;
}
#main .culture .ttl {
	width: 88.3rem;
	margin: 0 0 -7.4rem 19.4rem;
}
#main .culture .phoBox {
	position: relative;
	width: 67.9rem;
}
#main .culture .comLink {
	position: absolute;
	right: 0.4rem;
	bottom: 18.2rem;
	z-index: 2;
}
#main .culture .phoBox02 {
	margin: -26.2rem 0.3rem 0 auto;
}
#main .survey {
	max-width: 112rem;
	margin: 0 auto -4rem;
	position: relative;
	z-index: 2;
}
#main .survey .line {
	position: absolute;
	width: 83.3rem;
	left: 31.6rem;
	top: -2.7rem;
	z-index: 1;
}
#main .survey .textBox {
	width: 55rem;
}
#main .survey .comLink {
	margin-top: 3.2rem;
	position: relative;
	z-index: 2;
}
#main .survey .pho {
	width: 46rem;
	margin: -10.8rem 4.3rem 0 0;
}
#main .voice {
	margin-bottom: 6.5rem;
	position: relative;
}
#main .voice .line {
	position: absolute;
	width: 83.2rem;
	left: 50%;
	margin-left: -105.6rem;
	top: 20.6rem;
}
#main .voice .ttlImg {
	width: 112.6rem;
	margin: 0 auto 3.2rem;
}
#main .voice .ttl {
	width: 72.1rem;
	margin-left: auto;
}
#main .voice .linkList {
	display: flex;
}
#main .voice .linkList li {
	margin: 0 5.2rem;
	flex-shrink: 0;
	width: 59.6rem;
	position: relative;
}
#main .voice .comLink {
	position: absolute;
	right: 4.6rem;
	bottom: 14.2rem;
}
#main .btmBox {
	margin-bottom: -5.5rem;
	position: relative;
}
#main .btmBox .line {
	position: absolute;
	width: 97.2rem;
	left: 50%;
	margin-left: -91.8rem;
	top: 7.4rem;
}
#main .btmBox .bgBox {
	padding: 31.7rem 0 19.3rem;
	background-color: #0080c8;
	clip-path: polygon(0 35rem, 100% 0, 100% calc(100% - 35rem), 0% 100%);
}
@media all and (min-width: 897px) {
	#main .btmBox ul {
		width: 111.4rem;
		margin: 0 auto;
		align-items: flex-start;
	}
	#main .btmBox li {
		margin-bottom: -1.9rem;
		width: 52rem;
	}
	#main .btmBox li:nth-child(2n) {
		margin: -16.5rem -0.5rem 0 0;
	}
	#main .btmBox a:hover {
		opacity: 0.7;
	}
	.comBtmBox {
		margin-top: 25.5rem;
		margin-bottom: 12.5rem;
	}
}
@media all and (max-width: 896px) {
	#main {
		padding-bottom: 9rem;
	}
	.mainVisual {
		margin: 0 0 5.4rem;
		height: 100vh;
	}
	.mainVisual .img06 {
		z-index: -1;
	}
	.mainVisual .scroll {
		bottom: 4.5rem;
		font-size: 1.7rem;
	}
	.mainVisual .scroll .line {
		margin-left: -0.2rem;
	}
	.mainVisual .scroll .line {
		animation: scrollsp 2s ease infinite;
	}
	#main .news {
		width: auto;
		margin: -1.1rem 2rem 5rem;
		padding-top: 0;
	}
	#main .news .ttl {
		margin-bottom: 1.4rem;
		font-size: 1.75rem;
	}
	#main .news li {
		padding: 0.9rem 0 1.1rem;
		font-size: 1rem;
	}
	#main .news .time {
		width: 7.2rem;
	}
	#main .lpLink {
		width: auto;
		margin: 0 2rem 4.8rem;
	}
	#main .lpLink img {
		width: 100%;
	}
	#main .business {
		margin-bottom: 7rem;
	}
	#main .business .slideBox {
		width: auto;
	}
	#main .business .slide {
		position: relative;
	}
	#main .business .ico {
		width: 3.8rem;
		position: absolute;
		right: 0.5rem;
		top: 0.7rem;
	}
	#main .business .arrow {
		width: 18.6rem;
		margin: 2.4rem auto 0;
	}
	#main .business .arrow li {
		width: 8.7rem;
	}
	#main .business .arrow li:hover {
		opacity: 1;
	}
	#main .business .link img {
		height: 4.8rem;
	}
	#main .business .link01 img {
		height: 5.78rem;
	}
	#main .project {
		max-width: inherit;
		margin: 0 1.9rem 7.9rem 1.8rem;
		padding-left: 0;
	}
	#main .project .line {
		width: 69.7rem;
		left: -36rem;
		top: 12.4rem;
	}
	#main .project .phoBox {
		max-width: inherit;
	}
	#main .project .link01 {
		left: 19.6rem;
		top: 4.8rem;
	}
	#main .project .link02 {
		right: auto;
		left: 0.3rem;
		bottom: 11.8rem;
	}
	#main .project .ttl {
		width: 28.7rem;
		left: 4.7rem;
		top: 19.4rem;
	}
	#main .interview {
		max-width: inherit;
		margin: 0 auto 5.4rem;
	}
	#main .interview .line {
		width: 59.1rem;
		left: -23.2rem;
		top: -3.2rem;
	}
	#main .interview .pho {
		margin: -6.8rem 2rem 0 4.2rem;
		width: auto;
	}
	#main .interview .textBox {
		margin-left: 2rem;
		position: static;
		width: 33.5rem;
	}
	#main .interview .ttl {
		margin-bottom: 1.4rem;
	}
	#main .career {
		margin-bottom: 7.2rem;
	}
	#main .career .line {
		width: 31.5rem;
		left: 8rem;
		margin-left: 0;
		top: -2.3rem;
	}
	#main .career .ttlImg {
		margin: 0 0.3rem 2rem 0;
	}
	#main .career .ttl {
		width: 34rem;
	}
	#main .career .linkList li {
		margin: 0 2.8rem;
		width: 19.8rem;
	}
	#main .career .comLink {
		right: -0.7rem;
		bottom: 2.5rem;
	}
	#main .culture {
		max-width: inherit;
		margin: 0 auto 5.3rem;
	}
	#main .culture .line {
		width: 57.8rem;
		left: -16.2rem;
		top: 21.2rem;
	}
	#main .culture .ttl {
		width: 33.7rem;
		margin: 0 0 1rem 2rem;
	}
	#main .culture .phoBox {
		width: auto;
		margin: 0 6.5rem 0 1.8rem;
	}
	#main .culture .comLink {
		right: -4.6rem;
		bottom: 7.6rem;
	}
	#main .culture .phoBox01 .comLink {
		bottom: 9.6rem;
	}
	#main .culture .phoBox02 {
		margin: -2.1rem 6.4rem 0 1.8rem;
	}
	#main .survey {
		max-width: inherit;
		margin: 0 2rem 3.5rem;
		display: block;
	}
	#main .survey .line {
		width: 32.7rem;
		left: 1.9rem;
		top: 18.5rem;
	}
	#main .survey .textBox {
		width: 33.4rem;
		position: relative;
		z-index: 1;
	}
	#main .survey .comLink {
		margin-top: 0;
		position: absolute;
		left: 9.6rem;
		bottom: -17rem;
	}
	#main .survey .pho {
		width: 19.8rem;
		margin: -1rem 0 0;
	}
	#main .voice {
		margin-bottom: 3.6rem;
	}
	#main .voice .line {
		width: 32.7rem;
		left: -14rem;
		top: 14.1rem;
		margin-left: 0;
	}
	#main .voice .ttlImg {
		width: auto;
		margin: 0 auto 7rem;
	}
	#main .voice .ttl {
		width: 33.7rem;
		margin-left: 1.7rem;
	}
	#main .voice .linkList li {
		margin: 0 2.2rem;
		width: 25.6rem;
	}
	#main .voice .comLink {
		right: 0.1rem;
		bottom: 3.9rem;
	}
	#main .btmBox {
		margin-bottom: 0;
	}
	#main .btmBox .line {
		width: 38.2rem;
		left: -17.4rem;
		margin-left: 0;
		top: -0.7rem;
	}
	#main .btmBox .bgBox {
		padding: 5.3rem 2.2rem 7.9rem 1.9rem;
		clip-path: polygon(0 10.3rem, 100% 0, 100% calc(100% - 10.3rem), 0% 100%);
	}
	#main .btmBox ul {
		display: block;
	}
	#main .btmBox li:not(:last-child) {
		margin-bottom: -2rem;
	}
}

.mfp-container {
	padding: 0;
}
.mfp-container:before {
	display: none;
}
.mfp-wrap {
	top: 0 !important;
	position: fixed !important;
}
.mfp-bg {
	opacity: 1;
	background-color: #000;
}
.mfp-content {
	height: 100%;
	display: flex;
    align-items: center;
    justify-content: center;
}
.mfp-container img.mfp-img {
	padding: 0;
	max-height: 100dvh;
}
.mfp-container .slideList {
	aspect-ratio: 3196 / 1796;
    height: auto;
    width: auto;
    max-height: 100%;
    max-width: 100%;
    margin: 0 auto;
}
.mfp-container .slick-slide {
	position: relative;
}
.mfp-container .slick-slide .slide {
    vertical-align: top;
}
.mfp-container .slideList .link {
	position: absolute;
	right: 0;
	bottom: 0;
}
.mfp-container .slideList .link img {
	height: 4rem;
}
.mfp-container .slideList .link01 img {
	height: 4.88rem;
}
.guide {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 2.4rem;
	background: rgba(0,0,0,.72);
	color: #fff;
	text-align: center;
}
.guide.show { display: flex; }
.guide .phone {
	width: 5.8rem;
	height: 9.4rem;
	margin: 0 auto 2.2rem;
	border: 3px solid #fff;
	border-radius: 1.2rem;
	animation: turn 1.8s ease-in-out infinite;
}
.guide strong {
	display: block;
	font-size: 1.8rem;
	margin-bottom: 0.8rem;
}
.guide span {
	display: block;
	color: rgba(255,255,255,.78);
	font-size: 1.3rem;
	line-height: 1.6;
}
@keyframes turn {
	0%, 20% { transform: rotate(0deg); }
	55%, 85% { transform: rotate(90deg); }
	100% { transform: rotate(0deg); }
}

@media (orientation: landscape) {
	.guide { display: none !important; }
}

button.mfp-close {
	position: absolute;
	top: max(14px, env(safe-area-inset-top));
	right: max(14px, env(safe-area-inset-right));
	z-index: 10001;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: rgba(255,255,255,.18);
	color: #fff;
	font-size: 28px;
	opacity: 1;
}
button.mfp-close:active {
	top: max(14px, env(safe-area-inset-top));
}