/* ─── COOKIE CONSENT BANNER ─── */
.consent-overlay {
  position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 300;
  display: flex; justify-content: center;
  padding: 16px;
  pointer-events: none;
}
.consent-banner {
  pointer-events: auto;
  width: 100%; max-width: 640px;
  background: #FFFFFF;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.18);
  font-family: 'DM Sans', system-ui, sans-serif;
  color: #1A1A1A;
  transform: translateY(120%);
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.consent-banner.show { transform: translateY(0); }
.consent-body { padding: 18px 20px; }
.consent-title { font-size: 15px; font-weight: 600; margin-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.consent-text { font-size: 13.5px; color: #555; line-height: 1.55; margin-bottom: 14px; }
.consent-text a { color: #E8400C; text-decoration: underline; }
.consent-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.consent-btn {
  font: inherit; cursor: pointer;
  padding: 9px 16px; border-radius: 8px;
  font-size: 13px; font-weight: 500;
  border: 1px solid rgba(0,0,0,0.15); background: #FFFFFF; color: #1A1A1A;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.consent-btn:hover { background: #F7F5F0; border-color: rgba(0,0,0,0.3); }
.consent-btn-primary {
  background: #E8400C; color: white; border-color: #E8400C;
}
.consent-btn-primary:hover { background: #FF5A2A; border-color: #FF5A2A; color: white; }
.consent-btn-link {
  background: transparent; border: none; padding: 9px 6px;
  color: #666; font-size: 13px; cursor: pointer; text-decoration: underline;
}
.consent-btn-link:hover { color: #1A1A1A; }

/* Customize panel — collapsed by default, expands when "Customize" is clicked */
.consent-customize {
  display: none;
  border-top: 1px solid rgba(0,0,0,0.08);
  padding: 14px 20px 4px;
  background: #FAFAF7;
  border-radius: 0 0 14px 14px;
}
.consent-banner.expanded .consent-customize { display: block; }
.consent-row {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 0; border-bottom: 1px solid rgba(0,0,0,0.06);
}
.consent-row:last-child { border-bottom: none; }
.consent-row-text { flex: 1; }
.consent-row-name { font-size: 13px; font-weight: 600; }
.consent-row-desc { font-size: 12px; color: #777; line-height: 1.45; margin-top: 2px; }
.consent-toggle {
  position: relative;
  width: 38px; height: 22px; flex-shrink: 0;
  background: #ccc; border-radius: 22px; cursor: pointer;
  transition: background 0.2s;
}
.consent-toggle.required { background: #999; cursor: not-allowed; opacity: 0.7; }
.consent-toggle.on { background: #E8400C; }
.consent-toggle::after {
  content: ''; position: absolute;
  top: 3px; left: 3px;
  width: 16px; height: 16px;
  background: white; border-radius: 50%;
  transition: transform 0.2s;
}
.consent-toggle.on::after { transform: translateX(16px); }

/* Floating "Cookie settings" reopener (added by consent.js when consent has been recorded) */
.consent-reopen {
  position: fixed; bottom: 14px; left: 14px;
  z-index: 150;
  background: rgba(0,0,0,0.7); color: white;
  padding: 6px 12px; border-radius: 20px;
  font-size: 11px; font-family: 'DM Sans', system-ui, sans-serif;
  cursor: pointer; border: none;
  opacity: 0; transition: opacity 0.2s;
}
.consent-reopen:hover { opacity: 1 !important; background: #1A1A1A; }
body:hover .consent-reopen { opacity: 0.5; }

@media (max-width: 600px) {
  .consent-overlay { padding: 8px; }
  .consent-banner { border-radius: 12px; }
  .consent-body { padding: 14px 16px; }
  .consent-actions { flex-direction: column; }
  .consent-btn { width: 100%; justify-content: center; }
}
