/* ── Vima Cookie Consent Banner ── v1.0.0 ── */
/* Tokens on :root so banner, modal (siblings), and DevTools inheritance all see the same values. */
:root {
  --vima-bg:                  #ffffff;
  --vima-border:              #ddd9d0;
  --vima-text:                #2c3e50;
  --vima-muted:               #6b7a8d;
  --vima-accent:              #1a4a7a;
  --vima-accent-hover:        #0f3560;
  --vima-btn-secondary-bg:    #f0ece4;
  --vima-btn-secondary-hover: #e4dfd5;
  --vima-shadow:              0 -2px 24px rgba(0,0,0,.08), 0 -1px 4px rgba(0,0,0,.04);
  --vima-radius:              6px;
}

#vima-cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 99999;
  background: var(--vima-bg);
  border-top: 1px solid var(--vima-border);
  box-shadow: var(--vima-shadow);
  padding: 20px 28px;
  transform: translateY(100%);
  opacity: 0;
  transition: transform .4s cubic-bezier(.22,1,.36,1), opacity .4s ease;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  box-sizing: border-box;
}

#vima-cookie-banner.vima-visible {
  transform: translateY(0);
  opacity: 1;
}

.vima-cookie-inner {
  max-width: 1140px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}

.vima-cookie-mark {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  background: var(--vima-accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.vima-cookie-mark svg {
  width: 18px;
  height: 18px;
  stroke: #fff;
}

.vima-cookie-text {
  flex: 1;
  min-width: 240px;
}

.vima-cookie-text p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--vima-text);
}

.vima-cookie-text a {
  color: var(--vima-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.vima-cookie-text a:hover { color: var(--vima-accent-hover); }

.vima-cookie-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
}

/* ── Buttons ── */
.vima-btn {
  display: inline-flex;
  align-items: center;
  padding: 9px 20px;
  border-radius: var(--vima-radius);
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .02em;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background .18s ease, border-color .18s ease, color .18s ease;
  white-space: nowrap;
  line-height: 1;
}

.vima-btn-accept {
  background: var(--vima-accent);
  color: #fff;
  border-color: var(--vima-accent);
}
.vima-btn-accept:hover {
  background: var(--vima-accent-hover);
  border-color: var(--vima-accent-hover);
  color: #fff;
}

.vima-btn-decline {
  background: var(--vima-btn-secondary-bg);
  color: var(--vima-text);
  border-color: var(--vima-border);
}
.vima-btn-decline:hover { background: var(--vima-btn-secondary-hover); }

.vima-btn-manage {
  background: transparent;
  color: var(--vima-muted);
  border-color: transparent;
  padding: 9px 12px;
  font-weight: 400;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.vima-btn-manage:hover { color: var(--vima-accent); }

/* ── Modal Overlay ── */
#vima-cookie-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999999;
  background: rgba(20,30,45,.55);
  backdrop-filter: blur(3px);
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
}

#vima-cookie-modal.vima-modal-open {
  display: flex !important;
}

.vima-modal-box {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 20px 60px rgba(0,0,0,.2);
  max-width: 520px;
  width: 100%;
  overflow: hidden;
  animation: vima-modal-in .3s cubic-bezier(.22,1,.36,1);
}

@keyframes vima-modal-in {
  from { transform: translateY(20px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

.vima-modal-header {
  padding: 22px 24px 16px;
  border-bottom: 1px solid var(--vima-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.vima-modal-header h2 {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--vima-text);
  letter-spacing: .01em;
}

.vima-modal-close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--vima-muted);
  font-size: 20px;
  line-height: 1;
  padding: 2px 6px;
  border-radius: 4px;
  font-family: inherit;
}
.vima-modal-close:hover { background: #f0ece4; color: var(--vima-text); }

.vima-modal-body { padding: 20px 24px; }

.vima-modal-body > p {
  margin: 0 0 16px;
  font-size: 13px;
  color: var(--vima-muted);
  line-height: 1.6;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.vima-pref-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid #f0ece4;
}
.vima-pref-row:last-child { border-bottom: none; }

.vima-pref-info strong {
  display: block;
  font-size: 13.5px;
  color: var(--vima-text);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-weight: 600;
  margin-bottom: 3px;
}

.vima-pref-info span {
  font-size: 12px;
  color: var(--vima-muted);
  line-height: 1.5;
  display: block;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ── Toggle Switch ── */
.vima-toggle {
  position: relative;
  flex-shrink: 0;
  width: 40px;
  height: 22px;
  margin-top: 2px;
}

.vima-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}

.vima-toggle-slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: #d1d5db;
  border-radius: 22px;
  transition: background .2s ease;
}

.vima-toggle-slider::before {
  content: '';
  position: absolute;
  height: 16px;
  width: 16px;
  left: 3px;
  top: 3px;
  background: white;
  border-radius: 50%;
  transition: transform .2s ease;
  box-shadow: 0 1px 3px rgba(0,0,0,.15);
}

.vima-toggle input:checked + .vima-toggle-slider { background: var(--vima-accent); }
.vima-toggle input:checked + .vima-toggle-slider::before { transform: translateX(18px); }
.vima-toggle input:disabled + .vima-toggle-slider { opacity: .5; cursor: not-allowed; }

/* ── Modal Footer ── */
.vima-modal-footer {
  padding: 16px 24px;
  background: #faf9f7;
  border-top: 1px solid var(--vima-border);
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

/* ── Responsive ── */
@media (max-width: 640px) {
  #vima-cookie-banner { padding: 16px 18px; }
  .vima-cookie-inner  { gap: 16px; }
  .vima-cookie-mark   { display: none; }
  .vima-cookie-actions { width: 100%; }
  .vima-btn-accept,
  .vima-btn-decline { flex: 1; justify-content: center; }
}
