/* =================================================================
   Fiche logiciel détaillée (single-logiciel.php).
   ================================================================= */

/* La fiche utilise toute la largeur du conteneur (comme les autres pages). */
.gf-single > .gf-breadcrumb,
.gf-single > .gf-single__head,
.gf-single > .gf-disclosure,
.gf-single > .gf-author,
.gf-single > .gf-related { margin-block: var(--gf-space-8); }

/* Mise en page 2 colonnes : contenu + colonne latérale collante. */
.gf-single__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: var(--gf-space-8);
	align-items: start;
	margin-block: var(--gf-space-6);
}
.gf-single__main > section { margin-block: var(--gf-space-8); }
.gf-single__main > section:first-child { margin-top: 0; }

.gf-single__rail { position: relative; }
.gf-rail__sticky {
	position: sticky;
	top: var(--gf-space-5);
	display: flex;
	flex-direction: column;
	gap: var(--gf-space-5);
}
.gf-rail__cta { display: flex; flex-direction: column; gap: var(--gf-space-3); }
.gf-btn--block { width: 100%; }

/* ---------- En-tête ---------- */
.gf-single__head { margin-bottom: var(--gf-space-5); }
.gf-single__head-main {
	display: flex;
	align-items: center;
	gap: var(--gf-space-4);
}
.gf-single__logo {
	width: 80px;
	height: 80px;
	border-radius: var(--gf-r-md);
	object-fit: contain;
	background: var(--gf-bg-tint);
	border: 1px solid var(--gf-line);
	flex: 0 0 auto;
}
.gf-single__title { margin: var(--gf-space-1) 0; }
.gf-single__byline {
	font-family: var(--gf-font-mono);
	font-size: var(--gf-fs-xs);
	color: var(--gf-muted);
	margin-top: var(--gf-space-3);
}

/* ---------- 2. L'essentiel ---------- */
.gf-verdict-box {
	background: var(--gf-surface);
	border: 1px solid var(--gf-line);
	border-left: 4px solid var(--gf-accent);
	border-radius: var(--gf-r-lg);
	padding: var(--gf-space-6);
	box-shadow: var(--gf-shadow-sm);
}
.gf-verdict-box__title { font-size: var(--gf-fs-h3); margin: 0 0 var(--gf-space-3); }
.gf-verdict-box__meta { margin: var(--gf-space-4) 0; }
.gf-verdict-box__cta { display: flex; flex-wrap: wrap; gap: var(--gf-space-3); }

/* Liste « l'essentiel » (faits) */
.gf-essential { list-style: none; margin: var(--gf-space-3) 0; padding: 0; }
.gf-essential li {
	position: relative;
	padding-left: 1.5em;
	margin-bottom: var(--gf-space-2);
	font-size: var(--gf-fs-sm);
}
.gf-essential li::before {
	content: "›";
	position: absolute;
	left: 0;
	color: var(--gf-brand);
	font-weight: 700;
}

/* Carte avis utilisateurs (par source, jamais fusionnés) */
.gf-reviewcard {
	background: var(--gf-ink);
	color: var(--gf-bg);
	border-radius: var(--gf-r-lg);
	padding: var(--gf-space-6);
	display: flex;
	flex-direction: column;
	gap: var(--gf-space-4);
}
.gf-reviewcard__title { color: #fff; font-size: var(--gf-fs-h3); margin: 0; }
.gf-reviewcard__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gf-space-4); }
.gf-reviewcard__item {
	display: flex;
	align-items: baseline;
	gap: var(--gf-space-3);
	padding-bottom: var(--gf-space-3);
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}
.gf-reviewcard__item:last-child { border-bottom: 0; padding-bottom: 0; }
.gf-reviewcard__note {
	font-family: var(--gf-font-display);
	font-size: clamp(1.8rem, 4vw, 2.4rem);
	line-height: 1;
	color: #fff;
	flex: 0 0 auto;
}
.gf-reviewcard__note small { font-size: 0.45em; color: rgba(255, 255, 255, 0.6); }
.gf-reviewcard__src { display: flex; flex-direction: column; font-size: var(--gf-fs-sm); }
.gf-reviewcard__src a { color: #fff; text-decoration: underline; }
.gf-reviewcard__count { font-family: var(--gf-font-mono); font-size: var(--gf-fs-xs); color: rgba(255, 255, 255, 0.7); }
.gf-reviewcard__date,
.gf-reviewcard__note-bas {
	font-family: var(--gf-font-mono);
	font-size: var(--gf-fs-xs);
	color: rgba(255, 255, 255, 0.6);
	margin: 0;
}

/* Avis externes en ligne (cartes/comparateur) */
.gf-ureviews { font-size: var(--gf-fs-sm); }
.gf-ureviews__sep { color: var(--gf-line-strong); }
.gf-fiche__reviews { font-size: var(--gf-fs-sm); color: var(--gf-ink); }
.gf-muted { color: var(--gf-muted); }

/* ---------- 3. Vu ailleurs / comparateurs ---------- */
.gf-sources {
	background: var(--gf-surface);
	border: 1px solid var(--gf-line);
	border-radius: var(--gf-r-lg);
	padding: var(--gf-space-6);
}
.gf-sources__intro { color: var(--gf-muted); font-size: var(--gf-fs-sm); margin: 0 0 var(--gf-space-4); }
.gf-sources__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gf-space-3); }
.gf-sources__item {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gf-space-2) var(--gf-space-4);
	align-items: baseline;
	padding-bottom: var(--gf-space-3);
	border-bottom: 1px solid var(--gf-line);
}
.gf-sources__item:last-child { border-bottom: 0; padding-bottom: 0; }
.gf-sources__name { font-weight: 600; min-width: 9rem; }
.gf-sources__mention { color: var(--gf-muted); font-size: var(--gf-fs-sm); }

/* ---------- Pour qui / pas idéal ---------- */
.gf-foritnot {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--gf-space-6);
}
.gf-checklist--no li::before { content: "×"; color: var(--gf-warn); }

/* ---------- 3. Idéal pour + specs ---------- */
.gf-single__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--gf-space-6);
}
.gf-checklist { list-style: none; padding: 0; margin: var(--gf-space-3) 0 0; }
.gf-checklist li {
	position: relative;
	padding-left: 1.8em;
	margin-bottom: var(--gf-space-2);
}
.gf-checklist li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0;
	width: 1.2em; height: 1.2em;
	color: var(--gf-accent);
	font-weight: 700;
}
.gf-specs__table { width: 100%; border-collapse: collapse; margin-top: var(--gf-space-3); }
.gf-specs__table th,
.gf-specs__table td {
	text-align: left;
	padding: var(--gf-space-3) var(--gf-space-2);
	border-bottom: 1px solid var(--gf-line);
	font-size: var(--gf-fs-sm);
	vertical-align: top;
}
.gf-specs__table th {
	font-family: var(--gf-font-mono);
	font-size: var(--gf-fs-xs);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--gf-muted);
	width: 45%;
	font-weight: 600;
}

/* ---------- 5. Bloc PDP ---------- */
.gf-single__pdp {
	background: var(--gf-bg-tint);
	border-radius: var(--gf-r-lg);
	padding: var(--gf-space-6);
}
.gf-single__pdp-badge { margin: var(--gf-space-3) 0; }

/* ---------- 7. Verdict final ---------- */
.gf-finalverdict {
	background: var(--gf-surface);
	border: 1px solid var(--gf-line);
	border-top: 4px solid var(--gf-brand);
	border-radius: var(--gf-r-lg);
	padding: var(--gf-space-6);
}
.gf-finalverdict__cta { display: flex; flex-wrap: wrap; gap: var(--gf-space-3); margin-top: var(--gf-space-4); }

/* ---------- 8. FAQ ---------- */
.gf-faq__item {
	border: 1px solid var(--gf-line);
	border-radius: var(--gf-r-md);
	margin-bottom: var(--gf-space-3);
	background: var(--gf-surface);
	overflow: hidden;
}
.gf-faq__item summary {
	cursor: pointer;
	padding: var(--gf-space-4);
	font-weight: 600;
	font-family: var(--gf-font-display);
	font-size: var(--gf-fs-h3);
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--gf-space-3);
}
.gf-faq__item summary::-webkit-details-marker { display: none; }
.gf-faq__item summary::after {
	content: "+";
	font-family: var(--gf-font-mono);
	color: var(--gf-brand);
	font-size: 1.4em;
	transition: transform var(--gf-dur) var(--gf-ease);
}
.gf-faq__item[open] summary::after { transform: rotate(45deg); }
.gf-faq__answer { padding: 0 var(--gf-space-4) var(--gf-space-4); color: var(--gf-muted); }

/* ---------- 9. Auteur ---------- */
.gf-author {
	display: flex;
	gap: var(--gf-space-4);
	align-items: flex-start;
	background: var(--gf-bg-tint);
	border-radius: var(--gf-r-lg);
	padding: var(--gf-space-5);
}
.gf-author__img { border-radius: 50%; }
.gf-author__name { font-family: var(--gf-font-display); font-size: var(--gf-fs-h3); margin: var(--gf-space-1) 0; }
.gf-author__bio { font-size: var(--gf-fs-sm); color: var(--gf-muted); margin: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
	/* La colonne latérale passe sous le contenu et n'est plus collante. */
	.gf-single__layout { grid-template-columns: 1fr; }
	.gf-rail__sticky { position: static; }
}
@media (max-width: 640px) {
	.gf-foritnot,
	.gf-single__cols { grid-template-columns: 1fr; }
}
