@charset "utf-8";
/*------------------------------------------------------------
	デフォルトスタイル
------------------------------------------------------------*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, figcaption, figure, section, footer, header, main, hgroup, menu, nav, summary {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	outline: 0;
	font-size: 1em;
	box-sizing: border-box;
}
html {
	font-size: 62.5%;
}
@media all and (min-width: 897px) and (max-width: 1099px) {
	html {
		font-size: calc(1000vw / 1100);
	}
}
@media all and (max-width: 374px) {
	html {
		font-size: calc(1000vw / 375);
	}
}
body, table, input, textarea, select, option {
	font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', Meiryo, メイリオ, Osaka, 'MS PGothic', arial, helvetica, sans-serif;
}
article, aside, canvas, details, figcaption, figure, footer, header, main, hgroup, menu, nav, section, summary {
	display: block;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
chrome_annotation {
	border: none !important;
}
:focus {
	outline: 0;
}
ins {
	text-decoration: none;
}
del {
	text-decoration: line-through;
}
img {
	vertical-align: top;
	max-width: 100%;
	height: auto;
}
address {
	font-style: normal;
}
a,
a:link {
	color: inherit;
	text-decoration: none;
	transition: 0.3s;
}
a:visited {
	color: inherit;
}
a:hover {
	color: inherit;
}
a:active {
	color: inherit;
}
/*------------------------------------------------------------
	レイアウト
------------------------------------------------------------*/
body {
	color: #000;
	font-size: 1.4rem;
	line-height: 1.5;
	text-size-adjust: none;
	-webkit-text-size-adjust: none;
	font-feature-settings: "palt";
	background-color: #FFF;
}
body.fixed {
	position: fixed;
	width: 100%;
	height: 100%;
}
#container {
	position: relative;
	text-align: left;
	overflow: hidden;
}
a[href^="tel:"] {
	cursor: default;
	pointer-events: none;
}
@media all and (min-width: 897px) {
	body.fixed {
		overflow-y: scroll;
	}
	.sp {
		display: none !important;
	}
}
@media all and (max-width: 896px) {
	a[href^="tel:"] {
		cursor: pointer;
		pointer-events: auto;
	}
	a:hover,
	a:hover img {
		opacity: 1 !important;
	}
	.pc {
		display: none !important;
	}
}
/*------------------------------------------------------------
	ヘッダー
------------------------------------------------------------*/
#gHeader {
	position: relative;
	z-index: 100;
}
#gHeader h1 {
	width: 35.1rem;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 200;
}
#gHeader h1 a {
	padding: 1.6rem 3.5rem 1.2rem 4.5rem;
	display: block;
	text-align: center;
	box-shadow: 0rem 0rem 0.4rem rgba(35, 24, 21, 0.85);
	border-radius: 0 0 3.5rem 0;
	background: #0384CC;
}
#gHeader h1 a img {
	width: 26.4rem;
}
.menu {
	width: 7.8rem;
	height: 7.6rem;
	position: absolute;
	right: 0;
	top: 0;
	color: #fff;
	background: #000;
	border-radius: 0 0 0 3.5rem;
	box-shadow: 0 0 0.4rem rgba(35, 24, 21, 0.85);
	cursor: pointer;
	transition: opacity 0.3s;
	z-index: 200;
}
.menu:hover {
	opacity: 0.7;
}
.menu span {
	width: 2.7rem;
	height: auto;
	position: absolute;
	left: 2.8rem;
	top: 1.9rem;
	box-sizing: border-box;
	border-top: 0.2rem solid #fff;
	transition: 0.3s;
}
.menu span:nth-child(2) {
	top: 2.7rem;
}
.menu span:nth-child(3) {
	top: 3.5rem;
}
.menu.on span:nth-child(1) {
	transform: translate(0, 0.8rem) rotate(45deg);
}
.menu.on span:nth-child(2) {
	opacity: 0;
}
.menu.on span:nth-child(3) {
	transform: translate(0, -0.8rem) rotate(-45deg);
}
.menu::after {
	margin-left: 0.2rem;
	width: 3.2rem;
	position: absolute;
	left: 50%;
	bottom: 2.3rem;
	font-size: 0;
	color: transparent;
	background: url(../img/index/menu_img.png) no-repeat center center / 100%;
	transform: translateX(-50%);
	content: 'MENU';
	aspect-ratio: 32/9;
}
.menuBox {
	width: 100%;
	height: 100%;
	position: fixed;
	left: 0;
	top: 0;
	color: #fff;
	background: #000;
	overflow-y: auto;
	z-index: 100;
	display: none;
}
.menuBox .menuInner {
	margin: 0 auto;
	padding: 15rem 0;
	max-width: 50rem;
}
.menuBox .comNaviList {
	flex-direction: column;
	border-top: 0.1rem solid #fff;
}
.menuBox .comNaviList li {
	border-bottom: 0.1rem solid #fff;
}
.menuBox .comNaviList li a {
	padding: 1.5rem;
	font-size: 1.6rem;
}
.menuBox .comNaviList li a .en {
	font-size: 1.4rem;
}
@media all and (max-width: 896px) {
	#gHeader h1 {
		width: 18rem;
	}
	#gHeader h1 a {
		padding: 0.8rem 1.5rem;
		border-radius: 0 0 2rem 0;
	}
	.menu {
		width: 4.5rem;
		height: 4.5rem;
		border-radius: 0 0 0 2rem;
	}
	.menu:hover {
		opacity: 1;
	}
	.menu span {
		width: 1.8rem;
		left: 1.6rem;
		top: 1rem;
		border-top-width: 0.1rem;
	}
	.menu span:nth-child(2) {
		top: 1.6rem;
	}
	.menu span:nth-child(3) {
		top: 2.2rem;
	}
	.menu::after {
		width: 2.4rem;
		bottom: 0.9rem;
	}
	.menu.on span:nth-child(1) {
		transform: translate(0, 0.6rem) rotate(45deg);
	}
	.menu.on span:nth-child(3) {
		transform: translate(0, -0.6rem) rotate(-45deg);
	}
	.menuBox .menuInner {
		padding: 7rem 2rem;
		max-width: initial;
	}
	.menuBox .comNaviList li a {
		padding: 1rem;
		font-size: 1.4rem;
	}
	.menuBox .comNaviList li a .en {
		font-size: 1rem;
	}
}
/*------------------------------------------------------------
	フッター
------------------------------------------------------------*/
#gFooter {
	padding: 0.1rem 2rem 0.5rem;
	color: #FFF;
	font-size: 1rem;
	background-color: #00275d;
}
#gFooter .linkList {
	position: relative;
	z-index: 10;
}
#gFooter .linkList a {
	display: block;
}
#gFooter .linkList a:hover,
#gFooter .fLink a:hover {
	opacity: 0.7;
}
#gFooter .fBox p {
	margin: 1.2rem -0.5rem 0;
	line-height: 1.75;
}
#gFooter .fBox .fLink {
	margin: -3.2rem -2.1rem 0 0;
	width: 18.4rem;
}
#gFooter .comNaviList {
	margin: 0 1rem 0 auto;
}
#gFooter .comNaviList li {
	padding: 0 1.3rem;
}
#gFooter .comNaviList li:not(:last-child)::after {
	background: #FFF;
	height: 80%;
}
#gFooter .comNaviList li a .en {
	margin-top: 0;
	color: #b0b0b0;
	letter-spacing: 0;
}
#gFooter address {
	text-align: center;
}
@media all and (min-width: 897px) {
	#gFooter .fInner {
		margin: 0 auto;
		max-width: 90rem;
	}
	#gFooter .linkList {
		margin: -2.4rem 0 4rem;
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
		gap: 1rem;
	}
	#gFooter .linkList li {
		width: 43.3rem;
	}
	#gFooter .linkList .tel {
		margin-right: -1.5rem;
		width: 44.5rem;
	}
	#gFooter .fBox {
		margin-bottom: 5.8rem;
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
	}
	#gFooter .fBox .textBox {
		width: 25.8rem;
	}
}
@media all and (max-width: 896px) {
	#gFooter .linkList {
		margin: -2rem auto 3rem;
		max-width: 28rem;
		display: block;
	}
	#gFooter .linkList .tel {
		margin-right: -1%;
	}
	#gFooter .comNaviList {
		display: none;
	}
	#gFooter .fBox {
		margin-bottom: 3rem;
		text-align: center;
	}
	#gFooter .logo img {
		width: 25.8rem;
	}
}
/*------------------------------------------------------------
	汎用スタイル
------------------------------------------------------------*/
/* 81-YH */
/* clearfix */
.clearfix::after {
	content: '';
	display: block;
	clear: both;
}
/* flex */
.flex, .flexA, .flexB, .flexC {
	display: flex;
	flex-wrap: wrap;
}
.flexA {
	justify-content: space-around;
}
.flexB {
	justify-content: space-between;
}
.flexC {
	justify-content: center;
}
/*------------------------------------------------------------
	comNaviList
------------------------------------------------------------*/
.comNaviList {
	display: flex;
	justify-content: flex-end;
}
.comNaviList li {
	padding: 0 2.2rem;
	position: relative;
}
.comNaviList li:not(:last-child)::after {
	width: 0.1rem;
	height: 2rem;
	position: absolute;
	right: 0;
	top: 50%;
	background: #000;
	transform: translateY(-50%);
	content: '';
}
.comNaviList li a {
	display: block;
	text-align: center;
	font-size: 1.4rem;
	font-weight: bold;
	letter-spacing: 0.06em;
	position: relative;
	z-index: 1;
}
.comNaviList li a:hover {
	opacity: 0.7;
}
.comNaviList li a .en {
	margin-top: 0.3rem;
	display: block;
	font-size: 1rem;
}
/*------------------------------------------------------------
	index
------------------------------------------------------------*/
#gNavi {
	margin: 0 auto;
	padding: 2.3rem 0 3.5rem;
	width: 88%;
	max-width: 96.8rem;
}
#main .mainVisual {
	position: relative;
}
#main .mainVisual .mainImg img {
	width: 100%;
}
#main .mainVisual .photo {
	width: 21.636%;
	position: absolute;
	right: 3.55%;
	bottom: 4.2%;
}
#main .mainVisual .photo img {
	width: 100%;
}
#main .mainVisual .imgtext {
	width: 44.4rem;
	position: absolute;
	left: 3.5rem;
	bottom: -16.7rem;
}
#main .sideBtn {
	width: 28.9rem;
	position: absolute;
	right: 0;
	top: 10.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
}
#main .sideBtn a {
	padding: 1.7rem 2rem 1.6rem;
	display: block;
	position: relative;
	background: #0B308E;
	border-radius: 2rem 0 0 2rem;
}
#main .sideBtn a:hover {
	opacity: 0.7;
}
#main .sideBtn a img {
	width: 18.8rem;
}
#main .sideBtn a .image {
	position: absolute;
	z-index: 1;
}
#main .sideBtn .btn01 .image {
	width: 8.1rem;
	left: -4.9rem;
	top: -4.1rem;
}
#main .sideBtn .btn02 {
	background: #FF2200;
	z-index: 1;
}
#main .sideBtn .btn02 .image {
	width: 9.7rem;
	right: -0.6rem;
	top: -2.3rem;
}
#main .mainBox {
	background: linear-gradient(#F1F1F1, #F1F1F1) no-repeat left top / 100% 40.5rem;
}
#main .content {
	margin: 0 auto;
	padding: 0 5rem;
	max-width: 110rem;
	position: relative;
}
#main .img01 {
	width: 8.7rem;
	position: absolute;
	right: 2.8rem;
	top: -2.2rem;
}
#main .movieBox {
	margin: 0 -2rem 0 -1.5rem;
	position: relative;
}
#main .movieBox .movie {
	position: relative;
}
#main .movieBox .movie img {
	width: 100%;
}
#main .movieBox .movie iframe {
	width: 71.8%;
	height: auto;
	position: absolute;
	left: 1%;
	top: 14.6%;
	background: #000;
	aspect-ratio: 744/312;
	clip-path: polygon(0 0.5rem, 100% 0, 100% calc(100% - 0.7rem), 0.3rem 100%);
}
#main .movieBox .imgtext {
	margin: -7.7rem -0.3rem 0 0;
	text-align: right;
}
#main .movieBox .imgtext img {
	width: 83.1rem;
}
#main .company {
	margin: -4.4rem -1.7rem 2.6rem -3rem;
}
#main .company .image {
	position: relative;
}
#main .company .image img {
	width: 100%;
}
#main .company .image .num {
	position: absolute;
	font-size: 11.4rem;
	font-weight: 400;
	font-family: "Bebas Neue", sans-serif;
	color: #fd8b3a;
	line-height: 1;
}
#main .company .image .num01 {
	left: 10%;
	top: 25%;
}
#main .company .image .num02 {
	left: 27.5%;
	top: 25%;
}
#main .company .image .num03 {
	left: 59.5%;
	top: 17.8%;
	font-size: 12.8rem;
}
#main .company .image .num04 {
	left: 14.7%;
	top: 46.6%;
	font-size: 14rem;
	letter-spacing: 0.1em;
}
#main .company .image .num05 {
	top: 63.5%;
	left: 15.4%;
	font-size: 11rem;
}
#main .company .image .num06 {
	top: 64.75%;
	left: 72%;
	font-size: 13rem;
}
#main .company h2 {
	margin-left: 0.6rem;
	width: 28.69%;
	position: absolute;
	left: 50%;
	top: 60.73%;
	transform: translateX(-50%);
}
#main .company .textList {
	margin: -19.2rem auto 0;
	width: 38.5%;
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: 1.2rem 0;
	transform: translateX(13.57%);
}
#main .company .textList::before {
	width: 1px;
	height: 100%;
	position: absolute;
	left: 6.8rem;
	top: 0;
	background: #1970EF;
	content: '';
}
#main .company .textList::after {
	width: 10px;
	height: 10px;
	position: absolute;
	left: 6.3rem;
	top: -0.4rem;
	border-radius: 100%;
	background: #1970EF;
	content: '';
}
#main .company .textList dt {
	width: 8.7rem;
	font-weight: bold;
	letter-spacing: 0.03em;
	line-height: 1.6;
}
#main .company .textList dd {
	width: calc(100% - 8.7rem);
	font-weight: bold;
	line-height: 1.6;
	letter-spacing: 0.05em;
}
#main .headLine01 {
	margin-bottom: 3.7rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.3rem;
	font-size: 2.1rem;
	font-weight: 500;
	letter-spacing: 0.05em;
}
#main .headLine01 .en {
	display: block;
}
#main .headLine01 .en img {
	width: auto;
	height: 5.5rem;
}
#main .network {
	margin: 0 auto;
	max-width: 110rem;
	position: relative;
}
#main .network img {
	width: 100%;
}
#main .network .ttlBox {
	position: absolute;
	left: 6.45%;
	top: 5.6%;
	z-index: 2;
}
#main .network .ttlBox .headLine01 {
	margin-bottom: 1rem;
	gap: 1.7rem;
	flex-direction: row;
	align-items: flex-end;
}
#main .network .ttlBox .headLine01 .en {
	margin-bottom: 0.4rem;
}
#main .network .ttlBox p {
	margin-left: 0.4rem;
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1.74;
	letter-spacing: 0.03em;
}
#main .network .mapBox {
	position: relative;
}
#main .network .photo {
	position: relative;
}
#main .network .mapBox .img {
	position: absolute;
}
#main .network .mapBox .img01 {
	width: 13.3%;
	left: 49.32%;
	top: 3.4%;
}
#main .network .mapBox .img02 {
	width: 31.3%;
	top: 4%;
	left: 65.9%;
}
#main .network .mapBox .img03 {
	width: 9.45%;
	left: 8.7%;
	top: 28.4%;
}
#main .network .mapBox .img04 {
	width: 9.91%;
	left: 1.91%;
	top: 52.3%;
}
#main .network .mapBox .img05 {
	width: 11%;
	left: 47.82%;
	top: 19.35%;
}
#main .network .mapBox .img06 {
	width: 10.09%;
	left: 65.09%;
	top: 30.06%;
}
#main .network .mapBox .img07 {
	width: 8.73%;
	left: 28.09%;
	top: 54.89%;
}
#main .network .mapBox .img08 {
	width: 9.82%;
	left: 53.09%;
	top: 68.56%;
}
#main .network .mapBox .img09 {
	width: 10.09%;
	left: 86.18%;
	top: 80.55%;
}
#main .network .linkList {
	display: block;
}
#main .network .linkList li {
	width: 1.636%;
	position: absolute;
	transform: translate(-50%, -50%);
	aspect-ratio: 18/28;
	z-index: 10;
}
#main .network .linkList li a {
	width: 100%;
	height: 100%;
	display: block;
}
#main .network .linkList .link09 {
	left: 54.2%;
	top: 59.9%;
}
#main .network .linkList .link14 {
	left: 35.5%;
	top: 70%;
}
#main .network .linkList .link15 {
	left: 36.5%;
	top: 72%;
}
#main .network .linkList .link16 {
	left: 39.2%;
	top: 70.2%;
}
#main .network .linkList .link26 {
	left: 56.3%;
	top: 61%;
}
#main .network .linkList .link25 {
	left: 59.7%;
	top: 62%;
}
#main .network .linkList .link27 {
	left: 60.5%;
	top: 49.8%;
}
#main .network .linkList .link28 {
	left: 62%;
	top: 48.4%;
}
#main .network .linkList .link29 {
	left: 63.4%;
	top: 47.1%;
}
#main .network .tblBox {
	padding: 0.6rem;
	position: absolute;
	left: 3%;
	bottom: 2.8%;
	width: 63.4%;
	background: #fff;
	border-radius: 1rem;
	border: 0.4rem solid rgba(63, 86, 158, 0.97);
	z-index: 1;
}
#main .network .tblBox table {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
	border: 0.1rem solid #5583CE;
}
#main .network .tblBox th,
#main .network .tblBox td {
	position: relative;
	vertical-align: middle;
	text-align: left;
	font-size: 1.1rem;
	line-height: 1.45;
	font-weight: normal;
	box-sizing: border-box;
}
#main .network .tblBox .col01 {
	width: 23.5%;
}
#main .network .tblBox .col02 {
	width: 39.6%;
}
#main .network .tblBox .col03 {
	width: 22%;
}
#main .network .tblBox thead th {
	padding: 0.9rem;
	text-align: center;
	font-weight: bold;
	letter-spacing: 0.08em;
	color: #fff;
	border-right: 0.1rem solid #AFD3F8;
	background-color: #5583CE;
}
#main .network .tblBox thead th:last-child {
	border-right: none;
}
#main .network .tblBox tbody th {
	padding: 0.5rem 1.2rem;
	font-size: 1.1rem;
	border-right: 0.1rem dotted #D9D9D9;
	background-color: #F5F5F5;
}
#main .network .tblBox tbody td {
	padding: 0.4rem 0.9rem;
	line-height: 1.83;
	letter-spacing: 0;
	border-right: 0.1rem dotted #D9D9D9;
}
#main .network .tblBox tbody td:last-child {
	border-right: none;
}
#main .network .tblBox tbody .tdStyle01 {
	text-align: center;
	letter-spacing: 0rem;
	border-bottom: 0.1rem solid #D9D9D9;
	background-color: #F4F9FD !important;
}
#main .network .tblBox tbody td .address {
	padding-right: 7.5rem;
	position: relative;
}
#main .network .tblBox tbody td .address .mapBtn {
	padding: 0.3rem 0.1rem 0.2rem;
	width: 5.4rem;
	box-sizing: border-box;
	position: absolute;
	right: 1rem;
	top: 50%;
	line-height: 1.4;
	transform: translateY(-50%);
	text-align: center;
	color: #fff;
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-decoration: none;
	border-radius: 0.2rem;
	background-color: #73A1DC;
}
#main .network .tblBox tbody td .address .mapBtn:hover {
	opacity: 0.7;
}
#main .customer {
	padding: 4.9rem 0 12.2rem;
}
#main .customer .sliderList {
	margin-bottom: 5.9rem;
	display: flex;
}
#main .customer .sliderList li {
	margin-right: 2rem;
	width: 27.7rem;
	flex-shrink: 0;
}
#main .customer .sliderList li img {
	width: 100%;
	border-radius: 1.2rem;
}
#main .customer p {
	text-align: center;
	font-size: 1.6rem;
	font-weight: bold;
	color: #1970EF;
	line-height: 2.1875;
	letter-spacing: 0.05em;
	position: relative;
	z-index: 1;
}
#main .customer .img01,
#main .customer .img02 {
	position: absolute;
}
#main .customer .img01 {
	width: 31.7rem;
	left: 1.2rem;
	top: -8.3rem;
}
#main .customer .img02 {
	width: 37.9rem;
	right: -1.1rem;
	top: -6.6rem;
}
#main .info {
	margin-bottom: 5.3rem;
}
#main .info .bg01,
#main .info .bg02 {
	position: absolute;
	z-index: -1;
}
#main .info .bg01 {
	width: 31.8rem;
	left: -4.4rem;
	top: -7.8rem;
}
#main .info .bg02 {
	width: 31rem;
	right: -1.9rem;
	top: -7.7rem;
}
#main .info .headLine01 {
	margin-bottom: 2.8rem;
}
#main .info .linkList {
	margin: 0 auto;
	max-width: 92.2rem;
	display: flex;
	justify-content: space-between;
	gap: 1.6rem 0;
	flex-wrap: wrap;
}
#main .info .linkList li {
	width: 49%;
}
#main .info .linkList li a {
	padding: 1.5rem 2rem 1.2rem;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	color: #1970EF;
	font-weight: bold;
	font-size: 1.5rem;
	border-radius: 1.2rem;
	background: #FFE200 url(../img/index/icon01.png) no-repeat right 2.1rem center / 0.8rem;
}
#main .info .linkList li a:hover {
	opacity: 0.7;
}
#main .news {
	padding: 10.2rem 0 12.4rem;
	position: relative;
	color: #fff;
	background: #0B308E;
}
#main .news .imgtext01,
#main .news .imgtext02 {
	margin-left: 33.4rem;
	position: absolute;
	width: 178.8rem;
	position: absolute;
	left: 50%;
	top: 4.4rem;
	transform: translateX(-50%);
}
#main .news .imgtext02 {
	top: auto;
	bottom: 7.4rem;
	margin-left: -6.8rem;
}
#main .news .bgImg {
	width: 24rem;
	position: absolute;
	left: -0.4rem;
	top: 5.9rem;
	z-index: 1;
}
#main .news .content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
	z-index: 1;
}
#main .news .ttlBox {
	margin-top: 6.9rem;
	padding: 0 2rem 0 1rem;
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
#main .news .ttlBox .headLine01 {
	margin-bottom: 3.4rem;
}
#main .news .ttlBox .headLine01 .en img {
	height: 6.3rem;
}
#main .news .ttlBox .moreBtn a {
	padding: 0.8rem 0.8rem 0.7rem 0.5rem;
	width: 14.5rem;
	max-width: 100%;
	display: block;
	position: relative;
	text-align: center;
	color: #fff;
	border-radius: 5rem;
	border: 0.1rem solid #1970EF;
	background: url(../img/index/icon02.png) no-repeat right 1.2rem top 55% / 1.2rem;
}
#main .news .ttlBox .moreBtn a:hover {
	opacity: 0.7;
}
#main .news .listBox {
	margin-right: -0.1rem;
	padding: 4.5rem 2.9rem 3.7rem;
	width: 67%;
	color: #000;
	background: #fff;
	border-radius: 2.1rem;
}
#main .news .listBox ul {
	display: flex;
	flex-direction: column;
	gap: 3.8rem 0;
}
#main .news .listBox ul li {
	width: 100%;
	display: flex;
	align-items: flex-start;
}
#main .news .listBox ul li .post-img {
	width: 15.2%;
	border-radius: 100%;
	overflow: hidden;
	aspect-ratio: 1;
}
#main .news .listBox ul li .post-img img {
	width: 100%;
	object-fit: cover;
	aspect-ratio: 1;
}
#main .news .listBox ul li .post-date {
	margin-left: 2rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	flex: 1;
}
#main .news .listBox ul li .post-date div {
	width: 100%;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	align-content: flex-start;
	gap: 1rem;
}
#main .news .listBox ul li .post-date time {
	display: block;
	font-weight: bold;
	font-size: 1.4rem;
}
#main .news .listBox ul li .post-date .tag {
	padding: 0.2rem 0.3rem 0.3rem;
	width: 9.4rem;
	text-align: center;
	color: #fff;
	background: #2E4FA1;
}
#main .news .listBox ul li .post-date .post-title {
	padding: 2.9rem 2rem;
	font-size: 1.4rem;
	border-radius: 1.7rem;
	background: #F3F3F3;
}
#main .news .listBox ul li .clearfix::after {
	display: none !important;
}
#main .news .listBox ul li a:hover {
	opacity: 0.7;
}
#main .sns {
	padding: 6rem 0 1.5rem;
	position: relative;
	background: url(../img/index/sns_bg.png) no-repeat center top / 140rem;
}
#main .sns .img01 {
	position: absolute;
	left: -0.6rem;
	top: 0;
	width: 34rem;
}
#main .sns h2 {
	margin: 0 0 4.4rem 7.4rem;
	text-align: center;
	position: relative;
	z-index: 2;
}
#main .sns h2 img {
	width: 50.5rem;
}
#main .sns .img02 {
	width: 29.6rem;
	position: absolute;
	right: 1.6rem;
	top: -8.7rem;
}
#main .sns .innerBox {
	padding: 4.1rem 6rem;
	position: relative;
	border-radius: 2.4rem;
	background: rgba(255, 255, 255, 0.86);
	z-index: 1;
}
#main .sns .snsList {
	margin-bottom: 2.2rem;
	display: flex;
	flex-wrap: wrap;
	gap: 3.5rem 1.25%;
}
#main .sns .snsList li {
	width: 23.1%;
	width: 19%;
}
#main .sns .snsList li a {
	display: block;
}
#main .sns .snsList li a:hover {
	opacity: 0.7;
}
#main .sns .btn {
	margin: 0 auto;
	width: 28.5rem;
}
#main .sns .btn a {
	display: block;
}
#main .sns .btn a:hover {
	opacity: 0.7;
}
#main .recruit {
	padding: 2.2rem 1rem 3.8rem;
	text-align: center;
	background: url(../img/index/recruit_bg.jpg) no-repeat center center / cover;
}
#main .recruit h2 img {
	max-width: 106.5rem;
	width: 100%;
}
#main .recruit .image {
	margin: -8rem 0 1rem;
}
#main .recruit .image img {
	max-width: 95rem;
	width: 100%;
}
#main .recruit .linkList {
	display: flex;
	justify-content: center;
	gap: 2.5rem;
}
#main .recruit .linkList a {
	padding: 1.7rem 2rem;
	display: block;
	position: relative;
	width: 27.3rem;
	color: #FFF;
	font-size: 3.12rem;
	line-height: 1;
	font-weight: bold;
	text-align: left;
	background: #0b308e url(../img/index/arrow.png) no-repeat right 1.7rem center / 9.9rem;
	border-radius: 1rem;
}
#main .recruit .linkList .new a {
	background-color: #ff2200;
}
#main .recruit .linkList a:hover {
	opacity: 0.7;
}
#main .recruit .linkList a::before {
	position: absolute;
	left: 0.5rem;
	top: 0.5rem;
	right: 0.5rem;
	bottom: 0.5rem;
	content: '';
	border: 0.1rem solid #FFF;
	border-radius: 0.8rem;
}
#main .recruit .linkList small {
	margin-bottom: 0.2rem;
	display: block;
	font-size: 1.83rem;
}
@media all and (max-width: 896px) {
	#gNavi {
		display: none;
	}
	#main .mainVisual .mainImg img {
		aspect-ratio: 1;
		object-fit: cover;
	}
	#main .mainVisual .photo {
		width: 30%;
	}
	#main .mainVisual .imgtext {
		width: 45%;
		max-width: 30rem;
		left: 2rem;
		bottom: -6.5rem;
	}
	#main .sideBtn {
		display: none;
	}
	#main .mainBox {
		padding-top: 5rem;
		background-size: 100% 40vw;
	}
	#main .content {
		padding: 0 2rem;
		max-width: initial !important;
		position: relative;
	}
	#main .img01 {
		width: 5rem;
		right: 1rem;
		top: -4.4rem;
	}
	#main .movieBox {
		margin: 0 -1rem;
	}
	#main .movieBox .imgtext {
		margin: -6.5% 0 0 auto;
		width: 79%;
	}
	#main .company {
		margin: 0 -0.8rem 5rem -1.3rem;
	}
	#main .company .image .num {
		font-size: 8.533vw;
	}
	#main .company .image .num01 {
		left: 10.4%;
		top: 26.8%;
	}
	#main .company .image .num02 {
		left: 27.9%;
		top: 26.8%;
	}
	#main .company .image .num03 {
		left: 60%;
		top: 19%;
		font-size: 10.133vw;
	}
	#main .company .image .num04 {
		left: 16%;
		top: 48%;
		font-size: 10.133vw;
	}
	#main .company .image .num05 {
		top: 64.5%;
		left: 16.4%;
		font-size: 8vw;
	}
	#main .company .image .num06 {
		top: 65.8%;
		left: 72.5%;
		font-size: 10.667vw;
	}
	#main .company h2 {
		margin-left: 0.3rem;
		width: 30%;
		top: 72%;
	}
	#main .company .textList {
		margin: 2rem auto 0;
		padding: 0 1.5rem;
		width: auto;
		max-width: 45rem;
		position: relative;
		display: flex;
		flex-wrap: wrap;
		gap: 1.2rem 0;
		transform: none;
	}
	#main .company .textList::before {
		left: 8.5rem;
	}
	#main .company .textList::after {
		width: 11px;
		height: 11px;
		left: 8rem;
	}
	#main .headLine01 {
		margin-bottom: 1.5rem;
		gap: 1rem;
		font-size: 1.8rem;
	}
	#main .headLine01 .en img {
		height: 3.6rem;
	}
	#main .network .ttlBox {
		margin: 0 2rem 2rem;
		position: relative;
		left: auto;
		top: auto;
	}
	#main .network .ttlBox .headLine01 {
		margin-bottom: 1rem;
		gap: 1rem;
		flex-direction: column;
		align-items: center;
	}
	#main .network .ttlBox .headLine01 .en {
		margin-bottom: 0;
	}
	#main .network .ttlBox p {
		margin-left: 0;
	}
	#main .network .linkList {
		display: none;
	}
	#main .network .tblBox {
		display: none;
	}
	#main .network .btn {
		width: 26rem;
		margin: 3rem auto 0;
	}
	#main .network .btn a {
		padding: 1.3rem;
		display: block;
		text-align: center;
		color: #fff;
		background: #1970EF url(../img/index/icon02.png) no-repeat right 1.5rem center / 1.4rem;
		border-radius: 1rem;
	}
	#main .customer {
		padding-bottom: 6rem;
	}
	#main .customer .photoBox {
		display: flex;
		justify-content: center;
		gap: 3%;
	}
	#main .customer .img01,
	#main .customer .img02 {
		position: relative;
		text-align: center;
	}
	#main .customer .img01 {
		width: 42%;
		left: auto;
		top: auto;
	}
	#main .customer .img02 {
		width: 50%;
		right: auto;
		top: auto;
	}
	#main .info {
		margin-bottom: 5.3rem;
		padding-top: 3rem;
	}
	#main .info .bg01 {
		width: 12rem;
	}
	#main .info .bg02 {
		width: 12rem;
	}
	#main .info .headLine01 {
		margin-bottom: 2rem;
	}
	#main .info .linkList li a {
		padding: 1.2rem 3rem 1.2rem 1.5rem;
		font-size: 1.4rem;
		border-radius: 0.8rem;
		background-position: right 1.5rem center;
	}
	#main .news .imgtext01,
	#main .news .imgtext02 {
		margin-left: 0;
		width: 89.4rem;
		position: absolute;
		top: 3rem;
	}
	#main .news .imgtext02 {
		top: auto;
		bottom: 3rem;
	}
	#main .news .bgImg {
		width: 12rem;
	}
	#main .news .content {
		display: block;
	}
	#main .news .ttlBox {
		margin: 0 0 3rem;
		padding: 0;
	}
	#main .news .ttlBox .headLine01 {
		margin-bottom: 1.5rem;
	}
	#main .news .ttlBox .headLine01 .en img {
		height: 4rem;
	}
	#main .news .listBox {
		margin: 0;
		padding: 3rem 2rem;
		width: auto;
		border-radius: 1.5rem;
	}
	#main .news .listBox ul {
		gap: 2.5rem 0;
	}
	#main .news .listBox ul li .post-img {
		width: 20%;
		max-width: 9rem;
	}
	#main .news .listBox ul li .post-date {
		margin-left: 1.5rem;
	}
	#main .news .listBox ul li .post-date .post-title {
		padding: 1.5rem;
		border-radius: 1rem;
	}
	#main .sns {
		padding: 8rem 0 5rem;
		background-size: 80rem auto;
	}
	#main .sns .img01 {
		width: 15rem;
	}
	#main .sns h2 {
		margin: 0 0 7rem 7.4rem;
	}
	#main .sns h2 img {
		width: 25rem;
	}
	#main .sns .img02 {
		width: 15rem;
		right: 0.5rem;
		top: 5rem;
	}
	#main .sns .innerBox {
		padding: 2rem;
		border-radius: 1.5rem;
	}
	#main .sns .snsList {
		justify-content: space-between;
		gap: 2.5rem 0;
	}
	#main .sns .snsList li {
		width: 48%;
	}
	#main .sns .btn {
		max-width: 100%;
	}
	#main .recruit .image {
		margin: -5vw 0 1rem;
	}
	#main .recruit .linkList {
		gap: 1rem;
	}
	#main .recruit .linkList a {
		padding: 1.5rem;
		width: 15rem;
		font-size: 2rem;
		background-size: 3rem;
		background-position: right 1rem center;
	}
	#main .recruit .linkList small {
		font-size: 1.3rem;
	}
}





















/* === Safe fade/slide for info_img01 & info_img02 (no HTML change) === */
/* JSが走るまで既存レイアウトを壊さないため、body.fx-ready でのみ有効化 */
body.fx-ready img[src$="info_img01.png"],
body.fx-ready img[src$="info_img02.png"] {
  opacity: 0;
  transform: translate3d(var(--tx, 0), var(--ty, 0), 0);
  filter: blur(2px);
  transition:
    opacity .8s ease-out,
    transform .8s ease-out,
    filter .8s ease-out;
  will-change: opacity, transform;
}

/* 右下から（+X, +Y） */
body.fx-ready img[src$="info_img01.png"] { --tx: 40px; --ty: 40px; }

/* 右斜め上から（+X, -Y） */
body.fx-ready img[src$="info_img02.png"] { --tx: 40px; --ty: -40px; }

/* 可視化トリガー */
body.fx-ready img.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: none;
}

/* 動きが苦手な環境配慮 */
@media (prefers-reduced-motion: reduce) {
  body.fx-ready img[src$="info_img01.png"],
  body.fx-ready img[src$="info_img02.png"] {
    transition: none;
    opacity: 1;
    transform: none;
    filter: none;
  }
}


/* ==== NETWORK: 一覧の初期表示＆切替制御（非破壊） ==== */
.network .tblBox .tblItem { display: none; }
.network .tblBox .tblItem:first-of-type { display: block; } /* JS前の初期フォールバック */
.network .tblBox .tblItem.is-active { display: block; }

/* クリック中のリンク見た目（任意） */
.network .linkList a.is-active {
  opacity: .6;
  pointer-events: none;
}
/* ==== CUSTOMER: 横スライダー表示・フォールバック ==== */
.customer .sliderList {
  display: flex;
  gap: 0;
  align-items: center;
  overflow: hidden; /* はみ出しを隠す */
  padding: 0;
  margin: 0;
}
.customer .sliderList > li {
  flex: 0 0 auto; /* 横一列に並べる */
  list-style: none;
}

/* プラグイン未読込時のフォールバック */
.customer .sliderList.marquee-fallback {
  animation: customer-marquee 40s linear infinite;
  will-change: transform;
}
.customer .sliderList.marquee-fallback:hover {
  animation-play-state: paused; /* 任意：ホバーで一時停止 */
}

@keyframes customer-marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); } /* 子要素を複製して幅を2倍にする前提 */
}

















/* === fade/slide + zoom-in + 1 rotation (compat版) === */
body.fx-ready img[src$="info_img01.png"],
body.fx-ready img[src$="info_img02.png"]{
  opacity: 0;
  /* 互換性優先：transform に一本化（translate + scale + rotate） */
  transform: translate3d(var(--tx, 0), var(--ty, 0), 0) scale(var(--scaleFrom, .9)) rotate(0deg);
  /* 個別プロパティ対応ブラウザでも効くように併記（あれば上書きされる） */
  translate: var(--tx, 0) var(--ty, 0);
  scale: var(--scaleFrom, .9);
  rotate: 0deg;

  transform-origin: 50% 50%;
  filter: blur(2px);

  /* ズーム＋移動＋回転を同時にトランジション（＝ズームインが確実に効く） */
  transition:
    opacity var(--dur, .55s) cubic-bezier(.2,.7,.2,1) var(--delay, 0s),
    transform var(--dur, .55s) cubic-bezier(.2,.7,.2,1) var(--delay, 0s),
    filter var(--dur, .55s) cubic-bezier(.2,.7,.2,1) var(--delay, 0s);
  will-change: opacity, transform;
}

/* ①：右下から・速め・ズーム強め */
body.fx-ready img[src$="info_img01.png"]{
  --tx: 100px;
  --ty: 100px;
  --scaleFrom: .85;   /* 小さいほど“ぐっ”と拡大 */
  --dur: .48s;
  --delay: 0s;
}

/* ②：右上から・時間差・ズーム強め */
body.fx-ready img[src$="info_img02.png"]{
  --tx: 120px;
  --ty: -120px;
  --scaleFrom: .82;   /* ①より少し強めのズームイン */
  --dur: .52s;
  --delay: 1.0s;      /* ← ここで時間差を調整 */
}

/* 表示時：最終位置へ & 1回転しながら等倍に（360deg＝見た目は元向き） */
body.fx-ready img.is-visible{
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1) rotate(360deg);
  translate: 0 0;
  scale: 1;
  rotate: 360deg;
  filter: none;
}

@media (prefers-reduced-motion: reduce){
  body.fx-ready img[src$="info_img01.png"],
  body.fx-ready img[src$="info_img02.png"]{
    transition: none;
    opacity: 1;
    transform: none;
    translate: 0 0;
    scale: 1;
    rotate: 0deg;
    filter: none;
  }
}
