/* リセット */
	* {
		box-sizing: border-box;
		margin: 0;
		padding: 0;
	}
	
	/* 基本のヘッダースタイル */
	.site-header {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		width: 100%;
		height: 93px;
		background: rgba(0, 0, 0, 0.11);
		backdrop-filter: blur(7.5px);
		-webkit-backdrop-filter: blur(7.5px);
		z-index: 9999;
		transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease, height 0.3s ease;
		transform: translateY(0);
	}
	
	.site-header.is-sticky {
		background: rgba(0, 0, 0, 0.95);
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	}
	
	/* ヘッダー隠す時のスタイル */
	.site-header.is-hidden {
		transform: translateY(-100%);
	}
	
	/* スクロール中のヘッダー */
	.site-header.is-scrolling {
		height: 70px;
		background: rgba(0, 0, 0, 0.95);
	}
	
	.header-container {
		max-width: 1280px;
		height: 100%;
		margin: 0 auto;
		padding: 0 36px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 40px;
		position: relative;
	}
	
	/* ロゴスタイル */
	.site-logo {
		flex-shrink: 0;
		z-index: 10;
		transition: all 0.3s ease;
	}
	
	.site-header.is-scrolling .site-logo {
		transform: scale(0.9);
	}
	
	.site-logo a {
		display: block;
		line-height: 0;
	}
	
	.site-logo-svg,
	.custom-logo {
		width: 218px;
		height: 27px;
		display: block;
		transition: all 0.3s ease;
	}
	
	/* ============================================
	   デスクトップナビゲーション
	   ============================================ */
	
	.main-navigation {
		flex: 1;
		display: flex;
		justify-content: center;
		position: relative;
	}
	
	/* ナビゲーション全体の背景エフェクト */
	.main-navigation::before {
		content: '';
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 100%;
		height: 200%;
		background: radial-gradient(ellipse at center, 
			rgba(255,255,255,0.03) 0%, 
			transparent 50%);
		opacity: 0;
		transition: opacity 0.5s ease;
		pointer-events: none;
	}
	
	.main-navigation:hover::before {
		opacity: 1;
	}
	
	.nav-menu {
		list-style: none;
		margin: 0;
		padding: 0;
		display: flex;
		align-items: center;
		gap: 56px;
	}
	
	.nav-menu li {
		margin: 0;
		position: relative;
	}
	
	/* メインのリンクスタイル */
	.nav-menu a {
		color: #ffffff;
		text-decoration: none;
		font-size: 14px;
		font-family: 'Arial Black', Arial, sans-serif;
		font-weight: 900;
		letter-spacing: 0.05em;
		text-transform: uppercase;
		transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
		display: block;
		padding: 10px 0;
		position: relative;
		opacity: 0.8;
	}
	
	/* ホバー時のテキスト効果 */
	.nav-menu a:hover {
		opacity: 1;
		transform: translateY(-2px);
		text-shadow: 
			0 0 20px rgba(255,255,255,0.5),
			0 0 40px rgba(255,255,255,0.3);
	}
	
	/* 下線エフェクト - 左右から中央へ */
	.nav-menu a::before,
	.nav-menu a::after {
		content: '';
		position: absolute;
		bottom: 0;
		height: 1px;
		background: #ffffff;
		transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
	}
	
	.nav-menu a::before {
		left: 50%;
		right: 50%;
	}
	
	.nav-menu a::after {
		left: 50%;
		right: 50%;
	}
	
	.nav-menu a:hover::before {
		left: 0;
	}
	
	.nav-menu a:hover::after {
		right: 0;
	}
	
	/* グローイングドット */
	.nav-menu li::after {
		content: '';
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		width: 3px;
		height: 3px;
		background: #ffffff;
		border-radius: 50%;
		opacity: 0;
		transition: all 0.3s ease;
	}
	
	.nav-menu li:hover::after {
		opacity: 1;
		box-shadow: 
			0 0 10px #ffffff,
			0 0 20px rgba(255,255,255,0.5);
		animation: dotPulse 1.5s ease-in-out infinite;
	}
	
	@keyframes dotPulse {
		0%, 100% { transform: translateX(-50%) scale(1); }
		50% { transform: translateX(-50%) scale(1.5); }
	}
	
	/* 現在のページ */
	.nav-menu .current-menu-item > a,
	.nav-menu .current_page_item > a {
		opacity: 1;
	}
	
	.nav-menu .current-menu-item > a::before,
	.nav-menu .current-menu-item > a::after,
	.nav-menu .current_page_item > a::before,
	.nav-menu .current_page_item > a::after {
		left: 0;
		right: 0;
		animation: currentLine 2s ease-in-out infinite;
	}
	
	@keyframes currentLine {
		0%, 100% { opacity: 0.5; }
		50% { opacity: 1; }
	}
	
	/* フェードインアニメーション */
	@media screen and (min-width: 769px) {
		.nav-menu li {
			opacity: 0;
			animation: navFadeIn 0.6s ease-out forwards;
		}
		
		.nav-menu li:nth-child(1) { animation-delay: 0.1s; }
		.nav-menu li:nth-child(2) { animation-delay: 0.2s; }
		.nav-menu li:nth-child(3) { animation-delay: 0.3s; }
		.nav-menu li:nth-child(4) { animation-delay: 0.4s; }
	}
	
	@keyframes navFadeIn {
		from {
			opacity: 0;
			transform: translateY(-10px);
		}
		to {
			opacity: 1;
			transform: translateY(0);
		}
	}
	
	/* CTAボタン */
	.header-cta {
		display: flex;
		align-items: center;
		gap: 28px;
		flex-shrink: 0;
	}
	
	.btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 170px;
		height: 38px;
		padding: 0 20px;
		border-radius: 100px;
		font-size: 14px;
		font-weight: 700;
		text-decoration: none;
		transition: all 0.3s ease;
		cursor: pointer;
		border: 1px solid transparent;
		position: relative;
		overflow: hidden;
		white-space: nowrap;
	}
	
	/* シンプルな光沢 */
	.btn::before {
		content: '';
		position: absolute;
		top: 0;
		left: -100%;
		width: 100%;
		height: 100%;
		background: linear-gradient(
			90deg,
			transparent,
			rgba(255, 255, 255, 0.1),
			transparent
		);
		transition: left 0.5s ease;
	}
	
	.btn:hover::before {
		left: 100%;
	}
	
	.btn--download {
		background-color: #ffffff;
		color: #000000;
		border: 1px solid #ffffff;
		font-family: 'Noto Sans JP', sans-serif;
	}
	
	.btn--download:hover {
		background-color: transparent;
		color: #ffffff;
	}
	
	.btn--contact {
		background-color: transparent;
		color: #ffffff;
		border: 1px solid #ffffff;
		font-family: 'Arial Black', Arial, sans-serif;
		font-weight: 900;
		text-transform: uppercase;
	}
	
	.btn--contact:hover {
		background-color: #ffffff;
		color: #000000;
	}
	
	/* モバイルメニュートグル */
	.mobile-menu-toggle {
		display: none;
		width: 30px;
		height: 24px;
		background: none;
		border: none;
		cursor: pointer;
		padding: 0;
		z-index: 10002;
		position: relative;
		-webkit-tap-highlight-color: transparent;
		flex-direction: column;
		justify-content: space-between;
		align-items: center;
	}
	
	.menu-toggle-bar {
		display: block;
		width: 100%;
		height: 2px;
		background-color: #ffffff;
		transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
		border-radius: 2px;
	}
	
	/* メニューが開いている時のハンバーガーアニメーション */
	.is-menu-open .menu-toggle-bar:nth-child(1) {
		transform: translateY(11px) rotate(45deg);
	}
	
	.is-menu-open .menu-toggle-bar:nth-child(2) {
		opacity: 0;
		transform: scaleX(0);
	}
	
	.is-menu-open .menu-toggle-bar:nth-child(3) {
		transform: translateY(-11px) rotate(-45deg);
	}
	
	/* モバイルメニューオーバーレイ */
	.mobile-menu-overlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.7);
		z-index: 9998;
		opacity: 0;
		visibility: hidden;
		transition: all 0.3s ease;
		-webkit-tap-highlight-color: transparent;
		backdrop-filter: blur(5px);
		-webkit-backdrop-filter: blur(5px);
	}
	
	.is-menu-open .mobile-menu-overlay {
		opacity: 1;
		visibility: visible;
	}
	
	/* モバイルメニューラッパー */
	.mobile-menu-wrapper {
		position: fixed;
		top: 0;
		right: -100%;
		width: 85%;
		max-width: 320px;
		height: 100vh;
		background: rgba(0, 0, 0, 0.95);
		backdrop-filter: blur(10px);
		-webkit-backdrop-filter: blur(10px);
		transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1);
		z-index: 10001;
		display: flex;
		flex-direction: column;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		box-shadow: -5px 0 20px rgba(0, 0, 0, 0.5);
	}
	
	.is-menu-open .mobile-menu-wrapper {
		right: 0;
	}
	
	/* モバイルメニュー閉じるボタン */
	.mobile-menu-close {
		position: absolute;
		top: 15px;
		right: 15px;
		width: 30px;
		height: 30px;
		background: none;
		border: none;
		cursor: pointer;
		z-index: 10003;
		padding: 0;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	
	.mobile-menu-close::before,
	.mobile-menu-close::after {
		content: '';
		position: absolute;
		width: 20px;
		height: 2px;
		background: #ffffff;
		border-radius: 2px;
		transition: all 0.3s ease;
	}
	
	.mobile-menu-close::before {
		transform: rotate(45deg);
	}
	
	.mobile-menu-close::after {
		transform: rotate(-45deg);
	}
	
	.mobile-menu-close:hover::before,
	.mobile-menu-close:hover::after {
		background: #cccccc;
	}
	
	/* モバイルナビゲーションコンテンツ */
	.mobile-nav-content {
		padding: 80px 20px 20px;
		flex: 1;
	}
	
	.mobile-nav-menu {
		list-style: none;
		margin: 0;
		padding: 0;
	}
	
	.mobile-nav-menu li {
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
		opacity: 0;
		transform: translateX(30px);
		animation: none;
	}
	
	.is-menu-open .mobile-nav-menu li {
		animation: slideInMobile 0.3s ease forwards;
	}
	
	.is-menu-open .mobile-nav-menu li:nth-child(1) { animation-delay: 0.05s; }
	.is-menu-open .mobile-nav-menu li:nth-child(2) { animation-delay: 0.1s; }
	.is-menu-open .mobile-nav-menu li:nth-child(3) { animation-delay: 0.15s; }
	.is-menu-open .mobile-nav-menu li:nth-child(4) { animation-delay: 0.2s; }
	
	@keyframes slideInMobile {
		to {
			opacity: 1;
			transform: translateX(0);
		}
	}
	
	.mobile-nav-menu a {
		display: block;
		padding: 18px 10px;
		color: #ffffff;
		text-decoration: none;
		font-size: 15px;
		font-family: 'Arial Black', Arial, sans-serif;
		font-weight: 900;
		letter-spacing: 0.05em;
		text-transform: uppercase;
		transition: all 0.3s ease;
		position: relative;
	}
	
	.mobile-nav-menu a::after {
		content: '';
		position: absolute;
		left: 0;
		bottom: 0;
		width: 0;
		height: 2px;
		background: #ffffff;
		transition: width 0.3s ease;
	}
	
	.mobile-nav-menu a:active {
		background: rgba(255, 255, 255, 0.1);
	}
	
	.mobile-nav-menu a:hover::after {
		width: 100%;
	}
	
	/* モバイルCTAボタン */
	.mobile-cta-wrapper {
		padding: 20px;
		background: linear-gradient(to top, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.95));
		border-top: 1px solid rgba(255, 255, 255, 0.2);
		display: flex;
		flex-direction: column;
		gap: 12px;
	}
	
	.mobile-cta-wrapper .btn {
		width: 100%;
		min-width: auto;
		height: 44px;
		font-size: 14px;
	}
	
	/* ============================================
	   レスポンシブデザイン
	   ============================================ */
	
	@media screen and (max-width: 1024px) {
		.header-container {
			padding: 0 20px;
		}
		
		.nav-menu {
			gap: 30px;
		}
		
		.nav-menu a {
			font-size: 13px;
		}
		
		.btn {
			min-width: 140px;
			font-size: 13px;
			height: 36px;
		}
		
		.header-cta {
			gap: 15px;
		}
		
		.site-logo-svg,
		.custom-logo {
			width: 180px;
			height: auto;
		}
	}
	
	/* モバイル・タブレット対応 */
	@media screen and (max-width: 768px) {
		.site-header {
			height: 60px;
			background: rgba(0, 0, 0, 0.9);
		}
		
		.site-header.is-scrolling {
			height: 50px;
		}
		
		.header-container {
			padding: 0 15px;
			gap: 15px;
		}
		
		.site-logo {
			position: relative;
			z-index: 10001;
		}
		
		.site-logo-svg,
		.custom-logo {
			width: 140px;
			height: auto;
			max-height: 20px;
		}
		
		.site-header.is-scrolling .site-logo-svg,
		.site-header.is-scrolling .custom-logo {
			width: 120px;
		}
		
		.site-header.is-scrolling .site-logo {
			transform: scale(1);
		}
		
		/* モバイルメニューボタン表示 */
		.mobile-menu-toggle {
			display: flex;
		}
		
		/* デスクトップ用要素を非表示 */
		.main-navigation,
		.header-cta {
			display: none !important;
		}
	}
	
	/* 小さいスマホ対応 */
	@media screen and (max-width: 375px) {
		.site-header {
			height: 56px;
		}
		
		.site-header.is-scrolling {
			height: 48px;
		}
		
		.header-container {
			padding: 0 12px;
		}
		
		.site-logo-svg,
		.custom-logo {
			width: 120px;
		}
		
		.site-header.is-scrolling .site-logo-svg,
		.site-header.is-scrolling .custom-logo {
			width: 100px;
		}
		
		.mobile-menu-toggle {
			width: 28px;
			height: 22px;
		}
		
		.mobile-menu-wrapper {
			width: 90%;
		}
	}
	
	/* ページコンテンツの上部余白 */
	body {
		padding-top: 93px;
		margin: 0;
	}
	
	@media screen and (max-width: 768px) {
		body {
			padding-top: 60px;
		}
		
		body.is-menu-open {
			overflow: hidden;
			position: fixed;
			width: 100%;
			height: 100%;
		}
	}
	
	@media screen and (max-width: 375px) {
		body {
			padding-top: 56px;
		}
	}
	
	/* スクリーンリーダー用 */
	.skip-link {
		position: absolute;
		left: -9999px;
		top: 2.5em;
		z-index: 999999;
		text-decoration: underline;
	}
	
	.skip-link:focus {
		display: block;
		left: 6px;
		top: 7px;
		font-size: 14px;
		font-weight: 600;
		text-decoration: none;
		line-height: normal;
		padding: 15px 23px 14px;
		z-index: 100000;
		background-color: #f1f1f1;
		color: #21759b;
	}