/* s'Badisch – eigene Cookie-Consent-Lösung (ersetzt Usercentrics/eRecht24) */
.sb-cc, .sb-cc * { box-sizing: border-box; }

.sb-cc {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 99999;
  background: #2b2f3e;
  color: #fff;
  box-shadow: 0 -2px 18px rgba(0,0,0,.28);
  font-family: "Roboto", Arial, sans-serif;
  transform: translateY(100%);
  transition: transform .35s ease;
}
.sb-cc.is-open { transform: translateY(0); }

.sb-cc__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 22px 24px;
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}
.sb-cc__body { flex: 1 1 380px; }
.sb-cc__title {
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 8px;
}
.sb-cc__text {
  font-size: 13.5px;
  line-height: 1.65;
  color: #e7e8ec;
}
.sb-cc__text strong { color: #fff; font-weight: 700; }
.sb-cc__text a { color: #d3cba0; text-decoration: underline; }
.sb-cc__text a:hover { color: #fff; }

.sb-cc__btns {
  display: flex;
  gap: 12px;
  flex: 0 0 auto;
  flex-wrap: wrap;
  align-items: stretch;
}
.sb-cc__btn {
  cursor: pointer;
  border: 1px solid transparent;
  padding: 13px 28px;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .3px;
  border-radius: 3px;
  transition: background .2s, color .2s, border-color .2s, transform .05s;
  white-space: nowrap;
  min-width: 168px;
  text-align: center;
}
.sb-cc__btn:active { transform: translateY(1px); }
/* Ablehnen und Akzeptieren gleichwertig (gleiche Größe, beide als gefüllte Buttons) */
.sb-cc__btn--decline { background: #52586b; color: #fff; }
.sb-cc__btn--decline:hover { background: #626878; }
.sb-cc__btn--accept { background: #A8A384; color: #fff; }
.sb-cc__btn--accept:hover { background: #b8b393; }

/* Button/Link zum erneuten Öffnen der Einstellungen (z. B. auf der Datenschutzseite) */
.sb-cc-open {
  display: inline-block;
  cursor: pointer;
  border: none;
  background: #A8A384;
  color: #fff;
  padding: 12px 26px;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .3px;
  border-radius: 3px;
  text-decoration: none;
  transition: background .2s;
}
.sb-cc-open:hover { background: #8f8a6c; color: #fff; }

/* Reservierungs-CTA (Startseite / Kontakt) */
.sb-resv { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px; margin-top:1.6em; }
.sb-resv__label { font-family:"Montserrat",Arial,sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:#877a56; }
.sb-resv__btn {
  display:inline-flex; align-items:center; gap:9px;
  background:#A8A384; color:#fff;
  font-family:"Montserrat",Arial,sans-serif; font-weight:700; font-size:14px; letter-spacing:.4px;
  padding:13px 26px; border-radius:3px; text-decoration:none;
  transition:background .2s, transform .12s, border-color .2s;
}
.sb-resv__btn svg { width:18px; height:18px; fill:currentColor; }
.sb-resv__btn:hover { background:#8f8a6c; color:#fff; transform:translateY(-2px); }
.sb-resv__btn--wa { background:transparent; color:#877a56; border:2px solid #A8A384; padding:11px 24px; }
.sb-resv__btn--wa:hover { background:#A8A384; color:#fff; }

/* Social-Icons im Footer (Über-uns-Spalte) */
.sb-social { display: flex; gap: 12px; margin-top: 24px; }
.sb-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: #2b2d3f;
  color: #fff;
  transition: background .2s, color .2s, transform .15s;
}
.sb-social__link svg { width: 18px; height: 18px; fill: currentColor; display: block; }
.sb-social__link:hover { background: #C3B697; color: #1a1a1a; transform: translateY(-2px); }
@media (max-width: 767px) {
  .sb-social { justify-content: center; }
}

/* Platzhalter für blockierte externe Inhalte (Google Maps) */
.sb-map-consent {
  width: 100%;
  height: 500px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  text-align: center;
  padding: 24px;
  background: #eef0f2;
  color: #2b2f3e;
  font-family: "Roboto", Arial, sans-serif;
}
.sb-map-consent__title { font-size: 18px; font-weight: 500; }
.sb-map-consent__text { font-size: 14px; line-height: 1.6; max-width: 520px; color: #555; }
.sb-map-consent__text a { color: #A8A384; text-decoration: underline; }
.sb-map-consent__btn {
  cursor: pointer;
  border: none;
  background: #A8A384;
  color: #fff;
  padding: 13px 30px;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  border-radius: 2px;
  transition: background .2s;
}
.sb-map-consent__btn:hover { background: #8f8a6c; }

@media (max-width: 767px) {
  .sb-cc__inner { padding: 16px; gap: 14px; }
  .sb-cc__btns { width: 100%; }
  .sb-cc__btn { flex: 1 1 auto; min-width: 0; }
}
