/* Catalogue & demande de devis — styles de base, volontairement sobres
   pour s'adapter au thème. Les couleurs reprennent celles du thème quand c'est possible. */

.ctlg-bouton {
	display: inline-block;
	padding: 0.6em 1.2em;
	border: 0;
	border-radius: 4px;
	background: var(--wp--preset--color--contrast, #111);
	color: var(--wp--preset--color--base, #fff);
	font: inherit;
	text-decoration: none;
	cursor: pointer;
}
.ctlg-bouton:hover,
.ctlg-bouton:focus-visible { opacity: 0.85; }
.ctlg-bouton[disabled] { opacity: 0.5; cursor: wait; }

.ctlg-lien {
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

/* Filtres */
.ctlg-filtres { display: flex; flex-wrap: wrap; gap: 0.5em; margin-bottom: 1.5em; }
.ctlg-filtre {
	padding: 0.3em 0.9em;
	border: 1px solid currentColor;
	border-radius: 999px;
	text-decoration: none;
}
.ctlg-filtre.is-active {
	background: var(--wp--preset--color--contrast, #111);
	color: var(--wp--preset--color--base, #fff);
}

/* Grille du catalogue */
.ctlg-grille {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1.5em;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ctlg-carte {
	display: flex;
	flex-direction: column;
	gap: 0.4em;
	padding: 1em;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 6px;
}
.ctlg-carte__lien { color: inherit; text-decoration: none; }
.ctlg-carte__image { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }
.ctlg-carte__titre { margin: 0.6em 0 0; font-size: 1.1em; }
.ctlg-carte__ref,
.ctlg-carte__extrait { margin: 0; font-size: 0.9em; opacity: 0.8; }
.ctlg-carte__prix { margin: 0; font-weight: 600; }
.ctlg-carte__prix small { display: block; font-weight: 400; opacity: 0.7; }
.ctlg-carte .ctlg-ajout { margin-top: auto; }

/* Bloc d'ajout */
.ctlg-ajout { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em; }
.ctlg-ajout__label { font-size: 0.9em; }
.ctlg-ajout__qte { width: 5em; padding: 0.4em; font: inherit; }
.ctlg-ajout__retour { flex-basis: 100%; font-size: 0.9em; }

/* Fiche produit */
.ctlg-fiche { margin-top: 2em; padding-top: 1.5em; border-top: 1px solid rgba(0, 0, 0, 0.12); }
.ctlg-fiche__infos { display: grid; grid-template-columns: max-content 1fr; gap: 0.3em 1em; }
.ctlg-fiche__infos dt { font-weight: 600; }
.ctlg-fiche__infos dd { margin: 0; }
.ctlg-fiche__mention { font-size: 0.85em; opacity: 0.75; }

/* Mini-panier */
.ctlg-mini-panier { display: inline-flex; align-items: center; gap: 0.4em; text-decoration: none; }
.ctlg-mini-panier__compteur {
	min-width: 1.6em;
	padding: 0.1em 0.4em;
	border-radius: 999px;
	background: #c0392b;
	color: #fff;
	font-size: 0.85em;
	text-align: center;
}
.ctlg-mini-panier.is-vide .ctlg-mini-panier__compteur { background: #888; }
.ctlg-mini-panier-flottant {
	position: fixed;
	right: 1em;
	bottom: 1em;
	z-index: 999;
	padding: 0.6em 1em;
	border-radius: 999px;
	background: var(--wp--preset--color--base, #fff);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}
.ctlg-mini-panier-flottant a { color: var(--wp--preset--color--contrast, #111); }

/* Panier */
.ctlg-panier__table { width: 100%; border-collapse: collapse; }
.ctlg-panier__table th,
.ctlg-panier__table td { padding: 0.6em; border-bottom: 1px solid rgba(0, 0, 0, 0.12); text-align: left; vertical-align: middle; }
.ctlg-panier__produit { display: flex; gap: 0.8em; align-items: center; }
.ctlg-panier__produit img { border-radius: 4px; }
.ctlg-panier__actions { display: flex; gap: 1.5em; }

/* Formulaire */
.ctlg-formulaire { margin-top: 2em; }
.ctlg-champs { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2em; }
.ctlg-champ { display: flex; flex-direction: column; gap: 0.3em; margin: 0 0 1em; }
.ctlg-champ--large { grid-column: 1 / -1; }
.ctlg-champ input[type="text"],
.ctlg-champ input[type="email"],
.ctlg-champ input[type="tel"],
.ctlg-champ textarea { padding: 0.5em; font: inherit; border: 1px solid rgba(0, 0, 0, 0.3); border-radius: 4px; }
.ctlg-champ--case { flex-direction: row; align-items: flex-start; gap: 0.6em; }
.ctlg-champ [aria-invalid="true"] { border-color: #c0392b; }
.ctlg-erreur-champ { color: #c0392b; font-size: 0.85em; }
.ctlg-formulaire__message:empty { display: none; }
.ctlg-formulaire__message { margin: 1em 0; padding: 0.8em 1em; border-left: 4px solid #2271b1; background: rgba(34, 113, 177, 0.08); }
.ctlg-formulaire__message.is-erreur { border-color: #c0392b; background: rgba(192, 57, 43, 0.08); }

/* Champ piège : hors écran (et non display:none, que certains robots détectent). */
.ctlg-piege { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 600px) {
	.ctlg-champs { grid-template-columns: 1fr; }
	.ctlg-panier__table thead { display: none; }
	.ctlg-panier__table td { display: block; border: 0; padding: 0.3em 0; }
	.ctlg-panier__table tr { display: block; padding: 0.8em 0; border-bottom: 1px solid rgba(0, 0, 0, 0.12); }
}
