.cookie-policy {
  background: var(--surface-base);
  padding-block: var(--space-9) var(--space-10);
}

.cookie-policy__container {
  width: min(100% - 3rem, var(--container-max));
}

.cookie-policy__layout {
  display: grid;
  grid-template-columns: minmax(0, 45rem) minmax(0, 17.5rem);
  column-gap: 2.5rem;
  align-items: start;
}

.cookie-policy__document,
.cookie-policy__sidebar {
  min-width: 0;
}

.cookie-policy__document {
  grid-column: 1;
  width: 100%;
}

.cookie-policy__sidebar {
  grid-column: 2;
  width: 100%;
}

.cookie-policy__header {
  width: 100%;
  padding-block-end: var(--space-8);
  border-block-end: 1px solid var(--border-subtle);
}

.cookie-policy__header h1 {
  max-width: 41.25rem;
  margin-block-end: var(--space-5);
  font-size: var(--text-3xl);
}

.cookie-policy__lead {
  max-width: 41.25rem;
  color: var(--color-parchment-100);
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
}

.cookie-policy__effective {
  display: flex;
  width: min(100%, 32.5rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
  margin-block: var(--space-5);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--border-color);
  border-inline-start: 3px solid var(--color-ember-500);
  border-radius: var(--radius-md);
  background: var(--surface-raised);
}

.cookie-policy__effective-label,
.cookie-policy__mini-label,
.cookie-policy__warning-label {
  color: var(--color-rune-300);
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
}

.cookie-policy__effective strong {
  color: var(--color-parchment-100);
  font-size: var(--text-lg);
  font-variant-numeric: tabular-nums;
}

.cookie-policy__purpose {
  max-width: 42rem;
  margin-block-end: 0;
}

.cookie-policy__section {
  width: 100%;
  padding-block: var(--space-9) 0;
}

.cookie-policy__section > h2 {
  margin-block-end: var(--space-5);
}

.cookie-policy__concepts {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-5);
}

.cookie-policy__concept {
  width: min(100%, 42.5rem);
  min-width: 0;
  padding-inline-start: var(--space-4);
  border-inline-start: 3px solid var(--color-rune-500);
}

.cookie-policy__concept--narrow {
  width: min(100%, 40.625rem);
}

.cookie-policy__concept--emphasis {
  width: min(100%, 40rem);
  border-inline-start-color: var(--color-parchment-300);
}

.cookie-policy__concept h3,
.cookie-policy__category h3,
.cookie-policy__choice h3,
.cookie-policy__external-copy h3,
.cookie-policy__update-panel h3,
.cookie-policy__privacy-panel h3 {
  margin-block-end: var(--space-3);
}

.cookie-policy__concept p,
.cookie-policy__category p,
.cookie-policy__choice p,
.cookie-policy__external-copy p,
.cookie-policy__update-panel p,
.cookie-policy__privacy-panel p {
  margin-block-end: 0;
}

.cookie-policy__concept--emphasis p {
  color: var(--color-parchment-100);
}

.cookie-policy__category-list {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
}

.cookie-policy__category {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  padding: var(--space-5);
  border: 1px solid var(--border-color);
  border-inline-start-width: 3px;
  border-radius: var(--radius-md);
  background: var(--surface-primary);
}

.cookie-policy__category--necessary {
  border-inline-start-color: var(--color-moss-500);
  background: var(--surface-raised);
}

.cookie-policy__category--preferences {
  border-inline-start-color: var(--color-rune-500);
}

.cookie-policy__category--optional {
  border-inline-start-color: var(--color-ember-500);
}

.cookie-policy__category-heading {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}

.cookie-policy__category-heading > * {
  min-width: 0;
}

.cookie-policy__category-heading h3 {
  flex: 1 1 18rem;
  margin-block-end: 0;
}

.cookie-policy__category p {
  width: min(100%, 40rem);
}

.cookie-policy__choices {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-6);
}

.cookie-policy__choice {
  display: flex;
  width: min(100%, 41.25rem);
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
}

.cookie-policy__choice .cookie-policy__mini-label {
  margin: 0;
}

.cookie-policy__choice h3 {
  margin-block-end: 0;
}

.cookie-policy__steps {
  display: flex;
  width: min(100%, 35rem);
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: cookie-step;
}

.cookie-policy__steps li {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 2.75rem;
  padding-inline-start: 2.75rem;
  color: var(--color-parchment-300);
  counter-increment: cookie-step;
}

.cookie-policy__steps li::before {
  position: absolute;
  inset-block-start: 0.1rem;
  inset-inline-start: 0;
  display: flex;
  width: 1.75rem;
  height: 1.75rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-rune-500);
  border-radius: var(--radius-pill);
  color: var(--color-rune-300);
  content: counter(cookie-step);
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1;
}

.cookie-policy__warning {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-2);
  padding: var(--space-4);
  border: 1px solid var(--border-color);
  border-inline-start: 3px solid var(--color-danger-500);
  border-radius: var(--radius-md);
  background: var(--surface-raised);
}

.cookie-policy__warning-label {
  margin: 0;
  color: var(--color-danger-500);
}

.cookie-policy__warning p:last-child {
  margin: 0;
}

.cookie-policy__external-copy {
  display: flex;
  width: min(100%, 42.5rem);
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
}

.cookie-policy__external-copy h3,
.cookie-policy__update-panel h3,
.cookie-policy__privacy-panel h3 {
  margin: 0;
}

.cookie-policy__update-panel {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  margin-block-start: var(--space-6);
  padding: var(--space-5);
  border: 1px solid var(--border-color);
  border-block-start: 3px solid var(--color-rune-500);
  border-radius: var(--radius-md);
  background: var(--surface-raised);
}

.cookie-policy__date-row {
  display: flex;
  width: min(100%, 17.5rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
  margin-block-start: var(--space-5);
  color: var(--color-rune-300);
  font-family: var(--font-heading);
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.3;
  text-transform: uppercase;
}

.cookie-policy__date-row strong {
  color: var(--color-parchment-100);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  text-transform: none;
}

.cookie-policy__section--closing {
  padding-block-end: var(--space-4);
}

.cookie-policy__privacy-panel {
  display: flex;
  width: min(100%, 38.75rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-5);
  border: 1px solid var(--border-color);
  border-inline-start: 3px solid var(--color-rune-500);
  border-radius: var(--radius-md);
  background: var(--surface-raised);
}

.cookie-policy__privacy-link {
  width: auto;
  min-height: 2.75rem;
}

.cookie-policy__toc {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--surface-primary);
}

.cookie-policy__toc--desktop {
  position: sticky;
  inset-block-start: var(--space-8);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  padding: var(--space-4);
}

.cookie-policy__toc-title {
  margin: 0;
  color: var(--color-parchment-100);
  font-family: var(--font-heading);
  font-size: var(--text-lg);
  font-weight: 700;
  line-height: 1.2;
}

.cookie-policy__toc ul {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
}

.cookie-policy__toc li {
  width: 100%;
  min-width: 0;
}

.cookie-policy__toc a {
  display: block;
  width: 100%;
  min-width: 0;
  padding: var(--space-1) 0;
  color: var(--color-rune-300);
  font-size: var(--text-sm);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.cookie-policy__toc a:hover {
  color: var(--color-ember-300);
}

.cookie-policy__toc--mobile {
  display: none;
}

.cookie-policy [id] {
  scroll-margin-block-start: var(--space-8);
}

@media (max-width: 63.99rem) {
  .cookie-policy__layout {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--space-8);
  }

  .cookie-policy__document,
  .cookie-policy__sidebar {
    grid-column: 1;
  }

  .cookie-policy__sidebar {
    display: block;
  }

  .cookie-policy__toc--desktop {
    display: none;
  }

  .cookie-policy__toc--mobile {
    display: block;
    padding: var(--space-4);
  }

  .cookie-policy__toc--mobile summary {
    cursor: pointer;
    color: var(--color-parchment-100);
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    font-weight: 700;
    line-height: 1.2;
  }

  .cookie-policy__toc--mobile ul {
    margin-block: var(--space-4) 0;
  }
}

@media (max-width: 47.99rem) {
  .cookie-policy {
    padding-block: var(--space-8);
  }

  .cookie-policy__container {
    width: min(100% - 2rem, var(--container-max));
  }

  .cookie-policy__header {
    padding-block-end: var(--space-7);
  }

  .cookie-policy__header h1 {
    font-size: clamp(2rem, 7vw, 2.5rem);
  }

  .cookie-policy__lead {
    font-size: var(--text-base);
    line-height: var(--leading-body);
  }

  .cookie-policy__effective {
    width: 100%;
  }

  .cookie-policy__section {
    padding-block-start: var(--space-8);
  }

  .cookie-policy__concepts {
    gap: var(--space-5);
  }

  .cookie-policy__concept,
  .cookie-policy__concept--narrow,
  .cookie-policy__concept--emphasis,
  .cookie-policy__choice,
  .cookie-policy__external-copy,
  .cookie-policy__privacy-panel {
    width: 100%;
  }

  .cookie-policy__category {
    padding: var(--space-4);
  }

  .cookie-policy__category-heading {
    align-items: flex-start;
  }

  .cookie-policy__category-heading h3 {
    flex-basis: 100%;
  }

  .cookie-policy__steps {
    width: 100%;
  }

  .cookie-policy__privacy-link {
    width: 100%;
    min-height: 3rem;
    justify-content: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cookie-policy *,
  .cookie-policy *::before,
  .cookie-policy *::after {
    transition: none !important;
  }
}
