/* So finden Sie uns: Karte über die ganze Breite, Anschrift als Karte darüber.
   Google zeigt nach dem Laden links oben eine Infobox, rechts oben ggf. den Vollbild-Knopf und unten Logo, Zoom und Kartendaten.
   Die Anschrift-Karte sitzt deshalb rechts, mit Abstand nach oben und unten – sie verdeckt nichts davon. */
.anf {
  --map-art: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 900 520%22 preserveAspectRatio=%22xMidYMid slice%22%3E%0A%3Crect width=%22900%22 height=%22520%22 fill=%22%23eadfc8%22/%3E%0A%3Cg fill=%22%23f6efe0%22%3E%0A%3Crect x=%2220%22 y=%2224%22 width=%22150%22 height=%22110%22 rx=%228%22/%3E%3Crect x=%22190%22 y=%2224%22 width=%22190%22 height=%2286%22 rx=%228%22/%3E%3Crect x=%22400%22 y=%2224%22 width=%22120%22 height=%22120%22 rx=%228%22/%3E%0A%3Crect x=%22640%22 y=%2224%22 width=%22230%22 height=%2296%22 rx=%228%22/%3E%3Crect x=%2220%22 y=%22156%22 width=%22110%22 height=%22130%22 rx=%228%22/%3E%3Crect x=%22150%22 y=%22132%22 width=%22170%22 height=%22104%22 rx=%228%22/%3E%0A%3Crect x=%22560%22 y=%22150%22 width=%22130%22 height=%22110%22 rx=%228%22/%3E%3Crect x=%22710%22 y=%22146%22 width=%22160%22 height=%22120%22 rx=%228%22/%3E%3Crect x=%2220%22 y=%22310%22 width=%22190%22 height=%2290%22 rx=%228%22/%3E%0A%3Crect x=%22230%22 y=%22262%22 width=%22140%22 height=%22130%22 rx=%228%22/%3E%3Crect x=%22400%22 y=%22300%22 width=%22170%22 height=%22100%22 rx=%228%22/%3E%3Crect x=%22600%22 y=%22290%22 width=%22120%22 height=%22110%22 rx=%228%22/%3E%0A%3Crect x=%22740%22 y=%22290%22 width=%22130%22 height=%22120%22 rx=%228%22/%3E%3Crect x=%2220%22 y=%22424%22 width=%22250%22 height=%2276%22 rx=%228%22/%3E%3Crect x=%22300%22 y=%22424%22 width=%22150%22 height=%2276%22 rx=%228%22/%3E%3Crect x=%22480%22 y=%22424%22 width=%22390%22 height=%2276%22 rx=%228%22/%3E%0A%3C/g%3E%0A%3Crect x=%22400%22 y=%22162%22 width=%22130%22 height=%22112%22 rx=%2210%22 fill=%22%23dfe6c6%22/%3E%0A%3Cpath d=%22M-20 270 C 140 236, 260 300, 420 262 S 700 214, 940 258%22 fill=%22none%22 stroke=%22%23c3e0e1%22 stroke-width=%2222%22 stroke-linecap=%22round%22/%3E%0A%3Cpath d=%22M-20 270 C 140 236, 260 300, 420 262 S 700 214, 940 258%22 fill=%22none%22 stroke=%22%23d7ecec%22 stroke-width=%2212%22 stroke-linecap=%22round%22/%3E%0A%3Cg fill=%22none%22 stroke=%22%23fffaf1%22 stroke-linecap=%22round%22%3E%0A%3Cpath d=%22M0 142 L900 150%22 stroke-width=%2212%22/%3E%3Cpath d=%22M0 412 L900 408%22 stroke-width=%2212%22/%3E%3Cpath d=%22M184 0 L196 520%22 stroke-width=%2210%22/%3E%3Cpath d=%22M386 0 L392 520%22 stroke-width=%2212%22/%3E%0A%3Cpath d=%22M536 0 L548 520%22 stroke-width=%2210%22/%3E%3Cpath d=%22M700 0 L690 520%22 stroke-width=%2212%22/%3E%3Cpath d=%22M0 286 L330 300 L560 280%22 stroke-width=%227%22/%3E%3Cpath d=%22M552 150 L548 278%22 stroke-width=%226%22/%3E%0A%3C/g%3E%0A%3Cellipse cx=%22610%22 cy=%22218%22 rx=%2220%22 ry=%227%22 fill=%22%232a1d12%22 opacity=%22.16%22/%3E%0A%3Cpath d=%22M610 214 C 590 188, 576 172, 576 152 a34 34 0 1 1 68 0 c0 20 -14 36 -34 62z%22 fill=%22%23c8811f%22/%3E%0A%3Ccircle cx=%22610%22 cy=%22152%22 r=%2213%22 fill=%22%23fffaf1%22/%3E%0A%3C/svg%3E");
  --anf-gap: 16px; --anf-top: 64px; --anf-bottom: 120px;
  position: relative; margin: 0;
}
.anf__map {
  position: relative; height: var(--anf-h, 480px); min-height: 420px; overflow: hidden;
  background: var(--map-art) center / cover no-repeat #eadfc8;
  border: 1px solid var(--line, #e2d5bf); border-radius: var(--radius-md, 8px);
}
.anf__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.anf__fallback { position: absolute; left: var(--anf-gap); bottom: var(--anf-gap); }

/* Anschrift-Karte */
.anf__card {
  position: absolute; z-index: 2; top: var(--anf-gap); right: var(--anf-gap);
  width: min(21rem, calc(100% - 2 * var(--anf-gap))); max-height: calc(100% - var(--anf-gap) - var(--anf-bottom)); overflow: auto;
  padding: 1.25rem 1.4rem 1.4rem;
  background: rgba(255, 250, 241, .97); color: var(--ink, #2a1d12);
  border: 1px solid var(--line, #e2d5bf); border-radius: var(--radius-md, 8px); box-shadow: var(--shadow-md, 0 8px 24px rgba(42, 29, 18, .14));
  transition: top .25s ease;
}
.anf.is-loaded .anf__card { top: var(--anf-top); max-height: calc(100% - var(--anf-top) - var(--anf-bottom)); }
.anf .anf__title { margin: 0 0 .75rem; font-size: 1.25rem; line-height: 1.25; }
.anf .anf__title::before { content: ""; display: block; width: 2.5rem; height: 3px; margin-bottom: .6rem; border-radius: 3px; background: var(--amber, #c8811f); }
.anf__address { margin: 0 0 1rem; font-style: normal; font-size: 1.0625rem; line-height: 1.55; }
.anf__address strong { font-family: var(--font-serif, Georgia, serif); }
.anf__text { margin: -.25rem 0 1rem; font-size: .9375rem; color: var(--ink-muted, #6b5a47); }
.anf__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.anf__actions .btn { flex: 1 1 auto; justify-content: center; text-align: center; }

/* Hinweis vor dem Laden der Karte (links unten, verschwindet nach dem Laden) */
.anf__consent { position: absolute; z-index: 1; left: var(--anf-gap); bottom: var(--anf-gap); width: min(22rem, calc(100% - 2 * var(--anf-gap))); padding: 1.1rem 1.25rem;
  background: rgba(255, 250, 241, .97); border: 1px solid var(--line, #e2d5bf); border-radius: var(--radius-md, 8px); box-shadow: var(--shadow-md, 0 8px 24px rgba(42, 29, 18, .14)); }
.anf__consent h3 { margin: 0 0 .35rem; font-size: 1.0625rem; }
.anf__consent p { margin: 0 0 .85rem; font-size: .875rem; color: var(--ink-muted, #6b5a47); }
.anf__consent-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.anf__consent-actions a { font-size: .875rem; }

/* Randlos über die ganze Bildschirmbreite */
.anf--screen { width: var(--anf-vw, 100vw); margin-left: calc(50% - var(--anf-vw, 100vw) / 2); }
.anf--screen .anf__map { border-radius: 0; border-inline: 0; }
@media (min-width: 1240px) {
  .anf--screen { --anf-gap-x: calc((var(--anf-vw, 100vw) - var(--container, 1200px)) / 2 + 16px); }
  .anf--screen .anf__card { right: var(--anf-gap-x); }
  .anf--screen .anf__consent { left: var(--anf-gap-x); }
}

/* Handy: Anschrift unter der Karte statt darüber, damit die Karte frei bleibt */
@media (max-width: 767.98px) {
  .anf__consent { right: var(--anf-gap); width: auto; max-width: 26rem; }
  .anf__map { height: min(var(--anf-h, 480px), 400px); min-height: 320px; border-radius: var(--radius-md, 8px) var(--radius-md, 8px) 0 0; }
  .anf__card, .anf.is-loaded .anf__card { position: static; display: block; width: auto; max-height: none; border-top: 0; border-radius: 0 0 var(--radius-md, 8px) var(--radius-md, 8px); box-shadow: none; }
  .anf--screen .anf__card { border-inline: 0; border-radius: 0; }
}
@media (prefers-reduced-motion: reduce) { .anf__card { transition: none; } }

/* Abstände: oben und unten nur der einheitliche Startseiten-Abstand, keine doppelten Zuschläge */
.is-home .pos-bottom:has(.anf) { margin-top: var(--home-gap, 40px); }
.site-body:has(.anf) { padding-bottom: var(--home-gap, 40px); }
.pos-bottom .module-card:has(.anf) { margin: 0; }
.module-card:has(> .module-card__body > .anf) .module-card__body { margin: 0; }
