/* Self hosted accessibility controls and consent interface */
.impression-controls, .impression-controls * { box-sizing: border-box; }
.impression-controls { position: fixed; inset: auto auto 16px 16px; z-index: 2147483000; direction: ltr; font: 15px/1.5 Arial, sans-serif; color: #202426; }
.impression-controls[dir="rtl"] { left: auto; right: 16px; direction: rtl; }
.impression-controls button, .impression-controls a { font: inherit; }
.impression-access-button { width: 52px; height: 52px; border: 2px solid #fff; border-radius: 50%; background: #415a0a; color: #fff; box-shadow: 0 3px 14px #0005; cursor: pointer; font-size: 28px !important; line-height: 1 !important; }
.impression-access-button:focus-visible, .impression-controls button:focus-visible, .impression-controls a:focus-visible { outline: 3px solid #164de1 !important; outline-offset: 3px; }
.impression-access-panel { position: absolute; bottom: 62px; left: 0; width: min(330px, calc(100vw - 32px)); max-height: min(520px, 75vh); overflow: auto; background: #fff; color: #202426; border: 1px solid #767d80; border-radius: 12px; box-shadow: 0 8px 30px #0005; padding: 18px; text-align: start; }
.impression-controls[dir="rtl"] .impression-access-panel { left: auto; right: 0; }
.impression-access-panel h2 { font: bold 20px/1.35 Arial, sans-serif !important; margin: 0 0 12px; color: #202426; }
.impression-access-panel p { margin: 12px 0 0; font: 14px/1.5 Arial, sans-serif !important; }
.impression-access-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.impression-access-actions button, .impression-close { padding: 9px 10px; min-height: 42px; border: 1px solid #767d80; border-radius: 6px; background: #fff; color: #202426; cursor: pointer; }
.impression-access-actions button[aria-pressed="true"] { color: #fff; background: #415a0a; border-color: #415a0a; }
.impression-access-panel a { color: #294800; font-weight: bold; }
.impression-legal-links { position: fixed; z-index: 2147482000; bottom: 15px; right: 18px; display: flex; gap: 14px; direction: ltr; font: 12px/1.4 Arial, sans-serif; }
.impression-legal-links[dir="rtl"] { right: auto; left: 18px; direction: rtl; }
.impression-legal-links a, .impression-legal-links button { background: #fff; color: #223b00; border: 1px solid #77857b; border-radius: 4px; padding: 5px 8px; font: inherit; cursor: pointer; text-decoration: underline; }
.impression-cookie { position: fixed; z-index: 2147483500; left: 12px; right: 12px; bottom: 12px; max-width: 780px; margin: auto; padding: 18px 20px; background: #fff; color: #202426; border: 2px solid #415a0a; border-radius: 12px; box-shadow: 0 6px 30px #0006; font: 15px/1.5 Arial, sans-serif; text-align: start; }
.impression-cookie[dir="rtl"] { direction: rtl; }
.impression-cookie h2 { font: bold 20px/1.35 Arial, sans-serif !important; color: #202426; margin: 0 0 6px; }
.impression-cookie p { font: 15px/1.5 Arial, sans-serif !important; margin: 0 0 12px; }
.impression-cookie a { color: #294800; font-weight: bold; }
.impression-cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.impression-cookie button { cursor: pointer; min-height: 42px; padding: 8px 15px; border: 1px solid #415a0a; border-radius: 6px; background: #fff; color: #294800; font: bold 14px/1.3 Arial, sans-serif; }
.impression-cookie button.impression-primary { background: #415a0a; color: #fff; }
.impression-cookie button:focus-visible { outline: 3px solid #164de1; outline-offset: 2px; }
.impression-cookie-settings { margin: 10px 0; }
.impression-cookie-settings label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.impression-cookie-settings input { width: 18px; height: 18px; }
.impression-large-text #container :is(pre, p, .text, .main_text, .about_text, .title, input, #send-lead-btn) { font-size: 120% !important; line-height: 1.45 !important; }
.impression-large-text #container pre { white-space: pre-wrap !important; }
.impression-links a { text-decoration: underline !important; outline: 1px solid currentColor; }
.impression-contrast { filter: contrast(1.35) grayscale(1); }
.impression-pause *, .impression-pause *::before, .impression-pause *::after { animation-play-state: paused !important; transition-duration: 0s !important; }
.impression-pause video { visibility: hidden; }
@media (max-width: 600px) { .impression-controls { bottom: 12px; left: 12px; } .impression-controls[dir="rtl"] { right: 12px; } .impression-legal-links { bottom: 18px; } .impression-cookie { left: 8px; right: 8px; bottom: 8px; padding: 14px; max-height: 80vh; overflow: auto; } .impression-cookie-actions button { flex: 1 1 130px; } }
@media (prefers-reduced-motion: reduce) { .impression-controls *, .impression-cookie * { transition: none !important; animation: none !important; } }

/* Keep the accessibility menu clear of the consent dialog */
body.impression-cookie-active .impression-controls { top: 80px; bottom: auto; }
body.impression-cookie-active .impression-access-panel { top: 62px; bottom: auto; }
body.impression-cookie-active .impression-legal-links { display: none; }
@media (max-width: 600px) {
    body.impression-cookie-active .impression-controls { top: 12px; bottom: auto; }
    body.impression-cookie-active .impression-access-panel { top: 62px; bottom: auto; max-height: 43vh; }
}
