/* Matches the approved Digitala paper, lilac and hard-shadow vocabulary. */
.consent-banner, .consent-banner *, .consent-banner *::before,
.consent-dialog, .consent-dialog *, .consent-dialog *::before { box-sizing: border-box; }
.consent-banner[hidden], .consent-reload-note[hidden] { display: none; }
.consent-banner, .consent-dialog {
  color: var(--ink, #30233f);
  background: var(--paper, #fffcf8);
  border: 2px solid var(--ink, #30233f);
  border-radius: 15px;
  box-shadow: 6px 6px 0 var(--ink, #30233f);
  font-family: var(--body, Inter, Arial, sans-serif);
  line-height: 1.5;
}
.consent-banner {
  position: fixed;
  z-index: 120;
  bottom: max(20px, env(safe-area-inset-bottom));
  left: 24px;
  right: 30px;
  max-width: 1100px;
  margin-inline: auto;
  padding: 22px 26px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(390px, .85fr);
  gap: 28px;
  align-items: center;
}
.consent-label {
  display: inline-block;
  padding: 3px 9px;
  background: var(--lilac, #bcb0f3);
  border: 1px solid var(--ink, #30233f);
  border-radius: 5px;
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .4px;
  margin-bottom: 10px;
}
.consent-banner h2 { margin: 0 0 7px; font-size: 24px; line-height: 1.15; letter-spacing: -.75px; }
.consent-banner p { margin: 0; font-size: 13px; max-width: 59ch; }
.consent-banner a, .consent-dialog a { text-decoration: underline; text-underline-offset: 3px; }
.consent-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.consent-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 10px;
  min-height: 48px;
  border: 1.5px solid var(--ink, #30233f);
  border-radius: 9px;
  color: var(--ink, #30233f);
  background: var(--paper, #fffcf8);
  box-shadow: 3px 3px 0 var(--ink, #30233f);
  font: 600 13px/1.35 var(--body, Inter, Arial, sans-serif);
  cursor: pointer;
  transition: background .15s, transform .15s, box-shadow .15s;
}
.consent-button:hover { background: var(--lemon, #e8ee8f); transform: translate(-1px,-1px); box-shadow: 4px 4px 0 var(--ink, #30233f); }
.consent-button:active { transform: translate(2px,2px); box-shadow: 1px 1px 0 var(--ink, #30233f); }
.consent-button:focus-visible, .consent-close:focus-visible, .consent-banner a:focus-visible, .consent-dialog a:focus-visible {
  outline: 3px solid var(--ink, #30233f); outline-offset: 5px;
}
.consent-dialog {
  position: fixed;
  margin: auto;
  width: min(660px, calc(100% - 40px));
  max-height: calc(100dvh - 48px);
  padding: 30px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.consent-dialog::backdrop { background: rgb(39 35 44 / 42%); }
.consent-dialog h2 { margin: 0 35px 12px 0; font-size: clamp(25px,4vw,33px); line-height: 1.12; letter-spacing: -1.1px; text-wrap: balance; }
.consent-dialog > p { font-size: 14px; margin: 0 0 22px; }
.consent-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  right: 16px;
  top: 16px;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1.5px solid var(--ink, #30233f);
  border-radius: 50%;
  color: var(--ink, #30233f);
  background: var(--paper, #fffcf8);
  font: 400 28px/1 Arial,sans-serif;
  cursor: pointer;
}
.consent-close:hover { background: var(--lemon, #e8ee8f); }
.consent-category {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 18px;
  margin: 0;
  padding: 19px 0;
  border-top: 1px solid var(--line, #e0d9df);
}
label.consent-category { cursor: pointer; }
.consent-category strong, .consent-category h3 { display: block; font-size: 16px; line-height: 1.3; font-weight: 650; margin: 0 0 5px; }
.consent-category p, .consent-category-description { display: block; margin: 0; font-size: 13px; line-height: 1.5; max-width: 48ch; }
.consent-badge { font-size: 11px; font-weight: 650; padding: 5px 8px; background: var(--lemon, #e8ee8f); border-radius: 5px; white-space: nowrap; }
.consent-category input { position: absolute; width: 48px; height: 44px; right: 0; opacity: 0; margin: 0; cursor: pointer; }
.consent-switch { display: block; width: 48px; height: 28px; border: 1.5px solid var(--ink, #30233f); border-radius: 30px; background: #e7e3e8; pointer-events: none; }
.consent-switch::before { content: ''; display: block; width: 20px; height: 20px; margin: 2.5px; border: 1px solid var(--ink, #30233f); border-radius: 50%; background: var(--paper, #fffcf8); transition: transform .15s; }
.consent-category input:checked + .consent-switch { background: var(--lilac, #bcb0f3); }
.consent-category input:checked + .consent-switch::before { transform: translateX(20px); background: var(--ink, #30233f); }
.consent-category input:focus-visible + .consent-switch { outline: 3px solid var(--ink, #30233f); outline-offset: 5px; }
.consent-dialog .consent-actions { margin-top: 10px; }
.consent-dialog .consent-fineprint { margin: 20px 0 0; font-size: 12px; }
.consent-dialog .consent-reload-note { padding: 12px; border-left: 3px solid var(--coral, #ff735c); font-size: 12px; background: var(--paper, #fffcf8); }
[data-consent-open].footer-consent { padding: 8px 0; border: 0; background: transparent; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 4px; text-align: left; }
@media (max-width: 850px) {
  .consent-banner { grid-template-columns: 1fr; gap: 17px; max-width: 650px; padding: 20px; }
  .consent-banner p { max-width: none; }
}
@media (max-width: 480px) {
  .consent-banner { left: 13px; right: 19px; bottom: max(14px, env(safe-area-inset-bottom)); padding: 17px; gap: 16px; }
  .consent-banner h2 { font-size: 22px; }
  .consent-banner p { font-size: 12px; }
  .consent-actions { gap: 7px; }
  .consent-button { font-size: 11px; padding-inline: 5px; min-height: 48px; }
  .consent-dialog { width: calc(100% - 32px); padding: 24px 19px; max-height: calc(100dvh - 40px); }
  .consent-dialog > p { font-size: 13px; }
  .consent-dialog h2 { padding-right: 22px; }
  .consent-category { gap: 13px; padding-block: 17px; }
  .consent-category p, .consent-category-description { font-size: 12px; }
  .consent-necessary { grid-template-columns: 1fr; gap: 8px; }
  .consent-badge { justify-self: start; }
}
@media (prefers-reduced-motion: reduce) { .consent-button, .consent-switch::before { transition: none; } }
@media (forced-colors: active) {
  .consent-switch { forced-color-adjust: none; background: Canvas; border-color: CanvasText; }
  .consent-switch::before { background: CanvasText; border-color: CanvasText; }
  .consent-category input:checked + .consent-switch { background: Highlight; }
  .consent-category input:checked + .consent-switch::before { background: HighlightText; }
}
