/* OLF Chat — black and gold. Everything is scoped under .olfc so it cannot affect the rest of the site. */
.olfc{--g:#d2b07a;--g2:#b08b57;--ink:#000;--panel:#0d0d0f;--panel2:#141417;--cream:#f4f1ea;--muted:#cfc9be;--dim:#a39d92;--line:rgba(176,139,87,.38);--serif:"Cormorant Garamond",Georgia,serif;--sans:"Outfit",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
	position:fixed;right:22px;bottom:22px;z-index:99990;font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--cream);-webkit-font-smoothing:antialiased}
.olfc *,.olfc *::before,.olfc *::after{box-sizing:border-box}
.olfc [hidden]{display:none!important}
.olfc button,.olfc input,.olfc select{font-family:inherit;font-size:inherit;margin:0}
.olfc a{color:var(--g);text-decoration:underline;text-underline-offset:3px}
.olfc a:hover{color:#e6c995}
.olfc button:focus-visible,.olfc a:focus-visible,.olfc input:focus-visible,.olfc select:focus-visible,.olfc .olfc-log:focus-visible{outline:2px solid var(--g);outline-offset:2px}

/* launcher */
.olfc-launcher{display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 24px 0 18px;border:1px solid var(--g);border-radius:999px;cursor:pointer;
	background:linear-gradient(135deg,#e6c995 0%,#d2b07a 45%,#b08b57 100%);color:#0a0a0a;font-weight:600;font-size:13px;letter-spacing:.12em;text-transform:uppercase;
	box-shadow:0 12px 34px rgba(0,0,0,.55),0 0 0 1px rgba(0,0,0,.4);transition:transform .25s,box-shadow .25s}
.olfc-launcher:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(176,139,87,.4),0 0 0 1px rgba(0,0,0,.4)}
.olfc-ico{width:24px;height:24px;fill:none;stroke:#0a0a0a;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.olfc-ico-x{display:none}
.olfc-open .olfc-launcher{width:56px;padding:0;justify-content:center}
.olfc-open .olfc-launcher-text,.olfc-open .olfc-ico-chat{display:none}
.olfc-open .olfc-ico-x{display:block}

/* panel */
.olfc-panel{position:absolute;right:0;bottom:70px;width:384px;max-width:calc(100vw - 32px);height:min(600px,calc(100vh - 120px));min-height:360px;display:flex;flex-direction:column;
	background:var(--panel);border:1px solid var(--line);border-top:2px solid var(--g2);border-radius:6px;box-shadow:0 30px 70px rgba(0,0,0,.7);overflow:hidden}
.olfc-head{display:flex;align-items:center;gap:12px;padding:14px 14px 14px 16px;background:linear-gradient(180deg,#121214,#0a0a0b);border-bottom:1px solid var(--line)}
.olfc-mark{display:flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;border:1px solid var(--g2);border-radius:50%;font-family:var(--serif);font-weight:700;font-size:16px;letter-spacing:.08em;color:var(--g);background:#000}
.olfc-titles{flex:1;min-width:0;display:flex;flex-direction:column}
.olfc-title{font-family:var(--serif);font-size:21px;font-weight:600;line-height:1.1;color:var(--cream)}
.olfc-sub{font-size:12px;letter-spacing:.04em;color:var(--dim);margin-top:2px}
.olfc-close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:50%;cursor:pointer;color:var(--g)}
.olfc-close:hover{background:rgba(176,139,87,.14)}
.olfc-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

/* log */
.olfc-log{flex:1;overflow-y:auto;padding:16px 14px 8px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.olfc-row{display:flex;max-width:100%}
.olfc-bot{justify-content:flex-start}
.olfc-user{justify-content:flex-end}
.olfc-bubble{max-width:88%;padding:10px 14px;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.olfc-bot .olfc-bubble{background:var(--panel2);border:1px solid rgba(255,255,255,.09);border-bottom-left-radius:4px;color:var(--cream)}
.olfc-user .olfc-bubble{background:linear-gradient(135deg,#e6c995,#c9a56e);color:#0a0a0a;border-bottom-right-radius:4px;font-weight:500}
.olfc-typing .olfc-bubble{display:flex;gap:5px;align-items:center;padding:14px 16px}
.olfc-dot{width:7px;height:7px;border-radius:50%;background:var(--g);opacity:.35;animation:olfc-pulse 1.2s infinite ease-in-out}
.olfc-dot:nth-child(2){animation-delay:.18s}.olfc-dot:nth-child(3){animation-delay:.36s}
@keyframes olfc-pulse{0%,80%,100%{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}

/* chips */
.olfc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 4px}
.olfc-chip{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;background:transparent;border:1px solid var(--g2);border-radius:999px;color:var(--g)!important;font-size:13.5px;font-weight:500;cursor:pointer;text-decoration:none!important;transition:background .2s,color .2s}
.olfc-chip:hover{background:var(--g);color:#0a0a0a!important}
.olfc-chip--call{border-style:dashed}

/* lead form */
.olfc-lead-row{width:100%}
.olfc-lead{width:100%;padding:14px;background:var(--panel2);border:1px solid var(--line);border-radius:10px}
.olfc-lead-intro{margin:0 0 12px;color:var(--muted);font-size:14px}
.olfc-field{margin-bottom:10px;display:flex;flex-direction:column}
.olfc-field label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:4px}
.olfc-field input[type=text],.olfc-field input[type=tel],.olfc-field select{width:100%;min-height:44px;padding:8px 12px;background:#050506;color:var(--cream);border:1px solid rgba(255,255,255,.18);border-radius:6px;font-size:16px}
.olfc-field input[aria-invalid=true],.olfc-field select[aria-invalid=true]{border-color:#e08a7b}
.olfc-field select{appearance:auto}
.olfc-consent{flex-direction:row;flex-wrap:wrap;gap:0 10px;align-items:flex-start}
.olfc-consent input{width:20px;height:20px;margin-top:3px;accent-color:#d2b07a;flex-shrink:0}
.olfc-consent label{flex:1;min-width:0;margin:0;font-size:13px;letter-spacing:0;text-transform:none;color:var(--muted);line-height:1.45}
.olfc-consent .olfc-err{flex-basis:100%;padding-left:30px}
.olfc-err{min-height:0;font-size:12.5px;color:#f0a79a;margin-top:3px}
.olfc-err:empty{display:none}
.olfc-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.olfc-status{margin:2px 0 8px;font-size:13px;color:var(--muted);min-height:0}
.olfc-status:empty{display:none}
.olfc-status--err{color:#f0a79a}
.olfc-lead-actions{display:flex;gap:10px;flex-wrap:wrap}
.olfc-submit{flex:1;min-height:46px;padding:0 18px;border:1px solid var(--g);border-radius:999px;background:linear-gradient(135deg,#e6c995,#d2b07a 45%,#b08b57);color:#0a0a0a;font-weight:600;font-size:13px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.olfc-submit:disabled{opacity:.6;cursor:default}
.olfc-cancel{min-height:46px;padding:0 16px;background:transparent;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:var(--muted);cursor:pointer}
.olfc-cancel:hover{border-color:var(--g);color:var(--g)}

/* composer */
.olfc-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#0a0a0b}
.olfc-input{flex:1;min-width:0;min-height:46px;padding:0 14px;background:#050506;color:var(--cream);border:1px solid rgba(255,255,255,.18);border-radius:999px;font-size:16px}
.olfc-input::placeholder{color:#8f897f}
.olfc-input:disabled{opacity:.6}
.olfc-send{width:46px;height:46px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--g);border-radius:50%;background:linear-gradient(135deg,#e6c995,#b08b57);cursor:pointer}
.olfc-send svg{width:20px;height:20px;fill:#0a0a0a;stroke:#0a0a0a;stroke-width:1;stroke-linejoin:round}
.olfc-send:disabled{opacity:.55;cursor:default}
.olfc-note{margin:0;padding:0 14px 12px;background:#0a0a0b;font-size:12px;line-height:1.45;color:var(--dim)}

/* small screens: the panel becomes a full-screen sheet */
@media (max-width:640px){
	.olfc{right:14px;bottom:14px}
	.olfc-launcher{height:52px;padding:0 20px 0 16px}
	.olfc-open{right:0;bottom:0;left:0;top:0}
	.olfc-open .olfc-launcher{display:none}
	.olfc-panel{position:fixed;inset:0;width:100%;max-width:none;height:100%;min-height:0;border-radius:0;border-left:0;border-right:0}
	.olfc-bubble{max-width:92%}
}
html.olfc-lock{overflow:hidden}
@media (min-width:641px){html.olfc-lock{overflow:visible}}

@media (prefers-reduced-motion:reduce){
	.olfc *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{.olfc{display:none!important}}
