/* Privacy and cookie card: a white floating card with the explanation on the left and three stacked choices on the right.
   Strictly necessary cookies are always on; the only optional thing is cookie-free visit statistics. */
#cookieNotice.cookie-notice {
  position: fixed; left: 32px; bottom: 32px; right: auto; top: auto; inset-inline-end: auto;
  box-sizing: border-box; width: min(710px, calc(100vw - 64px)); max-width: none; margin: 0;
  padding: 32px; border: 0; border-radius: 10px;
  background: #fff; color: #6d6e70; box-shadow: 0 0 15px rgba(0, 0, 0, .3); z-index: 700;
  max-height: calc(100vh - 64px); overflow-y: auto;
  transform: translateY(14px); opacity: 0; visibility: hidden;
  transition: transform .22s ease, opacity .22s ease, visibility 0s linear .22s;
}
#cookieNotice.cookie-notice.show { transform: none; opacity: 1; visibility: visible; transition: transform .22s ease, opacity .22s ease, visibility 0s; }
#cookieNotice .cookie-notice-inner { display: grid; grid-template-columns: minmax(0, 1fr) 190px; align-items: start; gap: 48px; margin: 0; max-width: none; }
#cookieNotice h2 { font: 700 18px/1.4 var(--vi-font-body, sans-serif); color: #5b5c5e; margin: 0 0 16px; letter-spacing: 0; }
#cookieNotice h2 { font-family: var(--vi-font-body, sans-serif) !important; font-weight: 700 !important; }
#cookieNotice p { min-width: 0; margin: 0; font-size: 16px; line-height: 24px; color: #6d6e70; }
#cookieNotice p a { color: var(--orange, #7c3aed) !important; text-decoration: none; }
#cookieNotice p a:hover { text-decoration: underline; text-underline-offset: 3px; }
#cookieNotice .cookie-notice-actions { display: grid; gap: 12px; align-content: start; }
#cookieNotice .cookie-notice-actions > button {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 34px; padding: 0 10px; margin: 0;
  font: 700 12px/1 var(--vi-font-body, sans-serif); letter-spacing: .12px; text-transform: uppercase; text-decoration: none;
  color: #fff; background: var(--orange, #7c3aed); border: .8px solid var(--orange-dark, #5c1fa6); border-radius: 5px; cursor: pointer;
  transition: background-color .15s ease;
}
#cookieNotice .cookie-notice-actions > button:hover { background: var(--orange-dark, #5c1fa6); }
#cookieNotice .cookie-notice-close {
  position: absolute; top: 12px; right: 14px; display: grid; place-items: center; width: 32px; height: 32px; padding: 0;
  border: 0; border-radius: 4px; background: transparent; color: #5b5c5e; font: 400 28px/1 var(--vi-font-body, sans-serif); cursor: pointer;
}
#cookieNotice .cookie-notice-close:hover { background: rgba(0, 0, 0, .06); }
#cookieNotice :is(button, a):focus-visible { outline: 3px solid #2baae1; outline-offset: 2px; }

/* Manage preferences: two plain rows. */
#cookieNotice .cookie-prefs { margin-top: 20px; border-top: 1px solid #dfe1e1; }
#cookieNotice .cookie-prefs[hidden] { display: none; }
#cookieNotice .cookie-pref { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid #dfe1e1; }
#cookieNotice .cookie-pref strong { font-size: 15px; font-weight: 700; color: #5b5c5e; }
#cookieNotice .cookie-pref p { grid-column: 1 / -1; font-size: 14px; line-height: 20px; }
#cookieNotice .cookie-always { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--orange, #7c3aed); }
#cookieNotice .cookie-switch { position: relative; display: inline-block; width: 44px; height: 24px; }
#cookieNotice .cookie-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
#cookieNotice .cookie-switch span { position: absolute; inset: 0; border-radius: 12px; background: #c9cccd; transition: background-color .15s ease; pointer-events: none; }
#cookieNotice .cookie-switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: transform .15s ease; }
#cookieNotice .cookie-switch input:checked + span { background: var(--orange, #7c3aed); }
#cookieNotice .cookie-switch input:checked + span::after { transform: translateX(20px); }
#cookieNotice .cookie-switch input:focus-visible + span { outline: 3px solid #2baae1; outline-offset: 2px; }

[data-theme="dark"] #cookieNotice.cookie-notice { background: #1b1d23; color: #c5c8d0; box-shadow: 0 0 15px rgba(0, 0, 0, .6); }
[data-theme="dark"] #cookieNotice h2, [data-theme="dark"] #cookieNotice .cookie-pref strong, [data-theme="dark"] #cookieNotice .cookie-notice-close { color: #f1f2f5; }
[data-theme="dark"] #cookieNotice p { color: #c5c8d0; }
[data-theme="dark"] #cookieNotice p a, [data-theme="dark"] #cookieNotice .cookie-always { color: #c9b3ff !important; }
[data-theme="dark"] #cookieNotice .cookie-prefs, [data-theme="dark"] #cookieNotice .cookie-pref { border-color: #343740; }

body:has(#cookieNotice.show) :is(.cta-dock, .fab-top) { visibility: hidden; }
@media (max-width: 900px) { body:has(#cookieNotice.show) .fab-chat { visibility: hidden; } }
@media (max-width: 700px) {
  #cookieNotice.cookie-notice { left: 16px; right: 16px; bottom: 16px; width: auto; padding: 24px 20px 20px; }
  #cookieNotice .cookie-notice-inner { grid-template-columns: 1fr; gap: 20px; }
  #cookieNotice h2 { padding-right: 30px; margin-bottom: 12px; }
  #cookieNotice p { font-size: 15px; line-height: 22px; }
}
@media (prefers-reduced-motion: reduce) { #cookieNotice.cookie-notice, #cookieNotice .cookie-switch span, #cookieNotice .cookie-switch span::after { transition: none; } }
