:root{
  --hugo-red:#7b0505;
  --hugo-dark:#231f1e;
  --hugo-paper:#f4efe8;
  --hugo-panel:#f7f2ec;
  --hugo-ink:#1a1716;
  --hugo-user-bubble-bg:#ffffff;
  --hugo-bot-bubble-bg:#fff7f2;
  --hugo-bubble-border:var(--hugo-red);
  --hugo-left:20px;
  --hugo-right:20px;
  --hugo-safe-bottom:20px;
  --hugo-gap:8px;
  --hugo-width:298px;
  --hugo-video-height:clamp(160px, 28vh, 260px);
  --hugo-hair:0.75px;
  --hugo-radius:14px;
  --hugo-shadow:0 14px 30px rgba(0,0,0,.22);
  --hugo-launcher-dark:#1f1f21;
  --hugo-launcher-dark-2:#262628;
  --hugo-launcher-text:#ffffff;
  --hugo-launcher-badge:#ee9f8d;
}

#bot-launcher,
#bot-rail,
#email-flow-overlay{
  box-sizing:border-box;
  font-family:inherit;
}

#bot-launcher *,
#bot-rail *,
#email-flow-overlay *{
  box-sizing:border-box;
}

#bot-launcher{
  position:fixed;
  left:var(--hugo-left);
  bottom:var(--hugo-safe-bottom);
  z-index:9999;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}

#bot-launcher.hugo-position-right{
  left:auto;
  right:var(--hugo-right);
  align-items:flex-end;
}

#bot-launcher.hidden{display:none;}

#launcher-top{
  position:relative;
  display:flex;
  align-items:center;
}

#launcher-pill{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:12px 16px 12px 12px;
  border-radius:16px;
  background:linear-gradient(180deg,var(--hugo-launcher-dark-2) 0%,var(--hugo-launcher-dark) 100%);
  color:var(--hugo-launcher-text);
  box-shadow:0 14px 24px rgba(0,0,0,.24);
  cursor:pointer;
  user-select:none;
  transition:transform .18s ease,box-shadow .18s ease;
}

#launcher-avatar{
  width:34px;
  height:34px;
  border-radius:50%;
  object-fit:cover;
  background:#fff;
  flex:0 0 auto;
}

#launcher-text{
  font-size:15px;
  line-height:1;
  white-space:nowrap;
  display:flex;
  align-items:center;
}

#launcher-close{
  position:absolute;
  top:-9px;
  right:-9px;
  width:24px;
  height:24px;
  padding:0;
  border:none;
  border-radius:50%;
  background:#2b2b2d;
  color:#fff;
  font-size:17px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(0,0,0,.22);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}

#bot-launcher.hugo-position-right #launcher-close{
  right:auto;
  left:-9px;
}

#launcher-chat{
  position:relative;
  align-self:flex-start;
  width:58px;
  height:58px;
  padding:0;
  border:none;
  border-radius:16px;
  background:linear-gradient(180deg,var(--hugo-launcher-dark-2) 0%,var(--hugo-launcher-dark) 100%);
  box-shadow:0 14px 24px rgba(0,0,0,.24);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform .18s ease,box-shadow .18s ease;
}

#bot-launcher.hugo-position-right #launcher-chat{align-self:flex-end;}

#launcher-badge{
  position:absolute;
  top:-6px;
  right:-6px;
  min-width:22px;
  height:22px;
  padding:0 6px;
  border-radius:999px;
  background:var(--hugo-launcher-badge);
  color:#1e1d1d;
  font-size:12px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 12px rgba(0,0,0,.18);
  animation:hugoBadgePulse 1.8s ease-in-out infinite;
}

@keyframes hugoBadgePulse{
  0%,100%{transform:scale(1);box-shadow:0 6px 12px rgba(0,0,0,.18);}
  50%{transform:scale(1.14);box-shadow:0 6px 18px rgba(245,166,146,.42);}
}

#launcher-chat svg{width:28px;height:28px;display:block;}
#launcher-chat .chat-bubble-shape{fill:#f4efe8;}
#launcher-chat .chat-dots{fill:#7e7e82;}
#launcher-chat:hover,#launcher-pill:hover{transform:translateY(-1px);}
#launcher-pill:focus-visible,#launcher-chat:focus-visible{outline:2px solid #fff;outline-offset:3px;}

#bot-rail{
  position:fixed;
  left:var(--hugo-left);
  bottom:var(--hugo-safe-bottom);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:var(--hugo-gap);
  z-index:12000;
  pointer-events:none;
}

#bot-rail.hugo-position-right{
  left:auto;
  right:var(--hugo-right);
  align-items:flex-end;
}

#bot-rail > *{pointer-events:auto;}

#quick-window{
  display:none;
  justify-content:center;
  gap:var(--hugo-gap);
  flex-wrap:wrap;
}

.quick-btn{
  padding:10px 12px;
  font-size:12px;
  letter-spacing:.25px;
  text-transform:uppercase;
  background:var(--hugo-dark);
  color:#fff;
  border:var(--hugo-hair) solid var(--hugo-red);
  border-radius:8px;
  box-shadow:0 8px 16px rgba(0,0,0,.20);
  cursor:pointer;
  transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease;
}
.quick-btn:hover{transform:translateY(-1px);}
.quick-btn.primary{background:var(--hugo-red);}
.quick-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:0 8px 16px rgba(0,0,0,.14);}

#bot-container{
  display:none;
  flex-direction:column;
  background:var(--hugo-panel);
  border:var(--hugo-hair) solid var(--hugo-red);
  border-radius:var(--hugo-radius);
  box-shadow:var(--hugo-shadow);
  overflow:hidden;
  width:var(--hugo-width);
  height:auto;
  max-height:calc(100vh - 40px);
}

@media (max-width:768px){
  #bot-rail,#bot-rail.hugo-position-right{
    left:0;
    right:0;
    bottom:0;
    align-items:stretch;
  }
  #bot-container{
    position:fixed;
    left:0;
    bottom:0;
    width:100vw;
    height:100vh;
    max-height:none;
    border-radius:0;
  }
  #quick-window{padding:0 10px 10px;justify-content:flex-start;background:var(--hugo-panel);}
  #bot-launcher,#bot-launcher.hugo-position-right{left:10px;right:auto;bottom:16px;align-items:flex-start;}
  #launcher-pill{min-height:54px;padding:10px 14px 10px 10px;}
  #launcher-chat{width:54px;height:54px;}
}

@media (min-width:769px){
  #bot-container{width:420px;height:700px;}
}

#bot-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:10px 12px;
  background:var(--hugo-dark);
  color:#fff;
  border-bottom:var(--hugo-hair) solid var(--hugo-red);
  font-size:12px;
}

#bot-close{
  width:28px;
  height:28px;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  cursor:pointer;
  font-size:16px;
  line-height:1;
}

#video-widget{
  width:100%;
  background:var(--hugo-panel);
  border-bottom:var(--hugo-hair) solid var(--hugo-red);
  overflow:hidden;
}
#video-widget.hidden{display:none;}
#video-widget.minimized #video-widget-body{display:none;}

#video-widget-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 12px;
  background:var(--hugo-dark);
  color:#fff;
  border-bottom:var(--hugo-hair) solid rgba(123,5,5,.65);
}

.video-widget-title{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.2px;
  text-transform:uppercase;
}
.video-dot{width:8px;height:8px;border-radius:50%;background:#fff;display:inline-block;}
.video-widget-actions{display:flex;gap:8px;}
.video-widget-actions button{
  width:28px;height:28px;padding:0;border-radius:8px;border:.75px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.08);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;
}
#video-widget-body{padding:10px;background:var(--hugo-panel);}
#video-frame{position:relative;width:100%;height:var(--hugo-video-height);background:#120f0f;border-radius:14px;overflow:hidden;border:.75px solid rgba(123,5,5,.35);}
#assistant-video{width:100%;height:100%;object-fit:contain;display:block;background:#000;}
#video-controls-overlay{position:absolute;right:10px;bottom:10px;}
#video-play-toggle{width:42px;height:42px;padding:0;border:none;border-radius:50%;cursor:pointer;background:rgba(255,255,255,.92);color:var(--hugo-dark);font-size:16px;box-shadow:0 8px 20px rgba(0,0,0,.28);}
@media (max-width:768px){#video-frame{height:clamp(150px,32vh,240px);}}

#chat-box{
  flex:1;
  padding:12px;
  overflow-y:auto;
  font-size:13px;
  color:var(--hugo-ink);
  background:var(--hugo-paper);
  min-height:180px;
}
.message{margin-bottom:10px;line-height:1.42;white-space:pre-wrap;word-break:break-word;}
.message.user{margin-left:auto;max-width:90%;padding:10px 12px;background:var(--hugo-user-bubble-bg);border:var(--hugo-hair) solid var(--hugo-bubble-border);border-radius:12px;font-weight:600;}
.message.bot{max-width:90%;padding:10px 12px;background:var(--hugo-bot-bubble-bg);border:var(--hugo-hair) solid var(--hugo-bubble-border);border-radius:12px;}
.message.bot.hugo-thinking{opacity:.72;font-style:italic;}

#chat-input{display:flex;gap:8px;padding:10px;border-top:var(--hugo-hair) solid var(--hugo-red);background:var(--hugo-panel);}
#chat-input input{flex:1;min-width:0;padding:11px 12px;border:var(--hugo-hair) solid var(--hugo-red);border-radius:10px;outline:none;background:#fff;color:var(--hugo-ink);}
#chat-input input:focus{box-shadow:0 0 0 2px rgba(123,5,5,.12);}
#chat-input button{width:46px;padding:0;background:var(--hugo-dark);color:#fff;border:var(--hugo-hair) solid var(--hugo-red);border-radius:10px;cursor:pointer;}
#chat-input button:disabled{opacity:.5;cursor:wait;}
#hugo-privacy-note{padding:0 10px 9px;background:var(--hugo-panel);font-size:10.5px;line-height:1.35;color:#6a5d58;}

.booking-btn{margin-top:10px;padding:10px;width:100%;background:var(--hugo-red);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:700;}
.inline-email-cta .booking-btn{background:var(--hugo-dark);border:var(--hugo-hair) solid var(--hugo-red);}

.overlay{position:fixed;inset:0;background:rgba(0,0,0,.42);display:flex;align-items:center;justify-content:center;z-index:14000;padding:16px;}
.overlay.hidden{display:none;}
.overlay-card{width:min(100%,420px);background:var(--hugo-panel);border:var(--hugo-hair) solid var(--hugo-red);border-radius:16px;box-shadow:var(--hugo-shadow);padding:16px;color:var(--hugo-ink);}
.overlay-card.hidden{display:none;}
.overlay-title{font-size:15px;font-weight:800;margin-bottom:10px;color:var(--hugo-dark);}
.overlay-text{font-size:13px;line-height:1.45;margin-bottom:14px;}
.overlay-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.overlay-actions button{flex:1 1 140px;min-height:42px;border-radius:10px;cursor:pointer;font-weight:700;border:var(--hugo-hair) solid var(--hugo-red);}
.overlay-primary{background:var(--hugo-red);color:#fff;}
.overlay-secondary{background:#fff;color:var(--hugo-dark);}
.form-grid{display:grid;gap:10px;margin-top:12px;}
.form-grid input{width:100%;padding:11px 12px;border:var(--hugo-hair) solid var(--hugo-red);border-radius:10px;outline:none;font-size:14px;}
.summary-preview{margin-top:12px;padding:10px 12px;background:#fff7f2;border:var(--hugo-hair) solid var(--hugo-red);border-radius:10px;font-size:12px;line-height:1.4;color:var(--hugo-ink);white-space:pre-wrap;}
.form-note{margin-top:10px;font-size:12px;color:#5b4e49;}
.form-error{margin-top:10px;font-size:12px;color:var(--hugo-red);font-weight:700;}
.hugo-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;}

/* Anklickbare Link- und Kontaktaktionen unter einer normalen Textantwort. */
.hugo-action-row{
  max-width:90%;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:-2px 0 12px;
}
.hugo-action-btn{
  min-height:38px;
  padding:9px 12px;
  border-radius:9px;
  border:var(--hugo-hair) solid var(--hugo-red);
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:700;
  line-height:1.2;
  transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease;
}
.hugo-action-btn:hover{transform:translateY(-1px);box-shadow:0 7px 14px rgba(0,0,0,.12);}
.hugo-action-btn:focus-visible{outline:2px solid var(--hugo-red);outline-offset:2px;}
.hugo-action-btn.primary{background:var(--hugo-red);color:#fff;}
.hugo-action-btn.secondary{background:var(--hugo-dark);color:#fff;}
@media(max-width:768px){
  .hugo-action-row{max-width:100%;}
  .hugo-action-btn{flex:1 1 145px;}
}
