/* Cookie consent (CookieConsent v3) themed to the site. Tokens only.
   Load after assets/vendor/cookieconsent/cookieconsent.css. The bar is a night band across the foot of the screen;
   the settings panel is a white sheet with heavy rules, like the rest of the site. */
#cc-main {
  --cc-font-family: var(--f-text);
  --cc-modal-border-radius: var(--primitive-radius-none);
  --cc-btn-border-radius: var(--primitive-radius-none);
  --cc-pm-toggle-border-radius: var(--primitive-radius-none);
  --cc-modal-margin: 0;
  --cc-z-index: 50;
  --cc-bg: var(--color-background);
  --cc-primary-color: var(--color-foreground);
  --cc-secondary-color: var(--color-muted-foreground);
  --cc-link-color: var(--color-foreground);
  --cc-btn-primary-bg: var(--button-bg);
  --cc-btn-primary-color: var(--button-fg);
  --cc-btn-primary-border-color: var(--button-bg);
  --cc-btn-primary-hover-bg: var(--button-hover-bg);
  --cc-btn-primary-hover-color: var(--button-fg);
  --cc-btn-primary-hover-border-color: var(--button-hover-bg);
  --cc-btn-secondary-bg: var(--color-surface);
  --cc-btn-secondary-color: var(--color-foreground);
  --cc-btn-secondary-border-color: var(--color-surface);
  --cc-btn-secondary-hover-bg: var(--color-surface-strong);
  --cc-btn-secondary-hover-color: var(--color-foreground);
  --cc-btn-secondary-hover-border-color: var(--color-surface-strong);
  --cc-separator-border-color: var(--color-surface-strong);
  --cc-toggle-on-bg: var(--color-accent);
  --cc-toggle-off-bg: var(--primitive-color-ink-300);
  --cc-toggle-on-knob-bg: var(--color-background);
  --cc-toggle-off-knob-bg: var(--color-background);
  --cc-toggle-enabled-icon-color: var(--color-foreground);
  --cc-toggle-disabled-icon-color: var(--color-background);
  --cc-toggle-readonly-bg: var(--color-surface-strong);
  --cc-toggle-readonly-knob-bg: var(--color-background);
  --cc-toggle-readonly-knob-icon-color: var(--color-muted-foreground);
  --cc-section-category-border: var(--color-surface-strong);
  --cc-cookie-category-block-bg: var(--color-surface);
  --cc-cookie-category-block-border: var(--color-surface);
  --cc-cookie-category-block-hover-bg: var(--color-surface-strong);
  --cc-cookie-category-block-hover-border: var(--color-surface-strong);
  --cc-cookie-category-expanded-block-bg: var(--color-surface);
  --cc-cookie-category-expanded-block-hover-bg: var(--color-surface-strong);
  --cc-overlay-bg: rgba(0, 0, 0, .62);
  --cc-footer-bg: var(--color-surface);
  --cc-footer-color: var(--color-muted-foreground);
  --cc-footer-border-color: var(--color-surface);
  --cc-webkit-scrollbar-bg: var(--color-surface-strong);
  --cc-webkit-scrollbar-hover-bg: var(--primitive-color-ink-500);
}
#cc-main :focus-visible { outline: 3px solid var(--color-ring); outline-offset: 3px; }
#cc-main a { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; background: none; }
#cc-main a:hover { color: var(--color-accent-text); }

/* The bar: black, the full width, words left and three equal buttons right */
#cc-main .cm.cm--bar { background: var(--color-night); color: var(--color-on-night); border-top: var(--figure-rule) solid var(--color-accent); box-shadow: none; max-width: none; width: 100%; }
#cc-main .cm--bar .cm__body { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--primitive-spacing-6) var(--spacing-gutter); max-width: 1600px !important; margin: 0 auto; padding: var(--primitive-spacing-6) var(--margin-r) var(--primitive-spacing-6) var(--margin) !important; }
#cc-main .cm--bar .cm__texts { padding: 0 !important; gap: var(--primitive-spacing-2); }
#cc-main .cm__title { font-family: var(--f-display); font-weight: 600; font-size: var(--primitive-fontSize-lead); line-height: 1.15; letter-spacing: -0.02em; color: var(--color-on-night); padding: 0 !important; }
#cc-main .cm__desc { font-size: var(--primitive-fontSize-body); line-height: 1.55; color: var(--color-on-night-muted); max-width: 64ch; padding: 0 !important; margin: 0; }
#cc-main .cm--bar a, #cc-main .cm--bar a:hover { color: var(--color-on-night); }
#cc-main .cm--bar .cm__btns { display: flex !important; flex-direction: row !important; flex-wrap: nowrap; max-width: none !important; padding: 0 !important; border: 0 !important; gap: var(--primitive-spacing-2); }
#cc-main .cm--bar .cm__btn-group { display: flex !important; flex-direction: row !important; gap: var(--primitive-spacing-2); padding: 0; }
#cc-main .cm--bar .cm__btn { min-width: 8.5rem; margin: 0 !important; }
#cc-main .cm--bar .cm__btns > * { margin: 0 !important; align-self: stretch; }
#cc-main .pm:focus, #cc-main .pm:focus-visible, #cc-main .cm:focus, #cc-main .cm:focus-visible, #cc-main [tabindex="-1"]:focus { outline: none; }
#cc-main .cm__btn, #cc-main .pm__btn { min-height: var(--button-height); padding: 0 var(--button-padding-x); font: 600 var(--primitive-fontSize-small) / 1 var(--f-text); border-width: 0; transition: background-color var(--primitive-motion-fast) ease; }
/* Reject is the same size as Accept (equal weight); Choose is the quietest */
#cc-main .cm__btn[data-role="necessary"], #cc-main .pm__btn[data-role="necessary"] { background: var(--color-on-night); color: var(--color-foreground); }
#cc-main .pm__btn[data-role="necessary"] { background: var(--color-foreground); color: var(--color-on-night); }
#cc-main .cm__btn[data-role="necessary"]:hover { background: var(--color-surface-strong); }
#cc-main .pm__btn[data-role="necessary"]:hover { background: var(--primitive-color-ink-700); }
#cc-main .cm--bar .cm__btn--secondary { background: var(--primitive-color-ink-700); color: var(--color-on-night); }
#cc-main .cm--bar .cm__btn--secondary:hover { background: var(--primitive-color-ink-500); color: var(--color-on-night); }

/* Settings panel */
#cc-main .pm { border-top: var(--figure-rule) solid var(--color-accent); box-shadow: none; }
#cc-main .pm__header { border-bottom: 0; }
#cc-main .pm__footer { border-top: 0; }
/* Square switches without icons: grey off, orange on, a white square knob */
#cc-main .toggle__icon-on, #cc-main .toggle__icon-off { display: none !important; }
#cc-main .toggle__icon { box-shadow: none !important; }
#cc-main .toggle__icon-circle { border-radius: var(--primitive-radius-none) !important; box-shadow: none !important; }
#cc-main .pm__title { font-family: var(--f-display); font-weight: 600; font-size: var(--primitive-fontSize-lead); letter-spacing: -0.02em; }
#cc-main .pm__section-title { font-family: var(--f-display); font-weight: 600; font-size: var(--primitive-fontSize-body); letter-spacing: -0.01em; }
#cc-main .pm__section-desc { font-size: var(--primitive-fontSize-small); line-height: 1.55; color: var(--color-muted-foreground); }
#cc-main .pm__section--toggle, #cc-main .pm__section-title { border-radius: var(--primitive-radius-none); }
#cc-main .pm__close-btn { border-radius: var(--primitive-radius-none); background: var(--color-surface); border: 0; }
#cc-main .pm__close-btn:hover { background: var(--color-surface-strong); }

/* Footer link that reopens the settings */
.foot nav button.cc-open { display: inline-flex; min-height: 36px; align-items: center; padding: 0; background: none; border: 0; color: inherit; font: inherit; cursor: pointer; white-space: nowrap; }
.foot nav button.cc-open:hover { text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 1000px) {
  #cc-main .cm--bar .cm__body { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  #cc-main .cm--bar .cm__body { padding-block: var(--primitive-spacing-4) !important; gap: var(--primitive-spacing-4); }
  #cc-main .cm__desc { font-size: var(--primitive-fontSize-small); }
  #cc-main .cm--bar .cm__btns, #cc-main .cm--bar .cm__btn-group { display: grid !important; grid-template-columns: 1fr 1fr; width: 100%; }
  #cc-main .cm--bar .cm__btns { grid-template-columns: 1fr; }
  #cc-main .cm--bar .cm__btn { min-width: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  #cc-main .cm, #cc-main .pm { transition: none !important; }
}
