/**
 * Habillage des articles produits.
 *
 * Palette locale, jamais imposée au thème : tout est porté par des variables
 * scopées aux classes du plugin, et redéfini en mode sombre.
 */

.asw-disclosure,
.asw-product-box,
.asw-proscons,
.asw-cta,
.asw-specs {
	--asw-radius: 10px;
	--asw-border: rgba(127, 127, 127, .28);
	--asw-muted: color-mix(in srgb, currentColor 62%, transparent);
	--asw-pros: #1a7f45;
	--asw-pros-bg: #edf8f1;
	--asw-cons: #b3261e;
	--asw-cons-bg: #fdf1f0;
	--asw-accent: #ffa41c;
	--asw-accent-dark: #f08804;
}

@supports not (color: color-mix(in srgb, red 50%, transparent)) {
	.asw-disclosure,
	.asw-product-box,
	.asw-proscons,
	.asw-cta {
		--asw-muted: #6b7280;
	}
}

@media (prefers-color-scheme: dark) {
	.asw-disclosure,
	.asw-product-box,
	.asw-proscons,
	.asw-cta,
	.asw-specs {
		--asw-pros: #5fd18b;
		--asw-pros-bg: rgba(95, 209, 139, .09);
		--asw-cons: #ff8a80;
		--asw-cons-bg: rgba(255, 138, 128, .09);
		--asw-border: rgba(255, 255, 255, .16);
	}
}

/* --- Mention légale ------------------------------------------------------ */

.asw-disclosure {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .6em;
	margin: 1.4em 0;
	padding: .8em 1em;
	border: 1px solid var(--asw-border);
	border-radius: var(--asw-radius);
	font-size: .875em;
}

.asw-disclosure__text { color: var(--asw-muted); }

.asw-chip {
	flex: 0 0 auto;
	padding: .18em .7em;
	border-radius: 999px;
	background: var(--asw-accent);
	color: #1a1a1a;
	font-size: .78em;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
}

/* --- Points forts / limites ---------------------------------------------- */

.asw-proscons { gap: 1.2em; margin: 1.8em 0; }

.asw-proscons .asw-card {
	padding: 1.1em 1.3em 1.3em;
	border: 1px solid var(--asw-border);
	border-radius: var(--asw-radius);
	border-top: 3px solid transparent;
}

.asw-proscons .asw-card--pros {
	background: var(--asw-pros-bg);
	border-top-color: var(--asw-pros);
}

.asw-proscons .asw-card--cons {
	background: var(--asw-cons-bg);
	border-top-color: var(--asw-cons);
}

.asw-proscons .asw-card__title {
	display: flex;
	align-items: center;
	gap: .5em;
	margin: 0 0 .7em;
	font-size: 1.05em;
	letter-spacing: .01em;
}

.asw-proscons .asw-card__title--pros { color: var(--asw-pros); }
.asw-proscons .asw-card__title--cons { color: var(--asw-cons); }

.asw-proscons .asw-card__title::before {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.5em;
	height: 1.5em;
	border-radius: 50%;
	font-size: .8em;
	font-weight: 700;
	line-height: 1;
	color: #fff;
}

.asw-proscons .asw-card__title--pros::before {
	content: "✓";
	background: var(--asw-pros);
}

.asw-proscons .asw-card__title--cons::before {
	content: "✕";
	background: var(--asw-cons);
}

.asw-proscons .asw-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.asw-proscons .asw-list li {
	position: relative;
	margin: 0 0 .55em;
	padding-left: 1.6em;
	line-height: 1.5;
}

.asw-proscons .asw-list li:last-child { margin-bottom: 0; }

.asw-proscons .asw-list li::before {
	position: absolute;
	left: 0;
	top: 0;
	font-weight: 700;
}

.asw-proscons .asw-list--pros li::before {
	content: "✓";
	color: var(--asw-pros);
}

.asw-proscons .asw-list--cons li::before {
	content: "✕";
	color: var(--asw-cons);
}

@media (max-width: 781px) {
	.asw-proscons { display: grid; grid-template-columns: 1fr; }
	.asw-proscons .asw-card { width: 100%; }
}

/* --- Appel à l'action ----------------------------------------------------- */

.asw-cta {
	margin: 2em 0;
	padding: 1.4em 1.2em;
	border: 1px solid var(--asw-border);
	border-radius: var(--asw-radius);
	text-align: center;
}

.asw-cta__price {
	margin: 0 0 .7em;
	font-size: 1.25em;
}

.asw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6em;
	max-width: 100%;
	padding: .85em 2em;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(180deg, var(--asw-accent) 0%, var(--asw-accent-dark) 100%);
	box-shadow: 0 2px 0 rgba(0, 0, 0, .18), 0 6px 18px rgba(240, 136, 4, .28);
	color: #1a1a1a;
	font-size: 1.05em;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}

.asw-btn:hover,
.asw-btn:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 3px 0 rgba(0, 0, 0, .2), 0 10px 24px rgba(240, 136, 4, .34);
	color: #1a1a1a;
	filter: saturate(1.08);
	text-decoration: none;
}

.asw-btn:active { transform: translateY(1px); box-shadow: 0 1px 0 rgba(0, 0, 0, .2); }

.asw-btn:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }

/* Les thèmes stylent agressivement « .entry-content a » : sur un bouton,
   couleur et soulignement ne peuvent pas être laissés au hasard. */
.asw-btn,
.asw-btn:hover,
.asw-btn:focus,
.asw-btn:visited {
	color: #1a1a1a !important;
	text-decoration: none !important;
	box-shadow: 0 2px 0 rgba(0, 0, 0, .18), 0 6px 18px rgba(240, 136, 4, .28);
}

.asw-btn__arrow { transition: transform .12s ease; }
.asw-btn:hover .asw-btn__arrow { transform: translateX(3px); }

.asw-cta__note {
	margin: .8em 0 0;
	color: var(--asw-muted);
	font-size: .85em;
}

@media (prefers-reduced-motion: reduce) {
	.asw-btn,
	.asw-btn__arrow { transition: none; }
	.asw-btn:hover { transform: none; }
	.asw-btn:hover .asw-btn__arrow { transform: none; }
}

@media (max-width: 600px) {
	.asw-btn { display: flex; width: 100%; padding: .95em 1.2em; }
}

/* --- Encart produit ------------------------------------------------------- */

/* L'enveloppe sert de conteneur d'interrogation : un element ne peut pas
   interroger sa propre largeur. */
.asw-encart { container-type: inline-size; }

/*
 * Deux colonnes, avec deux garde-fous :
 *
 *  - la grille est marquee !important, parce qu'un theme qui declare
 *   « .entry-content > * { display: block } » remet sinon tout en colonne ;
 *  - la typographie est explicitement heritee, certains contextes d'edition
 *   imposant une chasse fixe au contenu des shortcodes.
 */
.asw-product-box {
	display: grid !important;
	grid-template-columns: minmax(0, 30%) minmax(0, 1fr);
	gap: 1.4em;
	align-items: center;
	margin: 1.9em 0;
	padding: 1.2em;
	border: 1px solid var(--asw-border);
	border-radius: var(--asw-radius);
	background: color-mix(in srgb, currentColor 3%, transparent);
}

.asw-product-box *,
.asw-cta * {
	font-family: inherit;
	font-style: normal;
}

.asw-product-box__media { max-width: 190px; }

.asw-product-box__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 6px;
}

.asw-product-box__body { min-width: 0; }

.asw-product-box__title {
	margin: 0 0 .5em;
	font-size: 1.05em;
	font-weight: 700;
	line-height: 1.35;
	text-wrap: balance;
}

/* Note et badges partagent la meme ligne : ils disent la meme chose. */
.asw-product-box__note {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4em .7em;
	margin: 0 0 .9em;
	font-size: .9em;
}

.asw-product-box__note-chiffre { color: var(--asw-muted); }
.asw-product-box__marque { color: var(--asw-muted); }
.asw-product-box__price { margin: 0 0 .9em; font-size: 1.15em; }
.asw-product-box__cta { margin: 0; }

/* Étoiles : deux couches, celle du dessus découpée au prorata de la note. */
.asw-stars {
	position: relative;
	display: inline-block;
	flex: 0 0 auto;
	letter-spacing: .08em;
	line-height: 1;
	white-space: nowrap;
}

.asw-stars__vides { opacity: .28; }

.asw-stars__pleines {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	color: var(--asw-accent);
}

.asw-chip--vente { background: var(--asw-accent); }

.asw-chip--choix {
	background: transparent;
	border: 1px solid var(--asw-border);
	color: inherit;
	opacity: .85;
}

.asw-price { font-weight: 700; }
.asw-price-list { opacity: .6; font-weight: 400; }
.asw-price-note,
.asw-price--hidden { color: var(--asw-muted); font-size: .85em; font-weight: 400; }

/* L'encart peut vivre dans une colonne etroite : c'est sa largeur qui compte,
   pas celle de l'ecran. */
@container (max-width: 420px) {
	.asw-product-box {
		grid-template-columns: minmax(0, 1fr);
		justify-items: center;
		text-align: center;
	}

	.asw-product-box__media { max-width: 220px; }
	.asw-product-box__note { justify-content: center; }
}

@supports not (container-type: inline-size) {
	@media (max-width: 640px) {
		.asw-product-box { grid-template-columns: minmax(0, 1fr); }
		.asw-product-box__media { max-width: 100%; }
	}
}

/* --- Tableau de caractéristiques ------------------------------------------ */

.asw-specs table { width: 100%; border-collapse: collapse; }
.asw-specs td { padding: .55em .8em; border-bottom: 1px solid var(--asw-border); }
.asw-specs tr:last-child td { border-bottom: 0; }
.asw-specs td:first-child { width: 40%; }

/* --- Visuels -------------------------------------------------------------- */

.asw-image img { border-radius: var(--asw-radius); }
.asw-image figcaption { color: var(--asw-muted); font-size: .85em; }



/* Note d'aide réservée aux rédacteurs connectés. */
.asw-indice {
	display: inline-block;
	padding: .35em .7em;
	border: 1px dashed rgba(127, 127, 127, .5);
	border-radius: 4px;
	font-size: .85em;
	opacity: .75;
}
