/* Google Fonts removed - now using local fonts (css/fonts-local.css) */

/* カスタムフォント Exan-Regular */
@font-face {
	font-family: 'Exan';
	src: url('font/Exan-Regular.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
}

/* reset */
body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
fieldset,
input,
textarea,
p,
blockquote,
th,
td {
	margin: 0;
	padding: 0;
}

address,
caption,
cite,
code,
dfn,
em,
strong,
th,
var {
	font-style: normal;
}

ul {
	list-style: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

caption,
th {
	text-align: left;
}

q:before,
q:after {
	content: '';
}

object,
embed {
	vertical-align: top;
}

legend {
	display: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: 100%;
}

img,
abbr,
acronym,
fieldset {
	border: 0;
}

body {
	font: 14px/1.9 'Orbitron', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'Hiragino Sans', メイリオ, Meiryo, sans-serif;
	font-weight: 300;
	-webkit-text-size-adjust: 100%;
	overflow-x: hidden;
	color: #ffffff;
	background: #0a0a0a;
}

/* マグネティックカーソル */
.magnetic-cursor {
	position: fixed;
	width: 20px;
	height: 20px;
	background: #00ffff;
	border-radius: 50%;
	pointer-events: none;
	z-index: 9999;
	mix-blend-mode: difference;
	transform: translate(-50%, -50%);
	box-shadow: 0 0 20px rgba(0, 255, 255, 0.5);
}

.cursor-follower {
	position: fixed;
	width: 40px;
	height: 40px;
	border: 2px solid rgba(0, 255, 255, 0.3);
	border-radius: 50%;
	pointer-events: none;
	z-index: 9998;
	transform: translate(-50%, -50%);
	backdrop-filter: blur(2px);
}

/* Particles.js背景設定 - スクロール連動 */
#particles-js {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	max-width: 100vw;
	background: transparent; /* StaggerGridを見えるようにする */
	transition: background 0.8s ease;
	z-index: -10;
	overflow: hidden;
}

a {
	color: #0066ff;
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

a:active,
a:focus,
input:active,
input:focus {
	outline: 0;
}

.bold{
	font-weight: bold;
}

.font16{
	font-size: 16px;
}

/* ヘッダー - particles.js背景対応
------------------------------------------------------------*/
#header {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 100vh;
	background: transparent;
}

/* 落ち着いたヒーローコンテナ */
.hero-container {
	position: relative;
	width: 100%;
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

/* 落ち着いた背景 */
.subtle-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #000000 0%, #1a1a2e 50%, #16213e 100%);
	z-index: -1;
}

/* ヒーローコンテンツ */
.hero-content {
	z-index: 10;
	text-align: center;
	position: relative;
}

/* ロゴコンテナ */
.logo-container {
	margin-bottom: 30px;
	animation: logoFadeIn 1.5s ease-out, logoPulse 2s ease-in-out infinite 2s;
}

.main-logo {
	width: 120px;
	filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.5));
	transition: transform 0.3s ease, filter 0.3s ease;
}

.main-logo:hover {
	transform: scale(1.1) rotate(5deg);
	filter: drop-shadow(0 0 30px rgba(0, 255, 255, 0.8));
}

@keyframes logoFadeIn {
	0% {
		opacity: 0;
		transform: translateY(-50px) scale(0.5);
	}
	100% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes logoPulse {
	0% {
		transform: scale(1);
		filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.5));
	}
	15% {
		transform: scale(1.1);
		filter: drop-shadow(0 0 30px rgba(0, 255, 255, 0.8));
	}
	30% {
		transform: scale(1);
		filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.5));
	}
	45% {
		transform: scale(1.08);
		filter: drop-shadow(0 0 25px rgba(0, 255, 255, 0.7));
	}
	60% {
		transform: scale(1);
		filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.5));
	}
	100% {
		transform: scale(1);
		filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.5));
	}
}

/* メインタイトル */
.main-title {
	font-size: 60px;
	font-family: 'century gothic';
	color: white;
	margin-bottom: 20px;
	font-weight: normal;
}

.main-title .accent:nth-of-type(1) {
	color: limegreen;
}

.main-title .accent:nth-of-type(2) {
	color: deepskyblue;
}

.main-title .accent:nth-of-type(3) {
	color: purple;
}

.main-title .accent:nth-of-type(4) {
	color: red;
}

/* サブタイトル */
.subtitle {
	font-size: 1.5rem;
	color: #00ffff;
	font-family: 'Exan', 'Courier New', monospace;
	margin-bottom: 20px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

/* タグライン */
.tagline {
	font-size: 1.2rem;
	color: #ffffff;
	font-weight: 300;
	margin-top: 30px;
}

/* スクロールインジケーター */
.scroll-indicator {
	position: absolute;
	bottom: 30px;
	left: 50%;
	transform: translateX(-50%);
	text-align: center;
	animation: bounce 2s infinite, scrollFadeIn 1s ease-out 2s forwards;
	opacity: 0;
}

.scroll-arrow {
	width: 24px;
	height: 24px;
	border-right: 2px solid #00ffff;
	border-bottom: 2px solid #00ffff;
	transform: rotate(45deg);
	filter: drop-shadow(0 0 5px rgba(0, 255, 255, 0.5));
	margin: 0 auto 10px;
}

.scroll-text {
	font-size: 0.9rem;
	color: #00ffff;
	text-shadow: 0 0 10px currentColor;
	letter-spacing: 2px;
}

@keyframes bounce {
	0%, 20%, 50%, 80%, 100% {
		transform: translateX(-50%) translateY(0);
	}
	40% {
		transform: translateX(-50%) translateY(-10px);
	}
	60% {
		transform: translateX(-50%) translateY(-5px);
	}
}

@keyframes scrollFadeIn {
	0% {
		opacity: 0;
		transform: translateX(-50%) translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

/* セクションタイトル用同心円エフェクト */
/* Removed old section-rings - now using CSS Concentric Rings in index.html */

/* 3Dホログラム背景 */
.hologram-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	opacity: 0.3;
}

#geometric-canvas {
	width: 100%;
	height: 100%;
	background: transparent;
}

/* AIコードマトリックス */
.code-matrix {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
	pointer-events: none;
	overflow: hidden;
	opacity: 0.4;
}

/* 3Dロゴホログラム */
.logo-hologram {
	position: relative;
	width: 200px;
	height: 200px;
	margin-bottom: 40px;
	transform-style: preserve-3d;
	perspective: 1000px;
}

.hologram-layers {
	position: relative;
	width: 100%;
	height: 100%;
	transform-style: preserve-3d;
}

.holo-layer {
	position: absolute;
	width: 100%;
	height: 100%;
	transform-style: preserve-3d;
}

.layer-1 { transform: translateZ(20px); opacity: 0.9; }
.layer-2 { transform: translateZ(0px); opacity: 0.6; }
.layer-3 { transform: translateZ(-20px); opacity: 0.3; }

.holo-logo {
	width: 100%;
	height: 100%;
	filter: 
		drop-shadow(0 0 20px #00ffff) 
		drop-shadow(0 0 40px #00ffff) 
		hue-rotate(0deg);
	mix-blend-mode: screen;
}

.hologram-ring {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 300px;
	height: 300px;
	transform: translate(-50%, -50%);
	border: 2px solid rgba(0, 255, 255, 0.3);
	border-radius: 50%;
	animation: holoRing 4s linear infinite;
}

@keyframes holoRing {
	0% { transform: translate(-50%, -50%) rotateX(0deg) rotateY(0deg); }
	100% { transform: translate(-50%, -50%) rotateX(360deg) rotateY(360deg); }
}

/* サイバータイトル */
.cyber-title {
	font-size: 4rem;
	font-weight: 900;
	text-align: center;
	margin-bottom: 20px;
	perspective: 1000px;
}

.glitch-text {
	position: relative;
	color: #00ffff;
	text-shadow: 
		0 0 10px #00ffff,
		0 0 20px #00ffff,
		0 0 30px #00ffff;
	animation: textGlow 2s ease-in-out infinite alternate;
}

.glitch-text::before,
.glitch-text::after {
	content: attr(data-text);
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.glitch-text::before {
	color: #ff0080;
	animation: glitch1 0.3s infinite linear alternate-reverse;
}

.glitch-text::after {
	color: #00ff80;
	animation: glitch2 0.3s infinite linear alternate-reverse;
}

@keyframes textGlow {
	0% { text-shadow: 0 0 10px #00ffff, 0 0 20px #00ffff, 0 0 30px #00ffff; }
	100% { text-shadow: 0 0 20px #00ffff, 0 0 30px #00ffff, 0 0 40px #00ffff; }
}

@keyframes glitch1 {
	0% { transform: translateX(0); clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%); }
	20% { transform: translateX(-2px); }
	40% { transform: translateX(-2px); clip-path: polygon(0 60%, 100% 60%, 100% 100%, 0 100%); }
	60% { transform: translateX(2px); }
	80% { transform: translateX(-2px); clip-path: polygon(0 10%, 100% 10%, 100% 44%, 0 44%); }
	100% { transform: translateX(0); }
}

@keyframes glitch2 {
	0% { transform: translateX(0); clip-path: polygon(0 0, 100% 0, 100% 54%, 0 54%); }
	15% { transform: translateX(2px); clip-path: polygon(0 44%, 100% 44%, 100% 54%, 0 54%); }
	35% { transform: translateX(-2px); }
	55% { transform: translateX(2px); clip-path: polygon(0 70%, 100% 70%, 100% 100%, 0 100%); }
	75% { transform: translateX(-2px); }
	100% { transform: translateX(0); }
}

/* AIターミナル風サブタイトル */
.ai-subtitle {
	margin-bottom: 30px;
	text-align: center;
}

.terminal-text {
	font-family: 'Courier New', monospace;
	font-size: 1.2rem;
	color: #00ff88;
	background: rgba(0, 0, 0, 0.8);
	padding: 10px 20px;
	border-radius: 5px;
	border: 1px solid #00ff88;
	box-shadow: 0 0 20px rgba(0, 255, 136, 0.3);
	display: inline-block;
}

.prompt {
	color: #ffff00;
	margin-right: 10px;
}

.typing-cursor {
	animation: blink 1s infinite;
	color: #00ff88;
}

@keyframes blink {
	0%, 50% { opacity: 1; }
	51%, 100% { opacity: 0; }
}

/* クアンタムタグライン */
.quantum-tagline {
	text-align: center;
	margin-bottom: 40px;
}

.quantum-text {
	font-family: 'Raleway', sans-serif;
	font-size: 1.5rem;
	font-weight: 300;
	color: #ffffff;
	text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
	letter-spacing: 3px;
	animation: quantumFloat 3s ease-in-out infinite;
}

@keyframes quantumFloat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-10px); }
}

/* インタラクティブ技術スタック */
.tech-stack-3d {
	display: flex;
	justify-content: center;
	gap: 60px;
	margin-bottom: 40px;
	transform-style: preserve-3d;
}

.tech-orb {
	position: relative;
	width: 80px;
	height: 80px;
	cursor: pointer;
	transform-style: preserve-3d;
	transition: transform 0.3s ease;
}

.tech-orb:hover {
	transform: translateY(-20px) rotateY(180deg);
}

.orb-core {
	position: absolute;
	width: 100%;
	height: 100%;
	background: radial-gradient(circle, #00ffff, #0088ff);
	border-radius: 50%;
	box-shadow: 
		0 0 20px rgba(0, 255, 255, 0.5),
		inset 0 0 20px rgba(255, 255, 255, 0.2);
}

.orb-ring {
	position: absolute;
	border: 2px solid rgba(0, 255, 255, 0.3);
	border-radius: 50%;
	animation: orbRotate 3s linear infinite;
}

.ring-1 {
	width: 120%;
	height: 120%;
	top: -10%;
	left: -10%;
}

.ring-2 {
	width: 140%;
	height: 140%;
	top: -20%;
	left: -20%;
	animation-direction: reverse;
}

@keyframes orbRotate {
	0% { transform: rotateX(0deg) rotateY(0deg); }
	100% { transform: rotateX(360deg) rotateY(360deg); }
}

.tech-label {
	position: absolute;
	bottom: -30px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 0.8rem;
	color: #00ffff;
	white-space: nowrap;
	text-shadow: 0 0 10px currentColor;
}

/* データフロー視覚化 */
.data-flow {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100px;
	z-index: 1;
}

#wave-canvas {
	width: 100%;
	height: 100%;
	opacity: 0.6;
}

/* クアンタムスクロール */
.quantum-scroll {
	position: absolute;
	bottom: 40px;
	left: 50%;
	transform: translateX(-50%);
	text-align: center;
	z-index: 10;
}

.scroll-helix {
	width: 30px;
	height: 60px;
	border: 2px solid #00ffff;
	border-radius: 15px;
	margin: 0 auto 15px;
	position: relative;
	overflow: hidden;
}

.scroll-helix::before {
	content: '';
	position: absolute;
	top: 10px;
	left: 50%;
	width: 6px;
	height: 10px;
	background: #00ffff;
	border-radius: 3px;
	transform: translateX(-50%);
	animation: scrollDot 2s infinite;
}

@keyframes scrollDot {
	0% { transform: translateX(-50%) translateY(0); opacity: 1; }
	100% { transform: translateX(-50%) translateY(30px); opacity: 0; }
}

.scroll-text {
	font-size: 0.9rem;
	color: #00ffff;
	text-shadow: 0 0 10px currentColor;
	letter-spacing: 2px;
}

/* 社名由来の浮遊文字 */
.floating-letters {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
}

.floating-letter {
	position: absolute;
	font-size: 2.5rem;
	font-family: 'Raleway', sans-serif;
	font-weight: 100;
	color: rgba(255, 255, 255, 0.15);
	user-select: none;
	opacity: 0;
	letter-spacing: 2px;
	text-transform: lowercase;
	text-shadow: 0 0 10px currentColor;
}

.floating-letter.electricity {
	color: rgba(50, 205, 50, 0.25);
	animation: floatE1 12s infinite ease-in-out;
}

.floating-letter.efficiency {
	color: rgba(0, 191, 255, 0.25);
	animation: floatE2 10s infinite ease-in-out;
}

.floating-letter.evolution {
	color: rgba(138, 43, 226, 0.25);
	animation: floatE3 14s infinite ease-in-out;
}

.floating-letter.epoch {
	color: rgba(255, 69, 0, 0.25);
	animation: floatE4 16s infinite ease-in-out;
}

@keyframes floatE1 {
	0%, 100% { 
		opacity: 0;
		transform: translateY(20px) scale(0.8);
	}
	25% { 
		opacity: 1;
		transform: translateY(0px) scale(1);
	}
	50% { 
		opacity: 0.4;
		transform: translateY(-10px) scale(1.1);
	}
	75% { 
		opacity: 0.8;
		transform: translateY(5px) scale(0.9);
	}
}

@keyframes floatE2 {
	0%, 100% { 
		opacity: 0;
		transform: translateY(-15px) scale(1.2);
	}
	30% { 
		opacity: 0.9;
		transform: translateY(10px) scale(0.9);
	}
	60% { 
		opacity: 0.3;
		transform: translateY(-5px) scale(1);
	}
	80% { 
		opacity: 0.7;
		transform: translateY(0px) scale(1.1);
	}
}

@keyframes floatE3 {
	0%, 100% { 
		opacity: 0;
		transform: translateY(10px) scale(0.7);
	}
	20% { 
		opacity: 0.5;
		transform: translateY(-20px) scale(1.3);
	}
	45% { 
		opacity: 1;
		transform: translateY(0px) scale(1);
	}
	70% { 
		opacity: 0.4;
		transform: translateY(15px) scale(0.8);
	}
}

@keyframes floatE4 {
	0%, 100% { 
		opacity: 0;
		transform: translateY(-10px) scale(1.1);
	}
	35% { 
		opacity: 0.8;
		transform: translateY(25px) scale(0.8);
	}
	55% { 
		opacity: 0.3;
		transform: translateY(-15px) scale(1.2);
	}
	85% { 
		opacity: 0.9;
		transform: translateY(5px) scale(1);
	}
}

/* ヒーローコンテンツ */
.hero-content {
	z-index: 10;
	text-align: center;
	position: relative;
}

#slogan {
	position: relative;
}

.logo-container {
	margin-bottom: 30px;
	animation: logoFadeIn 1.5s ease-out, logoPulse 2s ease-in-out infinite 2s;
}

.main-logo {
	width: 120px;
	filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.5));
	transition: transform 0.3s ease, filter 0.3s ease;
}

.main-logo:hover {
	transform: scale(1.1) rotate(5deg);
	filter: drop-shadow(0 0 30px rgba(0, 255, 255, 0.8));
}

@keyframes logoFadeIn {
	0% {
		opacity: 0;
		transform: translateY(-50px) scale(0.5);
	}
	100% {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

@keyframes logoPulse {
	0% {
		transform: scale(1);
		filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.5));
	}
	15% {
		transform: scale(1.1);
		filter: drop-shadow(0 0 30px rgba(0, 255, 255, 0.8));
	}
	30% {
		transform: scale(1);
		filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.5));
	}
	45% {
		transform: scale(1.08);
		filter: drop-shadow(0 0 25px rgba(0, 255, 255, 0.7));
	}
	60% {
		transform: scale(1);
		filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.5));
	}
	100% {
		transform: scale(1);
		filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.5));
	}
}

/* メインタイトル */
.main-title {
	font-size: 60px;
	font-family: 'century gothic';
	color: white;
	margin-bottom: 20px;
	font-weight: normal;
}

.main-title .accent:nth-of-type(1) {
	color: limegreen;
}

.main-title .accent:nth-of-type(2) {
	color: deepskyblue;
}

.main-title .accent:nth-of-type(3) {
	color: purple;
}

.main-title .accent:nth-of-type(4) {
	color: red;
}

@keyframes titleSlideIn {
	0% {
		opacity: 0;
		transform: translateX(-100px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes accentGlow {
	0%, 100% {
		text-shadow: 0 0 10px currentColor;
	}
	50% {
		text-shadow: 0 0 20px currentColor, 0 0 30px currentColor;
	}
}

/* サブタイトル */
.subtitle {
	font-size: 1.5rem;
	color: #00ffff;
	font-family: 'Exan', 'Courier New', monospace;
	margin-bottom: 20px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

/* タグライン */
.tagline {
	font-size: 1.2rem;
	color: #ffffff;
	font-weight: 300;
	margin-top: 30px;
}

@keyframes subtitleFadeIn {
	0% {
		opacity: 0;
		transform: translateY(30px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes taglineFadeIn {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* スクロールインジケーター */
.scroll-indicator {
	position: absolute;
	bottom: 30px;
	left: 50%;
	transform: translateX(-50%);
	animation: bounce 2s infinite, scrollFadeIn 1s ease-out 2s forwards;
	opacity: 0;
}

.scroll-arrow {
	width: 24px;
	height: 24px;
	border-right: 2px solid #00ffff;
	border-bottom: 2px solid #00ffff;
	transform: rotate(45deg);
	filter: drop-shadow(0 0 5px rgba(0, 255, 255, 0.5));
}

@keyframes bounce {
	0%, 20%, 50%, 80%, 100% {
		transform: translateX(-50%) translateY(0);
	}
	40% {
		transform: translateX(-50%) translateY(-10px);
	}
	60% {
		transform: translateX(-50%) translateY(-5px);
	}
}

@keyframes scrollFadeIn {
	0% {
		opacity: 0;
		transform: translateX(-50%) translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

.container-video_3 {
	margin: 0 auto;
	width: 100%;
	max-width: 100%;
	padding: 0 1rem;
	box-sizing: border-box;
}

.container-video_3 .video2 {
	width: 100%
}


/* Enhanced Footer
------------------------------------------------------------*/
#footer,
.footer-enhanced {
	position: relative;
	background: rgba(0, 0, 0, 0.4);
	backdrop-filter: blur(20px) saturate(180%);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	border-top: 1px solid rgba(0, 255, 255, 0.3);
	overflow: hidden;
	margin-top: 80px;
	z-index: 100;
	pointer-events: auto !important;
	display: block;
	width: 100%;
}

.footer-bg-animation {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: radial-gradient(ellipse at center, rgba(0, 255, 255, 0.03) 0%, transparent 70%);
	animation: footerPulse 8s ease-in-out infinite;
}

@keyframes footerPulse {
	0%, 100% { opacity: 0.3; transform: scale(1); }
	50% { opacity: 0.6; transform: scale(1.1); }
}

.footer-content {
	position: relative;
	z-index: 102;
	max-width: 1200px;
	margin: 0 auto;
	padding: 50px 2rem 30px;
	pointer-events: auto !important;
	box-sizing: border-box;
	width: 100%;
}

.footer-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin-bottom: 40px;
}

.footer-section {
	opacity: 0;
	transform: translateY(30px);
	animation: footerFadeIn 0.8s ease forwards;
}

.footer-section:nth-child(1) { animation-delay: 0.1s; }
.footer-section:nth-child(2) { animation-delay: 0.2s; }
.footer-section:nth-child(3) { animation-delay: 0.3s; }
.footer-section:nth-child(4) { animation-delay: 0.4s; }

@keyframes footerFadeIn {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.footer-title {
	font-size: 1.2rem;
	font-weight: 700;
	color: #00ffff;
	text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
	margin-bottom: 20px;
	position: relative;
}

.footer-title::after {
	content: '';
	position: absolute;
	bottom: -8px;
	left: 0;
	width: 40px;
	height: 2px;
	background: linear-gradient(90deg, #00ffff, transparent);
	border-radius: 1px;
}

.footer-logo {
	margin: 20px 0;
}

.footer-logo-img {
	width: 60px;
	height: 60px;
	object-fit: cover;
	object-position: left center;
	border-radius: 50%;
	border: 2px solid rgba(0, 255, 255, 0.3);
	transition: all 0.3s ease;
	filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.3));
	transform: scale(1.8);
}

.footer-logo-img:hover {
	border-color: #00ffff;
	filter: drop-shadow(0 0 20px rgba(0, 255, 255, 0.6));
	transform: scale(1.9);
}

.footer-description {
	color: rgba(255, 255, 255, 0.8);
	font-family: 'Raleway', sans-serif;
	line-height: 1.6;
	margin-bottom: 25px;
	font-size: 0.9rem;
}

.footer-social {
	margin-top: 25px;
}

.social-link {
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	margin: 5px;
	background: rgba(0, 255, 255, 0.1);
	border: 1px solid rgba(0, 255, 255, 0.3);
	border-radius: 25px;
	color: #00ffff;
	text-decoration: none;
	transition: all 0.3s ease;
	font-size: 0.8rem;
	font-weight: 600;
}

.social-link:hover {
	background: rgba(0, 255, 255, 0.2);
	box-shadow: 0 0 20px rgba(0, 255, 255, 0.4);
	transform: translateY(-2px);
}

.social-icon {
	margin-right: 8px;
	font-size: 1rem;
}

.footer-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-links li {
	margin-bottom: 12px;
}

.footer-link {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	font-family: 'Raleway', sans-serif;
	font-size: 0.9rem;
	transition: all 0.3s ease;
	position: relative;
	padding-left: 15px;
}

.footer-link::before {
	content: '▶';
	position: absolute;
	left: 0;
	color: #00ffff;
	font-size: 0.7rem;
	opacity: 0;
	transform: translateX(-10px);
	transition: all 0.3s ease;
}

.footer-link:hover {
	color: #00ffff;
	padding-left: 20px;
	text-shadow: 0 0 5px rgba(0, 255, 255, 0.3);
}

.footer-link:hover::before {
	opacity: 1;
	transform: translateX(0);
}

.footer-info {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-info li {
	margin-bottom: 15px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.info-label {
	color: #00ffff;
	font-size: 0.8rem;
	font-weight: 600;
	min-width: 70px;
}

.info-value {
	color: rgba(255, 255, 255, 0.8);
	font-family: 'Raleway', sans-serif;
	font-size: 0.9rem;
	flex: 1;
}

.footer-social-icons {
	display: flex;
	gap: 25px;
	margin-top: 25px;
	padding-top: 20px;
	border-top: 1px solid rgba(0, 212, 255, 0.2);
}

.social-icon-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	background: transparent;
	border: 2px solid rgba(0, 212, 255, 0.3);
	border-radius: 50%;
	color: #00d4ff;
	font-size: 1.8rem;
	transition: all 0.3s ease;
	text-decoration: none;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.social-icon-link:hover {
	background: rgba(0, 212, 255, 0.1);
	border-color: #00ffff;
	color: #00ffff;
	transform: translateY(-3px);
	box-shadow: 0 5px 15px rgba(0, 212, 255, 0.3);
}

.footer-contact-text {
	color: rgba(255, 255, 255, 0.8);
	font-family: 'Raleway', sans-serif;
	margin-bottom: 25px;
}

.footer-cta-btn {
	display: inline-block;
	position: relative;
	padding: 15px 30px;
	background: linear-gradient(135deg, #00ffff, #00ff80);
	color: #000;
	text-decoration: none;
	border-radius: 30px;
	font-weight: 700;
	font-size: 0.9rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	transition: all 0.3s ease;
	overflow: hidden;
	margin-bottom: 25px;
}

.footer-cta-btn:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 30px rgba(0, 255, 255, 0.4);
}

.btn-glow {
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
	transition: left 0.6s ease;
}

.footer-cta-btn:hover .btn-glow {
	left: 100%;
}

.footer-tech-stack {
	margin-top: 30px;
}

.tech-indicator {
	display: flex;
	align-items: center;
	gap: 10px;
}

.tech-dot {
	width: 8px;
	height: 8px;
	background: #00ffff;
	border-radius: 50%;
	box-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
	animation: techPulse 2s ease-in-out infinite;
}

@keyframes techPulse {
	0%, 100% { opacity: 0.5; transform: scale(1); }
	50% { opacity: 1; transform: scale(1.2); }
}

.tech-label {
	font-size: 0.7rem;
	color: rgba(255, 255, 255, 0.6);
	letter-spacing: 2px;
}

.footer-bottom {
	border-top: 1px solid rgba(0, 255, 255, 0.2);
	padding: 30px 0;
}

.footer-divider {
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, #00ffff 50%, transparent 100%);
	margin: 0 0 30px 0;
}

.footer-bottom-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 20px;
}

.footer-copyright p {
	color: rgba(255, 255, 255, 0.6);
	font-family: 'Raleway', sans-serif;
	font-size: 0.8rem;
	margin: 0 0 5px 0;
}

.footer-mission {
	color: rgba(0, 255, 255, 0.8);
	font-size: 0.7rem !important;
	font-style: italic;
}

.footer-badges {
	display: flex;
	gap: 15px;
}

.footer-badge {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 15px;
	background: rgba(0, 255, 255, 0.1);
	border: 1px solid rgba(0, 255, 255, 0.2);
	border-radius: 20px;
	transition: all 0.3s ease;
}

.footer-badge:hover {
	background: rgba(0, 255, 255, 0.2);
	box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
}

.badge-icon {
	font-size: 1rem;
}

.badge-text {
	font-size: 0.7rem;
	color: #00ffff;
	font-weight: 600;
}

.footer-particles {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1;
}

.particle {
	position: absolute;
	width: 2px;
	height: 2px;
	background: #00ffff;
	border-radius: 50%;
	opacity: 0.6;
	animation: floatParticle 6s linear infinite;
}

.particle:nth-child(1) {
	left: 10%;
	animation-delay: 0s;
	animation-duration: 8s;
}

.particle:nth-child(2) {
	left: 30%;
	animation-delay: 2s;
	animation-duration: 6s;
}

.particle:nth-child(3) {
	left: 50%;
	animation-delay: 4s;
	animation-duration: 7s;
}

.particle:nth-child(4) {
	left: 70%;
	animation-delay: 1s;
	animation-duration: 9s;
}

.particle:nth-child(5) {
	left: 90%;
	animation-delay: 3s;
	animation-duration: 5s;
}

@keyframes floatParticle {
	0% {
		transform: translateY(100vh) scale(0);
		opacity: 0;
	}
	10% {
		opacity: 0.6;
		transform: scale(1);
	}
	90% {
		opacity: 0.6;
	}
	100% {
		transform: translateY(-10px) scale(0);
		opacity: 0;
	}
}

/* Responsive Design */
@media (max-width: 768px) {
	.footer-content {
		padding: 40px 20px 20px;
	}

	.footer-grid {
		grid-template-columns: 1fr;
		gap: 25px;
		margin-bottom: 30px;
	}

	.footer-bottom-content {
		flex-direction: column;
		text-align: center;
		gap: 15px;
	}

	.footer-badges {
		justify-content: center;
	}

	.footer-title {
		font-size: 1rem;
	}

	.footer-cta-btn {
		padding: 12px 25px;
		font-size: 0.8rem;
	}
}


/* 共通
------------------------------------------------------------*/
h1,
h2 {
	font-family: 'Josefin Sans', 'Noto Sans JP', serif;
}

img {
	width: 100%;
	height: auto;
}

section {
	clear: both;
	background: transparent;
	padding: 80px 0;
	position: relative;
}

section::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, #00ffff 50%, transparent 100%);
}

section h2 {
	font-size: 2.5em;
	font-weight: 100;
	text-align: center;
	color: #ffffff;
	margin-bottom: 50px;
	text-transform: uppercase;
	letter-spacing: 3px;
	text-shadow: 0 0 20px rgba(0, 255, 255, 0.5);
	font-family: 'Raleway', sans-serif;
	position: relative;
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

section h2.animate {
	opacity: 1;
	transform: translateY(0);
}

section h2::after {
	content: '';
	position: absolute;
	bottom: -20px;
	left: 50%;
	transform: translateX(-50%);
	width: 100px;
	height: 2px;
	background: linear-gradient(90deg, transparent 0%, #00ffff 50%, transparent 100%);
}

section h3 {
	font-size: 1.5rem;
	margin: 20px 0;
	font-weight: 600;
	text-align: center;
	color: #ffffff;
	text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

.inner {
	width: 94%;
	margin: 0 auto;
	padding: 0 2rem;
	max-width: 100vw;
	box-sizing: border-box;
}

.col2 li {
	display: inline-block;
	width: 100%;
	margin: 20px 0 20px 0;
}


/* SEC01 VISION
------------------------------------------------------------*/

.vision {
	width: 90%;
	max-width: 800px;
	margin: 0 auto;
	padding: 0 2rem 80px 2rem;
	box-sizing: border-box;
}


/* SEC02 MESSAGE
------------------------------------------------------------*/
.wrap {
	clear: both;
	width: 100%;
	background: transparent;
}

.bg {
	line-height: 0;
}

.txt h2 {
	padding: 0 0 20px !important;
}


/* SEC03 SERVICE MESSAGE STORY
------------------------------------------------------------*/
.col3 li {
	margin-bottom: 50px;
	opacity: 1;
	transform: translateY(0) scale(1);
	transition: all 0.6s ease, box-shadow 0.3s ease;
	transition-delay: 0.2s;
	padding: 20px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.02);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(0, 255, 255, 0.1);
	display: flex;
	flex-direction: column;
	min-height: 450px;
	justify-content: space-between;
}

.col3 li:hover {
	transform: translateY(-10px) scale(1.05);
	box-shadow: 0 20px 40px rgba(0, 255, 255, 0.2);
	background: rgba(0, 255, 255, 0.05);
	border: 1px solid rgba(0, 255, 255, 0.3);
}

.col3 li.animate {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.col3 li h2 {
	margin-bottom: 40px;
}

.col3 li h3 {
	transition: color 0.3s ease;
	font-weight: 100;
}

.col3 li:hover h3 {
	color: #00ffff;
	text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}

.col3 img {
	max-width: 288px;
	display: block;
	margin: -5px auto 20px;
	height: 200px;
	object-fit: cover;
	object-position: center center;
	border-radius: 8px;
	transition: transform 0.3s ease, filter 0.3s ease;
}

.col3 li:hover img {
	transform: scale(1.1);
	filter: brightness(1.2) saturate(1.3);
}

.col3 li p {
	color: #ffffff;
	text-shadow: 0 0 8px rgba(255, 255, 255, 0.3);
	line-height: 1.6;
	margin-top: auto;
}


/* SEC04 ABOUT US
------------------------------------------------------------*/
#sec04 {
	position: relative;
	overflow: hidden;
	width: 100%;
	color: #fff;
	padding: 80px 0;
}

/* コンテンツ全体のラッパー */
#sec04 .content {
	position: relative;
	z-index: 1;
	max-width: 1000px;
	margin: 0 auto;
	padding: 30px 2em;
	border-radius: 10px;
	color: #fff;
}

/* セクションタイトル */
#sec04 h2 {
	text-align: center;
	font-size: 2rem;
	margin-bottom: 40px;
}

/* 横並び2カラムレイアウト */
.inner2col {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 30px;
	flex-wrap: wrap;
}

.inner2col .col {
	flex: 1 1 45%;
}

.inner2col .info {
	display: flex;
	justify-content: center;
	align-items: flex-start;
}

.inner2col .info dl {
	width: fit-content;
	/* 内容に合わせて縮める */
	max-width: 100%;
	/* はみ出さないように */
}

.inner2col .info dl dt {
	font-weight: bold;
	margin-top: 10px;
}

.inner2col .info dl dd {
	margin: 0 0 10px 0;
}

.inner2col .map iframe {
	width: 100%;
	height: 300px;
	border-radius: 8px;
	border: none;
}

/* 代表者紹介 */
/* Service Area Block (Local SEO, in ABOUTUS section) */
.service-area-block {
	margin-top: 40px;
	padding: 30px 35px;
	background: rgba(0, 20, 30, 0.35);
	border: 1px solid rgba(0, 255, 255, 0.15);
	border-radius: 16px;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.service-area-title {
	font-size: 1.3rem;
	color: #00ffff;
	margin: 0 0 20px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(0, 255, 255, 0.2);
}

.service-area-intro {
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.95rem;
	line-height: 1.8;
	margin: 0 0 20px;
}

.service-area-intro strong {
	color: #00ffff;
	font-weight: 600;
	text-shadow: 0 0 8px rgba(0, 255, 255, 0.3);
}

.service-area-groups {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
}

.service-area-group {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 0.9rem;
	line-height: 1.7;
}

.area-label {
	color: #00ffff;
	font-weight: 600;
	min-width: 90px;
	flex-shrink: 0;
	margin: 0;
}

.area-list {
	color: rgba(255, 255, 255, 0.75);
	flex: 1;
	min-width: 0;
	margin: 0;
}

@media (max-width: 768px) {
	.service-area-block {
		padding: 22px 20px;
		margin-top: 30px;
	}

	.service-area-title {
		font-size: 1.15rem;
	}

	.service-area-intro {
		font-size: 0.88rem;
	}

	.service-area-group {
		flex-direction: column;
		gap: 4px;
		font-size: 0.85rem;
	}

	.area-label {
		min-width: 0;
	}
}

.ceo-profile {
	margin-top: 60px;
	padding: 40px;
	background: rgba(0, 20, 30, 0.35);
	border: 1px solid rgba(0, 255, 255, 0.15);
	border-radius: 16px;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.ceo-profile-title {
	font-size: 1.3rem;
	color: #00ffff;
	margin-bottom: 30px;
	padding-bottom: 15px;
	border-bottom: 1px solid rgba(0, 255, 255, 0.2);
}

.ceo-profile-content {
	display: flex;
	gap: 40px;
	align-items: flex-start;
}

.ceo-photo {
	flex-shrink: 0;
}

.ceo-photo img {
	width: 150px;
	height: 150px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid rgba(0, 255, 255, 0.3);
}

.ceo-info {
	flex: 1;
}

.ceo-name {
	font-size: 1.4rem;
	color: #fff;
	margin-bottom: 5px;
}

.ceo-name-reading {
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.6);
	font-weight: normal;
	margin-left: 10px;
}

.ceo-title {
	font-size: 0.95rem;
	color: #00ffff;
	margin-bottom: 15px;
}

.ceo-bio {
	font-size: 0.9rem;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.8);
	margin-bottom: 25px;
}

.ceo-credentials {
	display: flex;
	gap: 40px;
	flex-wrap: wrap;
}

.ceo-qualifications h5,
.ceo-book h5 {
	font-size: 0.85rem;
	color: #00ffff;
	margin-bottom: 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(0, 255, 255, 0.15);
}

.ceo-qualifications ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ceo-qualifications li {
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.8);
	padding: 4px 0;
	padding-left: 18px;
	position: relative;
}

.ceo-qualifications li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: #00ff80;
	font-size: 0.8rem;
}

.ceo-book .book-link {
	display: flex;
	align-items: center;
	gap: 15px;
	text-decoration: none;
	padding: 12px;
	background: rgba(0, 0, 0, 0.3);
	border-radius: 8px;
	transition: all 0.3s ease;
}

.ceo-book .book-link:hover {
	background: rgba(0, 255, 255, 0.1);
	transform: translateY(-2px);
}

.ceo-book .book-cover {
	width: 90px;
	height: auto;
	border-radius: 4px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.ceo-book .book-info {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.ceo-book .book-title {
	font-size: 0.8rem;
	color: #fff;
	line-height: 1.4;
}

.ceo-book .book-publisher {
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.5);
}

/* スマホ対応 */
@media (max-width: 768px) {
	.inner2col {
		flex-direction: column;
	}

	.inner2col .col {
		width: 100%;
	}

	#sec04 h2 {
		font-size: 1.5rem;
		margin-bottom: 30px;
	}

	.ceo-profile {
		padding: 25px;
		margin-top: 40px;
	}

	.ceo-profile-content {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.ceo-photo img {
		width: 120px;
		height: 120px;
	}

	.ceo-name-reading {
		display: block;
		margin-left: 0;
		margin-top: 5px;
	}

	.ceo-credentials {
		flex-direction: column;
		gap: 25px;
		width: 100%;
	}

	.ceo-qualifications,
	.ceo-book {
		text-align: left;
	}

	.ceo-book .book-link {
		justify-content: flex-start;
	}
}



/* SEC05 PROFILE
------------------------------------------------------------*/
#sec05 {
	/*padding-top: 50px;*/
}

#sec05 dl {
	line-height: 1.2;
}

#sec05 dt {
	clear: left;
	float: left;
	display: block;
	width: 30%;
	margin-right: 10%;
	margin-bottom: 20px;
	text-align: right;
	line-height: 1.6em;
}

#sec05 dd {
	width: 60%;
	float: left;
	text-align: left;
	margin-bottom: 15px;
	line-height: 1.6em;
}

#sec05 header {
	display: none;
}

#map {
	position: relative;
	padding-bottom: 75%;
	height: 0;
	overflow: hidden;
}

#map iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
	border: 0;
}


/* SEC06 BLOG
------------------------------------------------------------*/

#sec06 p {
	width: 85%;
	margin: 0 auto;
}

#sec06 {
	margin-bottom: 10vw;
}

#sec06 p {
	margin: auto;
}

.case_div{
	margin-bottom: 50px;
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
	padding: 0 2rem;
	box-sizing: border-box;
	width: 100%;
}

.case_title{
	font-weight: bold;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 10px;
	width: 100%;
}

.case_title .three-morph-container {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.case_title span {
	flex: 1;
	line-height: 1.4;
}

/* Case description styles */
.case_exp {
	color: #e0e0e0;
	line-height: 1.8;
	margin: 20px 0;
}

.case_exp.main-desc {
	font-size: 1.1rem;
	font-weight: 500;
	color: #ffffff;
	margin-bottom: 25px;
	border-left: 4px solid #00ffff;
	padding-left: 20px;
}

.case_exp.main-desc br:first-child + text {
	color: #00ffff;
	font-size: 0.95rem;
}

.case_exp.features {
	background: rgba(0, 255, 255, 0.05);
	border: 1px solid rgba(0, 255, 255, 0.2);
	border-radius: 10px;
	padding: 20px 25px;
	margin: 20px 0;
	position: relative;
	backdrop-filter: blur(10px);
}

.case_exp.features::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 255, 255, 0.05);
	border-radius: 10px;
	filter: blur(2px);
	z-index: -1;
}

.case_exp.features br {
	margin-bottom: 10px;
}

.case_exp.result {
	background: linear-gradient(135deg, rgba(0, 255, 255, 0.1) 0%, rgba(0, 255, 255, 0.02) 100%);
	border-radius: 10px;
	padding: 20px 25px;
	margin: 25px 0 30px;
	font-weight: 500;
	position: relative;
	overflow: hidden;
}

.case_exp.result::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 2px;
	background: linear-gradient(90deg, transparent, #00ffff, transparent);
	animation: shimmer 3s infinite;
}

@keyframes shimmer {
	0% { transform: translateX(-100%); }
	100% { transform: translateX(100%); }
}

.case_exp strong {
	color: #00ffff;
	font-weight: 600;
}

.case_exp .highlight {
	color: #00ffff;
	font-weight: 500;
}

/* ============================================================
   Modern CASE Section - Card-Based Design
   ============================================================ */
.case-section-modern {
	position: relative;
	padding-bottom: 80px;
}

.case-section-subtitle {
	text-align: center;
	color: rgba(255, 255, 255, 0.7);
	font-size: 1rem;
	margin: 20px auto 50px;
	letter-spacing: 0.1em;
}

/* Cards Container - Horizontal Scroll on Mobile, Grid on Desktop */
.case-cards-container {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 40px;
}

/* Individual Case Card */
.case-card {
	background: linear-gradient(145deg, rgba(0, 20, 30, 0.2) 0%, rgba(0, 10, 20, 0.2) 100%);
	border: 1px solid rgba(0, 255, 255, 0.15);
	border-radius: 20px;
	overflow: hidden;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	position: relative;
	display: flex;
	flex-direction: column;
}

.case-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, #00ffff, #00ff88, #00ffff);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.case-card:hover {
	transform: translateY(-8px);
	border-color: rgba(0, 255, 255, 0.4);
	box-shadow:
		0 20px 40px rgba(0, 0, 0, 0.4),
		0 0 30px rgba(0, 255, 255, 0.1),
		inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.case-card:hover::before {
	opacity: 1;
}

/* Card Header */
.case-card-header {
	padding: 28px 28px 20px;
	border-bottom: 1px solid rgba(0, 255, 255, 0.1);
}

.case-card-badge {
	display: inline-block;
	padding: 6px 14px;
	background: linear-gradient(135deg, rgba(0, 255, 255, 0.2), rgba(0, 255, 136, 0.15));
	border: 1px solid rgba(0, 255, 255, 0.3);
	border-radius: 20px;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	color: #00ffff;
	margin-bottom: 15px;
	text-transform: uppercase;
}

.case-card-title {
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.4;
	color: #ffffff;
	margin: 0 0 10px;
	background: linear-gradient(135deg, #ffffff 0%, #e0e0e0 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.case-card-tagline {
	font-size: 0.9rem;
	color: #00ffff;
	margin: 0;
	font-weight: 500;
}

/* Card Body */
.case-card-body {
	padding: 24px 28px;
	flex: 1;
}

/* Tags */
.case-card-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}

.case-tag {
	padding: 5px 12px;
	background: rgba(0, 255, 255, 0.08);
	border: 1px solid rgba(0, 255, 255, 0.2);
	border-radius: 15px;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.8);
	transition: all 0.3s ease;
}

.case-tag:hover {
	background: rgba(0, 255, 255, 0.15);
	border-color: rgba(0, 255, 255, 0.4);
}

/* Metrics Display */
.case-card-metrics {
	display: flex;
	gap: 20px;
	margin-bottom: 24px;
	padding: 20px;
	background: rgba(0, 255, 255, 0.03);
	border-radius: 12px;
	border: 1px solid rgba(0, 255, 255, 0.1);
}

.case-metric {
	flex: 1;
	text-align: center;
}

.case-metric.highlight {
	background: linear-gradient(135deg, rgba(0, 255, 255, 0.1) 0%, rgba(0, 255, 136, 0.08) 100%);
	border-radius: 10px;
	padding: 10px;
	margin: -10px;
}

.case-metric-value {
	font-size: 2.2rem;
	font-weight: 800;
	color: #00ffff;
	line-height: 1;
	margin-bottom: 6px;
	background: linear-gradient(135deg, #00ffff 0%, #00ff88 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.case-metric-unit {
	font-size: 0.9rem;
	font-weight: 600;
}

.case-metric-label {
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.6);
	letter-spacing: 0.05em;
}

/* Results List */
.case-card-results {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.case-result-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 14px;
	background: rgba(255, 255, 255, 0.02);
	border-radius: 10px;
	transition: all 0.3s ease;
}

.case-result-item:hover {
	background: rgba(0, 255, 255, 0.05);
}

.case-result-icon {
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(0, 255, 255, 0.15), rgba(0, 255, 136, 0.1));
	border-radius: 8px;
	flex-shrink: 0;
}

.case-result-icon i {
	font-size: 0.9rem;
	color: #00ffff;
}

.case-result-text {
	font-size: 0.85rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.85);
}

.case-result-text strong {
	color: #00ffff;
	font-weight: 600;
}

/* Video Section */
.case-card-video {
	margin-top: auto;
}

.case-video-link {
	display: block;
	position: relative;
	overflow: hidden;
}

.case-video {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.5s ease;
}

.case-video-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(0, 0, 0, 0.8) 100%);
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-bottom: 20px;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.case-video-link:hover .case-video-overlay {
	opacity: 1;
}

.case-video-link:hover .case-video {
	transform: scale(1.03);
}

.case-pdf-hint {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	background: rgba(0, 255, 255, 0.9);
	color: #000;
	font-size: 0.85rem;
	font-weight: 600;
	border-radius: 25px;
	transition: all 0.3s ease;
}

.case-pdf-hint i {
	font-size: 1rem;
}

.case-video-link:hover .case-pdf-hint {
	background: #00ff88;
	transform: scale(1.05);
}

/* Responsive Design */
@media (max-width: 1200px) {
	.case-cards-container {
		grid-template-columns: repeat(2, 1fr);
		gap: 25px;
		padding: 0 30px;
	}

	.case-card:last-child {
		grid-column: span 2;
		max-width: 500px;
		justify-self: center;
	}
}

@media (max-width: 768px) {
	.case-section-subtitle {
		font-size: 0.9rem;
		margin-bottom: 30px;
	}

	.case-cards-container {
		grid-template-columns: 1fr;
		gap: 25px;
		padding: 0 20px;
	}

	.case-card:last-child {
		grid-column: span 1;
		max-width: 100%;
	}

	.case-card-header {
		padding: 22px 22px 18px;
	}

	.case-card-title {
		font-size: 1.2rem;
	}

	.case-card-body {
		padding: 20px 22px;
	}

	.case-card-metrics {
		flex-direction: column;
		gap: 15px;
		padding: 18px;
	}

	.case-metric {
		display: flex;
		align-items: center;
		gap: 15px;
		text-align: left;
	}

	.case-metric.highlight {
		margin: 0;
		padding: 12px 15px;
	}

	.case-metric-value {
		font-size: 1.8rem;
		margin-bottom: 0;
	}

	.case-metric-label {
		font-size: 0.8rem;
	}

	.case-result-item {
		padding: 10px 12px;
	}

	.case-result-text {
		font-size: 0.8rem;
	}
}

@media (max-width: 480px) {
	.case-cards-container {
		padding: 0 15px;
	}

	.case-card-header {
		padding: 18px 18px 15px;
	}

	.case-card-badge {
		font-size: 0.65rem;
		padding: 5px 10px;
	}

	.case-card-title {
		font-size: 1.1rem;
	}

	.case-card-tagline {
		font-size: 0.85rem;
	}

	.case-card-body {
		padding: 16px 18px;
	}

	.case-tag {
		font-size: 0.7rem;
		padding: 4px 10px;
	}

	.case-metric-value {
		font-size: 1.6rem;
	}

	.case-result-icon {
		width: 24px;
		height: 24px;
	}

	.case-result-icon i {
		font-size: 0.8rem;
	}

	.case-pdf-hint {
		font-size: 0.8rem;
		padding: 8px 16px;
	}
}

/* Enhanced FAQ Section */
#sec04-faq {
	position: relative;
	padding: 100px 0;
	background: transparent;
	overflow: hidden;
	z-index: 10;
}

#sec04-faq::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="faq-grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="%2300ffff" stroke-width="0.3" opacity="0.03"/></pattern></defs><rect width="100" height="100" fill="url(%23faq-grid)"/></svg>');
	animation: gridMove 20s linear infinite;
	z-index: 1;
}

@keyframes gridMove {
	0% { transform: translate(0, 0); }
	100% { transform: translate(10px, 10px); }
}

.faq-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 2rem;
	position: relative;
	z-index: 10;
}

/* FAQ Tabs */
.faq-tabs {
	display: flex;
	justify-content: center;
	gap: 15px;
	margin-bottom: 50px;
	flex-wrap: wrap;
}

.faq-tab {
	background: rgba(0, 0, 0, 0.3);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 2px solid rgba(0, 255, 255, 0.3);
	color: #ffffff;
	padding: 15px 25px;
	border-radius: 25px;
	cursor: pointer;
	transition: all 0.3s ease;
	font-weight: 600;
	font-size: 0.9rem;
	display: flex;
	align-items: center;
	gap: 10px;
	position: relative;
	overflow: hidden;
}

.faq-tab::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(0, 255, 255, 0.1), transparent);
	transition: left 0.5s ease;
}

.faq-tab:hover::before,
.faq-tab.active::before {
	left: 100%;
}

.faq-tab:hover {
	border-color: #00ffff;
	box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);
	transform: translateY(-2px);
}

.faq-tab.active {
	background: rgba(0, 255, 255, 0.15);
	backdrop-filter: blur(15px);
	-webkit-backdrop-filter: blur(15px);
	border-color: #00ffff;
	box-shadow: 0 0 25px rgba(0, 255, 255, 0.4);
	color: #00ffff;
}

.tab-icon {
	width: 18px;
	height: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.tab-icon svg {
	width: 100%;
	height: 100%;
}

.tab-text {
	white-space: nowrap;
}

/* FAQ Content */
.faq-content {
	position: relative;
}

.faq-category {
	display: none;
}

.faq-category.active {
	display: block;
	animation: fadeInUp 0.6s ease;
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.faq-item {
	background: rgba(0, 0, 0, 0.2);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(0, 255, 255, 0.2);
	border-radius: 15px;
	margin-bottom: 20px;
	overflow: hidden;
	transition: all 0.3s ease;
	position: relative;
	z-index: 10;
	pointer-events: auto;
}

.faq-item::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 0;
	height: 100%;
	background: linear-gradient(90deg, rgba(0, 255, 255, 0.05), rgba(0, 255, 255, 0.02));
	transition: width 0.3s ease;
	z-index: 1;
}

.faq-item:hover::before {
	width: 100%;
}

.faq-item:hover {
	border-color: rgba(0, 255, 255, 0.5);
	box-shadow: 0 5px 20px rgba(0, 255, 255, 0.1);
	transform: translateY(-3px);
}

/* FAQ Question */
.faq-question {
	display: flex;
	align-items: center;
	padding: 25px 30px;
	cursor: pointer;
	position: relative;
	z-index: 1002;
	pointer-events: auto;
}

.faq-question .faq-icon {
	background: linear-gradient(135deg, #00ffff, #0088ff);
	color: #000;
	width: 35px;
	height: 35px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	font-size: 1.1rem;
	margin-right: 20px;
	flex-shrink: 0;
}

.faq-question h3 {
	flex: 1;
	margin: 0;
	font-size: 1.1rem;
	color: #ffffff;
	font-weight: 600;
	line-height: 1.5;
}

.faq-toggle {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(0, 255, 255, 0.1);
	border: 2px solid rgba(0, 255, 255, 0.3);
	color: #00ffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	font-weight: bold;
	transition: all 0.3s ease;
	flex-shrink: 0;
}

.faq-item.open .faq-toggle {
	transform: rotate(45deg);
	background: rgba(0, 255, 255, 0.2);
	border-color: #00ffff;
}

/* FAQ Answer */
.faq-answer {
	max-height: 0;
	overflow: hidden;
	transition: all 0.4s ease;
	position: relative;
	z-index: 2;
}

.faq-item.open .faq-answer {
	max-height: 500px;
	padding: 0 30px 25px 30px;
}

.faq-answer .faq-icon {
	background: linear-gradient(135deg, #ff6b6b, #ee5a24);
	color: #fff;
	width: 35px;
	height: 35px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	font-size: 1.1rem;
	margin-right: 20px;
	flex-shrink: 0;
	float: left;
}

.faq-answer p {
	color: #e0e0e0;
	line-height: 1.7;
	margin: 0;
	margin-left: 55px;
	font-size: 1rem;
}

/* Enhanced Contact Section */
.contact-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 2rem;
	box-sizing: border-box;
	width: 100%;
}


.form-container {
	background: rgba(0, 0, 0, 0.4);
	border: 1px solid rgba(0, 255, 255, 0.2);
	border-radius: 15px;
	padding: 40px;
	backdrop-filter: blur(15px);
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.form-header {
	text-align: center;
	margin-bottom: 40px;
	padding-bottom: 20px;
	border-bottom: 1px solid rgba(0, 255, 255, 0.2);
}

.form-header h4 {
	font-size: 1.8rem;
	color: #00ffff;
	margin-bottom: 10px;
	text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
}

.form-header p {
	font-family: 'Raleway', sans-serif;
	color: rgba(255, 255, 255, 0.8);
	opacity: 0.8;
}

/* GSAP Magnetic Button */
.magnetic-btn {
	position: relative;
	display: block;
	padding: 15px 40px;
	margin: 20px auto;
	background: linear-gradient(135deg, #00ffff, #00ff80);
	border: none;
	border-radius: 50px;
	font-size: 1rem;
	font-weight: 600;
	color: #000;
	cursor: pointer;
	overflow: hidden;
	transition: all 0.3s ease;
	box-shadow: 0 10px 30px rgba(0, 255, 255, 0.3);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	width: fit-content;
}

.magnetic-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 15px 40px rgba(0, 255, 255, 0.4);
}

.magnetic-btn:active {
	transform: translateY(0);
	box-shadow: 0 5px 15px rgba(0, 255, 255, 0.3);
}

.btn-text {
	position: relative;
	z-index: 2;
	transition: transform 0.3s ease;
}

.btn-magnetic-area {
	position: absolute;
	top: -20px;
	left: -20px;
	right: -20px;
	bottom: -20px;
	z-index: 1;
	pointer-events: none;
}

.magnetic-btn::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
	transition: left 0.5s ease;
	z-index: 1;
}

.magnetic-btn:hover::before {
	left: 100%;
}

/* ==============================================
   BLOG SECTION & CARDS - Clean Responsive Design
   ============================================== */

/* Blog Section Specific Styles */
#sec07 {
	padding: 40px 0 60px 0 !important;
	min-height: auto !important;
}

#sec07 .inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

/* Blog Feed Container */
#blog-feed {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	padding: 20px 0;
	box-sizing: border-box;
	min-height: auto !important;
}

/* Blog Card in Blog Feed - Highest Specificity */
#blog-feed a.blog-card {
	background-color: rgba(0, 0, 0, 0.3) !important;
}

/* Base Blog Card Styles */
a.blog-card,
a.blog-card.service-card-enhanced {
	display: block;
	text-decoration: none;
	color: inherit;
	border: 1px solid rgba(0, 255, 255, 0.2);
	border-radius: 10px;
	background-color: rgba(0, 0, 0, 0.3) !important;
	backdrop-filter: blur(10px);
	overflow: hidden;
	box-sizing: border-box;
	padding: 20px;
	min-height: 100px;
	transition: all 0.3s ease;
}

a.blog-card:hover,
a.blog-card.service-card-enhanced:hover {
	border-color: rgba(0, 255, 255, 0.4);
	transform: translateY(-3px);
	box-shadow: 0 10px 20px rgba(0, 255, 255, 0.1);
}

/* Blog Card Content Container */
.blog-card-content {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	padding: 10px;
}

/* Blog Image */
.blog-image {
	flex-shrink: 0;
}

.blog-image img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
	object-fit: contain;
}

/* Blog Text Content */
.blog-text {
	flex: 1;
	min-width: 0;
}

.blog-title {
	color: #00ffff;
	margin: 0 0 10px 0;
	font-weight: bold;
	line-height: 1.4;
	word-wrap: break-word;
}

.blog-title::before {
	content: "🔗";
	margin-right: 8px;
}

.blog-excerpt {
	color: rgba(255, 255, 255, 0.9);
	line-height: 1.6;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

/* Desktop Layout (768px and up) */
@media screen and (min-width: 768px) {
	.blog-card-content {
		align-items: center;
	}

	a.blog-card {
		width: 75%;
		max-width: 800px;
	}
	
	.blog-card-content {
		flex-direction: row;
		padding: 10px;
	}
	
	.blog-image {
		width: 180px;
	}
	
	.blog-image img {
		height: 120px;
	}
	
	.blog-title {
		font-size: 1.3rem;
	}
	
	.blog-excerpt {
		font-size: 0.95rem;
		display: -webkit-box;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
}

/* Mobile Layout (767px and below) */
@media screen and (max-width: 767px) {
	a.blog-card {
		width: 100%;
		margin: 0 10px;
	}
	
	.blog-card-content {
		flex-direction: column;
		gap: 15px;
	}
	
	.blog-image {
		width: 100%;
		order: 1;
	}
	
	.blog-image img {
		height: auto;
		max-height: 200px;
	}
	
	.blog-text {
		order: 2;
	}
	
	.blog-title {
		font-size: 1.1rem;
	}
	
	.blog-excerpt {
		font-size: 0.9rem;
	}
}

/* Large Desktop Adjustments */
@media screen and (min-width: 1200px) {
	a.blog-card {
		width: 60%;
	}
}

/* Contact Section Responsive */
@media (max-width: 768px) {
	.form-container {
		padding: 30px 20px;
	}
	
	.form-header h4 {
		font-size: 1.2rem;
	}
}

/* AI-DX Chat Button (Right Bottom Fixed)
------------------------------------------------------------*/
.ai-dx-chat-button {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 1001;
	background: rgba(0, 0, 0, 0.95);
	border: 2px solid rgba(0, 255, 255, 0.7);
	border-radius: 8px;
	border-left: none;
	backdrop-filter: blur(20px);
	box-shadow: 0 6px 30px rgba(0, 255, 255, 0.3);
	pointer-events: auto;
	display: flex;
	align-items: stretch;
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	transform: translateX(0);
}

.ai-dx-chat-button.collapsed {
	/* PC: 右余白20pxを考慮してToggle部分のみ表示 */
	transform: translateX(calc(100% - 32px + 20px));
}

.ai-dx-chat-content {
	padding: 15px;
	min-width: 200px;
	min-height: 120px;
	border-radius: 0 8px 8px 0;
	background: rgba(0, 0, 0, 0.95);
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ai-dx-chat-toggle {
	width: 32px;
	background: linear-gradient(135deg, #00ffff, #00ff80);
	border: 2px solid rgba(0, 255, 255, 0.7);
	border-right: none;
	border-radius: 8px 0 0 8px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	position: relative;
	transition: all 0.3s ease;
	gap: 8px;
	/* marginを除去して境界線を正確に整列 */
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.ai-dx-chat-toggle:hover {
	background: linear-gradient(135deg, #00ffff, #ffffff);
	border-color: #00ffff;
	box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}

.ai-dx-chat-toggle-arrow {
	color: rgba(0, 0, 0, 0.9);
	font-size: 0.9rem;
	font-weight: bold;
	transition: transform 0.3s ease;
	text-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
	flex-shrink: 0;
}

.ai-dx-chat-toggle-text {
	writing-mode: vertical-lr;
	text-orientation: mixed;
	color: rgba(0, 0, 0, 0.9);
	font-size: 0.5rem;
	font-weight: 800;
	letter-spacing: 0.5px;
	text-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
	flex-grow: 1;
	display: flex;
	align-items: center;
}

/* .ai-dx-chat-button.collapsed .ai-dx-chat-toggle-arrow {
	transform: rotate(180deg);
} */
/* JavaScript で制御するためコメントアウト */

.ai-dx-chat-title {
	color: #00ffff;
	font-size: 0.9rem;
	font-weight: 700;
	text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
	margin-bottom: 5px;
}

/* AI Chat Pulse Animation */
.ai-dx-chat-pulse-container {
	position: relative;
	width: 90px;
	height: 90px;
	margin: 0 auto 8px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Pulse Ring */
.ai-dx-pulse-ring {
	position: absolute;
	width: 100%;
	height: 100%;
	border: 2px solid rgba(0, 255, 255, 0.5);
	border-radius: 50%;
	animation: ai-pulse-ring 3s ease-out infinite;
}

@keyframes ai-pulse-ring {
	0% {
		transform: scale(0.9);
		opacity: 0.8;
	}
	100% {
		transform: scale(1.5);
		opacity: 0;
	}
}

/* AI Bot Image */
.ai-dx-bot-image {
	position: relative;
	z-index: 2;
	width: 80px;
	height: 80px;
	object-fit: contain;
	filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.6));
	animation: ai-bot-glow 3s ease-in-out infinite;
}

@keyframes ai-bot-glow {
	0%, 100% {
		filter: drop-shadow(0 0 6px rgba(0, 255, 255, 0.5));
		transform: scale(1);
	}
	50% {
		filter: drop-shadow(0 0 12px rgba(0, 255, 255, 0.9)) drop-shadow(0 0 20px rgba(0, 255, 128, 0.4));
		transform: scale(1.05);
	}
}

/* Hover Effects */
.ai-dx-chat-link:hover .ai-dx-bot-image {
	filter: drop-shadow(0 0 15px rgba(0, 255, 255, 1));
}

.ai-dx-chat-link:hover .ai-dx-pulse-ring {
	animation-duration: 1.8s;
}

.ai-dx-chat-status {
	color: #00ff80;
	font-size: 0.6rem;
	font-weight: 600;
	text-align: center;
	letter-spacing: 1px;
	text-transform: uppercase;
	background: rgba(0, 255, 128, 0.1);
	padding: 3px 8px;
	border-radius: 10px;
	border: 1px solid rgba(0, 255, 128, 0.3);
}

.ai-dx-chat-link {
	display: inline-block;
	text-decoration: none;
	color: inherit;
	transition: all 0.3s ease;
	cursor: pointer;
}

.ai-dx-chat-link:hover {
	transform: scale(1.02);
}

.ai-dx-chat-link:hover .ai-dx-chat-title {
	text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
}

.ai-dx-chat-link:hover .ai-dx-chat-catchphrase {
	color: #ffffff;
}

/* Responsive adjustments for AI-DX Chat Button */
@media (max-width: 768px) {
	.ai-dx-chat-button {
		bottom: 15px;
		right: 15px;
	}
	
	.ai-dx-chat-button.collapsed {
		/* スマホ: 右余白15pxを考慮してToggle部分のみ表示 (元の計算) */
		transform: translateX(calc(100% - 32px + 15px));
	}
	
	.ai-dx-chat-content {
		min-width: 160px;
		padding: 12px;
	}
	
	.ai-dx-chat-title {
		font-size: 0.8rem;
	}
	
	.ai-dx-chat-catchphrase {
		font-size: 0.7rem;
	}
	
	.ai-dx-chat-status {
		font-size: 0.55rem;
	}
	
	.ai-dx-chat-toggle {
		width: 28px; /* スマホでは少し細く */
		/* スマホでもmarginを除去 */
	}
}

@media (max-width: 480px) {
	.ai-dx-chat-button.collapsed {
		/* 小さい画面: 右余白15pxを考慮、Toggle幅28px */
		transform: translateX(calc(100% - 28px + 15px));
	}
	
	.ai-dx-chat-content {
		min-width: 140px;
		padding: 10px;
	}
	
	.ai-dx-chat-title {
		font-size: 0.75rem;
	}
	
	.ai-dx-chat-catchphrase {
		font-size: 0.65rem;
	}
	
	.ai-dx-chat-toggle {
		width: 24px; /* 更に細くする */
		padding: 1px;
	}
	
	.ai-dx-chat-toggle-text {
		font-size: 0.45rem; /* テキストも小さく */
	}
}

/* RESPONSIVE 設定
------------------------------------------------------------*/

@media only screen and (min-width: 1200px) {
	.inner {
		width: 1024px;
		padding-bottom: 120px;
	}

	section h2 {
		padding: 50px 0 20px;
	}

	/*
	section h3 {
		padding: 30px 0 20px;
	}
	*/

	.txt h2 {
		padding: 0 0 20px !important;
	}
}

@media only screen and (min-width: 800px) {
	body {
		font-size: 14px;
	}

	a#menu {
		display: none;
	}

	.panel {
		display: block !important;
	}

	#mainnav {
		position: fixed;
		top: 0;
		width: 100%;
		z-index: 500;
		transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
		background: transparent;
	}

	#mainnav ul {
		text-align: right;
		padding-right: 30px;
		padding-left: 250px; /* BG Settingとの重なり回避 */
		margin: 0;
		display: flex;
		justify-content: flex-end;
		align-items: center;
		gap: 3px;
	}

	#mainnav li {
		display: inline-block;
		padding: 35px 12px 25px;
		font-size: 12px;
		font-weight: 500;
			text-transform: uppercase;
		letter-spacing: 1px;
		position: relative;
		transition: all 0.3s ease;
	}

	#mainnav li::before {
		content: '';
		position: absolute;
		bottom: 20px;
		left: 50%;
		width: 0;
		height: 2px;
		background: linear-gradient(90deg, #00ffff, #ff0080);
		transform: translateX(-50%);
		transition: width 0.3s ease;
		box-shadow: 0 0 8px rgba(0, 255, 255, 0.5);
	}

	#mainnav li:hover::before {
		width: 80%;
	}

	#mainnav a {
		color: rgba(255, 255, 255, 0.9);
		text-shadow: 0 0 10px rgba(0, 255, 255, 0.3);
		transition: all 0.3s ease;
		position: relative;
		display: inline-block;
	}

	#mainnav a::after {
		content: '';
		position: absolute;
		top: -5px;
		right: -5px;
		bottom: -5px;
		left: -5px;
		background: linear-gradient(45deg, transparent, rgba(0, 255, 255, 0.1), transparent);
		opacity: 0;
		transition: opacity 0.3s ease;
		border-radius: 4px;
		z-index: -1;
	}

	#mainnav li:hover a {
		color: #00ffff;
		text-shadow: 0 0 20px rgba(0, 255, 255, 0.8);
		transform: translateY(-2px);
	}

	#mainnav li:hover a::after {
		opacity: 1;
	}

	#mainnav.changeNav {
		background: rgba(0, 0, 0, 0.4);
		backdrop-filter: blur(20px) saturate(180%);
		border-bottom: 1px solid rgba(0, 255, 255, 0.3);
		box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3),
					0 1px 0 rgba(0, 255, 255, 0.2) inset;
	}

	#mainnav.changeNav::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		height: 1px;
		background: linear-gradient(90deg, 
			transparent,
			rgba(0, 255, 255, 0.5) 20%,
			rgba(255, 0, 128, 0.5) 50%,
			rgba(0, 255, 255, 0.5) 80%,
			transparent
		);
		animation: shimmer 3s ease-in-out infinite;
	}

	@keyframes shimmer {
		0%, 100% { transform: translateX(-100%); }
		50% { transform: translateX(100%); }
	}

	#mainnav.changeNav li {
		padding: 20px 12px;
	}

	#mainnav.changeNav li::before {
		bottom: 15px;
	}

	/* メニューアイテムのアニメーション効果 */
	#mainnav li {
		opacity: 0;
		animation: menuFadeIn 0.6s ease-out forwards;
	}

	#mainnav li:nth-child(1) { animation-delay: 0.1s; }
	#mainnav li:nth-child(2) { animation-delay: 0.2s; }
	#mainnav li:nth-child(3) { animation-delay: 0.3s; }
	#mainnav li:nth-child(4) { animation-delay: 0.4s; }
	#mainnav li:nth-child(5) { animation-delay: 0.5s; }
	#mainnav li:nth-child(6) { animation-delay: 0.6s; }
	#mainnav li:nth-child(7) { animation-delay: 0.7s; }
	#mainnav li:nth-child(8) { animation-delay: 0.8s; }
	#mainnav li:nth-child(9) { animation-delay: 0.9s; }
	#mainnav li:nth-child(10) { animation-delay: 1.0s; }
	#mainnav li:nth-child(11) { animation-delay: 1.1s; }
	#mainnav li:nth-child(12) { animation-delay: 1.2s; }

	@keyframes menuFadeIn {
		from {
			opacity: 0;
			transform: translateY(-20px);
		}
		to {
			opacity: 1;
			transform: translateY(0);
		}
	}

	/* SEC02 MESSAGE
	-----------------*/
	.txt,
	.bg {
		width: 50%;
		display: flex;
		background: transparent;
		align-items: center;
	}

	#sec02_02 .txt {
		order: 1;
	}
	
	#sec02_02 .bg {
		order: 2;
	}

	.vMid {
		display: flex;
		padding: 0 100px;
		align-items: center;
		justify-content: center;
		background: transparent;
		width: 100%;
		text-align: center;
	}

	/* MESSAGE wrap container */
	#sec02 .wrap {
		display: flex;
		width: 100%;
		padding: 0 2rem;
		box-sizing: border-box;
		align-items: stretch;
		max-width: 100vw;
	}

	/* SEC03 SERVICE MESSAGE STORY
	-----------------*/
	.col3 {
		text-align: center;
	}

	.col3 li {
		display: inline-block;
		width: 30%;
		padding: 0 1.5%;
		margin-bottom: 50px;
		vertical-align: top;
		text-align: left;
	}

	/* SEC05 PROFILE
	-----------------*/
	#sec05 {
		/*padding-top: 120px;*/
	}

}

@media only screen and (min-width: 641px) {
	.col2 li {
		width: 40%;
		padding: 0 3%;
		vertical-align: top;
	}
}

@media only screen and (max-width: 640px) {
	#map iframe {
		width: 96% !important;
		left: 2%;
	}

	.col3 p{
		margin-bottom: 80px;
	}
}

@media only screen and (max-width: 799px) {
	.main-title {
		font-size: 31px !important;
	}
	
	.subtitle {
		font-size: 1rem !important;
	}
	
	.tagline {
		font-size: 0.9rem !important;
	}
	
	section h2 {
		font-size: 2em !important;
	}

	a#menu {
		display: inline-block;
		position: fixed;
		top: 10px;
		right: 10px;
		width: 44px;
		height: 44px;
		margin: 0;
		z-index: 1001;
		background: rgba(0, 0, 0, 0.8);
		border-radius: 5px;
		backdrop-filter: blur(10px);
		-webkit-tap-highlight-color: transparent;
		-webkit-touch-callout: none;
		-webkit-user-select: none;
		user-select: none;
		touch-action: manipulation;
		cursor: pointer;
	}

	#menuBtn {
		display: block;
		position: absolute;
		top: 50%;
		left: 50%;
		width: 18px;
		height: 2px;
		margin: -1px 0 0 -7px;
		background: #eee;
		transition: .2s;
		filter:drop-shadow(3px 3px 4px #555);
	}

	#menuBtn:before,
	#menuBtn:after {
		display: block;
		content: "";
		position: absolute;
		top: 50%;
		left: 0;
		width: 18px;
		height: 2px;
		background: #eee;
		transition: .3s;
		filter:drop-shadow(3px 3px 4px #555);
	}

	#menuBtn:before {
		margin-top: -7px;
	}

	#menuBtn:after {
		margin-top: 5px;
	}

	a#menu .close {
		background: transparent;
	}

	a#menu .close:before,
	a#menu .close:after {
		margin-top: 0;
	}

	a#menu .close:before {
		transform: rotate(-45deg);
		-webkit-transform: rotate(-45deg);
	}

	a#menu .close:after {
		transform: rotate(-135deg);
		-webkit-transform: rotate(-135deg);
	}
	p#menuWrap{
		position: fixed;
		top: 10px;
		right: 10px;
		width: auto;
		z-index: 1000;
		-webkit-tap-highlight-color: transparent;
		-webkit-touch-callout: none;
		-webkit-user-select: none;
		user-select: none;
		touch-action: manipulation;
		cursor: pointer;
	}

	/* ==============================================
	   FUTURISTIC MOBILE MENU DESIGN
	   ============================================== */
	
	.panel {
		width: 300px;
		max-width: calc(100vw - 40px);
		display: none;
		position: fixed;
		z-index: 999;
		top: 70px;
		right: 20px;
		box-sizing: border-box;
		
		/* Futuristic Glassmorphism */
		background: linear-gradient(135deg, 
			rgba(0, 0, 0, 0.9) 0%, 
			rgba(0, 20, 40, 0.85) 50%, 
			rgba(0, 0, 0, 0.9) 100%
		);
		border: 1px solid rgba(0, 255, 255, 0.3);
		border-radius: 20px;
		backdrop-filter: blur(20px);
		-webkit-backdrop-filter: blur(20px);
		
		/* Advanced Shadow System */
		box-shadow: 
			inset 0 1px 0 rgba(255, 255, 255, 0.1),
			0 15px 35px rgba(0, 0, 0, 0.5);
		
		/* Smooth Animations */
		transform: translateX(20px) translateY(-10px) scale(0.95);
		opacity: 0;
		transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
		overflow: hidden;
		
		/* Cyber Grid Background */
		background-image: 
			linear-gradient(90deg, rgba(0, 255, 255, 0.03) 1px, transparent 1px),
			linear-gradient(rgba(0, 255, 255, 0.03) 1px, transparent 1px);
		background-size: 20px 20px;
	}
	
	.panel.show {
		transform: translateX(0) translateY(0) scale(1);
		opacity: 1;
	}

	#mainnav {
		position: absolute;
		width: 100%;
		text-align: right;
		z-index: 500;
	}

	#mainnav ul {
		background: transparent;
		border: none;
		text-align: left;
		padding: 0;
		margin: 0;
		list-style: none;
	}

	#mainnav li {
		margin: 0;
		padding: 0;
		position: relative;
		overflow: hidden;
	}

	#mainnav li a {
		position: relative;
		display: block;
		padding: 18px 25px;
		color: rgba(255, 255, 255, 0.9);
		font-weight: 500;
		font-size: 0.9rem;
		text-decoration: none;
			letter-spacing: 0.5px;
		
		/* Futuristic Border */
		border-bottom: 1px solid rgba(0, 255, 255, 0.1);
		
		/* Smooth Transitions */
		transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
		
		/* Gradient Text Effect */
		background: linear-gradient(135deg, #ffffff 0%, #00ffff 100%);
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
		background-clip: text;
	}
	
	#mainnav li a:hover {
		color: #00ffff;
		padding-left: 35px;
		background: rgba(0, 255, 255, 0.05);
		box-shadow: inset 4px 0 0 #00ffff;
		
		/* Hologram Effect */
		text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
		
		/* Gradient Text Hover */
		background: linear-gradient(135deg, #00ffff 0%, #ffffff 100%);
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
		background-clip: text;
	}

	/* Futuristic Arrow Icon */
	#mainnav li a:before {
		display: block;
		content: "▶";
		position: absolute;
		top: 50%;
		left: 12px;
		transform: translateY(-50%) scale(0.7);
		color: rgba(0, 255, 255, 0.6);
		font-size: 0.8rem;
		transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
		opacity: 0;
	}
	
	#mainnav li a:hover:before {
		opacity: 1;
		transform: translateY(-50%) scale(1);
		color: #00ffff;
		text-shadow: 0 0 8px currentColor;
	}
	
	/* Cyber Lines Animation */
	#mainnav li:after {
		content: '';
		position: absolute;
		top: 0;
		left: -100%;
		width: 100%;
		height: 1px;
		background: linear-gradient(90deg, transparent, #00ffff, transparent);
		transition: left 0.5s ease;
	}
	
	#mainnav li:hover:after {
		left: 100%;
	}
	
	/* First and Last Item Special Styling */
	#mainnav li:first-child a {
		border-top: 1px solid rgba(0, 255, 255, 0.1);
		border-radius: 20px 20px 0 0;
	}
	
	#mainnav li:last-child a {
		border-bottom: none;
		border-radius: 0 0 20px 20px;
	}
	

	.col3 li {
		margin: 0 auto;
		display: block;
		max-width: 288px;
	}

}

@media only screen and (max-width: 1199px) {
	section h2 {
		padding: 50px 0 20px 0;
	}

	#sec01 h2 {
		padding: 50px 0 20px;
	}

	.vMid {
		padding: 0 20px;
		height: 100%;
	}
}


/* お問い合わせフォーム */
.Form {
	max-width: 720px;
	margin: auto;
	padding: 40px;
}

.Form * {
	box-sizing: border-box;
}

.Form-Item {
	padding-top: 24px;
	padding-bottom: 24px;
	width: 100%;
}

.Form-Item-Label {
	width: 100%;
	letter-spacing: 0.05em;
	font-size: 14px;
	margin-bottom: 10px;
}

.Form-Item-Label-Required {
	border-radius: 6px;
	margin-right: 8px;
	padding-top: 8px;
	padding-bottom: 8px;
	width: 48px;
	display: inline-block;
	text-align: center;
	background: #545454;
	color: #fff;
	font-size: 14px;
}

.Form-Item-Input {
	border: 1px solid #ddd;
	border-radius: 6px;
	padding: 1em;
	flex: 1;
	width: 100%;
	background: #eaedf2;
	font-size: 18px;
}

.Form-Item-Textarea {
	border: 1px solid #ddd;
	border-radius: 6px;
	padding: 1em;
	height: 216px;
	flex: 1;
	width: 100%;
	background: #eaedf2;
	font-size: 18px;
}

.Form-Btn {
	border-radius: 6px;
	border-width: 0;
	margin-top: 32px;
	margin-left: auto;
	margin-right: auto;
	padding: 10px;
	width: 200px;
	display: block;
	letter-spacing: 0.05em;
	background: #4433ee;
	color: #fff;
	font-size: 18px;
	cursor: pointer;
}

.g-recaptcha {
	display: flex;
	justify-content: center;
	margin: 20px 0;
}

/* Enhanced Responsive Design - Fix Horizontal Scrolling
------------------------------------------------------------*/
/* Prevent horizontal overflow globally */
* {
	box-sizing: border-box;
}

html, body {
	overflow-x: hidden;
	max-width: 100vw;
}

/* Ultra-small devices (smartphones < 480px) */
@media (max-width: 480px) {
	/* Force proper viewport behavior */
	html, body {
		width: 100vw;
		max-width: 100vw;
		min-width: 100vw;
		overflow-x: hidden;
		position: relative;
	}
	
	/* Reduce excessive padding to prevent overflow */
	.inner {
		padding: 0 1rem;
		width: 100%;
		max-width: 100vw;
	}
	
	section {
		padding: 40px 0;
		width: 100%;
		max-width: 100vw;
	}
	
	.vision {
		width: 90%;
		padding: 0 1rem 40px 1rem;
		max-width: calc(100vw - 2rem);
	}
	
	#sec02 .wrap {
		padding: 0 1rem;
		width: 100%;
		max-width: 100vw;
	}
	
	.case_div {
		padding: 0 1rem;
		width: 100%;
		max-width: calc(100vw - 2rem);
	}
	
	.contact-container {
		padding: 0 1rem;
		width: 100%;
		max-width: calc(100vw - 2rem);
	}
	
	.footer-content {
		padding: 40px 1rem 20px;
		width: 100%;
		max-width: 100vw;
	}
	
	/* Typography scaling */
	.main-title {
		font-size: 1.8rem;
		line-height: 1.3;
	}
	
	section h2 {
		font-size: 1.5rem;
		margin-bottom: 30px;
	}
	
	.cyber-title {
		font-size: 2rem;
	}
	
	.floating-letter {
		font-size: 1.5rem;
	}
	
	/* Hero adjustments */
	.hero-container {
		padding: 20px;
	}
	
	.logo-enhanced {
		width: 80px;
		height: 80px;
	}
	
	/* Tech stack responsive */
	.tech-stack-3d {
		flex-wrap: wrap;
		gap: 20px;
	}
	
	.tech-orb {
		width: 60px;
		height: 60px;
	}
	
	/* Remove contact form padding on mobile */
	.Form {
		padding: 20px 15px;
	}
	
	/* Read More button mobile optimization */
	.read-more-btn {
		padding: 8px 16px !important;
		font-size: 0.8rem !important;
		margin: 15px auto !important;
		width: auto !important;
		min-width: 120px !important;
	}
	
	/* Video responsive */
	.container-video_3 {
		margin: 0;
	}
	
	/* Form adjustments */
	.Form-Item-Input,
	.Form-Item-Textarea {
		font-size: 16px; /* Prevent zoom on iOS */
	}
	
	/* Button sizes */
	.footer-cta-btn,
	.magnetic-btn {
		padding: 12px 20px;
		font-size: 0.8rem;
	}
	
	/* Message section */
	.txt, .bg {
		width: 100%;
		display: block;
		float: none;
	}
	
	#sec02_02 .txt {
		order: 2;
	}
	
	#sec02_02 .bg {
		order: 1;
	}
	
	.vMid {
		padding: 20px;
		display: block;
		text-align: left;
	}
	
	/* Section rings responsive - Mobile optimized */
	.section-rings {
		width: 80px;
		height: 80px;
		opacity: 0.4;
	}
	
	/* Scale down individual rings for mobile */
	.section-rings .ring-1 { width: 12px; height: 12px; margin: -6px 0 0 -6px; }
	.section-rings .ring-2 { width: 18px; height: 18px; margin: -9px 0 0 -9px; }
	.section-rings .ring-3 { width: 24px; height: 24px; margin: -12px 0 0 -12px; }
	.section-rings .ring-4 { width: 30px; height: 30px; margin: -15px 0 0 -15px; }
	.section-rings .ring-5 { width: 36px; height: 36px; margin: -18px 0 0 -18px; }
	.section-rings .ring-6 { width: 42px; height: 42px; margin: -21px 0 0 -21px; }
	.section-rings .ring-7 { width: 48px; height: 48px; margin: -24px 0 0 -24px; }
	.section-rings .ring-8 { width: 54px; height: 54px; margin: -27px 0 0 -27px; }
	
	/* Hide complex animations on mobile */
	.floating-letters,
	.tech-stack-3d {
		display: none;
	}
	
	/* Simplify animations */
	.scroll-animate {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
	
	/* Case title responsive */
	.case_title {
		flex-direction: row;
		gap: 10px;
		align-items: center;
	}
	
	/* Case description responsive styles */
	.case_exp {
		font-size: 0.95rem;
	}
	
	.case_exp.main-desc {
		font-size: 1rem;
		padding-left: 15px;
		margin-bottom: 20px;
	}
	
	.case_exp.features {
		padding: 15px 20px;
		font-size: 0.9rem;
	}
	
	.case_exp.result {
		padding: 15px 20px;
		font-size: 0.95rem;
		margin: 20px 0 25px;
	}
	
	/* FAQ Section Mobile Styles */
	.faq-container {
		padding: 0 1rem;
		max-width: calc(100vw - 2rem);
	}
	
	.faq-tabs {
		flex-direction: column;
		gap: 10px;
	}
	
	.faq-tab {
		width: 100%;
		padding: 15px 20px;
		font-size: 0.9rem;
	}
	
	.faq-item {
		margin-bottom: 15px;
	}
	
	.faq-question h3 {
		font-size: 1rem;
		line-height: 1.4;
	}
	
	.faq-answer p {
		font-size: 0.9rem;
		line-height: 1.6;
	}
	
	.three-morph-container {
		width: 15px;
		height: 15px;
		margin: 0;
	}
	
	/* Skill progress bars */
	.skill-progress {
		margin-top: 10px;
	}
}

/* Small tablets (481px - 768px) */
@media (min-width: 481px) and (max-width: 768px) {
	/* Moderate padding */
	.inner {
		padding: 0 1.5rem;
		max-width: 100vw;
	}
	
	section {
		padding: 50px 0;
		max-width: 100vw;
	}
	
	#sec02 .wrap {
		padding: 0 1.5rem;
		max-width: 100vw;
	}
	
	.case_div {
		padding: 0 1.5rem;
		max-width: calc(100vw - 3rem);
	}
	
	.contact-container {
		padding: 0 1.5rem;
		max-width: calc(100vw - 3rem);
	}
	
	/* Typography */
	.main-title {
		font-size: 2.5rem;
	}
	
	section h2 {
		font-size: 2rem;
	}
	
	/* Show tech stack with smaller size */
	.tech-stack-3d {
		display: flex;
		gap: 30px;
	}
	
	/* Section rings smaller */
	.section-rings {
		width: 200px;
		height: 200px;
	}
}

/* Better fluid typography */
.main-title {
	font-size: clamp(1.8rem, 5vw, 60px);
}

.cyber-title {
	font-size: clamp(2rem, 6vw, 4rem);
}

section h2 {
	font-size: clamp(1.5rem, 4vw, 2.5em);
}

/* Improve navigation panel on mobile */
@media (max-width: 799px) {
	.panel {
		width: 80%;
		max-width: 300px;
	}

	#mainnav li a {
		padding: 15px 30px;
		font-size: 0.9rem;
	}
}

/* Ensure images are responsive */
.col3 img {
	width: 100%;
	max-width: 288px;
	height: auto;
	max-height: 200px;
	object-fit: cover;
}

/* Make videos responsive */
video {
	max-width: 100%;
	height: auto;
}

/* Horizontal scrolling prevention - Enhanced */
html, body {
	overflow-x: hidden;
	max-width: 100vw;
}

*, *::before, *::after {
	max-width: 100%;
	box-sizing: border-box;
}

/* Ensure all containers respect viewport width */
section, .wrap, .inner, .content {
	max-width: 100vw;
	width: 100%;
	box-sizing: border-box;
}

/* Fix for absolute positioned elements that may overflow */
.section-bg-animation,
.footer-bg-animation,
.floating-letters,
.quantum-scroll,
.data-flow {
	overflow: hidden;
	max-width: 100vw;
	right: 0;
}

/* Mobile viewport meta fix */
@viewport {
	width: device-width;
	zoom: 1.0;
}

/* Force container boundaries */
.hero-enhanced,
.section-enhanced {
	position: relative;
	overflow-x: hidden;
	width: 100%;
	max-width: 100vw;
}
.nav-demo-link {
	max-width: calc(100vw - 40px);
	box-sizing: border-box;
}

/* Ensure images don't cause overflow */
img, video {
	max-width: 100%;
	height: auto;
	box-sizing: border-box;
}

/* Text overflow prevention */
h1, h2, h3, h4, h5, h6, p, span, div {
	word-wrap: break-word;
	overflow-wrap: break-word;
	hyphens: auto;
	max-width: 100%;
}

/* Container overflow prevention */
.hero-content-enhanced, .hero-container, .particles-container {
	max-width: 100vw;
	overflow-x: hidden;
	box-sizing: border-box;
}

/* iPad Pro and medium screens (769px - 1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
	.inner {
		padding: 0 2rem;
		max-width: 100vw;
	}
	
	#sec02 .wrap {
		padding: 0 2rem;
		max-width: 100vw;
	}
	
	.case_div {
		padding: 0 2rem;
		max-width: calc(100vw - 4rem);
	}
	
	.contact-container {
		padding: 0 2rem;
		max-width: calc(100vw - 4rem);
	}
	
	.footer-content {
		padding: 60px 2rem 30px;
		max-width: 100vw;
	}
	
	/* Adjust section spacing */
	section {
		padding: 60px 0;
	}
	
	/* Service cards in 2 columns */
	.col3 {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 30px;
	}
}

/* Landscape mode adjustments */
@media (max-height: 500px) and (orientation: landscape) {
	.hero-enhanced {
		min-height: 100vh;
		height: auto;
	}
	
	.hero-container {
		padding: 10px 20px;
	}
	
	.main-title {
		font-size: 2rem;
	}
	
	.scroll-mouse {
		display: none;
	}
}


/* Success Modal Styles */
.modal-overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.8);
	z-index: 10000;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.modal-overlay.show {
	display: flex;
	opacity: 1;
}

.modal-content {
	background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
	border: 2px solid #00ffff;
	border-radius: 15px;
	padding: 40px;
	max-width: 500px;
	width: 90%;
	text-align: center;
	box-shadow: 0 0 30px rgba(0, 255, 255, 0.5);
	transform: scale(0.9);
	transition: transform 0.3s ease;
}

.modal-overlay.show .modal-content {
	transform: scale(1);
}

.modal-close-button {
	background: linear-gradient(90deg, #00ffff, #0088ff);
	color: #000;
	border: none;
	padding: 12px 30px;
	border-radius: 5px;
	font-weight: bold;
	cursor: pointer;
	transition: all 0.3s ease;
}

.modal-close-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 5px 15px rgba(0, 255, 255, 0.5);
}

/* ======================================
   Modernized Advantage Section Styles
   Sleek Card-Based Layout with Animations
   ====================================== */

.advantage-section {
	position: relative;
	padding: 80px 0;
	overflow: hidden;
}

.advantage-intro {
	text-align: center;
	margin-bottom: 80px;
	padding: 0 16px;
}

.advantage-intro .section-subtitle {
	font-size: 2rem;
	background: linear-gradient(135deg, #00ffff 0%, #0088ff 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	margin-bottom: 24px;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 200;
	letter-spacing: -0.02em;
}

.advantage-description {
	font-size: 1rem;
	color: #c0c0c0;
	line-height: 1.8;
	max-width: 720px;
	margin: 0 auto;
}

/* Modern Card Layout */
.advantage-modern-layout {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
	gap: 32px;
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 20px;
}

/* Card Styles */
.advantage-card {
	position: relative;
	background: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(20px);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 24px;
	overflow: hidden;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.advantage-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, #00ffff, #0088ff);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s ease;
}

.advantage-card:hover::before {
	transform: scaleX(1);
}

.advantage-card:hover {
	transform: translateY(-8px);
	box-shadow: 0 20px 40px rgba(0, 255, 255, 0.2);
	border-color: rgba(0, 255, 255, 0.3);
}

/* Card Number */
.card-number {
	position: absolute;
	top: 24px;
	right: 24px;
	font-size: 3rem;
	font-weight: 900;
	background: linear-gradient(135deg, rgba(0, 255, 255, 0.1) 0%, rgba(0, 136, 255, 0.1) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	opacity: 0.5;
	z-index: 1;
}

/* Card Header */
.card-header {
	padding: 32px 32px 24px;
}

.card-icon-wrapper {
	position: relative;
	width: 64px;
	height: 64px;
	margin-bottom: 24px;
}

.icon-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, rgba(0, 255, 255, 0.2) 0%, rgba(0, 136, 255, 0.2) 100%);
	border-radius: 16px;
	transform: rotate(45deg);
	transition: transform 0.3s ease;
}

.advantage-card:hover .icon-bg {
	transform: rotate(45deg) scale(1.1);
}

.card-icon {
	position: relative;
	width: 100%;
	height: 100%;
	padding: 16px;
	color: #00ffff;
	z-index: 2;
}

.card-title {
	font-size: 1.75rem;
	font-weight: 700;
	color: #ffffff;
	margin: 0 0 8px 0;
	font-family: 'Raleway', sans-serif;
	letter-spacing: -0.02em;
}

.card-subtitle {
	font-size: 0.875rem;
	color: #00ffff;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	opacity: 0.8;
}

/* Card Preview */
.card-preview {
	padding: 0 32px 32px;
}

.card-preview p {
	color: #b0b0b0;
	line-height: 1.7;
	margin-bottom: 24px;
}

.preview-metrics {
	display: flex;
	gap: 24px;
}

.metric {
	flex: 1;
	text-align: center;
	padding: 16px;
	background: rgba(0, 255, 255, 0.05);
	border: 1px solid rgba(0, 255, 255, 0.2);
	border-radius: 12px;
	transition: all 0.3s ease;
}

.metric:hover {
	background: rgba(0, 255, 255, 0.1);
	border-color: rgba(0, 255, 255, 0.4);
	transform: translateY(-2px);
}

.metric-value {
	display: block;
	font-size: 2rem;
	font-weight: 900;
	color: #00ffff;
	margin-bottom: 4px;
}

.metric-label {
	font-size: 0.75rem;
	color: #808080;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Card Expand Content */
.card-expand {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.advantage-card.expanded .card-expand {
	max-height: 800px;
}

.expand-content {
	padding: 0 32px 32px;
}

/* Solution Matrix */
.solution-matrix {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-bottom: 32px;
}

.matrix-item {
	padding: 16px;
	background: linear-gradient(135deg, rgba(0, 0, 0, 0.4) 0%, rgba(20, 20, 40, 0.4) 100%);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 12px;
	transition: all 0.3s ease;
	cursor: pointer;
}

.matrix-item:hover {
	background: linear-gradient(135deg, rgba(0, 255, 255, 0.1) 0%, rgba(0, 136, 255, 0.1) 100%);
	border-color: rgba(0, 255, 255, 0.3);
	transform: translateY(-4px);
}

.item-label {
	display: block;
	font-weight: 600;
	color: #ffffff;
	margin-bottom: 4px;
}

.item-desc {
	font-size: 0.75rem;
	color: #808080;
}

/* ROI Visualization */
.roi-graph {
	position: relative;
	height: 200px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 40px;
	margin-bottom: 32px;
	padding: 20px;
	background: rgba(0, 0, 0, 0.3);
	border-radius: 12px;
}

.graph-bar {
	position: relative;
	width: 80px;
	background: linear-gradient(to top, #ff4444, #ff6666);
	border-radius: 8px 8px 0 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	padding: 8px;
	transition: all 0.5s ease;
}

.graph-bar.after {
	background: linear-gradient(to top, #00ff88, #00ffaa);
}

.bar-label {
	position: absolute;
	bottom: -25px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 0.75rem;
	color: #808080;
	white-space: nowrap;
	max-width: 80px;
	text-align: center;
}

.bar-value {
	font-weight: 700;
	color: #ffffff;
	margin-bottom: 8px;
}

.graph-arrow {
	position: absolute;
	top: 30%;
	left: 50%;
	transform: translateX(-50%);
}

.arrow-label {
	display: block;
	margin-top: 8px;
	font-size: 1.25rem;
	font-weight: 700;
	color: #ffffff;
	background: rgba(0, 0, 0, 0.8);
	padding: 4px 8px;
	border-radius: 4px;
	text-align: center;
	text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
}

/* Timeline */
.support-timeline {
	position: relative;
	padding: 20px 0;
	margin-bottom: 32px;
}

.timeline-track {
	position: absolute;
	top: 40px;
	left: 0;
	right: 0;
	height: 2px;
	background: rgba(255, 255, 255, 0.1);
}

.timeline-item {
	position: relative;
	width: 25%;
	float: left;
	text-align: center;
}

.timeline-marker {
	width: 16px;
	height: 16px;
	background: #00ffff;
	border-radius: 50%;
	margin: 0 auto 16px;
	position: relative;
	z-index: 2;
	box-shadow: 0 0 0 4px rgba(0, 255, 255, 0.2);
	transition: all 0.3s ease;
}

.timeline-item:hover .timeline-marker {
	transform: scale(1.3);
	box-shadow: 0 0 0 8px rgba(0, 255, 255, 0.3);
}

.timeline-content h5 {
	font-size: 0.875rem;
	font-weight: 600;
	color: #ffffff;
	margin-bottom: 4px;
}

.timeline-content p {
	font-size: 0.75rem;
	color: #808080;
}

/* Feature Lists */
.feature-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.feature-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 16px;
	color: #b0b0b0;
	line-height: 1.6;
}

.feature-list svg {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	color: #00ff88;
	margin-top: 2px;
}

.expand-details h4 {
	font-size: 1.125rem;
	font-weight: 600;
	color: #ffffff;
	margin-bottom: 20px;
}

/* Optimization Steps */
.optimization-steps {
	display: flex;
	gap: 16px;
	margin-top: 20px;
}

.step {
	flex: 1;
	display: flex;
	gap: 12px;
}

.step-number {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	background: linear-gradient(135deg, #00ffff, #0088ff);
	color: #000000;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
}

.step-content h5 {
	font-size: 0.875rem;
	font-weight: 600;
	color: #ffffff;
	margin-bottom: 4px;
}

.step-content p {
	font-size: 0.75rem;
	color: #808080;
	margin: 0;
}

/* Support Features */
.support-features {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 16px;
}

.feature {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px;
	background: rgba(0, 255, 255, 0.05);
	border: 1px solid rgba(0, 255, 255, 0.2);
	border-radius: 8px;
}

.feature svg {
	width: 24px;
	height: 24px;
	color: #00ff88;
}

.feature span {
	font-size: 0.875rem;
	color: #ffffff;
}

/* Toggle Button */
.card-toggle {
	width: 100%;
	padding: 20px;
	background: transparent;
	border: none;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	color: #00ffff;
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: all 0.3s ease;
}

.card-toggle:hover {
	background: rgba(0, 255, 255, 0.05);
	color: #ffffff;
}

.toggle-icon {
	width: 20px;
	height: 20px;
	transition: transform 0.3s ease;
}

.advantage-card.expanded .toggle-icon {
	transform: rotate(45deg);
}

.advantage-card.expanded .toggle-text {
	content: '閉じる';
}

/* CTA Update */
.advantage-cta {
	text-align: center;
	margin-top: 80px;
	padding: 60px 40px;
	background: linear-gradient(135deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 30, 60, 0.8) 100%);
	backdrop-filter: blur(20px);
	border-radius: 24px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}

.cta-content h4 {
	font-size: 2.25rem;
	background: linear-gradient(135deg, #ffffff 0%, #00ffff 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	margin-bottom: 16px;
	font-family: 'Raleway', sans-serif;
	font-weight: 800;
}

.cta-content p {
	font-size: 1.125rem;
	color: #b0b0b0;
	margin-bottom: 32px;
	line-height: 1.7;
}

.dynamic-button {
	position: relative;
	display: inline-block;
	padding: 16px 48px;
	background: linear-gradient(135deg, #00ffff, #0088ff);
	color: #000000;
	text-decoration: none;
	border-radius: 50px;
	font-weight: 700;
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	transition: all 0.3s ease;
	overflow: hidden;
}

.dynamic-button::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0;
	height: 0;
	background: rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	transform: translate(-50%, -50%);
	transition: width 0.6s, height 0.6s;
}

.dynamic-button:hover::before {
	width: 300px;
	height: 300px;
}

.dynamic-button:hover {
	transform: translateY(-3px);
	box-shadow: 0 20px 40px rgba(0, 255, 255, 0.3);
}

/* Responsive Design */
@media (max-width: 1024px) {
	.advantage-modern-layout {
		grid-template-columns: 1fr;
		max-width: 600px;
	}
}

@media (max-width: 768px) {
	.advantage-intro .section-subtitle {
		font-size: 1.75rem;
	}
	
	.advantage-modern-layout {
		padding: 0 16px;
	}
	
	.card-header {
		padding: 24px 24px 20px;
	}
	
	.card-preview {
		padding: 0 24px 24px;
	}
	
	.expand-content {
		padding: 0 24px 24px;
	}
	
	.solution-matrix {
		grid-template-columns: 1fr;
	}
	
	.optimization-steps {
		flex-direction: column;
	}
	
	.support-timeline .timeline-item {
		width: 100%;
		margin-bottom: 24px;
	}
	
	.timeline-track {
		display: none;
	}
}
