/* 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: #f3f7fb; --pb-filet: #dde6ee; --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; }
/* sous-catégories en vignettes photo, défilement horizontal (templates/catalogue.php) */
.pb-puces--photos { flex-wrap: nowrap; overflow-x: auto; gap: 14px; padding: 4px 2px 8px; scroll-snap-type: x proximity; scrollbar-width: thin; }
.pb-puces--photos .pb-puce { flex: none; flex-direction: column; align-items: stretch; gap: 8px; width: 116px; height: auto; padding: 0; border: 0; border-radius: 0; background: transparent; text-align: center; scroll-snap-align: start; color: var(--pb-texte); }
.pb-puces--photos .pb-puce img { display: block; width: 116px; height: 116px; object-fit: cover; border-radius: 16px; border: 3px solid transparent; box-shadow: 0 4px 14px rgba(8, 58, 96, .10); transition: transform .2s, border-color .2s; }
.pb-puces--photos .pb-puce:hover { border-color: transparent; }
.pb-puces--photos .pb-puce:hover img { transform: translateY(-2px); }
.pb-puces--photos .pb-puce span { font-size: 13px; font-weight: 600; line-height: 1.3; }
.pb-puces--photos .pb-puce small { display: block; font-weight: 500; color: var(--pb-leger); }
.pb-puces--photos .pb-puce[aria-current="page"] { background: transparent; color: var(--pb-marine); }
.pb-puces--photos .pb-puce[aria-current="page"] img { border-color: var(--pb-marine); }
.pb-puces--photos .pb-puce[aria-current="page"] small { color: var(--pb-leger); }
/* sous-catégories en cartes produit détourées avec le logo du visiteur (comme Personaliz), défilement horizontal avec flèches */
.pb-defile { position: relative; min-width: 0; }
.pb-puces--produits { flex-wrap: nowrap; overflow-x: auto; gap: 14px; padding: 4px 2px 10px; scroll-snap-type: x proximity; scrollbar-width: none; scroll-behavior: smooth; }
.pb-puces--produits::-webkit-scrollbar { display: none; }
.pb-puces--produits .pb-puce { flex: none; flex-direction: column; align-items: stretch; gap: 10px; width: 172px; height: auto; padding: 12px 12px 16px; border: 1px solid var(--pb-filet); border-radius: 14px; background: #fff; text-align: center; scroll-snap-align: start; color: var(--pb-marine); transition: transform .2s, box-shadow .2s, border-color .2s; }
.pb-puces--produits .pb-puce:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(8, 58, 96, .10); }
.pb-puces--produits .pb-carte__visuel { display: block; margin: 0; border-radius: 10px; background: #f5f3ef; }   /* logo posé en % du cadre : la photo le remplit */
.pb-puces--produits .pb-puce > span:last-child { font: 600 14.5px/1.3 var(--pb-titre); }
.pb-puces--produits .pb-puce small { display: block; margin-top: 3px; font: 500 12.5px/1.2 var(--pb-corps); color: var(--pb-leger); }
.pb-puces--produits .pb-puce[aria-current="page"] { background: #fff; border-color: var(--pb-marine); box-shadow: inset 0 0 0 1px var(--pb-marine); color: var(--pb-marine); }
.pb-puces--produits .pb-puce[aria-current="page"] small { color: var(--pb-leger); }
.pb-defile__fleche { position: absolute; top: calc(50% - 30px); right: -14px; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--pb-marine); color: #fff; cursor: pointer; box-shadow: 0 6px 18px rgba(8, 58, 96, .25); }
.pb-defile__fleche--avant { right: auto; left: -14px; }
.pb-defile__fleche svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.pb-defile__fleche[hidden] { display: none; }
@media (max-width: 760px) { .pb-defile__fleche { display: none; } .pb-puces--produits .pb-puce { width: 140px; padding: 10px 10px 12px; } .pb-puces--produits .pb-puce > span:last-child { font-size: 13.5px; } }

.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 16px/1.2 var(--pb-titre); color: var(--pb-marine); 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-filtre__nb { display: inline-grid; place-items: center; min-width: 22px; height: 22px; margin-left: 8px; padding: 0 6px; border-radius: 999px; background: var(--pb-marine); color: #fff; font: 600 12px/1 var(--pb-corps); vertical-align: middle; }
.pb-filtre__nb:empty { display: none; }
/* ordinateur : filtres en menus déroulants au-dessus de la grille (comme Personaliz), la grille prend toute la largeur ; au téléphone, le tiroir */
@media (min-width: 961px) {
	.pb-catalogue { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.pb-filtres { position: relative; z-index: 30; top: auto; max-height: none; overflow: visible; padding: 0 0 22px; margin-bottom: 26px; border-bottom: 1px solid var(--pb-filet);
		display: flex; align-items: center; gap: 12px; }
	.pb-filtres__titre { order: 2; margin: 0 0 0 auto; }
	.pb-filtres__titre h2 { display: none; }
	.pb-filtres:not(.pb-filtres--actifs) .pb-filtres__effacer { visibility: hidden; }
	#pb-form-filtres { display: flex; flex-wrap: wrap; gap: 10px; }
	.pb-filtre { position: relative; border: 0; padding: 0; }
	.pb-filtre h3 { display: inline-flex; align-items: center; gap: 10px; height: 46px; margin: 0; padding: 0 16px 0 18px; border: 1px solid var(--pb-filet); border-radius: 10px; background: #fff;
		font: 500 15px/1 var(--pb-corps); color: var(--pb-texte); cursor: pointer; user-select: none; transition: border-color .15s; }
	.pb-filtre h3::after { content: ""; width: 7px; height: 7px; margin: -3px 0 0 2px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .15s; }
	.pb-filtre h3:hover, .pb-filtre.pb-deplie h3 { border-color: var(--pb-marine); }
	.pb-filtre.pb-deplie h3::after { transform: rotate(-135deg); margin-top: 3px; }
	.pb-filtre.pb-actif h3 { border-color: var(--pb-marine); color: var(--pb-marine); font-weight: 600; }
	.pb-filtre__nb { margin-left: 0; }
	.pb-filtre__corps { display: none; position: absolute; top: calc(100% + 8px); left: 0; min-width: 270px; max-height: min(420px, 60vh); overflow: auto; padding: 14px 18px;
		background: #fff; border: 1px solid var(--pb-filet); border-radius: 12px; box-shadow: 0 18px 40px rgba(8, 58, 96, .16); }
	.pb-filtre.pb-deplie .pb-filtre__corps { display: block; }
	.pb-filtre .pb-pastilles-filtre { width: 252px; }
}
.pb-masque { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* rayons (Textile, Objets…) : boutons en tête des résultats des pages qui mélangent les univers */
.pb-resultats { min-width: 0; }   /* la rangée des rayons défile au téléphone sans élargir la page */
.pb-rayons { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 18px; }
.pb-rayons button { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 20px; border: 1px solid var(--pb-filet); border-radius: 999px; background: #fff; color: var(--pb-marine); font: 600 15px/1 var(--pb-corps); cursor: pointer; transition: border-color .15s, background .15s; }
.pb-rayons button small { font-weight: 500; font-size: 13px; color: var(--pb-leger); }
.pb-rayons button:hover:not(:disabled) { border-color: var(--pb-marine); }
.pb-rayons button[aria-pressed="true"] { background: var(--pb-marine); border-color: var(--pb-marine); color: #fff; }
.pb-rayons button[aria-pressed="true"] small { color: #bcd2e3; }
.pb-rayons button:disabled { opacity: .45; cursor: default; }
@media (max-width: 600px) { .pb-rayons { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: -16px; padding-right: 16px; } .pb-rayons button { flex: none; height: 40px; padding: 0 16px; font-size: 14px; } }
.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-grille .pb-carte__visuel { background: #f4f2ee; border-radius: 4px; }   /* fond clair sous la photo détourée (comme Personaliz) : les produits blancs ressortent */
.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, .pb-etiquette--ue { gap: 7px; background: var(--pb-marine); color: #fff; }
/* drapeau devant « Made in France » / « Made in Europe » */
.pb-etiquette--fr::before, .pb-etiquette--ue::before { content: ""; flex: none; width: 18px; height: 12px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .55); background: center / cover no-repeat; }
.pb-etiquette--fr::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'%3E%3Crect width='1' height='2' fill='%230055a4'/%3E%3Crect x='1' width='1' height='2' fill='%23fff'/%3E%3Crect x='2' width='1' height='2' fill='%23ef4135'/%3E%3C/svg%3E"); }
.pb-etiquette--ue::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 20'%3E%3Crect width='30' height='20' fill='%23003399'/%3E%3Cg fill='%23ffcc00'%3E%3Ccircle cx='15' cy='3.5' r='1.1'/%3E%3Ccircle cx='18.25' cy='4.37' r='1.1'/%3E%3Ccircle cx='20.63' cy='6.75' r='1.1'/%3E%3Ccircle cx='21.5' cy='10' r='1.1'/%3E%3Ccircle cx='20.63' cy='13.25' r='1.1'/%3E%3Ccircle cx='18.25' cy='15.63' r='1.1'/%3E%3Ccircle cx='15' cy='16.5' r='1.1'/%3E%3Ccircle cx='11.75' cy='15.63' r='1.1'/%3E%3Ccircle cx='9.37' cy='13.25' r='1.1'/%3E%3Ccircle cx='8.5' cy='10' r='1.1'/%3E%3Ccircle cx='9.37' cy='6.75' r='1.1'/%3E%3Ccircle cx='11.75' cy='4.37' r='1.1'/%3E%3C/g%3E%3C/svg%3E"); }
.pb-etiquette--eco { background: #e4f0e6; color: #24452f; }
.pb-etiquette--nouveau { background: var(--pb-ciel); color: #fff; }
.pb-carte__mention { font: 600 13px/1.2 var(--pb-corps); color: var(--pb-ciel); margin-bottom: 8px; }
.pb-carte__titre { font: 600 16px/1.3 var(--pb-titre); 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-carte__prix .pb-carte__ttc { margin-top: 1px; font-size: 11px; }
.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 13px/1 var(--pb-corps); 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: 1080px) { .pb-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); } }   /* grille pleine largeur : 4 colonnes jusqu'à 1080 px */
@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: #dde6ee; --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: #f3f7fb; 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); }

/* bannière photo en tête des pages catalogue (photos du thème, inc/bannieres.php) */
.pb-entete--banniere { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); gap: 20px 48px; align-items: center; }
.pb-entete--banniere .pb-puces { grid-column: 1 / -1; margin-top: 4px; }
.pb-entete__photo { margin: 0; position: relative; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #eef3f8; box-shadow: 0 18px 40px rgba(8, 58, 96, .12); }
.pb-entete__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pb-entete__photo--entiere img { object-fit: contain; }   /* visuel fournisseur : image entière, jamais recadrée */
.pb-entete__photo figcaption { position: absolute; right: 10px; bottom: 10px; padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .92); font-size: 12px; font-weight: 600; color: var(--pb-marine); }
.pb-entete__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 22px !important; }
.pb-entete__actions span { font-size: 14px; color: var(--pb-doux); }

/* bannière large (photo de nos réalisations sur toute la largeur, titre posé dessus) ; les visuels fournisseur restent à côté du titre */
.pb-entete--large { display: grid; grid-template-columns: 1fr; gap: 20px; }
.pb-entete--large .pb-entete__photo { grid-area: 1 / 1; aspect-ratio: auto; height: clamp(320px, 31vw, 460px); border-radius: 16px; }
.pb-entete--large .pb-entete__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5, 32, 54, .86) 0%, rgba(5, 32, 54, .55) 42%, rgba(5, 32, 54, 0) 72%); }
.pb-entete--large .pb-entete__texte { grid-area: 1 / 1; align-self: end; position: relative; z-index: 1; max-width: 640px; padding: 0 0 38px 44px; }
body.pp-site .pb-entete--large h1, .pb-entete--large h1 { color: #fff; text-shadow: 0 2px 18px rgba(0, 0, 0, .25); }
.pb-entete--large p { color: #e3edf5; }
.pb-entete--large .pb-entete__actions span { color: #d4e3ef; }
.pb-entete--large .pb-entete__actions .pb-bouton { background: #fff; border-color: #fff; color: var(--pb-marine); }
.pb-entete--large .pb-puces { margin-top: 0; }
@media (max-width: 760px) {
	.pb-entete--large .pb-entete__photo { grid-area: auto; height: auto; aspect-ratio: 16 / 10; }
	.pb-entete--large .pb-entete__photo::after { display: none; }
	.pb-entete--large .pb-entete__texte { grid-area: auto; padding: 0; max-width: none; }
	body.pp-site .pb-entete--large h1, .pb-entete--large h1 { color: var(--pb-marine); text-shadow: none; }
	.pb-entete--large p { color: var(--pb-doux); }
	.pb-entete--large .pb-entete__actions span { color: var(--pb-doux); }
	.pb-entete--large .pb-entete__actions .pb-bouton { background: var(--pb-marine); border-color: var(--pb-marine); color: #fff; }
}

/* univers « sur devis » (signalétique, imprimerie) */
.pb-devis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin: 18px 0 0; }
.pb-devis__bloc { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 20px; align-items: center; padding: 16px; background: #fff; border: 1px solid var(--pb-filet); border-radius: 12px; scroll-margin-top: 150px; }
.pb-devis__bloc:not(:has(img)) { grid-template-columns: 1fr; border-left: 4px solid var(--pb-ciel); padding: 22px 24px; }
.pb-devis__bloc img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 8px; display: block; }
.pb-devis__bloc h2 { font: 600 21px/1.2 var(--pb-titre); color: var(--pb-marine); margin: 0 0 8px; }
.pb-devis__bloc p { color: var(--pb-doux); font-size: 14.5px; line-height: 1.6; margin: 0; }
.pb-devis__bloc:target { border-color: var(--pb-ciel); box-shadow: 0 0 0 3px rgba(31, 154, 214, .15); }
.pb-devis__appel { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 28px 0 0; padding: 26px 30px; border-radius: 14px; background: var(--pb-marine); color: #fff; }
.pb-catalogue-page .pb-devis__appel h2 { font: 600 24px/1.2 var(--pb-titre); color: #fff !important; margin: 0 0 6px; }
.pb-devis__appel p { margin: 0; color: #d4e3ef; font-size: 15px; }
.pb-bouton--clair { background: #fff; border-color: #fff; color: var(--pb-marine); text-decoration: none; }
.pb-entete__actions .pb-bouton { text-decoration: none; }
@media (max-width: 960px) {
	.pb-entete--banniere { grid-template-columns: 1fr; }
	.pb-entete__photo { order: -1; }
	.pb-devis { grid-template-columns: 1fr; }
	.pb-devis__appel { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 560px) { .pb-devis__bloc { grid-template-columns: 1fr; } }

/* Bandeau vidéo de marque (BDE et écoles, 2026-10-20, revu « plus pro et chic ») : esprit lookbook, fond clair et chaud, titre marine,
   trois vidéos verticales de la marque côte à côte, entières, sans arrondi ni rien par-dessus (charte du fournisseur) ;
   le fond des cadres reprend le gris du studio des vidéos pour qu'il n'y ait pas de pavé pendant le chargement. */
.pb-entete--videos { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px 64px; align-items: center; padding: 48px 0 48px 56px; background: #f3f1ed; border-radius: 4px; overflow: hidden; }
.pb-entete--videos .pb-entete__texte { max-width: 460px; }
.pb-entete--videos .pb-entete__texte p { color: #4f5a65; font-size: 17px; line-height: 1.6; }
.pb-entete--videos h1 { padding-bottom: 20px; margin-bottom: 20px !important; border-bottom: 1px solid #cfd9e3; }
.pb-entete__videos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 4px; align-self: stretch; padding-right: 56px; }
.pb-video { margin: 0; }
.pb-video__cadre { position: relative; aspect-ratio: 9 / 16; overflow: hidden; background: #cbcacc; }
.pb-video__cadre iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; pointer-events: none; }
.pb-video figcaption { margin-top: 12px; font-size: 13px; color: var(--pb-marine); letter-spacing: .01em; }
.pb-entete__credit { grid-column: 1 / -1; margin: 6px 0 0 !important; font-size: 12px; color: var(--pb-leger) !important; text-align: right; }
.pb-entete--videos .pb-puces { grid-column: 1 / -1; }
@media (max-width: 960px) {
	.pb-entete--videos { grid-template-columns: 1fr; padding: 32px 0 28px; }
	.pb-entete--videos .pb-entete__texte { padding: 0 20px; max-width: none; }
	.pb-entete__videos { padding: 0 20px; }
	.pb-entete__credit { text-align: left; }
}

/* univers signalétique et imprimerie avec produits : blocs cliquables vers chaque famille */
.pb-devis--liens { margin-bottom: 34px; }
.pb-devis--liens .pb-devis__bloc { color: inherit; text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.pb-devis--liens .pb-devis__bloc:hover { border-color: var(--pb-ciel); box-shadow: 0 10px 28px rgba(11, 47, 85, .10); transform: translateY(-2px); }
.pb-devis__voir { display: inline-block; margin-top: 10px; font-size: 13.5px; font-weight: 600; color: var(--pb-marine); text-decoration: underline; text-underline-offset: 3px; }

/* recherche sans résultat */
.pb-vide-resultats--recherche h2 { font: 600 22px/1.25 var(--pb-titre); color: var(--pb-marine); margin: 0 0 10px; }
.pb-vide-resultats--recherche p { max-width: 560px; margin: 0 auto 18px; line-height: 1.6; }
.pb-vide-resultats--recherche .pb-puces { justify-content: center; margin: 0 0 22px; }
