/* ==========================================================================
   Base globale — reproduit le <style> global des prototypes + fondations
   ========================================================================== */

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--bf-anchor-offset);
}

body {
	margin: 0;
	background: var(--bf-bg);
	font-family: var(--bf-font-ui);
	color: var(--bf-body);
	-webkit-font-smoothing: antialiased;
	overflow-x: clip; /* jamais de scroll horizontal, même sur contenu legacy débordant */
}

a {
	color: var(--bf-orange-hover);
	text-decoration: none;
}

a:hover {
	color: var(--bf-orange-bright);
}

::selection {
	background: var(--bf-orange);
	color: #181009;
}

input::placeholder,
textarea::placeholder {
	color: var(--bf-muted);
}

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

/* Conteneurs ------------------------------------------------------------ */

.bf-container {
	max-width: var(--bf-maxw);
	margin: 0 auto;
	padding-left: var(--bf-gutter);
	padding-right: var(--bf-gutter);
}

.bf-container--mid {
	max-width: var(--bf-maxw-mid);
}

/* Titres display --------------------------------------------------------- */

.bf-h1,
.bf-h2,
.bf-card-title {
	font-family: var(--bf-font-display);
	color: var(--bf-title);
	line-height: 1.1;
	margin: 0;
}

.bf-h1 {
	font-weight: 800;
	font-size: clamp(30px, 5.5vw, 52px);
	line-height: 1.06;
}

.bf-h2 {
	font-weight: 800;
	font-size: clamp(24px, 4vw, 40px);
}

/* Accessibilité ---------------------------------------------------------- */

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

:focus-visible {
	outline: 2px solid var(--bf-orange-hover);
	outline-offset: 2px;
}

/* Cibles tactiles ≥ 44px sur mobile -------------------------------------- */

@media (max-width: 920px) {
	.bf-tap,
	.bf-btn,
	.bf-cta,
	.bf-chip,
	.bf-toc__item,
	.bf-search__item,
	.bf-drawer a,
	.bf-footer__links a,
	.bf-mega__grid a,
	.rank-math-question {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
	}

	.bf-toc__item,
	.bf-search__item,
	.bf-drawer a,
	.rank-math-question { display: flex; }
}
