:root { --oc-bg: #faf9f7; --oc-text: #25221f; --oc-line: #dcd7d0; }
.ops-cookie-banner, .ops-cookie-panel, .ops-cookie-launcher { font-family: Inter, system-ui, sans-serif; font-size: .9375rem; line-height: 1.6; }
.ops-cookie-launcher { padding: 1rem; text-align: center; color: var(--oc-text); background: var(--oc-bg); }
.ops-cookie-button { min-height: 44px; padding: .625rem 1rem; border: 1px solid currentColor; border-radius: 10px; background: transparent; color: inherit; font: inherit; line-height: 1.5; cursor: pointer; }
.ops-cookie-banner { position: fixed; z-index: 100000; left: 1rem; bottom: 1rem; width: min(28rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); overflow-y: auto; padding: 1.5rem; border-radius: 16px; color: #faf9f7; background: #25221f; box-shadow: 0 4px 24px #0003; }
.ops-cookie-banner[hidden] { display: none; }
.ops-cookie-banner h2 { font: 700 1.125rem/1.4 Inter, system-ui, sans-serif; margin: 0 2rem 1rem 0; }
.ops-cookie-banner p { margin: 0 0 1rem; }
.ops-cookie-banner a, .ops-cookie-panel a { color: inherit; text-decoration: underline; }
.ops-cookie-close { position: absolute; right: .5rem; top: .5rem; width: 44px; height: 44px; border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 1.5rem; }
.ops-cookie-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.ops-cookie-panel { width: min(36rem, calc(100% - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); margin: auto; padding: 0 1.5rem 1.5rem; border: 1px solid currentColor; border-radius: 16px; overflow-y: auto; color: var(--oc-text); background: var(--oc-bg); overscroll-behavior: contain; }
.ops-cookie-panel::backdrop { background: rgb(37 34 31 / .55); }
.ops-cookie-panel header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; position: sticky; top: 0; z-index: 1; padding-block: 1.25rem; background: var(--oc-bg); border-bottom: 1px solid currentColor; }
.ops-cookie-panel h2 { font: 700 1.5rem/1.3 Inter, system-ui, sans-serif; margin: 0; }
.ops-cookie-panel form { display: grid; gap: 1rem; margin-top: 1.25rem; }
.ops-cookie-panel label { display: flex; align-items: center; gap: .75rem; font-weight: 700; min-height: 44px; }
.ops-cookie-panel input { appearance: auto; flex: 0 0 auto; width: 1.25rem; height: 1.25rem; margin: 0; padding: 0; accent-color: var(--oc-text); }
.ops-cookie-panel p { margin: 0; }
.ops-cookie-banner :focus-visible, .ops-cookie-panel :focus-visible, .ops-cookie-launcher :focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.ops-cookie-banner .ops-cookie-button:hover { background: #faf9f7; color: #25221f; }
.ops-cookie-panel .ops-cookie-button:hover, .ops-cookie-launcher .ops-cookie-button:hover { background: var(--oc-text); color: var(--oc-bg); }
[data-ops-cookie-status]:empty { display: none; }
html[data-contrasto="bianco-su-nero"] { --oc-bg: #000; --oc-text: #fff; --oc-line: #fff; }
html[data-contrasto="nero-su-bianco"] { --oc-bg: #fff; --oc-text: #000; --oc-line: #000; }
html:is([data-contrasto="bianco-su-nero"], [data-contrasto="nero-su-bianco"]) .ops-cookie-banner { background: var(--oc-bg); color: var(--oc-text); border: 2px solid currentColor; }
html:is([data-contrasto="bianco-su-nero"], [data-contrasto="nero-su-bianco"]) .ops-cookie-banner .ops-cookie-button:hover { background: var(--oc-text); color: var(--oc-bg); }
@media print { .ops-cookie-banner, .ops-cookie-panel, .ops-cookie-launcher { display: none !important; } }
