/* ============================================================
   Cookie banner — glass slide-up, Lumar-brand, mobile-first
   ============================================================ */

.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:9999;
  padding:16px;
  pointer-events:none;
  display:flex;justify-content:center;
  /* slide-up entrance */
  animation:cookie-rise .55s cubic-bezier(.2,.9,.2,1) both;
}
.cookie-banner[hidden]{display:none !important}
.cookie-stage[hidden]{display:none !important}
@keyframes cookie-rise{
  from{transform:translateY(120%);opacity:0}
  to  {transform:translateY(0);opacity:1}
}
@media (prefers-reduced-motion: reduce){
  .cookie-banner{animation:none}
}

.cookie-banner.is-hiding{
  animation:cookie-sink .35s cubic-bezier(.4,0,.7,1) both;
}
@keyframes cookie-sink{
  from{transform:translateY(0);opacity:1}
  to  {transform:translateY(120%);opacity:0}
}

.cookie-card{
  pointer-events:auto;
  width:100%;max-width:560px;
  background:#fff;
  border:1px solid rgba(12,15,22,.10);
  border-radius:22px;
  padding:24px 26px 22px;
  box-shadow:
    0 24px 50px -16px rgba(12,15,22,.18),
    0 4px 16px -6px rgba(12,15,22,.08);
  color:var(--ink);
  position:relative;
}

.cookie-eyebrow{
  display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--signal-deep);margin-bottom:12px;
}
.cookie-eyebrow .dot{
  width:8px;height:8px;border-radius:999px;background:var(--signal);
  box-shadow:0 0 0 4px rgba(73,120,247,.18);
  animation:cookie-pulse 2.4s ease-out infinite;
}
@keyframes cookie-pulse{
  0%,100%{box-shadow:0 0 0 4px rgba(73,120,247,.18)}
  50%    {box-shadow:0 0 0 8px rgba(73,120,247,.06)}
}

.cookie-card h2{
  font-size:24px;line-height:1.1;letter-spacing:-.02em;font-weight:600;
  margin:0 0 10px;text-wrap:balance;
}
.cookie-card h2 em{
  font-family:var(--serif);font-style:italic;font-weight:400;color:var(--signal);
}

.cookie-card p{
  font-size:14.5px;line-height:1.55;color:var(--ink-2);margin:0 0 18px;
}

.cookie-actions{
  display:flex;gap:8px;flex-wrap:wrap;align-items:center;
}
.cookie-actions .cta-pill{padding:11px 18px;font-size:13px}
.cookie-link{
  background:none;border:0;cursor:pointer;
  font:inherit;font-size:13px;font-weight:500;color:var(--ink-2);
  padding:10px 8px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--rule);
  transition:color .2s ease, text-decoration-color .2s ease;
}
.cookie-link:hover{color:var(--signal);text-decoration-color:var(--signal)}

/* ---- Preferences view ---- */
.cookie-back{
  background:none;border:0;cursor:pointer;font:inherit;font-size:14px;
  width:24px;height:24px;display:inline-grid;place-items:center;color:var(--ink-2);
  border-radius:6px;margin-right:4px;
  transition:background .2s ease;
}
.cookie-back:hover{background:rgba(12,15,22,.06)}

.cookie-cats{
  list-style:none;padding:0;margin:6px 0 18px;
  display:flex;flex-direction:column;gap:10px;
}
.cookie-cat{
  border:1px solid rgba(12,15,22,.08);background:var(--paper);
  border-radius:14px;padding:14px 16px;
  transition:border-color .2s ease, background .2s ease;
}
.cookie-cat:hover{border-color:rgba(73,120,247,.25)}
.cookie-cat-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.cookie-cat-row label{display:flex;flex-direction:column;cursor:pointer;flex:1;min-width:0}
.cookie-cat-name{font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:-.005em}
.cookie-cat-tag{
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);margin-top:2px;
}
.cookie-cat p{
  font-size:12.5px;line-height:1.5;color:var(--ink-2);margin:8px 0 0;
}

/* Toggle switch */
.cookie-toggle{
  flex:none;display:inline-block;
  width:38px;height:22px;border-radius:999px;
  background:rgba(12,15,22,.18);border:0;cursor:pointer;
  position:relative;padding:0;
  transition:background .25s ease;
}
.cookie-toggle .cookie-toggle-dot{
  position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:999px;
  background:#fff;box-shadow:0 1px 3px rgba(12,15,22,.2);
  transition:left .25s cubic-bezier(.5,0,.3,1.2), background .25s ease;
}
.cookie-toggle[aria-checked="true"]{background:var(--signal)}
.cookie-toggle[aria-checked="true"] .cookie-toggle-dot{left:18px}
.cookie-toggle.is-locked{
  background:rgba(73,120,247,.22);cursor:not-allowed;
}
.cookie-toggle.is-locked .cookie-toggle-dot{left:18px;background:rgba(73,120,247,.5)}
.cookie-toggle:focus-visible{outline:2px solid var(--signal);outline-offset:3px}

.cookie-foot{
  font-size:11.5px;color:var(--ink-3);margin:14px 0 0;line-height:1.5;
}
.cookie-foot a{color:var(--signal);text-decoration:none}
.cookie-foot a:hover{text-decoration:underline}

/* ---- Mobile tweaks ---- */
@media (max-width:520px){
  .cookie-banner{padding:10px}
  .cookie-card{padding:20px 22px;border-radius:20px}
  .cookie-card h2{font-size:21px}
  .cookie-card p{font-size:14px}
  .cookie-actions{gap:6px}
  .cookie-actions .cta-pill{flex:1 1 auto;text-align:center;padding:11px 14px}
  .cookie-link{flex:1 1 100%;text-align:center;margin-top:4px}
}

/* ---- Footer reopen-link ---- */
.cookie-reopen{
  background:none;border:0;color:var(--signal);cursor:pointer;
  font:inherit;font-size:inherit;padding:0;text-decoration:none;
}
.cookie-reopen:hover{text-decoration:underline}
