/* -------------------------------------------------------------------------- */

/*	0. Variables
/* -------------------------------------------------------------------------- */


:root {

	/* --- Palette de couleurs --- */

	--color-primary: #B38605;
	--color-primary-hover: #E1C33E;
	--color-primary-subtle: #efeffd;

	--color-neutral-50: #fafaf9;
	--color-neutral-100: #f5f5f4;
	--color-neutral-200: #e7e5e4;
	--color-neutral-300: #d6d3d1;
	--color-neutral-400: #a8a29e;
	--color-neutral-500: #78716c;
	--color-neutral-600: #57534e;
	--color-neutral-700: #44403c;
	--color-neutral-800: #292524;
	--color-neutral-900: #1c1917;

	--color-text: var(--color-neutral-900);
	--color-text-muted: var(--color-neutral-500);
	--color-text-light: var(--color-neutral-300);
	--color-text-inverse: var(--color-neutral-50);

	--color-bg: #ffffff;
	--color-bg-subtle: var(--color-neutral-50);
	--color-bg-muted: var(--color-neutral-100);
	--color-bg-dark: var(--color-neutral-900);
	--color-surface: #ffffff;

	--color-border: var(--color-neutral-200);
	--color-border-strong: var(--color-neutral-400);
	--color-overlay: rgba(0, 0, 0, 0.2);

	--color-error: #dc2626;
	--color-success: #059669;
	--color-info: #0284c7;
	--color-warning: #d97706;
	--color-focus: var(--color-primary);

	/* --- Typographie --- */

	--font-base: "Inter", system-ui, sans-serif;
	--font-heading: "Exo 2", sans-serif;
	--font-mono: "Courier Prime", monospace;
	--font-minitel: "VT323", monospace;

	--font-weight-regular: 400;
	--font-weight-medium: 500;
	--font-weight-semibold: 600;
	--font-weight-bold: 700;
	--font-weight-extra-bold: 900;

	--fs-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
	--fs-sm: clamp(0.875rem, 0.825rem + 0.25vw, 1rem);
	--fs-base: clamp(1rem, 0.95rem + 0.25vw, 0.875rem);
	--fs-md: clamp(1.125rem, 1.05rem + 0.375vw, 1.25rem);
	--fs-lg: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);
	--fs-xl: clamp(1.5rem, 1.35rem + 0.75vw, 1.875rem);

	--fs-h6: var(--fs-md);
	--fs-h5: var(--fs-lg);
	--fs-h4: var(--fs-xl);
	--fs-h3: clamp(1.875rem, 1.65rem + 1.125vw, 2.25rem);
	--fs-h2: clamp(2.25rem, 1.95rem + 1.5vw, 3rem);
	--fs-h1: clamp(2.5rem, 2rem + 2.5vw, 4rem);

	--fs-display: clamp(3rem, 2.5rem + 2.5vw, 4.5rem);
	--fs-display-lg: clamp(3.5rem, 2.75rem + 3.75vw, 5.5rem);

	--lh-base: 1.6;
	--lh-snug: 1.4;
	--lh-heading: 1.2;
	--lh-display: 1.1;

	--ls-tight: -0.02em;
	--ls-normal: 0;
	--ls-wide: 0.05em;

	/* --- Layout --- */

	--container: 1280px;
	--container-narrow: 58rem;
	--content-width: 68rem;
	--container-text: 65ch;
	--gutter: clamp(1rem, 3vw, 2rem);

	--section-auto: auto;
	--section-sm: clamp(16rem, 30vh, 24rem);
	--section-md: clamp(24rem, 50vh, 40rem);
	--section-lg: clamp(32rem, 70vh, 56rem);
	--section-full: 100svh;

	/* --- Espacements --- */

	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.25rem;
	--space-6: 1.5rem;
	--space-8: 2rem;
	--space-10: 2.5rem;
	--space-12: 3rem;

	--space-section-sm: clamp(2rem, 4vw, 3rem);
	--space-section-md: clamp(3rem, 6vw, 5rem);
	--space-section-lg: clamp(5rem, 10vw, 8rem);

	/* --- UI --- */

	--radius-xs: 0.25rem;
	--radius-sm: 0.5rem;
	--radius-md: 0.75rem;
	--radius-lg: 1.25rem;
	--radius-full: 9999px;

	--border-width: 1px;
	--border: var(--border-width) solid var(--color-border);

	--shadow-sm: 0 1px 2px rgb(28 25 23 / 6%);
	--shadow-md: 0 4px 12px rgb(28 25 23 / 8%);
	--shadow-lg: 0 12px 32px rgb(28 25 23 / 12%);

	/* --- Boutons (primary or métallique 80s · secondary hover or) --- */

	--color-gold: #c4940a;
	--color-gold-bright: #d4af37;

	--color-neon-magenta: #d946ef;
	--color-neon-magenta-bright: #f0abfc;
	--color-neon-magenta-glow: rgb(217 70 239);

	--btn-border-width: 1px;
	--btn-padding-y: 0.75rem;
	--btn-padding-x: 1.75rem;
	--btn-min-height: 2.75rem;
	--btn-max-width: 24rem;
	/* Fiche produit — bouton label + prix (pilule large) */
	--btn-atc-aspect-ratio: 6.25;

	--btn-primary-bg: linear-gradient(
		110deg,
		#a67c00 0%,
		#c4940a 12%,
		#d4ad1a 22%,
		#e8c547 30%,
		#f5de7a 36%,
		#d9b82e 44%,
		#e6cb4a 52%,
		#f0da6e 58%,
		#faf0a8 63%,
		#c9a42a 72%,
		#b08818 88%,
		#966f0a 100%
	);
	--btn-primary-border: #c9a633;
	--btn-primary-color: #1a1200;
	--btn-primary-shadow: none;
	--btn-primary-hover-bg: linear-gradient(
		110deg,
		#b08818 0%,
		#cea012 12%,
		#deb824 22%,
		#f0d050 30%,
		#fae890 36%,
		#e0c038 44%,
		#ecd454 52%,
		#f5e278 58%,
		#fff8b8 63%,
		#d4ae30 72%,
		#bc961c 88%,
		#a67e10 100%
	);
	--btn-primary-hover-border: #d4af37;
	--btn-primary-hover-color: #0d0800;
	--btn-primary-shadow-hover: none;
	--btn-primary-shine-duration: 0.9s;

	--btn-secondary-bg: transparent;
	--btn-secondary-border: var(--color-neutral-700);
	--btn-secondary-color: var(--color-text);
	--btn-secondary-hover-bg: transparent;
	--btn-secondary-hover-border: var(--color-gold);
	--btn-secondary-hover-color: var(--color-gold);
	--btn-secondary-shadow-hover: none;

	--btn-on-dark-border: rgb(255 255 255 / 88%);
	--btn-on-dark-color: #fff;
	--btn-on-dark-secondary-hover-bg: transparent;
	--btn-on-dark-secondary-hover-border: var(--color-gold-bright);
	--btn-on-dark-secondary-hover-color: var(--color-gold-bright);
	--btn-on-dark-secondary-shadow-hover: none;

	--btn-secondary-white-bg: transparent;
	--btn-secondary-white-border: #fff;
	--btn-secondary-white-color: #fff;
	--btn-secondary-white-hover-bg: rgb(255 255 255 / 10%);
	--btn-secondary-white-hover-border: var(--color-gold-bright);
	--btn-secondary-white-hover-color: var(--color-gold-bright);
	--btn-secondary-white-shadow-hover: none;

	--btn-disabled-opacity: 0.45;
	--btn-focus-outline: 2px dotted rgb(217 70 239 / 85%);

	/* Coins pixelisés — même ratio pill que primary/secondary (--radius-full + --btn-min-height)
	   radius 8 × multiplier 4 → cap ~20px ≈ 50% de 2.75rem ; bordure 2px
	   @see https://pixelcorners.lukeb.co.uk/ */
	--btn-pixel-multiplier: 4;
	--btn-pixel-corner-radius: 8;
	--btn-pixel-border: 2px;
	--clip-btn-pixel-outer: polygon(
		0 calc(100% - 20px),
		4px calc(100% - 20px),
		4px calc(100% - 12px),
		8px calc(100% - 12px),
		8px calc(100% - 8px),
		12px calc(100% - 8px),
		12px calc(100% - 4px),
		20px calc(100% - 4px),
		20px 100%,
		calc(100% - 20px) 100%,
		calc(100% - 20px) calc(100% - 4px),
		calc(100% - 12px) calc(100% - 4px),
		calc(100% - 12px) calc(100% - 8px),
		calc(100% - 8px) calc(100% - 8px),
		calc(100% - 8px) calc(100% - 12px),
		calc(100% - 4px) calc(100% - 12px),
		calc(100% - 4px) calc(100% - 20px),
		100% calc(100% - 20px),
		100% 20px,
		calc(100% - 4px) 20px,
		calc(100% - 4px) 12px,
		calc(100% - 8px) 12px,
		calc(100% - 8px) 8px,
		calc(100% - 12px) 8px,
		calc(100% - 12px) 4px,
		calc(100% - 20px) 4px,
		calc(100% - 20px) 0,
		20px 0,
		20px 4px,
		12px 4px,
		12px 8px,
		8px 8px,
		8px 12px,
		4px 12px,
		4px 20px,
		0 20px
	);
	--clip-btn-pixel-inner: polygon(
		2px 22px,
		6px 22px,
		6px 14px,
		10px 14px,
		10px 10px,
		14px 10px,
		14px 6px,
		22px 6px,
		22px 2px,
		calc(100% - 22px) 2px,
		calc(100% - 22px) 6px,
		calc(100% - 14px) 6px,
		calc(100% - 14px) 10px,
		calc(100% - 10px) 10px,
		calc(100% - 10px) 14px,
		calc(100% - 6px) 14px,
		calc(100% - 6px) 22px,
		calc(100% - 2px) 22px,
		calc(100% - 2px) calc(100% - 22px),
		calc(100% - 6px) calc(100% - 22px),
		calc(100% - 6px) calc(100% - 14px),
		calc(100% - 10px) calc(100% - 14px),
		calc(100% - 10px) calc(100% - 10px),
		calc(100% - 14px) calc(100% - 10px),
		calc(100% - 14px) calc(100% - 6px),
		calc(100% - 22px) calc(100% - 6px),
		calc(100% - 22px) calc(100% - 2px),
		22px calc(100% - 2px),
		22px calc(100% - 6px),
		14px calc(100% - 6px),
		14px calc(100% - 10px),
		10px calc(100% - 10px),
		10px calc(100% - 14px),
		6px calc(100% - 14px),
		6px calc(100% - 22px),
		2px calc(100% - 22px)
	);
	--clip-btn-pixel-border: polygon(
		0 calc(100% - 20px),
		4px calc(100% - 20px),
		4px calc(100% - 12px),
		8px calc(100% - 12px),
		8px calc(100% - 8px),
		12px calc(100% - 8px),
		12px calc(100% - 4px),
		20px calc(100% - 4px),
		20px 100%,
		calc(100% - 20px) 100%,
		calc(100% - 20px) calc(100% - 4px),
		calc(100% - 12px) calc(100% - 4px),
		calc(100% - 12px) calc(100% - 8px),
		calc(100% - 8px) calc(100% - 8px),
		calc(100% - 8px) calc(100% - 12px),
		calc(100% - 4px) calc(100% - 12px),
		calc(100% - 4px) calc(100% - 20px),
		100% calc(100% - 20px),
		100% 20px,
		calc(100% - 4px) 20px,
		calc(100% - 4px) 12px,
		calc(100% - 8px) 12px,
		calc(100% - 8px) 8px,
		calc(100% - 12px) 8px,
		calc(100% - 12px) 4px,
		calc(100% - 20px) 4px,
		calc(100% - 20px) 0,
		20px 0,
		20px 4px,
		12px 4px,
		12px 8px,
		8px 8px,
		8px 12px,
		4px 12px,
		4px 20px,
		0 20px,
		0 50%,
		2px 50%,
		2px 22px,
		6px 22px,
		6px 14px,
		10px 14px,
		10px 10px,
		14px 10px,
		14px 6px,
		22px 6px,
		22px 2px,
		calc(100% - 22px) 2px,
		calc(100% - 22px) 6px,
		calc(100% - 14px) 6px,
		calc(100% - 14px) 10px,
		calc(100% - 10px) 10px,
		calc(100% - 10px) 14px,
		calc(100% - 6px) 14px,
		calc(100% - 6px) 22px,
		calc(100% - 2px) 22px,
		calc(100% - 2px) calc(100% - 22px),
		calc(100% - 6px) calc(100% - 22px),
		calc(100% - 6px) calc(100% - 14px),
		calc(100% - 10px) calc(100% - 14px),
		calc(100% - 10px) calc(100% - 10px),
		calc(100% - 14px) calc(100% - 10px),
		calc(100% - 14px) calc(100% - 6px),
		calc(100% - 22px) calc(100% - 6px),
		calc(100% - 22px) calc(100% - 2px),
		22px calc(100% - 2px),
		22px calc(100% - 6px),
		14px calc(100% - 6px),
		14px calc(100% - 10px),
		10px calc(100% - 10px),
		10px calc(100% - 14px),
		6px calc(100% - 14px),
		6px calc(100% - 22px),
		2px calc(100% - 22px),
		2px 50%,
		0 50%
	);

	--duration-fast: 150ms;
	--duration-base: 300ms;
	--duration-slow: 500ms;
	--ease: cubic-bezier(0.4, 0, 0.2, 1);
	--transition-color: color var(--duration-base) var(--ease),
		background-color var(--duration-base) var(--ease),
		border-color var(--duration-base) var(--ease);
	--transition-transform: transform var(--duration-base) var(--ease);
	--transition-opacity: opacity var(--duration-base) var(--ease);

	/* --- Z-index --- */

	--z-base: 1;
	--z-dropdown: 100;
	--z-sticky: 200;
	--z-header: 300;
	--z-overlay: 400;
	--z-modal: 500;

	/* Breakpoints (référence — non utilisables dans @media) */
	/* sm: 600px · md: 782px · lg: 1024px · xl: 1280px */
}
