/* Aulendra cookie consent: a compact bottom bar that reserves the space it needs, so it
   sits over the page edge rather than over the content.

   Decisions and where they come from:
   - emil-design-eng: press feedback through transform (120ms), hover gated behind
     (hover:hover) and (pointer:fine), the entrance is a transition rather than keyframes
     so it can be interrupted, it starts from translateY(100%) with opacity rather than
     from nothing, and the reduced-motion path keeps the fade and drops the travel.
   - impeccable craft floor: contrast pairs come from the verified tokens, the summary
     measure is inside 65-75ch, the elevation shadow carries an offset and a soft blur,
     and the controls name their action.

   Colour, type, radius, duration and easing values come from tokens.css. */

:root.consent-open body{padding-bottom:var(--consent-reserve,6.5rem)}
/* Keep the support chat reachable while the choice is pending. */
:root.consent-open .support-chat__launcher{bottom:calc(var(--consent-reserve,6.5rem) + 20px)}

.consent{position:fixed;z-index:55;left:0;right:0;bottom:0;border-top:1px solid var(--a-line);background:var(--a-raised);color:var(--a-ink);box-shadow:0 -12px 32px -18px color-mix(in oklab,var(--a-ink) 30%,transparent);opacity:1;transform:translateY(0);transition:transform var(--a-d-base) var(--a-ease),opacity var(--a-d-base) var(--a-ease)}
/* Entrance: the bar rises from its own height. Unsupported browsers simply show it. */
@starting-style{.consent{opacity:0;transform:translateY(100%)}}
.consent__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;width:min(var(--a-wrap),calc(100% - 2 * var(--a-gutter)));margin-inline:auto;padding:.75rem 0}
.consent__text{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem 1rem;flex:1 1 26rem;min-width:0}
.consent__text h2{margin:0;font:500 var(--a-fs-body)/1.3 var(--a-font-sans);letter-spacing:-.02em;color:var(--a-ink)}
.consent__summary{margin:0;color:var(--a-ink-2);font:400 var(--a-fs-small)/1.5 var(--a-font-sans);max-width:72ch}
.consent__summary a{color:var(--a-accent)}
.consent__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;flex:0 0 auto}
/* Allow and reject share one rule: equal prominence, equal size, neither preselected. */
.consent__choice{flex:1 1 auto;min-height:44px;padding:0 18px;border:1px solid var(--a-accent);border-radius:var(--a-r-1);background:var(--a-accent);color:var(--a-accent-ink);font:500 var(--a-fs-small)/1 var(--a-font-sans);white-space:nowrap;cursor:pointer;transition:background-color var(--a-d-fast) var(--a-ease),color var(--a-d-fast) var(--a-ease),transform var(--a-d-press) var(--a-ease)}
.consent__choice:active{transform:scale(.97)}
.consent__link{flex:0 0 auto;min-height:44px;padding:0 4px;border:0;background:none;color:var(--a-ink);font:500 var(--a-fs-small)/1 var(--a-font-sans);text-decoration:underline;text-decoration-color:var(--a-accent);text-underline-offset:4px;white-space:nowrap;cursor:pointer;transition:color var(--a-d-fast) var(--a-ease),transform var(--a-d-press) var(--a-ease)}
.consent__link:active{transform:scale(.97)}
@media(hover:hover) and (pointer:fine){
  .consent__choice:hover{background:transparent;color:var(--a-ink)}
  .consent__link:hover{color:var(--a-accent)}
}
.consent__panel{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1rem 2rem;width:min(var(--a-wrap),calc(100% - 2 * var(--a-gutter)));margin-inline:auto;padding:0 0 1rem;border-top:1px solid var(--a-line)}
.consent__panel>*{margin-top:.9rem}
.consent__row{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.75rem;flex:1 1 20rem;max-width:46rem}
.consent__row input{margin:.2rem 0 0;width:18px;height:18px;accent-color:var(--a-accent)}
.consent__row input:disabled{opacity:.7}
.consent__label{display:flex;flex-direction:column;gap:.15rem;cursor:pointer}
.consent__label strong{font:500 var(--a-fs-small)/1.3 var(--a-font-sans);color:var(--a-ink)}
.consent__detail{color:var(--a-ink-2);font:400 var(--a-fs-label)/1.5 var(--a-font-sans)}
.consent__note{flex:1 1 100%;margin:0;color:var(--a-ink-3);font:400 var(--a-fs-label)/1.5 var(--a-font-sans)}
.consent[hidden],.consent__panel[hidden]{display:none!important}

@media(max-width:720px){
  :root.consent-open body{padding-bottom:var(--consent-reserve,14rem)}
  :root.consent-open .support-chat__launcher{bottom:calc(var(--consent-reserve,14rem) + 20px)}
  .consent__inner{row-gap:.6rem;padding:.7rem 0 .8rem}
  .consent__actions{flex:1 1 100%}
  /* Allow and reject take equal halves of the row; the settings control sits below. */
  .consent__choice{flex:1 1 0}
  .consent__link{flex:1 1 100%;text-align:center}
  .consent__save{flex:1 1 100%}
}
/* Reduced motion: keep the comprehension fade, drop the travel and the press scale.
   The tokens already shorten every duration to 1ms under this query. */
@media(prefers-reduced-motion:reduce){
  .consent__choice,.consent__link{transition:none}
  .consent__choice:active,.consent__link:active{transform:none}
  @starting-style{.consent{opacity:0;transform:none}}
}
@media print{.consent{display:none!important}}
