/* ==========================================================================
   cookie-consent.css — Consent-Banner und Einstellungs-Trigger.
   Alle Werte über Design-Tokens (tokens.css).
   ========================================================================== */

@layer components {

  .cookie-consent {
    position: fixed;
    inset-inline: var(--space-sm);
    inset-block-end: var(--space-sm);
    z-index: 120;
    max-inline-size: min(42rem, calc(100% - (var(--space-sm) * 2)));
    margin-inline: auto;
    padding: var(--space-md);
    background: var(--surface);
    border: var(--border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
  }

  .cookie-consent[hidden] {
    display: none;
  }

  .cookie-consent__inner {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
  }

  .cookie-consent__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: var(--text-h3);
    line-height: var(--leading-snug);
    color: var(--ink);
  }

  .cookie-consent__text {
    margin: 0;
    font-size: var(--text-sm);
    line-height: var(--leading-body);
    color: var(--ink-soft);
  }

  .cookie-consent__link {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 0.15em;
  }

  .cookie-consent__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xs);
    justify-content: flex-end;
  }

  .cookie-consent__btn {
    min-block-size: var(--touch-target);
  }

  .cookie-consent-reopen {
    position: fixed;
    inset-inline-start: var(--space-sm);
    inset-block-end: var(--space-sm);
    z-index: 110;
    padding: var(--space-2xs) var(--space-xs);
    border: var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--muted);
    font-family: var(--font-mono);
    font-size: var(--text-xxs);
    letter-spacing: var(--track-mono);
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
  }

  .cookie-consent-reopen:hover,
  .cookie-consent-reopen:focus-visible {
    color: var(--ink);
    border-color: var(--line-strong);
  }

  .cookie-consent-reopen[hidden] {
    display: none;
  }

  .link-as-button {
    display: inline;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--accent);
    font: inherit;
    text-decoration: underline;
    text-underline-offset: 0.15em;
    cursor: pointer;
  }

  .link-as-button:hover,
  .link-as-button:focus-visible {
    color: var(--ink);
  }

  @media (min-width: 40rem) {
    .cookie-consent {
      inset-inline: auto;
      inset-inline-end: var(--space-md);
      inset-block-end: var(--space-md);
      max-inline-size: 28rem;
    }

    .cookie-consent-reopen {
      inset-inline-start: var(--space-md);
      inset-block-end: var(--space-md);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .cookie-consent,
    .cookie-consent-reopen {
      transition: none;
    }
  }
}
