/* Pages catalogue et autocomplétion — reprises de la maquette validée (format CIF : fond blanc, liseré fin, texte centré). */
.pb-catalogue-page, .pb-suggestions, .pb-grille {
	--pb-marine: #083a60; --pb-ciel: #1f9ad6; --pb-texte: #1b2530; --pb-doux: #5b6773; --pb-leger: #8a949e;
	--pb-creme: #faf7f2; --pb-filet: #e6e0d6; --pb-liseré: #e2e2e2;
	--pb-titre: 'League Spartan', 'Poppins', system-ui, sans-serif; --pb-corps: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
	font-family: var(--pb-corps); color: var(--pb-texte);
}
.pb-catalogue-page { padding: 0 0 96px; }
.pb-catalogue-page [hidden] { display: none !important; }
.pb-enveloppe { max-width: 1320px; margin: 0 auto; padding: 0 24px; }
.pb-fil { font-size: 13px; color: var(--pb-doux); padding: 16px 0 0; }
.pb-fil a { color: inherit; text-decoration: none; }
.pb-entete { padding: 28px 0 28px; }
.pb-entete h1 { font: 600 clamp(32px, 3.8vw, 48px)/1.1 var(--pb-titre); color: var(--pb-marine); margin: 0 0 12px; letter-spacing: 0; }
.pb-entete p { color: var(--pb-doux); max-width: 780px; font-size: 16px; margin: 0; }
.pb-puces { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.pb-puce { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 16px; border: 1px solid var(--pb-filet); border-radius: 999px; background: #fff; text-decoration: none; font-size: 14px; color: var(--pb-texte); }
.pb-puce small { color: var(--pb-leger); }
.pb-puce:hover { border-color: var(--pb-marine); }
.pb-puce[aria-current="page"] { background: var(--pb-marine); border-color: var(--pb-marine); color: #fff; }
.pb-puce[aria-current="page"] small { color: #bcd2e3; }

.pb-catalogue { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 40px; }
.pb-filtres { position: sticky; top: 110px; align-self: start; max-height: calc(100vh - 130px); overflow: auto; padding-right: 6px; }
.pb-filtres__titre { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.pb-filtres__titre h2 { font: 600 20px/1 var(--pb-titre); color: var(--pb-marine); margin: 0; }
.pb-filtres__effacer { border: 0; background: none; color: var(--pb-ciel); font-size: 13px; font-weight: 600; padding: 0; cursor: pointer; }
.pb-filtre { border-top: 1px solid var(--pb-filet); padding: 18px 0; }
.pb-filtre h3 { font: 600 12px/1 var(--pb-corps); letter-spacing: .1em; text-transform: uppercase; color: var(--pb-texte); margin: 0 0 14px; }
.pb-case { display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: 14px; cursor: pointer; margin: 0; font-weight: 400; }
.pb-case input { width: 18px; height: 18px; accent-color: var(--pb-marine); margin: 0; }
.pb-case small { margin-left: auto; color: var(--pb-leger); }
.pb-case.pb-vide { opacity: .4; }
.pb-prix { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; }
.pb-prix input { width: 100%; height: 40px; padding: 0 10px; border: 1px solid var(--pb-filet); border-radius: 8px; min-height: 0; }
.pb-pastilles-filtre { display: flex; flex-wrap: wrap; gap: 8px; }
.pb-pastille-filtre { position: relative; cursor: pointer; margin: 0; }
.pb-pastille-filtre input { position: absolute; opacity: 0; width: 0; height: 0; }
.pb-pastille-filtre span:first-of-type { display: block; width: 28px; height: 28px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .12); }
.pb-pastille-filtre input:checked + span { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--pb-marine); }
.pb-pastille-filtre input:focus-visible + span { outline: 2px solid var(--pb-ciel); outline-offset: 3px; }
.pb-pastille-filtre.pb-vide { opacity: .3; }
.pb-masque { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.pb-resultats__barre { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.pb-resultats__nombre { color: var(--pb-doux); font-size: 14px; }
.pb-resultats__nombre strong { color: var(--pb-texte); }
.pb-resultats__outils { display: flex; gap: 10px; align-items: center; }
.pb-selecteur { height: 42px; padding: 0 36px 0 14px; border: 1px solid var(--pb-filet); border-radius: 999px; background: #fff; font-size: 14px; min-width: 180px; }
.pb-bouton { display: inline-flex; align-items: center; justify-content: center; height: 42px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--pb-marine); background: var(--pb-marine); color: #fff; font: 600 14px/1 var(--pb-corps); cursor: pointer; }
.pb-bouton--ligne { background: transparent; color: var(--pb-marine); }
.pb-ouvrir-filtres { display: none; }

.pb-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 20px; transition: opacity .2s; }
.pb-chargement .pb-grille { opacity: .45; }
.pb-carte { position: relative; display: flex; flex-direction: column; text-decoration: none; color: inherit; background: #fff; border: 1px solid var(--pb-liseré); border-radius: 6px; padding: 14px 14px 18px; text-align: center; transition: box-shadow .25s, border-color .25s; }
.pb-carte:hover { box-shadow: 0 2px 6px rgba(8, 58, 96, .08), 0 18px 48px rgba(8, 58, 96, .14); border-color: transparent; color: inherit; }
.pb-carte__visuel { position: relative; aspect-ratio: 1; margin: 0 0 14px; overflow: hidden; }
.pb-carte__visuel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; transition: opacity .35s, transform .6s; filter: drop-shadow(0 4px 10px rgba(20, 30, 40, .12)); }
.pb-carte__survol { opacity: 0; }
.pb-carte:hover .pb-carte__survol { opacity: 1; }
.pb-carte:hover .pb-carte__visuel:has(.pb-carte__survol) .pb-carte__image { opacity: 0; }
.pb-carte__etiquettes { position: absolute; top: 0; left: 0; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px; }
.pb-etiquette { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 11.5px; font-weight: 600; background: #fff; color: var(--pb-marine); box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.pb-etiquette--fr { background: var(--pb-marine); color: #fff; }
.pb-etiquette--eco { background: #e4f0e6; color: #24452f; }
.pb-etiquette--nouveau { background: var(--pb-ciel); color: #fff; }
.pb-carte__mention { font: 600 11px/1 var(--pb-corps); letter-spacing: .12em; text-transform: uppercase; color: var(--pb-ciel); margin-bottom: 8px; }
.pb-carte__titre { font: 600 15px/1.3 var(--pb-titre); text-transform: uppercase; letter-spacing: .02em; color: var(--pb-marine); margin: 0 0 6px; }
.pb-carte__desc { font-size: 13.5px; color: var(--pb-doux); margin: 0 auto 10px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pb-carte__min { font-size: 12px; color: var(--pb-doux); margin-bottom: 8px; }
.pb-carte__pied { margin-top: auto; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.pb-pastilles { display: flex; align-items: center; gap: 5px; }
.pb-pastilles span { width: 14px; height: 14px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .12); }
.pb-pastilles small { font-size: 12px; color: var(--pb-leger); }
.pb-carte__prix small { display: block; font-size: 11.5px; color: var(--pb-leger); }
.pb-carte__prix strong { font: 600 18px/1.1 var(--pb-titre); color: var(--pb-marine); }
.pb-vide-resultats { grid-column: 1 / -1; padding: 64px 24px; text-align: center; border: 1px dashed var(--pb-filet); border-radius: 10px; color: var(--pb-doux); }
.pb-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 48px; }
.pb-pagination a, .pb-pagination span { min-width: 44px; height: 44px; padding: 0 12px; display: inline-grid; place-items: center; border-radius: 999px; border: 1px solid var(--pb-filet); text-decoration: none; color: var(--pb-texte); font-weight: 500; }
.pb-pagination span { border: 0; }
.pb-pagination [aria-current="page"] { background: var(--pb-marine); border-color: var(--pb-marine); color: #fff; }

/* autocomplétion (boîte placée sous le champ de recherche du thème) */
.pb-suggestions { position: absolute; z-index: 99999; background: #fff; border: 1px solid var(--pb-filet); border-radius: 14px; box-shadow: 0 18px 48px rgba(8, 58, 96, .16); padding: 8px; max-height: 70vh; overflow: auto; text-align: left; }
.pb-suggestions[hidden] { display: none; }
.pb-suggestions__titre { font: 600 11px/1 var(--pb-corps); text-transform: uppercase; letter-spacing: .08em; color: var(--pb-leger); padding: 10px 12px 6px; }
.pb-suggestion { display: grid; grid-template-columns: 52px 1fr auto; gap: 12px; align-items: center; padding: 8px 12px; border-radius: 10px; text-decoration: none; color: var(--pb-texte); }
.pb-suggestion--cat { grid-template-columns: 1fr auto; }
.pb-suggestion:hover, .pb-suggestion.pb-actif { background: var(--pb-creme); color: var(--pb-texte); }
.pb-suggestion img { width: 52px; height: 52px; object-fit: contain; border: 1px solid #eee; border-radius: 8px; background: #fff; }
.pb-suggestion strong { display: block; font-weight: 500; font-size: 14px; }
.pb-suggestion mark { background: none; color: var(--pb-marine); font-weight: 700; padding: 0; }
.pb-suggestion small { color: var(--pb-leger); font-size: 12px; }
.pb-suggestion__prix { font-size: 13px; color: var(--pb-doux); white-space: nowrap; }
.pb-suggestions__tout { display: block; text-align: center; padding: 12px; font-weight: 600; color: var(--pb-marine); text-decoration: none; border-top: 1px solid var(--pb-filet); margin-top: 6px; }
.pb-suggestions__tout.pb-actif { background: var(--pb-creme); }

/* tablette */
@media (max-width: 1180px) { .pb-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pb-catalogue { grid-template-columns: 220px minmax(0, 1fr); gap: 28px; } }
@media (max-width: 960px) {
	.pb-catalogue { grid-template-columns: 1fr; }
	.pb-filtres { position: fixed; inset: 0 auto 0 0; z-index: 99990; width: min(340px, 88vw); max-height: none; background: #fff; padding: 24px; box-shadow: 0 18px 48px rgba(8, 58, 96, .2); transform: translateX(-105%); transition: transform .28s; }
	.pb-filtres.pb-ouverts { transform: none; }
	.pb-ouvrir-filtres { display: inline-flex; }
}
/* mobile */
@media (max-width: 620px) {
	.pb-enveloppe { padding: 0 16px; }
	.pb-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 10px; }
	.pb-carte { padding: 10px 10px 14px; }
	.pb-carte__titre { font-size: 13px; }
	.pb-carte__desc { display: none; }
	.pb-resultats__outils { width: 100%; }
	.pb-resultats__outils .pb-selecteur { flex: 1; min-width: 0; }
	.pb-pagination a, .pb-pagination span { min-width: 40px; height: 40px; }
}

/* logo posé sur la carte (même rendu que la fiche) et filigrane du site */
.pb-carte__visuel .pb-logo-pose { position: absolute; z-index: 1; pointer-events: none; display: flex; align-items: center; justify-content: center; transition: opacity .35s; }
.pb-carte__visuel .pb-logo-pose svg, .pb-carte__visuel .pb-logo-pose img { width: 100%; height: 100%; object-fit: contain; display: block; position: static; filter: none; }
.pb-carte__visuel .pb-logo-pose.pb-gravure { mix-blend-mode: multiply; opacity: .78; }
.pb-carte__visuel .pb-logo-pose.pb-imprime { mix-blend-mode: multiply; }
.pb-carte:hover .pb-carte__visuel:has(.pb-carte__survol) .pb-logo-pose { opacity: 0; }
.pb-carte__client { margin: -6px 0 10px; font-size: 12px; color: #8a949e; font-style: italic; text-align: center; }
.pb-carte__visuel img.pb-carte__filigrane { position: absolute; inset: auto 4% 3.5% auto; width: 30%; height: auto; opacity: .5; filter: none; z-index: 1; }

/* page « Nos produits » (/personnalisation/, PB_Produits) */
.pb-produits__intro, .pb-produits { --pb-marine: #083a60; --pb-ciel: #1f9ad6; --pb-doux: #5b6773; --pb-filet: #e6e0d6; --pb-titre: 'League Spartan', 'Poppins', system-ui, sans-serif; }
.pb-produits__intro { max-width: 820px; font-size: 17px; line-height: 1.65; color: #1b2530; }
.pb-produits { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; margin: 40px 0 20px; }
.pb-produits__univers { display: grid; grid-template-columns: 200px 1fr; gap: 22px; padding: 18px; background: #fff; border: 1px solid var(--pb-filet); border-radius: 12px; }
.pb-produits__photo { display: block; border-radius: 8px; overflow: hidden; background: #faf7f2; aspect-ratio: 1; }
.pb-produits__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pb-produits__texte h2 { font: 600 24px/1.15 var(--pb-titre); margin: 4px 0 8px; }
.pb-produits__texte h2 a { color: var(--pb-marine); text-decoration: none; }
.pb-produits__texte p { color: var(--pb-doux); font-size: 14.5px; line-height: 1.55; margin: 0 0 12px; }
.pb-produits__texte ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.pb-produits__texte li a { font-size: 14px; color: var(--pb-marine); text-decoration: none; border-bottom: 1px solid var(--pb-filet); }
.pb-produits__texte li a:hover { color: var(--pb-ciel); border-color: currentColor; }
@media (max-width: 1000px) { .pb-produits { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .pb-produits__univers { grid-template-columns: 1fr; } .pb-produits__photo { aspect-ratio: 16 / 9; } }

/* texte éditorial sous la grille (data/textes-seo.php) */
.pb-editorial { max-width: 860px; margin: 72px 0 0; padding-top: 40px; border-top: 1px solid var(--pb-filet); }
.pb-editorial h2 { font: 600 clamp(24px, 2.4vw, 30px)/1.2 var(--pb-titre); color: var(--pb-marine); margin: 0 0 16px; }
.pb-editorial p { color: var(--pb-doux); font-size: 16px; line-height: 1.7; margin: 0 0 14px; }
.pb-editorial__liens { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.pb-editorial__liens a { display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border: 1px solid var(--pb-filet); border-radius: 999px; background: #fff; font-size: 14px; color: var(--pb-marine); text-decoration: none; }
.pb-editorial__liens a:hover { border-color: var(--pb-marine); }
