/*!
 * Site Kit — UI for the cookie banner, accessibility menu, form errors.
 * Sizes are in px on purpose: the accessibility text-size setting scales
 * the site (rem), while the kit's own controls stay put and usable.
 * Theme per site by overriding the custom properties on :root.
 */
:root {
  --kit-accent: #18181b;
  --kit-accent-text: #ffffff;
  --kit-surface: #ffffff;
  --kit-text: #18181b;
  --kit-muted: #5b5b66;
  --kit-border: rgba(24, 24, 27, 0.1);
  --kit-radius: 16px;
  --kit-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 18px 48px -12px rgba(0, 0, 0, 0.28);
  --kit-font: inherit;
  --kit-error: #dc2626;
  --kit-z: 2147483000;
}

[data-kit-ui], [data-kit-ui] * { box-sizing: border-box; }

/* ---------- honeypot ---------- */
.kit-hp { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }

/* ---------- form messages ---------- */
.kit-field-error { margin: 6px 4px 0; font-size: 14px; line-height: 1.4; font-weight: 600; color: var(--kit-field-error, var(--kit-error)); }
[data-kit-message][hidden] { display: none !important; }

/* ---------- shared buttons ---------- */
.kit-btn { appearance: none; border: 0; cursor: pointer; font: 600 14px/1 var(--kit-font); padding: 11px 16px; border-radius: 10px; transition: background-color .15s, color .15s, box-shadow .15s; }
.kit-btn:focus-visible, .kit-a11y-opt:focus-visible, .kit-a11y-btn:focus-visible, .kit-a11y-stepper button:focus-visible, .kit-a11y-close:focus-visible, .kit-switch:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
.kit-btn-primary { background: var(--kit-accent); color: var(--kit-accent-text); }
.kit-btn-primary:hover { filter: brightness(1.08); }
.kit-btn-ghost { background: transparent; color: var(--kit-text); box-shadow: inset 0 0 0 1px var(--kit-border); }
.kit-btn-ghost:hover { background: rgba(24, 24, 27, 0.05); }
.kit-btn[hidden] { display: none; }

/* ---------- consent banner ---------- */
.kit-consent { position: fixed; z-index: var(--kit-z); inset-inline-start: 20px; bottom: 20px; width: min(420px, calc(100vw - 40px)); background: var(--kit-surface); color: var(--kit-text); border-radius: var(--kit-radius); box-shadow: var(--kit-shadow); border: 1px solid var(--kit-border); padding: 18px; font: 400 14px/1.55 var(--kit-font); direction: rtl; text-align: start; animation: kit-rise .35s cubic-bezier(.2, .8, .2, 1); }
.kit-consent-text { margin: 0; color: var(--kit-text); }
.kit-consent-text a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.kit-consent-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.kit-consent-actions .kit-btn-primary { flex: 1 1 auto; }
.kit-consent-settings { margin-top: 12px; border-top: 1px solid var(--kit-border); }
.kit-consent-settings[hidden] { display: none; }
.kit-switch-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--kit-border); }
.kit-switch-label { font-weight: 600; font-size: 14px; }
.kit-switch-help { margin: 2px 0 0; font-size: 13px; color: var(--kit-muted); }
.kit-switch { appearance: none; flex: none; width: 40px; height: 24px; border-radius: 99px; background: #d4d4d8; position: relative; cursor: pointer; transition: background-color .2s; margin: 0; }
.kit-switch::after { content: ''; position: absolute; top: 3px; inset-inline-start: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.2); transition: transform .2s; }
.kit-switch:checked { background: var(--kit-accent); }
.kit-switch:checked::after { transform: translateX(-16px); }
[dir=ltr] .kit-switch:checked::after { transform: translateX(16px); }
.kit-switch:disabled { opacity: .55; cursor: not-allowed; }
@media (max-width: 600px) {
  .kit-consent { inset-inline: 10px; bottom: 10px; width: auto; padding: 16px; }
}
@keyframes kit-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* ---------- accessibility button + panel ---------- */
.kit-a11y-btn { position: fixed; z-index: calc(var(--kit-z) - 2); width: 48px; height: 48px; border-radius: 50%; border: 0; cursor: pointer; display: grid; place-items: center; background: #1d4ed8; color: #fff; box-shadow: 0 8px 24px -6px rgba(29, 78, 216, .55); transition: transform .15s; }
.kit-a11y-btn:hover { transform: scale(1.06); }
.kit-a11y-btn svg { width: 26px; height: 26px; fill: currentColor; }
.kit-a11y-panel { position: fixed; z-index: calc(var(--kit-z) - 1); width: min(340px, calc(100vw - 40px)); max-height: calc(100vh - 120px); overflow: auto; background: var(--kit-surface); color: var(--kit-text); border-radius: var(--kit-radius); box-shadow: var(--kit-shadow); border: 1px solid var(--kit-border); padding: 16px; font: 400 14px/1.4 var(--kit-font); direction: rtl; text-align: start; animation: kit-rise .25s cubic-bezier(.2, .8, .2, 1); }
.kit-a11y-panel[hidden] { display: none; }
.kit-a11y-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.kit-a11y-head h2 { margin: 0; font: 700 17px/1.2 var(--kit-font); color: var(--kit-text); }
.kit-a11y-close { width: 32px; height: 32px; border-radius: 8px; border: 0; background: rgba(24,24,27,.06); color: var(--kit-text); font-size: 20px; line-height: 1; cursor: pointer; }
.kit-a11y-size { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 12px; background: rgba(24,24,27,.04); margin-bottom: 10px; font-weight: 600; }
.kit-a11y-stepper { display: flex; align-items: center; gap: 6px; }
.kit-a11y-stepper button { width: 34px; height: 34px; border-radius: 9px; border: 1px solid var(--kit-border); background: var(--kit-surface); color: var(--kit-text); font-size: 18px; cursor: pointer; }
.kit-a11y-size-value { min-width: 46px; text-align: center; font-variant-numeric: tabular-nums; }
.kit-a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.kit-a11y-opt { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 8px; border-radius: 12px; border: 1px solid var(--kit-border); background: var(--kit-surface); color: var(--kit-text); font: 600 13px/1.25 var(--kit-font); cursor: pointer; text-align: center; transition: border-color .15s, background-color .15s; }
.kit-a11y-opt svg { width: 22px; height: 22px; }
.kit-a11y-opt:hover { border-color: rgba(29, 78, 216, .45); }
.kit-a11y-opt[aria-pressed=true] { background: #1d4ed8; border-color: #1d4ed8; color: #fff; }
.kit-a11y-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 12px; }
.kit-a11y-foot a { color: #1d4ed8; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- accessibility modes (applied on <html>) ---------- */
html.kit-fs-1 { font-size: 115% !important; }
html.kit-fs-2 { font-size: 130% !important; }
html.kit-fs-3 { font-size: 150% !important; }

html.kit-a11y-contrast body *:not([data-kit-ui]):not([data-kit-ui] *):not(img):not(video):not(svg):not(svg *) { background-color: #000 !important; background-image: none !important; color: #fff !important; border-color: #fff !important; text-shadow: none !important; box-shadow: none !important; }
html.kit-a11y-contrast body { background: #000 !important; }
/* Same selector chain as above (so it wins on specificity), for links and buttons. */
html.kit-a11y-contrast body a:not([data-kit-ui]):not([data-kit-ui] *):not(img):not(video):not(svg):not(svg *),
html.kit-a11y-contrast body a:not([data-kit-ui] *) *:not([data-kit-ui]):not([data-kit-ui] *):not(img):not(video):not(svg):not(svg *) { color: #ffe14d !important; }
html.kit-a11y-contrast body a:not([data-kit-ui]):not([data-kit-ui] *):not(img):not(video):not(svg):not(svg *) svg { color: #ffe14d !important; }
html.kit-a11y-contrast body :is(a, button):not([data-kit-ui]):not([data-kit-ui] *):not(img):not(video):not(svg):not(svg *)[class] { outline: 2px solid #ffe14d !important; outline-offset: 2px !important; }

html.kit-a11y-links body a:not([data-kit-ui] *) { text-decoration: underline !important; text-underline-offset: 3px !important; outline: 2px dashed currentColor !important; outline-offset: 2px !important; }

html.kit-a11y-font body *:not([data-kit-ui] *):not(svg):not(svg *) { font-family: Arial, Helvetica, sans-serif !important; letter-spacing: 0.01em !important; }

html.kit-a11y-spacing body *:not([data-kit-ui] *) { line-height: 1.9 !important; letter-spacing: 0.04em !important; word-spacing: 0.12em !important; }

html.kit-a11y-motion *, html.kit-a11y-motion *::before, html.kit-a11y-motion *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }

html.kit-a11y-cursor, html.kit-a11y-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l16 8-7 2-3 7z' fill='%23000' stroke='%23fff' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 4 2, auto !important; }

html.kit-a11y-focus *:focus { outline: 3px solid #f59e0b !important; outline-offset: 3px !important; box-shadow: 0 0 0 6px rgba(245, 158, 11, .35) !important; }

@media (prefers-reduced-motion: reduce) {
  .kit-consent, .kit-a11y-panel { animation: none; }
}
@media print {
  .kit-consent, .kit-a11y-btn, .kit-a11y-panel { display: none !important; }
}
