/* ==========================================================================
   Carnaby Creative — Design Tokens
   All values from client-approved Figma design.
   Fluid sizing via clamp() between 375px and 1440px viewports.
   ========================================================================== */

:root {
  /* ---- Colour Palette ---- */
  --color-primary-darkest: #00293d;
  --color-primary-dark: #004c72;
  --color-primary: #3388ac;
  --color-primary-tint: #e6f0f5;
  --color-primary-light: #f2f8fb;

  --color-text-heading: #1a1a1a;
  --color-text-body: #4a4c4e;
  --color-text-muted: #6b6d6f;
  --color-text-faint: #a6a8aa;
  --color-text-white: #ffffff;
  --color-text-white-75: rgba(255, 255, 255, 0.75);
  --color-text-white-65: rgba(255, 255, 255, 0.65);
  --color-text-white-50: rgba(255, 255, 255, 0.5);
  --color-text-white-70: rgba(255, 255, 255, 0.7);

  --color-border: #e0e1e2;
  --color-border-nav: rgba(0, 0, 0, 0.06);
  --color-border-white-12: rgba(255, 255, 255, 0.12);

  --color-bg-white: #ffffff;
  --color-bg-card-dark: rgba(255, 255, 255, 0.08);
  --color-bg-icon-dark: rgba(255, 255, 255, 0.12);
  --color-bg-circle-dark: rgba(255, 255, 255, 0.03);
  --color-bg-circle-dark-alt: rgba(255, 255, 255, 0.04);
  --color-bg-input: #fafafa;
  --color-bg-breadcrumb: #fafafa;
  --color-bg-alt: #f2f8fb;
  --color-bg-success-section: #f0f0f1;

  --color-accent-green-bg: #e8f5ee;

  /* Warning/amber tokens (pre-requisite boxes, coming soon badges) */
  --color-warning-bg: #fff8e6;
  --color-warning-border: rgba(184, 134, 11, 0.2);
  --color-warning-text: #6b5a00;
  --color-warning-text-bold: #4a3d00;
  --color-warning-icon-bg: rgba(184, 134, 11, 0.12);
  --color-coming-soon-text: #b8860b;

  /* Success tokens (form confirmation) */
  --color-success-bg: #e8f5ee;

  /* Separator */
  --color-separator: #c4c5c7;

  /* ---- Typography ---- */
  --font-heading: 'Plus Jakarta Sans', sans-serif;
  --font-body: 'Source Sans 3', sans-serif;

  /* Fluid font sizes: clamp(mobile, preferred, desktop) */
  --text-h1: clamp(2rem, 1.648rem + 1.502vw, 3rem);                    /* 32px → 48px */
  --text-h2: clamp(1.75rem, 1.486rem + 1.127vw, 2.5rem);               /* 28px → 40px */
  --text-h2-alt: clamp(1.625rem, 1.39rem + 1.003vw, 2.25rem);          /* 26px → 36px */
  --text-h3-lg: clamp(1.5rem, 1.324rem + 0.751vw, 2rem);               /* 24px → 32px */
  --text-h3: clamp(1.063rem, 1.028rem + 0.150vw, 1.25rem);             /* 17px → 20px */
  --text-h3-card: clamp(1rem, 0.956rem + 0.188vw, 1.125rem);           /* 16px → 18px */
  --text-h4: clamp(0.875rem, 0.854rem + 0.094vw, 0.938rem);            /* 14px → 15px */
  --text-body-lg: clamp(1rem, 0.956rem + 0.188vw, 1.125rem);           /* 16px → 18px */
  --text-body: clamp(0.875rem, 0.854rem + 0.094vw, 0.938rem);          /* 14px → 15px */
  --text-body-featured: clamp(0.938rem, 0.916rem + 0.094vw, 1rem);     /* 15px → 16px */
  --text-small: clamp(0.75rem, 0.728rem + 0.094vw, 0.813rem);          /* 12px → 13px */
  --text-xs: 0.75rem;                                                    /* 12px fixed */
  --text-eyebrow: 0.6875rem;                                              /* 11px fixed */

  --text-stat: clamp(2rem, 1.648rem + 1.502vw, 3rem);                   /* 32px → 48px */
  --text-price: clamp(1.75rem, 1.574rem + 0.751vw, 2.25rem);            /* 28px → 36px */

  /* Line heights */
  --leading-tight: 1.12;
  --leading-heading: 1.15;
  --leading-normal: 1.6;
  --leading-body: 1.7;
  --leading-relaxed: 1.75;

  /* Letter spacing */
  --tracking-eyebrow: 2.5px;
  --tracking-heading: -0.5px;
  --tracking-heading-sm: -0.3px;
  --tracking-label: 0.5px;
  --tracking-featured: 1.5px;
  --tracking-featured-label: 2px;

  /* Font weights */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  /* ---- Spacing (Fluid) ---- */
  --space-container: clamp(1.25rem, -0.070rem + 5.634vw, 5rem);          /* 20px → 80px */
  --space-section-y: clamp(3rem, 1.944rem + 4.507vw, 6rem);              /* 48px → 96px */
  --space-section-y-sm: clamp(2.5rem, 1.803rem + 2.976vw, 4rem);         /* 40px → 64px */
  --space-content-gap: clamp(2rem, 1.472rem + 2.254vw, 3.5rem);          /* 32px → 56px */
  --space-card-gap: clamp(1rem, 0.824rem + 0.751vw, 1.5rem);             /* 16px → 24px */
  --space-card-padding: clamp(1.25rem, 1.074rem + 0.751vw, 1.75rem);     /* 20px → 28px */
  --space-lg: clamp(1.5rem, 1.148rem + 1.502vw, 2rem);                   /* 24px → 32px */
  --space-md: clamp(1rem, 0.824rem + 0.751vw, 1.5rem);                   /* 16px → 24px */
  --space-sm: clamp(0.75rem, 0.662rem + 0.376vw, 1rem);                  /* 12px → 16px */
  --space-xs: clamp(0.5rem, 0.456rem + 0.188vw, 0.625rem);               /* 8px → 10px */

  /* ---- Sizing (Fluid) ---- */
  --size-container-max: 80rem;                                             /* 1280px */
  --size-hero-image-w: clamp(18rem, 13.19rem + 20.56vw, 32.5rem);        /* 288px → 520px */
  --size-hero-image-h: clamp(20rem, 14.84rem + 22.07vw, 37.5rem);        /* 320px → 600px */
  --size-featured-card-w: clamp(20rem, 13.31rem + 28.54vw, 68.75rem);    /* 320px → 1100px */
  --size-org-image-w: clamp(18rem, 12.84rem + 22.07vw, 38rem);           /* 288px → 608px */
  --size-org-image-h: clamp(16rem, 11.54rem + 19.06vw, 28.5rem);         /* 256px → 456px */
  --size-icon: clamp(1.25rem, 1.118rem + 0.563vw, 1.625rem);             /* 20px → 26px */
  --size-icon-box: clamp(2.75rem, 2.487rem + 1.127vw, 3.5rem);           /* 44px → 56px */
  --size-trust-icon: 1.75rem;                                              /* 28px fixed */
  --size-trust-icon-box: 4rem;                                             /* 64px fixed */
  --size-search-w: clamp(18rem, 14.54rem + 14.79vw, 37.5rem);            /* 288px → 600px */
  --size-nav-h: clamp(4rem, 3.648rem + 1.502vw, 6rem);                   /* 64px → 96px */
  --size-btn-h: clamp(2.75rem, 2.487rem + 1.127vw, 3.5rem);              /* 44px → 56px */

  /* ---- Border Radius ---- */
  --radius-sm: 0.75rem;       /* 12px */
  --radius-md: 1rem;          /* 16px */
  --radius-lg: 1.5rem;        /* 24px */
  --radius-full: 9999px;
  --radius-circle-sm: 2.5rem;
  --radius-circle-md: 3.75rem;

  /* ---- Shadows ---- */
  --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.06);
  --shadow-card-hover: 0 8px 24px rgba(0, 0, 0, 0.1);
  --shadow-hero-image: 0 24px 64px rgba(0, 0, 0, 0.3);
  --shadow-floating: 0 8px 32px rgba(0, 0, 0, 0.1);

  /* ---- Transitions ---- */
  --transition-fast: 150ms ease;
  --transition-base: 200ms ease;
  --transition-slow: 300ms ease-out;
}
