/* Edel Request Box：テーマの色変数があれば使う */
.erb { margin: 40px 0 8px; padding: 18px 20px; border: 1px solid var(--rule, #d9dcd6); border-radius: 10px; background: var(--accent-bg, #eef3fb); }
.erb-heading { margin: 0 0 4px; font-weight: 700; font-size: 16px; color: var(--ink, #1a1d21); }
.erb-lead { margin: 0 0 12px; font-size: 14px; line-height: 1.7; color: var(--ink-2, #4b5157); }
.erb-row { display: flex; gap: 8px; }
.erb-input { flex: 1; min-width: 0; padding: 10px 12px; font: inherit; font-size: 15px; border: 1px solid var(--rule, #c9ccc6); border-radius: 6px; background: #fff; color: var(--ink, #1a1d21); }
.erb-input:focus { outline: 2px solid var(--accent, #1e4fa3); outline-offset: 1px; border-color: transparent; }
.erb-button { flex: none; padding: 10px 18px; font: inherit; font-size: 15px; font-weight: 700; border: 0; border-radius: 6px; background: var(--accent, #1e4fa3); color: #fff; cursor: pointer; }
.erb-button:disabled { opacity: .6; cursor: wait; }
.erb-msg { margin: 8px 0 0; min-height: 1.4em; font-size: 14px; }
.erb-msg:empty { margin: 0; min-height: 0; }
.erb-msg.is-ok { color: var(--accent-2, #1f6f5c); font-weight: 700; }
.erb-msg.is-error { color: #b42318; }
.erb-note { margin: 8px 0 0; font-size: 12px; color: var(--ink-3, #7d848b); }
.erb-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.erb-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 480px) { .erb { padding: 16px; } .erb .erb-row { flex-direction: column; } .erb .erb-button { width: 100%; } }

/* 右下に固定する形 */
.erb-float { position: fixed; right: 20px; bottom: 20px; z-index: 9990; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; font-family: var(--font, inherit); }
.erb-launch { display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border: 0; border-radius: 999px; background: var(--accent, #1e4fa3); color: #fff; font: inherit; font-size: 14px; font-weight: 700; line-height: 1; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, .18); opacity: .92; transition: opacity .15s, transform .15s; }
.erb-launch:hover, .erb-launch:focus-visible { opacity: 1; transform: translateY(-1px); }
.erb-launch:focus-visible { outline: 2px solid var(--ink, #1a1d21); outline-offset: 2px; }
.erb-float.is-open .erb-launch { opacity: 1; }
.erb-panel { position: relative; width: 420px; max-width: calc(100vw - 32px); max-height: calc(100vh - 110px); overflow: auto; padding: 18px 18px 14px; border: 1px solid var(--rule, #d9dcd6); border-radius: 12px; background: var(--paper, #fff); box-shadow: 0 10px 30px rgba(0, 0, 0, .18); }
.erb-panel[hidden] { display: none; }
.erb-panel .erb-heading { padding-right: 24px; font-size: 15px; line-height: 1.5; }
.erb-panel .erb-lead { font-size: 13px; }
.erb-panel .erb-input { font-size: 16px; } /* iPhone で入力時に拡大されないよう16px */
.erb-close { position: absolute; top: 8px; right: 8px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: transparent; color: var(--ink-3, #7d848b); font-size: 22px; line-height: 1; cursor: pointer; }
.erb-close:hover, .erb-close:focus-visible { background: var(--paper-2, #f2f3ef); color: var(--ink, #1a1d21); }
@media (max-width: 600px) {
  .erb-float { right: 16px; bottom: 16px; }
  .erb-launch { width: 48px; height: 48px; padding: 0; justify-content: center; }
  .erb-launch svg { width: 22px; height: 22px; }
  .erb-launch-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .erb-panel .erb-row { flex-direction: column; }
  .erb-panel .erb-button { width: 100%; }
}
@media print { .erb-float { display: none; } }
/* スマホでほかの入力欄を使っている間は、右下のボタンを隠す（キーボードと重ならないように） */
@media (max-width: 600px) { .erb-float.is-typing:not(.is-open) { display: none; } }
/* PC では見出しと注意書きを1行に収める（スマホは画面幅が足りないので折り返す） */
@media (min-width: 601px) {
  .erb-panel .erb-heading, .erb-panel .erb-note { white-space: nowrap; }
  .erb-panel .erb-note { font-size: 11.5px; }
}
