/*
 * ACE — base : polices, reset, éléments nus, focus, utilitaires (4 max).
 */

/* Manrope variable (400–800), auto-hébergée — un fichier par subset, le
   latin-ext ne se télécharge que si un caractère l'exige. */
@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/manrope-var-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("../fonts/manrope-var-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@layer ace.base {
	*,
	*::before,
	*::after {
		box-sizing: border-box;
	}

	html {
		-webkit-text-size-adjust: 100%;
		scroll-padding-bottom: 88px; /* barre d'achat mobile */
	}

	body {
		margin: 0;
		font-family: var(--ace-font);
		font-size: var(--ace-fs-body);
		line-height: 1.6;
		color: var(--ace-text);
		background: var(--ace-bg);
		-webkit-font-smoothing: antialiased;
	}

	h1,
	h2,
	h3,
	h4,
	p,
	ul,
	ol,
	dl,
	dd,
	figure {
		margin: 0;
	}

	img,
	svg,
	video {
		max-width: 100%;
		height: auto;
	}

	svg {
		height: auto;
	}

	a {
		color: var(--ace-primary-text);
		text-decoration-thickness: 1px;
		text-underline-offset: 2px;
	}

	button {
		font-family: inherit;
	}

	table {
		border-collapse: collapse;
	}

	/* Focus visible : anneau orange, jamais outline: none sans remplacement. */
	:focus-visible {
		outline: none;
		box-shadow: var(--ace-ring-btn);
		border-radius: var(--ace-radius-sm);
	}

	input:focus-visible,
	select:focus-visible,
	textarea:focus-visible {
		box-shadow: var(--ace-ring-field);
	}

	@media (prefers-reduced-motion: reduce) {
		*,
		*::before,
		*::after {
			animation-duration: 0.01ms;
			animation-iteration-count: 1;
			transition-duration: 0.01ms;
		}
	}

	.screen-reader-text {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
		border: 0;
	}

	.ace-skip:focus {
		position: fixed;
		top: var(--ace-2);
		left: var(--ace-2);
		z-index: var(--ace-z-modal);
		width: auto;
		height: auto;
		clip-path: none;
		padding: var(--ace-2) var(--ace-4);
		background: var(--ace-surface);
		border-radius: var(--ace-radius);
	}
}

/* Utilitaires — 4 maximum (brief §5.3). */
@layer ace.utilities {
	.ace-u-hidden {
		display: none;
	}

	.ace-u-nowrap {
		white-space: nowrap;
	}

	.ace-u-tnum {
		font-variant-numeric: tabular-nums;
	}

	.ace-muted {
		color: var(--ace-text-muted);
		font-size: 13.5px;
		line-height: 1.6;
	}
}
