/**
 * Boostage Online — Typographie.
 */

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--bo-heading);
	font-weight: var(--bo-weight-bold);
	line-height: var(--bo-leading-tight);
	letter-spacing: -0.02em;
	margin: 0 0 var(--bo-space-4);
}

h1 { font-size: var(--bo-h1); letter-spacing: -0.03em; }
h2 { font-size: var(--bo-h2); }
h3 { font-size: var(--bo-h3); }
h4 { font-size: var(--bo-h4); }
h5 { font-size: var(--bo-text-lg); }
h6 { font-size: var(--bo-text-base); }

p {
	margin: 0 0 var(--bo-space-4);
}

a {
	color: var(--bo-link);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--bo-duration) var(--bo-ease);
}

a:hover {
	color: var(--bo-link-hover);
	text-decoration-thickness: 2px;
}

strong,
b {
	font-weight: var(--bo-weight-semibold);
	color: var(--bo-heading);
}

small {
	font-size: var(--bo-text-sm);
}

code,
kbd,
pre,
samp {
	font-family: var(--bo-font-mono);
	font-size: 0.9em;
}

code {
	background: var(--bo-primary-soft);
	border-radius: 4px;
	color: var(--bo-navy);
	padding: 0.1em 0.35em;
}

pre {
	background: var(--bo-navy);
	border-radius: var(--bo-radius);
	color: var(--bo-on-dark);
	line-height: 1.6;
	overflow-x: auto;
	padding: var(--bo-space-5);
}

pre code {
	background: none;
	color: inherit;
	padding: 0;
}

blockquote {
	border-left: 3px solid var(--bo-cyan);
	color: var(--bo-heading);
	font-size: var(--bo-text-lg);
	margin: var(--bo-space-8) 0;
	padding: var(--bo-space-2) 0 var(--bo-space-2) var(--bo-space-6);
}

mark {
	background: var(--bo-warning-soft);
	color: var(--bo-navy);
	padding: 0 0.2em;
}

/* Emplacement « À compléter » dans les pages légales et structures de page */
mark.bo-placeholder,
.bo-placeholder {
	background: var(--bo-warning-soft);
	border: 1px dashed var(--bo-warning);
	border-radius: 4px;
	color: var(--bo-navy);
	padding: 0.05em 0.35em;
}

.bo-eyebrow {
	align-items: center;
	color: var(--bo-eyebrow-color);
	display: inline-flex;
	font-size: var(--bo-text-sm);
	font-weight: var(--bo-weight-semibold);
	gap: var(--bo-space-2);
	letter-spacing: 0.08em;
	margin-bottom: var(--bo-space-3);
	text-transform: uppercase;
}

.bo-lead {
	color: var(--bo-muted);
	font-size: var(--bo-text-lg);
}

/* Contenu rédigé dans l'éditeur (Gutenberg) */
.entry-content {
	font-size: var(--bo-text-md);
}

.entry-content > * {
	margin-block: 0 var(--bo-space-5);
}

.entry-content > h2 {
	margin-top: var(--bo-space-12);
}

.entry-content > h3 {
	margin-top: var(--bo-space-8);
}

.entry-content > :first-child {
	margin-top: 0;
}

/* Spécificité nulle (:where) : les composants (cartes, navigation du compte…) gardent leurs propres réglages. */
:where(.entry-content) :where(ul, ol) {
	padding-left: 1.4em;
}

:where(.entry-content) :where(ul, ol):where([role="list"]) {
	list-style: none;
	padding-left: 0;
}

:where(.entry-content) :where(li) {
	margin-bottom: var(--bo-space-2);
}

:where(.entry-content) :where(li)::marker {
	color: var(--bo-primary);
}

.entry-content table {
	background: var(--bo-white);
	border: 1px solid var(--bo-border);
	border-radius: var(--bo-radius);
	font-size: var(--bo-text-sm);
}

.entry-content th,
.entry-content td {
	border-bottom: 1px solid var(--bo-border);
	padding: var(--bo-space-3) var(--bo-space-4);
	text-align: left;
}

.entry-content th {
	background: var(--bo-bg);
	color: var(--bo-heading);
	font-weight: var(--bo-weight-semibold);
}

.entry-content img {
	border-radius: var(--bo-radius);
}

.entry-content figcaption,
.wp-element-caption {
	color: var(--bo-muted);
	font-size: var(--bo-text-sm);
	margin-top: var(--bo-space-2);
	text-align: center;
}

.entry-content .wp-block-button__link {
	background: var(--bo-primary);
	border-radius: var(--bo-radius);
	color: var(--bo-white);
	font-weight: var(--bo-weight-semibold);
	padding: 0.8em 1.4em;
	text-decoration: none;
}

.entry-content .wp-block-button__link:hover {
	background: var(--bo-primary-hover);
	color: var(--bo-white);
}

.entry-content .is-style-outline .wp-block-button__link {
	background: transparent;
	border: 1.5px solid var(--bo-primary);
	color: var(--bo-primary);
}

.alignwide {
	margin-inline: auto;
	max-width: var(--bo-container);
}

.alignfull {
	margin-inline: calc(50% - 50vw);
	max-width: 100vw;
	width: 100vw;
}

.alignleft {
	float: left;
	margin: 0.3em var(--bo-space-6) var(--bo-space-4) 0;
}

.alignright {
	float: right;
	margin: 0.3em 0 var(--bo-space-4) var(--bo-space-6);
}

.aligncenter {
	margin-inline: auto;
}
