body.slumens-consent-open { overflow: hidden; }
.slumens-consent[hidden] { display: none !important; }
.slumens-consent { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: end center; padding: 1rem; }
.slumens-consent__backdrop { position: absolute; inset: 0; background: rgb(5 12 18 / 58%); backdrop-filter: blur(2px); }
.slumens-consent__panel { position: relative; width: min(100%, 760px); max-height: min(90vh, 760px); overflow: auto; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--slumens-color-border, #dfe3e7); border-radius: var(--slumens-radius, 12px); background: var(--slumens-color-background, #fff); color: var(--slumens-color-text, #1b1e21); box-shadow: 0 24px 80px rgb(0 0 0 / 28%); }
.slumens-consent__panel h2 { margin-top: 0; padding-right: 2rem; }
.slumens-consent__close { position: absolute; top: .75rem; right: .75rem; width: 2.5rem; height: 2.5rem; border: 0; border-radius: 999px; background: var(--slumens-color-surface, #f5f6f7); color: inherit; font-size: 1.5rem; line-height: 1; }
.slumens-consent__categories { display: grid; gap: .75rem; margin-block: 1.25rem; }
.slumens-consent__category { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid var(--slumens-color-border, #dfe3e7); border-radius: calc(var(--slumens-radius, 12px) * .75); }
.slumens-consent__category p { margin: .25rem 0 0; color: var(--slumens-color-muted, #646b72); font-size: .9rem; }
.slumens-switch { position: relative; flex: 0 0 auto; }
.slumens-switch input { position: absolute; opacity: 0; pointer-events: none; }
.slumens-switch > span[aria-hidden] { display: block; width: 3rem; height: 1.65rem; border-radius: 999px; background: #b8bec4; transition: 160ms ease; }
.slumens-switch > span[aria-hidden]::after { content: ""; display: block; width: 1.25rem; height: 1.25rem; margin: .2rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 5px rgb(0 0 0 / 25%); transition: transform 160ms ease; }
.slumens-switch input:checked + span { background: var(--slumens-color-success, #237a4b); }
.slumens-switch input:checked + span::after { transform: translateX(1.35rem); }
.slumens-switch input:focus-visible + span { outline: 3px solid var(--slumens-color-accent, #d2a44f); outline-offset: 3px; }
.slumens-switch input:disabled + span { opacity: .72; }
.slumens-consent__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .75rem; }
.slumens-consent--compact .slumens-consent__categories { display: none; }
.slumens-contact-form { margin-block: 2rem; padding: clamp(1rem, 3vw, 2rem); border: 1px solid var(--slumens-color-border, #dfe3e7); border-radius: var(--slumens-radius, 12px); background: var(--slumens-color-surface, #f5f6f7); }
.slumens-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.slumens-form-field { margin: 0; }
.slumens-form-field--full { grid-column: 1 / -1; }
.slumens-form-field label { display: block; margin-bottom: .35rem; font-weight: 700; }
.slumens-form-field input:not([type="checkbox"]), .slumens-form-field textarea { width: 100%; padding: .75rem .9rem; border: 1px solid var(--slumens-color-border, #c9d0d6); border-radius: calc(var(--slumens-radius, 12px) * .6); background: #fff; color: #1b1e21; }
.slumens-form-consent label { display: flex; align-items: flex-start; gap: .6rem; font-weight: 400; }
.slumens-form-consent input { margin-top: .35rem; }
.slumens-form-notice { margin-bottom: 1rem; padding: .85rem 1rem; border-radius: calc(var(--slumens-radius, 12px) * .6); }
.slumens-form-notice--success { background: color-mix(in srgb, var(--slumens-color-success, #237a4b) 12%, white); color: #155c37; }
.slumens-form-notice--error { background: color-mix(in srgb, var(--slumens-color-error, #b3261e) 10%, white); color: #8b1e18; }
.slumens-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.slumens-blocked-embed { display: grid; place-items: center; min-height: 240px; padding: 2rem; border: 1px dashed var(--slumens-color-border, #dfe3e7); border-radius: var(--slumens-radius, 12px); background: var(--slumens-color-surface, #f5f6f7); text-align: center; }
.slumens-blocked-embed iframe { width: 100%; min-height: 360px; border: 0; }
@media (max-width: 640px) { .slumens-form-grid { grid-template-columns: 1fr; } .slumens-consent__actions { flex-direction: column; } .slumens-consent__actions .button { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .slumens-switch > span, .slumens-switch > span::after { transition: none; } }

.slumens-privacy-preferences { width: min(calc(100% - 2rem), var(--slumens-container, 1280px)); margin: 0 auto .75rem; text-align: center; }
.slumens-privacy-preferences button { padding: .35rem .6rem; border: 0; background: transparent; color: inherit; font-size: .85rem; text-decoration: underline; text-underline-offset: .2em; }
