/* Safer Charging cookie consent.
   Deliberately not a cookie wall: the ICO's position is that access should not
   be conditional on consent, so the banner sits at the bottom and the page
   stays usable behind it. Accept and Reject carry equal visual weight, which
   the ICO is explicit about — a prominent Accept beside a buried Reject is not
   freely given consent. */

.sc-consent,
.sc-consent * { box-sizing: border-box; }

.sc-consent {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 4000;
  display: none;
  padding: 0 16px calc(16px + env(safe-area-inset-bottom, 0px));
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}
.sc-consent.is-open { display: block; }

.sc-consent-inner {
  max-width: 1080px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #DBE1EC;
  border-radius: 14px;
  box-shadow: 0 -8px 44px rgba(7, 18, 51, 0.22), 0 2px 10px rgba(7, 18, 51, 0.1);
  padding: 22px 24px;
}

.sc-consent-title {
  font-family: 'Enriqueta', Georgia, serif;
  font-size: 17px;
  font-weight: 700;
  color: #0B1B3F;
  margin: 0 0 8px;
}
.sc-consent-body {
  font-size: 14.5px;
  line-height: 1.6;
  color: #3F4A48;
  margin: 0 0 16px;
  max-width: 78ch;
}
.sc-consent-body a {
  color: #C28F1C;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(232, 222, 37, 0.45);
}
.sc-consent-body a:hover { color: #0B1B3F; }

.sc-consent-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* Accept and Reject are the same size, weight and prominence. Only the fill
   differs, and neither reads as the "safe" choice. */
.sc-btn {
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  padding: 13px 22px;
  min-height: 44px;
  border-radius: 8px;
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.sc-btn:active { transform: translateY(1px); }
.sc-btn-accept { background: #E8DE25; color: #0B1B3F; border-color: #E8DE25; }
.sc-btn-accept:hover { background: #F0E94D; border-color: #F0E94D; }
.sc-btn-reject { background: #fff; color: #0B1B3F; border-color: #0B1B3F; }
.sc-btn-reject:hover { background: #EFF2F8; }
.sc-btn-manage {
  background: none;
  color: #3F4A48;
  border-color: transparent;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 13px 8px;
}
.sc-btn-manage:hover { color: #0B1B3F; }

/* Preferences panel */
.sc-consent-panel { display: none; margin-top: 20px; padding-top: 20px; border-top: 1px solid #DBE1EC; }
.sc-consent.is-managing .sc-consent-panel { display: block; }

.sc-cat {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 14px 0;
  border-bottom: 1px solid #EFF2F8;
}
.sc-cat:last-of-type { border-bottom: none; }
.sc-cat-text { flex: 1; min-width: 0; }
.sc-cat-name {
  display: block;
  font-size: 14.5px;
  font-weight: 700;
  color: #0B1B3F;
  margin-bottom: 3px;
}
.sc-cat-desc { font-size: 13.5px; line-height: 1.55; color: #6C7581; margin: 0; }
.sc-cat-status {
  display: inline-block;
  margin-top: 5px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #6C7581;
  background: #EFF2F8;
  border-radius: 100px;
  padding: 3px 9px;
}

/* Switch. A real checkbox underneath so it is keyboard and screen reader native. */
.sc-switch { position: relative; flex: none; width: 50px; height: 28px; margin-top: 2px; }
.sc-switch input {
  position: absolute; inset: 0; width: 100%; height: 100%;
  margin: 0; opacity: 0; cursor: pointer;
}
.sc-switch-track {
  position: absolute; inset: 0;
  background: #C9D2E2; border-radius: 100px;
  transition: background .2s ease; pointer-events: none;
}
.sc-switch-track::after {
  content: ''; position: absolute; top: 3px; left: 3px;
  width: 22px; height: 22px; background: #fff; border-radius: 50%;
  box-shadow: 0 1px 3px rgba(7, 18, 51, 0.3);
  transition: transform .2s ease;
}
.sc-switch input:checked ~ .sc-switch-track { background: #2D9E6C; }
.sc-switch input:checked ~ .sc-switch-track::after { transform: translateX(22px); }
.sc-switch input:disabled { cursor: not-allowed; }
.sc-switch input:disabled ~ .sc-switch-track { background: #2D9E6C; opacity: .45; }
.sc-switch input:focus-visible ~ .sc-switch-track {
  outline: 2px solid #C28F1C; outline-offset: 3px;
}

.sc-consent-panel-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }

.sc-consent button:focus-visible,
.sc-consent a:focus-visible {
  outline: 2px solid #C28F1C;
  outline-offset: 3px;
  border-radius: 6px;
}

@media (max-width: 640px) {
  .sc-consent { padding: 0 10px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .sc-consent-inner { padding: 20px 18px; border-radius: 12px; }
  .sc-consent-actions .sc-btn-accept,
  .sc-consent-actions .sc-btn-reject { flex: 1 1 calc(50% - 5px); }
  .sc-btn-manage { flex: 1 1 100%; text-align: center; }
  .sc-consent-panel-actions .sc-btn { flex: 1 1 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .sc-consent *, .sc-switch-track, .sc-switch-track::after { transition: none !important; }
}
