@charset "UTF-8";

/* ---------------------------------------------
	Header
--------------------------------------------- */
.l-header {
	background: #fff;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 100;
}
.l-header__inner {
	background: #fff;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-ms-flex-flow: row wrap;
	flex-flow: row wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	margin-left: auto;
	margin-right: auto;
	margin-top: 0;
	z-index: 101;
}
.l-header__logo {
	position: relative;
	-webkit-transition: all 0.8s;
	transition: all 0.8s;
	z-index: 10;
	margin: 0;
}
.l-header__logo a {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}
.l-header__logo a img {
	display: block;
	height: 100%;
	width: 100%;
}
.l-header.fixed {
	background-color: rgba(255, 255, 255, 0.95);
}

/* ------------------------------
	Navigation -- global
------------------------------ */
.c-gnav li a {
	color: #686564;
	font-size: 1.6rem;
	text-align: center;
	-webkit-transition: all 0.1s;
	transition: all 0.1s;
}
.c-gnav li.main {
	position: relative;
}
.c-gnav li.main > a {
	font-weight: 400;
	width: auto;
}
.c-gnav li.main.active > a {
	font-weight: 500;
}
.c-gnav li.main input[type="checkbox"] {
	display: none;
	position: absolute;
	right: 18px;
	top: 10px;
	z-index: 0;
}
.c-gnav li.main label {
	cursor: pointer;
	display: inline;
}
.c-gnav li .sub {
	height: 0;
	opacity: 0;
	-webkit-transition: all 0.4s linear;
	transition: all 0.4s linear;
}
.c-gnav li input[type="checkbox"]:checked ~ label ~ .sub {
	opacity: 1;
	visibility: visible;
}
.c-gnav__contact__form {
	text-align: center;
}
.c-gnav__contact__form span {
	font-size: 17.423px;
	font-size: 1.7423rem;
	font-weight: 700;
	text-align: center;
	position: relative;
}
.c-gnav__contact__form span::before {
	-o-background-size: auto 19.56px;
	-webkit-background-size: auto 19.56px;
	background-position: center;
	background-repeat: no-repeat;
	background-size: auto 19.56px;
	content: "";
	display: inline-block;
	height: 15.28px;
	margin-right: 10px;
	width: 19.56px;
	position: relative;
	top: 1px;
}

@media screen and (min-width: 1000px) {
	.l-header {
		background: transparent;
		height: 120px;
		transition: height 0.3s linear;
	}
	.l-header__inner {
		height: 100%;
		margin-top: 0;
		padding-left: 1.625vw;
		padding-right: 1.625vw;
		width: 100%;
		display: flex;
		align-items: center;
	}
	.l-header__logo a {
		display: block;
	}
	.l-header.fixed {
		height: calc(120px - 30px);
	}
	.l-header.fixed .l-header__inner {
		background: transparent;
	}

	main {
		margin-top: 120px;
	}

	.c-gnav__wrap {
		height: 0;
		overflow-y: hidden;
	}
	.c-gnav {
		display: -webkit-box;
		display: -ms-flexbox;
		display: inline-flex;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		-ms-flex-flow: row wrap;
		flex-flow: row;
		position: fixed;
		right: 15%;
		top: 50%;
		transform: translateY(-50%);
		z-index: 13;
		margin-bottom: 0;
	}

	.c-gnav li.main > a {
		padding-left: 2.2em;
		padding-right: 2.2em;
	}
	.c-gnav li.main > a::after {
		background-color: #686564;
		content: "";
		display: block;
		height: 1em;
		position: absolute;
		right: 0;
		top: 4px;
		width: 1px;
		z-index: 0;
	}
	.c-gnav li.main.c-gnav__mn-pc-last a::after {
		display: none;
	}
	.c-gnav li .sub {
		display: none;
		-webkit-transition: all 1s linear;
		transition: all 1s linear;
		width: 0;
		z-index: -1;
	}
	.c-gnav li input[type="checkbox"]:checked ~ label {
		display: none;
	}

	.c-gnav__contact {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: horizontal;
		-webkit-box-direction: reverse;
		-ms-flex-flow: row-reverse wrap;
		flex-flow: row-reverse wrap;
		height: 100%;
		position: fixed;
		right: 0;
		top: 0;
		width: auto;
		z-index: 12;
	}
	.c-gnav__contact__form {
		background-color: #414141;
		color: #fff;
		height: 100%;
		-webkit-transition: all 0.1s;
		transition: all 0.1s;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.c-gnav__contact__form:hover {
		color: rgba(255, 255, 255, 0.8);
		opacity: 1;
	}
	.c-gnav__contact__form span::before {
		background-image: url("../images/common/icon_mail.svg");
	}
}
@media screen and (min-width: 1280.02px) {
	.l-header__logo {
		height: 70px;
		width: 340px;
	}
	.c-gnav__contact__form {
		width: 200px;
	}
}

@media screen and (min-width: 1000px) and (max-width: 1280px) {
	.l-header__logo {
		height: 5.469vw;
		width: 26.563vw;
	}
	.c-gnav li a {
		font-size: 1.25vw;
	}
	.c-gnav__contact__form span {
		font-size: 1.361vw;
	}
	.c-gnav__contact__form {
		width: 15.625vw;
	}
	.c-gnav__contact__form span::before {
		-o-background-size: auto 1.528vw;
		-webkit-background-size: auto 1.528vw;
		background-position: center;
		background-repeat: no-repeat;
		background-size: auto 1.528vw;
		height: 1.194vw;
		margin-right: 0.781vw;
		width: 1.528vw;
		top: 0.078vw;
	}

	/* ------------------------------
    Navigation -- button
  ------------------------------ */
	.c-nav__btn {
		display: none;
	}
}

@media screen and (max-width: 999.98px) {
	.l-header {
		height: min(15vw, 120px);
	}
	main {
		margin-top: min(15vw, 120px);
		min-height: 600px;
	}
	.l-header__inner {
		height: 100%;
		padding-left: 4vw;
		padding-right: 5vw;
		display: flex;
		align-items: center;
		z-index: 101;
	}
	.l-header__logo {
		width: 55vw;
		max-width: 360px;
		height: 11.109vw;
	}
	/* ------------------------------
    Navigation -- button
  ------------------------------ */
	.c-nav__btn {
		cursor: pointer;
		display: block;
		outline: 0;
		position: relative;
		z-index: 12;
	}
	.c-nav__btn div {
		width: 5.982vw;
		height: 5.4vw;
		max-width: 42px;
		max-height: 38px;
		outline: 0;
		position: relative;
	}
	.c-nav__btn div span {
		background: #003352;
		display: block;
		height: min(0.75vw, 5px);
		left: 0;
		position: absolute;
		-webkit-transition: all 0.25s;
		transition: all 0.25s;
		width: 100%;
	}
	.c-nav__btn div span:nth-of-type(1) {
		top: 0;
	}
	.l-header.open .c-nav__btn div span:nth-of-type(1) {
		top: calc(50% - 1.5px);
		transform: translateY(-50%);
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	.c-nav__btn div span:nth-of-type(2) {
		top: 50%;
		transform: translateY(-50%);
	}
	.l-header.open .c-nav__btn div span:nth-of-type(2) {
		left: 50%;
		width: 0;
	}
	.c-nav__btn div span:nth-of-type(3) {
		bottom: 0;
	}
	.l-header.open .c-nav__btn div span:nth-of-type(3) {
		top: calc(50% - 1.5px);
		-webkit-transform: rotate(-45deg);
		transform: rotate(-45deg);
	}

	/* ------------------------------
    Navigation -- global (SP)
  ------------------------------ */
	.c-gnav__wrap {
		-webkit-overflow-scrolling: touch;
		background: rgba(65, 65, 65, 0.95);
		display: block;
		height: 0;
		left: 0;
		opacity: 0;
		overflow-y: hidden;
		position: fixed;
		scrollbar-face-color: #999;
		scrollbar-track-color: #999;
		top: min(15vw, 120px);
		-webkit-transition: all 0.4s linear;
		transition: all 0.4s linear;
		visibility: hidden;
		width: 100vw;
		z-index: 0;
	}
	.open .c-gnav__wrap {
		height: 100vh;
		opacity: 1;
		overflow-y: scroll;
		padding-bottom: min(25vw, 160px);
		visibility: visible;
		z-index: 3;
	}
	.c-gnav li a {
		color: #fff;
		padding-bottom: 13px;
		padding-top: 13px;
		text-align: left;
		font-size: 1.5rem;
		font-weight: normal;
	}
	.c-gnav li.main {
		border-top: 1px solid #fff;
	}
	.c-gnav li.main > a {
		padding-left: 6vw;
		width: calc(100% - (2em + 12vw));
	}
	.c-gnav li.main.active > a {
		/* color: #e97d0d; */
		color: #f6e11c;
	}
	.c-gnav li.main:nth-child(2) > a span:nth-of-type(2) {
		display: none;
	}
	.c-gnav li.main:nth-child(3) .sub ul li a span {
		display: none;
	}
	.c-gnav li.main:last-child {
		border-bottom: 1px solid #fff;
	}
	.c-gnav li.main label::after {
		color: #fff;
		content: "＋";
		display: block;
		font-size: 18px;
		font-size: 1.8rem;
		height: calc(1em + 10px);
		position: absolute;
		right: 0;
		text-align: center;
		top: 8px;
		width: calc(1.5em + 12vw);
		z-index: 0;
	}
	.c-gnav li .sub ul:first-of-type {
		border-top: 1px solid #fff;
	}
	.c-gnav li .sub ul:first-of-type li:first-of-type {
		border-top: none;
	}
	.c-gnav li .sub ul li {
		/* border-top: 1px solid rgba(255, 255, 255, 0.5); */
		border-top: 1px solid #4c7086;
		margin: auto;
		width: calc(100% - 12vw);
	}
	.c-gnav li input[type="checkbox"]:checked ~ label::after {
		content: "ー";
	}
	.c-gnav li input#mn_service[type="checkbox"]:checked ~ label ~ .sub {
		height: calc(53px * 4);
	}
	.c-gnav li input#mn_representative[type="checkbox"]:checked ~ label ~ .sub {
		height: calc(53px * 2);
	}
	.c-gnav li input#mn_company[type="checkbox"]:checked ~ label ~ .sub {
		height: calc(53px * 2);
	}
	.c-gnav__contact {
		margin-top: min(7vw, 50px);
		margin-bottom: 50px;
	}
	.c-gnav__contact__form {
		background-color: #fff;
		height: 35px;
		margin-left: auto;
		margin-right: auto;
		max-width: 320px;
		position: relative;
		width: 80%;
	}
	.c-gnav__contact__form span {
		color: #003352;
		line-height: 35px;
		padding-left: 9px;
		position: relative;
		font-size: 1.2196rem;
	}
	.c-gnav__contact__form span::before {
		background-image: url("../images/common/icon_mail_navy.svg");
		background-position: center;
		background-repeat: no-repeat;
		-webkit-background-size: auto 13.6916px;
		background-size: auto 13.6916px;
		content: "";
		display: inline-block;
		height: 10.698px;
		margin-right: 7.6792px;
		width: 13.6916px;
	}
	.c-gnav__contact__companyinfo {
		color: #fff;
		text-align: center;
		margin-bottom: 28px;
	}
	.c-gnav__contact__companyinfo .c-gnav__contact__companyinfo__name {
		font-size: 1.68rem;
	}
	.c-gnav__contact__companyinfo .c-gnav__contact__companyinfo__address {
		font-size: 1.296rem;
		margin-bottom: 0;
	}
	.c-gnav__contact__sns__wrap {
		color: #fff;
		margin-bottom: 25px;
		text-align: center;
	}
	.c-gnav__contact__sns__wrap .c-gnav__contact__sns__inner {
		display: inline-flex;
		column-gap: 30px;
	}
	.c-gnav__contact__sns__wrap .c-gnav__contact__sns__inner .c-gnav__contact__sns__title {
		font-weight: bold;
		font-size: 1.176rem;
	}
	.c-gnav__contact__sns__wrap .c-gnav__contact__sns__inner .c-gnav__contact__sns {
		display: flex;
		align-items: baseline;
		column-gap: 19px;
	}
	.c-gnav__contact__sns__wrap .c-gnav__contact__sns__inner .c-gnav__contact__sns__icons ul {
		display: flex;
		column-gap: 16px;
	}
}

@media screen and (max-width: 767.98px) {
	.c-gnav li.main {
		border-top: max(1px, 0.25vw) solid #fff;
		border-top: 0.25vw solid #fff;
	}
	.c-gnav li.main:last-child {
		border-bottom: max(1px, 0.25vw) solid #fff;
		border-bottom: 0.25vw solid #fff;
	}
	.c-gnav li .sub ul:first-of-type {
		border-top: max(1px, 0.25vw) solid #fff;
		border-top: 0.25vw solid #fff;
	}
	.c-gnav li.main > a {
		width: calc(100% - 15vw);
		line-height: 1.5;
		font-weight: 500;
		padding-left: 5vw;
		padding-top: 2.5vw;
		padding-bottom: 2.5vw;
		font-size: 3.75vw;
	}
	.c-gnav li.main label::after {
		font-size: 4.5vw;
		height: calc(1em + 2.5vw);
		top: 1.5vw;
		width: calc(15vw);
		font-weight: 500;
	}
	.c-gnav li .sub ul li {
		border-top: max(1px, 0.25vw) solid #4c7086;
		border-top: 0.25vw solid #4c7086;
	}
	.c-gnav li .sub ul li a {
		padding-bottom: 2vw;
		padding-top: 2.25vw;
		padding-left: -0.25vw;
		font-size: 3.75vw;
		line-height: 1.5;
		font-weight: normal;
	}
	.c-gnav li input#mn_service[type="checkbox"]:checked ~ label ~ .sub {
		height: calc(10.375vw * 4);
	}
	.c-gnav li input#mn_representative[type="checkbox"]:checked ~ label ~ .sub {
		height: calc(10.375vw * 2);
	}
	.c-gnav li input#mn_company[type="checkbox"]:checked ~ label ~ .sub {
		height: calc(10.375vw * 2);
	}
	.c-gnav__contact__companyinfo {
		margin-bottom: 4.75vw;
	}
	.c-gnav__contact {
		margin-top: 7vw;
		margin-bottom: 11.25vw;
	}
	.c-gnav__contact__form {
		height: 9.5vw;
		max-width: none;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.c-gnav__contact__form span {
		line-height: 1.5;
		padding-left: 0px;
		font-size: 3.049vw;
	}
	.c-gnav__contact__form span::before {
		-webkit-background-size: auto 3.423vw;
		background-size: auto 3.423vw;
		height: 2.675vw;
		margin-right: 1.92vw;
		width: 3.423vw;
	}
	.c-gnav__contact__companyinfo .c-gnav__contact__companyinfo__name {
		font-size: 4.2vw;
		letter-spacing: 0.07em;
		margin-bottom: 2.5vw;
		font-weight: 500;
	}
	.c-gnav__contact__companyinfo .c-gnav__contact__companyinfo__address {
		font-size: 3.15vw;
		line-height: 1.733333333333333;
		letter-spacing: 0.085em;
		font-weight: 400;
	}
	.c-gnav__contact__sns__wrap {
		margin-bottom: 0;
	}
	.c-gnav__contact__sns__wrap .c-gnav__contact__sns__inner {
		column-gap: 7.5vw;
	}
	.c-gnav__contact__sns__wrap .c-gnav__contact__sns__inner .c-gnav__contact__sns {
		column-gap: 4.75vw;
		align-items: center;
	}
	.c-gnav__contact__sns__wrap .c-gnav__contact__sns__inner .c-gnav__contact__sns__title {
		font-size: 2.94vw;
	}
	.c-gnav__contact__sns__wrap .c-gnav__contact__sns__inner .c-gnav__contact__sns__icons ul {
		column-gap: 4vw;
	}
	.c-gnav__contact__sns__wrap .c-gnav__contact__sns__inner .c-gnav__contact__sns__icons ul li a {
		width: 3.25vw;
		display: flex;
		align-items: center;
		transform: translateY(0.25vw);
	}
	.c-gnav__contact__sns__wrap .c-gnav__contact__sns__inner .c-gnav__contact__sns__icons ul li a img {
		vertical-align: bottom;
	}
	.open .c-gnav__wrap {
		padding-bottom: 30vw;
	}
}
