.hero-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;max-width:100%}
.hero-actions .button{flex:0 1 auto;max-width:100%;width:auto}
.consent-banner{position:fixed;z-index:40;inset:auto 0 0;max-height:calc(100dvh - 24px);overflow-y:auto;padding:12px 16px;background:var(--surface);border-top:1px solid var(--input);font-size:14px;line-height:20px}
.consent-banner-simple{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;max-width:1248px;margin-inline:auto}.consent-banner p{margin:0;color:var(--muted)}
.consent-banner-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.consent-banner-actions .button,.consent-banner-close{flex:0 0 auto;min-height:40px;width:auto;padding:8px 12px;font-size:13px;line-height:20px}.consent-banner-simple .consent-banner-actions{flex-wrap:nowrap}.consent-banner-actions a{text-decoration:underline;text-underline-offset:3px}
.consent-banner [hidden]{display:none!important}.consent-banner [data-consent-details]{max-width:640px;margin-inline:auto}.consent-banner-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.consent-banner h2{margin:0;font-size:15px;line-height:22px}.consent-banner-detail{font-size:13px}.consent-purpose{display:flex;align-items:flex-start;gap:10px;margin-top:14px;cursor:pointer;font-size:13px}.consent-purpose input{flex:0 0 auto;width:18px;height:18px;margin:2px 0;accent-color:var(--text)}.consent-purpose>span{min-width:0}.consent-purpose strong,.consent-purpose span span{display:block}.consent-purpose span span{margin-top:2px;color:var(--muted)}.consent-banner [data-consent-details]>.consent-banner-actions{justify-content:space-between;margin-top:16px}
[data-page-view=legal] .footer-preferences{flex-wrap:wrap}
@media(max-width:700px){.consent-banner{padding:14px 16px}.consent-banner-simple{flex-direction:column;align-items:stretch;gap:10px}.consent-banner-simple>.consent-banner-actions .button{flex:1 1 auto;padding-inline:8px}.consent-banner-actions a{font-size:13px}}
/* Consent card (4 Nov): a floating card that slides in once the page has settled and morphs between its two states.
   Accept, reject and manage keep the same weight: no choice is nudged. */
.consent-banner{inset:auto auto 20px 20px;width:min(440px,calc(100% - 40px));padding:20px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);box-shadow:0 24px 64px -16px rgba(0,0,0,.55),0 0 0 1px color-mix(in srgb,var(--text) 4%,transparent) inset;view-transition-name:consent}
:root[data-theme=light] .consent-banner{box-shadow:0 20px 48px -20px rgba(0,0,0,.22)}
.consent-banner-simple{flex-direction:column;align-items:stretch;gap:16px;max-width:none}
.consent-banner-simple .consent-banner-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.consent-banner-actions .button{border-radius:10px;justify-content:center}
.consent-banner [data-consent-details]{max-width:none}
.consent-purpose{align-items:center;justify-content:space-between;flex-direction:row-reverse;gap:16px;padding:12px 0;margin-top:0;border-top:1px solid var(--line)}
.consent-purpose:first-of-type{margin-top:12px}
.consent-purpose input{appearance:none;-webkit-appearance:none;position:relative;width:38px;height:22px;margin:0;border-radius:999px;background:var(--line);cursor:pointer;transition:background-color .25s cubic-bezier(.22,1,.36,1)}
.consent-purpose input::before{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .3s cubic-bezier(.34,1.32,.64,1)}
.consent-purpose input:checked{background:var(--trial,#5cc785)}
.consent-purpose input:checked::before{transform:translateX(16px);background:#fff}
.consent-purpose input:focus-visible{outline:2px solid var(--text);outline-offset:2px}
@keyframes consent-in{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.consent-banner:not([hidden]){animation:consent-in .7s .9s cubic-bezier(.34,1.32,.64,1) both}
:root[data-consent-shown] .consent-banner:not([hidden]){animation-delay:0s}
::view-transition-old(consent),::view-transition-new(consent){animation-duration:.4s;animation-timing-function:cubic-bezier(.22,1,.36,1);height:100%;object-fit:none;object-position:bottom left}
@keyframes consent-out{to{opacity:0;transform:translateY(24px) scale(.98)}}
::view-transition-old(consent):only-child{animation:consent-out .35s cubic-bezier(.22,1,.36,1) both}
@media(max-width:700px){.consent-banner{inset:auto 12px 12px 12px;width:auto;padding:16px}.consent-banner-simple .consent-banner-actions{grid-template-columns:1fr 1fr}.consent-banner-simple .consent-banner-actions [data-consent-expand]{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.consent-banner:not([hidden]){animation:none}.consent-purpose input,.consent-purpose input::before{transition:none}}
/* Close: a quiet cross; the translated label stays for screen readers. */
.consent-banner .consent-banner-close{position:relative;flex:none;width:32px;height:32px;min-height:0;padding:0;margin:-6px -6px 0 0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;transition:background-color .2s,color .2s}
.consent-banner .consent-banner-close:hover{background:var(--hover);color:var(--text)}
.consent-banner .consent-banner-close:focus-visible{outline:2px solid var(--text);outline-offset:2px}
.close-glyph::before,.close-glyph::after{content:'';position:absolute;top:50%;left:50%;width:14px;height:1.5px;border-radius:1px;background:currentColor}
.close-glyph::before{transform:translate(-50%,-50%) rotate(45deg)}.close-glyph::after{transform:translate(-50%,-50%) rotate(-45deg)}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* The card sits bottom right, beside the reading flow rather than over the start of each line. */
.consent-banner{inset:auto 20px 20px auto}
::view-transition-old(consent),::view-transition-new(consent){object-position:bottom right}
@media(max-width:700px){.consent-banner{inset:auto 12px 12px 12px}}
.hero-note{display:block;margin-top:-8px;font-size:14px;line-height:20px;color:var(--muted)}
