/* ============================================================================
   ListingShield — Cookie Consent  (POPIA / CCPA)
   Shared stylesheet used across every page. Prefix: lsc-
   Pairs with consent.js (which injects the markup + logic).
============================================================================ */
.lsc-banner {
  position: fixed;
  left: 16px; right: 16px; bottom: 16px;
  z-index: 100000;
  max-width: 920px;
  margin: 0 auto;
  background: #ffffff;
  color: #0a0f1e;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  box-shadow: 0 20px 60px -12px rgba(10,15,30,0.35);
  padding: 22px 24px;
  display: none;
  flex-direction: column;
  gap: 16px;
  font-family: 'Inter', sans-serif;
  animation: lsc-slide-up 0.4s ease both;
}
.lsc-banner.lsc-visible { display: flex; }
@keyframes lsc-slide-up {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
.lsc-banner h2 { font-size: 16px; font-weight: 600; margin: 0 0 6px; letter-spacing: -0.2px; }
.lsc-banner p { font-size: 13.5px; line-height: 1.6; color: #374151; margin: 0; }
.lsc-banner p a { color: #2563EB; text-decoration: underline; }
.lsc-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.lsc-btn {
  font-family: 'Inter', sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  border-radius: 9px;
  padding: 11px 18px;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  line-height: 1;
}
.lsc-btn:focus-visible { outline: 3px solid rgba(37,99,235,0.45); outline-offset: 2px; }
.lsc-btn-primary { background: #2563EB; color: #fff; }
.lsc-btn-primary:hover { background: #1D4ED8; }
.lsc-btn-secondary { background: #fff; color: #0a0f1e; border-color: #D1D5DB; }
.lsc-btn-secondary:hover { background: #F3F4F6; }
.lsc-btn-ghost { background: transparent; color: #374151; border-color: transparent; text-decoration: underline; padding-left: 6px; padding-right: 6px; }
.lsc-btn-ghost:hover { color: #0a0f1e; }
.lsc-actions-spacer { flex: 1 1 auto; }

/* Preferences modal */
.lsc-overlay {
  position: fixed; inset: 0;
  z-index: 100001;
  background: rgba(10,15,30,0.55);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: lsc-fade 0.25s ease both;
}
.lsc-overlay.lsc-visible { display: flex; }
@keyframes lsc-fade { from { opacity: 0; } to { opacity: 1; } }
.lsc-modal {
  background: #fff;
  color: #0a0f1e;
  width: 100%;
  max-width: 560px;
  max-height: 88vh;
  overflow-y: auto;
  border-radius: 16px;
  padding: 28px;
  font-family: 'Inter', sans-serif;
  box-shadow: 0 30px 80px -10px rgba(10,15,30,0.5);
}
.lsc-modal h2 { font-size: 20px; font-weight: 600; margin: 0 0 6px; letter-spacing: -0.3px; }
.lsc-modal-intro { font-size: 13.5px; color: #374151; line-height: 1.6; margin: 0 0 20px; }
.lsc-cat { border: 1px solid #E5E7EB; border-radius: 12px; padding: 16px 18px; margin-bottom: 12px; }
.lsc-cat-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.lsc-cat-title { font-size: 14.5px; font-weight: 600; }
.lsc-cat-desc { font-size: 12.5px; color: #6B7280; line-height: 1.55; margin-top: 8px; }
.lsc-cat-locked { font-size: 12px; font-weight: 600; color: #2563EB; }

/* Toggle switch */
.lsc-switch { position: relative; display: inline-block; width: 44px; height: 26px; flex-shrink: 0; }
.lsc-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.lsc-slider { position: absolute; inset: 0; background: #D1D5DB; border-radius: 999px; transition: background 0.2s ease; pointer-events: none; }
.lsc-slider::before {
  content: ''; position: absolute;
  width: 20px; height: 20px; left: 3px; top: 3px;
  background: #fff; border-radius: 50%;
  transition: transform 0.2s ease;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.lsc-switch input:checked + .lsc-slider { background: #2563EB; }
.lsc-switch input:checked + .lsc-slider::before { transform: translateX(18px); }
.lsc-switch input:focus-visible + .lsc-slider { outline: 3px solid rgba(37,99,235,0.45); outline-offset: 2px; }
.lsc-switch input:disabled + .lsc-slider { background: #93C5FD; cursor: not-allowed; }
.lsc-modal-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }

/* Fixed "Cookie settings" reopen link — injected only on pages with no
   footer link of their own, so there is always a visible way to reopen. */
.lsc-settings-fab {
  position: fixed;
  left: 16px; bottom: 16px;
  z-index: 99999;
  background: #ffffff;
  color: #374151;
  border: 1px solid #E5E7EB;
  border-radius: 999px;
  padding: 8px 14px;
  font-family: 'Inter', sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 6px 20px -6px rgba(10,15,30,0.3);
}
.lsc-settings-fab:hover { color: #0a0f1e; border-color: #D1D5DB; }
.lsc-settings-fab:focus-visible { outline: 3px solid rgba(37,99,235,0.45); outline-offset: 2px; }

@media (max-width: 600px) {
  .lsc-banner { left: 10px; right: 10px; bottom: 10px; padding: 18px 18px; }
  .lsc-actions { flex-direction: column; align-items: stretch; }
  .lsc-actions-spacer { display: none; }
  .lsc-btn { width: 100%; text-align: center; }
  .lsc-modal { padding: 22px 18px; }
  .lsc-modal-actions .lsc-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .lsc-banner, .lsc-overlay { animation: none; }
  .lsc-slider, .lsc-slider::before { transition: none; }
}
