:root {
  --gdpr-width: 25rem;
  --gdpr-left: 0.25rem;
  --gdpr-bottom: 3.5rem;
  --gdpr-padding: 2rem;
  --gdpr-z-index: 999;
  --gdpr-bg: #fff;
  --gdpr-color: #000;
  --gdpr-primary: var(--bs-primary, #0d6efd);
  --gdpr-border: #eee;
  --gdpr-muted: #adb5bd;
  --gdpr-focus: rgba(220, 53, 69, 0.25);
  --gdpr-shadow: 2px 2px 8px rgba(0, 0, 0, 0.05);
  --gdpr-font-size: 1rem;
  --gdpr-radius: 0;
  --gdpr-icon-color: #000;
  --gdpr-icon-size: 1.125rem;
  --gdpr-cookie-icon-size: 1.75rem;
  --gdpr-cookie-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='m17.11 16.67c.81 0 1.49-.28 2.06-.85.56-.57.84-1.25.84-2.06s-.28-1.49-.85-2.06c-.57-.56-1.25-.84-2.06-.84s-1.49.28-2.06.85c-.56.57-.84 1.25-.84 2.06s.28 1.49.85 2.06c.57.56 1.25.84 2.06.84zm-3.75 9.38c.81 0 1.49-.28 2.06-.85.56-.57.84-1.25.84-2.06s-.28-1.49-.85-2.06c-.57-.56-1.25-.84-2.06-.84s-1.49.28-2.06.85c-.56.57-.84 1.25-.84 2.06s.28 1.49.85 2.06c.57.56 1.25.84 2.06.84zm12.19 1.78c.53 0 .98-.18 1.34-.54s.54-.8.54-1.34-.18-.98-.54-1.34-.8-.54-1.34-.54-.98.18-1.34.54-.54.8-.54 1.34.18.98.54 1.34.8.54 1.34.54zm-5.62 12.05c-2.68 0-5.22-.52-7.6-1.55s-4.46-2.43-6.22-4.2c-1.77-1.77-3.17-3.84-4.2-6.22s-1.55-4.91-1.55-7.59c0-3.31.7-6.29 2.11-8.93 1.41-2.64 3.24-4.83 5.51-6.56 2.27-1.73 4.83-2.93 7.69-3.59s5.71-.67 8.56-.05c-.25 1.5-.2 2.87.16 4.1.36 1.23.95 2.28 1.76 3.14s1.84 1.48 3.07 1.88 2.6.49 4.1.3c-.41 1.94-.04 3.66 1.1 5.16s2.79 2.27 4.95 2.3c.31 2.88.03 5.63-.84 8.28s-2.2 4.96-3.96 6.96c-1.77 2-3.9 3.59-6.41 4.78-2.51 1.19-5.25 1.78-8.23 1.78zm0-4.41c4.15 0 7.59-1.34 10.31-4.01 2.72-2.67 4.31-5.98 4.78-9.92-1.56-.63-2.85-1.54-3.87-2.74s-1.65-2.56-1.9-4.06c-2.41-.38-4.5-1.45-6.28-3.24s-2.84-3.88-3.19-6.28c-1.91.03-3.76.41-5.56 1.13-1.8.72-3.39 1.73-4.78 3.02-1.39 1.3-2.52 2.87-3.38 4.71-.86 1.84-1.29 3.92-1.29 6.24 0 4.23 1.47 7.82 4.4 10.75 2.93 2.93 6.52 4.4 10.76 4.4Z'/%3E%3C/svg%3E");
  --gdpr-external-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M432 320h-32a16 16 0 0 0-16 16v112H64V128h144a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16H48A48 48 0 0 0 0 112v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V336a16 16 0 0 0-16-16zM488 0H360c-21.37 0-32.05 25.91-17 41l35.73 35.73L135 320.37a24 24 0 0 0 0 34L157.67 377a24 24 0 0 0 34 0L435.28 133.32 471 169c15 15 41 4.5 41-17V24a24 24 0 0 0-24-24z'/%3E%3C/svg%3E");
  --gdpr-arrow-left-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3Cpath d='M73.4 297.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L173.3 352H544c17.7 0 32-14.3 32-32s-14.3-32-32-32H173.3l105.4-105.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z'/%3E%3C/svg%3E");
}

.cookie-box {
  position: fixed;
  left: var(--gdpr-left);
  bottom: var(--gdpr-bottom);
  z-index: var(--gdpr-z-index);
  display: flex;
  flex-direction: column;
  width: calc(100vw - 0.5rem);
  max-width: var(--gdpr-width);
  padding: var(--gdpr-padding);
  font-size: var(--gdpr-font-size);
  color: var(--gdpr-color);
  background: var(--gdpr-bg);
  box-shadow: var(--gdpr-shadow);
  transition: transform 0.2s ease, opacity 0.2s ease, visibility 0.2s ease;
}

.cookie-box.cookie-customize {
  max-width: calc(var(--gdpr-width) - 4rem);
}

.cookie-box.hidden-box {
  transform: translateY(calc(100% + var(--gdpr-bottom) + 1rem));
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.cookie-box .gdpr-consent-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  font-size: var(--gdpr-font-size);
  font-weight: 700;
}

.cookie-box p,
.cookie-box .cookie-popup-disclaimer,
.cookie-box .link-cookie-page {
  font-size: var(--gdpr-font-size);
}

.cookie-box .cookie-popup-disclaimer {
  font-size: calc(var(--gdpr-font-size) - 0.01rem);
}

.cookie-buttons-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 1rem;
}

.cookie-box .btn {
  margin: 0;
  border-radius: var(--gdpr-radius);
}

#return-arrow {
  margin-right: 0.5rem;
  cursor: pointer;
}

.gdpr-icons {
  display: inline-block;
  flex-shrink: 0;
  width: var(--gdpr-icon-size);
  height: var(--gdpr-icon-size);
  color: var(--gdpr-icon-color);
  background-color: currentColor;
  -webkit-mask: var(--gdpr-icon) center / contain no-repeat;
  mask: var(--gdpr-icon) center / contain no-repeat;
}

.gdpr-icons.gdpr-cookies {
  --gdpr-icon: var(--gdpr-cookie-icon);
  --gdpr-icon-size: var(--gdpr-cookie-icon-size);
}

.gdpr-icons.gdpr-external-link-alt {
  --gdpr-icon: var(--gdpr-external-icon);
  --gdpr-icon-size: 0.8125rem;
}

.gdpr-icons.gdpr-arrow-left {
  --gdpr-icon: var(--gdpr-arrow-left-icon);
}

/* Switches */
.cookie-box .custom-control {
  position: relative;
  min-height: 1.5rem;
  padding-left: 2.25rem;
}

.cookie-box .custom-control a:hover {
  --gdpr-icon-color: var(--gdpr-primary);
}

.cookie-box .custom-control-input {
  position: absolute;
  top: 0.25rem;
  left: 0;
  z-index: 1;
  width: 1.75rem;
  height: 1rem;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.cookie-box .custom-control-label {
  position: relative;
  cursor: pointer;
}

.cookie-box .custom-control-label::before,
.cookie-box .custom-control-label::after {
  content: "";
  position: absolute;
  top: 0.25rem;
  left: -2.25rem;
  border-radius: 20px;
}

.cookie-box .custom-control-label::before {
  width: 1.75rem;
  height: 1rem;
  background: var(--gdpr-bg);
  border: 1px solid var(--gdpr-muted);
  transition: background-color 0.15s ease,
  border-color 0.15s ease;
}

.cookie-box .custom-control-label::after {
  width: 1rem;
  height: 1rem;
  background: var(--gdpr-muted);
  transition: transform 0.15s ease,
  background-color 0.15s ease;
}

.cookie-box .custom-control-input:checked ~ .custom-control-label::before {
  background: var(--gdpr-primary);
  border-color: var(--gdpr-primary);
}

.cookie-box .custom-control-input:checked ~ .custom-control-label::after {
  background: #fff;
  transform: translateX(0.72rem);
}

.cookie-box .custom-control-input:focus-visible ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem var(--gdpr-focus);
}

.cookie-box .custom-control-input:disabled {
  cursor: not-allowed;
}

.cookie-box .custom-control-input:disabled ~ .custom-control-label {
  cursor: not-allowed;
  opacity: 0.6;
}

/* Iframe consent placeholder */
.cookie-iframes-consent {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--gdpr-padding);
  color: var(--gdpr-color);
  background: var(--gdpr-bg);
  border: 1px solid var(--gdpr-border);
}

.cookie-iframes-consent .gdpr-consent-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  font-size: var(--gdpr-font-size);
  font-weight: 700;
}

.cookie-iframes-consent p {
  font-size: var(--gdpr-font-size);
}

/* Floating cookie button */
.btn-open-cookie-popup {
  position: fixed;
  left: var(--gdpr-left);
  bottom: 0.25rem;
  z-index: calc(var(--gdpr-z-index) + 1);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem;
  color: #fff;
  background: var(--gdpr-primary);
  border: 0;
  border-radius: 50%;
  box-shadow: var(--gdpr-shadow);
  cursor: pointer;
}

.btn-open-cookie-popup .gdpr-cookies {
  --gdpr-icon-color: #fff;
}

/* Responsive */
@media (max-width: 480px) {
  :root {
    --gdpr-padding: 1.25rem;
  }

  .cookie-box {
    left: 0.25rem;
    right: 0.25rem;
    width: auto;
    max-width: none;
  }

  .cookie-box.cookie-customize {
    max-width: none;
  }

  .cookie-buttons-group {
    align-items: stretch;
    flex-direction: column;
  }

  .cookie-buttons-group .btn,
  .cookie-buttons-group .link-cookie-page {
    width: 100%;
    text-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cookie-box,
  .cookie-box .custom-control-label::before,
  .cookie-box .custom-control-label::after {
    transition: none;
  }
}
