/* AFG A11y Toolbar v1. Self-hosted and intentionally independent of site layout. */
.afg-a11y { display:none; position:fixed; right:22px; bottom:22px; z-index:1200; font:14px/1.4 Arial,"Segoe UI",sans-serif; color:#29252b; }
html.afg-a11y-ready .afg-a11y { display:block; }
.afg-a11y, .afg-a11y * { box-sizing:border-box; }
.afg-a11y-trigger { width:60px; height:60px; display:flex; align-items:center; justify-content:center; border:2px solid #fff; border-radius:50%; box-shadow:0 6px 25px rgba(31,16,26,.24); background:#bd2038; color:#fff; cursor:pointer; transition:background .15s ease,transform .15s ease; }
.afg-a11y-trigger:hover { background:#97182f; transform:translateY(-2px); }
.afg-a11y-trigger[aria-expanded="true"] { background:#29252b; }
.afg-a11y :is(button):focus-visible { outline:3px solid #263b9f !important; outline-offset:3px; }
.afg-a11y-panel { position:absolute; bottom:73px; right:0; width:min(370px,calc(100vw - 32px)); max-height:min(690px,calc(100dvh - 112px)); overflow-y:auto; overscroll-behavior:contain; border-radius:16px; border:1px solid #e4dade; background:#fff; color:#252029; box-shadow:0 16px 56px rgba(37,19,30,.23); }
.afg-a11y-panel[hidden] { display:none!important; }
.afg-a11y-panel-header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 20px 17px; border-bottom:1px solid #f1e7ea; }
.afg-a11y-panel-header h2 { font:700 22px/1.25 Arial,"Segoe UI",sans-serif; letter-spacing:-.02em; margin:4px 0 0; color:#29252b; }
.afg-a11y-eyebrow { font:800 10px/1 Arial,"Segoe UI",sans-serif; letter-spacing:.16em; color:#a61931; }
.afg-a11y-close { flex:none; display:flex; align-items:center; justify-content:center; border:1px solid #e5dde0; background:#fff; border-radius:10px; width:38px; height:38px; cursor:pointer; }
.afg-a11y-close:hover { background:#f8eff1; }
.afg-a11y-panel-body { padding:18px 20px 20px; }
.afg-a11y-block-label { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }
.afg-a11y-block-label h3,.afg-a11y-tools-heading { font:700 14px/1.35 Arial,"Segoe UI",sans-serif; letter-spacing:0; margin:0; color:#29252b; }
#afg-a11y-size-output { font:700 13px/1.25 Arial,"Segoe UI",sans-serif; color:#a61931; }
.afg-a11y-size-controls { display:grid; grid-template-columns:1fr 1fr 1fr; gap:9px; }
.afg-a11y-size-controls button { min-height:43px; border:1px solid #e0d2d7; border-radius:9px; background:#faf7f8; color:#30242c; font:700 17px/1 Arial,"Segoe UI",sans-serif; cursor:pointer; }
.afg-a11y-size-controls button:nth-child(2) { font-size:13px; }
.afg-a11y-size-controls button:hover:not(:disabled) { border-color:#bc2038; color:#9b1831; background:#fdf2f5; }
.afg-a11y-size-controls button:disabled { opacity:.43; cursor:not-allowed; }
.afg-a11y-tools-heading { margin:21px 0 12px; }
.afg-a11y-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.afg-a11y-options button { display:flex; flex-direction:column; align-items:flex-start; gap:7px; min-height:84px; padding:11px 12px; border-radius:10px; border:1px solid #e6dce0; background:#fff; color:#30242c; text-align:left; font:600 12px/1.35 Arial,"Segoe UI",sans-serif; cursor:pointer; }
.afg-a11y-options button:hover { border-color:#cf8b9a; background:#fff8fa; }
.afg-a11y-options button[aria-pressed="true"] { background:#fcecf0; border-color:#b11b35; box-shadow:inset 0 0 0 1px #b11b35; }
.afg-a11y-options button[aria-pressed="true"]::after { content:"Be"; align-self:flex-end; background:#a71932; color:#fff; padding:2px 6px; border-radius:7px; font-size:10px; line-height:1.1; margin-top:-18px; }
.afg-a11y-option-icon { color:#b71c36; font:700 19px/1 Arial,"Segoe UI",sans-serif; }
.afg-a11y-reset-all { display:block; width:100%; min-height:44px; margin-top:17px; border:1px solid #a71932; border-radius:9px; background:#fff; color:#9b1830; font:700 13px/1.35 Arial,"Segoe UI",sans-serif; cursor:pointer; }
.afg-a11y-reset-all:hover { background:#fff2f4; }
.afg-a11y-note { font:400 11px/1.6 Arial,"Segoe UI",sans-serif; color:#625960; margin:12px 0 0; }
@media (max-width:600px) {
  .afg-a11y { right:13px; bottom:13px; }
  .afg-a11y-trigger { width:54px; height:54px; }
  .afg-a11y-panel { bottom:65px; width:min(354px,calc(100vw - 26px)); max-height:calc(100dvh - 98px); }
  .afg-a11y-panel-header { padding:15px 16px 14px; }
  .afg-a11y-panel-body { padding:15px 16px 16px; }
  .afg-a11y-options button { min-height:78px; }
}
@media (prefers-reduced-motion:reduce) {
  .afg-a11y *, .afg-a11y *::before, .afg-a11y *::after { animation:none!important; transition:none!important; }
}
@media print { .afg-a11y { display:none!important; } }
/* User-selected page adjustments; no permanent markup changes. */
/* v5.7: genuinely high-contrast mode: black surfaces, white text, yellow links and controls.
   Only applies while the user selects Erős kontraszt. Photographs keep their natural colors. */
html.afg-a11y-contrast {
  color-scheme: dark;
  --red:#ffeb00; --red-dark:#ffeb00;
  --ink:#ffffff; --muted:#ffffff; --line:#ffffff;
  --pink:#000000; --soft:#000000;
  background:#000 !important;
}
html.afg-a11y-contrast body { background:#000 !important; color:#fff !important; }
/* Original components use many independent hard-coded light colors.
   Apply the contrast palette across them without affecting the floating toolbar. */
html.afg-a11y-contrast body :where(*):not(.afg-a11y, .afg-a11y *) {
  color:#fff !important;
  background-color:#000 !important;
  background-image:none !important;
  border-color:#fff !important;
  box-shadow:none !important;
  text-shadow:none !important;
}
/* Preserve yellow link color even when a link contains nested spans/icons. */
html.afg-a11y-contrast body :is(a, a *):not(.afg-a11y, .afg-a11y *) {
  color:#ffeb00 !important;
  text-decoration-color:#ffeb00 !important;
}
html.afg-a11y-contrast body a:not(.afg-a11y *) {
  text-decoration:underline !important;
  text-decoration-thickness:2px !important;
  text-underline-offset:.2em !important;
}
/* Real, distinct buttons rather than pale-gray-on-white controls. */
html.afg-a11y-contrast body :is(button, .btn, input[type="button"], input[type="submit"], [role="button"]):not(.afg-a11y, .afg-a11y *) {
  color:#000 !important;
  background:#ffeb00 !important;
  border:2px solid #ffeb00 !important;
  opacity:1;
}
html.afg-a11y-contrast body :is(button *, .btn *, [role="button"] *):not(.afg-a11y, .afg-a11y *) {
  color:#000 !important;
}
html.afg-a11y-contrast body :is(button, .btn, input[type="button"], input[type="submit"], [role="button"]):hover:not(.afg-a11y, .afg-a11y *) {
  background:#fff !important;
  border-color:#fff !important;
}
html.afg-a11y-contrast body :is(input:not([type="button"]):not([type="submit"]), textarea, select):not(.afg-a11y *) {
  color:#fff !important;
  background:#000 !important;
  border:2px solid #fff !important;
  opacity:1;
}
html.afg-a11y-contrast body :is(input, textarea)::placeholder { color:#fff !important; opacity:1 !important; }
html.afg-a11y-contrast body :is(a,button,input,textarea,select,[tabindex]):focus-visible {
  outline:4px solid #00ffff !important;
  outline-offset:3px !important;
}
/* Pseudo-elements and separators must not retain near-invisible pale gray. */
html.afg-a11y-contrast body :not(.afg-a11y, .afg-a11y *)::before,
html.afg-a11y-contrast body :not(.afg-a11y, .afg-a11y *)::after {
  border-color:#fff !important;
  text-shadow:none !important;
}
/* Keep the accessibility panel just as readable when contrast mode is active. */
html.afg-a11y-contrast .afg-a11y-trigger { background:#ffeb00 !important; color:#000 !important; border:3px solid #fff !important; box-shadow:0 0 0 2px #000 !important; }
html.afg-a11y-contrast .afg-a11y-panel { background:#000 !important; color:#fff !important; border:2px solid #ffeb00 !important; box-shadow:0 0 0 3px #fff !important; }
html.afg-a11y-contrast .afg-a11y-panel-header { border-color:#fff !important; }
html.afg-a11y-contrast .afg-a11y :is(h2,h3,.afg-a11y-eyebrow,.afg-a11y-option-icon,#afg-a11y-size-output,.afg-a11y-note) { color:#fff !important; }
html.afg-a11y-contrast .afg-a11y :is(.afg-a11y-close,.afg-a11y-size-controls button,.afg-a11y-options button,.afg-a11y-reset-all) { background:#000 !important; color:#fff !important; border:2px solid #fff !important; }
html.afg-a11y-contrast .afg-a11y :is(.afg-a11y-close,.afg-a11y-size-controls button,.afg-a11y-options button,.afg-a11y-reset-all):hover:not(:disabled) { background:#222 !important; }
html.afg-a11y-contrast .afg-a11y .afg-a11y-options button[aria-pressed="true"],
html.afg-a11y-contrast .afg-a11y .afg-a11y-options button[aria-pressed="true"]:hover { background:#ffeb00 !important; color:#000 !important; border-color:#ffeb00 !important; }
html.afg-a11y-contrast .afg-a11y .afg-a11y-options button[aria-pressed="true"] .afg-a11y-option-icon { color:#000 !important; }
html.afg-a11y-contrast .afg-a11y .afg-a11y-options button[aria-pressed="true"]::after { background:#000 !important; color:#ffeb00 !important; }
html.afg-a11y-contrast .afg-a11y :is(button):focus-visible { outline:4px solid #00ffff !important; outline-offset:3px !important; }
html.afg-a11y-grayscale :is(.utility,.site-header,main,.contact-strip,.site-footer) { filter:grayscale(1); }
html.afg-a11y-links :is(main,.site-header,.site-footer) a { text-decoration:underline!important; text-underline-offset:.2em; }
html.afg-a11y-readable body { font-family:Verdana,Geneva,Arial,sans-serif!important; letter-spacing:.015em; }
html.afg-a11y-readable :is(button,input,textarea,select) { font-family:inherit!important; }
html.afg-a11y-spacing :is(p,li,dd,dt,blockquote,td,.article-text) { line-height:2!important; letter-spacing:.02em; }
html.afg-a11y-no-motion { scroll-behavior:auto!important; }
html.afg-a11y-no-motion *, html.afg-a11y-no-motion *::before,html.afg-a11y-no-motion *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
