/* CSSファイルの文字コードを指定（推奨） */
@charset "UTF-8";

/* ========================================
  ①-1 基本設定：Basic setting : RESET
======================================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* ========================================
①-2 基本設定：Basic setting :   BASE STYLES
======================================== */
body {
  font-family: 'Helvetica Neue', 'Arial', sans-serif;
  line-height: 1.6;
  background-color: #000000;
}

/* ========================================
①-3 基本設定：Basic setting : LAYOUT
======================================== */
/* 例: セクション全体の余白など */
section {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    padding-inline: 16px;     /* 端の食い込み防止（任意）*/
}

/* ========================================
①-4 基本設定：Smooth Scroll
======================================== */
html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable both-edges; /* ← DevTools/OSのスクロールバーで横幅が揺れない */
}

/* ========================================
    ★★★★★★★★★★★★★★★★
    ★★★後で削除予定★★★
    ★★★★★★★★★★★★★★★★
======================================== */
html, body {
  margin: 0;
  padding: 0;
  overflow-x: hidden; /* まずはこれで横スクロールを切る */
}

.main_visual { padding-inline: 0 !important; }

/* ========================================
  ⑩ Media Queries（レスポンシブ対応）
======================================== */

/* ---------- 1200px以下（PC小画面・タブレット横） ---------- */
@media (max-width: 1200px) {
  section {
    max-width: 1000px;
  }
}

/* ---------- 1024px以下（タブレット縦） ---------- */
@media (max-width: 1024px) {
  body {
    font-size: 15px;
  }
  section {
    padding-inline: 12px;
  }
}

/* ---------- 768px以下（スマホ横・タブレット小） ---------- */
@media (max-width: 768px) {
  body {
    font-size: 14px;
    line-height: 1.7;
  }
  section {
    padding-inline: 10px;
  }
}

/* ---------- 480px以下（スマホ縦） ---------- */
@media (max-width: 480px) {
  body {
    font-size: 13px;
    line-height: 1.8;
  }
  section {
    padding-inline: 8px;
  }

  /* 横スクロール対策 */
  html, body {
    overflow-x: hidden;
  }
}


/* ========================================
  ② Navigation Menu（共通・安定版）
======================================== */
:root{
  --c-green:#0F9403;
  --c-accent:#58E1F3;
  --nav-h:60px;
}

/* ===== Audio Control Button ===== */
#toggleAudioBtn {
    background-color: #000;   /* 背景色を黒に */
    color: #0F9403;              
    border: none;
    padding: 10px 24px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 16px;
}

/* バー本体：3カラム（左:Audio / 中央:ロゴ+ナビ / 右:ドロップダウン） */
.navigation_menu__wrapper{
  position:fixed; inset:0 auto auto 0;
  height:var(--nav-h); width:100%;
  z-index:1000;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:16px;
  padding:0 14px;
  background:#131313d0;
  backdrop-filter: blur(4px);
}

/* 左：Audio */
.nav-left{ display:flex; align-items:center; gap:12px; }
.audio-btn{
  appearance:none; border:2px solid var(--c-green);
  background:#000; color:var(--c-green);
  border-radius:9999px; padding:8px 14px; line-height:1;
  cursor:pointer; font-size:14px;
}
.audio-btn:hover{ filter:brightness(1.1); }

.audio-wrap{ position:relative; }
.audio-panel{
  position:absolute; left:0; top:calc(100% + 8px);
  background:transparent; border:1px solid var(--c-green);
  padding:8px; border-radius:10px; min-width:260px;
  box-shadow:0 8px 20px rgba(0,0,0,.5);
}
.audio-panel audio{ width:100%; }

/* 中央：ロゴ＋ナビ */
.nav-center{
  display:flex; justify-content:center; align-items:center;
  gap:28px; min-width:0;
}
.navigation_menu__logo img{ 
    height:40px; 
    width:auto; 
    display:block; 
    margin-left: 70px;
    font-size: 50px;
}

.navigation_menu__logo img:hover{
  filter:brightness(1.22); transform:scale(1.015);
  transition: filter .18s ease, transform .18s ease;
}

/* ナビ文字：通常 緑 → ホバー 水色＆微拡大 */
.navigation_text{
  display:flex; 
  justify-content:center; 
  align-items:center;
  gap:50px; /* 25~30 にしたい時はここを調整 */
  margin-left: 0px;
}
.navigation_text a{
  color:var(--c-green); text-decoration:none; font-size:16px;
  transition: color .18s ease, transform .18s ease;
}
.navigation_text a:hover{ color:var(--c-accent); transform:scale(1.05); }
.navigation_text a.active{ color:var(--c-green); } /* 手動で付ける場合のみ */

/* 右：ドロップダウン（クリックUIは使わずJSで遅延クローズ） */
.drop_down_menu{ position:relative; justify-self:end; }
.dropdown-trigger{
  display:grid; place-items:center; width:36px; height:36px;
  background:transparent; border:1px solid var(--c-green); border-radius:8px;
  cursor:pointer; padding:0;
}
.dropdown-trigger img{ width:22px; height:auto; filter:brightness(1.1); }

/* ▼ ドロップダウン本体：横書き固定＋改行禁止＋フェード表示 */
.dropdown-list{
  position:absolute; right:0; top:calc(100% + 10px);
  display:block;               /* ← display:none は使わない */
  opacity:0; transform:translateY(6px);
  pointer-events:none;          /* 非表示時はクリック不可 */
  transition:opacity .18s ease, transform .18s ease;

  writing-mode: horizontal-tb;  /* ← 縦書き化の保険 */
  white-space: nowrap;          /* ← 文字の折返し防止 */
  line-height:1.6;

  background:#0b0b0b; border:1px solid var(--c-green);
  border-radius:10px; padding:8px 0; min-width:220px;
  box-shadow:0 8px 20px rgba(0,0,0,.5);
  list-style:none;
}
.drop_down_menu.open .dropdown-list{
  opacity:1; transform:translateY(0);
  pointer-events:auto;
}
.dropdown-list li{ display:block; margin:0; }
.dropdown-list a{
  display:block; padding:10px 14px;
  color:var(--c-green); text-decoration:none; font-size:15px;
  background:transparent; transform-origin:left center;
  transition: color .18s ease, transform .18s ease;
}
.dropdown-list a.nav--contact,
.dropdown-list a.nav--kpi{
  /* デフォルトでは非表示（小画面時のみ表示に切替）*/
  display: none;
}
.dropdown-list a:hover{
  background:transparent; color:var(--c-accent); transform:scale(1.05);
}

/* ❌ hoverでdisplay切替はもう使わない（縦崩れ原因なので削除）
   .drop_down_menu:hover .dropdown-list{ ... } は書かない */

/* レスポンシブ */
@media (max-width:900px){
  .navigation_text{ gap:20px; }
  .nav-center{ gap:20px; }
  .navigation_menu__wrapper{ padding:0 10px; }
}

/* ========================================
  ②-RES Navigation Menu Responsive
======================================== */

/* まず、可変にしたいトークンを用意 */
:root{
  --nav-h: 60px;     /* PC高さ */
  --nav-gap: 28px;   /* PCのナビ間隔 */
  --nav-fs: 16px;    /* PCのナビ文字サイズ */
  --logo-h: 40px;    /* PCのロゴ高さ */
  --audio-fs: 14px;  /* PCのAudio文字 */
  --dropdown-icon: 22px; /* PCのドロップダウンアイコン */
}

/* Utilities：表示切替に使う（JS不要） */
.is-desktop-only { display: inline-flex; }
.is-mobile-only  { display: none; }

/* ===== 基本サイズは既存を踏襲 ===== */
.navigation_text a{ font-size: var(--nav-fs); }
.navigation_text{ gap: var(--nav-gap); }
.navigation_menu__logo img{ height: var(--logo-h); }
.audio-btn, #toggleAudioBtn{ font-size: var(--audio-fs); }
.dropdown-trigger img{ width: var(--dropdown-icon); }
/* ドロップダウンは常に右端に出せる状態をキープ（既存定義でOK） */


/* ---------- 1024px以下：さらに凝縮、ロゴ寄せ ---------- */
@media (max-width: 1024px){
  :root{
    --nav-h: 54px;
    --nav-gap: 20px;
    --nav-fs: 14.5px;
    --logo-h: 34px;
    --audio-fs: 12.5px;
    --dropdown-icon: 20px;
  }
  .navigation_menu__wrapper{
    grid-template-columns: auto 1fr auto; /* そのまま */
    padding: 0 10px;
  }
  .navigation_menu__logo img{ margin-left: 40px; } /* 既存70px → 少し詰める */
  .nav-center{ gap: 20px; }
}

/* ---------- 900px以下：お問い合わせ＆KPIをドロップダウンに退避 ---------- */
/* ポイント：
   1) 中央ナビの「お問い合わせ」「KPI Navigator」を非表示
   2) ドロップダウン内の同名リンクを表示
   ※HTML側で該当a要素に .nav--contact / .nav--kpi を付与しておく */
/*@media (max-width: 900px){
  :root{
    --nav-h: 52px;
    --nav-gap: 18px;
    --nav-fs: 14px;
    --logo-h: 32px;
    --audio-fs: 12px;
    --dropdown-icon: 18px;
  }
  .navigation_text{ gap: var(--nav-gap); }

  /* 退避（中央ナビ側を隠す）*/
  /*.navigation_text a.nav--contact,
  .navigation_text a.nav--kpi{
    display: none !important;
  }

  /* ドロップダウン側の同名リンクを見せる */
  /*.dropdown-list a.nav--contact,
  .dropdown-list a.nav--kpi{
    display: block !important;
  }
}*/

/* ---------- 840px以下：折返し防止の最終微調整 ---------- */
@media (max-width: 840px){
  /* 余白・サイズをもう一段だけ詰める（803pxより弱め） */
  .navigation_menu__wrapper{ padding: 0 10px; gap: 12px; }
  .navigation_menu__logo img{ height: 32px; margin-left: 16px; } /* 40px→16px */
  .navigation_text{ gap: 12px; }
  .navigation_text a{ font-size: 14px; } /* ほんの少しだけ下げる */
  #toggleAudioBtn, .audio-btn{ font-size: 12px; padding: 6px 10px; }
  .dropdown-trigger{ width: 32px; height: 32px; }
  .dropdown-trigger img{ width: 18px; height: auto; }
}




/* 803px以下：まずはサイズだけ締める（1行死守） */
@media (max-width: 803px){
  .navigation_menu__wrapper{ padding: 0 8px; gap: 10px; }
  .nav-left{ gap: 8px; }
  .navigation_menu__logo img{ height: 30px; margin-left: 24px; }
  .navigation_text{ gap: 14px; /* ←ここで間隔を詰める */ }
  .navigation_text a{ font-size: 13.5px; }
  #toggleAudioBtn, .audio-btn{ font-size: 12px; padding: 6px 10px; border-width: 1.5px; }
  .dropdown-trigger{ width: 32px; height: 32px; }
  .dropdown-trigger img{ width: 18px; height: auto; }
}



/* ---------- 768px以下：タップ前提で全体をさらに凝縮 ---------- */
@media (max-width: 768px){
  :root{
    --nav-h: 50px;
    --nav-gap: 16px;
    --nav-fs: 13.5px;
    --logo-h: 30px;
    --audio-fs: 11.5px;
    --dropdown-icon: 18px;
  }
  .navigation_menu__wrapper{ padding: 0 8px; }
  .nav-left{ gap: 8px; }
  .nav-center{ gap: 16px; }

  /* スペース稼ぎ：Audioボタンをアイコン化したい場合はここでpadding縮小 */
  #toggleAudioBtn, .audio-btn{
    padding: 6px 12px;
    border-width: 1.5px;
  }

  /* （任意）中央ナビの間隔さらに詰めたい場合 */
  .navigation_text{ gap: 14px; }
}

/* 740px以下：お問い合わせ＆KPIを右のドロップダウンへ退避 */
@media (max-width: 740px){
  /* 中央ナビ側は隠す（セレクタ強化＆!importantで確実に） */
  .navigation_text > a.nav--contact,
  .navigation_text > a.nav--kpi{
    display: none !important;
  }

  /* ドロップダウン内の同名リンクは見せる */
  .dropdown-list a.nav--contact,
  .dropdown-list a.nav--kpi{
    display: block !important;
  }

  /* さらに全体を少しだけ縮める（任意） */
  .navigation_menu__logo img{ height: 28px; margin-left: 16px; }
  .navigation_text{ gap: 12px; }
  .navigation_text a{ font-size: 13px; }
  #toggleAudioBtn, .audio-btn{ font-size: 11.5px; padding: 5px 9px; }
  .dropdown-trigger{ width: 30px; height: 30px; }
  .dropdown-trigger img{ width: 16px; }
}


/* ---------- 600px以下：テキストナビは主要2〜3個に、残りはドロップダウン ---------- */
/* ここでは例として、中央ナビの後半リンクをまとめて隠す。
   正確に制御したいなら、各aに .nav--primary / .nav--secondary を付けて切替が楽。 */
@media (max-width: 600px){
  :root{
    --nav-h: 48px;
    --nav-gap: 14px;
    --nav-fs: 13px;
    --logo-h: 28px;
    --audio-fs: 11px;
    --dropdown-icon: 16px;
  }
  /* 主要以外を隠す（例：3番目以降）*/
  .navigation_text a:nth-child(n + 4){
    display: none;
  }
  /* ドロップダウン側は全部見えるようにする */
  .dropdown-list a{ display: block; }
}

/* ---------- 480px以下：モバイル最小構成 ---------- */
@media (max-width: 480px){
  :root{
    --nav-h: 46px;
    --nav-gap: 12px;
    --nav-fs: 12.5px;
    --logo-h: 26px;
    --audio-fs: 10.5px;
    --dropdown-icon: 16px;
  }

  .navigation_menu__wrapper{
    gap: 10px;
    padding: 0 8px;
    /* 左(オーディオ) - 中央(ロゴ/ナビ) - 右(ドロップ) のまま */
  }

  /* モバイルでは「文字ナビは主要1〜2個だけ」にするなら */
  .navigation_text a:nth-child(n + 3){
    display: none !important;
  }

  /* ユーティリティ切替（必要なら使う） */
  .is-desktop-only { display: none !important; }
  .is-mobile-only  { display: inline-flex !important; }
}

/* ナビ内の各リンクを1行固定（日本語の文字単位折返しを防止） */
.navigation_text a {
  white-space: nowrap;
}





/* ========================================
  ③Main Visual : HERO video
======================================== */
.main_visual {
  position: relative;
  width: 100%;
  max-width: 100vw;
  margin: 0;
  padding: 0 0 130px 0;
  overflow: hidden;
}

.main_visual__image {
  position: relative;
}

.main_visual__image video {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  margin: 0;
  padding: 0;
}

/* Main Visual オーバーレイテキスト */
.main_visual__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

.main_visual__title {
  font-size: clamp(48px, 8vw, 120px);
  font-weight: 700;
  color: #58E1F3;
  text-align: center;
  letter-spacing: 0.1em;
  margin: 0;
  line-height: 1.2;
  position: relative;
  display: inline-block;
  padding: 20px 40px;
  background: rgba(20, 20, 20, 0.7); /* 文字の後ろに濃いグレー背景 */
  border-radius: 20px;
  backdrop-filter: blur(4px); /* ぼかし効果でさらに見やすく */
}

/* スクランブル中の文字スタイル */
.main-visual-scramble {
  opacity: 0.9;
}

/* === 553px以下：main_visualの文字を折り返さないように縮小 === */
@media (max-width: 553px){
  .main_visual__title {
    font-size: clamp(28px, 6.5vw, 48px) !important; /* 最小値を28pxに、最大値を48pxに調整（6.5vwでより小さく） */
    padding: 16px 24px !important; /* paddingも少し縮小 */
    letter-spacing: 0.05em !important; /* 文字間隔も少し詰める */
  }
}

/* === 430px以下（iPhone 16 Pro Maxなど）：さらに縮小 === */
@media (max-width: 430px){
  .main_visual__title {
    font-size: clamp(24px, 5.5vw, 36px) !important; /* iPhone 16 Pro Max用にさらに縮小 */
    padding: 12px 20px !important;
  }
}




/* ======================================
④ section 1: HERO（安定版） 
====================================== */
.hero { 
  display: flex;
  justify-content: center;
  padding-top: 60px;
  width: 100%;
  background: transparent;
  margin: 0 auto 120px;      /* 700pxは過大。下の余白は適正化 */
  /* height:0%; ←削除（親依存の%は危険） */
}

/* ▼ フレーム母艦：横幅に応じて高さが決まる（縦方向に伸縮） */
/* ▼ HERO FRAME（ベース） */
.hero-frame{
  --pad: clamp(20px, 3vw, 40px);
  --safeTopPct: 35;          /* 高さに対する% */
  --ratio: 1206/1005;        /* ≒1.200（横/縦） */

  position: relative;
  width: min(100%, 1200px);
  aspect-ratio: var(--ratio); /* height = width / ratio */
  margin: 0 auto 80px;
  background: transparent;

  display: grid;
  isolation: isolate;
  z-index: 0;
}

/* ▼ SVG（フレームにフィット） */
.hero-frame__svg{
  grid-area: 1 / 1;
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  object-fit: fill;          /* 歪ませたくなければ contain に変更 */
  display: block;
  pointer-events: none;
  z-index: 0;
  transform-origin: 50% 50%;
  transition: transform .25s ease, filter .25s ease;
}
.hero-frame:hover .hero-frame__svg{
  transform: scale(1.015);
  filter: drop-shadow(0 0 12px rgba(126,234,255,.85))
          brightness(1.22) saturate(1.1);
}

/* ▼ コンテンツ（上の安全域 + 固定バッファ） */
.hero-frame__content{
  grid-area: 1 / 1;
  z-index: 1;
  padding-top: calc( (var(--safeTopPct) * 1%) / var(--ratio) + 130px );
  padding-inline: var(--pad);
  padding-bottom: var(--pad);
  min-height: 0;
}

/* =====. section 1-2: HERO title & subtitle（整理） ===== */
/* 重複・負マージン撤廃、見出しブロックだけ整形 */
.hero__title_waku{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin: 0 auto;                  /* 旧：margin:-500px auto; を撤廃 */
  padding: 20px 0;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  background: transparent;         /* 旧：#000 を透明に */
}

/* タイトル */
.hero__title{
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: transparent;
  color: #58E1F3;
  text-align: center;
  margin: 0 0 40px;                /* 旧：50px 100px ... を簡素化 */
  font-size: 15px;                 /* 旧：font: size 15px; → 修正 */
}

/* Hero Title Animation Styles */
.hero__title-animation {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.hero__title-animation__phrase-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  position: relative;
  text-align: center;
}

.hero__title-animation__phrase {
  font-family: inherit;
  font-size: 32px; /* h1のデフォルトサイズ */
  letter-spacing: inherit;
  color: inherit;
  line-height: inherit;
  white-space: pre-wrap;
  display: inline-block;
  min-width: 0;
  margin: 0;
  font-weight: 700; /* h1のデフォルトbold */
}

.hero__title-animation__glyph {
  opacity: 0.9;
}

.hero__title-animation__caret {
  display: inline-block;
  width: 0.6ch;
  height: 1.2em;
  border-bottom: 2px solid #58E1F3;
  animation: heroTitleCaretBlink 1.1s steps(1) infinite;
  transform: translateY(0.18em);
}

@keyframes heroTitleCaretBlink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

/* スクランブル中の文字スタイル */
.hero-title-scramble {
  opacity: 0.9;
}

/* Hero Subtitle Animation Styles */
.hero__subtitle-animation {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-bottom: 0.5em;
}

.hero__subtitle-animation:last-child {
  margin-bottom: 0;
}

.hero__subtitle-animation__phrase-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  position: relative;
  text-align: center;
}

.hero__subtitle-animation__phrase {
  font-family: inherit;
  font-size: 1.2em; /* h3のデフォルトサイズ（親要素の1.2倍） */
  letter-spacing: inherit;
  color: inherit;
  line-height: inherit;
  white-space: pre-wrap;
  display: inline-block;
  min-width: 0;
  margin: 0;
  font-weight: 700; /* h3のデフォルトbold */
}

.hero__subtitle-animation__caret {
  display: inline-block;
  width: 0.6ch;
  height: 1.2em;
  border-bottom: 2px solid #58E1F3;
  animation: heroSubtitleCaretBlink 1.1s steps(1) infinite;
  transform: translateY(0.18em);
}

@keyframes heroSubtitleCaretBlink {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

/* サブタイトル */
.hero__subtitle{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 20px;
  margin-top: 50px; 
  margin-bottom: 50px;               /* 旧：90px はやや過大 */
  color: #58E1F3;
}

/* リード文 */
.about_us__text{
  font-size: 20px;
  color: #58E1F3;
  line-height: 1.8;
  text-align: left;
  max-width: 800px;
  margin: 24px auto 0;
  padding: 30px;
}

/* ====== HERO CTA ボタン
   通常：緑文字＋透明背景
   hover：白文字＋緑背景 (#0F9403) ===== */

/* CTAボタン全体の配置 */
.hero__button {
  display: flex;
  justify-content: center;
  margin-top: 32px;
}

/* ボタン自体のスタイル */
.hero__button a {
  color: #0F9403;
  border: 1px solid #0F9403;
  border-radius: 30px;
  padding: 12px 32px;
  display: inline-block;
  margin-top: 30px;
  font-size: 18px;
  background: transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease, transform 0.2s ease;
}

/* hover（マウスオーバー）時の変化 */
.hero__button a:hover {
  background: #0F9403 !important;
  color: #fff !important;
  transform: translateY(-2px);
}

/* focus時（キーボード操作用） */
.hero__button a:focus-visible {
  outline: 2px solid #0F9403;
  outline-offset: 3px;
}

/* aタグの青文字・下線を完全無効化 */
.hero__button a:link,
.hero__button a:visited {
  color: #0F9403;
  text-decoration: none;
}

/* ================================
   HERO: スクロール出現アニメーション（追加）
   貼る場所：style.css の一番最後
   削除：このコメント開始〜終了まで丸ごと削除でOK
=================================== */

:root{
  /* 必要なら全体で微調整 */
  --reveal-distance: 14px;
  --reveal-duration: 620ms;
  --reveal-ease: cubic-bezier(.2,.8,.2,1);
}

/* 初期状態（非表示） */
.hero__title h1:not(.hero__title-animation__phrase),
.hero__subtitle h3,
.about_us__text p {
  opacity: 0;
  transform: translateY(var(--reveal-distance));
  transition:
    opacity var(--reveal-duration) var(--reveal-ease) var(--reveal-delay, 0ms),
    transform var(--reveal-duration) var(--reveal-ease) var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}

/* 表示状態（IOで .is-inview を付与） */
.hero__title h1.is-inview:not(.hero__title-animation__phrase),
.hero__subtitle h3.is-inview,
.about_us__text p.is-inview {
  opacity: 1;
  transform: translateY(0);
}

/* 低速端末向け：モーション最小化設定の人はアニメを無効化 */
@media (prefers-reduced-motion: reduce) {
  .hero__title h1:not(.hero__title-animation__phrase),
  .hero__subtitle h3,
  .about_us__text p {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* === ここまで：HERO 出現アニメーション === */

/* === PC/SP 枠SVGの自動切替 === */
/* デフォルト：PC用SVGを表示、SP用は非表示 */
.hero-frame__svg--sp-top,
.hero-frame__svg--sp-bottom {
  display: none;
}

@media (max-width: 1200px){
  .hero-frame{
    --pad: clamp(20px, 3vw, 40px);
    --safeTopPct: 0;  /*1200px以下で30に設定*/
  }
}

/* ====== 1100px以下：ボタンが食いそうなら“ここで”縦を深く ====== */
@media (max-width: 1200px){
  .hero-frame{
    --ratio: 1.08;    /* 1.200 → 1.08（＝高さを少し増やす） */
    --safeTopPct: 0; /* 上の安全域も1〜3ptだけ増量の目安 */
  }
}

/* === 900px以下：さらに少しだけ縦を深く === */
@media (max-width: 900px){
  .hero-frame{
    --ratio: 1.00;  /* 正方形寄りで高さ確保 */
    /* safeTopPctは触らない（必要なら+1〜2ptで微調整） */
  }
  .hero-frame__content{
    padding-top: calc( (var(--safeTopPct) * 1%) / var(--ratio) + 110px );
  }
}

/* === 738px以下：SVGを上部・下部に分割してコンテンツに追従 === */
@media (max-width: 738px){
  /* PC用SVGを非表示 */
  .hero-frame__svg--pc {
    display: none !important;
  }
  
  /* SP用SVGを表示 */
  .hero-frame__svg--sp-top,
  .hero-frame__svg--sp-bottom {
    display: block !important;
  }
  
  /* hero-frameの構造を変更：aspect-ratioを解除し、flexboxに */
  .hero-frame {
    display: flex !important;
    flex-direction: column !important;
    aspect-ratio: unset !important;
    min-height: auto !important;
    position: relative;
    --ratio: unset !important; /* aspect-ratioベースの計算を無効化 */
  }
  
  /* 上部SVG：固定位置 */
  .hero-frame__svg--sp-top {
    position: relative;
    width: 100% !important;
    height: auto !important;
    max-width: 100%;
    object-fit: contain;
    z-index: 0;
    grid-area: unset !important;
  }
  
  /* コンテンツエリア：flexible */
  .hero-frame__content {
    position: relative !important;
    flex: 1;
    width: 100%;
    padding-top: 10px !important; /* 上部SVGとの間隔を10pxに */
    padding-bottom: 40px !important;
    z-index: 1;
    grid-area: unset !important;
  }
  
  /* 下部SVG：ボタンの下に配置（コンテンツ内） */
  .hero-frame__svg--sp-bottom {
    position: relative;
    width: 100% !important;
    height: auto !important;
    max-width: 100%;
    object-fit: contain;
    z-index: 0;
    grid-area: unset !important;
    margin-top: 20px; /* ボタンとの間隔 */
    display: block;
  }
  
  /* ホバー効果は上部SVGのみに適用 */
  .hero-frame:hover .hero-frame__svg--sp-top {
    transform: scale(1.015);
    filter: drop-shadow(0 0 12px rgba(126,234,255,.85))
            brightness(1.22) saturate(1.1);
  }
  
  /* より小さい画面サイズでの調整 */
  .hero__title { margin: 0 0 24px !important; }
  .hero__subtitle { margin-top: 16px !important; margin-bottom: 20px !important; }
  .about_us__text { margin: 12px auto 0 !important; padding: 12px !important; }
  .hero__button { margin-top: 14px !important; }
  .hero__button a { padding: 8px 18px !important; }
}

/* === 645px以下：738px以下のスタイルを継承しつつ微調整 === */
@media (max-width: 645px){
  .hero-frame__content {
    padding-top: 5px !important; /* 上部SVGとの間隔を5pxに */
    padding-bottom: 30px !important;
  }
  /* hero__title_wakuのpadding-topを減らして、合計で10〜15pxのスペースに */
  .hero__title_waku {
    padding-top: 10px !important;
    padding-bottom: 20px;
  }
  .hero__title { margin: 0 0 20px !important; }
  .hero__subtitle { margin-top: 12px !important; margin-bottom: 14px !important; }
  .about_us__text { padding: 10px !important; margin-top: 4px !important; }
  .hero__button { margin-top: 10px !important; }
  .hero__button a { font-size: clamp(12.5px, 3vw, 15px) !important; padding: 7px 16px !important; }
}

/* === 597px以下：さらに微調整 === */
@media (max-width: 597px){
  .hero-frame__content {
    padding-top: 5px !important; /* 上部SVGとの間隔を5pxに */
    padding-bottom: 25px !important;
  }
  /* hero__title_wakuのpadding-topを減らして、合計で10〜15pxのスペースに */
  .hero__title_waku {
    padding-top: 10px !important;
    padding-bottom: 20px;
  }
  .hero__title { margin: 0 0 18px !important; }
  .hero__subtitle { margin-top: 10px !important; margin-bottom: 12px !important; }
  .about_us__text { padding: 8px !important; margin-top: 2px !important; }
  .hero__button { margin-top: 10px !important; }
  .hero__button a { font-size: clamp(12px, 3.2vw, 14.5px) !important; padding: 7px 15px !important; }
}

/* === 800px以下：縦をさらに深くしてボタン収納＋h1上部スペース確保 === */
@media (max-width: 800px){
  .hero-frame{
    --ratio: 0.88;  /* 0.90→0.88：高さをもう少し増やす */
  }
  .hero-frame__content{
    /* 上部余白を+20px増量してh1が上に付きすぎないように */
    padding-top: calc( (var(--safeTopPct) * 1%) / var(--ratio) + 120px );
  }
  /* 余白の最適化（要素間の詰め） */
  .hero__title{ margin: 0 0 24px; }
  .hero__subtitle{ margin-top: 16px; margin-bottom: 20px; }
  .about_us__text{ margin: 12px auto 0; padding: 12px; }
  .hero__button{ margin-top: 14px; }
  .hero__button a{ padding: 8px 18px; }
}

/* === 645px以下：さらなる縦伸ばし＋コンテンツ間隔圧縮でボタンはみ出し防止 === */
@media (max-width: 645px){
  .hero-frame{
    --ratio: 0.86;  /* 800px:0.88 → 645px:0.86（縦を少し深く） */
  }
  .hero-frame__content{
    padding-top: calc( (var(--safeTopPct) * 1%) / var(--ratio) + 110px );
  }
  .hero__title{ margin: 0 0 20px; }
  .hero__subtitle{ margin-top: 12px; margin-bottom: 14px; }
  .about_us__text{ padding: 10px; margin-top: 4px; }
  .hero__button{ margin-top: 10px; }
  .hero__button a{ font-size: clamp(12.5px, 3vw, 15px); padding: 7px 16px; }
}

/* === 597px以下：さらにわずかに縦伸ばし＋要素間隔を微調整 === */
@media (max-width: 597px){
  .hero-frame{
    --ratio: 0.84;  /* 645px:0.86 → 597px:0.84 */
  }
  .hero-frame__content{
    padding-top: calc( (var(--safeTopPct) * 1%) / var(--ratio) + 105px );
  }
  .hero__title{ margin: 0 0 18px; }
  .hero__subtitle{ margin-top: 10px; margin-bottom: 12px; }
  .about_us__text{ padding: 8px; margin-top: 2px; }
  .hero__button{ margin-top: 10px; }
  .hero__button a{ font-size: clamp(12px, 3.2vw, 14.5px); padding: 7px 15px; }
}

/* === HERO: 最終上書き（順序に依存しないよう!importantで固定） === */
@media (max-width: 645px){
  .hero-frame{ --ratio: 0.85 !important; }
  .hero-frame__content{ padding-top: calc( (var(--safeTopPct) * 1%) / var(--ratio) + 120px ) !important; }
  .hero__title{ margin: 0 0 18px !important; }
  .hero__subtitle{ margin-top: 10px !important; margin-bottom: 12px !important; }
  .about_us__text{ padding: 10px !important; margin-top: 4px !important; }
  .hero__button{ margin-top: 10px !important; }
  .hero__button a{ padding: 7px 16px !important; }
}

@media (max-width: 597px){
  .hero-frame{ --ratio: 0.83 !important; }
  .hero-frame__content{ padding-top: calc( (var(--safeTopPct) * 1%) / var(--ratio) + 125px ) !important; }
  .hero__title{ margin: 0 0 16px !important; }
  .hero__subtitle{ margin-top: 8px !important; margin-bottom: 10px !important; }
  .about_us__text{ padding: 8px !important; margin-top: 2px !important; }
  .hero__button{ margin-top: 10px !important; }
  .hero__button a{ padding: 6px 14px !important; font-size: clamp(12px, 3.2vw, 14px) !important; }
}

/* ===== HERO タイポグラフィの段階的スケール（1000px以下〜600px） ===== */
@media (max-width: 1000px){
  .hero__title h1,
  .hero__title-animation__phrase{ 
    font-size: clamp(18px, 2.6vw, 28px) !important; 
    font-weight: 700;
  }
  .hero__subtitle h3,
  .hero__subtitle-animation__phrase{ 
    font-size: clamp(16px, 2.2vw, 22px); 
    font-weight: 700;
  }
  .about_us__text{ font-size: clamp(14px, 1.9vw, 18px); padding: 24px; }
  .hero__button a{ font-size: clamp(14px, 1.8vw, 18px); padding: 10px 28px; }
}

@media (max-width: 800px){
  .hero__title h1,
  .hero__title-animation__phrase{ 
    font-size: clamp(17px, 3.2vw, 24px) !important; 
    font-weight: 700;
  }
  .hero__subtitle h3,
  .hero__subtitle-animation__phrase{ 
    font-size: clamp(15px, 2.7vw, 20px); 
    font-weight: 700;
    margin-top: 24px; 
    margin-bottom: 24px; 
  }
  .about_us__text{ font-size: clamp(13px, 2.3vw, 16px); padding: 16px; margin-top: 0; }
  .hero__button{ margin-top: 20px; }
  .hero__button a{ font-size: clamp(13px, 2.2vw, 16px); padding: 8px 20px; margin-top: 0; }
}

@media (max-width: 600px){
  .hero-frame{
    --ratio: 0.78;  /* 600px以下で縦をもう少し深く（高さを微増） */
  }
  .hero-frame__content{
    padding-top: calc( (var(--safeTopPct) * 1%) / var(--ratio) + 95px );
  }
  .hero__title h1,
  .hero__title-animation__phrase{ 
    font-size: clamp(16px, 4vw, 20px) !important; 
    font-weight: 700;
  }
  .hero__subtitle h3,
  .hero__subtitle-animation__phrase{ 
    font-size: clamp(14px, 3.6vw, 18px); 
    font-weight: 700;
    margin-top: 14px; 
    margin-bottom: 16px; 
  }
  .about_us__text{ font-size: clamp(12px, 3.2vw, 15px); padding: 10px; margin-top: 0; }
  .hero__button{ margin-top: 12px; }
  .hero__button a{ font-size: clamp(12px, 3.4vw, 15px); padding: 7px 16px; margin-top: 0; }
}



/* ========================================
⑤-1 section 2: WORK RESULTS
======================================== */
.work_results {
    margin: 0 auto;
}

/*.work_results__bar:hover .work_results_bar__svg{
    transform: scale(1.015);               ほんの少しだけ大きく
    filter: drop-shadow(0 0 12px rgba(126,234,255,.85))
            brightness(1.22) saturate(1.1); 光ってる感じ
}*/

.work_results-header {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    margin: 10px auto 50px;
    color: #0F9403;
    text-align: center;
    font-weight: bold;
}

/* ▼ 制作実績の装飾バーをheroと揃える構造 */
.work_results__bar {
  position: relative;
  width: min(100%, 1200px); /* ← 1200pxに拡大して余裕を確保 */
  margin: 20px auto !important; /* 上下マージンを確保（潰れ防止） */
  min-height: 60px; /* 最小高さを確保 */
  aspect-ratio: 6 / 1;      /* 形状に合わせて調整（横長なら 6:1～8:1） */
  background: transparent;
  overflow: visible;          /* visibleにして見切れ防止 */
  z-index: 1; /* コンテンツの上に表示 */
}

/* top bar（最初のバー）の下マージン */
.work_results__bar:first-of-type {
  margin-top: 0 !important;
  margin-bottom: 50px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* bottom bar（最後のバー）の上マージン */
.work_results__bar:last-of-type {
  margin-top: 20px !important;
  margin-bottom: 0 !important;
}

/* work_results-waku のスタイル（間隔調整） */
.work_results-waku {
  margin: 0;
  padding: 0;
}

/* 最初のwork_results-waku（Happy Mondaysの上）のマージン調整 */
.work_results__bar:first-of-type + .work_results-waku {
  margin-top: 0;
}

/* SVG画像を枠内に完全フィット（潰れ防止強化） */
.work_results_bar__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 60px; /* 最小高さを確保 */
  object-fit: contain; /* アスペクト比を保持して収める */
  pointer-events: none;
  transition: transform .25s ease, filter .25s ease;
  display: block; /* 確実に表示 */
}

/* work_results_top_bar__svg のスタイル */
.work_results_top_bar__svg {
  max-width: 1000px;
  width: 100%;
  height: auto;
  margin: 0 auto;
  display: block;
}

.work_results__items__wrapper2 {
    display: flex;
    justify-content: center;
    align-items: flex-start;     /* 上端揃えに変更 */
    margin: 20px auto;           /* 上下余白を確保（潰れ防止：負のマージンを削除） */
    padding: 35px 0;             /* 内側余白 */
    max-width: 1200px;
    width: 100%;             /* 横幅調整（必要に応じて変更） */
    height: auto;
    box-sizing: border-box;
    position: relative;
    background: #000;
    gap: 20px;
}

/* 900px以下：画像とテキストを縦並びに */
@media (max-width: 900px){
  .work_results__items__wrapper2{
    flex-direction: column;
    align-items: center;
  }
}

.work_results__image1 {
    width: 450px;
    height: auto;
    margin: 0 50px;
}

.work_results__image1:hover {
    transform: scale(1.015);               /* ほんの少しだけ大きく */
    filter: drop-shadow(0 0 12px rgba(126,234,255,.85))
            brightness(1.22) saturate(1.1); /* 光ってる感じ */
}

.work_results__image2 {
    width: 450px;
    height: auto;
    margin: 0 50px;
}

.work_results__image2:hover {
    transform: scale(1.015);               /* ほんの少しだけ大きく */
    filter: drop-shadow(0 0 12px rgba(126,234,255,.85))
            brightness(1.22) saturate(1.1); /* 光ってる感じ */
}

.work_results__image3 {
    width: 450px;
    height: auto;
    margin: 0 50px;
}

.work_results__image3:hover {
    transform: scale(1.015);               /* ほんの少しだけ大きく */
    filter: drop-shadow(0 0 12px rgba(126,234,255,.85))
            brightness(1.22) saturate(1.1); /* 光ってる感じ */
}

.work_results__image5 {
    width: 450px;
    height: auto;
    margin: 0 50px;
}

.work_results__image5:hover {
    transform: scale(1.015);               /* ほんの少しだけ大きく */
    filter: drop-shadow(0 0 12px rgba(126,234,255,.85))
            brightness(1.22) saturate(1.1); /* 光ってる感じ */
}

.work_results_title {
    display: flex;
    justify-self: start;
    align-items: center;
    margin-top: 0;              /* 上マージンを削除して画像と揃える */
    color: #0F9403;
    text-align: center;
    font-size: 24px;
    font-weight: bold;
    margin: 0px 0 50px 0;
    transition: color 0.3s ease, transform 0.3s ease;
}

.work_results__text {
    color: #0F9403;
    text-align: left;
    max-width: 450px;
    line-height: 1.8;
    margin-top: 20px;
    transition: color 0.3s ease, transform 0.3s ease;
}

/* Work Results hover effect (price pageと同じ効果) */
.work_results-waku:hover .work_results_title,
.work_results-waku:hover .work_results__text,
.work_results__items__wrapper2:hover .work_results_title,
.work_results__items__wrapper2:hover .work_results__text {
    color: #58E1F3;
    transform: scale(1.03);
}

@media (max-width: 680px){
  .work_results__bar {
    margin: 5px auto !important;
  }
}

/* =========================================================
   WORK RESULTS: スクロール出現アニメーション（追加ブロック）
   貼る場所：style.css の一番最後
   削除方法：このブロック丸ごと削除でOK
========================================================= */

/* 共有トークン（HEROと同値でOK／上書きも可） */
:root{
  --wr-reveal-distance: 14px;
  --wr-reveal-duration: 620ms;
  --wr-reveal-ease: cubic-bezier(.2,.8,.2,1);
}

/* 初期状態：画像・見出し・本文 */
.work_results__image1,
.work_results__image2,
.work_results__image3,
.work_results__image5,
.work_results__text__waku2 h3,
.work_results__text__waku2 p {
  opacity: 0;
  transform: translateY(var(--wr-reveal-distance));
  transition:
    opacity var(--wr-reveal-duration) var(--wr-reveal-ease) var(--wr-reveal-delay, 0ms),
    transform var(--wr-reveal-duration) var(--wr-reveal-ease) var(--wr-reveal-delay, 0ms);
  will-change: opacity, transform;
}

/* 画像はほんの少しスケールアップで"立ち上がり感" */
.work_results__image1,
.work_results__image2,
.work_results__image3,
.work_results__image5 {
  transform: translateY(var(--wr-reveal-distance)) scale(.98);
}

/* 表示時（IOで .is-inview が付与される） */
.work_results__image1.is-inview,
.work_results__image2.is-inview,
.work_results__image3.is-inview,
.work_results__image5.is-inview,
.work_results__text__waku2 h3.is-inview,
.work_results__text__waku2 p.is-inview {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* 低モーション指定のユーザー配慮 */
@media (prefers-reduced-motion: reduce) {
  .work_results__image1,
  .work_results__image2,
  .work_results__image3,
  .work_results__image5,
  .work_results__text__waku2 h3,
  .work_results__text__waku2 p {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* === ここまで：WORK RESULTS 出現アニメーション === */


/* ========================================
⑤-1 section 2: SEE MORE ボタン（ラッパー + a 版／決定稿）
======================================== */

/* ラッパーは中央寄せだけ。枠は付けない */
.see-more__button{
  display:flex;
  justify-content:center;
  margin:20px auto 100px;
  padding:0;
  background:none;
  border:0;
  width:auto;               /* ← 22%は一旦やめる（必要なら後述） */
}

/* 実体は a。ここにだけ枠・余白・色を付ける */
.see-more__button > a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:12px 32px;
  font-size:18px;
  color:#0F9403;
  border:2px solid #0F9403;
  border-radius:32px;
  background:transparent;
  text-decoration:none;
  cursor:pointer;
  transition: background .3s ease, color .3s ease, transform .2s ease;
  box-sizing:border-box;
  writing-mode: horizontal-tb !important;   /* ← 縦書き対策 */
}

/* hover / focus */
.see-more__button > a:hover{
  background:#0F9403;
  color:#fff !important;
  transform:translateY(-2px);
}
.see-more__button > a:focus-visible{
  outline:2px solid #0F9403;
  outline-offset:3px;
}

/* 既定の青＆下線を完全OFF */
.see-more__button > a:link,
.see-more__button > a:visited{
  color:#0F9403;
  text-decoration:none;
}

/* 万一、どこかの縦書きが継承されていたら確実に潰す */
.see-more__button,
.see-more__button *{
  writing-mode: horizontal-tb !important;
}




/* ===========================================
⑥ seciton 3 : PRICE LIST
============================================ */
.price_list {
    margin: 100px auto 0;

}

.price_list__title h2 {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    margin-top: 100px;
    color: #0F9403;
    text-align: center;
    font-weight: bold;
}

.price_list__items__wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: -2px auto;           /* 上下余白と中央寄せ */
    padding: 0;             /* 内側余白 */
    max-width: 1000px;
    width: min(83.333%, 1000px); /* 親1200pxに対して1000pxの相関を維持 */
    height: auto;
    box-sizing: border-box;
    position: relative;
    background: #000;
}

.price_list__title h2 {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    margin-top: 100px;
    color: #0F9403;
    text-align: center;
    font-weight: bold;
    margin-bottom: 0;
    z-index: 2;;
}

.price_list {
    display: flex;
    flex-direction: column;
    align-items: center; /* 子要素を中央寄せ */
    margin: 20px auto clamp(80px, 10vw, 160px);           /* 下余白を可変化 */
    padding: 0;             /* 内側余白 */
    width: 100%;
    max-width: 1200px;             /* 横幅調整（必要に応じて変更） */
    height: auto;           /* 固定高さを解除して自然な流れに */
    box-sizing: border-box;
    position: relative;
    background: #000;

}

.price_list__items__wrapper img{
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
}

/*.price_list__line_img:hover {
    transform: scale(1.015);               /* ほんの少しだけ大きく
    filter: drop-shadow(0 0 12px rgba(126,234,255,.85))
            brightness(1.22) saturate(1.1); /* 光ってる感じ
}*/

/* Price List ボタン（heroボタンと同じスタイル） */
.price_list__button {
  display: flex;
  justify-content: center;
  margin-top: 32px;
  margin-bottom: 40px;
}

.price_list__button a {
  color: #0F9403;
  border: 1px solid #0F9403;
  border-radius: 30px;
  padding: 12px 32px;
  display: inline-block;
  font-size: 18px;
  background: transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease, transform 0.2s ease;
}

.price_list__button a:hover {
  background: #0F9403 !important;
  color: #fff !important;
  transform: translateY(-2px);
}

.price_list__button a:focus-visible {
  outline: 2px solid #0F9403;
  outline-offset: 3px;
}

.price_list__button a:link,
.price_list__button a:visited {
  color: #0F9403;
  text-decoration: none;
}


/* ========================================
⑦ Contact Form       
======================================== */
/* お問い合わせフォーム全体 */
.contact-form {
    max-width: 1000px;
    width: 100%;
    margin: 60px auto 100px;
    background: black;
    color: #ffffff;
    font-family: 'Noto Sans JP', 'M PLUS 1p', sans-serif;
}

/* フォームタイトル */
.contact-form h2 {
    text-align: center;
    color: #0F9403;
    margin-bottom: 40px;
    font-size: 24px;
    font-weight: bold;
}

/* ラベル */
.contact-form label {
    display: block;
    margin-bottom: 8px;
    margin-top: 32px;
    color: #0F9403;
    font-size: 20px;
    font-weight: bold;
}

/* 入力欄ラッパー */
.inquiry-input-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    margin-bottom: 24px;
    height: 56px; /* input用の高さ */
}

/*existing code*/
.inquiry-textarea-wrapper {
    position: relative;
    display: flex;
    align-items: flex-start;   /* textarea の上端を揃える */
    width: 100%;               /* .contact-form に合わせて幅を親にフィット */
    margin: 0 auto 24px auto;
    padding: 0;
    box-sizing: border-box;
}

/* テキストエリア本体 */
.inquiry-textarea-wrapper textarea {
    width: 100%;
    min-height: 600px;         /* 初期高さ（後で調整可） */
    max-width: 100%;
    padding: 16px 24px;
    border: 1.5px solid #6eeaff; /* inquiry-input-wrapper と同じ見た目 */
    background: #000;
    color: #fff;
    font-size: 18px;
    line-height: 1.6;
    resize: vertical;          /* ユーザーが右下で縦方向に調節可能 */
    outline: none;
    box-sizing: border-box;
}
/* ...existing code... */

/* ...existing code... */

/* 入力欄を常に黒背景・白文字に固定（オートフィル・フォーカス含む） */
.inquiry-input-wrapper input,
.inquiry-input-wrapper textarea,
.contact-form input,
.contact-form textarea {
  background: #000 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important; /* Chrome 用（オートフィル対策） */
  caret-color: #0F9403;                      /* カーソル色（任意） */
  -webkit-appearance: none;
  appearance: none;
  box-shadow: none;
}

/* フォーカス時も変えない */
.inquiry-input-wrapper input:focus,
.inquiry-input-wrapper textarea:focus,
.contact-form input:focus,
.contact-form textarea:focus {
  background: #000 !important;
  color: #fff !important;
  border-color: #0F9403;
  outline: none;
}

/* Chrome のオートフィル時の背景を強制上書き */
input:-webkit-autofill,
textarea:-webkit-autofill,
input:-internal-autofill-selected {
  -webkit-box-shadow: 0 0 0px 1000px #000 inset !important;
  box-shadow: 0 0 0px 1000px #000 inset !important;
  -webkit-text-fill-color: #fff !important;
  transition: background-color 5000s ease-in-out 0s;
}

/* 入力欄（input, textarea） */
.inquiry-input-wrapper input,
.inquiry-input-wrapper textarea {
    width: 100%;
    padding: 16px 24px;
    border: 1.5px solid #6eeaff;
    background: #000;
    color: #fff;
    font-size: 18px;
    border-radius: 0;
    outline: none;
    z-index: 1;
    position: relative;
    box-sizing: border-box;
    transition: border-color 0.2s;
}

/* フォーカス時の枠色 */
.inquiry-input-wrapper input:focus,
.inquiry-input-wrapper textarea:focus {
    border-color: #0F9403;
}

/* 送信ボタン */
.contact-form button[type="submit"] {
    display: block;
    margin: 40px auto 0 auto;
    padding: 12px 48px;
    font-size: 18px;
    color: #0F9403;
    background: transparent;
    border: 2px solid #0F9403;
    border-radius: 32px;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
}

.contact-form button[type="submit"]:hover {
    background: #0F9403;
    color: #fff;
}

/* ===== Contact Form Responsive ===== */
@media (max-width: 1200px){
  .contact-form{ max-width: 900px; }
}

@media (max-width: 1024px){
  .contact-form{ max-width: 820px; }
}

@media (max-width: 900px){
  .contact-form{ max-width: 760px; margin: 50px auto 90px; }
  .contact-form label{ font-size: 18px; }
  .inquiry-input-wrapper input,
  .inquiry-input-wrapper textarea{ font-size: 16px; }
  .inquiry-textarea-wrapper textarea{ min-height: 500px; }
}

@media (max-width: 768px){
  .contact-form{ max-width: min(92vw, 640px); padding: 0 12px; margin: 48px auto 80px; }
  .contact-form h2{ font-size: 22px; margin-bottom: 32px; }
  .contact-form label{ font-size: 17px; }
  .inquiry-input-wrapper{ height: 54px; }
  .inquiry-input-wrapper input{ padding: 14px 16px; font-size: 16px; }
  .inquiry-textarea-wrapper textarea{ min-height: 420px; padding: 14px 16px; font-size: 16px; }
  .contact-form button[type="submit"]{ padding: 10px 40px; font-size: 16px; }
}

@media (max-width: 600px){
  .contact-form{ max-width: min(94vw, 520px); padding: 0 10px; margin: 40px auto 70px; }
  .contact-form h2{ font-size: 20px; }
  .contact-form label{ font-size: 16px; }
  .inquiry-input-wrapper{ height: 52px; }
  .inquiry-input-wrapper input{ padding: 12px 14px; font-size: 16px; }
  .inquiry-textarea-wrapper textarea{ min-height: 360px; padding: 12px 14px; font-size: 16px; }
  .contact-form button[type="submit"]{ padding: 10px 32px; font-size: 15px; }
}

@media (max-width: 480px){
  .contact-form{ max-width: 94vw; padding: 0 8px; margin: 36px auto 64px; }
  .contact-form h2{ font-size: 19px; }
  .inquiry-input-wrapper{ height: 50px; }
  .inquiry-textarea-wrapper textarea{ min-height: 320px; }
  .contact-form button[type="submit"]{ width: 100%; max-width: 420px; }
}

@media (max-width: 375px){
  .contact-form{ max-width: 94vw; padding: 0 6px; margin: 32px auto 60px; }
  .contact-form h2{ font-size: 18px; }
  .contact-form label{ font-size: 15px; }
  .inquiry-input-wrapper{ height: 48px; }
  .inquiry-input-wrapper input{ padding: 11px 12px; font-size: 16px; } /* iOSズーム回避 */
  .inquiry-textarea-wrapper textarea{ min-height: 300px; padding: 11px 12px; font-size: 16px; }
  .contact-form button[type="submit"]{ padding: 10px 24px; font-size: 15px; }
}


/* ================================= 
⑧-1 Footer  
================================= */

/* ================================= 
⑧-2 Footer Back to Top Button
================================= */
/* さらに境界を強調したいなら border も併用 */
.footer-backtotop{
  display:block; width:100%;
  background:#242424; /* ベース濃いグレー */
  border:0;
  border-top:1px solid rgba(255,255,255,.08); /* 境界線うっすら */
  padding:12px 0;
  cursor:pointer; text-align:center;
  transition: background .25s ease, filter .25s ease;
  margin: 0;               /* ← Safariで稀に余白出る対策 */
  box-sizing: border-box;  /* ← 横幅100%時の安全策 */
}

.footer-backtotop:hover{
  background:#3c3c3c;           /* hoverで明るく */
  filter: brightness(1.03);     /* ほんのり持ち上げ */
}

.footer-backtotop__icon{
  width:22px; 
  height:auto;
  opacity:.85; 
  transition:opacity .25s, transform .25s, filter .25s;
}

.footer-backtotop:hover .footer-backtotop__icon{
  opacity:1; 
  transform:translateY(-3px);
}

/* お好みで：キーボード操作の見やすさ */
.footer-backtotop:focus-visible{
  outline:2px solid #0F9403; 
  outline-offset:-2px;
}

/* アクセント色 */
:root{ --accent: #0F9403; --line: rgba(255,255,255,.14); --muted:#a7c3b2; }


/* ================================= 
⑧-3 Footer BLOG（統一版：これだけ残せばOK）
HTML: <section class="footer__section">…<div class="footer__block footer__block--blogs">… 
================================= */

:root{ --accent:#0F9403; --line:rgba(255,255,255,.14); --muted:#a7c3b2; }

.footer__section {
    max-width: none;
    width: 100%;
    margin: 0 auto;
}

/* h3はSEO用で視覚非表示（BLOG見出しテキスト） */
.footer__section .footer__block--blogs #footerBlogsTitle,
.footer__section .footer__block--blogs .visually-hidden{
  position:absolute !important; 
  width:1px; height:1px; 
  overflow:hidden;
  clip:rect(1px,1px,1px,1px); 
  clip-path:inset(50%); 
  white-space:nowrap;
}

/* セクション余白＆中央基準 */
.footer__section .footer__block--blogs{
  padding:36px 0 22px;
  display:flex; 
  flex-direction:column; 
  align-items:center; 
  justify-content:center;
}

/* 中央寄せラッパー（見出しアイコン～カード～ボタン） */
.footer__section .footer__block--blogs .blogs__container{
  width:100%; 
  max-width:1200px; 
  margin:0 auto; 
  padding:0 24px;
  display:flex; 
  flex-direction:column; 
  align-items:center; 
  text-align:center;
}

/* BLOGアイコン（センター） */
.footer__section .footer__block--blogs .blogs_image__waku{
  display:flex; 
  justify-content:center; 
  margin: 50px 0 50px;
}
.footer__section .footer__block--blogs .blogs_image__icon{
  width:150px; 
  height:auto; 
  opacity:.9;
}

/* --------- カードレーン（ベース：SPは横スクロール） --------- */
.footer__section .footer__block--blogs .blogs__wrapper{ width:100%; }

.footer__section .footer__block--blogs .blogs__track{
  display:flex; 
  gap:24px; 
  align-items:stretch;
  overflow-x:auto; 
  padding:0 4px 10px; 
  box-sizing:border-box;
  scrollbar-width:none;  
  -ms-overflow-style:none;  
  overscroll-behavior-x:contain; 
  margin:0 auto;
  scroll-snap-type:x mandatory; 
  -webkit-overflow-scrolling:touch;
  /* Chrome / Safari のスクロールバー非表示 */

}

/* カード（画像→タイトル→日付） */
.footer__section .footer__block--blogs .blogs__card{
  box-sizing:border-box;
  flex:0 0 320px; 
  max-width:320px;         /* PC想定の基準幅 */
  display:flex; 
  flex-direction:column;
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:14px; 
  overflow:hidden; 
  text-decoration:none;
  scroll-snap-align:start;
}
.footer__section .footer__block--blogs .blogs__thumb{
  display:block; 
  width:100%; 
  aspect-ratio:16/9; 
  object-fit:cover;
}
.footer__section .footer__block--blogs .blogs__meta{
  padding:12px 14px 14px; 
  text-align:left; 
  writing-mode:horizontal-tb !important;
}
.footer__section .footer__block--blogs .blogs__title{
  display:block; 
  margin:0 0 6px; 
  color:var(--accent);
  font-weight:600; 
  line-height:1.35; 
  word-break:break-word; 
  overflow-wrap:anywhere;
}
.footer__section .footer__block--blogs .blogs__date{
  display:block; 
  color:var(--muted); 
  font-size:.85rem;
}

/* ドット（中央） */
.footer__section .footer__block--blogs .blogs__dots{
  display:flex; 
  gap:8px; 
  justify-content:center; 
  padding:10px 0 6px;
}
.footer__section .footer__block--blogs .blogs__dot{
  width:8px; 
  height:8px; 
  border-radius:50%; 
  background:rgba(255,255,255,.35);
}
.footer__section .footer__block--blogs .blogs__dot.is-active{ 
    background:var(--accent); 
}

.footer__section .footer__block--blogs .blogs__track::-webkit-scrollbar {
  display: none;
}


/* ========================================
⑧-4ブログ一覧ボタン（統一 hover スタイル）
======================================== */
.footer__section .footer__block--blogs .blogs__actions {
  display: flex;
  justify-content: center;
  margin-top: 50px;
}

.footer__section .footer__block--blogs .blogs__allbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 12px 32px;
  border: 2px solid #0F9403;
  color: #0F9403;
  background: transparent;
  border-radius: 32px;
  font-size: 18px;
  text-decoration: none;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease, transform 0.2s ease;
}

/* hover/focus */
.footer__section .footer__block--blogs .blogs__allbtn:hover,
.footer__section .footer__block--blogs .blogs__allbtn:focus-visible {
  background: #0F9403;
  color: #fff !important;
  transform: translateY(-2px);
  text-decoration: none;
}


/* --------- SP（～640px）：1枚ずつ見せる --------- */
@media (max-width:640px){
  .footer__section .footer__block--blogs .blogs__card{ 
    flex-basis:80vw; 
    max-width:80vw; }
}

/* --------- PC（900px～）：横3枚を“中央に固める” --------- */
@media (min-width:900px){
  /* 横スクロールを解除し、中央寄せフレックスに変更 */
  .footer__section .footer__block--blogs .blogs__track{
    display:flex; 
    justify-content:center; 
    align-items:stretch;
    gap:40px; 
    scroll-snap-type:none;
    max-width:1200px; 
    margin:0 auto; 
    padding:0;
    overflow: visible;     /* 横スクロール不要 */
  }

  /* PCではカード幅を320pxに固定（均等に3枚） */
  .footer__section .footer__block--blogs .blogs__card{
    flex:0 0 320px; max-width:320px;
  }
}

/* ---------- 1105px以下：カード幅をやや縮小（3枚がより収まりやすく） ---------- */
@media (max-width:1105px){
  .footer__section .footer__block--blogs .blogs__track{ gap:32px; }
  @media (min-width:900px){
    .footer__section .footer__block--blogs .blogs__card{ flex:0 0 300px; max-width:300px; }
  }
}

/* ---------- 900px以下：縦積み（column）に切替、横スクロール解除 ---------- */
@media (max-width:900px){
  .footer__section .footer__block--blogs .blogs__track{
    display:flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;
    overflow: visible;
    scroll-snap-type: none;
    padding: 0;
  }
  .footer__section .footer__block--blogs .blogs__card{
    flex: 0 1 auto;
    width: min(92vw, 560px);
    max-width: 560px;
  }
}

/* （任意）リンク色の継承停止：タイトルが青くなる事故対策 */
.footer__section .footer__block--blogs .blogs__card,
.footer__section .footer__block--blogs .blogs__card:link,
.footer__section .footer__block--blogs .blogs__card:visited{
  color:#e8e8e8; 
  text-decoration:none;
}

.footer__section .footer__block--blogs .blogs__card .blogs__title{ 
    color:var(--accent) !important; 
}
.footer__section .footer__block--blogs .blogs__card .blogs__date{ 
    color:var(--muted) !important; 
}

/* Footer BLOG：PCでは強制的に3件だけ表示 */
@media (min-width:900px){
  #blogsTrack .blogs__card:nth-child(n+4){ display:none; }
}



/* ===================================
⑧-5 footer logos Forge-Lab logo & SNS 
====================================*/
.footer__block {
    margin: 50px auto 50px;
    padding: 40px 0 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 60px;
}

.footer__logo {
    max-width: 200px;
    width: 100%;
    height: auto;
    opacity: 0.9;
}

.footer__branding img {
    width: 150px;
    height: auto;
    opacity: 0.9;
    margin: 0 auto;
}

.footer__sns img {
    margin: 0 5px 0 5px;
    width: 23px;
    height: auto;
    opacity: 0.9;
}

.footer__brandingsns {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 50px;
    margin-top: 10px;
}

/* SNSリンク全般：下線削除＋クリック範囲を画像全体に */
.footer__block--branding .footer__sns a,
.footer__block--branding .footer__sns a:link,
.footer__block--branding .footer__sns a:visited {
  text-decoration: none;
  outline: none;
}



/* ================================
⑧-6 Footer Copy (© Forge Laboratory)
================================ */
.footer__copy {
  width: 100%;
  height: auto;
  text-align: center;
  color: #0F9403;            /* ← お好みで。アクセント緑でもOK */
  font-size: 0.85rem;
  letter-spacing: 0.03em;
  padding: 20px 0 20px;      /* 上下バランス調整 */
  opacity: 0.8;
  background-color: #2b2a2a;
}

/* hoverなど余計な下線消し */
.footer__copy a {
  color: inherit;
  text-decoration: none;
}
.footer__copy a:hover {
  text-decoration: underline;
}




/* ================================= 
⑨ Language FAB(言語切り替えボタン)
================================= */
:root{
  --fab-bg: rgba(24,24,24,.8);
  --fab-text: #fff;
  --fab-border: rgba(255,255,255,.18);
  --fab-shadow: 0 8px 30px rgba(0,0,0,.35);
  --fab-accent: #0F9403; /* ブランドのネオングリーン */
  --fab-safe: env(safe-area-inset-bottom, 0px);
}

.lang-fab{
  position: fixed;
  right: clamp(12px, 2vw, 24px);
  bottom: calc(clamp(12px, 2vw, 24px) + var(--fab-safe));
  z-index: 9999;
  pointer-events: auto;
}

.lang-fab__btn{
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .7rem .9rem;
  min-height: 44px; /* タップ領域 */
  background: var(--fab-bg);
  color: #0F9403;
  border: 1px solid #0F9403;
  text-shadow: 0 0 6px #0F9403;
  box-shadow: 0 0 12px rgba(15,148,3,0.3);
  border-radius: 999px;
  backdrop-filter: blur(6px);
  box-shadow: var(--fab-shadow);
  cursor: pointer;
  transition: transform .15s ease, box-shadow .2s ease, border-color .2s ease;
}
.lang-fab__btn:hover{ border-color: rgba(255,255,255,.35); }
.lang-fab__btn:focus-visible{ outline: 2px solid var(--fab-accent); outline-offset: 2px; }
.lang-fab__flag{
  display:inline-grid; place-items:center;
  width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid var(--fab-border);
  font-size: .75rem; font-weight: 700;
  background:#111;
}
.lang-fab__label{ font-size: .9rem; letter-spacing: .01em; }
.lang-fab__chev{ width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; opacity: .8; }

.lang-fab__menu{
  position: absolute;
  right: 0;
  bottom: calc(100% + 10px);
  min-width: 220px;
  background: rgba(10,10,10,.95);
  border: 1px solid var(--fab-border);
  border-radius: 14px;
  backdrop-filter: blur(6px);
  padding: .4rem;
  box-shadow: var(--fab-shadow);
  list-style: none;
  transform-origin: bottom right;
  transform: scale(.98) translateY(6px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.lang-fab__menu a{
  display:flex; align-items:center; gap:.6rem;
  padding: .6rem .7rem; border-radius: 10px; color: var(--fab-text); text-decoration: none; font-size: .9rem;
}
.lang-fab__menu a:hover,
.lang-fab__menu a:focus-visible{ background: rgba(255,255,255,.06); outline: none; }

.lang-fab.is-open .lang-fab__menu{
  opacity: 1; visibility: visible; transform: scale(1) translateY(0);
}
.lang-fab.is-open .lang-fab__btn{ border-color: rgba(255,255,255,.42); }

/* iOSなどの固定要素との衝突回避（チャット/クッキーバナー等がいる場合は余白を増やす） */
@media (max-width: 480px){
  .lang-fab__label{ display:none; }
}

/* 動きが苦手なユーザー配慮 */
@media (prefers-reduced-motion: reduce){
  .lang-fab__menu{ transition: none; }
  .lang-fab__btn{ transition: none; }
}

.lang-fab__menu a {
  color: #0F9403;              /* ← ドロップダウン文字をネオングリーンに */
}

.lang-fab__menu a:hover,
.lang-fab__menu a:focus-visible {
  background: rgba(15, 148, 3, 0.12); /* ← hover時にほんのり光らせる */
  color: #14FF00;                    /* ← hover時は明るめのグリーンにしても綺麗 */
}

/* 全幅表示セクションはpadding無効 */
.main_visual,
.footer__section {
  padding-inline: 0 !important;
}
