/* Roseau Events Planning accessibility support widget. */
#a11y-widget,
#a11y-widget * {
  box-sizing: border-box;
}

body.a11y-panel-open {
  overflow: hidden !important;
}

#a11y-widget {
  position: fixed;
  z-index: 1600;
  inset: auto auto max(18px, env(safe-area-inset-bottom)) 20px;
  color: #f7f1e7;
  font: 400 16px/1.45 Arial, sans-serif;
  letter-spacing: 0;
  word-spacing: normal;
}

#a11y-trigger,
#a11y-trigger *,
#a11y-panel,
#a11y-panel * {
  visibility: visible !important;
  opacity: 1 !important;
  filter: none !important;
  text-align: initial !important;
  letter-spacing: 0 !important;
  word-spacing: normal !important;
  line-height: normal !important;
}

#a11y-trigger {
  position: relative;
  z-index: 10;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  padding: 0;
  border: 2px solid #d5b869;
  border-radius: 50%;
  color: #f4e5b7;
  background: linear-gradient(145deg, #08763f, #062b19 78%);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .48), 0 0 0 4px rgba(0, 185, 87, .12), 0 0 22px rgba(0, 185, 87, .22);
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

#a11y-trigger svg {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#a11y-trigger .a11y-icon-head {
  fill: currentColor;
  stroke: none;
}

#a11y-trigger .a11y-icon-figure {
  stroke-width: 2.35;
}

#a11y-trigger:hover,
#a11y-trigger:focus-visible {
  transform: translateY(-2px);
  border-color: #f0d58e;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .52), 0 0 0 5px rgba(0, 185, 87, .18), 0 0 28px rgba(0, 185, 87, .28);
}

#a11y-trigger:focus-visible,
#a11y-panel :focus-visible,
#a11y-widget .a11y-skip-link:focus-visible {
  outline: 3px solid #ffe48c;
  outline-offset: 4px;
}

#a11y-trigger::after {
  content: "Accessibility settings";
  position: absolute;
  left: calc(100% + 12px);
  bottom: 50%;
  width: max-content;
  max-width: 210px;
  padding: 8px 11px;
  transform: translateY(50%);
  border: 1px solid rgba(199, 164, 91, .7);
  border-radius: 5px;
  color: #f7f1e7;
  background: #07110b;
  box-shadow: 0 5px 18px rgba(0, 0, 0, .35);
  font: 700 11px/1.3 Arial, sans-serif !important;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 140ms ease, visibility 140ms ease;
}

#a11y-trigger:hover::after,
#a11y-trigger:focus-visible::after {
  opacity: 1 !important;
  visibility: visible !important;
}

#a11y-panel {
  position: fixed;
  z-index: 2000;
  inset: auto auto calc(max(18px, env(safe-area-inset-bottom)) + 76px) 20px;
  display: none;
  flex-direction: column;
  width: min(430px, calc(100vw - 40px));
  max-width: none;
  max-height: min(82dvh, 760px);
  margin: 0;
  padding: 0;
  overflow: hidden;
  transform: translateY(100%) !important;
  border: 1px solid rgba(199, 164, 91, .8);
  border-radius: 10px;
  color: #f7f1e7;
  background: linear-gradient(145deg, #0a1d13, #020302 78%);
  box-shadow: 0 22px 70px rgba(0, 0, 0, .7), 0 0 28px rgba(0, 185, 87, .15);
  font: 400 14px/1.45 Arial, sans-serif !important;
}

#a11y-panel[open] {
  display: flex;
  transform: translateY(0) !important;
  animation: a11y-panel-in 180ms ease-out both;
}

#a11y-panel::backdrop {
  background: rgba(0, 0, 0, .56);
  backdrop-filter: blur(2px);
}

.a11y-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 20px 14px;
  border-bottom: 1px solid rgba(199, 164, 91, .28);
}

.a11y-kicker {
  margin: 0 0 5px;
  color: #d8bd76;
  font: 700 9px/1.3 Arial, sans-serif !important;
  letter-spacing: .14em !important;
  text-transform: uppercase;
}

#a11y-title {
  margin: 0;
  color: #fbf7ed;
  font: 600 26px/1.05 Georgia, serif !important;
}

#a11y-panel .a11y-close,
#a11y-panel .a11y-reset {
  min-height: 42px;
  padding: 9px 13px;
  border: 1px solid rgba(199, 164, 91, .55);
  border-radius: 5px;
  color: #f7f1e7;
  background: rgba(0, 0, 0, .25);
  font: 700 11px/1.2 Arial, sans-serif !important;
  cursor: pointer;
  transition: color 150ms ease, border-color 150ms ease, background 150ms ease;
}

#a11y-panel .a11y-close:hover,
#a11y-panel .a11y-reset:hover {
  border-color: #00b957;
  background: rgba(0, 185, 87, .13);
}

.a11y-intro {
  margin: 0;
  padding: 12px 20px;
  color: #d1cabc;
  font: 400 12px/1.5 Arial, sans-serif !important;
  border-bottom: 1px solid rgba(199, 164, 91, .2);
}

.a11y-panel-content {
  min-height: 0;
  padding: 4px 20px 14px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #8e7740 #10140f;
}

.a11y-section {
  padding: 14px 0;
  border-bottom: 1px solid rgba(199, 164, 91, .2);
}

.a11y-section h3 {
  margin: 0 0 10px;
  color: #e0c783;
  font: 700 10px/1.2 Arial, sans-serif !important;
  letter-spacing: .11em !important;
  text-transform: uppercase;
}

.a11y-profile-grid,
.a11y-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

#a11y-panel .a11y-profile,
#a11y-panel .a11y-feature {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid rgba(199, 164, 91, .34);
  border-radius: 5px;
  color: #f4efe4;
  background: rgba(255, 255, 255, .035);
  font: 600 11px/1.3 Arial, sans-serif !important;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
}

#a11y-panel .a11y-feature {
  justify-content: flex-start;
}

#a11y-panel .a11y-profile:hover,
#a11y-panel .a11y-feature:hover,
#a11y-panel .a11y-profile[aria-pressed="true"],
#a11y-panel .a11y-feature[aria-pressed="true"] {
  border-color: rgba(0, 185, 87, .75);
  background: rgba(0, 185, 87, .14);
}

#a11y-panel .a11y-profile:active,
#a11y-panel .a11y-feature:active {
  transform: translateY(1px);
}

.a11y-profile-icon {
  flex: 0 0 31px;
  width: 31px;
  height: 31px;
  color: #d8bd76;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#a11y-panel .a11y-profile:hover .a11y-profile-icon,
#a11y-panel .a11y-profile:focus-visible .a11y-profile-icon,
#a11y-panel .a11y-profile[aria-pressed="true"] .a11y-profile-icon {
  animation: a11y-profile-pulse 1.2s ease-in-out infinite alternate;
}

.a11y-adjustments {
  display: grid;
  gap: 9px;
}

.a11y-adjust-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  color: #f4efe4;
  font: 600 12px/1.3 Arial, sans-serif !important;
}

.a11y-stepper {
  display: grid;
  grid-template-columns: 40px minmax(66px, auto) 40px;
  align-items: center;
  gap: 5px;
}

#a11y-panel .a11y-stepper button {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid rgba(199, 164, 91, .52);
  border-radius: 5px;
  color: #f5e8bf;
  background: rgba(0, 0, 0, .3);
  font: 700 20px/1 Arial, sans-serif !important;
  line-height: 1 !important;
  text-align: center !important;
  cursor: pointer;
}

#a11y-panel .a11y-stepper button:hover {
  border-color: #00b957;
  background: rgba(0, 185, 87, .15);
}

.a11y-stepper output {
  min-width: 66px;
  color: #e8d59e;
  font: 700 11px/1.2 Arial, sans-serif !important;
  text-align: center !important;
  white-space: nowrap;
}

.a11y-panel-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 20px 16px;
  border-top: 1px solid rgba(199, 164, 91, .28);
  background: #050a07;
}

#a11y-panel .a11y-statement-link {
  color: #e9cf8e;
  font: 700 11px/1.4 Arial, sans-serif !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

#a11y-panel .a11y-statement-link:hover {
  color: #8fdaa9;
}

.a11y-reading-line,
.a11y-reading-mask {
  position: fixed;
  z-index: 2;
  inset: 0;
  pointer-events: none;
}

.a11y-reading-line {
  top: var(--a11y-pointer-y, 50vh);
  bottom: auto;
  height: 44px;
  transform: translateY(-50%);
  border-top: 2px solid rgba(255, 220, 115, .95);
  border-bottom: 2px solid rgba(255, 220, 115, .95);
  background: rgba(0, 185, 87, .12);
  box-shadow: 0 1px 10px rgba(0, 0, 0, .35);
}

.a11y-reading-mask {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, .48) 0,
    rgba(0, 0, 0, .48) max(0px, calc(var(--a11y-pointer-y, 50vh) - 44px)),
    transparent max(0px, calc(var(--a11y-pointer-y, 50vh) - 44px)),
    transparent min(100%, calc(var(--a11y-pointer-y, 50vh) + 44px)),
    rgba(0, 0, 0, .48) min(100%, calc(var(--a11y-pointer-y, 50vh) + 44px)),
    rgba(0, 0, 0, .48) 100%
  );
}

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

.a11y-skip-link {
  position: fixed;
  z-index: 20;
  left: 0;
  bottom: 74px;
  padding: 12px 16px;
  transform: translateX(-150%);
  border: 2px solid #d5b869;
  border-radius: 0 5px 5px 0;
  color: #fff;
  background: #07110b;
  font: 700 14px/1.3 Arial, sans-serif !important;
}

.a11y-skip-link:focus {
  transform: translateX(0);
}

@keyframes a11y-panel-in {
  from { opacity: .4; }
  to { opacity: 1; }
}

@keyframes a11y-profile-pulse {
  from { transform: scale(1); }
  to { transform: scale(1.08); }
}

@media (max-width: 640px) {
  #a11y-widget {
    inset: auto auto max(14px, env(safe-area-inset-bottom)) 14px;
  }

  #a11y-trigger {
    width: 54px;
    height: 54px;
  }

  #a11y-panel,
  #a11y-panel[open] {
    inset: 0;
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border: 0;
    border-radius: 0;
  }

  .a11y-panel-header {
    padding: max(16px, env(safe-area-inset-top)) 18px 13px;
  }

  #a11y-title { font-size: 24px !important; }
  .a11y-intro { padding-inline: 18px; }
  .a11y-panel-content { padding-inline: 18px; }
  .a11y-panel-footer { padding: 12px 18px max(16px, env(safe-area-inset-bottom)); }
  #a11y-trigger::after { display: none; }
}

@media (max-width: 360px) {
  .a11y-profile-grid,
  .a11y-feature-grid { grid-template-columns: 1fr; }
  #a11y-panel .a11y-profile,
  #a11y-panel .a11y-feature { min-height: 42px; }
}

@media (prefers-reduced-motion: reduce) {
  #a11y-trigger,
  #a11y-trigger::after,
  #a11y-panel,
  #a11y-panel *,
  .a11y-profile-icon,
  .a11y-profile-icon * {
    animation: none !important;
    transition: none !important;
  }
}

/* Page effects: accessibility widget and its overlays are deliberately excluded. */
html.a11y-text-1 { font-size: 110% !important; }
html.a11y-text-2 { font-size: 120% !important; }
html.a11y-text-3 { font-size: 130% !important; }

html.a11y-lineheight-1 body :not(#a11y-widget):not(#a11y-widget *),
html.a11y-lineheight-2 body :not(#a11y-widget):not(#a11y-widget *) {
  line-height: 1.7 !important;
}
html.a11y-lineheight-2 body :not(#a11y-widget):not(#a11y-widget *) { line-height: 2 !important; }

html.a11y-textspacing-1 body :not(#a11y-widget):not(#a11y-widget *) {
  letter-spacing: .04em !important;
  word-spacing: .08em !important;
}
html.a11y-textspacing-2 body :not(#a11y-widget):not(#a11y-widget *) {
  letter-spacing: .08em !important;
  word-spacing: .16em !important;
}

html.a11y-high-contrast body :not(#a11y-widget):not(#a11y-widget *) {
  color: #fff !important;
  text-shadow: none !important;
}
html.a11y-high-contrast body a:not(#a11y-widget a) {
  color: #ffe48c !important;
  text-decoration: underline !important;
}
html.a11y-high-contrast body :is(button, input, select, textarea):not(#a11y-widget *) {
  border-color: #fff !important;
}

html.a11y-light-contrast body :not(#a11y-widget):not(#a11y-widget *) {
  color: #151515 !important;
  text-shadow: none !important;
}
html.a11y-light-contrast body :is(main, header, footer, section, article, nav, aside, form, div):not(#a11y-widget):not(#a11y-widget *) {
  border-color: #333 !important;
  background-color: #fff !important;
  background-image: none !important;
  box-shadow: none !important;
}
html.a11y-light-contrast body :is(button, input, select, textarea):not(#a11y-widget *) {
  border: 2px solid #222 !important;
  color: #111 !important;
  background: #fff !important;
}
html.a11y-light-contrast body a:not(#a11y-widget a) {
  color: #064b2a !important;
  text-decoration: underline !important;
}

html.a11y-readable-font body :not(#a11y-widget):not(#a11y-widget *) {
  font-family: Arial, Verdana, sans-serif !important;
  font-style: normal !important;
}

html.a11y-highlight-links body a:not(#a11y-widget a) {
  color: #111 !important;
  background: #ffeb77 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  outline: 1px solid #111 !important;
  outline-offset: 2px;
}

html.a11y-highlight-headings body :is(h1, h2, h3, h4, h5, h6):not(#a11y-widget *) {
  text-decoration: underline !important;
  text-decoration-color: #f0cb65 !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: .18em;
}

html.a11y-grayscale body > :not(#a11y-widget):not(script):not(style) {
  filter: grayscale(1) !important;
}

html.a11y-focus-highlight body :focus-visible:not(#a11y-widget):not(#a11y-widget *) {
  outline: 3px solid #ffe275 !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 2px #111 !important;
}

html.a11y-hide-images body :is(img, picture, video, canvas, svg, [role="img"]):not(#a11y-widget):not(#a11y-widget *) {
  visibility: hidden !important;
  opacity: 0 !important;
}
html.a11y-hide-images body iframe:not([src*="challenges.cloudflare.com"]):not(#a11y-widget iframe),
html.a11y-hide-images body [data-bg-image]:not(#a11y-widget *) {
  visibility: hidden !important;
  opacity: 0 !important;
}
html.a11y-hide-images body :not(#a11y-widget):not(#a11y-widget *) {
  background-image: none !important;
}

html.a11y-stop-animations body :not(#a11y-widget):not(#a11y-widget *) {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}

@media (prefers-reduced-motion: reduce) {
  html:not(.a11y-stop-animations) body :not(#a11y-widget):not(#a11y-widget *) {
    scroll-behavior: auto !important;
  }
}
