/* 22 Vision Cookie Notice — accept-only notice card.
   Self-contained: every rule is anchored to #tvcn and the visual essentials are !important, so theme and
   Elementor styles for buttons, paragraphs and links cannot change how the card looks from one site to the next. */

#tvcn {
  --tvcn-font: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --tvcn-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --tvcn-bg: #000;
  --tvcn-fg: #fff;
  --tvcn-fg-2: rgba(255, 255, 255, .72);
  --tvcn-line: rgba(255, 255, 255, .14);
  --tvcn-btn-bg: #fff;
  --tvcn-btn-fg: #000;
  --tvcn-meta: #A8ADA9;
  --tvcn-hover: #e2e3e1;      /* button hover: black & white by default; a brand hex set in Settings overrides these */
  --tvcn-hover-fg: #0f1110;
  --tvcn-link-hover: #fff;
  --tvcn-ring: #fff;
  --tvcn-shadow: 0 24px 60px rgba(0, 0, 0, .45);
  all: initial;
  position: fixed !important;
  z-index: 2147483000 !important;
  left: max(16px, env(safe-area-inset-left, 0px)) !important;
  right: max(16px, env(safe-area-inset-right, 0px)) !important;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  top: auto !important;
  display: block !important;
  box-sizing: border-box !important;
  width: auto !important;
  max-width: 420px !important;
  margin: 0 !important;
  padding: 20px 22px 18px !important;
  background: var(--tvcn-bg) !important;
  color: var(--tvcn-fg) !important;
  border: 1px solid var(--tvcn-line) !important;
  border-radius: 18px !important;
  box-shadow: var(--tvcn-shadow) !important;
  font-family: var(--tvcn-font) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-align: left !important;
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition: opacity .5s cubic-bezier(.22, 1, .36, 1), transform .5s cubic-bezier(.22, 1, .36, 1);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
#tvcn *, #tvcn *::before, #tvcn *::after { box-sizing: border-box !important; }
#tvcn.is-visible { opacity: 1; transform: none; }

/* theme */
#tvcn.tvcn--light {
  --tvcn-bg: #fff;
  --tvcn-fg: #0f1110;
  --tvcn-fg-2: rgba(15, 17, 16, .72);
  --tvcn-line: rgba(0, 0, 0, .1);
  --tvcn-btn-bg: #0f1110;
  --tvcn-btn-fg: #fff;
  --tvcn-meta: #6B706C;
  --tvcn-hover: #2a2d2b;
  --tvcn-hover-fg: #fff;
  --tvcn-link-hover: #0f1110;
  --tvcn-ring: #0f1110;
  --tvcn-shadow: 0 24px 60px rgba(0, 0, 0, .18);
}
@media (prefers-color-scheme: light) {
  #tvcn.tvcn--auto {
    --tvcn-bg: #fff;
    --tvcn-fg: #0f1110;
    --tvcn-fg-2: rgba(15, 17, 16, .72);
    --tvcn-line: rgba(0, 0, 0, .1);
    --tvcn-btn-bg: #0f1110;
    --tvcn-btn-fg: #fff;
    --tvcn-meta: #6B706C;
    --tvcn-hover: #2a2d2b;
    --tvcn-hover-fg: #fff;
    --tvcn-link-hover: #0f1110;
    --tvcn-ring: #0f1110;
    --tvcn-shadow: 0 24px 60px rgba(0, 0, 0, .18);
  }
}

/* position */
#tvcn.tvcn--right { left: auto !important; }
#tvcn.tvcn--center { left: 50% !important; right: auto !important; width: calc(100% - 32px) !important; transform: translate3d(-50%, 20px, 0); }
#tvcn.tvcn--center.is-visible { transform: translate3d(-50%, 0, 0); }
#tvcn.tvcn--bar { max-width: none !important; border-radius: 14px !important; }

/* content */
#tvcn .tvcn-body { display: block !important; margin: 0 !important; padding: 0 !important; }
#tvcn .tvcn-title, #tvcn .tvcn-text, #tvcn .tvcn-meta {
  display: block !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important;
  font-family: var(--tvcn-font) !important; letter-spacing: 0 !important; text-transform: none !important; text-align: left !important; text-shadow: none !important;
}
#tvcn .tvcn-title { font-size: 15px !important; font-weight: 600 !important; letter-spacing: -.01em !important; line-height: 1.3 !important; color: var(--tvcn-fg) !important; margin-bottom: 6px !important; }
#tvcn .tvcn-text { font-size: 13.5px !important; font-weight: 400 !important; line-height: 1.55 !important; color: var(--tvcn-fg-2) !important; }
#tvcn .tvcn-text + .tvcn-text { margin-top: 6px !important; }
#tvcn .tvcn-text a { color: var(--tvcn-fg) !important; background: none !important; border: 0 !important; font: inherit !important; text-decoration: underline !important; text-underline-offset: 2px !important; box-shadow: none !important; }
#tvcn .tvcn-text a:hover { color: var(--tvcn-link-hover) !important; }
#tvcn .tvcn-row { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 16px !important; margin: 16px 0 0 !important; padding: 0 !important; }
#tvcn .tvcn-btn {
  all: unset;
  display: inline-block !important; box-sizing: border-box !important; width: auto !important; min-height: 42px !important; margin: 0 !important; padding: 10px 24px !important;
  background: var(--tvcn-btn-bg) !important; color: var(--tvcn-btn-fg) !important;
  border: 0 !important; border-radius: 999px !important; box-shadow: none !important; outline: none;
  font-family: var(--tvcn-font) !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: -.01em !important; line-height: 1.2 !important;
  text-transform: none !important; text-decoration: none !important; text-align: center !important; text-shadow: none !important; white-space: nowrap !important;
  cursor: pointer !important; -webkit-appearance: none !important; appearance: none !important; touch-action: manipulation; -webkit-tap-highlight-color: transparent;
  transition: background .25s, color .25s, transform .25s !important;
}
#tvcn .tvcn-btn:hover { background: var(--tvcn-hover) !important; color: var(--tvcn-hover-fg) !important; }
#tvcn .tvcn-btn:active { transform: scale(.98) !important; }
#tvcn .tvcn-btn:focus-visible { outline: 2px solid var(--tvcn-ring) !important; outline-offset: 3px !important; }
#tvcn .tvcn-meta {
  font-family: var(--tvcn-mono) !important; font-size: 10.5px !important; font-weight: 500 !important; letter-spacing: .08em !important; text-transform: uppercase !important; line-height: 1.4 !important; color: var(--tvcn-meta) !important;
}
#tvcn .tvcn-meta a { color: inherit !important; background: none !important; border: 0 !important; font: inherit !important; letter-spacing: inherit !important; text-transform: inherit !important; text-decoration: none !important; box-shadow: none !important; }
#tvcn .tvcn-meta a:hover, #tvcn .tvcn-meta a:focus-visible { color: var(--tvcn-link-hover) !important; outline: none !important; }

#tvcn[hidden], #tvcn [hidden] { display: none !important; }

/* bar layout on wide screens: text left, button right */
@media (min-width: 760px) {
  #tvcn.tvcn--bar { display: flex !important; align-items: center !important; gap: 28px !important; padding: 18px 24px !important; }
  #tvcn.tvcn--bar .tvcn-body { flex: 1 1 auto !important; min-width: 0 !important; }
  #tvcn.tvcn--bar .tvcn-row { margin: 0 !important; flex: 0 0 auto !important; flex-direction: row-reverse !important; gap: 20px !important; }
}
@media (max-width: 480px) {
  #tvcn { max-width: none !important; padding: 18px 18px 16px !important; }
  #tvcn.tvcn--right { left: max(16px, env(safe-area-inset-left, 0px)) !important; }
}
@media (prefers-reduced-motion: reduce) {
  #tvcn { transition: none; }
}
