/* Michael's AI Assistant (source/chat/chat.css). Every rule targets chat-only classes, so nothing else on any page changes. */
.tc-wrap{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + var(--tc-lift,0px));z-index:58;display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-size:16px;line-height:1.45}
.tc-btn{display:flex;align-items:center;gap:10px;min-height:48px;background:#0E0D0C;color:#fff;border:1.5px solid #D2B27C;border-radius:999px;padding:12px 20px 12px 16px;font:600 15px/1.2 inherit;font-family:inherit;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.32)}
.tc-btn:hover{background:#1c1a18}
.tc-btn:focus-visible,.tc-wrap button:focus-visible,.tc-wrap a:focus-visible,.navai:focus-visible,.tc-invite button:focus-visible{outline:3px solid #D2B27C;outline-offset:2px}
.tc-ic{flex:none;width:20px;height:18px;border-radius:9px 9px 9px 2px;background:#D2B27C;position:relative;display:inline-block}
.tc-ic::before{content:"";position:absolute;left:5px;top:8px;width:2.5px;height:2.5px;border-radius:50%;background:#0E0D0C;box-shadow:4px 0 0 #0E0D0C,8px 0 0 #0E0D0C}
.tc-bs{display:none}
.tc-open .tc-btn .tc-bl,.tc-open .tc-btn .tc-bs{display:none}.tc-open .tc-btn{padding:12px 14px}
.tc-panel{width:min(400px,calc(100vw - 24px));height:min(600px,calc(100vh - 130px));background:#fff;color:#1a1a1a;border:1px solid #ddd;box-shadow:0 18px 50px rgba(0,0,0,.3);display:flex;flex-direction:column}
.tc-panel[hidden]{display:none}
.tc-head{display:flex;gap:10px;align-items:center;background:#0E0D0C;color:#fff;padding:12px 8px 12px 14px}
.tc-head img{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none}
.tc-ht{min-width:0}.tc-ht h2{margin:0;font:700 16px/1.25 inherit;font-family:inherit;color:#fff;letter-spacing:0;text-transform:none}
.tc-ht p{margin:2px 0 0;font-size:13px;line-height:1.4;color:#d8d1c6}.tc-ht a{color:#D2B27C;white-space:nowrap}.tc-ht .tc-txt{margin-left:6px}
.tc-x{margin-left:auto;flex:none;width:44px;height:44px;background:none;border:0;color:#fff;font-size:30px;line-height:1;cursor:pointer;border-radius:4px}
.tc-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#faf8f4;overscroll-behavior:contain}
.tc-m{max-width:88%;padding:10px 12px;line-height:1.5;font-size:15px;white-space:pre-wrap;word-wrap:break-word}
.tc-a{background:#fff;border:1px solid #e6e0d6;align-self:flex-start}
.tc-u{background:#0E0D0C;color:#fff;align-self:flex-end}
.tc-m a{color:#6d4f17;text-decoration:underline}.tc-u a{color:#D2B27C}.tc-wrap a[href^="tel:"]{white-space:nowrap}
.tc-typing{color:#777;font-style:italic}.tc-down{border-color:#D2B27C;font-weight:600}
.tc-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px;background:#faf8f4}
.tc-chips button{font:inherit;font-size:14px;min-height:40px;background:#fff;border:1px solid #D2B27C;color:#1a1a1a;padding:7px 12px;border-radius:999px;cursor:pointer}
.tc-chips button:hover{background:#f6efe2}
.tc-fu{font:inherit;font-size:14px;font-weight:600;min-height:40px;background:#faf8f4;border:0;border-top:1px solid #e6e0d6;color:#6d4f17;padding:8px 14px;text-align:left;cursor:pointer;text-decoration:underline}
.tc-form{display:flex;gap:8px;padding:10px;border-top:1px solid #e6e0d6;background:#fff}
.tc-form textarea{flex:1;resize:none;overflow-y:hidden;line-height:1.4;font:inherit;font-size:16px;padding:10px;border:1px solid #bbb;min-height:44px;max-height:110px;color:#1a1a1a;background:#fff}
.tc-form button{font:inherit;font-weight:700;min-width:64px;background:#D2B27C;color:#111;border:0;padding:0 16px;cursor:pointer}
.tc-form textarea:disabled,.tc-form button:disabled{opacity:.55;cursor:not-allowed}
.tc-note{margin:0;padding:0 12px 10px;font-size:11.5px;line-height:1.4;color:#5f5f5f;background:#fff}.tc-note a{color:#5f5f5f}
.tc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tc-lead{background:#fff;border:1px solid #D2B27C;padding:12px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.tc-lh{margin:0;font-weight:700;font-size:15px}.tc-lx{margin:0;font-size:13px;color:#444}
.tc-lead label{display:flex;flex-direction:column;gap:3px;font-weight:600;font-size:13.5px;text-transform:none;letter-spacing:0;color:#1a1a1a}
.tc-lead label span{font-weight:400;color:#555}
.tc-lead input:not([type=checkbox]),.tc-lead select,.tc-lead textarea{font:inherit;font-size:16px;font-weight:400;padding:9px;border:1px solid #bbb;min-height:44px;color:#1a1a1a;background:#fff}
.tc-lead .tc-ck{flex-direction:row;align-items:flex-start;gap:8px;font-weight:400}.tc-lead .tc-ck input{width:20px;height:20px;margin:0;flex:none}
.tc-lead .hp{position:absolute;left:-9999px;width:1px;height:1px}
.tc-cons{margin:0;font-size:11.5px;line-height:1.4;color:#555}.tc-cons a{color:#555}
.tc-lead button{font:inherit;font-weight:700;min-height:44px;background:#0E0D0C;color:#fff;border:0;padding:10px;cursor:pointer}
.tc-lead button:disabled{opacity:.6}
.tc-lm{margin:0;font-size:13.5px}.tc-lm.bad{color:#a12a2a}

/* desktop header entry point. The nav row is full at 1280px and up, so there the button sits in the empty space to the right of Menu
   (absolute: it can never push the nav or change the header height); chat.js picks icon, short or full label by measured room. */
.navai{display:none}
@media (min-width:1100px){
  .navai{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;font:600 13px/1 var(--body,inherit);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;
    background:#0E0D0C;color:#fff;border:1.5px solid #D2B27C;border-radius:999px;min-height:40px;padding:10px 14px 10px 11px;cursor:pointer}
  .navai:hover{background:#2a2622}
  .navai .tc-ic{width:17px;height:15px}.navai .tc-ic::before{left:4px;top:6.5px;width:2px;height:2px;box-shadow:3.5px 0 0 #0E0D0C,7px 0 0 #0E0D0C}
  .navai .nai-l{display:none}
}
@media (min-width:1280px){
  .navai{position:absolute;top:var(--nai-top,38px);right:16px;transform:translateY(-50%);z-index:2;width:44px;height:44px;padding:0}
  .navai .nai-s,.navai .nai-l{display:none}
  .navai.nai-short,.navai.nai-full{width:auto;padding:10px 14px 10px 11px}
  .navai.nai-short .nai-s{display:inline}.navai.nai-full .nai-l{display:inline}
  .navai.nai-mini{width:36px;height:36px}.navai.nai-off{display:none}
  .navai:not(.nai-short):not(.nai-full) .tc-ic{width:19px;height:17px}
  .navai:not(.nai-short):not(.nai-full)::after{content:"Ask Michael\2019s AI Assistant";position:absolute;right:0;top:calc(100% + 8px);background:#0E0D0C;color:#fff;border:1px solid #D2B27C;
    padding:7px 10px;font:600 12px/1.2 var(--body,inherit);letter-spacing:.04em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s}
  .navai:not(.nai-short):not(.nai-full):hover::after,.navai:not(.nai-short):not(.nai-full):focus-visible::after{opacity:1}
}
/* homepage invitation (under the hero call/text line) */
/* positioned out of flow so the hero (and Michael's locked portrait) never moves */
.hero-tel{position:relative}
.tc-invite{position:absolute;left:0;top:100%;margin-top:6px;white-space:nowrap;font-size:15px;color:inherit;letter-spacing:0;text-transform:none}
@media (max-width:820px){.hero-tel{position:static}.tc-invite{position:static;display:block;margin:10px 0 12px;white-space:normal}}
.tc-invite button{font:inherit;font-weight:600;background:none;border:0;padding:4px 0;color:#D2B27C;text-decoration:underline;text-underline-offset:3px;cursor:pointer;display:inline-flex;align-items:center;gap:7px}
.tc-invite .tc-ic{width:16px;height:14px}.tc-invite .tc-ic::before{left:4px;top:6px;width:2px;height:2px;box-shadow:3px 0 0 #0E0D0C,6px 0 0 #0E0D0C}

/* phones: labeled launcher above the bottom bar; full-screen panel that follows the keyboard */
@media (max-width:760px){
  .tc-wrap{right:max(10px,env(safe-area-inset-right,0px));bottom:calc(10px + var(--tc-lift,0px))}
  .tc-btn{padding:10px 16px 10px 13px;font-size:15px}.tc-btn .tc-bl{display:none}.tc-btn .tc-bs{display:inline}
  .tc-open .tc-btn{display:none}
  .tc-panel{position:fixed;left:0;right:0;top:0;width:100%;height:100%;max-height:none;border:0;padding-bottom:env(safe-area-inset-bottom,0px)}
  .tc-head{padding-top:calc(12px + env(safe-area-inset-top,0px))}
  body.tc-is-open{overflow:hidden}
}
@media (prefers-reduced-motion:no-preference){.tc-panel:not([hidden]){animation:tc-in .16s ease-out}@keyframes tc-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}
@media print{.tc-wrap,.navai,.tc-invite{display:none!important}}
