/* Einwilligungs-Banner (consent.js). Liegt im Wrapper .vc1 und erbt dessen Tokens; Werte nach dem Komma gelten außerhalb.
   Beide Hauptknöpfe haben dieselbe Form und Farbe (Ablehnen ist nicht schwächer als Zustimmen). */
.gv-consent { position: fixed; z-index: 90; left: max(1rem, env(safe-area-inset-left, 0px)); bottom: max(1rem, env(safe-area-inset-bottom, 0px)); width: min(27rem, calc(100vw - 2rem));
  color: var(--s-ink, #1d1a16); font-family: var(--f-ui, system-ui, sans-serif); }
.gv-consent[hidden] { display: none; }
.gv-c-card { max-height: calc(100dvh - 2rem); overflow: auto; overscroll-behavior: contain; padding: 1.35rem 1.4rem 1.25rem; border-radius: 1.1rem; background: var(--s-card-2, #fffdf9); border: 1px solid var(--s-rule-strong, #c8b9a2);
  box-shadow: 0 1.6rem 3.4rem -1.2rem rgb(92 70 38 / 0.45), 0 0 0 1px rgb(255 255 255 / 0.6) inset; }
.gv-c-h { margin: 0 0 0.5rem; font-family: var(--f-disp, serif); font-weight: 400; font-size: 1.3rem; line-height: 1.2; color: var(--s-head, #4f4943); }
.gv-c-p { margin: 0 0 1rem; font-size: 0.9rem; line-height: 1.55; color: var(--s-ink-2, #5f574c); }
.gv-c-p a { color: var(--s-hi, #7f5b1d); text-decoration: underline; text-underline-offset: 0.2em; }
.gv-c-p a:is(:hover, :focus-visible) { color: var(--s-ink, #1d1a16); }
.gv-c-set { display: grid; gap: 0.75rem; margin: 0 0 1rem; padding: 0.9rem 0 0; border-top: 1px solid var(--s-rule, #e2d8c8); }
.gv-c-opt { display: grid; grid-template-columns: auto 1fr; gap: 0.7rem; align-items: start; cursor: pointer; }
.gv-c-opt input { width: 1.25rem; height: 1.25rem; margin: 0.12rem 0 0; accent-color: var(--s-acc-t, #7d5a1c); }
.gv-c-opt strong { display: block; font-size: 0.9rem; font-weight: 700; }
.gv-c-opt small { display: block; margin-top: 0.15rem; font-size: 0.8rem; line-height: 1.45; color: var(--s-ink-2, #5f574c); }
.gv-c-act { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.gv-c-b { flex: 1 1 9.5rem; min-height: 2.9rem; padding: 0 1rem; font-size: 0.8rem; white-space: normal; text-align: center; }
.gv-c-b[hidden] { display: none; }
.gv-c-link { flex: 1 0 100%; min-height: 1.5rem; padding: 0.3rem 0; border: 0; background: none; font: inherit; font-size: 0.85rem; color: var(--s-ink, #1d1a16); text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.gv-c-link:is(:hover, :focus-visible) { color: var(--s-hi, #7f5b1d); }
.gv-consent :is(button, input, a):focus-visible { outline: 2px solid var(--s-focus, #7d5a1c); outline-offset: 3px; }
@media (max-width: 40rem) {
  .gv-consent { left: 0; right: 0; bottom: 0; width: auto; }
  .gv-c-card { max-height: 85dvh; border-radius: 1.1rem 1.1rem 0 0; padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: no-preference) {
  html:not(.fx-off) .gv-consent:not([hidden]) { animation: gv-c-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) backwards; }
}
@keyframes gv-c-in { from { opacity: 0; transform: translateY(1.2rem); } to { opacity: 1; transform: none; } }

/* Formulare: Bot-Falle (außerhalb des Bildschirms, nicht per Tab erreichbar) und Datenschutzhinweis */
.gv-trap { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.gv-priv { margin: 0.2rem 0 0.9rem; font-size: 0.8rem; line-height: 1.5; color: var(--s-ink-2, #5f574c); }
.gv-priv a { color: var(--s-hi, #7f5b1d); text-decoration: underline; text-underline-offset: 0.2em; }
.gv-priv a:is(:hover, :focus-visible) { color: var(--s-ink, #1d1a16); }

/* Solange das Banner offen ist, scrollt der Fokus nie unter das Banner (WCAG 2.4.11) */
html.gv-consent-open { scroll-padding-bottom: calc(var(--gv-c-h, 0px) + 1.5rem); }
