/* =========================================================================
   フロート「AIに相談する」ボタン（TOP/詳細など全ページ共通の想定）
   ウィンドウ右下に固定。本番トンマナ（赤 #c22121）準拠。
   ========================================================================= */
.ai-fab-wrap{ position:fixed; right:20px; bottom:20px; z-index:9000; display:flex; flex-direction:column; align-items:flex-end; gap:10px; }

/* 吹き出し（初回アテンション。閉じられる） */
.ai-fab-tip{ position:relative; background:#fff; border:1px solid #ececec; border-radius:14px; padding:11px 34px 11px 14px; box-shadow:0 10px 28px rgba(30,45,70,.18); font-size:12.5px; color:#333; line-height:1.6; max-width:236px; }
.ai-fab-tip b{ color:#e8590c; }
.ai-fab-tip:after{ content:""; position:absolute; right:34px; bottom:-8px; width:14px; height:14px; background:#fff; border-right:1px solid #ececec; border-bottom:1px solid #ececec; transform:rotate(45deg); }
.ai-fab-tip .tip-close{ position:absolute; top:7px; right:8px; width:20px; height:20px; border:0; background:#f1f1f1; border-radius:50%; color:#888; font-size:12px; cursor:pointer; line-height:1; }
.ai-fab-tip.hide{ display:none; }

/* 本体ボタン */
.ai-fab{ position:relative; display:inline-flex; align-items:center; gap:10px; background:#e8590c; color:#fff; border:0;
  border-radius:999px; padding:13px 20px 13px 14px; font-size:15px; font-weight:bold; text-decoration:none;
  box-shadow:0 10px 26px rgba(232,89,12,.42); cursor:pointer; transition:background .15s, transform .1s; -webkit-tap-highlight-color:transparent; }
.ai-fab:hover{ background:#d9480f; }
.ai-fab:active{ transform:translateY(1px); }
.ai-fab .ic{ width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
/* 注目のパルスリング */
.ai-fab .pulse{ position:absolute; inset:0; border-radius:999px; box-shadow:0 0 0 0 rgba(232,89,12,.5); animation:aifabPulse 2.4s infinite; pointer-events:none; }
@keyframes aifabPulse{ 0%{ box-shadow:0 0 0 0 rgba(232,89,12,.45);} 70%{ box-shadow:0 0 0 14px rgba(232,89,12,0);} 100%{ box-shadow:0 0 0 0 rgba(232,89,12,0);} }

/* スマホ：省スペース（アイコン＋短ラベル）。極小幅はアイコンのみ */
@media(max-width:600px){
  .ai-fab-wrap{ right:14px; bottom:14px; }
  .ai-fab{ padding:13px 18px 13px 13px; font-size:14px; }
  .ai-fab-tip{ max-width:200px; }
}
@media(max-width:380px){
  .ai-fab .label{ display:none; }
  .ai-fab{ padding:14px; }
}

/* LINE相談：PCはQR、スマートフォンはリンクを表示 */
.ai-fab{background:#06a83e;box-shadow:0 8px 24px rgba(6,168,62,.3)}
.ai-fab:hover{background:#078a36}
.ai-fab .ic{font-size:10px}
@media(max-width:380px){.ai-fab .label{display:inline}.ai-fab{padding:13px 18px 13px 13px}}
/* LINE相談ダイアログ（ordertrip.jp と同じ構成）。スマートフォン幅は下から出るシート、768px以上は中央のパネル */
.line-consult-dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:hidden;color:#333;text-align:center}
.line-consult-dialog:not([open]){display:none}/* reset.cssのdialog{display:block}で閉じた状態が残らないようにする */
.line-consult-dialog::backdrop{background:rgba(20,18,26,.5)}
.line-consult-panel{position:absolute;left:0;right:0;bottom:0;max-height:88vh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-sizing:border-box;background:#fff;border-radius:18px 18px 0 0;padding:10px 20px calc(16px + env(safe-area-inset-bottom));animation:lineConsultUp .3s cubic-bezier(.22,.7,.3,1)}
.line-consult-grab{display:block;width:38px;height:4px;border-radius:2px;background:#dedbd6;margin:0 auto 15px}
.line-consult-dialog .line-consult-title{margin:0 0 13px;font-size:13px;font-weight:bold;color:#333;line-height:1.5}
.line-consult-steps{display:inline-block;margin:0 0 16px;text-align:left}
.line-consult-dialog .line-consult-steps p{margin:0;font-size:13px;font-weight:bold;color:#333;line-height:1.85}
.line-consult-steps.line-consult-pc,.line-consult-qr{display:none}
.line-consult-qr img{display:block;width:100%;height:100%;object-fit:contain}
.line-consult-dialog a.line-consult-link{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:999px;background:#06c755;color:#fff;font-size:14.5px;font-weight:bold;text-decoration:none}
.line-consult-link img{flex:none;width:18px;height:18px}
.line-consult-dialog .line-consult-note{margin:10px 0 0;font-size:10.5px;color:#a0a0a0;line-height:1.5}
.line-consult-guide{width:320px;max-width:100%;margin:18px auto 0}
.line-consult-guide img{display:block;width:100%;height:auto;border-radius:10px;background:#f4f2ee}
.line-consult-dialog .line-consult-close{display:block;margin:6px auto 0;padding:8px 14px;background:none;border:0;color:#9a9a9a;font-size:12px;line-height:1.4;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.line-consult-dialog .line-consult-close:hover{color:#5f5f5f}
@keyframes lineConsultUp{from{transform:translateY(102%)}to{transform:none}}
@keyframes lineConsultIn{from{opacity:0;transform:translate(-50%,-46%)}to{opacity:1;transform:translate(-50%,-50%)}}
@media(min-width:768px){
  .line-consult-panel{left:50%;right:auto;top:50%;bottom:auto;width:640px;max-width:92vw;max-height:92vh;border-radius:16px;padding:30px 36px 18px;transform:translate(-50%,-50%);animation:lineConsultIn .26s cubic-bezier(.22,.7,.3,1)}
  .line-consult-grab,.line-consult-steps.line-consult-sp,.line-consult-dialog a.line-consult-link,.line-consult-dialog .line-consult-note{display:none}
  .line-consult-dialog .line-consult-title{font-size:14px;margin-bottom:14px}
  .line-consult-body{display:flex;align-items:center;gap:28px}
  .line-consult-col{flex:1 1 auto;min-width:0}
  .line-consult-steps{margin-bottom:18px}
  .line-consult-steps.line-consult-pc{display:inline-block}
  .line-consult-qr{display:block;width:180px;height:180px;margin:0 auto}
  .line-consult-guide{flex:none;margin:0}
}
@media(prefers-reduced-motion:reduce){.line-consult-panel{animation:none}}
