.cmm-gdpr {
  --cmm-gdpr-primary: #1b5e55;
  --cmm-gdpr-secondary: #f4f5f5;
  --cmm-gdpr-text: #17201f;
  --cmm-gdpr-muted: #43504e;
  --cmm-gdpr-border: #c9d1d0;
  --cmm-gdpr-surface: #fff;
  --cmm-gdpr-overlay: rgb(0 0 0 / 62%);
  color: var(--cmm-gdpr-text);
  font: 400 1rem/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  position: relative;
  z-index: 2147483000;
}

.cmm-gdpr--theme-dark {
  --cmm-gdpr-text: #f3f7f6;
  --cmm-gdpr-muted: #c3cfcc;
  --cmm-gdpr-border: #41504d;
  --cmm-gdpr-surface: #16201e;
  --cmm-gdpr-overlay: rgb(0 0 0 / 76%);
}

.cmm-gdpr *, .cmm-gdpr *::before, .cmm-gdpr *::after { box-sizing: border-box; }
.cmm-gdpr [hidden], iframe[data-cmm-consent-iframe][hidden] { display: none !important; }
.cmm-gdpr-modal-open { overflow: hidden; }

.cmm-gdpr__banner {
  align-items: center;
  background: var(--cmm-gdpr-surface);
  border-top: 4px solid var(--cmm-gdpr-primary);
  bottom: 0;
  box-shadow: 0 -8px 30px rgb(0 0 0 / 18%);
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  left: 0;
  padding: 1.25rem max(1.25rem, calc((100vw - 1200px) / 2));
  position: fixed;
  width: 100%;
}

.cmm-gdpr__banner h2, .cmm-gdpr__dialog h2, .cmm-gdpr__category h3 { color: var(--cmm-gdpr-text); margin: 0 0 .5rem; }
.cmm-gdpr__banner h2, .cmm-gdpr__dialog h2 { font-size: 1.35rem; }
.cmm-gdpr__category h3 { font-size: 1rem; }
.cmm-gdpr__banner p, .cmm-gdpr__category p { margin: 0; }
.cmm-gdpr__policies { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .65rem; }
.cmm-gdpr__policies a { color: var(--cmm-gdpr-primary); text-decoration: underline; }
.cmm-gdpr__actions, .cmm-gdpr__dialog-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.cmm-gdpr__actions { flex: 0 0 auto; }

.cmm-gdpr__button, .cmm-gdpr__manage, .cmm-gdpr-link-button {
  background: var(--cmm-gdpr-surface);
  border: 2px solid var(--cmm-gdpr-primary);
  border-radius: .35rem;
  color: var(--cmm-gdpr-primary);
  cursor: pointer;
  font: inherit;
  font-weight: 650;
  padding: .65rem 1rem;
}

.cmm-gdpr__button--primary { background: var(--cmm-gdpr-primary); color: #fff; }
.cmm-gdpr__button--link { border-color: transparent; text-decoration: underline; }
.cmm-gdpr__button:hover, .cmm-gdpr__manage:hover, .cmm-gdpr-link-button:hover { filter: brightness(.92); }
.cmm-gdpr button:focus-visible, .cmm-gdpr a:focus-visible, .cmm-gdpr input:focus-visible + span, .cmm-gdpr-link-button:focus-visible {
  outline: 3px solid #ffbf47;
  outline-offset: 3px;
}

.cmm-gdpr__manage {
  align-items: center;
  bottom: 1rem;
  box-shadow: 0 4px 18px rgb(0 0 0 / 20%);
  display: flex;
  gap: .45rem;
  position: fixed;
}
.cmm-gdpr--bottom-left .cmm-gdpr__manage { left: 1rem; }
.cmm-gdpr--bottom-right .cmm-gdpr__manage { right: 1rem; }
.cmm-gdpr--theme-dark .cmm-gdpr__manage-label { color: #ffd400; }
.cmm-gdpr--theme-dark .cmm-gdpr__dialog .cmm-gdpr__button { border-color: #ffd400; color: #ffd400; }
.cmm-gdpr--theme-dark .cmm-gdpr__dialog .cmm-gdpr__button--primary { background: #ffd400; color: #17201f; }
.cmm-gdpr--theme-dark .cmm-gdpr__dialog .cmm-gdpr__button--link { border-color: transparent; color: #ffd400; }

.cmm-gdpr__overlay {
  align-items: center;
  background: var(--cmm-gdpr-overlay);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 1rem;
  position: fixed;
}

.cmm-gdpr__dialog {
  background: var(--cmm-gdpr-surface);
  border-radius: .5rem;
  box-shadow: 0 18px 60px rgb(0 0 0 / 35%);
  max-height: min(90vh, 760px);
  max-width: 720px;
  overflow: auto;
  padding: 1.5rem;
  width: 100%;
}

.cmm-gdpr__dialog-header { align-items: center; display: flex; justify-content: space-between; }
.cmm-gdpr__close { background: transparent; border: 0; color: var(--cmm-gdpr-text); cursor: pointer; font-size: 2rem; line-height: 1; padding: .25rem .5rem; }
.cmm-gdpr__categories { border-bottom: 1px solid var(--cmm-gdpr-border); margin: 1rem 0; }
.cmm-gdpr__category { align-items: center; border-top: 1px solid var(--cmm-gdpr-border); display: flex; gap: 1.5rem; justify-content: space-between; padding: 1rem 0; }
.cmm-gdpr__category p { color: var(--cmm-gdpr-muted); font-size: .925rem; }

.cmm-gdpr__switch { flex: 0 0 auto; position: relative; }
.cmm-gdpr__switch input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.cmm-gdpr__switch span[aria-hidden] { background: #6b7473; border-radius: 1rem; cursor: pointer; display: block; height: 1.55rem; position: relative; width: 2.8rem; }
.cmm-gdpr__switch span[aria-hidden]::after { background: #fff; border-radius: 50%; content: ""; height: 1.15rem; left: .2rem; position: absolute; top: .2rem; transition: transform .15s ease; width: 1.15rem; }
.cmm-gdpr__switch input:checked + span { background: var(--cmm-gdpr-primary); }
.cmm-gdpr--theme-dark .cmm-gdpr__dialog .cmm-gdpr__switch input:checked + span { background: #ffd400; }
.cmm-gdpr--theme-dark .cmm-gdpr__dialog .cmm-gdpr__switch input:checked + span::after { background: #17201f; }
.cmm-gdpr__switch input:checked + span::after { transform: translateX(1.25rem); }
.cmm-gdpr__switch input:disabled + span { cursor: not-allowed; opacity: .7; }

.cmm-gdpr-placeholder { align-items: center; background: var(--cmm-gdpr-secondary, #f4f5f5); border: 1px solid #c9d1d0; display: flex; flex-direction: column; justify-content: center; min-height: 220px; padding: 2rem; text-align: center; }
.cmm-gdpr-placeholder p { max-width: 45rem; }
.cmm-gdpr-link-button { background: var(--cmm-gdpr-primary, #1b5e55); color: #fff; }

@media (prefers-color-scheme: dark) {
  .cmm-gdpr--theme-automode {
    --cmm-gdpr-text: #f3f7f6;
    --cmm-gdpr-muted: #c3cfcc;
    --cmm-gdpr-border: #41504d;
    --cmm-gdpr-surface: #16201e;
    --cmm-gdpr-overlay: rgb(0 0 0 / 76%);
  }

  .cmm-gdpr--theme-automode .cmm-gdpr__manage-label { color: #ffd400; }
  .cmm-gdpr--theme-automode .cmm-gdpr__dialog .cmm-gdpr__button { border-color: #ffd400; color: #ffd400; }
  .cmm-gdpr--theme-automode .cmm-gdpr__dialog .cmm-gdpr__button--primary { background: #ffd400; color: #17201f; }
  .cmm-gdpr--theme-automode .cmm-gdpr__dialog .cmm-gdpr__button--link { border-color: transparent; color: #ffd400; }
  .cmm-gdpr--theme-automode .cmm-gdpr__dialog .cmm-gdpr__switch input:checked + span { background: #ffd400; }
  .cmm-gdpr--theme-automode .cmm-gdpr__dialog .cmm-gdpr__switch input:checked + span::after { background: #17201f; }
}

@media (max-width: 760px) {
  .cmm-gdpr__banner { align-items: stretch; flex-direction: column; gap: 1rem; max-height: 85vh; overflow: auto; }
  .cmm-gdpr__actions, .cmm-gdpr__dialog-actions { flex-direction: column; }
  .cmm-gdpr__button { width: 100%; }
  .cmm-gdpr__manage-label { display: none; }
  .cmm-gdpr__dialog { padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .cmm-gdpr *, .cmm-gdpr *::before, .cmm-gdpr *::after { scroll-behavior: auto !important; transition: none !important; }
}
