/*
Theme Name:   Allo Clic
Theme URI:    https://www.allo-clic.com/
Description:  Thème enfant de GeneratePress pour le magazine Allo Clic. Refonte visuelle et structurelle par hooks et CSS ; aucun gabarit du parent remplacé.
Author:       Allo Clic
Template:     generatepress
Version:      1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  allo-child
*/

/* ==========================================================================
   1. Jetons de design
   ========================================================================== */
:root {
	--allo-accent: #0b57d0;      /* bleu électrique — 6,4:1 sur blanc, 5,8:1 sur --allo-fond */
	--allo-accent-fonce: #0842a0; /* survol — 9,1:1 sur blanc */
	--allo-encre: #14171c;       /* texte — 17,9:1 sur blanc */
	--allo-encre-2: #4a5160;     /* texte secondaire — 8,0:1 sur blanc, 7,3:1 sur --allo-fond */
	--allo-trait: #dfe3ea;
	--allo-fond: #f4f5f7;
	--allo-surface: #fff;
	--allo-nuit: #111827;        /* fond des visuels de repli */
	--allo-rayon: 5px;
	--allo-ombre: 0 1px 2px rgba(17, 24, 39, .06);
	--allo-police: -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--allo-esp: 16px;
	--allo-ratio: 16 / 9;
}

/* ==========================================================================
   2. Base
   ========================================================================== */
body,
button,
input,
select,
textarea {
	font-family: var(--allo-police);
}

body {
	background-color: var(--allo-fond);
	color: var(--allo-encre);
	-webkit-font-smoothing: antialiased;
}

a {
	color: var(--allo-accent);
	text-underline-offset: .15em;
}

a:hover,
a:focus,
a:active {
	color: var(--allo-accent-fonce);
}

h1, h2, h3, h4, h5, h6 {
	color: var(--allo-encre);
	font-weight: 750;
	letter-spacing: -.01em;
	line-height: 1.2;
}

/* Focus toujours visible au clavier (le parent l'efface seulement pour la souris). */
:focus-visible {
	outline: 3px solid var(--allo-accent);
	outline-offset: 2px;
	border-radius: 2px;
}

.skip-link.screen-reader-text:focus {
	background: var(--allo-encre);
	color: #fff;
	border-radius: var(--allo-rayon);
}

img {
	height: auto;
}

/* ==========================================================================
   3. En-tête et navigation principale
   ========================================================================== */
.site-header {
	background: var(--allo-surface);
	border-bottom: 1px solid var(--allo-trait);
}

.inside-header {
	padding-top: 14px;
	padding-bottom: 14px;
}

.main-title {
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -.03em;
}

.main-title a,
.main-title a:hover {
	color: var(--allo-encre);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

/* Marque graphique en CSS pur (aucune image, aucune requête). */
.main-title a::before {
	content: "";
	width: 14px;
	height: 14px;
	border-radius: 3px;
	background: var(--allo-accent);
	box-shadow: 6px 6px 0 0 var(--allo-encre);
	margin-right: 6px;
	flex: none;
}

.main-navigation,
.main-navigation ul ul {
	background: var(--allo-surface);
}

.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items {
	color: var(--allo-encre);
	font-size: 15px;
	font-weight: 600;
}

.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
	color: var(--allo-accent);
	background: var(--allo-surface);
}

/* Bouton du menu mobile (état fermé / ouvert géré par menu.min.js du parent). */
.mobile-menu-control-wrapper .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle:hover,
.mobile-menu-control-wrapper .menu-toggle:focus,
.has-inline-mobile-toggle #site-navigation.toggled {
	background: var(--allo-surface);
}

.menu-toggle {
	min-width: 44px;
	min-height: 44px;
	border: 1px solid var(--allo-trait);
	border-radius: var(--allo-rayon);
}

.menu-toggle[aria-expanded="true"] {
	border-color: var(--allo-accent);
	color: var(--allo-accent);
}

@media (max-width: 768px) {
	.main-navigation.toggled .main-nav > ul {
		border-top: 1px solid var(--allo-trait);
		padding: 6px 0;
	}

	.main-navigation.toggled .main-nav ul li a {
		padding-top: 4px;
		padding-bottom: 4px;
		line-height: 44px;
		border-bottom: 1px solid var(--allo-fond);
	}
}

/* ==========================================================================
   4. Barre des rubriques
   ========================================================================== */
.allo-rubriques {
	background: var(--allo-encre);
}

.allo-rubriques__list {
	list-style: none;
	margin: 0 auto;
	padding: 0 20px;
	display: flex;
	gap: 4px;
	overflow-x: auto;
	scrollbar-width: none;
}

.allo-rubriques__list::-webkit-scrollbar {
	display: none;
}

.allo-rubriques a {
	display: block;
	padding: 12px 12px;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 3px solid transparent;
}

.allo-rubriques a:hover,
.allo-rubriques a:focus,
.allo-rubriques a[aria-current="page"] {
	color: #fff;
	border-bottom-color: #6ea2ff; /* 6,6:1 sur --allo-encre */
}

.allo-rubriques a:focus-visible {
	outline-color: #fff;
	outline-offset: -3px;
}

/* ==========================================================================
   5. Conteneurs
   ========================================================================== */
.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation,
.sidebar .widget {
	background: var(--allo-surface);
	border: 1px solid var(--allo-trait);
	border-radius: var(--allo-rayon);
	box-shadow: var(--allo-ombre);
}

.sidebar .widget {
	font-size: 15px;
	padding: 20px;
}

.widget-title,
.sidebar .widget .widget-title {
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--allo-encre);
	border-bottom: 2px solid var(--allo-encre);
	padding-bottom: 8px;
	margin-bottom: 12px;
}

.widget_recent_entries ul li {
	margin: 0;
	padding: 10px 0;
	border-bottom: 1px solid var(--allo-trait);
	line-height: 1.35;
}

.widget_recent_entries ul li:last-child {
	border-bottom: 0;
}

.widget_recent_entries a {
	color: var(--allo-encre);
	font-weight: 600;
	text-decoration: none;
}

.widget_recent_entries a:hover,
.widget_recent_entries a:focus {
	color: var(--allo-accent);
	text-decoration: underline;
}

.search-form {
	display: flex;
}

.search-form label {
	flex: 1;
}

.search-form .search-field {
	width: 100%;
	border-radius: var(--allo-rayon) 0 0 var(--allo-rayon);
	border-color: var(--allo-trait);
	color: var(--allo-encre);
	min-height: 44px;
}

.search-form .search-submit {
	border-radius: 0 var(--allo-rayon) var(--allo-rayon) 0;
	background: var(--allo-accent);
	min-width: 44px;
}

.search-form .search-submit:hover,
.search-form .search-submit:focus {
	background: var(--allo-accent-fonce);
}

/* ==========================================================================
   6. Emplacements publicitaires (hauteur réservée → CLS 0)
   ========================================================================== */
.allo-ad {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 280px;       /* 336×280 / 300×250 */
	margin: 0 0 20px;
	background: var(--allo-surface);
	border: 1px dashed var(--allo-trait);
	border-radius: var(--allo-rayon);
	overflow: hidden;
	contain: layout;
}

.allo-ad::before {
	content: "Publicité";
	position: absolute;
	top: 6px;
	left: 10px;
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--allo-encre-2);
}

.allo-ad--apres-contenu {
	margin: 2em 0;
}

@media (min-width: 769px) {
	.allo-ad--colonne-haut {
		min-height: 600px;   /* 300×600 ou 300×250 */
	}

	.allo-ad--apres-contenu {
		min-height: 280px;
	}
}

/* ==========================================================================
   7. Surtitre de rubrique, méta
   ========================================================================== */
.allo-kicker {
	position: relative;
	z-index: 1;
	display: inline-block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--allo-accent);
	text-decoration: none;
}

.allo-kicker:hover,
.allo-kicker:focus {
	color: var(--allo-accent-fonce);
	text-decoration: underline;
}

.allo-kicker--vide {
	color: var(--allo-encre-2);
}

.entry-meta {
	color: var(--allo-encre-2);
	font-size: 14px;
}

.entry-meta a {
	color: var(--allo-encre-2);
	position: relative;
	z-index: 1;
}

.entry-meta a:hover,
.entry-meta a:focus {
	color: var(--allo-accent);
}

.posted-on time.entry-date:not(:empty)::after {
	content: " · ";
}

/* ==========================================================================
   8. Cartes (accueil, rubriques, recherche)
   ========================================================================== */
.blog .site-main > article,
.archive .site-main > article,
.search .site-main > article {
	margin-bottom: 0;
}

.blog .inside-article,
.archive .inside-article,
.search .inside-article {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 0 0 var(--allo-esp);
	overflow: hidden;
	transition: border-color .15s ease, transform .15s ease;
}

.blog .inside-article > *,
.archive .inside-article > *,
.search .inside-article > * {
	padding-left: var(--allo-esp);
	padding-right: var(--allo-esp);
}

.blog .inside-article:hover,
.archive .inside-article:hover,
.search .inside-article:hover {
	border-color: var(--allo-accent);
}

.blog .inside-article:focus-within,
.archive .inside-article:focus-within,
.search .inside-article:focus-within {
	border-color: var(--allo-accent);
	box-shadow: 0 0 0 1px var(--allo-accent);
}

@media (prefers-reduced-motion: no-preference) {
	.blog .inside-article:hover,
	.archive .inside-article:hover {
		transform: translateY(-2px);
	}
}

/* Tout le bloc est cliquable, via le lien du titre (aucun lien ajouté). */
.blog .entry-title a::after,
.archive .entry-title a::after,
.search .entry-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.blog .entry-title a:focus-visible,
.archive .entry-title a:focus-visible,
.search .entry-title a:focus-visible {
	outline: 0;
	text-decoration: underline;
}

.blog .entry-header,
.archive .entry-header,
.search .entry-header {
	padding-top: 14px;
}

.blog .entry-title,
.archive .entry-title,
.search .entry-title {
	font-size: 19px;
	line-height: 1.3;
	margin-bottom: 0;
}

.entry-title a {
	color: var(--allo-encre);
	text-decoration: none;
}

.entry-title a:hover,
.entry-title a:focus {
	color: var(--allo-accent);
}

.blog .entry-summary,
.archive .entry-summary,
.search .entry-summary {
	margin-top: 10px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--allo-encre-2);
}

.blog footer.entry-meta:empty,
.archive footer.entry-meta:empty {
	display: none;
}

.read-more {
	position: relative;
	z-index: 1;
	font-weight: 600;
}

/* Visuel de carte : format fixe, width/height posés par WordPress → aucun décalage. */
.allo-media,
.inside-article > .allo-media {
	display: block;
	order: -1;
	padding: 0;
	aspect-ratio: var(--allo-ratio);
	overflow: hidden;
	background: var(--allo-fond);
}

.allo-media__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Repli sans image : pictogramme SVG en ligne, aucun réseau. */
.allo-media--fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background-color: var(--allo-nuit);
	background-image:
		linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
	background-size: 24px 24px;
}

.allo-media--fallback .allo-icon {
	width: 62%;
	height: 62%;
	stroke-width: 2.4;
	color: #8fb8ff;
}

.allo-media--fallback[data-rubrique="e-cigarette"] .allo-icon,
.allo-media--fallback[data-rubrique="gaming"] .allo-icon {
	color: #fff;
}

/* ==========================================================================
   9. Accueil magazine (page 1)
   ========================================================================== */
.allo-section-title {
	grid-column: 1 / -1;
	margin: 8px 0 0;
	padding-bottom: 8px;
	font-size: 14px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .1em;
	border-bottom: 2px solid var(--allo-encre);
}

.home .site-main,
.archive .site-main,
.search .site-main {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	align-content: start;
}

.home .site-main > *,
.archive .site-main > *,
.search .site-main > * {
	margin-bottom: 0;
}

.home .paging-navigation,
.archive .page-header,
.archive .paging-navigation,
.search .page-header,
.search .paging-navigation,
.allo-par-rubrique {
	grid-column: 1 / -1;
}

/* Une du jour */
.home:not(.paged) .site-main > article:first-of-type .entry-title {
	font-size: 26px;
	line-height: 1.15;
	letter-spacing: -.02em;
}

.home:not(.paged) .site-main > article:first-of-type .entry-summary {
	font-size: 16px;
	color: var(--allo-encre);
}

/* Liste dense à partir de la 4e : vignette + titre, sans extrait. */
.home:not(.paged) .site-main > article:nth-of-type(n+4) .entry-summary {
	display: none;
}

@media (max-width: 599px) {
	.home:not(.paged) .site-main > article:nth-of-type(n+4) .inside-article {
		display: grid;
		grid-template-columns: 112px minmax(0, 1fr);
		grid-template-rows: auto 1fr;
		column-gap: 12px;
		padding: 12px;
	}

	.home:not(.paged) .site-main > article:nth-of-type(n+4) .inside-article > * {
		padding: 0;
	}

	.home:not(.paged) .site-main > article:nth-of-type(n+4) .allo-media {
		grid-row: 1 / span 2;
		aspect-ratio: 1;
		border-radius: 3px;
	}

	.home:not(.paged) .site-main > article:nth-of-type(n+4) .entry-header {
		padding-top: 0;
	}

	.home:not(.paged) .site-main > article:nth-of-type(n+4) .entry-title {
		font-size: 16px;
	}

	.home:not(.paged) .site-main > article:nth-of-type(n+4) .entry-meta .byline,
	.home:not(.paged) .site-main > article:nth-of-type(n+4) .allo-media--fallback .allo-icon {
		display: none;
	}

	.home:not(.paged) .site-main > article:nth-of-type(n+4) .posted-on time.entry-date::after {
		content: none;
	}
}

@media (min-width: 600px) {
	.home .site-main,
	.archive .site-main,
	.search .site-main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.home:not(.paged) .site-main > article:first-of-type {
		grid-column: 1 / -1;
	}

	.home:not(.paged) .site-main > article:nth-of-type(n+4) .entry-title {
		font-size: 17px;
	}
}

@media (min-width: 1025px) {
	.home:not(.paged) .site-main > article:first-of-type .inside-article {
		display: grid;
		grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
		grid-template-rows: auto auto 1fr auto;
		column-gap: 0;
		padding-bottom: 0;
	}

	.home:not(.paged) .site-main > article:first-of-type .allo-media {
		grid-column: 1;
		grid-row: 1 / -1;
		aspect-ratio: auto;
		min-height: 320px;
	}

	.home:not(.paged) .site-main > article:first-of-type .inside-article > :not(.allo-media) {
		grid-column: 2;
		padding-left: 24px;
		padding-right: 24px;
	}

	.home:not(.paged) .site-main > article:first-of-type .entry-header {
		padding-top: 24px;
	}

	.home:not(.paged) .site-main > article:first-of-type .entry-title {
		font-size: 30px;
	}
}

/* Listes par rubrique */
.allo-par-rubrique {
	display: grid;
	gap: 16px;
}

.allo-par-rubrique__grid {
	display: grid;
	gap: 16px;
}

@media (min-width: 600px) {
	.allo-par-rubrique__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.allo-rubrique-bloc {
	background: var(--allo-surface);
	border: 1px solid var(--allo-trait);
	border-top: 3px solid var(--allo-accent);
	border-radius: var(--allo-rayon);
	padding: 14px 16px;
}

.allo-rubrique-bloc__titre {
	font-size: 17px;
	margin: 0 0 6px;
}

.allo-rubrique-bloc__titre a {
	color: var(--allo-encre);
	text-decoration: none;
}

.allo-rubrique-bloc__titre a:hover,
.allo-rubrique-bloc__titre a:focus {
	color: var(--allo-accent);
	text-decoration: underline;
}

.allo-rubrique-bloc ul {
	list-style: none;
	margin: 0;
}

.allo-rubrique-bloc li {
	padding: 8px 0;
	border-top: 1px solid var(--allo-trait);
	font-size: 15px;
	line-height: 1.35;
}

.allo-rubrique-bloc li a {
	color: var(--allo-encre);
	text-decoration: none;
}

.allo-rubrique-bloc li a:hover,
.allo-rubrique-bloc li a:focus {
	color: var(--allo-accent);
	text-decoration: underline;
}

/* ==========================================================================
   10. Page de rubrique (archive)
   ========================================================================== */
.archive .page-header,
.search .page-header {
	padding: 20px;
	border-top: 4px solid var(--allo-accent);
}

.page-header .page-title {
	font-size: 30px;
	margin: 0;
}

.taxonomy-description {
	margin-top: 8px;
	color: var(--allo-encre-2);
}

@media (min-width: 1025px) {
	.archive:not(.paged) .site-main > .page-header + article {
		grid-column: 1 / -1;
	}

	.archive:not(.paged) .site-main > .page-header + article .entry-title {
		font-size: 26px;
	}
}

/* Rubrique vide / aucun résultat (no-results.php du parent) */
.no-results .inside-article,
.no-results .inside-article:hover {
	padding: 32px 24px;
	border-color: var(--allo-trait);
	border-top: 4px solid var(--allo-trait);
	transform: none;
}

.no-results .inside-article > * {
	padding-left: 0;
	padding-right: 0;
}

.no-results .entry-title {
	font-size: 26px;
}

.no-results .search-form {
	max-width: 420px;
	margin-top: 16px;
}

.archive .no-results,
.search .no-results {
	grid-column: 1 / -1;
}

/* Pagination (inchangée, seulement habillée) */
.paging-navigation .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.paging-navigation .page-numbers {
	display: inline-block;
	min-width: 44px;
	padding: 10px 12px;
	text-align: center;
	border: 1px solid var(--allo-trait);
	border-radius: var(--allo-rayon);
	text-decoration: none;
}

.paging-navigation .page-numbers.current {
	background: var(--allo-encre);
	border-color: var(--allo-encre);
	color: #fff;
}

/* ==========================================================================
   11. Page article
   ========================================================================== */
.single .inside-article {
	padding: 24px 20px;
}

.single .entry-header {
	max-width: 760px;
}

.single .entry-title,
.page .entry-title {
	font-size: 30px;
	line-height: 1.15;
	letter-spacing: -.02em;
	margin-bottom: 0;
}

.single .entry-header .entry-meta {
	margin-top: 12px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--allo-trait);
}

.allo-chapo {
	margin: 20px 0 0;
	font-size: 19px;
	line-height: 1.5;
	font-weight: 500;
	color: var(--allo-encre);
	max-width: 70ch;
}

.allo-hero {
	margin: 20px -20px 0;
}

.allo-hero__img {
	display: block;
	width: 100%;
	height: auto;
}

.allo-hero figcaption {
	padding: 6px 20px 0;
	font-size: 13px;
	color: var(--allo-encre-2);
}

/* Sommaire (details natif, sans JS) */
.allo-toc {
	margin: 24px 0 0;
	max-width: 70ch;
	background: var(--allo-fond);
	border-left: 3px solid var(--allo-accent);
	border-radius: 0 var(--allo-rayon) var(--allo-rayon) 0;
}

.allo-toc summary {
	cursor: pointer;
	padding: 12px 16px;
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
	min-height: 44px;
}

.allo-toc ol {
	margin: 0;
	padding: 0 16px 14px 36px;
	font-size: 15px;
	line-height: 1.4;
}

.allo-toc li {
	margin: 0 0 8px;
}

.allo-toc a {
	color: var(--allo-encre);
}

.allo-toc a:hover,
.allo-toc a:focus {
	color: var(--allo-accent);
}

/* Corps de l'article : contenu rendu tel quel, seulement mis en forme. */
.single .entry-content {
	max-width: 70ch;
	font-size: 18px;
	line-height: 1.7;
	overflow-wrap: break-word;
}

.single .entry-content > * {
	margin-bottom: 1.1em;
}

.single .entry-content h2 {
	font-size: 25px;
	margin: 1.8em 0 .6em;
	scroll-margin-top: 16px;
}

.single .entry-content h3 {
	font-size: 21px;
	margin: 1.5em 0 .5em;
	scroll-margin-top: 16px;
}

.single .entry-content h2 br,
.single .entry-content h3 br {
	display: none; /* retours à la ligne saisis dans les titres importés */
}

.single .entry-content a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

.single .entry-content img {
	border-radius: var(--allo-rayon);
}

.single .entry-content blockquote {
	margin-left: 0;
	padding: 4px 0 4px 18px;
	border-left: 3px solid var(--allo-accent);
	font-style: normal;
	color: var(--allo-encre);
}

.single .entry-content table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
	line-height: 1.45;
}

.single .entry-content .wp-block-table {
	overflow-x: auto;
}

.single .entry-content th,
.single .entry-content td {
	padding: 8px 10px;
	border: 1px solid var(--allo-trait);
	text-align: left;
	vertical-align: top;
}

.single .entry-content th,
.single .entry-content thead td {
	background: var(--allo-fond);
	font-weight: 700;
}

.single .entry-content pre,
.single .entry-content code {
	background: var(--allo-fond);
	border-radius: 3px;
	font-size: .9em;
}

.single .entry-content pre {
	padding: 14px;
	overflow-x: auto;
}

/* Articles liés (Contextual Related Posts, inséré dans le contenu par l'extension). */
.single .entry-content .crp_related {
	margin: 2.5em 0 0;
	padding-top: 16px;
	border-top: 2px solid var(--allo-encre);
	clear: both;
}

.single .entry-content .crp_related h3 {
	margin: 0 0 12px;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.single .entry-content .crp_related ul {
	list-style: none;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.single .entry-content .crp_related li {
	margin: 0;
	float: none;
	width: auto;
}

.single .entry-content .crp_related a {
	display: block;
	text-decoration: none;
	color: var(--allo-encre);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
}

.single .entry-content .crp_related a:hover,
.single .entry-content .crp_related a:focus {
	color: var(--allo-accent);
}

.single .entry-content .crp_related figure {
	margin: 0 0 6px;
}

.single .entry-content .crp_related img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 3px;
}

@media (min-width: 600px) {
	.single .entry-content .crp_related ul {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* Partage */
.allo-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 2em 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--allo-trait);
}

.allo-share__label {
	margin: 0;
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .08em;
}

.allo-share ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
}

.allo-share__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--allo-trait);
	border-radius: var(--allo-rayon);
	color: var(--allo-encre);
}

.allo-share__link:hover,
.allo-share__link:focus {
	color: #fff;
	background: var(--allo-accent);
	border-color: var(--allo-accent);
}

.allo-share .allo-icon {
	width: 20px;
	height: 20px;
}

/* Pied d'article (rubriques, navigation précédent/suivant du parent) */
.single footer.entry-meta {
	margin-top: 1.5em;
	font-size: 15px;
}

.single .post-navigation {
	margin-top: 1em;
	padding-top: 1em;
	border-top: 1px solid var(--allo-trait);
}

.single .post-navigation a {
	color: var(--allo-encre);
	font-weight: 600;
}

.single .post-navigation a:hover,
.single .post-navigation a:focus {
	color: var(--allo-accent);
}

/* Auteur */
.allo-author {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin-top: 2em;
	padding: 16px;
	background: var(--allo-fond);
	border-radius: var(--allo-rayon);
}

.allo-author__initiale {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--allo-encre);
	color: #fff;
	font-weight: 800;
	font-size: 18px;
}

.allo-author__nom {
	margin: 0;
	font-weight: 700;
}

.allo-author__bio {
	margin: 4px 0 0;
	font-size: 15px;
	color: var(--allo-encre-2);
}

.allo-related {
	margin-top: 2em;
}

.allo-related h2 {
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .08em;
	border-bottom: 2px solid var(--allo-encre);
	padding-bottom: 8px;
}

.allo-related ul {
	margin: 0;
	list-style: none;
}

.allo-related li {
	padding: 8px 0;
	border-bottom: 1px solid var(--allo-trait);
}

@media (min-width: 769px) {
	.single .inside-article {
		padding: 40px 48px;
	}

	.single .entry-title,
	.page .entry-title {
		font-size: 38px;
	}

	.allo-hero {
		margin-left: -48px;
		margin-right: -48px;
	}

	.allo-hero figcaption {
		padding-left: 48px;
	}
}

/* ==========================================================================
   12. Pied de page
   ========================================================================== */
.site-info {
	background: var(--allo-encre);
	color: #fff;
	font-size: 14px;
}

.site-info a {
	color: #fff;
}

.site-info a:hover,
.site-info a:focus {
	color: #c7d7fe;
}

/* ==========================================================================
   13. Mobile : marges resserrées
   ========================================================================== */
@media (max-width: 768px) {
	.inside-header {
		padding-left: 16px;
		padding-right: 16px;
	}

	.allo-rubriques__list {
		padding: 0 8px;
	}

	/* #main : le parent remet les marges latérales à 0 par l'id (main.css, « #main ») → texte collé au bord. */
	.separate-containers #main {
		margin: 16px 12px;
	}

	/* Débordement horizontal : aucun enfant de flex ou de grille n'impose sa largeur minimale. */
	.site-content > *,
	.site-main > *,
	.inside-article > *,
	.inside-header > *,
	.search-form label {
		min-width: 0;
	}

	.entry-title,
	.entry-summary,
	.allo-chapo,
	.allo-toc,
	.widget,
	.allo-rubrique-bloc {
		overflow-wrap: anywhere;
	}

	.separate-containers .inside-right-sidebar {
		margin: 0 12px 16px;
	}

	.single .inside-article {
		padding: 20px 16px;
	}

	.allo-hero {
		margin-left: -16px;
		margin-right: -16px;
	}

	.allo-hero figcaption {
		padding-left: 16px;
	}

	.single .entry-content {
		font-size: 17px;
	}

	.single .entry-content h2 {
		font-size: 22px;
	}

	.single .entry-content h3 {
		font-size: 19px;
	}

	.main-title {
		font-size: 22px;
	}
}
