:root {
  --kz-ink: #123524;
  --kz-ink-dark: #0c2519;
  --kz-ink-soft: #1c4a34;
  --kz-gold: #c9a24b;
  --kz-gold-deep: #a9822f;
  --kz-cream: #faf6ec;
  --kz-cream-deep: #f1e9d4;
  --kz-text: #21281f;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: var(--kz-cream);
  color: var(--kz-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.kz-serif {
  font-family: Georgia, "Times New Roman", Times, serif;
}

.kz-hairline {
  border-color: rgba(18, 53, 36, 0.14);
}

.kz-nav-link {
  position: relative;
}

.kz-nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -4px;
  height: 2px;
  background: var(--kz-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.25s ease;
}

.kz-nav-link:hover::after,
.kz-nav-link.is-active::after {
  transform: scaleX(1);
}

.kz-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.kz-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 32px -18px rgba(18, 53, 36, 0.35);
}

.kz-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--kz-gold), transparent);
}

.kz-badge {
  letter-spacing: 0.14em;
}

#kz-cookie-banner {
  transform: translateY(120%);
  transition: transform 0.4s ease;
}

#kz-cookie-banner.is-visible {
  transform: translateY(0);
}

#kz-mobile-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

#kz-mobile-menu.is-open {
  max-height: 480px;
}

.kz-focus-ring:focus-visible {
  outline: 2px solid var(--kz-gold);
  outline-offset: 2px;
}

img {
  color: transparent;
}
