
  :root { --navy:#0b1f3a; --blue:#2563eb; --blue-light:#eff6ff; --gray:#64748b; --line:#e2e8f0; --bg:#f8fafc; }
  * { margin:0; padding:0; box-sizing:border-box; }
  body { font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif; color:#1e293b; background:var(--bg); line-height:1.7; }
  header { background:var(--navy); color:#fff; padding:12px 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
  header .logo { font-weight:700; font-size:18px; } header .logo span { color:#60a5fa; }
  #topbar { display:flex; align-items:center; gap:10px; font-size:13px; }
  #topbar .badge { background:#1e40af; padding:4px 10px; border-radius:999px; }
  #topbar .badge.trial { background:#b45309; }
  #topbar button { border:0; border-radius:8px; padding:6px 12px; font-size:13px; font-weight:700; cursor:pointer; }
  .btn-accent { background:#fbbf24; color:#0b1f3a; }
  .btn-ghost { background:transparent; color:#cbd5e1; border:1px solid #334155!important; }
  button { border:0; border-radius:10px; padding:11px 16px; font-size:14px; font-weight:700; cursor:pointer; }
  /* リンクをボタンとして使う箇所 (OAuth連携・管理画面への遷移など)。
     余白と角丸は上の button 要素セレクタにあるため、<a> には当たらず
     「色だけ付いた文字」になっていた (2026-08-17 の通しテストで発覚)。
     a 要素にも同じ見た目を与える */
  a.btn-primary, a.btn-dark, a.btn-ghost, a.btn-accent {
    display:inline-flex; align-items:center; gap:6px;
    border-radius:10px; padding:11px 16px; font-size:14px; font-weight:700;
    text-decoration:none; cursor:pointer;
  }
  .btn-primary { background:var(--blue); color:#fff; } .btn-primary:disabled { opacity:.5; cursor:default; }
  .btn-dark { background:var(--navy); color:#fff; }
  /* auth */
  #authScreen { max-width:440px; margin:60px auto; padding:24px; }
  .authcard { background:#fff; border:1px solid var(--line); border-radius:16px; padding:28px; }
  .authcard h1 { font-size:22px; color:var(--navy); text-align:center; margin-bottom:4px; }
  .authcard .sub { text-align:center; color:var(--gray); font-size:13px; margin-bottom:20px; }
  .tabs { display:flex; margin-bottom:18px; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
  .tabs button { flex:1; background:#fff; color:var(--gray); border-radius:0; }
  .tabs button.active { background:var(--navy); color:#fff; }
  .field { margin-bottom:12px; }
  .field label { display:block; font-size:12px; color:var(--gray); margin-bottom:4px; }
  .field input { width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:10px; font-size:14px; }
  .autherr { color:#dc2626; font-size:13px; margin:8px 0; min-height:18px; }
  .trialnote { background:var(--blue-light); border-radius:10px; padding:10px 12px; font-size:12px; color:#1e40af; margin-top:8px; }
  /* app layout */
  .wrap { max-width:1180px; margin:0 auto; padding:24px; display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  @media (max-width:900px){ .wrap { grid-template-columns:1fr; } }
  .card { background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; display:flex; flex-direction:column; }
  .card h2 { font-size:15px; padding:14px 18px; border-bottom:1px solid var(--line); color:var(--navy); background:#fff; }
  .card h2 small { color:var(--gray); font-weight:400; margin-left:8px; }
  #chat { flex:1; padding:18px; overflow-y:auto; min-height:420px; max-height:560px; display:flex; flex-direction:column; gap:12px; }
  .msg { max-width:85%; padding:10px 14px; border-radius:14px; font-size:14px; white-space:pre-wrap; }
  .msg.ai { background:var(--blue-light); align-self:flex-start; border-bottom-left-radius:4px; }
  .msg.user { background:var(--navy); color:#fff; align-self:flex-end; border-bottom-right-radius:4px; }
  .inputbar { display:flex; gap:8px; padding:12px; border-top:1px solid var(--line); align-items:flex-end; }
  .inputbar input, .inputbar textarea { flex:1; padding:11px 14px; border:1px solid var(--line); border-radius:10px; font-size:14px; font-family:inherit; resize:vertical; min-height:44px; line-height:1.5; }
  #strategy { flex:1; padding:18px; overflow-y:auto; min-height:420px; max-height:600px; font-size:14px; }
  #strategy .empty { color:var(--gray); text-align:center; padding:60px 20px; }
  .sec { margin-bottom:18px; }
  .sec h3 { font-size:13px; color:var(--blue); border-left:3px solid var(--blue); padding-left:8px; margin-bottom:8px; }
  .kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
  /* 改善4-9: 375px幅で1セル110pxに潰れるのを防ぐ */
  @media (max-width:520px) { .kpis { grid-template-columns:repeat(2,1fr); } }
  /* 改善4-5: 用語ツールチップと業種平均バッジ */
  .dcard { position:relative; }
  .gloss-tip { border:none; background:#e2e8f0; color:#475569; width:16px; height:16px; border-radius:50%; font-size:10px; font-weight:700; line-height:1; cursor:pointer; margin-left:5px; padding:0; vertical-align:middle; }
  .gloss-tip:hover { background:#cbd5e1; }
  .gloss-pop { position:absolute; z-index:80; left:0; top:100%; margin-top:6px; background:#0f172a; color:#f8fafc; padding:10px 12px; border-radius:8px; font-size:12px; line-height:1.65; font-weight:400; max-width:260px; box-shadow:0 8px 20px rgba(15,23,42,.25); text-align:left; }
  .bench-badge { display:inline-block; font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:999px; margin-top:4px; }
  .bench-good { background:#dcfce7; color:#15803d; }
  .bench-bad  { background:#fee2e2; color:#b91c1c; }
  .bench-flat { background:#f1f5f9; color:#64748b; }
  /* 改善4-6: 今月のサマリー */
  .month-summary { background:linear-gradient(135deg,#0b1f3a,#1e40af); color:#fff; border-radius:14px; padding:18px 22px; margin-bottom:12px; }
  .month-summary .ms-lead { font-size:15.5px; line-height:1.8; font-weight:600; }
  .month-summary .ms-sub { font-size:12.5px; opacity:.85; margin-top:6px; }
  /* 改善4-6: 今すぐやること */
  .todo-item { display:flex; gap:12px; align-items:flex-start; padding:12px 0; border-bottom:1px solid var(--line); }
  .todo-item:last-child { border-bottom:none; }
  .todo-rank { flex:0 0 24px; height:24px; border-radius:50%; background:var(--navy,#0b1f3a); color:#fff; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
  /* 改善4-9: 横スクロールは全幅で有効にする (768-900pxのタブレット縦で8列テーブルが枠を突き破っていた) */
  .dbox table, #dashMedia table, .tbl-wrap table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; }
  .table-wrap, .tbl-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; }
  .kpi { background:var(--blue-light); border-radius:10px; padding:10px; text-align:center; }
  .kpi .n { font-size:18px; font-weight:700; color:var(--navy); } .kpi .l { font-size:11px; color:var(--gray); }
  table { width:100%; border-collapse:collapse; font-size:13px; }
  th,td { border:1px solid var(--line); padding:6px 8px; text-align:left; vertical-align:top; }
  th { background:#f1f5f9; color:var(--navy); }
  ul { padding-left:20px; } li { margin:3px 0; }
  .genbar { padding:12px; border-top:1px solid var(--line); }
  .note { font-size:12px; color:var(--gray); margin-top:6px; }
  .full { max-width:1180px; margin:0 auto 40px; padding:0 24px; }
  .cwrap { background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
  .cwrap > h2 { font-size:15px; padding:14px 18px; border-bottom:1px solid var(--line); color:var(--navy); }
  .cwrap > h2 small { color:var(--gray); font-weight:400; margin-left:8px; }
  .cbody { padding:18px; display:grid; grid-template-columns:1fr; gap:20px; }
  .cpanel { border:1px solid var(--line); border-radius:10px; padding:14px; background:#fff; }
  .cpanel h3 { font-size:14px; color:var(--blue); border-left:3px solid var(--blue); padding-left:8px; margin-bottom:12px; }
  .cpanel.disabled { opacity:.55; pointer-events:none; }
  .pbrief { background:#f8fafc; border:1px dashed var(--line); border-radius:8px; padding:12px 14px; margin-bottom:12px; }
  .pfield { margin-bottom:12px; }
  .pfield label { display:block; font-size:12px; font-weight:600; color:var(--navy); margin-bottom:6px; }
  .pfield .req { display:inline-block; background:#dc2626; color:#fff; font-size:10px; padding:1px 6px; border-radius:4px; margin-left:4px; font-weight:600; }
  .pfield input, .pfield textarea { width:100%; padding:9px 11px; border:1px solid var(--line); border-radius:8px; font-size:13px; font-family:inherit; box-sizing:border-box; resize:vertical; }
  .chipsel { display:flex; flex-wrap:wrap; gap:6px; }
  .chipsel button { padding:6px 12px; border:1px solid var(--line); border-radius:16px; background:#fff; color:#334155; font-size:12px; cursor:pointer; }
  .chipsel button.on { background:var(--blue); color:#fff; border-color:var(--blue); }
  .radiogroup { display:flex; gap:14px; }
  .radiogroup label { font-size:13px; color:#334155; display:inline-flex; align-items:center; gap:6px; cursor:pointer; white-space:nowrap; }
  .next-step { margin-top:12px; padding:10px 14px; background:#eff6ff; color:#1d4ed8; border-left:4px solid var(--blue); border-radius:6px; font-size:13px; font-weight:600; }
  /* Phase2 #46 AIアドバイザー */
  #advisorFab { position:fixed; bottom:24px; right:24px; z-index:80; width:56px; height:56px; border-radius:50%; border:0; background:linear-gradient(135deg,#0b1f3a,#2563eb); color:#fff; font-size:24px; cursor:pointer; box-shadow:0 8px 24px rgba(37,99,235,.4); transition:transform .15s; }
  #advisorFab:hover { transform:scale(1.08); }
  #advisorPanel { position:fixed; bottom:90px; right:24px; z-index:80; width:360px; max-width:calc(100vw - 32px); height:520px; max-height:calc(100vh - 130px); background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 16px 48px rgba(11,31,58,.24); display:none; flex-direction:column; overflow:hidden; }
  #advisorPanel.on { display:flex; }
  .adv-head { background:linear-gradient(135deg,#0b1f3a,#2563eb); color:#fff; padding:14px 16px; display:flex; justify-content:space-between; align-items:center; }
  .adv-head button { background:transparent; border:0; color:#fff; font-size:22px; cursor:pointer; line-height:1; }
  .adv-log { flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; background:#f8fafc; }
  .adv-log .msg { max-width:85%; padding:9px 12px; border-radius:12px; font-size:13px; line-height:1.6; white-space:pre-wrap; }
  .adv-log .msg.user { background:var(--blue); color:#fff; align-self:flex-end; border-bottom-right-radius:3px; }
  .adv-log .msg.ai { background:#fff; color:#1e293b; align-self:flex-start; border:1px solid var(--line); border-bottom-left-radius:3px; }
  .adv-log .quick { display:flex; flex-wrap:wrap; gap:6px; margin-top:2px; }
  .adv-log .quick button { font-size:11px; padding:5px 10px; border:1px solid var(--blue); background:#fff; color:var(--blue); border-radius:14px; cursor:pointer; }
  /* #68 チャットからのワンクリック実行。支出が増える確認は色で分ける */
  .adv-log .adv-actions { display:flex; flex-direction:column; gap:8px; margin-top:6px; }
  .adv-log .adv-action { border:1px solid #dbeafe; background:#f8fbff; border-radius:10px; padding:10px; font-size:12px; }
  .adv-log .adv-action-label { font-weight:700; color:var(--navy); margin-bottom:3px; }
  .adv-log .adv-action-why { color:#64748b; font-size:11px; margin-bottom:7px; line-height:1.5; }
  .adv-log .adv-action button { font-size:11px; padding:6px 12px; border-radius:8px; cursor:pointer; }
  .adv-log .adv-action-confirm { margin-top:8px; padding-top:8px; border-top:1px dashed #cbd5e1; }
  .adv-log .adv-confirm-text { font-size:11.5px; line-height:1.6; margin-bottom:8px; padding:7px 9px; border-radius:8px; }
  .adv-log .adv-confirm-text.spend-down { background:#f0fdf4; border:1px solid #bbf7d0; color:#166534; }
  .adv-log .adv-confirm-text.spend-up { background:#fff7ed; border:1px solid #fed7aa; color:#9a3412; }
  .adv-log .adv-action-done { color:#166534; font-weight:600; line-height:1.6; }
  .adv-input { display:flex; gap:6px; padding:10px; border-top:1px solid var(--line); align-items:flex-end; }
  .adv-input textarea { flex:1; padding:9px 11px; border:1px solid var(--line); border-radius:10px; font-size:14px; font-family:inherit; resize:none; max-height:100px; }
  @media (max-width:768px){ #advisorPanel { width:calc(100vw - 20px); right:10px; bottom:80px; height:70vh; } #advisorFab { bottom:16px; right:16px; } }
  .lp-publish-box { border:1px solid var(--blue); background:linear-gradient(135deg,#eff6ff,#dbeafe); border-radius:10px; padding:14px; margin-bottom:12px; }
  .lp-publish-title { font-size:13px; font-weight:700; color:var(--navy); margin-bottom:10px; }
  .usage-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; margin-top:12px; }
  .usage-card { background:#f8fafc; border:1px solid var(--line); border-radius:8px; padding:12px 14px; }
  .usage-card .title { font-size:12px; color:var(--gray); font-weight:600; margin-bottom:4px; }
  .usage-card .num { font-size:20px; font-weight:800; color:var(--navy); }
  .usage-card .num small { font-size:12px; color:var(--gray); font-weight:400; }
  .usage-bar { background:#e2e8f0; border-radius:999px; height:6px; overflow:hidden; margin-top:8px; }
  .usage-bar > div { height:100%; background:var(--blue); border-radius:999px; transition:width .3s; }
  .usage-card.warning .usage-bar > div { background:#f59e0b; }
  .usage-card.over .usage-bar > div { background:#dc2626; }
  .usage-card.warning { border-color:#f59e0b; background:#fef3c7; }
  .usage-card.over { border-color:#dc2626; background:#fee2e2; }
  .budget-alert-warning { background:#fef3c7; border-left:4px solid #f59e0b; color:#92400e; }
  .budget-alert-over { background:#fee2e2; border-left:4px solid #dc2626; color:#991b1b; }
  .clarity-steps { display:flex; flex-direction:column; gap:12px; }
  .clarity-step { display:flex; gap:14px; padding:14px; background:#f8fafc; border:1px solid var(--line); border-radius:10px; align-items:flex-start; transition:all .2s; }
  .clarity-step.done { background:#dcfce7; border-color:#16a34a; }
  .clarity-step-num { flex-shrink:0; width:32px; height:32px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; }
  .clarity-step.done .clarity-step-num { background:#16a34a; }
  .clarity-step-body { flex:1; min-width:0; }
  .clarity-step-title { font-size:14px; font-weight:700; color:var(--navy); margin-bottom:4px; }
  .clarity-step-desc { font-size:12.5px; color:#475569; line-height:1.6; }
  .clarity-step-desc code { background:#e2e8f0; padding:1px 6px; border-radius:4px; font-size:12px; }
  .presult { margin-top:8px; }
  .presult:empty { display:none; }
  .pchat { margin-top:14px; border-top:1px solid var(--line); padding-top:12px; }
  .pchat-title { font-size:12px; font-weight:600; color:var(--navy); margin-bottom:8px; }
  .pchatlog { max-height:200px; overflow-y:auto; display:flex; flex-direction:column; gap:6px; margin-bottom:8px; padding:4px 0; }
  .pchatlog:empty { display:none; }
  .pchatlog .msg { max-width:88%; padding:8px 10px; border-radius:8px; font-size:13px; line-height:1.5; }
  .pchatlog .msg.user { background:var(--blue); color:#fff; align-self:flex-end; }
  .pchatlog .msg.ai { background:#f1f5f9; color:#1e293b; align-self:flex-start; }
  .pchat .inputbar { padding:0; border:0; }
  .pchat .inputbar textarea { min-height:60px; }
  .imgprev-item { position:relative; }
  .imgprev-item img { width:64px; height:64px; object-fit:cover; border-radius:6px; border:1px solid var(--line); display:block; }
  .imgprev-item .rm { position:absolute; top:-6px; right:-6px; width:18px; height:18px; border-radius:50%; background:#dc2626; color:#fff; border:0; cursor:pointer; font-size:11px; line-height:1; padding:0; }
  .chip { display:inline-block; background:var(--blue-light); border-radius:6px; padding:4px 10px; margin:3px; font-size:13px; }
  .banners { display:flex; flex-wrap:wrap; gap:16px; }
  .banner-item { border:1px solid var(--line); border-radius:8px; padding:10px; text-align:center; }
  .banner-item svg { max-width:280px; height:auto; border:1px solid var(--line); border-radius:4px; display:block; }
  .banner-item .cap { font-size:12px; color:var(--gray); margin:6px 0; }
  .dl { background:var(--navy); color:#fff; font-size:12px; padding:6px 12px; border-radius:6px; cursor:pointer; }
  iframe.lp { width:100%; height:520px; border:1px solid var(--line); border-radius:8px; background:#fff; }
  .muted { color:var(--gray); font-size:13px; }
  /* tabbar */
  .tabbar { max-width:1180px; margin:0 auto; padding:16px 24px 0; display:flex; gap:8px; }
  .tabbar button { background:#fff; color:var(--gray); border:1px solid var(--line); border-bottom:none; border-radius:10px 10px 0 0; padding:10px 20px; }
  .tabbar button.active { background:var(--navy); color:#fff; border-color:var(--navy); }
  /* dashboard */
  .dash { max-width:1180px; margin:0 auto; padding:16px 24px 40px; }
  .dash .bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; flex-wrap:wrap; gap:8px; }
  .dash h2 { color:var(--navy); font-size:18px; }
  .sample-tag { background:#fef3c7; color:#b45309; font-size:12px; padding:4px 10px; border-radius:999px; }
  .dcards { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-bottom:20px; }
  @media (max-width:900px){ .dcards { grid-template-columns:repeat(2,1fr); } }
  .dcard { background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px; text-align:center; }
  .dcard .n { font-size:20px; font-weight:700; color:var(--navy); }
  .dcard .l { font-size:11px; color:var(--gray); margin-top:2px; }
  .dbox { background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px; margin-bottom:20px; }
  .dbox h3 { font-size:14px; color:var(--navy); margin-bottom:12px; }
  /* pricing modal */
  .overlay { position:fixed; inset:0; background:rgba(11,31,58,.55); display:none; align-items:flex-start; justify-content:center; padding:40px 16px; overflow-y:auto; z-index:50; }
  .overlay.show { display:flex; }
  .pricing { background:var(--bg); border-radius:16px; max-width:1000px; width:100%; padding:24px; }
  .pricing .ph { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
  .pricing h2 { color:var(--navy); font-size:20px; }
  .cycle { display:flex; gap:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#fff; }
  .cycle button { background:#fff; color:var(--gray); border-radius:0; padding:8px 16px; }
  .cycle button.active { background:var(--navy); color:#fff; }
  .plans { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
  @media (max-width:800px){ .plans { grid-template-columns:1fr; } }
  .plan { background:#fff; border:1px solid var(--line); border-radius:14px; padding:20px; text-align:center; position:relative; display:flex; flex-direction:column; }
  .plan.rec { border:2px solid var(--blue); box-shadow:0 8px 24px rgba(37,99,235,0.15); }
  .plan .plan-rec-tag { position:absolute; top:-11px; left:50%; transform:translateX(-50%); background:var(--blue); color:#fff; font-size:11px; padding:3px 14px; border-radius:999px; font-weight:700; letter-spacing:0.02em; }
  .plan h3 { color:var(--navy); font-size:18px; font-weight:800; }
  .plan .plan-audience { font-size:12px; color:var(--gray); margin-top:2px; margin-bottom:10px; min-height:18px; }
  .plan .price { font-size:28px; font-weight:800; color:var(--navy); margin:6px 0 2px; letter-spacing:-0.01em; }
  .plan .price small { font-size:13px; color:var(--gray); font-weight:400; }
  .plan .plan-cycle-note { font-size:11px; color:var(--gray); margin-bottom:6px; }
  .plan .cap { font-size:12px; color:var(--gray); margin-bottom:12px; }
  .plan .btn-primary { margin:12px 0 14px; }
  .plan ul { text-align:left; font-size:13px; color:#334155; padding:14px 0 0; margin:0; border-top:1px solid var(--line); list-style:none; }
  .plan li { padding:6px 0 6px 22px; position:relative; line-height:1.55; }
  .plan li::before { content:""; position:absolute; left:0; top:9px; width:14px; height:14px; background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%232563eb" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>') no-repeat center/14px; }
  .closex { background:transparent; color:var(--gray); font-size:22px; }

  /* ==================== LP: Salesforce風クリーンSaaSデザイン ==================== */
  #landing { display:none; background:#fff; }
  #landing.on { display:block; }

  /* LP専用CSS変数 */
  #landing {
    --sf-blue:#0176d3;
    --sf-blue-dark:#014486;
    --sf-blue-light:#e8f4fd;
    --sf-navy:#032e61;
    --sf-text:#181818;
    --sf-text-sub:#444;
    --sf-line:#dddbda;
    --sf-bg-gray:#f4f6f9;
    --sf-bg-blue:#f7fbff;
  }

  /* Fixed header (SaaS標準) */
  .lp-header {
    position:sticky; top:0; z-index:50; background:rgba(255,255,255,0.96);
    backdrop-filter:blur(10px); border-bottom:1px solid var(--sf-line);
    padding:14px 32px; display:flex; align-items:center; justify-content:space-between;
  }
  .lp-header .brand { display:flex; align-items:center; gap:10px; color:var(--sf-navy); font-weight:800; font-size:20px; letter-spacing:-0.01em; }
  .lp-header .brand-mark {
    width:34px; height:34px; border-radius:9px; background:var(--sf-navy); display:flex; align-items:center; justify-content:center;
    color:#fff; font-weight:800; font-size:15px; letter-spacing:0;
  }
  .lp-header nav { display:flex; gap:28px; }
  .lp-header nav a { color:var(--sf-text); font-size:14px; font-weight:600; text-decoration:none; padding:8px 4px; transition:color .15s; }
  .lp-header nav a:hover { color:var(--sf-blue); }
  .lp-nav-toggle { display:none; position:relative; }
  .lp-nav-toggle > summary { list-style:none; cursor:pointer; font-size:22px; line-height:1; padding:8px 10px; min-width:44px; min-height:44px; display:flex; align-items:center; justify-content:center; }
  .lp-nav-toggle > summary::-webkit-details-marker { display:none; }
  .lp-nav-menu { position:absolute; right:0; top:100%; background:#fff; border:1px solid var(--sf-line,#e2e8f0); border-radius:12px; box-shadow:0 8px 24px rgba(15,23,42,.12); padding:8px; min-width:200px; z-index:60; display:flex; flex-direction:column; }
  .lp-nav-menu a { padding:12px 14px; font-size:14px; font-weight:600; color:var(--sf-text); text-decoration:none; border-radius:8px; }
  .lp-nav-menu a:hover { background:#f1f5f9; }
  .lp-header .actions { display:flex; gap:10px; align-items:center; }
  .lp-header .btn-login { color:var(--sf-blue); background:transparent; border:0; font-size:14px; font-weight:600; padding:8px 14px; cursor:pointer; }
  .lp-header .btn-cta { background:var(--sf-blue); color:#fff; padding:10px 20px; border-radius:4px; border:0; font-size:14px; font-weight:700; cursor:pointer; transition:background .15s; }
  .lp-header .btn-cta:hover { background:var(--sf-blue-dark); }

  /* Hero: Salesforce風の左寄せ + 右画像 */
  .lp-hero {
    background:linear-gradient(135deg,#e8f4fd 0%,#f7fbff 60%,#fff 100%);
    padding:80px 32px 100px; overflow:hidden;
  }
  .lp-hero-inner { max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
  .lp-hero-text .eyebrow {
    display:inline-block; color:var(--sf-blue); font-size:13px; font-weight:700;
    letter-spacing:0.08em; text-transform:uppercase; margin-bottom:18px;
  }
  .lp-hero h1 {
    color:var(--sf-navy); font-size:56px; line-height:1.15; letter-spacing:-0.02em;
    margin:0 0 24px; font-weight:800;
  }
  .lp-hero .sub {
    color:var(--sf-text-sub); font-size:18px; line-height:1.7;
    margin:0 0 32px; max-width:520px;
  }
  .lp-cta-row { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
  .lp-cta-primary {
    background:var(--sf-blue); color:#fff; padding:15px 28px; border-radius:4px;
    font-size:15px; font-weight:700; border:0; cursor:pointer;
    transition:background .15s; letter-spacing:0.01em;
  }
  .lp-cta-primary:hover { background:var(--sf-blue-dark); }
  .lp-cta-secondary {
    background:#fff; color:var(--sf-blue); padding:15px 26px; border-radius:4px;
    font-size:15px; font-weight:700; border:1.5px solid var(--sf-blue); cursor:pointer;
    transition:background .15s;
  }
  .lp-cta-secondary:hover { background:var(--sf-blue-light); }
  .lp-cta-note { color:var(--sf-text-sub); font-size:13px; margin-top:6px; }

  /* 提案52: 登録前のURL体験。ヒーロー内に置くので、CTAより控えめな見た目にする
     (主役の「7日間無料で始める」を食わない) */
  .lp-try { margin-top:22px; padding:16px; border:1px solid var(--sf-border); border-radius:12px; background:#fff; max-width:520px; }
  .lp-try-label { font-size:14px; font-weight:700; color:var(--sf-navy); margin-bottom:9px; }
  .lp-try-row { display:flex; gap:8px; flex-wrap:wrap; }
  .lp-try-row input {
    flex:1 1 240px; min-width:0; padding:11px 13px; font-size:14px; font-family:inherit;
    border:1px solid var(--sf-border); border-radius:9px; color:var(--sf-text);
  }
  .lp-try-row input:focus { outline:2px solid var(--sf-blue); outline-offset:-1px; }
  .lp-try-row button { flex:0 0 auto; }
  .lp-try-note { color:var(--sf-text-sub); font-size:12.5px; margin-top:8px; }
  .lp-try-result { margin-top:14px; font-size:13.5px; line-height:1.75; }
  .lp-try-result h4 { font-size:13px; color:var(--sf-text-sub); font-weight:700; margin:12px 0 4px; }
  .lp-try-result ul { padding-left:18px; margin:0; }
  .lp-try-result .lp-try-locked {
    margin-top:12px; padding:11px 13px; border-radius:9px;
    background:var(--sf-blue-light); color:var(--sf-navy); font-size:13px;
  }
  .lp-try-result .lp-try-err { color:#b91c1c; }
  .lp-try-result .lp-try-guess { color:var(--sf-text-sub); font-size:12px; margin-top:10px; }
  @media (max-width:600px) { .lp-try-row button { width:100%; } }

  /* 提案60: 体験モードの帯。
     画面のどこにいても「これはサンプル」と分かることが最優先なので、
     最前面に固定し、スクロールしても消えないようにする */
  .preview-banner {
    position:fixed; top:0; left:0; right:0; z-index:9999;
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    padding:8px 14px; background:#0b1f3a; color:#fff; font-size:13px;
    box-shadow:0 1px 6px rgba(0,0,0,.2);
  }
  .preview-badge { background:#f59e0b; color:#3b2600; font-weight:700; font-size:11.5px; padding:3px 9px; border-radius:999px; }
  .preview-text { flex:1 1 auto; min-width:180px; }
  .preview-banner select {
    padding:5px 8px; border-radius:7px; border:1px solid rgba(255,255,255,.35);
    background:#12305a; color:#fff; font-size:12.5px; font-family:inherit;
  }
  /* #42 クライアント切替。社名が長くても帯を崩さない
     (帯が折り返すと、いま見ている社名が画面外に出る) */
  .acting-switch { max-width:200px; }
  .preview-cta {
    background:#2563eb; color:#fff; border:0; border-radius:7px;
    padding:6px 13px; font-size:12.5px; font-weight:700; cursor:pointer; font-family:inherit;
  }
  .preview-exit {
    background:transparent; color:#cbd5e1; border:1px solid rgba(255,255,255,.35);
    border-radius:7px; padding:5px 11px; font-size:12.5px; cursor:pointer; font-family:inherit;
  }
  /* 帯のぶんだけ本体を下げる。固定要素で内容が隠れると操作できなくなる */
  body.has-preview-banner { padding-top:46px; }
  @media (max-width:600px) {
    .preview-text { flex-basis:100%; font-size:12px; }
    body.has-preview-banner { padding-top:76px; }
  }

  .lp-hero-visual { position:relative; }
  .lp-hero-visual svg {
    width:100%; height:auto; border-radius:12px;
    box-shadow:0 24px 80px rgba(3,46,97,0.18), 0 0 0 1px rgba(3,46,97,0.06);
  }

  /* Trust bar (社会的証明) */
  .lp-trust { background:#fff; padding:36px 32px; border-bottom:1px solid var(--sf-line); }
  .lp-trust-inner { max-width:1240px; margin:0 auto; text-align:center; }
  .lp-trust-title { color:var(--sf-text-sub); font-size:13px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; margin-bottom:22px; }
  .lp-trust-items { display:flex; justify-content:center; gap:60px; flex-wrap:wrap; }
  .lp-trust-item { display:flex; align-items:center; gap:10px; color:var(--sf-navy); font-weight:700; font-size:15px; }
  .lp-trust-item svg { width:22px; height:22px; }

  /* Stats */
  .lp-stats { background:var(--sf-bg-blue); padding:60px 32px; }
  .lp-stats-inner { max-width:1240px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:32px; text-align:center; }
  .lp-stat .num { color:var(--sf-blue); font-size:44px; font-weight:800; letter-spacing:-0.02em; line-height:1.1; }
  .lp-stat .label { color:var(--sf-text); font-size:14px; font-weight:600; margin-top:8px; }

  /* Section基本 */
  .lp-section-wrap { background:#fff; }
  .lp-section-wrap.alt { background:var(--sf-bg-gray); }
  .lp-section { padding:100px 32px; max-width:1240px; margin:0 auto; }
  .lp-section h2 { color:var(--sf-navy); font-size:40px; line-height:1.2; margin-bottom:16px; letter-spacing:-0.02em; font-weight:800; }
  .lp-section .lead { color:var(--sf-text-sub); font-size:17px; max-width:720px; margin-bottom:56px; line-height:1.75; }
  .lp-section.centered { text-align:center; }
  .lp-section.centered .lead { margin-left:auto; margin-right:auto; }

  /* Feature Split (交互レイアウト:テキスト+画像) */
  .lp-feat-split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
  .lp-feat-split.reverse { direction:rtl; }
  .lp-feat-split.reverse > * { direction:ltr; }
  .lp-feat-split .eyebrow {
    color:var(--sf-blue); font-size:13px; font-weight:700;
    letter-spacing:0.08em; text-transform:uppercase; margin-bottom:16px;
  }
  .lp-feat-split h3 {
    color:var(--sf-navy); font-size:34px; line-height:1.25; letter-spacing:-0.01em;
    margin-bottom:20px; font-weight:800;
  }
  .lp-feat-split p {
    color:var(--sf-text-sub); font-size:16px; line-height:1.8; margin-bottom:24px;
  }
  .lp-feat-split .checklist { list-style:none; padding:0; margin-bottom:28px; }
  .lp-feat-split .checklist li {
    padding:8px 0 8px 30px; position:relative; color:var(--sf-text); font-size:15px; line-height:1.65;
  }
  .lp-feat-split .checklist li::before {
    content:""; position:absolute; left:0; top:12px; width:18px; height:18px;
    background:var(--sf-blue) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>') no-repeat center/12px;
    border-radius:50%;
  }
  .lp-feat-split .learn-more { color:var(--sf-blue); font-size:15px; font-weight:700; text-decoration:none; }
  .lp-feat-split .learn-more::after { content:" →"; }
  .lp-feat-split-visual svg { width:100%; height:auto; border-radius:12px; box-shadow:0 12px 40px rgba(3,46,97,0.12); }

  /* Feature Grid (6機能カード) */
  .lp-features { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .lp-feat-card {
    background:#fff; border:1px solid var(--sf-line); border-radius:10px;
    padding:32px 26px; transition:box-shadow .2s, transform .2s;
  }
  .lp-feat-card:hover { box-shadow:0 12px 32px rgba(3,46,97,0.10); transform:translateY(-2px); }
  .lp-feat-card .icon {
    width:48px; height:48px; margin-bottom:20px; border-radius:8px;
    background:var(--sf-blue-light); color:var(--sf-blue);
    display:flex; align-items:center; justify-content:center;
  }
  .lp-feat-card h3 { color:var(--sf-navy); font-size:19px; margin-bottom:12px; font-weight:800; letter-spacing:-0.005em; }
  .lp-feat-card p { color:var(--sf-text-sub); font-size:14.5px; line-height:1.75; }

  /* Pricing */
  .lp-billing-toggle {
    display:inline-flex; background:var(--sf-bg-gray); border-radius:8px; padding:4px;
    margin:0 auto 40px; gap:2px;
  }
  .lp-billing-toggle button {
    background:transparent; border:0; padding:10px 22px; border-radius:6px;
    color:var(--sf-text-sub); font-size:14px; font-weight:700; cursor:pointer;
    transition:background .15s, color .15s;
    display:inline-flex; align-items:center; gap:8px;
  }
  .lp-billing-toggle button.active {
    background:#fff; color:var(--sf-navy); box-shadow:0 2px 8px rgba(3,46,97,0.10);
  }
  .lp-billing-toggle .save {
    background:var(--sf-blue-light); color:var(--sf-blue); padding:2px 8px;
    border-radius:99px; font-size:11px; font-weight:800; letter-spacing:0.02em;
  }
  .lp-billing-toggle button.active .save { background:var(--sf-blue); color:#fff; }
  .lp-plan .price-net { color:var(--sf-text-sub); font-size:12px; margin-top:2px; }
  .lp-plan .price-cycle { color:var(--sf-text-sub); font-size:12px; margin-top:4px; min-height:16px; }
  .lp-plan .price-cycle strong { color:var(--sf-navy); font-weight:700; }

  /* Enterprise band */
  .lp-enterprise {
    margin-top:48px; background:linear-gradient(135deg,#032e61 0%,#0176d3 100%);
    color:#fff; border-radius:16px; padding:48px 40px;
    display:grid; grid-template-columns:1.5fr 1fr; gap:32px; align-items:center;
    text-align:left; box-shadow:0 20px 60px rgba(3,46,97,0.20);
    position:relative; overflow:hidden;
  }
  .lp-enterprise::before {
    content:""; position:absolute; top:-100px; right:-100px;
    width:300px; height:300px; border-radius:50%; opacity:0.15;
    background:radial-gradient(circle,#fff,transparent 70%);
  }
  .lp-enterprise > * { position:relative; z-index:1; }
  .lp-enterprise .eyebrow {
    color:#7fb3e4; font-size:12px; font-weight:700;
    letter-spacing:0.08em; text-transform:uppercase; margin-bottom:12px;
  }
  .lp-enterprise h3 {
    color:#fff; font-size:26px; margin-bottom:14px; font-weight:800;
    letter-spacing:-0.01em;
  }
  .lp-enterprise p {
    color:rgba(255,255,255,0.85); font-size:15px; line-height:1.75; margin:0;
  }
  .lp-enterprise-features {
    margin-top:16px; display:grid; grid-template-columns:1fr 1fr; gap:8px 24px;
  }
  .lp-enterprise-features div {
    padding-left:22px; position:relative;
    color:rgba(255,255,255,0.9); font-size:13.5px; line-height:1.5;
  }
  .lp-enterprise-features div::before {
    content:""; position:absolute; left:0; top:5px; width:14px; height:14px;
    background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>') no-repeat center/14px;
  }
  .lp-enterprise-cta { text-align:right; }
  .lp-enterprise-cta .btn {
    background:#fff; color:var(--sf-navy); padding:15px 30px; border-radius:6px;
    font-size:15px; font-weight:800; border:0; cursor:pointer; letter-spacing:0.01em;
    transition:background .15s;
  }
  .lp-enterprise-cta .btn:hover { background:var(--sf-blue-light); }
  .lp-enterprise-cta .note {
    display:block; margin-top:10px; color:rgba(255,255,255,0.65); font-size:12px;
  }

  .lp-plans { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .lp-plan {
    background:#fff; border:1px solid var(--sf-line); border-radius:12px;
    padding:36px 30px; position:relative; display:flex; flex-direction:column;
  }
  .lp-plan.recommended {
    border:2px solid var(--sf-blue); box-shadow:0 12px 32px rgba(1,118,211,0.15);
  }
  .lp-plan .rec-tag {
    position:absolute; top:-13px; left:30px; background:var(--sf-blue); color:#fff;
    padding:5px 14px; border-radius:4px; font-size:11px; font-weight:700; letter-spacing:0.05em;
  }
  .lp-plan h3 { color:var(--sf-navy); font-size:22px; margin-bottom:6px; font-weight:800; letter-spacing:-0.01em; }
  .lp-plan .plan-tag { color:var(--sf-text-sub); font-size:13px; margin-bottom:24px; min-height:38px; }
  .lp-plan .price { color:var(--sf-navy); font-size:40px; font-weight:800; letter-spacing:-0.02em; line-height:1; }
  .lp-plan .price small { font-size:15px; color:var(--sf-text-sub); font-weight:500; }
  .lp-plan .plan-cta {
    background:var(--sf-blue); color:#fff; padding:12px 20px; border-radius:4px;
    font-size:14px; font-weight:700; border:0; cursor:pointer; margin:24px 0 24px;
    transition:background .15s;
  }
  .lp-plan.recommended .plan-cta { background:var(--sf-blue); }
  .lp-plan:not(.recommended) .plan-cta { background:#fff; color:var(--sf-blue); border:1.5px solid var(--sf-blue); }
  .lp-plan .plan-cta:hover { background:var(--sf-blue-dark); color:#fff; border-color:var(--sf-blue-dark); }
  .lp-plan ul { list-style:none; padding:0; margin:0; border-top:1px solid var(--sf-line); padding-top:20px; }
  .lp-plan li {
    padding:8px 0 8px 26px; position:relative; color:var(--sf-text); font-size:14px; line-height:1.6;
  }
  .lp-plan li::before {
    content:""; position:absolute; left:0; top:12px; width:14px; height:14px;
    background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%230176d3" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>') no-repeat center/14px;
  }
  .lp-yearly-note {
    text-align:center; margin-top:36px; color:var(--sf-text-sub); font-size:14px;
  }
  .lp-yearly-note strong { color:var(--sf-navy); font-weight:700; }

  /* 全機能比較表 */
  .lp-compare-wrap { margin-top:64px; }
  .lp-compare-title {
    color:var(--sf-navy); font-size:22px; font-weight:800; letter-spacing:-0.01em;
    text-align:center; margin-bottom:24px;
  }
  .lp-compare-scroll { overflow-x:auto; }
  .lp-compare {
    width:100%; min-width:820px; border-collapse:collapse; background:#fff;
    border:1px solid var(--sf-line); border-radius:12px; overflow:hidden;
    box-shadow:0 8px 24px rgba(3,46,97,0.06);
  }
  .lp-compare th, .lp-compare td {
    padding:14px 18px; text-align:left; font-size:13.5px; line-height:1.55;
    border-bottom:1px solid var(--sf-line); vertical-align:top;
  }
  .lp-compare thead th {
    background:var(--sf-navy); color:#fff; font-weight:800; font-size:14px;
    text-align:center; border-bottom:0;
  }
  .lp-compare thead th.rec { background:var(--sf-blue); }
  .lp-compare tbody th {
    color:var(--sf-text); font-weight:700; background:var(--sf-bg-gray); width:34%;
  }
  .lp-compare tbody td { color:var(--sf-text-sub); text-align:center; }
  .lp-compare tr.section-row th {
    background:var(--sf-bg-blue); color:var(--sf-blue); text-transform:uppercase;
    letter-spacing:0.05em; font-size:11px; font-weight:800; padding:8px 18px;
  }
  .lp-compare .tick {
    display:inline-block; width:20px; height:20px; border-radius:50%;
    background:var(--sf-blue) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>') no-repeat center/13px;
  }
  .lp-compare td.rec {
    background:rgba(232,244,253,0.4); color:var(--sf-navy); font-weight:700;
  }
  .lp-compare tbody tr:last-child th, .lp-compare tbody tr:last-child td { border-bottom:0; }

  /* Steps */
  .lp-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; }
  .lp-step { position:relative; padding-left:20px; border-left:3px solid var(--sf-blue); }
  .lp-step .num-tag {
    color:var(--sf-blue); font-size:13px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:12px;
  }
  .lp-step h3 { color:var(--sf-navy); font-size:22px; margin-bottom:12px; font-weight:800; letter-spacing:-0.01em; }
  .lp-step p { color:var(--sf-text-sub); font-size:15px; line-height:1.8; }

  /* FAQ */
  .lp-faq { max-width:920px; margin:0 auto; }
  .lp-faq details {
    border-bottom:1px solid var(--sf-line); padding:24px 0;
  }
  .lp-faq details:first-child { border-top:1px solid var(--sf-line); }
  .lp-faq summary {
    cursor:pointer; font-weight:700; color:var(--sf-navy); font-size:17px;
    list-style:none; padding-right:32px; position:relative;
  }
  .lp-faq summary::-webkit-details-marker { display:none; }
  .lp-faq summary::after {
    content:""; position:absolute; right:4px; top:6px; width:14px; height:14px;
    background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%230176d3" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>') no-repeat center/14px;
    transition:transform .2s;
  }
  .lp-faq details[open] summary::after { transform:rotate(180deg); }
  .lp-faq details[open] summary { margin-bottom:14px; }
  .lp-faq p { color:var(--sf-text-sub); font-size:15px; line-height:1.85; }

  /* Final CTA */
  .lp-final { background:var(--sf-navy); color:#fff; padding:80px 32px; }
  .lp-final-inner { max-width:1000px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr; gap:48px; align-items:center; }
  .lp-final .eyebrow { color:#7fb3e4; font-size:13px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:14px; }
  .lp-final h2 { color:#fff; font-size:36px; line-height:1.25; margin-bottom:14px; font-weight:800; letter-spacing:-0.01em; }
  .lp-final p { color:rgba(255,255,255,0.75); font-size:16px; line-height:1.7; }
  .lp-final-cta { display:flex; flex-direction:column; gap:12px; }
  .lp-final-cta .lp-cta-primary { background:#fff; color:var(--sf-navy); font-weight:800; }
  .lp-final-cta .lp-cta-primary:hover { background:var(--sf-blue-light); }
  .lp-final-cta .lp-cta-secondary { background:transparent; color:#fff; border-color:rgba(255,255,255,0.4); }
  .lp-final-cta .lp-cta-secondary:hover { background:rgba(255,255,255,0.1); border-color:#fff; }

  /* Footer */
  .lp-footer { background:#fff; border-top:1px solid var(--sf-line); padding:48px 32px 32px; }
  .lp-footer-inner { max-width:1240px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; margin-bottom:32px; }
  .lp-footer h4 { color:var(--sf-navy); font-size:14px; margin-bottom:14px; font-weight:800; }
  .lp-footer ul { list-style:none; padding:0; margin:0; }
  .lp-footer li { margin-bottom:8px; }
  .lp-footer a { color:var(--sf-text-sub); text-decoration:none; font-size:14px; transition:color .15s; }
  .lp-footer a:hover { color:var(--sf-blue); }
  .lp-footer .company-block .brand { display:flex; align-items:center; gap:10px; margin-bottom:14px; color:var(--sf-navy); font-weight:800; font-size:18px; }
  .lp-footer .company-block .brand-mark { width:30px; height:30px; border-radius:8px; background:var(--sf-navy); color:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:800; }
  .lp-footer .company-block p { color:var(--sf-text-sub); font-size:13px; line-height:1.7; }
  .lp-footer .bottom-bar {
    border-top:1px solid var(--sf-line); padding-top:24px; display:flex; justify-content:space-between; align-items:center;
    color:var(--sf-text-sub); font-size:12px; flex-wrap:wrap; gap:16px; max-width:1240px; margin:0 auto;
  }
  .lp-footer .bottom-bar a { margin-left:18px; }

  @media (max-width:960px) {
    /* 改善4-9: ナビを消すのではなく details ベースのハンバーガーに畳む */
    .lp-header nav { display:none; }
    .lp-nav-toggle { display:block; }
    .lp-hero { padding:56px 24px 72px; }
    .lp-hero-inner { grid-template-columns:1fr; gap:40px; }
    .lp-hero h1 { font-size:36px; }
    .lp-hero .sub { font-size:16px; }
    .lp-section { padding:64px 24px; }
    .lp-section h2 { font-size:28px; }
    .lp-feat-split { grid-template-columns:1fr; gap:32px; }
    .lp-feat-split.reverse { direction:ltr; }
    .lp-feat-split h3 { font-size:24px; }
    .lp-features, .lp-plans, .lp-steps { grid-template-columns:1fr; }
    .lp-stats-inner { grid-template-columns:repeat(2,1fr); gap:24px; }
    .lp-stat .num { font-size:32px; }
    .lp-trust-items { gap:24px; }
    .lp-final-inner { grid-template-columns:1fr; }
    .lp-final h2 { font-size:26px; }
    .lp-footer-inner { grid-template-columns:1fr 1fr; }
    .lp-footer .bottom-bar { flex-direction:column; text-align:center; }
    .lp-enterprise { grid-template-columns:1fr; padding:32px 24px; text-align:left; }
    .lp-enterprise-cta { text-align:left; }
    .lp-enterprise-features { grid-template-columns:1fr; }
  }

  /* ===== Trust セクション ===== */
  .lp-trust-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px; text-align:left; }
  .lp-trust-card { background:#fff; border:1px solid #e0e5ee; border-radius:12px; padding:28px 24px; }
  .lp-trust-icon { font-size:36px; margin-bottom:8px; }
  .lp-trust-card h3 { font-size:18px; color:var(--sf-navy); margin:0 0 12px; }
  .lp-trust-card ul { padding-left:18px; margin:0; color:#4a5568; font-size:14px; line-height:1.7; }
  .lp-trust-card li { margin:6px 0; }

  /* ===== 会社情報・エビデンス ===== */
  .lp-company-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
  .lp-company-table { width:100%; border-collapse:collapse; margin-top:16px; font-size:14px; }
  .lp-company-table th, .lp-company-table td { padding:10px 12px; border-bottom:1px solid #e0e5ee; text-align:left; vertical-align:top; }
  .lp-company-table th { width:120px; color:var(--sf-navy); font-weight:700; background:#f8fafc; }
  .lp-traction-note { background:#fff; border-left:4px solid var(--sf-blue); padding:20px 24px; border-radius:0 8px 8px 0; margin-top:16px; }
  .lp-traction-note p { font-size:14px; line-height:1.8; color:#334155; margin:0 0 10px; }
  .lp-traction-note ol { padding-left:20px; color:#334155; font-size:14px; margin:10px 0 0; }
  .lp-traction-note li { margin:4px 0; }

  /* ===== お問い合わせフォーム ===== */
  .lp-contact-form { max-width:780px; margin:32px auto 0; text-align:left; background:#fff; border:1px solid #e0e5ee; border-radius:12px; padding:32px; }
  .lp-contact-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
  .lp-contact-form label { display:block; font-size:13px; font-weight:600; color:var(--sf-navy); margin-bottom:16px; }
  .lp-contact-form input, .lp-contact-form textarea { display:block; width:100%; margin-top:6px; padding:10px 12px; border:1px solid #cbd5e1; border-radius:6px; font-size:14px; font-family:inherit; box-sizing:border-box; resize:vertical; }
  .lp-contact-form input:focus, .lp-contact-form textarea:focus { border-color:var(--sf-blue); }
  /* 改善4-8: キーボード操作時のフォーカスを必ず可視化する (WCAG 2.2 SC 2.4.11) */
  :focus-visible { outline:2px solid var(--sf-blue, #2563eb); outline-offset:2px; border-radius:4px; }
  .req-mark { color:#dc2626; font-weight:700; margin-left:2px; }
  .lp-contact-actions { display:flex; gap:12px; margin-top:20px; }
  .lp-contact-actions .lp-cta-primary, .lp-contact-actions .lp-cta-secondary { flex:1; padding:14px 24px; font-size:15px; }
  .lp-contact-msg { margin-top:14px; font-size:14px; font-weight:600; }
  .lp-contact-msg.ok { color:#16a34a; }
  .lp-contact-msg.err { color:#dc2626; }

  /* ===== スクロール追従型フローティングCTA ===== */
  .lp-fab { position:fixed; bottom:24px; right:24px; z-index:60; display:none; flex-direction:column; gap:10px; }
  .lp-fab.on { display:flex; }
  .lp-fab-primary { background:var(--sf-blue); color:#fff; padding:14px 22px; border-radius:999px; border:0; font-size:14px; font-weight:700; cursor:pointer; box-shadow:0 8px 24px rgba(1,118,211,.35); display:inline-flex; align-items:center; gap:8px; transition:all .15s; }
  .lp-fab-primary:hover { background:var(--sf-blue-dark); transform:translateY(-1px); }
  .lp-fab-contact { background:#fff; color:var(--sf-blue); border:1px solid var(--sf-blue); padding:12px 18px; border-radius:999px; font-size:13px; font-weight:700; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.08); }
  .lp-fab-contact:hover { background:var(--sf-blue-light); }

  /* ===== 目次(サマリー) ===== */
  .lp-summary-bar { background:#fff; border-top:1px solid #e0e5ee; border-bottom:1px solid #e0e5ee; padding:20px 0; }
  .lp-summary-inner { max-width:1200px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:center; }
  .lp-summary-title { color:var(--sf-blue); font-size:13px; font-weight:800; letter-spacing:.05em; }
  .lp-summary-nav { display:flex; gap:8px; flex-wrap:wrap; }
  .lp-summary-nav a { color:#334155; text-decoration:none; font-size:13px; font-weight:600; padding:6px 12px; border:1px solid #e0e5ee; border-radius:999px; transition:all .15s; }
  .lp-summary-nav a:hover { background:var(--sf-blue-light); color:var(--sf-blue); border-color:var(--sf-blue); }

  /* ===== モバイル対応 ===== */
  @media (max-width:768px){
    .lp-trust-grid, .lp-company-grid { grid-template-columns:1fr; gap:24px; }
    .lp-contact-row { grid-template-columns:1fr; gap:0; }
    .lp-contact-form { padding:20px; }
    .lp-contact-actions { flex-direction:column; }
    .lp-fab { bottom:16px; right:16px; }
    .lp-fab-primary { padding:12px 18px; font-size:13px; }
    .lp-summary-inner { grid-template-columns:1fr; gap:12px; }
    .lp-compare { font-size:12px; }
    .lp-compare th, .lp-compare td { padding:8px 6px; }
  }

  /* === D3 モバイル対応精査 === */
  @media (max-width:768px){
    /* iOS Safari 自動ズーム防止 (input系は16px以上必須) */
    input, textarea, select { font-size:16px !important; }

    /* ヘッダー: ブランド切替select・plan badge・ボタン群を wrap 可 */
    #topbar { flex-wrap:wrap; gap:6px; row-gap:6px; }
    #topbar > * { flex-shrink:0; }
    #lpTopbar { flex-wrap:wrap; gap:6px; }

    /* タブバーは横スクロール可能に + タブ内ボタンの min-width:auto */
    .tabbar {
      overflow-x:auto;
      -webkit-overflow-scrolling:touch;
      white-space:nowrap;
      flex-wrap:nowrap;
    }
    .tabbar::-webkit-scrollbar { height:3px; }
    .tabbar button, .tabbar .tab, .tabbar > * {
      min-width:auto;
      flex-shrink:0;
      white-space:nowrap;
    }

    /* 主要ボタンの最低タップサイズ44px確保 */
    .btn-primary, .btn-dark {
      min-height:44px;
      min-width:44px;
      padding-top:10px;
      padding-bottom:10px;
    }


    /* チャット欄の高さ制限 */
    #chat { max-height:50vh; }

    /* LPヒーロー見出しを32px に */
    .lp-hero h1, .lp-hero .lp-hero-title, .lp-hero-headline { font-size:32px !important; line-height:1.25; }

    /* LP-fabボタンの位置とサイズ調整 */
    .lp-fab { bottom:12px !important; right:12px !important; }
    .lp-fab-primary { padding:10px 14px; font-size:12px; }
    .lp-fab-secondary { padding:8px 12px; font-size:12px; }
  }

  /* === D3 モバイル対応精査: 375px幅 iPhone Safari 最優先 === */
  @media (max-width:420px){
    /* ダッシュボードのカードを1カラム化 */
    .dcards, .usage-cards, .lp-trust-grid, .lp-features, .lp-plans, .lp-company-grid {
      grid-template-columns:1fr !important;
      gap:12px;
    }

    /* モーダル (.overlay .pricing) を95vwに */
    .overlay .pricing {
      width:95vw !important;
      max-width:95vw !important;
      max-height:90vh;
      overflow-y:auto;
      padding:16px;
      font-size:12px;
    }
    .overlay .pricing table {
      display:block;
      overflow-x:auto;
      -webkit-overflow-scrolling:touch;
      font-size:12px;
    }
    .overlay .pricing th, .overlay .pricing td { padding:6px 4px; font-size:12px; }

    /* ヘッダー内ボタン間隔を詰める */
    #topbar { padding:8px; }
    #topbar button { padding:8px 10px; font-size:12px; }

    /* LPヒーロー更に微調整 */
    .lp-hero h1, .lp-hero .lp-hero-title, .lp-hero-headline { font-size:28px !important; }
  }
  
/* クリエイティブ生成のサブタブ (2026-08-28) */
.csub-tab {
  background: transparent; border: 1px solid var(--line); border-radius: 999px;
  padding: 7px 14px; font-size: 13px; cursor: pointer; color: var(--gray);
  font-family: inherit;
}
.csub-tab:hover { background: #f1f5f9; }
.csub-tab.active {
  background: var(--navy); color: #fff; border-color: var(--navy); font-weight: 700;
}
.cpanel[data-csub] { display: none; }
.cpanel.csub-visible { display: block; }
