/* -------sns icon--------- */
@font-face {
	font-family: 'sns_ico';
	src:
		url('../fonts/sns_ico.ttf?sij4de') format('truetype'),
		url('../fonts/sns_ico.woff?sij4de') format('woff'),
		url('../fonts/sns_ico.svg?sij4de#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: #222;
}

.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-tw:before { content: "\e908";}
.icon-yt:before { content: "\e909";}
.icon-x:before { content: "\e90a";}

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

	Common

//////////////////////////////////////////////////////////////////////////////// */
html {
	scroll-behavior: smooth;
	/* -webkit-font-smoothing: antialiased; */
}
body {
	position: relative;
	font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
	font-size: min(3.4vw, 16px);
	line-height: 1.8;
	letter-spacing: 0.06em;
}
main {
	padding-top: 70px;
}
section {
	padding: min(8vw, 80px) 0;
}
h2 + section {
	padding-top: min(12vw, 80px);
}
.mainVisual + section {
	padding-top: min(16vw, 160px);
}

.innerWrap {
	max-width: 1248px;
	margin: auto;
	padding: 0 min(6vw, 64px);
}

* {
	outline:none;
}
img {
	width: 100%;
	vertical-align: middle;
}
li {
	list-style: none;
}
a {
	transition: all 0.5s ease;
	text-decoration: none;
	color: #222;
}

h2 {
	font-family: "Special Gothic Expanded One", sans-serif;
  font-weight: 400;
  font-style: normal;
	text-align: center;
	font-size: min(7.4vw, 42px);
	letter-spacing: 0.08em;
	margin-bottom: min(4vw, 24px);
}


.btnWrap {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: min(6vw, 64px);
}
.btnWrap a {
	width: 50vw;
	max-width: 250px;
	min-width: fit-content;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: min(3vw, 16px) min(5.5vw, 32px);
	font-size: min(3.4vw, 16px);
	font-weight: bold;
	text-align: center;
	text-decoration: none;
	background-color: #fff;
	border-radius: 100px;
	border: #222 solid 2px;
}
.btnWrap a img {
	width: 1em;
}

.anim {
	opacity: 0;
	transition: all .4s ease-in;
}
.anim.on {
	opacity: 1;
}
@keyframes op {
	0% { opacity: 0;}
	100% { opacity: 1;}
}

@media screen and (min-width:821px) {
	.sp {display: none;}
}
@media screen and (max-width:820px) {
	.pc {display: none;}

	main {
		padding-top: min(19.5vw, 90px);
	}
}
@media (hover: hover) {
	a:hover {
		opacity: 0.6;
	}
}

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

	menu button

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

header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 6px 24px;
	background-color: #fff;
	border-bottom: #222 solid 1px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;

	/* opacity: 0;
	animation: op 1s ease-out 1s forwards; */
}
header h1.hdrLogo {
	position: relative;
	font-family: "Special Gothic Expanded One", sans-serif;
  font-weight: 400;
  font-style: normal;
	font-size: min(7.4vw, 32px);
	letter-spacing: 0.1em;
	z-index: 10;
}
.mainNav {
  display: flex;
	gap: 0 32px;
	list-style: none;
}
.mainNav a {
  font-size: 16px;
  text-decoration: none;
}
header > a {
	font-size: min(14px);
}

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

	#menuButton {
		display: none;
	}
}
@media screen and (max-width:820px) {

	header {
		padding: 0;
		border-bottom: none;
	}
	.spHdrWrap {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		padding: min(3vw,16px) min(6vw, 24px);
		background-color: #fff;
		border-bottom: #222 solid 1px;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 100;
	}
	#menuButton {
		display: block;
		position: relative;
		width: 40px;
		height:40px;
		z-index: 9999;
	}
	#menuButton span {
		display: block;
		background: #222;
		width: 100%;
		height: 2px;
		position: absolute;
		left: 0;
		transition: all 0.4s;
	}
	#menuButton span:first-child { top: 9px;}
	#menuButton span:nth-child(2) { margin-top: -1px; top: 50%;}
	#menuButton span:nth-child(3) { bottom: 9px;}

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

	#globalNav {
		display: none;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 10;
	}
	.navWrap {
		display: flex;
		flex-direction: column;
		justify-content: center;
		background-color: #fff;
		height: 100vh;
		width: 100vw;
		padding: min(20vw, 90px) min(6vw, 64px) 0;
	}
	.navWrap .partitionWrap {
		border-bottom: #222 solid 1px;
		padding-bottom: 8vh;
		margin-bottom: 5vh;
	}
	.mainNav {
		flex-direction: column;
		justify-content: center;
		align-items: center;
		background-color: #fff;
	}
	.mainNav a {
		/* color: #fff; */
		font-size: 4vh;
		line-height: 2.2;
		letter-spacing: 0.1em;
	}
	.navWrap .btnWrap a {
		width: 75vw;
    max-width: 420px;
		font-size: 2.6vh;
		justify-content: center;
	}
	.navWrap > a {
		text-align: center;
		font-size: 2.4vh;
	}
}

.bgWrap {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	z-index: -1;
	overflow: hidden;
}
.topPage .bgWrap  {
	opacity: 0;
	animation: op 1s ease-out 0.5s forwards;
}
.bgWrap > div {
	position: absolute;
	overflow: hidden;
}
.bgWrap > div.circle {
	aspect-ratio: 1/1;
	border-radius: 100%;
}
.bgWrap > div.triangle {
	aspect-ratio: 15/13;
	width: 40vw;
	clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
.bgWrap > div::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
	content: "";
	background-image: url(../images/noise.jpg);
	background-size: 400px;
	background-repeat: repeat;
	opacity: 0.4;
	mix-blend-mode: soft-light;
}
.bgWrap > div.c-1 {
	width: 46.6vw;
	top: -24vw;
	left: -6vw;
	background: linear-gradient(70deg, #fff 20%, #ebebeb 46%, #949a9d 94%);
}
.bgWrap > div.c-2 {
	width: 32vw;
	top: 35.2vw;
	left: 17.6vw;
	opacity: 0.3;
	background: linear-gradient(-70deg, #fff 20%, #eee 47%, #93979a 93%);
}
.bgWrap > div.c-3 {
	width: 66.67vw;
	top: 11.4vw;
	left: 65.8vw;
	opacity: 0.6;
	background: linear-gradient(160deg, #fff 20%, #ebebeb 46%, #111 95%);
}
.bgWrap > div.t-1 {
	width: 9.3vw;
	top: 1.97vw;
	left: 71.6vw;
	opacity: 0.6;
	transform: rotate(-15deg);
	background: linear-gradient(-70deg, #fff 20%, #f1f1f1 47%, #b6b9bb 94%);
}
.bgWrap > div.t-2 {
	width: 15.5vw;
	top: 56.6vw;
	left: -4.5vw;
	opacity: 0.8;
	transform: rotate(-60deg);
	background: linear-gradient(-15deg, #fff 20%, #f1f1f1 47%, #b6b9bb 94%);
}
.bgWrap > div.t-3 {
	width: 9.3vw;
	top: 77.2vw;
	left: 63vw;
	opacity: 0.6;
	transform: rotate(-45deg);
	background: linear-gradient(-35deg, #fff 20%, #f1f1f1 47%, #b6b9bb 88%);
}


/* @keyframes floatSlow {
  0%   { transform: translate(0, 0) rotate(var(--r));}
  25%  { transform: translate(28px, -22px) rotate(calc(var(--r) + 2deg));}
  50%  { transform: translate(-24px, 18px) rotate(calc(var(--r) - 2deg));}
  75%  { transform: translate(18px, 26px) rotate(calc(var(--r) + 1deg));}
  100% { transform: translate(0, 0) rotate(var(--r));}
} */
 @keyframes floatOnce {
  from { transform: translate(0, 0) rotate(var(--r));}
  to { transform: translate(var(--tx), var(--ty)) rotate(var(--r));}
}

/* 共通 */
.bgWrap .circle,
.bgWrap .triangle {
  animation-name: floatOnce;
  animation-duration: 3s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
  will-change: transform;
}
/* .bgWrap .circle,
.bgWrap .triangle {
  animation-name: floatSlow;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  will-change: transform;
} */

/* ---- 個別スピード ---- */
.bgWrap > div.c-1 {
  --tx: 18px;
  --ty: 12px;
  --r: 0deg;
}
.bgWrap > div.c-2 {
  --tx: -14px;
  --ty: 20px;
  --r: 0deg;
}
.bgWrap > div.c-3 {
  --tx: 26px;
  --ty: -16px;
  --r: 0deg;
}
.bgWrap > div.t-1 {
  --tx: -10px;
  --ty: 18px;
  --r: -15deg;
}
.bgWrap > div.t-2 {
  --tx: 22px;
  --ty: -14px;
  --r: -60deg;
}
.bgWrap > div.t-3 {
  --tx: -18px;
  --ty: -22px;
  --r: -45deg;
}
/* .bgWrap .c-1 {
  --r: 0deg;
  animation-duration: 50s;
}
.bgWrap .c-2 {
  --r: 0deg;
  animation-duration: 40s;
  animation-delay: -15s;
}
.bgWrap .c-3 {
  --r: 0deg;
  animation-duration: 55s;
  animation-delay: -30s;
}
.bgWrap .t-1 {
  --r: -15deg;
  animation-duration: 45s;
  animation-delay: -10s;
}
.bgWrap .t-2 {
  --r: -60deg;
  animation-duration: 52s;
  animation-delay: -28s;
}
.bgWrap .t-3 {
  --r: -45deg;
  animation-duration: 48s;
  animation-delay: -22s;
} */

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

	.bgWrap > div.c-1 {
		width: 77.7vw;
		top: -8.2vh;
		left: -30.9vw;
	}
	.bgWrap > div.c-2 {
		width: 53.2vw;
		top: 63.8vh;
		left: -9.2vw;
	}
	.bgWrap > div.c-3 {
		width: 101.9vw;
		top: 22vh;
		left: 57.1vw;
	}
	.bgWrap > div.t-1 {
		width: 16.2vw;
		top: 18.8vh;
		left: 71.6vw;
	}
	.bgWrap > div.t-2 {
		width: 25.8vw;
		top: 53.6vh;
		left: 2.86vw;
	}
	.bgWrap > div.t-3 {
		width: 15.5vw;
		top: 84vh;
		left: 76.4vw;
	}
}


.philosophy > div {
	display: flex;
	align-items: center;
	border-bottom: #222 1px solid;
	padding: min(3vw, 16px);
}
.philosophy > div:first-child {
	border-top: #222 1px solid;
}
.philosophy > div p:first-child {
	width: 36%;
	font-family: "Special Gothic Expanded One", sans-serif;
  font-weight: 400;
  font-style: normal;
	font-size: min(4.6vw, 52px);
	letter-spacing: 0.1em;
}
.philosophy > div p:last-child {
	width: 64%;
	color: #4e4e4e;
	font-size: min(1.6vw, 16px);
	letter-spacing: 0.1em;
}
@media screen and (max-width:820px) {
	.philosophy > div {
		opacity: 0;
	}
	.philosophy > div:nth-child(1) {
		animation: op 2s ease-in 1.5s forwards;
	}
	.philosophy > div:nth-child(2) {
		animation: op 2s ease-in 1.8s forwards;
	}
	.philosophy > div:nth-child(3) {
		animation: op 2s ease-in 2.1s forwards;
	}
}


.mainVisual img {
	opacity: 0;
	animation: op 2s ease-in 1s forwards;
}
@media screen and (min-width:821px) {

	.mainVisual .mvLogo {
		position: relative;
		height: calc(min(100vh, 100vw) - 70px);
		max-height: 100vw;
	}
	.mainVisual .mvLogo img {
		position: absolute;
		top: calc((min(100vh, 100vw) - 70px - 95vw/113*31)/2);
		left: 50%;
		transform: translateX(-50%);
		width: 95vw;
	}
}
@media screen and (max-width:820px) {

	.mainVisual .mvLogo img {
		display: block;
		width: calc(100vw - min(6vw, 64px)*2);
		margin: auto;
		padding: min(14vw, 140px) 0 min(10vw, 80px);
	}
	.philosophy > div {
		flex-direction: column;
		padding: min(4vw, 24px) 0 min(7.4vw, 48px);
		text-align: center;
	}
	.philosophy > div p:first-child {
		width: 100%;
		font-size: min(8.2vw, 56px);
	}
	.philosophy > div p:last-child {
		width: 100%;
		font-size: min(3.6vw, 16px);
	}
}


.newsList {
	display: flex;
	flex-wrap: wrap;
	gap: min(8vw, 64px) 5%;
}
.newsList > a {
	display: block;
	width: 30%;
}
.newsList > a .newsImg {
	position: relative;
	margin-bottom: min(3vw, 16px);
	position: relative;
	aspect-ratio: 10 / 7;
	width: 100%;
	background-color: #f6f6f6;
}
.newsList > a .newsImg img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain;
}
.newsList > a .title {
	font-size: min(3.4vw, 16px);
	font-weight: 700;
	line-height: 1.6;
	margin-bottom: min(1vw, 8px);
}
.newsList > a .tagWrap {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: min(1vw, 4px) min(2vw, 16px);
}
.newsList > a .tagWrap .date {
	color: #777;
	font-size: min(3vw, 14px);
}
.newsList > a .tagWrap .tag {
	background-color: #aaa;
	color: #fff;
	font-size: min(2.8vw, 13px);
	line-height: 1;
	padding: 0.3em 1.2em 0.4em;
	border-radius: 100px;
}

@media screen and (max-width:820px) {
	.newsList > a {
		width: 100%;
	}
}


.mediaWrap {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	font-size: min(3.4vw, 16px);
	font-weight: 700;
}
.mediaWrap .pickUpMedia {
	width: 44.6%;
}
.mediaWrap .pickUpMedia .mediaImg {
	position: relative;
	aspect-ratio: 10/7;
	overflow: hidden;
	margin-bottom: min(2vw, 16px);
}
.mediaWrap .pickUpMedia .mediaImg img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
}
.mediaWrap .pickUpMedia .mediaImg img:first-child {
	object-fit: cover;
	filter: blur(20px);
	transform: scale(1.1);
}
.mediaWrap .pickUpMedia .mediaImg img:last-child {
	object-fit: contain;
}
.mediaWrap .mediaList {
	width: 46.4%;
}
.mediaWrap .mediaList li {
	padding: min(4vw, 24px) 0;
	border-bottom: #222 solid 1px;
}
.mediaWrap .mediaList li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.mediaWrap .mediaList li a .arrow {
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #aaa;
	width: min(6vw, 32px);
	aspect-ratio: 1/1;
	border-radius: 100%;
}
.mediaWrap .mediaList li a p {
	width: calc(100% - min(10vw, 64px));
}
.mediaWrap .mediaList li a .arrow img {
	width: 46%;
}

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

	.mediaWrap .mediaList li:first-child {
		padding-top: 0;
	}
}
@media screen and (max-width:820px) {
	.mediaWrap {
		flex-direction: column;
	}
	.mediaWrap .pickUpMedia,
	.mediaWrap .mediaList {
		width: 100%;
	}
	.mediaWrap .pickUpMedia .mediaImg {
		margin-bottom: min(4vw, 24px);
	}
	.mediaWrap .mediaList {
		margin-top: min(6vw, 64px);
	}
	.mediaWrap .mediaList li:first-child {
		border-top: #222 solid 1px;
	}
}


#business .gyBg {
	background-color: #f6f6f6;
	padding: min(8vw, 80px) 0 min(10vw, 100px);
}
.businessWrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.businessWrap + .businessWrap {
	margin-top: min(10vw, 80px);
}
.businessWrap .businessImg {
	width: 50%;
}
.businessWrap .textArea {
	width: 42%;
}
.businessWrap .textArea p:first-child {
	font-size: min(3.8vw, 18px);
	font-weight: 700;
	margin-bottom: min(3vw, 16px);
}
.businessWrap .textArea .btnWrap {
	margin-top: min(4vw, 32px);
}
.businessWrap .textArea .btnWrap a {
	background-color: #f6f6f6;
}
.businessWrap .textArea .btnWrap a img {
	width: 0.8em;
	margin-top: 0.2em;
}

@media screen and (min-width:821px) {
	.businessWrap .textArea .btnWrap {
		justify-content: flex-start;
	}
}
@media screen and (max-width:820px) {
	.businessWrap {
		flex-direction: column;
	}
	.businessWrap .businessImg,
	.businessWrap .textArea {
		width: 100%;
	}
	.businessWrap .businessImg {
		margin-bottom: min(4vw, 24px);
	}
}


#recruit {
	padding-bottom: 0;
}
.recruitWrap {
	display: flex;
	background-color: #222;
}
.recruitWrap .textArea {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: calc(100% / 3);
	color: #fff;
}
.recruitWrap .textArea p {
	line-height: 2;
}
.recruitWrap .textArea .btnWrap {
	width: 100%;
}
.recruitWrap .textArea .btnWrap a {
	background-color: #222;
	color: #fff;
	border: #fff solid 2px;
}
.recruitWrap .recruitImg {
	width: calc(100% / 3 * 2);
}

@media screen and (min-width:821px) {
	.recruitWrap .textArea p,
	.recruitWrap .textArea .btnWrap a {
		font-size: min(1.2vw, 16px);
	}
	.recruitWrap .textArea .btnWrap a {
		width: 65%;
	}
}
@media screen and (max-width:820px) {
	.recruitWrap {
		flex-direction: column-reverse;
	}
	.recruitWrap .textArea,
	.recruitWrap .recruitImg {
		width: 100%;
	}
	.recruitWrap .textArea {
		padding: min(8vw, 80px) 0;
	}
}


footer {
	background-color: #fff;
	padding: min(10vw, 100px) min(4vw, 56px) min(14vw, 140px);
}
footer .companyName {
	font-size: min(4.6vw, 20px);
	font-weight: 700;
	margin-bottom: 0.2em;
}
footer .companyAddress {
	font-size: min(3.4vw, 14px);
}
footer .ftrWrap {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: min(6vw, 64px);
	margin-top: min(10vw, 64px);
}
footer .ftrWrap .ftrLinkList {
	display: flex;
	flex-wrap: wrap;
	gap: min(3vw, 24px) min(6vw, 32px);
}
footer .ftrWrap .ftrLinkList a {
	font-size: min(3.4vw, 14px);
}
footer .ftrWrap .copy {
	font-size: min(2.4vw, 10px);
	white-space: nowrap;
}

@media screen and (max-width:820px) {
	footer {
		padding: 0;
	}
	footer .ftrInfo {
		padding: min(10vw, 100px) min(6vw, 64px);
	}
	footer .ftrWrap {
		padding: min(10vw, 100px) min(6vw, 64px) min(14vw, 140px);
		flex-direction: column;
		border-top: #aaa solid 1px;
		margin-top: 0;
	}
	footer .ftrWrap .ftrLinkList {
		flex-direction: column;
    text-align: center;
    width: 100%;
	}
	footer .ftrWrap .ftrLinkList a {
		font-size: min(4.2vw, 18px);
	}
	footer .ftrWrap .copy {
		width: 100%;
		text-align: center;
		margin-top: min(6vw, 64px);
	}
}

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

	下層ページ

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

.topicPath {
	/* display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: min(0.5em); */
	word-break: break-all;
	font-size: min(2.8vw, 13px);
	padding: min(3vw, 16px) min(4vw, 56px);
}
.topicPath .arrow {
	margin: 0 0.5em;
}
body:not(.topPage) h2 {
	font-size: min(8.2vw, 48px);
	line-height: 1.3;
	margin-bottom: 0;
}
body:not(.topPage) main > h2 {
	margin-top: min(8vw, 80px);
}
body:not(.topPage) section h2 {
	margin-bottom: min(12vw, 80px);
}
body:not(.topPage) h2 span {
	display: block;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 700;
	font-size: min(3.4vw, 16px);
	letter-spacing: 0.1em;
}
body:not(.topPage) h3:has(span) {
	color: #999;
	font-family: "Special Gothic Expanded One", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: min(5.6vw, 28px);
	letter-spacing: 0.08em;
	line-height: 1.4;
	margin-bottom: min(8vw, 56px);
}
body:not(.topPage) h3 span {
	display: block;
	font-family: "Noto Sans JP", sans-serif;
	color: #222;
	font-size: min(3.4vw, 16px);
	font-weight: 700;
	letter-spacing: 0.02em;
}


.statementLeadWrap {
	letter-spacing: 0.1em;
}
.statementLeadWrap .mainLead {
	font-size: min(7.6vw,80px);
	font-weight: 900;
	line-height: 1.2;
	margin-top: min(3vw, 24px);
	margin-bottom: min(8vw, 80px);
}
.statementLeadWrap .mainLead .en {
	display: block;
	font-size: min(4vw, 38px);
	font-weight: 700;
	margin-top: min(5vw, 32px);
}
.statementLeadWrap .secondaryLead {
	font-size: min(2.3vw, 28px);
	font-weight: 700;
}
.statementLeadWrap .tertiaryLead {
	font-size: min(2vw, 24px);
	font-weight: 600;
	margin-bottom: min(3vw, 24px);
}


#greeting .innerWrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
#greeting .innerWrap .textArea {
	width: 57%;
}
#greeting .innerWrap .textArea p {
	margin-top: 0.8em;
}
#greeting .innerWrap .textArea .catch {
	font-size: min(5vw, 28px);
	margin-bottom: min(3vw, 24px);
}
#greeting .innerWrap .textArea .catch + p {
	line-height: 2.2;
}
#greeting .innerWrap .textArea .textRight {
	text-align: right;
	margin-top: min(3vw, 24px);
}
#greeting .innerWrap .textArea .textRight span {
	font-size: min(3.8vw, 18px);
	margin-left: 1.5em;
}
#greeting .innerWrap .greetingImg {
	width: 32%;
}


.outlineList,
.mapWrap {
	max-width: 920px;
	margin: auto;
}
.outlineList {
	margin-bottom: min(8vw, 80px);
}
.outlineList > div {
	display: flex;
	align-items: center;
	border-bottom: #222 solid 1px;
	padding: min(5vw, 32px) 0;
}
.outlineList > div dt {
	width: min(20vw, 280px);
}
.outlineList > div dd {
	width: calc(100% - min(20vw, 280px));
}
.mapWrap .googleMap {
	width: 100%;
	aspect-ratio: 5/3;
}
.mapWrap .googleMap iframe {
	width: 100%;
	height: 100%;
}
.mapWrap p {
	text-align: center;
	margin-top: min(3vw, 24px);
}
.mapWrap .btnWrap {
	margin-top: min(3vw, 24px);
}

@media screen and (max-width:820px) {
	.statementLeadWrap .mainLead {
		font-size: min(9.2vw,80px);
	}
	.statementLeadWrap .mainLead .en {
		font-size: min(4.8vw, 38px);
	}
	.statementLeadWrap .secondaryLead {
		font-size: min(4vw, 28px);
	}
	.statementLeadWrap .tertiaryLead {
		font-size: min(3.6vw, 24px);
	}

	#greeting .innerWrap .greetingImg {
		width: 80%;
		margin: 0 auto min(6vw, 64px);
	}
	#greeting .innerWrap .textArea {
		width: 100%;
	}
	#greeting .innerWrap .textArea .catch {
		line-height: 1.6;
	}

	.outlineList > div {
		display: block;
	}
	.outlineList > div dt,
	.outlineList > div dd {
		width: 100%;
	}
	.outlineList > div dt {
		/* text-align: center; */
		font-weight: 700;
		margin-bottom: min(2vw, 10px);
	}

}

body:not(.topPage) .businessWrap {
	padding: min(8vw, 80px) 0;
	border-bottom: #222 solid 1px;
}
body:not(.topPage) .businessWrap:nth-child(1) {
	padding-top: 0;
}
body:not(.topPage) .businessWrap + .businessWrap {
	margin-top: 0;
}
body:not(.topPage) .businessWrap .textArea p:first-child {
	font-size: min(5.4vw, 26px);
	margin-bottom: min(4vw, 26px);
}
body:not(.topPage) .businessWrap .textArea .btnWrap a {
	background-color: transparent;
}
@media screen and (max-width:820px) {
	body:not(.topPage) .businessWrap {
		flex-direction: column-reverse;
	}
}


.recruitLeadWrap h3 {
	font-size: min(5.6vw, 28px);
	margin-bottom: min(3vw, 32px);
}
.recruitLeadWrap .mainLead {
	font-size: min(4.2vw, 24px);
	margin-bottom: min(4vw, 32px);
	font-feature-settings: "palt";
	letter-spacing: 0.1em;
}
.recruitLeadWrap p:not(.mainLead) + p {
	margin-top: 1.5em;
}
.reqList {
	max-width: 920px;
	margin: auto;
}
.reqList > div {
	display: flex;
	align-items: flex-start;
	border-bottom: #222 solid 1px;
	padding: min(5vw, 32px) 0;
}
.reqList > div:first-child {
	border-top: #222 solid 1px;
}
.reqList > div dt {
	width: min(20vw, 280px);
}
.reqList > div dd {
	width: calc(100% - min(20vw, 280px));
}
.reqList > div dd h4 {
	font-size: min(4.2vw, 20px);
	margin-bottom: min(4vw, 20px);
}
.reqList > div dd h5 {
	font-size: min(3.4vw, 16px);
	background-color: #ededed;
	padding: 0.5em 1.2em;
	margin-bottom: min(4vw, 20px);
}
.reqList > div dd h6 {
	font-size: min(3.8vw, 18px);
	margin-bottom: min(4vw, 20px);
}
.reqList > div dd .partitionWrap {
	margin-top: min(4vw, 24px);
	border-top: #ccc dotted 1px;
	padding-top: min(4vw, 24px);
}
.entryArea {
	margin-top: min(8vw, 80px);
}
.entryArea h4 {
	background-color: #ededed;
	text-align: center;
	font-size: min(4.2vw, 20px);
	padding: 0.4em 0;
}
#requirements .btnWrap {
	margin-top: min(4vw, 40px);
	flex-wrap: wrap;
	gap: min(4vw, 20px) min(2vw, 12px);
}
#requirements .btnWrap a {
	justify-content: center;
	width: min(calc((100% - min(4vw, 20px))/2), 180px);
	min-width: auto;
	border: #222 solid 2px;
	padding: 0 min(4vw, 24px);
	overflow: hidden;
}
#requirements .btnWrap a img {
	width: 100%;
}

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

	.recruitLeadWrap .mainLead {
		letter-spacing: 0.08em;
		line-height: 1.6;
    padding-bottom: min(4vw, 32px);
    border-bottom: #000 dotted 1px;
	}
	.reqList > div {
		display: block;
	}
	.reqList > div dt,
	.reqList > div dd {
		width: 100%;
	}
	.reqList > div dt {
		text-align: center;
		font-size: min(5vw, 24px);
		font-weight: 700;
		margin-bottom: min(3vw, 16px);
	}

	#requirements .btnWrap {
		justify-content: flex-start;
	}

}


.privacyWrap dl {
	margin-top: min(6vw, 48px);
}
.privacyWrap p + dl {
	margin-top: min(8vw, 64px);
}
.privacyWrap dl dt {
	font-size: min(3.4vw, 16px);
	background-color: #ededed;
	padding: 0.5em 1.2em;
	margin-bottom: min(4vw, 24px);
}
.privacyWrap dl dd p + p {
	margin-top: 1em;
}
.privacyWrap dl dd .link {
	text-decoration: underline;
}
.privacyWrap dl dd ol {
	font-size: min(3.4vw, 16px);
  counter-reset: count 0;
	padding-left: 1.5em;
}
.privacyWrap dl dd ol li {
	text-indent: -1.2em;
}
.privacyWrap dl dd ol li:before {
  content: counter(count) ". ";
  counter-increment: count 1;
}
.privacyWrap dl dd ol ol {
	margin-top: 1em;
}
.privacyWrap dl dd ol li:has(ol) + li {
	margin-top: 1.5em;
}

.privacyWrap .textRight {
	text-align: right;
	margin-top: min(3vw, 24px);
}


.pager {
  display: flex;
  justify-content: center;
  align-items: center;
	gap: min(2vw, 10px);
  margin-top: min(10vw, 64px);
}
.pager .page-numbers {
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(8vw, 40px);
  aspect-ratio: 1/1;
  border-radius: 50%;
  border: #222 solid 2px;
  color: #222;
	font-size: min(3.2vw, 16px);
	font-weight: 700;
  text-decoration: none;
  padding: 0 0 0.15em;
}
.pager .page-numbers.current {
	background-color: #222;
  color: #fff;
}


/* ------ 記事詳細 ------ */

.descriptionHeader {
	margin-bottom: min(6vw, 64px);
}
.descriptionHeader h3 {
	font-size: min(5vw, 24px);
	line-height: 1.5;
	padding-bottom: min(4vw, 24px);
	border-bottom: 1px solid #8e8e8e;
	margin-bottom: min(4vw, 24px);
}
.descriptionHeader .tagWrap {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: min(1vw, 4px) min(2vw, 16px);
}
.descriptionHeader .tagWrap .date {
	color: #777;
	font-size: min(3vw, 14px);
}
.descriptionHeader .tagWrap .tag {
	background-color: #aaa;
	color: #fff;
	font-size: min(2.8vw, 13px);
	line-height: 1;
	padding: 0.3em 1.2em 0.4em;
	border-radius: 100px;
}
.descriptionBody {
	margin-top: min(8vw, 50px);
	font-size: min(3.4vw, 16px);
}
.descriptionBody h3 {
  background-color: #e0e0e0;
  padding: min(3vw, 15px);
  margin-top: min(10vw, 60px);
  margin-bottom: min(2vw, 30px);
  font-size: min(5vw, 26px);
  font-weight: bold;
  border: none;
}
.descriptionBody h3:first-child {
  margin-top: 0;
}
.descriptionBody h3 strong {
  font-weight: bold;
}
.descriptionBody h4 {
  font-size: min(5vw, 24px);
  font-weight: bold;
  border-bottom: #8e8e8e solid 1px;
  padding-bottom: min(1vw, 5px);
  margin-bottom: min(7vw, 40px);
  margin-bottom: min(6vw, 30px);
}
.descriptionBody h4 strong {
  font-weight: bold;
}
.descriptionBody h5 {
  font-size: min(4.6vw, 22px);
  margin-bottom: min(3vw, 15px);
  margin-top: min(6vw, 30px);
}
.descriptionBody h5 strong {
  font-weight: bold;
}
.descriptionBody p {
  font-size: min(3.4vw, 16px);
  margin-bottom: min(4vw, 20px);
}
.descriptionBody a {
	color: #000;
	text-decoration: underline;
}
.descriptionBody img {
	display: block;
  margin: min(6vw, 30px) auto;
	max-width: 800px;
}
.descriptionBody iframe {
  width: 800px;
	height: auto;
  aspect-ratio: 100 / 56.25;
  max-width: 100%;
  margin: min(6vw, 30px) auto;
  display: block;
}
.descriptionBody ul {
  padding-left: min(4vw, 20px);
  margin: min(6vw, 30px) 0;
  font-size: min(3.4vw, 16px);
}
.descriptionBody ul li {
  list-style: disc;
}
.descriptionBody ol {
  list-style: decimal;
  padding-left: min(4vw, 24px);
  margin: min(6vw, 30px) 0;
  font-size: min(3.4vw, 16px);
}
.descriptionBody blockquote {
  background-color: #eee;
  padding: min(4vw, 20px)  min(10vw, 55px);
  margin-bottom: min(4vw, 20px);
  position: relative;
}
.descriptionBody blockquote::before {
  content: "“";
  font-size: min(8.6vw, 56px);
  line-height: 1;
  position: absolute;
  top: min(4.5vw, 20px);
  left: min(3vw, 15px);
  display: block;
  color: #bbb;
}
.descriptionBody blockquote::after {
  content: "“";
  font-size: min(8.6vw, 56px);
  line-height: 1;
  position: absolute;
  bottom: min(4.5vw, 20px);
  right: min(3vw, 15px);
  display: block;
  color: #bbb;
	transform: rotate(180deg);
}
.descriptionBody blockquote p:last-child {
  margin-bottom: 0;
}
.descriptionBody table {
  width: 100%;;
  font-size: min(3.2vw, 14px);
  margin-bottom: min(4vw, 20px);
	table-layout: fixed;
	border-spacing: 1px;
	border-collapse: separate !important;
}
.descriptionBody table th,
.descriptionBody table td {
  padding: min(2vw, 10px);
}
.descriptionBody table th {
	background-color: #999ea4;
	/* color: #fff; */
  font-weight: bold;
}
.descriptionBody table td {
	background-color: #eee;
}


.linkInfo {
	margin-top: min(8vw, 80px);
}
.linkInfo > div {
	display: flex;
}
.linkInfo > div + div {
	margin-top: min(3vw, 16px);
}
.linkInfo > div dt,
.linkInfo > div dd {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: min(2vw, 20px) min(4vw, 32px);
}
.linkInfo > div dt {
	width: min(28vw, 160px);
	background-color: #aaa;
	color: #fff;
	font-size: min(3.4vw, 16px);
}
.linkInfo > div dd {
	width: calc(100% - min(28vw, 160px));
	background-color: #e9e9e9;
}
.linkInfo > div dd a {
	font-size: min(3vw, 14px);
	text-decoration: underline;
	word-break: break-all;
}

.detailPage .btnWrap a {
	justify-content: center;
}


#notFound section {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 66vh;
	min-height: 66svh;
}
#notFound .btnWrap {
	margin-top: 0;
}
#notFound .btnWrap a {
	justify-content: center;
}