/******************************************************************
Theme Name: CUBE GAMMA THEME
Theme URI: http://cube096.com
Description: CUBEが自信をもってお届けするレスポンシブウェブデザインテーマ
Author: CUBE CO.,LTD.
Author URI: http://cube096.com
Version: beta
Tags: fluid-layout, responsive-layout, accessibility-ready, translation-ready, microformats, rtl-language-support
*/
:root {
	--font-ja: "Noto Sans JP",
		"游ゴシック Medium",
		"Yu Gothic Medium",
		"游ゴシック",
		YuGothic,
		"ヒラギノ角ゴ Pro",
		"Hiragino Kaku Gothic Pro",
		"メイリオ",
		"Meiryo",
		sans-serif;
	--font-en: 'Jost',
		'Helvetica Neue',
		Helvetica,
		Arial,
		sans-serif;
	--main-color: #EB5524;
	--gradation-color-toL: linear-gradient(to left, #EE781E, #E73129);
	--gradation-color-toR: linear-gradient(to right, #EE781E, #E73129);
	--font-color: #111111;
	--bg-color: #ffffff;
	--padding-130: clamp(50px, 6.8vw, 130px);
	--padding-95: clamp(40px, 4.9vw, 95px);
	--padding-80: clamp(40px, 4.1vw, 80px);
	--padding-65: clamp(40px, 3.4vw, 65px);
	--fontsize-25: clamp(19px, 1.3vw, 25px);
	--fontsize-22: clamp(18px, 1.1vw, 22px);
	--fontsize-20: clamp(17px, 1vw, 20px);
	--fontsize-18: clamp(16px, 0.94vw, 18px);
	--fontsize-16: 16px;
	--fontsize-15: 15px;
}
/* Font Awesome Free の例。実際の family 名・URL はご利用バージョンに合わせて */
@font-face {
	font-family: "Font Awesome 6 Free";
	src: url("https://use.fontawesome.com/releases/v6.7.2/webfonts/fa-solid-900.woff2") format("woff2");
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Font Awesome 6 Brands";
	src: url("https://use.fontawesome.com/releases/v6.7.2/webfonts/fa-brands-400.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
*,
*::before,
*::after {
	box-sizing: border-box;
}
* {
	margin: 0;
}
html,
body {
	height: 100%;
}
img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
}
input,
button,
textarea,
select {
	font: inherit;
}
p,
h1,
h2,
h3,
h4,
h5,
h6 {
	overflow-wrap: break-word;
}
#root,
#__next {
	isolation: isolate;
}
ol,
ul {
	list-style-type: none;
	margin: 0;
}
legend,
menu,
ol,
ul {
	padding: 0
}
a {
	text-decoration: none;
	color: var(--font-color);
}
p,
li,
dd {
	overflow-wrap: break-word;
	text-align: justify;
}
body {
	/*--- ▼ゴシック ---*/
	font-family: var(--font-ja);
	line-height: 1.8;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	color: var(--font-color);
	font-weight: 400;
	font-style: normal;
	font-size: var(--fontsize-16);
}
body img {
	max-width: 100%;
	height: auto;
}
h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 400;
	line-height: 1.3;
	font-style: normal;
}
table {
	border-collapse: collapse;
}
/* 
 animation
----------------------------------------------------------- */
.fadein {
	opacity: 0.1;
	transition: all ease 1s;
	-webkit-transition: all ease 1s;
	-moz-transition: all ease 1s;
}
.on .fadein,
.on.fadein {
	opacity: 1;
}
.totop {
	opacity: 0.1;
	transform: translateY(30px);
	transition: all 1s;
}
.on .totop,
.on.totop {
	opacity: 1;
	transform: translateY(0);
}
.fadeinleft {
	opacity: 0.1;
	-webkit-transform: translateX(-50px);
	transform: translateX(-50px);
	transition: all ease 1s;
	-webkit-transition: all ease 1s;
	-moz-transition: all ease 1s;
}
.on .fadeinleft,
.on.fadeinleft {
	opacity: 1;
	-webkit-transform: translateX(0);
	transform: translateX(0);
}
.fadeinright {
	opacity: 0.1;
	-webkit-transform: translateX(50px);
	transform: translateX(50px);
	transition: all ease 1s;
	-webkit-transition: all ease 1s;
	-moz-transition: all ease 1s;
}
.on .fadeinright,
.on.fadeinright {
	opacity: 1;
	-webkit-transform: translateX(0px);
	transform: translateX(0px);
}
.no2 {
	transition-delay: .2s;
}
.no3 {
	transition-delay: 0.4s;
}
.no4 {
	transition-delay: 0.6s;
}
.no5 {
	transition-delay: 0.8s;
}
/* 
 Head
----------------------------------------------------------- */
.header {
	width: 100%;
}
/* 
 gNavi
----------------------------------------------------------- */
.navwrap {
	width: 100%;
	background-color: rgba(255, 255, 255, 0.7);
	backdrop-filter: blur(10px);
	box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
	position: fixed;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center;
	top: 0;
	left: 0;
	z-index: 998;
	transition: all ease 0.5s;
	padding: clamp(16px, 1.2vw, 20px) clamp(16px, 1.2vw, 22px);
}
.navwrap p img,
.navwrap h1 img {
	width: auto;
}
.navwrap > ul {
	display: flex;
	justify-content: flex-end;
	flex-wrap: wrap;
	align-items: center;
}
.navwrap > ul > .normal_nav {
	transition: all ease 0.5s;
	position: relative;
	margin: 0 1.8vw;
}
.navwrap > ul > .normal_nav a,
.navwrap > ul > .normal_nav p {
	display: inline-block;
	padding: 0.5em;
}
.navwrap > ul > .normal_nav a {
	font-size: 1rem;
	line-height: 1.2em;
	line-height: 1.4em;
}
.navwrap > ul > .normal_nav a span {
	display: block;
	color: var(--main-color);
	font-size: var(--fontsize-15);
	font-weight: bold;
	letter-spacing: 0.06em;
}
.navwrap > ul > .c_btn {
	margin-left: 2vw;
}
.c_btn a {
	padding: 1rem;
	background: var(--gradation-color-toR);
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 8px 19px;
	color: #fff;
	border-radius: 3px;
	transition: all .3s;
}
.c_btn a:hover {
	opacity: 0.7;
}
.c_btn a::before {
	content: '\f095';
	font-family: FontAwesome;
	padding: 4px 15px 4px 0;
	font-size: 1.4rem;
	border-right: solid 1px rgba(255, 255, 255, 0.5);
	line-height: 1;
}
.c_btn a span {
	padding-left: 12px;
	font-family: var(--font-en);
	font-weight: bold;
	font-size: 22px;
	line-height: 1em;
	letter-spacing: 0.06em;
}
.c_btn a em {
	font-style: normal;
	font-size: 0.6em;
	display: block;
}
.navwrap > ul > .normal_nav:hover > a,
.navwrap > ul > .normal_nav:hover > p {
	color: var(--main-color);
}
.navwrap ul li:hover ul {
	transform: translateX(-50%) scaleY(1);
}
.navwrap * {
	transition: all ease 0.5s;
}
.top_back {
	height: 45px;
	width: 45px;
	border-radius: 25px;
	background-color: var(--main-color);
	position: fixed;
	right: 15px;
	bottom: 15px;
	display: grid;
	place-content: center;
	z-index: 10000;
	opacity: 0;
	transition: all ease 0.5s;
}
.top_back.view {
	opacity: 1;
}
.top_back img {
	height: 13px;
	width: auto;
}
/* パンくずリスト
----------------------------------------------------------- */
.breadcrumb__list {
	display: flex;
	width: min(90%, 1200px);
	margin-inline: auto;
	flex-wrap: wrap;
	font-size: 14px;
}
.breadcrumb__item:not(:last-child)::after {
	content: '/';
	margin: 0 0.3rem;
}
.breadcrumb__item a {
	color: #9D9D9D;
}
.breadcrumb__item:last-child a {
	color: var(--font-color);
}
/* 
共通
----------------------------------------------------------- */
.pc {
	display: block;
}
br.pc {
	display: inherit;
}
.sp {
	display: none;
}
br.sp {
	display: none;
}
.pc1100 {
	display: block;
}
br.pc1100 {
	display: inherit;
}
.sp1100 {
	display: none;
}
br.sp1100 {
	display: none;
}
.pc640 {
	display: block;
}
br.pc640 {
	display: inherit;
}
.sp640 {
	display: none;
}
br.sp640 {
	display: none;
}
.inner {
	width: min(90%, 1200px);
	margin-inline: auto;
	padding: clamp(50px, 6.8vw, 130px) 0;
}
.flex {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.flex .img img {
	width: 100%;
	height: auto;
}
#main {
	overflow: hidden;
}
#container {
	position: relative;
	padding-top: clamp(90px, 6vw, 102px);
}
.more_btn {
	display: block;
	background-color: var(--main-color);
	width: min(100%, 250px);
	color: #fff;
	transition: all ease 0.5s;
	text-align: center;
	padding: 15px;
	position: relative;
	margin: 0 5px 5px 0;
}
.more_btn::before {
	content: '';
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-color: transparent transparent #fff transparent;
	border-width: 0px 0px 10px 10px;
	position: absolute;
	inset: auto 5px 5px auto;
	transition: all ease 0.5s;
}
.more_btn::after {
	content: '';
	width: 100%;
	height: 100%;
	top: 5px;
	left: 5px;
	border: 1px solid var(--main-color);
	position: absolute;
	transition: all ease 0.5s;
	z-index: -1;
}
.more_btn:hover::before {
	inset: auto 2px 2px auto;
}
.more_btn:hover::after {
	top: 0;
	left: 0;
}
.anchor {
	padding-top: clamp(60px, 5.2vw, 150px);
	margin-top: calc(clamp(60px, 5.2vw, 150px) * -1);
}
.tac {
	text-align: center;
}
.tal {
	text-align: left;
}
.tar {
	text-align: right;
}
.taj {
	text-align: justify;
}
.linkbox {
	position: relative;
	z-index: 5;
}
.linkbox.tac a {
	margin: 0 auto;
}
.linkbox.tar a {
	margin: 0 0 0 auto;
}
.no_link {
	pointer-events: none !important;
}
.pt0 {
	padding-top: 0 !important;
}
.pb0 {
	padding-bottom: 0 !important;
}
.txt_only {
	width: 100% !important;
}
.txt_link {
	text-decoration: underline;
	transition: all ease 0.5s;
}
.txt_link:hover {
	opacity: 0.7;
}
.js-accordion > li {
	position: relative;
}
.js-accordion .ttl {
	padding-right: clamp(30px, 1.8vw, 35px);
	position: relative;
}
.js-accordion .ttl::before,
.js-accordion .ttl::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: clamp(20px, 1.3vw, 25px);
	height: 2px;
	transition: all ease 0.5s;
	background-color: var(--font-color);
}
.js-accordion .ttl::after {
	transform: rotate(-90deg);
}
.js-accordion .open .ttl::after {
	transform: rotate(0);
}
.js-accordion > li .btn {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	cursor: pointer;
	z-index: 1;
}
.js-accordion .box {
	display: none;
}
.js-modal {
	display: none;
	position: fixed;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
	z-index: 10005;
	backface-visibility: hidden;
}
.js-modal .wrap {
	width: 100%;
	height: 100%;
}
.js-modal .wrap_box {
	height: 100%;
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	background: rgba(57, 53, 42, 0.7);
}
.js-modal .scloll_area {
	transform: scale(.5);
	transition: all ease 1s;
}
.js-modal.open .scloll_area {
	transform: scale(1);
}
.js-modal .content {
	width: 100%;
	height: auto;
	max-height: 85vh;
	padding: clamp(20px, 1.6vw, 30px);
	position: relative;
	overflow-y: auto;
	overflow-x: hidden;
	background-color: #fff;
}
.js-modal .js-sclollarea {
	width: auto;
	height: auto;
	max-width: 95%;
	margin: clamp(15px, 1.6vw, 30px);
	max-height: 90%;
	position: relative;
}
.js-modal .js-modalclose {
	cursor: pointer;
	z-index: 100000;
	position: absolute;
	top: calc(clamp(25px, 1.8vw, 35px) * -1);
	right: 0;
	width: clamp(20px, 1.5vw, 28px);
	height: clamp(20px, 1.5vw, 28px);
	background-image: url('./library/images/modal_close.svg');
	background-size: contain;
	background-position: center center;
	background-repeat: no-repeat;
	transition: all ease 0.5s;
}
.js-modal .js-modalclose:hover {
	transform: rotate(90deg);
}
.js-tabcontent {
	display: none;
}
/* 
 TOP
----------------------------------------------------------- */
.top_main {
	position: relative;
	background-color: #F8F7F6;
}
.top_main::before {
	content: '';
	display: block;
	background-image: url(library/images/top_bg02.png);
	background-image: url(library/images/top_bg02.webp);
	background-repeat: no-repeat;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	/* z-index: -1; */
}
#top {
	padding-top: 60px;
	margin-top: -60px;
}
.top_fv {
	width: 100%;
	display: flex;
	padding-left: 48px;
	background: #fff;
	position: relative;
	z-index: 1;
}
.top_fv_catch {
	width: clamp(300px, 40vw, 565px);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4rem;
	font-size: clamp(16px, 4.4vw, 60px);
}
.top_fv_catch img {
	width: min(390px, 100%);
	margin: 0 auto;
}
.top_fv_catch > picture {
	transform-origin: bottom center;
	transform: perspective(800px) rotateX(75deg) translateY(10px);
	opacity: 0;
	will-change: transform, opacity;
}
.top_fv_catch.is-awake > picture {
	animation: stand-up 1000ms cubic-bezier(.2, .8, .2, 1) forwards;
}
@keyframes stand-up {
	0% {
		transform: perspective(800px) rotateX(75deg) translateY(10px);
		opacity: 0;
	}
	60% {
		transform: perspective(800px) rotateX(-4deg) translateY(0);
		opacity: 1;
	}
	100% {
		transform: perspective(800px) rotateX(0deg);
		opacity: 1;
	}
}
@media (prefers-reduced-motion: reduce) {
	.top_fv_catch > img,
	.top_fv_catch.is-awake > img {
		animation: none !important;
		transform: none !important;
		opacity: 1 !important;
	}
}
.top_fv_catch h2 {
	display: block;
	width: 100%;
	font-size: 1em;
	font-weight: 700;
}
span.top_fv_txt {
	display: inline-block;
	background: linear-gradient(to left, #EE781E, #E73129);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
	font-family: var(--font-ja);
}
span.top_fv_txt:not(:last-of-type) {
	margin-bottom: 0.5rem;
}
p.top_fv_txt {
	font-family: var(--font-en);
	text-align: left;
	font-size: clamp(0.2em, 40vw, 0.4em);
	width: 335px;
	margin-right: auto;
	font-weight: bold;
	line-height: 1.4em;
}
.top_fv_txt {
	--animation-delay: var(--delay, 0);
	--animation-duration: var(--duration, 800ms);
	--animation-iterations: var(--iterations, 1);
	position: relative;
	animation-name: clip-text;
	cursor: default;
}
.top_fv_txt,
.top_fv_txt::after {
	animation-delay: var(--animation-delay, 2s);
	animation-iteration-count: var(--iterations, 1);
	animation-duration: var(--duration, 800ms);
	animation-fill-mode: both;
	animation-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
}
.top_fv_txt::after {
	content: "";
	position: absolute;
	z-index: 999;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--gradation-color-toL);
	transform: scaleX(0);
	transform-origin: 0 50%;
	pointer-events: none;
	animation-name: text-revealer;
}
@keyframes clip-text {
	from {
		clip-path: inset(0 100% 0 0);
	}
	to {
		clip-path: inset(0 0 0 0);
	}
}
@keyframes text-revealer {
	0%,
	50% {
		transform-origin: 0 50%;
	}
	60%,
	100% {
		transform-origin: 100% 50%;
	}
	60% {
		transform: scaleX(1);
	}
	100% {
		transform: scaleX(0);
	}
}
.top_fv_img {
	padding-left: 8em;
	width: calc(100% - clamp(300px, 40vw, 565px));
	background-image: url(library/images/fv_pa.png);
	background-image: url(library/images/fv_pa.webp);
	background-position: 2em;
	background-repeat: no-repeat;
	background-size: contain;
}
.top_fv_img * {
	height: 100%;
}
.top_fv_img img {
	object-fit: cover;
	object-position: center;
}
.top_concept {
	padding: clamp(50px, 6.8vw, 130px) 0;
	position: relative;
	background-color: #fff;
	background-image: url(library/images/top_bg01.png);
	background-image: url(library/images/top_bg01.webp);
	background-position: top right;
	background-repeat: no-repeat;
	background-size: 30%;
}
.mid01 {
	font-size: 32px;
	position: relative;
	z-index: 0;
	margin-bottom: 4rem;
}
.mid01 span {
	display: flex;
	align-items: center;
	font-family: var(--font-en);
	color: rgba(235, 85, 36, 0.08);
	font-weight: bold;
	position: absolute;
	top: 50%;
	bottom: 50%;
	transform: translateY(-50%);
	width: 100%;
	height: 100%;
	font-size: clamp(3em, 11.4vw, 6em);
	background: url(library/images/mid_pa02.png);
	background: url(library/images/mid_pa02.webp);
	background-position: left center;
	background-repeat: no-repeat;
	background-size: contain;
	z-index: -1;
	padding-left: 0.2em;
}
.mid01 h3 {
	font-weight: bold;
	color: var(--font-color);
	vertical-align: middle;
	display: flex;
	align-items: center;
	gap: 6px;
	position: relative;
	padding: clamp(0em, 2.5vw, 1.2em) 0 clamp(0em, 2.5vw, 1.2em) clamp(0em, 2.5vw, 1.2em);
}
.mid01 h3::before {
	content: '';
	display: inline-block;
	width: 1em;
	height: 1em;
	background: url(library/images/mid_pa01.png);
	background: url(library/images/mid_pa01.webp);
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	vertical-align: middle;
}
.top_concept_thought {
	padding-bottom: 4rem;
	position: relative;
	z-index: 0;
}
.top_concept_thought::after {
	content: '';
	display: block;
	position: absolute;
	width: 50%;
	height: 8rem;
	background: linear-gradient(to right, #EE781E 0%, #EA4D25 60%, #FFFFFF 100%);
	left: 0;
	bottom: 0;
	z-index: -1;
}
.top_concept_inner {
	width: min(90%, 1200px);
	margin-inline: auto;
}
.top_concept_thought_wrapper {
	display: flex;
	justify-content: space-between;
}
.top_concept_content_img {
	width: 40%;
}
.top_concept_content_img img {
	object-fit: cover;
	height: 100%;
}
.top_concept_content_img picture {
	height: 100%;
}
.top_concept_content_txt {
	width: 50%;
}
.mid02 {
	font-size: 22px;
	font-weight: bold;
	color: var(--main-color);
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 1.5rem;
}
.mid02::before {
	content: '';
	display: inline-block;
	width: 1.3em;
	height: 1em;
	background: url(library/images/mid_pa03.png);
	background: url(library/images/mid_pa03.webp);
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
}
.mid03 {
	font-size: 32px;
	display: flex;
	flex-direction: column;
	margin-bottom: 1.5rem;
}
.mid03 span {
	border: solid 1px var(--main-color);
	width: fit-content;
	padding: 0.2em 0.45em;
	font-weight: 500;
}
.mid03 span:not(:last-of-type) {
	border-bottom: 0;
}
.top_concept_content_txt p {
	line-height: 2.2em;
}
.top_concept_strong {
	padding-top: 4rem;
	position: relative;
}
.top_concept_strong ul {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 30px;
	position: relative;
	z-index: 1;
}
.top_concept_strong ul li {
	grid-column: span 2;
	padding: 2rem;
	border: solid 1px #EB5524;
	border-radius: 3px;
	text-align: center;
	background: rgba(255, 255, 255, 0.6);
	backdrop-filter: blur(10px);
}
.top_concept_strong ul li:nth-child(4),
.top_concept_strong ul li:nth-child(5) {
	grid-column: span 3;
}
.top_concept_strong ul li h3 {
	color: #fff;
	font-weight: bold;
	background: var(--gradation-color-toR);
	;
	border-radius: 3px;
	padding: 0.5em 0;
}
.top_concept_strong ul li p {
	text-align: center;
}
.top_concept_strong ul li p::before {
	content: '';
	display: block;
	padding: 1.9rem;
	margin: 1.1rem 0;
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
}
.top_concept_strong ul li p.st_hands::before {
	background-image: url(library/images/st_hands.png);
	background-image: url(library/images/st_hands.webp);
}
.top_concept_strong ul li p.st_machine::before {
	background-image: url(library/images/st_machine.png);
	background-image: url(library/images/st_machine.webp);
}
.top_concept_strong ul li p.st_drone::before {
	background-image: url(library/images/st_drone.png);
	background-image: url(library/images/st_drone.webp);
}
.top_concept_strong ul li p.st_star::before {
	background-image: url(library/images/st_star.png);
	background-image: url(library/images/st_star.webp);
}
.top_concept_strong ul li p.st_dash::before {
	background-image: url(library/images/st_dash.png);
	background-image: url(library/images/st_dash.webp);
}
.top_concept_strong ul::before,
.top_concept_strong ul::after {
	content: '';
	position: absolute;
	z-index: -1;
	width: 100vw;
	height: 50%;
	background-image: url(library/images/bg_txt.png);
	background-image: url(library/images/bg_txt.webp);
	overflow: hidden;
	background-size: auto 70%;
	background-repeat: repeat-x;
}
.top_concept_strong ul::before {
	top: 0;
	left: 0;
	margin-left: calc(-50vw + 50%);
	animation: loop-slide01 60s infinite linear;
}
.top_concept_strong ul::after {
	bottom: 0;
	left: 0;
	margin-left: calc(-50vw + 50%);
	animation: loop-slide02 60s infinite linear;
}
@keyframes loop-slide01 {
	from {
		background-position: 0 center;
	}
	to {
		background-position: -3000px center;
	}
}
@keyframes loop-slide02 {
	from {
		background-position: 0 center;
	}
	to {
		background-position: 3000px center;
	}
}
.top_fixed_bg {
	height: 300px;
	background-image: url(library/images/fixed_pho.jpg);
	background-image: url(library/images/fixed_pho.webp);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	position: relative;
}
.top_business {
	position: relative;
	z-index: 1;
}
.top_business_inner {
	width: min(1560px, 95%);
	margin-left: auto;
	padding: clamp(50px, 6.8vw, 130px) 1rem clamp(50px, 6.8vw, 130px) 0;
}
.top_fixed_bg::before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(to right, #ED8B19, #F1477B);
	opacity: .7;
}
.top_business_head {
	display: flex;
	margin-bottom: 3rem;
}
.top_business_head_txt {
	width: 70%;
}
.top_business_head_illust {
	position: relative;
	padding: 9vw;
}
.top_business_head_illust {
	position: relative;
	perspective: 900px;
	transform-style: preserve-3d;
}
.top_business_head_illust picture {
	position: absolute;
	object-fit: contain;
	transform-origin: bottom center;
	transform: rotateX(70deg) translateZ(0);
	opacity: 0;
	will-change: transform, opacity;
}
.business_i01 {
	top: 0;
	right: 0;
	width: 50%;
	height: 60%;
}
.business_i02 {
	bottom: 0;
	left: 0;
	width: 50%;
	height: 80%;
}
.business_i01 img,
.business_i02 img {
	width: 100%;
	max-height: 100%;
	object-fit: contain;
}
.top_business_head_illust.on .business_i01 {
	animation: biz-stand 800ms cubic-bezier(.2, .8, .2, 1) 80ms forwards;
}
.top_business_head_illust.on .business_i02 {
	animation: biz-stand 800ms cubic-bezier(.2, .8, .2, 1) 200ms forwards;
}
@keyframes biz-stand {
	0% {
		transform: rotateX(70deg) translateZ(0);
		opacity: 0;
	}
	60% {
		transform: rotateX(-6deg);
		opacity: 1;
	}
	100% {
		transform: rotateX(0deg);
		opacity: 1;
	}
}
@media (prefers-reduced-motion: reduce) {
	.top_business_head_illust img {
		animation: none !important;
		transform: none !important;
		opacity: 1 !important;
	}
}
.splide__arrows {
	display: flex;
	gap: 10px;
	margin-bottom: 20px;
}
.splide__arrow {
	padding: 0.5rem 2.7rem;
	border-radius: 3px;
	background: var(--gradation-color-toL);
	border: none;
	cursor: pointer;
	transition: all .3s;
}
.splide__arrow:hover {
	opacity: .8;
}
.splide__arrow.splide__arrow--prev {
	background: var(--gradation-color-toR);
}
.splide__arrow::before {
	display: block;
	font-family: FontAwesome;
	color: #fff;
	line-height: 1;
	font-size: 1.1rem;
}
.splide__arrow.splide__arrow--prev::before {
	content: '\f060';
}
.splide__arrow.splide__arrow--next::before {
	content: '\f061';
}
.splide__arrow svg {
	display: none;
}
.top_business .splide__track {
	padding-bottom: 1rem;
}
.top_business_slide ul li {
	background-image: url(library/images/business_slide_bg.jpg);
	background-image: url(library/images/business_slide_bg.webp);
	padding: 1.5rem 1.8rem;
	box-shadow: 6px 6px 6px rgb(109 109 109 / 5%);
}
.top_business_slide ul li img {
	border-radius: 3px;
	margin-bottom: 10px;
}
.top_business_slide ul li .top_business_slide_item_txt {
	padding: 1.5rem;
	border-radius: 3px;
	border-top: solid 2px var(--main-color);
	border-left: solid 2px var(--main-color);
	background-color: #fff;
	box-shadow: 6px 6px 6px rgb(109 109 109 / 5%);
}
.top_business_slide ul li .top_business_slide_item_txt p {
	text-indent: -1em;
	padding-left: 1em;
}
.top_business_slide ul li .top_business_slide_item_txt p::before {
	content: '';
	display: inline-block;
	width: 8px;
	height: 8px;
	background-color: var(--main-color);
	border-radius: 50%;
	margin-right: 12px;
	vertical-align: middle;
	margin-bottom: 5px;
}
.top_about {
	background: #fff;
	box-shadow: 0px -3px 10px rgba(238, 120, 30, 0.1);
	position: relative;
	z-index: 1;
}
.top_about .mid01 h3 {
	justify-content: center;
}
.top_about .mid01 span {
	width: fit-content;
	inset: 50%;
	transform: translate(-50%, -50%);
}
.top_about dl {
	display: flex;
	flex-wrap: wrap;
	width: min(650px, 100%);
	margin-inline: auto;
}
.top_about dl dt,
.top_about dl dd {
	padding: 1rem;
}
.top_about dl dt {
	width: 150px;
	border-top: solid 1px var(--main-color);
}
.top_about dl dt:last-of-type {
	border-bottom: solid 1px var(--main-color);
}
.top_about dl dd {
	width: calc(100% - 150px);
	border-top: solid 1px #DFDFE1;
}
.top_about dl dd:last-of-type {
	border-bottom: solid 1px #DFDFE1;
}
.top_about dl dd ul li {
	text-indent: -1em;
	padding-left: 1em;
}
.top_about dl dd ul li::before {
	content: '・';
}
/* 
 foot
----------------------------------------------------------- */
.footer {
	background-color: #EDE4DB;
	position: relative;
	z-index: 1;
}
.footer a {
	transition: all ease 0.5s;
}
.footer a:hover {
	opacity: 0.7;
}
.footer .inner {
	padding: 65px 0;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	line-height: 1.5;
	width: min(90%, 800px);
}
.footer .inner p {
	line-height: 1.5;
}
.footer .info {
	width: 45%;
	display: flex;
	align-items: center;
	gap: 4rem;
}
.footer .info picture {
	display: inline-block;
	width: inherit;
}
.footer .info picture img {
	width: min(100%, 154px);
}
.footer .info ul {
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	height: 100%;
}
.footer .info ul li::before {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--main-color);
	margin-right: 5px;
	margin-bottom: 4px;
	vertical-align: middle;
	display: inline-block;
}
.footer .sitemap {
	width: 45%;
	display: flex;
	flex-direction: column;
}
.footer .sitemap address {
	font-style: normal;
	margin-bottom: 1.5rem;
	line-height: 1.8em;
	font-size: 14px;
}
.footer .sitemap .c_btn {
	width: min(100%, 270px);
}
.cop {
	font-family: var(--font-en);
	width: 100%;
	padding: 5px;
	background-color: var(--main-color);
	color: #FFF;
	font-size: 12px;
	text-align: center;
	position: relative;
	z-index: 1;
}
/* 
 smartphone menu btn
----------------------------------------------------------- */
.spnavbtn {
	position: fixed;
	top: 4%;
	right: 2%;
	z-index: 9999;
	text-align: center;
	padding: 12px 10px 5px 11px;
	cursor: pointer;
	display: none;
}
.nav-trigger,
.nav-trigger span {
	display: inline-block;
	transition: all ease 0.5s;
	box-sizing: border-box;
}
.nav-trigger {
	position: relative;
	width: 30px;
	height: 18px;
}
.nav-trigger span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: var(--main-color);
	border-radius: 20px;
}
.nav-trigger span:nth-of-type(1) {
	top: 0;
}
.nav-trigger span:nth-of-type(2) {
	top: 8px;
}
.nav-trigger span:nth-of-type(3) {
	bottom: 0;
}
/* 
 smartphone menu btn click
----------------------------------------------------------- */
.spnavbtn .activete {
	font-size: 0.9em;
	opacity: 0;
}
.spnavbtn .activete:before {
	content: "";
}
.nav-trigger.active span:nth-of-type(1) {
	-webkit-transform: translateY(8px) rotate(-45deg);
	transform: translateY(8px) rotate(-45deg);
}
.nav-trigger.active span:nth-of-type(2) {
	left: 60%;
	opacity: 0;
	-webkit-animation: active-menu-bar02 .8s forwards;
	animation: active-menu-bar02 .8s forwards;
}
@-webkit-keyframes active-menu-bar02 {
	100% {
		height: 0;
	}
}
@keyframes active-menu-bar02 {
	100% {
		height: 0;
	}
}
.nav-trigger.active span:nth-of-type(3) {
	-webkit-transform: translateY(-8px) rotate(45deg);
	transform: translateY(-8px) rotate(45deg);
}
/* 
 smartphone menu btn click area
----------------------------------------------------------- */
.spnav {
	position: relative;
	z-index: 999;
}
.sp_close {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	z-index: 998;
	display: none;
}
.sp_close.open {
	display: inherit;
}
.spnav .trigger {
	width: 300px;
	height: 100%;
	transition: all ease 0.5s;
	position: fixed;
	padding: 100px 10px 0;
	top: 0;
	left: -300px;
	overflow-y: scroll;
	opacity: 0;
	box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.4);
}
.spnav .open {
	position: fixed;
	left: 0;
	overflow-y: scroll;
	background: rgba(255, 255, 255, 1);
	opacity: 1;
}
.spnav ul li:not(:last-child) {
	margin-bottom: 1.5rem;
}
.spnav .trigger > p {
	width: 100%;
	padding: 15px;
	text-align: center;
}
.spnav .trigger > p img {
	width: auto;
	margin: 0 auto;
}
.spnav ul li a {
	width: fit-content;
	display: block;
	font-size: 21px;
	font-weight: 400;
	line-height: 1.3;
}
.spnav ul li a span {
	display: block;
	color: var(--main-color);
	font-size: var(--fontsize-15);
	font-weight: bold;
	letter-spacing: 0.06em;
	font-size: 0.9em;
}
.spnav .trigger > ul > li.sp_accordion > a {
	margin-right: 40px;
}
.spnav .trigger > ul > li.sp_accordion > a > span {
	right: -40px;
}
.spnav .trigger > ul > li.sp_accordion span::before,
.spnav .trigger > ul > li.sp_accordion span::after {
	content: '';
	display: block;
	position: absolute;
	inset: 50%;
	transform: translate(-50%, -50%);
	background-color: var(--main-color);
	border-radius: 50vh;
	transition: all ease .2s;
}
.spnav .trigger > ul > li.sp_accordion span::before {
	width: 50%;
	height: 1px;
}
.spnav .trigger > ul > li.sp_accordion span::after {
	height: 50%;
	width: 1px;
}
.spnav .trigger > ul > li.sp_accordion.sp_accordion_open span::before,
.spnav .trigger > ul > li.sp_accordion.sp_accordion_open span::after {
	transform: translate(-50%, -50%) rotate(45deg);
	background-color: var(--main-color);
}
/* .spnav .trigger > ul > li:last-child {
	border-bottom: 1px solid rgba(250, 157, 44, 0.5);
} */
.spnav ul li ul li {
	border-top: 1px solid rgba(250, 157, 44, 0.2);
}
.spnav ul li ul li:last-child {
	border-bottom: none;
}
.sp_accordionbox {
	width: 100%;
	background: rgba(255, 255, 255, 0.5);
	display: none;
}
.sp_accordionbox li a {
	padding-left: 35px !important;
}
.sp_accordionbox li a::before {
	content: '';
	display: block;
	position: absolute;
	left: 15px;
	top: 50%;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-style: solid;
	border-color: transparent transparent transparent var(--main-color);
	border-width: 4.5px 0px 4.5px 7.79px;
	margin-right: 10px;
}
@media screen and (max-width: 1100px) {
	.pc1100 {
		display: none;
	}
	br.pc1100 {
		display: none;
	}
	.sp1100 {
		display: block;
	}
	br.sp1100 {
		display: inherit;
	}
	/* 
	 header
	----------------------------------------------------------- */
	.navwrap p img,
	.navwrap h1 img {
		width: 140px;
	}
	.navwrap ul {
		display: none;
	}
	.spnav .c_btn {
		width: min(266px, 100%);
		margin: 1.5rem auto 0;
	}
	/* 
	 top
	----------------------------------------------------------- */
	#container {
		padding-top: 62px;
	}
	/* 
	 smartphone menu btn
	----------------------------------------------------------- */
	.spnavbtn {
		top: 10px;
		right: 5px;
		padding: 10px 10px 5px 11px;
		display: block;
		background: none;
		border: none;
	}
	.nav-trigger {
		width: 30px;
	}
}
@media screen and (max-width:820px) {
	:root {
		--fontsize-16: 0.9rem;
		--fontsize-15: 14px;
	}
	.pc {
		display: none;
	}
	br.pc {
		display: none;
	}
	.sp {
		display: block;
	}
	br.sp {
		display: inherit;
	}
	.flex-prev {
		display: none !important;
	}
	.flex-next {
		display: none !important;
	}
	/* 
	 top
	----------------------------------------------------------- */
	.top_fv {
		position: relative;
		padding-left: 0;
		height: 60vh;
	}
	.top_fv_catch {
		position: absolute;
		z-index: 2;
		gap: 0.5em;
		bottom: 1em;
		left: 1rem;
		width: clamp(200px, 55vw, 565px);
		font-size: clamp(22px, 5.5vw, 60px);
	}
	p.top_fv_txt {
		font-size: clamp(0.2em, 40vw, 0.5em);
		width: auto;
	}
	.top_fv_catch img {
		display: none;
	}
	.top_fv_img {
		padding-left: 0;
		width: 100%;
		background-position: 1em;
		background-image: none;
	}
	.top_fv_img img {
		width: 100%;
	}
	#js-fv.splide {
		position: relative;
	}
	#js-fv.splide::before {
		content: '';
		display: block;
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
		background: rgba(255, 255, 255, 0.4);
		z-index: 1;
	}
	.mid01 {
		margin-bottom: 2rem;
	}
	.top_concept_content_txt {
		width: 55%;
	}
	.mid03 {
		font-size: 22px;
	}
	.top_concept_strong ul {
		gap: 10px;
	}
	.top_concept_strong ul li {
		padding: 1rem;
	}
	.top_business_slide ul li {
		padding: 1rem 1rem;
	}
	.top_business_slide ul li .top_business_slide_item_txt {
		padding: 1rem;
	}
	.top_concept_thought_wrapper {
		flex-wrap: wrap;
		gap: 1rem;
	}
	.top_concept_content_img {
		width: 100%;
	}
	.top_concept_content_img picture {
		aspect-ratio: 5 / 3;
	}
	.top_concept_content_img img {
		width: 100%;
	}
	.top_concept_content_txt .mid02 {
		margin-bottom: 1.5rem;
	}
	.top_concept_content_txt {
		width: 100%;
	}
	.top_concept_content_txt p {
		line-height: 1.8em;
	}
	.top_concept_thought::after {
		content: none;
	}
	.top_concept_thought {
		padding-bottom: 0rem;
	}
	.top_concept_strong ul {
		grid-template-columns: repeat(1, 1fr);
	}
	.top_concept_strong ul li {
		grid-column: auto;
	}
	.top_concept_strong ul li:nth-child(4),
	.top_concept_strong ul li:nth-child(5) {
		grid-column: auto;
	}
	.top_concept_strong ul::before,
	.top_concept_strong ul::after {
		height: 20%;
	}
	.top_concept_strong ul::before {
		top: 20%;
	}
	.top_concept_strong ul::after {
		bottom: 20%;
	}
	/* 
フッター
----------------------------------------------------------- */
	.footer .info {
		width: 47%;
		gap: 1.5rem;
	}
	.footer .info img {
		width: min(100%, 134px);
	}
	.footer .sitemap {
		width: 47%;
	}
	.footer .info ul li::before {
		margin-right: 1px;
	}
}
@media screen and (max-width:640px) {
	.pc640 {
		display: none;
	}
	br.pc640 {
		display: none;
	}
	.sp640 {
		display: block;
	}
	br.sp640 {
		display: inherit;
	}
	.top_back {
		display: none;
	}
	.spnav .trigger {
		width: 100%;
		height: 100%;
		transition: all ease 0.5s;
		position: fixed;
		padding: 100px clamp(16px, 9vw, 50px);
		top: -100%;
		left: 50%;
		right: 50%;
		transform: translateX(-50%);
		overflow-y: scroll;
		opacity: 0;
	}
	.spnav .open {
		width: 100%;
		height: 100%;
		position: fixed;
		top: 0;
		overflow-y: scroll;
		background: rgba(255, 255, 255, 1);
		opacity: 1;
	}
	.anchor {
		padding-top: clamp(60px, 6.5vw, 150px);
		margin-top: calc(clamp(60px, 6.5vw, 150px) * -1);
	}
	/* 
	 top
	----------------------------------------------------------- */
	.mid01 {
		font-size: 21px;
	}
	.mid02 {
		font-size: 18px;
		margin-bottom: 1rem;
	}
	.mid03 {
		margin-bottom: 1.5rem;
	}
	.top_fixed_bg {
		height: 120px;
	}
	.top_business_head {
		flex-wrap: wrap;
		gap: 1rem;
		flex-direction: column-reverse;
		position: relative;
		z-index: 1;
	}
	.top_business_head_txt {
		width: 100%;
	}
	.top_business_head_illust {
		width: 100px;
		padding: 3rem;
		position: absolute;
		z-index: -1;
		bottom: -80px;
		right: 0;
	}
	.top_about dl dt {
		font-weight: 700;
	}
	.top_about dl dt,
	.top_about dl dd {
		width: 100%;
		padding: 0.6rem;
	}
	.top_about dl dt:last-of-type {
		border-bottom: 0;
	}
	.top_about dl dd:last-of-type {
		border-bottom: solid 1px var(--main-color);
	}
	/* 
フッター
----------------------------------------------------------- */
	.footer .inner {
		padding: 45px 0;
		flex-direction: column;
	}
	.footer .info {
		width: 100%;
		gap: 1.5rem;
		flex-direction: column;
	}
	.footer .info picture img {
		margin: 0 auto;
	}
	.footer .info ul {
		display: none;
	}
	.footer .info ul li:not(:last-child) {
		margin-bottom: 1.5rem;
	}
	.footer .sitemap {
		width: 100%;
	}
	.footer .sitemap {
		width: fit-content;
		margin: 1.5rem auto 0;
	}
}