/* -------sns icon--------- */
@font-face {
  font-family: 'sns_ico';
  src:
    url('../fonts/sns_ico.ttf?z7sza2') format('truetype'),
    url('../fonts/sns_ico.woff?z7sza2') format('woff'),
    url('../fonts/sns_ico.svg?z7sza2#sns_ico') format('svg');
  font-weight: normal;
  font-style: normal;
}

i.snsIcon {
  font-family: 'sns_ico' !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

	color: #fff;
}

.icon-search:before { content: "\e908";}
.icon-arrow1_left:before { content: "\e90c";}
.icon-arrow1_bottom:before { content: "\e90d";}
.icon-arrow1_right:before { content: "\e90e";}
.icon-arrow1_top:before { content: "\e90f";}
.icon-arrow2_left:before { content: "\e910";}
.icon-arrow2_bottom:before { content: "\e911";}
.icon-arrow2_right:before { content: "\e912";}
.icon-arrow2_top:before { content: "\e913";}
.icon-link:before { content: "\e914";}
.icon-note:before { content: "\e915";}
.icon-ap:before { content: "\e900";}
.icon-blo:before { content: "\e901";}
.icon-fb:before { content: "\e902";}
.icon-hp:before { content: "\e903";}
.icon-in:before { content: "\e904";}
.icon-line:before { content: "\e905";}
.icon-spo:before { content: "\e906";}
.icon-tt:before { content: "\e907";}
.icon-yt:before { content: "\e909";}
.icon-x:before { content: "\e90a";}
.icon-wb:before { content: "\e90b";}
.icon-arrow3_top:before { content: "\ea3a";}
.icon-arrow3_right:before { content: "\ea3c";}
.icon-arrow3_bottom:before { content: "\ea3e";}
.icon-arrow3_left:before { content: "\ea40";}


/* ////////////////////////////////////////////////////////////////////////////////

	Common

//////////////////////////////////////////////////////////////////////////////// */
html {
	scroll-behavior: smooth;
}
body {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
	background-color: #f8f8f8;
	color: #000;
  font-size: min(3.2vw, 14px);
	line-height: 1.8;
	letter-spacing: 0.08em;
	-webkit-text-size-adjust: 100%;
}
img {
	width: 100%;
	vertical-align: middle;
}
li {
	list-style: none;
}
a {
	transition: all 0.5s ease;
	text-decoration: none;
	color: #000;
}


.anim {
	opacity: 0;
	transition: all .4s ease-out;
}
.anim.on {
	opacity: 1;
}

.contentWrap {
  max-width: 1320px;
  padding: 0 min(5vw, 60px);
  margin: 0 auto;
}
.contentWrap > h2 {
  text-align: center;
  font-size: min(8vw, 48px);
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  padding-top: min(4vw, 80px);
  margin-bottom: min(10vw, 80px);
}

@keyframes op {
	0% { opacity: 0;}
	100% { opacity: 1;}
}

@media (hover: hover) {
	a:hover { opacity: 0.6;}
}

@media screen and (min-width:821px) {

	.sp { display: none;}

}
@media screen and (max-width: 820px) {

	.pc { display: none;}

}


/* ////////////////////////////////////////////////////////////////////////////////

	menu button

//////////////////////////////////////////////////////////////////////////////// */
header {
	opacity: 0;
	animation: op 1s ease-out 1s forwards;

  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;

  mix-blend-mode: exclusion;
  backdrop-filter: blur(5px);
}
.mainNav {
  display: flex;
	flex-wrap: wrap;
	list-style: none;
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
}
.mainNav a {
  font-size: min(3.6vw, 18px);
  font-weight: 600;
  text-decoration: none;
  color: #fff;
}
.navWrap {
  display: flex;
  align-items: center;
  gap: min(4vw, 20px);
}

.navWrap .snsList {
  line-height: 0;
}
.navWrap .snsList i.snsIcon {
  font-size: min(6vw, 26px);
}

@media screen and (min-width:821px) {
	header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		padding: min(7vw, 50px) min(5vw, 40px);
		position: sticky;
		top: 0;
		left: 0;
		z-index: 1;
/*
    mix-blend-mode: exclusion;
    backdrop-filter: blur(5px);
*/
	}
	header .hdrLogo {
		width: 240px;
    line-height: 0;
	}
  #agent header .hdrLogo {
		width: 320px;
  }
	#globalNav {
		max-width: calc(100% - 200px);
	}
	.mainNav li {
		margin-left: 20px;
	}
	.mainNav li:first-child {
		margin-left: 0;
	}

	#menuButton {
		display: none;
	}
}
@media screen and (max-width:820px) {
	header {
		position: sticky;
		padding: min(7vw, 50px) min(5vw, 40px);
    background-color: rgba(0, 0, 0, 1);
	}
	header .hdrLogo {
		width: 30vw;
    line-height: 0;
	}
  #agent header .hdrLogo {
      width: 48vw;
      line-height: 0;
  }
  header.active {
    mix-blend-mode: normal;
  }


	#menuButton {
		display: block;
		width: 40px;
		height:40px;
		position: fixed;
    top: min(8.6vw, 63px);
    right: 2vw;
    transform: translateY(-50%);
		z-index: 9999;
	}
	#menuButton span {
		display: block;
		background: #fff;
		width: 24px;
		height: 2px;
		position: absolute;
		left: 8px;
		transition: all 0.4s;
	}
	#menuButton.active span,
	#menuButton.mvOn span {
		background: #fff;
	}
	#menuButton span:first-child { top: 12px;}
	#menuButton span:nth-child(2) { margin-top: -1px; top: 50%;}
	#menuButton span:nth-child(3) { bottom: 12px;}

	#menuButton.active span:first-child {
		transform: translateY(7px) rotate(45deg);
	}
	#menuButton.active span:nth-child(2) { opacity: 0;}
	#menuButton.active span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	#globalNav {
		display: none;
		position: fixed;
		top: 0px;
		left: 0px;
		z-index: 2;
		background-color: #222222;
	}
	.navWrap {
		height: 100vh;
		width: 100vw;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: min(8vw, 50px);
	}
	.mainNav {
		flex-direction: column;
		justify-content: center;
		align-items: center;
		width: 100vw;
	}
	.mainNav a {
		color: #fff;
		font-size: 5.2vw;
		line-height: 2;
		letter-spacing: 0.06em;
	}

}


footer {
  padding: min(10vw, 80px) min(6vw, 60px);
}
footer .copyright {
  text-align: center;
  font-size: min(3vw, 12px);
}


main {
  padding-bottom: min(8vw, 60px);
}

.indexHead {
  padding: min(16vw, 160px) min(5vw, 60px);
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
}
.indexHead .catchCopy {
  /* font-size: 4.2vw; */
  font-size: 3.8vw;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 0.4em;
}
.indexHead .leadTxt {
  font-size: 1.4vw;
}

@media screen and (max-width: 820px) {

  .indexHead .catchCopy {
    font-size: 5.8vw;
    letter-spacing: 0.02em;
  }
  .indexHead .leadTxt {
    font-size: 2.6vw;
    letter-spacing: 0.02em;
  }

}

.backBtn {
  display: flex;
  justify-content: center;
  margin-top: min(10vw, 100px);
}
.backBtn a {
  display: block;
  font-weight: 600;
  font-size: min(3.6vw, 18px);
  background: url("../images/ico_arrow_prev.png") no-repeat left center / 9px;
  line-height: 1.2;
  padding-left: min(4vw, 20px);
}

/* ////////////////////////////////////////////////////////////////////////////////

	Grid List

//////////////////////////////////////////////////////////////////////////////// */
.listHead {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 min(5vw, 60px);
  margin-bottom: min(7vw, 40px);
}
.listHead .listTitle {
  display: flex;
  align-items: center;
  gap: 0 min(6vw, 30px);
}
.listHead .listTitle h2 {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-size: min(6vw, 32px);
}
.listHead .listTitle select {
  border-bottom: #000 solid 1px;
  min-width: 160px;
  font-size: min(3.4vw, 16px);
  padding: min(1vw, 2px) min(6vw, 30px) min(1vw, 2px) 0;
  position: relative;
  background: url("../images/ico_arrow_down.png") no-repeat right center / 15px;
}
.listHead .listTitle select:focus {
  outline: none;
}

.moreBtn a {
  display: block;
  font-weight: 600;
  font-size: min(3.6vw, 18px);
  background: url("../images/ico_arrow_next.png") no-repeat right center / 9px;
  line-height: 1.2;
  padding-right: min(4vw, 20px);
}

.gridList {
  position: relative;
  /* max-width: 5000px; */
  margin: 0 min(4vw, 40px);
  /* margin: 0 auto; */
  min-height: 500px;
}
.gridList > li {
  position: absolute;
	background-color: #fff;
	color: #000;
	padding: min(2vw, 20px) min(2vw, 20px) min(4vw, 30px);
  overflow: hidden;
}
.gridList .img {
	width: 100%;
}

.gridList .title {
  margin-top: min(4vw, 20px);
  margin-bottom: min(2vw, 10px);
  font-size: min(2.6vw, 14px);
  font-weight: 600;
  line-height: 1.6;
  padding: 0 min(1vw, 5px);
}
.gridList .title a {
  color: #000;
}
.gridList .tag {
  color: #666;
  font-size: min(2.7vw, 12px);
  padding: 0 min(1vw, 5px);
}


@media screen and (min-width: 1200px) {
	.gridList {
		column-width: 360px;
	}
}
@media screen and (max-width: 820px) {

  .listHead {
    align-items: flex-end;
  }
  .listHead .listTitle {
    flex-direction: column;
    align-items: flex-start;
  }
  .listHead .listTitle h2 {
    margin-bottom: min(3vw, 15px);
  }

	.gridList {
		column-count: 2;
		column-width: auto;
	}

  .gridList .title,
  .gridList .tag {
    line-height: 1.5;
  }
}


/* ////////////////////////////////////////////////////////////////////////////////

	Detail

//////////////////////////////////////////////////////////////////////////////// */
.detailHead {
  margin-bottom: min(10vw, 80px);
}
.detailHead h3 {
  font-size: min(4.6vw, 24px);
  font-weight: 800;
  margin-bottom: min(4vw, 20px);
  line-height: 1.7;
}
.detailHead > p {
  color: #666;
  font-size: min(2.8vw, 14px);
}

.detailBody {
  margin-bottom: min(8vw, 60px);
}
.detailBody .mainImg {
  line-height: 0;
  margin-bottom: min(8vw, 60px);
}
.detailBody .mainImg img {
  width: 100%;
}

.worksDetailList {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: min(3vw, 50px) 0;
}
.worksDetailList li {
  width: 48%;
  line-height: 0;
}

.worksCredit {
  margin-top: min(8vw, 60px);
  border-top: #666 solid 1px;
  border-bottom: #666 solid 1px;
  padding: min(4vw, 20px) 0 min(7vw, 40px);
}
.worksCredit .ttl {
  color: #666;
  margin-bottom: min(6vw, 30px);
}
.worksCredit .creditList {
  display: flex;
  flex-wrap: wrap;
}
.worksCredit .creditList dt {
  width: 30%;
  margin-bottom: min(2vw, 10px);
  font-size: min(3vw, 14px);
}
.worksCredit .creditList dd {
  width: 70%;
  font-size: min(3.2vw, 16px);
  font-weight: bold;
  margin-bottom: min(2vw, 10px);
}

@media screen and (max-width: 820px) {

  .worksCredit .creditList dt {
    width: 40%;
  }
  .worksCredit .creditList dd {
    width: 60%;
  }

}

/* ////////////////////////////////////////////////////////////////////////////////

	Company

//////////////////////////////////////////////////////////////////////////////// */
.companyList {
  max-width: 960px;
  margin: auto;
}
.companyList > div {
  display: flex;
  padding: min(4vw, 32px) 0;
  border-bottom: #666 solid 1px;
}
.companyList > div dt {
  width: 24%;
}
.companyList > div dd {
  width: 76%;
  font-weight: bold;
}

.focLink {
  margin: min(10vw, 80px) auto 0;
  width: min(80vw, 520px);
}
.focLink a {
  display: block;
  position: relative;
  background-color: #fff;
  border: #000 solid 1px;
  width: 100%;
  padding-top: 27%;
}
.focLink .logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 45%;
}
.focLink .icoBlank {
  position: absolute;
  top: 10%;
  right: 5%;
  width: min(2vw, 13px);
}

/* ////////////////////////////////////////////////////////////////////////////////

	Agent

//////////////////////////////////////////////////////////////////////////////// */

#starField {
  position: fixed;
  top: 0; left: 0;
  width: 100vw;
  height: 100vh;
  z-index: -1;
  opacity: 0;
  animation: starField 2s ease-out 0.6s forwards;
}
@keyframes starField {
  0% { opacity: 0;}
  100% { opacity: 1;}
}

#agent {
  color: #fff;
}

.agentList {
  display: flex;
  flex-wrap: wrap;
  gap: min(8vw, 60px) calc((100% - 24% * 4) / 3);
  max-width: 1320px;
  padding: 0 min(5vw, 60px);
  margin: 0 auto;
}
.agentList li {
  width: 23%;
}
.agentList li .thumb {
  line-height: 0;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  margin-bottom: min(3vw, 15px);
}
.agentList li .thumb a {
  display: block;
  width: 100%;
  height: 100%;
}
.agentList li .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.agentList li .name {
  line-height: 1.6;
  font-weight: bold;
  margin-bottom: min(1.4vw, 7px);
}
.agentList li .job {
  color: #777;
  font-size: min(2.8vw, 12px);
  line-height: 1.4;
}

.modalWrap {
  height: 100%;
  border: #fff solid 1px;
  box-sizing: border-box;
  overflow: auto;
  background-color: #111;
}
.modalWrap > div {
  background-color: #111;
  padding: min(5vw, 40px) min(4vw, 32px);
}
.modalWrap .modalFlex {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.modalWrap .modalFlex .thumb {
  width: 34%;
}
.modalWrap .modalFlex .textWrap {
  width: 60%;
  padding-bottom: min(2vw, 24px);
}
.modalWrap .modalFlex .textWrap .name {
  font-size: min(4.6vw ,22px);
  font-weight: bold;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.modalWrap .modalFlex .textWrap .job {
  color: #777;
  font-size: min(2.8vw, 12px);
  line-height: 1.4;
  letter-spacing: 0.02em;
  margin-bottom: min(4vw, 24px);
}
.modalWrap .modalFlex .textWrap .nameJp {
  font-size: min(5.2vw, 26px);
  font-weight: 500;
  margin-bottom: min(1.4vw, 6px);
}
.modalWrap .modalFlex .textWrap .jobJp {
  font-size: min(2.8vw, 12px);
  line-height: 1.4;
}
.modalWrap .plofText {
  margin-top: min(4vw, 32px);
  line-height: 2.2;
}
.modalWrap .btnWrap {
  display: flex;
  gap: min(3vw, 24px);
  margin-top: min(4vw, 32px);
}
.modalWrap .btnWrap a {
	width: 100%;
	max-width: 160px;
	min-width: fit-content;
	display: block;
	padding: 0.8em;
	font-size: min(3.2vw, 14px);
	font-weight: bold;
	text-align: center;
	text-decoration: none;
  background-color: #fff;
	color: #000;
}


@media screen and (max-width: 820px) {

  .agentList {
    gap: min(8vw, 60px) calc((100% - 32% * 3) / 2);
  }
  .agentList li {
    width: 32%;
  }
  .agentList li .name {
    line-height: 1.5;
  }


  .modalWrap .modalFlex {
    flex-direction: column;
  }
  .modalWrap .modalFlex .thumb {
    width: 70%;
    max-width: 320px;
    margin: auto;
  }
  .modalWrap .modalFlex .textWrap {
    width: 100%;
    margin-top: min(4vw, 24px);
  }


}


/* ////////////////////////////////////////////////////////////////////////////////

	フォーム

//////////////////////////////////////////////////////////////////////////////// */
.hidden-fields-container {
  display: none;
}

.contentWrap.form {
	max-width: 980px;
}
.contact__memo {
	padding: min(4vw, 30px);
	border: 1px solid #555;
	line-height: 1.8;
	letter-spacing: .08em;
	margin-bottom: min(8vw, 64px);
}
.contact__memo p + p {
	margin-top: 1em;
}
.contact__memo p span {
	font-size: 0.94em;
}
.contact__caution {
	margin-bottom: min(4vw, 40px);
	font-size: min(3vw, 12px);
	color: #cf2e2e;
}
.form__label-icon {
	font-size: min(3vw, 12px);
	color: #cf2e2e;
	margin-left: 0.5em;
	margin-bottom: 0.2em;
	vertical-align: text-top;
	line-height: 1.6;
}
.form__group {
	border: none;
	display: flex;
	margin-bottom: min(6vw, 40px);
}
.form__label {
	width: 180px;
	font-size: 14px;
	padding-top: min(2vw, 10px);
}
.form__item {
	width: calc(100% - 180px);
}
.form__input,
.form__select,
.form__textarea {
	border: #555 solid 1px;
	width: 100%;
	padding: min(3vw, 12px) min(3vw, 18px);
	font-size: min(3.2vw, 14px);
}
.form__textarea {
	height: min(36vw, 180px);
}
.form__item--between {
	display: flex;
	justify-content: space-between;
}
.form__item--between > span {
	width: 48%;
}

.form__item--start {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 42vw;
	gap: min(3vw, 20px) 6%;
	width: calc(100% - 180px);
}
.form__item--start .form__item__inner {
	width: 47%;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.form__item--start .form__item__inner > span:first-child {
	width: calc(100% - 30px);
}
.form__item--start .form__item__inner > span:last-child {
	width: 20px;
	font-size: min(3vw, 12px);
}

.form__item__inner--row {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.form__item__inner--row + .form__item__inner--row {
	margin-top: min(3vw, 20px);
}
.form__item__inner--row > span:first-child {
	display: block;
	width: 20%;
	font-size: min(3vw, 12px);
}
.form__item__inner--row > span:last-child {
	display: block;
	width: 75%;
}

.radio__btn {
	display: flex;
	justify-content: space-between;
	padding-top: min(2vw, 10px);
}
.radio__btn label {
	cursor: pointer;
	font-size: min(3vw, 12px);
}
.radio__btn input[type="radio"] {
	appearance: none;
	display: none;
}
.radio__btn .wpcf7-list-item-label {
	position: relative;
	padding-left: 24px;
}
.radio__btn .wpcf7-list-item-label::before {
	position: absolute;
	top: 51%;
	left: 0;
	transform: translateY(-50%);
	margin-right: min(1vw, 4px);
	content: '';
	display: block;
	background-color: #fff;
	width: 20px;
	height: 20px;
	border: 1px solid #000;
	border-radius: 50%;
}
.radio__btn input[type="radio"]:checked + .wpcf7-list-item-label::after {
	content: '';
	display: block;
	position: absolute;
	top: 51%;
	left: 10px;
	transform: translate(-50%, -50%);
	background-color: #000;
	width: 12px;
	height: 12px;
	border-radius: 50%;
}

.form__wrapper--gray {
	background-color: #f5f5f5;
	padding: min(4vw, 20px);
	width: calc(100% - 180px);
}
.form__item--file {
	display: block;
	line-height: 1.5;
	border: 1px solid #555;
	text-align: center;
	width: 100%;
	padding: min(3vw, 18px) 0;
	margin: 0;
	cursor: pointer;
}
.filename {
	margin-top: min(4vw, 20px);
}
.filename.on {
	color: #cf2e2e;
}
.form__input__caution {
	font-size: min(3vw, 12px);
	margin-top: min(4vw, 20px);
	line-height: 1.6;
	letter-spacing: .08em;
}
input[type=file] {
	display: none;
}

.form__btn {
	display: block;
	max-width: 280px;
	height: min(14vw, 70px);
	width: 60vw;
	border: #000 solid 2px;
	margin: min(10vw, 80px) auto 0;
	transition: all 0.3s ease-out;
}

@media screen and (min-width: 821px) {

	.contentWrap.form .sp {
		display: none;
	}

	.form__btn:hover {
		border: #000 solid 4px;
	}
}
@media screen and (max-width: 820px) {

	.contentWrap.form .pc {
		display: none;
	}

	.contact__caution {
		font-size: min(3vw, 14px);
	}
	.form__group {
		display: block;
	}
	.form__label {
		display: block;
		font-size: min(3.4vw, 16px);
		padding-top: 0;
		margin-bottom: min(1.4vw, 12px);
	}
	.form__label,
	.form__item,
	.form__wrapper--gray {
		width: 100%;
	}
	.radio__btn {
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: min(3vw, 20px) 0;
	}
	.radio__btn .wpcf7-list-item {
		width: 45%;
		max-width: 240px;
	}
}

.notFound p {
    text-align: center;
    font-size: min(4vw, 20px);
    margin-bottom: min(8vw, 60px);
}