/* ボタンを少し小さめに（共通） */
.lang-btn{
  list-style:none; user-select:none; cursor:pointer;
  display:inline-flex; align-items:center; gap:.35rem; white-space:nowrap;
  border:1px solid #ccc; border-radius:6px; background:#f8f8f8;
  padding:4px 10px; font-size:13px; line-height:1;
  position: fixed !important;
  left: auto !important;
  right: 30px !important;
  top: 5px !important;
  bottom: auto !important;
  z-index: 1;
}

#langMenu{ height: 0px; }

/* ===== ポータル（翻訳メニュー本体） ===== */
#lang-portal{
  position:fixed;                 /* 画面基準（重なり最優先） */
  z-index:2147483647 !important;  /* どのバナーよりも前面に */
  min-width:220px;
  background:#fff !important;
  border:1px solid #ddd !important;
  border-radius:12px !important;
  box-shadow:0 8px 24px rgba(0,0,0,.12) !important;
  padding:6px 0 !important;
}
#lang-portal[hidden]{ display:none !important; }
#lang-portal a{
  display:block !important;
  padding:10px 12px !important;
  text-decoration:none !important;
  color:#333 !important;
  white-space:nowrap !important;
  text-align: left;
}
#lang-portal a:hover{ background:#f2f4f7 !important; }

/* Google翻訳ツールバー関連 */
/* 共通：常に最前面 */
iframe#gt-nvframe { z-index: 2147483647 !important; }

/* ── 丸型（FAB）を検出して “左下” に固定（右下にしたい場合はコメント参照） */
iframe#gt-nvframe[style*="border-radius: 50%"],
iframe#gt-nvframe[style*="width: 56px"] {
  position: fixed !important;
  left: 12px !important;     /* → 右下にしたい場合は left:auto; right:12px; に変更 */
  right: auto !important;
  bottom: calc(16px + env(safe-area-inset-bottom)) !important;
  top: auto !important;
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
}

/* ── 横長バナーを検出して “最上部” に固定 */
iframe#gt-nvframe[style*="width: 100%"],
iframe#gt-nvframe[style*="border-radius: 0"] {
  position: fixed !important;
  top: 0 !important;
  bottom: auto !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  height: 56px !important;   /* 実高さに合わせて 48/56 等に調整可 */
  border-radius: 0 !important;
  box-shadow: rgba(60, 64, 67, 0.3) 0 1px 2px,
              rgba(60, 64, 67, 0.15) 0 2px 6px 2px !important; /* 任意 */
}

/* ── バナー時だけページ上部に余白を確保（:has 必要） */
html:has(iframe#gt-nvframe[style*="width: 100%"]),
html:has(iframe#gt-nvframe[style*="border-radius: 0"]) {
  margin-top: 56px !important;  /* バナー高と揃える */
}

/* FABのときは余白をゼロに戻す */
html:has(iframe#gt-nvframe[style*="border-radius: 50%"]),
html:has(iframe#gt-nvframe[style*="width: 56px"]) {
  margin-top: 0 !important;
}

/* スマホは少しコンパクト */
@media (max-width: 768px){
  .lang-btn{ padding:4px 8px; font-size:11px; margin-right: 20px; margin-top: 10px; }
  #lang-portal{ min-width:200px; }
  iframe#gt-nvframe{
    position: fixed !important;
    left: 12px !important;     /* ← 左へ */
    right: auto !important;
    z-index: 2147483647 !important; /* 念のため最前面 */
  }
  #header .inner { padding: 15px 20px 0px 20px !important; }  /* スマホの微調整 */
}

