.at-accessibility-wrapper {
  position: fixed;
  right: 0;
  bottom: 1%;
  z-index: 99;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: translateY(-50%);
  will-change: transform;
  transition: var(--baseTransition, all 0.3s ease);
  z-index: 9999;
}

/* Adjust position when sidenav is open */
.sticky-sidenav-open.active + .at-accessibility-wrapper {
  right: 300px; /* Move left when sidenav is open */
}

.at-accessibility-btn {
  position: relative;
  width: 73px;
  height: 65px;
  background: var(--mainGradient, black);
  color: #ffffff;
  border: none;
  border-top-left-radius: 9px;
  border-bottom-left-radius: 9px;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--baseTransition, all 0.3s ease);
  --ssn-shadow: -4px 4px 12px rgba(0, 0, 0, .1);
  --ssn-shadow-colored: -4px 4px 12px var(--ssn-shadow-color);
  box-shadow: var(--ssn-ring-offset-shadow, 0 0 #0000), var(--ssn-ring-shadow, 0 0 #0000), var(--ssn-shadow);
}
.at-accessibility-btn-close {
  position: absolute;
  right: 0;
  top: 0;
  border-radius: 0px 0px 0px 21px;
  padding: 14px 20px;
  border: 0;
  color: #fff;
  background: var(--mainGradient, black);
  background-size: 100%;
  transition: var(--baseTransition, all 0.3s ease);
  cursor: pointer;
  font-size: 16px !important;
  line-height: 1 !important;
  height: auto !important;
  min-height: 48px !important;
}
.accesibility_title {
  font-weight: 600;
  margin-bottom: 20px;
  line-height: 120% !important;
  font-size: 18px !important;
}
.at-accessibility-btn:hover,
.at-accessibility-btn:focus,
.at-accessibility-btn-close:hover,
.at-accessibility-btn-close:focus {
  background-size: 300%;
}

.at-accessibility-btn .at-icon {
  font-size: 24px;
  line-height: 1;
}

.at-accessibility-toolbar {
  position: absolute;
  right: 0;
  bottom: 0;
  background-color: #ffffff;
  padding: 80px 30px 30px 30px;
  box-shadow: 0px 9px 45px 10px rgba(0, 0, 0, 0.06);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  min-width: 350px;
  max-height: 50vh;
  overflow-y: auto;
  will-change: transform, opacity, visibility;
}

.at-accessibility-toolbar:not([aria-hidden="true"]) {
  opacity: 1;
  visibility: visible;
}

.at-toolbar-items {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.at-toolbar-item {
  margin: 0;
  &.disable-animations{
    @media (prefers-reduced-motion: reduce) {
      display: none;
    }
  }
}

.at-toolbar-link {
  width: 100%;
  padding: 12px;
  background: none;
  border: 1px solid var(--main-color, black);
  color: var(--fontColor, black);
  font-size: 16px !important;
  line-height: 120% !important;
  cursor: pointer;
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  transition: all 0.2s ease;
}

.at-toolbar-link:hover,
.at-toolbar-link:focus {
  background-color: var(--main-color, black);
  color: #ffffff;
  outline: none;
}

.at-toolbar-link .at-icon {
  font-size: 18px;
  line-height: 1;
}

.reset_all button {
  display: flex;
  align-items: center;
  gap: 10px;
  border-radius: 50px;
  font-weight: 600;
  font-size: var(--baseFontSize, 16px);
  background-size: 100%;
  overflow: hidden;
  line-height: inherit;
  cursor: pointer;
  padding: 10px 25px;
  position: relative;
  background: transparent;
  color: var(--main-color, black);
  border: 2px solid var(--main-color, black);
  transition: var(--baseTransition, all 0.3s ease);
  z-index: 1;
  margin-top: 20px;
}
.reset_all button:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  background: var(--mainGradient, black);
  z-index: -1;
  transition: var(--baseTransition, all 0.3s ease);
}
.reset_all button svg {
  width: 16px;
  margin-top: 1px;
}
.reset_all button:hover {
  color: #fff;
  background: transparent;
}

.reset_all button:hover:before,
.reset_all button:focus:before {
  opacity: 1;
  background: var(--mainGradient, black);
}
.reset_all button:hover svg,
.reset_all button:focus svg {
  filter: brightness(0) invert(1);
}

/* Accessibility Features */
.grayscale > *
{
  filter: grayscale(100%) !important;
}

.high-contrast {
  --main-color: #2c3e50 !important; /* Dark slate for primary elements */
  --secondColor: #34495e !important; /* Slightly lighter slate for secondary */
  --bannerBgColor: #1a252f !important; /* Very dark slate for banners */
  --frameBgColor: #1a252f !important; /* Very dark slate for frames */
  --mainGradient: linear-gradient(270deg, #2c3e50 0%, #1a252f 100%) !important;
  --backgroundColorLightBlue: #f7f7f7 !important; /* Very dark slate for light elements */
  --gradientColorLeft: #1a252f !important; /* Very dark slate gradient start */
  --gradientColorRight: #2c3e50 !important; /* Dark slate gradient end */
}

.underline-links a {
  text-decoration: underline !important;
}

/* Responsive Design */
@media screen and (max-width: 768px) {
  .at-accessibility-wrapper {
    top: auto;
    z-index: 99;
    transform: translateY(0);
    bottom: 50px;
  }
  .at-accessibility-btn {
    width: 40px;
    height: 40px;
  }
  .at-accessibility-btn svg {
    width: 27px;
  }
  .at-accessibility-toolbar {
    min-width: 320px;
    padding-left: 20px;
    padding-right: 20px;
    max-height: 65vh;
    top: auto;
    bottom: 0;
  }
}

/* Focus Styles */
.at-accessibility-btn:focus-visible,
.at-toolbar-link:focus-visible {
  outline: 2px solid var(--secondColor, black);
  outline-offset: 2px;
}

/* Active States */
.at-toolbar-link[aria-pressed="true"],
.at-toolbar-link:hover {
  background-color: var(--main-color, black);
  color: #ffffff;
}
.at-toolbar-link[aria-pressed="true"] svg,
.at-toolbar-link:hover svg,
.at-toolbar-link:focus-within svg {
  filter: brightness(0) invert(1);
}
/* Screen Reader Only */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}


/* =====================================================================
   Projekt-Anpassungen: peters-fuhrbetrieb.de (Theme hph-gmbh)
   WCAG 2.2 AA – Toolbar-Styling, Fokus, Tastatur, Reduced Motion,
   High-Contrast-Modus. Stand: 10/2026
   ===================================================================== */

/* ---------- 1. Toolbar im Theme-Look ---------- */
.at-accessibility-wrapper { font-family: "Open Sans", Arial, sans-serif; }
.at-accessibility-btn {
	width: 60px; height: 60px; background: #005186;
	border-radius: 1px 0 0 1px; box-shadow: 0 2px 20px 0 rgba(25, 25, 25, .12);
}
.at-accessibility-btn svg { width: 32px; height: auto; }
.at-accessibility-btn:hover, .at-accessibility-btn:focus, .at-accessibility-btn[aria-expanded="true"] { background: #003f69; }
.at-accessibility-toolbar {
	border-top: 5px solid #005186; border-radius: 0;
	box-shadow: 0 2px 20px 0 rgba(25, 25, 25, .12); min-width: 340px;
	padding: 80px 30px 30px; color: #3f3f3f;
}
.at-accessibility-btn-close {
	background: #005186; color: #fff; border-radius: 0; font-weight: 700;
	text-transform: uppercase; letter-spacing: .02em; font-size: 15px !important;
}
.at-accessibility-btn-close:hover, .at-accessibility-btn-close:focus { background: #003f69; }
.at-accessibility-toolbar .accesibility_title {
	color: #005186; font-weight: 900; text-transform: uppercase; font-size: 20px !important; margin-bottom: 20px;
}
.at-toolbar-link {
	justify-content: flex-start; border: 2px solid #005186; border-radius: 0;
	color: #005186; background: #fff; font-weight: 700; font-family: inherit; text-align: left;
	min-height: 48px; padding: 12px 16px;
}
.at-toolbar-link svg { flex: 0 0 auto; }
.at-toolbar-link svg [fill]:not([fill="none"]), .at-toolbar-link svg path:not([fill="none"]) { fill: currentColor; }
.at-toolbar-link:hover, .at-toolbar-link:focus, .at-toolbar-link[aria-pressed="true"] { background: #005186; color: #fff; }
.at-toolbar-link[aria-pressed="true"] svg, .at-toolbar-link:hover svg, .at-toolbar-link:focus-within svg { filter: none !important; }
.at-toolbar-link[aria-pressed="true"]::after { content: "✓"; margin-left: auto; font-weight: 900; }
.reset_all .at-toolbar-link { border-color: #6c6c6c; color: #3f3f3f; background: #f8f8f8; margin-top: 10px; }
.reset_all .at-toolbar-link:hover, .reset_all .at-toolbar-link:focus { background: #3f3f3f; color: #fff; }
@media screen and (max-width: 768px) {
	.at-accessibility-btn { width: 44px; height: 44px; }
	.at-accessibility-btn svg { width: 26px; }
	.at-accessibility-toolbar { min-width: 300px; max-width: calc(100vw - 16px); }
}

.reset_all .at-toolbar-link { border-radius: 0; font-weight: 700; font-size: 16px !important; justify-content: flex-start; padding: 12px 16px; border-width: 2px; }
.reset_all .at-toolbar-link::before { display: none; }
.at-accessibility-toolbar { max-height: calc(100vh - 140px); }
@media screen and (max-width: 768px) { .at-accessibility-toolbar { max-height: calc(100vh - 120px); } }

/* ---------- 2. Skip-Link ---------- */
.hph-skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 100000;
	background: #005186; color: #fff !important; padding: 14px 22px;
	font-family: "Open Sans", Arial, sans-serif; font-weight: 700; text-decoration: underline;
}
.hph-skip-link:focus { left: 10px; top: 10px; }
#allcont:focus, [role="main"]:focus { outline: none !important; box-shadow: none !important; }

/* ---------- 3. Sichtbarer Tastatur-Fokus (2.4.7 / 2.4.11 / 1.4.11) ---------- */
/* Zweifarbiger Ring: funktioniert auf hellen und dunklen Hintergründen */
:focus-visible {
	outline: 3px solid #003f69 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 2px #fff !important;
}
/* Elemente in Containern mit overflow (Menüs, Toolbar): Ring nach innen */
header.head .inner nav#site-navigation ul#primary-menu a:focus-visible,
header.head .inner nav#site-navigation ul#primary-menu button:focus-visible,
.at-accessibility-toolbar :focus-visible {
	outline-offset: -5px !important; box-shadow: inset 0 0 0 2px #fff !important;
}
/* Visuell versteckte Checkboxen (Gravity-Forms-Einwilligung, ALTCHA): Fokusring am sichtbaren Element */
.ginput_container_consent:has(input:focus-visible) label,
.altcha-checkbox:has(input:focus-visible), .altcha:has(input:focus-visible) .altcha-checkbox {
	outline: 3px solid #003f69 !important; outline-offset: 2px !important; box-shadow: 0 0 0 2px #fff !important;
}
/* Fokussierte Elemente nicht von der Sticky-Kopfzeile verdecken (2.4.11) */
html { scroll-padding-top: 200px; }

/* ---------- 4. Tastaturbedienung der Theme-Komponenten ---------- */
/* Desktop-Menü: Untermenüs per Leertaste/Enter öffnen (2.1.1) – Klasse .hph-open setzt das Toolbar-Script */
@media screen and (min-width: 1201px) {
	header.head .inner nav#site-navigation ul#primary-menu > li.hph-open > ul { display: block; }
	header.head .inner nav#site-navigation ul#primary-menu > li.megamenu-parent.hph-open > .sub-menu { display: flex; }
	header.head .inner nav#site-navigation ul#primary-menu > li ul li.hph-open > ul { display: block; }
	/* per Escape geschlossen (1.4.13) */
	header.head .inner nav#site-navigation ul#primary-menu > li.hph-dismissed > ul,
	header.head .inner nav#site-navigation ul#primary-menu > li.hph-dismissed > .sub-menu { display: none !important; }
}
/* Mobiles Menü: geschlossene Links nicht unsichtbar fokussierbar */
@media screen and (max-width: 1200px) {
	header.head .inner nav#site-navigation:not(.toggled) ul#primary-menu { visibility: hidden; }
}
/* Hover-Boxen: Inhalt auch bei Tastaturfokus zeigen */
.threecolumnhoverboxes .hoverboxes .singlehoverbox:focus-within .hoverboxtextsection .textsection > :not(h3) {
	height: auto; margin: 20px 0; opacity: 1; visibility: visible;
}
/* Kontakt-Reiter rechts: bei Fokus ausfahren */
.stickyfixednav .mailsection:focus-within, .stickyfixednav .telsection:focus-within { right: 0; }
@media screen and (min-width: 769px) {
	.stickyfixednav .mailsection.hph-dismissed, .stickyfixednav .telsection.hph-dismissed { right: calc(-100% + 60px) !important; }
}

/* ---------- 5. Animationen aus: System-Einstellung + Toolbar-Modus (2.3.3 / 2.2.2) ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto !important; }
	*, *::before, *::after {
		animation-duration: .001ms !important; animation-delay: 0s !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important; transition-delay: 0s !important;
	}
	.animated, .animatedParent .animated { opacity: 1 !important; visibility: visible !important; transform: none !important; animation: none !important; }
}
html:has(body[data-accessibility-animations="false"]) { scroll-behavior: auto !important; }
body[data-accessibility-animations="false"] *,
body[data-accessibility-animations="false"] *::before,
body[data-accessibility-animations="false"] *::after {
	animation-duration: .001ms !important; animation-delay: 0s !important;
	animation-iteration-count: 1 !important;
	transition-duration: .001ms !important; transition-delay: 0s !important;
}
body[data-accessibility-animations="false"] .animated { opacity: 1 !important; visibility: visible !important; transform: none !important; animation: none !important; }

/* ---------- 6. Hoher Kontrast (1.4.3 / 1.4.11) ---------- */
/* Text auf Bildern: Bild abdunkeln + Textschatten */
body.high-contrast .bannerwrapper > img.attachment-full,
body.high-contrast .threecolumnhoverboxes .introsection > img.attachment-full,
body.high-contrast .downloadbuttonswrap > img.attachment-full { filter: brightness(.4); }
body.high-contrast .bannerinner, body.high-contrast .threecolumnhoverboxes .introsection .introinner,
body.high-contrast .downloadbuttonswrap .introdownloads { text-shadow: 0 1px 4px rgba(0, 0, 0, .9); }
body.high-contrast .wp-block-gallery figcaption, body.high-contrast .wp-block-image figcaption.wp-element-caption {
	background: rgba(0, 0, 0, .75) !important; color: #fff !important;
}
/* Orange Buttons: dunkleres Orange (weiß auf #b34700 = 5,5:1) */
body.high-contrast button.submit, body.high-contrast a.btn, body.high-contrast .is-style-btn > a,
body.high-contrast .gform_wrapper .gform_button, body.high-contrast .gform_wrapper input[type="submit"],
body.high-contrast .woocommerce a.button, body.high-contrast .woocommerce button.button,
body.high-contrast .woocommerce input.button, body.high-contrast .woocommerce #respond input#submit {
	background: #b34700 !important; color: #fff !important;
}
body.high-contrast button.submit::after, body.high-contrast a.btn::after, body.high-contrast .is-style-btn > a::after { background-color: #8f3a00 !important; }
body.high-contrast button.submit:hover, body.high-contrast a.btn:hover, body.high-contrast .is-style-btn > a:hover,
body.high-contrast .gform_wrapper .gform_button:hover { background: #003f69 !important; }
/* Icons (orange) an den Kontakt-Reitern: blauer Grund statt weiß (Orange auf #005186 = 3,1:1) */
body.high-contrast .stickyfixednav .mailsection::before, body.high-contrast .stickyfixednav .telsection::before { background-color: #005186 !important; }
/* Formularfelder: sichtbare Rahmen */
body.high-contrast input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
body.high-contrast textarea, body.high-contrast select { border-color: #6c6c6c !important; }
body.high-contrast input[type="checkbox"], body.high-contrast input[type="radio"] { outline: 1px solid #6c6c6c; }
/* Texte */
body.high-contrast .subtitlestyle { color: #003f69 !important; }
body.high-contrast .bannerwrapper:has(> img.attachment-full) .subtitlestyle,
body.high-contrast .threecolumnhoverboxes .introsection .subtitlestyle,
body.high-contrast .downloadbuttonswrap .subtitlestyle { color: #fff !important; }
body.high-contrast .hoverboxtextsection a, body.high-contrast .hoverboxtextsection span { color: #fff !important; text-decoration: underline; }
body.high-contrast .redq-pick-up-location p[data-rnb-label], body.high-contrast .date-time-picker p[data-rnb-label],
body.high-contrast .redq-quantity p[data-rnb-label], body.high-contrast .rnb-pricing-plan-link,
body.high-contrast .gform_wrapper .gfield_description, body.high-contrast ::placeholder { color: #595959 !important; }
body.high-contrast #cal-submit-btn { color: #fff !important; }
body.high-contrast .woocommerce-pagination .page-numbers, body.high-contrast .woocommerce nav.woocommerce-pagination ul li a { color: #003f69 !important; }
body.high-contrast .woocommerce nav.woocommerce-pagination ul li span.current { background: #003f69 !important; color: #fff !important; }
body.high-contrast .entry-content a:not(.btn):not(.button):not(.downloadbtn) { text-decoration: underline; }

/* Footer-Links: dunkleres Orange bei Hover/Fokus (#8f3a00 auf #f8f8f8 = 7,1:1) */
body.high-contrast footer.foot a:hover, body.high-contrast footer.foot a:focus,
body.high-contrast footer.foot .inner .row.row-2 ul li a:hover { color: #8f3a00 !important; text-decoration: underline; }

/* Google-Karte: "Karte überspringen"-Link (nur bei Fokus sichtbar) + Fokusring innerhalb der Karte */
.hph-skip-inline {
	position: absolute; left: -9999px; z-index: 1000;
	background: #005186; color: #fff !important; padding: 12px 20px;
	font-weight: 700; text-decoration: underline;
}
.hph-skip-inline:focus { left: 20px; margin-top: 20px; }
.website_google_map { position: relative; }
#dvMap :focus-visible { outline-offset: -4px !important; box-shadow: inset 0 0 0 6px #fff !important; }
#hph-map-ende:focus { outline: none !important; box-shadow: none !important; }
