/* ===================================
   CSS Variables & Reset
   =================================== */
:root {
  /* Colors */
  --color-dark-navy: #090b1a;
  --color-deep-black: #000000;
  --color-dark-gray: #1a1a2e;
  --color-cyan: #abb7c8;
  --color-green: #03242b;
  --color-neon-blue: #0066ff;
  --color-warning-red: #ff0055;
  --color-white: #ffffff;
  --color-light-gray: #f3f4f8;
  --color-medium-gray: #6b7280;
  --card-border: rgba(84, 83, 86, 0.96); 

  /* Typography */
  --font-heading: "Orbitron", sans-serif;
  --font-body: "Inter", "Noto Sans JP", sans-serif;

  /* Spacing */
  --spacing-xs: 0.5rem;
  --spacing-sm: 1rem;
  --spacing-md: 2rem;
  --spacing-lg: 4rem;
  --spacing-xl: 6rem;

  /* Transitions */
  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;
  --transition-slow: 0.5s ease;

  /* Z-index */
  --z-canvas: 1;
  --z-content: 10;
  --z-header: 100;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  background-color: var(--color-deep-black);
  color: var(--color-light-gray);
  line-height: 1.6;
  overflow-x: hidden;
}

/* ===================================
   Canvas Background
   =================================== */
#particle-canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

/* ===================================
   Container
   =================================== */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--spacing-sm);
}

/* ===================================
   Header Navigation
   =================================== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: var(--z-header);
  transition: background-color var(--transition-normal);
  border-bottom: 1px solid rgba(245, 241, 241, 0.301);
  background-color: var(--color-deep-black);
}

.header.scrolled {
  background-color: var(--color-deep-black);
  backdrop-filter: blur(10px);
  box-shadow: 0 2px 20px rgba(0, 243, 255, 0.1);
}

.nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--spacing-sm) 0;
}

.nav-logo {
  text-decoration: none;
  display: flex; /* 追加 */
  align-items: center; /* 追加 */
  height: 60px; /* 追加（現行 nav 高さに合わせる） */
  outline: none; /* ←追加：フォーカス時の紫ラインを消す */
  user-select: none;
  -webkit-user-select: none;
  -ms-high-contrast-adjust: none; /* ← Edge 限定のバグ対策：これが本命 */
}

.nav-logo:focus {
  outline: none; /* ←追加 */
}

.logo-text {
  display: none;
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-cyan);
  letter-spacing: 2px;
  text-shadow: 0 0 20px rgba(24, 23, 22, 0.5);
  transition: text-shadow var(--transition-fast);
}

.logo-text:hover {
  text-shadow: 0 0 30px rgba(174, 0, 255, 0.8);
}

.nav-list {
  display: flex;
  list-style: none;
  gap: var(--spacing-md);
}

.nav-link {
  color: var(--color-light-gray);
  text-decoration: none;
  font-weight: 500;
  position: relative;
  transition: color var(--transition-fast);
}

.nav-link::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--color-cyan), var(--color-green));
  transition: width var(--transition-normal);
}

.nav-link:hover {
  color: var(--color-cyan);
}

.nav-link:hover::after {
  width: 100%;
}

.nav-toggle {
  display: none;
  font-size: 1.5rem;
  color: var(--color-cyan);
  cursor: pointer;
}

/* ===================================
   Section Base
   =================================== */
.section {
  position: relative;
  z-index: var(--z-content);
  padding-top: 1rem !important;  
  padding-bottom: 3rem !important; 
  /* 統一ルール：黒背景＋上下線 */
  background-color: transparent;
  border: none;
}

.section::before,
.section::after {
  content: none;
}


.section::after {
  margin-top: var(--spacing-xl);
}


.section-header {
  position: relative;
  text-align: center;
  margin-bottom: var(--spacing-lg);
}

.section-header::before {
  content: "";
  display: block;
  width: 95%;
  margin: var(--spacing-xl) auto var(--spacing-lg);
  height: 1px;
  background-color: rgba(255, 255, 255, 0.3);
}

.section-title {
  font-family: var(--font-heading);
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--color-white);
  margin-top: 10rem; 
  letter-spacing: 3px;
}

.section-line {
  width: 100px;
  height: 3px;
  background: linear-gradient(90deg, var(--color-cyan), var(--color-green));
  margin: 0 auto 8rem;
  box-shadow: 0 0 20px rgba(0, 243, 255, 0.5);
}

.section-subtitle {
  font-size: 1.1rem;
  color: var(--color-light-gray);
  max-width: 600px;
  margin: 0 auto;
}

/* ===================================
   Hero Section
   =================================== */
.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  background: radial-gradient(
    ellipse at center,
    rgba(0, 102, 255, 0.1) 0%,
    transparent 70%
  );
}

.hero.section {
  padding-top: 5rem !important;
  padding-bottom: 0 !important;
}

.hero.section::before,
.hero.section::after {
  content: none !important;
}

.hero-container {
  position: relative;
  z-index: var(--z-content);
}

.hero-title {
  font-family: var(--font-heading);
  font-size: 3.5rem;
  font-weight: 900;
  color: var(--color-white);
  margin-bottom: var(--spacing-md);
  line-height: 1.2;
  text-shadow: 0 0 30px rgba(0, 243, 255, 0.5);
}

.hero-subtitle {
  font-size: 1.3rem;
  color: var(--color-light-gray);
  margin-bottom: var(--spacing-lg);
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
  white-space: nowrap;
}

.hero-buttons {
  display: flex;
  gap: var(--spacing-sm);
  justify-content: center;
  flex-wrap: wrap;
}

.btn {
  display: inline-block;
  padding: 1rem 2.5rem;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: 50px;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
}

.btn-primary {
  background: linear-gradient(135deg, var(--color-cyan), var(--color-green));
  color: var(--color-deep-black);
  box-shadow: 0 0 30px rgba(0, 243, 255, 0.3);
}

.btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 0 40px rgba(0, 243, 255, 0.6);
}

.btn-secondary {
  background: transparent;
  color: var(--color-cyan);
  border: 2px solid var(--color-cyan);
}

.btn-secondary:hover {
  background: var(--color-cyan);
  color: var(--color-deep-black);
  transform: translateY(-3px);
  box-shadow: 0 0 30px rgba(0, 243, 255, 0.5);
}

.scroll-indicator {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-cyan);
  font-size: 0.9rem;
  animation: bounce 2s infinite;
  z-index: 50;
}

@keyframes bounce {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

/* ===================================
   About Section
   =================================== */


.about-content {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.5rem 2rem; /* 上下・左右の余白 */
}

/* CEOメッセージと会社情報は1列に戻す */
.about-content .ceo-message,
.about-content .company-info {
  grid-column: 1 / -1; /* 2列→1列へ強制的に展開 */
}

.about-subtitle {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  color: var(--color-cyan);
  margin-bottom: var(--spacing-sm);
}

.about-description {
  margin-bottom: var(--spacing-sm);
  line-height: 1.8;
}

.about-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-md);
}

.stat-card {
  background: rgba(26, 26, 46, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid var(--card-border);
  border-radius: 15px;
  padding: var(--spacing-md);
  text-align: center;
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
}

.stat-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(0, 243, 255, 0.1),
    transparent
  );
  transition: left var(--transition-slow);
}

.stat-card:hover::before {
  left: 100%;
}

.stat-card:hover {
  transform: translateY(-5px);
  border-color: var(--color-cyan);
  box-shadow: 0 10px 40px rgba(0, 243, 255, 0.3);
}

.stat-icon {
  font-size: 2.5rem;
  color: var(--color-cyan);
  margin-bottom: var(--spacing-sm);
}

.stat-number {
  display: inline-block;
  font-family: var(--font-heading);
  font-size: 3rem;
  font-weight: 700;
  color: var(--color-white);
  text-shadow: 0 0 20px rgba(0, 243, 255, 0.5);
}

.stat-suffix {
  display: inline-block;
  font-family: var(--font-heading);
  font-size: 2rem;
  color: var(--color-green);
}

.stat-label {
  font-size: 1rem;
  color: var(--color-light-gray);
  margin-top: var(--spacing-xs);
}

/* ===================================
   Alliance Section
   =================================== */
.alliance-content {
  display: block;
  grid-template-columns: 2fr 1fr;
  gap: var(--spacing-lg);
  align-items: center;
}

.alliance-subtitle {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  color: var(--color-cyan);
  margin-bottom: var(--spacing-sm);
}

.alliance-description {
  margin-bottom: var(--spacing-sm);
  line-height: 1.8;
}

.alliance-history {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  color: var(--color-cyan);
  margin-top: var(--spacing-md);
  margin-bottom: var(--spacing-sm);
}

.alliance-tagline {
  font-style: italic;
  color: var(--color-cyan);
  margin-top: var(--spacing-md);
  margin-bottom: var(--spacing-md);
  font-size: 1.1rem;
}

.alliance-logo-container {
  background: rgba(26, 26, 46, 0.6);
  backdrop-filter: blur(10px);
  border: 2px solid rgba(0, 243, 255, 0.3);
  border-radius: 15px;
  padding: var(--spacing-lg);
  text-align: center;
  transition: all var(--transition-normal);
}

.alliance-logo-container:hover {
  border-color: var(--color-cyan);
  box-shadow: 0 10px 40px rgba(0, 243, 255, 0.3);
}

.alliance-icon {
  font-size: 5rem;
  color: var(--color-cyan);
  margin-bottom: var(--spacing-sm);
}

.alliance-caption {
  color: var(--color-light-gray);
  font-size: 0.9rem;
}

/* ===================================
   Team Section
   =================================== */
.team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-md);
}

.team-card {
  background: rgba(26, 26, 46, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid var(--card-border);
  border-radius: 15px;
  padding: var(--spacing-md);
  text-align: center;
  transition: all var(--transition-normal);
}

.team-card:hover {
  transform: translateY(-10px);
  border-color: var(--color-cyan);
  box-shadow: 0 15px 50px rgba(0, 243, 255, 0.3);
}

.team-image {
  font-size: 5rem;
  color: var(--color-cyan);
  margin-bottom: var(--spacing-sm);
  transition: color var(--transition-normal);
}

.team-card:hover .team-image {
  color: var(--color-green);
}

.team-name {
  font-family:  'Noto Sans JP', 'Inter', var(--font-heading);
  font-size: 1.3rem;
  color: var(--color-white);
  margin-bottom: var(--spacing-xs);
}

.team-role {
  color: var(--color-cyan);
  font-weight: 600;
  margin-bottom: var(--spacing-sm);
}

.team-bio {
  color: var(--color-light-gray);
  line-height: 1.6;
  font-size: 0.95rem;
}

/* ===================================
   Contact Section
   =================================== */

.contact-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--spacing-lg);
}

.contact-item {
  display: flex;
  gap: var(--spacing-sm);
  margin-bottom: var(--spacing-md);
}

.contact-icon {
  font-size: 2rem;
  color: var(--color-cyan);
  flex-shrink: 0;
}

.contact-text h4 {
  color: var(--color-white);
  margin-bottom: var(--spacing-xs);
  font-family: var(--font-heading);
}

.contact-text p {
  color: var(--color-light-gray);
}

.contact-cta {
  background: rgba(26, 26, 46, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid var(--card-border);
  border-radius: 15px;
  padding: var(--spacing-md);
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.contact-message {
  margin-bottom: var(--spacing-md);
  font-size: 1.1rem;
  color: var(--color-light-gray);
}

/* ===================================
   Footer
   =================================== */
/* .footer {
    background: var(--color-deep-black);
    border-top: 1px solid rgba(0, 243, 255, 0.2);
    padding: var(--spacing-lg) 0 var(--spacing-md);
} */

.footer {
  background-color: var(--color-deep-black);
  backdrop-filter: blur(10px); /* ← 同じ効果 */
  box-shadow: 0 -2px 20px rgba(0, 243, 255, 0.1);
  border-top: 1px solid rgba(245, 241, 241, 0.301);
  padding: var(--spacing-lg) 0 var(--spacing-md);
}

.footer-content {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-lg);
  margin-bottom: var(--spacing-md);
}

.footer-title {
  font-family: var(--font-heading);
  color: var(--color-cyan);
  margin-bottom: var(--spacing-sm);
  font-size: 1.1rem;
}

.footer-links {
  list-style: none;
}

.footer-links li {
  margin-bottom: var(--spacing-xs);
}

.footer-links a {
  color: var(--color-light-gray);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.footer-links a:hover {
  color: var(--color-cyan);
}

.footer-description {
  color: var(--color-light-gray);
  line-height: 1.6;
}

.footer-bottom {
  text-align: center;
  padding-top: var(--spacing-md);
  border-top: 1px solid rgba(0, 243, 255, 0.1);
  color: var(--color-medium-gray);
}

/* ===================================
   Animations
   =================================== */
.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ===================================
   Responsive Design
   =================================== */
@media screen and (max-width: 1024px) {
  .alliance-content {
    grid-template-columns: 1fr;
  }

  .team-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .about-stats {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 768px) {
  .nav-menu {
    position: fixed;
    top: 70px;
    left: -100%;
    width: 100%;
    background: var(--color-deep-black);
    backdrop-filter: blur(10px);
    padding: var(--spacing-md);
    transition: left var(--transition-normal);
    border-top: 1px solid rgba(255, 255, 255, 0.3);
  }

  .nav-menu.active {
    left: 0;
  }

  .nav-list {
    flex-direction: column;
    gap: var(--spacing-sm);
  }

  .nav-toggle {
    display: block;
  }

  .hero-title {
    font-size: 2.5rem;
  }

  .hero-subtitle {
    font-size: 1.1rem;
  }

  .section-title {
    font-size: 2rem;
  }

  .team-grid {
    grid-template-columns: 1fr;
  }

  .contact-content,
  .footer-content {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 480px) {
  .hero-title {
    font-size: 2rem;
  }

  .hero-buttons {
    flex-direction: column;
  }

  .btn {
    width: 100%;
  }
}

/* ===========================
   ここから追加部分
=========================== */

/* ======= INTRO SECTION ======= */

.intro-section {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

#intro-canvas {
  position: fixed;
  inset: 0;
  z-index: 9999;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}

/* ====== タイトルレイヤー ====== */
.intro-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  pointer-events: none;
  z-index: 9999;
}

/* タイトル（透明 → 表示） */
.intro-title {
  font-family: "Orbitron", sans-serif;
  font-size: 48px;
  font-weight: 800;
  color: #f7f9f9;
  opacity: 0;
  transform: none;
  transition: opacity 1.8s ease;
}

.intro-title.show {
  opacity: 1;
  transform: none;
}

/* スクロールボタン */
.intro-scroll {
  pointer-events: auto !important;
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-cyan);
  font-size: 0.9rem;
  animation: bounce 2s infinite;
  z-index: 9999;
}

@keyframes fadeUp {
  0% {
    transform: translateY(0);
    opacity: 0.7;
  }
  100% {
    transform: translateY(8px);
    opacity: 1;
  }
}

/* A → B のフェードアウト */
.intro-hide {
  opacity: 0;
  transition: opacity 1.2s ease-in-out;
  pointer-events: none;
  visibility: hidden;
}

body.ready-main #header,
body.ready-main .main {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 1.2s ease-in-out;
}

#header,
.main {
  opacity: 0;
  pointer-events: none;
}

/* 初期状態：B全体を非表示 */
body:not(.ready-main) #header,
body:not(.ready-main) .main,
body:not(.ready-main) footer,
body:not(.ready-main) #particle-canvas {
  opacity: 0;
  pointer-events: none;
}

/* ロゴPNG用スタイル */
.intro-title img {
  width: 65%; /* 画面中央 60〜70%：ご指定のA案 */
  display: block;
  margin: 0 auto;
}

/* ==============
   Header Logo Image
   ============== */
.header-logo-img {
  height: 80px;
  width: auto;
  display: block;
}

/* ===================================
   News Section
=================================== */

.news-item {
  background: rgba(26, 26, 46, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid var(--card-border);
  border-radius: 15px;
  padding: var(--spacing-lg);
  margin-bottom: var(--spacing-lg);
  transition: all var(--transition-normal);
  position: relative;
  overflow: hidden;
}

.news-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(0, 243, 255, 0.1),
    transparent
  );
  transition: left var(--transition-slow);
}

.news-item:hover::before {
  left: 100%;
}

.news-item:hover {
  transform: translateY(-6px);
  border-color: var(--color-cyan);
  box-shadow: 0 10px 40px rgba(0, 243, 255, 0.3);
}

/* メタ情報 */
.news-meta {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  margin-bottom: var(--spacing-sm);
}

.news-date {
  font-size: 1.2rem;
  color: var(--color-light-gray);
}

.news-badge {
  font-size: 1.2rem;
  color: var(--color-cyan);
}

/* タイトル */
.news-headline {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  color: var(--color-white);
  margin-bottom: var(--spacing-sm);
}

/* リード文 */
.news-lead {
  color: var(--color-light-gray);
  line-height: 1.7;
  margin-bottom: var(--spacing-md);
  font-size: 1.05rem;
}

/* 小見出し */
.news-subtitle {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  color: var(--color-cyan);
  margin-top: var(--spacing-md);
  margin-bottom: var(--spacing-xs);
}

/* 本文・段落 */
.news-paragraph {
  margin-bottom: var(--spacing-md);
  color: var(--color-light-gray);
  line-height: 1.8;
}

/* 箇条書き */
.news-list {
  margin-left: 1.2rem;
  margin-bottom: var(--spacing-md);
}

.news-list li {
  margin-bottom: 0.4rem;
  color: var(--color-light-gray);
}

/* ボタン */
.news-link {
  margin-top: var(--spacing-md);
  text-align: right;
}

.news-link .btn-primary {
  padding: 0.8rem 2rem;
}

/* ================================
   About — 各ブロック共通
================================ */
.about-block {
  background: var(--color-deep-black) ;
  border: 1px solid var(--card-border);
  border-radius: 12px;
  padding: 2rem; /* ← 内側余白でゆとりを出す */
  backdrop-filter: blur(8px);
}

.about-block:last-child {
  margin-bottom: 0;
}

/* カード間のスペースは既存のマージンで十分 */
.about-content {
  gap: 3rem 2.5rem; /* 上下・左右の余白を少し拡大 */
}

/* ================================
   CEOメッセージ
================================ */

.ceo-message .ceo-sign {
  margin-top: 1.5rem;
  text-align: right;
  color: var(--color-light-gray);
  font-weight: 500;
  line-height: 1.6;
}

.ceo-message .about-subtitle {
    text-align: center;
    margin-bottom: 1.2rem;
}

/* CEO メッセージ写真= */
.ceo-message .ceo-photo {
    width: 500px;          /* PCで適度に大きく */
    height: auto;          /* 比率維持 */
    border-radius: 5px;   /* 丸角 */
    display: block;
    margin: 0 auto var(--spacing-lg); /* 中央寄せ＋余白 */
    object-fit: cover;
    box-shadow: 0 0 20px rgba(0, 243, 255, 0.15);
}

/* ================================
   会社情報（テーブル）
================================ */

.company-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1rem;
  background: rgba(26, 26, 46, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 243, 255, 0.2);
  border-radius: 10px;
  overflow: hidden;
}

.company-table th,
.company-table td {
  padding: 1rem;
  border-bottom: 1px solid rgba(0, 243, 255, 0.15);
  vertical-align: top;
  line-height: 1.7;
}

/* 左側（見出し） */
.company-table th {
  width: 25%;
  color: var(--color-cyan);
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 600;
}

/* 最後の行のボーダー削除 */
.company-table tr:last-child th,
.company-table tr:last-child td {
  border-bottom: none;
}

/* ================================
   Member 
================================ */
/* ▼ メンバーカード内の本文（bio）だけ左揃えにする */
.team-card .team-bio {
  text-align: left;
}

/* 念のため、名前・役職は中央揃えを維持 */
.team-card .team-name,
.team-card .team-role {
  text-align: center;
}

.members-group-title {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  color: var(--color-cyan);
  margin-bottom: 1.5rem;
  margin-top: 3rem;
}

.board-card {
  background: rgba(26, 26, 46, 0.45);
  border: 1px solid var(--card-border);
  border-radius: 12px;
  padding: 2rem;
}

.video-area video {
  width: 80%;
  height: 600px; 
  object-fit: cover;
  object-position: top;
  border-radius: 8px;
}

/* 1段目：CEO（1名は中央寄せ） */ /* ▼ CEO 専用：左右2分割レイアウト */
.ceo-grid .team-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: center;
}

/* 左側の動画 */
.ceo-grid .team-image {
  width: 100%;
}

/* 右側のテキスト（必須） */
.ceo-grid .team-info {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* CEOは左揃えの方が自然 */
.ceo-grid .team-name,
.ceo-grid .team-role {
  text-align: left;
}

.ceo-grid .team-bio {
  text-align: left;
  line-height: 1.8;
}

/* 2段目：Board Members（2名） */
.board-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.5rem;
  margin-bottom: 3rem;
}

/* 3段目：Advisors（2名） */
.advisor-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.5rem;
}

/* Members：team-bio 外部リンクの色 */
.team-bio a {
  color: var(--color-cyan); 
  font-weight: 700; 
  text-decoration: underline;
}

/* Hover時（読みやすく強調） */
.team-bio a:hover {
  color: var(--color-neon-blue);
}


/* ================================
   Solutions
================================ */

.solution-content {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.solution-block {
  padding: 2.5rem;
  border-radius: 12px;
  /* border: 1px solid var(--card-border); */
}

.solution-subtitle {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--color-cyan);
  margin-bottom: 1rem;
}

.solution-description {
  line-height: 1.8;
  color: #d8eaff;
}

.solution-list ul {
  margin-top: 1.5rem;
  columns: 2; /* 2カラム分割 */
  column-gap: 2rem;
  padding-left: 1rem;
}

.solution-list li {
  margin-bottom: 0.6rem;
  list-style: disc;
}

/* ================================
   Solutions（交互レイアウト）
================================ */

/* 行コンテナ：横並び＆間隔 */
.solution-row {
  display: flex;
  gap: 40px;
  align-items: center;
  margin-bottom: 80px;
}

/* reverse クラス：画像とテキストの左右入れ替え */
.solution-row.reverse {
  flex-direction: row-reverse;
}

/* 左右の画像エリア */
.solution-row .solution-image {
  flex: 1;
}

.solution-row .solution-image img {
  width: 100%;
  /* border-radius: 1px; */
  /* border: 1px solid rgba(0, 243, 255, 0.25); */
  /* box-shadow: 0 0 20px rgba(0, 243, 255, 0.12); */
}

/* テキストエリア */
.solution-row .solution-text {
  flex: 1;
}

/* スマホ（縦積み） */
@media (max-width: 768px) {
  .solution-row,
  .solution-row.reverse {
    flex-direction: column;
  }
}

/* ================================
   Alliance
================================ */

/* .alliance-image {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1.5rem;
}

.alliance-photo {
  width: 100%;
  max-width: 420px;
  border-radius: 12px;
  border: 1px solid rgba(0, 150, 255, 0.25);
  box-shadow: 0 0 20px rgba(0, 150, 255, 0.15);
  object-fit: cover;
} */

.alliance-hero {
  margin-bottom: 2.5rem;   /* ← 画像下余白 */
}


.alliance-hero-img {
  width: 100%;      /* ← これ必須 */
  height: auto;
  display: block;
}

.alliance-body .btn-primary {
  display: block;
  width: fit-content;
  margin: 5rem auto 0; 
}

/* ================================
    Contact Form（レイアウト）
================================ */

/* 全体のフォーム */
.contact-form {
  width: 90%; 
  max-width: 900px; 
  margin: 0 auto; 
}

/* 各行（ラベル＋入力欄のペア） */
.contact-row {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 50px;
  align-items: start;
  margin-bottom: 30px;
}

/* 同意チェック行は1カラム */
.contact-row-agree {
  grid-template-columns: 1fr;
}

.contact-field-full {
  text-align: center;
}

/* ラベル部分 */
.contact-label {
  padding-top: 10px;
}

.label-jp {
  font-size: 20px;
  font-weight: 600;
  color: #fff;
  margin: 0;
}

.label-en {
  font-size: 13px;
  color: #9faac0;
  margin-top: 4px;
}

/* 入力欄 */
.contact-input,
.contact-textarea {
  width: 100%;
  padding: 14px 18px;
  background: #fff;
  border: none;
  border-radius: 6px;
  font-size: 16px;
}

.contact-textarea {
  min-height: 220px;
}

/* ボタン */
.contact-submit-btn {
  padding: 14px 28px;
  font-size: 18px;
  border: 1px solid #fff;
  background: transparent;
  color: #fff;
  border-radius: 30px;
  cursor: pointer;
  margin: 25px auto 0;
  display: block; 
}

/* 中央揃え */
#contact .section-header {
  text-align: center;
}

/* 下の説明文（位置調整） */
#contact .section-subtitle {
  text-align: center;
  margin-top: 40px;
  margin-bottom: 40px;
}

/* ラインの中央寄せ */
#contact .section-line {
  margin-left: auto;
  margin-right: auto;
}

/* ===　Error Message Style　====== */

.error-message {
  display: none;
  color: #ff6a6a;
  font-size: 13px;
  margin-top: -25px;
  margin-bottom: 25px;
}

/* チェックボックス用 */
.checkbox-error {
  display: none;
  margin-top: 5px;
}

/* 赤枠を付けない（white デザインを保つ） */
.contact-input:invalid,
.contact-textarea:invalid {
  outline: none;
  border: none;
}

.required {
  display: inline-block;
  background: #8f0505;
  color: #fff;
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 3px;
  margin-left: 6px;
}

/* ===================================
   Footer（改良版） 
 ===================================*/

.footer-title {
  font-family: var(--font-heading); /* ヘッダーと同じ Orbitron */
  color: var(--color-light-gray); /* Nav と同じ色 */
  font-size: 1.1rem;
  margin-bottom: var(--spacing-sm);
  letter-spacing: 1px; /* Nav と同質感 */
  transition: color var(--transition-fast);
}

.footer-title:hover {
  color: var(--color-cyan); /* Nav と同じ hover カラー */
}

.footer-links a {
  color: var(--color-light-gray);
  text-decoration: none;
  font-weight: 500; /* Nav と統一 */
  transition: color var(--transition-fast);
}

.footer-links a:hover {
  color: var(--color-cyan); /* Nav と同じ hover */
}



/* ===================================
   B：メインコンテンツの Scroll ボタン（最前面固定）
   =================================== */

.scroll-indicator.main-scroll {
    position: fixed !important;
    bottom: 2rem;
    right: 2rem;
    z-index: 999999 !important;
    opacity: 0;              /* ★Aでは透明（これが重要） */
    pointer-events: none;    /* ★クリックも不可 */
    transition: opacity .3s ease;

}

.scroll-indicator,
.intro-scroll,
.main-scroll {   
    font-weight: 600;              /* 文字を少し太め */
}


/* ===============================
   共通カードスタイル
=============================== */
.card-block {
  background: rgba(26, 26, 46, 0.45);
  backdrop-filter: blur(10px);
  border: 1px solid var(--card-border);
  border-radius: 15px;
  padding: var(--spacing-lg);
  margin-bottom: var(--spacing-lg);
}




/* ===================================
   Company：カードレイアウト
=================================== */
.company-content {
    margin-top: var(--spacing-lg);
}

.company-block {
    background: rgba(10, 14, 39, 0.6); /* 見本と同じ濃紺ガラス調 */
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 16px;
    padding: var(--spacing-xl);
    backdrop-filter: blur(6px);
}

.company-subtitle {
    font-family: var(--font-heading);
    font-size: 1.8rem;
    color: var(--color-white);
    text-align: center;
    margin-bottom: var(--spacing-lg);
    letter-spacing: 0.05em;
}

.company-table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-body);
    color: var(--color-white);
    background: var(--color-deep-black);
}

.company-table th,
.company-table td {
    padding: 1rem;
    border-bottom: 2px solid rgba(255, 255, 255, 0.25); 
    vertical-align: top;
}

.company-table th {
    width: 22%;
    color: var(--color-cyan); 
    font-weight: 600;
}

.company-table td {
    width: 78%;
    line-height: 1.7;
}

.company-table iframe {
    margin-top: 1rem;
    border-radius: 10px;
    width: 650px;     
    max-width: 100%;  
    height: 350px;
    display: block;
    margin-left: 0;
    margin-right: auto;
}



/* ===============================
   Members：Advisors写真
=============================== */

.advisor-grid .team-image {
    width: 500px;
    height: 360px;
    margin: 0 auto var(--spacing-md);
    border-radius: 5px; /* 丸角調整 */
    overflow: hidden;
    background: rgba(255, 255, 255, 0.05);
    display: flex;
    justify-content: center;
    align-items: center;
}

.advisor-grid .team-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0; /* ←画像は丸くしない */
}

/* ===============================
  Contact：プライバシーポリシーリンク
=============================== */
.contact-agree a {
  color: var(--color-cyan);
  font-weight: 700;
  text-decoration: underline;
}

.contact-agree a:hover {
  color: var(--color-neon-blue);
}


/* ===============================
  footer：プライバシーポリシーリンク
=============================== */
.footer-privacy-link {
  /* color: var(--color-cyan);
  text-decoration: underline;
  margin-left: 12px; */
  text-align: center;
  padding-top: var(--spacing-md);
  border-top: 1px solid rgba(0, 243, 255, 0.1);
  color: var(--color-medium-gray);
  margin-left: 32px;
}

.footer-privacy-link:hover {
  color: var(--color-neon-blue);
}

/* ===================================
   全カード：背景を黒に統一（初期状態の統一）
=================================== */

.stat-card,
.about-block,
.solution-block,
.team-card,
.board-card,
.advisor-grid .team-image,
.company-block,
.news-item,
.alliance-logo-container,
.contact-cta,
.card-block {
  background: var(--color-deep-black) !important;   /* 背景黒で統一 */
  border: 1px solid rgba(255, 255, 255, 0.12);      /* 初期枠（薄め） */
  border-radius: 12px;
  box-shadow: 0 0 0 rgba(0,0,0,0);                  /* 初期影なし */
  transition: all 0.35s ease;                       /* なめらか */
}

/* ===================================
   全カード：News / Members と同じ hover の光演出を統一
=================================== */

.stat-card:hover,
.about-block:hover,
.solution-block:hover,
.team-card:hover,
.board-card:hover,
.advisor-grid .team-image:hover,
.company-block:hover,
.news-item:hover,
.alliance-logo-container:hover,
.contact-cta:hover,
.card-block:hover {
  transform: translateY(-6px); 
  border-color: var(--color-cyan);                   /* サイバーな光色 */
  box-shadow: 0 10px 40px rgba(0, 243, 255, 0.35);   /* 光が広がる演出 */
}

  /* ===============================
      SOLUTION（画像縮小）
  =============================== */
  .solution-image img {
    width: 90% !important;
    margin: 0 auto;
  }


  /* ===============================
      FORM（入力欄最適化）
  =============================== */
  .contact-input,
  .contact-textarea {
    font-size: 0.9rem;
  }


  /* ===============================
      FOOTER
  =============================== */
  .footer-content {
    gap: 1.5rem !important;
  }



/* =====================================
   =====================================
     Responsive Optimization 768px以下
=====================================
===================================== */
@media screen and (max-width: 768px) {

  .nav-toggle {
    position: absolute;
    right: 1rem;   /* ← 内側に寄せる */
    top: 1.2rem;   /* ← ヘッダー内に収める */
    z-index: 10000;
  }

  .nav {
    position: relative;   /* ← nav-toggle の基準位置が必要 */
  }

  /* ===============================
      1. HERO
  =============================== */
  .hero-title {
    font-size: 1.8rem !important;
    line-height: 1.3;
  }

  .hero-subtitle {
    font-size: 1rem !important;
    line-height: 1.6;
    white-space: normal !important; /* ← 折り返し解禁 */
  }

  .hero-buttons {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 1rem;
  }

  .hero-buttons .btn {
    width: auto !important;
    min-width: 140px;
    padding: 0.8rem 1.8rem;
    font-size: 1rem;
    }

  /* ===============================
      2. Section Header
  =============================== */
  .section-title {
    font-size: 1.6rem !important;
    margin-top: 6rem;
  }

  .section-line {
    margin-bottom: 3rem;
  }

  .section-subtitle {
    font-size: 0.95rem;
    max-width: 90%;
  }

  /* ===============================
      3. About
  =============================== */
  .about-content {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }

  .about-block {
    padding: 1.5rem !important;
  }

  .about-subtitle {
    font-size: 1.3rem !important;
  }

  .ceo-photo {
    width: 70% !important;
    height: auto !important;
  }

  /* ===============================
      4. Members
  =============================== */

  /* CEO：2 カラム → 1 カラム */
  .ceo-grid .team-card {
    grid-template-columns: 1fr !important;
  }

  .team-image video,
  .advisor-grid .team-image img {
    width: 100% !important;
    height: auto !important;
  }

  .team-name {
    font-size: 1.2rem;
  }

  .team-role {
    font-size: 0.95rem;
  }

  .team-bio {
    font-size: 0.9rem;
    line-height: 1.6;
  }

  /* Board / Advisor：2 → 1 列 */
  .board-grid,
  .advisor-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }

  /* ▼ Members：動画の縦横比をスマホ最適化 */
  .video-area video {
    width: 60% !important;
    height: auto !important;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: 50% 30%;
    border-radius: 6px;
  }
    

  /* ===============================
      5. News
  =============================== */
  .news-item {
    padding: 1.5rem !important;
  }
  .news-headline {
    font-size: 1.4rem;
  }
  .news-lead {
    font-size: 0.95rem;
    line-height: 1.7;
  }

  /* ===============================
      6. Solution（交互 → 縦積み）
  =============================== */
  .solution-row,
  .solution-row.reverse {
    flex-direction: column !important;
    gap: 1.5rem !important;
  }

  .solution-subtitle {
    font-size: 1.3rem !important;
  }

  /* ===============================
      7. Alliance
  =============================== */
  .alliance-hero-img {
    max-width: 100% !important;
  }

  .alliance-body {
    padding: 1.5rem !important;
  }

  /* ===============================
      8. Contact
  =============================== */
  /* 各行を縦並びに（ラベル→入力欄の順） */
  .contact-row {
    display: block !important;
    margin-bottom: 1.2rem !important;
  }

  /* ラベル部分 */
  .contact-label {
    margin-bottom: 0.5rem !important;
    padding-top: 0 !important;
  }

  /* 入力欄の幅を整える */
  .contact-input,
  .contact-textarea,
  .contact-select {
    width: 100% !important;
  }

  /* ===============================
      9. Footer
  =============================== */
  .footer-content {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }

  .footer-title {
    font-size: 1rem !important;
  }
}




/* =====================================
     Responsive Optimization 480px以下
===================================== */
@media screen and (max-width: 480px) {

  /* ===============================
      0. 全体（480px以下）
  =============================== */
  .container,
  .hero-container,
  .about-content,
  .team-card,
  .news-item,
  .solution-row,
  .contact-form,
  .footer-content {
    width: 100% !important;
    max-width: 500px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  /* ===============================
      1. HERO（480px以下）
  =============================== */
  .hero-title {
    font-size: 1.4rem !important;
    line-height: 1.3;
  }

  .hero-subtitle {
    font-size: 0.85rem !important;
    line-height: 1.5;
  }

  .hero-buttons {
    flex-direction: column !important;
    align-items: center;
    gap: 0.7rem;
  }

  .hero-buttons .btn {
    width: auto !important;
    min-width: 130px;
    padding: 0.7rem 1.4rem;
    font-size: 0.9rem;
  }


  /* ===============================
      2. About（480px以下）
  =============================== */
  .ceo-photo {
    width: 85% !important;
    height: auto !important;
    margin: 0 auto;
  }

  .about-subtitle {
    font-size: 1.2rem !important;
  }

  /* ===============================
      3. Members（480px以下）
  =============================== */

  /* ▼ 親グリッド（1カラム固定） */
  .advisor-grid,
  .board-grid,
  .ceo-grid {
    width: 100% !important;
    padding: 0 !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }

  /* ▼ カードの幅（100%で統一） */
  .team-card {
    width: 100% !important;
    margin: 0 auto !important;
    padding: 1rem !important;
    box-sizing: border-box;
  }

  /* ▼ 親コンテナに aspect-ratio を付与 */
  .team-image {
    border: none !important; 
    box-shadow: none !important; 
    width: 100% !important;
    aspect-ratio: 4 / 5 !important;
    overflow: hidden !important;
    border-radius: 6px;
  }

  /* ▼ 画像（子要素） */
  .team-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 50% 30% !important;
    display: block;
    border-radius: 12px !important; 
  }

  .team-image.video-area {
    height: auto !important; 
    aspect-ratio: 4 / 5 !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
  }

  .video-area video {
    width: 85% !important;
    height: 100% !important;
    aspect-ratio: 4 / 5 !important;
    object-fit: cover !important;
    object-position: 50% 30% !important;
    border-radius: 6px !important;
  }

  .advisor-grid .team-image {
    margin-bottom: 0.6rem !important;
  }

  /* ===============================
      4. News（480px以下）
  =============================== */
  .news-item {
    padding: 1.2rem !important;
  }
  .news-headline {
    font-size: 1.25rem;
  }
  .news-lead {
    font-size: 0.9rem;
    line-height: 1.6;
  }


  /* ===============================
      5. Solution（480px以下）
  =============================== */
  .solution-row,
  .solution-row.reverse {
    flex-direction: column !important;
    gap: 0.5rem !important;
  }

  .solution-image img {
    width: 100% !important;
    margin: 0 auto;
  }

  .solution-content.card-block {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  /* ===============================
      6. Contact（480px以下）
  =============================== */
  /* ▼ Contactフォーム */
  .contact-form {
    padding: 1.5rem !important;
    max-width: 480px !important;
    margin: 0 auto !important;
  }

  /* ▼ 各行を縦並びに（ラベル→入力欄の順） */
  .contact-row {
    display: block !important;
    margin-bottom: 1.2rem !important;
  }

  /* ▼ ラベル部分 */
  .contact-label {
    margin-bottom: 0.5rem !important;
    padding-top: 0 !important;
  }

  /* ▼ 入力欄を均一化して全文字幅に */
  .contact-input,
  .contact-select,
  .contact-textarea {
    width: 100% !important;
    display: block !important;
  }

  /* ===============================
     7. Company（480px以下）
  =============================== */

  .company-block,
  .company-info,
  .company-block.company-info {
    padding: 0 !important;
    margin: 0 auto !important;
    width: 100% !important;
    max-width: 500px !important;
    box-sizing: border-box !important;
  }

  .company-table {
    width: 100% !important;
    max-width: 500px !important;   /* ← 全体幅に揃える */
    margin: 0 auto !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
  }

  .company-table table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
  }

  .company-table th,
  .company-table td {
    padding: 0.8rem 0.4rem !important; 
    font-size: 0.9rem !important;
    word-break: break-word !important;
  }

  .company-subtitle {
    margin-top: 2.5rem !important; 
  }

  /* ===============================
      8. Footer（480px以下）
  =============================== */
  .footer-content {
    grid-template-columns: 1fr !important;
    gap: 1.4rem !important;
  }

  .footer-title {
    font-size: 0.95rem !important;
  }
}

/* ===================================
   Form Result Message
   =================================== */
.form-result-message {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
  border-radius: 12px;
  margin-bottom: 2rem;
  animation: fadeInSlide 0.4s ease-out;
}

@keyframes fadeInSlide {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.form-result-message.success {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(5, 150, 105, 0.1) 100%);
  border: 1px solid rgba(16, 185, 129, 0.4);
}

.form-result-message.error {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(185, 28, 28, 0.1) 100%);
  border: 1px solid rgba(239, 68, 68, 0.4);
}

.form-result-message .message-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: bold;
}

.form-result-message.success .message-icon {
  background: rgba(16, 185, 129, 0.2);
  color: #10b981;
}

.form-result-message.error .message-icon {
  background: rgba(239, 68, 68, 0.2);
  color: #ef4444;
}

.form-result-message .message-text {
  flex: 1;
}

.form-result-message .message-title {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}

.form-result-message.success .message-title {
  color: #10b981;
}

.form-result-message.error .message-title {
  color: #ef4444;
}

.form-result-message .message-body {
  font-size: 0.95rem;
  color: var(--color-light-gray);
  line-height: 1.5;
}

/* 送信ボタンの無効化スタイル */
.contact-submit-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* モバイル対応 */
@media (max-width: 480px) {
  .form-result-message {
    flex-direction: column;
    text-align: center;
    padding: 1.25rem;
  }

  .form-result-message .message-icon {
    width: 40px;
    height: 40px;
    font-size: 1.25rem;
  }

  .form-result-message .message-title {
    font-size: 1rem;
  }

  .form-result-message .message-body {
    font-size: 0.9rem;
  }
}
