/* Klaro presentation only. Consent defaults, storage and callbacks live in JS. */
#klaro {
  --green1: var(--fit-forest); --green2: var(--fit-forest-hover);
  --green3: var(--fit-sage); --blue1: var(--fit-forest);
  --light1: var(--fit-color-text); --light2: var(--fit-color-text-muted);
  --light3: var(--fit-border); --dark1: var(--fit-surface);
  --dark2: var(--fit-border); --dark3: var(--fit-paper);
  --border-radius: var(--fit-radius-lg);
  font-family: inherit; font-size: var(--fit-text-sm); line-height: var(--fit-leading-base);
}
#klaro :is(.cookie-notice,.cookie-modal) { z-index: var(--fit-z-dialog); }
#klaro .cookie-notice:not(.cookie-modal-notice) {
  right: var(--fit-space-5); bottom: var(--fit-space-5); width: calc(100% - 48px); max-width: 470px;
  border: 1px solid var(--fit-border); border-radius: var(--fit-radius-lg);
  background: var(--fit-surface); color: var(--fit-color-text); box-shadow: var(--fit-shadow-float);
  box-sizing: border-box; max-height: 40dvh; overflow: auto;
}
#klaro .cookie-notice:not(.cookie-modal-notice) .cn-body { padding: var(--fit-space-4); background: transparent; }
#klaro .cookie-notice .cn-body p { margin: 0 0 var(--fit-space-3); color: var(--fit-color-text); font-size: var(--fit-text-sm); line-height: var(--fit-leading-base); }
#klaro .cookie-notice .cn-ok { display: grid; grid-template-columns: 1fr; gap: var(--fit-space-2); margin: 0; }
#klaro .cookie-notice .cn-buttons { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--fit-space-2); margin: 0; width: 100%; }
#klaro .cookie-notice .cn-buttons .cm-btn { width: 100%; min-width: 0; }
#klaro .cookie-notice .cn-learn-more { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; color: var(--fit-forest); font-size: var(--fit-text-sm); text-decoration: underline; text-underline-offset: 3px; }
#klaro .cm-btn {
  display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
  min-height: 44px; margin: 0; padding: var(--fit-space-2) var(--fit-space-3);
  border: 1px solid var(--fit-forest); border-radius: var(--fit-radius);
  font: inherit; font-size: var(--fit-text-sm); font-weight: 650; line-height: var(--fit-leading-tight);
  cursor: pointer; white-space: normal; background: var(--fit-surface); color: var(--fit-forest);
}
#klaro .cm-btn:is(.cm-btn-success,.cm-btn-success-var) { background: var(--fit-forest) !important; color: var(--fit-surface); }
#klaro .cm-btn:is(.cm-btn-decline,.cn-decline) { background: var(--fit-surface); color: var(--fit-forest); }
#klaro .cm-btn:hover { background: var(--fit-sage); }
#klaro .cm-btn:is(.cm-btn-success,.cm-btn-success-var):hover { background: var(--fit-forest-hover) !important; }
#klaro :is(a,button,input):focus-visible { outline: 3px solid var(--fit-color-price); outline-offset: 3px; }
#klaro .cm-list-input:focus-visible + .cm-list-label { outline: 3px solid var(--fit-color-price); outline-offset: 3px; }
#klaro :is(.cookie-notice,.cookie-modal) .cm-link { color: var(--fit-forest) !important; }
#klaro .cookie-modal .cm-bg { background: var(--fit-overlay); }
#klaro .cookie-modal .cm-modal.cm-klaro {
  position: fixed; top: 50%; left: 50%; right: auto; bottom: auto; transform: translate(-50%,-50%);
  display: flex; flex-direction: column; width: calc(100% - 48px); max-width: 640px; max-height: 85dvh;
  margin: 0; overflow: hidden; box-sizing: border-box;
  border: 1px solid var(--fit-border); border-radius: var(--fit-radius-lg);
  background: var(--fit-surface); color: var(--fit-color-text); box-shadow: var(--fit-shadow-float);
  font-family: inherit;
}
#klaro .cookie-modal .cm-modal :is(.cm-header,.cm-footer) { flex: 0 0 auto; padding: var(--fit-space-4); border-color: var(--fit-border); }
#klaro .cookie-modal .cm-modal .cm-body { flex: 1 1 auto; min-height: 0; overflow: auto; padding: var(--fit-space-4); }
#klaro .cookie-modal .cm-modal .cm-header h1 { font-size: var(--fit-text-xl); line-height: var(--fit-leading-tight); padding-right: 44px; overflow-wrap: anywhere; }
#klaro .cookie-modal :is(h1,h2,h3,p,li,label) { color: var(--fit-color-text); }
#klaro .cookie-modal :is(p,li,label,.cm-list-title,.cm-list-description) { font-size: var(--fit-text-sm); line-height: var(--fit-leading-base); }
#klaro .cookie-modal a { color: var(--fit-forest); text-decoration: underline; }
#klaro .cookie-modal button.hide { width: 44px; height: 44px; top: var(--fit-space-3); right: var(--fit-space-3); color: var(--fit-forest); }
#klaro .cookie-modal button.hide svg { stroke: var(--fit-forest); }
#klaro .cookie-modal .cm-footer-buttons { display: flex; gap: var(--fit-space-2); }
#klaro .cookie-modal .cm-footer-buttons .cm-btn { flex: 1; min-width: 0; }
#klaro .cookie-modal .cm-list-label .slider { background: var(--fit-color-text-muted); border-radius: var(--fit-radius-pill); }
#klaro .cookie-modal .cm-list-label .slider::before { background: var(--fit-surface); border-radius: var(--fit-radius-pill); }
#klaro .cookie-modal .cm-list-input:checked + .cm-list-label .slider { background: var(--fit-forest); }
#klaro .cookie-modal .cm-modal .cm-footer .cm-powered-by { color: var(--fit-color-text-muted); font-size: var(--fit-text-xs); }
#klaro .cookie-modal .cm-modal .cm-footer .cm-powered-by a { color: var(--fit-color-text-muted); }
@media (max-width: 900px) {
  #klaro .cookie-notice:not(.cookie-modal-notice) { right: var(--fit-space-3); bottom: var(--fit-space-3); width: calc(100% - 24px); }
  #klaro .cookie-modal .cm-modal.cm-klaro { top: auto; left: var(--fit-space-3); right: var(--fit-space-3); bottom: var(--fit-space-3); transform: none; width: auto; max-height: calc(100dvh - 24px); }
}
@media (prefers-reduced-motion: reduce) {
  #klaro *, #klaro *::before { transition: none; animation: none; }
}
