#corporate-demo-contact-root,#corporate-demo-contact-root *{box-sizing:border-box}
body.app-modal-open #corporate-demo-contact-root{visibility:hidden;pointer-events:none}
.corporate-contact-trigger{position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:1200;display:grid;grid-template-columns:auto minmax(0,1fr) 42px;align-items:center;gap:12px;width:min(390px,calc(100vw - 40px));min-height:86px;border:1px solid rgba(255,255,255,.17);border-radius:15px;background:#123f34;padding:14px 15px;color:#fff;font:inherit;box-shadow:0 16px 44px rgba(18,63,52,.3);text-align:left;cursor:pointer;transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease}
.corporate-contact-trigger:hover{background:#0d332a;box-shadow:0 20px 50px rgba(18,63,52,.38);transform:translateY(-3px)}
.corporate-contact-trigger:active{transform:translateY(-1px)}
.corporate-contact-trigger:focus-visible{outline:3px solid rgba(40,117,239,.45);outline-offset:3px}
.corporate-contact-trigger-badge{align-self:start;border-radius:999px;background:#f6d981;padding:4px 7px;color:#493700;font-size:10px;font-weight:700;letter-spacing:.05em;white-space:nowrap}
.corporate-contact-trigger-copy{display:grid;gap:3px;min-width:0}
.corporate-contact-trigger-copy strong{font-size:15px;line-height:1.4;letter-spacing:-.01em}
.corporate-contact-trigger-copy small{color:#c9ded8;font-size:11px;line-height:1.45}
.corporate-contact-trigger i{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#fff;color:#123f34;font-size:18px;font-style:normal;transition:transform .18s ease}
.corporate-contact-trigger:hover i{transform:translateX(2px)}
.corporate-contact-backdrop{position:fixed;inset:0;z-index:1210;background:rgba(12,25,38,.28);backdrop-filter:blur(2px)}
.corporate-contact-panel{position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:1211;width:min(640px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto;border:1px solid #d7dfdc;border-radius:16px;background:#fff;padding:25px 27px 20px;color:#171a19;font-family:inherit;box-shadow:0 24px 76px rgba(18,34,42,.28)}
.corporate-contact-panel:focus{outline:0}
.corporate-contact-panel header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.corporate-contact-panel header>div>span{display:block;color:#147453;font-size:10px;font-weight:700;letter-spacing:.14em}
.corporate-contact-panel h2{margin:5px 0 0;font-size:25px;line-height:1.3;letter-spacing:-.03em}
.corporate-contact-panel header button{flex:0 0 44px;width:44px;height:44px;border:0;border-radius:10px;background:#eef3f1;color:#52615d;font:inherit;font-size:22px;cursor:pointer}
.corporate-contact-panel header button:hover{background:#e4ebe8}
.corporate-contact-panel header button:focus-visible{outline:3px solid rgba(40,117,239,.35);outline-offset:2px}
.corporate-contact-intro{margin:13px 0 20px}
.corporate-contact-intro p{margin:0;color:#5c6763;font-size:14px;line-height:1.7}
.corporate-contact-intro>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.corporate-contact-intro span{border-radius:999px;background:#eef6f3;padding:5px 9px;color:#24614f;font-size:11px;font-weight:600}
.corporate-contact-panel form{display:grid;grid-template-columns:1fr 1fr;gap:13px 15px}
.corporate-contact-panel label{display:grid;gap:6px}
.corporate-contact-panel .contact-field-wide{grid-column:1/-1}
.corporate-contact-panel label>span{font-size:13px;font-weight:650}
.corporate-contact-panel input,.corporate-contact-panel textarea,.corporate-contact-panel select{width:100%;border:1px solid #c8d4d0;border-radius:9px;background:#fff;padding:11px 12px;outline:0;color:#171a19;font:inherit;font-size:14px;transition:border-color .15s ease,box-shadow .15s ease}
.corporate-contact-panel input,.corporate-contact-panel select{min-height:48px}
.corporate-contact-panel textarea{min-height:108px;resize:vertical;line-height:1.65}
.corporate-contact-panel input::placeholder,.corporate-contact-panel textarea::placeholder{color:#8e9995}
.corporate-contact-panel input:focus,.corporate-contact-panel textarea:focus,.corporate-contact-panel select:focus{border-color:#147453;box-shadow:0 0 0 3px rgba(20,116,83,.14)}
.corporate-contact-panel form>button{grid-column:1/-1;min-height:50px;border:0;border-radius:10px;background:#147453;padding:0 17px;color:#fff;font:inherit;font-size:14px;font-weight:650;box-shadow:0 9px 24px rgba(20,116,83,.2);cursor:pointer}
.corporate-contact-panel form>button:hover{background:#0d6446}
.corporate-contact-panel form>button:focus-visible{outline:3px solid rgba(40,117,239,.4);outline-offset:2px}
.corporate-contact-panel form>button:disabled{cursor:not-allowed;opacity:.7}
.corporate-contact-panel form>button span{float:right;font-size:17px}
.corporate-contact-status{grid-column:1/-1;min-height:20px;margin:0;color:#147453;font-size:12px;line-height:1.5}
.corporate-contact-panel>small{display:block;margin-top:5px;color:#6e7874;font-size:11px;line-height:1.6}
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}
@media(max-width:760px){.corporate-contact-trigger{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px);min-height:82px}.corporate-contact-trigger-copy strong{font-size:14px}.corporate-contact-panel{right:0;bottom:0;width:100%;max-height:92vh;border-radius:18px 18px 0 0;padding:21px 18px calc(17px + env(safe-area-inset-bottom))}.corporate-contact-panel h2{font-size:22px}.corporate-contact-panel form{grid-template-columns:1fr}.corporate-contact-panel label{grid-column:1!important}.corporate-contact-panel input,.corporate-contact-panel select,.corporate-contact-panel textarea{font-size:16px}.corporate-contact-panel input,.corporate-contact-panel select{min-height:48px}}
@media(prefers-reduced-motion:reduce){.corporate-contact-trigger,.corporate-contact-trigger i{transition:none}}
#corporate-demo-contact-root.lp-mode .corporate-contact-trigger{width:auto;max-width:min(420px,calc(100vw - 24px));min-height:54px;grid-template-columns:auto minmax(0,1fr) 20px;gap:9px;padding:9px 15px;border-radius:999px}
#corporate-demo-contact-root.lp-mode .corporate-contact-trigger-copy small{display:none}
#corporate-demo-contact-root.lp-mode .corporate-contact-trigger-copy strong{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#corporate-demo-contact-root.lp-mode .corporate-contact-trigger-badge{align-self:center;background:#eaf4ef;color:#0a4d38}

/* ===== demo-fab: 常時表示の「実際にデモを試す」カード（人のイラスト入り） ===== */
.demo-fab{position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:1200;display:grid;gap:11px;width:min(330px,calc(100vw - 32px));border:1px solid #d7dfdc;border-radius:16px;background:#fff;padding:15px 15px 12px;box-shadow:0 18px 48px rgba(18,34,42,.18);font:inherit}
.demo-fab-close{position:absolute;top:-9px;right:-9px;display:grid;place-items:center;width:26px;height:26px;border:1px solid #d7dfdc;border-radius:50%;background:#fff;padding:0;color:#52615d;font:inherit;font-size:15px;line-height:1;cursor:pointer;box-shadow:0 4px 12px rgba(18,34,42,.16);transition:background-color .15s ease,color .15s ease}
.demo-fab-close:hover{background:#eef3f1;color:#171a19}
.demo-fab-close:focus-visible{outline:3px solid rgba(40,117,239,.4);outline-offset:2px}
.demo-fab-head{display:flex;align-items:center;gap:12px}
.demo-fab-avatar{position:relative;flex:none;width:48px;height:48px}
.demo-fab-avatar img{width:100%;height:100%;border-radius:50%;border:1px solid #d7dfdc;background:#eaf4ef;object-fit:cover;object-position:center top;display:block}
.demo-fab-dot{position:absolute;right:1px;bottom:1px;width:11px;height:11px;border-radius:50%;background:#1fae74;border:2px solid #fff;animation:demo-fab-pulse 2.2s ease-in-out infinite}
@keyframes demo-fab-pulse{0%,100%{box-shadow:0 0 0 0 rgba(31,174,116,.45)}55%{box-shadow:0 0 0 6px rgba(31,174,116,0)}}
.demo-fab-bubble{position:absolute;left:50%;bottom:calc(100% + 4px);z-index:2;white-space:nowrap;font-size:10.5px;font-weight:700;line-height:1;color:#34463f;background:#fff;border:1.5px solid rgba(15,107,77,.45);border-radius:9px;padding:5px 8px;box-shadow:0 2px 8px rgba(21,32,28,.12);opacity:0;transform:translateX(-50%) scale(.5);transform-origin:bottom center;animation:demo-fab-say 9s infinite;pointer-events:none}
.demo-fab-bubble::after{content:"";position:absolute;left:50%;bottom:-4px;width:6px;height:6px;background:#fff;border-right:1.5px solid rgba(15,107,77,.45);border-bottom:1.5px solid rgba(15,107,77,.45);transform:translateX(-50%) rotate(45deg)}
@keyframes demo-fab-say{0%,5%{opacity:0;transform:translateX(-50%) scale(.5)}10%,32%{opacity:1;transform:translateX(-50%) scale(1)}38%,100%{opacity:0;transform:translateX(-50%) scale(.5)}}
.demo-fab-copy{display:grid;gap:3px;margin:0;min-width:0}
.demo-fab-copy strong{font-size:14.5px;line-height:1.35;letter-spacing:-.01em;color:#171a19}
.demo-fab-copy small{color:#6e7874;font-size:11px;line-height:1.45}
.demo-fab-primary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;border-radius:11px;background:#147453;padding:0 15px;color:#fff;font-size:14px;font-weight:700;text-decoration:none;box-shadow:0 9px 24px rgba(20,116,83,.22);transition:background-color .18s ease,transform .18s ease}
.demo-fab-primary:hover{background:#0d6446;transform:translateY(-1px)}
.demo-fab-primary:focus-visible{outline:3px solid rgba(40,117,239,.4);outline-offset:2px}
.demo-fab-corp{display:flex;align-items:center;gap:8px;min-height:38px;border:0;border-radius:10px;background:#f2f6f4;padding:0 11px;color:#24614f;font:inherit;font-size:12px;font-weight:650;text-align:left;text-decoration:none;cursor:pointer;transition:background-color .15s ease}
.demo-fab-corp:hover{background:#e8efec}
.demo-fab-corp:focus-visible{outline:3px solid rgba(40,117,239,.4);outline-offset:2px}
.demo-fab-corp i{margin-left:auto;font-style:normal}
@media (max-width:560px){
  .demo-fab{right:14px;bottom:max(14px,env(safe-area-inset-bottom));width:min(300px,calc(100vw - 28px))}
  #corporate-demo-contact-root.lp-mode .demo-fab{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px);padding:9px 56px 9px 9px;border-radius:14px}
  #corporate-demo-contact-root.lp-mode .demo-fab-head,
  #corporate-demo-contact-root.lp-mode .demo-fab-corp{display:none}
  #corporate-demo-contact-root.lp-mode .demo-fab-primary{min-height:44px;padding:0 13px;box-shadow:none}
  #corporate-demo-contact-root.lp-mode .demo-fab-close{top:50%;right:7px;width:44px;height:44px;border:0;background:#f2f6f4;box-shadow:none;transform:translateY(-50%)}
}
@media (prefers-reduced-motion:reduce){.demo-fab-bubble{animation:none;opacity:0}.demo-fab-dot{animation:none}}

/* corp-fab: ログイン後のコンパクト法人相談カード */
.corp-fab{width:auto;max-width:calc(100vw - 32px);padding:10px 12px;gap:0}
.corp-fab:not(.is-open) .corp-fab-form{display:none}
.corp-fab:not(.is-open) .demo-fab-copy small{display:none}
.corp-fab .demo-fab-head{gap:9px}
.corp-fab .demo-fab-avatar{width:34px;height:34px}
.corp-fab .demo-fab-copy strong{font-size:13px;line-height:1.3}
.corp-fab-toggle{display:grid;place-items:center;flex:none;width:40px;height:40px;margin-left:auto;border:0;border-radius:50%;background:#f2f6f4;color:#24614f;font:inherit;font-size:16px;line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease}
.corp-fab-toggle:hover{background:#e8efec;color:#123f34}
.corp-fab-toggle:focus-visible{outline:3px solid rgba(40,117,239,.4);outline-offset:2px}
.corp-fab.is-open{width:min(330px,calc(100vw - 32px));gap:11px}
/* AI編集・モーダル・ヒアリング結果チャットでは、右下が主要入力領域になるため案内自体を退避する。 */
body:has(.assistant-drawer.is-open) .corp-fab,
body:has(.outline-drawer.is-open) .corp-fab,
body:has(.modal-backdrop) .corp-fab,
body:has(.composer-wrap) .corp-fab,
body:has(#composer[style*="display: block"]) .corp-fab,
body:has(.editor-shell) .corp-fab,
body:has(.study-list-page) .corp-fab{display:none}
.corp-fab-form{display:grid;gap:9px;margin:0}
.corp-fab-form input,.corp-fab-form select{width:100%;min-height:42px;border:1px solid #c8d4d0;border-radius:9px;background:#fff;padding:0 12px;color:#171a19;font:inherit;font-size:13px;outline:0;transition:border-color .15s ease,box-shadow .15s ease}
.corp-fab-form select:invalid{color:#8e9995}
.corp-fab-form input::placeholder{color:#8e9995}
.corp-fab-form input:focus,.corp-fab-form select:focus{border-color:#147453;box-shadow:0 0 0 3px rgba(20,116,83,.14)}
.corp-fab-form button[type="submit"]{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;border:0;border-radius:9px;background:#147453;padding:0 14px;color:#fff;font:inherit;font-size:13.5px;font-weight:700;box-shadow:0 9px 24px rgba(20,116,83,.2);cursor:pointer;transition:background-color .18s ease}
.corp-fab-form button[type="submit"]:hover{background:#0d6446}
.corp-fab-form button[type="submit"]:disabled{cursor:not-allowed;opacity:.7}
.corp-fab-status{min-height:14px;margin:0;color:#c0392b;font-size:11px;line-height:1.5}
.corp-fab-done{margin:4px 0;color:#147453;font-size:13px;font-weight:650;line-height:1.6}

/* 狭い画面でも既定は同じコンパクトトリガーとし、画面端からの余白だけを調整する。 */
@media (max-width:560px){
  .corp-fab{max-width:calc(100vw - 28px);right:14px;bottom:max(14px,env(safe-area-inset-bottom))}
  .corp-fab:not(.is-open){width:52px;padding:6px}
  .corp-fab:not(.is-open) .demo-fab-avatar,
  .corp-fab:not(.is-open) .demo-fab-copy,
  .corp-fab:not(.is-open) .demo-fab-close{display:none}
  .corp-fab:not(.is-open) .demo-fab-head{justify-content:center}
  .corp-fab.is-open{width:min(330px,calc(100vw - 28px));gap:11px}
}
