/* GrowX accessibility widget */
:root { --growx-banner-h: 0px; --growx-a11y-color: #0b5fd4; }

.growx-skip { position: absolute; left: -9999px; top: 8px; z-index: 1000000; background: #fff; color: #000; padding: 10px 16px; border-radius: 6px; font-weight: 700; }
.growx-skip:focus { left: 8px; outline: 3px solid #ffbf47; }

#growx-a11y-btn {
	position: fixed; left: 16px; bottom: calc(16px + var(--growx-banner-h, 0px) + env(safe-area-inset-bottom, 0px)); z-index: 999995;
	width: 48px; height: 48px; border-radius: 50%; border: 0; cursor: pointer;
	background: var(--growx-a11y-color); color: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.3);
	display: flex; align-items: center; justify-content: center; padding: 0; transition: bottom .2s;
}
#growx-a11y-btn svg { width: 28px; height: 28px; fill: #fff; }
#growx-a11y-btn:focus-visible { outline: 3px solid #ffbf47; outline-offset: 2px; }
.growx-a11y--right #growx-a11y-btn { left: auto; right: 16px; }

#growx-a11y-panel {
	position: fixed; left: 16px; bottom: calc(72px + var(--growx-banner-h, 0px) + env(safe-area-inset-bottom, 0px)); z-index: 999996;
	width: min(320px, calc(100vw - 32px)); background: #fff; color: #1f2a30; border-radius: 12px;
	box-shadow: 0 16px 48px rgba(0,0,0,.3); padding: 16px; font-size: 14px; line-height: 1.4; font-family: inherit;
}
.growx-a11y--right #growx-a11y-panel { left: auto; right: 16px; }
.growx-a11y__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.growx-a11y__title { margin: 0; font-size: 16px; font-weight: 700; }
.growx-a11y__close { background: none; border: 0; font-size: 24px; line-height: 1; cursor: pointer; color: #5b6770; }
.growx-a11y__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.growx-a11y__opt {
	border: 1px solid #d9e0e4; border-radius: 8px; background: #f7f9fa; padding: 10px 8px; cursor: pointer;
	font: inherit; font-size: 13px; color: inherit; text-align: center; min-height: 44px;
}
.growx-a11y__opt.is-on, .growx-a11y__opt[aria-pressed="true"] { background: var(--growx-a11y-color); color: #fff; border-color: var(--growx-a11y-color); }
.growx-a11y__opt:focus-visible, .growx-a11y__close:focus-visible { outline: 3px solid #ffbf47; outline-offset: 2px; }
.growx-a11y__size { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 6px; border: 1px solid #d9e0e4; border-radius: 8px; padding: 6px 8px; background: #f7f9fa; }
.growx-a11y__size button { width: 36px; height: 36px; border-radius: 6px; border: 1px solid #d9e0e4; background: #fff; font-weight: 700; cursor: pointer; font-size: 16px; }
.growx-a11y__foot { margin: 10px 0 0; font-size: 12px; color: #5b6770; display: flex; justify-content: space-between; gap: 8px; }
.growx-a11y__foot a { color: var(--growx-a11y-color); }
.growx-a11y__reset { background: none; border: 0; color: var(--growx-a11y-color); cursor: pointer; font-size: 12px; text-decoration: underline; padding: 0; }

/* Feature classes applied on <html> */
html.growx-a11y-size-1 { font-size: 115% !important; }
html.growx-a11y-size-2 { font-size: 130% !important; }
html.growx-a11y-size-3 { font-size: 145% !important; }
html.growx-a11y-size-1 body, html.growx-a11y-size-2 body, html.growx-a11y-size-3 body { font-size: 1em !important; }

html.growx-a11y-contrast body { background: #000 !important; color: #fff !important; }
html.growx-a11y-contrast body *:not(#growx-a11y-panel):not(#growx-a11y-panel *):not(#growx-consent-modal):not(#growx-consent-modal *):not(img):not(video):not(svg):not(svg *) { background-color: #000 !important; color: #fff !important; border-color: #fff !important; }
html.growx-a11y-contrast a:not(#growx-a11y-panel a) { color: #ffff00 !important; text-decoration: underline !important; }

html.growx-a11y-grayscale { filter: grayscale(100%); }
html.growx-a11y-links a { text-decoration: underline !important; outline: 2px solid #ffbf47; outline-offset: 1px; }
html.growx-a11y-font, html.growx-a11y-font body, html.growx-a11y-font body * { font-family: Arial, Helvetica, "Segoe UI", sans-serif !important; }
html.growx-a11y-motion *, html.growx-a11y-motion *::before, html.growx-a11y-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html.growx-a11y-cursor, html.growx-a11y-cursor * { cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'><path d='M4 2l14 11-6 1 4 7-3 1-4-7-5 4z' fill='%23000' stroke='%23fff' stroke-width='1.5'/></svg>") 4 2, auto !important; }
html.growx-a11y-spacing body { line-height: 1.9 !important; letter-spacing: .06em !important; word-spacing: .12em !important; }
html.growx-a11y-spacing p { margin-bottom: 1.4em !important; }

@media (prefers-reduced-motion: reduce) { #growx-a11y-btn { transition: none; } }
@media (max-width: 640px) { #growx-a11y-btn { width: 42px; height: 42px; left: 10px; } #growx-a11y-panel { left: 10px; } }
