:root {
  --h3lgpd-admin-bg: #f0f0f1;
  --h3lgpd-panel: #fff;
  --h3lgpd-admin-border: #dcdcde;
  --h3lgpd-admin-text: #1d2327;
  --h3lgpd-admin-muted: #646970;
  --h3lgpd-admin-blue: #2271b1;
  --h3lgpd-admin-blue-hover: #135e96;
  --h3lgpd-error: #d63638;
  --h3lgpd-success: #46b450;
  --h3lgpd-space-1: 4px;
  --h3lgpd-space-2: 8px;
  --h3lgpd-space-3: 12px;
  --h3lgpd-space-4: 16px;
  --h3lgpd-space-5: 24px;
  --h3lgpd-space-6: 32px;
}

.h3lgpd-root {
  --h3lgpd-bg: #fff;
  --h3lgpd-text: #1d2327;
  --h3lgpd-muted: #646970;
  --h3lgpd-primary: #2271b1;
  --h3lgpd-primary-hover: #135e96;
  --h3lgpd-border: #dcdcde;
  --h3lgpd-button-text: #fff;
  --h3lgpd-outline: #2271b1;
  --h3lgpd-banner-width: 460px;
  --h3lgpd-font-size: 16px;
  --h3lgpd-button-size: 14px;
  --h3lgpd-radius: 8px;
  color: var(--h3lgpd-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, sans-serif;
  font-size: var(--h3lgpd-font-size);
  line-height: 1.55;
  text-align: left;
}

.h3lgpd-root *, .h3lgpd-root *::before, .h3lgpd-root *::after { box-sizing: border-box; }
.h3lgpd-root [hidden] { display: none !important; }
.h3lgpd-root .screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

/* Mantém a interface independente da tipografia e dos componentes do tema ativo. */
.h3lgpd-root .h3lgpd-banner,
.h3lgpd-root .h3lgpd-preferences {
  color: var(--h3lgpd-text) !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, sans-serif !important;
  font-size: var(--h3lgpd-font-size) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  line-height: 1.55 !important;
  text-align: left !important;
  text-transform: none !important;
}

.h3lgpd-root .h3lgpd-banner h2,
.h3lgpd-root .h3lgpd-preferences h2 {
  font-family: inherit !important;
  font-size: calc(var(--h3lgpd-font-size) + 4px) !important;
  font-style: normal !important;
  font-weight: 650 !important;
  letter-spacing: normal !important;
  line-height: 1.3 !important;
  margin: 0 0 14px !important;
  text-transform: none !important;
}

.h3lgpd-root .h3lgpd-description,
.h3lgpd-root .h3lgpd-description p,
.h3lgpd-root .h3lgpd-category-content,
.h3lgpd-root .h3lgpd-category-content p,
.h3lgpd-root .h3lgpd-service,
.h3lgpd-root .h3lgpd-service dl,
.h3lgpd-root .h3lgpd-service dt,
.h3lgpd-root .h3lgpd-service dd {
  font-family: inherit !important;
  font-size: inherit !important;
  font-style: normal !important;
  letter-spacing: normal !important;
  line-height: 1.55 !important;
  text-transform: none !important;
}

.h3lgpd-root .h3lgpd-description,
.h3lgpd-root .h3lgpd-description p,
.h3lgpd-root .h3lgpd-category-content,
.h3lgpd-root .h3lgpd-category-content p,
.h3lgpd-root .h3lgpd-service dd { font-weight: 400 !important; }

.h3lgpd-root .h3lgpd-description p { margin: 0 0 12px !important; }
.h3lgpd-root .h3lgpd-service dt { font-weight: 650 !important; }

.h3lgpd-banner {
  background: var(--h3lgpd-bg);
  border: 1px solid var(--h3lgpd-border);
  border-radius: 8px;
  box-shadow: 0 6px 22px rgb(0 0 0 / 12%);
  max-width: calc(100vw - 32px);
  padding: 26px 28px 24px;
  width: var(--h3lgpd-banner-width);
  z-index: 999999;
}

.h3lgpd-banner h2, .h3lgpd-preferences h2 {
  color: var(--h3lgpd-text);
  font-size: calc(var(--h3lgpd-font-size) + 4px);
  font-weight: 650;
  line-height: 1.3;
  margin: 0 0 14px;
}

.h3lgpd-description { color: var(--h3lgpd-text); }
.h3lgpd-description p { margin: 0 0 12px; }
.h3lgpd-policy-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 16px; }
.h3lgpd-root .h3lgpd-policy-links,
.h3lgpd-root .h3lgpd-policy-links a {
  font-family: inherit !important;
  font-size: inherit !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  line-height: 1.55 !important;
  text-transform: none !important;
}
.h3lgpd-root .h3lgpd-policy-links a { color: var(--h3lgpd-primary) !important; text-decoration: underline !important; text-underline-offset: 2px; }

.h3lgpd-actions, .h3lgpd-preferences-actions {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 18px;
}
.h3lgpd-actions-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.h3lgpd-actions-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.h3lgpd-button {
  align-items: center;
  appearance: none;
  border: 2px solid transparent;
  border-radius: 3px;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: var(--h3lgpd-button-size);
  font-weight: 500;
  justify-content: center;
  line-height: 1.25;
  min-height: 48px;
  padding: 10px 14px;
  text-align: center;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.h3lgpd-root .h3lgpd-button {
  align-items: center !important;
  appearance: none !important;
  background-image: none !important;
  border-style: solid !important;
  border-width: 2px !important;
  border-radius: 3px !important;
  box-shadow: none !important;
  display: inline-flex !important;
  font-family: inherit !important;
  font-size: var(--h3lgpd-button-size) !important;
  font-style: normal !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  line-height: 1.25 !important;
  margin: 0 !important;
  min-height: 48px !important;
  padding: 10px 14px !important;
  justify-content: center !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: none !important;
}

.h3lgpd-root .h3lgpd-button-primary { background: var(--h3lgpd-primary) !important; border-color: transparent !important; color: var(--h3lgpd-button-text) !important; }
.h3lgpd-root .h3lgpd-button-primary:hover { background: var(--h3lgpd-primary-hover) !important; }
.h3lgpd-root .h3lgpd-button-outline { background: var(--h3lgpd-bg) !important; border-color: var(--h3lgpd-outline) !important; color: var(--h3lgpd-outline) !important; }
.h3lgpd-root .h3lgpd-button-outline:hover { background: color-mix(in srgb, var(--h3lgpd-outline) 8%, var(--h3lgpd-bg)) !important; }
.h3lgpd-button:focus-visible, .h3lgpd-close:focus-visible, .h3lgpd-launcher:focus-visible, .h3lgpd-switch input:focus-visible + .h3lgpd-switch-track { outline: 3px solid color-mix(in srgb, var(--h3lgpd-primary) 42%, transparent); outline-offset: 2px; }

.h3lgpd-overlay { background: rgb(0 0 0 / 55%); inset: 0; position: fixed; z-index: 999998; }

.h3lgpd-preferences {
  background: var(--h3lgpd-bg);
  border: 1px solid var(--h3lgpd-border);
  border-radius: 8px;
  box-shadow: 0 8px 30px rgb(0 0 0 / 16%);
  left: 50%;
  max-height: min(760px, calc(100vh - 32px));
  max-width: calc(100vw - 32px);
  overflow: auto;
  position: fixed;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(600px, calc(100vw - 32px));
  z-index: 999999;
}

.h3lgpd-preferences-header { align-items: center; border-bottom: 1px solid var(--h3lgpd-border); display: flex; justify-content: space-between; padding: 20px 28px; }
.h3lgpd-preferences-header h2 { margin: 0; }
.h3lgpd-close { background: transparent; border: 0; color: var(--h3lgpd-muted); cursor: pointer; font-size: 30px; line-height: 1; padding: 2px 7px; }
.h3lgpd-root .h3lgpd-close { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; color: var(--h3lgpd-muted) !important; font-family: inherit !important; font-size: 30px !important; font-weight: 400 !important; line-height: 1 !important; margin: 0 !important; min-height: 0 !important; padding: 2px 7px !important; text-transform: none !important; }
.h3lgpd-categories { padding: 0 28px; }
.h3lgpd-category { border-bottom: 1px solid var(--h3lgpd-border); padding: 2px 0; }
.h3lgpd-category summary { align-items: center; cursor: pointer; display: flex; font-weight: 650; gap: 12px; list-style-position: outside; min-height: 58px; padding: 10px 2px; }
.h3lgpd-root .h3lgpd-category summary { color: var(--h3lgpd-text) !important; font-family: inherit !important; font-size: inherit !important; font-style: normal !important; font-weight: 650 !important; letter-spacing: normal !important; line-height: 1.55 !important; text-transform: none !important; }
.h3lgpd-category-name { flex: 1; }
.h3lgpd-category-name::after { border-bottom: 2px solid currentColor; border-right: 2px solid currentColor; content: ""; display: inline-block; height: 7px; margin-left: 12px; transform: rotate(45deg) translateY(-2px); transition: transform .15s ease; vertical-align: middle; width: 7px; }
.h3lgpd-category[open] .h3lgpd-category-name::after { transform: rotate(225deg) translate(-1px, -1px); }
.h3lgpd-always-active { color: #16821d; font-size: .88em; font-weight: 600; }
.h3lgpd-root .h3lgpd-always-active { color: #16821d !important; font-size: .88em !important; font-weight: 600 !important; }
.h3lgpd-category-content { color: var(--h3lgpd-muted); padding: 0 24px 18px; }
.h3lgpd-category-content > p { margin: 2px 0 16px; }
.h3lgpd-service { background: color-mix(in srgb, var(--h3lgpd-text) 5%, var(--h3lgpd-bg)); border-radius: 5px; margin-top: 10px; padding: 16px; }
.h3lgpd-service dl { display: grid; gap: 8px 16px; grid-template-columns: 120px minmax(0, 1fr); margin: 0; }
.h3lgpd-service dt { color: var(--h3lgpd-text); font-weight: 650; }
.h3lgpd-service dd { margin: 0; overflow-wrap: anywhere; }

.h3lgpd-switch { display: inline-flex; position: relative; }
.h3lgpd-switch input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.h3lgpd-switch-track { background: #c3c4c7; border-radius: 20px; display: block; height: 26px; position: relative; transition: background .15s; width: 48px; }
.h3lgpd-switch-track::after { background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgb(0 0 0 / 22%); content: ""; height: 20px; left: 3px; position: absolute; top: 3px; transition: transform .15s; width: 20px; }
.h3lgpd-switch input:checked + .h3lgpd-switch-track { background: var(--h3lgpd-primary); }
.h3lgpd-switch input:checked + .h3lgpd-switch-track::after { transform: translateX(22px); }

.h3lgpd-preferences-actions { border-top: 1px solid var(--h3lgpd-border); margin: 0; padding: 20px 28px; }
.h3lgpd-branding { background: color-mix(in srgb, var(--h3lgpd-text) 7%, var(--h3lgpd-bg)); color: var(--h3lgpd-muted); font-size: 13px; padding: 14px 28px; text-align: right; }
.h3lgpd-root .h3lgpd-branding { font-family: inherit !important; font-size: 13px !important; font-style: normal !important; font-weight: 400 !important; letter-spacing: normal !important; line-height: 1.55 !important; text-align: right !important; text-transform: none !important; }
.h3lgpd-root .h3lgpd-branding a { color: var(--h3lgpd-text) !important; font: inherit !important; text-decoration: none !important; text-transform: none !important; }
.h3lgpd-root .h3lgpd-branding strong { color: var(--h3lgpd-text) !important; font-weight: 650 !important; }
.h3lgpd-banner-branding { border-radius: 0 0 7px 7px; margin: 18px -28px -24px; padding: 8px 28px; }

.h3lgpd-launcher { align-items: center; background: var(--h3lgpd-primary); border: 3px solid var(--h3lgpd-primary); border-radius: 50%; bottom: 18px; box-shadow: 0 3px 12px rgb(0 0 0 / 16%); color: var(--h3lgpd-button-text); cursor: pointer; display: flex; height: 44px; justify-content: center; left: 18px; padding: 0; position: fixed; transition: background-color .15s ease, border-color .15s ease, transform .15s ease; width: 44px; z-index: 999997; }
.h3lgpd-root .h3lgpd-launcher {
  align-items: center !important;
  appearance: none !important;
  background: var(--h3lgpd-primary) !important;
  background-image: none !important;
  border: 3px solid var(--h3lgpd-primary) !important;
  border-radius: 50% !important;
  bottom: 18px !important;
  box-shadow: 0 3px 12px rgb(0 0 0 / 16%) !important;
  color: var(--h3lgpd-button-text) !important;
  display: flex !important;
  filter: none !important;
  font-size: 0 !important;
  height: 44px !important;
  justify-content: center !important;
  left: 18px !important;
  line-height: 1 !important;
  margin: 0 !important;
  max-height: 44px !important;
  max-width: 44px !important;
  min-height: 44px !important;
  min-width: 44px !important;
  padding: 0 !important;
  position: fixed !important;
  right: auto !important;
  transform: none !important;
  text-decoration: none !important;
  text-transform: none !important;
  top: auto !important;
  width: 44px !important;
  z-index: 999997 !important;
}
.h3lgpd-root .h3lgpd-launcher:hover { background: var(--h3lgpd-primary-hover) !important; border-color: var(--h3lgpd-primary-hover) !important; transform: translateY(-1px) !important; }
.h3lgpd-root .h3lgpd-launcher::before,
.h3lgpd-root .h3lgpd-launcher::after { content: none !important; display: none !important; }
.h3lgpd-root .h3lgpd-consent-icon { display: block !important; height: 30px !important; margin: 0 !important; max-height: 30px !important; max-width: 30px !important; min-height: 0 !important; min-width: 0 !important; object-fit: contain !important; padding: 0 !important; width: 30px !important; }

@media (max-width: 720px) {
  .h3lgpd-banner { padding: 20px; }
  .h3lgpd-banner-branding { margin: 16px -20px -20px; padding: 8px 20px; }
  .h3lgpd-root .h3lgpd-consent-icon { height: 36px !important; max-height: 36px !important; max-width: 36px !important; width: 36px !important; }
  .h3lgpd-actions, .h3lgpd-preferences-actions { display: flex; flex-wrap: wrap; gap: 8px; }
  .h3lgpd-root .h3lgpd-actions .h3lgpd-button, .h3lgpd-root .h3lgpd-preferences-actions .h3lgpd-button { flex: 1 0 max-content; max-width: 100%; min-width: 0; padding-left: 8px !important; padding-right: 8px !important; white-space: normal; }
  .h3lgpd-preferences { max-height: calc(100vh - 16px); max-width: calc(100vw - 16px); width: calc(100vw - 16px); }
  .h3lgpd-preferences-header, .h3lgpd-preferences-actions { padding: 16px 18px; }
  .h3lgpd-categories { padding: 0 18px; }
  .h3lgpd-service dl { grid-template-columns: 1fr; }
  .h3lgpd-service dd + dt { margin-top: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  .h3lgpd-root * { scroll-behavior: auto !important; transition: none !important; }
}
