/* Site kit: the cookie choices bar, its dialog, the accessibility options panel and
   the settings they apply. Theme it from the site's own CSS:
     :root { --sk-accent:#1f4fd1; --sk-accent-text:#fff; --sk-bg:#fff; --sk-text:#14161a;
             --sk-line:rgba(20,22,26,.2); --sk-radius:10px; }
   The kit's text takes the site's font. --sk-root is the site's own root font size
   (default 100%): a site that sets html { font-size:62.5% } sets --sk-root:62.5% too,
   so the text size steps scale from it. */

@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/atkinson-hyperlegible-400.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("fonts/atkinson-hyperlegible-700.woff2") format("woff2"); }

/* ---- the kit's own interface ---- */
.sk-ui {
  --sk-a: var(--sk-accent, #1f4fd1); --sk-at: var(--sk-accent-text, #fff);
  --sk-b: var(--sk-bg, #fff); --sk-t: var(--sk-text, #14161a);
  --sk-l: var(--sk-line, rgba(20, 22, 26, .2)); --sk-r: var(--sk-radius, 10px);
  box-sizing: border-box; color: var(--sk-t); font-size: max(14px, .875rem); line-height: 1.45; text-align: left;
}
.sk-ui *, .sk-ui *::before, .sk-ui *::after { box-sizing: border-box; }
.sk-ui[hidden], .sk-ui [hidden] { display: none !important; }
html[data-sk="bar"] #lens-cc { display: none !important; }
.sk-ui p { margin: 0; }
.sk-ui a { color: inherit; text-decoration: underline; text-underline-offset: .15em; }
.sk-ui h2 { margin: 0; font-size: 1.15em; line-height: 1.3; font-weight: 700; color: inherit; }
.sk-ui h2:focus { outline: none; }
.sk-ui h2:focus-visible { outline: 2px solid var(--sk-a); outline-offset: 2px; }
.sk-ui button, .sk-ui input, .sk-ui select { font: inherit; color: inherit; }
.sk-ui a:focus-visible, .sk-ui button:focus-visible, .sk-ui select:focus-visible { outline: 2px solid var(--sk-a); outline-offset: 2px; }

.sk-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin: 0; padding: .4em 1.1em;
  border: 2px solid var(--sk-a); border-radius: calc(var(--sk-r) * .8); background: var(--sk-a); color: var(--sk-at) !important;
  font-weight: 600; line-height: 1.2; cursor: pointer; text-align: center;
}
.sk-btn.sk-quiet { background: transparent; color: var(--sk-t) !important; }
.sk-btn:hover { filter: brightness(1.08); }
.sk-link { margin: 0; padding: 0; border: 0; background: none; text-decoration: underline; text-underline-offset: .15em; cursor: pointer; min-height: 24px; }

/* The bar: docked at the bottom, no backdrop, no focus trap. site-kit.js keeps the
   body's padding-bottom equal to its height. */
.sk-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 2147483000; max-height: 50vh; overflow-y: auto;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--sk-b);
  border-top: 1px solid var(--sk-l); box-shadow: 0 -6px 20px rgba(0, 0, 0, .1);
}
.sk-bar-in { max-width: 1200px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; }
.sk-bar p { flex: 1 1 320px; }
.sk-bar-btns { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 600px) {
  .sk-bar { padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .sk-bar-btns { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .sk-bar .sk-btn { padding: .3em .5em; }
}
/* A short screen (a small phone, a phone held sideways): the compact bar, about 90 to 110px tall, so
   a page's headline and first button show above it. One short line with the policy link and Customize
   as a link, the three choices in one row: where the row is too narrow for them a label breaks between
   its words inside its 44px button. With the text made larger they may wrap to a second row instead.
   The selectors outrank a site's own .sk-bar-btns rules. */
.sk-bar .sk-short { display: none; }
@media (max-height: 640px), (max-width: 480px) and (max-height: 700px) {
  .sk-bar { padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px)); }
  .sk-bar .sk-bar-in { gap: 6px; }
  .sk-bar p { flex: 1 1 100%; }
  .sk-bar .sk-long { display: none; }
  .sk-bar .sk-short { display: inline; }
  .sk-bar .sk-short .sk-link { margin-left: .6em; }
  .sk-bar .sk-bar-btns { display: flex; flex-wrap: nowrap; gap: 6px; width: 100%; }
  .sk-bar .sk-bar-btns .sk-btn { flex: 1 1 auto; padding: .2em .4em; line-height: 1.15; }
  html[data-sk-text] .sk-bar .sk-bar-btns { flex-wrap: wrap; }
}

/* Dialogs: the cookie choices (modal) and the accessibility panel (beside the page). */
.sk-dialog, .sk-panel {
  margin: auto; padding: 0; border: 1px solid var(--sk-l); border-radius: var(--sk-r); background: var(--sk-b); color: var(--sk-t);
  box-shadow: 0 16px 48px rgba(0, 0, 0, .22); overflow-y: auto; overscroll-behavior: contain;
}
.sk-dialog { width: min(560px, calc(100vw - 24px)); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
.sk-dialog::backdrop { background: rgba(0, 0, 0, .45); }
.sk-panel {
  position: fixed; z-index: 2147483001; left: 16px; right: auto; top: auto; margin: 0;
  bottom: calc(76px + var(--sk-bar-h, 0px)); width: min(360px, calc(100vw - 32px));
  max-height: calc(100vh - 92px - var(--sk-bar-h, 0px)); max-height: calc(100dvh - 92px - var(--sk-bar-h, 0px));
}
.sk-in { display: grid; gap: 14px; padding: 18px 20px 20px; }
.sk-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.sk-x { flex: none; width: 44px; height: 44px; margin: -10px -12px -10px 0; padding: 10px; border: 0; border-radius: 50%; background: none; cursor: pointer; }
.sk-x svg { display: block; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.sk-note { padding: 10px 12px; border-left: 3px solid var(--sk-a); background: rgba(127, 127, 127, .1); border-radius: 4px; }
.sk-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.sk-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 0; border-top: 1px solid var(--sk-l); }
.sk-row:first-child { border-top: 0; }
.sk-row-text { display: grid; gap: 2px; min-width: 0; }
.sk-row label { font-weight: 600; cursor: pointer; }
.sk-desc { font-size: .93em; opacity: .85; }
.sk-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.sk-foot { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; font-size: .93em; }

.sk-switch {
  -webkit-appearance: none; appearance: none; position: relative; flex: none; width: 46px; height: 28px; margin: 0;
  border: 0; border-radius: 14px; background: #6b7079; cursor: pointer; transition: background-color .15s;
}
.sk-switch::before {
  content: ""; position: absolute; top: 4px; left: 4px; width: 20px; height: 20px; border-radius: 50%; background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .3); transition: transform .15s;
}
.sk-switch:checked { background: var(--sk-a); }
.sk-switch:checked::before { transform: translateX(18px); }
.sk-switch:disabled { opacity: .6; cursor: not-allowed; }
.sk-switch:focus-visible { outline: 2px solid var(--sk-a); outline-offset: 3px; }

.sk-seg { margin: 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.sk-seg legend { float: left; width: 100%; margin-bottom: 6px; padding: 0; font-weight: 600; }
.sk-field label { display: block; margin-bottom: 6px; font-weight: 600; }
.sk-seg input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.sk-seg label {
  flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: .3em .7em;
  border: 1px solid var(--sk-l); border-radius: calc(var(--sk-r) * .8); cursor: pointer; text-align: center;
}
.sk-seg input:checked + label { background: var(--sk-a); border-color: var(--sk-a); color: var(--sk-at); font-weight: 600; }
.sk-seg input:focus-visible + label { outline: 2px solid var(--sk-a); outline-offset: 2px; }
.sk-field select {
  width: 100%; min-height: 44px; padding: .4em .6em; border: 1px solid var(--sk-l); border-radius: calc(var(--sk-r) * .8);
  background: var(--sk-b); color: var(--sk-t);
}

.sk-ui .sk-fab {
  position: fixed; z-index: 2147483000; left: 16px; bottom: calc(16px + var(--sk-bar-h, 0px)); width: 44px; height: 44px;
  display: grid; place-items: center; margin: 0; padding: 0; border: 2px solid var(--sk-b); border-radius: 50%;
  background: var(--sk-a); color: var(--sk-at); box-shadow: 0 4px 14px rgba(0, 0, 0, .25); cursor: pointer;
}
.sk-ui .sk-fab svg { width: 26px; height: 26px; fill: currentColor; }
.sk-ui .sk-fab:focus-visible { outline: 3px solid var(--sk-t); outline-offset: 2px; }
.sk-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.sk-filters { position: absolute; width: 0; height: 0; overflow: hidden; }

@media (forced-colors: active) {
  .sk-switch { -webkit-appearance: auto; appearance: auto; width: 20px; height: 20px; }
  .sk-switch::before { display: none; }
  .sk-seg input:checked + label { outline: 3px solid Highlight; }
}
@media print { .sk-ui { display: none !important; } html[data-sk-color] { filter: none !important; } }

/* ---- the settings, on <html> ---- */
/* Text size: four steps from the site's own root size. */
html[data-sk-text="1"] { font-size: calc(var(--sk-root, 100%) * 1.25) !important; }
html[data-sk-text="2"] { font-size: calc(var(--sk-root, 100%) * 1.5) !important; }
html[data-sk-text="3"] { font-size: calc(var(--sk-root, 100%) * 2) !important; }
html[data-sk-text] body { overflow-wrap: break-word; }
/* Larger text never pushes a field or a picture past the screen's edge. */
html[data-sk-text] body :is(input, select, textarea, img, video, iframe):not(.sk-ui *) { max-width: 100%; }

/* Line and letter spacing: the WCAG 1.4.12 text spacing values. */
html[data-sk-spacing] body, html[data-sk-spacing] body * { line-height: 1.5 !important; letter-spacing: .12em !important; word-spacing: .16em !important; }

/* Readable font; icon fonts, code and hidden glyphs keep theirs. */
html[data-sk-font] body,
html[data-sk-font] body *:not(i, code, pre, kbd, samp, svg, svg *, [class*="icon"], [class*="material-symbols"], [aria-hidden="true"]) {
  font-family: "Atkinson Hyperlegible", Verdana, Tahoma, sans-serif !important;
}

/* High contrast: one text color on one background; pictures stay. */
html[data-sk-contrast="light"] { --sk-hb: #fff; --sk-ht: #000; --sk-hl: #0033b3; }
html[data-sk-contrast="dark"] { --sk-hb: #000; --sk-ht: #fff; --sk-hl: #ffe14d; }
html[data-sk-contrast], html[data-sk-contrast] body,
html[data-sk-contrast] body *:not(img, video, picture, canvas, iframe, svg, svg *, .sk-ui, .sk-ui *) {
  background-color: var(--sk-hb) !important; color: var(--sk-ht) !important; border-color: var(--sk-ht) !important;
  text-shadow: none !important; box-shadow: none !important;
}
html[data-sk-contrast] body a[href]:not(.sk-ui *), html[data-sk-contrast] body a[href]:not(.sk-ui *) * { color: var(--sk-hl) !important; text-decoration: underline !important; }
html[data-sk-contrast] body :is(button, [role="button"], input, select, textarea):not(.sk-ui *) { box-shadow: inset 0 0 0 2px var(--sk-ht) !important; }
html[data-sk-contrast] body svg:not(.sk-ui *) { color: var(--sk-ht); }
html[data-sk-contrast] .sk-ui { --sk-a: var(--sk-ht); --sk-at: var(--sk-hb); --sk-b: var(--sk-hb); --sk-t: var(--sk-ht); --sk-l: var(--sk-ht); }

/* Color vision: daltonization filters (site-kit.js draws them) and grayscale. A filter on
   <html> leaves fixed elements fixed. */
html[data-sk-color="protanopia"] { filter: url("#sk-protanopia"); }
html[data-sk-color="deuteranopia"] { filter: url("#sk-deuteranopia"); }
html[data-sk-color="tritanopia"] { filter: url("#sk-tritanopia"); }
html[data-sk-color="grayscale"] { filter: grayscale(1); }

/* Reduced motion: every animation jumps to its end and transitions are instant. */
html[data-sk-motion="reduce"], html[data-sk-motion="reduce"] *, html[data-sk-motion="reduce"] *::before, html[data-sk-motion="reduce"] *::after {
  animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important;
  transition-duration: 0s !important; transition-delay: 0s !important; scroll-behavior: auto !important;
}

/* Highlight links. */
html[data-sk-links] body a[href]:not(.sk-ui *), html[data-sk-links] body [role="link"]:not(.sk-ui *) {
  background-color: #fff27a !important; color: #111 !important; text-decoration: underline !important;
  text-decoration-thickness: max(2px, .08em) !important; text-underline-offset: .18em !important;
  outline: 2px solid #111 !important; outline-offset: 1px !important;
}
html[data-sk-links] body a[href]:not(.sk-ui *) *:not(img, svg, svg *) { color: #111 !important; }

/* Stronger focus outline: black ring framed in white, seen on any background. */
html[data-sk-focus] :focus-visible {
  outline: 4px solid #000 !important; outline-offset: 2px !important; box-shadow: 0 0 0 2px #fff, 0 0 0 8px #fff !important;
}
