/*
Theme Name: Auto Cameroon
Theme URI: https://auto.cameroonceo.com
Author: Nkunda Africa Innovation Group
Author URI: https://cameroonceo.com
Description: Theme sur mesure pour Auto Cameroon, le media automobile du groupe Nkunda Africa. Design epure, rapide, pense pour l'integration publicitaire et les formats editoriaux automobile : actualite, essai, comparatif, guide d'achat.
Version: 1.1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: auto-cameroon
*/

/* ==========================================================================
   1. JETONS DE DESIGN
   Palette derivee du logo Auto Cameroon : or, bleu marine, blanc dominant.
   ========================================================================== */

:root {
	/* Couleurs de marque */
	--ac-white: #FFFFFF;
	--ac-paper: #F6F7F9;
	--ac-paper-deep: #EEF0F4;
	--ac-navy: #0D2762;
	--ac-navy-deep: #081A44;
	--ac-navy-tint: #E9EDF6;
	--ac-gold: #F2B705;
	--ac-gold-deep: #B98600;
	--ac-gold-tint: #FDF3D6;

	/* Neutres fonctionnels */
	--ac-ink: #14171F;
	--ac-slate: #5B6472;
	--ac-slate-light: #8790A0;
	--ac-line: #E1E4EA;
	--ac-line-strong: #C9CEDA;

	/* Typographie */
	--ac-font-display: "Barlow Condensed", "Arial Narrow", sans-serif;
	--ac-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--ac-font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

	--ac-fs-hero: clamp(1.75rem, 1.05rem + 2.9vw, 3.6rem);
	--ac-fs-h1: clamp(1.75rem, 1.2rem + 2.2vw, 2.6rem);
	--ac-fs-h2: clamp(1.35rem, 1.1rem + 1vw, 1.75rem);
	--ac-fs-h3: 1.1rem;
	--ac-fs-body: 1rem;
	--ac-fs-small: 0.875rem;
	--ac-fs-tiny: 0.75rem;

	/* Forme */
	--ac-radius-card: 14px;
	--ac-radius-btn: 999px;
	--ac-radius-sm: 6px;

	/* Ombres, teintees navy plutot que grises pour rester dans la charte */
	--ac-shadow-card: 0 1px 2px rgba(13, 39, 98, 0.05), 0 10px 24px rgba(13, 39, 98, 0.07);
	--ac-shadow-lift: 0 4px 8px rgba(13, 39, 98, 0.08), 0 20px 40px rgba(13, 39, 98, 0.10);

	/* Rythme */
	--ac-container: 1240px;
	--ac-gap: 1.75rem;
	--ac-transition: 180ms ease;
}

/* ==========================================================================
   2. RESET ET BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

body {
	margin: 0;
	background: var(--ac-white);
	color: var(--ac-ink);
	font-family: var(--ac-font-body);
	font-size: var(--ac-fs-body);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; font-family: var(--ac-font-display); font-weight: 700; letter-spacing: 0.01em; color: var(--ac-navy); line-height: 1.08; overflow-wrap: break-word; }
p, li, td, th, a { overflow-wrap: break-word; }
p { margin: 0 0 1em; }
button { font: inherit; cursor: pointer; }
input, textarea { font: inherit; }
table { border-collapse: collapse; width: 100%; }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px; height: 1px; overflow: hidden;
}
.ac-skip-link {
	position: fixed; top: -100px; left: 1rem; z-index: 999;
	background: var(--ac-navy); color: var(--ac-white);
	padding: 0.75rem 1.25rem; border-radius: var(--ac-radius-sm);
	transition: top var(--ac-transition);
}
.ac-skip-link:focus { top: 1rem; clip: auto; width: auto; height: auto; overflow: visible; }

:focus-visible {
	outline: 2px solid var(--ac-gold-deep);
	outline-offset: 2px;
}

.ac-container {
	max-width: var(--ac-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

.ac-empty { color: var(--ac-slate); padding: 2rem 0; }

/* ==========================================================================
   3. BOUTONS, BADGES, ETIQUETTES
   ========================================================================== */

.ac-btn {
	display: inline-flex; align-items: center; gap: 0.5rem;
	padding: 0.7rem 1.4rem;
	border-radius: var(--ac-radius-btn);
	font-family: var(--ac-font-display);
	font-weight: 700; font-size: 1rem; letter-spacing: 0.02em;
	border: none;
	transition: transform var(--ac-transition), box-shadow var(--ac-transition), background var(--ac-transition);
}
.ac-btn--gold { background: var(--ac-gold); color: var(--ac-navy-deep); }
.ac-btn--gold:hover { background: var(--ac-gold-deep); color: var(--ac-white); }
.ac-btn--gold:active { transform: translateY(1px); }

.ac-badge {
	display: inline-block;
	background: var(--ac-gold-tint);
	color: var(--ac-navy);
	font-family: var(--ac-font-display);
	font-weight: 700;
	font-size: var(--ac-fs-tiny);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.3rem 0.7rem;
	border-radius: var(--ac-radius-sm);
	border: 1px solid rgba(242, 183, 5, 0.4);
}
.ac-badge:hover { background: var(--ac-gold); }

.ac-tag {
	display: inline-block;
	font-size: var(--ac-fs-small);
	color: var(--ac-slate);
	border: 1px solid var(--ac-line);
	border-radius: var(--ac-radius-btn);
	padding: 0.3rem 0.85rem;
	margin: 0 0.4rem 0.4rem 0;
}
.ac-tag:hover { border-color: var(--ac-navy); color: var(--ac-navy); }

/* Bande fine a motif damier : element signature, utilisee avec parcimonie. */
.ac-checker-divider {
	height: 4px;
	background-image: repeating-linear-gradient(90deg, var(--ac-navy) 0 10px, var(--ac-gold) 10px 20px);
}

/* ==========================================================================
   4. EN-TETE / NAVIGATION
   ========================================================================== */

.ac-masthead {
	position: sticky; top: 0; z-index: 100;
	background: var(--ac-white);
	border-bottom: 1px solid var(--ac-line);
}
.ac-masthead-top {
	position: relative;
	display: flex; align-items: center; justify-content: space-between;
	gap: 1.5rem;
	padding: 0.85rem 1.25rem;
	transition: padding var(--ac-transition);
}
.ac-masthead.is-compact .ac-masthead-top { padding-top: 0.5rem; padding-bottom: 0.5rem; }

.ac-branding img { max-height: 46px; width: auto; transition: max-height var(--ac-transition); }
.ac-masthead.is-compact .ac-branding img { max-height: 36px; }
.ac-site-title { font-family: var(--ac-font-display); font-weight: 800; font-size: 1.5rem; color: var(--ac-navy); }

.ac-primary-nav { display: none; }
.ac-nav-list { display: flex; align-items: center; gap: 1.9rem; }
.ac-nav-list a {
	font-family: var(--ac-font-display);
	font-weight: 600; font-size: 1.05rem; letter-spacing: 0.01em;
	color: var(--ac-navy);
	position: relative;
	padding: 0.4rem 0.05rem;
}
.ac-nav-list a::after {
	content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 3px;
	background: var(--ac-gold); transition: right var(--ac-transition);
}
.ac-nav-list a:hover::after, .ac-nav-list li.current-menu-item a::after { right: 0; }

/* Sous-menus : rubriques avec sous-categories (Achat & Opportunites, etc.) */
.ac-nav-list li { position: relative; }
.ac-nav-list li.menu-item-has-children > a { display: inline-flex; align-items: center; gap: 0.35rem; }
.ac-nav-list li.menu-item-has-children > a::before {
	content: ""; width: 6px; height: 6px;
	border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg); margin-top: -4px; opacity: 0.6;
}
.ac-nav-list .sub-menu {
	display: none;
	position: absolute; top: 100%; left: 0; min-width: 240px;
	background: var(--ac-white); border-radius: var(--ac-radius-sm);
	box-shadow: var(--ac-shadow-lift); border: 1px solid var(--ac-line);
	padding: 0.5rem 0; margin-top: 0.6rem; z-index: 60;
}
.ac-nav-list li.menu-item-has-children:hover > .sub-menu,
.ac-nav-list li.menu-item-has-children:focus-within > .sub-menu {
	display: block;
}
.ac-nav-list .sub-menu li { width: 100%; }
.ac-nav-list .sub-menu a {
	display: block; width: 100%;
	font-size: 0.95rem; font-weight: 500; letter-spacing: normal;
	padding: 0.55rem 1.2rem; white-space: nowrap;
}
.ac-nav-list .sub-menu a::after { content: none; }
.ac-nav-list .sub-menu a:hover { background: var(--ac-paper); color: var(--ac-gold-deep); }

/* En menu mobile deplie, les sous-menus restent visibles en ligne (pas de survol au doigt). */
body.ac-nav-open .ac-nav-list .sub-menu {
	display: block; position: static; box-shadow: none; border: none;
	padding: 0.25rem 0 0.25rem 1.1rem; margin: 0.4rem 0 0;
	border-left: 2px solid var(--ac-line);
}
body.ac-nav-open .ac-nav-list li.menu-item-has-children > a::before { display: none; }

.ac-masthead-actions { display: flex; align-items: center; gap: 0.4rem; }
.ac-icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border: none; background: transparent;
	color: var(--ac-navy); border-radius: var(--ac-radius-sm);
}
.ac-icon-btn:hover { background: var(--ac-paper); }
.ac-menu-toggle { display: inline-flex; }

.ac-search-panel { max-height: 0; overflow: hidden; background: var(--ac-paper); transition: max-height var(--ac-transition); }
.ac-search-panel.is-open { max-height: 220px; }
.ac-search-form { display: flex; gap: 0.6rem; padding: 1rem 1.25rem; max-width: var(--ac-container); margin: 0 auto; }
.ac-search-field {
	flex: 1; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius-btn);
	padding: 0.65rem 1.1rem; font-size: 1rem; background: var(--ac-white); color: var(--ac-ink);
}
.ac-search-field:focus { border-color: var(--ac-navy); }

.ac-ad-header-wrap { padding: 0.9rem 1.25rem; display: flex; justify-content: center; }

@media (min-width: 900px) {
	.ac-primary-nav { display: block; }
	.ac-menu-toggle { display: none; }
}

/* Menu mobile deplie : ancre sous la barre d'en-tete, quelle que soit sa
   hauteur (le logo et la barre se compactent au defilement). */
body.ac-nav-open .ac-primary-nav {
	display: block;
	position: absolute; top: 100%; left: 0; right: 0;
	background: var(--ac-white);
	border-top: 1px solid var(--ac-line);
	box-shadow: var(--ac-shadow-lift);
	padding: 1.25rem;
	max-height: calc(100vh - 100%); overflow-y: auto;
	z-index: 90;
}
body.ac-nav-open .ac-nav-list { flex-direction: column; align-items: flex-start; gap: 1.1rem; }
body.ac-nav-open .ac-nav-list a { font-size: 1.25rem; }
@media (min-width: 900px) {
	body.ac-nav-open .ac-primary-nav {
		position: static; inset: auto; padding: 0;
		border-top: none; box-shadow: none; max-height: none; overflow: visible;
	}
}

/* ==========================================================================
   5. CADRAN DE NOTE (element signature)
   Un instrument de bord plutot qu'une simple etoile : conic-gradient dore
   sur fond marine, comme un compte-tours.
   ========================================================================== */

.ac-gauge { --ac-gauge-size: 84px; width: var(--ac-gauge-size); height: var(--ac-gauge-size); }
.ac-gauge--small { --ac-gauge-size: 56px; }
.ac-gauge--large { --ac-gauge-size: 128px; }
.ac-gauge-ring {
	width: 100%; height: 100%; border-radius: 50%;
	background: conic-gradient(var(--ac-gold) calc(var(--ac-gauge-percent) * 1%), rgba(255,255,255,0.18) 0);
	padding: 5px;
	display: flex; align-items: center; justify-content: center;
	box-shadow: var(--ac-shadow-card);
}
.ac-gauge-face {
	width: 100%; height: 100%; border-radius: 50%;
	background: var(--ac-navy);
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	color: var(--ac-white);
}
.ac-gauge-score { font-family: var(--ac-font-display); font-weight: 800; line-height: 1; font-size: calc(var(--ac-gauge-size) * 0.34); }
.ac-gauge-max { font-family: var(--ac-font-mono); font-size: calc(var(--ac-gauge-size) * 0.13); opacity: 0.75; }
.ac-card-gauge { position: absolute; top: 0.75rem; right: 0.75rem; }

/* ==========================================================================
   6. CARTES D'ARTICLE
   ========================================================================== */

.ac-grid { display: grid; gap: var(--ac-gap); grid-template-columns: 1fr; }
@media (min-width: 640px) { .ac-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .ac-grid--3 { grid-template-columns: repeat(3, 1fr); } }

.ac-card { background: var(--ac-white); border-radius: var(--ac-radius-card); overflow: hidden; box-shadow: var(--ac-shadow-card); transition: transform var(--ac-transition), box-shadow var(--ac-transition); }
.ac-card:hover { transform: translateY(-3px); box-shadow: var(--ac-shadow-lift); }
.ac-card-media { position: relative; display: block; aspect-ratio: 3 / 2; background: var(--ac-paper-deep); overflow: hidden; }
.ac-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms ease; }
.ac-card:hover .ac-card-media img { transform: scale(1.04); }
.ac-card-media-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--ac-navy-tint), var(--ac-paper-deep)); }
.ac-card-body { padding: 1.1rem 1.2rem 1.35rem; }
.ac-card-eyebrow { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.6rem; }
.ac-card-date { font-size: var(--ac-fs-tiny); color: var(--ac-slate-light); font-family: var(--ac-font-mono); }
.ac-card-title { font-size: 1.2rem; margin-bottom: 0.4rem; }
.ac-card-title a:hover { color: var(--ac-gold-deep); }
.ac-card-excerpt { font-size: var(--ac-fs-small); color: var(--ac-slate); margin: 0; }

.ac-card--row { display: grid; grid-template-columns: 96px 1fr; gap: 1rem; box-shadow: none; border-bottom: 1px solid var(--ac-line); border-radius: 0; }
.ac-card--row:hover { transform: none; box-shadow: none; }
.ac-card--row .ac-card-media { aspect-ratio: 1 / 1; border-radius: var(--ac-radius-sm); }
.ac-card--row .ac-card-body { padding: 0.6rem 0; }
.ac-card--row .ac-card-title { font-size: 1.02rem; }

/* ==========================================================================
   7. ACCUEIL / UNE
   ========================================================================== */

/**
 * Le hero grandit avec son contenu : l'image est un calque de fond, jamais
 * une contrainte de hauteur. Un titre long allonge donc le bloc au lieu de
 * deborder vers le haut et de passer sous l'en-tete collant.
 */
.ac-hero {
	position: relative;
	display: flex; align-items: flex-end;
	min-height: 64vw;
	background: var(--ac-navy-deep);
	overflow: hidden;
	color: var(--ac-white);
}
@media (min-width: 900px) {
	.ac-hero { min-height: min(42vw, 620px); }
}
.ac-hero-media { position: absolute; inset: 0; display: block; overflow: hidden; }
.ac-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.ac-hero-media-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--ac-navy), var(--ac-navy-deep)); }
.ac-hero-media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(0deg, rgba(8,26,68,0.94) 0%, rgba(8,26,68,0.70) 45%, rgba(8,26,68,0.22) 100%);
}
@media (min-width: 900px) {
	.ac-hero-media::after {
		background: linear-gradient(0deg, rgba(8,26,68,0.92) 0%, rgba(8,26,68,0.35) 55%, rgba(8,26,68,0.05) 100%);
	}
}
.ac-hero-content {
	position: relative; z-index: 2;
	width: 100%;
	padding: 3.25rem 1.25rem 2rem;
	max-width: var(--ac-container); margin: 0 auto;
	display: flex; flex-direction: column; gap: 0.85rem;
}
.ac-hero-eyebrow { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
.ac-hero-date { font-family: var(--ac-font-mono); font-size: var(--ac-fs-tiny); color: rgba(255,255,255,0.75); }
.ac-hero-title { font-size: var(--ac-fs-hero); color: var(--ac-white); }
@media (min-width: 900px) { .ac-hero-title { max-width: 20ch; } }
.ac-hero-title a { color: inherit; }
.ac-hero-excerpt { max-width: 58ch; color: rgba(255,255,255,0.85); font-size: 1.05rem; }
@media (max-width: 599px) { .ac-hero-excerpt { font-size: 0.95rem; } }
.ac-hero-gauge { margin-top: 0.25rem; }

.ac-home-body { padding-top: 2.75rem; padding-bottom: 1rem; }
.ac-home-section { margin-bottom: 3rem; }
.ac-section-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 1.25rem; border-bottom: 2px solid var(--ac-navy); padding-bottom: 0.6rem; }
.ac-section-title { font-size: var(--ac-fs-h2); text-transform: uppercase; letter-spacing: 0.02em; }
.ac-section-more { font-size: var(--ac-fs-small); font-weight: 600; color: var(--ac-gold-deep); }
.ac-section-more:hover { text-decoration: underline; }

.ac-home-native { margin: 0 0 3rem; }

/* ==========================================================================
   8. ZONES PUBLICITAIRES
   ========================================================================== */

.ac-ad-slot { display: flex; flex-direction: column; align-items: center; gap: 0.4rem; margin: 0 0 1.5rem; }
.ac-ad-label {
	font-family: var(--ac-font-mono); font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--ac-slate-light);
}
.ac-ad-slot--leaderboard, .ac-ad-slot--banner { width: 100%; }
.ac-ad-slot--empty {
	width: 100%; min-height: 90px;
	border: 1px dashed var(--ac-line-strong); border-radius: var(--ac-radius-sm);
	justify-content: center; padding: 1rem;
	background: var(--ac-paper);
}
.ac-ad-placeholder { font-size: var(--ac-fs-small); color: var(--ac-slate-light); text-align: center; margin: 0; }
.ac-ad-slot--sticky { position: sticky; top: 96px; }
.ac-ad-slot--native { background: var(--ac-paper); border: 1px solid var(--ac-line); border-radius: var(--ac-radius-card); padding: 1.25rem; }

/* ==========================================================================
   9. ARTICLE
   ========================================================================== */

.ac-article-layout { display: grid; grid-template-columns: 1fr; gap: 3rem; padding-top: 2.5rem; padding-bottom: 3rem; align-items: start; }
@media (min-width: 1000px) { .ac-article-layout { grid-template-columns: minmax(0, 1fr) 320px; } }

.ac-article-main { min-width: 0; }
.ac-article-eyebrow { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.9rem; flex-wrap: wrap; }
.ac-article-format-tag {
	font-family: var(--ac-font-mono); font-size: var(--ac-fs-tiny); letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--ac-navy); border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius-sm); padding: 0.25rem 0.6rem;
}
.ac-article-title { font-size: var(--ac-fs-h1); margin-bottom: 1rem; }
.ac-article-meta { display: flex; align-items: center; gap: 0.5rem; color: var(--ac-slate); font-size: var(--ac-fs-small); margin-bottom: 1.5rem; }
.ac-article-dot { color: var(--ac-line-strong); }

.ac-essai-summary {
	display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap;
	background: var(--ac-navy); color: var(--ac-white);
	border-radius: var(--ac-radius-card); padding: 1.4rem 1.6rem; margin-bottom: 1.75rem;
}
.ac-essai-points { display: flex; gap: 2rem; flex-wrap: wrap; }
.ac-essai-points-col h3 { color: var(--ac-white); font-size: var(--ac-fs-small); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.5rem; }
.ac-points-list li { position: relative; padding-left: 1.2rem; margin-bottom: 0.35rem; font-size: var(--ac-fs-small); }
.ac-points-list li::before { content: "+"; position: absolute; left: 0; color: var(--ac-gold); font-weight: 700; }
.ac-points-list--faibles li::before { content: "-"; color: rgba(255,255,255,0.6); }
.ac-essai-points-col--faibles li { color: rgba(255,255,255,0.75); }

.ac-versus { display: flex; align-items: center; justify-content: center; gap: 1.25rem; padding: 1rem 0 0.5rem; flex-wrap: wrap; }
.ac-versus-name { font-family: var(--ac-font-display); font-weight: 800; font-size: 1.5rem; color: var(--ac-navy); text-align: center; }
@media (max-width: 599px) { .ac-versus-name { font-size: 1.2rem; } }
.ac-versus-vs { font-family: var(--ac-font-mono); color: var(--ac-gold-deep); font-weight: 700; }

.ac-guide-resume { background: var(--ac-gold-tint); border-left: 4px solid var(--ac-gold); border-radius: var(--ac-radius-sm); padding: 1.1rem 1.4rem; margin-bottom: 1.5rem; }
.ac-guide-resume h3 { font-size: var(--ac-fs-small); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.5rem; }
.ac-guide-resume .ac-points-list li::before { content: "→"; color: var(--ac-gold-deep); }

.ac-article-thumb { margin: 0 0 1.75rem; border-radius: var(--ac-radius-card); overflow: hidden; }
.ac-article-thumb figcaption { font-size: var(--ac-fs-tiny); color: var(--ac-slate-light); padding: 0.5rem 0.1rem 0; }

.ac-article-content { font-size: 1.08rem; max-width: 72ch; }
.ac-article-content p { margin-bottom: 1.35em; }
.ac-article-content h2 { font-size: var(--ac-fs-h2); margin: 2.2em 0 0.7em; }
.ac-article-content h3 { font-size: var(--ac-fs-h3); margin: 1.8em 0 0.6em; }
.ac-article-content a { color: var(--ac-navy); text-decoration: underline; text-decoration-color: var(--ac-gold); text-underline-offset: 3px; }
.ac-article-content blockquote {
	margin: 1.8em 0; padding: 0.2em 0 0.2em 1.4em; border-left: 3px solid var(--ac-gold);
	font-family: var(--ac-font-display); font-size: 1.35rem; color: var(--ac-navy); font-weight: 600;
}
.ac-article-content img { border-radius: var(--ac-radius-sm); }
.ac-article-content ul, .ac-article-content ol { margin: 0 0 1.35em; padding-left: 1.3em; list-style: disc; }
.ac-article-content ol { list-style: decimal; }

.ac-specs-block { margin: 2.25rem 0; max-width: 72ch; }
/* Sur mobile, un tableau technique reste lisible en defilant horizontalement
   plutot qu'en ecrasant ses colonnes ou en debordant de l'ecran. */
.ac-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 1rem; }
.ac-table-scroll .ac-specs-table { min-width: 460px; }
.ac-table-scroll .ac-specs-table--versus { min-width: 520px; }

.ac-specs-table { font-family: var(--ac-font-mono); font-size: 0.92rem; border: 1px solid var(--ac-line); }
.ac-specs-table th, .ac-specs-table td { padding: 0.65rem 0.9rem; border-bottom: 1px solid var(--ac-line); text-align: left; }
.ac-specs-table tbody tr:nth-child(even) { background: var(--ac-paper); }
.ac-specs-table th { color: var(--ac-slate); font-weight: 500; width: 40%; }
.ac-specs-table--versus thead th { background: var(--ac-navy); color: var(--ac-white); font-weight: 700; }
.ac-specs-table--versus th, .ac-specs-table--versus td { text-align: center; }
.ac-specs-table--versus tbody th { text-align: left; color: var(--ac-navy); font-weight: 600; background: var(--ac-white); }

.ac-article-footer { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--ac-line); }
.ac-article-tags { margin-bottom: 1.25rem; }
.ac-share { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.ac-share-label { font-family: var(--ac-font-display); font-weight: 700; color: var(--ac-navy); text-transform: uppercase; font-size: var(--ac-fs-small); letter-spacing: 0.05em; }
.ac-share-link { font-size: var(--ac-fs-small); color: var(--ac-slate); border-bottom: 1px solid var(--ac-line-strong); }
.ac-share-link:hover { color: var(--ac-navy); border-color: var(--ac-navy); }

.ac-related { margin-top: 3rem; }

.ac-article-aside { display: flex; flex-direction: column; gap: 0.5rem; }

/* ==========================================================================
   10. ARCHIVES, RECHERCHE, PAGE, 404
   ========================================================================== */

.ac-archive-header { padding: 2.5rem 1.25rem 1rem; }
.ac-archive-title { font-size: var(--ac-fs-h1); }
.ac-archive-title span { color: var(--ac-gold-deep); }
.ac-archive-description { color: var(--ac-slate); margin-top: 0.5rem; max-width: 60ch; }
.ac-archive-layout { display: grid; grid-template-columns: 1fr; gap: 3rem; padding-bottom: 3rem; align-items: start; }
@media (min-width: 1000px) { .ac-archive-layout { grid-template-columns: minmax(0, 1fr) 320px; } }

.ac-pagination { display: flex; justify-content: center; gap: 1rem; margin-top: 2.5rem; font-family: var(--ac-font-display); font-weight: 700; }
.ac-pagination a, .ac-pagination span { padding: 0.6rem 1.1rem; border: 1px solid var(--ac-line); border-radius: var(--ac-radius-sm); }
.ac-pagination .current { background: var(--ac-navy); color: var(--ac-white); border-color: var(--ac-navy); }

.ac-page-layout { padding: 2.5rem 0 3rem; max-width: 900px; }

.ac-404 { text-align: center; padding: 5rem 1.25rem; }
.ac-404-code { font-family: var(--ac-font-mono); color: var(--ac-gold-deep); font-size: 1.1rem; letter-spacing: 0.2em; }
.ac-404-title { font-size: var(--ac-fs-h1); margin: 0.5rem 0 1rem; }
.ac-404-text { color: var(--ac-slate); max-width: 46ch; margin: 0 auto 1.75rem; }
.ac-404-search { max-width: 420px; margin: 2rem auto 0; }

/* ==========================================================================
   11. COMMENTAIRES
   ========================================================================== */

.ac-comments { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--ac-line); max-width: 72ch; }
.ac-comment-list li { padding: 1.25rem 0; border-bottom: 1px solid var(--ac-line); }
.ac-comments-closed { color: var(--ac-slate-light); font-size: var(--ac-fs-small); }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%; border: 1px solid var(--ac-line-strong); border-radius: var(--ac-radius-sm); padding: 0.7rem 0.9rem; margin-bottom: 1rem;
}

/* ==========================================================================
   12. WIDGETS ET PIED DE PAGE
   ========================================================================== */

.ac-widget { margin-bottom: 2rem; }
.ac-widget-title, .ac-footer-widget-title { font-family: var(--ac-font-display); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; font-size: var(--ac-fs-small); margin-bottom: 0.9rem; }

.ac-colophon { background: var(--ac-navy); color: rgba(255,255,255,0.85); margin-top: 2rem; }
.ac-footer-grid { display: grid; grid-template-columns: 1fr; gap: 2.25rem; padding: 3.5rem 1.25rem 2.5rem; }
@media (min-width: 720px) { .ac-footer-grid { grid-template-columns: 1.3fr repeat(4, 1fr); } }
.ac-footer-brand .ac-site-title { color: var(--ac-white); }
.ac-footer-logo img { max-height: 42px; filter: brightness(0) invert(1); opacity: 0.95; }
.ac-footer-tagline { color: rgba(255,255,255,0.6); font-size: var(--ac-fs-small); margin-top: 0.75rem; max-width: 32ch; }
.ac-colophon .ac-footer-widget-title { color: var(--ac-white); }
.ac-colophon a:hover { color: var(--ac-gold); }
.ac-footer-bottom { border-top: 1px solid rgba(255,255,255,0.12); padding: 1.5rem 1.25rem; display: flex; flex-direction: column; gap: 1rem; }
@media (min-width: 720px) { .ac-footer-bottom { flex-direction: row; align-items: center; justify-content: space-between; } }
.ac-footer-nav-list { display: flex; gap: 1.25rem; flex-wrap: wrap; font-size: var(--ac-fs-small); }
.ac-footer-copy { font-size: var(--ac-fs-tiny); color: rgba(255,255,255,0.5); margin: 0; }
.ac-ad-footer-wrap { padding: 2rem 1.25rem 0; display: flex; justify-content: center; }
