.ap-consent { position: fixed; z-index: 1000; left: 50%; bottom: 20px; transform: translate(-50%, 140%); width: min(760px, calc(100vw - 24px)); background: #141414; color: #ece8df; box-shadow: 0 30px 80px rgba(0,0,0,.35); transition: transform .5s cubic-bezier(.2,.7,.2,1); font: 300 .92rem/1.6 "Lato", system-ui, sans-serif; }
.ap-consent.is-open { transform: translate(-50%, 0); }
.ap-consent__inner { padding: 1.6rem 1.8rem 1.5rem; max-height: calc(100vh - 60px); overflow-y: auto; }
.ap-consent__title { font: 300 1.6rem/1.1 "Cormorant Garamond", Georgia, serif; color: #fff; margin: 0 0 .6rem; }
.ap-consent__text { margin: 0 0 1.2rem; color: rgba(236,232,223,.85); }
.ap-consent__text a { color: #fff; text-decoration: underline; text-underline-offset: .2em; }
.ap-consent__cats { list-style: none; margin: 0 0 1.2rem; padding: 0; border-top: 1px solid rgba(236,232,223,.16); }
.ap-consent__cat { border-bottom: 1px solid rgba(236,232,223,.16); padding: .9rem 0; }
.ap-consent__cat label { display: block; cursor: pointer; color: inherit; font-size: inherit; }
.ap-consent__cat-head { display: flex; align-items: center; gap: .8rem; }
.ap-consent__cat-head strong { color: #fff; font-weight: 400; flex: 1; }
.ap-consent__cat-head em { font-style: normal; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(236,232,223,.6); }
.ap-consent__cat-head input { width: 20px; height: 20px; accent-color: #ece8df; }
.ap-consent__cat-desc { display: block; font-size: .84rem; color: rgba(236,232,223,.7); margin-top: .3rem; }
.ap-consent__actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.ap-consent__btn { min-height: 48px; padding: 0 1rem; background: transparent; color: #fff; border: 1px solid rgba(236,232,223,.6); font: 400 .7rem/1 "Lato", system-ui, sans-serif; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; }
.ap-consent__btn:hover { background: #ece8df; color: #141414; border-color: #ece8df; }
.ap-consent__btn:focus-visible { outline: 2px solid #8ab4f8; outline-offset: 2px; }
.ap-consent__btn[hidden] { display: none; }
@media (max-width: 560px) { .ap-consent { bottom: 0; width: 100vw; } .ap-consent__actions { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .ap-consent { transition: none; } }
