:root {
  /* Brand — warm Swiss frame for colourful photography.
     Skill recommended navy/blue; adapted to terracotta + teal so the
     UI stays playful-premium and matches existing paint/photo warmth. */
  --color-primary: #9a3412;
  --color-primary-hover: #7c2d12;
  --color-on-primary: #ffffff;
  --color-secondary: #0f766e;
  --color-on-secondary: #ffffff;
  --color-accent: #9a3412;
  --color-on-accent: #ffffff;
  --color-background: #fbf6f0;
  --color-surface: #ffffff;
  --color-text: #1c1917;
  --color-text-muted: #57534e;
  --color-text-body: #44403c;
  --color-hero-text: #fffaf6;
  --color-overlay: rgba(28, 25, 23, 0.45);
  --color-border: #e8dfd6;
  --color-muted: #f3ece4;
  --color-muted-foreground: #57534e;
  --color-card: #ffffff;
  --color-card-foreground: #1c1917;
  --color-destructive: #b42318;
  --color-on-destructive: #ffffff;
  --color-success: #0f766e;
  --color-ring: #9a3412;
  --color-focus: #9a3412;
  --color-error: #b42318;
  --color-whatsapp: #128c7e;
  --color-instagram: #c13584;

  --font-display: "Fredoka", "Segoe UI", sans-serif;
  --font-body: "Nunito", "Segoe UI", Arial, sans-serif;

  --text-xs: 0.8125rem;
  --text-sm: 0.9375rem;
  --text-md: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-h3: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  --text-h2: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem);
  --text-h1: clamp(2.25rem, 1.4rem + 3.2vw, 4rem);
  --leading-body: 1.65;
  --leading-tight: 1.15;
  --measure: 38rem;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;

  --container-width: 72rem;
  --container-pad: 1.25rem;
  --header-height: 4.5rem;
  --section-spacing: clamp(3.5rem, 6vw, 6.5rem);

  --radius-sm: 0.5rem;
  --radius-md: 0.75rem;
  --radius-lg: 1rem;
  --radius-pill: 999px;

  --shadow-sm: 0 1px 2px rgba(28, 25, 23, 0.06);
  --shadow-md: 0 10px 30px rgba(28, 25, 23, 0.08);
  --shadow-lg: 0 18px 50px rgba(28, 25, 23, 0.12);
  --shadow-focus: 0 0 0 3px rgba(154, 52, 18, 0.28);

  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --duration: 200ms;

  --z-header: 40;
  --z-overlay: 80;
  --z-menu: 90;
  --z-lightbox: 100;
}

:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 3px;
  box-shadow: var(--shadow-focus);
}

@media (min-width: 768px) {
  :root {
    --container-pad: 2rem;
    --header-height: 4.75rem;
  }
}
