/* Design Tokens - Extracted from Figma Design System */

/* ===== ROOT VARIABLES ===== */
:root {
  /* Color Palette */
  --color-primary: #f9b233;
  --color-background: #fefaf0;
  --color-secondary: #fdf1d8;
  --color-dark-grey: #312c2d;
  --color-grey: #616867;
  --color-light-grey: #c0c2bd;
  --color-light: #ffffff;
  --color-grey-overlay: rgba(0, 0, 0, 0.04);

  /* Typography Scale */
  --font-family-delight: "Delight", serif;
  --font-family-playfair: "Playfair", serif;
  --font-family-bricolage: "Bricolage Grotesque", sans-serif;

  /* Font Weights */
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Line Heights */
  --line-height-tight: 1.3;
  --line-height-normal: 1.35;
  --line-height-comfortable: 1.4;
  --line-height-relaxed: 1.5;

  /* Font Sizes */
  --font-size-label: 14px;
  --font-size-text-info: 15px;
  --font-size-text: 16px;
  --font-size-heading-3: 18px;
  --font-size-heading-2: 34px;

  /* Spacing */
  --spacing-xs: 8px;
  --spacing-sm: 12px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;
  --spacing-2xl: 40px;
  --spacing-3xl: 48px;
  --spacing-4xl: 64px;
  --spacing-5xl: 80px;
  --spacing-6xl: 100px;
  --spacing-7xl: 120px;

  /* Border Radius */
  --radius-sm: 8px;
  --radius-md: 16px;

  /* Shadows */
  --shadow-light: rgba(0, 0, 0, 0.04);
}

/* ===== TYPOGRAPHY CLASSES ===== */

/* Heading Styles */
.heading-2 {
  font-family: var(--font-family-playfair);
  font-size: var(--font-size-heading-2);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-tight);
  color: var(--color-dark-grey);
  letter-spacing: -1.02px;
}

.heading-3 {
  font-family: var(--font-family-delight);
  font-size: var(--font-size-heading-3);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-comfortable);
  color: var(--color-dark-grey);
  letter-spacing: normal;
}

/* Body Text Styles */
.text-body {
  font-family: var(--font-family-bricolage);
  font-size: var(--font-size-text);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-relaxed);
  color: var(--color-dark-grey);
}

.text-info {
  font-family: var(--font-family-delight);
  font-size: var(--font-size-text-info);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-normal);
  color: var(--color-dark-grey);
}

.text-label {
  font-family: var(--font-family-bricolage);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-relaxed);
  color: var(--color-dark-grey);
}

/* Text Color Variations */
.text-color-primary {
  color: var(--color-primary);
}

.text-color-secondary {
  color: var(--color-grey);
}

.text-color-muted {
  color: var(--color-light-grey);
}

.text-color-light {
  color: var(--color-light);
}

.text-color-background {
  color: var(--color-background);
}

/* ===== BACKGROUND CLASSES ===== */
.bg-primary {
  background-color: var(--color-primary);
}

.bg-secondary {
  background-color: var(--color-secondary);
}

.bg-background {
  background-color: var(--color-background);
}

.bg-dark {
  background-color: var(--color-dark-grey);
}

.bg-light {
  background-color: var(--color-light);
}

.bg-overlay {
  background-color: var(--color-grey-overlay);
}

.bg-card {
  background-color: var(--shadow-light);
}

/* ===== COMPONENT CLASSES ===== */

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-xs);
  padding: var(--spacing-md) var(--spacing-lg);
  border-radius: var(--radius-sm);
  font-family: var(--font-family-delight);
  font-size: var(--font-size-text-info);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-normal);
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: opacity 0.2s ease;
  width: fit-content;
}

.btn:hover {
  opacity: 0.9;
}

.btn-primary {
  background-color: var(--color-primary);
  color: var(--color-dark-grey);
}

.btn-secondary {
  background-color: transparent;
  color: var(--color-dark-grey);
  border: 1px solid var(--color-light-grey);
}

.btn-outline {
  background-color: transparent;
  color: var(--color-light);
  border: 1px solid var(--color-light);
}

/* Cards */
.card {
  background-color: var(--shadow-light);
  border-radius: var(--radius-sm);
  padding: var(--spacing-lg);
}

.card-bordered {
  border: 1px solid var(--color-light-grey);
  background-color: var(--color-light);
}

.card-secondary {
  background-color: var(--color-secondary);
}

/* Containers */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--spacing-xl);
}

.section {
  padding: var(--spacing-5xl) 0;
}

/* Spacing Utilities */
.gap-xs {
  gap: var(--spacing-xs);
}
.gap-sm {
  gap: var(--spacing-sm);
}
.gap-md {
  gap: var(--spacing-md);
}
.gap-lg {
  gap: var(--spacing-lg);
}
.gap-xl {
  gap: var(--spacing-xl);
}
.gap-2xl {
  gap: var(--spacing-2xl);
}

.p-xs {
  padding: var(--spacing-xs);
}
.p-sm {
  padding: var(--spacing-sm);
}
.p-md {
  padding: var(--spacing-md);
}
.p-lg {
  padding: var(--spacing-lg);
}
.p-xl {
  padding: var(--spacing-xl);
}

.m-xs {
  margin: var(--spacing-xs);
}
.m-sm {
  margin: var(--spacing-sm);
}
.m-md {
  margin: var(--spacing-md);
}
.m-lg {
  margin: var(--spacing-lg);
}
.m-xl {
  margin: var(--spacing-xl);
}

/* Border Radius */
.rounded-sm {
  border-radius: var(--radius-sm);
}
.rounded-md {
  border-radius: var(--radius-md);
}

/* ===== BASE STYLES ===== */
body {
  box-sizing: border-box;
  font-family: var(--font-family-bricolage);
  background-color: var(--color-background);
  color: var(--color-dark-grey);
  line-height: var(--line-height-relaxed);
  margin: 0;
  padding: 0;
}

h1,
h2 {
  font-family: var(--font-family-playfair);
  font-size: var(--font-size-heading-2);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-tight);
  color: var(--color-dark-grey);
  letter-spacing: -1.02px;
}

h3 {
  font-family: var(--font-family-delight);
  font-size: var(--font-size-heading-3);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-comfortable);
  color: var(--color-dark-grey);
}

p {
  font-family: var(--font-family-bricolage);
  font-size: var(--font-size-text);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-relaxed);
  color: var(--color-dark-grey);
}

a {
  color: var(--color-primary);
  text-decoration: none;
}

a:hover {
  opacity: 0.8;
}

/* Reset margins */
h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
}
