/* ==========================================================
   Widget accesibilitate - My Distrigazvest
   Toate regulile de efect se aplica pe continutul paginii
   (body > *:not(#a11y-root)), widget-ul ramane neafectat.
   ========================================================== */

/* ---------- Buton flotant ---------- */
#a11y-root {
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
	word-spacing: normal !important;
}
#a11y-root * {
	box-sizing: border-box;
}
#a11y-toggle {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 2147483000;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	border: 3px solid #fff;
	background: #2e3192;
	color: #fff;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .35);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	transition: transform .15s ease;
}
#a11y-toggle:hover {
	transform: scale(1.08);
}
#a11y-toggle:focus {
	outline: 3px solid #ff9800;
	outline-offset: 3px;
}
#a11y-toggle svg {
	width: 32px;
	height: 32px;
	fill: currentColor;
}

/* ---------- Panou ---------- */
#a11y-panel {
	position: fixed;
	left: 20px;
	bottom: 88px;
	z-index: 2147483001;
	width: 360px;
	max-width: calc(100vw - 24px);
	max-height: calc(100vh - 110px);
	overflow-y: auto;
	background: #fff;
	color: #222;
	border-radius: 10px;
	box-shadow: 0 8px 30px rgba(0, 0, 0, .35);
	display: none;
}
#a11y-panel.a11y-open {
	display: block;
}
#a11y-panel .a11y-header {
	position: sticky;
	top: 0;
	background: #2e3192;
	color: #fff;
	padding: 12px 14px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-radius: 10px 10px 0 0;
}
#a11y-panel .a11y-header h2 {
	margin: 0;
	font-size: 17px !important;
	font-weight: bold;
	color: #fff;
}
#a11y-panel .a11y-close {
	background: transparent;
	border: 2px solid transparent;
	color: #fff;
	font-size: 24px !important;
	line-height: 1 !important;
	cursor: pointer;
	padding: 2px 8px;
	border-radius: 4px;
}
#a11y-panel .a11y-close:focus,
#a11y-panel .a11y-close:hover {
	border-color: #fff;
	outline: none;
}
#a11y-panel .a11y-body {
	padding: 12px 14px 14px;
}
#a11y-panel .a11y-section-title {
	margin: 10px 0 6px;
	font-size: 12px !important;
	font-weight: bold;
	text-transform: uppercase;
	color: #555;
}

/* Marime text */
#a11y-panel .a11y-fontsize {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #f2f3f9;
	border-radius: 8px;
	padding: 8px 10px;
}
#a11y-panel .a11y-fontsize button {
	width: 42px;
	height: 38px;
	border: 2px solid #2e3192;
	border-radius: 6px;
	background: #fff;
	color: #2e3192;
	font-size: 18px !important;
	font-weight: bold;
	cursor: pointer;
}
#a11y-panel .a11y-fontsize button:hover {
	background: #2e3192;
	color: #fff;
}
#a11y-panel .a11y-fontsize-value {
	font-weight: bold;
	font-size: 15px !important;
	min-width: 60px;
	text-align: center;
}

/* Grila de optiuni */
#a11y-panel .a11y-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}
#a11y-panel .a11y-option {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 78px;
	padding: 8px 6px;
	border: 2px solid #d8daea;
	border-radius: 8px;
	background: #f7f8fc;
	color: #222;
	font-size: 13px !important;
	text-align: center;
	cursor: pointer;
}
#a11y-panel .a11y-option svg {
	width: 26px;
	height: 26px;
	fill: #2e3192;
}
#a11y-panel .a11y-option:hover {
	border-color: #2e3192;
}
#a11y-panel .a11y-option[aria-pressed="true"] {
	background: #2e3192;
	border-color: #2e3192;
	color: #fff;
}
#a11y-panel .a11y-option[aria-pressed="true"] svg {
	fill: #fff;
}
#a11y-panel button:focus {
	outline: 3px solid #ff9800;
	outline-offset: 2px;
}

#a11y-panel .a11y-reset {
	margin-top: 14px;
	width: 100%;
	padding: 10px;
	border: 0;
	border-radius: 6px;
	background: #d9534f;
	color: #fff;
	font-weight: bold;
	font-size: 14px !important;
	cursor: pointer;
}
#a11y-panel .a11y-reset:hover {
	background: #c9302c;
}
#a11y-panel .a11y-hint {
	margin: 10px 0 0;
	font-size: 12px !important;
	color: #666;
	text-align: center;
}

/* Ghid de citire */
#a11y-reading-guide {
	position: fixed;
	left: 0;
	right: 0;
	height: 12px;
	margin-top: -6px;
	background: rgba(255, 152, 0, .35);
	border-top: 2px solid #ff9800;
	border-bottom: 2px solid #ff9800;
	pointer-events: none;
	z-index: 2147482999;
	display: none;
}
html.a11y-reading-guide #a11y-reading-guide {
	display: block;
}

/* Masca de citire */
#a11y-reading-mask-top,
#a11y-reading-mask-bottom {
	position: fixed;
	left: 0;
	right: 0;
	background: rgba(0, 0, 0, .6);
	pointer-events: none;
	z-index: 2147482998;
	display: none;
}
#a11y-reading-mask-top {
	top: 0;
}
#a11y-reading-mask-bottom {
	bottom: 0;
}
html.a11y-reading-mask #a11y-reading-mask-top,
html.a11y-reading-mask #a11y-reading-mask-bottom {
	display: block;
}

/* Text citit cu voce */
.a11y-speaking {
	outline: 3px dashed #ff9800 !important;
	outline-offset: 2px;
}

@media (max-width: 480px) {
	#a11y-toggle {
		left: 12px;
		bottom: 12px;
	}
	#a11y-panel {
		left: 12px;
		bottom: 78px;
	}
}

/* ==========================================================
   EFECTE APLICATE PE PAGINA
   ========================================================== */

/* Contrast intunecat */
html.a11y-contrast-dark body {
	background: #000 !important;
}
html.a11y-contrast-dark body > :not(#a11y-root),
html.a11y-contrast-dark body > :not(#a11y-root) * {
	background-color: #000 !important;
	background-image: none !important;
	color: #fff !important;
	border-color: #fff !important;
	-webkit-text-fill-color: currentColor !important;
	text-shadow: none !important;
	box-shadow: none !important;
}
html.a11y-contrast-dark body > :not(#a11y-root) a,
html.a11y-contrast-dark body > :not(#a11y-root) a * {
	color: #ffeb3b !important;
}
html.a11y-contrast-dark body > :not(#a11y-root) .btn,
html.a11y-contrast-dark body > :not(#a11y-root) input,
html.a11y-contrast-dark body > :not(#a11y-root) select,
html.a11y-contrast-dark body > :not(#a11y-root) textarea {
	border: 2px solid #ffeb3b !important;
}

/* Contrast luminos */
html.a11y-contrast-light body {
	background: #fff !important;
}
html.a11y-contrast-light body > :not(#a11y-root),
html.a11y-contrast-light body > :not(#a11y-root) * {
	background-color: #fff !important;
	background-image: none !important;
	color: #000 !important;
	border-color: #000 !important;
	-webkit-text-fill-color: currentColor !important;
	text-shadow: none !important;
	box-shadow: none !important;
}
html.a11y-contrast-light body > :not(#a11y-root) a,
html.a11y-contrast-light body > :not(#a11y-root) a * {
	color: #0000c8 !important;
}
html.a11y-contrast-light body > :not(#a11y-root) .btn,
html.a11y-contrast-light body > :not(#a11y-root) input,
html.a11y-contrast-light body > :not(#a11y-root) select,
html.a11y-contrast-light body > :not(#a11y-root) textarea {
	border: 2px solid #000 !important;
}

/* Evidentiere linkuri */
html.a11y-links body > :not(#a11y-root) a {
	text-decoration: underline !important;
	outline: 2px solid #ff9800 !important;
	outline-offset: 1px;
	background-color: #fff59d !important;
	color: #000 !important;
	-webkit-text-fill-color: #000 !important;
}

/* Evidentiere titluri */
html.a11y-headings body > :not(#a11y-root) h1,
html.a11y-headings body > :not(#a11y-root) h2,
html.a11y-headings body > :not(#a11y-root) h3,
html.a11y-headings body > :not(#a11y-root) h4,
html.a11y-headings body > :not(#a11y-root) h5,
html.a11y-headings body > :not(#a11y-root) h6,
html.a11y-headings body > :not(#a11y-root) .panel-heading {
	outline: 2px solid #2e3192 !important;
	outline-offset: 2px;
	background-color: #e3e5ff !important;
	color: #000 !important;
}

/* Font lizibil (prietenos pentru dislexie) */
html.a11y-readable-font body > :not(#a11y-root),
html.a11y-readable-font body > :not(#a11y-root) *:not(.glyphicon):not(.fa):not([class^="fa-"]):not([class*=" fa-"]) {
	font-family: Verdana, Tahoma, "Trebuchet MS", Arial, sans-serif !important;
}

/* Spatiere linii */
html.a11y-line-height body > :not(#a11y-root),
html.a11y-line-height body > :not(#a11y-root) * {
	line-height: 2 !important;
}

/* Spatiere litere / cuvinte */
html.a11y-letter-spacing body > :not(#a11y-root),
html.a11y-letter-spacing body > :not(#a11y-root) * {
	letter-spacing: .12em !important;
	word-spacing: .16em !important;
}

/* Aliniere text la stanga */
html.a11y-align-left body > :not(#a11y-root),
html.a11y-align-left body > :not(#a11y-root) * {
	text-align: left !important;
}

/* Cursor mare */
html.a11y-big-cursor,
html.a11y-big-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='M6 3 L6 40 L15 31 L21 45 L28 42 L22 28 L35 28 Z' fill='%23000' stroke='%23fff' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, auto !important;
}
html.a11y-big-cursor a,
html.a11y-big-cursor a *,
html.a11y-big-cursor button,
html.a11y-big-cursor button *,
html.a11y-big-cursor .btn,
html.a11y-big-cursor [role="button"],
html.a11y-big-cursor label {
	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='M6 3 L6 40 L15 31 L21 45 L28 42 L22 28 L35 28 Z' fill='%23ff9800' stroke='%23000' stroke-width='2.5' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, pointer !important;
}

/* Oprire animatii */
html.a11y-no-anim *,
html.a11y-no-anim *::before,
html.a11y-no-anim *::after {
	animation: none !important;
	transition: none !important;
	scroll-behavior: auto !important;
}

/* Ascundere imagini */
html.a11y-hide-images body > :not(#a11y-root) img,
html.a11y-hide-images body > :not(#a11y-root) svg,
html.a11y-hide-images body > :not(#a11y-root) video,
html.a11y-hide-images body > :not(#a11y-root) picture {
	visibility: hidden !important;
}
html.a11y-hide-images body > :not(#a11y-root),
html.a11y-hide-images body > :not(#a11y-root) * {
	background-image: none !important;
}

/* Focus vizibil la navigarea cu tastatura */
html.a11y-focus body > :not(#a11y-root) *:focus {
	outline: 4px solid #ff9800 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 7px rgba(255, 152, 0, .35) !important;
}

/* Link "Sari la continut" */
.a11y-skip-link {
	position: absolute;
	left: -9999px;
	top: 8px;
	z-index: 2147483002;
	padding: 10px 16px;
	background: #2e3192;
	color: #fff !important;
	font-weight: bold;
	border-radius: 4px;
}
.a11y-skip-link:focus {
	left: 8px;
	outline: 3px solid #ff9800;
}

/* Text accesibil doar pentru cititoarele de ecran */
.a11y-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
