@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,600&family=Poppins:wght@300;400;500;600;700&display=swap');

:root {
  --background: 0 0% 5%;          /* near-black */
  --foreground: 40 33% 92%;       /* warm off-white */
  --border: 40 14% 20%;
  --card: 36 10% 9%;              /* dark card */
  --card-foreground: 40 33% 92%;
  --primary: 43 78% 52%;          /* gold */
  --primary-foreground: 0 0% 6%;  /* near-black text on gold */
  --secondary: 36 8% 14%;
  --secondary-foreground: 40 33% 92%;
  --muted: 36 8% 12%;
  --muted-foreground: 40 12% 64%;
  --accent: 36 8% 14%;
  --accent-foreground: 40 33% 92%;
  --destructive: 0 84% 60%;
}

* {
  border-color: hsl(var(--border));
}

/* ------------------------------------------------------------------ */
/*  Luxury design system                                               */
/* ------------------------------------------------------------------ */

/* Premium filled button */
.btn-luxury {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #D4A017, #B8860B);
  color: #fff;
  border-radius: 9999px;
  padding: 15px 38px;
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.01em;
  box-shadow: 0 12px 26px -12px rgba(212, 160, 23, 0.6);
  transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
}
.btn-luxury:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 32px -12px rgba(212, 160, 23, 0.7);
  filter: brightness(1.04);
}

/* Premium outline button */
.btn-outline-luxury {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: hsl(var(--primary));
  border: 1.5px solid hsl(var(--primary) / 0.5);
  border-radius: 9999px;
  padding: 13.5px 36px;
  font-weight: 600;
  font-size: 0.95rem;
  transition: transform 0.3s ease, border-color 0.3s ease, background 0.3s ease, color 0.3s ease;
}
.btn-outline-luxury:hover {
  transform: translateY(-3px);
  border-color: hsl(var(--primary));
  background: hsl(var(--primary) / 0.12);
  color: hsl(var(--primary));
}

/* Card hover lift */
.card-lift { transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease; }
.card-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 44px -22px rgba(45, 30, 30, 0.28);
}

/* Image zoom on hover */
.img-zoom { overflow: hidden; }
.img-zoom img { transition: transform 0.7s ease; }
.img-zoom:hover img { transform: scale(1.08); }

body {
  font-family: 'Poppins', sans-serif;
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Cormorant Garamond', serif;
}

.font-serif {
  font-family: 'Cormorant Garamond', serif;
}

.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.fade-in {
  animation: fadeIn 0.6s ease both;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ------------------------------------------------------------------ */
/*  Rich content typography — used for all admin-managed body content  */
/* ------------------------------------------------------------------ */
.rich-content {
  max-width: 850px;
  margin-left: auto;
  margin-right: auto;
  font-size: 1rem;            /* 16px mobile */
  line-height: 1.8;
  letter-spacing: 0.01em;
  color: hsl(var(--muted-foreground));
  text-align: left;
}

@media (min-width: 768px) {
  .rich-content { font-size: 1.125rem; }   /* 18px desktop */
}

.rich-content > :first-child { margin-top: 0; }
.rich-content > :last-child  { margin-bottom: 0; }

.rich-content p {
  margin: 0 0 1.5rem;          /* 24px paragraph spacing */
}

.rich-content h2,
.rich-content h3,
.rich-content h4 {
  font-family: 'Cormorant Garamond', serif;
  color: hsl(var(--foreground));
  font-weight: 700;
  line-height: 1.3;
}
.rich-content h2 { font-size: 1.75rem; margin: 2.25rem 0 1rem; }
.rich-content h3 { font-size: 1.4rem;  margin: 2rem 0 0.85rem; }
.rich-content h4 { font-size: 1.2rem;  margin: 1.75rem 0 0.75rem; }

.rich-content ul,
.rich-content ol {
  margin: 0 0 1.5rem;
  padding-left: 1.5rem;
}
.rich-content ul { list-style: disc; }
.rich-content ol { list-style: decimal; }
.rich-content li { margin-bottom: 0.5rem; padding-left: 0.25rem; }

.rich-content a {
  color: hsl(var(--primary));
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 600;
}
.rich-content a:hover { opacity: 0.85; }

.rich-content strong,
.rich-content b { font-weight: 700; color: hsl(var(--foreground)); }

.rich-content em, .rich-content i { font-style: italic; }

.rich-content blockquote {
  border-left: 3px solid hsl(var(--primary));
  padding-left: 1.25rem;
  margin: 0 0 1.5rem;
  font-style: italic;
  color: hsl(var(--foreground));
}

.rich-content hr {
  border: 0;
  border-top: 1px solid hsl(var(--border));
  margin: 2rem 0;
}

/* Scroll-reveal animation */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
[data-reveal].revealed {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* Images & figures inside rich content (e.g. inserted via CKEditor) */
.rich-content img {
  max-width: 100%;
  height: auto;
  border-radius: 0.75rem;
  margin: 1.75rem auto;
  display: block;
}
.rich-content figure { margin: 1.75rem 0; }
.rich-content figure img { margin: 0 auto; }
.rich-content figure figcaption {
  text-align: center;
  font-size: 0.875rem;
  color: hsl(var(--muted-foreground));
  margin-top: 0.5rem;
}

/* Tables inside rich content */
.rich-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1.5rem;
  font-size: 0.95rem;
}
.rich-content th,
.rich-content td {
  border: 1px solid hsl(var(--border));
  padding: 0.65rem 0.85rem;
  text-align: left;
}
.rich-content th {
  background: hsl(var(--muted));
  color: hsl(var(--foreground));
  font-weight: 600;
}

/* Offset headings so TOC anchor jumps clear the sticky nav */
.rich-content h2,
.rich-content h3,
.rich-content h4 { scroll-margin-top: 100px; }

/* Light variant for use on dark backgrounds */
.rich-content--light { color: hsl(var(--background) / 0.75); }
.rich-content--light h2,
.rich-content--light h3,
.rich-content--light h4,
.rich-content--light strong,
.rich-content--light b,
.rich-content--light blockquote { color: hsl(var(--background)); }
.rich-content--light a { color: hsl(var(--primary)); }
