/* The cookie notice (assets/js/track.js, studio-core/analytics) and the footer's "Cookies" button, 30.09.2026.
   jeanwwd's own look, not the kit's: the menu's light panel (--surface-2) with the chat panel's hairline and soft
   shadow, Geist at caption size; one line and «OK» since 01.10 (Jean: as short as Art. Lebedev's). Bottom left, where nothing else is fixed; above the menu and the request panel,
   so an unanswered notice never hides behind them. */
.consent{position:fixed;left:var(--m-page);bottom:max(16px, calc(30 * var(--u)));z-index:30;width:max-content;max-width:min(380px, calc(100% - 2 * var(--m-page)));
  display:grid;gap:var(--s-2);padding:6px 6px 6px 16px;border-radius:var(--r-card);background:var(--surface-2);color:var(--ink);
  border:var(--rule-w) solid color-mix(in srgb, var(--ink) 12%, transparent);box-shadow:0 10px 60px #0000001f;
  font-size:var(--fs-caption);line-height:var(--lh-caption);animation:consent-in var(--t-base) var(--ease-out) both}
@keyframes consent-in{from{opacity:0;transform:translateY(12px)}}
.consent__text{margin:0}
.consent__text a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;white-space:nowrap}
.consent__set{display:grid;gap:var(--s-1);padding:var(--s-1) 10px 0 0}
.consent__set[hidden]{display:none}
.consent__opt{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;font-size:var(--fs-small);line-height:var(--lh-small);color:var(--ink-2);cursor:pointer}
.consent__opt b{display:block;font-weight:var(--fw-ui);color:var(--ink)}
.consent__opt input{appearance:none;-webkit-appearance:none;position:relative;width:40px;height:24px;margin:0;border-radius:12px;
  background:color-mix(in srgb, var(--ink) 22%, transparent);cursor:pointer;transition:background var(--t-fast) var(--ease-out)}
.consent__opt input::after{content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:var(--surface);
  box-shadow:0 1px 3px #00000033;transition:transform var(--t-fast) var(--ease-out)}
.consent__opt input:checked{background:var(--ink)}
.consent__opt input:checked::after{transform:translateX(16px)}
/* One short line as wide as its content (it must not cover the hero), «OK» in the accent black; «Settings» is a word in the line that opens the switches (Jean, 01.10). */
.consent__row{display:flex;gap:var(--s-2);align-items:center}
.consent__row .consent__text{flex:1}
.consent__setup{padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;white-space:nowrap;
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
.consent__ok{flex:none;height:32px;padding:0 14px;border:0;border-radius:var(--r-pill);background:var(--ink);color:var(--ground);
  font-size:var(--fs-small);font-weight:var(--fw-ui);line-height:1.1;cursor:pointer;transition:opacity var(--t-fast) var(--ease-out)}
@media (hover: hover){.consent__ok:hover{opacity:.86}}
.consent__more{font-size:var(--fs-small);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
.consent a:focus-visible,.consent button:focus-visible,.consent input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media (max-width: 640px){.consent{left:12px;bottom:12px;max-width:calc(100% - 24px);padding-left:14px;font-size:var(--fs-small)}}
@media (prefers-reduced-motion: reduce){.consent{animation:none}}

/* the footer's reopen button reads as one more footer link */
.foot__consent{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;
  text-underline-offset:.2em;text-decoration-color:transparent;transition:color var(--t-fast),text-decoration-color var(--t-fast)}
.foot__consent:hover{color:var(--ink);text-decoration-color:currentColor}
