:root {
  --color-primary: #1C1917;
  --color-secondary: #2C2825;
  --color-accent: #D4B896;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 5rem;
}

body {
  font-family: 'Source Sans 3', system-ui, sans-serif;
}

::selection {
  background: rgba(212, 184, 150, 0.35);
}

/* Button fixes */
button, .btn, [class*="btn-"], a[href="#order_form"] {
  white-space: nowrap;
  min-width: fit-content;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

form button[type="submit"] {
  white-space: normal;
  width: 100%;
}

/* Focus ring normalization */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(212, 184, 150, 0.45);
  border-radius: 0.75rem;
}

/* Subtle premium grain */
.premium-grain {
  position: relative;
}
.premium-grain::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.06;
  background-image: url("assets/img/grain.png");
  background-size: 420px 420px;
  mix-blend-mode: multiply;
}

/* Animations */
[data-animate] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
[data-animate].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.rotate-180 {
  transform: rotate(180deg);
}

/* Accordion baseline */
[data-faq-panel] {
  display: none;
}
[data-faq-panel].is-open {
  display: block;
}

/* Mobile menu transition helper */
#mobile-menu {
  transform-origin: top;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-animate] { transition: none; transform: none; opacity: 1; }
}