.ken-chat-btn{position:fixed;bottom:24px;right:24px;width:56px;height:56px;background:var(--cta);border:none;border-radius:50%;cursor:pointer;z-index:400;box-shadow:inset 0 0 0 1px var(--k-btn-edge,#248A5A),0 4px 16px rgba(0,0,0,0.18);display:flex;align-items:center;justify-content:center;transition:transform 0.2s,background-color 0.2s;}
.ken-chat-btn:hover{transform:scale(1.08);background:var(--cta-hover);}
.ken-chat-btn svg{width:26px;height:26px;color:var(--warm-white);}
.ken-chat-panel{display:none;position:fixed;bottom:92px;right:24px;width:380px;max-height:70vh;background:#FDFAF5;border:1px solid rgba(154,123,79,0.3);box-shadow:0 8px 32px rgba(0,0,0,0.15);z-index:401;flex-direction:column;overflow:hidden;}
.ken-chat-panel.open{display:flex;}
.ken-chat-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(154,123,79,0.22);background:#F5F0E8;}
.ken-chat-head h3{font-family:'Jost',sans-serif;font-weight:500;font-size:15px;color:#252322;margin:0;letter-spacing:0.08em;}
.ken-chat-head button{background:none;border:none;cursor:pointer;padding:4px;color:#4A4440;display:flex;align-items:center;}
.ken-chat-head button:hover{color:#252322;}
.ken-chat-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px;}
.ken-chat-answer{font-family:'Jost',sans-serif;font-weight:400;font-size:14px;color:#252322;line-height:1.6;padding:16px;background:#F5F0E8;border-left:3px solid #9A7B4F;}
.ken-chat-q{display:block;width:100%;text-align:left;padding:14px 16px;background:#F5F0E8;border:1px solid rgba(154,123,79,0.3);font-family:'Jost',sans-serif;font-weight:500;font-size:14px;color:#252322;cursor:pointer;transition:background 0.15s,border-color 0.15s;}
.ken-chat-q:hover{background:#9A7B4F;border-color:#9A7B4F;}
.ken-chat-foot{padding:14px 20px;border-top:1px solid rgba(154,123,79,0.22);background:#F5F0E8;text-align:center;}
.ken-chat-foot button{background:none;border:none;font-family:'Jost',sans-serif;font-weight:500;font-size:13px;color:#4A4440;cursor:pointer;letter-spacing:0.1em;text-transform:uppercase;}
.ken-chat-foot button:hover{color:#252322;}
.ken-chat-input{width:100%;padding:10px 12px;border:1px solid rgba(154,123,79,0.3);background:#F5F0E8;font-family:'Jost',sans-serif;font-weight:400;font-size:14px;color:#252322;box-sizing:border-box;}
.ken-chat-input:focus{outline:none;border-color:#9A7B4F;}
.ken-chat-textarea{width:100%;padding:10px 12px;border:1px solid rgba(154,123,79,0.3);background:#F5F0E8;font-family:'Jost',sans-serif;font-weight:400;font-size:14px;color:#252322;resize:vertical;min-height:80px;box-sizing:border-box;}
.ken-chat-textarea:focus{outline:none;border-color:#9A7B4F;}
.ken-chat-send{width:100%;padding:12px;border:none;background:#252322;color:#FDFAF5;font-family:'Jost',sans-serif;font-weight:500;font-size:14px;cursor:pointer;letter-spacing:0.1em;text-transform:uppercase;margin-top:4px;}
.ken-chat-send:hover{background:#C4A962;color:#252322;}
.ken-chat-label{font-family:'Jost',sans-serif;font-weight:500;font-size:13px;color:#4A4440;margin-bottom:4px;display:block;}
.ken-chat-err{font-family:'Jost',sans-serif;font-weight:500;font-size:13px;color:#D94A3D;display:none;margin-top:4px;}
.ken-chat-ok{font-family:'Jost',sans-serif;font-weight:400;font-size:14px;color:#14532D;line-height:1.6;padding:16px;background:#F5F0E8;border-left:3px solid #2AA06A;}
@media(max-width:480px){.ken-chat-panel{left:12px;right:12px;bottom:88px;width:auto;max-height:75vh;}}
/* Design review, batch/2026-09-29, finding 37 and 4 Oct 2026, finding 8
   (U-024): the fixed chat bubble (56px, bottom:24px, right:24px) sat over
   whichever paragraph a reader had scrolled to, since the reading column ran
   to the same edge. The column keeps clear of the bubble's whole footprint
   (88px) at every width where it could reach it: the reading pages' .content
   and the homepage's full-width bands. */
@media(min-width:768px) and (max-width:900px){
  .content,
  body:has(.hero-stage) :is(.hero-stage,.journey,.split-inner,.pv,.section,.kc,.footer-cta){padding-right:88px;}
}
/* 4 Oct 2026 (U-024): on a phone no lane is wide enough to keep a floating
   bubble clear of text, images and the footer at every scroll position, so at
   767px and below the bubble docks into the page flow as a "Ask us anything"
   pill just before the footer. It floats again from 768px. */
.ken-chat-dock-label{display:none;}
@media(max-width:767px){
  /* position:relative, never static: the homepage's fixed paper layer (.hero-bg,
     z-index 0) paints over a static element, which hid the pill there. With
     relative the button's own z-index applies. A page whose content runs
     straight into the pill gives up its bottom padding and last margin, so the
     pill sits one section gap (28px) below the content and 28px above the footer. */
  .content:has(+ .ken-chat-btn){padding-bottom:0;}
  .content:has(+ .ken-chat-btn) > :last-child{margin-bottom:0;}
  .ken-chat-btn{position:relative;bottom:auto;right:auto;width:auto;height:48px;margin:28px auto 28px;padding:0 22px;gap:10px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--k-btn-edge,#248A5A),0 4px 16px rgba(0,0,0,0.18);}
  .ken-chat-btn:hover{transform:none;}
  .ken-chat-dock-label{display:inline;font-family:'Jost',sans-serif;font-weight:500;font-size:15px;color:var(--warm-white);}
  .ken-chat-panel{bottom:12px;max-height:80vh;}
}
@media print{.ken-chat-btn,.ken-chat-panel{display:none!important;}}
/* The chat bubble is fixed bottom-right at z-index 400 and the menu panel is
   205, so with the menu open on a 320px phone the bubble sat on top of the
   Security link in the footer strip. The bubble is unusable behind a
   full-screen menu anyway. The sibling combinator does it with no script:
   the panel is a child of <body> and the button comes after it. */
.menu-panel.open ~ .ken-chat-btn, .menu-panel.open ~ .ken-chat-panel { display: none; }
