@charset "utf-8";

/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");

/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Reddit+Sans:ital,wght@0,200..900;1,200..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');

/*テンプレート専用cssファイルの読み込み
---------------------------------------------------------------------------*/
@import url("slide.css");
@import url("inview.css");


/*CSSカスタムプロパティ
---------------------------------------------------------------------------*/
:root {
	--text-color: #eee;
	--primary-color: #1a56db;
	--primary-inverse-color: #eee;
	--accent-color: #f97316;
	--accent-dark: #ea580c;
	--dark-color: #111827;
	--global-space: 5vw;
}


/*キーフレーム設定
---------------------------------------------------------------------------*/
@keyframes animation1 {
	0% {left: -200px;}
	100% {left: 0px;}
}
@keyframes opa1 {
	0% {opacity: 0;}
	100% {opacity: 1;}
}
@keyframes fadeIn {
	0% {opacity: 0;transform: scale(0.8);}
	100% {opacity: 1;transform: scale(1);}
}


/*全体の設定
---------------------------------------------------------------------------*/
body * {box-sizing: border-box;}
html,body {
	height: 100%;
	font-size: 13px;
}
html {
	scroll-behavior: smooth;
}
@media screen and (min-width:900px) {
	html, body {
		font-size: 16px;
	}
}

body {
	margin: 0;padding:0;
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", sans-serif;
	font-optical-sizing: auto;
	-webkit-text-size-adjust: none;
	background: #000;
	color: var(--text-color);
	line-height: 2;
	overflow-x: hidden;
}

/*リセット*/
figure {margin: 0;}
dd {margin: 0;}
nav,ul,li,ol {margin: 0;padding: 0;}
nav ul {list-style: none;}
section li {margin-left: 1rem;}
table {border-collapse:collapse;}
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}
video {max-width: 100%;}
iframe {width: 100%;}
input {font-size: 1rem;}


/*リンクテキスト全般
---------------------------------------------------------------------------*/
a {
	color: var(--text-color);
	transition: 0.3s;
}
a:hover {
	text-decoration: none;
	color: var(--accent-color);
}


/*コンテナー
---------------------------------------------------------------------------*/
body:not(.home) #container {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}


/*コンテンツ
---------------------------------------------------------------------------*/
#contents {
	flex: 1;
}
#contents section {
	padding: 60px var(--global-space);
}
@media screen and (min-width:900px) {
	#contents section {
		padding: 80px var(--global-space);
	}
}


/*header
---------------------------------------------------------------------------*/
header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 60px;
	padding: 0 4vw;
	font-family: "Reddit Sans", "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
	position: absolute;
	z-index: 1;
	width: 100%;
}
@media screen and (min-width:900px) {
	header {
		position: fixed;
		height: 70px;
		background: rgba(0,0,0,0.6);
		backdrop-filter: blur(10px);
		-webkit-backdrop-filter: blur(10px);
	}
}

#logo a {
	display: block;text-decoration: none;
	font-size: 1.2rem;
	font-weight: 800;
}


/*メニューブロック
---------------------------------------------------------------------------*/
#menubar {display: none;}
#menubar ul {list-style: none;margin: 0;padding: 0;}
#menubar a {display: block;text-decoration: none;}
.large-screen #menubar {display: block;}
.small-screen #menubar.display-block {display: block;}
#menubar_hdr.display-none {display: none;}

/*大きな端末用のメニュー*/
.large-screen #menubar > nav > ul {
	display: flex;
	font-size: 0.85rem;
	gap: 0.25rem;
}
.large-screen #menubar li a {
	border-radius: 100px;
	padding: 0.2rem 0.8rem;
}
.large-screen #menubar li a:hover {
	background: rgba(255,255,255,0.15);
	color: var(--accent-color);
}

/*小さな端末用の開閉ブロック*/
.small-screen #menubar.display-block {
	position: fixed;overflow: auto;z-index: 100;
	left: 0px;top: 0px;
	width: 100%;
	height: 100%;
	padding-top: 80px;
	background: rgba(0,0,0,0.95);
	animation: animation1 0.2s both;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.small-screen #menubar nav ul {
	width: 80%;
	max-width: 320px;
}
.small-screen #menubar nav ul li {
	border: 1px solid rgba(255,255,255,0.2);
	margin: 0.5rem 0;
	border-radius: 8px;
	text-align: center;
}
.small-screen #menubar a {
	padding: 0.8rem 1rem;
	font-size: 0.95rem;
	letter-spacing: 0.08em;
}
.small-screen #menubar, .small-screen #menubar a {
	color: #fff;
}


/*３本バー（ハンバーガー）アイコン
---------------------------------------------------------------------------*/
#menubar_hdr {
	animation: opa1 0s 0.2s both;
	position: fixed;z-index: 101;
	cursor: pointer;
	right: 4vw;
	top: 12px;
	padding: 14px 12px;
	width: 44px;
	height: 44px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border-radius: 8px;
}
#menubar_hdr span {
	display: block;
	transition: 0.3s;
	border-top: 2px solid #fff;
}
#menubar_hdr.ham {
	background: var(--accent-color);
	border-radius: 8px;
}
#menubar_hdr.ham span:nth-of-type(1),
#menubar_hdr.ham span:nth-of-type(3) {
	transform-origin: center center;
	width: 20px;
	border-color: #fff;
}
#menubar_hdr.ham span:nth-of-type(1){
	transform: rotate(45deg) translate(3.8px, 5px);
}
#menubar_hdr.ham span:nth-of-type(3){
	transform: rotate(-45deg) translate(3.8px, -5px);
}
#menubar_hdr.ham span:nth-of-type(2){
	display: none;
}


/*main 見出し
---------------------------------------------------------------------------*/
main h2 {
	font-family: "Reddit Sans", "Noto Sans JP", sans-serif;
	font-size: 2.5rem;
	letter-spacing: 0.1em;
	color: var(--primary-inverse-color);
	text-align: center;
	margin-bottom: 2.5rem;
}
main h2 .hosoku {
	display: block;font-weight: normal;
	font-size: 0.35em;
	letter-spacing: 0.05em;
	opacity: 0.6;
	margin-top: 0.25rem;
}
main h3 {
	display: inline-block;
	border-bottom: 3px solid var(--text-color);
}
@media screen and (max-width:600px) {
	main h2 {
		font-size: 1.8rem;
		margin-bottom: 2rem;
	}
}


/*bg1背景色がついたブロック（斜め区切り）
---------------------------------------------------------------------------*/
.bg1 {
	position: relative;
	background: var(--primary-color);
	color: var(--primary-inverse-color);
	padding-top: 5vw;
	padding-bottom: 5vw;
	margin-top: 8vw;
	margin-bottom: 8vw;
	margin-left: calc(-1 * var(--global-space));
	margin-right: calc(-1 * var(--global-space));
	padding-left: var(--global-space);
	padding-right: var(--global-space);
}
.bg1 a {color: inherit;}
.bg1::before, .bg1::after {
	content: "";
	position: absolute;
	left: 0;
	width: 100%;
	height: calc(5vw + 1px);
	background: var(--primary-color);
}
.bg1::before {
	top: -5vw;
	clip-path: polygon(0 100%, 100% 0, 100% 100%);
}
.bg1::after {
	bottom: -5vw;
	clip-path: polygon(0 0, 100% 0, 0 100%);
}


/*テキストのフェードイン
---------------------------------------------------------------------------*/
.fade-in-text {
	visibility: hidden;
}
.char {
	display: inline-block;
	opacity: 0;
	animation: fadeIn 0.05s linear both;
}


/*テーブル（ta1）
---------------------------------------------------------------------------*/
.ta1 {
	table-layout: fixed;
	border-top: 1px solid rgba(255,255,255,0.2);
	width: 100%;
}
.ta1 tr {
	border-bottom: 1px solid rgba(255,255,255,0.2);
}
.ta1 th, .ta1 td {
	padding: 1rem;
	word-break: break-all;
}
.ta1 th {
	width: 30%;
	text-align: left;
	color: var(--accent-color);
	font-weight: 700;
}
@media screen and (min-width:900px) {
	.ta1 th {
		width: 20%;
	}
}
.ta1 a {
	color: var(--accent-color);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ta1 a:hover {
	color: #fff;
}
@media screen and (max-width:600px) {
	.ta1 th, .ta1 td {
		padding: 0.75rem 0.5rem;
		font-size: 0.85rem;
	}
	.ta1 th {
		width: 35%;
	}
}


/*ボタン
---------------------------------------------------------------------------*/
.btn-border-radius a {
	display: inline-block;
	text-decoration: none;
	font-size: 1rem;
	text-align: center;
	background: var(--accent-color) !important;
	color: #fff !important;
	padding: 0.75rem 2.5rem !important;
	border-radius: 100px;
	font-weight: 700;
	letter-spacing: 0.05em;
	transition: 0.3s;
}
.btn-border-radius a:hover {
	background: var(--accent-dark) !important;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(249, 115, 22, 0.35);
}
.btn-border-radius a i {
	margin-left: 0.5rem;
}


/*フッターメニュー
---------------------------------------------------------------------------*/
#footermenu {
	margin: 0 !important;
	padding: 20px;
	text-align: center;
	font-size: 0.8rem;
}
#footermenu li {
	display: inline-block;
	padding: 0 10px;
}


/*フッター
---------------------------------------------------------------------------*/
footer small {font-size: 100%;}
footer {
	font-size: 0.7rem;
	text-align: center;
	padding: 30px 20px;
	background: rgba(0,0,0,0.5);
}
footer a {color: inherit;text-decoration: none;}
.footer-logo {
	font-family: "Reddit Sans", "Noto Sans JP", sans-serif;
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	opacity: 0.5;
	margin-bottom: 0.5rem;
}
footer small {
	opacity: 0.35;
}


/*PAGE TOP
---------------------------------------------------------------------------*/
.pagetop-show {display: block;}
.pagetop a {
	display: block;text-decoration: none;text-align: center;z-index: 99;
	position: fixed;
	right: 15px;
	bottom: 15px;
	color: #fff;
	font-size: 1.2rem;
	background: rgba(255,255,255,0.1);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	width: 48px;
	line-height: 48px;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,0.15);
}
.pagetop a:hover {
	background: var(--accent-color);
	color: #fff;
}


/* ==========================================================================
   About セクション
   ========================================================================== */
#about {
	text-align: center;
}
.about-text {
	max-width: 720px;
	margin: 0 auto 3rem;
}
.about-text p {
	color: rgba(255,255,255,0.7);
	font-size: 0.95rem;
	margin-bottom: 1rem;
}

.about-etymology {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.about-word {
	background: rgba(255,255,255,0.05);
	border: 1px solid rgba(255,255,255,0.12);
	border-radius: 12px;
	padding: 1.25rem 1.5rem;
	text-align: center;
	transition: 0.3s;
}
.about-word:hover {
	transform: translateY(-3px);
	background: rgba(255,255,255,0.08);
}
.about-word-en {
	display: block;
	font-family: "Reddit Sans", sans-serif;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.2;
}
.about-word--fun .about-word-en { color: var(--accent-color); }
.about-word--structure .about-word-en { color: var(--primary-color); }
.about-word--future .about-word-en { color: #fff; }
.about-word-ja {
	display: block;
	font-size: 0.75rem;
	color: rgba(255,255,255,0.5);
	margin-top: 0.25rem;
}
.about-times {
	font-size: 1.5rem;
	color: rgba(255,255,255,0.25);
	font-weight: 300;
}
@media screen and (max-width:600px) {
	.about-word {
		padding: 1rem 1.25rem;
	}
	.about-word-en {
		font-size: 1.1rem;
	}
}


/* ==========================================================================
   MVV セクション
   ========================================================================== */
.mvv-block {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 3rem;
}
.mvv-badge {
	display: inline-block;
	font-family: "Reddit Sans", sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 0.3rem 1.25rem;
	border-radius: 100px;
	margin-bottom: 1rem;
}
.mvv-badge--mission {
	background: rgba(255,255,255,0.2);
	color: #fff;
}
.mvv-badge--vision {
	background: var(--accent-color);
	color: #fff;
}
.mvv-headline {
	font-size: 1.75rem;
	font-weight: 900;
	line-height: 1.6;
	letter-spacing: 0.02em;
}
.mvv-headline--sm {
	font-size: 1.25rem;
	font-weight: 700;
}
.mvv-sub {
	margin-top: 0.75rem;
	font-size: 0.9rem;
	opacity: 0.55;
	line-height: 1.8;
}
.mvv-value-heading {
	text-align: center;
	display: block;
	font-family: "Reddit Sans", "Noto Sans JP", sans-serif;
	font-size: 2rem;
	letter-spacing: 0.1em;
	border-bottom: none;
	margin-bottom: 1.5rem;
}
.mvv-value-heading .hosoku {
	display: block;
	font-weight: normal;
	font-size: 0.4em;
	opacity: 0.6;
}

.values-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	max-width: 900px;
	margin: 0 auto;
}
.value-card {
	background: rgba(255,255,255,0.08);
	border: 1px solid rgba(255,255,255,0.1);
	border-radius: 12px;
	padding: 1.75rem 1.5rem;
	text-align: center;
	transition: 0.3s;
}
.value-card:hover {
	background: rgba(255,255,255,0.12);
	transform: translateY(-3px);
}
.value-num {
	font-family: "Reddit Sans", sans-serif;
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1;
	margin-bottom: 0.5rem;
	opacity: 0.2;
}
.value-title {
	font-size: 1.05rem;
	font-weight: 700;
	margin-bottom: 0.4rem;
}
.value-en {
	font-family: "Reddit Sans", sans-serif;
	font-size: 0.8rem;
	font-style: italic;
	opacity: 0.4;
}

@media screen and (min-width:600px) {
	.values-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media screen and (max-width:600px) {
	.mvv-headline {
		font-size: 1.3rem;
	}
	.mvv-headline--sm {
		font-size: 1.05rem;
	}
	.mvv-value-heading {
		font-size: 1.5rem;
	}
}


/* ==========================================================================
   Service セクション
   ========================================================================== */
.service-lead {
	text-align: center;
	max-width: 640px;
	margin: -1rem auto 2.5rem;
	color: rgba(255,255,255,0.6);
	font-size: 0.9rem;
}

.service-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	max-width: 960px;
	margin: 0 auto;
}
.service-card {
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(255,255,255,0.08);
	border-radius: 12px;
	overflow: hidden;
	transition: 0.3s;
}
.service-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(0,0,0,0.3);
	background: rgba(255,255,255,0.06);
}
.service-card-top {
	padding: 1.25rem 1.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: #fff;
}
.service-card-top--orange { background: var(--accent-color); }
.service-card-top--blue { background: var(--primary-color); }
.service-card-top--dark { background: var(--dark-color); }
.service-card-top i {
	font-size: 1.5rem;
	opacity: 0.7;
}
.service-num {
	font-family: "Reddit Sans", sans-serif;
	font-size: 1.5rem;
	font-weight: 700;
	opacity: 0.4;
}
.service-name {
	font-size: 1rem;
	font-weight: 700;
	margin: 1.25rem 1.5rem 0.25rem;
}
.service-company {
	font-family: "Reddit Sans", sans-serif;
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--accent-color);
	letter-spacing: 0.02em;
	margin: 0 1.5rem 0.5rem;
}
.service-desc {
	font-size: 0.85rem;
	color: rgba(255,255,255,0.55);
	line-height: 1.75;
	margin: 0 1.5rem 1.5rem;
}

@media screen and (min-width:600px) {
	.service-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* フロー図 */
.service-flow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 2.5rem;
	padding: 1.75rem 1rem;
	background: rgba(255,255,255,0.03);
	border: 1px solid rgba(255,255,255,0.06);
	border-radius: 12px;
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
	flex-wrap: wrap;
}
.service-flow-item {
	text-align: center;
	padding: 0.8rem 1.25rem;
	background: rgba(255,255,255,0.05);
	border-radius: 8px;
	border: 1px solid rgba(255,255,255,0.1);
	min-width: 90px;
}
.service-flow-item--accent {
	background: var(--primary-color);
	border-color: var(--primary-color);
}
.service-flow-label {
	display: block;
	font-size: 0.65rem;
	opacity: 0.6;
	letter-spacing: 0.08em;
}
.service-flow-name {
	display: block;
	font-size: 0.85rem;
	font-weight: 700;
	margin-top: 0.125rem;
}
.service-flow-arrow {
	color: rgba(255,255,255,0.2);
	font-size: 0.9rem;
}
@media screen and (max-width:480px) {
	.service-flow {
		gap: 0.4rem;
		padding: 1.25rem 0.5rem;
	}
	.service-flow-item {
		padding: 0.6rem 0.8rem;
		min-width: 70px;
	}
	.service-flow-name {
		font-size: 0.75rem;
	}
}


/* ==========================================================================
   Company セクション
   ========================================================================== */
.company-table-wrap {
	max-width: 720px;
	margin: 0 auto;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}


/* ==========================================================================
   Contact セクション
   ========================================================================== */
.contact-inner {
	text-align: center;
	max-width: 600px;
	margin: 0 auto;
}
.contact-inner p {
	opacity: 0.7;
	font-size: 0.95rem;
	margin-bottom: 2rem;
	line-height: 1.8;
}


/*その他ユーティリティ
---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.l {text-align: left !important;}
.c {text-align: center !important;}
.r {text-align: right !important;}
.mb0 {margin-bottom: 0px !important;}
.mb30 {margin-bottom: 30px !important;}
.pc {display: none;}
.dn {display: none !important;}
.block {display: block !important;}

@media screen and (min-width:900px) {
	.sh {display: none;}
	.pc {display: block;}
}
