.legal-footer{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;padding:28px 20px;border-top:1px solid var(--line)}
.legal-text-button,.legal-footer button{border:0;background:none;color:inherit;font:inherit;font-size:14px;cursor:pointer;padding:8px 0;text-decoration:underline;text-underline-offset:5px}
#cookie-notice{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:20px;right:20px;margin:auto;max-width:1120px;z-index:9000;background:var(--ivory);color:var(--teal);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 12px 48px #143b5926;display:flex;align-items:center;gap:28px;animation:ratings-detail-enter .45s ease both}
#cookie-notice[hidden]{display:none}#cookie-notice h2{font:600 22px/1.4 var(--sans);letter-spacing:normal;word-spacing:normal;text-transform:none;margin:0 0 8px}#cookie-notice p{font-size:14px;line-height:1.65;margin:0;max-width:660px}.cookie-actions{display:flex;gap:12px;flex-shrink:0}.cookie-actions .button{background:var(--brand-blue);color:white;border:1px solid var(--brand-blue);padding:12px 18px;min-height:44px;font-size:13px}.cookie-actions .button[data-cookie-choice="necessary"]{background:transparent;color:var(--brand-blue)}.cookie-actions .button[data-cookie-choice="necessary"]:hover{background:#054e930a}
dialog.legal-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;overflow:auto;overscroll-behavior:contain}.legal-dialog .dialog-header{position:sticky;top:0;background:var(--ivory);z-index:3;animation:none}.legal-dialog .dialog-header h2{font-size:clamp(28px,4vw,48px);min-width:0}.legal-dialog .dialog-header .close-dialog{align-self:flex-start}.legal-content{max-width:860px;margin:0 auto;padding:40px 28px 72px}.legal-content h3{font:500 30px/1.2 var(--serif,Georgia,serif);margin:32px 0 14px}.legal-content p{font-size:16px;line-height:1.85;margin:0 0 18px}.legal-content .eyebrow{font-size:12px}.legal-content a{text-decoration:underline;text-underline-offset:4px}.legal-dialog[open]{animation:legal-surface-in .48s cubic-bezier(.22,1,.36,1) both}
.legal-dialog[open]::backdrop{backdrop-filter:none;animation:legal-surface-in .48s ease both}
.legal-dialog[open] .dialog-header,.legal-dialog[open] .legal-content{animation:legal-content-in .5s cubic-bezier(.22,1,.36,1) .08s backwards}
.legal-dialog[open].is-closing,.legal-dialog[open].is-closing::backdrop{animation:legal-surface-out .28s ease both}
@keyframes legal-surface-in{from{opacity:0}to{opacity:1}}
@keyframes legal-content-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes legal-surface-out{from{opacity:1}to{opacity:0}}
@media(max-width:760px){#cookie-notice{left:12px;right:12px;bottom:12px;padding:20px;flex-direction:column;align-items:stretch;gap:14px}.cookie-actions{display:grid;grid-template-columns:1fr 1fr}.cookie-actions .button{justify-content:center}.legal-footer{gap:16px}.legal-content{padding:24px 24px 48px}}
@media(prefers-reduced-motion:reduce){#cookie-notice,.legal-dialog[open],.legal-dialog[open]::backdrop,.legal-dialog[open] .dialog-header,.legal-dialog[open] .legal-content,.legal-dialog[open].is-closing,.legal-dialog[open].is-closing::backdrop{animation:none}}

/* Shared desktop dialog shape; mobile dialogs keep their edge-to-edge layout. */
@media(min-width:761px){
 dialog[id]{border-radius:24px}
 dialog.legal-dialog{inset:16px;width:calc(100vw - 32px);height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);margin:auto;border-radius:24px}
}
