.sl-cookie-consent {
    position: fixed;
    z-index: 210;
    right: max(1rem, env(safe-area-inset-right));
    bottom: max(1rem, env(safe-area-inset-bottom));
    left: max(1rem, env(safe-area-inset-left));
    width: min(46rem, calc(100vw - 2rem));
    margin-left: auto;
    padding: 1.2rem;
    border: 1px solid rgba(17, 17, 17, .14);
    background: rgba(255, 255, 255, .985);
    color: var(--ink);
    box-shadow: 0 1.2rem 3.5rem rgba(9, 9, 8, .2);
    font-family: var(--font-sans);
    opacity: 0;
    transform: translateY(1rem);
    transition: opacity 280ms ease, transform 360ms var(--ease);
    backdrop-filter: blur(1rem);
}

.sl-cookie-consent.is-visible { opacity: 1; transform: translateY(0); }

.sl-cookie-consent__heading > span {
    display: block;
    margin-bottom: .32rem;
    color: var(--gold);
    font-size: .56rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.sl-cookie-consent__heading h2 {
    font-family: var(--font-serif);
    font-size: clamp(1.4rem, 3vw, 1.9rem);
    line-height: 1.08;
}

.sl-cookie-consent__heading p,
.sl-cookie-consent__summary > p {
    max-width: 42rem;
    margin: .5rem 0 0;
    color: var(--muted);
    font-size: .75rem;
    line-height: 1.55;
}

.sl-cookie-consent__summary > p { margin-top: .7rem; font-size: .68rem; }
.sl-cookie-consent__actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .9rem; }

.sl-cookie-consent__actions button,
.sl-cookie-consent__preference-actions button {
    min-height: 2.65rem;
    padding: .72rem 1rem;
    border: 1px solid var(--black);
    font-size: .58rem;
    font-weight: 600;
    letter-spacing: .1em;
    line-height: 1;
    text-transform: uppercase;
}

.sl-cookie-consent__accept,
.sl-cookie-consent__save { background: var(--black); color: var(--paper); }
.sl-cookie-consent__accept:hover,
.sl-cookie-consent__save:hover { border-color: var(--gold); background: var(--gold); }
.sl-cookie-consent__essential { background: var(--paper); color: var(--black); }
.sl-cookie-consent__essential:hover { background: var(--soft); }
.sl-cookie-consent__manage,
.sl-cookie-consent__accept-text { border-color: transparent !important; background: transparent; color: var(--muted); }
.sl-cookie-consent__manage:hover,
.sl-cookie-consent__accept-text:hover { color: var(--black); }

.sl-cookie-consent__preferences {
    margin-top: 1rem;
    border-top: 1px solid var(--line);
}

.sl-cookie-choice {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: .85rem 0;
    border-bottom: 1px solid var(--line);
}

label.sl-cookie-choice { cursor: pointer; }
.sl-cookie-choice strong { display: block; font-size: .75rem; font-weight: 600; }
.sl-cookie-choice p { margin: .2rem 0 0; color: var(--muted); font-size: .64rem; line-height: 1.45; }
.sl-cookie-choice__required { color: var(--gold); font-size: .56rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }

.sl-cookie-choice__switch { position: relative; width: 2.55rem; height: 1.4rem; flex: 0 0 auto; }
.sl-cookie-choice__switch input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.sl-cookie-choice__switch i { position: absolute; inset: 0; border: 1px solid #aaa; border-radius: 999px; background: #d8d8d4; transition: background 180ms ease, border-color 180ms ease; }
.sl-cookie-choice__switch i::after { position: absolute; top: .16rem; left: .17rem; width: .95rem; height: .95rem; border-radius: 50%; background: white; box-shadow: 0 .1rem .3rem rgba(0,0,0,.2); content: ""; transition: transform 180ms ease; }
.sl-cookie-choice__switch input:checked + i { border-color: var(--black); background: var(--black); }
.sl-cookie-choice__switch input:checked + i::after { transform: translateX(1.13rem); }
.sl-cookie-choice__switch input:focus-visible + i { outline: 2px solid var(--black); outline-offset: 3px; }
.sl-cookie-consent__preference-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .9rem; }

.sl-cookie-consent__privacy { margin: .75rem 0 0; color: var(--muted); font-size: .57rem; line-height: 1.5; }
.sl-cookie-consent__privacy a { padding-bottom: .08rem; border-bottom: 1px solid currentColor; color: var(--ink); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 36rem) {
    .sl-cookie-consent { right: auto; bottom: max(.75rem, env(safe-area-inset-bottom)); left: 50%; width: calc(100vw - 1.5rem); max-height: calc(100dvh - 1.5rem); padding: 1rem; margin-left: 0; overflow-y: auto; transform: translate(-50%, 1rem); }
    .sl-cookie-consent.is-visible { transform: translate(-50%, 0); }
    .sl-cookie-consent__actions { display: grid; grid-template-columns: 1fr 1fr; }
    .sl-cookie-consent__manage { grid-column: 1 / -1; }
    .sl-cookie-choice { gap: .7rem; }
}

@media (prefers-reduced-motion: reduce) { .sl-cookie-consent { transition: none; } }
