/* Accessibility widget, effects layer: what each data-uwa-* setting on <html> does to the page.
   The attributes are written by a11y-boot.js / a11y.js; a11y-effects.js adds the parts CSS cannot do.
   Never styles the widget itself (.uwa-root and everything inside it). Overlays live in .uwa-fx. */

/* Dyslexia-friendly font (self-hosted Lexend) */
@font-face{font-family:"NM Lexend";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/lexend-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"NM Lexend";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/lexend-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"NM Lexend";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/lexend-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"NM Lexend";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/lexend-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* Bigger text: the site is rem-based, so scaling the root scales the page */
html[data-uwa-text="1"]{font-size:112.5%!important}
html[data-uwa-text="2"]{font-size:125%!important}
html[data-uwa-text="3"]{font-size:137.5%!important}
html[data-uwa-text="4"]{font-size:150%!important}

/* Text spacing (SVG reset explicitly: letter-spacing would otherwise inherit into <text>) */
html[data-uwa-spacing="1"] body :where(:not(svg,svg *,.uwa-root,.uwa-root *)){letter-spacing:.05em!important;word-spacing:.1em!important}
html[data-uwa-spacing="2"] body :where(:not(svg,svg *,.uwa-root,.uwa-root *)){letter-spacing:.1em!important;word-spacing:.2em!important}
html[data-uwa-spacing="3"] body :where(:not(svg,svg *,.uwa-root,.uwa-root *)){letter-spacing:.16em!important;word-spacing:.32em!important}
html[data-uwa-spacing] body :where(svg,svg *):where(:not(.uwa-root *)){letter-spacing:normal!important;word-spacing:normal!important}

/* Larger text or spacing must not push the page sideways at 320px */
html:is([data-uwa-text],[data-uwa-spacing]) body :where(:not(.uwa-root,.uwa-root *)){overflow-wrap:anywhere!important}

/* Line height */
html[data-uwa-lh="1"] body :is(p,li,dd,dt,td,th,blockquote,figcaption,label,a,span,h1,h2,h3,h4,h5,h6,summary):where(:not(.uwa-root *)){line-height:1.5!important}
html[data-uwa-lh="2"] body :is(p,li,dd,dt,td,th,blockquote,figcaption,label,a,span,h1,h2,h3,h4,h5,h6,summary):where(:not(.uwa-root *)){line-height:1.75!important}
html[data-uwa-lh="3"] body :is(p,li,dd,dt,td,th,blockquote,figcaption,label,a,span,h1,h2,h3,h4,h5,h6,summary):where(:not(.uwa-root *)){line-height:2!important}

/* Text alignment (content areas only) */
html[data-uwa-align="left"] :is(main,footer) :is(p,li,dd,dt,h1,h2,h3,h4,h5,h6,blockquote,figcaption,td,th,summary):where(:not(.uwa-root *)){text-align:left!important}
html[data-uwa-align="right"] :is(main,footer) :is(p,li,dd,dt,h1,h2,h3,h4,h5,h6,blockquote,figcaption,td,th,summary):where(:not(.uwa-root *)){text-align:right!important}
html[data-uwa-align="center"] :is(main,footer) :is(p,li,dd,dt,h1,h2,h3,h4,h5,h6,blockquote,figcaption,td,th,summary):where(:not(.uwa-root *)){text-align:center!important}
html[data-uwa-align="justify"] :is(main,footer) :is(p,li,dd,dt,h1,h2,h3,h4,h5,h6,blockquote,figcaption,td,th,summary):where(:not(.uwa-root *)){text-align:justify!important}

/* Dyslexia font */
html[data-uwa-dyslexia="1"] body :where(:not(.uwa-root,.uwa-root *)){font-family:"NM Lexend",sans-serif!important}

/* Pause animations (a11y-effects.js also pauses playing media and sets html.a11y-pause) */
html[data-uwa-pause="1"],
html[data-uwa-pause="1"] body,
html[data-uwa-pause="1"] body :where(:not(.uwa-root,.uwa-root *)),
html[data-uwa-pause="1"] body :where(:not(.uwa-root,.uwa-root *))::before,
html[data-uwa-pause="1"] body :where(:not(.uwa-root,.uwa-root *))::after{animation-duration:0s!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;transition-delay:0s!important;scroll-behavior:auto!important}

/* Hide images: keep their boxes (no layout jump); a11y-effects.js prints non-empty alt texts */
html[data-uwa-images="1"] :is(main,header,footer) :is(img,picture,video,svg[role="img"]):where(:not(.uwa-root *)){opacity:0!important}
html[data-uwa-images="1"] :is(main,header,footer):where(:not(.uwa-root,.uwa-root *)),
html[data-uwa-images="1"] :is(main,header,footer) :where(:not(.uwa-root,.uwa-root *)),
html[data-uwa-images="1"] :is(main,header,footer) :where(:not(.uwa-root,.uwa-root *))::before,
html[data-uwa-images="1"] :is(main,header,footer) :where(:not(.uwa-root,.uwa-root *))::after{background-image:none!important}
html[data-uwa-images="1"] .uwa-alt{display:inline-block;box-sizing:border-box;max-width:100%;margin:.25rem 0;padding:.5rem .75rem;background:#FBF8F1;border:1px solid #D9D2C2;border-radius:8px;color:#353334;font-size:.875rem;font-weight:400;font-style:normal;line-height:1.4;text-align:left;text-transform:none;text-decoration:none;white-space:normal;overflow-wrap:anywhere;vertical-align:top;opacity:1}
html[data-uwa-images="1"] .uwa-alt--over{position:absolute;z-index:1;margin:0;max-width:none;display:flex;align-items:center;justify-content:center;text-align:center}

/* Invert colours + saturation share one filter on <html> (a filter on the root keeps position:fixed working).
   a11y-effects.js sets the same value inline; these rules only cover the first paint. */
html[data-uwa-contrast="invert"]{filter:invert(1) hue-rotate(180deg)}
html[data-uwa-sat="low"]{filter:saturate(.5)}
html[data-uwa-sat="high"]{filter:saturate(2)}
html[data-uwa-sat="none"]{filter:grayscale(1)}
html[data-uwa-contrast="invert"][data-uwa-sat="low"]{filter:invert(1) hue-rotate(180deg) saturate(.5)}
html[data-uwa-contrast="invert"][data-uwa-sat="high"]{filter:invert(1) hue-rotate(180deg) saturate(2)}
html[data-uwa-contrast="invert"][data-uwa-sat="none"]{filter:invert(1) hue-rotate(180deg) grayscale(1)}
/* Re-invert media and the widget so they look normal (images inside <picture> are handled through the img;
   open modal dialogs and popovers sit in the top layer, outside the root filter, so they are left alone) */
html[data-uwa-contrast="invert"] body :is(img,video,iframe,[data-uwa-keep]):where(:not([data-uwa-keep] *,.uwa-root *)):not(:where(:modal,:modal *,:popover-open,:popover-open *)),
html[data-uwa-contrast="invert"] body :is(.uwa-fab,.uwa-panel),
html[data-uwa-contrast="invert"] body :is(.uwa-tip,.uwa-guide){filter:invert(1) hue-rotate(180deg)!important}
html[data-uwa-contrast="invert"] .uwa-mask__band{background:rgba(255,255,255,.55)}

/* Dark contrast */
html[data-uwa-contrast="dark"],html[data-uwa-contrast="dark"] body{background:#000!important}
html[data-uwa-contrast="dark"] body :where(:not(.uwa-root,.uwa-root *,.uwa-fx,.uwa-fx *)){color:#fff!important;-webkit-text-fill-color:currentColor!important;background:transparent!important;border-color:#fff!important;box-shadow:none!important;text-shadow:none!important;color-scheme:dark}
html[data-uwa-contrast="dark"] body :where(:not(.uwa-root,.uwa-root *,.uwa-fx,.uwa-fx *))::before,
html[data-uwa-contrast="dark"] body :where(:not(.uwa-root,.uwa-root *,.uwa-fx,.uwa-fx *))::after{color:inherit!important;-webkit-text-fill-color:currentColor!important;background:transparent!important;border-color:currentColor!important;box-shadow:none!important;text-shadow:none!important}
html[data-uwa-contrast="dark"] body :is(a[href],[role="link"],button,[role="button"],input[type="button"],input[type="submit"],input[type="reset"]):where(:not(.uwa-root *,.uwa-fx *)){color:#F2C34B!important;text-decoration-line:underline!important}
html[data-uwa-contrast="dark"] body :is(a[href],[role="link"],button,[role="button"]) :where(:not(.uwa-root *,.uwa-fx *)){color:#F2C34B!important}
html[data-uwa-contrast="dark"] body [data-uwa-float]:where(:not(.uwa-root,.uwa-root *)){background:#000!important;border:1px solid #fff!important}
html[data-uwa-contrast="dark"] body :is(input:not([type="checkbox"],[type="radio"],[type="range"],[type="color"],[type="file"],[type="image"],[type="hidden"],[type="button"],[type="submit"],[type="reset"]),select,textarea):where(:not(.uwa-root *,.uwa-fx *)){background:#000!important;color:#fff!important;border:1px solid #fff!important}
html[data-uwa-contrast="dark"] body :where(:not(.uwa-root *,.uwa-fx *))::placeholder{color:#C8C8C8!important;-webkit-text-fill-color:#C8C8C8!important;opacity:1!important}
html[data-uwa-contrast="dark"] body :focus-visible:where(:not(.uwa-root *,.uwa-fx *)){outline:2px solid #F2C34B!important;outline-offset:2px!important}

/* Light contrast */
html[data-uwa-contrast="light"],html[data-uwa-contrast="light"] body{background:#fff!important}
html[data-uwa-contrast="light"] body :where(:not(.uwa-root,.uwa-root *,.uwa-fx,.uwa-fx *)){color:#000!important;-webkit-text-fill-color:currentColor!important;background:transparent!important;border-color:#000!important;box-shadow:none!important;text-shadow:none!important;color-scheme:light}
html[data-uwa-contrast="light"] body :where(:not(.uwa-root,.uwa-root *,.uwa-fx,.uwa-fx *))::before,
html[data-uwa-contrast="light"] body :where(:not(.uwa-root,.uwa-root *,.uwa-fx,.uwa-fx *))::after{color:inherit!important;-webkit-text-fill-color:currentColor!important;background:transparent!important;border-color:currentColor!important;box-shadow:none!important;text-shadow:none!important}
html[data-uwa-contrast="light"] body :is(a[href],[role="link"],button,[role="button"],input[type="button"],input[type="submit"],input[type="reset"]):where(:not(.uwa-root *,.uwa-fx *)){color:#5C430C!important;text-decoration-line:underline!important}
html[data-uwa-contrast="light"] body :is(a[href],[role="link"],button,[role="button"]) :where(:not(.uwa-root *,.uwa-fx *)){color:#5C430C!important}
html[data-uwa-contrast="light"] body [data-uwa-float]:where(:not(.uwa-root,.uwa-root *)){background:#fff!important;border:1px solid #000!important}
html[data-uwa-contrast="light"] body :is(input:not([type="checkbox"],[type="radio"],[type="range"],[type="color"],[type="file"],[type="image"],[type="hidden"],[type="button"],[type="submit"],[type="reset"]),select,textarea):where(:not(.uwa-root *,.uwa-fx *)){background:#fff!important;color:#000!important;border:1px solid #000!important}
html[data-uwa-contrast="light"] body :where(:not(.uwa-root *,.uwa-fx *))::placeholder{color:#4A4A4A!important;-webkit-text-fill-color:#4A4A4A!important;opacity:1!important}
html[data-uwa-contrast="light"] body :focus-visible:where(:not(.uwa-root *,.uwa-fx *)){outline:2px solid #000!important;outline-offset:2px!important}

/* SVG icons follow the text colour in both contrast modes (mask contents and [data-uwa-keep] stay as drawn) */
html:is([data-uwa-contrast="dark"],[data-uwa-contrast="light"]) body :is(svg,svg *)[fill]:not([fill="none"],[fill="transparent"]):where(:not(.uwa-root *,.uwa-fx *,mask *,[data-uwa-keep],[data-uwa-keep] *)){fill:currentColor!important}
html:is([data-uwa-contrast="dark"],[data-uwa-contrast="light"]) body :is(svg,svg *)[stroke]:not([stroke="none"],[stroke="transparent"]):where(:not(.uwa-root *,.uwa-fx *,mask *,[data-uwa-keep],[data-uwa-keep] *)){stroke:currentColor!important}

/* Highlight links (after the contrast rules so it combines with them) */
html[data-uwa-links="1"] body a[href]:where(:not(.uwa-root *)){text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px!important;outline:2px solid #FFD54A!important;outline-offset:2px!important}
/* solid buttons keep their own fill; everything else gets the tint */
html[data-uwa-links="1"] body a[href]:where(:not(.uwa-root *,.cta,.btn,.cicon)){background:rgba(255,213,74,.28)!important}
html[data-uwa-links="1"] body a[href]:focus-visible:where(:not(.uwa-root *)){outline:3px solid currentColor!important}

/* Big cursor (everywhere, the menu included, so the pointer never shrinks back) */
html[data-uwa-cursor="big"],html[data-uwa-cursor="big"] *{cursor:url(/assets/img/a11y/cursor.svg) 3 2,auto!important}
html[data-uwa-cursor="big"] :is(a[href],button,[role="button"],label,summary,select,input[type="checkbox"],input[type="radio"]):not(:disabled),
html[data-uwa-cursor="big"] :is(a[href],button,[role="button"],label,summary):not(:disabled) :not(input,textarea){cursor:url(/assets/img/a11y/cursor-pointer.svg) 17 3,pointer!important}

/* Effect overlays (reading mask, reading guide, tooltip), z-index below the widget (1400/1500) */
.uwa-fx{position:fixed;top:0;left:0;width:0;height:0;overflow:visible;z-index:1300;pointer-events:none}
.uwa-fx *{pointer-events:none!important}
.uwa-mask{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}
.uwa-mask__band{position:absolute;top:0;left:0;right:0;height:100%;background:rgba(0,0,0,.55);will-change:transform}
.uwa-mask__band--top{transform:translateY(calc(var(--uwa-y,50vh) - 60px - 100%))}
.uwa-mask__band--bottom{transform:translateY(calc(var(--uwa-y,50vh) + 60px))}
.uwa-guide{position:fixed;top:0;left:0;box-sizing:border-box;width:520px;max-width:90vw;height:12px;background:#353334;border-top:3px solid #DFAD32;border-radius:0 0 4px 4px;box-shadow:0 2px 8px rgba(0,0,0,.25);transform:translate(calc(var(--uwa-x,50vw) - 50%),calc(var(--uwa-y,50vh) + 14px));will-change:transform}
.uwa-guide::before{content:"";position:absolute;top:-11px;left:50%;margin-left:-8px;border:8px solid transparent;border-top:0;border-bottom-color:#DFAD32}
.uwa-tip{position:fixed;top:0;left:0;box-sizing:border-box;max-width:min(280px,calc(100vw - 16px));padding:6px 10px;border-radius:8px;background:#353334;color:#fff;font-size:.875rem;font-weight:400;font-style:normal;line-height:1.35;text-align:left;text-transform:none;text-decoration:none;white-space:normal;overflow-wrap:anywhere;box-shadow:0 6px 18px rgba(0,0,0,.22)}
