:root {
  --font-sans: 'Poppins', ui-sans-serif, system-ui, sans-serif;
  --font-display: 'Playfair Display', Georgia, serif;
  --background: 0 0% 98%;
  --foreground: 0 0% 4%;
  --card: 0 0% 100%;
  --card-foreground: 0 0% 4%;
  --popover: 0 0% 100%;
  --popover-foreground: 0 0% 4%;
  --primary: 46 65% 52%;
  --primary-foreground: 0 0% 4%;
  --secondary: 0 0% 8%;
  --secondary-foreground: 0 0% 98%;
  --muted: 0 0% 94%;
  --muted-foreground: 0 0% 34%;
  --accent: 42 45% 88%;
  --accent-foreground: 0 0% 9%;
  --destructive: 0 72% 45%;
  --destructive-foreground: 0 0% 98%;
  --success: 142 57% 35%;
  --success-foreground: 0 0% 98%;
  --warning: 38 92% 45%;
  --warning-foreground: 0 0% 4%;
  --info: 210 80% 42%;
  --info-foreground: 0 0% 98%;
  --border: 0 0% 86%;
  --input: 0 0% 88%;
  --ring: 46 65% 52%;
  --radius: 0.625rem;
  --shadow-sm: 0 1px 2px hsl(var(--foreground) / 0.05);
  --shadow-md: 0 4px 12px hsl(var(--foreground) / 0.08);
  --shadow-lg: 0 12px 32px hsl(var(--foreground) / 0.12);
  --shadow-elegant: 0 18px 60px hsl(var(--primary) / 0.22);
  --transition-fast: 150ms cubic-bezier(0.4,0,0.2,1);
  --transition: 200ms cubic-bezier(0.4,0,0.2,1);
  --transition-smooth: 300ms cubic-bezier(0.4,0,0.2,1);
}
.dark {
  --background: 0 0% 4%;
  --foreground: 0 0% 96%;
  --card: 0 0% 8%;
  --card-foreground: 0 0% 96%;
  --popover: 0 0% 10%;
  --popover-foreground: 0 0% 96%;
  --primary: 46 70% 58%;
  --primary-foreground: 0 0% 4%;
  --secondary: 0 0% 94%;
  --secondary-foreground: 0 0% 4%;
  --muted: 0 0% 14%;
  --muted-foreground: 0 0% 70%;
  --accent: 42 34% 18%;
  --accent-foreground: 46 70% 76%;
  --destructive: 0 68% 52%;
  --destructive-foreground: 0 0% 98%;
  --success: 142 55% 42%;
  --success-foreground: 0 0% 98%;
  --warning: 40 92% 58%;
  --warning-foreground: 0 0% 4%;
  --info: 210 85% 62%;
  --info-foreground: 0 0% 4%;
  --border: 0 0% 20%;
  --input: 0 0% 22%;
  --ring: 46 70% 58%;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font-sans);
  background: hsl(var(--background));
  color: hsl(var(--foreground));
}
.font-display { font-family: var(--font-display); }
.safe-bottom { padding-bottom: calc(0.75rem + env(safe-area-inset-bottom)); }
.hero-texture {
  background:
    radial-gradient(circle at 20% 15%, hsl(var(--primary) / 0.22), transparent 30%),
    radial-gradient(circle at 80% 10%, hsl(var(--accent) / 0.24), transparent 32%),
    linear-gradient(135deg, hsl(var(--secondary)), hsl(var(--background)) 62%);
}
.luxury-grid {
  background-image: linear-gradient(hsl(var(--border) / 0.35) 1px, transparent 1px), linear-gradient(90deg, hsl(var(--border) / 0.35) 1px, transparent 1px);
  background-size: 48px 48px;
}
input, select, textarea { font-size: max(16px, 1rem); }
img { max-width: 100%; display: block; }
