/*
 * Modulul „Accesibilitate" (myCMS) — butonul flotant, panoul și clasele puse pe <html>.
 * Independent de temă: culorile panoului sunt proprii; reglajele țintesc elemente HTML,
 * nu clase de temă, ca să funcționeze pe orice site myCMS.
 */
.a11y-root { --a11y-bg: #fff; --a11y-fg: #0f1f2b; --a11y-muted: #4a5a66; --a11y-line: #d5dde3; --a11y-accent: #073952; --a11y-accent-fg: #fff; --a11y-soft: #eef3f6;
  position: fixed; bottom: 16px; z-index: 2147482000; font: 400 15px/1.4 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color: var(--a11y-fg); }
.a11y-root--right { right: 16px; }
.a11y-root--left { left: 16px; }
.a11y-fab { width: 52px; height: 52px; border-radius: 50%; border: 2px solid #fff; background: var(--a11y-accent); color: var(--a11y-accent-fg);
  display: grid; place-items: center; cursor: pointer; box-shadow: 0 8px 24px rgba(0, 0, 0, .25); padding: 0; }
.a11y-fab:hover { background: #0b4f70; }
.a11y-fab:focus-visible, .a11y-panel :focus-visible { outline: 3px solid #f6b73c; outline-offset: 3px; }
/* Pe telefon, cât e deschis bannerul de cookie-uri, butonul urcă deasupra lui. */
html.cookie-consent-open .a11y-root { bottom: max(9rem, calc(1rem + env(safe-area-inset-bottom))); }
html.cookie-consent-bar .a11y-root { bottom: calc(var(--cc-bar-h, 0px) + 28px); }

.a11y-panel { position: absolute; bottom: 64px; width: min(360px, calc(100vw - 32px)); max-height: calc(100vh - 100px); overflow: auto;
  background: var(--a11y-bg); border: 1px solid var(--a11y-line); border-radius: 18px; box-shadow: 0 20px 50px rgba(0, 0, 0, .25); padding: 18px; }
.a11y-root--right .a11y-panel { right: 0; }
.a11y-root--left .a11y-panel { left: 0; }
.a11y-panel[hidden] { display: none; }
.a11y-head { display: flex; align-items: center; justify-content: space-between; margin: 0 0 14px; }
.a11y-head h2 { margin: 0; font: 700 18px/1.2 inherit; font-family: inherit; color: var(--a11y-fg); letter-spacing: 0; }
.a11y-close { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--a11y-line); background: #fff; color: var(--a11y-fg); display: grid; place-items: center; cursor: pointer; padding: 0; }
.a11y-close:hover { background: var(--a11y-soft); }
.a11y-label { display: block; font-weight: 600; font-size: 14px; margin: 0 0 8px; color: var(--a11y-fg); }
.a11y-seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 0 0 14px; }
.a11y-seg button, .a11y-opt { font: inherit; font-size: 14px; color: var(--a11y-fg); background: var(--a11y-soft); border: 2px solid transparent; border-radius: 12px; cursor: pointer; }
.a11y-seg button { padding: 10px 6px; font-weight: 600; }
.a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.a11y-opt { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px; text-align: left; line-height: 1.25; min-height: 84px; }
.a11y-seg button:hover, .a11y-opt:hover { border-color: var(--a11y-line); }
.a11y-seg button[aria-pressed="true"], .a11y-opt[aria-pressed="true"] { background: var(--a11y-accent); color: var(--a11y-accent-fg); border-color: var(--a11y-accent); }
.a11y-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.a11y-reset { font: inherit; font-size: 14px; font-weight: 600; color: var(--a11y-accent); background: none; border: 0; padding: 6px 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.a11y-statement { font-size: 14px; color: var(--a11y-accent); text-decoration: underline; text-underline-offset: 3px; }
.a11y-note { margin: 10px 0 0; font-size: 12.5px; color: var(--a11y-muted); }
@media print { .a11y-root { display: none; } }

/* ---------------------------------------------------------------- reglajele */

/* Text mai mare: `zoom` pe conținut și subsol (nu pe antet: bara fixă și meniul își păstrează măsurile). */
/* `footer:not(main footer)`: subsolul site-ului, nu un <footer> din articol (zoom-ul s-ar înmulți) și nici cel din panou. */
html.a11y-text-1 :is(main, footer:not(main footer):not(.a11y-foot)) { zoom: 1.15; }
html.a11y-text-2 :is(main, footer:not(main footer):not(.a11y-foot)) { zoom: 1.3; }
/* Ce se calcula din `100vw` (benzi care ies până la marginea ecranului) crește și el cu zoom-ul: fără derulare laterală. */
html:is(.a11y-text-1, .a11y-text-2) :is(main, footer:not(main footer):not(.a11y-foot)) { overflow-x: clip; }

/* Contrast ridicat: textul secundar devine negru, marginile mai închise, fără transparențe pe text. */
html.a11y-contrast {
  --ry-text: #000; --ry-muted: #1a1a1a; --ry-border: #3d3d3d; --color-text: #000; --color-text-dimmed: #1a1a1a; --color-border: #3d3d3d;
  --text: #000; --muted: #1a1a1a; --border: #3d3d3d;
}
html.a11y-contrast body { text-shadow: none !important; }
html.a11y-contrast :is(main, footer) :is(p, li, dd, dt, td, th, small, figcaption, label, span, blockquote) { opacity: 1 !important; }
html.a11y-contrast :is(main, footer) img:not([src$=".svg"]) { filter: contrast(1.1); }
html.a11y-contrast :is(a, button, input, select, textarea):focus-visible { outline: 3px solid #000 !important; outline-offset: 2px !important; box-shadow: 0 0 0 6px #ffd23f !important; }

/* Linkuri subliniate. */
html.a11y-links :is(main, footer, header) a:not(.a11y-root a) { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px !important; }

/* Cursor mare. */
html.a11y-cursor, html.a11y-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M8 4l30 17-13 3-7 13z' fill='#111' stroke='#fff' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, auto !important; }
html.a11y-cursor :is(a, button, summary, label, select, [role="button"], [onclick], input[type="checkbox"], input[type="radio"], input[type="submit"]),
html.a11y-cursor :is(a, button, summary, label, select, [role="button"]) * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M17 22V8a3 3 0 0 1 6 0v11l1-1a3 3 0 0 1 4 .5 3 3 0 0 1 4 .5 3 3 0 0 1 5 2v9c0 7-4 12-11 12h-2c-5 0-7-2-10-6l-6-8a3 3 0 0 1 5-4z' fill='#111' stroke='#fff' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E") 17 4, pointer !important; }
html.a11y-cursor :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), textarea, [contenteditable="true"]) { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M17 6h14M17 42h14M24 6v36' stroke='#fff' stroke-width='7' stroke-linecap='round'/%3E%3Cpath d='M17 6h14M17 42h14M24 6v36' stroke='#111' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E") 24 24, text !important; }

/* Fără animații: tranzițiile, animațiile și derularea lină se opresc; videourile le oprește a11y.js. */
html.a11y-motion, html.a11y-motion *, html.a11y-motion *::before, html.a11y-motion *::after {
  animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; scroll-behavior: auto !important;
}

/* Spațierea textului după WCAG 1.4.12. */
html.a11y-spacing :is(main, footer) :is(p, li, dd, dt, td, th, blockquote, figcaption, label, a, span) { line-height: 1.6 !important; letter-spacing: .12em !important; word-spacing: .16em !important; }
html.a11y-spacing :is(main, footer) p { margin-bottom: 2em !important; }

/* Font lizibil: fără fonturi decorative, inclusiv în titluri. */
html.a11y-font :is(body, h1, h2, h3, h4, h5, h6, p, li, a, span, button, input, select, textarea, td, th, label, blockquote, figcaption):not(.a11y-root *):not(.picon):not([class*="icon"]) {
  font-family: Verdana, Tahoma, "Segoe UI", Arial, sans-serif !important;
}
