/*
 * JNETS 2026 カスタムCSS
 * 背景画像など、Tailwindで表現しにくい部分のみ
 */

/* CSS変数 */
:root {
	--header-height-desktop: 110px;
	--header-height-mobile: 80px;
	--hero-gap: 80px;
}

/* フォント設定 */
body {
	font-family: "Noto Sans JP", sans-serif;
}

/* 背景画像（トップページ） */
body.page-home {
	background-color: #FFFFFF;
	background-image: url(../img/common/bg_body.png);
	background-size: cover;
	background-position: center 110px;
	background-repeat: no-repeat;
	background-attachment: fixed;
	min-height: 100vh;
}

/* 背景画像（サブページ） */
body:not(.page-home) {
	background-color: #FFFFFF;
	background-image: url(../img/common/bg_body_grad.png);
	background-size: 100% auto;
	background-position: center 110px;
	background-repeat: no-repeat;
	background-attachment: fixed;
	min-height: 100vh;
}

/* タブレット・スマホ（トップページ） */
@media (max-width: 999px) {
	body.page-home {
		background-image: url(../img/common/bg_body_sp.png);
		background-size: cover;
		background-position: center top;
		background-attachment: fixed;
		background-repeat: no-repeat;
	}
}

/* タブレット・スマホ（サブページ） */
@media (max-width: 999px) {
	body:not(.page-home) {
		background-image: url(../img/common/bg_body_sp.png);
		background-size: cover;
		background-position: center top;
		background-attachment: fixed;
		background-repeat: no-repeat;
	}
}

/* スティッキーフッター */
body {
	min-height: 100vh !important;
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: flex-end !important;
}


/* コンテンツエリアのベース余白（デスクトップ） */
.contents {
	padding-top: calc(var(--header-height-desktop) + var(--hero-gap));
}


/* サブページ用のコンテンツエリア余白 */
.contents.contents-subpage {
	padding-top: 170px !important;
}

/* ハンバーガーメニュー */
.hamburger {
	position: fixed;
	top: 20px;
	right: 20px;
	width: 50px;
	height: 50px;
	background-color: #003AC0;
	border-radius: 4px;
	cursor: pointer;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	transition: all 0.3s ease;
}

.hamburger span {
	display: block;
	width: 30px;
	height: 3px;
	background-color: #ffffff;
	transition: all 0.3s ease;
	border-radius: 2px;
}

.hamburger p {
	color: #ffffff;
	font-size: 10px;
	margin: 2px 0 0 0;
	font-weight: bold;
}

.hamburger.active span:nth-child(1) {
	transform: translateY(6px) rotate(45deg);
}

.hamburger.active span:nth-child(2) {
	opacity: 0;
}

.hamburger.active span:nth-child(3) {
	transform: translateY(-6px) rotate(-45deg);
}

.hamburger.active p {
	display: none;
}

/* モバイルメニュー（ドロワー） */
@media (max-width: 1023px) {
	/* モバイルヘッダー */
	.head_inner {
		height: 80px !important;
		overflow: visible !important;
	}

	.head_inner nav {
		padding: 10px 20px !important;
		max-width: 100% !important;
	}

	/* デスクトップメニューを非表示 */
	.head_inner > nav > div:last-child {
		display: none;
	}

	/* ロゴエリア */
	.head_inner .logo-area {
		justify-content: flex-start;
		width: 100%;
		align-items: center;
	}

	.head_inner .logo-area a {
		gap: 8px !important;
	}

	.head_inner .logo-area img {
		width: 50px !important;
		height: auto !important;
	}

	.head_inner .logo-area .text-white {
		display: block !important;
	}

	.head_inner .logo-area .text-white > div:first-child {
		font-size: 12px !important;
	}

	.head_inner .logo-area .text-white > div:nth-child(2) {
		font-size: 14px !important;
		line-height: 1.2 !important;
	}

	.head_inner .logo-area .text-white > div:nth-child(3) {
		font-size: 10px !important;
		line-height: 1.2 !important;
		max-width: calc(100vw - 150px);
		word-wrap: break-word;
		overflow-wrap: break-word;
	}

	/* ドロワーメニュー用スタイル */
	.head_inner.mobile-menu-open {
		height: 100vh !important;
		overflow-y: auto !important;
		padding-top: 80px;
	}

	.head_inner.mobile-menu-open nav {
		flex-direction: column;
		align-items: flex-start !important;
		justify-content: flex-start !important;
		gap: 0 !important;
		padding: 20px !important;
	}

	.head_inner.mobile-menu-open .logo-area {
		margin-bottom: 30px;
		width: 100%;
		justify-content: center;
	}

	.head_inner.mobile-menu-open .logo-area img {
		width: 70px !important;
		height: auto !important;
	}

	.head_inner.mobile-menu-open > nav > div:last-child {
		display: block;
		width: 100%;
		margin-top: 0 !important;
		align-items: flex-start !important;
	}

	.head_inner.mobile-menu-open > nav > div > div {
		flex-direction: column !important;
		gap: 0 !important;
		width: 100%;
		align-items: flex-start !important;
	}

	.head_inner.mobile-menu-open > nav > div > div a {
		display: block;
		width: 100%;
		padding: 15px 10px !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
		font-size: 16px !important;
		border-bottom-width: 1px !important;
		border-left: none !important;
		border-right: none !important;
		border-top: none !important;
	}

	.head_inner.mobile-menu-open > nav > div > div span {
		display: none;
	}

	/* メインタイトルのモバイル対応 */
	.main-title-area {
		margin-bottom: 30px !important;
	}

	.main-title {
		font-size: 28px !important;
	}

	.main-subtitle {
		font-size: 22px !important;
	}

	/* コンテンツエリアの余白 */
	.contents {
		padding-top: calc(var(--header-height-mobile) + var(--hero-gap)) !important;
	}

	/* サブページ用のコンテンツエリア余白（モバイル） */
	.contents.contents-subpage {
		padding-top: 140px !important;
	}

	/* メインビジュアルエリアの上部余白 */
	.contents > div:first-of-type > div:nth-of-type(2) {
		padding-top: 100px !important;
	}
}
