/* ============================================================
   Design Tokens — Au Bonheur de Tous (WEB-7581)
   Mercerie Les Abymes · Charte graphique créole & artisanale
   ============================================================ */

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

:root {
  /* --------------------------------------------------
     Couleurs — Palette Madras Caraïbe
     -------------------------------------------------- */

  /* Primaire : Terre Caraïbe (terracotta soleil antillais) */
  --color-primary:        #C45C1A;
  --color-primary-dark:   #9E4814;
  --color-primary-light:  #F0845A;
  --color-primary-10:     rgba(196, 92, 26, 0.10);
  --color-primary-20:     rgba(196, 92, 26, 0.20);

  /* Secondaire : Vert Madras (tropical, madras guadeloupéen) */
  --color-secondary:      #2D6840;
  --color-secondary-dark: #1E4A2C;
  --color-secondary-10:   rgba(45, 104, 64, 0.10);

  /* Accent : Safran Antillais (fête, costumes créoles) */
  --color-accent:         #E8B824;
  --color-accent-dark:    #B8901A;
  --color-accent-10:      rgba(232, 184, 36, 0.15);

  /* Fond & Surfaces */
  --color-bg:             #FBF7F2;
  --color-surface:        #FFFFFF;
  --color-surface-warm:   #FEF9F5;

  /* Texte */
  --color-text:           #2A1506;
  --color-text-muted:     #6B4E35;
  --color-text-light:     #9C7A61;
  --color-text-on-primary:#FFFFFF;

  /* Bordures */
  --color-border:         #E4D5C5;
  --color-border-strong:  #C9B49E;

  /* Système */
  --color-error:          #C62828;
  --color-error-bg:       #FFF0F0;
  --color-success:        #2D6840;
  --color-success-bg:     #F0F8F2;
  --color-focus-ring:     rgba(196, 92, 26, 0.40);

  /* --------------------------------------------------
     Typographie
     -------------------------------------------------- */
  --font-heading:  'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:     'Lato', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;

  --font-size-xs:   0.75rem;    /*  12px */
  --font-size-sm:   0.875rem;   /*  14px */
  --font-size-base: 1rem;       /*  16px */
  --font-size-md:   1.125rem;   /*  18px */
  --font-size-lg:   1.375rem;   /*  22px */
  --font-size-xl:   1.75rem;    /*  28px */
  --font-size-2xl:  2.125rem;   /*  34px */
  --font-size-3xl:  2.5rem;     /*  40px */

  --font-weight-light:   300;
  --font-weight-regular: 400;
  --font-weight-bold:    700;
  --font-weight-heading: 600;

  --line-height-tight:  1.2;
  --line-height-snug:   1.35;
  --line-height-normal: 1.65;
  --line-height-loose:  1.8;

  --letter-spacing-cta:  0.03em;
  --letter-spacing-caps: 0.08em;

  /* --------------------------------------------------
     Espacement (base 8px)
     -------------------------------------------------- */
  --space-1:   0.25rem;   /*  4px */
  --space-2:   0.5rem;    /*  8px */
  --space-3:   0.75rem;   /* 12px */
  --space-4:   1rem;      /* 16px */
  --space-5:   1.25rem;   /* 20px */
  --space-6:   1.5rem;    /* 24px */
  --space-8:   2rem;      /* 32px */
  --space-10:  2.5rem;    /* 40px */
  --space-12:  3rem;      /* 48px */
  --space-16:  4rem;      /* 64px */
  --space-20:  5rem;      /* 80px */
  --space-24:  6rem;      /* 96px */

  /* --------------------------------------------------
     Bordures & Rayons
     -------------------------------------------------- */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   20px;
  --radius-pill: 999px;

  --border-width:       1px;
  --border-width-thick: 2px;

  /* --------------------------------------------------
     Ombres
     -------------------------------------------------- */
  --shadow-xs:       0 1px 3px rgba(42, 21, 6, 0.06);
  --shadow-card:     0 2px 12px rgba(42, 21, 6, 0.08);
  --shadow-card-hover: 0 6px 24px rgba(42, 21, 6, 0.14);
  --shadow-cta:      0 4px 16px rgba(196, 92, 26, 0.30);
  --shadow-modal:    0 12px 48px rgba(42, 21, 6, 0.20);

  /* --------------------------------------------------
     Transitions
     -------------------------------------------------- */
  --transition-fast:   150ms ease;
  --transition-base:   250ms ease;
  --transition-slow:   400ms ease;

  /* --------------------------------------------------
     Layout & Breakpoints
     -------------------------------------------------- */
  --max-width-content: 1140px;
  --max-width-narrow:  720px;
  --gutter:            var(--space-4);

  /* --------------------------------------------------
     Z-index
     -------------------------------------------------- */
  --z-base:    1;
  --z-sticky:  100;
  --z-overlay: 200;
  --z-modal:   300;
  --z-toast:   400;

  /* --------------------------------------------------
     Visual Placeholders (pas d'images générées)
     -------------------------------------------------- */
  --visual-hero-gradient:   linear-gradient(135deg, #C45C1A 0%, #E8B824 55%, #2D6840 100%);
  --visual-card-gradient:   linear-gradient(135deg, #FBF7F2 0%, #E4D5C5 100%);
  --visual-accent-gradient: linear-gradient(135deg, #E8B824 0%, #C45C1A 100%);
  --visual-bg-pattern:      radial-gradient(circle at 20% 20%, rgba(232,184,36,0.08) 0%, transparent 60%),
                             radial-gradient(circle at 80% 80%, rgba(196,92,26,0.06) 0%, transparent 60%);
}

/* --------------------------------------------------
   Typographic Defaults
   -------------------------------------------------- */
body {
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-normal);
  color: var(--color-text);
  background-color: var(--color-bg);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  line-height: var(--line-height-tight);
  color: var(--color-text);
}

h1 { font-size: var(--font-size-3xl); font-weight: var(--font-weight-bold); }
h2 { font-size: var(--font-size-2xl); font-weight: var(--font-weight-heading); }
h3 { font-size: var(--font-size-lg);  font-weight: var(--font-weight-heading); }

/* --------------------------------------------------
   Bouton CTA Principal
   -------------------------------------------------- */
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  background-color: var(--color-primary);
  color: var(--color-text-on-primary);
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-cta);
  text-decoration: none;
  padding: var(--space-3) var(--space-6);
  border: none;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-cta);
  cursor: pointer;
  transition: background-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}
.btn-primary:hover, .btn-primary:focus-visible {
  background-color: var(--color-primary-dark);
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-1px);
}
.btn-primary:focus-visible {
  outline: 3px solid var(--color-focus-ring);
  outline-offset: 2px;
}

/* --------------------------------------------------
   Bouton CTA Secondaire
   -------------------------------------------------- */
.btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  background-color: transparent;
  color: var(--color-primary);
  font-family: var(--font-body);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-cta);
  text-decoration: none;
  padding: calc(var(--space-3) - 2px) var(--space-6);
  border: var(--border-width-thick) solid var(--color-primary);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}
.btn-secondary:hover, .btn-secondary:focus-visible {
  background-color: var(--color-primary-10);
}
.btn-secondary:focus-visible {
  outline: 3px solid var(--color-focus-ring);
  outline-offset: 2px;
}

/* --------------------------------------------------
   Card
   -------------------------------------------------- */
.card {
  background: var(--color-surface);
  border: var(--border-width) solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: var(--space-6);
  transition: box-shadow var(--transition-base), transform var(--transition-base);
}
.card:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-2px);
}

/* --------------------------------------------------
   Accessibilité — focus visible global
   -------------------------------------------------- */
:focus-visible {
  outline: 3px solid var(--color-focus-ring);
  outline-offset: 2px;
}

/* --------------------------------------------------
   Mobile-first Responsive
   -------------------------------------------------- */
@media (max-width: 767px) {
  :root {
    --font-size-3xl: 1.875rem;
    --font-size-2xl: 1.5rem;
    --gutter: var(--space-4);
  }
}

@media (min-width: 768px) {
  :root {
    --gutter: var(--space-8);
  }
}

@media (min-width: 1140px) {
  :root {
    --gutter: var(--space-12);
  }
}
