/* OMA Karate — accessibility toolbar (button, panel and the adjustments it applies). */

html body .oma-a11y__sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

html body .oma-a11y { position: fixed; bottom: 18px; z-index: 99990; font-family: "Barlow", "Segoe UI", system-ui, sans-serif; font-size: 16px; line-height: 1.4; }
html body .oma-a11y--left { left: 18px; }
html body .oma-a11y--right { right: 18px; }

html body .oma-a11y .oma-a11y__toggle { display: grid; place-items: center; width: 56px; height: 56px; padding: 0; border-radius: 50%; border: 3px solid #FFFFFF; background: #1A4FA0; color: #FFFFFF; cursor: pointer; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35); transition: transform 0.15s ease, background-color 0.15s ease; }
html body .oma-a11y .oma-a11y__toggle:hover { background: #151213; transform: scale(1.06); }
html body .oma-a11y .oma-a11y__toggle:focus-visible { outline: 3px solid #F0D018; outline-offset: 3px; }
html body .oma-a11y .oma-a11y__toggle[aria-expanded="true"] { background: #151213; }

html body .oma-a11y .oma-a11y__panel { position: absolute; bottom: 68px; width: min(360px, calc(100vw - 36px)); max-height: calc(100vh - 110px); overflow-y: auto; background: #FFFFFF; color: #151213; border: 2px solid #151213; border-radius: 10px; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35); padding: 16px; }
html body .oma-a11y--left .oma-a11y__panel { left: 0; }
html body .oma-a11y--right .oma-a11y__panel { right: 0; }
html body .oma-a11y .oma-a11y__panel[hidden] { display: none; }

html body .oma-a11y .oma-a11y__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 12px; }
html body .oma-a11y .oma-a11y__title { margin: 0; font: 700 20px/1.2 "Barlow Condensed", "Arial Narrow", sans-serif; text-transform: uppercase; letter-spacing: 0.03em; color: #151213; }
html body .oma-a11y .oma-a11y__close { width: 40px; height: 40px; border-radius: 50%; border: 2px solid #151213; background: #FFFFFF; color: #151213; font-size: 24px; line-height: 1; cursor: pointer; padding: 0; }
html body .oma-a11y .oma-a11y__close:hover { background: #151213; color: #FFFFFF; }

html body .oma-a11y .oma-a11y__size { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #6E6668; border-radius: 8px; margin: 0 0 10px; }
html body .oma-a11y .oma-a11y__size-label { flex: 1; font-weight: 700; }
html body .oma-a11y .oma-a11y__step { min-width: 48px; height: 44px; border-radius: 6px; border: 2px solid #151213; background: #FFFFFF; color: #151213; font-weight: 800; font-size: 17px; cursor: pointer; }
html body .oma-a11y .oma-a11y__step:hover:not([disabled]) { background: #151213; color: #FFFFFF; }
html body .oma-a11y .oma-a11y__step[disabled] { opacity: 0.45; cursor: not-allowed; }
html body .oma-a11y .oma-a11y__size-value { min-width: 52px; text-align: center; font-weight: 700; }

html body .oma-a11y .oma-a11y__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
html body .oma-a11y .oma-a11y__opt { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: 12px; width: 100%; text-align: left; padding: 10px 12px; border: 1px solid #6E6668; border-radius: 8px; background: #FFFFFF; color: #151213; cursor: pointer; font: inherit; }
html body .oma-a11y .oma-a11y__opt:hover { border-color: #151213; background: #F6F2EC; }
html body .oma-a11y .oma-a11y__opt-name { font-weight: 700; }
html body .oma-a11y .oma-a11y__opt-desc { grid-column: 1; font-size: 14px; color: #5C5557; }
html body .oma-a11y .oma-a11y__switch { grid-column: 2; grid-row: 1 / span 2; align-self: center; position: relative; width: 44px; height: 24px; border-radius: 12px; background: #6E6668; }
html body .oma-a11y .oma-a11y__switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #FFFFFF; transition: left 0.15s ease; }
html body .oma-a11y .oma-a11y__opt[aria-pressed="true"] { border: 2px solid #1A4FA0; background: #EAF1FB; }
html body .oma-a11y .oma-a11y__opt[aria-pressed="true"] .oma-a11y__switch { background: #1A4FA0; }
html body .oma-a11y .oma-a11y__opt[aria-pressed="true"] .oma-a11y__switch::after { left: 23px; }

html body .oma-a11y .oma-a11y__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
html body .oma-a11y .oma-a11y__reset { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 2px solid #151213; background: #151213; color: #FFFFFF; font-weight: 700; cursor: pointer; }
html body .oma-a11y .oma-a11y__reset:hover { background: #FFFFFF; color: #151213; }
html body .oma-a11y .oma-a11y__link { color: #1A4FA0; font-weight: 700; text-decoration: underline; }
html body .oma-a11y .oma-a11y__link:hover { color: #151213; }

html body .oma-a11y :is(button, html body .oma-a11y a):focus-visible { outline: 3px solid #1A4FA0; outline-offset: 2px; }

@media print { .oma-a11y { display: none !important; } }

html body .oma-a11y button { white-space: normal; min-width: 0; text-transform: none; letter-spacing: normal; font-family: inherit; line-height: 1.3; box-sizing: border-box; }
html body .oma-a11y .oma-a11y__toggle { border-radius: 50% !important; padding: 0 !important; }

/* ---------- Adjustments (classes on <html>) ---------- */

/* Text size: zoom the page, not the toolbar. */
html.oma-a11y-size body > *:not(.oma-a11y):not(script):not(style) { zoom: var(--oma-a11y-zoom, 1); }

/* High contrast. */
html.oma-a11y-contrast body,
html.oma-a11y-contrast body *:not(img):not(video):not(svg):not(svg *):not(iframe):not(.oma-a11y__switch) {
	background-color: #000000 !important;
	background-image: none !important;
	color: #FFFFFF !important;
	border-color: #FFFFFF !important;
	text-shadow: none !important;
	box-shadow: none !important;
}
html.oma-a11y-contrast body a,
html.oma-a11y-contrast body a * { color: #FFFF00 !important; }
html.oma-a11y-contrast body :is(.elementor-button, button, input[type="submit"], .oma-btn) { border: 2px solid #FFFF00 !important; }
html.oma-a11y-contrast body :is(input, select, textarea) { border: 2px solid #FFFFFF !important; }
html.oma-a11y-contrast body svg { color: #FFFFFF; fill: currentColor; }
html.oma-a11y-contrast .oma-a11y__opt[aria-pressed="true"] .oma-a11y__switch { background: #FFFF00 !important; }
html.oma-a11y-contrast .oma-a11y__switch { background: #777777 !important; }

/* Grayscale. */
html.oma-a11y-grayscale { filter: grayscale(100%); }

/* Highlight links. */
html.oma-a11y-links body a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px !important; }
html.oma-a11y-links body a:is(.elementor-button, .oma-btn), html.oma-a11y-links body button { outline: 2px dashed currentColor; outline-offset: 2px; }

/* Readable font. */
html.oma-a11y-readable body,
html.oma-a11y-readable body *:not(svg):not(svg *):not(.oma-kanji):not([class*="eicon"]):not([class*="fa-"]) {
	font-family: Verdana, Tahoma, "Segoe UI", Arial, sans-serif !important;
	font-style: normal !important;
	text-transform: none !important;
}

/* Text spacing (WCAG 1.4.12 values). */
html.oma-a11y-spacing body *:not(svg):not(svg *) {
	line-height: 1.6 !important;
	letter-spacing: 0.12em !important;
	word-spacing: 0.16em !important;
}
html.oma-a11y-spacing body p { margin-bottom: 2em !important; }

/* Pause animations. */
html.oma-a11y-pause *, html.oma-a11y-pause *::before, html.oma-a11y-pause *::after {
	animation-duration: 0.001ms !important;
	animation-iteration-count: 1 !important;
	transition-duration: 0.001ms !important;
	scroll-behavior: auto !important;
}

/* Large cursor. */
html.oma-a11y-cursor, html.oma-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='M6 3l0 38 10-10 7 15 7-3-7-15h14z' fill='%23000' stroke='%23fff' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, auto !important;
}
html.oma-a11y-cursor :is(a, button, [role="button"], label, select, summary),
html.oma-a11y-cursor :is(a, button, [role="button"], label, select, summary) * {
	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 3l0 38 10-10 7 15 7-3-7-15h14z' fill='%23F0D018' stroke='%23000' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, pointer !important;
}

/* Focus highlight. */
html.oma-a11y-focus body :focus,
html.oma-a11y-focus body :focus-visible {
	outline: 4px solid #F0D018 !important;
	outline-offset: 3px !important;
	box-shadow: 0 0 0 8px #151213 !important;
}
html.oma-a11y-contrast body .oma-hero__kanji, html.oma-a11y-contrast body [class*="kanji"] { display: none !important; }
html.oma-a11y-contrast body .oma-a11y__toggle { border: 3px solid #FFFF00 !important; }
