.hfp-a11y { position: fixed; left: 20px; bottom: 20px; z-index: 9998; font-family: 'Lato', sans-serif; }
.hfp-a11y__toggle {
  width: 52px; height: 52px; border-radius: 50%;
  background: #c71748; color: #fff; border: 2px solid #fff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.hfp-a11y__toggle:hover { background: #a3123a; }
.hfp-a11y__toggle:focus-visible, .hfp-a11y__panel :focus-visible { outline: 3px solid #171717; outline-offset: 3px; }
.hfp-a11y__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hfp-a11y__panel {
  position: absolute; left: 0; bottom: 66px; width: 300px; max-width: calc(100vw - 40px);
  max-height: calc(100vh - 110px); overflow: auto;
  background: #fff; color: #171717; padding: 20px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
  border-top: 4px solid #c71748;
}
.hfp-a11y__panel[hidden] { display: none; }
.hfp-a11y__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; }
.hfp-a11y__head h2 { font-size: 18px; margin: 0; color: #171717; font-weight: 700; letter-spacing: 0; text-transform: none; }
.hfp-a11y__close { background: none; border: 0; color: #171717; padding: 6px; cursor: pointer; }
.hfp-a11y__group p { margin: 0 0 8px; font-size: 14px; color: #171717; font-weight: 700; }
.hfp-a11y__size { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; }
.hfp-a11y__size button { flex: 1; padding: 8px; border: 1px solid #c71748; background: #fff; color: #c71748; font-weight: 700; cursor: pointer; font-size: 16px; }
.hfp-a11y__size button:hover { background: #c71748; color: #fff; }
.hfp-a11y__size output { min-width: 56px; text-align: center; font-size: 14px; color: #171717; }
.hfp-a11y__list { list-style: none; padding: 0; margin: 0 0 15px; }
.hfp-a11y__list li { border-top: 1px solid #eee; }
.hfp-a11y__switch { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 11px 0; background: none; border: 0; color: #171717; font-size: 15px; text-align: left; cursor: pointer; }
.hfp-a11y__track { width: 40px; height: 22px; border-radius: 11px; background: #8a8a8a; position: relative; flex: 0 0 40px; transition: background 0.2s; }
.hfp-a11y__track span { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: left 0.2s; }
.hfp-a11y__switch[aria-checked="true"] .hfp-a11y__track { background: #c71748; }
.hfp-a11y__switch[aria-checked="true"] .hfp-a11y__track span { left: 21px; }
.hfp-a11y__foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13px; }
.hfp-a11y__foot a { color: #c71748; text-decoration: underline; }
.hfp-a11y__reset { background: none; border: 0; padding: 0; color: #171717; text-decoration: underline; cursor: pointer; font-size: 13px; }
@media (max-width: 767px) { .hfp-a11y { left: 12px; bottom: 12px; } .hfp-a11y__toggle { width: 46px; height: 46px; } }

/* Wirkungen */
/* Schrift größer: Inhalt skalieren wie Browser-Zoom (Template nutzt feste px) */
html.hfp-a11y-size-1 #hfp-main, html.hfp-a11y-size-1 body > footer, html.hfp-a11y-size-1 .tp-theme-btn-area { zoom: 1.12; }
html.hfp-a11y-size-2 #hfp-main, html.hfp-a11y-size-2 body > footer, html.hfp-a11y-size-2 .tp-theme-btn-area { zoom: 1.25; }
html.hfp-a11y-size-3 #hfp-main, html.hfp-a11y-size-3 body > footer, html.hfp-a11y-size-3 .tp-theme-btn-area { zoom: 1.4; }
html[class*="hfp-a11y-size-"] body { overflow-x: hidden; }

html.hfp-a11y-contrast body,
html.hfp-a11y-contrast p,
html.hfp-a11y-contrast li,
html.hfp-a11y-contrast span:not(.hfp-a11y__track):not(.hfp-a11y__track span) { color: #000 !important; }
html.hfp-a11y-contrast .black-bg p, html.hfp-a11y-contrast .black-bg span, html.hfp-a11y-contrast .black-bg li,
html.hfp-a11y-contrast .off-canvas-bg p, html.hfp-a11y-contrast .off-canvas-bg span,
html.hfp-a11y-contrast .tp-slider-text span, html.hfp-a11y-contrast footer p, html.hfp-a11y-contrast footer span,
html.hfp-a11y-contrast footer li, html.hfp-a11y-contrast footer a { color: #fff !important; }
html.hfp-a11y-contrast .tp-footer__area { background: #111 !important; }
html.hfp-a11y-contrast .tp-section-subtitle, html.hfp-a11y-contrast .tp-ab-subtitle span { color: #000 !important; }
html.hfp-a11y-contrast input, html.hfp-a11y-contrast textarea { border: 2px solid #000 !important; background: #fff !important; color: #000 !important; }
html.hfp-a11y-contrast .breadcrumb__overlay::before { background: rgba(0, 0, 0, 0.75) !important; }

html.hfp-a11y-links a:not(.hfp-a11y *) { text-decoration: underline !important; text-underline-offset: 3px; text-decoration-thickness: 2px !important; }
html.hfp-a11y-links a:focus, html.hfp-a11y-links a:hover { outline: 2px solid #c71748; outline-offset: 2px; }

html.hfp-a11y-spacing body :is(p, li, dd) { line-height: 1.9 !important; letter-spacing: 0.02em !important; word-spacing: 0.08em !important; }
html.hfp-a11y-spacing body p { margin-bottom: 1.4em !important; }

html.hfp-a11y-font body, html.hfp-a11y-font body * { font-family: Verdana, Tahoma, 'Segoe UI', Arial, sans-serif !important; }
html.hfp-a11y-font .pe-7s-users, html.hfp-a11y-font [class^="pe-7s-"], html.hfp-a11y-font [class*=" pe-7s-"] { font-family: 'Pe-icon-7-stroke' !important; }

html.hfp-a11y-motion *, html.hfp-a11y-motion *::before, html.hfp-a11y-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
