@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Bad+Script&family=Kosugi+Maru&family=Noto+Sans+JP:wght@100..900&family=Dela+Gothic+One&display=swap");

/* ----------------------------------------
｜　基本設定
---------------------------------------- */
:root {
	--width: 1440;
	--margin-cont__large: calc(190 / var(--width) * 100vw);
	--margin-cont__normal: calc(120 / var(--width) * 100vw);
	--margin-cont__lower: calc(140 / var(--width) * 100vw);
	--margin-120: calc(120 / var(--width) * 100vw);
	--margin-100: calc(100 / var(--width) * 100vw);
	--margin-80: calc(80 / var(--width) * 100vw);
	--margin-60: calc(60 / var(--width) * 100vw);
	--margin-40: calc(40 / var(--width) * 100vw);
	--margin-20: calc(20 / var(--width) * 100vw);
	--margin-10: calc(10 / var(--width) * 100vw);
	/* font-size */
	--font-size: calc(16 / var(--width) * 100vw);
	--font-size--big: calc(32 / var(--width) * 100vw);
	--font-size--mid: calc(24 / var(--width) * 100vw);
	--font-size--small: 14px;
	--font-size--ttl: 60px;
	/* color */
	--col--txt: #080927;
	--col--assort: #1c3f71;
	--col--accent: #ffbb00;
	--col--bg: #fff;
	/* font */
	--font-en: "Bad Script", cursive;
	/* width */
	--max-width: calc(1160 / var(--width) * 100vw);
	--max-width__large: calc(1340 / var(--width) * 100vw);
	--max-width__small: calc(980 / var(--width) * 100vw);
	/* animation */
	--transition-fast: 0.3s ease;
	--transition-slow: 1s 1.5s ease;
	--transition-comical: 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	--easing-bounce: cubic-bezier(0.68, -0.55, 0.27, 1.55);
	/* border-radius */
	--corner: 40px;
}

/* ----------------------------------------
｜　共通
---------------------------------------- */
html {
	scroll-behavior: smooth;
}

body {
	font-size: var(--font-size);
	font-weight: 400;
	color: var(--col--txt);
	letter-spacing: 1px;
	line-height: 1.8;
	margin: 0;
	overflow-x: hidden;
	font-family: "Kosugi Maru", "Noto Sans JP", sans-serif;
	font-weight: 400;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-feature-settings: "palt";
}

ul,
li {
	list-style-type: none;
}

ol {
	margin-left: 1em;
	padding-left: 1.5em;
	text-indent: -0.5em;
}

ol li {
	list-style-type: auto;
}

.sp {
	display: none;
}

.pc {
	display: block;
}

a {
	text-decoration: none;
	color: var(--col--txt);
}

/* テキスト */
h2 {
	font-size: var(--font-size--big);
}

h3 {
	font-size: var(--font-size--mid);
}

h1,
h2,
h3,
h4,
.strong {
	line-height: 1;
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 600;
	font-style: normal;
}

.en {
	font-size: var(--font-size--mid);
	font-family: var(--font-en);
	font-weight: 400;
	font-style: normal;
	letter-spacing: 0.1em;
	line-height: 1;
}

/* 背景・カラー */
.bg-white {
	background-color: #fff;
}

.bg-lightgray {
	background-color: #f7f8f8;
}

.bg-lower {
	background: #f7f9fc;
}

.bg-assort {
	background: var(--col--assort);
	color: #fff;
}

.bg-accent {
	background: var(--col--accent);
	color: #fff;
}

.bg-gray {
	background: #656565;
	color: #fff;
}

body:has(.bg-scale) {
	position: relative;
}

.bg-scale {
	position: fixed;
	top: 0;
	width: 100%;
	height: 100vh;
	pointer-events: none;
	z-index: 10;
}

.bg-scale::before,
.bg-scale::after {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	background-image: url("../image/scale_left.png");
	background-size: 100%;
	background-repeat: repeat-y;
	height: 100%;
	width: 20px;
}

.bg-scale::after {
	left: auto;
	right: 0;
	background-image: url("../image/scale_right.png");
}

.bg-tools {
	background-color: #f7f9fc;
	background-image: url("../image/bg-tools.png");
	background-size: 100%;
	/* background-size: 100% 100%; */
	animation: moveBG 10s linear infinite;
}

.bg-geometry {
	background: url("../image/bg-geometry.png");
}

.bg-grid::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(0deg,
			transparent calc(100% - 1px),
			#e6e6e6 calc(100% - 1px)),
		linear-gradient(90deg,
			transparent calc(100% - 1px),
			#e6e6e6 calc(100% - 1px));
	background-size: 30px 30px;
	background-repeat: repeat;
	background-position: center center;
	mix-blend-mode: multiply;
}

@keyframes moveBG {
	from {
		background-position: 0 0;
	}

	to {
		background-position: -200px -200px;
		/* 斜め上に移動 */
	}
}

@keyframes moveRecruitBG {
	0% {
		transform: translateX(0%);
	}

	100% {
		transform: translateX(-50%);
	}
}

/* ボタン */

/* レイアウト */
.container {
	max-width: var(--max-width);
	margin-left: auto;
	margin-right: auto;
}

.container.cont__l {
	max-width: var(--max-width__large);
}

.container .inner {
	padding: var(--margin-80) 0;
}

.flex {
	display: flex;
}

.flex.row {
	flex-direction: row;
	flex-wrap: wrap;
}

.flex.column {
	flex-direction: column;
	gap: var(--margin-20);
}

.flex.between {
	justify-content: space-between;
}

.twoCol {
	display: flex;
	justify-content: space-between;
}

.twoCol .col-1,
.twoCol .col-2 {
	width: 50%;
}

/* 下層ページ */
.container.cont__s {
	max-width: var(--max-width__small);
	margin-left: auto;
	margin-right: auto;
}

.lower-cont {
	padding: var(--margin-100) 0;
}

.lower-cont.bg-lower+.lower-cont.bg-lower,
.lower-cont.bg-white+.lower-cont.bg-white {
	padding-top: 0;
}

/* table */
table {
	width: 100%;
	border-collapse: collapse;
	/* font-size: 0.9rem; */
}

th {
	vertical-align: middle;
	min-width: calc(120 / var(--width) * 100vw);
}

th,
td {
	text-align: left;
	padding: var(--margin-20) 0;
}

img {
	width: 100%;
	height: 100%;
}

/* 文字サイズ */
.text__l {
	font-size: var(--font-size--big);
}

.text__m {
	font-size: var(--font-size--mid);
}

.text__s {
	font-size: var(--font-size--small);
	line-height: 1.25;
}

/* 縦書き */
.text-rl {
	writing-mode: vertical-rl;
}

/* 注釈 */
.notes {
	font-size: calc(13 / var(--width) * 100vw);
	font-weight: 400;
}

/* 整列 */
.center {
	text-align: center;
}

.left {
	text-align: left;
}

.right {
	text-align: right;
}

.text.long {
	/* max-width: calc(720 / var(--width) * 100vw); */
	max-width: 50vw;
	text-align: justify;
	line-height: 2.35;
}

.text.long.center {
	margin-left: auto;
	margin-right: auto;
}

/* 余白 */
.mt-100 {
	margin-top: var(--margin-100);
}

.mt-80 {
	margin-top: var(--margin-80);
}

.mt-60 {
	margin-top: var(--margin-60);
}

.mt-40 {
	margin-top: var(--margin-40);
}

.mt-20 {
	margin-top: var(--margin-20);
}

.mt-10 {
	margin-top: var(--margin-10);
}

/* 色 */
.assort {
	color: var(--col--assort);
}

.accent {
	color: var(--col--accent);
}

/* ----------------------------------------
｜　パーツ
---------------------------------------- */

/* 共通ヘッダー
---------------------------------------- */
main {
	margin-top: calc(90 / var(--width) * 100vw);
	overflow-x: hidden;
}

body:has(header) {
	height: 100%;
}

header {
	width: 100%;
	margin: var(--margin-20) 0;
	display: flex;
	flex-direction: row;
	position: fixed;
	top: 0;
	z-index: 1000;
	transition: var(--transition-fast);
}

.header-cont {
	width: 100%;
	max-width: var(--max-width__large);
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	flex-direction: row;
}

.header-menu {
	background-color: #fff;
	padding: var(--margin-10) var(--margin-40);
	border-radius: var(--corner);
}

.header-menu_list {
	align-items: center;
	gap: var(--margin-20);
}

.header-menu a:has([class^="menu-item"]) {
	font-size: calc(18 / var(--width) * 100vw);
	text-decoration: none !important;
}

[class^="menu-item"]::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	background-size: 100%;
	background-repeat: no-repeat;
	vertical-align: middle;
	margin-right: var(--margin-10);
}

/*🥕*/
.menu-item__service::before {
	/* background-image: url("/assets/image/header-nav-icon01.svg"); */
	background-image: url(../image/header-nav-icon01.svg);
}

.menu-item__company::before {
	/* background-image: url("/assets/image/header-nav-icon02.svg"); */
	background-image: url(../image/header-nav-icon02.svg);
}

.menu-item__contact::before {
	/* background-image: url("/assets/image/header-nav-icon03.svg"); */
	background-image: url(../image/header-nav-icon03.svg);
}

.menu-item__recruit::before {
	/* background-image: url("/assets/image/header-nav-icon04.svg"); */
	background-image: url(../image/header-nav-icon04.svg);
}

a.menu-btn_goal,
.hamburger {
	padding: var(--margin-10);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	background-color: var(--col--accent);
	border-radius: 100px;
}

a.menu-btn_goal::after,
.hamburger::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	color: #fff;
	border: 2px solid;
	border-radius: 100px;
}

a.menu-btn_goal {
	width: calc(165 / var(--width) * 100vw);
	height: calc(60 / var(--width) * 100vw);
}

a.menu-btn_goal::after {
	width: calc(155 / var(--width) * 100vw);
	height: calc(50 / var(--width) * 100vw);
}

.hamburger {
	display: none;
	width: calc(60 / var(--width) * 100vw);
	height: calc(60 / var(--width) * 100vw);
}

.hamburger::after {
	width: calc(50 / var(--width) * 100vw);
	height: calc(50 / var(--width) * 100vw);
}

header:not(.l-recruit-header).is-scrolled {
	top: -25%;
}

/* ロゴ */
.logo {
	height: auto;
	width: calc(220 / var(--width) * 100vw);
	max-width: 300px;
	min-width: calc(150 / var(--width) * 100vw);
}

.h_logo {
	display: flex;
}

/* メニュー */
.header-menu .container .col-1 {
	width: 100%;
	padding: 0 var(--margin-40);
	height: calc(90 / var(--width) * 100vw);
	background-color: #fff;
	box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
}

/* .header-menu .container .col-2 {
} */
.menu-nav {
	display: flex;
	align-items: center;
	gap: var(--margin-20);
}

.menu-nav ul.flex {
	/* color: var(--col--txt); */
	gap: calc(40 / var(--width) * 100vw);
	/* margin-right: 18vw; */
}

.menu-nav ul.flex li a {
	color: var(--col--txt);
	font-weight: 600;
}

/* エントリー */
a.goal-btn.bg-grd {
	font-size: calc(18 / var(--width) * 100vw);
	font-family: "Noto Sans", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
	font-variation-settings: "wdth"75;
	min-width: calc(130 / var(--width) * 100vw);
	min-height: calc(40 / var(--width) * 100vw);
	padding: var(--margin-10) var(--margin-40);
	border-radius: var(--corner);
	position: relative;
}

a.goal-btn.bg-grd span.c-arrow {
	display: inline-block;
	vertical-align: middle;
	color: #fff;
	position: absolute;
	width: 0.45em;
	height: 0.45em;
	top: 50%;
	right: 1em;
	transform: translate(-25%, -50%) rotate(45deg);
}

span.c-arrow::before,
span.c-arrow::after {
	content: "";
	position: absolute;
	background: currentColor;
	border-radius: 0.1em;
}

span.c-arrow::before {
	top: 0;
	left: 0;
	right: 0;
	height: 0.11em;
}

span.c-arrow::after {
	top: 0;
	right: 0;
	bottom: 0;
	width: 0.11em;
}

/* 共通フッター
---------------------------------------- */
.p-footer-menu,
.p-footer-info {
	margin: var(--margin-60) 0;
}

.p-footer-info.col-1 {
	width: 30%;
}

.p-footer-menu.col-2 {
	padding: var(--margin-40);
	background-color: #fff;
	display: flex;
	justify-content: space-between;
	width: 70%;
	border-radius: var(--corner);
}

.p-footer-menu.col-2 ul li a {
	color: var(--col--txt);
}

.p-footer-menu.col-2 ul li::before {
	content: "-";
	margin-right: 0.5em;
}

.c-roundImg-cont {
	width: calc(430 / var(--width) * 100vw);
	display: flex;
	overflow: hidden;
	border-radius: var(--corner);
}

.copyright {
	text-align: center;
	font-size: 13px;
	padding: 0.5em;
}

/* アイコン */
.p-footer-info .p-footericon {
	gap: var(--margin-10);
}

.p-footer-info .p-footericon::before {
	content: "";
	display: inline-block;
	width: calc(15 / var(--width) * 100vw);
	height: calc(15 / var(--width) * 100vw);
	margin: 0.25em 0 0 0.25em;
	background-repeat: no-repeat;
	background-size: contain;
}

.p-footer_address::before {
	background-image: url("../image/footer-icon__location.png");
}

.p-footer_tel::before {
	background-image: url("../image/footer-icon__tel.png");
}

.p-footer_open::before {
	background-image: url("../image/footer-icon__open.png");
}

/* 下層採用バナー
---------------------------------------- */
#recruit-banner {
	position: relative;
}

.p-recruitBanner-cont .c-pointCont_txt {
	width: 60%;
	z-index: 1;
}

.p-recruitBanner-cont+.c-pointCont_img {
	position: absolute;
	top: 0;
	right: 0;
	width: 55%;
	height: 100%;
	border-radius: 0;
}

.p-recruitBanner-cont+.c-pointCont_img img {
	object-fit: cover;
}

.c-pointCont.c-pointCont_txt.p-recruitBanner_txt {
	width: 45%;
	background-color: transparent;
	/* background-color: transparent !important; */
}

.p-pointCont-img_txt {
	position: absolute;
	top: 10%;
	left: 50%;
	transform: translateX(-50%);
	width: calc(650 / var(--width) * 100vw);
	height: auto;
}

/* 下層見出し
---------------------------------------- */
.heading {
	position: relative;
	height: calc(250 / var(--width) * 100vw);
	/* max-height: 250px; */
	padding-top: var(--margin-60);
	padding-bottom: var(--margin-40);
	overflow: hidden;
}

.heading .container.twoCol {
	align-items: flex-end;
}

.heading .title {
	margin-bottom: 0;
}

.pankuzu {
	display: inline-block;
	font-size: 0.85rem;
	margin-left: auto;
}

.pankuzu ul li:not(:first-child)::before {
	content: ">";
	margin: 0 var(--margin-10);
	display: inline-block;
}

/* 見出し */
.title {
	font-size: calc(32 / var(--width) * 100vw);
	font-weight: 900;
	line-height: 1.45;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: var(--margin-40);
}

.title .en {
	font-size: calc(24 / var(--width) * 100vw);
	position: relative;
}

.title .jp {
	font-size: var(--font-size--big);
	margin-top: var(--margin-20);
	display: inline-block;
}

h3.title {
	line-height: 1.5;
	letter-spacing: 1.25px;
	margin-bottom: var(--margin-40);
}

h4.title {
	font-size: var(--font-size--mid);
	margin-bottom: var(--margin-40);
}

/* デザイン
---------------------------------------- */
.c-pointCont {
	position: relative;
	background-color: #fff;
	border-radius: var(--corner);
}

.twoCol .c-pointCont {
	width: calc(100% / 2 - var(--margin-10));
}

.c-pointCont::before {
	content: "▼▼▼";
	font-size: var(--font-size--mid);
	letter-spacing: 0.25em;
	position: absolute;
	top: -2%;
	left: 0;
	color: var(--col--assort);
	z-index: 10;
}

.c-pointCont_txt {
	/* .c-pointCont:not(.c-pointCont_txt) .c-pointCont_txt { */
	padding: var(--margin-60) var(--margin-40);
}

.c-pointCont_img {
	/* .c-pointCont:not(.c-pointCont_txt) .c-pointCont_img { */
	display: flex;
	overflow: hidden;
	border-bottom-left-radius: var(--corner);
	border-bottom-right-radius: var(--corner);
}

.c-frame {
	border: 2px solid currentColor;
	display: inline-flex;
}

.title.c-frame {
	padding: var(--margin-10) var(--margin-20);
	background-color: #fff;
	color: var(--col--assort) !important;
	border-color: var(--col--txt);
}

/* アニメ */
.fadeIn .c-pointCont_img img {
	opacity: 0;
}

.fadeIn.is-active .c-pointCont_img img {
	animation: imgFadeIn 2s ease forwards;
}

@keyframes imgFadeIn {
	0% {
		opacity: 0;
		scale: 1.5;
	}

	75% {
		opacity: 1;
	}

	100% {
		opacity: 1;
		scale: 1;
	}
}

.btn {
	position: relative;
	width: calc(220 / var(--width) * 100vw);
	display: inline-flex;
	padding: var(--margin-10) var(--margin-20);
	background: #fff;
	color: var(--col--assort);
	border: 1px solid var(--col--assort);
	border-radius: 80px;
	margin-top: var(--margin-20);
}

.btn .icon {
	transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
	background: #fff;
	z-index: 1;
}

.btn .icon.arrow {
	transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
	right: 10%;
	/* right: calc(25 / var(--width) * 100vw); */
	width: calc(20 / var(--width) * 100vw);
	height: 2px;
	background: none;
	z-index: 1;
}

.btn .icon.arrow::before,
.btn .icon.arrow::after {
	position: absolute;
	content: "";
	transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
}

.btn .icon.arrow::before {
	top: 50%;
	right: 25%;
	translate: -25% -50%;
	/* right: calc(5 / var(--width) * 100vw); */
	width: calc(5 / var(--width) * 100vw);
	height: calc(5 / var(--width) * 100vw);
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg);
	z-index: 1;
}

.btn .icon.arrow::after {
	position: absolute;
	top: 50%;
	left: 25%;
	translate: -25% -50%;
	background: var(--col--assort);
	width: calc(25 / var(--width) * 100vw);
	height: calc(25 / var(--width) * 100vw);
	border-radius: 100px;
}

.btn:hover {
	color: #fff;
	background: var(--col--assort);
}

.btn:hover .icon.arrow {
	background: #fff;
	transform: translate(30%, 0);
	z-index: 1;
}

.btn:hover .icon.arrow::before {
	border-color: #fff;
	right: 0;
}

.btn:hover .icon.arrow::after {
	background: none;
}

/* ----------------------------------------
｜　トップページ
---------------------------------------- */
.loader,
.p-loader-icon {
	width: 100%;
	height: 100%;
	align-items: center;
	background: var(--col--assort);
	bottom: 0;
	display: flex;
	justify-content: center;
	left: 0;
	position: fixed;
	right: 0;
	top: 0;
	z-index: 9999;
	transition-timing-function: var(--easing-bounce);
}

.p-loader-icon::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	width: 130px;
	height: 130px;
	background-image: url("../image/kouki-logo_iocn.svg");
	background-repeat: no-repeat;
	z-index: 10000;
}

@keyframes loader {
	0% {
		transform: rotate(0);
	}

	100% {
		transform: rotate(360deg);
	}
}

/* レイアウト
---------------------------------------- */

/* 基本
---------------------------------------- */
.s-top {
	padding: var(--margin-80) 0;
}

.title .en {
	color: var(--col--accent);
	-webkit-text-stroke: 2px currentColor;
}

/*--- MV ---*/
.top-mv {
	position: relative;
	width: 100%;
	min-height: calc(600 / var(--width) * 100vw);
	max-height: calc(900 / var(--width) * 100vw);
	margin: calc(30 / var(--width) * 100vw);
	/* margin-bottom: 0; */
	opacity: 0;
}

.top-mv img.mv-img,
.top-mv .mv-title {
	position: absolute;
}

.top-mv img.mv-img {
	-o-object-fit: cover;
	object-fit: cover;
}

.top-mv .mv-title {
	color: #fff;
	bottom: 8%;
	left: 5%;
}

.top-mv .mv-title .en {
	margin-top: var(--margin-40);
}

.top-mv h1 {
	font-size: calc(36 / var(--width) * 100vw);
}

.top-mv h1 .flex {
	align-items: flex-end;
	gap: var(--margin-10);
}

.top-mv h1 p {
	font-size: calc(36 / var(--width) * 100vw);
	margin-top: var(--margin-20);
	letter-spacing: 2px;
	opacity: 0;
}

/* アニメ */
.c-txt__anim-cont {
	overflow: hidden;
}

.is-active .c-txt__anim-cont p {
	display: inline-block;
	transform: translateY(50px);
	animation: slideUpText 0.75s var(--easing-bounce) forwards;
	/* animation-delay: 1s; */
}

.is-active .c-txt__anim-cont:first-child p {
	animation-delay: 0.5s;
}

.is-active .c-txt__anim-cont:nth-child(2) p {
	animation-delay: 0.75s;
}

.is-active .c-txt__anim-cont:last-child p {
	animation-delay: 1s;
}

/* トップ */
.top-mv.is-active .c-txt__anim-cont p {
	opacity: 1;
	animation-delay: 0.5s;
}

.top-mv.is-active .c-txt__anim-cont:first-child p {
	animation-delay: 1s;
}

.top-mv.is-active .c-txt__anim-cont:nth-child(2) p {
	animation-delay: 1.25s;
}

.top-mv.is-active .c-txt__anim-cont:last-child p {
	animation-delay: 1.5s;
}

@keyframes slideUpText {
	0% {
		transform: translateY(50px);
	}

	100% {
		transform: translateY(0);
	}
}

.top-mv h1 p span.text__s {
	font-size: calc(28 / var(--width) * 100vw);
}

.top-mv h1 img {
	width: calc(300 / var(--width) * 100vw);
}

.p-mv-txtCont {
	width: 35%;
}

.p-mv-imgCont {
	width: 60%;
	border-radius: var(--corner);
	overflow: hidden;
}

.c-pointCont.p-mv-banner {
	width: 100%;
}

/* アニメ */
.p-mv-banner.a-scaleUp,
.p-mv-subtxt.a-scaleIn {
	opacity: 0;
}

.is-active .p-mv-subtxt.a-scaleIn {
	animation-delay: 2s;
}

.is-active .p-mv-banner.a-scaleUp {
	animation-delay: 3s;
}

.p-mv-banner__inner {
	display: flex;
	/* border-radius: var(--corner); */
	/* overflow: hidden; */
}

/* アニメ */
.top-mv.fadeIn,
.fadeIn .p-mv-txtCont {
	transition: opacity 1s ease;
}

.top-mv.fadeIn.is-active,
.fadeIn.is-active .p-mv-txtCont {
	opacity: 1;
}

header.fadeIn {
	opacity: 1;
	top: -100px;
	transition: top 1s ease;
}

header.fadeIn.is-active {
	top: 0;
	transition-delay: 2.5s;
}

/*--- SERVICE ---*/
.p-topintro-anim-cont {
	position: relative;
	max-width: 45%;
	width: calc(605 / var(--width) * 100vw);
	height: calc(430 / var(--width) * 100vw);
}

.p-topintro-anim-cont::before {
	content: "";
	position: absolute;
	width: calc(300 / var(--width) * 100vw);
	height: calc(300 / var(--width) * 100vw);
	background-image: url("../image/top-service-img_bg.svg");
	background-repeat: no-repeat;
	background-size: 100%;
	left: 0;
	top: 50%;
	translate: 0 -50%;
}

.p-topintro-anim-cont>* {
	position: absolute;
	top: 50%;
	translate: 0 -50%;
}

ul.p-topintro-anim-txt {
	font-size: var(--font-size--mid);
	font-weight: 600;
	line-height: 1.35;
	color: var(--col--assort);
	right: 0;
}

ul.p-topintro-anim-txt li {
	display: inline-flex;
	align-items: center;
}

ul.p-topintro-anim-txt li p {
	opacity: 0;
	transition: opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
	transition-delay: 1s;
}

ul.p-topintro-anim-txt li::before {
	content: "";
	display: inline-flex;
	background-color: #fff;
	background-image: url("../image/top-service-img-check.svg");
	background-repeat: no-repeat;
	background-position: center;
	margin-right: var(--margin-20);
	width: calc(60 / var(--width) * 100vw);
	height: calc(60 / var(--width) * 100vw);
	border: 4px solid;
	vertical-align: middle;
	border-radius: 100vh;

	scale: 0;
	transition: scale 1s cubic-bezier(0.165, 0.84, 0.44, 1);
	transition-delay: 1s;
}

.p-topintro-anim-img {
	top: 65%;
	overflow: hidden;
	height: calc(300 / var(--width) * 100vw);
}

.p-topintro-anim-img::before {
	content: "";
	position: absolute;
	top: 0;
	right: 10%;
	background-image: url("../image/topintro-kira.svg");
	background-repeat: no-repeat;
	background-size: 100%;
	background-position: center;
	margin-right: var(--margin-20);
	width: calc(35 / var(--width) * 100vw);
	height: calc(40 / var(--width) * 100vw);
	z-index: 2;
	animation: scaleRepeat 1s infinite;
	opacity: 0;
	transition: 1s cubic-bezier(0.215, 0.61, 0.355, 1);
	transition-delay: 1s;
}

@keyframes scaleRepeat {

	0%,
	100% {
		scale: 0.85;
	}

	50% {
		scale: 1;
	}
}

.p-topintro-anim-img img {
	opacity: 0;
	transform: translateY(100%);
	transition: 1s cubic-bezier(0.215, 0.61, 0.355, 1);
	transition-delay: 0.25s;
}

/* アニメ */
ul.p-topintro-anim-txt li.is-active p {
	opacity: 1;
}

ul.p-topintro-anim-txt li.is-active::before {
	scale: 1;
}

.p-topintro-anim-img.is-active img {
	opacity: 1;
	transform: translateY(0);
}

.p-topintro-anim-img.is-active::before {
	opacity: 1;
}

/*--- CONTACT ---*/
.top-contact {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.top-contact::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	width: 100%;
	height: 100%;
	background: url("../image/bg-contact.jpg") no-repeat;
	background-size: cover;
	background-position: center;
	z-index: -1;
}

.top-contact .container {
	padding: calc(120 / var(--width) * 100vw) 0;
}

.top-contact .inner {
	background-color: rgba(255, 255, 255, 0.75);
	border-radius: 100vh;
	padding: var(--margin-80);
}

.c-contact_telCont {
	max-width: 90%;
	margin: 0 auto;
}

.c-contact_telCont .c-contact_tel,
.c-contact_telCont .c-contact_mail {
	display: flex;
}

.c-contact_telCont .c-contact_tel::before,
.c-contact_telCont .c-contact_mail::before {
	content: "";
	display: block;
	width: calc(60 / var(--width) * 100vw);
	height: calc(60 / var(--width) * 100vw);
	background-repeat: no-repeat;
	background-size: contain;
	margin-right: var(--margin-10);
}

.c-contact_telCont .c-contact_tel::before {
	background-image: url("../image/contact-icon__tel.png");
}

.c-contact_telCont .c-contact_mail::before {
	background-image: url("../image/contact-icon__mail.png");
}

.c-contact_telCont a {
	display: block;
	text-align: left;
	font-size: calc(28 / var(--width) * 100vw);
	font-weight: 600;
	color: var(--col--txt);
	line-height: 1.2;
}

.c-contact_telCont .btn-text {
	text-align: left;
}

.c-contact_telCont .c-contact_mail {
	align-items: center;
}

.p-top-contactImgCont {
	max-width: var(--max-width__small);
	width: 70%;
	position: absolute;
	overflow: hidden;
	top: 25%;
	left: 50%;
	translate: -50% -50%;
	display: flex;
	justify-content: space-between;
	pointer-events: none;
}

[class*="p-top-contactImg_"] {
	width: calc(225 / var(--width) * 100vw);
}

/*--- 採用情報・会社案内 ---*/

/* ----------------------------------------

下層

---------------------------------------- */
/* 見出しアイコン */
.lower h2.title.icon-tool::before {
	content: "";
	display: inline-block;
	width: calc(50 / var(--width) * 100vw);
	height: calc(50 / var(--width) * 100vw);
	background: url("../image/service-icon.png") no-repeat;
	background-size: contain;
	vertical-align: middle;
}

.a-appear span {
	opacity: 0;
	transform: translateY(-10px);
}

/* 3カラム アイテム */
.c-3col-item,
.p-facility-cont {
	padding: var(--margin-40) calc(30 / var(--width) * 100vw);
	background-color: #fff;
	border-radius: var(--corner);
}

.c-3col-wrap {
	gap: var(--margin-40) var(--margin-20);
}

.c-3col-item {
	width: calc(100% / 3 - var(--margin-20));
}

.c-3col-item .title {
	font-size: var(--font-size--mid);
	margin-top: var(--margin-20);
	margin-bottom: var(--margin-10);
}

/* アイテム区切り */
.c-bullet p {
	display: inline-block;
}

.c-bullet p::after {
	content: "/";
	margin-left: var(--margin-10);
}

/* ----------------------------------------
｜　会社案内
---------------------------------------- */
.p-service-pageLink {
	justify-content: center;
	gap: var(--margin-20);
}

.p-service-pageLink li:not(:last-child)::after {
	content: "/";
	display: inline-block;
	margin-left: var(--margin-20);
}

.c-cont-round.lower-cont {
	padding: var(--margin-80) 0;
}

.c-cont-round.lower-cont+.lower-cont {
	padding-top: 0;
}

.c-cont-round.lower-cont .inner {
	padding: var(--margin-60);
	border-radius: var(--corner);
}

/* 理念 */
.p-philosophy .flex.row {
	gap: var(--margin-20);
}

.c-table-wrap th {
	width: calc(200 / var(--width) * 100vw);
	min-width: 40%;
	padding-left: var(--margin-10);
	-webkit-text-stroke: 0.025em currentColor;
	border-bottom: 1px solid var(--col--assort);
}

.c-table-wrap td {
	border-bottom: 1px solid #e6e6e6;
	padding-left: var(--margin-10);
}

/* ----------------------------------------
｜　事業内容
---------------------------------------- */
.p-facility-wrap {
	gap: var(--margin-40);
}

.p-facility-ttl {
	font-size: var(--font-size--mid);
	color: var(--col--assort);
}

.p-facility-ttl::before,
.p-subjects-ttl:before {
	content: "";
	display: inline-block;
	width: calc(50 / var(--width) * 100vw);
	height: calc(50 / var(--width) * 100vw);
	background: url("../image/facility-icon.png") no-repeat;
	background-size: contain;
	vertical-align: middle;
	margin-right: var(--margin-10);
}

.p-facility-customer {
	padding: var(--margin-20);
	border: 1px solid;
	border-radius: 20px;
}

.p-facility-customer::before {
	content: "主な取引先";
	display: block;
	margin-bottom: var(--margin-10);
	-webkit-text-stroke: 1px currentColor;
}

/*光輝にお任せください！*/
#service-intro .p-facility-ttl {
	color: var(--col--txt);
}

/* 施工対象物 */
.p-subjects-ttl {
	font-size: calc(22 / var(--width) * 100vw);
	color: var(--col--assort);
}

#service-subject .p-subjects-ttl {
	color: var(--col--txt);
}

.p-subjects-ttl:before {
	width: calc(30 / var(--width) * 100vw);
	height: calc(30 / var(--width) * 100vw);
}

/* 流れ */
#service-flow {
	position: relative;
	padding: var(--margin-100) 0;
}

.p-flow-inner {
	position: relative;
	border-radius: var(--corner);
	z-index: 1;
}

.p-flow-inner .inner {
	width: 90%;
	margin-left: auto;
	margin-right: auto;
}

.p-flow-bg {
	position: absolute;
	top: 0;
	z-index: 0;
}

.p-flow-cont {
	display: flex;
	counter-increment: flow;
	flex-wrap: nowrap;
	gap: var(--margin-20);
}

.p-flow-cont::before {
	content: "0"counter(flow);
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(80 / var(--width) * 100vw);
	height: calc(80 / var(--width) * 100vw);
	aspect-ratio: 1 / 1;
	color: var(--col--assort);
	-webkit-text-stroke: 1px currentColor;
	font-size: var(--font-size--big);
	border: 5px solid;
	border-radius: 100vh;
}

.p-flow-cont:not(:last-child) {
	margin-bottom: var(--margin-60);
}

.p-flow-cont__inner {
	width: fit-content;
}

.p-flow-cont .title {
	font-size: var(--font-size--mid);
	margin-bottom: var(--margin-20);
}

.p-flow-category {
	display: inline-block;
	margin-bottom: var(--margin-10);
	padding: 0.1em 0.5em;
	background-color: var(--col--assort);
	font-size: var(--font-size--small);
	color: #fff;
}

.p-flow-tag {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	gap: var(--margin-10);
	padding: var(--margin-20);
	background-color: #f7f9fc;
	color: var(--col--assort);
}

.p-flow-tag p {
	padding: 0.1em 0.75em;
	display: inline-block;
	font-size: var(--font-size--small);
	border: 1px solid;
	border-radius: 20px;
}

/* ----------------------------------------
｜　採用情報
---------------------------------------- */
/*基本*/
.l-recruit-main .bg-recruit .inner.bg-white,
.l-recruit-main .bg-recruit .inner.bg-lower {
	color: var(--col--txt);
}

.bg-recruit {
	background-color: var(--col--assort);
	color: #fff;
}

/* .bg-recruit + .bg-recruit {
  padding-top: 0;
} */
.l-recruit-header {
	position: fixed;
	width: 18%;
	height: 100%;
	margin: var(--margin-20) auto;
	padding: 2%;
	background-color: #fff;
}

.l-recruit-main {
	width: 82%;
	margin-top: 0;
	margin-left: auto;
}

.l-recruit-main .c-pointCont.c-pointCont_txt.p-recruitBanner_txt {
	width: 100%;
	background-color: #fff;
}

.l-recruit-main .c-pointCont.c-pointCont_txt.p-recruitBanner_txt .btn {
	width: calc(320 / var(--width) * 100vw);
}

.l-recruit-main .container {
	max-width: 100%;
}

.l-recruit-main .container .inner {
	max-width: calc(var(--max-width) - 10%);
	margin: 0 auto;
}

.l-recruit-main .container.cont__l.twoCol {
	max-width: calc(var(--max-width) - 10%);
}

.l-recruit-main .container.cont__s .inner {
	max-width: calc(var(--max-width__small) - 18%);
	margin: 0 auto;
}

.l-recruit-main .bg-recruit .title .jp {
	font-size: var(--font-size);
}

/*サイドナビ*/
.l-recruit-header ul li a {
	text-decoration: none;
}

.recruit-nav__logo.flex.column {
	gap: var(--margin-10);
	margin-bottom: var(--margin-20);
}

.menu-item__message::before {
	background-image: url(../image/recruit-nav-icon01.svg);
}

.menu-item__strong::before {
	background-image: url(../image/recruit-nav-icon02.svg);
}

.menu-item__works::before {
	background-image: url(../image/recruit-nav-icon03.svg);
}

.menu-item__person::before {
	background-image: url(../image/recruit-nav-icon04.svg);
}

.menu-item__interview::before {
	background-image: url(../image/recruit-nav-icon05.svg);
}

.menu-item__number::before {
	background-image: url(../image/recruit-nav-icon06.svg);
}

.menu-item__benefits::before {
	background-image: url(../image/recruit-nav-icon07.svg);
}

.menu-item__training::before {
	background-image: url(../image/recruit-nav-icon08.svg);
}

.menu-item__requirement::before {
	background-image: url(../image/recruit-nav-icon09.svg);
}

.p-recruit-goalBtn {
	background: var(--col--accent);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff !important;
	background-color: var(--col--accent);
	border-radius: 100px;
	width: var(--goalBtn-width);
	height: var(--goalBtn-height);
	--goalBtn-width: calc(210 / var(--width) * 100vw);
	--goalBtn-height: calc(100 / var(--width) * 100vw);
}

.p-recruit-goalBtn::before {
	background-image: url(../image/header-nav-icon04.svg);
	content: "";
	display: inline-block;
	width: 20px;
	height: 20px;
	background-size: 100%;
	background-repeat: no-repeat;
	vertical-align: middle;
	margin-right: var(--margin-10);
}

.p-recruit-goalBtn::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	color: currentColor;
	border: 1px solid;
	border-radius: 100px;
	width: calc(var(--goalBtn-width) - 5%);
	height: calc(var(--goalBtn-height) - 10%);
}

.l-recruit-header .p-recruit-goalBtn {
	color: var(--col--bg);
}

/* MV */
.recruit-mv {
	height: calc(800 / var(--width) * 100vw);
	max-height: 100vh;
	position: relative;
	background-color: transparent;
}

.recruit-mv .img-cont {
	width: 100%;
	height: calc(550 / var(--width) * 100vw);
	position: absolute;
	bottom: 0;
	text-align: center;
}

.recruit-mv .img-cont img {
	width: auto;
	vertical-align: bottom;
}

/* 見出し */
.recruit-cont .title {
	color: #fff;
}

.recruit-cont .title .en {
	font-size: calc(40 / var(--width) * 100vw);
	font-family: "Dela Gothic One", sans-serif;
	font-weight: 400;
	color: currentColor;
}

.recruit-cont .title .jp {
	font-size: var(--font-size);
}

.recruit-cont .title .jp.fukidashi {
	position: relative;
	width: 100%;
	max-width: calc(320 / var(--width) * 100vw);
	height: calc(60 / var(--width) * 100vw);
	margin: 0;
	text-align: center;
}

.recruit-cont .title .jp.fukidashi::before {
	content: "";
	position: absolute;
	top: 25%;
	left: 50%;
	translate: -50% -50%;
	width: 100%;
	height: 100%;
	background-color: currentColor;
	mask-image: url("../image/recruit-ttl_fukidashi.svg");
	mask-size: 100% 100%;
}

/* message */
.p-recruit-message-cont .title {
	color: var(--col--assort);
}

.p-recruit-message-cont {
	padding: var(--margin-120);
	background: #fff;
	border: 5px solid;
}

/* strong */
#recruit-strong {
	position: relative;
}

#recruit-strong::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: url("../image/recruit-strong_bg.svg");
	background-size: cover;
	background-repeat: no-repeat;
	pointer-events: none;
}

/* 背景 */
.recruit-cont {
	border-top: 5px solid #000;
	border-bottom: 5px solid #000;
	margin-bottom: var(--margin-60);
}

.bg-recruit-grd {
	background: linear-gradient(to bottom, #e6e6e6 0%, #1c3f71 100%);
}

.bg-tombo {
	position: relative;
}

.bg-tombo .inner {
	padding: 10% 0;
}

.bg-tombo::before,
.bg-tombo::after {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	height: calc(38 / var(--width) * 100vw);
	background-color: #fff;
	-webkit-mask-image: url("../image/bg-tombo_top.svg");
	-webkit-mask-size: 100% 100%;
	-webkit-mask-position-x: center;
	-webkit-mask-repeat: no-repeat;
}

.bg-tombo::before {
	/* top: 5%; */
	top: var(--margin-20);
}

.bg-tombo::after {
	scale: 1 -1;
	/* bottom: 5%; */
	bottom: var(--margin-20);
}

/***** MV *****/
.p-recruit-nav-cont {
	margin: 0 auto;
}

.p-recruit-mv_bg-cont {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	animation: moveRecruitBG infinite 20s linear;
	flex-wrap: nowrap !important;
	z-index: -1;
}

/* FV見出し */
.p-recruit-mv_ttl-cont {
	max-width: var(--max-width__small);
	margin: var(--margin-60) auto 0;
}

.p-recruit-mv_ttl {
	padding: var(--margin-20);
	background: #fff;
	border: 3px solid;
}

.p-recruit-mv_bg-cont img {
	width: auto;
	height: 100%;
}

/***** 漫画 *****/
#recruit-manga .inner {
	/* max-width: none; */
	margin-right: auto;
}

#recruit-manga .title {
	color: var(--col--txt);
}

.p-recruit-manga-cont {
	overflow-x: scroll;
	display: flex;
	flex-direction: row;
	gap: var(--margin-10);
	max-width: var(--max-width);
	margin: 0 auto;
}

.p-recruit-manga {
	width: 35vw !important;
	height: auto;
}

/* hint */
.scroll-hint-icon-wrap {
	z-index: 1000;
}

.js-gsap_area {
	overflow-y: scroll;
	/*スクロールバー非表示（IE・Edge）*/
	-ms-overflow-style: none;
	/*スクロールバー非表示（Firefox）*/
	scrollbar-width: none;
	overflow: visible;
}

.p-recruit-manga_wrap {
	overflow: visible !important;
}

/*スクロールバー非表示（Chrome・Safari）*/
.js-gsap_area::-webkit-scrollbar {
	display: none;
}

/* person */
.p-recruit-person-cont {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.p-recruit-person-circle_wrap {
	position: relative;
	margin: var(--margin-100) 0;
	width: calc(var(--r) * calc(2 / var(--width) * 100vw));
	height: calc(var(--r) * calc(2 / var(--width) * 100vw));
	aspect-ratio: 1/1;
	border: 20px solid #ddd;
	border-radius: 50%;
	box-sizing: border-box;

	display: flex;
	align-items: center;
	justify-content: center;
}

.p-recruit-person-circle {
	/* 位置 */
	--a2: calc(var(--a) * 1deg - 90deg);
	--x: calc(cos(var(--a2)) * var(--r) * calc(1 / var(--width) * 100vw));
	--y: calc(sin(var(--a2)) * var(--r) * calc(1 / var(--width) * 100vw));
	translate: var(--x) var(--y);
	position: absolute;
	width: calc(180 / var(--width) * 100vw);
	height: calc(180 / var(--width) * 100vw);
	color: var(--col--assort);
	border-radius: 100%;

	display: flex;
	align-items: center;
	justify-content: center;
}

.p-recruit-person-circle__bg {
	transform: rotate(calc(var(--a) * 1deg + 0.5deg));

	content: "";
	position: absolute;
	width: calc(200 / var(--width) * 100vw);
	height: calc(200 / var(--width) * 100vw);
	background: #fff;
	border-radius: 100%;
	z-index: -1;
}

.p-recruit-person-circle__bg::after {
	content: "";
	position: absolute;
	bottom: -1em;
	width: 1em;
	height: 1.25em;
	background: #fff;
	clip-path: polygon(50% 100%, 0 0, 100% 0);
	transform-origin: center;
}

.p-recruit-person-img-cont {
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: var(--margin-20);
	max-width: calc(520 / var(--width) * 100vw);
	width: 55%;
}

.p-recruit-person-img-cont img {
	width: auto;
	/* max-width: calc(180 / var(--width) * 100vw); */
	height: calc(150 / var(--width) * 100vw);
}

.p-recruit-person-img-cont img {
	width: auto;
	/* max-width: calc(180 / var(--width) * 100vw); */
	height: calc(300 / var(--width) * 100vw);
}

/***** 魅力 *****/
ul.p-recruit-charm-list {
	row-gap: var(--margin-40);
}

ul.p-recruit-charm-list li {
	width: calc(100% / 3 - var(--margin-20));
}

ul.p-recruit-charm-list li .title {
	position: relative;
	font-size: calc(18 / var(--width) * 100vw);
	padding: var(--margin-40) 0;
	background-color: #fff;
	color: var(--col--assort);
	border-radius: 10px;
}

ul.p-recruit-charm-list li .title::before {
	content: "";
	display: block;
	width: 2.5em;
	height: 1.25em;
	background: inherit;
	clip-path: polygon(50% 100%, 0 0, 100% 0);
	position: absolute;
	bottom: -1em;
	left: 50%;
	transform: translateX(-50%);
}

/***** インタビュー *****/
.p-recruit-interview-wrap {
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
}

.swiper {
	overflow: visible !important;
}

.p-recruit-interview-wrap .swiper-pagination {
	margin-top: 20px;
}

.p-recruit-interview-cont {
	color: var(--col--txt);
	height: calc(350 / var(--width) * 100vw) !important;
}

.p-recruit-interview-cont__inner {
	width: 100%;
	height: 90%;
	margin-top: 10%;
	padding: 5% 5% 10% 10%;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: var(--margin-40);
}

.p-recruit-interview-cont__inner::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 95%;
	height: 95%;
	background-color: #e6e6e6;
	outline: 3px solid;
	z-index: -1;
}

.p-recruit-interview-name {
	display: inline-flex;
	flex-direction: column;
	line-height: 1.5;
}

.p-recruit-interview-name,
.p-recruit-interview-btn {
	padding: var(--margin-10);
	border: 1px solid;
	background: #fff;
	color: var(--col--txt);
	text-align: left;
}

.p-recruit-interview-btn {
	width: 100%;
	height: calc(50 / var(--width) * 100vw);
	display: flex;
	align-items: center;
	z-index: 12;
	transition: var(--transition-comical);
}

.p-recruit-interview-fukidashi {
	width: calc(250 / var(--width) * 100vw);
	height: calc(120 / var(--width) * 100vw);
	padding-bottom: 0.5em;
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: left;
	line-height: 1.5;

	background-image: url("../image/interview-d_fukidashi-orange.svg");
	background-size: 100% 100%;
}

.p-recruit-interview-cont:nth-of-type(2n + 1) .p-recruit-interview-fukidashi {
	background-image: url("../image/interview-d_fukidashi-white.svg");
}

img.p-recruit-interview-human {
	width: calc(120 / var(--width) * 100vw);
	height: auto;
	/* height: calc(300 / var(--width) * 100vw); */
	position: absolute;
	bottom: 0;
	right: 0;
	z-index: 10;
	transition: var(--transition-comical);
	transform-origin: bottom;
	filter: drop-shadow(5px 2.5px 0 rgba(0, 0, 0, 0.25));
}

/* ホバー */
.p-recruit-interview-cont:hover img.p-recruit-interview-human {
	scale: 1.1;
}

.p-recruit-interview-cont:hover .p-recruit-interview-btn {
	border-width: 3px;
	scale: 1.2;
}

/* ポップアップ制御 */
.popup,
.overlay {
	display: none;
	position: fixed;
	z-index: 1000;
}

.popup {
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: white;
	padding: var(--margin-60);
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
}

.overlay {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
}

button,
.open-popup {
	cursor: pointer;
}

.close-popup {
	position: fixed;
	top: var(--margin-60);
	right: var(--margin-60);
}

.p-close-btn {
	display: inline-block;
	width: var(--margin-60);
	height: var(--margin-60);
	background-image: url("../image/interview-popup_closeBtn.svg");
	background-repeat: no-repeat;
	background-size: 100% 100%;
	vertical-align: middle;
}

/* ポップアップ */
.p-recruit-interview-detailWrap {
	gap: var(--margin-40);
}

.p-recruit-interview-detailWrap .title {
	text-align: left;
	color: var(--col--assort);
}

.p-recruit-interview-detailWrap .title:has(.jp.fukidashi) {
	width: 100%;
	display: inline-block;
	text-align: center;
	margin-bottom: 0;
}

.p-recruit-interview-detailWrap .title .jp.fukidashi {
	color: #fff;
}

.p-recruit-interview-detailWrap .title .jp.fukidashi::before {
	mask-image: url("../image/interview-fukidashi.svg");
	height: calc(70 / var(--width) * 100vw);
	background-color: var(--col--assort);
	z-index: -1;
}

.p-recruit-interview-detail {
	width: 100%;
	max-width: var(--max-width__small);
	height: 95%;
	background-color: #f7f8f8;
	color: var(--col--txt);
	overflow-y: scroll;
}

.p-recruit-interview-detailCont.col-1 {
	width: 30%;
}

.p-recruit-interview-detailCont.col-1 .img-cont img {
	/* width: auto; */
	max-width: calc(160 / var(--width) * 100vw);
	display: inline-block;
}

/* caption */
.p-recruit-interview-detailCont.col-1 .img-cont .caption {
	position: relative;
	margin-top: var(--margin-10);
	font-size: 13px;
	line-height: 1.5;
	text-align: justify;
}

.p-caption-line {
	position: relative;
	width: 100%;
	height: auto;
	display: block;
	padding-top: var(--margin-20);
}

.p-caption-line::before,
.p-caption-line::after {
	content: "";
	position: absolute;
	display: block;
	background-color: var(--col--assort);
}

.p-caption-line::before {
	bottom: 0;
	left: 0;
	width: 100%;
	height: 2px;
}

.p-caption-line::after {
	bottom: 0;
	left: 0;
	width: 50px;
	height: 2px;
	rotate: -45deg;
	transform-origin: left;
}

/* インタビュー設問 */
.p-recruit-interview-detailCont.col-2 {
	width: 70%;
	text-align: left;
}

.p-recruit-interview-detailCont.col-2 .profile h3.title {
	font-family: "Noto Serif JP", serif;
	font-weight: 500;
	color: var(--col--txt);
	margin-bottom: var(--margin-10);
}

ul.p-recruit-interview_listWrap {
	margin-top: var(--margin-60);
}

ul.p-recruit-interview_listWrap li:not(:last-child) {
	margin-bottom: var(--margin-40);
}

ul.p-recruit-interview_listWrap li .question {
	font-size: var(--font-size--mid);
	font-weight: 600;
	padding-bottom: 0.1em;
	padding-left: 0.1em;
	margin-bottom: var(--margin-20);
	border-bottom: 2px solid;
}

ul.p-recruit-interview_listWrap li .text {
	text-align: justify;
}

/* スケジュール */
.p-interview-scheduleWrap ul {
	display: flex;
	flex-direction: column;
}

.p-interview-scheduleWrap ul li.period {
	position: relative;
	display: flex;
	flex-direction: row;
	padding-left: 15%;
	gap: var(--margin-20);
	text-align: left;
}

.p-interview-scheduleWrap ul li.period:not(:last-child) {
	padding-bottom: var(--margin-20);
}

.p-interview-scheduleWrap ul li.period:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 0.35em;
	left: 0.45em;
	width: 2px;
	height: 100%;
	background-color: var(--col--txt);
	z-index: -1;
}

.p-interview-scheduleWrap ul li.period::before {
	content: "";
	position: absolute;
	top: 0.35em;
	left: 0;
	/* transform: translateY(-10%); */
	width: 1em;
	height: 1em;
	background: var(--col--assort);
	display: block;
	border-radius: 50px;
}

.p-interview-scheduleWrap ul li.period .time {
	width: 20%;
	letter-spacing: 0.15px;
}

.p-interview-scheduleWrap ul li.period .text {
	width: 80%;
}

.p-recruit-number {
	display: grid;
	grid-template-columns: repeat(3, calc(100% / 3 - 10px));
	justify-content: space-between;
	margin: auto;
}

.p-number-comic {
	width: 100%;
	height: 100%;
	display: flex;
	opacity: 0;
	transition: opacity var(--easing-bounce) 1s;
}

.is-active .p-number-comic {
	opacity: 1;
}

.p-number-comic:nth-child(2),
.p-number-comic:nth-child(3) {
	height: 82.5%;
}

.p-number-comic:nth-child(3) {
	justify-content: flex-end;
}

.p-number-comic:nth-child(2) img,
.p-number-comic:nth-child(3) img {
	width: auto;
	height: 100%;
}

.p-number-comic:nth-child(4) {
	height: calc(240 / var(--width) * 100vw);
	width: auto;
}

.p-number-comic:nth-child(5) {
	justify-content: flex-start;
	transform: translateY(-12.5%);
}

.p-number-comic:nth-child(6) {
	transform: translateY(-20%);
}

.p-number-comic:nth-child(7),
.p-number-comic:nth-child(8),
.p-number-comic:nth-child(9) {
	height: calc(220 / var(--width) * 100vw);
	transform: translateY(calc(-20 / var(--width) * 100vw));
	align-items: flex-end;
}

.p-number-comic:nth-child(7) img,
.p-number-comic:nth-child(8) img,
.p-number-comic:nth-child(9) img {
	width: 100%;
	height: auto;
}

/* 福利厚生 */
#recruit-benefits .inner {
	padding-bottom: var(--margin-40);
}

.p-recruit-benefits-wrap {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--margin-20);
}

.p-recruit-benefits-wrap .cont {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: calc(125 / var(--width) * 100vw);
	font-size: calc(20 / var(--width) * 100vw);
	font-weight: 600;
	color: var(--col--assort);
	background-color: #fff;
	border-radius: 20px;
}

/* 福利厚生-スライド */
.p-recruit-benefits-slider {
	display: flex;
	flex-direction: row;
	gap: 5px;
	animation: moveRecruitBG infinite 20s linear;
}

.p-recruit-benefits-slider img {
	width: 45%;
}

/* 人材育成 */
#recruit-training .twoCol {
	gap: var(--margin-20);
}

ul.p-training-list {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

ul.p-training-list li {
	width: 100%;
	padding: var(--margin-20) var(--margin-10);
	border-bottom: 1px solid;
}

.bg-recruit .c-table-wrap {}

.bg-recruit .c-table-wrap th {
	background-color: var(--col--accent);
	border-color: #fff;
}

/* ----------------------------------------
｜　お問い合わせ
---------------------------------------- */
.c-contact_telCont .c-contact_tel {
	justify-content: center;
}

/* ----------------------------------------

｜　フォーム設定

---------------------------------------- */
/* 基本
---------------------------------------- */
label:has(input[type="radio"]),
input[type="submit"] {
	cursor: pointer;
}

.p-form-table {
	max-width: var(--max-width__small);
	margin: 0 auto var(--margin-60);
}

.p-form-table tr {
	border-bottom: 1px solid #d9d9d9;
}

.p-form-table tr:first-child {
	border-top: 1px solid #d9d9d9;
}

.p-form-table th {
	width: 25%;
	min-width: 30%;
}

.p-form-table input:not([type="radio"]),
.p-form-table textarea {
	width: 100%;
	padding: 0.75em;
	border: none;
	font-size: var(--font-size);
	letter-spacing: 1px;
	background: #f5f5f5;
}

.p-form-table input::placeholder {
	font-size: var(--font-size--small);
}

.p-form-table textarea[type="text"] {
	width: 100%;
	min-height: calc(200 / var(--width) * 100vw);
	line-height: 1.5;
}

.p-form-table input.short {
	width: calc(150 / var(--width) * 100vw);
}

.p-form-table td .flex.row {
	flex-direction: row !important;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--margin-10);
	margin-bottom: var(--margin-20);
}

/* 必須 */
.p-form-table .any::before,
.p-form-table .require::before {
	content: "必須";
	font-size: 13px;
	font-weight: 400;
	padding: 0.35rem 0.5rem;
	background: red;
	color: #fff;
	margin-right: var(--margin-20);
}

.p-form-table .any::before {
	content: "任意";
	background: var(--col--assort);
}

/* チェック */
input[type="checkbox"] {
	position: relative;
	width: calc(25 / var(--width) * 100vw);
	height: calc(25 / var(--width) * 100vw);
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	vertical-align: middle;
	margin-right: var(--margin-10);
	/* visibility: hidden; */
}

input[type="checkbox"]::before,
input[type="checkbox"]::after {
	content: "";
	display: inline-block;
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	border-radius: 100vh;
}

input[type="checkbox"]::before {
	width: calc(25 / var(--width) * 100vw);
	height: calc(25 / var(--width) * 100vw);
	border: 1px solid #d9d9d9;
}

input[type="checkbox"]:checked::after {
	width: calc(18 / var(--width) * 100vw);
	height: calc(18 / var(--width) * 100vw);
	background: var(--col--assort);
}

/* 送信 */
.p-form-submit {
	text-align: center;
	margin-top: var(--margin-60);
}

.p-form-submit input[type="submit"] {
	font-size: var(--font-size);
	width: calc(250 / var(--width) * 100vw);
	height: calc(60 / var(--width) * 100vw);
	border: none;
	background: var(--col--assort);
	color: #fff;
	border-radius: var(--corner);
}

.error-text {
	color: red;
}

@keyframes anim-radio-1 {
	0% {
		box-shadow: 0 0 0 1px transparent;
	}

	50% {
		box-shadow: 0 0 0 10px rgba(180, 128, 28, 0.2);
	}

	100% {
		box-shadow: 0 0 0 10px transparent;
	}
}

fieldset input {
	display: none;
}

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
}

/* ----------------------------------------
｜　ポリシー
---------------------------------------- */
.p-policy-cont {
	margin-bottom: var(--margin-80);
}

.p-policy-cont h3 {
	margin-bottom: var(--margin-10);
}

.p-policy-cont p.text.long {
	max-width: none;
}

/* アニメ
---------------------------------------- */
/*---- 採用情報 ---- */
.fadeIn.recruit-cont .title .jp.fukidashi {
	opacity: 0;
	rotate: -45deg;
	transition: rotate var(--transition-comical),
		opacity var(--transition-comical);
	transition-delay: 0.25s;
}

.is-active.recruit-cont .title .jp.fukidashi {
	opacity: 1;
	rotate: 0deg;
}

.is-active .a-scaleUp {
	animation: scaleUp 2s var(--easing-bounce) forwards;
}

@keyframes scaleUp {
	0% {
		scale: 0;
		opacity: 0;
	}

	50% {
		scale: 1.01;
	}

	100% {
		scale: 1;
		opacity: 1;
	}
}

.is-active .a-scaleIn {
	animation: scaleIn 1s var(--easing-bounce) forwards;
}

@keyframes scaleIn {
	0% {
		transform: translateY(50px);
		opacity: 0;
	}

	100% {
		transform: translateY(0);
		opacity: 1;
	}
}

/* リンク
---------------------------------------- */
/* 文字 */
a:not([class]) {
	color: var(--col--txt);
	text-decoration: underline;
	transition: var(--transition-fast);
}

a.underline::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	background-color: var(--col--txt);
	width: 100%;
	height: 1px;
}

.tel {
	font-family: "Delius Unicase", cursive;
	font-weight: 700;
	font-style: normal;
	text-decoration: none;
}

/* 文字(採用) */
.l-recruit-main a:not([class]) {
	color: var(--col--accent);
}

@media (any-hover: hover) {
	a:not([class]):hover {
		opacity: 0.75;
	}

	a.btn,
	.a-bounce {
		transition: var(--easing-bounce) 0.4s;
	}

	a.btn:hover,
	.a-bounce:hover {
		scale: 1.05;
	}
}

.bg-grid,
.bg-grid .container {
	opacity: 0;
	transition: opacity 1s ease;
}

.is-active.bg-grid,
.is-active.bg-grid .container {
	opacity: 1;
}

.is-active.bg-grid .container,
.is-active .p-top-contactImg_left,
.is-active .p-top-contactImg_right {
	transition-delay: 0.5s;
}

.p-top-contactImg_left,
.p-top-contactImg_right {
	scale: 0;
	transition: scale 1s var(--easing-bounce);
}

.is-active .p-top-contactImg_left,
.is-active .p-top-contactImg_right {
	scale: 1;
}

.c-pointCont::before {
	opacity: 0;
	translate: 0 -20%;
	transition: 2s var(--easing-bounce);
	animation: floating 3s ease infinite;
}

@keyframes floating {

	0%,
	100% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-10px);
	}
}

.is-active .c-pointCont::before {
	opacity: 1;
	translate: 0 0;
}

/* ----------------------------------------

最大

---------------------------------------- */
@media screen and (min-width: 1680px) {
	:root {
		--width: 1680;
		--font-size: calc(15 / var(--width) * 100vw);
		--margin-cont__lower: calc(180 / var(--width) * 100vw);
	}
}

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

	.p-recruit-mv_ttl,
	.p-recruit-mv_subttl {
		width: 100%;
		margin: 0 auto;
	}

	.recruit-mv .img-cont {
		height: calc(500 / var(--width) * 100vw);
	}
}

@media screen and (max-width: 1040px) {
	:root {
		--width: 1040;
		/* width */
		--max-width: calc(800 / var(--width) * 100vw);
		--max-width__large: calc(960 / var(--width) * 100vw);
		--max-width__small: calc(578 / var(--width) * 100vw);
	}

	/* トップページ */
	.p-top-contactImgCont {
		max-width: var(--max-width);
		width: 100%;
	}

	/* 下層ページ */
	.container.cont__s .inner,
	.p-form-table {
		max-width: var(--max-width);
	}

	/* お問い合わせ */

	/* 採用情報 */
	.l-recruit-header {
		display: none;
		position: static;
	}

	.l-recruit-main {
		width: 100%;
	}

	.l-recruit-main .text {
		text-align: inherit;
	}

	.l-recruit-main .container .inner,
	.l-recruit-main .container.cont__l.twoCol {
		max-width: var(--max-width);
	}

	.popup {
		padding: var(--margin-40);
	}

	.p-recruit-interview-detail {
		max-width: var(--max-width);
	}

	/* パネル */
	.p-number-comic:nth-child(4),
	.p-number-comic:nth-child(7),
	.p-number-comic:nth-child(8),
	.p-number-comic:nth-child(9) {
		height: calc(180 / var(--width) * 100vw);
	}

	.p-recruit-benefits-wrap {
		gap: 2%;
	}

	.p-recruit-message-cont {
		padding: var(--margin-40) var(--margin-20);
	}

	/* 漫画 */
	.js-gsap_wrap {
		width: auto;
	}

	.js-gsap_item {
		width: 50vw !important;
		/* object-fit: cover; */
	}
}

/* ----------------------------------------

SP

---------------------------------------- */
/* ipad */
@media screen and (max-width: 768px) {
	:root {
		--width: 768;
		--margin-cont__large: calc(190 / var(--width) * 100vw);
		--margin-cont__normal: calc(120 / var(--width) * 100vw);
		--margin-cont__lower: 5%;
		/* max-width */
		--max-width: calc(680 / var(--width) * 100vw);
		--max-width__large: calc(720 / var(--width) * 100vw);
		--max-width__small: calc(600 / var(--width) * 100vw);
		--font-size: 16px;
		--font-size--big: calc(28 / var(--width) * 100vw);
		--font-size--mid: calc(22 / var(--width) * 100vw);
	}

	/* ----------------------------------------
  ｜　共通設定
  ---------------------------------------- */
	.pc {
		display: none;
	}

	.sp {
		display: block;
	}

	.text {
		text-align: justify;
	}

	.text.long {
		max-width: none;
	}

	h2.title .jp {
		font-size: calc(24 / var(--width) * 100vw);
	}

	/* ----------------------------------------
  ｜　パーツ
  ---------------------------------------- */
	.container.left-0 {
		max-width: var(--max-width);
		margin-left: auto;
		padding-left: 0;
	}

	.twoCol .col-1,
	.twoCol .col-2 {
		width: 100%;
	}

	.c-3col-item {
		width: calc(100% / 2 - var(--margin-20));
	}

	.c-cont-round.lower-cont {
		padding: var(--margin-40) 0;
	}

	/* ----------------------------------------
  ｜　トップ
  ---------------------------------------- */
	.top-mv {
		height: auto;
		margin: 0;
		padding: 0 0 var(--margin-40);
	}

	.top-mv h1 img {
		width: 50%;
	}

	.top-mv h1 p {
		font-size: calc(24 / var(--width) * 100vw);
	}

	.top-mv h1 p span.text__s {
		font-size: calc(20 / var(--width) * 100vw);
	}

	.top-service .twoCol .col-1::before,
	.top-about::after {
		width: 80vw;
	}

	.p-top-recruit__cont .col-2 {
		transform: translate(0);
	}

	.p-top-contactImgCont {
		max-width: none;
		width: 95%;
	}

	[class*="p-top-contactImg_"] {
		width: 25vw;
	}

	.top-intro .inner.twoCol {
		flex-direction: column;
		gap: var(--margin-40);
	}

	ul.p-topintro-anim-txt {
		font-size: calc(28 / var(--width) * 100vw);
		width: 45%;
	}

	.p-topintro-anim-cont {
		max-width: none;
	}

	.p-topintro-anim-cont::before {
		width: 50%;
		height: calc(350 / var(--width) * 100vw);
	}

	.top-contact .inner {
		padding: var(--margin-60) var(--margin-40);
	}

	.c-contact_telCont {
		max-width: none;
	}

	.c-contact_telCont .c-contact_mail a {
		font-size: calc(20 / var(--width) * 100vw);
		align-items: center;
	}

	/* ----------------------------------------
  ｜　フッター
  ---------------------------------------- */
	#footer-recruit .twoCol,
	.p-footer-menu.col-2 {
		flex-direction: column;
		gap: var(--margin-60);
	}

	#footer-recruit .twoCol {
		padding: var(--margin-60) 0;
	}

	.p-footer-menu.col-2 {
		width: 100%;
	}

	.c-roundImg-cont {
		width: 100%;
	}

	/* ----------------------------------------
  ｜　下層
  ---------------------------------------- */
	/* トップ */
	.container[class$="-0"] .twoCol {
		flex-direction: column;
		gap: var(--margin-40);
	}

	.top-service .twoCol .col-1::before {
		right: 0;
		bottom: -10%;
		z-index: -1;
	}

	/* 並び */
	.top-about .twoCol .col-1 {
		order: 2;
	}

	/* ----------------------------------------
  ｜　🍔
  ---------------------------------------- */
	/* 制御 */
	body:has(.hamburger.clicked) {
		overflow-y: hidden;
	}

	header {
		margin: 0;
		background-color: #fff;
	}

	.header-cont {
		margin: var(--margin-20) auto var(--margin-10);
		margin: var(--margin-10) auto;
	}

	.header-menu {
		display: block;
		/* opacity: 0; */
		visibility: hidden;
		z-index: -1;
	}

	.header-menu .inner {
		max-width: var(--max-width);
		margin: 0 auto;
		opacity: 0;
		visibility: hidden;
		transition: 1s ease;
	}

	.header-menu.open .inner {
		opacity: 1;
		visibility: visible;
		padding-bottom: 20vh;
	}

	.header-menu_list {
		width: 75%;
		margin: 0 auto;
		align-items: center;
		flex-direction: column;
		transition: 0.5s ease;
	}

	.header-menu_list a:not(.menu-btn_goal) {
		width: 100%;
		padding: var(--margin-20);
	}

	#header-recruit_sp .header-menu_list a:not(.menu-btn_goal) {
		padding: var(--margin-10) var(--margin-20);
	}

	.p-recruit-goalBtn {
		--goalBtn-width: 100%;
	}

	.header-cont:has(.hamburger),
	header:has(.hamburger) {
		transition: 1s ease;
	}

	.header-cont:has(.hamburger.clicked),
	header:has(.hamburger.clicked) {
		background-color: #fff;
	}

	.hamburger {
		display: flex;
	}

	.hamburger.clicked {
		background: #000;
	}

	a.menu-btn_goal {
		width: 100%;
	}

	a.menu-btn_goal::after {
		width: 95%;
	}

	/* 装飾 */
	.header-menu {
		position: absolute;
		top: var(--margin-80);
		left: 0;
		width: 100vw;
		height: 100vh;
		padding: var(--margin-40) 0;
		transition: 1s ease;
		border-radius: 0;
		opacity: 0;
	}

	.header-menu.open {
		background-color: #fff;
		visibility: visible;
		opacity: 1;
		overflow-y: scroll;
	}

	.hamburger span {
		display: block;
		height: 0.6rem;
		width: 2rem;
		position: relative;
	}

	.hamburger span::before,
	.hamburger span::after {
		content: "";
		position: absolute;
		width: 100%;
		height: 2px;
		width: 100%;
		background-color: #fff;
		left: 0;
		right: 0;
		margin: auto;
		transition: 0.3s;
	}

	.hamburger span::before {
		top: 0;
	}

	.hamburger span::after {
		top: auto;
		bottom: 0;
	}

	.hamburger.clicked span::before {
		top: 50%;
		rotate: 25deg;
		transform: translateY(-50%);
	}

	.hamburger.hamburger.clicked span::after {
		bottom: 50%;
		rotate: -25deg;
		transform: translateY(50%);
	}

	/* ----------------------------------------
  ｜　フォーム
  ---------------------------------------- */
	.p-form-table tr {
		display: flex;
		flex-direction: column;
	}

	.p-form-table th {
		padding-bottom: 0;
	}

	.p-form-table th,
	.p-form-table td {
		width: 100%;
	}

	/* ----------------------------------------
    ｜　採用情報
    ---------------------------------------- */
	.p-recruit-person-circle_wrap {
		margin-top: 25%;
		width: calc(var(--r) * 1.25px);
		height: calc(var(--r) * 1.25px);
		border-width: 15px;
	}

	.p-recruit-person-circle {
		--x: calc(cos(var(--a2)) * var(--r) * 0.75px);
		--y: calc(sin(var(--a2)) * var(--r) * 0.75px);
	}

	.p-recruit-person-img-cont img {
		/* height: calc(100 / var(--width) * 100vw); */
		height: calc(200 / var(--width) * 100vw);
	}

	/* 漫画 */
	.p-recruit-manga {
		width: 60vw !important;
	}

	/* インタビュー */
	.p-recruit-interview-detailWrap {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 5%;
	}

	.p-recruit-interview-detailCont.col-1 {
		width: 25%;
	}

	.p-recruit-interview-detailCont.col-2 {
		width: 70%;
	}

	.p-interview-scheduleWrap {
		width: 100%;
	}

	.p-interview-scheduleWrap ul li.period {
		flex-direction: column;
		gap: 0;
	}

	.p-interview-scheduleWrap ul li.period:not(:last-child) {
		padding-bottom: 1.25em;
	}

	.close-popup {
		position: relative;
		top: auto;
		right: auto;
		margin: var(--margin-40) auto 0;
		vertical-align: middle;
	}

	.p-close-btn {
		width: var(--margin-40);
		height: var(--margin-40);
		display: inline-block;
		vertical-align: middle;
	}

	.close-popup::after {
		content: "閉じる";
		margin-left: var(--margin-10);
		color: var(--col--assort);
	}

	/* 数字で見る */
	.p-recruit-number {
		grid-template-columns: repeat(3, calc(100% / 3 - 5px));
		grid-template-rows: calc(180 / var(--width) * 100vw);
	}

	.p-number-comic {
		height: 100%;
	}

	.p-number-comic:nth-child(1) {
		height: calc(180 / var(--width) * 100vw);
	}

	.p-number-comic:nth-child(2),
	.p-number-comic:nth-child(3) {
		height: 85%;
	}

	.p-number-comic:nth-child(4) {
		height: auto;
	}

	.p-number-comic:nth-child(5) {
		transform: translateY(-5%);
	}

	.p-number-comic:nth-child(6) {
		transform: translateY(-10%);
	}

	.p-number-comic:nth-child(7),
	.p-number-comic:nth-child(8),
	.p-number-comic:nth-child(9) {
		height: calc(165 / var(--width) * 100vw);
	}
}

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

	/* popup */
	.p-caption-cont .p-recruit-interview-name {
		display: none;
	}

	.profile .p-recruit-interview-name {
		display: block;
	}

	.p-recruit-interview-detailWrap .title .jp.fukidashi,
	.p-interview-scheduleWrap ul li.period {
		font-size: calc(13 / var(--width) * 100vw);
	}
}

/* スマホ */
@media screen and (max-width: 480px) {
	:root {
		--width: 425;
		--margin-cont__large: calc(190 / var(--width) * 100vw);
		--margin-cont__normal: calc(120 / var(--width) * 100vw);
		--margin-cont__lower: 5%;
		/* 余白 */
		--margin-120: calc(100 / var(--width) * 100vw);
		--margin-100: calc(80 / var(--width) * 100vw);
		--margin-80: calc(60 / var(--width) * 100vw);
		--margin-60: calc(40 / var(--width) * 100vw);
		--margin-40: calc(30 / var(--width) * 100vw);
		--margin-20: calc(20 / var(--width) * 100vw);
		--margin-10: calc(10 / var(--width) * 100vw);
		/* font */
		--font-size: calc(16 / var(--width) * 100vw);
		--font-size--big: calc(28 / var(--width) * 100vw);
		--font-size--mid: calc(20 / var(--width) * 100vw);
		/* max-width */
		--max-width: calc(380 / var(--width) * 100vw);
		--max-width__large: calc(375 / var(--width) * 100vw);
		--max-width__small: calc(320 / var(--width) * 100vw);
		--corner: 15px;
	}

	/* ----------------------------------------
  ｜　共通設定
  ---------------------------------------- */
	.container.cont__l .inner {
		max-width: var(--max-width__large);
	}

	.container.cont__s:not(:has(.inner)) {
		max-width: var(--max-width__small);
	}

	.flex.row {
		flex-direction: column;
	}

	.twoCol {
		flex-direction: column;
		gap: var(--margin-60);
	}

	.twoCol .col-1,
	.twoCol .col-2 {
		width: 100%;
	}

	h2.title {
		margin-bottom: var(--margin-40);
	}

	h2.title .jp {
		font-size: calc(26 / var(--width) * 100vw);
	}

	.title {
		font-size: calc(30 / var(--width) * 100vw);
	}

	.bg-tools {
		background-size: 300%;
	}

	/* ----------------------------------------
  ｜　パーツ
  ---------------------------------------- */
	/* 表 */
	.table dl {
		flex-direction: column;
	}

	.table dl dt {
		margin-bottom: var(--margin-10);
	}

	.bg-scale::before,
	.bg-scale::after {
		width: 12px;
	}

	/* 共通ヘッダー
  ---------------------------------------- */
	.heading .container.twoCol {
		align-items: flex-start;
	}

	.pankuzu .flex.row,
	.p-service-pageLink.flex.row {
		flex-direction: row;
	}

	/* 共通フッター
  ---------------------------------------- */
	.p-footer-info {
		margin-bottom: 0;
	}

	.p-footer-menu {
		margin-top: 0;
	}

	/* ----------------------------------------
  ｜　採用バナー
  ---------------------------------------- */
	.recruit-mv {
		height: 100%;
		min-height: 65vh;
	}

	.recruit-mv .img-cont {
		height: auto;
	}

	.recruit-mv .img-cont img {
		width: 100%;
	}

	.p-recruit-mv_ttl-cont {
		height: calc(620 / var(--width) * 100vw);
		max-width: 90%;
		margin: calc(100 / var(--width) * 100vw) auto 0;
		position: relative;
		top: 15%;
		gap: var(--margin-10) !important;
	}

	.p-recruit-mv_bg-cont {
		flex-direction: row !important;
	}

	.p-recruit-mv_ttl {
		padding: 2%;
		border-width: 1px;
	}

	.p-recruitBanner-cont .inner {
		padding-bottom: 0;
	}

	.c-pointCont.c-pointCont_txt.p-recruitBanner_txt {
		width: 100%;
	}

	.p-recruitBanner-cont+.c-pointCont_img {
		width: 100%;
		/* height: 50%; */
		height: auto;
		top: auto;
		bottom: 0;
	}

	.p-pointCont-img_txt {
		width: 90%;
	}

	/* ----------------------------------------
  ｜　トップページ
  ---------------------------------------- */
	.top-mv {
		margin: 0;
		height: 100%;
	}

	.p-mv-txtCont,
	.p-mv-imgCont {
		width: 100%;
	}

	.p-mv-banner {
		margin: 0;
	}

	.top-contact .inner {
		border-radius: 80px;
		padding: var(--margin-80) var(--margin-40);
	}

	.p-top-contactImgCont {
		top: 10%;
		translate: -50% -10%;
	}

	.c-contact_telCont .c-contact_tel::before,
	.c-contact_telCont .c-contact_mail::before {
		max-width: calc(50 / var(--width) * 100vw);
		max-height: calc(50 / var(--width) * 100vw);
	}

	/* 事業紹介 */
	.p-topintro-anim-cont {
		height: calc(250 / var(--width) * 100vw);
	}

	.p-topintro-anim-cont::before {
		width: 50%;
		height: calc(250 / var(--width) * 100vw);
	}

	.p-topintro-anim-img {
		/* top: auto; */
		height: calc(200 / var(--width) * 100vw);
	}

	ul.p-topintro-anim-txt li::before {
		width: calc(25 / var(--width) * 100vw);
		height: calc(25 / var(--width) * 100vw);
		border-width: 3px;
		margin-right: 0.25em;
		background-size: 75%;
	}

	ul.p-topintro-anim-txt {
		font-size: var(--font-size--mid);
	}

	/* おまかせ */
	.p-top-contactImgCont {
		width: 120%;
		top: 5%;
	}

	[class*="p-top-contactImg_"] {
		width: 40vw;
	}

	/* ----------------------------------------
  ｜　下層
  ---------------------------------------- */
	/* 事業内容 */
	.c-3col-item {
		width: 100%;
	}

	.p-flow-cont {
		gap: var(--margin-10);
	}

	.p-flow-cont::before {
		width: calc(35 / var(--width) * 100vw);
		height: calc(35 / var(--width) * 100vw);
		font-size: var(--font-size--mid);
		border-width: 3px;
	}

	/* 会社案内 */
	.c-cont-round.lower-cont .inner {
		max-width: 100%;
		padding: var(--margin-20);
		border-radius: 0;
	}

	.c-table-wrap th {
		width: 25%;
		min-width: auto;
		font-size: var(--font-size--small);
	}

	/* 採用バナー */
	.p-recruitBanner-cont+.c-pointCont_img {
		position: relative;
	}

	/* ----------------------------------------
  ｜　採用
  ---------------------------------------- */
	/* 強み */
	ul.p-recruit-charm-list li .title {
		padding: var(--margin-20) 0;
	}

	#recruit-strong::before {
		background-position: center;
	}

	ul.p-recruit-charm-list li {
		width: 100%;
	}

	.p-recruit-person-circle_wrap {
		width: calc(var(--r) * 0.85px);
		height: calc(var(--r) * 0.85px);
		margin: 10% 0;
		margin-top: 20%;
		font-size: 0.85rem;
	}

	.p-recruit-person-circle {
		--x: calc(cos(var(--a2)) * var(--r) * 0.4px);
		--y: calc(sin(var(--a2)) * var(--r) * 0.4px);
	}

	.p-recruit-person-circle__bg {
		width: calc(110 / var(--width) * 100vw);
		height: calc(110 / var(--width) * 100vw);
	}

	.p-recruit-person-img-cont {
		top: 55%;
		width: 50%;
		gap: 2%;
	}

	.p-recruit-person-img-cont img {
		height: calc(60 / var(--width) * 100vw);
		height: calc(100 / var(--width) * 100vw);
	}

	/* popup */
	.p-recruit-interview-detailCont.col-1 .img-cont {
		display: flex;
		align-items: flex-end;
	}

	.p-caption-line::after {
		width: 20px;
		bottom: 15px;
		left: -15px;
		rotate: 45deg;
	}

	.p-recruit-interview-detailCont.col-2 .profile h3.title {
		font-size: var(--font-size--big);
	}

	.profile {
		display: flex;
		flex-direction: column;
	}

	.p-caption-cont .p-recruit-interview-name {
		display: block;
	}

	.profile .p-recruit-interview-name {
		display: none;
	}

	.p-interview-scheduleWrap .title .jp.fukidashi {
		width: 100%;
	}

	.p-interview-scheduleWrap .title .jp.fukidashi::before {
		height: calc(60 / var(--width) * 100vw);
	}

	.p-interview-scheduleWrap ul li.period {
		padding-left: 10%;
		flex-direction: row;
		gap: var(--margin-10);
	}

	/* パネル */
	.p-recruit-number {
		grid-template-columns: repeat(3, calc(100% / 3 - 3px));
		grid-template-rows: calc(100 / var(--width) * 100vw);
	}

	.p-number-comic:nth-child(1) {
		height: auto;
	}

	.p-number-comic:nth-child(4),
	.p-number-comic:nth-child(7),
	.p-number-comic:nth-child(8),
	.p-number-comic:nth-child(9) {
		height: 90%;
	}

	.p-number-comic:nth-child(2),
	.p-number-comic:nth-child(3),
	.p-number-comic:nth-child(2) img,
	.p-number-comic:nth-child(3) img {
		width: auto;
		height: calc(88 / var(--width) * 100vw);
	}

	/* 福利厚生 */
	.p-recruit-benefits-wrap {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--margin-10);
	}

	.p-recruit-benefits-wrap .cont {
		height: calc(60 / var(--width) * 100vw);
		font-size: var(--font-size);
		line-height: 1.5;
		border-radius: 10px;
	}

	.p-recruit-benefits-slider img {
		width: 60%;
	}
}