html {
  scroll-behavior: smooth;
}

body {
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
}

.font-display {
  font-family: 'Playfair Display', serif;
}

::selection {
  background-color: #D4AF37;
  color: #0B1220;
}

/* Custom scrollbar */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: #f1f4f9;
}
::-webkit-scrollbar-thumb {
  background: #D4AF37;
  border-radius: 4px;
}

/* Subtle noise / texture overlay for hero & dark sections */
.bg-noise {
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.06) 1px, transparent 0);
  background-size: 22px 22px;
}

/* Gold underline accent used under eyebrow labels */
.gold-underline {
  position: relative;
}
.gold-underline::after {
  content: '';
  display: block;
  width: 44px;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, #D4AF37, #eeda98);
  margin-top: 10px;
}
.gold-underline.center::after {
  margin-left: auto;
  margin-right: auto;
}

/* Premium card hover lift */
.hover-lift {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}
.hover-lift:hover {
  transform: translateY(-6px);
}

/* Ken-Burns style slow zoom for hero background images */
@keyframes slowZoom {
  from { transform: scale(1); }
  to { transform: scale(1.08); }
}
.animate-slow-zoom {
  animation: slowZoom 20s ease-in-out infinite alternate;
}

/* Fade in animation for elements */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in {
  animation: fadeInUp 0.6s ease-out both;
}

/* Simple range slider styling for calculators */
input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  height: 6px;
  border-radius: 9999px;
  background: #e2e8f0;
  outline: none;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #D4AF37;
  cursor: pointer;
  border: 3px solid #0B1220;
}
input[type="range"]::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #D4AF37;
  cursor: pointer;
  border: 3px solid #0B1220;
}

.spinner {
  border: 3px solid rgba(212,175,55,0.2);
  border-top-color: #D4AF37;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  animation: spin 0.8s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}
