/* Cookie consent banner (website statistics). Compact bar at the bottom, AVM house style. */
.avm-consent { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; padding: 0 max(12px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); pointer-events: none; }
.avm-consent[hidden] { display: none; }
.avm-consent-inner { pointer-events: auto; max-width: 980px; margin: 0 auto; display: flex; align-items: center; gap: 20px; background: var(--ink); color: var(--paper); border-radius: 16px; padding: 16px 20px; box-shadow: 0 12px 36px #06121c40; }
.avm-consent-text { margin: 0; font-size: .875rem; line-height: 1.5; flex: 1 1 auto; }
.avm-consent-text strong { display: block; margin-bottom: 2px; font-size: .9375rem; }
.avm-consent-text a { color: var(--green); text-decoration: underline; text-underline-offset: 2px; }
.avm-consent-actions { display: flex; gap: 10px; flex: 0 0 auto; }
.avm-consent-btn { min-height: 44px; min-width: 128px; padding: 10px 18px; border-radius: 10px; border: 2px solid var(--green); font: inherit; font-size: .9375rem; font-weight: 700; cursor: pointer; }
.avm-consent-accept { background: var(--green); color: var(--ink); }
.avm-consent-reject { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.avm-consent-btn:focus-visible { outline: 3px solid var(--paper); outline-offset: 3px; }
/* Keep floating chat controls above the banner while it is visible. */
body.avm-consent-open .avm-chat-toggle { bottom: calc(var(--avm-consent-h, 0px) + 12px + env(safe-area-inset-bottom)); }
body.avm-consent-open .avm-chat-attention { bottom: calc(var(--avm-consent-h, 0px) + 78px + env(safe-area-inset-bottom)); }
body.avm-consent-open .floating-whatsapp { bottom: calc(var(--avm-consent-h, 0px) + 12px + env(safe-area-inset-bottom)); }
/* Reserve room under the page so every CTA and the footer can be scrolled above the banner. */
body.avm-consent-open { padding-bottom: var(--avm-consent-h, 0px); }
/* An open chat panel or mobile menu stays fully usable: the banner waits underneath until it closes. */
body.avm-chat-open .avm-consent, body.menu-open .avm-consent { z-index: 39; }
/* Footer link to reopen the settings. */
.footer-consent-link { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.footer-consent-link:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
@media (max-width: 760px) {
  .avm-consent { padding-left: 8px; padding-right: 8px; padding-bottom: calc(8px + env(safe-area-inset-bottom)); }
  .avm-consent-inner { flex-direction: column; align-items: stretch; gap: 10px; padding: 12px 14px; border-radius: 14px; }
  .avm-consent-text { font-size: .8125rem; line-height: 1.45; }
  .avm-consent-text strong { font-size: .875rem; }
  .avm-consent-btn { min-height: 44px; padding: 8px 12px; }
  .avm-consent-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .avm-consent-btn { min-width: 0; width: 100%; }
}
/* Google Maps placeholder (/contact/): the map loads only after a click on "Google Maps laden". */
.location-map-placeholder { background: var(--soft); }
.location-map-placeholder-inner { min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 28px 24px; text-align: center; }
.location-map-placeholder-inner .location-pin { color: var(--ink); }
.location-map-placeholder-title { margin: 0; font-weight: 700; font-size: 1.05rem; }
.location-map-placeholder-note { margin: 0 0 6px; max-width: 420px; font-size: .875rem; color: var(--muted); }
.location-map-placeholder-note a { color: var(--ink); }
.location-map-placeholder .button { cursor: pointer; justify-content: center; }
@media (max-width: 759px) { .location-map-placeholder-inner { min-height: 260px; } }
