/* =========================================================
   Jivara Cookie Consent — self-hosted, no third party
   Visual aligned with the official site design tokens.
   ========================================================= */
.jv-cc-banner,
.jv-cc-modal,
.jv-cc-overlay { box-sizing: border-box; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Helvetica Neue', sans-serif; }
.jv-cc-banner *,
.jv-cc-modal * { box-sizing: border-box; }

/* ---------- Banner ---------- */
.jv-cc-banner {
  position: fixed;
  left: 16px; right: 16px; bottom: 16px;
  z-index: 99999;
  max-width: 1100px; margin: 0 auto;
  background: #FFFFFF;
  border: 1px solid #E5E7F2;
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(5, 49, 88, 0.20);
  padding: 20px 24px;
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
  animation: jv-cc-up 0.3s ease;
}
@keyframes jv-cc-up { from { transform: translateY(16px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.jv-cc-banner-text { flex: 1 1 320px; font-size: 14px; line-height: 1.6; color: #475569; }
.jv-cc-banner-text strong { color: #0F172A; display: block; margin-bottom: 4px; font-size: 15px; }
.jv-cc-banner-text a { color: #053158; font-weight: 600; text-decoration: underline; }
.jv-cc-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

/* ---------- Buttons ---------- */
.jv-cc-btn {
  font-family: inherit; cursor: pointer; border: none;
  padding: 11px 20px; font-size: 14px; font-weight: 600;
  border-radius: 999px; transition: all 0.2s; white-space: nowrap;
}
.jv-cc-btn-primary { background: #053158; color: #fff; }
.jv-cc-btn-primary:hover { background: #0A4170; }
.jv-cc-btn-outline { background: #fff; color: #053158; border: 1.5px solid #053158; }
.jv-cc-btn-outline:hover { background: #E6EEF5; }
.jv-cc-btn-text { background: transparent; color: #475569; text-decoration: underline; padding: 11px 8px; }
.jv-cc-btn-text:hover { color: #053158; }

/* ---------- Modal ---------- */
.jv-cc-overlay {
  position: fixed; inset: 0; z-index: 100000;
  background: rgba(10, 14, 39, 0.55);
  display: flex; align-items: center; justify-content: center;
  padding: 20px; animation: jv-cc-fade 0.2s ease;
}
@keyframes jv-cc-fade { from { opacity: 0; } to { opacity: 1; } }
.jv-cc-modal {
  background: #fff; border-radius: 20px;
  width: 100%; max-width: 560px; max-height: 88vh; overflow-y: auto;
  box-shadow: 0 24px 64px rgba(5, 49, 88, 0.30);
}
.jv-cc-modal-head {
  padding: 24px 28px 16px; border-bottom: 1px solid #E5E7F2;
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
}
.jv-cc-modal-head h2 { font-size: 20px; color: #053158; margin: 0; font-family: 'Inter Tight', 'Inter', sans-serif; }
.jv-cc-modal-head p { margin: 6px 0 0; font-size: 13px; color: #475569; line-height: 1.6; }
.jv-cc-close {
  flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%;
  background: #F4F8FC; color: #475569; font-size: 18px; line-height: 1; cursor: pointer; border: none;
}
.jv-cc-close:hover { background: #E6EEF5; color: #053158; }
.jv-cc-modal-body { padding: 8px 28px 4px; }

/* ---------- Category row ---------- */
.jv-cc-cat { padding: 18px 0; border-bottom: 1px solid #F0F2F8; }
.jv-cc-cat:last-child { border-bottom: none; }
.jv-cc-cat-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.jv-cc-cat-title { font-size: 15px; font-weight: 700; color: #0F172A; }
.jv-cc-cat-desc { margin-top: 6px; font-size: 13px; color: #475569; line-height: 1.6; }
.jv-cc-cat-note { margin-top: 4px; font-size: 12px; color: #94A3B8; }

/* ---------- Toggle ---------- */
.jv-cc-switch { position: relative; flex: 0 0 auto; width: 44px; height: 24px; }
.jv-cc-switch input { opacity: 0; width: 0; height: 0; position: absolute; }
.jv-cc-slider {
  position: absolute; inset: 0; cursor: pointer;
  background: #CBD5E1; border-radius: 999px; transition: 0.2s;
}
.jv-cc-slider::before {
  content: ""; position: absolute; height: 18px; width: 18px; left: 3px; top: 3px;
  background: #fff; border-radius: 50%; transition: 0.2s;
}
.jv-cc-switch input:checked + .jv-cc-slider { background: #4FA52A; }
.jv-cc-switch input:checked + .jv-cc-slider::before { transform: translateX(20px); }
.jv-cc-switch input:disabled + .jv-cc-slider { background: #053158; cursor: not-allowed; opacity: 0.55; }

/* ---------- Modal footer ---------- */
.jv-cc-modal-foot {
  padding: 16px 28px 24px; display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end;
  position: sticky; bottom: 0; background: #fff; border-top: 1px solid #F0F2F8;
}

@media (max-width: 560px) {
  .jv-cc-banner { padding: 18px; }
  .jv-cc-actions { width: 100%; }
  .jv-cc-actions .jv-cc-btn { flex: 1 1 auto; text-align: center; }
  .jv-cc-modal-foot { justify-content: stretch; }
  .jv-cc-modal-foot .jv-cc-btn { flex: 1 1 auto; }
}
