/* =========================================================
   ALPEKIN POLICY / LEGAL PAGE SYSTEM
   ---------------------------------------------------------
   Shared page-specific layer for:
   Legal, Privacy, Terms, Cookies, Advertising.
   Depends on the shared foundations for tokens, typography, layout,
   buttons, accessibility, and global shell.
   ========================================================= */

.policy-body {
  background: var(--surface-paper);
}

.policy-page {
  position: relative;
  overflow: hidden;
  background: var(--surface-paper);
  color: var(--text-strong);
}

.policy-page p {
  margin-block: 0;
}

.policy-page a:not(.button) {
  color: var(--link);
  font-weight: var(--weight-semibold);
}

.policy-hero {
  --focus-color: var(--ivory-bone);
  --link: var(--link-on-dark);
  --link-hover: var(--link-on-dark-hover);
  padding-block: clamp(var(--space-8), 5.5vw, var(--space-12));
  background:
    radial-gradient(
      circle at 86% 12%,
      color-mix(in srgb, var(--tree-gold) 13%, transparent),
      transparent 28rem
    ),
    var(--grad-earth-forest);
  color: var(--ivory-bone);
  border-block-end: var(--border-width) solid color-mix(in srgb, var(--tree-gold) 24%, transparent);
}

.policy-hero__inner {
  max-width: var(--container-narrow);
}

.policy-kicker {
  margin-block-end: var(--space-3);
  color: var(--link-on-dark);
  font-size: var(--fs-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--ls-kicker);
  line-height: 1.2;
  text-transform: var(--text-case-label);
}

.policy-hero h1 {
  max-width: 12ch;
  margin: 0;
  color: var(--ivory-bone);
  font-family: var(--font-heading);
  font-size: var(--fs-display-lg);
  font-weight: var(--weight-bold);
  line-height: var(--lh-display);
  letter-spacing: var(--ls-heading-tight);
}

.policy-lead {
  max-width: var(--content-measure);
  margin-block-start: var(--space-5);
  color: color-mix(in srgb, var(--ivory-bone) 82%, transparent);
  font-size: clamp(1.05rem, 0.65vw + 1rem, 1.25rem);
  line-height: var(--lh-loose);
}

.policy-date {
  margin-block-start: var(--space-5);
  color: color-mix(in srgb, var(--ivory-bone) 70%, transparent);
  font-size: var(--fs-small);
}

.policy-section {
  padding-block: clamp(var(--space-5), 3.5vw, var(--space-8));
  background:
    radial-gradient(
      circle at 8% 0%,
      color-mix(in srgb, var(--tree-gold) 6%, transparent),
      transparent 22rem
    ),
    var(--surface-paper);
}

.policy-section + .policy-section {
  padding-block-start: 0;
}

.policy-card {
  padding: clamp(var(--space-5), 2.5vw, var(--space-7));
  border: var(--border-width) solid var(--border);
  border-radius: var(--radius-xl);
  background: color-mix(in srgb, var(--surface-clean) 94%, var(--ivory-bone));
  box-shadow: var(--elevation-sm);
}

.policy-card--accent {
  border-color: color-mix(in srgb, var(--tree-gold) 38%, var(--moon-ash));
  background:
    linear-gradient(
      145deg,
      color-mix(in srgb, var(--surface-clean) 92%, var(--ivory-bone)),
      var(--surface-muted)
    );
}

.policy-card h2,
.policy-section__header h2 {
  margin: 0 0 var(--space-3);
  color: var(--text-strong);
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 2vw, 2.35rem);
  font-weight: var(--weight-bold);
  line-height: var(--lh-heading);
  letter-spacing: var(--ls-heading-tight);
}

.policy-card p,
.policy-card li,
.policy-section__header p {
  color: var(--text-muted-dark);
  font-size: clamp(1rem, 0.35vw + 0.96rem, 1.14rem);
  line-height: var(--lh-body);
}

.policy-card .button {
  margin-block-start: var(--space-5);
}

.policy-list {
  display: grid;
  gap: var(--space-3);
  margin: 0;
  padding-inline-start: var(--space-6);
}

.policy-list li::marker {
  color: var(--tree-gold);
}

.policy-section__header {
  max-width: var(--content-measure);
  margin-block-end: var(--space-5);
}

.policy-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.policy-link-card {
  display: grid;
  gap: var(--space-2);
  padding: clamp(var(--space-5), 2vw, var(--space-6));
  border: var(--border-width) solid var(--border);
  border-radius: var(--radius-xl);
  background: var(--surface-clean);
  box-shadow: var(--elevation-sm);
  text-decoration: none;
  transition:
    border-color var(--duration-standard) ease,
    box-shadow var(--duration-standard) ease,
    transform var(--duration-standard) ease;
}

.policy-link-card:hover,
.policy-link-card:focus-visible {
  border-color: color-mix(in srgb, var(--tree-gold) 44%, var(--moon-ash));
  box-shadow: var(--elevation-md);
  transform: translateY(-2px);
  text-decoration: none;
}

.policy-link-card span {
  color: var(--text-strong);
  font-family: var(--font-heading);
  font-size: clamp(1.35rem, 1vw, 1.7rem);
  font-weight: var(--weight-bold);
  line-height: var(--lh-heading);
}

.policy-link-card small {
  color: var(--text-muted-dark);
  font-size: var(--fs-small);
  line-height: 1.55;
}

/* Status / page mood refinements */
.policy-page--privacy .policy-hero {
  background:
    radial-gradient(
      circle at 82% 12%,
      color-mix(in srgb, var(--cleansing-blue-gray) 14%, transparent),
      transparent 28rem
    ),
    var(--grad-earth-forest);
}

.policy-page--terms .policy-hero {
  background:
    radial-gradient(
      circle at 82% 12%,
      color-mix(in srgb, var(--oxidized-bronze) 14%, transparent),
      transparent 28rem
    ),
    var(--grad-earth-forest);
}

.policy-page--cookies .policy-hero {
  background:
    radial-gradient(
      circle at 82% 12%,
      color-mix(in srgb, var(--sacred-copper) 13%, transparent),
      transparent 28rem
    ),
    var(--grad-earth-forest);
}

.policy-page--advertise .policy-hero {
  background:
    radial-gradient(
      circle at 82% 12%,
      color-mix(in srgb, var(--burnt-clay) 16%, transparent),
      transparent 28rem
    ),
    var(--grad-earth-forest);
}

/* Responsive */
@media (max-width: 1024px) {
  .policy-link-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .policy-hero {
    padding-block: var(--space-8);
  }

  .policy-hero h1 {
    max-width: 11ch;
    font-size: clamp(2.45rem, 13vw, 4rem);
  }

  .policy-lead {
    line-height: var(--lh-body);
  }

  .policy-section {
    padding-block: var(--space-5);
  }

  .policy-card {
    padding: var(--space-5);
    border-radius: var(--radius-lg);
  }
}

@media (max-width: 400px) {
  .policy-hero h1 {
    font-size: clamp(2.25rem, 12vw, 3.4rem);
  }
}

@media (hover: none) {
  .policy-link-card:hover {
    transform: none;
  }
}

@media print {
  .policy-hero,
  .policy-section,
  .policy-card,
  .policy-link-card {
    background: var(--print-paper) !important;
    box-shadow: none !important;
  }

  .policy-hero h1,
  .policy-lead,
  .policy-date,
  .policy-kicker,
  .policy-card h2,
  .policy-card p,
  .policy-card li {
    color: var(--print-ink) !important;
  }

  .policy-card,
  .policy-link-card {
    border-color: var(--print-ink) !important;
  }
}
