@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,500;1,500&display=swap');

* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

:root {
	--color-main: #010101;
	--color-red: #c40000;
	--color-deepgray: #2d2d2d;
	--color-green: #53b449;
	--color-yellow: #f5b51a;
	--color-lightblue: #28aecf;
	--color-navy: #005b94;
	--color-arrow-g: #9397a0;
	--bg-lightgray: #f2f3f5;
	--bg-red: #c40000;
}

html {
	overflow: auto;
}

/* Global */

body {
	height: 100%;
	color: var(--color-main);
	font-size: 1em;
	font-family: 'Noto Sans JP', "游ゴシック体", "Yu Gothic", "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif;
	letter-spacing: 1px;
	overflow-wrap: anywhere;
	line-break: strict;
	position: relative;
	display: flex;
	flex-flow: column;
	min-height: 100vh;
	background-color: #fff;
}

html, body {
	overflow-x: hidden;  /* 横スクロールを禁止 */
}

#wrap {
	flex: 1;
}

img {
	max-width: 100%;
	height: auto;
}

a:hover img {
	opacity: 0.85;
	filter: alpha(opacity=85);
	-ms-filter: "alpha(opacity=85)";
}

.ie8 img {
	width: auto;
}

a:link {
	color: var(--color-main);
	text-decoration: none;
	transition-property: all;
	transition: 0.2s linear;
	border-style: none;
}

a:visited {
	color: var(--color-main);
}

a:hover {
	color: var(--color-main);
	text-decoration: underline;
}

.container {
	width: 92%;
	max-width: 1200px;
	margin: auto;
}

.container1000 {
	width: 92%;
	max-width: 1000px;
	margin: auto;
}

.container1500 {
	width: 92%;
	max-width: 1500px;
	margin: auto;
}

.container1750 {
	width: 92%;
	max-width: 1750px;
	margin: auto;
}

/* Navigation */

.menu {
	width: 100%;
	position: fixed;
	z-index: 9999;
}

/* ヘッダーメニュー */

.menu_wrap {
	text-align: center;
	display: flex;
	justify-content: space-between;
	width: 100%;
	position: relative;
	margin: 0 auto;
	padding: 0 2em;
	height: 110px;
	background-color: #fff;
}

.h1_mov {
	width: 250px;
	margin: 0;
	position: relative;
}

.h1_mov h1 {
	margin: 0.67em 0 0;
}

.header_menu {
	display: flex;
	flex-direction: column;
	margin: 0 0 0 2em;
	padding: 0;
	list-style-type: none;
	width: 60%;
	position: relative;
}

ul.sub_menu01 {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	margin: 20px 0 0;
	padding: 0;
	list-style-type: none;
	height: 50px;
}

.sub_menu01 li {
	color: #CCC;
	margin: 0 0 0 2em;
	padding: 0;
}

.sub_menu01 li a {
	color: #9397a0;
}

.sub_menu01 li a:hover, .sub_menu01 li a:hover i {
	color: var(--color-red) !important;
}

.sub_menu01 .mg01 {
	margin-left: 1.3em;
}

.sub_menu01 .blog_logo {
	width: 60px;
}

nav ul {
	list-style: none;
	display: flex;
	justify-content: flex-end;
	margin: 0;
	padding: 0;
}

nav li {
	position: relative;
	font-size: 0.95em;
	line-height: 1;
	font-weight: 500;
	margin: -6px 0 0;
}

/* メニューリンクスタイル - テキスト回転アニメーション用に修正 */

nav a {
	display: flex;
	align-items: center;
	padding: 15px 5px 15px 40px;
	color: #000 !important;
	text-decoration: none;
	position: relative;
}

nav a:hover {
	text-decoration: none;
}

li.mega:hover > a {
	color: #c40000 !important;
}

li.mega:hover > a .link-text span {
	color: #c40000 !important;
}

/* テキスト部分にコンテナを追加 */

nav .link-text {
	display: inline-block;
	height: 1.5em;
	line-height: 1.5;
	overflow: hidden;
	position: relative;
	white-space: nowrap;
	min-width: max-content;
}

nav .link-text span {
	position: relative;
	display: inline-block;
	transition: transform 0.3s ease;
}

nav .link-text span::before {
	position: absolute;
	top: 100%;
	content: attr(data-hover);
	color: var(--color-red);
	font-weight: bold;
}

nav a:hover .link-text span {
	transform: translateY(-100%);
}

/* V字型の矢印 */

.has-sub > a::after {
	content: "";
	display: inline-block;
	margin: 0 0 5px 10px;
	width: 7px;
	height: 7px;
	border-right: 2px solid var(--color-arrow-g);
	border-bottom: 2px solid var(--color-arrow-g);
	transform: rotate(45deg);
}

/* メガメニュー */
/* メガメニュー：親リスト共通設定 */

li.has-sub {
	position: relative;
}

li.has-sub.mega {
	position: relative;
}

li.has-sub.mega::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	height: 24px; /* ← ここを20〜32pxで微調整 */
	  /* 透明だが hover 判定には入る */
}
/* メガメニュー本体 */

.mega-menu.simple {
	position: fixed;
	top: 110px;
	left: 0;
	width: 100%;
	background: #fff;
	padding: 30px 0 50px;
	z-index: 9998;
	
	  /* アニメーション用の初期状態 */
	opacity: 0;
	transform: translateY(-10px);
	pointer-events: none;
	/* transition: opacity 0.4s ease, transform 0.4s ease; */
}

/* ホバー時に表示 */

li.mega:hover .mega-menu.simple {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

/* 中央寄せの内包エリア */

.mega-menu.simple .mega-inner {
	width: 92%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
}

/* メガタイトル */

.mega-menu.simple .mega-title a {
	font-size: 1em;
	text-align: left;
	margin: 0 0 20px;
	position: relative;
	border-bottom: thin solid #ddd;
	padding: 0 0 20px;
}

.mega-menu.simple .mega-title a::after {
	content: "";
	display: inline-block;
	margin: 0 0 1px 10px;
	width: 7px;
	height: 7px;
	border-right: 2px solid #c40000;
	border-bottom: 2px solid #c40000;
	transform: rotate(-45deg);
}

.mega-menu.simple .mega-title a:hover {
	color: var(--color-red) !important;
}

/* メニューリンク横並び */

.mega-menu.simple .mega-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	list-style: none;
	padding: 0;
	margin: 0;
	width: 90%;
}

.mega-menu.simple .mega-links li {
	font-size: 0.95em;
	text-align: left;
	padding: 0;
	width: 23%;
	margin: 20px 2% 0 0;
	border-bottom: thin solid #ddd;
	font-weight: 400;
}

.mega-menu.simple .mega-links li::after {
	content: "";
	position: absolute;
	right: 2px;
	top: 45%;
	width: 5px;
	height: 5px;
	border-right: 2px solid #c40000;
	border-bottom: 2px solid #c40000;
	transform: rotate(-45deg);
}

.mega-menu.simple .mega-links a {
	color: #010101;
	text-decoration: none;
	transition: 0.2s;
	padding-left: 0;
}

.mega-menu.simple .mega-links a:hover {
	color: var(--color-red) !important;
}

/* General Slides */

.slide {
	background-attachment: fixed;
	width: 100%;
	height: auto;
	position: relative;
	padding: 0;
}

#slide1 {
	position: relative;
	margin: 0;
	padding: 0;
	text-align: center;
	background-repeat: no-repeat;
	background-position: center;
	z-index: 1;
	height: 100dvh;
}

.slide1_kv {
	position: relative;
	width: 100%;
	height: 100dvh;
}

/* Swiperラッパーとスライドも高さを合わせる */

.slide1_kv .swiper-wrapper, .slide1_kv .swiper-slide {
	height: 100%;
	position: relative;
	z-index: 1;
}

/* 中の画像 */

.slide1_kv img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.slide1_title {
	opacity: 0;
	transform: translate(-50%, -40%);
	transition: opacity 1.5s ease, transform 1.5s ease;
	position: absolute;
	top: 44%;
	left: 50%;
	text-align: center;
	width: 60%;
	margin: 0;
	z-index: 10;
	color: #fff;
}

.slide1_title.show {
	opacity: 1;
	transform: translate(-50%, -50%); /* 元の位置に */
}

.slide1_title .eg_txt {
	color: #444;
	font-size: 1.7em;
	line-height: 1.8em;
	text-align: center;
	font-family: "EB Garamond", serif;
	font-weight: 500;
	margin: 0;
	filter: drop-shadow(2px 3px 4px rgba(0, 0, 0, 0.5));
}

.slide1_title .jp_txt {
	color: #444;
	font-size: 2em;
	line-height: 2em;
	text-align: center;
	font-weight: 600;
	margin: 0;
	filter: drop-shadow(2px 3px 4px rgba(0, 0, 0, 0.5));
}

.slide1_title h1 {
	width: 100%;
	max-width: 400px;
	margin: 30px auto auto;
	filter: drop-shadow(4px 7px 5px rgba(0, 0, 0, 0.5));
}


/* Slide2 */

#slide2 {
	text-align: center;
	margin: 50px 0 100px;
	padding: 0;
	position: relative;
}

.news_title {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 0;
}

.news_title .title {
	width: 50%;
	margin: 0;
	padding: 0;
	text-align: left;
}

h2.main_h2 {
	color: var(--color-red);
	font-size: 5.5rem;
	line-height: 1.5em;
	text-align: left;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-style: normal;
	letter-spacing: 0;
	margin: 0;
	padding: 0;
	letter-spacing: 0;
}

.h2_sub {
	font-size: 1.2rem;
	line-height: 1;
	text-align: left;
	font-weight: 500;
	font-style: normal;
	margin: -5px 0 0;
	z-index: 5;
	position: relative;
}

#slide2 .description {
	width: 100%;
	border-top: 1px solid #ddd;
	margin: 50px 0 0;
}

dl.news_dl {
	text-align: left;
	width: 100%;
	margin: 0;
	padding: 25px 0;
	border-bottom: 1px solid #ddd;
	position: relative;
}

.news_dl dt {
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

.news_dl dt .date {
	color: #2d2d2d;
	font-size: 0.95em;
	line-height: 1.8em;
	margin: 0;
}

.news_dl dt .icon {
	color: #fff;
	font-size: 0.85em;
	line-height: 1em;
	text-align: center;
	font-weight: 300;
	padding: 4px 10px 5px;
	display: inline-block;
	min-width: 80px;
	border-radius: 4px;
	margin: 0 5px 5px 0;
}

.icon_new {
	background-color: var(--color-deepgray);
}

.icon_holdings {
	background-color: var(--color-red);
}

.icon_esco {
	background-color: var(--color-green);
}

.icon_kiichi {
	background-color: var(--color-yellow);
}

.icon_ogawazen {
	background-color: var(--color-lightblue);
}

.icon_import {
	background-color: var(--color-navy);
}

.news_dl dd {
	color: #2d2d2d;
	font-size: 0.95em;
	line-height: 1.8em;
	margin: 0.7em 0 0;
	padding: 0;
}

.news_dl a:hover {
	color: var(--color-red);
	text-decoration: none;
}


/* Slide3 About Us*/

#slide3 {
	text-align: center;
	margin: 0;
	padding: 0;
	position: relative;
	min-height: 1080px;
}

.back_img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.dino_back {
	width: 100%;
	height: 100%; /* コンテナ全体をカバー */
	object-fit: cover;
	object-position: center; /* 中央寄せに変更 */
	z-index: 1;
	position: relative;
	filter: brightness(1);
}

.main_h2_01 {
	color: #d46767;
	font-size: 5.5rem;
	line-height: 1.5em;
	text-align: left;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-style: normal;
	letter-spacing: 0;
	margin: 0;
	position: relative;
	top: 70px;
	left: max(4%, calc((100vw - 1200px) / 2));
	z-index: 2;
}

.title-wrapper {
	overflow: hidden !important;
	display: inline-block;
	z-index: 100;
}

.main_h2_01.title_about {
	/* 元の.main_h2_01の位置指定を継承するだけ */
}

.about_wrap {
	background-color: #fff;
	position: absolute;
	top: 210px;
	left: max(4%, calc((100vw - 1300px) / 2));
	width: min(92vw, 1300px);
	z-index: 2;
	padding: 4em 2em;
	margin: 0;
}

.lead_txt {
	color: #000;
	font-size: 3em;
	line-height: 1.6em;
	font-weight: 600;
	text-align: left;
	margin: 0;
	position: relative;
}

.lead_txt::after {
	content: "";
	display: block;
	width: 80px; /* お好みで調整 */
	height: 1px; /* 線の太さ */
	background-color: var(--color-red);
	margin-top: 20px; /* テキストとラインの間隔 */
	margin-bottom: 20px;
}

p.about_p {
	font-size: 1.25em;
	line-height: 2.8em;
	font-weight: 500;
	text-align: left;
	margin: 0 0 40px;
}

.split {
	opacity: 1;
	will-change: transform;
}

.split * {
	will-change: transform;
}

/* Photo Gallery */

.photo_gallery {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: calc(820 / 1920 * 100%);
	right: 0;
	z-index: 5;
}

.photo_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
	margin: 0;
	padding: 0;
}

.photo_left {
	text-align: right;
	width: 50%;
	margin: 0;
	padding-right: 7px;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.photo_right {
	text-align: left;
	width: 40%;
	margin-top: calc(150 / 720 * 100%);
	position: relative;
}

.photo_item {
	margin-bottom: 7px;
	border-radius: 10px;
	overflow: hidden;
	filter: drop-shadow(0 6px 6px rgba(0,0,0,.10));
	opacity: 0;
	transform: translateY(30px);
	display: block;
}

.photo_item img {
	transition: transform 0.3s ease;
	width: 100%;
	vertical-align: bottom;
	display: block;
}

.photo_item:hover img {
	transform: scale(1.05);
}

.slide3_ph01, .slide3_ph02, .slide3_ph03, .slide3_ph04, .slide3_ph05 {
	width: auto !important;
}

/* 1920基準の設計値をラッパ(.photo_item)に適用。
   列幅を超える場合は列内100%で止める（min()ガード） */
@supports(selector(:has(*))) {
  .photo_item:has(> img.slide3_ph01) { width: min(calc(260 / 1920 * 100vw), 100%); }
  .photo_item:has(> img.slide3_ph02) { width: min(calc(460 / 1920 * 100vw), 100%); }
  .photo_item:has(> img.slide3_ph03) { width: min(calc(220 / 1920 * 100vw), 100%); }
  .photo_item:has(> img.slide3_ph04) { width: min(calc(340 / 1920 * 100vw), 100%); }
  .photo_item:has(> img.slide3_ph05) { width: min(calc(180 / 1920 * 100vw), 100%); }
}

/* フォールバック（:has 未対応環境）— 画像にvw幅を直指定 */
@supports not (selector(:has(*))) {
  .slide3_ph01 { width: calc(260 / 1920 * 100vw) !important; }
  .slide3_ph02 { width: calc(460 / 1920 * 100vw) !important; }
  .slide3_ph03 { width: calc(220 / 1920 * 100vw) !important; }
  .slide3_ph04 { width: calc(340 / 1920 * 100vw) !important; }
  .slide3_ph05 { width: calc(180 / 1920 * 100vw) !important; }
}



/* Slide4 */

#slide4 {
	text-align: center;
	margin: 0;
	padding: 60px 0 0;
	width: 100vw;
	background: linear-gradient(
	135deg,
	#ffffff 0%,
	#ffffff 31%,
	#ecedf1 31%,
	#ecedf1 69%,
	#ffffff 69%,
	#ffffff 100%
	);
}

.group_title {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 0;
}

.group_title .title {
	width: 30%;
	margin: 0;
	text-align: left;
}

.slide4_txt {
	color: #000;
	font-size: 1.2em;
	line-height: 1.8em;
	text-align: left;
	font-weight: 600;
	width: 67%;
	margin: 40px 0 0;
	letter-spacing: 0;
}

.flowing-ttl {
	display: flex;
	width: 100%;
	overflow: hidden;
}

.flowing-ttl__item {
	flex: 0 0 auto;
	white-space: nowrap;
	padding: 0 15px;
	color: rgba(181, 184, 191, 0.3);
	font-size: 11rem;
	line-height: 1;
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	margin: 0 0 -27px;
	letter-spacing: 0;
}

.flowing-ttl__item:nth-child(odd) {
	animation: loop 40s linear -20s infinite;
}

.flowing-ttl__item:nth-child(even) {
	animation: loop2 40s linear infinite;
}

.flowing-ttl.reverse .flowing-ttl__item:nth-child(odd) {
	animation: loop 40s linear -20s infinite reverse;
}

.flowing-ttl.reverse .flowing-ttl__item:nth-child(even) {
	animation: loop2 40s linear infinite reverse;
}

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

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

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

to {
	transform: translateX(-200%);
}
}


/* Slide5 */

#slide5 {
	display: flex;
	margin: 0;
	padding: 0;
	background-color: var(--color-red);
}

.view_tb {
	display: none;
}

.left-content {
	width: 650px;
	flex-shrink: 0;
	color: #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 50px 80px 60px;
}

.tagline {
	color: #fff;
	font-size: 1.45em;
	line-height: 1.6em;
	font-weight: 600;
	margin: 30px 0 50px;
}

.nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 40px; /* 上下20px、左右40px */
	margin-bottom: 50px;
}

.nav-link {
	color: #fff !important;
	font-size: 1.1em;
	font-weight: 500;
	text-decoration: none;
	padding: 15px 0;
	border-bottom: 1px solid #fff !important;
	position: relative;
	transition: opacity 0.3s ease;
}

.nav-link a {
	color: #fff;
}

.nav-link:hover {
	opacity: 0.8;
}

.nav-link::after {
	content: '';
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 14px;
	height: 14px;
	clip-path: polygon(0 7%, 7% 0, 57% 50%, 7% 100%, 0 93%, 43% 50%, 0 7%);
	background-color: white;
}

.entry-button {
	color: #fff !important;
	font-size: 1.1em;
	font-weight: 500;
	letter-spacing: 2px;
	border: none;
	padding: 20px 40px;
	border-radius: 50px;
	cursor: pointer;
	background-color: rgba(248, 87, 87, 0.7);
	box-shadow: 0px 2px 8px -3px rgba(0, 0, 0, 0.3);
	transition: background-color 0.3s ease;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
}

.entry-button:hover {
	background-color: rgba(248, 87, 87, 0.9);
	text-decoration: none;
}

.entry-button::after {
	content: '';
	position: absolute;
	right: 20px;
	width: 14px;
	height: 14px;
	clip-path: polygon(0 7%, 7% 0, 57% 50%, 7% 100%, 0 93%, 43% 50%, 0 7%);
	background-color: white;
}

/* 右側の画像 */

.right-image {
	flex: 1;
	background-image: url('../images/slide5/recruit_img.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: relative;
}


/* FOOTER */

footer {
	margin: 0;
	padding: 0;
	background-color: #eeeff1;
}

.footer_content {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 0;
	padding: 70px 0 90px;
}

.footer_about {
	width: 25%;
	margin: 0;
}

.footer_about h2 {
	width: 100%;
	max-width: 250px;
	margin: 0;
	padding: 0;
}

.footer_about .address {
	font-size: 0.85em;
	line-height: 1.8em;
	text-align: left;
	margin: 20px 0 30px;
}

.telLink {
	color: #010101 !important;
	font-feature-settings: "palt";
}

/* footer menu */

.footer_menu {
	width: 70%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0;
	padding: 0;
}

.footer_menu ul {
	list-style-type: none;
	margin: 0;
	padding: 0;
}

.footer_menu li {
	margin: 0 0 10px;
	padding: 0;
	font-size: 0.85em;
	line-height: 1.8em;
}

.li_bold {
	font-size: 0.9em !important;
	font-weight: bold;
}


/* SNS欄 */

.footer_01 {
	margin: 0;
	padding: 0;
	border-top: thin solid #ddd;
}

.footer_01 h3 {
	color: #000;
	font-size: 1.3em;
	line-height: 1.2;
	font-weight: 600;
	margin: 40px 0;
}

.sns_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	margin: 0 0 50px;
	width: 100%;
}

.company_sns {
	display: flex;
	flex-direction: column;
	margin: 0;
	width: 33.3%;
}

.company_name {
	color: #000;
	font-size: 0.95em;
	line-height: 1.5em;
	font-weight: 500;
	margin: 0 0 30px;
}

ul.sns_link {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style-type: none;
}

.sns_link li img {
	width: auto;
	height: 30px;
	margin: 0 20px 0 0;
}

.li_w {
	width: 38px !important;
	height: auto !important;
}


/* バナー欄 */

.footer_02 {
	background-color: #e5e6e8;
	margin: 0;
}

ul.footer_link {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 40px 0;
	list-style-type: none;
  gap: 2.5vw 0;
}

.footer_link li {
	margin-top: 0;
	margin-bottom: 0;
	margin-right: 25px;
}

.copyright_wrap {
	border-top: thin solid #ccc;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 0;
	padding: 15px 0 10px;
}

.footer_menu_02 {
	font-size: 0.85em;
	line-height: 1.8em;
	margin: 0 0 0 50px;
}

.footer_menu_02 a {
	color: #010101;
	margin-right: 40px;
}

.copyright {
	color: #666;
	line-height: 1.8em;
	letter-spacing: 0;
	margin: 0 50px 0 0;
}

/* overlay */

.overlay1 {
	position: relative;
	padding: 0 0 100px;
}

.overlay1::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.3);
}


/* 下層ページ */
/* #slide_sub1 */

#slide_sub1 {
	position: relative;
	margin: 110px 0 0 !important;
	padding: 0;
}

.slide_sub_img {
	width: 100%;
	object-fit: cover;
	object-position: center;
}

.slide_sub_title {
	position: absolute;
	top: 0;
	left: 0;
	margin: 0;
	padding: 0;
	white-space: nowrap;
	width: calc(570 / 1920 * 100%);
	height: 100%;
}

.subpage_h2 {
	color: var(--color-red);
	font-size: 5rem;
	line-height: 1;
	text-align: left;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-style: normal;
	letter-spacing: -3px;
	margin: 0;
	padding: 0;
	position: relative;
	top: calc(80 / 380 * 100%);
	left: calc(100 / 570 * 100%);
}

.subpage_h2sub {
	color: #fff;
	font-size: 1rem;
	line-height: 1;
	text-align: left;
	font-weight: 600;
	font-style: normal;
	margin: 10px 0 0 10px;
	position: relative;
	top: calc(80 / 380 * 100%);
	left: calc(100 / 570 * 100%);
}

.shade_01 {
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

/* タイトル横テキストエリア */

.slide_sub_text {
	position: absolute;
	top: 50%;  /* 親要素の中央から */
	transform: translateY(-50%);  /* 自分自身の高さの半分上にずらして中央配置 */
	left: calc(600 / 1920 * 100% + 30px); /* タイトル部分の右端から30px間隔 */
	width: calc(100% - calc(570 / 1920 * 100%) - 30px); /* タイトル部分と間隔を除いた残り */
	height: 100%;
	color: #fff;
	padding: 0 60px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	z-index: 2;
}

.slide_sub_text p {
	font-size: 1.5rem;
	line-height: 2.2em;
	margin: -2.5em 0 0;
	text-align: left;
	font-weight: 600;
}


/* イメージがない場合 */
/* #slide_sub1_ni */

#slide_sub1_ni {
	position: relative;
	margin: 110px 0 80px !important;
	padding-top: 50px;
	padding-bottom: 50px;
}

.slide_title_ni {
	position: absolute; /* ここをabsoluteに変更 */
	top: 70%;
	left: calc(100 / 1920 * 100%); /* leftで左からの位置を正確に指定 */
	width: auto;
	height: auto;
	padding: 0;
}

.subpage_h2_ni {
	color: var(--color-red);
	font-size: 5rem;
	line-height: 1;
	text-align: left;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-style: normal;
	letter-spacing: -3px;
	margin: 0;
}

.subpage_h2sub_ni {
	color: #000;
	font-size: 1rem;
	line-height: 1;
	text-align: left;
	font-weight: 600;
	font-style: normal;
	margin-top: 10px;
}



/* #slide_sub2 */

#slide_sub2 {
	position: relative;
	margin: 0;
	padding: 100px 0 0;
}

/* 横並びメニュー */

.in-page-links {
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
	margin: 0 0 40px;
	width: 100%;
}

/* 各メニュー項目 */

.in-page-links li {
	position: relative;
	font-size: 1rem;
	font-weight: 500;
	color: #000;
	border-bottom: 1px solid #ddd;
	display: flex;
	align-items: center;
	margin-right: 3%;
	padding-bottom: 13px;
	width: 17.6%;
}

.in-page-links li:last-child {
	margin-right: 0;
}

/* V字型の矢印 */

.in-page-links li::after {
	content: "";
	display: inline-block;
	position: absolute;
	right: 5px;
	width: 7px;
	height: 7px;
	border-right: 2px solid #c40000;
	border-bottom: 2px solid #c40000;
	transform: rotate(-45deg);
}

/* ホバー時の色 */

.in-page-links li:hover {
	color: #c40000; /* テキスト色変更 */
}

/* リンクのスタイル */

.in-page-links li a {
	color: inherit;
	text-decoration: none;
  width: 100%;
}

.in-page-links li a:hover {
	color: inherit;
	text-decoration: none;
}

/* ページ内リンクずれ修正 */

#overview::before, #organization::before, #group::before, #message::before, #management::before, #vision::before, #executive::before, #history::before, #philosophy::before, #guidelines::before, #data::before, #environment::before, #support::before, #group::before, #job::before, #new::before, #flow::before {
	content: "";
	display: block;
	height: 90px;
	margin-top: -90px;
	visibility: hidden;
}


/* 下層ページ背景グレー */
.main_wrap_01 {
	position: relative;
	margin: 0;
	padding: 90px 0;
	background: var(--bg-lightgray);
}

/* 下層ページ背景白 */
.main_wrap_02 {
	position: relative;
	margin: 0;
	padding: 90px 0;
}

/* 下層ページ背景赤 */
.main_wrap_03 {
	position: relative;
	margin: 0;
	padding: 70px 0 40px;
	background: var(--bg-red);
}

/* 下層ページ背景右下ラウンド赤 */
.main_wrap_04 {
	position: relative;
	margin: 0;
	background: #e3e4e8;
}

/* 下層ページ背景赤+ライトグレー */
.main_wrap_05 {
	position: relative;
	margin: -10px 0 0;
	padding: 70px 0 40px;
	background: linear-gradient(
    173deg,
    #c40000 0%,  /* 上：赤 */
    #c40000 41.5%,  /* 赤の終わり位置（調整可） */
    #f2f3f5 41.6%, /* 下：ライトグレー */
    #f2f3f5 100%
  );
}

/* 下層ページ背景写真 */
.main_wrap_photo {
	position: relative;
	margin: 0;
	padding: 0;
}

/* 下層ページ背景Vision */
.main_wrap_vision {
	position: relative;
	margin: 0;
	padding: 90px 0;
	background: #c5c5c5;
	overflow: hidden;
}
/* 左上のグレー三角形 */
.main_wrap_vision::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    border-top: 110px solid var(--bg-lightgray);
    border-right: 140px solid transparent;
    z-index: 2;
}
/* 巻きめくれ画像 */
.main_wrap_vision::after {
    content: "";
    position: absolute;
    bottom: 0;     /* ← 右下固定 */
    right: 0;
    width: 260px;
    height: 260px;
    background: url("../images/recruit/vision_bg.png") no-repeat;
    background-size: contain;
    z-index: 3;
    pointer-events: none;
}


/* 中ページ　font共通設定 */
.sub_main_h2 {
	color: var(--color-red);
	font-size: 5rem;
	line-height: 1.5;
	text-align: left;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-style: normal;
	letter-spacing: 0;
	margin: 0;
	padding: 0;
}

.sub_txt_h2 {
	color: #000;
	font-size: 1.7rem;
	line-height: 1;
	font-weight: 500;
	display: flex;
	align-items: center;
	margin: 0 0 40px;
}

.sub_txt_h2_w {
	color: #fff;
	font-size: 1.7rem;
	line-height: 1;
	font-weight: 500;
	display: flex;
	align-items: center;
	margin: 0;
}

.span-maru {
	font-size: 0.4em;
	margin-right: 1em;
}

.p-font-85 {
	font-size: 0.85em;
	line-height: 1.8em;
	margin: 0;
}

.p-font-95 {
	font-size: 0.95em;
	line-height: 2em;
	margin: 0;
}

.p-font-1 {
	font-size: 1em;
	line-height: 1.8em;
	margin: 0;
}

.p-font-2 {
	font-size: 1em;
	line-height: 1.8em;
	margin: 30px 0 0;
}

/* About us */
/* トップメッセージ */

.message_wrap {
	position: relative;
	margin: 0;
	padding: 50px 0 40px;
	background-color: #2e2e2f;
	z-index: 0;
}

.ceo_photo {
	position: absolute;
	right: 0;
	top: 0;
	width: calc(960 / 1920 * 100%);
	height: 100%;
	max-height: 780px;
	z-index: 1;
}
.ceo_photo-sp {
	display: none;
}
.messe_ti {
	position: relative;
	z-index: 5;
}

.ceo_message {
	width: calc(980 / 1750 * 100%);
	background-color: #fff;
	padding: 3em;
	z-index: 2;
	position: relative;
	margin: 30px 0 0;
}

.ceo_message .messe {
	font-size: 2em;
	line-height: 1.6em;
	text-align: left;
	font-weight: 600;
	margin: 0 0 10px;
	z-index: 3;
	position: relative;
}

.ceo_message p {
	font-size: 0.95em;
	line-height: 2em;
	text-align: left;
	margin: 0 0 40px;
}


/* 経営方針 */

.managemanet_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 40px 0 0;
	padding: 0;
}

.managemanet_wrap p {
	font-size: 0.95em;
	line-height: 2.2em;
	text-align: left;
	width: 65%;
	margin: 0;
}

.managemanet_wrap figure {
	width: 30%;
	margin: 0;
	padding: 0;
}


/* Vision */

.diagonal_bg {
	text-align: center;
	margin: 0;
	padding: 60px 0 20px;
	width: 100vw;
	background: linear-gradient(
	  -135deg,
	  #e3e4e8 0%,
	  #e3e4e8 20%,   /* ← 赤が始まる位置を左に寄せる */
	  #c40000 20%,   /* ← 赤い帯が太くなる */
	  #c40000 80%,
	  #e3e4e8 80%,   /* ← 赤が終わる位置を右に寄せる */
	  #e3e4e8 100%
	);
	background-attachment: fixed;
	background-size: 100% 102%;
	background-position: center top;
}

.title_left {
	text-align: left;
}

.vision_theme {
	color: #fff;
	font-size: 0.88em;
	line-height: 1.7em;
	text-align: left;
	margin: 20px 0 0;
}

.vision_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: -40px auto 0;
	padding: 0;
	position: relative;
}

.vision_wrap .left_photos {
	width: 29%;
	display: flex;
	flex-direction: column;
	margin: 100px 0 0;
	padding-left: 20px;
}

.vision_wrap .left_photos > img {
	transform: translateX(16px);
}

.vision_wrap .vision_txt {
	width: 38%;
	margin: 0;
}

.vision_wrap .right_photos {
	width: 29%;
	display: flex;
	flex-direction: column;
	margin: 0;
}

.photos_top, .photos_bottom {
	display: none;
}

.vision-line {
	display: block;
	overflow: hidden;
}

.vision_ph01 {
	width: calc(378 / 450 * 100%);
	margin: 0;
}

.vision_ph03 {
	width: calc(334 / 450 * 100%);
	margin-top: 50px;
	margin-left: 100px;
}

.vision_ph05 {
	width: calc(294 / 450 * 100%);
	margin-top: 50px;
	margin-left: 0;
}

.vision_ph02 {
	width: calc(317 / 450 * 100%);
	margin-top: 0;
	margin-left: 0;
}

.vision_ph04 {
	width: calc(228 / 450 * 100%);
	margin-top: 50px;
	margin-left: 150px;
}

.vision_ph06 {
	width: calc(184 / 450 * 100%);
	margin-top: 100px;
	margin-left: 50px;
}

.vision_ph07 {
	width: calc(284 / 450 * 100%);
	margin-top: 50px;
	margin-left: 0;
}

.vision_txt h3 {
	color: #fff;
	font-size: 3.5em;
	line-height: 2em;
	text-align: center;
	font-weight: 700;
	margin: 0;
}

.vision_txt p {
	color: #fff;
	font-size: 1.4em;
	line-height: 4em;
	text-align: center;
	font-weight: 500;
	margin: 0;
}


/* 役員紹介セクション */

.presidents_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	width: 100%;
	margin: 0 0 10px;
	padding: 0;
}

.presidents_card {
	background-color: #fff;
	width: 31.5%;
	border-radius: 10px;
	margin: 0 2.75% 60px 0;
	box-shadow: rgba(99, 99, 99, 0.3) 2px 4px 8px 0;
	overflow: hidden;
	padding: 0;
}

.presidents_card:nth-child(3n) {
	margin-right: 0;
}

.presidents_card .photo {
	background-color: #f5f6f8;
	margin: 0;
	width: 100%;
}

.presidents_card .photo img {
	vertical-align: bottom;
	width: 100%;
	height: auto;
}

/* カード内のコンテンツエリア */

.presidents_card .content {
	padding: 25px;
	position: relative;
}

/* 会社名 */

.presidents_card .company-name {
	font-size: 1.1em;
	font-weight: 600;
	margin: 0 0 30px;
	padding-left: 0;
	position: relative;
	color: #333;
	text-align: left;
}

/* 会社名前の横線 */

.presidents_card .company-name::before {
	content: "";
	position: absolute;
	left: -25px;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 5px;
	background-color: #c40000;
}

/* 役職 */

.presidents_card .position {
	color: #000;
	font-size: 0.95em;
	margin: 0 0 6px;
	font-weight: 500;
	line-height: 1.5em;
}

/* 名前 */

.presidents_card .name {
	color: #000;
	font-size: 1.6em;
	font-weight: 700;
	margin: 0 0 15px 0;
	line-height: 1.3;
	border-bottom: thin solid #000;
	padding-bottom: 15px;
}

.presidents_card.joyful-holdings .name {
	border-bottom-color: #c40000;
}

.presidents_card.kiichi-tools .name {
	border-bottom-color: #f5b51a;
}

.presidents_card.esco .name {
	border-bottom-color: #53b449;
}

.presidents_card.ogawazen .name {
	border-bottom-color: #28aecf;
}

.presidents_card.import-tools .name {
	border-bottom-color: #005b94;
}

/* 入社年などの詳細情報 */

.presidents_card .details {
	color: #888;
	font-size: 0.8em;
	line-height: 1.6;
	margin: 15px 0 0 0;
}

/* 各会社ごとの横線の色 */

.presidents_card.joyful-holdings .company-name::before {
	background-color: #c40000; /* 赤 - Joyful喜一ホールディングス */
}

.presidents_card.kiichi-tools .company-name::before {
	background-color: #f5b51a; /* 黄色 - 喜一工具株式会社 */
}

.presidents_card.esco .company-name::before {
	background-color: #53b449; /* 緑 - 株式会社エスコ */
}

.presidents_card.ogawazen .company-name::before {
	background-color: #28aecf; /* 水色 - 小川善 */
}

.presidents_card.import-tools .company-name::before {
	background-color: #005b94; /* 紺色 - Joyfulインポートツールズ */
}

.presidents_card .join {
	font-size: 0.95em;
	line-height: 1.8em;
	margin: 0;
}

.presidents_card .details {
	font-size: 0.85em;
	line-height: 1.8em;
	margin: 5px 0 0;
}


/* 沿革 */

.history_wrap {
	background: #3c3d3f;
	border-radius: 10px;
	margin: 0 auto;
	padding: 60px 40px 0;
	position: relative;
}

.history_wrap::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: url(../images/about/bg-line.png) no-repeat;
	background-size: 100% auto;
	background-position: center top;
	opacity: 0.1;
	pointer-events: none;
	border-radius: 10px;
	box-shadow: 0 0 1px;
}

.history_content {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 50px 0 0;
	padding: 0;
}

.history_photo {
	display: flex;
	flex-direction: column;
	width: 42%;
	margin: 0;
	padding: 0;
	position: relative;
}

.history_ph01 {
	width: calc(320 / 500 * 100%);
	margin-top: 0;
	margin-left: 0;
}

.history_ph02 {
	width: calc(200 / 500 * 100%);
	margin-top: calc(-40 / 520 * 100%);
	margin-left: calc(250 / 500 * 100%);
}

.history_ph03 {
	width: calc(160 / 500 * 100%);
	margin-top: calc(-130 / 520 * 100%);
	margin-left: calc(50 / 500 * 100%);
}

.history {
	width: 55%;
	margin: 0;
	padding: 0;
}

/* ── History：縦スクロール表示 ───────────────── */

.history {
	/* 高さは端末に応じて自動調整：最小360px〜最大620pxの範囲で 55vh を採用 */
	max-height: clamp(360px, 60vh, 620px);
	overflow-y: auto;
	overflow-x: hidden;
	scroll-behavior: smooth;
	overscroll-behavior: auto;/* 末尾まで行ったら下のセクションへスクロールが抜ける */
	scrollbar-gutter: stable;
	padding-right: 8px;
}

/* iOSなど慣性スクロール */

@supports (-webkit-overflow-scrolling: touch) {
	.history {
	-webkit-overflow-scrolling: touch;
}
}

ul.flow {
	margin: 0;
	padding: 0;
	position: relative;
	padding-left: 16px;
}

.flow > li {
	position: relative;
	list-style-type: none;
}

.flow > li:not(:last-child) {
	margin-bottom: 6vh;
}

.flow > li dl {
	padding-left: 20px;
	position: relative;
}

.flow > li dl::before, .flow > li dl::after {
	content: "";
	display: block;
	position: absolute;
	top: 22px;
}

.flow > li dl::before {
	width: 10px;
	height: 10px;
	margin-top: 0;
	background: #ddd;
	border-radius: 50%;
	left: -12px;
}

.flow > li dl dt {
	color: #fff;
	font-size: 3em;
	line-height: 1;
	font-weight: 600;
}

.flow > li dl dd {
	color: #fff;
	font-size: 0.95em;
	line-height: 2em;
	margin: -2em 0 0 170px;
}




/* Company　会社概要 */

table.company {
	border-collapse: collapse;
	font-size: 1em;
	line-height: 2em;
	text-align: left;
	width: 100%;
	margin: 0;
}

.company th {
	color: #fff;
	font-weight: normal;
	text-align: left;
	letter-spacing: 3px;
	vertical-align: top;
	width: 25%;
	max-width: 300px;
	padding: 1em 1em 1em 2em;
	background-color: var(--color-red);
	border-bottom: thin solid #d95353;
}

.company td {
	vertical-align: top;
	padding: 1em 1em 1em 3em;
	background-color: #fff;
	border-bottom: thin solid #ddd;
}

.w_icon {
	vertical-align: center;
	margin-bottom: -2px;
	margin-left: 0.5em;
}

.group_flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 0;
	padding: 0;
}

.group_wrap {
	background-color: #fff;
	margin: 0 auto 30px;
	padding: 2em;
	border-radius: 8px;
	width: 47%;
}

.group_logo {
	margin: auto;
	text-align: center;
	padding-bottom: 20px;
	border-bottom: thin solid var(--color-red);
}

.group_logo img {
	max-height: 70px;
	width: auto;
}

.group_name {
	color: #000;
	font-size: 1.1em;
	line-height: 1.6em;
	text-align: left;
	font-weight: 600;
	margin: 20px 0 10px;
}

.group_name a:hover {
	color: var(--color-red);
	text-decoration: none;
}

.group_works {
	font-size: 0.9em;
	line-height: 1.6em;
	text-align: left;
	margin: 0 0 20px;
}

.group_sns {
	margin: 0;
}

.group_sns img {
	margin: 0;
	height: 25px !important;
}


/* 採用情報 */

.slide_sub_title_02 {
	position: absolute;
	top: 0;
	left: 0;
	margin: 0;
	padding: 0;
	white-space: nowrap;
	width: calc(570 / 1920 * 100%);
	height: 100%;
	background-color: var(--color-red);
	z-index: 10;
}

.subpage_h2_02 {
	color: #fff;
	font-size: 5rem;
	line-height: 1;
	text-align: left;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-style: normal;
	letter-spacing: -3px;
	margin: 0;
	padding: 0;
	position: relative;
	top: calc(80 / 680 * 100%);
	left: calc(100 / 570 * 100%);
}

.subpage_h2sub_02 {
	color: #fff;
	font-size: 1rem;
	line-height: 1;
	text-align: left;
	font-weight: 600;
	font-style: normal;
	margin: 10px 0 0 10px;
	position: relative;
	top: calc(80 / 680 * 100%);
	left: calc(100 / 570 * 100%);
}

.subpage_txt {
	color: #fff;
	font-size: 1.4rem;
	line-height: 1.8em;
	text-align: left;
	font-weight: 600;
	font-style: normal;
	margin: 50px 0 0 10px;
	position: relative;
	top: calc(80 / 680 * 100%);
	left: calc(100 / 570 * 100%);
	width: calc(400 / 570 * 100%);
	white-space: normal;
	overflow-wrap: break-word;
	word-break: break-word;
}

.subpage_h2_03 {
	color: var(--color-red);
	font-size: 1.5rem;
	line-height: 1;
	text-align: left;
	font-family: "Poppins", sans-serif;
	font-weight: 500;
	font-style: normal;
	letter-spacing: 0;
	margin: 0;
	padding: 30px 0 0;
}

.subtitle_03 {
	font-size: 3em;
	line-height: 1.5;
	font-weight: 600;
	text-align: left;
	margin: 10px 0 0;
}

.subtitle_03_txt {
	font-size: 1.2em;
	line-height: 1.8;
	font-weight: 600;
	text-align: left;
	margin: 10px 0 30px;
}

#slide_sub1 .swiper {
	position: relative;
	z-index: 0;
	width: calc(1690 / 1920 * 100%);
	margin: 0 0 40px auto;
	overflow: visible;
}

.slide_sub_img_02 {
	display: block;
	width: 100%;
	height: auto;
	position: relative;
	z-index: 1;
}

/* 左の縦帯 */
#slide_sub1 .swiper::before {
	content: "";
	position: absolute;
	top: 40px;
	left: -40px;
	width: 40px;
	height: 100%;
	background: var(--bg-red);
	z-index: -1;
}

/* 下の横帯 */
#slide_sub1 .swiper::after {
	content: "";
	position: absolute;
	left: -40px;
	bottom: -40px;
	width: calc(100% + 40px);
	height: 40px;
	background: var(--bg-red);
	z-index: -1;
}

.sub_main_h2_2 {
	color: var(--color-red);
	font-size: 3.3rem;
	line-height: 1.5;
	text-align: center;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	letter-spacing: 0;
	margin: 0 0 20px;
	padding: 0;
}

.aboutus_txt {
	font-size: 1.38rem;
	line-height: 1.8;
	text-align: center;
	font-weight: 600;
	letter-spacing: 1px;
	margin: 0;
}

.aboutus_img {
	display: block;
	margin: 40px auto 0;
}

.sub_main_h2_3 {
	color: var(--color-red);
	font-size: 2.2rem;
	line-height: 1.5;
	text-align: center;
	font-weight: 600;
	letter-spacing: 0;
	margin: 80px 0 20px;
	padding: 0;
}

/* リクルート Vision */
.recruit_vision_lead {
    color: #000;
    font-size: 1.2em;
    line-height: 1.8em;
    text-align: left;
    font-weight: 600;
    width: 67%;
    margin: 40px 0 0;
    letter-spacing: 0;
}

.recruit_vision_txt {
	color: #000;
	font-size: 4rem;
	line-height: 1.3;
	font-weight: bold;
	text-align: center;
	margin: 100px 0 0;
}

/* 採用情報 データ */

.data_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 60px 0 0;
	padding: 0;
}

.individual_data {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 33.333333%;
	margin: 0 auto;
	padding: 3em 0;
	border-right: thin solid #bbb;
}

.individual_data:nth-child(3n) {
	border-right: none;
}

.bottom_line {
	border-bottom: thin solid #bbb;
}

.bottom_line_02 {
	border-bottom: none;
}

.data_icon img {
	height: 40px;
	width: auto;
}

.data_title {
	font-size: 1.8em;
	line-height: 1;
	font-weight: 600;
	margin: 20px 0 0;
}

.data_figures {
	font-size: 3em;
	line-height: 1;
	font-weight: 900;
	margin: 25px 0 0;
}

.data_figures span {
	font-size: 0.35em;
	font-weight: 500;
}

/* インタビュー */
.interview_wrap {
	display: flex;
	flex-wrap: wrap;
	 justify-content: space-between;
	width: 100%;
	margin: 50px 0 0;
	padding: 0;
}

.interview_list {
	width: 31.6%;
	border-radius: 10px;
	box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 2px 6px 3px;
	margin: 0 0 30px;
	padding: 2rem;
	background-color: #fff;
	position: relative;
	z-index: 1;
}

.interview_list a {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
}

.interview_num {
	color: #000;
	font-size: 1rem;
	line-height: 1.1;
	text-align: left;
	font-family: "Poppins", sans-serif;
	font-weight: 500;
	letter-spacing: 0;
	margin: 0;
	position: relative;
	z-index: 3;
}

.interview_num span {
	font-size: 3rem;
}

.interview_list img {
	margin-top: -60px;
	position: relative;
	z-index: 2;
}

.interview_list p {
	font-size: 1.3rem;
	line-height: 1.6;
	text-align: left;
	font-weight: 500;
	letter-spacing: 0;
	margin: 20px 0 20px;
}

.employee {
	color: #5d5d5d;
	font-size: 1.2rem;
	line-height: 1.6;
	text-align: left;
	font-weight: 500;
	margin: 0;
}

.department {
	color: #5d5d5d;
	font-size: 0.9rem;
	line-height: 1;
	text-align: left;
	font-weight: 300;
	letter-spacing: 0;
	margin: 5px 0 0;
}

.haizokusaki_txt {
	color: #fff;
    font-size: 0.92rem;
    line-height: 1.8;
    text-align: left;
    font-weight: 500;
    letter-spacing: 1px;
    margin: 30px 0 60px;
}


/* ticker（画像） */
.ticker_photo {
	margin: 40px 0 -80px;
}

@keyframes infinity-scroll-left {
from {
	transform: translateX(0);
}

to {
	transform: translateX(-100%);
}
}
.scroll-infinity__wrap {
	display: flex;
	overflow: hidden;
}

.scroll-infinity__list {
	display: flex;
	list-style: none;
	padding: 0
}

.scroll-infinity__list--left {
	animation: infinity-scroll-left 80s infinite linear 0.5s both;
}

.scroll-infinity__item {
	width: calc(100vw / 4);
}

.scroll-infinity__item>img {
	width: 100%;
}


/* 働く環境 */
.environment_bg {
	background-color: #fff;
	width: 100%;
	margin: -70px 0 0 30px;
	padding-top: 40px;
}

.environment_wrap {
	width: 100%;
	margin: 0 0 10px;
	padding: 0;
}

.environment_wrap img {
	width: 100%;
    object-fit: cover !important;
	margin: -30px 0 0;
	vertical-align: bottom;
	position: relative;
	z-index: 1;
}

.z_index2 {
	position: relative;
	z-index: 2;
}

/* サポート */

.support_flex {
	display: flex;
	align-items: center;
	width: 100%;
}

.support_flex .title {
	color: #000;
	font-size: 1.3em;
	line-height: 1;
	font-weight: 600;
	flex: 0 0 220px;
}

.support_flex .description {
	flex: 1;
	min-width: 0;
}

.recruit_subtitle {
	color: #000;
	font-size: 1.1em;
	line-height: 1;
	font-weight: 600;
	display: flex;
	align-items: center;
	margin: 0 0 10px;
}

.training_flow {
	margin: 20px 0 100px;
}


/* 採用情報　グループ */

.red-background {
	width: 100%; /* 全幅 */
	padding: 80px 0 40px;
	box-sizing: border-box;
	position: relative;
	background: transparent;
}

.red-background::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: calc(1720 / 1920 * 100%);
	height: 100%;
	background-color: var(--color-red);
	border-bottom-right-radius: 400px;
	z-index: 0;
}

.red-background .container {
	width: 92%;
	max-width: 1200px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

.red-background .container1750 {
	width: 92%;
	max-width: 1750px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

.group_title .group_txt {
	color: #fff;
	font-size: 1.2em;
	line-height: 1.8em;
	text-align: left;
	font-weight: 600;
	width: 70%;
	margin: 0;
	letter-spacing: 0;
}


/* カードflex */

.card-flex {
	display: flex;
	flex-wrap: wrap;
	margin-top: 60px;
}

/* 2トーンカード */

.two-tone-card {
	background: #fff;
	border-radius: 15px;
	height: auto;
	flex: 1 1 calc(50% - 25px);
	min-width: 300px;
	margin-bottom: 20px;
	position: relative;
	overflow: hidden;
	cursor: pointer;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	min-height: 200px;
}

/* 右側のカードだけ左マージン */

.two-tone-card:nth-child(even) {
	margin-left: 50px;
}

.two-tone-card.gradient-version {
	background: #ffffff;
	background: -webkit-linear-gradient(top, #ffffff 60%, #f0f0f0 40%);
	background: -moz-linear-gradient(top, #ffffff 60%, #f0f0f0 40%);
	background: linear-gradient(180deg, #ffffff 60%, #f0f0f0 40%);
}

.two-tone-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

.two-tone-card:hover a, .two-tone-card:hover a * {
	color: var(--color-red) !important;
	text-decoration: none !important;
}



/* カード内容エリア */

.card-top {
	height: 60%;
	padding: 20px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	color: #333;
	position: relative;
	z-index: 1;
}

.card-bottom {
	height: 40%;
	padding: 20px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;
	color: #000;
	font-size: 1em;
	line-height: 1;
	z-index: 1;
}


/* ロゴ */

.logo-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
}

.logo-placeholder img {
	height: 100%;
	max-height: 60px;
	width: auto;
}

/* 会社名 */

.company-name {
	font-size: 1.1rem;
	font-weight: 500;
	text-align: center;
	margin: 0;
}

/* 右下アイコン */

.icon-placeholder {
	position: absolute;
	bottom: 5px;
	right: 10px;
	width: 24px;
	height: 24px;
}

/* エントリー */

.bg-red-wrap {
	background-color: var(--color-red);
	margin: 0 auto 15px;
	padding: 2em;
	border-radius: 8px;
	width: 100%;
}


/* 募集要項ページ */

table.job_table {
	border-collapse: collapse;
	font-size: 1em;
	line-height: 2em;
	text-align: left;
	width: 100%;
	margin: 0;
}

.job_table th {
	color: #000;
	font-weight: 600;
	text-align: left;
	letter-spacing: 3px;
	vertical-align: top;
	width: 20%;
	max-width: 300px;
	padding: 1.5em 1em 1.5em 2em;
	background-color: #fff;
	border-bottom: thin solid #ddd;
}

.job_table td {
	vertical-align: top;
	padding: 1.5em 1em 1.5em 3em;
	background-color: #fff;
	border-bottom: thin solid #ddd;
}

.bg_photo {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
	z-index: 0;
}

.flow_wrap {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 110px 20px;
	box-sizing: border-box;
	z-index: 1;
}

.flow-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	width: 100%;
	max-width: 100%;
	padding: 0 20px;
	box-sizing: border-box;
}

/* 縦ラインの初期状態：非表示（scaleY: 0） */

.flow-container::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%) scaleY(0);
	transform-origin: top;
	width: 2px;
	height: 100%;
	background-color: #666;
	z-index: 0;
	transition: transform 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* ラインを表示（上から下に伸びる） */

.flow-container.show-line::before {
	transform: translateX(-50%) scaleY(1);
}

.flow-step {
	position: relative;
	width: 100%;
	margin: 0 0 27px;
	padding: 0 20px;
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 1;
}

.flow-step:last-child {
	margin-bottom: 0;
}

.step-content {
	padding: 20px 40px;
	border-radius: 8px;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
	width: 100%;
	max-width: 600px; /* ボックスの最大幅 */
	text-align: center;
}

.white-bg {
	background-color: #fff;
}

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

.step-content p {
	font-size: 1.1em;
	margin: 0;
	line-height: 1.6em;
}

/* インタビューページ */
.interview_mg {
	margin: auto;
	padding-bottom: 30px;
}

.interview_frame {
	background-color: #fff;
    margin: 0 auto 30px;
    padding: 50px 100px;
    position: relative;
	width: 92%;;
	max-width: 1200px;
    z-index: 1;
	box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;
}

.interview_titleArea {
	display: flex;
	flex-wrap: wrap;
	 justify-content: space-between;
	 align-items: flex-end;
	width: 100%;
	margin: 0;
	padding: 0;
}

.interview_title {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 80%;
	margin: 0;
	padding: 0;
}
.interview_title .number {
	color: #000;
    font-size: 1rem;
    line-height: 1.1;
    text-align: left;
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    letter-spacing: 0;
    margin: 0;
    position: relative;
    z-index: 3;
}

.interview_title .number span {
    font-size: 3.5rem;
}
.interview_title .title {
	font-size: 1.7em;
	line-height: 1.3;
	text-align: left;
	font-weight: 600;
	margin: 0 0 0 2rem;
}

.interview_name {
	display: flex;
	flex-direction: column;
	width: 20%;
	margin: 0;
	padding: 0 0 10px;
}
.interview_name .employee {
	color: #5d5d5d;
    font-size: 1.1rem;
    line-height: 1.6;
    text-align: right;
    font-weight: 500;
    margin: 0;
}
.interview_name .department {
	color: #5d5d5d;
    font-size: 0.9rem;
    line-height: 1;
    text-align: right;
    font-weight: 300;
    letter-spacing: 0;
    margin: 5px 0 0;
}

.interview_photo {
	box-shadow: 20px 20px 0 #c40000;
	margin: 20px 0 40px;
}

.sub_title_h3 {
    color: #000;
    font-size: 1.8rem;
    line-height: 1.5;
    text-align: center;
    font-weight: 600;
    letter-spacing: 0;
    margin: 0 0 30px;
    padding: 0;
}

.point_ul {
	display: flex;
	flex-wrap: wrap;
	 justify-content: space-between;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style-type: none;
}

.point_ul li {
	width: 32%;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
}

.point_ul li:last-child {
	margin-right: 0;
}

.point_ul li .number {
	width: 80px;
	height: auto;
}

.point_ul li p {
	color: #000;
    font-size: 1.1rem;
    line-height: 1.5;
    text-align: left;
    font-weight: 600;
    letter-spacing: 0;
    margin: 0 0 0 15px;
    padding: 0;
}

.point_dl {
	margin: 60px 0 0;
}

.point_dl dt {
	font-size: 1.5rem;
    line-height: 1.5;
    text-align: left;
    font-weight: 600;
    letter-spacing: 0;
    margin: 0 0 20px;
}

.point_dl dd {
	font-size: 0.95rem;
    line-height: 2;
    text-align: left;
    letter-spacing: 0;
    margin: 0 0 60px;
}

.job_h4 {
	color: #000;
	font-size: 1.1rem;
	line-height: 1;
	font-weight: 500;
	text-align: left;
	margin: 0;
}

.job_wrap {
	background-color: #eeeff1;
	margin: 15px 0 30px;
	padding: 2rem 3rem;
}

.job_wrap ul {
	margin: 0;
	padding: 0;
}

.job_wrap li {
	font-size: 1rem;
	line-height: 1.8;
	text-align: left;
	margin: 0 0 5px 20px;
	padding: 0;
}

.sub_title_h3_2 {
    color: var(--color-red);
    font-size: 2.2rem;
    line-height: 1.5;
    text-align: center;
	font-family: "Poppins", sans-serif;
    font-weight: 500;
    letter-spacing: 1px;
    margin: 80px 0 30px;
    padding: 0;
}

/*other interview */
.interview_wrap_02 {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
	margin: 50px 0 0;
	padding: 0;
}

.interview_list_02 {
    width: 38%;
    border-radius: 10px;
    box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 2px 6px 3px;
    margin: 0 15px 30px;
    padding: 1.8rem 1.2rem 2.6rem;
    position: relative;
    z-index: 1;
	background-color: #fff;
}

.interview_list_02 a {
display: block;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
}

.interview_list_02 img {
    width: 100%;
	margin: 0 0 25px;
}

.btn-right-wrap {
    width: 100%;
    display: flex;
    justify-content: flex-end;
	margin: 60px 0 40px;
}


/* フローティングバナー */
.floating-banner {
    color: #fff !important;
	font-size: 1.2rem;
	line-height: 1;
    text-decoration: none;
    font-weight: 500;
    cursor: pointer;
    opacity: 0;
    width: 170px;
    height: 50px;
    background-color: var(--color-red);
    display: flex;
	justify-content: center;
    align-items: center;
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 999;
    transition: all 0.2s ease;
}
.floating-banner:hover {
	color: white !important;
	text-decoration: none;
}

/* サステナビリティ */

.bg-fff-wrap {
	background-color: #fff;
	margin: 0 auto 15px;
	padding: 2em;
	border-radius: 8px;
	width: 100%;
}

.guidelines_flex {
	display: flex;
	align-items: center;
	width: 100%;
}

.guidelines_flex .number {
	color: var(--color-red);
	font-size: 1.6em;
	line-height: 1;
	font-weight: 600;
	flex: 0 0 70px;
}

.guidelines_flex .description {
	flex: 1;
	min-width: 0;   /* はみ出し防止 */
}


/* プライバシーポリシー */

.sub_txt_h2_c {
	color: #000;
	font-size: 1.7rem;
	line-height: 1.5em;
	text-align: center;
	font-weight: 500;
	margin: 0 0 60px;
}

.privacy_dl {
	text-align: left;
	margin: 40px 0 0;
	padding: 0;
}

.privacy_dl dt {
	color: #000;
	font-size: 1.1em;
	line-height: 1;
	font-weight: bold;
	margin: 0 0 20px;
	padding: 0;
}

.privacy_dl dd {
	margin: 0;
	padding: 0;
}

.privacy_dl dd p {
	font-size: 0.95em;
	line-height: 2em;
	margin: 0 0 40px 1.5em;
	padding: 0;
}

.privacy_dl ol {
	margin: -20px 0 40px 3em;
	padding: 0;
}

.privacy_dl li {
	font-size: 0.95em;
	line-height: 2em;
	margin: 0;
	padding: 0;
}

.privacy_contact_h3 {
	color: #000;
	font-size: 1em;
	line-height: 1.8em;
	font-weight: 600;
}


/* パンくずリスト */

.breadcrumb-nav {
	background-color: #f2f3f5; /* 必要に応じて背景色は削除可 */
	padding: 30px 20px 30px 80px;
}

.breadcrumb-nav .breadcrumb-list {
	font-size: 0.8em;
	font-weight: 500;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
  gap: 6px 0;
}

.breadcrumb-nav .breadcrumb-list li {
	display: flex;
	align-items: center;
	white-space: nowrap;
	margin: 0;
	padding: 0;
}

.breadcrumb-nav .breadcrumb-list li:not(:last-child)::after {
	content: "/";
	display: inline-block;
	margin: 0 0.8em;
	color: #888;
	font-size: 0.8em;
	transform: translateY(1px); /* 矢印の縦位置を調整 */
}

.breadcrumb-nav .breadcrumb-list li a {
	display: inline; /* nav a の display: flex をリセット */
	padding: 0;      /* nav a の padding をリセット */
	margin: 0;
	color: #888 !important;
	text-decoration: none;
	line-height: 1;
	font-weight: 400;
}

.breadcrumb-nav .breadcrumb-list li a:hover {
	text-decoration: underline;
	color: var(--color-red);
}

.breadcrumb-nav .breadcrumb-list li[aria-current="page"] {
	display: inline;
	padding: 0;
	margin: 0;
	font-weight: 500;
	color: #333;
	line-height: 1;
}




/* hidden */

.hidden_pc {
	display: none;
}

.hidden_sp {
	display: block;
}



/*view point 切り替え*/

@media screen and (max-width: 1600px) {
	/* slide5-1600 */
	
	.left-content {
		padding: 50px 60px 60px;
		max-width: 600px;
		width: 40%;
	}
	
	.nav-link {
		font-size: 0.95em;
		padding: 15px 0;
	}
	
	/* ビジョン-1600 */
	
	.vision_wrap .left_photos {
		width: 28%;
		display: flex;
		flex-direction: column;
	}
	
	.vision_wrap .vision_txt {
		width: 44%;
		margin: 0;
	}
	
	.vision_wrap .right_photos {
		width: 28%;
		display: flex;
		flex-direction: column;
		margin: 0;
	}
}


@media screen and (max-width: 1450px) {
	.lead_txt {
		font-size: 2.5em;
	}
	
	p.about_p {
		font-size: 1.15em;
		line-height: 2.8em;
		font-weight: 500;
		text-align: left;
		margin: 0 0 40px;
	}
	
	.subpage_h2 {
		color: var(--color-red);
		font-size: 4.2rem;
		top: calc(50 / 380 * 100%);
		left: calc(50 / 570 * 100%);
	}
	
	.subpage_h2sub {
		top: calc(50 / 380 * 100%);
		left: calc(50 / 570 * 100%);
	}
	
	.subpage_h2_02 {
		font-size: 4.2rem;
		top: calc(50 / 680 * 100%);
		left: calc(50 / 570 * 100%);
	}
	
	.subpage_h2sub_02 {
		top: calc(50 / 680 * 100%);
		left: calc(50 / 570 * 100%);
	}
	
	.subpage_txt {
		font-size: 1.2rem;
		margin: 50px 0 0 10px;
		top: calc(50 / 680 * 100%);
		left: calc(50 / 570 * 100%);
		width: calc(490 / 570 * 100%);
	}
	
	.subpage_entry {
		margin: 20px 0 0 10px;
		top: calc(50 / 680 * 100%);
		left: calc(50 / 570 * 100%);
	}
	
	.top_entry-btn {
		padding: 15px 40px;
		border-radius: 50px;
	}
	
	.sub_main_h2 {
		font-size: 4.2rem;
	}
	
	/* About us-1450 */
	
	.ceo_message .messe {
		font-size: 1.8em;
		font-weight: 700;
	}
	
	.ceo_photo {
		top: 250px;
	}
	
	/* 採用情報-1450 */
	
	.subpage_h2_ni {
		font-size: 4.2rem;
		letter-spacing: 1px;
	}
	
	.main_wrap_vision::after {
   width: 180px;
    height: 180px;
	}
	
	
	/* パンくず-1450 */
	
	.breadcrumb-nav {
		padding: 30px 20px 30px 50px;
	}
	
	.vision_wrap {
		margin: 0 auto;
	}
}


@media screen and (max-width: 1280px) {
	/* slide5-1280 */
	
	.left-content {
		padding: 40px;
	}
	
	.slide_sub_img {
		width: 100%;
		object-fit: cover;
		object-position: left top;
		height: 300px;
	}
	
	
	/* About Us-1280 */
	
	.slide_sub_text p {
		font-size: 1.4rem;
		line-height: 2.2em;
		margin: -1em 0 0;
	}
	
	/* Vision-1280 */
	
	.vision_txt h3 {
		font-size: 3em;
		line-height: 2em;
	}
	
	.vision_txt p {
		font-size: 1.1em;
	}
	
	.vision_ph01 {
		width: calc(398 / 450 * 100%);
		margin: 0;
	}
	
	.vision_ph03 {
		width: calc(354 / 450 * 100%);
		margin-top: 40px;
		margin-left: 100px;
	}
	
	.vision_ph05 {
		width: calc(314 / 450 * 100%);
		margin-top: 40px;
		margin-left: 0;
	}
	
	.vision_ph04 {
		width: calc(248 / 450 * 100%);
		margin-top: 40px;
		margin-left: 150px;
	}
	
	.vision_ph06 {
		width: calc(204 / 450 * 100%);
		margin-top: 70px;
		margin-left: 50px;
	}
	
	.vision_ph07 {
		width: calc(304 / 450 * 100%);
		margin-top: 40px;
		margin-left: 0;
	}
	
/* リクルート-1280 */
.recruit_vision_txt {
font-size: 3.5rem;
}

.group_title .group_txt {
    width: 100%;
}

.main_wrap_vision::after {
width: 140px;
height: 140px;
}
}


@media screen and (max-width: 1100px) {
	/* header-1100 */
	
	.header_menu nav, .header_menu .sub_menu01 {
		display: none;
	}
	
	
	/* footer-1100 */
	
	.footer_content {
		flex-direction: column;
		padding: 70px 0;
	}
	
	.footer_about {
		margin: 0 auto 80px;
		width: 100%;
		max-width: 270px;
	}
	
	.footer_about .address {
		margin: 20px 0;
	}
	
	.footer_menu {
		width: 90%;
	}
	
	.sns_link li img {
		margin: 0 15px 0 0;
	}
	
	/* slide_sub1-1100 */
	
	#slide_sub1 {
		margin: 90px 0 0 !important;
	}
	
	.in-page-links li {
		margin-right: 3%;
		padding-bottom: 13px;
		width: 30%;
		margin-bottom: 15px;
	}
	
	.slide_sub_title_02 {
		width: calc(600 / 1920 * 100%);
	}
	
	/* ビジョン-1100 */
	
	.vision_wrap .left_photos > img {
		transform: translateX(10px);
	}
}


@media screen and (max-width: 1024px) {
	/* header-1100 */
	
	.h1_mov {
		width: 200px;
	}
	
	.menu_wrap {
		height: 90px;
	}
	
	/* slide1-1024 */
	
	#slide1 {
		height: auto;
	}
	
	.slide1_kv {
		height: auto;
	}
	
	.slide1_kv img {
		height: auto;
		max-height: none;
	}
	
	.slide1_title {
		top: 50%;
		width: 90%;
	}
	
	.slide1_title .eg_txt {
		font-size: 1.5em;
		line-height: 1.5em;
	}
	
	.slide1_title .jp_txt {
		font-size: 1.8em;
		line-height: 2em;
	}
	
	.slide1_title h1 {
		width: 100%;
		max-width: 300px;
		margin: 20px auto auto;
	}
	
	/* slide3-1024 */
	
	#slide3 {
		padding-bottom: 120px;
	}
	
	.lead_txt {
		font-size: 2.5em;
		line-height: 1.6em;
	}
	
	.about_wrap {
		position: relative;
		top: 100px;
		left: auto;
		width: 92%;
		margin: 0 auto;
		z-index: 2;
	}
	
	.photo_gallery {
		position: relative;
		top: 0;
		right: auto;
		left: auto;
		width: 92%;
		margin: 90px auto 0 !important;
		z-index: 5;
		background-color: #fff;
		transform: none;
	}
	
	.photo_wrap {
		width: 100% !important;
		margin: auto;
		padding-top: 50px;
		padding-bottom: 50px;
	}
	
	.photo_right {
		width: 40%;
		margin-top: calc(60 / 720 * 100%);
	}
	
@supports(selector(:has(*))) {
.photo_item:has(> img.slide3_ph01) { width: min(calc(1.5 * (260 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph02) { width: min(calc(1.5 * (460 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph03) { width: min(calc(1.5 * (220 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph04) { width: min(calc(1.5 * (340 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph05) { width: min(calc(1.5 * (180 / 1920 * 100vw)), 100%); }
}

/* :has 非対応ブラウザ向けフォールバック */
@supports not (selector(:has(*))) {
.slide3_ph01 { width: calc(1.5 * (260 / 1920 * 100vw)) !important; }
.slide3_ph02 { width: calc(1.5 * (460 / 1920 * 100vw)) !important; }
.slide3_ph03 { width: calc(1.5 * (220 / 1920 * 100vw)) !important; }
.slide3_ph04 { width: calc(1.5 * (340 / 1920 * 100vw)) !important; }
.slide3_ph05 { width: calc(1.5 * (180 / 1920 * 100vw)) !important; }
}

/* slide4-1024 */
	
.group_title .title {
  width: 100%;
}

.slide4_txt {
  width: 100%;
}

/* slide5-1024 */

.left-content {
	padding: 40px 25px;
	width: 40%;
}

.tagline {
	color: #fff;
	font-size: 1.3em;
	line-height: 1.6em;
	font-weight: 600;
	margin: 30px 0;
}

.nav-link {
	font-size: 0.9em;
}

.subpage_txt {
	width: calc(460 / 570 * 100%);
}

/* タイトル　テキスト-1024 */

.slide_sub_text {
	position: absolute;
	top: 77%;
	left: calc(0 / 1920 * 100%);
	width: 100%;
	height: auto;
	color: #fff;
	padding: 0 50px 0 0;
	left: 30px;
}

.slide_sub_text p {
	font-size: 1.2rem;
	line-height: 2em;
}

/* About us-1024 */

.ceo_message {
	padding: 1.5em;
}

.vision_txt h3 {
	font-size: 2.5em;
	line-height: 2em;
}

.vision_ph03 {
	width: calc(354 / 450 * 100%);
	margin-top: 40px;
	margin-left: 70px;
}

.vision_ph05 {
	width: calc(324 / 450 * 100%);
	margin-top: 40px;
	margin-left: 0;
}

.vision_ph02 {
	width: calc(357 / 450 * 100%);
	margin-left: 0;
}

.vision_ph04 {
	width: calc(268 / 450 * 100%);
	margin-top: 40px;
	margin-left: 100px;
}

.vision_ph06 {
	width: calc(244 / 450 * 100%);
	margin-top: 50px;
	margin-left: 50px;
}

.vision_ph07 {
	width: calc(324 / 450 * 100%);
	margin-top: 40px;
	margin-left: 20px;
}


/* 沿革-1024 */

.history_photo {
	width: 50%;
	margin: -80px 0 50px auto;
}

.history {
	width: 100%;
}

/* 採用情報-1024 */

#slide_sub1_ni {
	position: relative;
	margin: 80px 0 !important;
	padding-top: 50px;
	padding-bottom: 0;
}

.recruit_vision_lead {
    width: 100%;
}

/* パンくず-1024 */

.breadcrumb-nav {
	padding: 30px 20px 30px 20px;
}
}


@media screen and (max-width: 912px) {
	/* slide4-912 */
	
	/*.group_title .title {
		width: 100%;
	}
	
	.slide4_txt {
		width: 100%;
	}*/
	
	/* slide5-912 */
	
	#slide5 {
		display: block;
	}
	
	.view_tb {
		display: block;
		width: 100%;
	}
	
	.right-image {
		display: none;
	}
	
	.left-content {
		padding: 40px 4% 60px;
		width: 100%;
		max-width: 100%;
	}
	
	.entry-button {
		width: 50%;
		margin: auto;
	}
	
	/* footer-912 */
	
	.footer_menu_02 {
		margin: 0 0 0 30px;
	}
	
	.copyright {
		margin: 0 30px 0 0;
	}
	
	.sns_wrap {
		margin: 0;
	}
	
	.company_sns {
		width: 50%;
		margin-bottom: 50px;
	}
	
	.company_name {
		margin: 0 0 20px;
	}
	
	/* 下層ページ-912 */
	
	.slide_sub_img {
		height: 250px;
	}
	
	.subpage_h2 {
		font-size: 3.5rem;
		top: 30px;
		left: 30px;
	}
	
	.subpage_h2sub {
		top: 30px;
		left: 20px;
	}
	
	.subpage_h2_02 {
		font-size: 3.5rem;
		top: calc(50 / 680 * 100%);
	}
	
	.subpage_txt {
		margin: 30px 0 0 10px;
		top: calc(30 / 680 * 100%);
		left: calc(30 / 570 * 100%);
	}
	
	.subpage_entry {
		margin: 20px 0 0 10px;
		top: calc(40 / 680 * 100%);
		left: calc(30 / 570 * 100%);
	}
	
	.sub_main_h2 {
		font-size: 3.5rem;
	}
	
	.sub_txt_h2 {
		font-size: 1.5rem;
		margin: 0 0 30px;
	}
	
	
	/* Vision-912 */
	
	.vision_wrap .left_photos, .vision_wrap .right_photos {
		display: none;
	}
	
	.photos_top {
		display: flex;
		justify-content: center;
		gap: clamp(12px, 24/820 * 100vw, 24px);
		width: 100%;
		max-width: 800px;
		margin: 50px auto 20px;
		padding-right: 30px;
		padding-left: 30px;
	}
	
	.photos_top img {
		display: block;
		height: auto;
	}
	
	.photos_top .vision_tb02 {
		align-self: flex-start;
		margin-top: -30px;
	}
	
	.vision_wrap .vision_txt {
		width: 100%;
		margin: 0;
	}
	
	.photos_bottom > * {
		position: static !important;
		top: auto !important;
		right: auto !important;
		bottom: auto !important;
		left: auto !important;
		transform: none !important;
		margin: 0;
		max-width: none;
	}
	
	.photos_bottom {
		--g: clamp(12px, calc(24 / 820 * 100vw), 24px);
		display: flex;
		flex-wrap: wrap;
		gap: var(--g);
		width: calc(70 / 100 * 100%);                 /* 70% → calc */
		margin: calc(80 / 820 * 100vw) auto;          /* 80px → calc */
		align-items: flex-start;
	}
	
	/* 2列計算は既存のまま */
	
	.photos_bottom > * {
		flex: 0 0 calc((100% - var(--g)) / 2);
	}
	
	/* 左上 */
	
	.vision_tb03 {
		order: 1;
		margin-top: calc(40 / 820 * 100vw);           /* 40px → calc */
	}
	
	/* 右上 */
	
	.vision_tb04 {
		order: 2;
		margin-top: calc(-30 / 820 * 100vw);          /* -30px → calc */
		max-width: calc(28 / 100 * 100vw);            /* 28vw → calc */
	}
	
	/* 左中 */
	
	.vision_tb07 {
		order: 3;
		margin-top: calc(24 / 820 * 100vw);          /* 24px → calc */
		margin-left: calc(-30 / 820 * 100vw);         /* -30px → calc */
		max-width: calc(28 / 100 * 100vw);          /* 28vw → calc */
	}
	
	/* 右中 */
	
	.vision_tb06 {
		order: 4;
		margin-top: 0;                               /* 0はそのまま */
		margin-left: calc(50 / 820 * 100vw);          /* 50px → calc */
		max-width: calc(22 / 100 * 100vw);          /* 22vw → calc */
	}
	
	.vision_tb05 {
		order: 5;
		flex-basis: 100%;
		align-self: center;
		max-width: calc(40 / 100 * 100%);
		margin-top: calc(-50 / 820 * 100vw);
		margin-left: calc(40 / 100 * 100%);
	}
	
	.photos_bottom img {
		display: block;
		width: 100%;
		height: auto;
	}
	
	
	/* 採用情報-912 */
	
	.group_title .group_txt {
		width: 100%;
	}
	
	.subpage_h2_ni {
		font-size: 3.5rem;
	}
	
	#slide_sub1 .swiper {
   width: 90%;
	}
	#slide_sub1 .swiper::before {
    top: 25px;
    left: -25px;
    width: 25px;
}
#slide_sub1 .swiper::after {
   left: -25px;
    bottom: -25px;
    width: calc(100% + 25px);
    height: 25px;
}

.main_wrap_vision {
    padding: 60px 0;
}

.main_wrap_vision::before {
 border-top: 80px solid var(--bg-lightgray);
 border-right: 110px solid transparent;
}

.main_wrap_vision::after {
width: 120px;
height: 120px;
}

.recruit_vision_txt {
font-size: 2.7rem;
margin: 50px 0 0;
}

.data_title {
    font-size: 1.5em;
}

.data_figures {
    font-size: 2.4em;
}

.interview_list {
	padding: 1.5rem 1rem 5rem;
}

.interview_list p {
    font-size: 1.1rem;
}

.employee {
    font-size: 1.05rem;
}

.environment_wrap img {
    margin: 0;
}

.interview_frame {
    padding: 50px 2rem;
}

.interview_title .number span {
    font-size: 3rem;
}

.interview_title .title {
    font-size: 1.5em;
    margin: 0 0 0 1.2rem;
}
.interview_title {
    width: 70%;
}
.interview_name {
    width: 30%;
}
.interview_list_02 {
padding: 1.2rem 1rem 4.5rem;
}
}


@media screen and (max-width: 820px) {
	/* slide1-820 */
	
	.slide1_title {
		top: 55%;
		width: 90%;
	}
	  
	/* slide3-820 */
	
	.photo_wrap {
		width: 80%;
		margin: auto;
		padding-top: 50px;
		padding-bottom: 50px;
	}
	  
	/* slide4-820 */
	
	.flowing-ttl__item {
		font-size: 8rem;
	}
	
	 /* Vision-820 */
	
	.photos_bottom {
		width: calc(80 / 100 * 100%);
		margin: calc(80 / 820 * 100vw) auto;
		margin-left: calc(150 / 820 * 100vw);
	}
	
	
	 /* 採用情報グループ-820 */
	
	.subtitle_03 {
    font-size: 2.5em;
	}
	
	#slide_sub1 .swiper {
    width: 93%;
    }
	
	.aboutus_txt {
    font-size: 1.2rem;
	}
	
	.sub_main_h2_3 {
    color: var(--color-red);
    font-size: 2.2rem;
	}

	.data_title {
		font-size: 1.6em;
		line-height: 1;
		font-weight: 600;
		margin: 20px 0 0;
	}
	
	.scroll-infinity__item {
		width: calc(100vw / 3);
	}
	
	.environment_card {
		padding: 1em;
		width: 90%;
		margin: 0 5% 50px;
	}
	
	.card-flex {
		display: flex;
		flex-wrap: wrap;
		gap: 12px;
	}
	
	.card-flex .two-tone-card {
		margin: 0;
		min-width: 0;
		flex: 1 1 calc((100% - 12px)/2);
		box-sizing: border-box;
	}
	
	.interview_list_02 {
    width: 42%;
}
}


@media screen and (max-width: 768px) {
	/* slide1-768 */
	
	.slide1_title .eg_txt {
		font-size: 1.4em;
		line-height: 1.5em;
	}
	
	.slide1_title .jp_txt {
		font-size: 1.8em;
	}
	
	.slide1_title h1 {
		width: 100%;
		max-width: 280px;
		margin: 20px auto auto;
	}
	
	/* slide3-768 */
	@supports(selector(:has(*))) {
.photo_item:has(> img.slide3_ph01) { width: min(calc(1.7 * (260 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph02) { width: min(calc(1.7 * (460 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph03) { width: min(calc(1.7 * (220 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph04) { width: min(calc(1.7 * (340 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph05) { width: min(calc(1.7 * (180 / 1920 * 100vw)), 100%); }
}

/* :has 非対応ブラウザ向けフォールバック */
@supports not (selector(:has(*))) {
.slide3_ph01 { width: calc(1.7 * (260 / 1920 * 100vw)) !important; }
.slide3_ph02 { width: calc(1.7 * (460 / 1920 * 100vw)) !important; }
.slide3_ph03 { width: calc(1.7 * (220 / 1920 * 100vw)) !important; }
.slide3_ph04 { width: calc(1.7 * (340 / 1920 * 100vw)) !important; }
.slide3_ph05 { width: calc(1.7 * (180 / 1920 * 100vw)) !important; }
}


/* footer-768 */

.footer_about {
	margin: 0 auto 80px;
	width: 35%;
	max-width: 250px;
}
  
  /* 下層ページ-768 */

.slide_sub_title_02 {
	position: relative;
	top: 0;
	left: 0;
	margin: 0;
	padding: 30px 0;
	white-space: nowrap;
	width: 100%;
	height: auto;
}

.slide_sub_img_02 {
	width: 100%;
	object-fit: cover;
	margin-left: 0;
	height: auto;
	position: relative;
}

.subpage_h2_02 {
	font-size: 3.5rem;
	top: 0;
	left: 30px;
}

.subpage_h2sub_02 {
	top: 0;
	left: 25px;
}

.subpage_txt {
	margin: 30px 0 0 10px;
	left: 20px;
}

.subpage_entry {
	margin: 20px 0 0 10px;
	left: 20px;
}

/* Vision-768 */

.photos_bottom {
	width: calc(80 / 100 * 100%);
	margin: calc(80 / 820 * 100vw) auto;
	margin-left: calc(100 / 820 * 100vw);
}

.managemanet_wrap p {
	width: 100%;
}

.managemanet_wrap figure {
	width: 100%;
	margin: 30px auto 0;
	text-align: center;
}

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

.presidents_card {
	width: 48%;
	margin: 0 0 60px 0;
}

/* リクルート-768 */
.interview_title .title {
    font-size: 1.4em;
    margin: 0 0 0 1.2rem;
}

.point_ul li {
    width: 48%;
    margin: 0 0 20px;
}
}

@media (min-width: 767px) {
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}
}


@media screen and (max-width: 640px) {
	/* header-640 */
	
	.menu_wrap {
		padding: 0 0.5em;
		height: 70px;
		background-color: #fff;
	}
	
	.h1_mov h1 {
		width: 180px;
		margin: 0;
	}
	
	.h1_mov h1 {
		margin: 0.4em 0 0;
	}
	
	/* slide1-640 */
	
	.slide1_kv {
		height: 55dvh;
	}
	
	.slide1_kv img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: 60%;
	}
	
	.slide1_title {
		opacity: 0;
		transform: translate(-50%, -40%);
		transition: opacity 1.5s ease, transform 1.5s ease;
		position: absolute;
		top: 55%;
		left: 50%;
		text-align: center;
		width: 90%;
	}
	
	.slide1_title .eg_txt {
		font-size: 1.3em;
		line-height: 1.4em;
	}
	
	.slide1_title .jp_txt {
		font-size: 1.3em;
		margin-top: 15px;
	}
	
	.slide1_title h1 {
		margin: 20px auto auto;
		width: 70%;
	}
	
	
	/* slide2-640 */
	
	#slide2 {
		margin: 25px 0 100px;
	}
	
	h2.main_h2 {
		font-size: 3.5rem;
		line-height: 1.5em;
	}
	
	.h2_sub {
		font-size: 1rem;
	}
	
	
	/* slide3-640 */
	
	#slide3 {
		padding-bottom: 80px;
	}
	
	.main_h2_01 {
		font-size: 3.5rem;
		top: 40px;
	}
	
	.about_wrap {
		top: 150px;
		padding: 2em 1.2em;
	}
	
	.lead_txt {
		font-size: 1.4em;
		line-height: 1.6em;
	}
	
	p.about_p {
		font-size: 1.05em;
		line-height: 2.5em;
		font-weight: 500;
		text-align: left;
		margin: 0 0 40px;
	}
	
	.photo_wrap {
		width: 100%;
		margin: 150px auto auto;
		padding-bottom: 50px;
	}
	
	@supports(selector(:has(*))) {
.photo_item:has(> img.slide3_ph01) { width: min(calc(2 * (260 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph02) { width: min(calc(2 * (460 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph03) { width: min(calc(2 * (220 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph04) { width: min(calc(2 * (340 / 1920 * 100vw)), 100%); }
.photo_item:has(> img.slide3_ph05) { width: min(calc(2 * (180 / 1920 * 100vw)), 100%); }
}

/* :has 非対応ブラウザ向けフォールバック */
@supports not (selector(:has(*))) {
.slide3_ph01 { width: calc(2 * (260 / 1920 * 100vw)) !important; }
.slide3_ph02 { width: calc(2 * (460 / 1920 * 100vw)) !important; }
.slide3_ph03 { width: calc(2 * (220 / 1920 * 100vw)) !important; }
.slide3_ph04 { width: calc(2 * (340 / 1920 * 100vw)) !important; }
.slide3_ph05 { width: calc(2 * (180 / 1920 * 100vw)) !important; }
}


/* slide4-640 */

.slide4_txt {
	font-size: 1.1em;
	line-height: 1.8em;
	text-align: left;
	font-weight: 500;
	margin: 40px 0 20px;
}

.flowing-ttl__item {
	font-size: 6rem;
	margin: 0 0 -16px;
}


/* slide5-640 */

.left-content {
	padding: 40px 4% 60px;
	width: 100%;
	max-width: 100%;
}

.tagline {
	color: #fff;
	font-size: 1.1em;
	line-height: 1.6em;
	font-weight: 600;
	margin: 30px 0 15px;
}

.nav-link {
	font-size: 0.85em;
}

.nav-links {
	gap: 10px 40px;
	margin-bottom: 40px;
}

.entry-button {
	width: 95%;
	margin: auto;
}


/* footer-640 */

.footer_content {
	flex-direction: column;
	padding: 50px 0 20px;
}

.footer_about {
	margin: 0 auto 30px;
	width: 100%;
	max-width: 250px;
}

.footer_menu {
	display: none;
}

.sns_wrap {
	margin: 0 0 20px;
}

.company_sns {
	width: 100%;
	margin-bottom: 30px;
}

.company_name {
	margin: 0 0 10px;
}

.footer_link li {
	/*margin: 0 auto 15px;
	width: 85%;*/
  margin: 0 1.5%;
  width: 47%;
}

.footer_link li img {
	margin: 0 auto;
	width: 100%;
}

.footer_menu_02 {
	width: 100%;
	text-align: center;
}

.copyright {
	width: 100%;
	margin: 20px 0 0;
	font-size: 0.9em;
	text-align: center;
}

/* 下層ページ-640 */

.slide_sub_title {
	width: 100%;
}

.slide_sub_img {
	height: 200px;
	object-position: 40% top;
}

.subpage_h2 {
	font-size: 2.8rem;
	top: 30px;
	left: 20px;
	letter-spacing: 1px;
}

.subpage_h2sub {
	top: 25px;
	left: 10px;
}

.subpage_h2_02 {
	font-size: 2.8rem;
	top: 0;
	left: 20px;
	letter-spacing: 1px;
}

.subpage_h2sub_02 {
	top: 0;
	left: 10px;
}

.subpage_txt {
	font-size: 1.1rem;
	margin: 30px 0 0 10px;
	left: 10px;
	width: 90%;
}

.subpage_entry {
	margin: 20px 0 0 10px;
	left: 10px;
}

.slide_sub_text p {
	font-size: 0.9rem;
	line-height: 1.8em;
	font-weight: 500;
	margin: -1em 0 0 -0.5em;
}

.sub_main_h2 {
	font-size: 2.8rem;
	line-height: 1.1;
}

.h2_sub {
	margin: 5px 0 0;
}

.in-page-links li {
	margin-right: 4%;
	padding-bottom: 13px;
	width: 48%;
	margin-bottom: 15px;
	font-size: 0.85em;
}

.in-page-links li:nth-child(even) {
	margin-right: 0;
}


/* About us-640 */

.ceo_photo {
	display: none;
}
.ceo_photo-sp {
	display: block;
	width: 100%;
}

.messe_ti {
	position: relative;
	z-index: 5;
	margin-top: -30px;
}

.ceo_message {
	width: 100%;
	padding: 1.5em;
	z-index: 2;
	position: relative;
}

.ceo_message .messe {
	font-size: 1.4em;
	font-weight: 700;
}

/* Vision-640 */

.photos_top {
	width: 50%;
	max-width: none;
	margin: 60px auto 0;
	padding-right: 10px;
	padding-left: 10px;
}

.vision_wrap .vision_txt {
	padding-right: 20px;
	padding-left: 20px;
}

.vision_txt h3 {
	font-size: 2em;
	line-height: 2em;
	margin-top: 30px;
}

.vision_txt p {
	line-height: 3em;
}

.photos_bottom {
	width: 100%;
	margin: calc(80 / 640 * 100vw) auto;
	margin-left: 30px;
	--g: calc(20 / 640 * 100vw);
	--col: calc((100% - var(--g)) / 2);
	--s: 1.25; /* ←拡大率：1.20=20%拡大。余白が残る場合は1.25などに */
	gap: var(--g);
}

.photos_bottom > * {
	flex: 0 0 var(--col);
}

.photos_bottom img {
	width: 100%;
	height: auto;
	display: block;
}

.vision_tb03 {
	max-width: min(calc(var(--s) * 46 / 100 * 100vw), var(--col));
}

.vision_tb04 {
	max-width: min(calc(var(--s) * 28 / 100 * 100vw), var(--col));
}

.vision_tb07 {
	max-width: min(calc(var(--s) * 28 / 100 * 100vw), var(--col));
}

.vision_tb06 {
	max-width: min(calc(var(--s) * 22 / 100 * 100vw), var(--col));
}

.vision_tb05 {
	max-width: calc(var(--s) * 40 / 100 * 100%);
}

.presidents_card {
	width: 95%;
	margin: 0 2.5% 60px;
}

/* 沿革-640 */

.history_wrap {
	padding: 60px 0 0 5px;
}

.history_photo {
	width: 80%;
	margin: 0 0 50px auto;
}

.flow > li dl dt {
	font-size: 2.5em;
}

.flow > li dl dd {
	font-size: 0.95em;
	line-height: 2em;
	margin: 1em 0 0;
}



/* Company-640 */

table.company {
	font-size: 0.95em;
	line-height: 1.8em;
}

.company th, .company td {
	display: block;
	width: 100%;
	max-width: none;
}

.company th {
	padding: 0.3em 1em;
}

.company td {
	padding: 1em 1em 1.5em;
}

.group_wrap {
	padding: 2em 1em;
	width: 100%;
}


/* 採用情報-640 */
.subtitle_03 {
font-size: 2em;
margin-top: 20px;
margin-bottom: 20px;
}

.subtitle_03_txt {
	display: none;
}

#slide_sub1 .swiper {
 width: 96%;
 margin-bottom: -30px;
}

#slide_sub1 .swiper::before {
    top: 15px;
    left: -15px;
    width: 15px;
}

#slide_sub1 .swiper::after {
    left: -15px;
    bottom: -15px;
    width: calc(100% + 15px);
    height: 15px;
 }
 
.aboutus_txt {
font-size: 1rem;
text-align: left;
}

.sub_main_h2_3 {
font-size: 1.5rem;
}

.main_wrap_vision::before {
border-top: 55px solid var(--bg-lightgray);
border-right: 70px solid transparent;
}

.recruit_vision_txt {
font-size: 2rem;
line-height: 1.6;
margin: 10px 0 20px;
}
    
.individual_data {
	width: 95%;
	margin: 0 auto;
	padding: 2em 0;
	border-right: none;
}

.bottom_line_02 {
	border-bottom: thin solid #bbb;
}

.scroll-infinity__item {
	width: calc(100vw / 2);
}

.bg-red-wrap {
	padding: 2em 1em;
}

.environment_bg {
	margin: -70px 0 0;
}

.interview_list {
    width: 95%;
	margin: 0 auto 30px;
	padding: 1.5rem 1rem 2rem;
}

.environment_wrap img {
margin: 30px 0 0;
padding-right: 15px;
	padding-left: 15px;
}

.environment_card {
	margin: 0 2.5% 30px;
	width: 95%;
}

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

.support_flex .title {
	flex: 0 0 30px;
}

.support_flex > * {
	box-sizing: border-box;
	width: 100%;
	flex: 0 0 auto;
	margin: 0 0 16px;
	min-width: 0;
}

.support_flex > *:last-child {
	margin-bottom: 0;
}

.card-flex .two-tone-card {
	flex: 0 0 100%;
	min-width: 0;
	margin: 0 0 10px;
}

.subpage_h2_ni {
	font-size: 2.8rem;
}

.job_table th, .job_table td {
	display: block;
	width: 100%;
	max-width: none;
}

.job_table th {
	padding: 0.5em 1em;
}

.job_table td {
	padding: 0.5em 1em 1em;
	border-bottom: 5px solid #ddd;
}

.flow-container {
	padding: 0;
}

.flow-step {
	padding: 0;
}

.step-content {
	padding: 20px;
}

.step-content p {
	font-size: 1em;
}

.bg_photo {
	object-position: 60% bottom;
}

.interview_mg {
	margin: -70px auto auto;
}

.interview_frame {
padding: 50px 1rem;
}
    
.interview_title {
width: 100%;
flex-direction: column;
align-items: flex-start;
}

.interview_title .title {
    font-size: 1.4em;
    margin: 5px 0 0;
}
    
.interview_name {
width: 100%;
margin-top: 15px;
}

.interview_photo {
    box-shadow: 10px 10px 0 #c40000;
    margin: 20px 0 40px;
}

.point_ul li {
width: 100%;
margin: 0 0 20px;
}

.point_ul li .number {
    width: 65px;
}

.job_wrap {
    background-color: #eeeff1;
    margin: 15px 0 30px;
    padding: 2rem 1rem;
}

.interview_list_02 {
    width: 95%;
	margin: 0 auto 30px;
    padding: 1.2rem 1rem 2.5rem;
}

.recruit_vision_lead {
    font-size: 1rem;
    line-height: 1.8;
    margin: 40px 0 30px;
}

.p-font-2 {
    font-size: 0.95em;
}

/* サステナビリティ-640 */

.bg-fff-wrap {
	padding: 2em 1em;
}

/* パンくず-640 */

.breadcrumb-nav {
	padding: 0 20px 20px 15px;
}

/* フローティングバナー-640 */
.floating-banner {
font-size: 1.1rem;
width: 130px;
height: 40px;
}

/* hidden-640 */

.hidden_pc {
	display: block;
}

.hidden_sp {
	display: none;
}
}

