:root{
  --bh-bg:      #211E1D;  /* Modal-/Sektionshintergrund, warmes Anthrazit */
  --bh-panel:   #3B3735;  /* Eingabefelder */
  --bh-panel-hover:#454140;
  --bh-gold:    #C7A063;  /* Akzentfarbe */
  --bh-gold-deep:#A9803F;
  --bh-cream:   #F5F1EA;  /* Überschriften, Labels */
  --bh-text-soft:#C9C2B8;
  --bh-req:     #E0574B;  /* Pflichtfeld-Sternchen */
}

/* Schwebender Button */
.bh-res-fab{
  position:fixed;
  bottom:22px;
  width:60px;
  height:60px;
  border-radius:50%;
  background:var(--bh-bg);
  border:2px solid var(--bh-gold);
  color:var(--bh-gold);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,.45);
  z-index:9998;
  transition:transform .15s ease, background-color .15s ease;
  padding:0;
}
.bh-res-fab.bh-res-pos-left{ left:22px; }
.bh-res-fab.bh-res-pos-right{ right:22px; }
.bh-res-fab:hover{ transform:scale(1.06); background:#2B2726; }
.bh-res-fab:focus-visible{ outline:2px solid var(--bh-gold); outline-offset:3px; }
.bh-res-fab svg{ width:26px; height:26px; flex:none; }

.bh-res-fab-text{ display:none; }

/* Mittige Variante: breiterer Pill-Button mit sichtbarer Beschriftung */
.bh-res-fab.bh-res-pos-center{
  left:50%;
  right:auto;
  transform:translateX(-50%);
  width:auto;
  height:auto;
  border-radius:999px;
  background:var(--bh-gold);
  border:none;
  color:var(--bh-bg);
  padding:.9em 1.7em;
  gap:.6em;
}
.bh-res-fab.bh-res-pos-center:hover{ background:var(--bh-gold-deep); transform:translateX(-50%) scale(1.03); }
.bh-res-fab.bh-res-pos-center .bh-res-fab-text{
  display:inline;
  font-family:'Nunito Sans', system-ui, -apple-system, sans-serif;
  font-weight:700;
  font-size:.95rem;
  white-space:nowrap;
}
.bh-res-fab.bh-res-pos-center svg{ width:22px; height:22px; }

@media (prefers-reduced-motion: no-preference){
  .bh-res-fab.bh-res-pos-left::before,
  .bh-res-fab.bh-res-pos-right::before{
    content:'';
    position:absolute;
    inset:-2px;
    border-radius:50%;
    border:1.5px solid rgba(199,160,99,.6);
    animation: bh-res-pulse 2.6s ease-out infinite;
  }
}
@keyframes bh-res-pulse{
  0%{ transform:scale(1); opacity:.9; }
  100%{ transform:scale(1.55); opacity:0; }
}

.bh-res-fab-label{
  position:fixed;
  bottom:37px;
  background:var(--bh-bg);
  color:var(--bh-cream);
  font-family:'Nunito Sans', system-ui, -apple-system, sans-serif;
  font-size:.85rem;
  font-weight:600;
  padding:.5em .9em;
  border:1px solid var(--bh-gold);
  border-radius:3px;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transition:opacity .15s ease;
  z-index:9998;
}
.bh-res-fab-label.bh-res-pos-left{ left:88px; }
.bh-res-fab-label.bh-res-pos-right{ right:88px; }
.bh-res-fab.bh-res-pos-left:hover + .bh-res-fab-label,
.bh-res-fab.bh-res-pos-left:focus-visible + .bh-res-fab-label,
.bh-res-fab.bh-res-pos-right:hover + .bh-res-fab-label,
.bh-res-fab.bh-res-pos-right:focus-visible + .bh-res-fab-label{ opacity:1; }
@media (max-width:640px){ .bh-res-fab-label{ display:none; } }

/* Overlay + Modal */
.bh-res-overlay{
  position:fixed; inset:0;
  background:rgba(10,9,8,.78);
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:9999;
}
.bh-res-overlay.is-open{ display:flex; }

.bh-res-modal{
  position:relative;
  width:100%;
  max-width:560px;
  max-height:92vh;
  overflow-y:auto;
  background:var(--bh-bg);
  color:var(--bh-cream);
  border-radius:6px;
  border:1px solid rgba(199,160,99,.35);
  box-shadow:0 30px 70px rgba(0,0,0,.5);
  font-family:'Nunito Sans', system-ui, -apple-system, sans-serif;
  padding:2.2rem 2rem 2rem;
}
@media (prefers-reduced-motion: no-preference){
  .bh-res-modal{ animation: bh-res-in .22s ease-out; }
}
@keyframes bh-res-in{
  from{ opacity:0; transform:translateY(8px); }
  to{ opacity:1; transform:translateY(0); }
}

.bh-res-close{
  position:absolute;
  top:14px;
  right:16px;
  background:none;
  border:none;
  color:var(--bh-text-soft);
  font-size:1.6rem;
  line-height:1;
  cursor:pointer;
  padding:.1em .3em;
  border-radius:3px;
}
.bh-res-close:hover{ color:var(--bh-cream); }
.bh-res-close:focus-visible{ outline:2px solid var(--bh-gold); }

.bh-res-head{ text-align:center; margin-bottom:1.6rem; }
.bh-res-eyebrow{
  font-family:'Playfair Display', Georgia, serif;
  font-style:italic;
  font-weight:600;
  font-size:1.05rem;
  color:var(--bh-gold);
  margin:0 0 .5rem;
}
.bh-res-head h2{
  font-family:'Playfair Display', Georgia, serif;
  font-weight:700;
  font-size:1.9rem;
  color:var(--bh-cream);
  margin:0 0 .6rem;
}
.bh-res-dots{
  margin:0;
  letter-spacing:.5em;
  color:var(--bh-gold);
  font-size:.7rem;
}

.bh-res-field{ margin-bottom:1.1rem; }
.bh-res-field label{
  display:block;
  font-size:.85rem;
  font-weight:700;
  margin-bottom:.4rem;
  color:var(--bh-cream);
}
.bh-res-req{ color:var(--bh-req); margin-left:.15em; }
.bh-res-field .bh-res-hint{ font-size:.78rem; color:var(--bh-text-soft); margin-top:.35rem; }
.bh-res-row{ display:flex; gap:1rem; }
.bh-res-row .bh-res-field{ flex:1; min-width:0; }

.bh-res-input, .bh-res-textarea, .bh-res-select{
  width:100%;
  font-family:inherit;
  font-size:.95rem;
  padding:.85em .9em;
  border:1px solid transparent;
  border-radius:4px;
  background:var(--bh-panel);
  color:var(--bh-cream);
}
.bh-res-input::placeholder, .bh-res-textarea::placeholder{ color:#9A948C; }
.bh-res-input:focus, .bh-res-textarea:focus, .bh-res-select:focus{
  outline:none;
  border-color:var(--bh-gold);
  background:var(--bh-panel-hover);
}
.bh-res-textarea{ resize:vertical; min-height:5em; }

.bh-res-select{
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23C7A063'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z' clip-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right .9em center;
  background-size:1.1em;
  padding-right:2.4em;
}
.bh-res-select option{ background:var(--bh-panel); color:var(--bh-cream); }

.bh-res-error{ color:#F1948B; font-size:.8rem; margin-top:.35rem; display:none; }
.bh-res-field.has-error .bh-res-input,
.bh-res-field.has-error .bh-res-select,
.bh-res-field.has-error .bh-res-textarea{ border-color:var(--bh-req); }
.bh-res-field.has-error .bh-res-error{ display:block; }

/* Honeypot – für Menschen unsichtbar, für Bots wie ein normales Feld */
.bh-res-hp{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.bh-res-submit{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6em;
  width:100%;
  margin-top:.6rem;
  background:var(--bh-gold);
  color:var(--bh-bg);
  border:none;
  padding:.95em 1em;
  font-size:1rem;
  font-weight:700;
  border-radius:4px;
  cursor:pointer;
  transition:background-color .15s ease;
}
.bh-res-submit svg{ width:1.1em; height:1.1em; }
.bh-res-submit:hover{ background:var(--bh-gold-deep); }
.bh-res-submit:focus-visible{ outline:2px solid var(--bh-cream); outline-offset:2px; }
.bh-res-submit:disabled{ opacity:.6; cursor:default; }

.bh-res-status{
  margin-top:1rem;
  font-size:.85rem;
  line-height:1.5;
  padding:.8em 1em;
  border-radius:4px;
  display:none;
}
.bh-res-status.is-visible{ display:block; }
.bh-res-status.is-success{ background:rgba(199,160,99,.15); color:var(--bh-gold); border:1px solid rgba(199,160,99,.4); }
.bh-res-status.is-error{ background:rgba(224,87,75,.12); color:#F1948B; border:1px solid rgba(224,87,75,.4); }

@media (max-width:520px){
  .bh-res-row{ flex-direction:column; gap:0; }
  .bh-res-modal{ padding:1.8rem 1.3rem 1.6rem; }
}
