@charset "utf-8";

:root {
	--c_bk: #000000;
	--c_wh: #ffffff;
	--c_gy: #F5F5F5;
	--c_dg: #5a5a5a;
	--c_bl: #185AA5;
	--c_aq: #00B2DB;
	--c_ye: #FFBD3B;
	--c_gr: #A8C636;
}

body.active {
	overflow: hidden;
}

.clr-bk {
	color: var(--c_bk) !important;
}

.clr-wh {
	color: var(--c_wh) !important;
}

.clr-gy {
	color: var(--c_gy) !important;
}

.clr-bl {
	color: var(--c_bl) !important;
}

.clr-aq {
	color: var(--c_aq) !important;
}

.clr-ye {
	color: var(--c_ye) !important;
}

.clr-gr {
	color: var(--c_gr) !important;
}

.bg-bk {
	background-color: var(--c_bk) !important;
}

.bg-wh {
	background-color: var(--c_wh) !important;
}

.bg-gy {
	background-color: var(--c_gy) !important;
}

.bg-bl {
	background-color: var(--c_bl) !important;
}

.bg-aq {
	background-color: var(--c_aq) !important;
}

.bg-ye {
	background-color: var(--c_ye) !important;
}

.bg-gr {
	background-color: var(--c_gr) !important;
}

.eng {
	font-family: "roboto", sans-serif;
	font-weight: 400;
	font-style: normal;
	line-height: 1;
}

.c-secTtl {
	text-align: left;
	margin-bottom: 5rem;
}

.c-secTtl h2 {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 1.8rem;
	font-weight: 450;
	letter-spacing: 0.1em;
}

.c-secTtl h2::before {
	content: "";
	display: block;
	background: url(../img/icon_mark.svg) center center no-repeat;
	background-size: contain;
	width: 3rem;
	aspect-ratio: 10/7;
}

.c-secTtl .eng {
	font-size: 7.2rem;
	font-weight: 400;
}

.c-secTtl .txt {
	font-weight: 320;
	letter-spacing: 0.05em;
	margin-top: 0.4rem;
}

.c-more {
	margin-top: 6rem;
	text-align: left;
}

.c-more a {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	border-radius: .5rem;
	background: var(--c_bl);
	color: #fff;
	padding: 1rem 2rem;
	font-size: 1.4rem;
}

.c-more a::after {
	content: "";
	display: block;
	background: rgba(255, 255, 255, .2) url(../img/arrow_wh.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1;
	width: 2.1rem;
}

.c-more._wh a {
	background-color: rgba(255, 255, 255, 0.20);
}

.c-more._wh a::after {
	background-color: rgba(255, 255, 255, 1);
	background-image: url(../img/arrow_bl.svg);
}

.c-more a:hover {
	background-color: var(--c_bk);
}

.c-more a:hover:after {
	background-color: var(--c_dg);
	background-image: url(../img/arrow_wh.svg);
}

.c-contsTtl {
	text-align: left;
	margin-bottom: 5rem;
}

.c-contsTtl._wh {
	color: #fff;
}

.c-contsTtl .eng {
	position: relative;
	display: flex;
	align-items: center;
	font-size: 1.6rem;
	letter-spacing: 0.04em;
	gap: 0.6rem;
}

.c-contsTtl .eng::before {
	content: '';
	display: block;
	width: 1.3rem;
	height: 1.3rem;
	border-radius: 50%;
	background-color: var(--c_aq);
}

.c-contsTtl h2 {
	font-size: 4.2rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

/*header
---------------------------------------------------------*/
#index .l-header {
	visibility: hidden;
	opacity: 0;
}

.l-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 990;
	text-align: left;
	transition: .2s;
}

.l-header.scrl {
	background: #fff;
	box-shadow: 0 0 .5rem rgba(0, 0, 0, .05);
}

.l-header__wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem 2rem;
	padding: 1.5rem 2rem;
}

.l-header__logo .txt {
	font-size: 1.2rem;
	margin-bottom: 1.5rem;
}

.l-header__logo .logo {
	width: 20.8rem;
}

.l-header__logo img {
	display: block;
}

.l-header__logo__txt {
	color: var(--c_bl);
	border: 1px solid var(--c_bl);
	font-size: 1.2rem;
	padding: .5rem;
	text-align: center;
	line-height: 1.4;
}

.l-header__nav {
	display: flex;
	align-items: center;
	gap: 2.5rem;
	letter-spacing: 0.1em;
	font-weight: 450;
	text-align: center;
	white-space: nowrap;
}

.l-header__nav a:hover {
	color: var(--c_bl);
}

.l-nav__btn {
	display: flex;
	justify-content: center;
	gap: 0.7rem;
}

.l-nav__btn a {
	display: grid;
	place-content: center;
	width: 12.5rem;
	height: 6.7rem;
	font-size: 1.6rem;
	font-weight: 450;
	line-height: 1.3;
	border-radius: .6rem;
	color: #fff;
}

.l-nav__btn a._download {
	background: var(--c_aq);
}

.l-nav__btn a._contact {
	background: var(--c_bl);
}

.l-nav__btn a:hover {
	color: #fff;
	background-color: var(--c_bk);
}

.l-nav {
	display: flex;
	gap: 2.5rem;
	position: relative;
	line-height: 1.1;
}

.l-nav__sub {
	display: flex;
	justify-content: space-between;
	gap: 2.5rem;
	padding-bottom: 1rem;
	margin-bottom: 1rem;
	border-bottom: 1px solid #d9d9d9;
}

.l-nav .acdn {
	position: relative;
}

.l-nav .acdn a {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
}

.l-nav .acdn a::after {
	content: "";
	display: block;
	background: url(../img/toggle.svg) center center no-repeat;
	background-size: contain;
	width: 1.1rem;
	aspect-ratio: 11/8;
	transition: .2s;
}

.l-nav .acdn ul {
	position: absolute;
	top: calc(100% + 1rem);
	left: 50%;
	transform: translateX(-50%);
	text-align: left;
	background: rgba(255, 255, 255, .6);
	backdrop-filter: blur(5px);
	border-top: 3px solid var(--c_bl);
	padding: .7rem;
	box-shadow: 0 0 1rem rgba(0, 0, 0, .1);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	clip-path: inset(0 0 100% 0);
	transition: .3s;
}

.l-nav .acdn ul a {
	font-size: 87.5%;
	width: 100%;
	justify-content: space-between;
	padding: 1rem;
}

.l-nav .acdn ul a::after {
	transform: rotate(-90deg);
}

.l-nav .acdn ul a:hover {
	background: rgba(255, 255, 255, .1);
}

.l-nav .acdn ul li:not(:last-of-type) {
	border-bottom: 1px solid #f1f1f1;
}

.menuIconWrap {
	display: none;
}

#index .l-header:not(.scrl) {
	background-color: transparent;
	color: #fff;
}

#index .l-header:not(.scrl) .l-header__logo__txt {
	border-color: #fff;
	color: #fff;
}

@media screen and (min-width: 781px) {
	.l-nav .acdn>a {
		padding-bottom: 1rem;
		margin-bottom: -1rem;
	}

	.l-nav .acdn:hover ul {
		pointer-events: all;
		opacity: 1;
		visibility: visible;
		clip-path: inset(0 0 0 0);
	}

	#index .l-header:not(.scrl) .l-nav>li>a,
	#index .l-header:not(.scrl) .l-nav__sub>li>a {
		color: #fff;
	}

	#index .l-header:not(.scrl) .l-nav__sub>li>a::after {
		mask-image: url('../img/blank_wh.svg');
		-webkit-mask-image: url('../img/blank_wh.svg');
		mask-size: contain;
		-webkit-mask-size: contain;
		mask-repeat: no-repeat;
		-webkit-mask-repeat: no-repeat;
		background: #fff;
	}

	#index .l-header:not(.scrl) .l-nav .acdn a::after {
		mask-image: url('../img/toggle.svg');
		-webkit-mask-image: url('../img/toggle.svg');
		mask-size: contain;
		-webkit-mask-size: contain;
		mask-repeat: no-repeat;
		-webkit-mask-repeat: no-repeat;
		background: #fff;
	}
}

/*footer
---------------------------------------------------------*/
#l-modal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100lvh;
	background-color: rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(30px);
	z-index: 90001;
}

.l-modal__overlay {
	width: 100%;
	height: 100%;
	padding: 8rem 0;
	overflow-y: scroll;
}

.l-modal .modal {
	display: none;
	position: relative;
	max-width: 92.8rem;
	width: 90%;
	padding: 8.2rem 9.5rem 17rem;
	margin: 0 auto;
	background-color: #fff;
}

.l-modal .modal[data-modal="chiikimirai"] .l-modal_logo {
	width: 17.1rem;
}

.l-modal .modal[data-modal="keizokuryoku"] .l-modal_logo {
	width: 13.4rem;
}

.l-modal .modal[data-modal="kenkokeiei"] .l-modal_logo {
	width: 23.8rem;
}

.l-modal_logo {
	margin: 0 auto 4rem;
}

.l-modal_ttl {
	font-size: 2.4rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin-bottom: 1.6rem;
}

.l-modal_ttl.alnleft {
	font-size: 2.4rem;
	font-weight: 600;
	letter-spacing: 0.24em;
	margin-bottom: 4.8rem;
}

.l-modal_ttl+.txt {
	letter-spacing: 0.05em;
}

.l-modal .txt {
	font-weight: 450;
}

.l-modal_intro {
	padding: 4rem 6.2rem;
	margin: 4rem auto;
}

.l-modal_lead {
	font-size: 1.8rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin-bottom: 0.8rem;
}

.l-modal_lead+.l-modal_lead {
	margin-top: 4.8rem;
}

.l-modal_link:hover {
	text-decoration: underline;
}

.l-modal_intro .txt {
	text-align: left;
}

.l-modal dl {
	text-align: left;
}

.l-modal dt {
	font-size: 2rem;
	font-weight: 520;
	letter-spacing: 0.24em;
	margin-bottom: 0.8rem;
}

.l-modal dd {
	letter-spacing: 0.05em;
	font-weight: 450;
}

.l-modal dd+dt {
	margin-top: 4.8rem;
}

.l-modal ol {
	counter-reset: count;
	text-align: left;
	margin-top: 2rem;
}

.l-modal li {
	counter-increment: count;
	position: relative;
	padding: 2rem 0 2.4rem 4.5rem;
	text-indent: -2.3rem;
	letter-spacing: 0.05em;
	border-bottom: 1px solid #d9d9d9;
	font-weight: 450;
}

.l-modal li:first-of-type {
	padding-top: 0;
}

.l-modal li::before {
	content: counter(count, decimal) ".";
	display: inline-block;
	font-family: "roboto", sans-serif;
	font-size: 2rem;
	font-weight: 400;
	font-style: normal;
	line-height: 1;
	letter-spacing: 0.04em;
	padding-right: 1.7rem;
}

.l-modal ol+.l-modal_lead {
	margin-top: 6.7rem;
}

.l-modal_imgs:has(:not(:only-child)) {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.6rem;
	margin-top: 5.2rem;
}

.l-modal_imgs:has(:only-child) {
	max-width: 60.7rem;
	margin: 6.4rem auto 0;
}

.l-modal_imgs+.txt {
	margin-top: 5rem;
}

.l-modal__declaration {
	display: flex;
	align-items: center;
	gap: 15.8rem;
	margin-top: 5.6rem;
}

.l-modal__declaration .note {
	text-align: left;
	font-size: 1.4rem;
	letter-spacing: 0.05em;
	margin-bottom: 2.4rem;
}

.l-modal__declaration .img {
	width: 22.9rem;
}

.l-modal__declaration .txt {
	text-align: left;
}

.l-modal__declaration .txt+.txt {
	margin-top: 1.5rem;
}

.l-modal_close {
	cursor: pointer;
	position: absolute;
	display: flex;
	align-items: center;
	gap: 0.8rem;
	right: 4.1rem;
	bottom: 2.9rem;
	font-size: 1.4rem;
	letter-spacing: 0.05em;
}

.l-modal_close::after {
	content: '';
	display: block;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	background-image: url(../img/close_wh.svg);
	background-size: cover;
	background-color: var(--c_bl);
	overflow: hidden;
	transition: .2s;
}

.l-modal_close:hover::after {
	background-color: var(--c_dg);
}

#l-contact {
	background: url(../img/contact_bg.jpg) center 30% no-repeat;
	padding: 12rem 0;
	color: #fff;
	text-align: left;
}

.l-contact {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 3rem 2rem;
}

.l-contact__box {
	max-width: 46rem;
}

.l-contact__box p {
	font-weight: 320;
}

.l-contact__cont {
	width: fit-content;
}

.l-contact__cont li:not(:first-of-type) {
	margin-top: 1.5rem;
}

.l-contact__cont li a {
	position: relative;
	height: 8.5rem;
	display: grid;
	grid-template-columns: 18.5rem 1fr;
	align-items: center;
	padding: 1.5rem 2rem;
	color: #fff;
	white-space: nowrap;
	gap: 2rem;
	border-radius: .6rem;
	background: rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid transparent;
}

.l-contact__cont li a:hover {
	background: rgba(255, 255, 255, 0.2);
	backdrop-filter: blur(1px);
	-webkit-backdrop-filter: blur(1px);
	border-color: #fff;
}

.l-contact__cont li a .btn {
	background: var(--c_bl);
	border-radius: 5px;
	padding: 1rem 1.5rem;
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1rem;
}

.l-contact__cont li a .btn::after {
	content: "";
	display: block;
	background: rgba(255, 255, 255, .2) url(../img/arrow_wh.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1;
	width: 2.1rem;
}

.telnum {
	font-size: 2.4rem;
	font-weight: 450;
	letter-spacing: 0.03em;
	white-space: nowrap;
}

.l-footer {
	padding: 10rem 0 6rem;
	text-align: left;
}

.l-footer__inner {
	position: relative;
}

.l-footer__wrap {
	display: flex;
	justify-content: space-between;
	gap: 2rem;
}

.l-footer__logo {
	max-width: 35rem;
}

.l-footer__logo .logo {
	margin-bottom: 3rem;
}

.l-footer__recruit a {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border: 1px solid var(--c_bl);
	background: var(--c_gy);
	color: #fff;
	font-weight: 450;
}

.l-footer__recruit a .lft {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: .3rem;
	background: url(../img/bnr_recuit_bg.jpg) center center no-repeat;
	background-size: cover;
	padding: 1rem 2rem;
}

.l-footer__recruit a .rht {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	background: url(../img/bnr_recuit_txt_bg.jpg) center center no-repeat;
	background-size: 100% auto;
	padding: 1rem 2rem;
	background-color: #fff;
}

.l-footer__recruit a .rht img {
	max-height: 6.7rem;
}

.l-footer__nav {
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 0 6rem;
	font-weight: 450;
}

.l-footer__nav li {
	margin-top: 1.2em;
}

.l-footer__nav .child li {
	margin-top: 0.3em;
}

.l-footer__nav .child ul a {
	font-size: 85%;
	font-weight: 400;
	display: inline-flex;
	align-items: center;
}

.l-footer__nav .child ul a::before {
	content: "-";
}

.l-footer__nav a:hover {
	color: var(--c_bl);
}

.l-footer__sns {
	margin-top: 6rem;
	gap: 1rem 2rem;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	flex-wrap: wrap;
}

.l-footer__sns img {
	max-height: 5.4rem;
}

.l-footer__bnr {
	margin-top: 6rem;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem 3rem;
}

.l-footer__bnr a {
	background: #fff;
	display: grid;
	grid-template-columns: 11.5rem 1fr;
}

.l-footer__bnr a .txt {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--c_bl);
	font-weight: 450;
	position: relative;
	padding-right: 3rem;
}

.l-footer__bnr a .txt::after {
	content: "";
	display: block;
	border-radius: 50%;
	aspect-ratio: 1;
	width: 2.2rem;
	background: var(--c_gy) url(../img/blank_bl.svg) center center no-repeat;
	background-size: 40% auto;
	position: absolute;
	right: 1.5rem;
	bottom: 1.7rem;
}

.copyright {
	text-align: left;
	margin-top: 6rem;
	color: #a2a2a2;
	font-size: 1.2rem;
}

.l-pagetop {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 1;
	font-size: 1.2rem;
	color: var(--c_bl);
	display: flex;
	align-items: center;
	gap: 1rem;
}

.l-pagetop::after {
	content: "";
	display: block;
	width: 2em;
	aspect-ratio: 1;
	background: #fff url(../img/arrow_bl.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	transform: rotate(-90deg);
}

/*下層FV
---------------------------------------------------------*/
#subPage {
	padding-top: 0 !important;
}

.l-fv {
	position: relative;
	overflow: hidden;
}

.l-fv:before {
	content: '';
	position: absolute;
	transform-origin: center;
	top: -8rem;
	right: -12rem;
	width: 63.3rem;
	aspect-ratio: 1/1;
	background: url(../img/lower_bearing.png) center center no-repeat;
	background-size: cover;
	animation: l-bearing 20s linear infinite;
}

@keyframes l-bearing {
	0% {
		rotate: 0deg;
	}

	100% {
		rotate: 360deg;
	}
}

.l-fv__inner {
	padding: 0 7.7rem 1.2rem;
}

.l-fv .ttl {
	position: relative;
	text-align: left;
	padding: 23rem 0 10rem;
}

.l-fv .ttl .eng {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 2rem;
	font-weight: 450;
	letter-spacing: 0.04em;
}

.l-fv .ttl .eng::before {
	content: "";
	display: block;
	background: url(../img/icon_mark.svg) center center no-repeat;
	background-size: contain;
	width: 3rem;
	aspect-ratio: 10 / 7;
}

.l-fv .ttl h1 {
	font-size: 5.6rem;
	font-weight: 520;
	letter-spacing: 0.04em;
}

.l-fv .breadcrumbs,
.lb-fv .breadcrumbs {
	overflow-x: scroll;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.l-fv .breadcrumbs::-webkit-scrollbar,
.lb-fv .breadcrumbs::-webkit-scrollbar {
	display: none;
}

.l-fv .breadcrumbs ul,
.lb-fv .breadcrumbs ul {
	display: flex;
	align-items: center;
	gap: 2.2rem;
	width: max-content;
}

.l-fv .breadcrumbs ul li,
.lb-fv .breadcrumbs ul li {
	position: relative;
}

.l-fv .breadcrumbs ul li,
.l-fv .breadcrumbs ul li a,
.lb-fv .breadcrumbs ul li,
.lb-fv .breadcrumbs ul li a {
	font-size: 1.2rem;
	letter-spacing: 0.05em;
	color: #CACACA;
}

.l-fv .breadcrumbs ul li a:hover,
.lb-fv .breadcrumbs ul li a:hover {
	text-decoration: underline;
}

.l-fv .breadcrumbs ul li:not(:last-of-type)::after,
.lb-fv .breadcrumbs ul li:not(:last-of-type)::after {
	content: '';
	position: absolute;
	translate: 0 -50%;
	top: 50%;
	right: -1.5rem;
	width: 1rem;
	height: 1px;
	background-color: #CACACA;
}

.l-fv .breadcrumbs ul .current,
.lb-fv .breadcrumbs ul .current {
	color: var(--c_bk);
}

.l-fv .bg {
	position: relative;
	width: 100%;
	z-index: 1;
}

.lb-fv {
	position: relative;
	margin-top: 13rem;
	overflow: hidden;
}

.lb-fv__inner {
	padding: 0 7.7rem;
}

.lb-fv__conts {
	position: relative;
	width: 100%;
	margin: 1.5rem auto 0;
	padding: 10rem 0;
}

.lb-fv__conts .bg {
	translate: -50% 0;
	position: absolute;
	top: 0;
	left: 50%;
	width: calc(100vw + 2px);
	height: 100%;
}

.lb-fv__conts .bg::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 54.513888888888886%;
	height: 100%;
	background: linear-gradient(90deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 1) 23%, rgba(0, 0, 0, 0) 100%);
}

.lb-fv__conts .bg img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.lb-fv .ttl {
	position: relative;
	text-align: left;
	color: #fff;
	z-index: 1;
}

.lb-fv .ttl .eng {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: 2rem;
	font-weight: 450;
	letter-spacing: 0.04em;
}

.lb-fv .ttl .eng::before {
	content: "";
	display: block;
	background: url(../img/icon_mark.svg) center center no-repeat;
	background-size: contain;
	width: 3rem;
	aspect-ratio: 10 / 7;
}

.lb-fv .ttl h1 {
	font-size: 5.6rem;
	font-weight: 520;
	letter-spacing: 0.04em;
}

.lb-fv h2 {
	position: relative;
	text-align: left;
	font-size: 3.2rem;
	font-weight: 520;
	letter-spacing: 0.24em;
	color: var(--c_aq);
	z-index: 1;
	margin-top: 5rem;
}

.lb-fv .txt-lh {
	position: relative;
	max-width: 45rem;
	text-align: left;
	color: #fff;
	font-weight: 320;
	z-index: 1;
	margin-top: 2.4rem;
}

/*下層 Other Pages
---------------------------------------------------------*/
.l-other {
	padding: 11.8rem 0 9.5rem;
}

.l-other ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3.2rem;
	text-align: left;
}

.l-other ul li .thumb {
	aspect-ratio: 354 / 181;
}

.l-other ul li .txt {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.8rem;
	margin-top: 0.8rem;
	font-size: 1.8rem;
	font-weight: 450;
	letter-spacing: 0.05em;
}

.l-other ul li .txt::before {
	content: "";
	display: block;
	background: var(--c_gy) url(../img/arrow_bl.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	width: 2.1rem;
	transition: .2s;
	margin-top: 0.3rem;
}

.l-other.bg-gy ul li .txt::before {
	background: var(--c_wh) url(../img/arrow_bl.svg) center center no-repeat;
}

@media screen and (min-width: 781px) {
	.l-other ul li a:hover .txt::before {
		transform: translateX(0.5rem);
		background-color: var(--c_bl);
		background-image: url(../img/arrow_wh.svg);
	}
}

.l-other ul li .eng {
	font-size: 1.2rem;
	letter-spacing: 0.04em;
	color: var(--c_bl);
}

/*下層__layout
---------------------------------------------------------*/
.l-page-lfv {
	overflow: clip;
	position: relative;
	background-color: #fff;
}

.l-page-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	pointer-events: none;
	z-index: 0;
}

.l-page-bg .bg {
	position: relative;
	width: 100%;
	height: 100%;
}

.l-page-bg .bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: #000;
	opacity: 0.8;
	pointer-events: none;
}

.l-page-lower {
	position: relative;
	z-index: 1;
	color: #fff;
}

.l-page-lower__wrap {
	padding: 16rem 0;
}

.l-page-lower__wrap h2 {
	font-size: 3.2rem;
	font-weight: 520;
	letter-spacing: 0.24em;
	margin-bottom: 6rem;
	color: var(--c_aq);
}

.l-page-lower__wrap .txt-lh {
	max-width: 80rem;
	margin: 0 auto;
	font-weight: 320;
	font-size: max(1.6rem, 14px);
}


/*index
---------------------------------------------------------*/
.p-fv {
	height: 100dvh;
	overflow: hidden;
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	padding-bottom: 17rem;
	background-color: #fff;
}

.p-fv__video {
	position: absolute;
	inset: 0;
	z-index: -99;
	opacity: 0;
}

.p-fv__video::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.3);
	z-index: 100;
}

.p-fv__video video {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 99;
	width: auto;
	min-width: 100%;
	min-height: 100%;
}

.p-fv__curtain {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--c_ye);

	z-index: 10;
}

.p-fv__curtain._02 {
	background-color: var(--c_gr);
}

.p-fv__curtain._03 {
	background-color: var(--c_aq);
}

.p-fv__curtain .gif {
	position: absolute;
	bottom: 1rem;
	right: 1rem;
	width: 100px;
	height: 100px;
}

.p-fv__inner {
	width: 90%;
	margin: 0 auto;
	text-align: left;
}

.p-fv__box {
	display: inline-block;
	position: relative;
	color: #fff;
	letter-spacing: 0.1em;
}

.p-fv__ttl {
	position: relative;
	z-index: 1;
}

.p-fv__ttl .eng {
	font-size: 9.5rem;
	font-weight: 520;
	font-style: italic;
	--gradation-image: url(../img/gradation_pattern.png);
	--gradation-goal: #fff;
}


.p-fv__gradation {
	background-image: var(--gradation-image);
	background-repeat: no-repeat;
	background-size: 200% 100%;
	background-position: 200% 0;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.p-fv__gradation.is-animated {
	animation: text-gradation-anime 2.5s ease-in-out forwards;
}

.p-fv__ttl h1 {
	font-size: 3.2rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	margin-top: 1rem;
	overflow: hidden;
}

.p-fv__mask {
	display: block;
	transform: translateY(100%);
	opacity: 0;
	line-height: 1;
}

.p-fv__box .logomark {
	position: absolute;
	bottom: -11.5rem;
	right: -33.5rem;
	max-width: 58.9rem;
}

.p-fv__box .logomark img {
	opacity: 0;
	transform: translateX(-5%);
}

#p-index-message {
	position: relative;
	padding: 10rem 0 18.5rem;
}

.p-index-message {
	position: relative;
}

.p-index-message:before {
	content: '';
	position: absolute;
	transform-origin: center;
	top: -23rem;
	left: -28rem;
	width: 63.3rem;
	aspect-ratio: 1 / 1;
	background: url(../img/lower_bearing.png) center center no-repeat;
	background-size: cover;
	animation: l-bearing 20s linear infinite;
}

.p-index-message__ttl {
	font-size: 2rem;
	color: var(--c_bl);
	text-align: left;
	margin-bottom: 6rem;
}

.p-index-message__box {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	z-index: 1;
}

.p-index-message__box dl {
	text-align: left;
	max-width: 48rem;
}

.p-index-message__box dl h3 {
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: 0.3em;
	margin-bottom: 2rem;
}

.p-index-message__box dl h3 strong {
	font-size: 133%;
	font-weight: 520;
}

.p-index-message__img {
	position: relative;
	z-index: 1;
	max-width: 40.8rem;
}

.p-index-message__img .img._01 {
	width: 100%;
}

.p-index-message__img .img._02 {
	position: absolute;
	top: 26.4rem;
	left: -13.4rem;
	width: 22.4rem;
}

#p-index-business {
	padding: 0;
}

.p-index-business {
	padding: 12rem 0 0;
	color: #fff;
}

.p-index-business__lead {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 6rem;
}

.p-index-business__lead .c-secTtl {
	margin-bottom: 0;
}

.p-index-business__nav {
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.p-index-business__nav li {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	opacity: .5;
	font-size: 1.2rem;
	font-weight: 450;
	line-height: 1;
}

.p-index-business__nav li .num {
	font-size: 112.5%;
	line-height: 1.2;
	margin-right: -0.5rem;
}

.p-index-business__nav li:not(:first-of-type)::before {
	content: "";
	display: block;
	width: 3.5rem;
	height: 1px;
	background: #fff;
	opacity: .5;
}

.p-index-business__nav li.act {
	opacity: 1;
}

.p-index-business__nav li.act .eng {
	color: var(--c_aq);
}

.p-index-business__wrap {
	display: flex;
	align-items: flex-start;
	gap: 0 25vw;
	will-change: transform;
}

.p-index-business__item {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 2rem 10rem;
	flex-shrink: 0;
	box-sizing: border-box;
	margin-bottom: -11rem;
}

.p-index-business__item .img {
	max-width: 70rem;
	flex: 1;
	margin-left: -15rem;
	position: relative;
	padding-right: 3rem;
}

.p-index-business__item .img .eng {
	position: absolute;
	top: 0;
	right: 0;
	font-size: 1.4rem;
	font-weight: 400;
	color: var(--c_aq);
	letter-spacing: 0.1em;
}

.p-index-business__item dl {
	text-align: left;
	max-width: 48rem;
}

.p-index-business__item dt {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	margin-bottom: 3rem;
}

.p-index-business__item dt h3 {
	font-size: 2.4rem;
}

.p-index-business__item dt .num {
	font-size: 2.4rem;
	color: var(--c_aq);
	font-weight: 450;
}

.p-index-business__item dd p {
	font-weight: 320;
}

.p-index-business__sub {
	padding: 25rem 0 14rem;
}

.p-index-business__sub .container {
	max-width: 130rem;
}

.p-index-business__sub ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3rem 5rem;
	text-align: left;
}

.p-index-business__sub ul li {
	position: relative;
	padding-left: 4.5rem;
}

.p-index-business__sub ul li .engTtl {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	font-size: 1.2rem;
	color: var(--c_bl);
	border-right: 1px solid var(--c_bl);
	padding-right: 1rem;
	letter-spacing: .1em;
}

.p-index-business__sub ul li .thumb {
	display: block;
	aspect-ratio: 720/480;
	margin-bottom: 2rem;
}

.p-index-business__sub ul li .thumb h2 {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(0, 0, 0, .5);
	color: #fff;
	font-size: 2rem;
	font-weight: 520;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	text-align: center;
	transition: .2s;
}

.p-index-business__sub ul li .thumb::after {
	content: "";
	display: block;
	border-radius: 50%;
	aspect-ratio: 1;
	width: 2.2rem;
	background: var(--c_gy) url(../img/blank_bl.svg) center center no-repeat;
	background-size: 40% auto;
	position: absolute;
	right: 1.5rem;
	bottom: 1.5rem;
	z-index: 5;
}

.p-index-business__sub ul li .thumb:hover h2 {
	background-color: rgba(0, 0, 0, .3);
}

#p-index-strengths {
	padding: 15rem 0 23rem;
}

.p-index-strengths__wrap {
	display: flex;
	justify-content: space-between;
	gap: 3rem 10rem;
	text-align: left;
	position: relative;
}

.p-index-strengths__lead {
	flex: 1;
}

.p-index-strengths__lead h3 {
	font-size: 2.4rem;
	font-weight: 620;
	letter-spacing: 0.2em;
	margin-bottom: 2rem;
}

.p-index-strengths__box {
	width: 54.4rem;
	position: relative;
}

.p-index-strengths__box .thumb {
	width: 100%;
	aspect-ratio: initial;
}

.p-index-strengths__cont {
	position: relative;
}

.p-index-strengths__cont .engTtl {
	position: absolute;
	left: 2.3rem;
	top: 4rem;
	font-size: 1.4rem;
	color: #fff;
	letter-spacing: .1em;
	z-index: 1;
}

.p-index-strengths__item {
	position: relative;
	background: var(--c_bl);
	color: #fff;
	overflow: hidden;
	padding: 3.2rem 0 4rem 8.8rem;
}

.p-index-strengths__item .logomark {
	position: absolute;
	right: -2.8rem;
	bottom: -2.8rem;
	opacity: .2;
	width: 35rem;
}

.p-index-strengths__item dl {
	max-width: 38.4rem;
	display: grid;
	grid-template-columns: 1fr 14rem;
	align-items: center;
	gap: 1.5rem;
	font-size: 1.4rem;
	position: relative;
	z-index: 1;
	opacity: 0;
	translate: 0 5%;
}

.p-index-strengths__item dl+dl {
	margin-top: 2rem;
}

.p-index-strengths__item dl dt {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.p-index-strengths__item dl dt::after {
	content: "";
	display: block;
	background: rgba(255, 255, 255, .2);
	height: 1px;
	flex: 1;
}

.p-index-strengths__item dl dt h4 {
	font-size: 1.6rem;
	font-weight: 450;
	letter-spacing: 0.05em;
}

.p-index-strengths__item dl dt .num {
	font-size: 2.2rem;
	font-weight: 450;
	color: var(--c_aq);
}

.p-index-strengths__item dd span {
	width: max-content;
	display: block;
	background: var(--c_aq);
	padding: .2rem .5rem;
	letter-spacing: 0.05em;
}

#p-index-company {
	padding: 0 0 10rem;
}

.p-index-company__wrap {
	position: relative;
	display: flex;
	align-items: flex-end;
	padding-left: 20rem;
	gap: 3rem 10rem;
	margin-bottom: 15rem;
}

.p-index-company__box {
	max-width: 50.5rem;
	text-align: left;
}

.p-index-company__wrap .sideImg {
	position: absolute;
	top: 0;
	left: -15rem;
	max-width: 22.1rem;
}

.p-index-company__img {
	flex: 1;
	aspect-ratio: 768/576;
	margin-right: -15rem;
	position: relative;
	overflow: hidden;
}

.p-index-company__img .img {
	visibility: hidden;
	opacity: 0;
	position: absolute;
	top: 0;
	left: 0;
	transform: scale(1.08) translateX(3rem);
	clip-path: inset(0 0 0 100%);
	transition:
		opacity .6s ease,
		visibility .6s ease,
		transform .8s ease,
		clip-path .8s cubic-bezier(.76, 0, .24, 1);
}

.p-index-company__img .img.act {
	visibility: visible;
	opacity: 1;
	transform: scale(1) translateX(0);
	clip-path: inset(0 0 0 0);
}

.p-index-company__nav {
	width: 45rem;
	margin-top: 3.2rem;
}

.p-index-company__nav a {
	position: relative;
	display: flex;
	align-items: center;
	border-bottom: 1px solid #d9d9d9;
	padding: 2rem 1.5rem;
	text-align: left;
	font-size: 1.8rem;
	font-weight: 450;
	gap: 1.5rem;
	z-index: 1;
}

.p-index-company__nav a::before {
	content: "";
	display: block;
	position: absolute;
	inset: 0;
	background: #f9f9f9;
	clip-path: inset(0 100% 0 0);
	transition: .8s cubic-bezier(.76, 0, .24, 1);
	z-index: -1;
}

.p-index-company__nav a .eng {
	color: var(--c_bl);
	font-size: 1.2rem;
	font-weight: 400;
}

.p-index-company__nav li a::after {
	content: "";
	display: block;
	background: var(--c_gy) url(../img/arrow_bl.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	width: 2.1rem;
	margin-left: auto;
	transition: .2s .6s;
}

@media screen and (min-width: 781px) {
	.p-index-company__nav a:hover:before {
		clip-path: inset(0 0 0 0);
	}

	.p-index-company__nav li a:hover:after {
		transform: translateX(1rem);
		background-color: var(--c_bl);
		background-image: url(../img/arrow_wh.svg);
	}
}

.p-index-company__access {
	position: relative;
}

.p-index-company__access__box {
	max-width: 63rem;
	margin-left: auto;
	padding: 6rem 6.8rem 8rem 25rem;
	text-align: left;
}

.p-index-company__access__img {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1;
	display: flex;
	justify-content: space-between;
	gap: 3rem;
	max-width: 64rem;
}

.p-index-company__access__img .img._02 {
	margin-top: 13rem;
	max-width: 26rem;
}

.p-index-news__lead {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 2rem;
	margin-bottom: 4rem;
}

.p-index-news__lead .c-secTtl {
	margin-bottom: 0;
}

.p-index-news__nav {
	width: fit-content;
	margin-left: auto;
	gap: 1.5rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: .55rem;
}

.SliderArrow {
	width: 3rem;
	aspect-ratio: 1;
	border: 1px solid var(--c_bl);
	border-radius: 50%;
	background: url(../img/arrow_bl.svg) center center no-repeat;
	background-size: 45% auto;
	position: relative;
	transition: .4s;
	cursor: pointer;
}

.SliderArrow:hover {
	background-color: var(--c_bl);
	background-image: url(../img/arrow_wh.svg);
}

.SliderArrow.prev {
	transform: rotate(180deg);
}

.SliderArrow.slick-disabled {
	pointer-events: none;
	opacity: .3;
	filter: grayscale(1);
}

.p-index-news__sliderArea {
	margin-right: calc(-50vw + 50%);
}

.p-index-news__slider .slick-track {
	display: flex !important;
}

.p-index-news__slider .card {
	height: auto !important;
	margin-right: 3rem;
	padding: 2rem;
	background: #fff;
	text-align: left;
}

.p-index-news__slider .card .thumb {
	margin-bottom: 1.5rem;
	aspect-ratio: 314/199;
}

.p-index-news__slider .card .lead {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	font-size: 1.4rem;
	color: var(--c_bl);
	margin-bottom: 1rem;
}

.p-index-news__slider .card .lead .cate {
	color: var(--c_bl);
	border: 1px solid var(--c_bl);
	font-size: 1.2rem;
	border-radius: 2px;
	padding: .4rem .5rem;
	line-height: 1;
}

.p-index-news__slider .card .ttl {
	overflow: hidden;
	display: -webkit-box;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.p-index-news__slider .card a:hover {
	color: var(--c_bl);
}

.p-index-news__sliderArea.is-noslide {
	margin-right: 0;
}

.p-index-news__slider.is-noslide {
	display: flex;
}

.p-index-news__slider.is-noslide>* {
	width: calc((100% - 6rem) / 3);
	flex: 0 0 calc((100% - 6rem) / 3);
}

.p-index-seminar {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 7rem;
}

.p-index-seminar__item {
	cursor: pointer;
	position: relative;
	text-align: left;
	padding-left: 5rem;
	padding-bottom: 1rem;
	color: #fff;
}

.p-index-seminar__item .engTtl {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	font-size: 1.2rem;
	color: var(--c_aq);
	border-right: 1px solid var(--c_aq);
	padding-right: 1rem;
	letter-spacing: .1em;
}

.p-index-seminar__item .thumb {
	display: block;
	position: relative;
	aspect-ratio: 768/406;
	margin-bottom: 2rem;
}

@media (hover: hover) {
	.p-index-seminar__item:hover img {
		transform: scale(1.08);
	}
}

.p-index-seminar__item .thumb h2 {
	position: absolute;
	left: 0;
	bottom: 0;
	background: var(--c_bl);
	font-size: 2rem;
	font-weight: 520;
	letter-spacing: 0.1em;
	padding: 1rem 2.5rem .5rem 0;
	color: #fff;
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	z-index: 11;
}

.p-index-seminar__item .thumb h2::after {
	content: "";
	display: block;
	background: rgba(255, 255, 255, .2) url(../img/arrow_wh.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1;
	width: 2.1rem;
}

.p-index-seminar__item p {
	font-weight: 320;
}

.p-index-seminar__attention {
	text-align: right;
	font-size: 1.2rem;
	margin-top: 3rem;
}

.c-recruit__bnr a {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border: 1px solid var(--c_bl);
	background: var(--c_gy);
	color: #fff;
	font-weight: 450;
}

.c-recruit__bnr a .lft {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: .3rem;
	background: url(../img/bnr_recuit_bg.jpg) center center no-repeat;
	background-size: cover;
	padding: 4rem 2rem;
}

.c-recruit__bnr a .lft img {
	max-height: 7.7rem;
}

.c-recruit__bnr a .lft .eng {
	font-size: 2.8rem;
	font-weight: 450;
	margin-top: 1rem;
}

.c-recruit__bnr a .lft .txt {
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: 320;
	letter-spacing: 0.07em;
	gap: 1rem;
	margin-top: 3rem;
}

.c-recruit__bnr a .lft .txt::after {
	content: "";
	display: block;
	background: rgba(255, 255, 255, .1) url(../img/blank_wh.svg) center center no-repeat;
	background-size: 40% auto;
	border-radius: 50%;
	aspect-ratio: 1;
	width: 2.4rem;
}

.c-recruit__bnr a .rht {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	background: url(../img/bnr_recuit_txt_bg.jpg) center center no-repeat;
	background-size: 100% auto;
	padding: 1rem 2rem;
	background-color: #fff;
}

.c-recruit__bnr a .rht img {
	max-height: 20rem;
}

.p-index__bnr {
	margin-top: 8rem;
}

.p-index__bnr h2 {
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: 0.1em;
	gap: 1.5rem;
	margin-bottom: 2rem;
}

.p-index__bnr h2::before {
	content: "";
	display: block;
	background: url(../img/icon_mark.svg) center center no-repeat;
	background-size: contain;
	width: 4.1rem;
	aspect-ratio: 10/7;
}

.p-index__bnr ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	align-items: center;
	gap: 3rem;
}

.p-index__bnr .modal__btn {
	cursor: pointer;
}

.p-index__bnr .modal__btn img {
	transition: .4s;
}

.p-index__bnr .modal__btn:hover img {
	opacity: 0.8;
}

/*お知らせ
	-------------------------------------------------------*/
#p-newslist {
	overflow: initial;
}

.p-newslist {
	text-align: left;
	max-width: 128.6rem;
	width: 90%;
	margin: 0 auto;
}

.p-newslist__wrap {
	display: flex;
	justify-content: space-between;
}

.p-newslist aside {
	position: sticky;
	top: 0;
	width: 23rem;
	height: max-content;
}

.p-newslist aside .box:has(> a:nth-of-type(7)) {
	overflow-y: scroll;
	max-height: calc((5.2rem * 6) + (0.8rem * 5));
}

.p-newslist aside .eng {
	font-size: 2rem;
	letter-spacing: 0.04em;
	color: var(--c_bl);
	margin-bottom: 2.4rem;
}

.p-newslist aside a {
	position: relative;
	display: block;
	min-height: 4.8rem;
	font-size: 1.4rem;
	background-color: #fff;
	border-radius: 0.4rem;
	padding: 1.2rem 0 1.2rem 1.4rem;
}

.p-newslist aside a:hover {
	color: var(--c_bl);
}

.p-newslist aside a.current {
	color: #fff;
	background-color: var(--c_bl);
}

.p-newslist aside a+a {
	margin-top: 0.8rem;
}

.p-newslist aside .txt {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.p-newslist aside .txt::before {
	content: '';
	display: block;
	width: 1.4rem;
	height: 1.4rem;
	border-radius: 50%;
	background-color: #fff;
	border: 1px solid #d9d9d9;
}

.p-newslist aside a.current .txt::before {
	background-image: url(../img/news/category_current.png);
	background-size: cover;
}

.p-newslist__item {
	width: min(92.8rem, calc(100% - (5.5rem + 21.3rem)));
	padding-top: 5.8rem;
}

.p-newslist__item .card {
	position: relative;
	display: flex;
	align-items: center;
	gap: 4.8rem;
	padding: 2rem 9.5rem 2rem 2.2rem;
	background: #fff;
	border-radius: 0.6rem;
}

.p-newslist__item .card:hover {
	color: var(--c_bl);
}

.p-newslist__item .card::after {
	content: "";
	position: absolute;
	right: 2rem;
	bottom: 2rem;
	background: var(--c_gy) url(../img/arrow_bl.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	width: 2.1rem;
	margin-left: auto;
	transition: .2s;
}

@media screen and (min-width: 781px) {
	.p-newslist__item .card:hover:after {
		transform: translateX(1rem);
		background-color: var(--c_bl);
		background-image: url(../img/arrow_wh.svg);
	}
}

.p-newslist__item .card+.card {
	margin-top: 1.6rem;
}

.p-newslist__item .card .thumb {
	min-width: 18.2rem;
	width: 18.2rem;
	aspect-ratio: 182/115;
}

.p-newslist__item .card .thumb img {
	object-fit: cover;
	object-position: center;
	width: 100%;
	height: 100%;
}

.p-newslist__item .card .lead {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	font-size: 1.4rem;
	color: var(--c_bl);
	margin-bottom: 1rem;
}

.p-newslist__item .card .lead .cate {
	color: var(--c_bl);
	border: 1px solid var(--c_bl);
	font-size: 1.2rem;
	border-radius: 2px;
	padding: .4rem .5rem;
	line-height: 1;
}

.p-newslist__item .card .ttl {
	overflow: hidden;
	display: -webkit-box;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
	line-clamp: 1;
}

.p-newslist__item .pager {
	text-align: right;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: flex-end;
	margin-top: 4rem;
}

.p-newslist__item .page-numbers {
	display: inline-block;
	font-size: 1.4rem;
	margin: 0 1.2rem;
}

.p-newslist__item .page-numbers:hover {
	color: var(--c_bl);
}

.p-newslist__item .page-numbers.current {
	display: grid;
	place-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	color: #fff;
	line-height: 1;
	background-color: var(--c_bl);
	margin: 0 0.8rem;
}

.p-newslist__item .page-numbers.prev,
.p-newslist__item .page-numbers.next {
	display: block;
	background: url(../img/arrow_bk.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	width: 2.1rem;
	transition: .2s;
}

.p-newslist__item .page-numbers.prev {
	rotate: 180deg;
}

@media screen and (min-width: 781px) {

	.p-newslist__item .page-numbers.prev:hover,
	.p-newslist__item .page-numbers.next:hover {
		transform: translateX(0.5rem);
	}
}

.p-newslist__item .page-numbers:last-child {
	margin-right: 0;
}

/*お知らせ
	-------------------------------------------------------*/
.p-news__box {
	text-align: left;
	max-width: 92.8rem;
	margin: 0 auto;
	border-radius: 0.6rem;
	background-color: #fff;
	padding: 8rem 9.8rem;
}

.p-news__box .lead {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	font-size: 1.4rem;
	color: var(--c_bl);
	margin-bottom: 1rem;
}

.p-news__box .lead .cate {
	color: var(--c_bl);
	border: 1px solid var(--c_bl);
	font-size: 1.2rem;
	border-radius: 2px;
	padding: .4rem .5rem;
	line-height: 1;
}

.p-news__box .ttl {
	font-size: 2rem;
	font-weight: 520;
	letter-spacing: 0.05em;
	padding: 0 0 1.6rem;
	margin-bottom: 6.5rem;
	border-bottom: 1px solid #d9d9d9;
}

.p-news__box .attachment-post-thumbnail {
	margin-bottom: 4rem;
}

.p-news__box a {
	text-decoration: underline;
}

.p-news__box a:hover {
	color: var(--c_bl);
}

.p-news__box img,
.p-news__box .aligncenter {
	display: block;
	text-align: center;
	margin: 0 auto;
}

.p-news__box .alignleft {
	display: block;
	text-align: left;
	margin: 0 auto 0 0;
}

.p-news__box .alignright {
	display: block;
	text-align: right;
	margin: 0 0 0 auto;
}

.p-news__box ul li::before {
	content: '・';
}

.p-news__box ol {
	counter-reset: number;
}

.p-news__box ol li {
	counter-increment: number;
}

.p-news__box ol li::before {
	content: counter(number) ".";
}

.p-news__box blockquote {
	padding-left: 1rem;
	border-left: 1rem solid var(--c_aq);
}

.p-news .pager {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 92.8rem;
	margin: 5.5rem auto 0;
}

.p-news .pager .dmmy {
	color: transparent;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

.p-news .pager .index-btn {
	font-size: 1.8rem;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.p-news .pager .prev-btn a,
.p-news .pager .next-btn a {
	display: flex;
	align-items: center;
	gap: 1.6rem;
}

.p-news .pager .prev-btn a::before,
.p-news .pager .next-btn a::after {
	content: "";
	display: block;
	background: #fff url(../img/arrow_bl.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	width: 2.1rem;
	transition: .2s;
}

.p-news .pager .prev-btn a::before {
	rotate: 180deg;
}

@media screen and (min-width: 781px) {

	.p-news .pager .prev-btn a:hover::before,
	.p-news .pager .next-btn a:hover::after {
		transform: translateX(0.5rem);
		background-color: var(--c_bl);
		background-image: url(../img/arrow_wh.svg);
	}
}

/*会社案内
	-------------------------------------------------------*/
#p-company {
	padding: 0;
}

.p-company {
	text-align: left;
	background: url(../img/company/company_bg_pc.jpg) no-repeat;
	background-size: cover;
	color: var(--c_wh);
	padding: 15rem 0 17rem;
}

.p-company-message__ttl {
	font-size: 2rem;
	color: var(--c_aq);
	text-align: left;
	margin-bottom: 6rem;
}

.p-company-message__box {
	display: flex;
	align-items: flex-start;
	gap: 11.4rem;
}

.p-company-message__box dl {
	max-width: 47rem;
}

.p-company-message__box dl h3 {
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: 0.2em;
	margin-bottom: 2rem;
}

.p-company-message__img {
	position: relative;
	z-index: 1;
	max-width: 44.5rem;
	margin-top: -8rem;
}

.p-company-message__img .img {
	position: relative;
	z-index: 1;
}

.p-company-message__img .img._02 {
	position: absolute;
	top: 25rem;
	right: -9.3rem;
	width: 23.8rem;
	z-index: 1;
}

.p-company__sub {
	padding: 13rem 0 15rem;
}

.p-company__sub ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 6.4rem 3.2rem;
}

.p-company__sub ul li .thumb {
	aspect-ratio: 538 / 274;
}

.p-company__sub ul li .txt {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1.2rem;
	margin-top: 0.8rem;
	font-size: 1.8rem;
	font-weight: 450;
	letter-spacing: 0.05em;
}

.p-company__sub ul li .txt::before {
	content: "";
	display: block;
	background: var(--c_gy) url(../img/arrow_bl.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	width: 2.1rem;
	transition: .2s;
	margin-top: 0.3rem;
}

@media screen and (min-width: 781px) {
	.p-company__sub ul li a:hover .txt::before {
		transform: translateX(0.5rem);
		background-color: var(--c_bl);
		background-image: url(../img/arrow_wh.svg);
	}
}

.p-company__sub ul li .eng {
	font-size: 1.2rem;
	letter-spacing: 0.04em;
	color: var(--c_bl);
}

/*会社概要
	-------------------------------------------------------*/
.p-about dl {
	max-width: 92.8rem;
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	margin: 0 auto;
	border-top: 1px solid #d9d9d9;
}

.p-about dt {
	width: 16rem;
	display: grid;
	place-content: center;
	font-size: 1.6rem;
	font-weight: 520;
	letter-spacing: 0.05em;
	padding: 2.8rem 0;
	background-color: var(--c_wh);
	border-bottom: 1px solid #d9d9d9;
}

.p-about dd {
	text-align: left;
	width: calc(100% - 16rem);
	font-feature-settings: "palt";
	letter-spacing: 0.05em;
	line-height: 1.5;
	padding: 2.8rem 7.2rem 2.8rem 13.5rem;
	border-bottom: 1px solid #d9d9d9;
}

.p-about dd .oversea {
	display: inline-block;
	color: var(--c_bl);
	border: 1px solid var(--c_bl);
	padding: 0.4rem 0.8rem;
	margin-bottom: 0.5rem;
}

/*沿革
	-------------------------------------------------------*/
#p-history {
	padding: 6rem 0 16rem;
}

.p-history__area {
	position: relative;
	max-width: 92.8rem;
	margin: 0 auto;
}

.p-history__area .year {
	font-size: 3.5rem;
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: var(--c_bl);
	padding: 1rem 0;
	opacity: 0;
	z-index: 1;
	position: relative;
	background: var(--c_gy);
	width: max-content;
	margin: 0 auto;
}

.p-history__area .mainline2 {
	position: absolute;
	translate: -50% 0;
	top: 10rem;
	left: 50%;
	width: 1px;
	height: 95.5%;
	background-color: var(--c_dg);
	transform-origin: top center;
	transform: scaleY(0);
}

.p-history__area .year.-head {
	font-size: 5.5rem;
	font-weight: 400;
}

.p-history__wrap {
	position: relative;
	height: 9.3rem;
}

.p-history__wrap:has(.img) {
	height: 24rem;
}

.p-history__wrap:last-of-type:has(.img) {
	height: 46rem;
}

.p-history__event {
	position: absolute;
	top: 3rem;
	right: 0;
	text-align: left;
	width: 50%;
}

.p-history__wrap+.p-history__wrap .p-history__event {
	top: 1rem;
}

.p-history__event.-left {
	right: initial;
	left: 0;
}

.p-history__event::before {
	content: '';
	position: absolute;
	translate: -50% 0;
	top: 0.4rem;
	left: 1px;
	width: 3.2rem;
	height: 2rem;
	background: url(../img/company/history/event_point.svg) no-repeat;
	background-size: 2rem 2rem;
	background-position: center;
	background-color: var(--c_gy);
	transform: scale(var(--dot_scale, 2));
	opacity: var(--dot_opacity, 0);
	z-index: 1;
}

.p-history__event.-left::before {
	translate: 50% 0;
	left: initial;
	right: -1px;
}

.p-history__event:has(.lead)::before {
	top: 1.1rem;
}

.p-history__event .lead {
	display: flex;
	gap: 1.6rem;
	font-size: 2.5rem;
	font-weight: 520;
	letter-spacing: 0.03em;
}

.p-history__event.-left .lead {
	flex-direction: row-reverse;
}

.p-history__event:not(:has(.lead)) .txt {
	display: flex;
	gap: 1.6rem;
}

.p-history__event.-left:has(:not(.lead)) .txt {
	flex-direction: row-reverse;
}

.p-history__event.-left:has(:not(.lead)) .txt+.txt {
	flex-direction: row;
}

.p-history__event .line {
	display: block;
	width: 9rem;
	height: 1px;
	background-color: var(--c_dg);
	transform-origin: left center;
	transform: scaleX(0);
}

.p-history__event.-left .line {
	width: auto;
	flex-grow: 1;
	transform-origin: right center;
}

.p-history__event .lead .line {
	margin-top: 2rem;
}

.p-history__event:not(:has(.lead)) .line {
	margin-top: 1.3rem;
}

.p-history__event .img {
	transform: translate(0, 10%);
	opacity: 0;
	width: 35.2rem;
	margin-top: 2rem;
	margin-left: auto;
}

.p-history__event.-left .img {
	margin-left: 0;
}

.p-history__event .txt {
	font-feature-settings: "palt";
	letter-spacing: 0.05em;
}

.p-history__event .lead+.txt,
.p-history__event .txt+.txt {
	transform: translate(0, 10%);
	opacity: 0;
	margin-top: 0.5rem;
	margin-left: auto;
	padding: 0 0 0 10.6rem;
}

.p-history__event.-left .lead+.txt,
.p-history__event.-left .txt+.txt {
	margin-left: 0;
	padding: 0 calc(100% - 35.2rem) 0 0;
}

.p-history__event .img figcaption {
	text-align: center;
	font-size: 1.5rem;
	letter-spacing: 0.05em;
	padding-top: 0.7rem;
}

.p-history__event .conts {
	transform: translate(0, 10%);
	opacity: 0;
	display: flex;
	gap: 1rem;
	max-width: 40rem;
}

.p-history__event .conts .month {
	display: block;
	min-width: max-content;
}

.p-history__special {
	position: relative;
	padding-bottom: 1rem;
	background-color: var(--c_gy);
	z-index: 1;
}

.p-history__special:not(:last-of-type) {
	margin-bottom: 10rem;
}

.p-history__special .ttl {
	text-align: center;
	font-size: 2.5rem;
	font-weight: 450;

	color: var(--c_bl);
}

.p-history__special .txt {
	font-feature-settings: "palt";
	letter-spacing: 0.05em;
	text-align: center;
	max-width: 54.8rem;
	margin: 1.5rem auto 0;
}

.p-history__special .img {
	transform: translate(0, 10%);
	opacity: 0;
	max-width: 54.8rem;
	margin: 2rem auto 0;
}

.p-history__special .img figcaption {
	font-size: 1.5rem;
	letter-spacing: 0.05em;
	margin-top: 0.5rem;
}

.p-history__area .catch {
	position: relative;
	font-family: "Roboto Condensed", sans-serif;
	font-size: 7.2rem;
	font-weight: 200;
	font-style: italic;
	letter-spacing: 0.15em;
	padding-top: 9.6rem;
	color: var(--c_bl);
	/* background-color: var(--c_gy); */
	z-index: 1;
}

/*アクセス
	-------------------------------------------------------*/
#p-access {
	overflow: initial;
}

.p-access {
	text-align: left;
	max-width: 128.6rem;
	width: 90%;
	margin: 0 auto;
}

.p-access__wrap {
	display: flex;
	gap: 7.9rem;
}

.p-access aside {
	position: sticky;
	top: 0;
	width: 18.9rem;
	height: max-content;
}

.p-access aside a {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	font-size: 1.4rem;
	font-weight: 520;
	letter-spacing: 0.05em;
	color: #d9d9d9;
	padding: 1.7rem 1.6rem;
	height: 6rem;
	border-bottom: 1px solid #d9d9d9;
}

.p-access aside a.current {
	color: #fff;
}

.p-access aside a::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 6rem;
	border-radius: 0.2rem 0 0 0.2rem;
	background-color: transparent;
	clip-path: polygon(0% 0%, calc(100% - 2.5rem) 0%, 100% 50%, calc(100% - 2.5rem) 100%, 0% 100%);
	transition: .2s;
}

.p-access aside a:hover::before {
	background-color: #fff;
}

.p-access aside a.current::before {
	background-color: var(--c_bl);
}

.p-access aside .txt {
	position: relative;
	z-index: 1;
}

.p-access__item {
	width: min(92.8rem, calc(100% - (7.9rem + 18.9rem)));
}

.p-access__item .card {
	padding: 5rem 6.4rem;
	border-radius: 0.6rem;
	background-color: #fff;
}

.p-access__item .card+.card {
	margin-top: 5rem;
}

.p-access__detail {
	display: flex;
	align-items: center;
	gap: 2.5rem;
	margin-bottom: 3.8rem;
}

.p-access__detail h2 {
	position: relative;
	min-width: 29rem;
	font-size: 3.2rem;
	font-weight: 520;
	letter-spacing: 0.05em;
}

.p-access__detail h2 .sub {
	font-size: 2.2rem;
	font-weight: 400;
}

.p-access__detail h2::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 1px;
	height: 100%;
	background-color: var(--c_bk);
}

.p-access__detail .txt {
	flex-grow: 1;
}

.p-access__img {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 3.2rem;
}

.p-access__img .img {
	aspect-ratio: 384/277;
}

.p-access__img .img img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.p-access__img iframe {
	width: 100%;
	height: 100%;
}

/*お問い合わせ
	-------------------------------------------------------*/
#p-contact {
	overflow: initial;
}

.p-contact {
	text-align: left;
	max-width: 128.6rem;
	width: 90%;
	margin: 0 auto;
}

.p-contact__warning {
	position: relative;
	width: min(92.8rem, calc(100% - (3.2rem + 21.5rem)));
	padding: 2rem 3.4rem;
	border: 1px solid #a2a2a2;
	margin: 0 0 3.7rem calc(21.5rem + 3.2rem);
}

.p-contact__warning:first-of-type {
	margin-bottom: 2rem;
}

.p-contact__warning .lead {
	position: relative;
	display: flex;
	gap: 0.8rem;
	font-size: 1.8rem;
	letter-spacing: 0.05em;
	color: #E61414;
}

.p-contact__warning .lead::before {
	content: '';
	display: block;
	min-width: 2.2rem;
	min-height: 2.2rem;
	height: 2.2rem;
	background: url(../img/contact/warning.svg) no-repeat;
	background-size: contain;
	margin-top: 0.5rem;
}

.p-contact__warning .note {
	font-size: 1.4rem;
	letter-spacing: 0.05em;
}

.p-contact__warning .note a {
	text-decoration: underline;
	color: var(--c_bl);
}

.p-contact__warning .note a:hover {
	text-decoration: none;
}

.p-contact__wrap {
	display: flex;
	gap: 3.2rem;
}

.p-contact aside {
	position: sticky;
	top: 0;
	width: 21.5rem;
	height: max-content;
}

.p-contact aside .step {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	font-size: 1.7rem;
	font-weight: 520;
	letter-spacing: 0.05em;
	color: #d9d9d9;
	padding: 1.7rem 1.6rem;
	height: 6rem;
	gap: 3rem;
	border-bottom: 1px solid #d9d9d9;
}

.p-contact aside .step.current {
	position: relative;
	color: #fff;
	z-index: 1;
}

.p-contact aside .step::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 6rem;
	border-radius: 0.2rem 0 0 0.2rem;
	background-color: transparent;
	clip-path: polygon(0% 0%, calc(100% - 2.5rem) 0%, 100% 50%, calc(100% - 2.5rem) 100%, 0% 100%);
	transition: .2s;
}

.p-contact aside .step.current::before {
	background-color: var(--c_bl) !important;
}

.p-contact aside .txt {
	position: relative;
	letter-spacing: 0.15em;
	z-index: 1;
}

.p-contact aside .step .eng {
	position: relative;
	font-size: 1.7rem;
	font-weight: 450;
	letter-spacing: 0.05em;
	z-index: 1;
}

.p-contact aside .step.current .eng {
	color: var(--c_aq);
}

.p-contact__item {
	position: relative;
	width: min(92.8rem, calc(100% - (3.2rem + 21.5rem)));
	background-color: #fff;
	border-radius: 0.6rem;
	padding: 5rem 6.7rem;
}

.p-contact__item .note {
	display: flex;
	align-items: center;
	font-size: 1.5rem;
}

.p-contact__item .note span {
	font-size: 0.6rem;
}

.p-contact__item .formBox {
	margin-top: 3rem;
}

.p-contact__item .-red {
	color: #E61414;
}

.p-contact__item dl {
	display: flex;
	flex-wrap: wrap;
}

.p-contact__item dt {
	position: relative;
	width: calc(100% - 53rem);
	font-size: 1.8rem;
	font-weight: 450;
	letter-spacing: 0.05em;
	padding-top: 1rem;
}

.p-contact__item dt.req {
	display: flex;
	gap: 0.9rem;
}

.p-contact__item dt.req::after {
	content: '';
	display: inline-block;
	width: 0.8rem;
	height: 0.8rem;
	background-color: #E61414;
	border-radius: 50%;
	margin-top: 1rem;
}

.p-contact__item dd {
	width: 53rem;
}

.p-contact__item dd+dt,
.p-contact__item dt+dd:not(:first-of-type) {
	margin-top: 2.5rem;
}

.p-contact__item select,
.p-contact__item input,
.p-contact__item textarea {
	position: relative;
	width: 100%;
	background-color: var(--c_gy);
	border: 1px solid #CACACA;
	border-radius: 0.6rem;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	letter-spacing: 0.05em;
}

.p-contact__item textarea {
	padding: 1rem 2rem;
}

.p-contact__item select,
.p-contact__item input {
	height: 5.4rem;
	padding: 0 2rem;
}

.p-contact__item select {
	background: url(../img/contact/select_arrow.png) no-repeat;
	background-size: 2rem 1.1rem;
	background-position: center right 2rem;
	background-color: var(--c_gy);
}

.p-contact__item dd p:has([name="name01"]),
.p-contact__item dd p:has([name="gana01"]) {
	display: flex;
	gap: 1.1rem;
}

.p-contact__item dt+dd:has([name="adress01"]),
.p-contact__item dt+dd:has([name="adress02"]) {
	margin-top: 1rem;
}

.p-contact__item input[name="tel"],
.p-contact__item input[name="fax"],
.p-contact__item input[name="zip"],
.p-contact__item select[name="adress01"] {
	max-width: 22.1rem;
}

.p-contact__item label {
	display: flex;
	flex-direction: column;
	letter-spacing: 0.05em;
	color: var(--c_dg);
	margin: 0;
}

.p-contact__item label:hover {
	background-color: initial;
}

.p-contact__item .zipwrap p {
	display: flex;
	gap: 1.1rem;
}

.p-contact__item .zipBtn {
	width: 12rem;
	height: 5.4rem;
	color: #fff;
	background-color: var(--c_bl);
	border-radius: 0.6rem;
	margin-top: 2.7rem;
}

.p-contact__item .zipBtn:hover {
	background-color: var(--c_bk);
}

.p-contact__item .policyCheck .lead {
	font-size: 1.8rem;
	font-weight: 450;
	letter-spacing: 0.05em;
	margin-bottom: 1.3rem;
}

.p-contact__item .policyCheck .txt {
	font-size: 1.4rem;
}

.p-contact__item .policyCheck .head {
	font-size: 1.6rem;
	font-weight: 500;
	margin-top: 1.5rem;
	margin-bottom: 0.3em;
}

.p-contact__item .policyCheck ul li p {
	position: relative;
	font-size: 1.4rem;
	padding-left: 1em;
	text-indent: -1em;
}

.p-contact__item .policyCheck ul li p::before {
	content: '・';
}

.p-contact__item .policy {
	height: 23.6rem;
	background-color: #fff;
	border: 1px solid #CACACA;
	border-radius: 0.6rem;
	padding: 1.2rem 2.5rem;
	overflow-y: scroll;
}

.p-contact__item .checkbox {
	margin-top: 2rem;
}

.p-contact__item .checkbox label {
	align-items: center;
	flex-direction: row;
	gap: 0.6rem;
	font-size: 1.4rem;
	color: var(--c_bk);
}

.p-contact__item .checkbox input {
	width: 1.8rem;
	height: 1.8rem;
	border-radius: 0.2rem;
	border: 1px solid #CACACA;
	padding: 0;
}

.p-contact__item .formBtn {
	position: relative;
	max-width: 18.6rem;
	margin: 5.3rem auto 0;
}

.p-contact__item .formBtn+.formBtn {
	margin-top: 2rem;
}

.p-contact__item .formBtn input {
	text-align: left;
	color: #fff;
	height: 5.4rem;
	background-color: var(--c_bl);
	border-radius: 0.6rem;
	padding: 0 3rem;
	border: initial;
}

.p-contact__item .formBtn input.btn_back {
	text-align: right;
	background-color: var(--c_dg);
}

.p-contact__item .formBtn input:not([disabled]) {
	cursor: pointer;
}

.p-contact__item .formBtn input[disabled] {
	cursor: not-allowed;
	opacity: 0.5;
}

.p-contact__item .formBtn a {
	cursor: pointer;
	text-align: left;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	height: 5.4rem;
	background-color: var(--c_bl);
	border-radius: 0.6rem;
	padding: 0 6rem;
	background-color: var(--c_dg);
	font-size: 1.6rem;
	letter-spacing: 0.05em;
}


.p-contact__item .formBtn::after {
	content: "";
	position: absolute;
	top: 1.7rem;
	right: 3rem;
	background: rgba(255, 255, 255, .1) url(../img/arrow_wh.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	width: 2.1rem;
	transition: .2s;
}

.p-contact__item .formBtn:has(.btn_back):after {
	rotate: 180deg;
	right: initial;
	left: 3rem;
}

@media screen and (min-width: 781px) {
	.p-contact__item .formBtn:not(:has(input[disabled])):hover::after {
		transform: translateX(0.5rem);
	}
}

.formWrap.confirmWrap,
.formWrap.thanksWrap {
	display: none;
}

.p-contact__item .confirmWrap dt,
.p-contact__item .confirmWrap dd {
	border-bottom: 1px solid #CACACA;
}

.p-contact__item .confirmWrap dd+dt,
.p-contact__item .confirmWrap dt+dd:not(:first-of-type) {
	margin-top: 0;
}

.p-contact__item .confirmWrap .confirm {
	place-content: center left;
	min-height: 5.4rem;
	height: auto;
	padding: 1rem 0;
}

/*サイトマップ
	-------------------------------------------------------*/
.p-sitemap {
	max-width: 101.8rem;
	text-align: left;
	padding-bottom: 8.4rem;
	margin: 0 auto;
}

.p-sitemap .sitemap {
	display: flex;
	gap: 17rem;
}

.p-sitemap .list {
	display: flex;
	flex-direction: column;
	gap: 4rem;
}

.p-sitemap .link {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1.3rem;
	width: max-content;
}

.p-sitemap .link:hover {
	color: var(--c_bl);
}

.p-sitemap .link._top {
	font-size: 2rem;
	font-weight: 520;
	letter-spacing: 0.1rem;
}

.p-sitemap .link._head {
	font-size: 1.8rem;
	font-weight: 520;
	letter-spacing: 0.1rem;
}

.p-sitemap .link._head::before {
	content: '';
	align-self: baseline;
	display: block;
	width: 2rem;
	height: 2rem;
	background: url(../img/icon_sitemap.svg) center center no-repeat;
	background-size: cover;
	margin-top: 0.6rem;

}

.p-sitemap .link._top::after,
.p-sitemap .link._head::after {
	content: "";
	display: block;
	background: #ddd url(../img/arrow_bk.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	width: 2.1rem;
	transition: .2s;
	margin-top: 0.3rem;
}

.p-sitemap .link._detail {
	font-size: 1.6rem;
	letter-spacing: 0.1rem;
}

.p-sitemap .link._detail+.link._detail {
	margin-top: 1.5rem;
}

.p-sitemap .link._detail::after {
	content: "";
	display: block;
	background: url(../img/arrow_bk.svg) center center no-repeat;
	background-size: 45% auto;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	width: 2.1rem;
	transition: .2s;
	margin-top: 0.3rem;
}

@media screen and (min-width: 781px) {

	.p-sitemap .link._top:hover::after,
	.p-sitemap .link._head:hover::after {
		transform: translateX(0.5rem);
		background-color: var(--c_bl);
		background-image: url(../img/arrow_wh.svg);
	}

	.p-sitemap .link._detail:hover::after {
		transform: translateX(0.5rem);
	}
}

.p-sitemap .link._head+.link._detail {
	margin-top: 2rem;
}

/*privacy-policy
	-------------------------------------------------------*/
.p-privacypolicy {
	text-align: left;
}

.p-privacypolicy .lead {
	font-size: 2.6rem;
	margin-bottom: 1rem;
}

.p-privacypolicy .txt + .lead {
	margin-top: 4rem;
}

/*greetings
---------------------------------------------------------*/
#p-greetings {
	overflow: visible;
	padding: 12rem 0;
}

.p-greetings-message__box {
	display: grid;
	grid-template-columns: 39rem 1fr;
	gap: 0 8.3rem;
}

.p-greetings-message__wrap {
	text-align: left;
}

.p-greetings-message__img .img {
	position: sticky;
	display: block;
	top: 12rem;
}

.p-greetings-message__wrap h3 {
	font-size: 3.2rem;
	font-weight: 520;
	letter-spacing: .25em;
	line-height: 2;
	margin-bottom: 5.5rem;
}

.p-greetings-message__wrap h3 .line {
	position: relative;
	display: inline-block;
	color: #fff;
	padding: 0.4em 0 0.4em .5em;
	padding-left: 0.55em;
	line-height: 1.1;
	z-index: 1;

	clip-path: inset(0 100% 0 0);
	transition: .8s .6s cubic-bezier(.38, .07, 0, .98);
}

.p-greetings-message__wrap h3 .line:not(:first-of-type) {
	margin-top: 0.5rem;
}

.p-greetings-message__wrap h3 .line:nth-of-type(2) {
	transition-delay: .8s;
}

.p-greetings-message__wrap h3.act .line {
	clip-path: inset(0 0 0 0);
}

.p-greetings-message__wrap h3 .line::before {
	content: "";
	display: block;
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--c_bl);
}

.p-greetings-message__wrap h3 .line b {
	font-weight: 520;
	transition: .6s 1.2s;
}

.p-greetings-message__wrap h3.act .line b {
	color: var(--c_aq);
}

.p-greetings-message__wrap h4 {
	font-size: 2rem;
	font-weight: 520;
	letter-spacing: .25em;
	line-height: 1.8;
	margin-bottom: 2.5rem;
}

.p-greetings-message__wrap dd .txt {
	letter-spacing: 0.01em;
}

.p-greetings-message__name {
	margin-top: 3em;
	line-height: 1.8;
	letter-spacing: 0.1em;
}

.p-greetings-message__name strong {
	display: block;
	font-size: 150%;
	font-weight: 450;
	letter-spacing: 0.2em;
}

#p-philosophy {
	position: relative;
	color: #fff;
	padding-bottom: 0;
	margin-bottom: 15rem;
}

#p-philosophy::before {
	content: "";
	display: block;
	background: var(--c_bl);
	z-index: -99;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 18.9rem;
}

.p-philosophy__lead {
	display: flex;
	justify-content: space-between;
	gap: 2rem 7rem;
	text-align: left;
	margin-bottom: 10rem;
}

.p-philosophy__lead h3 {
	font-size: 3.2rem;
	font-weight: 520;
	letter-spacing: 0.15em;
	color: var(--c_aq);
	font-feature-settings: "halt";
	line-height: 1.6;
	width: fit-content;
}

.p-philosophy__lead .txt-lh {
	flex: 1;
	font-weight: 320;
}

.p-philosophy__wrap {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	position: relative;
	z-index: 1;
}

.p-philosophy__wrap li {
	position: relative;
	z-index: 1;
	font-feature-settings: "halt";
	letter-spacing: 0.1em;
	font-weight: 520;
	border-radius: 50%;
	background: var(--c_aq);
	aspect-ratio: 1;
	flex: 1;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-direction: column;
	padding-top: 18rem;
}

.p-philosophy__wrap li::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	aspect-ratio: 1;
	border: 1px solid #fff;
	inset: 1.2rem;
}

.p-philosophy__wrap li._02 {
	margin: 0 -1.8rem;
	background: #EAF8FC;
	justify-content: center;
	z-index: -1;
	padding: 0;
}

.p-philosophy__wrap li._02::before,
.p-philosophy__wrap li._02::after {
	content: "";
	display: block;
	position: absolute;
	border-radius: 0;
	border: none;
	inset: auto;
	background: url(../img/company/greetings/arrow.svg) center center no-repeat;
	background-size: contain;
	aspect-ratio: 22/16;
	width: 2.2rem;
	top: 50%;
	left: 2.5rem;
	transform: translateY(-50%);
	z-index: 1;
}

.p-philosophy__wrap li._02::after {
	left: auto;
	right: 2.5rem;
	transform: translateY(-50%) rotate(180deg);
}

.p-philosophy__wrap li._03 {
	background: var(--c_gr);
}

.p-philosophy__wrap li figure {
	max-width: 12.7rem;
	position: absolute;
	left: 0;
	right: 0;
	top: -4.5rem;
	margin: 0 auto;
	z-index: 1;
}

.p-philosophy__wrap li._03 figure {
	max-width: 16.2rem;
	top: -3.2rem;
}

.p-philosophy__wrap li h4 {
	display: inline-block;
	background: #fff;
	color: var(--c_aq);
	font-weight: 450;
	padding: .5rem 2rem .8rem;
	letter-spacing: 0.1em;
	font-size: 3rem;
	line-height: 1.1;
	margin-bottom: 2rem;
}

.p-philosophy__wrap li._03 h4 {
	color: var(--c_gr);
}

.p-philosophy__logo {
	position: relative;
	background: var(--c_wh);
	border-radius: 50%;
	width: 90%;
	max-width: 26rem;
	display: flex;
	justify-content: center;
	align-items: center;
	aspect-ratio: 1;
}

.p-philosophy__logo::before,
.p-philosophy__logo::after {
	content: "";
	display: block;
	border-radius: 50%;
	border: 1px solid var(--c_bl);
	position: absolute;
	inset: 1rem;
}

.p-philosophy__logo::after {
	inset: 2rem;
	border-width: 2px;
}

.p-philosophy__logo img {
	width: 16rem;
}

/*strengths
---------------------------------------------------------*/
#p-strengths-value {
	padding: 12rem 0 0;
}

#p-strengths-value .ttl {
	margin-bottom: 3.2rem;
}

#p-strengths-value .ttl .eng {
	font-size: 1.6rem;
	color: var(--c_bl);
}

#p-strengths-value .ttl h2 {
	font-size: 3.2rem;
	font-weight: 520;
	letter-spacing: 0.06em;
}

.p-strengths-value__list {
	position: relative;
	max-width: 99.2rem;
	display: flex;
	flex-wrap: wrap;
	gap: 2.4rem;
	margin: 0 auto;
	z-index: 1;
}

.p-strengths-value__list .item {
	width: calc((100% - 2.4rem * 4)/ 5);
}

.p-strengths-value__list .item .img {
	width: 13rem;
	aspect-ratio: 1/1;
	margin: 0 auto 1.6rem;
}

.p-strengths-value__list .item .lead {
	font-size: 1.8rem;
	font-weight: 520;
	letter-spacing: 0.12em;
	margin-bottom: 0.4rem;
}

.p-strengths-value__list .item .txt {
	font-size: 1.4rem;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.p-strengths-value._02 .p-strengths-value__list .item .txt {
	font-weight: 320;
}

.p-strengths-value .arrow {
	display: block;
	margin: 1.7rem auto;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 2.6rem 1.6rem 0 1.6rem;
	border-color: var(--c_bl) transparent transparent transparent;
}

.p-strengths-value .logo {
	width: 36rem;
	margin: 4rem auto;
}

.p-strengths-value._02 {
	position: relative;
	color: #fff;
	padding: 0 0 11rem;
}

.p-strengths-value._02::before {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 70%;
	background-color: var(--c_bl);
}

.p-strengths-value .catch {
	font-size: 4rem;
	font-weight: 520;
	letter-spacing: 0.05em;
	color: var(--c_bl);
}

.p-strengths-value .img._01 {
	position: relative;
	width: 50.1rem;
	margin: 0 auto;
	z-index: 1;
}

.p-strengths-value .img._02 {
	position: relative;
	width: 89.8rem;
	margin: -2rem auto 0;
	z-index: 1;
}

.p-strengths-value._02 .p-strengths-value__list {
	max-width: 105rem;
	gap: 7rem;
	margin-top: -1px;
}

.p-strengths-value._02 .p-strengths-value__list .item {
	width: calc((100% - 7rem * 4) / 5);
}

.p-strengths-value._02 .p-strengths-value__list .img {
	width: 100%;
}

.p-strengths-value._02 h3 {
	position: relative;
	font-size: 2rem;
	font-weight: 520;
	letter-spacing: 0.08rem;
	background-color: var(--c_aq);
	max-width: 105rem;
	margin: 4.6rem auto 0;
	border-radius: 0.4rem;
	padding: 0.8rem 0;
	z-index: 1;
}

#p-strengths-conts {
	position: relative;
	padding: 0;
	overflow: initial;
}

#p-strengths-conts .bg {
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	height: calc(100lvh + 2px);
	overflow: hidden;
	z-index: 0;
	pointer-events: none;
}

#p-strengths-conts .bg img {
	display: block;
	width: 100%;
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	object-position: bottom center;
}

#p-strengths-conts .bg picture {
	display: block;
	width: 100%;
	height: 100%;
}

.p-strengths-conts {
	position: relative;
	z-index: 1;
	text-align: left;
	max-width: 144rem;
	padding: 15rem 6.8rem 21rem 8.8rem;
	margin: -100lvh auto 0;
}

.p-strengths-conts__list {
	margin-top: 8.5rem;
}

.p-strengths-conts__list .item {
	position: relative;
	width: 78.6rem;
	color: #fff;
	background-color: var(--c_bl);
	border-radius: 0.6rem;
	padding: 3rem 5.9rem 4.7rem;
}

.p-strengths-conts__list .item:nth-of-type(odd) {
	margin-left: auto;
}

.p-strengths-conts__list .item:not(:first-of-type) {
	margin-top: 10rem;
}

.p-strengths-conts__list .item::before {
	content: '';
	position: absolute;
	top: -2.3rem;
	left: -3.2rem;
	width: 25.3rem;
	aspect-ratio: 253/178;
	background: url(../img/strengths/strengths_num.svg) no-repeat;
	background-size: cover;
}

.p-strengths-conts__list .item .num {
	position: absolute;
	top: 4.2rem;
	left: 2.9rem;
	font-size: 4.8rem;
	font-weight: 520;
}

.p-strengths-conts__list .item .ttl {
	display: flex;
	align-items: center;
	font-size: 3.2rem;
	font-weight: 520;
	line-height: 2;
	letter-spacing: 0.05em;
	padding: 0 0 3rem 19rem;
}

.p-strengths-conts__list .item .arrow {
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0.6rem 0 0.6rem 1.2rem;
	border-color: transparent transparent transparent #fff;
	margin: 0 1.6rem;
}

.p-strengths-conts__list .item .lead {
	font-size: 2rem;
	font-weight: 520;
	letter-spacing: 0.05em;
	margin: 3.2rem 0 0.8rem;
}

.p-strengths-conts__list .item .txt-lh {
	font-weight: 320;
}

.p-strengths-promise {
	position: relative;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	text-align: left;
	padding-left: 5.5rem;
}

.p-strengths-promise .box {
	width: 45.6rem;
}

.p-strengths-promise .eng {
	color: var(--c_aq);
}

.p-strengths-promise .ttl.eng {
	width: 100%;
	font-size: 2rem;
	margin-bottom: 5.4rem;
}

.p-strengths-promise h3 {
	font-size: 3.2rem;
	font-weight: 620;
	letter-spacing: 0.08em;
	margin-bottom: 1.7rem;
}

.p-strengths-promise__img {
	width: 45rem;
}

.p-strengths-promise .catch {
	font-size: 7.2rem;
	font-weight: 200;
	font-style: italic;
	white-space: nowrap;
	margin-top: 7.5rem;
}

.p-strengths-promise .img._02 {
	position: absolute;
	top: 15rem;
	left: -18rem;
	width: 16.5rem;
}

/*business
---------------------------------------------------------*/
#business-domains {
	position: relative;
	padding: 20rem 0 14rem;
}

#business-domains::before {
	content: '';
	display: block;
	position: absolute;
	transform-origin: center;
	bottom: -12rem;
	left: -22rem;
	width: 63.3rem;
	aspect-ratio: 1 / 1;
	background: url(../img/lower_bearing.png) center center no-repeat;
	background-size: cover;
	animation: l-bearing 20s linear infinite;
	-webkit-filter: brightness(0) invert(1);
	filter: brightness(0) invert(1);
}

.business-domains {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 3rem 6.5rem;
}

.business-domains__wrap {
	max-width: 50.5rem;
	text-align: left;
	color: #fff;
}

.business-domains__wrap h3 {
	font-size: 2.4rem;
	font-weight: 520;
	margin-bottom: 2rem;
	letter-spacing: 0.1em;
}

.business-domains__wrap .txt-lh {
	font-weight: 320;
}

.business-domains__img {
	width: 38.5rem;
	position: relative;
	z-index: 1;
}

.business-domains__img .img {
	max-width: 51.2rem;
	position: absolute;
	z-index: -1;
	top: 50%;
	right: -25rem;
	transform: translateY(-50%);
}

.business-domains__txt li {
	width: 100%;
	background: var(--c_gy);
	border-radius: 4px;
	padding: 2rem 1.5rem;
	text-align: left;
	font-weight: 520;
	display: grid;
	grid-template-columns: 4.2rem 1fr;
	align-items: center;
	gap: 1.5rem;
	clip-path: inset(0 100% 0 0);
	transition: .8s .6s cubic-bezier(.38, .07, 0, .98);
}

.business-domains__txt li:not(:first-of-type) {
	margin-top: 1.2rem;
}

.business-domains__txt li:nth-of-type(odd) {
	margin-left: -6.5rem;
}

.business-domains__txt li.act {
	clip-path: inset(0 0 0 0);
}

#business-domains-cont {
	padding: 12rem 0 20rem;
}

.business-domains-cont {
	position: relative;
	padding: 6rem 0 10rem;
}

.business-domains__cycle {
	max-width: 82rem;
	aspect-ratio: 1;
	margin: 0 auto;
	background: #EAF8FC;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}

.business-domains__cycle__cont {
	width: 90%;
	position: relative;
	z-index: 1;
	max-width: 58.5rem;
	aspect-ratio: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
}

.business-domains__cycle__cont .img {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--c_wh);
	overflow: hidden;
	border-radius: 50%;
	transition: 1.6s .8s cubic-bezier(.38, .07, 0, .98);
}

.business-domains-cont.act .business-domains__cycle__cont .img {
	transform: rotate(360deg);
}

.business-domains__cycle__cont .logo img {
	max-height: 3.2rem;
}

.business-domains__cycle__cont h3 {
	font-size: 4rem;
	font-weight: 700;
	color: var(--c_bl);
	line-height: 1.4;
	letter-spacing: 0.1em;
	text-indent: 0.1em;
	margin-top: 3rem;
}

.business-domains__cycle__cont .eng {
	font-size: 1.8rem;
	font-weight: 450;
	color: var(--c_aq);
	margin-top: 2rem;
}

.business-domains-cont__wrap {
	position: absolute;
	inset: 0;
	z-index: 5;
}

.business-domains-cont__wrap li {
	position: absolute;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 0 4rem;
	text-align: left;
	max-width: 42.6rem;
	transition: 1s 1s;
	opacity: 0;
}

.business-domains-cont__wrap li._01 {
	top: 0;
	left: 0;
}

.business-domains-cont__wrap li._02 {
	top: 0;
	right: -2rem;
}

.business-domains-cont__wrap li._03 {
	left: 0;
	right: 0;
	bottom: -3.5rem;
}

.business-domains-cont__wrap li.act {
	opacity: 1;
}

.business-domains-cont__ttl {
	display: flex;
	align-items: center;
	gap: 2rem;
	font-size: 1.4rem;
}

.business-domains-cont__ttl h3 {
	font-size: 170%;
	letter-spacing: 0.05em;
}

.business-domains-cont__ttl .num {
	font-size: 514%;
	font-weight: 450;
	color: var(--c_aq);
}

.business-domains-cont__wrap li .img {
	min-height: 38rem;
	display: flex;
	align-items: center;
	clip-path: inset(0 0 0 0);
}

.business-domains-cont__wrap li .img img {
	transition: 1s 1.2s cubic-bezier(.165, .84, .44, 1);
	opacity: 0;
	transform: translateY(25%);
}

.business-domains-cont__wrap li.act .img img {
	opacity: 1;
	transform: translateY(0);
}

.business-domains-cont__wrap li .box {
	max-width: 25rem;
	font-size: 1.4rem;
	font-feature-settings: "halt";
}

.business-domains-cont__wrap li .box h4 {
	font-size: 1.6rem;
	font-weight: 620;
	color: var(--c_bl);
	margin-bottom: 1rem;
}

.business-domains-cont__wrap li .c-more {
	margin-top: 2rem;
}

.business-domains-cont__wrap li._02 .box {
	margin-left: auto;
}

.business-domains-cont__wrap li._03 {
	max-width: none;
	flex-direction: row-reverse;
	align-items: flex-end;
}

.business-domains-cont__wrap li._03 .img {
	min-height: auto;
	width: 41.6%;
	margin-bottom: -3rem;
}

.business-domains-cont__wrap li._03 .business-domains-cont__ttl {
	margin-bottom: 3rem;
}

.business-domains-cont__wrap li._03 .box {
max-width: 26rem;
}

#p-business-nav {
	padding: 10rem 0;
}


/*business-sub
---------------------------------------------------------*/
.l-businessSub-lower {
	position: relative;
	padding: 8rem 0;
	background: var(--c_bl);
}

.l-businessSub-lower__inner {
	position: relative;
	color: #fff;
	text-align: left;
	z-index: 1;
}

.l-businessSub-lower__wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 11rem;
}

.l-businessSub-lower__wrap .box {
	flex: 1;
	max-width: 44.7rem;
}

.l-businessSub-lower__wrap h3 {
	font-size: 2.3rem;
	font-weight: 520;
	letter-spacing: .1em;
	margin-bottom: 3rem;
}

.l-businessSub-lower__wrap .box .txt-lh {
	font-weight: 320;
}

#p-engineering-lower .imgs {
	width: 54.1rem;
}

#p-engineering-lower .img._01 {
	max-width: 45rem;
}

#p-engineering-lower .img._02 {
	max-width: 22.7rem;
	margin-top: -2.6rem;
	margin-left: auto;
}

#p-trading-lower {
	padding: 17.3rem 0 8.4rem;
}

#p-trading-lower .l-businessSub-lower__wrap {
	align-items: flex-start;
}

#p-trading-lower .img._01 {
	max-width: 48rem;
	margin-left: 5.1rem;
}

#p-trading-lower .img._02 {
	position: absolute;
	top: -10rem;
	left: -15.5%;
	max-width: 15.2rem;
}

.l-businessSub-solutions {
	position: relative;
	background: var(--c_gy);
	padding: 10rem 0;
}

.l-businessSub-solutions .bg {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	width: 50%;
}

.l-businessSub-solutions .bg img {
	height: 100%;
	min-width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	transform: scale(1.01);
}

.l-businessSub-solutions__inner {
	position: relative;
	z-index: 1;
}

.l-businessSub-solutions__inner h2 {
	text-align: left;
	font-size: 1.8rem;
	font-weight: 400;
	color: var(--c_bl);
	margin-bottom: 5rem;
}

.l-businessSub-solutions__wrap {
	background: #fff;
	text-align: left;
	padding: 7rem;
	position: relative;
	border-radius: 0.6rem;
}

.l-businessSub-solutions__wrap h3 {
	background: var(--c_bl);
	color: #fff;
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: 0.1em;
	padding: 1rem 1.5rem;
	position: absolute;
	top: -2.5rem;
	left: 0;
	z-index: 1;
}

.l-businessSub-solutions__wrap ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-bottom: 3rem;
}

.l-businessSub-solutions__wrap ul li {
	border-radius: .4rem;
	font-weight: 520;
	display: grid;
	grid-template-columns: 5rem 1fr;
	align-items: center;
	gap: 1.5rem;
	background: #f5f5f5;
	padding: 2rem;
}

.l-businessSub-domains {
	padding: 15rem 0 10rem;
}

.l-businessSub-domains__wrap {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 5rem;
}

.l-businessSub-domains__wrap .box {
	width: 58.1818%;
	text-align: left;
}

.l-businessSub-domains__wrap .img {
	flex: 1;
	margin: 0 -15rem -10rem 0;
}

.l-businessSub-domains-cont {
	position: relative;
	overflow: hidden;
	padding: 0;
	min-height: calc(100lvh - 10rem);
}

.l-businessSub-domains-cont::before {
	content: "";
	position: absolute;
	display: block;
	top: 0;
	width: 100%;
	height: 100%;
	/* margin-bottom: calc(100dvh * -1); */
	background: url(../img/business/engineering/domains_bg.jpg) center center no-repeat;
	background-size: cover;
	z-index: -99;
}

#page-maintenance .l-businessSub-domains-cont::before {
	background: url(../img/business/maintenance/domains_bg.jpg) center center no-repeat;
	background-size: cover;
}

.l-businessSub-domains-cont .container {
	position: relative;
	padding: 0;
	height: 100%;
  display: flex;
  justify-content: center;
  flex-direction: column;
}

.l-businessSub-domains-cont h2 {
	font-size: 3.2rem;
	font-weight: 520;
	letter-spacing: .05em;
	text-align: left;
	color: var(--c_wh);
}

.l-businessSub-domains-cont__list {
	position: relative;
	display: flex;
	align-items: flex-start;
	will-change: transform;
}

.l-businessSub-domains-cont__item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 100%;
	width: 100%;
	padding: 2rem 3rem;
}

.l-businessSub-domains-cont__item .l-businessSub-domains-cont__wrap {
	position: relative;
	width: 100%;
	z-index: 1;
}

.l-businessSub-domains-cont__wrap .box {
	display: flex;
	align-items: center;
	gap: 5rem;
	background: var(--c_wh);
	border-radius: 1.6rem;
	padding: 5rem;
	box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .12);
	height: min(65rem, 60svh);
	min-height: 40rem;
}

.l-businessSub-domains-cont__wrap dl {
	flex: 0 1 42%;
	text-align: left;
}

.l-businessSub-domains-cont__wrap dt .eng {
	font-size: 1.4rem;
	font-weight: 400;
	letter-spacing: .08em;
	color: var(--c_bl);
	margin-bottom: .4rem;
}

.l-businessSub-domains-cont__wrap dt h3 {
	font-size: 2.4rem;
	font-weight: 520;
	color: var(--c_bl);
	letter-spacing: .05em;
	margin-bottom: 1.5rem;
}

.l-businessSub-domains-cont__wrap dd .txt-lh {
	font-size: 1.4rem;
	margin-bottom: 2rem;
}

.l-businessSub-domains-cont__wrap dd ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

.l-businessSub-domains-cont__wrap dd ul li {
	background: var(--c_gy);
	border-radius: .2rem;
	padding: .5rem 1rem;
	font-size: 1.4rem;
	font-weight: 400;
	color: var(--c_bl);
	text-align: center;
}

.l-businessSub-domains-cont__wrap figure.img {
	background-color: var(--c_gy);
	aspect-ratio: 1;
	flex: 1;
	align-self: stretch;
	overflow: hidden;
}

.l-businessSub-domains-cont__wrap figure.img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

#p-trading-domains .c-contsTtl,
#p-maintenance-domains .c-contsTtl {
	margin-bottom: 1.5rem;
}

.l-businessSub-domains__area {
	position: relative;
	max-width: 144rem;
	margin: 4.2rem auto 0;
	overflow: hidden;
}

.l-businessSub-domains__area .modal__btn {
	cursor: pointer;
	position: absolute;
	transform: translateZ(0);
	translate: -50% -50%;
	display: block;
	width: 5.8rem;
	aspect-ratio: 58/80;
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: 0.05em;
	color: #fff;
	padding: 1.6rem 0 0;
	filter: drop-shadow(0 0.1rem 0.1rem rgba(0, 0, 0, 0.1));
	transition: scale 0.2s ease, background-color 0.2s ease;

	-webkit-mask-image: url(../img/business/trading/pin.png);
	mask-image: url(../img/business/trading/pin.png);
	-webkit-mask-size: cover;
	mask-size: cover;
	background-color: #00B2DB;
}

@media (hover: hover) {
	.l-businessSub-domains__area .modal__btn:hover {
		scale: 1.05;
		background-color: #6CE3FF;
	}
}

.l-businessSub-domains__area .modal__btn[data-modal="modal01"] {
	top: 18.5%;
	left: 50.9%;
}

.l-businessSub-domains__area .modal__btn[data-modal="modal02"] {
	top: 45%;
	left: 82.8%;
}

.l-businessSub-domains__area .modal__btn._01[data-modal="modal03"] {
	top: 61.1%;
	left: 30%;
}

.l-businessSub-domains__area .modal__btn._02[data-modal="modal03"] {
	top: 77.5%;
	left: 36.1%;
}

.l-businessSub-domains__area .modal__btn[data-modal="modal04"] {
	top: 55.4%;
	left: 53.7%;
}

.l-businessSub-domains__area .modal__btn[data-modal="modal05"] {
	top: 31.4%;
	left: 32%;
}

.l-businessSub-domains__area .modal__btn[data-modal="modal06"] {
	top: 15.4%;
	left: 22.1%;
}

.l-businessSub-domains__area .modal__btn[data-modal="modal07"] {
	top: 12.6%;
	left: 74.7%;
}

.l-businessSub-domains__area .modal__btn[data-modal="modal08"] {
	top: 15.6%;
	left: 58%;
}

.l-businessSub-domains__area .modal__btn[data-modal="modal09"] {
	top: 28%;
	left: 74.3%;
}

.l-businessSub-flow {
	overflow: hidden;
	min-height: 100dvh;
	display: flex;
	align-items: center;
	padding: 10rem 0 21rem;
	color: #fff;
	position: relative;
	background: url(../img/business/engineering/flow_bg.png) bottom center repeat-x;
	background-size: auto 25rem;
	background-color: var(--c_bl);
}

.l-businessSub-flow__lead {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 3rem;
}

.l-businessSub-flow__lead .c-contsTtl {
	margin-bottom: 0;
}

.l-businessSub-flow__nav {
	display: flex;
	align-items: center;
	gap: .8rem;
	opacity: 1;
	transition: .2s 0s;
}

.l-businessSub-flow__nav.hidden {
	opacity: 0;
	pointer-events: none;
}

.l-businessSub-flow__nav ul {
	display: flex;
	align-items: center;
	width: 20rem;
}

.l-businessSub-flow__nav ul li {
	flex: 1;
	height: 2px;
	background: rgba(255, 255, 255, .2);
	transition: .4s;
}

.l-businessSub-flow__nav ul li.act {
	background: var(--c_aq);
}

.l-businessSub-flow__nav .counter {
	font-size: 1.2rem;
	font-weight: 400;
	letter-spacing: .05em;
	white-space: nowrap;
}

.l-businessSub-flow__wrap {
	display: flex;
	align-items: flex-start;
	gap: 0 10rem;
	will-change: transform;
}

.l-businessSub-flow__item {
	flex: 0 0 auto;
	width: 48rem;
	text-align: left;
	position: relative;
}

.l-businessSub-flow__item .img {
	margin-bottom: 2rem;
	position: relative;
}


@media screen and (min-width: 781px) and (max-height: 50vw) {
	.l-businessSub-flow__item .img {
		height: 30lvh;
	}

	.l-businessSub-flow__item .img img {
		object-fit: cover;
		object-position: center;
		width: 100%;
		height: 100%;
	}
}

.l-businessSub-flow__item__line {
	display: block;
	background: var(--c_aq);
	width: 10rem;
	height: 1px;
	position: absolute;
	right: 100%;
	top: 33%;
	transform-origin: left center;
	transform: scaleX(0);
}

.l-businessSub-flow__item dt {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	margin-bottom: 1rem;
}

.l-businessSub-flow__item dt .num {
	font-size: 2.4rem;
	font-weight: 450;
	color: var(--c_aq);
}

.l-businessSub-flow__item dt h3 {
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: .05em;
}

.l-businessSub-flow__item .txt-lh {
	font-weight: 320;
}

.l-businessSub-flow__item-last {
	width: 100%;
	display: grid;
	grid-template-columns: 1fr 48rem;
	align-items: start;
	gap: 2rem 10rem;
	text-align: left;
	margin-left: 33vw;
}

.l-businessSub-flow__item-last__line {
	display: block;
	background: var(--c_aq);
	height: 1px;
	width: 0;
	position: absolute;
	right: calc(100% + 10px);
	top: 33%;
	transform-origin: left center;
}

.l-businessSub-flow__item-last .box h3 {
	font-size: 3.2rem;
	font-weight: 520;
	letter-spacing: .05em;
	margin-bottom: 3rem;
}

.l-businessSub-flow__item-last .box .txt-lh {
	max-width: 46rem;
}

.l-businessSub-flow__item-last .box .eng {
	font-size: 7.2rem;
	font-weight: 200;
	font-style: italic;
	white-space: nowrap;
	color: var(--c_aq);
	margin-top: 12rem;
	margin-right: -27rem;
}

.l-businessSub-flow__item-last__img {
	position: relative;
	z-index: 1;
}

.l-businessSub-flow__item-last__img .img {
	margin: 0;
}

.l-businessSub-flow__item-last__img .img._02 {
	position: absolute;
	max-width: 23.8rem;
	bottom: -9rem;
	right: -8rem;
	z-index: 1;
}

.l-businessSub-bnr__wrap {
	display: grid;
	grid-template-columns: 1fr 45rem;
	gap: 2rem 7rem;
	background: var(--c_bl);
	text-align: left;
	padding: 5rem;
	color: var(--c_wh);
	border-radius: .6rem;
}

.l-businessSub-bnr__wrap dt .eng {
	font-weight: 400;
	color: var(--c_aq);
	margin-bottom: 1rem;
}

.l-businessSub-bnr__wrap dt h2 {
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: 0.05em;
	margin-bottom: 2rem;
}

.l-businessSub-bnr__wrap .txt-lh {
	font-weight: 320;
}

.l-businessSub-bnr__wrap .thumb {
	aspect-ratio: 720/386;
	display: block;
}

.l-businessSub-bnr__wrap .thumb h3 {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(0, 0, 0, .5);
	color: #fff;
	font-size: 2rem;
	font-weight: 520;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	text-align: center;
	transition: .2s;
}

.l-businessSub-bnr__wrap .thumb::after {
	content: "";
	display: block;
	border-radius: 50%;
	aspect-ratio: 1;
	width: 2.2rem;
	background: var(--c_gy) url(../img/blank_bl.svg) center center no-repeat;
	background-size: 40% auto;
	position: absolute;
	right: 1.5rem;
	bottom: 1.5rem;
	z-index: 5;
}

.l-businessSub-bnr__wrap .thumb:hover h3 {
	background-color: rgba(0, 0, 0, .3);
}

/*maintenance
---------------------------------------------------------*/
.p-maintenance-cycle {
	background: #fff;
	padding: 20rem 0 12rem;
}

.p-maintenance-cycle .container {
	max-width: 120rem;
	width: 100%;
}

.p-maintenance-cycle__wrap {
	position: relative;
	padding: 17.5rem 0 13rem;
	margin-bottom: 10rem;
	container-type: inline-size;
}

.p-maintenance-cycle__ttl {
	position: relative;
	width: 37.5cqw;
	margin: 0 auto;
}

.p-maintenance-cycle__ttl figure {
	transition: 1.6s .8s cubic-bezier(.38, .07, 0, .98);
}

.p-maintenance-cycle__wrap.act .p-maintenance-cycle__ttl figure {
	transform: rotate(360deg);
}

.p-maintenance-cycle__ttl .box {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: 1em;
	clip-path: inset(0 0 0 0);
	width: max-content;
}

.p-maintenance-cycle__wrap .p-maintenance-cycle__ttl .box * {
	transition: 1s 1.2s cubic-bezier(.165, .84, .44, 1);
	transform: translateY(150%);
}

.p-maintenance-cycle__wrap.act .p-maintenance-cycle__ttl .box * {
	transform: translateY(0);
}

.p-maintenance-cycle__ttl .box h2 {
	font-size: 3.6rem;
	font-weight: 700;
	color: var(--c_bl);
	line-height: 1.5;
}

.p-maintenance-cycle__ttl .box .eng {
	font-size: 1.8rem;
	font-weight: 450;
	color: var(--c_aq);
}

.p-maintenance-cycle__list {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.p-maintenance-cycle__item {
	position: absolute;
	display: flex;
	align-items: center;
	text-align: left;
	min-height: 22.7rem;
	transition: 1s 1s;
	opacity: 0;
	transform: translateX(-3rem);
}

.p-maintenance-cycle__item.act {
	opacity: 1;
	transform: translateX(0) !important;
}

.p-maintenance-cycle__item:nth-of-type(-n+3) {
	flex-direction: row-reverse;
	transform: translateX(3rem);
}

.p-maintenance-cycle__item._01 {
	top: 0;
	right: 7%;
	--ring-color: #00b2db;
}

.p-maintenance-cycle__item._02 {
	top: 34%;
	right: 0;
	--ring-color: #0096db;
}

.p-maintenance-cycle__item._03 {
	bottom: 0;
	right: 8%;
	--ring-color: #0b7fdd;
}

.p-maintenance-cycle__item._04 {
	bottom: 0;
	left: 2%;
	--ring-color: #1372d8;
}

.p-maintenance-cycle__item._05 {
	left: 0;
	top: 34%;
	--ring-color: #004184;
}

.p-maintenance-cycle__item._06 {
	top: 0;
	left: 6%;
	--ring-color: #002f5e;
}

.p-maintenance-cycle__item .ttl {
	display: flex;
	align-items: center;
	gap: 1rem;
	position: relative;
	padding-bottom: 1rem;
	padding-left: 2rem;
}

.p-maintenance-cycle__item .ttl .num {
	font-size: 2.4rem;
	font-weight: 450;
	color: var(--c_aq);
}

.p-maintenance-cycle__item .ttl h3 {
	font-size: 2rem;
	font-weight: 520;
	color: var(--c_bl);
}

.p-maintenance-cycle__item .ttl .bdr {
	display: block;
	height: 1px;
	background: var(--c_bl);
	position: absolute;
	bottom: 0;
	left: -2rem;
	right: 0;
}

.p-maintenance-cycle__item:nth-of-type(-n+3) .ttl .bdr {
	left: 0;
	right: -2rem;
}

.p-maintenance-cycle__item:nth-of-type(-n+3) .ttl {
	padding-left: 0;
	padding-right: 2rem;
}

.p-maintenance-cycle__item .ttl .bdr .bdr02 {
	display: block;
	height: 1px;
	background: var(--c_bl);
	position: absolute;
	left: 100%;
	top: 0;
	transform-origin: left top;
	transform: rotate(55deg);
	width: 11rem;
}

.p-maintenance-cycle__item:nth-of-type(-n+3) .ttl .bdr .bdr02 {
	left: auto;
	right: 100%;
	transform-origin: right top;
	transform: rotate(-55deg);
}

.p-maintenance-cycle__item:nth-of-type(2) .ttl .bdr .bdr02 {
	transform: rotate(0deg);
	width: 5rem;
}

.p-maintenance-cycle__item:nth-of-type(3) .ttl .bdr .bdr02 {
	transform: rotate(55deg);
}

.p-maintenance-cycle__item:nth-of-type(4) .ttl .bdr .bdr02 {
	transform: rotate(-55deg);
}

.p-maintenance-cycle__item:nth-of-type(5) .ttl .bdr .bdr02 {
	transform: rotate(0deg);
	width: 13rem;
}

.p-maintenance-cycle__item .ttl .bdr .bdr02::after {
	content: "";
	display: block;
	width: 1rem;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--c_bl);
	position: absolute;
	right: -.5rem;
	bottom: -.5rem;
}

.p-maintenance-cycle__item:nth-of-type(-n+3) .ttl .bdr .bdr02::after {
	right: auto;
	bottom: auto;
	left: -0.5rem;
	top: -0.5rem;
}

.p-maintenance-cycle__item figure {
	position: relative;
	z-index: 1;
	margin-bottom: -5.5rem;
	clip-path: inset(0 0 0 0);
}

.p-maintenance-cycle__item figure img {
	transition: 1s 1.2s cubic-bezier(.165, .84, .44, 1);
	transform: translateY(25%);
}

.p-maintenance-cycle__item.act figure img {
	transform: translateY(0);
}


.p-maintenance-cycle__item._01 figure {
	max-width: 20.2rem;
}

.p-maintenance-cycle__item._02 figure {
	max-width: 17.166666666666668cqw;
}

.p-maintenance-cycle__item._03 figure {
	max-width: 18rem;
}

.p-maintenance-cycle__item._04 figure {
	max-width: 19.9rem;
}

.p-maintenance-cycle__item._05 figure {
	max-width: 12.5rem;
}

.p-maintenance-cycle__item._06 figure {
	max-width: 21.1rem;
}

.p-maintenance-cycle__btm {
	border: 1px solid var(--c_bl);
	text-align: justify;
	padding: 6rem 7rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-direction: row-reverse;
	gap: 2rem 6rem;
	max-width: 110rem;
	margin: 0 auto;
}

.p-maintenance-cycle__btm .img {
	width: 45rem;
}

.p-maintenance-cycle__btm .box {
	flex: 1;
	text-align: left;
}

.p-maintenance-cycle__btm .box h3 {
	font-size: 2.4rem;
	letter-spacing: 0.05em;
	color: var(--c_bl);
	margin-bottom: 2rem;
}

#p-maintenance-lower {
	padding: 12.8rem 0;
}

#p-maintenance-lower .img._01 {
	max-width: 48rem;
	margin-left: 6.3rem;
}

#p-maintenance-lower .img._02 {
	position: absolute;
	bottom: -34%;
	left: -20%;
	max-width: 22.5rem;
	height: max-content;
}

/*trading
---------------------------------------------------------*/
#p-product {
	padding: 0 0 14rem;
}

.p-product {
	max-width: 112.5rem;
	text-align: left;
}

.p-product-ttl {
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: 0.12em;
	margin-bottom: 3.2rem;
}

.p-product-box {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 4.8rem 0;
}

.p-product-wrap {
	display: flex;
	gap: 1.6rem;
	width: 36rem;
	padding-left: 4rem;
	border-left: 1px solid #D9D9D9;
}

.p-product-wrap:nth-child(3n + 1) {
	width: 31.2rem;
	padding-left: 0;
	border-left: none;
}

.p-product-wrap .sub-ttl {
	min-width: 12.4rem;
	font-size: 1.6rem;
	font-weight: 520;
	color: var(--c_bl);
}

.p-product-wrap .sub-ttl .num {
	display: block;
	font-size: 2.4rem;
	font-weight: 450;
	letter-spacing: 0.04em;
	color: var(--c_aq);
}

.p-product-wrap .list li {
	position: relative;
	padding-left: 1.2em;
	text-indent: -1.2em;
}

.p-product-wrap .list li::before {
	content: '● ';
	color: var(--c_bl);
}

#p-private {
	position: relative;
	text-align: left;
	padding: 12rem 0;
	color: #fff;
}

#p-private .object {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 72.9rem;
}

.p-private__img {
	position: relative;
	width: 128rem;
	margin-left: -16rem;
}

.p-private .attention {
	text-align: right;
	font-size: 1.2rem;
	margin-top: 1rem;
	letter-spacing: 0.05em;
}

.p-private .box h3 {
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: 0.12em;
	margin-bottom: 2.4rem;
}

.p-private .box .txt-lh {
	max-width: 66rem;
	font-weight: 320;
}

#p-point {
	text-align: left;
	padding: 0;
}

.p-point {
	padding: 12rem 0;
}

.p-point .container {
	max-width: 112rem;
}

.p-point__conts {
	display: flex;
	gap: 12.8rem;
}

.p-point._01 .p-point__img {
	width: 51.2rem;
	margin-left: -16rem;
}

.p-point._02 .p-point__img {
	min-width: 35.2rem;
	width: 35.2rem;
}

.p-point .box {
	min-width: 64.1rem;
	width: 64.1rem;
}

.p-point .box h3 {
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: 0.12em;
	margin-bottom: 1.6rem;
}

.p-point .box h3 .num {
	display: block;
	color: var(--c_bl);
	font-size: 1.6rem;
	letter-spacing: 0.04em;
}

.p-point._01 .box .needslist {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
	margin-top: 7.2rem;
}

.p-point._01 .box .needslist li {
	display: grid;
	grid-template-columns: 5rem 1fr;
	align-items: center;
	gap: 1.8rem;
	background-color: var(--c_gy);
	border-radius: 0.4rem;
	padding: 2rem;
	font-weight: 520;
	line-height: 1.5;
}

.p-point._02 .taskslist {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	color: #fff;
	background-color: var(--c_bl);
	margin-top: 8rem;
	border-radius: 0.5rem;
	padding: 1.8rem 2.3rem;
}

.p-point._02 .taskslist li {
	display: flex;
	align-items: center;
	gap: 1.4rem;
	font-size: 1.8rem;
	font-weight: 520;
	letter-spacing: 0.05em;
	line-height: 1.5;
	padding: 1rem 1.4rem;
	border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.p-point._02 .taskslist li:nth-child(3n + 1) {
	border-left: none;
}

.p-point._02 .taskslist li:not(:nth-last-child(-n + 3)) {
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.p-point._02 .taskslist figure {
	width: auto;
	height: 10rem;
}

.p-point._02 .taskslist figure img {
	object-fit: contain;
	width: auto;
	height: 100%;
}

#l-modal._trading {
	background-color: rgba(0, 0, 0, 0.2);
}

#l-modal._trading .modal {
	text-align: left;
	width: 54.4rem;
	padding: 3.2rem 3.2rem 17.5rem;
}

#l-modal._trading .modal .ttl {
	display: flex;
	align-items: center;
	gap: 1.6rem;
	font-size: 2.4rem;
	font-weight: 520;
	letter-spacing: 0.01em;
	color: var(--c_bl);
	margin-top: 2.7rem;
}

#l-modal._trading .modal .ttl .num {
	color: var(--c_aq);
	font-weight: 450;
	padding-top: 0.3rem;
	min-width: max-content;
}

#l-modal._trading .modal .taglist {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem 0.6rem;
	margin-top: 1.6rem;
}

#l-modal._trading .modal .tag {
	font-size: 1.6rem;
	padding: 0 1.2rem;
	background-color: var(--c_gy);
	border-radius: 0.4rem;
}

/*ieハック*/
@media screen\0 {}

/*********************************/
/* タブレット用のスタイル記述 */
/*********************************/
@media screen and (max-width: 1150px) {
	html {
		font-size: .8vw;
	}
}

/*********************************/
/* スマートフォン用のスタイル記述 */
/*********************************/
@media screen and (max-width: 780px) {

	/*全体レイアウト
---------------------------------------------------------*/
	html {
		font-size: 2.7777777vw;
	}

	body {
		font-size: 1.4rem;
		line-height: 1.5
	}

	article>section {
		padding: 6rem 0;
	}

	.c-secTtl {
		margin-bottom: 3rem;
	}

	.c-secTtl h2 {
		font-size: 1.4rem;
		gap: .5rem;
	}

	.c-secTtl h2::before {
		width: 2.2rem;
	}

	.c-secTtl .eng {
		font-size: 4rem;
	}

	.c-more {
		margin-top: 2em;
	}

	.c-contsTtl {
		margin-bottom: 3rem;
	}

	.c-contsTtl .eng {
		font-size: 1.2rem;
		gap: .5rem;
	}

	.c-contsTtl .eng::before {
		width: 1rem;
		height: 1rem;
	}

	.c-contsTtl h2 {
		font-size: 2.6rem;
	}



	/*header
	-------------------------------------------------------*/
	.l-header__wrap {
		padding: 1rem 1.5rem;
		height: 5.6rem;
	}

	.l-header__logo img {
		max-height: 3rem;
	}

	.l-header__logo .logo {
		gap: .5rem .7rem;
	}

	.l-header__logo__txt {
		font-size: 1rem;
		padding: .3rem;
	}

	.l-header__logo .txt {
		margin-bottom: 0;
	}

	.menuIconWrap {
		display: block;
		position: fixed;
		top: 0;
		right: 0;
		width: 5.6rem;
		aspect-ratio: 1;
		background: var(--c_bl);
		z-index: 90000;
		transition: .4s;
	}

	#index .menuIconWrap {
		visibility: hidden;
		opacity: 0;
	}

	#index .l-header:not(.scrl)+.menuIconWrap {
		background: transparent;
	}

	#index .l-header:not(.scrl)+.menuIconWrap.active {
		background-color: var(--c_bl);
	}

	.menuIcon {
		position: absolute;
		top: 50%;
		right: 0;
		left: 0;
		transform: translateY(-50%);
		margin: 0 auto;
		width: 3rem;
		height: 2.2rem;
		z-index: 10;
		cursor: pointer;
		display: block;
	}

	.menuIcon span {
		position: absolute;
		left: 0;
		width: 100%;
		height: .2rem;
		background: #fff;
		z-index: 10;
		transition: .2s;
	}

	.menuIcon span:nth-of-type(1) {
		top: 0px;
	}

	.menuIcon span:nth-of-type(2) {
		top: 1rem;
	}

	.menuIcon span:nth-of-type(3) {
		bottom: 0px;
	}

	.menuIcon.active span {
		background: #fff !important
	}

	.menuIconWrap.active span:nth-of-type(1) {
		-webkit-transform: translateY(1rem) rotate(45deg);
		transform: translateY(1rem) rotate(45deg);
	}

	.menuIconWrap.active span:nth-of-type(2) {
		opacity: 0;
	}

	.menuIconWrap.active span:nth-of-type(3) {
		-webkit-transform: translateY(-1rem) rotate(-45deg);
		transform: translateY(-1rem) rotate(-45deg);
	}

	.l-header__nav {
		position: fixed;
		top: 0;
		bottom: 0;
		right: 0;
		z-index: 10;
		width: 100%;
		height: 100%;
		transition: all 0.3s ease-in-out;
		overflow-y: auto;
		overflow-x: hidden;
		-webkit-overflow-scrolling: touch;
		display: block;
		padding: 0;
		padding-top: 5.6rem;
		font-size: 1.4rem;
		background: rgba(255, 255, 255, .8);
		backdrop-filter: blur(7px);
		visibility: hidden;
		opacity: 0;
	}

	.l-header__nav.active {
		right: 0;
		opacity: 1;
		-moz-transform: translateX(0);
		-webkit-transform: translateX(0);
		transform: translateX(0);
		visibility: visible;
		z-index: 9990;
	}

	.l-header__nav nav {
		display: flex;
		flex-direction: column-reverse;
	}

	.l-nav,
	.l-nav__sub {
		margin: auto;
		display: block;
		width: 100%;
		padding: 0;
	}

	.l-nav__sub {
		border-bottom-color: #f1f1f1;
	}

	.l-nav>li,
	.l-nav__sub>li {
		border-top: 1px solid #f1f1f1;
	}

	.l-nav>li>a,
	.l-nav__sub>li>a {
		text-align: left;
		display: block;
		width: 100%;
		position: relative;
		padding: 1.7rem 2rem;
	}

	.l-nav>li:not(.acdn)>a::after {
		content: "";
		display: block;
		background: url("../img/arrow_bk.svg") center center no-repeat;
		background-size: contain;
		width: 1.2rem;
		aspect-ratio: 8/6;
		position: absolute;
		right: 2rem;
		top: 50%;
		transform: translateY(-50%);
	}

	.l-nav .acdn a {
		display: flex;
		justify-content: space-between;
	}

	.l-nav .acdn ul {
		display: none;
		position: relative;
		top: auto;
		left: auto;
		transform: none;
		background: #f9f9f9;
		border-top: none;
		border-left: 3px solid var(--c_bl);
		clip-path: none;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transition: none;
		box-shadow: none;
	}

	.l-nav .acdn ul a {
		font-size: 90%;
		padding: 1.5rem 2rem
	}

	.l-nav .acdn.open>a::after {
		transform: rotate(180deg);
	}

	.l-nav__btn {
		max-width: 90%;
		margin: 2rem auto 0;
	}

	/*footer
	-------------------------------------------------------*/



	.l-modal .modal {
		max-width: initial;
		padding: 4rem 2rem 6rem;
	}

	.l-modal .modal[data-modal="chiikimirai"] .l-modal_logo {
		width: 12.1rem;
	}

	.l-modal .modal[data-modal="keizokuryoku"] .l-modal_logo {
		width: 8.4rem;
	}

	.l-modal .modal[data-modal="kenkokeiei"] .l-modal_logo {
		width: 18.8rem;
	}

	.l-modal_logo {
		margin: 0 auto 2rem;
	}

	.l-modal_ttl {
		font-size: 2rem;
	}

	.l-modal_ttl.alnleft {
		font-size: 2rem;
		margin-bottom: 2.8rem;
	}



	.l-modal_intro {
		padding: 4rem 2rem;
		margin: 3rem auto;
	}

	.l-modal_lead {
		font-size: 1.6rem;
	}

	.l-modal_lead+.l-modal_lead {
		margin-top: 2.8rem;
	}







	.l-modal dt {
		font-size: 1.6rem;
	}

	.l-modal dd+dt {
		margin-top: 2rem;
	}



	.l-modal li {
		padding: 2rem 0 2rem 3rem;
		text-indent: -1.5rem;
	}



	.l-modal li::before {
		font-size: 1.8rem;
		padding-right: 1rem;
	}

	.l-modal ol+.l-modal_lead {
		margin-top: 3.7rem;
	}

	.l-modal_imgs:has(:not(:only-child)) {
		grid-template-columns: repeat(1, 1fr);
		margin-top: 3.2rem;
	}

	.l-modal_imgs+.txt {
		margin-top: 3rem;
	}

	.l-modal_imgs:has(:only-child) {
		max-width: initial;
		margin: 3.4rem auto 0;
	}

	.l-modal__declaration {
		display: block;
		margin-top: 3.6rem;
	}

	.l-modal__declaration .note {
		font-size: 1.2rem;
		margin-bottom: 2rem;
	}

	.l-modal__declaration .img {
		width: 80%;
		margin: 0 auto;
	}

	.l-modal__declaration .rht {
		margin: 2rem auto 0;
	}





	.l-modal_close {
		right: 2rem;
		bottom: 2rem;
	}





	#l-contact {
		padding: 5rem 0 3rem;
		text-align: center;
	}

	.l-contact {
		flex-direction: column;
	}

	.l-contact .c-secTtl {
    margin-bottom: 2rem;
  }

	.l-contact__box {
		width: 100%;
	}

	.l-contact__cont {
		width: 100%;
	}

	.l-contact__cont li a {
		height: auto;
		grid-template-columns: repeat(1, 1fr);
		gap: 1rem;
		padding: 1.5rem 3rem;
	}

	.l-footer {
		padding: 5rem 0;
	}

	.l-footer__wrap {
		flex-direction: column;
	}

	.l-footer__logo {
		max-width: 100%;
		text-align: center;
	}

	.l-footer__logo .logo img {
		max-height: 5rem;
	}

	.l-footer__nav {
		display: block;
	}

	.l-footer__nav>ul {
		display: flex;
		flex-wrap: wrap;
		gap: 0 2rem;
	}

	.l-footer__nav .child ul {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 0 1.5rem;
	}

	.l-footer__nav .child ul a {
		font-size: 87.5%
	}

	.l-footer__nav li,
	.l-footer__nav .child li {
		margin-top: 2rem;
	}

	.l-footer__sns {
		margin-top: 3rem;
		justify-content: center;
	}

	.l-footer__sns img {
		max-height: 4rem;
	}

	.l-footer__bnr {
		margin-top: 2rem;
		grid-template-columns: repeat(1, 1fr);
	}

	.copyright {
		font-size: 1rem;
	}

	.l-pagetop {
		bottom: -.5rem;
	}

	/*下層FV
---------------------------------------------------------*/
	.l-fv:before {
		width: 35.3rem;
		background: url(../img/lower_bearing_sp.png) center center no-repeat;
		background-size: cover;
	}

	.l-fv__inner {
		padding: 0 calc((100% - 90%) / 2) 1.2rem;
	}

	.l-fv .ttl {
		padding: 10rem 0 4rem;
	}

	.l-fv .ttl .eng {
		font-size: 1.4rem;
		gap: .5rem;
	}

	.l-fv .ttl .eng::before {
		width: 2.2rem;
	}

	.l-fv .ttl h1 {
		font-size: 3rem;
	}

	.l-fv .bg {
		aspect-ratio: 375/200;
	}

	.l-fv .bg img {
		object-fit: cover;
		height: 100%;
	}



	.lb-fv__inner {
		padding: 0 calc((100% - 90%) / 2);
	}

	.lb-fv__conts {
		margin-top: 1.5rem;
	}



	.lb-fv__conts .bg::before {
		width: 70%;
	}





	.lb-fv .ttl .eng {
		font-size: 1.4rem;
		gap: .5rem;
	}

	.lb-fv .ttl .eng::before {
		width: 2.2rem;
	}

	.lb-fv .ttl h1 {
		font-size: 3rem;
	}

	.lb-fv h2 {
		font-size: 2rem;
	}

	.lb-fv .txt-lh {
		margin-top: 2rem;
	}

	/*下層 Other Pages
---------------------------------------------------------*/
	.l-other {
		padding: 6rem 0;
	}

	.l-other ul {
		grid-template-columns: repeat(1, 1fr);
		gap: 4rem;
	}

	.l-other ul li .txt {
		font-size: 1.6rem;
	}

	/*下層 layout
	-------------------------------------------------------*/

	.l-page-lower__wrap {
		padding: 8rem 0;
	}

	.l-page-lower__wrap h2 {
		font-size: 2rem;
		margin-bottom: 4rem;
	}

	.l-page-lower__wrap .txt-lh {
		font-size: 1.4rem;
	}

	.l-page-bg img {
		object-fit: cover;
		width: 100%;
		height: 100%;
	}


	/*index
	-------------------------------------------------------*/
	.p-fv {
		white-space: nowrap;
		padding-bottom: 15rem;
	}

	.p-fv__box .logomark {
		max-width: 34rem;
		right: 0;
		bottom: auto;
		top: 50%;
		transform: translateY(-50%);
	}

	.p-fv__ttl .eng {
		font-size: 3.7rem;
	}

	.p-fv__ttl h1 {
		font-size: 2.4rem;
	}

	#p-index-message {
		padding: 10rem 0 6rem;
	}

	.p-index-message:before {
		top: -16rem;
		left: -10rem;
		width: 35.3rem;
		background: url(../img/lower_bearing_sp.png) center center no-repeat;
		background-size: cover;
	}

	.p-index-message__ttl {
		margin-bottom: 5rem;
	}

	.p-index-message__box {
		flex-direction: column-reverse;
		gap: 7rem;
	}

	.p-index-message__img {
		display: block;
		width: 100%;
	}

	.p-index-message__box dl h3 {
		font-size: 1.6rem;
	}

	.p-index-message__img .img._01 {
		width: 85%;
		aspect-ratio: 16/9;
		overflow: hidden;
		margin-left: auto;
	}

	.p-index-message__img .img._01 img {
		height: 100%;
		min-width: 100%;
		-o-object-fit: cover;
		object-fit: cover;
		transform: scale(1.01);
		transition: .4s;
	}

	.p-index-message__img .img._02 {
		top: 10rem;
		left: 0;
		width: 40%;
	}

	.p-index-business {
		padding: 8rem 0 5rem;
	}

	.p-index-business__lead {
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
		gap: 2rem;
		margin-bottom: 2rem;
	}

	.p-index-business__nav {
		width: 100%;
		gap: .5rem;
	}

	.p-index-business__nav li {
		gap: .7rem;
		white-space: nowrap;
	}

	.p-index-business__nav li:not(:first-of-type)::before {
		width: 1.2rem;
		margin-left: 0.7rem;
	}

	.p-index-business__nav li .num {
		padding-top: 0.4rem;
	}

	.p-index-business__item {
		flex-direction: column;
		margin-bottom: 0;
		gap: 1.5rem;
	}

	.p-index-business__item .img {
		margin-left: -2rem;
		max-width: 34rem;
		aspect-ratio: 2/1;
		overflow: hidden;
	}

	.p-index-business__item .img img {
		height: 100%;
		min-width: 100%;
		-o-object-fit: cover;
		object-fit: cover;
		transform: scale(1.01);
		transition: .4s;
	}

	.p-index-business__item dt {
		margin-bottom: 1rem;
	}

	.p-index-business__item dt h3 {
		font-size: 1.8rem;
	}

	.p-index-business__item dl {
		max-width: 32rem;
	}

	.p-index-business__sub {
		padding: 6rem 0;
	}

	.p-index-business__sub ul {
		grid-template-columns: repeat(1, 1fr);
	}

	.p-index-business__sub ul li .thumb h2 {
		font-size: 1.8rem;
	}

	.p-index-business__item dl .txt-lh {
		font-size: 1.2rem;
	}

	#p-index-strengths {
		padding: 6rem 0 8rem;
	}

	.p-index-strengths__wrap {
		flex-direction: column;
		gap: 4rem;
	}

	.p-index-strengths__lead h3 {
		font-size: 2rem;
	}

	.p-index-strengths__box {
		width: 100%;
	}

	.p-index-strengths__cont .engTtl {
		left: 0.5rem;
		top: 1rem;
		font-size: 1.2rem;
	}

	.p-index-strengths__item {
		padding: 3rem;
		white-space: nowrap;
	}

	.p-index-strengths__item dl {
		font-size: 1.2rem;
		gap: 1rem;
		grid-template-columns: 1fr 11.8rem;
	}

	.p-index-strengths__item dl+dl {
		margin-top: 1.5rem;
	}

	.p-index-strengths__item dl dt {
		gap: 1rem;
	}

	.p-index-strengths__item dl dt h4 {
		font-size: 1.4rem;
	}

	.p-index-strengths__item .logomark {
		right: -5rem;
		bottom: -5rem;
		width: 26rem;
	}

	#p-index-company {
		padding: 5rem 0 6rem;
	}

	.p-index-company__wrap {
		padding-left: 0;
		flex-direction: column-reverse;
		align-items: stretch;
		margin-bottom: 5rem;
	}

	.p-index-company__img {
		margin: 0 0 0 -2rem;
	}

	.p-index-company__nav {
		width: 100%;
	}

	.p-index-company__nav a {
		font-size: 1.4rem;
		padding: 1.5rem 1rem;
	}

	.p-index-company__wrap .sideImg {
		top: 23rem;
		left: auto;
		max-width: 8.5rem;
		right: -2rem;
	}

	.p-index-company__access {
		display: flex;
		flex-direction: column-reverse;
	}

	.p-index-company__access__box {
		padding: 4rem 2rem 2rem;
	}

	.p-index-company__access__img {
		position: static;
		transform: none;
		gap: 2rem;
		margin-bottom: -3rem;
	}

	.p-index-company__access__img .img._01 {
		flex: 1;
		height: max-content;
	}

	.p-index-company__access__img .img._02 {
		margin-top: 4rem;
		width: 16rem;
	}

	.p-index-news__lead {
		flex-wrap: wrap;
		margin-bottom: 2rem;
	}

	.p-index-news__nav {
		-webkit-box-ordinal-group: 4;
		-ms-flex-order: 3;
		order: 3;
		margin-bottom: 0;
	}

	.p-index-news__sliderArea {
		margin: 0 calc(-50vw + 50%);
	}

	.p-index-news__slider .card {
		margin: 0 1rem;
	}

	.p-index-seminar {
		grid-template-columns: repeat(1, 1fr);
		gap: 4rem;
	}

	.p-index-seminar__item {
		padding-bottom: 2rem;
	}

	.p-index-seminar__item .thumb {
		margin-bottom: 1rem;
	}

	.p-index-seminar__item .thumb h2 {
		font-size: 1.6rem;
	}

	.c-recruit__bnr a .lft {
		padding: 1rem;
	}

	.c-recruit__bnr a .lft img {
		max-height: 3rem;
	}

	.c-recruit__bnr a .lft .eng {
		font-size: 1.4rem;
		font-weight: 400;
		margin-top: 0.5rem;
	}

	.c-recruit__bnr a .lft .txt {
		font-size: 1rem;
		margin-top: .5rem;
	}

	.p-index__bnr {
		margin-top: 5rem;
	}

	.p-index__bnr h2 {
		font-size: 2rem;
		gap: 1rem;
	}

	.p-index__bnr h2::before {
		width: 3rem;
	}

	.p-index__bnr ul {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}



	/*お知らせ
	-------------------------------------------------------*/
	.p-newslist {
		max-width: initial;
	}

	.p-newslist__wrap {
		flex-direction: column;
		gap: 2rem;
	}

	.p-newslist aside {
		position: initial;
		display: flex;
		flex-wrap: wrap;
		gap: 1rem;
		width: 100%;
	}

	.p-newslist aside .box {
		display: flex;
		flex-wrap: wrap;
		gap: 1rem;
		width: 100%;
		max-height: calc((4.5rem * 3) + (1rem * 2));
	}

	.p-newslist aside .eng {
		width: 100%;
		font-size: 1.4rem;
		margin-bottom: 1rem;
	}

	.p-newslist aside a {
		place-content: center;
		width: calc((100% - 1rem) / 2);
    min-height: 4rem;
    font-size: 1.2rem;
    line-height: 1.2;
    padding: 0.5rem 2rem 0.5rem 1rem;
	}

	.p-newslist aside a+a {
		margin-top: 0;
	}



	.p-newslist aside .txt {
		gap: 0.4rem;
	}

	.p-newslist aside .txt::before {
		width: 0.6rem;
		height: 0.6rem;
		min-width: 0.6rem;
		min-height: 0.6rem;
	}

	.p-newslist__item {
		width: 100%;
		padding-top: 0;
	}

	.p-newslist__item .card {
		display: block;
		padding: 2rem 2rem 4rem;
	}

	.p-newslist__item .card::after {
		bottom: 1rem;
	}

	.p-newslist__item .card+.card {
		margin-top: 2rem;
	}

	.p-newslist__item .card .thumb {
		min-width: initial;
		width: 100%;
		margin-bottom: 1.5rem;
		aspect-ratio: 182 / 98;
	}

	.p-newslist__item .card .ttl {
		-webkit-line-clamp: 2;
		line-clamp: 2;
	}

	.p-newslist__item .card .lead {
		font-size: 1.2rem;
		gap: 0.8rem;
	}

	.p-newslist__item .card .lead .cate {
		font-size: 1rem;
	}

	/*お知らせ
	-------------------------------------------------------*/
	.p-news__box {
		max-width: initial;
		padding: 4rem 2rem;
	}

	.p-news__box .ttl {
		font-size: 1.6rem;
		margin-bottom: 2rem;
	}

	.p-news__box .attachment-post-thumbnail {
		margin-bottom: 2rem;
	}

	.p-news .pager {
		margin: 4rem auto 0;
	}

	.p-news .pager .index-btn {
		font-size: 1.6rem;
	}

	.p-news .pager .prev-btn,
	.p-news .pager .next-btn {
		font-size: 1.2rem;
	}

	.p-news .pager .prev-btn a,
	.p-news .pager .next-btn a {
		gap: 0.5rem;
	}

	/*会社案内
	-------------------------------------------------------*/
	.p-company {
		background: url(../img/company/company_bg_sp.jpg) no-repeat;
		background-size: cover;
		padding: 6rem 0;
	}

	.p-company-message__ttl {
		margin-bottom: 5rem;
	}

	.p-company-message__box {
		flex-direction: column-reverse;
		gap: 5rem;
	}

	.p-company-message__box dl {
		max-width: initial;
	}

	.p-company-message__box dl h3 {
		font-size: 133%;
	}

	.p-company-message__img {
		max-width: initial;
		margin-top: 0;
	}

	.p-company-message__img .img._02 {
		top: 16rem;
		right: -2rem;
		width: 13.8rem;
	}

	.p-company__sub {
		padding: 6rem 0;
	}

	.p-company__sub ul {
		grid-template-columns: repeat(1, 1fr);
		gap: 4rem;
	}

	.p-company__sub ul li .txt {
		font-size: 1.6rem;
	}

	/*会社概要
	-------------------------------------------------------*/
	.p-about dl {
		max-width: initial;
		display: block;
	}

	.p-about dt {
		width: 100%;
		padding: 1rem 0;
	}

	.p-about dd {
		width: 100%;
		padding: 2rem;
	}



	/*沿革
	-------------------------------------------------------*/
	#p-history {
		padding: 6rem 0;
	}

	.p-history__area {
		max-width: initial;
		width: 90%;
	}

	.p-history__area .mainline2 {
		translate: 0 0;
		top: 7rem;
		left: 2rem;
	}

	.p-history__area .year {
		text-align: left;
		font-size: 3rem;
		padding: 0.5rem 0;
		margin: 0;
	}

	.p-history__area .year.-head {
		font-size: 4rem;
	}

	.p-history__wrap {
		display: flex;
		flex-wrap: wrap;
		height: auto;
	}

	.p-history__wrap:has(.img) {
		height: auto;
	}

	.p-history__event {
		position: initial;
		width: calc(100% - (2rem + 1px));
		margin: 2rem 0;
	}

	.p-history__event.-left {
		left: 2rem;
	}

	.p-history__event::before {
		top: 2.1rem;
		left: 2.1rem;
	}

	.p-history__event.-left::before {
		translate: -50% 0;
		left: 2.1rem;
		right: initial;
	}

	.p-history__event:has(.lead)::before {
		top: 2.4rem;
	}

	.p-history__event .lead {
		width: 100%;
		font-size: 1.8rem;
		gap: 1rem;
		padding: 0 0 0 2rem;
	}

	.p-history__event.-left .lead {
		flex-direction: row;
	}

	.p-history__event:not(:has(.lead)) .txt {
		gap: 1rem;
		padding: 0 0 0 2rem;
	}

	.p-history__event.-left:has(:not(.lead)) .txt {
		flex-direction: row;
	}

	.p-history__event .line {
		min-width: 4rem;
		width: 4rem;
	}

	.p-history__event.-left .line {
		width: 4rem;
		flex-grow: initial;
		transform-origin: left center;
	}

	.p-history__event .lead .line {
		margin-top: 1.3rem;
		min-width: 4rem;
		width: 4rem;
	}

	.p-history__event:not(:has(.lead)) .line {
		margin-top: 1rem;
	}

	.p-history__event .img {
		width: calc(100% - (4rem + 1rem));
	}

	.p-history__event.-left .img {
		margin-left: auto;
	}

	.p-history__event .lead+.txt,
	.p-history__event .txt+.txt {
		padding: 0 0 0 7rem;
	}

	.p-history__event.-left .lead+.txt,
	.p-history__event.-left .txt+.txt {
		padding: 0 0 0 7rem;
	}

	.p-history__event .img figcaption {
		font-size: 1.2rem;
	}

	.p-history__special .ttl {
		font-size: 2rem;
	}

	.p-history__special .img {
		max-width: initial;
		width: 100%;
	}

	.p-history__special .img figcaption {
		font-size: 1.2rem;
	}

	.p-history__area .catch {
		font-size: 3rem;
		padding-top: 4rem;
	}


	/*アクセス
	-------------------------------------------------------*/
	.p-access {
		max-width: initial;
	}

	.p-access__wrap {
		gap: 1rem;
	}

	.p-access aside {
		width: 7rem;
	}

	.p-access aside a {
		font-size: 1rem;
		padding: 0 0.5rem;
		height: 4rem;
	}

	.p-access aside a::before {
		height: 4rem;
		clip-path: polygon(0% 0%, calc(100% - 1rem) 0%, 100% 50%, calc(100% - 1rem) 100%, 0% 100%);
	}

	.p-access__item {
		width: calc(100% - 8rem);
	}

	.p-access__item .card {
		padding: 2rem;
	}

	.p-access__item .card+.card {
		margin-top: 3rem;
	}

	.p-access__detail {
		display: block;
		margin-bottom: 2rem;
	}

	.p-access__detail h2 {
		min-width: initial;
		width: 100%;
		font-size: 2rem;
		padding-bottom: 0.5rem;
		margin-bottom: 0.5rem;
	}

	.p-access__detail h2 .sub {
		font-size: 1.6rem;
	}

	.p-access__detail h2::after {
		top: initial;
		bottom: 0;
		width: 100%;
		height: 1px;
	}

	.p-access__img {
		display: block;
	}

	.p-access__img iframe {
		height: auto;
		aspect-ratio: 212/153;
		margin-top: 1rem;
	}

	/*お問い合わせ
	-------------------------------------------------------*/
	.p-contact__warning {
		width: 100%;
		padding: 2rem;
		margin: 0 auto 3rem;
	}

	.p-contact__warning .lead {
		font-size: 1.6rem;
	}

.p-contact__warning .lead::before {
	margin-top: 0.3rem;
}



	.p-contact__wrap {
		flex-direction: column;
		gap: 3rem;
	}

	.p-contact aside {
		position: initial;
		top: 0 !important;
		width: 100%;
		display: flex;
		background: #a8a8a8;
		clip-path: polygon(0% 0%, calc(100% - 2.5rem) 0%, 100% 50%, calc(100% - 2.5rem) 100%, 0% 100%);
	}

	.p-contact aside .step {
		font-size: 1.2rem;
		gap: 1rem;
		height: 4rem;
		padding: 0 1rem;
		border: none;
	}

	.p-contact aside .step::before {
		height: 4rem;
	}

	.p-contact aside .step._02::before,
	.p-contact aside .step._03::before {
		width: 125%;
		clip-path: polygon(calc(100% - 2.5rem) 0%, 100% 50%, calc(100% - 2.5rem) 100%, 0% 100%, calc(38% - 2.5rem) 50%, 0% 0%);
	}

	.p-contact aside .step._02::before {
		background-color: #8e8e8e;
	}

	.p-contact aside .step .eng {
		font-size: 1.2rem;
	}

	/* スクロールバー */
	.p-newslist aside .box:has(> a:nth-of-type(7)) {
		max-height: calc((4.5rem * 3) + (1rem * 2)) !important;
    overflow-y: scroll !important;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }

  .p-newslist aside .box:has(> a:nth-of-type(7))::-webkit-scrollbar {
    width: 6px;
  }

  .p-newslist aside .box:has(> a:nth-of-type(7))::-webkit-scrollbar-track {
    background: #eee;
    border-radius: 10px;
  }

  .p-newslist aside .box:has(> a:nth-of-type(7))::-webkit-scrollbar-thumb {
    background: #999;
    border-radius: 10px;
  }

	.p-contact__item {
		width: 100%;
		padding: 3rem 2rem 6rem;
	}

	.p-contact__item .note {
		font-size: 1.2rem;
	}



	.p-contact__item dl {
		display: block;
	}

	.p-contact__item dt {
		width: 100%;
		font-size: 1.6rem;
		padding-top: 0;
		margin-top: 1rem;
	}

	.p-contact__item dt.hide {
		display: none;
		visibility: hidden;
	}

	.p-contact__item dt.req::after {
		margin-top: 0.8rem;
	}

	.p-contact__item dd {
		width: 100%;
		margin-top: 1rem;
	}

	.p-contact__item dd+dt {
		margin-top: 2rem;
	}

	.p-contact__item dt+dd:not(:first-of-type) {
		margin-top: 1rem;
	}

	.p-contact__item select,
	.p-contact__item input {
		font-size: 1.4rem;
		padding: 0 1rem;
	}

	.p-contact__item input[name="tel"],
	.p-contact__item input[name="fax"],
	.p-contact__item input[name="zip"],
	.p-contact__item select[name="adress01"] {
		max-width: 18rem;
	}

	.p-contact__item .zipBtn {
		width: 8rem;
		font-size: 1.2rem;
		margin-top: 2rem;
	}

	.p-contact__item .policyCheck .lead {
		font-size: 1.6rem;
		margin-bottom: 1rem;
	}

	.p-contact__item .policyCheck .head {
		font-size: 1.4rem;
		margin-top: 1rem;
	}

	.p-contact__item .policy {
		padding: 2rem 1rem;
	}

	.p-contact__item .formBtn {
		margin-top: 3rem;
	}

	.p-contact__item .confirmWrap dt {
		border-bottom: initial;
		background-color: var(--c_gy);
	}

	.p-contact__item .confirmWrap dt:not(.hide) {
		padding: 1rem;
	}

	.p-contact__item .confirmWrap dd {
		margin-top: 0;
		padding: 0 1rem;
		border-bottom: initial;
	}





	.p-contact__item .confirmWrap .confirm.your-message {
		padding: 1rem;
	}

	/*サイトマップ
	-------------------------------------------------------*/
	.p-sitemap {
		max-width: initial;
		padding-bottom: 6rem;
	}

	.p-sitemap .sitemap {
		flex-direction: column;
		gap: 4rem;
	}



	.p-sitemap .link {
		gap: 1rem;
	}

	.p-sitemap .link._top {
		font-size: 1.8rem;
	}

	.p-sitemap .link._head {
		font-size: 1.6rem;
	}

	.p-sitemap .link._head::before {
		width: 1.6rem;
		height: 1.6rem;
	}

	.p-sitemap .link._detail {
		font-size: 1.4rem;
	}

	.p-sitemap .link._detail::after {
		margin-top: 0.2rem;
	}

	.p-sitemap .link._head+.link._detail {
		margin-top: 2rem;
	}


/*privacy-policy
	-------------------------------------------------------*/
.p-privacypolicy .lead {
	font-size: 1.8rem;
}

.p-privacypolicy .txt + .lead {
	margin-top: 4rem;
}


	/*greetings
	-------------------------------------------------------*/
	#p-greetings {
		padding: 6rem 0;
	}

	.p-greetings-message__box {
		grid-template-columns: repeat(1, 1fr);
	}

	.p-greetings-message__wrap h3 {
		font-size: 2.2rem;
		margin-bottom: 0;
	}

	.p-greetings-message__img .img {
		position: relative;
		top: initial;
		left: initial;
		max-width: 22rem;
	}

	.p-greetings-message__wrap dt {
		width: fit-content;
		margin: -2.5rem 0 2rem auto;
	}

	#p-philosophy {
		margin-bottom: 8rem;
	}

	.p-philosophy__lead {
		flex-direction: column;
	}

	.p-philosophy__lead h3 {
		font-size: 2rem;
	}

	.p-philosophy__wrap {
		display: block;
	}

	.p-philosophy__wrap li {
		padding-top: 11rem;
		max-width: 26rem;
		margin: 0 auto;
	}

	.p-philosophy__wrap li._02 {
		margin: -2rem auto;
		transform: rotate(90deg);
		max-width: none;
	}

	.p-philosophy__wrap li._02::before {
		width: 2.4rem;
		left: 2.4rem;
	}

	.p-philosophy__wrap li._02::after {
		width: 2.4rem;
		right: 2.4rem;
	}

	.p-philosophy__wrap li figure {
		max-width: 8rem;
		top: -2.5rem;
	}

	.p-philosophy__wrap li._03 figure {
		max-width: 10rem;
		top: -.5rem;
	}

	.p-philosophy__wrap li h4 {
		font-size: 1.8rem;
		margin-bottom: 1.2rem;
		padding: .5rem 2rem .7rem;
	}

	.p-philosophy__logo {
		max-width: 22rem;
		transform: rotate(-90deg);
	}

	.p-philosophy__logo::before {
		inset: 2rem;
	}

	.p-philosophy__logo::after {
		inset: 3rem;
	}

	.p-philosophy__logo img {
		width: 13rem;
	}

	/*strengths
---------------------------------------------------------*/
	#p-strengths-value {
		padding: 6rem 0 0;
		overflow: hidden;
	}

	.p-strengths-value {
		width: 90%;
		margin: 0 auto;
	}

	#p-strengths-value .ttl {
		margin-bottom: 2rem;
	}



	#p-strengths-value .ttl h2 {
		font-size: 2.4rem;
	}

	.p-strengths-value__list {
		justify-content: center;
		gap: 3rem 1rem;
	}

	.p-strengths-value__list .item {
		width: calc((100% - 2rem)/ 2);
	}

	.p-strengths-value__list .item .img {
		position: relative;
		z-index: 1;
	}

	.p-strengths-value__list .item .lead {
		font-size: 1.6rem;
	}

	.p-strengths-value__list .item .txt {
		font-size: 1.2rem;
	}

	.p-strengths-value .arrow {
		border-width: 1.6rem 0.8rem 0 0.8rem;
	}

	.p-strengths-value .logo {
		width: 20rem;
		margin: 2rem auto;
	}

	.p-strengths-value._02 {
		padding: 0 0 6rem;
	}

	.p-strengths-value._02::before {
		left: calc(((100vw - 100%) / 2) * -1);
		width: 100vw;
		height: 87%;
	}

	.p-strengths-value .catch {
		font-size: 3rem;
	}

	.p-strengths-value .img._01 {
		width: 110vw;
		margin-left: calc(((100vw - 90%) / 2) * -1);
		z-index: 2;
	}

	.p-strengths-value._02 .p-strengths-value__list {
		flex-direction: column;
		align-items: flex-end;
		gap: 2rem;
		margin-top: 0;
		padding-top: 2rem;
	}

	.p-strengths-value._02 .p-strengths-value__list::before {
		content: '';
		position: absolute;
		top: -7rem;
		left: 1rem;
		width: 0.1rem;
		height: calc(100% - 11.7rem);
		background-color: #fff;
	}

	.p-strengths-value._02 .p-strengths-value__list .item {
		position: relative;
		width: 42%;
	}

	.p-strengths-value._02 .p-strengths-value__list .item:not(:first-of-type) {
		margin-top: -4rem;
	}

	.p-strengths-value._02 .p-strengths-value__list .item:nth-of-type(odd)::before,
	.p-strengths-value._02 .p-strengths-value__list .item:nth-of-type(even)::before {
		content: '';
		position: absolute;
		top: 7rem;
		right: 50%;
		width: 24.6rem;
		height: 0.1rem;
		background-color: #fff;
	}

	.p-strengths-value._02 .p-strengths-value__list .item:nth-of-type(even) {
		margin-right: 15rem;
	}

	.p-strengths-value._02 .p-strengths-value__list .item:nth-of-type(even)::before {
		width: 9.6rem;
	}











	.p-strengths-conts {
		padding: 6rem calc((100% - 90%) / 2);
	}

	.p-strengths-conts__list {
		margin-top: 4.5rem;
	}

	.p-strengths-conts__list .item {
		width: 100%;
		padding: 3rem 2rem;
	}

	.p-strengths-conts__list .item:not(:first-of-type) {
		margin-top: 6rem;
	}

	.p-strengths-conts__list .item::before {
		top: -1rem;
		left: -1rem;
		width: 9rem;
	}

	.p-strengths-conts__list .item .num {
		top: 1.1rem;
		left: 0.9rem;
		font-size: 2.2rem;
	}

	.p-strengths-conts__list .item .ttl {
		justify-content: flex-end;
		font-size: 1.6rem;
		padding: 0 0 2rem 0;
	}

	.p-strengths-conts__list .item .arrow {
		margin: 0 0.4rem;
	}

	.p-strengths-conts__list .item .lead {
		font-size: 1.8rem;
		margin: 2.2rem 0 0.8rem;
	}

	.p-strengths-promise {
		flex-direction: column;
		padding-left: 0;
	}

	.p-strengths-promise .box {
		width: 100%;
		margin-bottom: 4rem;
	}

	.p-strengths-promise .ttl.eng {
		font-size: 1.6rem;
		margin-bottom: 2.4rem;
	}

	.p-strengths-promise h3 {
		font-size: 2rem;
		margin-bottom: 1.5rem;
	}

	.p-strengths-promise__img {
		width: 80%;
		margin-left: auto;
	}

	.p-strengths-promise .catch {
		font-size: 3rem;
		margin-top: 2rem;
	}

	.p-strengths-promise .img._02 {
		top: 36rem;
		left: 0;
		width: 10rem;
	}

	/*business
	-------------------------------------------------------*/
	#business-domains {
		padding: 6rem 0;
	}

	.business-domains {
		flex-direction: column;
	}

	.business-domains__wrap h3 {
		font-size: 1.8rem;
	}

	.business-domains__img {
		width: 100%;
		padding-top: 40%;
	}

	.business-domains__img .img {
		transform: none;
		top: 0;
		width: auto;
		left: -2rem;
		right: -2rem;
		aspect-ratio: 16/9;
	}

	.business-domains__img .img img {
		height: 100%;
		min-width: 100%;
		-o-object-fit: cover;
		object-fit: cover;
		transform: scale(1.01);
	}

	.business-domains__txt {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 1.5rem;
	}

	.business-domains__txt li {
		text-align: center;
		width: auto;
		padding: 1rem;
		grid-template-columns: repeat(1, 1fr);
		margin: 0 !important;
		font-size: 1.2rem;
	}

	.business-domains__txt li figure {
		width: 5rem;
		margin: 0 auto;
	}

	#business-domains-cont {
		padding: 6rem 0;
	}

	.business-domains-cont {
		padding: 3rem 0;
	}

	.business-domains__cycle__cont {
		width: 80%;
	}

	.business-domains__cycle__cont h3 {
		font-size: 2rem;
		margin-top: 1.5rem;
	}

	.business-domains__cycle__cont .eng {
		font-size: 1.6rem;
		margin-top: 1.5rem;
	}

	.business-domains-cont__wrap {
		position: relative;
	}

	.business-domains-cont__wrap li {
		position: static;
		margin-top: 5rem;
		gap: 3rem 0;
	}

	.business-domains-cont__wrap li+li {
		margin-top: 3rem;
		padding-top: 3rem;
		border-top: 1px solid #EAF8FC;
	}

	.business-domains-cont__ttl {
		font-size: 1.2rem;
		gap: 1rem;
	}

	.business-domains-cont__ttl .num {
		font-size: 420%;
	}

	.business-domains-cont__ttl h3 {
		font-size: 160%;
	}

	.business-domains-cont__wrap li .img {
		min-height: auto;
		width: 65%;
		margin-inline: auto;
	}

	.business-domains-cont__wrap li .box,
	.business-domains-cont__wrap li._03 .box {
		max-width: 100%;
		padding: 0 3rem;
	}

	.business-domains-cont__wrap li .box h4 {
		font-size: 1.8rem;
	}

	.business-domains-cont__wrap li._02 .box {
		margin-left: 0;
	}

	.business-domains-cont__wrap li._03 {
		flex-direction: column;
		align-items: flex-start;
	}

	.business-domains-cont__wrap li._03 .wrap {
		display: contents;
	}

	.business-domains-cont__wrap li._03 .business-domains-cont__ttl {
		order: -1;
		width: 100%;
		margin-bottom: 0;
	}

	.business-domains-cont__wrap li._03 .img {
		width: 65%;
		margin-bottom: 0;
	}

	/*business-sub
	-------------------------------------------------------*/
	.l-businessSub-lower,
	#p-maintenance-lower {
		padding: 6rem 0;
	}

	.l-businessSub-lower__wrap {
		flex-direction: column;
		align-items: flex-start;
		gap: 7rem;
	}

	.l-businessSub-lower__wrap h3 {
		font-size: 1.8rem;
		margin-bottom: 1.5rem;
	}

	#p-engineering-lower .imgs {
		width: 100%;
	}

	#p-engineering-lower .img._01 {
		max-width: 25rem;
	}

	#p-engineering-lower .img._02 {
		width: 14rem;
		right: -2rem;
	}

	.l-businessSub-solutions {
		padding: 6rem 0 10rem;
	}

	.l-businessSub-solutions__inner h2 {
		margin-bottom: 3rem;
	}

	.l-businessSub-solutions__wrap {
		padding: 0 2rem 2rem;
	}

	.l-businessSub-solutions__wrap h3 {
		position: static;
		margin: 0 -2rem 2rem;
		font-size: 1.6rem;
		letter-spacing: normal;
		padding: 1rem;
		text-align: center;
	}

	.l-businessSub-solutions__wrap ul {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
		margin-bottom: 2rem;
	}

	.l-businessSub-solutions__wrap ul li {
		grid-template-columns: repeat(1, 1fr);
		gap: 1rem;
		font-size: 1.2rem;
		line-height: 1.4;
		padding: 1rem;
		text-align: center;
	}

	.l-businessSub-solutions__wrap ul li figure {
		max-width: 5rem;
		margin: 0 auto;
	}

	.l-businessSub-solutions .bg {
		top: auto;
		left: 0;
		width: 100%;
		aspect-ratio: 4/3;
	}

	.l-businessSub-domains {
		padding: 6rem 0 0;
	}



	.l-businessSub-domains__area .bg {
		display: flex;
		justify-content: center;
	}

	.l-businessSub-domains__area .bg img {
		max-width: initial;
		width: 120%;
	}

	.l-businessSub-domains__area .modal__btn {
		width: 2.8rem;
		font-size: 1.2rem;
		padding: 0.8rem 0 0;
	}

	.l-businessSub-domains__area .modal__btn[data-modal="modal02"] {
		top: 42%;
		left: 90.8%;
	}

	.l-businessSub-domains__area .modal__btn._01[data-modal="modal03"] {
		top: 58.1%;
		left: 26%;
	}

	.l-businessSub-domains__area .modal__btn._02[data-modal="modal03"] {
		top: 73.5%;
		left: 33.5%;
	}

	.l-businessSub-domains__area .modal__btn[data-modal="modal05"] {
		left: 29%;
	}

	.l-businessSub-domains__area .modal__btn[data-modal="modal06"] {
		top: 9.4%;
		left: 17.1%;
	}

	.l-businessSub-domains__area .modal__btn[data-modal="modal07"] {
		top: 10.6%;
		left: 81.7%;
	}

	.l-businessSub-domains__area .modal__btn[data-modal="modal08"] {
		top: 10.6%;
		left: 60%;
	}

	.l-businessSub-domains__wrap {
		display: block;
	}

	.l-businessSub-domains__wrap .img {
		margin: 0 auto;
		width: 80%;
	}

	.l-businessSub-domains__wrap .box {
		width: 100%;
		margin-bottom: 4rem;
	}

	.l-businessSub-domains-cont {
		min-height: calc(100lvh - 5.6rem);
	}

	.l-businessSub-domains-cont .container {
		padding: 2rem 0 6rem;
		height: 100%;
    display: flex;
    justify-content: center;
    flex-direction: column;
	}

	.l-businessSub-domains-cont__wrap dt .eng {
		font-size: 1.2rem;
		margin-bottom: .4rem;
	}

	.l-businessSub-domains-cont h2 {
		font-size: 2rem;
		margin-bottom: 1rem;
	}

	.l-businessSub-domains-cont__item {
		min-height: auto;
		padding: 0 1.5rem;
	}

	.l-businessSub-domains-cont__wrap .box {
		flex-direction: column;
		align-items: stretch;
		gap: 1rem;
		height: max(41rem, 70svh);
		max-height: 41rem;
		padding: 2rem;
		border-radius: .5rem;
	}

	.l-businessSub-domains-cont__wrap dl {
		flex: none;
		display: contents;
	}

	.l-businessSub-domains-cont__wrap dt h3 {
		font-size: 1.6rem;
		margin-bottom: 0;
	}

	.l-businessSub-domains-cont__wrap dd {
		order: 3;
	}

	.l-businessSub-domains-cont__wrap dd .txt-lh {
		font-size: 1.2rem;
		line-height: 1.5;
		margin-bottom: 1rem;
	}

	.l-businessSub-domains-cont__wrap dd ul {
		gap: .8rem;
	}

	.l-businessSub-domains-cont__wrap dd ul li {
		padding: .5rem .3rem;
		font-size: 1rem;
	}

	.l-businessSub-domains-cont__wrap figure.img {
		order: 0;
		flex: none;
		width: 100%;
		aspect-ratio: 16/5;
		margin: 0 auto;
	}

	.l-businessSub-flow {
		padding: 6rem 0 10rem;
		background-size: auto 8rem;
	}

	.l-businessSub-flow__lead {
		flex-direction: column;
		align-items: flex-start;
		gap: 1.5rem;
	}

	.l-businessSub-flow__nav {
		width: 100%;
		justify-content: flex-start;
	}

	.l-businessSub-flow__nav ul {
		width: 60%;
	}

	.l-businessSub-flow__wrap {
		gap: 0 5rem;
	}

	.l-businessSub-flow__item {
		width: 26rem;
	}

	.l-businessSub-flow__item .img {
		margin-bottom: 1.5rem;
	}

	.l-businessSub-flow__item__line {
		width: 5rem;
	}

	.l-businessSub-flow__item dt {
		gap: 1rem;
		margin-bottom: .8rem;
	}

	.l-businessSub-flow__item dt .num {
		font-size: 2rem;
	}

	.l-businessSub-flow__item dt h3 {
		font-size: 1.8rem;
	}

	.l-businessSub-flow__item__line,
	.l-businessSub-flow__item-last__line {
		top: 8.2rem;
	}

	.l-businessSub-flow__item-last {
		display: flex;
		flex-direction: column-reverse;
		margin-left: 10vw;
	}

	.l-businessSub-flow__item-last__line {
		width: 5rem;
	}

	.l-businessSub-flow__item-last .box h3 {
		font-size: 1.8rem;
		margin-bottom: 1.5rem;
	}

	.l-businessSub-flow__item-last .box .txt-lh {
		max-width: none;
	}

	.l-businessSub-flow__item-last .box .eng {
		font-size: 3rem;
		margin-top: 3rem;
		margin-right: 0;
	}

	.l-businessSub-flow__item-last__img {
		width: 85%;
	}

	.l-businessSub-flow__item-last__img .img._02 {
		max-width: 11rem;
		bottom: -2rem;
		right: -7rem;
	}

	.l-businessSub-bnr__wrap {
		grid-template-columns: repeat(1, 1fr);
		padding: 2rem;
	}

	.l-businessSub-bnr__wrap dt h2 {
		font-size: 1.8rem;
		margin-bottom: 1.5rem;
	}

	.l-businessSub-bnr__wrap .thumb h3 {
		font-size: 1.8rem;
	}

	/*maintenance
	-------------------------------------------------------*/
	#p-maintenance-lower .img._01 {
		max-width: 25rem;
		margin: 0 0 0 auto;
	}

	#p-maintenance-lower .img._02 {
		top: 10.5rem;
		left: 0;
		max-width: 15rem;
	}

	.p-maintenance-cycle {
		padding: 8rem 0 6rem;
	}

	.p-maintenance-cycle .container {
		width: 90%;
	}

	.p-maintenance-cycle__wrap {
		padding: 0;
		margin-bottom: 5rem;
	}

	.p-maintenance-cycle__ttl {
		width: 26rem;
		margin: 0 auto 3rem;
	}

	.p-maintenance-cycle__ttl .box {
		gap: .6em;
	}

	.p-maintenance-cycle__ttl .box h2 {
		font-size: 2rem;
	}

	.p-maintenance-cycle__ttl .box .eng {
		font-size: 1.2rem;
	}

	.p-maintenance-cycle__list {
		position: static;
		display: block;
	}

	.p-maintenance-cycle__item,
	.p-maintenance-cycle__item:nth-of-type(-n+3) {
		position: relative;
		flex-direction: row;
		justify-content: center;
		min-height: auto;
		padding: 1.5rem 0;
		left: auto !important;
		right: auto !important;
		transform: translateX(-2rem);
	}

	.p-maintenance-cycle__item::before {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		border-block: 1px solid var(--c_gy);
	}

	.p-maintenance-cycle__item:not(:last-of-type)::after {
		content: "";
		position: absolute;
		bottom: -.8rem;
		left: 50%;
		transform: translateX(-50%);
		clip-path: polygon(0 0, 50% 100%, 100% 0);
		width: 2.5rem;
		background: var(--ring-color, var(--c_aq));
		aspect-ratio: 16/9;
		z-index: 1;
	}

	.p-maintenance-cycle__item figure {
		width: 8rem !important;
		max-width: 8rem !important;
		margin: 0 2rem 0 0;
		flex: none;
		text-align: center;
	}

	.p-maintenance-cycle__item figure img {
		max-height: 8.5rem;
	}

	.p-maintenance-cycle__item .ttl,
	.p-maintenance-cycle__item:nth-of-type(-n+3) .ttl {
		padding: 0;
	}

	.p-maintenance-cycle__item .ttl .bdr {
		display: none;
	}

	.p-maintenance-cycle__item .ttl h3 {
		font-size: 1.8rem;
		padding-bottom: 0.1em;
	}

	.p-maintenance-cycle__btm {
		flex-direction: column;
		padding: 3rem 2rem;
		gap: 2rem;
	}

	.p-maintenance-cycle__btm .img {
		width: 100%;
	}

	.p-maintenance-cycle__btm .box h3 {
		font-size: 1.8rem;
	}


	/*trading
---------------------------------------------------------*/
	#p-product {
		padding: 2rem 0 6rem;
	}

	.p-product-ttl {
		font-size: 2.2rem;
		margin-bottom: 2rem;
	}

	.p-product-box {
		flex-direction: column;
		gap: 2rem;
	}

	.p-product-wrap {
		width: 100%;
		padding: 0 0 2rem;
		border-left: none;
		border-bottom: 1px solid #D9D9D9;
	}

	.p-product-wrap:nth-child(3n + 1) {
		width: 100%;
		padding: 0 0 2rem;
	}

	.p-product-wrap .sub-ttl .num {
		font-size: 2rem;
	}

	#p-private {
		padding: 6rem 0;
	}

	#p-private .object {
		width: 30rem;
	}

	.p-private__img {
		width: calc(((100vw - 90%) /2) + 100%);
		margin-left: calc(((100vw - 90%) /2) * -1);
	}

	.p-private .attention {
		font-size: 1rem;
	}

	.p-private .box {
		margin-top: 4rem;
		padding-bottom: 15rem;
	}

	.p-private .box h3 {
		font-size: 2rem;
		letter-spacing: 0.05em;
	}



	.p-point {
		padding: 6rem 0;
	}

	.p-point__conts {
		flex-direction: column;
		gap: 4rem;
	}

	.p-point._01 .p-point__img {
		width: calc(((100vw - 90%) / 2) + 100%);
		margin-left: calc(((100vw - 90%) / 2) * -1);
	}

	.p-point._02 .p-point__img {
		width: calc(((100vw - 90%) / 2) + 100%);
		margin-right: calc(((100vw - 90%) / 2) * -1);
	}

	.p-point .box {
		min-width: initial;
		width: 100%;
	}

	.p-point .box h3 {
		font-size: 2rem;
		margin-bottom: 1rem;
	}

	.p-point .box h3 .num {
		font-size: 1.2rem;
	}

	.p-point._01 .box .needslist {
		gap: 1rem;
		margin-top: 4rem;
	}

	.p-point._01 .box .needslist li {
		grid-template-columns: repeat(1, 1fr);
		gap: 1rem;
		font-size: 1.2rem;
		line-height: 1.4;
		padding: 1rem;
		text-align: center;
	}

	.p-point._02 .taskslist {
		grid-template-columns: repeat(2, 1fr);
		padding: 1.8rem 0;
	}

	.p-point._02 .taskslist li {
		flex-direction: column;
		text-align: center;
		font-size: 1.2rem;
		padding: 1rem 0;
		border-left: initial;
		border-bottom: 1px solid rgba(255, 255, 255, 0.2);
	}



	.p-point._02 .taskslist li:nth-last-child(-n + 2) {
		border-bottom: none;
	}

	.p-point._02 .taskslist li:nth-of-type(even) {
		border-left: 1px solid rgba(255, 255, 255, 0.2);
	}

	.p-point._02 .taskslist figure {
		height: 6rem;
	}

	.p-point._02 .taskslist figure img {
		object-position: right;
	}

	#l-modal._trading .modal {
		width: 90%;
		padding: 2rem 2rem 10rem;
	}

	#l-modal._trading .modal .ttl {
		gap: 1rem;
		font-size: 2rem;
		margin-top: 1.5rem;
	}



	#l-modal._trading .modal .tag {
		font-size: 1.4rem;
	}


}

.-text-gradation_wh {
	--gradation-image: url(../img/gradation_pattern.png);
	--gradation-goal: #fff;
}

.-text-gradation_bk {
	--gradation-image: url(../img/gradation_pattern.png);
	--gradation-goal: #1a1a1a;
}

.-text-gradation_clip {
	background-image: var(--gradation-image);
	background-repeat: no-repeat;
	background-size: 200% 100%;
	background-position: 200% 0;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;

}

.-text-gradation_clip.is-animated {
	animation: text-gradation-anime 2.5s ease-in-out forwards;
}

@keyframes text-gradation-anime {
	0% {
		background-position: 200% 0;
	}

	60% {
		background-position: 0% 0;
	}

	100% {
		background-position: 0% 0;
		-webkit-text-fill-color: var(--gradation-goal);
		color: var(--gradation-goal);
	}
}

.-curtain_aq,
.-curtain_bl {
	position: relative;
	--easeing: cubic-bezier(0.19, 1, 0.22, 1);
	--bg: var(--c_aq);
	overflow: hidden;
}

.-curtain_bl {
	--bg: var(--c_bl);
}

.-curtain_aq::before,
.-curtain_bl::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 0%;
	height: 100%;
	background-color: var(--bg);
	z-index: 10;
}

.-curtain_aq.is-animated::before,
.-curtain_bl.is-animated::before {
	animation: curtain-anime 1.6s var(--easeing) forwards;
}

@keyframes curtain-anime {
	0% {
		width: 0%;
		translate: 0 0;
	}

	50% {
		width: 100%;
		translate: 0 0;
	}

	100% {
		width: 100%;
		translate: 105% 0;
	}
}

.-curtain_aq img,
.-curtain_bl img {
	opacity: 0;
}

.-fadeUp,
.-fadeUp_child>* {
	transform: translateY(5%);
	opacity: 0;
}

.-fadeRight {
	transform: translateX(5%);
	opacity: 0;
}

.-fadeLeft {
	transform: translateX(-5%);
	opacity: 0;
}

.grecaptcha-badge {
	translate: 100% 0;
}

body:has(#page-contact) .grecaptcha-badge {
	translate: 0 0;
}