/**
 * Totaliweb Compliance — accessibility widget + assistive class definitions.
 * Toggle classes are applied to <html> by a11y.js. They are scoped so they
 * adjust presentation without breaking the layout.
 */

/* -------------------------------------------------- Floating button */
.tw-a11y-toggle {
	position: fixed;
	z-index: 99970;
	left: 18px;
	bottom: 24px;
	width: 52px;
	height: 52px;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
	color: #fff;
	font-size: 1.4rem;
	font-family: "Outfit", system-ui, sans-serif;
	background: linear-gradient(135deg, #9D4EDD 0%, #00F0FF 100%);
	box-shadow: 0 10px 30px rgba(0, 240, 255, 0.4);
	transition: transform 0.15s ease;
}

.tw-a11y-toggle:hover {
	transform: scale(1.08);
}

.tw-a11y-toggle:focus-visible {
	outline: 3px solid #FFD700;
	outline-offset: 3px;
}

/* -------------------------------------------------- Panel */
.tw-a11y-panel {
	position: fixed;
	z-index: 99971;
	left: 18px;
	bottom: 86px;
	width: min(340px, calc(100vw - 36px));
	max-height: 70vh;
	overflow-y: auto;
	padding: 18px;
	border-radius: 18px;
	color: #f4f0ff;
	font-family: "Outfit", system-ui, sans-serif;
	background: rgba(18, 11, 36, 0.97);
	border: 1px solid rgba(0, 240, 255, 0.35);
	box-shadow: 0 24px 60px rgba(5, 2, 10, 0.7);
}

.tw-a11y-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}

.tw-a11y-panel__title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: 700;
}

.tw-a11y-panel__close {
	cursor: pointer;
	border: 0;
	background: transparent;
	color: #cfc6e6;
	font-size: 1.6rem;
	line-height: 1;
	padding: 2px 8px;
	border-radius: 8px;
}

.tw-a11y-panel__close:hover {
	color: #fff;
	background: rgba(0, 240, 255, 0.18);
}

.tw-a11y-panel__close:focus-visible {
	outline: 3px solid #FFD700;
	outline-offset: 2px;
}

.tw-a11y-panel__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.tw-a11y-option {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 84px;
	padding: 12px 8px;
	cursor: pointer;
	text-align: center;
	border-radius: 12px;
	border: 1px solid rgba(157, 78, 221, 0.3);
	background: rgba(9, 5, 20, 0.5);
	color: #e7defc;
	font-family: inherit;
	font-size: 0.82rem;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.tw-a11y-option i {
	font-size: 1.3rem;
	color: #00F0FF;
}

.tw-a11y-option:hover {
	border-color: rgba(0, 240, 255, 0.6);
	background: rgba(157, 78, 221, 0.16);
}

.tw-a11y-option:focus-visible {
	outline: 3px solid #FFD700;
	outline-offset: 2px;
}

.tw-a11y-option[aria-pressed="true"] {
	border-color: #00FFA3;
	background: rgba(0, 255, 163, 0.14);
	color: #fff;
}

.tw-a11y-option[aria-pressed="true"] i {
	color: #00FFA3;
}

.tw-a11y-panel__foot {
	margin-top: 14px;
	text-align: center;
}

.tw-a11y-reset {
	cursor: pointer;
	border: 1px solid rgba(255, 16, 83, 0.5);
	background: transparent;
	color: #ff7aa3;
	border-radius: 999px;
	padding: 9px 18px;
	font-family: inherit;
	font-size: 0.85rem;
	font-weight: 600;
}

.tw-a11y-reset:hover {
	background: rgba(255, 16, 83, 0.14);
	color: #fff;
}

.tw-a11y-reset:focus-visible {
	outline: 3px solid #FFD700;
	outline-offset: 2px;
}

@media (max-width: 600px) {
	.tw-a11y-panel__grid {
		grid-template-columns: 1fr;
	}
}

/* ==================================================================
 * Assistive classes applied to <html> (html.tw-a11y-*)
 * ================================================================== */

/* Font sizing (use rem so the whole document scales without breaking layout) */
html.tw-a11y-large-text {
	font-size: 118%;
}

html.tw-a11y-small-text {
	font-size: 88%;
}

/* High contrast */
html.tw-a11y-contrast,
html.tw-a11y-contrast body {
	background: #000 !important;
	color: #fff !important;
}

html.tw-a11y-contrast a,
html.tw-a11y-contrast a * {
	color: #FFD700 !important;
}

html.tw-a11y-contrast button:not(.tw-a11y-toggle):not(.tw-a11y-option):not(.tw-a11y-reset):not(.tw-a11y-panel__close),
html.tw-a11y-contrast input,
html.tw-a11y-contrast select,
html.tw-a11y-contrast textarea {
	background: #000 !important;
	color: #fff !important;
	border: 1px solid #fff !important;
}

/* Highlight links */
html.tw-a11y-links a {
	text-decoration: underline !important;
	text-underline-offset: 2px !important;
	outline: 2px dashed #FFD700 !important;
	outline-offset: 2px !important;
}

/* Readable / dyslexia-friendly font */
html.tw-a11y-readable,
html.tw-a11y-readable body,
html.tw-a11y-readable * {
	font-family: "Comic Sans MS", "Trebuchet MS", Verdana, Tahoma, sans-serif !important;
	letter-spacing: 0.03em !important;
}

/* Stop animations / reduce motion */
html.tw-a11y-no-motion *,
html.tw-a11y-no-motion *::before,
html.tw-a11y-no-motion *::after {
	animation-duration: 0.001s !important;
	animation-iteration-count: 1 !important;
	transition-duration: 0.001s !important;
	scroll-behavior: auto !important;
}

/* Big cursor */
html.tw-a11y-cursor,
html.tw-a11y-cursor * {
	cursor:
		url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"><path d="M6 3 L6 38 L15 29 L21 43 L27 40 L21 27 L34 27 Z" fill="black" stroke="white" stroke-width="2"/></svg>') 4 2,
		auto !important;
}

/* Larger line spacing */
html.tw-a11y-spacing p,
html.tw-a11y-spacing li,
html.tw-a11y-spacing a,
html.tw-a11y-spacing span,
html.tw-a11y-spacing div {
	line-height: 2 !important;
	letter-spacing: 0.04em !important;
	word-spacing: 0.12em !important;
}

/* Never restyle our own widgets via the readable/contrast overrides */
.tw-a11y-toggle,
.tw-a11y-panel,
.tw-a11y-option,
.tw-a11y-reset {
	font-family: "Outfit", system-ui, sans-serif !important;
}
