/* =========================================================================
   YIC Accessibilità – Widget UI + classi effetto
   Sviluppato da Yes I Code. Nessuna dipendenza esterna.
   ========================================================================= */

:root {
	--yicacc-accent: #8c052b;
	--yicacc-accent-2: #6d0421;
	--yicacc-accent-ink: #ffffff;
	--yicacc-tint: rgba(140, 5, 43, .08);
	--yicacc-panel-bg: #ffffff;
	--yicacc-panel-ink: #1c1a1b;
	--yicacc-muted: #6b5c60;
	--yicacc-line: #ece2e4;
	--yicacc-line-2: #e0d2d5;
	--yicacc-soft: #faf6f7;
	--yicacc-radius: 14px;
	--yicacc-radius-sm: 10px;
	--yicacc-shadow: 0 24px 60px -12px rgba(60, 6, 22, .42);
	--yicacc-ring: 0 0 0 3px rgba(140, 5, 43, .28);
}

/* ---------- Launcher ---------- */
.yicacc-launcher {
	position: fixed;
	bottom: 24px;
	z-index: 2147483000;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 11px 18px 11px 13px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--yicacc-accent), var(--yicacc-accent-2));
	color: var(--yicacc-accent-ink);
	font: 600 15px/1 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	cursor: pointer;
	box-shadow: 0 8px 22px -4px rgba(60, 6, 22, .55), 0 0 0 4px rgba(255, 255, 255, .9);
	transition: transform .18s cubic-bezier(.2,.7,.3,1), box-shadow .18s ease;
}
.yicacc-launcher--right { right: 24px; }
.yicacc-launcher--left { left: 24px; }
.yicacc-launcher:hover { transform: translateY(-2px) scale(1.02); box-shadow: 0 14px 30px -6px rgba(60, 6, 22, .6), 0 0 0 4px rgba(255, 255, 255, .95); }
.yicacc-launcher:active { transform: translateY(0) scale(.99); }
.yicacc-launcher:focus-visible { outline: 3px solid var(--yicacc-accent); outline-offset: 4px; }
.yicacc-launcher__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px; height: 32px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .18);
}

@media (max-width: 600px) {
	.yicacc-launcher__label { display: none; }
	.yicacc-launcher { padding: 9px; }
	.yicacc-launcher__icon { background: transparent; }
}

/* ---------- Overlay ---------- */
.yicacc-overlay {
	position: fixed;
	inset: 0;
	z-index: 2147483200;
	background: rgba(28, 10, 16, .45);
	backdrop-filter: saturate(.9) blur(2px);
	-webkit-backdrop-filter: saturate(.9) blur(2px);
	animation: yicacc-fade .18s ease both;
}
.yicacc-overlay[hidden] { display: none; }
@keyframes yicacc-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---------- Panel ---------- */
.yicacc-panel {
	position: fixed;
	bottom: 0;
	top: 0;
	width: 392px;
	max-width: 94vw;
	z-index: 2147483300;
	display: flex;
	flex-direction: column;
	background: var(--yicacc-panel-bg);
	color: var(--yicacc-panel-ink);
	box-shadow: var(--yicacc-shadow);
	font: 400 15px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	animation: yicacc-slide-r .24s cubic-bezier(.2,.7,.3,1) both;
}
.yicacc-panel[hidden] { display: none; }
.yicacc-panel--right { right: 0; border-radius: 20px 0 0 20px; }
.yicacc-panel--left { left: 0; border-radius: 0 20px 20px 0; animation-name: yicacc-slide-l; }
@keyframes yicacc-slide-r { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes yicacc-slide-l { from { transform: translateX(-24px); opacity: 0; } to { transform: none; opacity: 1; } }

.yicacc-panel__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 16px 16px 20px;
	background: linear-gradient(135deg, var(--yicacc-accent), var(--yicacc-accent-2));
	color: var(--yicacc-accent-ink);
}
.yicacc-panel--right .yicacc-panel__header { border-radius: 20px 0 0 0; }
.yicacc-panel--left .yicacc-panel__header { border-radius: 0 20px 0 0; }
.yicacc-panel__header, .yicacc-panel__header * { color: var(--yicacc-accent-ink); }
.yicacc-panel__brand { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.yicacc-panel__brandicon {
	flex: 0 0 auto;
	display: inline-flex; align-items: center; justify-content: center;
	width: 34px; height: 34px;
	border-radius: 10px;
	background: rgba(255, 255, 255, .16);
}
.yicacc-panel__title { margin: 0; font-size: 17px; font-weight: 700; letter-spacing: -.01em; color: var(--yicacc-accent-ink) !important; }

.yicacc-close {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 0;
	border-radius: 10px;
	background: rgba(255, 255, 255, .16);
	color: inherit;
	cursor: pointer;
	transition: background .12s ease;
}
.yicacc-close:hover { background: rgba(255, 255, 255, .3); }
.yicacc-close:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

.yicacc-panel__scroll {
	flex: 1 1 auto;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 4px 18px 18px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: var(--yicacc-line-2) transparent;
}
.yicacc-panel__scroll::-webkit-scrollbar { width: 10px; }
.yicacc-panel__scroll::-webkit-scrollbar-thumb { background: var(--yicacc-line-2); border: 3px solid #fff; border-radius: 999px; }

/* ---------- Sezioni ---------- */
.yicacc-section { padding: 16px 0; border-bottom: 1px solid var(--yicacc-line); }
.yicacc-section:last-child { border-bottom: 0; }
.yicacc-section__title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--yicacc-accent);
}
.yicacc-section__title::before {
	content: "";
	width: 14px; height: 2px;
	border-radius: 2px;
	background: var(--yicacc-accent);
	opacity: .7;
}
.yicacc-section__body { display: block; }

.yicacc-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

/* ---------- Toggle (stile settings-list con checkbox) ---------- */
.yicacc-toggle {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	text-align: left;
	padding: 11px 13px;
	margin: 0 0 8px;
	border: 1.5px solid var(--yicacc-line-2);
	border-radius: var(--yicacc-radius-sm);
	background: #fff;
	color: var(--yicacc-panel-ink);
	font: 600 13.5px/1.25 inherit;
	cursor: pointer;
	transition: border-color .14s ease, background .14s ease, box-shadow .14s ease, transform .05s ease;
}
.yicacc-grid .yicacc-toggle { margin: 0; }
.yicacc-toggle:hover { border-color: var(--yicacc-accent); background: var(--yicacc-soft); }
.yicacc-toggle:active { transform: scale(.99); }
.yicacc-toggle:focus-visible { outline: 0; border-color: var(--yicacc-accent); box-shadow: var(--yicacc-ring); }

/* indicatore checkbox a destra per gli switch (aria-pressed) */
.yicacc-toggle[aria-pressed] { justify-content: space-between; }
.yicacc-toggle[aria-pressed]::after {
	content: "";
	flex: 0 0 auto;
	width: 22px; height: 22px;
	border: 2px solid var(--yicacc-line-2);
	border-radius: 6px;
	background-color: #fff;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 0 0;
	transition: background-color .14s ease, border-color .14s ease, background-size .14s ease;
}
.yicacc-toggle[aria-pressed="true"] {
	background: var(--yicacc-tint);
	border-color: var(--yicacc-accent);
	color: var(--yicacc-accent-2);
}
.yicacc-toggle[aria-pressed="true"]::after {
	border-color: var(--yicacc-accent);
	background-color: var(--yicacc-accent);
	background-size: 14px 14px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.6 16.2 5.4 12l-1.4 1.4 5.6 5.6L20.4 7.8 19 6.4z'/%3E%3C/svg%3E");
}

/* bottoni azione (aprono un pannello / eseguono) → freccia */
.yicacc-toggle[aria-haspopup] { justify-content: space-between; }
.yicacc-toggle[aria-haspopup]::after {
	content: "";
	flex: 0 0 auto;
	width: 18px; height: 18px;
	background: var(--yicacc-accent);
	opacity: .55;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain;
}
#yicacc-tts-play {
	justify-content: center;
	color: var(--yicacc-accent-2);
	background: var(--yicacc-soft);
	border-style: dashed;
	margin-top: 2px;
}
#yicacc-tts-play:hover { background: var(--yicacc-tint); }

/* ---------- Stepper ---------- */
.yicacc-stepper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
}
.yicacc-stepper__label { font-weight: 600; font-size: 14px; }
.yicacc-stepper__ctrl {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px;
	background: var(--yicacc-soft);
	border: 1px solid var(--yicacc-line);
	border-radius: 999px;
}
.yicacc-stepper__val {
	min-width: 30px;
	text-align: center;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--yicacc-accent-2);
}
.yicacc-btn-icon {
	width: 34px;
	height: 34px;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: var(--yicacc-accent);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(60, 6, 22, .12);
	transition: background .12s ease, color .12s ease, transform .05s ease;
}
.yicacc-btn-icon:hover { background: var(--yicacc-accent); color: #fff; }
.yicacc-btn-icon:active { transform: scale(.92); }
.yicacc-btn-icon:focus-visible { outline: 0; box-shadow: var(--yicacc-ring); }

/* ---------- Profili ---------- */
.yicacc-profiles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.yicacc-profile {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 12px 12px 12px 13px;
	border: 1.5px solid var(--yicacc-line-2);
	border-radius: var(--yicacc-radius-sm);
	background: #fff;
	color: var(--yicacc-panel-ink);
	text-align: left;
	cursor: pointer;
	transition: border-color .14s ease, background .14s ease, box-shadow .14s ease, transform .05s ease;
}
.yicacc-profile:hover { border-color: var(--yicacc-accent); background: var(--yicacc-soft); transform: translateY(-1px); }
.yicacc-profile:active { transform: none; }
.yicacc-profile:focus-visible { outline: 0; border-color: var(--yicacc-accent); box-shadow: var(--yicacc-ring); }
.yicacc-profile[aria-pressed="true"] {
	border-color: var(--yicacc-accent);
	background: var(--yicacc-tint);
	box-shadow: inset 0 0 0 1px var(--yicacc-accent);
}
.yicacc-profile[aria-pressed="true"]::after {
	content: "";
	position: absolute;
	top: 9px;
	right: 9px;
	width: 18px; height: 18px;
	border-radius: 50%;
	background: var(--yicacc-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.6 16.2 5.4 12l-1.4 1.4 5.6 5.6L20.4 7.8 19 6.4z'/%3E%3C/svg%3E") no-repeat center / 13px;
}
.yicacc-profile__t { font-weight: 700; font-size: 13.5px; padding-right: 16px; }
.yicacc-profile__d { font-size: 11.5px; line-height: 1.35; color: var(--yicacc-muted); }

/* ---------- Footer ---------- */
.yicacc-panel__footer {
	flex: 0 0 auto;
	padding: 14px 18px;
	border-top: 1px solid var(--yicacc-line);
	background: var(--yicacc-soft);
	text-align: center;
}
.yicacc-reset {
	width: 100%;
	padding: 12px;
	border: 1.5px solid var(--yicacc-accent);
	border-radius: var(--yicacc-radius-sm);
	background: #fff;
	color: var(--yicacc-accent);
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	transition: background .14s ease, color .14s ease;
}
.yicacc-reset:hover { background: var(--yicacc-accent); color: var(--yicacc-accent-ink); }
.yicacc-reset:focus-visible { outline: 0; box-shadow: var(--yicacc-ring); }
.yicacc-statement {
	display: inline-block;
	margin-top: 12px;
	color: var(--yicacc-accent);
	font-weight: 600;
	font-size: 13px;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.yicacc-statement:focus-visible { outline: 0; box-shadow: var(--yicacc-ring); border-radius: 4px; }
.yicacc-credit { margin: 12px 0 0; font-size: 11px; color: var(--yicacc-muted); }

.yicacc-sr-live {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

/* ---------- Rispetto delle preferenze di movimento ---------- */
@media (prefers-reduced-motion: reduce) {
	.yicacc-launcher, .yicacc-panel, .yicacc-overlay,
	.yicacc-toggle, .yicacc-profile, .yicacc-btn-icon { animation: none !important; transition: none !important; }
}

/* =========================================================================
   CLASSI EFFETTO (applicate a <html>)
   ========================================================================= */

/* ---- Interlinea ---- */
html[data-yicacc-line="1"] p, html[data-yicacc-line="1"] li, html[data-yicacc-line="1"] dd { line-height: 1.7 !important; }
html[data-yicacc-line="2"] p, html[data-yicacc-line="2"] li, html[data-yicacc-line="2"] dd { line-height: 2.0 !important; }
html[data-yicacc-line="3"] p, html[data-yicacc-line="3"] li, html[data-yicacc-line="3"] dd { line-height: 2.4 !important; }

/* ---- Spaziatura lettere ---- */
html[data-yicacc-space="1"] p, html[data-yicacc-space="1"] li, html[data-yicacc-space="1"] a, html[data-yicacc-space="1"] span { letter-spacing: .06em !important; word-spacing: .12em !important; }
html[data-yicacc-space="2"] p, html[data-yicacc-space="2"] li, html[data-yicacc-space="2"] a, html[data-yicacc-space="2"] span { letter-spacing: .1em !important; word-spacing: .2em !important; }
html[data-yicacc-space="3"] p, html[data-yicacc-space="3"] li, html[data-yicacc-space="3"] a, html[data-yicacc-space="3"] span { letter-spacing: .16em !important; word-spacing: .32em !important; }

/* ---- Font ad alta leggibilità ---- */
html.yicacc-dyslexia body,
html.yicacc-dyslexia p,
html.yicacc-dyslexia li,
html.yicacc-dyslexia a,
html.yicacc-dyslexia span,
html.yicacc-dyslexia h1,
html.yicacc-dyslexia h2,
html.yicacc-dyslexia h3,
html.yicacc-dyslexia h4,
html.yicacc-dyslexia h5,
html.yicacc-dyslexia h6,
html.yicacc-dyslexia div,
html.yicacc-dyslexia button,
html.yicacc-dyslexia input,
html.yicacc-dyslexia textarea,
html.yicacc-dyslexia label {
	font-family: "Atkinson Hyperlegible", Verdana, Tahoma, "Trebuchet MS", sans-serif !important;
	letter-spacing: .03em;
}
/* il widget mantiene il proprio font */
html.yicacc-dyslexia .yicacc-panel,
html.yicacc-dyslexia .yicacc-panel * ,
html.yicacc-dyslexia .yicacc-launcher,
html.yicacc-dyslexia .yicacc-launcher * {
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
}

/* ---- Evidenzia link ---- */
html.yicacc-links a:not(.yicacc-toggle):not(.yicacc-statement):not(.yicacc-reset) {
	text-decoration: underline !important;
	text-underline-offset: 2px;
	outline: 2px solid #ffd400 !important;
	outline-offset: 1px;
	background: rgba(255, 212, 0, .18) !important;
	color: inherit;
}

/* ---- Evidenzia titoli ---- */
html.yicacc-titles :is(h1, h2, h3, h4, h5, h6) {
	outline: 2px dashed var(--yicacc-accent) !important;
	outline-offset: 3px;
	background: rgba(140, 5, 43, .06) !important;
}

/* Immunità del widget: "evidenzia link/titoli" NON devono toccare i controlli
   del pannello. I selettori per ID (#yicacc-*) hanno specificità superiore ai
   selettori globali degli effetti, quindi vincono sempre. */
html.yicacc-titles #yicacc-panel :is(h1, h2, h3, h4, h5, h6),
html.yicacc-titles #yicacc-struct :is(h1, h2, h3, h4, h5, h6) {
	outline: 0 !important;
	outline-offset: 0 !important;
	background: none !important;
}
html.yicacc-links #yicacc-panel a,
html.yicacc-links #yicacc-struct a,
html.yicacc-links #yicacc-launcher a {
	outline: 0 !important;
	background: none !important;
}

/* ---- Colore: scala di grigi / saturazione / scuro (filtri) ---- */
html.yicacc-color-gray { filter: grayscale(1) !important; }
html.yicacc-color-lowsat { filter: saturate(.5) !important; }
html.yicacc-color-dark { filter: invert(1) hue-rotate(180deg) !important; }
html.yicacc-color-dark img,
html.yicacc-color-dark video,
html.yicacc-color-dark iframe,
html.yicacc-color-dark [style*="background-image"],
html.yicacc-color-dark svg image { filter: invert(1) hue-rotate(180deg) !important; }

/* il widget resta a colori normali sotto i filtri */
html.yicacc-color-dark .yicacc-launcher,
html.yicacc-color-dark .yicacc-overlay,
html.yicacc-color-dark .yicacc-panel,
html.yicacc-color-dark #yicacc-guide,
html.yicacc-color-dark #yicacc-mask-top,
html.yicacc-color-dark #yicacc-mask-bottom { filter: invert(1) hue-rotate(180deg) !important; }
html.yicacc-color-gray .yicacc-launcher,
html.yicacc-color-gray .yicacc-panel,
html.yicacc-color-lowsat .yicacc-launcher,
html.yicacc-color-lowsat .yicacc-panel { filter: grayscale(0) saturate(1) !important; }

/* ---- Daltonismo (correzione colori via filtri SVG) ---- */
html.yicacc-color-protan { filter: url("#yicacc-cb-protan") !important; }
html.yicacc-color-deutan { filter: url("#yicacc-cb-deutan") !important; }
html.yicacc-color-tritan { filter: url("#yicacc-cb-tritan") !important; }
html.yicacc-color-protan .yicacc-launcher,
html.yicacc-color-protan .yicacc-panel,
html.yicacc-color-deutan .yicacc-launcher,
html.yicacc-color-deutan .yicacc-panel,
html.yicacc-color-tritan .yicacc-launcher,
html.yicacc-color-tritan .yicacc-panel { filter: none !important; }

/* ---- Alto contrasto (override colori) ----
   Nota: applichiamo l'override in modo ampio e poi ridiamo al widget i suoi
   colori con regole più specifiche (classi del widget) subito sotto. Evitiamo
   :not() con selettori discendenti perché non supportati ovunque e farebbero
   cadere l'intera regola. */
html.yicacc-color-high,
html.yicacc-color-high body { background: #000 !important; }
html.yicacc-color-high body * {
	background-color: transparent !important;
	color: #fff !important;
	border-color: #fff !important;
	text-shadow: none !important;
	box-shadow: none !important;
}
html.yicacc-color-high body a,
html.yicacc-color-high body a * { color: #ffd400 !important; }
html.yicacc-color-high body :is(button, input, select, textarea) {
	background: #000 !important;
	color: #fff !important;
	border: 1px solid #fff !important;
}

/* Immunità del widget sotto alto contrasto (specificità di classe > "body *") */
html.yicacc-color-high .yicacc-launcher {
	background: var(--yicacc-accent) !important;
	color: #fff !important;
	border-color: rgba(255, 255, 255, .35) !important;
}
html.yicacc-color-high .yicacc-overlay { background: rgba(0, 0, 0, .5) !important; }
html.yicacc-color-high .yicacc-panel { background: #fff !important; color: #1c1a1b !important; }
html.yicacc-color-high .yicacc-panel * { color: #1c1a1b !important; border-color: var(--yicacc-line) !important; }
html.yicacc-color-high .yicacc-panel__header,
html.yicacc-color-high .yicacc-panel__header * { background-color: transparent !important; color: #fff !important; }
html.yicacc-color-high .yicacc-panel__header { background: var(--yicacc-accent) !important; }
html.yicacc-color-high .yicacc-toggle { background: #fff !important; }
html.yicacc-color-high .yicacc-toggle[aria-pressed="true"] { background: var(--yicacc-accent) !important; color: #fff !important; }
html.yicacc-color-high .yicacc-toggle[aria-pressed="true"] * { color: #fff !important; }
html.yicacc-color-high .yicacc-profile { background: var(--yicacc-soft) !important; }
html.yicacc-color-high .yicacc-section__title { color: var(--yicacc-accent) !important; }
html.yicacc-color-high .yicacc-reset { background: #fff !important; color: var(--yicacc-accent) !important; border-color: var(--yicacc-accent) !important; }
html.yicacc-color-high .yicacc-statement { color: var(--yicacc-accent) !important; }

/* ---- Cursore grande ---- */
html.yicacc-bigcursor,
html.yicacc-bigcursor * {
	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 fill='%23000' stroke='%23fff' stroke-width='2' d='M8 4l30 18-13 3 8 15-6 3-8-15-9 8z'/%3E%3C/svg%3E") 6 4, auto !important;
}

/* ---- Nascondi immagini ---- */
html.yicacc-hideimages :is(img, picture, figure, video, svg) { visibility: hidden !important; }
/* le icone del widget restano visibili */
html.yicacc-hideimages .yicacc-launcher svg,
html.yicacc-hideimages .yicacc-panel svg { visibility: visible !important; }

/* ---- Ferma animazioni ---- */
html.yicacc-stopmotion *,
html.yicacc-stopmotion *::before,
html.yicacc-stopmotion *::after {
	animation-duration: .001ms !important;
	animation-iteration-count: 1 !important;
	transition-duration: .001ms !important;
	scroll-behavior: auto !important;
}

/* ---- Focus da tastiera evidenti ---- */
html.yicacc-keyboard a:focus,
html.yicacc-keyboard button:focus,
html.yicacc-keyboard input:focus,
html.yicacc-keyboard select:focus,
html.yicacc-keyboard textarea:focus,
html.yicacc-keyboard [tabindex]:focus {
	outline: 3px solid #ffd400 !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 3px rgba(0, 0, 0, .5) !important;
}

/* ---- Riga guida di lettura ---- */
#yicacc-guide {
	position: fixed;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--yicacc-accent);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .7);
	z-index: 2147482000;
	pointer-events: none;
}

/* ---- Maschera di lettura ---- */
#yicacc-mask-top,
#yicacc-mask-bottom {
	position: fixed;
	left: 0;
	right: 0;
	background: rgba(0, 0, 0, .62);
	z-index: 2147482000;
	pointer-events: none;
}
#yicacc-mask-top { top: 0; }
#yicacc-mask-bottom { bottom: 0; }

/* =========================================================================
   Controlli aggiuntivi (parità AccessiWay)
   ========================================================================= */

/* ---- Header: azioni + selettore lingua ---- */
.yicacc-header-actions { display: inline-flex; align-items: center; gap: 8px; }
.yicacc-lang { display: inline-flex; border: 1px solid rgba(255, 255, 255, .5); border-radius: 999px; overflow: hidden; }
.yicacc-lang__btn {
	border: 0;
	background: transparent;
	color: #fff;
	padding: 6px 10px;
	font: 700 12px/1 system-ui, sans-serif;
	cursor: pointer;
}
.yicacc-lang__btn[aria-pressed="true"] { background: #fff; color: var(--yicacc-accent); }
.yicacc-lang__btn:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }

/* ---- Segmented (allineamento) ---- */
.yicacc-segmented { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; }
.yicacc-segmented__label { font-weight: 600; font-size: 14px; }
.yicacc-segmented__ctrl { display: inline-flex; gap: 4px; }
.yicacc-seg {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1.5px solid var(--yicacc-line);
	border-radius: 10px;
	background: #fff;
	color: var(--yicacc-panel-ink);
	font-size: 16px;
	cursor: pointer;
}
.yicacc-seg svg { display: block; width: 18px; height: 18px; }
.yicacc-seg:hover { border-color: var(--yicacc-accent); }
.yicacc-seg:focus-visible { outline: 3px solid var(--yicacc-accent); outline-offset: 2px; }
.yicacc-seg[aria-pressed="true"] { background: var(--yicacc-accent); border-color: var(--yicacc-accent); color: #fff; }

/* ---- Colori personalizzati ---- */
.yicacc-colors { margin-top: 12px; padding: 12px; border: 1.5px solid var(--yicacc-line); border-radius: 12px; background: var(--yicacc-soft); }
.yicacc-colors__title { display: block; font-weight: 700; font-size: 13px; margin-bottom: 8px; }
.yicacc-color-row { display: flex; align-items: center; justify-content: space-between; padding: 5px 0; font-size: 14px; }
.yicacc-color-row input[type="color"] { width: 44px; height: 30px; padding: 0; border: 1px solid var(--yicacc-line); border-radius: 6px; background: #fff; cursor: pointer; }
.yicacc-color-clear {
	margin-top: 8px;
	width: 100%;
	padding: 8px;
	border: 1.5px solid var(--yicacc-line);
	border-radius: 10px;
	background: #fff;
	color: var(--yicacc-panel-ink);
	font-weight: 600;
	cursor: pointer;
}
.yicacc-color-clear:hover { border-color: var(--yicacc-accent); }
.yicacc-color-clear:focus-visible { outline: 3px solid var(--yicacc-accent); outline-offset: 2px; }

/* ---- Dialog struttura pagina ---- */
.yicacc-struct {
	position: fixed;
	top: 0;
	bottom: 0;
	width: 380px;
	max-width: 92vw;
	z-index: 2147483350;
	display: flex;
	flex-direction: column;
	background: var(--yicacc-panel-bg);
	color: var(--yicacc-panel-ink);
	box-shadow: var(--yicacc-shadow);
	font: 400 15px/1.4 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.yicacc-panel--right ~ .yicacc-struct, .yicacc-struct { right: 0; border-radius: 20px 0 0 20px; }
.yicacc-panel--left ~ .yicacc-struct { right: auto; left: 0; border-radius: 0 20px 20px 0; }
.yicacc-struct[hidden] { display: none; }
.yicacc-struct .yicacc-panel__header { background: linear-gradient(135deg, var(--yicacc-accent), var(--yicacc-accent-2)); }
.yicacc-panel--right ~ .yicacc-struct .yicacc-panel__header { border-radius: 20px 0 0 0; }
.yicacc-panel--left ~ .yicacc-struct .yicacc-panel__header { border-radius: 0 20px 0 0; }
.yicacc-struct__back { background: rgba(255, 255, 255, .16); }
.yicacc-struct__tabs { display: flex; border-bottom: 1px solid var(--yicacc-line); }
.yicacc-struct__tab {
	flex: 1;
	padding: 12px 8px;
	border: 0;
	border-bottom: 3px solid transparent;
	background: #fff;
	color: var(--yicacc-panel-ink);
	font-weight: 600;
	cursor: pointer;
}
.yicacc-struct__tab[aria-selected="true"] { color: var(--yicacc-accent); border-bottom-color: var(--yicacc-accent); }
.yicacc-struct__tab:focus-visible { outline: 3px solid var(--yicacc-accent); outline-offset: -3px; }
.yicacc-struct__body { flex: 1 1 auto; overflow-y: auto; padding: 8px 12px 18px; }
.yicacc-struct__item {
	display: block;
	width: 100%;
	text-align: left;
	padding: 10px 12px;
	margin: 4px 0;
	border: 1px solid var(--yicacc-line);
	border-radius: 10px;
	background: #fff;
	color: var(--yicacc-panel-ink);
	cursor: pointer;
	font-size: 14px;
}
.yicacc-struct__item:hover { border-color: var(--yicacc-accent); background: var(--yicacc-soft); }
.yicacc-struct__item:focus-visible { outline: 3px solid var(--yicacc-accent); outline-offset: 2px; }
.yicacc-struct__item small { color: var(--yicacc-accent); font-weight: 700; margin-right: 6px; }
.yicacc-struct__lvl2 { padding-left: 24px; }
.yicacc-struct__lvl3 { padding-left: 38px; }
.yicacc-struct__empty { padding: 18px 4px; opacity: .7; }

/* ---- Lente testo ---- */
#yicacc-magnifier {
	position: fixed;
	z-index: 2147482500;
	max-width: 520px;
	padding: 14px 18px;
	background: #fff;
	color: #1c1a1b;
	border: 2px solid var(--yicacc-accent);
	border-radius: 12px;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .3);
	font-size: 24px;
	line-height: 1.35;
	pointer-events: none;
}

/* ---- Tooltip descrittivo ---- */
#yicacc-tip {
	position: fixed;
	z-index: 2147482500;
	max-width: 320px;
	padding: 8px 12px;
	background: #1c1a1b;
	color: #fff;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.35;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .3);
	pointer-events: none;
}

/* =========================================================================
   Classi effetto aggiuntive (su <html>)
   ========================================================================= */

/* ---- Allineamento testo ---- */
html[data-yicacc-align="left"] :is(p, li, h1, h2, h3, h4, h5, h6, blockquote, dd) { text-align: left !important; }
html[data-yicacc-align="center"] :is(p, li, h1, h2, h3, h4, h5, h6, blockquote, dd) { text-align: center !important; }
html[data-yicacc-align="right"] :is(p, li, h1, h2, h3, h4, h5, h6, blockquote, dd) { text-align: right !important; }
html[data-yicacc-align="justify"] :is(p, li, blockquote, dd) { text-align: justify !important; }

/* ---- Colori personalizzati ---- */
html.yicacc-cc-bg,
html.yicacc-cc-bg body { background: var(--yicacc-cc-bg, #fff) !important; }
/* Applica il colore scelto anche ai blocchi con sfondo proprio (card, CTA,
   gradienti): rende trasparenti gli sfondi degli elementi di pagina e rimuove i
   gradienti/immagini di sfondo decorativi, così il colore del body traspare
   ovunque. Sono esclusi il widget (tutte le sue classi/id usano il prefisso
   "yicacc") e i media, che restano intatti. */
html.yicacc-cc-bg body *:not([class*="yicacc"]):not([id*="yicacc"]):not(img):not(picture):not(video):not(svg):not(canvas) {
	background-color: transparent !important;
	background-image: none !important;
}
html.yicacc-cc-text body :is(p, li, span, a, div, td, th, dd, dt, label, blockquote, figcaption) { color: var(--yicacc-cc-text, #1c1a1b) !important; }
html.yicacc-cc-title body :is(h1, h2, h3, h4, h5, h6) { color: var(--yicacc-cc-title, #8c052b) !important; }

/* immunità widget ai colori personalizzati */
html.yicacc-cc-bg .yicacc-panel,
html.yicacc-cc-bg .yicacc-struct { background: var(--yicacc-panel-bg) !important; }
html.yicacc-cc-text .yicacc-panel :is(p, li, span, a, div, label),
html.yicacc-cc-text .yicacc-struct :is(p, li, span, a, div, label) { color: var(--yicacc-panel-ink) !important; }
html.yicacc-cc-text .yicacc-panel__header *,
html.yicacc-cc-text .yicacc-toggle[aria-pressed="true"],
html.yicacc-cc-text .yicacc-toggle[aria-pressed="true"] * { color: #fff !important; }
html.yicacc-cc-title .yicacc-panel :is(h1, h2, h3),
html.yicacc-cc-title .yicacc-struct :is(h1, h2, h3) { color: #fff !important; }

/* ---- Suoni disattivati: nessuno stile, gestito via JS ---- */

/* =========================================================================
   Selettore tipo di carattere + skip-link + font
   ========================================================================= */

.yicacc-selectrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; }
.yicacc-selectrow__label { font-weight: 600; font-size: 14px; }
.yicacc-select {
	min-width: 150px;
	padding: 8px 10px;
	border: 1.5px solid var(--yicacc-line-2);
	border-radius: var(--yicacc-radius-sm);
	background: #fff;
	color: var(--yicacc-panel-ink);
	font: 600 13.5px/1.2 inherit;
	cursor: pointer;
}
.yicacc-select:focus-visible { outline: 0; border-color: var(--yicacc-accent); box-shadow: var(--yicacc-ring); }

/* Skip-link (primo elemento tab, apre il widget) */
.yicacc-skip {
	position: fixed;
	top: -60px;
	left: 12px;
	z-index: 2147483400;
	padding: 10px 16px;
	background: var(--yicacc-accent);
	color: #fff !important;
	border-radius: 0 0 10px 10px;
	font: 700 14px/1 system-ui, sans-serif;
	text-decoration: none;
	transition: top .16s ease;
}
.yicacc-skip:focus { top: 0; outline: 3px solid #fff; outline-offset: 2px; }

/* Font self-hosted (nessuna dipendenza esterna, GDPR/DORA-friendly) */
@font-face {
	font-family: "Atkinson Hyperlegible";
	src: url("../fonts/atkinson-hyperlegible-400.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Atkinson Hyperlegible";
	src: url("../fonts/atkinson-hyperlegible-700.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "OpenDyslexic";
	src: url("../fonts/opendyslexic-400.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "OpenDyslexic";
	src: url("../fonts/opendyslexic-700.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

html.yicacc-ff body,
html.yicacc-ff :is(p, li, a, span, div, td, th, dd, dt, label, blockquote, figcaption, h1, h2, h3, h4, h5, h6, button, input, textarea, select) {
	font-family: var(--yicacc-ff) !important;
}

/* Le icone-font (legature Material Symbols/Icons) NON devono ereditare il font
   scelto, altrimenti si rompono e mostrano il testo grezzo (es. account_balance). */
html.yicacc-ff .material-symbols-outlined,
html.yicacc-ff .material-icons,
html.yicacc-ff [class*="material-symbols"],
html.yicacc-dyslexia .material-symbols-outlined,
html.yicacc-dyslexia .material-icons,
html.yicacc-dyslexia [class*="material-symbols"],
html[data-yicacc-space] .material-symbols-outlined,
html[data-yicacc-space] .material-icons {
	font-family: 'Material Symbols Outlined', 'Material Icons' !important;
	letter-spacing: normal !important;
	word-spacing: normal !important;
}

/* =========================================================================
   Scudo di isolamento del widget (anti-conflitto tema + effetti globali)
   Evita che le regole del tema e gli effetti YIC (font, spaziatura) distorcano
   la UI del widget. Alternativa a basso rischio rispetto allo Shadow DOM: non
   tocca focus/ARIA/i18n. Il "raddoppio di classe" (.x.x) alza la specificità
   quanto basta per battere gli effetti globali applicati a <html>.
   ========================================================================= */

.yicacc-launcher, .yicacc-panel, .yicacc-struct, #yicacc-magnifier, #yicacc-tip { box-sizing: border-box; }

.yicacc-launcher.yicacc-launcher, .yicacc-launcher.yicacc-launcher *,
.yicacc-panel.yicacc-panel, .yicacc-panel.yicacc-panel *,
.yicacc-struct.yicacc-struct, .yicacc-struct.yicacc-struct *,
#yicacc-magnifier, #yicacc-tip {
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
	letter-spacing: normal !important;
	word-spacing: normal !important;
	font-style: normal;
	text-transform: none;
}
/* ripristina il maiuscoletto voluto sui titoli di sezione */
.yicacc-panel.yicacc-panel .yicacc-section__title {
	text-transform: uppercase !important;
	letter-spacing: .08em !important;
}
