/* T29: eine gemeinsame, nicht blockierende Cookie-Auswahl auf allen Seiten. */
.mm-cookie-banner {
  position:fixed; z-index:10000; left:24px; bottom:24px;
  width:440px; max-width:calc(100vw - 48px); max-height:calc(100dvh - 48px);
  display:flex; flex-direction:column; gap:16px; padding:22px;
  box-sizing:border-box; border:1px solid #E6E1DA; border-radius:20px;
  background:#fff; color:#141414; box-shadow:0 12px 48px #0004;
  font:400 13px/1.65 'Manrope',sans-serif; text-align:left; letter-spacing:normal;
}
.mm-cookie-banner[hidden],.mm-cookie-banner [hidden] { display:none; }
.mm-cookie-banner h2 {
  margin:0; color:#141414; font:500 27px/1.08 'Cormorant Garamond',serif;
  letter-spacing:-.02em; text-align:left;
}
.mm-cookie-inhalt { overflow-y:auto; min-height:0; overscroll-behavior:contain; }
.mm-cookie-banner p { margin:0; color:#4a4540; font:inherit; }
.mm-cookie-banner a { color:#8E6E45; text-decoration:underline; text-underline-offset:3px; }
.mm-cookie-aktionen { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; flex-shrink:0; }
.mm-cookie-banner button {
  box-sizing:border-box; min-height:44px; padding:9px 6px; margin:0;
  border:1px solid #cfc7bb; border-radius:24px; background:transparent;
  color:#141414; font:600 11px/1.35 'Manrope',sans-serif; letter-spacing:normal;
  cursor:pointer; text-align:center; box-shadow:none;
}
.mm-cookie-banner .mm-cookie-gold { background:#b99a7b; border-color:#b99a7b; }
.mm-cookie-banner button:hover { background:transparent; }
.mm-cookie-banner .mm-cookie-gold:hover { background:#d4b896; }
.mm-cookie-auswahl { display:grid; gap:12px; margin-top:18px; }
.mm-cookie-auswahl label { display:flex; gap:10px; align-items:flex-start; padding:4px 0; min-height:44px; cursor:pointer; color:#4a4540; }
.mm-cookie-zeigt-auswahl .mm-cookie-inhalt { display:flex; flex-direction:column; padding:6px; margin:-6px; }
.mm-cookie-zeigt-auswahl .mm-cookie-auswahl { order:-1; margin:0 0 16px; }
.mm-cookie-auswahl strong { color:#141414; font-weight:600; }
.mm-cookie-auswahl input {
  appearance:none; -webkit-appearance:none; box-sizing:border-box;
  display:inline-grid; place-content:center; flex-shrink:0;
  width:20px; height:20px; margin:2px 0 0; padding:0;
  border:1.5px solid #b99a7b; border-radius:3px; background:#fff; cursor:pointer;
}
.mm-cookie-auswahl input::before {
  content:""; width:10px; height:6px; margin-top:-3px;
  border-left:2px solid #fff; border-bottom:2px solid #fff;
  transform:rotate(-45deg); visibility:hidden;
}
.mm-cookie-auswahl input:checked { background:#b99a7b; }
.mm-cookie-auswahl input:checked::before { visibility:visible; }
.mm-cookie-banner :is(button,input,a):focus-visible { outline:2px solid #8E6E45; outline-offset:3px; }
.mm-cookie-banner h2:focus { outline:2px solid #8E6E45; outline-offset:4px; }
.footer nav .cookie-einstellungen {
  appearance:none; display:inline; margin:0; padding:0; border:0; border-radius:0;
  background:transparent; box-shadow:none; color:var(--label,#8A8A8A);
  font:400 10px 'Manrope',sans-serif; letter-spacing:normal; cursor:pointer;
}
.footer nav .cookie-einstellungen:hover { color:var(--gold,#b99a7b); }
#cookie-einstellungen .cookie-einstellungen { border:1px solid #cfc7bb; border-radius:24px; padding:10px 16px; min-height:44px; background:#fff; color:#141414; font:inherit; cursor:pointer; }
@media (max-width:600px) {
  .mm-cookie-banner { left:12px; bottom:12px; width:calc(100vw - 24px); max-width:none; max-height:50dvh; padding:16px; gap:12px; }
  .mm-cookie-banner h2 { font-size:25px; }
  /* Auf der Terminseite bleibt auch oberhalb des Banners ein Teil des Kalenders sichtbar. */
  .mm-cookie-terminseite { max-height:34dvh; }
  .mm-cookie-aktionen { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mm-cookie-aktionen .mm-cookie-gold { grid-column:1 / -1; }
  .mm-cookie-banner button { font-size:12px; }
  .footer nav .cookie-einstellungen { min-height:44px; }
}
