/* ==========================================================================
   KFB PROPERTY — OBSIDIAN DESIGN SYSTEM STYLES
   Tailored for UK / Scotland Private Property Acquisitions
   ========================================================================== */

html {
  scroll-behavior: smooth;
  scroll-padding-top: 5.5rem; /* 88px offset so anchors clear the sticky navigation */
  color-scheme: dark;
}

body {
  background-color: #09090b;
  color: #e5e1e4;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 0.015em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}

/* Force sharp architectural geometry */
*, *::before, *::after {
  border-radius: 0 !important;
}

/* Ensure all anchor target elements have clearance below the sticky nav */
section[id],
div[id],
article[id],
form[id],
[id] {
  scroll-margin-top: 5.5rem; /* 88px */
}

/* Hairline borders & subtle outlines */
.border-hairline {
  border-width: 1px;
  border-color: #29252b;
}

.border-accent-rose {
  border-width: 1px;
  border-color: rgba(235, 138, 174, 0.35);
}

.border-subtle-glow {
  box-shadow: 0 0 16px rgba(235, 138, 174, 0.08);
}

/* Ambient rose bloom */
.rose-bloom {
  background: radial-gradient(circle at center, rgba(235, 138, 174, 0.12) 0%, rgba(235, 138, 174, 0.02) 45%, transparent 70%);
}

.rose-glow-hover {
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.rose-glow-hover:hover {
  box-shadow: 0 0 24px rgba(235, 138, 174, 0.18);
  border-color: #eb8aae !important;
}

/* Custom horizontal skeleton key divider */
.key-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  width: 100%;
  max-width: 320px;
  margin: 1rem auto;
}

.key-divider-line {
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, transparent, rgba(235, 138, 174, 0.45));
}

.key-divider-line.right {
  background: linear-gradient(90deg, rgba(235, 138, 174, 0.45), transparent);
}

/* Slider controls for Scottish savings calculator */
input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  background: #1c1b1d;
  height: 6px;
  outline: none;
  cursor: pointer;
}

input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  background: #eb8aae;
  cursor: pointer;
  box-shadow: 0 0 12px rgba(235, 138, 174, 0.6);
  border: 2px solid #09090b;
}

input[type="range"]::-moz-range-thumb {
  width: 20px;
  height: 20px;
  background: #eb8aae;
  cursor: pointer;
  box-shadow: 0 0 12px rgba(235, 138, 174, 0.6);
  border: 2px solid #09090b;
}

/* Hide scrollbars cleanly */
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/* Marquee / Ticker animation */
@keyframes ticker {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.animate-ticker {
  display: flex;
  width: max-content;
  animation: ticker 40s linear infinite;
}

.animate-ticker:hover {
  animation-play-state: paused;
}

/* Accordion transition */
.faq-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease-out, opacity 0.25s ease-in;
  opacity: 0;
}

.faq-content.open {
  max-height: 400px;
  opacity: 1;
}

/* Subtle image overlay vignette */
.image-vignette {
  position: relative;
}

.image-vignette::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(9, 9, 11, 0.1) 0%, rgba(9, 9, 11, 0.85) 100%);
  pointer-events: none;
}

/* Explicit Top-Sticky Nav */
#main-nav {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 50;
}

/* Force price labels to always fit on one single line */
.single-line-price {
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  word-break: keep-all !important;
}

