/* Website-Assistent (KI-Chat) — schwebender Button unten rechts, auf dem Handy als Vollbild-Fenster */
.gbchat { --gb-red:#E11D2E; --gb-ink:#141414; --gb-line:#E7E3DE; --gb-soft:#F6F4F1; font-family:'Inter Tight',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; }
.gbchat *, .gbchat *::before, .gbchat *::after { box-sizing:border-box; }
.gbchat [hidden] { display:none !important; }

.gbchat__fab { position:fixed; right:max(16px,env(safe-area-inset-right)); bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--gb-off,0px)); z-index:9000; display:flex; align-items:center; gap:10px; height:56px; padding:0 20px 0 16px; border:none; border-radius:100px; background:var(--gb-red); color:#fff; font:inherit; font-weight:800; font-size:.95rem; cursor:pointer; box-shadow:0 8px 28px rgba(225,29,46,.35),0 2px 8px rgba(0,0,0,.18); transition:transform .15s ease, box-shadow .15s ease; }
.gbchat__fab:hover { transform:translateY(-2px); box-shadow:0 12px 32px rgba(225,29,46,.4),0 3px 10px rgba(0,0,0,.2); }
.gbchat__fab svg { width:24px; height:24px; flex:none; }
.gbchat.is-open .gbchat__fab { display:none; }

.gbchat__panel { position:fixed; right:max(16px,env(safe-area-inset-right)); bottom:calc(max(16px,env(safe-area-inset-bottom)) + var(--gb-off,0px)); z-index:9001; width:390px; max-width:calc(100vw - 32px); height:min(640px,calc(100dvh - 32px - var(--gb-off,0px))); display:none; flex-direction:column; background:#fff; border-radius:20px; overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.28),0 4px 14px rgba(0,0,0,.14); }
.gbchat.is-open .gbchat__panel { display:flex; }

.gbchat__head { display:flex; align-items:center; gap:12px; padding:14px 16px; background:var(--gb-ink); color:#fff; flex:none; }
.gbchat__mark { width:38px; height:38px; border-radius:10px; background:#fff; overflow:hidden; flex:none; }
.gbchat__mark img { width:100%; height:100%; display:block; object-fit:cover; }
.gbchat__title { font-weight:800; font-size:1rem; line-height:1.15; }
.gbchat__sub { font-size:.74rem; opacity:.7; margin-top:2px; }
.gbchat__close { margin-left:auto; background:none; border:none; color:#fff; font-size:1.7rem; line-height:1; cursor:pointer; padding:4px 8px; border-radius:8px; opacity:.85; }
.gbchat__close:hover { background:rgba(255,255,255,.14); opacity:1; }

.gbchat__body { flex:1; overflow-y:auto; padding:16px; background:var(--gb-soft); display:flex; flex-direction:column; gap:10px; overscroll-behavior:contain; }
.gbchat__msg { max-width:88%; padding:10px 13px; border-radius:16px; font-size:.93rem; line-height:1.5; word-wrap:break-word; overflow-wrap:anywhere; white-space:pre-wrap; }
.gbchat__msg--bot { align-self:flex-start; background:#fff; color:var(--gb-ink); border:1px solid var(--gb-line); border-bottom-left-radius:5px; }
.gbchat__msg--user { align-self:flex-end; background:var(--gb-red); color:#fff; border-bottom-right-radius:5px; }
.gbchat__msg a { color:inherit; font-weight:700; text-decoration:underline; }
.gbchat__msg--bot a { color:var(--gb-red); }

.gbchat__typing { align-self:flex-start; display:flex; gap:5px; padding:13px 15px; background:#fff; border:1px solid var(--gb-line); border-radius:16px; border-bottom-left-radius:5px; }
.gbchat__typing i { width:7px; height:7px; border-radius:50%; background:#B9B2AA; animation:gbchatDot 1.2s infinite ease-in-out; }
.gbchat__typing i:nth-child(2) { animation-delay:.15s; } .gbchat__typing i:nth-child(3) { animation-delay:.3s; }
@keyframes gbchatDot { 0%,60%,100% { transform:translateY(0); opacity:.5; } 30% { transform:translateY(-4px); opacity:1; } }

.gbchat__gate { padding:22px 20px; display:flex; flex-direction:column; gap:14px; background:#fff; flex:1; overflow-y:auto; }
.gbchat__gate h3 { margin:0; font-size:1.2rem; font-weight:800; letter-spacing:-.3px; color:var(--gb-ink); }
.gbchat__gate p { margin:0; font-size:.9rem; line-height:1.55; color:#3a3733; }
.gbchat__gate a { color:var(--gb-red); font-weight:700; }

.gbchat__btn { display:inline-block; font:inherit; font-weight:800; font-size:.9rem; padding:11px 16px; border-radius:11px; border:none; background:var(--gb-red); color:#fff; text-decoration:none; cursor:pointer; text-align:center; }
.gbchat__btn:hover { filter:brightness(1.07); }
.gbchat__btn:disabled { opacity:.55; cursor:wait; }
.gbchat__btn--ghost { background:#fff; color:var(--gb-ink); border:1.5px solid var(--gb-line); }

.gbchat__card { align-self:stretch; background:#fff; border:1px solid var(--gb-line); border-radius:14px; padding:13px; display:flex; flex-direction:column; gap:9px; }
.gbchat__card label { font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:#8A847C; font-weight:700; }
.gbchat__card input[type=text], .gbchat__card input[type=email], .gbchat__card input[type=tel], .gbchat__card textarea { width:100%; font:inherit; font-size:.92rem; padding:10px 11px; border:1.5px solid var(--gb-line); border-radius:10px; color:var(--gb-ink); background:#fff; }
.gbchat__card textarea { min-height:70px; resize:vertical; }
.gbchat__card input:focus, .gbchat__card textarea:focus { outline:none; border-color:var(--gb-red); }
.gbchat__check { display:flex; gap:8px; align-items:flex-start; font-size:.78rem; line-height:1.4; color:#3a3733; text-transform:none; letter-spacing:0; font-weight:500; }
.gbchat__check input { margin-top:2px; accent-color:var(--gb-red); }
.gbchat__hint { font-size:.74rem; color:#7a746c; margin:0; line-height:1.4; }
.gbchat__hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.gbchat__chips { display:flex; gap:7px; padding:9px 12px 0; overflow-x:auto; flex:none; background:#fff; scrollbar-width:none; }
.gbchat__chips::-webkit-scrollbar { display:none; }
.gbchat__chip { flex:none; font:inherit; font-weight:700; font-size:.78rem; padding:7px 12px; border-radius:100px; border:1.5px solid var(--gb-line); background:#fff; color:var(--gb-ink); cursor:pointer; white-space:nowrap; text-decoration:none; }
.gbchat__chip:hover { border-color:var(--gb-red); color:var(--gb-red); }

.gbchat__form { display:flex; gap:8px; padding:10px 12px 12px; background:#fff; flex:none; align-items:flex-end; }
.gbchat__form textarea { flex:1; font:inherit; font-size:.93rem; padding:10px 12px; border:1.5px solid var(--gb-line); border-radius:13px; resize:none; max-height:96px; min-height:42px; line-height:1.35; color:var(--gb-ink); }
.gbchat__form textarea:focus { outline:none; border-color:var(--gb-red); }
.gbchat__send { flex:none; width:42px; height:42px; border-radius:12px; border:none; background:var(--gb-red); color:#fff; cursor:pointer; display:grid; place-items:center; }
.gbchat__send:disabled { opacity:.5; cursor:not-allowed; }
.gbchat__send svg { width:20px; height:20px; }
.gbchat__note { text-align:center; font-size:.68rem; color:#8A847C; padding:0 12px 9px; background:#fff; flex:none; }

@media (max-width:600px) {
  .gbchat__fab { height:52px; padding:0 18px 0 14px; }
  .gbchat__panel { right:0; bottom:0; left:0; top:0; width:100%; max-width:none; height:100dvh; border-radius:0; }   /* Vollbild, ignoriert den Cookie-Hinweis */
  .gbchat__head { padding-top:max(14px,env(safe-area-inset-top)); }
  .gbchat__note { padding-bottom:max(9px,env(safe-area-inset-bottom)); }
  .gbchat__form textarea { font-size:16px; }   /* verhindert das automatische Hineinzoomen auf dem iPhone */
  .gbchat__card input, .gbchat__card textarea { font-size:16px !important; }
}
@media (prefers-reduced-motion: reduce) { .gbchat__fab, .gbchat__typing i { transition:none; animation:none; } }
