/* ptbackdrop — parcours « Je crée mon fond ». Sobre, moderne, responsive. */
.ptbackdrop-wizard { max-width: 1100px; margin: 0 auto; padding: 10px; }
.ptb-title { text-align: center; margin: 10px 0 20px; }

/* Barre de progression */
.ptb-steps {
  display: flex; flex-wrap: wrap; gap: 6px; list-style: none;
  padding: 0; margin: 0 0 24px; counter-reset: ptb;
}
.ptb-steps li {
  flex: 1 1 90px; text-align: center; font-size: 12px; color: #999;
  padding: 8px 4px 10px; border-bottom: 3px solid #e5e5e5; position: relative; counter-increment: ptb;
}
.ptb-steps li::before {
  content: counter(ptb); display: inline-block; width: 22px; height: 22px; line-height: 22px;
  border-radius: 50%; background: #e5e5e5; color: #fff; margin-bottom: 4px; font-weight: bold;
}
.ptb-steps li.active { color: #222; border-color: #c48a97; }
.ptb-steps li.active::before { background: #c48a97; }
.ptb-steps li.done { color: #555; border-color: #7bb39f; }
.ptb-steps li.done::before { background: #7bb39f; }

/* Panneaux */
.ptb-panel { display: none; animation: ptbfade .25s ease; }
.ptb-panel.active { display: block; }
@keyframes ptbfade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.ptb-panel h2 { margin: 0 0 16px; font-size: 20px; }

/* Grilles & choix */
.ptb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.ptb-choices.ptb-inline { display: flex; flex-wrap: wrap; gap: 8px; }
.ptb-choice {
  padding: 12px; border: 2px solid #e0e0e0; background: #fff; border-radius: 10px;
  cursor: pointer; font-size: 14px; transition: all .15s; text-align: center;
}
.ptb-choice:hover { border-color: #c48a97; }
.ptb-choice.selected { border-color: #c48a97; background: #faf0f3; font-weight: 600; }
.ptb-info { font-size: 10px; opacity: .45; vertical-align: super; }

/* Aperçu au survol des styles de rendu */
.ptb-render-btn { position: relative; overflow: visible; }
.ptb-render-preview { display: none; position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%); width: 170px; background: #fff; border-radius: 10px; box-shadow: 0 6px 24px rgba(0,0,0,.22); padding: 6px; z-index: 50; }
.ptb-render-preview img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 6px; display: block; }
.ptb-render-preview em { display: block; font-size: 11px; color: #666; font-style: normal; margin-top: 4px; text-align: center; line-height: 1.3; }
.ptb-render-btn:hover .ptb-render-preview { display: block; }

/* Sélecteur de rendu (IA) — cartes visibles avec exemple + libellé (toujours affichés). */
.ptb-render-field { margin: 16px 0 4px; }
.ptb-render-title { display: block; font-weight: 600; margin-bottom: 10px; }
.ptb-render-title small { font-weight: 400; color: #888; }
.ptb-render-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
@media (max-width: 640px) { .ptb-render-cards { grid-template-columns: repeat(2, 1fr); } }
.ptb-render-card { padding: 0; border: 2px solid #e5e7eb; border-radius: 12px; overflow: hidden; background: #fff; cursor: pointer; text-align: center; display: flex; flex-direction: column; transition: border-color .15s, box-shadow .15s; }
.ptb-render-card img { width: 100%; aspect-ratio: 1 / 2; object-fit: cover; display: block; background: #f2efe9; }
.ptb-render-card-label { display: block; font-weight: 600; padding: 7px 6px 0; font-size: .9rem; color: #2a2320; }
.ptb-render-card-desc { display: block; font-size: .72rem; color: #777; font-style: normal; padding: 2px 7px 9px; line-height: 1.25; }
.ptb-render-card:hover { border-color: #cbd5e1; }
.ptb-render-card.selected { border-color: #0e7490; box-shadow: 0 0 0 3px rgba(14,116,144,.15); }

/* Schémas de répartition mur/sol */
.ptb-comp-btn { display: inline-flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 12px; min-width: 78px; }
.ptb-comp-btn b { font-size: 12px; font-weight: 600; line-height: 1.2; }
.ptb-comp-diagram svg { width: 38px; height: 50px; display: block; }
.ptb-comp-legend { color: #999; font-weight: 400; font-size: 12px; }

/* Boutons de séance avec icône */
.ptb-session { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 16px 10px; }
.ptb-session .ptb-ico { font-size: 30px; line-height: 1; }
.ptb-session .ptb-ico-label { font-size: 13px; }

/* Champs */
.ptb-fields label, .ptb-custom-dim label { display: flex; flex-direction: column; font-size: 13px; gap: 4px; }
.ptbackdrop-wizard input, .ptbackdrop-wizard textarea, .ptbackdrop-wizard select {
  width: 100%; padding: 9px; border: 1px solid #d5d5d5; border-radius: 8px; font-size: 14px; background: #fff;
}
.ptb-other { margin-top: 6px; }
#ptb-free_text { margin-bottom: 10px; }
.ptb-quickadd { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.ptb-qa { background: #f2edf0; border: 1px solid #e3d5dc; color: #8a5563; border-radius: 16px; padding: 5px 12px; font-size: 13px; cursor: pointer; }
.ptb-qa:hover { background: #ead9e1; }
.ptb-field-inline { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.ptb-field-inline > span { font-weight: 600; min-width: 90px; }
.ptb-custom-dim { display: flex; gap: 16px; margin-top: 16px; max-width: 380px; }
.ptb-dim-group { font-size: 13px; color: #888; margin: 16px 0 8px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; }
.ptb-dim-lh { display: block; font-size: 11px; color: #b0788a; letter-spacing: 1px; margin-bottom: 3px; }
.ptb-dim-rv { display: inline-block; margin-top: 4px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: #fff; background: #2d3e50; border-radius: 8px; padding: 1px 7px; }
.ptb-custom-label { margin-top: 18px; font-weight: 600; }
.ptb-dim strong { font-size: 15px; font-weight: 600; }

/* Actions d'ajustement du visuel */
.ptb-refine { margin-top: 18px; border-top: 1px dashed #eee; padding-top: 14px; }
.ptb-refine-btn { font-size: 13px; padding: 6px 12px; }

/* Crédits de génération */
.ptb-credits { background: #eef5f1; border: 1px solid #b7e0cc; color: #2f7d5b; border-radius: 10px; padding: 10px 14px; margin: 14px 0; font-size: 14px; }
.ptb-credits:empty { display: none; }
.ptb-credits-empty { background: #fbeaea; border-color: #eec2c2; color: #b23434; }
.ptb-promo { display: flex; gap: 8px; margin: 12px 0; max-width: 400px; }
.ptb-promo input { flex: 1; }
.ptb-count { min-width: 42px; text-align: center; }

/* Aperçus générés */
.ptb-previews img { width: 100%; border-radius: 10px; cursor: pointer; border: 3px solid transparent; display: block; }
.ptb-preview.selected { border-color: #c48a97; }
.ptb-preview-item { position: relative; }
.ptb-zoom { position: absolute; top: 8px; right: 8px; border: none; background: rgba(0,0,0,.5); color: #fff; border-radius: 50%; width: 32px; height: 32px; cursor: pointer; font-size: 15px; line-height: 32px; padding: 0; }
.ptb-zoom:hover { background: rgba(0,0,0,.78); }

/* Visionneuse plein écran */
.ptb-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.86); z-index: 99999; display: flex; align-items: center; justify-content: center; cursor: zoom-out; }
.ptb-lightbox img { max-width: 92vw; max-height: 90vh; border-radius: 6px; box-shadow: 0 8px 40px rgba(0,0,0,.55); }
.ptb-lb-close { position: absolute; top: 14px; right: 26px; color: #fff; font-size: 42px; line-height: 1; cursor: pointer; }

/* Faces recto / verso */
.ptb-face-label { font-size: 14px; font-weight: 700; color: #2d3e50; margin: 18px 0 8px; }
#ptb-verso-section { border-top: 2px dashed #d8d2c6; margin-top: 22px; padding-top: 8px; }

/* Aperçu à l'échelle */
.ptb-scale { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }
.ptb-scale-col { flex: 1 1 280px; max-width: 340px; text-align: center; }
.ptb-scale-col .ptb-face-label { margin: 0 0 6px; }
.ptb-scale-frame {
  position: relative; max-width: 520px; margin: 0 auto; background: #f3f3f3;
  border: 1px solid #ddd; border-radius: 6px; overflow: hidden; aspect-ratio: 3 / 4;
}
.ptb-scale-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ptb-silhouette {
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  display: flex; align-items: flex-end; justify-content: center; gap: 4px; height: 60%;
}
.ptb-fig { height: 100%; }
.ptb-fig svg { height: 100%; width: auto; display: block; }
.ptb-fig svg circle, .ptb-fig svg path { fill: rgba(35,35,35,.5); }
.ptb-sil-select { margin-bottom: 12px; }
.ptb-sil-btn { padding: 6px 14px; }

/* Suggestion saisonnière */
.ptb-seasonal {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  background: linear-gradient(120deg, #f6e7ec, #e7eee9); border-radius: 12px; padding: 12px 16px; margin-bottom: 18px;
}
.ptb-seasonal span { font-weight: 500; }
.ptb-seasonal button { background: #c48a97; color: #fff; border: none; padding: 9px 18px; border-radius: 20px; cursor: pointer; font-size: 14px; }
.ptb-seasonal button:hover { background: #b0788a; }

/* Badge qualité DPI */
.ptb-quality { max-width: 520px; margin: 14px auto 0; padding: 10px 14px; border-radius: 10px; text-align: center; }
.ptb-quality:empty { display: none; }
.ptb-q-green { background: #e7f4ee; color: #2f7d5b; border: 1px solid #b7e0cc; }
.ptb-q-orange { background: #fdf3e3; color: #a86a12; border: 1px solid #f0d9a8; }
.ptb-q-red { background: #fbeaea; color: #b23434; border: 1px solid #eec2c2; }

/* Prix */
.ptb-price { font-size: 32px; font-weight: 700; color: #7bb39f; text-align: center; margin: 10px 0; }
.ptb-breakdown { list-style: none; padding: 0; max-width: 360px; margin: 0 auto; }
.ptb-breakdown li { display: flex; justify-content: space-between; padding: 4px 0; border-bottom: 1px dashed #eee; }

/* Recap / cases */
.ptb-recap { background: #f8f8f8; border-radius: 10px; padding: 14px; margin-bottom: 16px; }
.ptb-check { display: flex; gap: 10px; align-items: flex-start; margin: 12px 0; font-size: 14px; }
.ptb-check input { width: auto; margin-top: 3px; }

/* ===== Landing page marketing ===== */
.ptb-landing { max-width: 1100px; margin: 0 auto; }
.ptb-btn-lg { padding: 14px 30px; font-size: 16px; text-decoration: none; display: inline-block; }
.ptb-hero { text-align: center; padding: 52px 20px; background: linear-gradient(135deg, #f6e7ec, #efe3d7 55%, #e7eee9); border-radius: 18px; margin-bottom: 42px; }
.ptb-hero h1 { font-size: 34px; margin: 0 0 16px; color: #2c2c2c; }
.ptb-hero-sub { font-size: 17px; color: #5a5a5a; max-width: 620px; margin: 0 auto 26px; }
.ptb-hero-cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.ptb-how { text-align: center; margin-bottom: 46px; }
.ptb-how h2, .ptb-gallery h2, .ptb-final-cta h2 { font-size: 26px; margin-bottom: 26px; }
.ptb-how-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; }
.ptb-how-step { padding: 18px; }
.ptb-how-num { width: 46px; height: 46px; line-height: 46px; border-radius: 50%; background: #c48a97; color: #fff; font-size: 20px; font-weight: 700; margin: 0 auto 12px; }
.ptb-how-step h3 { font-size: 17px; margin: 0 0 8px; }
.ptb-how-step p { color: #666; font-size: 14px; }
.ptb-args { margin-bottom: 46px; }
.ptb-args-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.ptb-arg { background: #fff; border: 1px solid #eee; border-radius: 10px; padding: 14px 16px; font-size: 15px; }
.ptb-gallery { margin-bottom: 46px; }
.ptb-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.ptb-gallery-tile { position: relative; aspect-ratio: 3 / 4; border-radius: 12px; display: flex; align-items: flex-end; padding: 12px; text-decoration: none; color: #fff; font-weight: 600; overflow: hidden; }
.ptb-gallery-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.ptb-gallery-tile::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(0,0,0,.6) 0%, rgba(0,0,0,.15) 40%, rgba(0,0,0,0) 70%); }
.ptb-gallery-tile span { position: relative; z-index: 2; text-shadow: 0 1px 4px rgba(0,0,0,.55); }
.ptb-tile-0 { background: linear-gradient(135deg, #b5495b, #7a2c39); }
.ptb-tile-1 { background: linear-gradient(135deg, #c9a36a, #8a6d3b); }
.ptb-tile-2 { background: linear-gradient(135deg, #6f9e86, #3d6350); }
.ptb-tile-3 { background: linear-gradient(135deg, #8a7fb0, #544a78); }
.ptb-tile-4 { background: linear-gradient(135deg, #c48a97, #8a5563); }
.ptb-tile-5 { background: linear-gradient(135deg, #5b7d99, #33475a); }
.ptb-final-cta { text-align: center; padding: 42px 20px; background: #faf0f3; border-radius: 18px; margin-bottom: 30px; }
@media (max-width: 600px) { .ptb-hero h1 { font-size: 26px; } }

/* Galerie de fonds */
.ptb-gal-filters { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 20px 0 26px; }
.ptb-gal-chip { text-decoration: none; padding: 7px 14px; border-radius: 18px; border: 1px solid #e0d5da; color: #6a5560; font-size: 13px; }
.ptb-gal-chip.active, .ptb-gal-chip:hover { background: #c48a97; color: #fff; border-color: #c48a97; }
.ptb-gal-chip span { opacity: .7; }
.ptb-gal-card { border: 1px solid #eee; border-radius: 12px; overflow: hidden; background: #fff; }
.ptb-gal-thumb { display: block; aspect-ratio: 3 / 4; overflow: hidden; }
.ptb-gal-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s; }
.ptb-gal-thumb:hover img { transform: scale(1.04); }
.ptb-gal-meta { padding: 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ptb-gal-cat { font-size: 12px; color: #888; }
.ptb-gal-use { padding: 6px 12px !important; font-size: 13px !important; }
.ptb-gal-pages { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 24px 0; }
.ptb-navcta-gallery { margin-right: 10px; color: #8a5563; text-decoration: none; font-weight: 600; font-size: 14px; align-self: center; }

/* Bloc conseil matières */
.ptb-advice { background: #f8f6f2; border: 1px solid #ece6db; border-radius: 10px; padding: 14px 18px; margin: 16px 0; font-size: 14px; }
.ptb-advice ul { margin: 8px 0; padding-left: 18px; }
.ptb-advice li { margin: 3px 0; }

/* Notes */
.ptb-note { font-size: 13px; color: #777; margin: 10px 0; }
.ptb-warn { color: #b26b00; font-weight: 600; }
.ptb-demo-note { color: #b26b00; }

/* Boutons & nav */
.ptb-btn {
  padding: 11px 22px; border: 1px solid #ccc; background: #fff; border-radius: 24px;
  cursor: pointer; font-size: 15px;
}
.ptb-btn-primary { background: #c48a97; color: #fff; border-color: #c48a97; }
.ptb-btn-primary:disabled { opacity: .5; cursor: not-allowed; }
.ptb-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 26px; }
.ptb-ref { font-size: 12px; color: #999; }

@media (max-width: 600px) {
  .ptb-steps li { flex-basis: 60px; font-size: 0; }
  .ptb-steps li.active { font-size: 11px; }
  .ptb-custom-dim { flex-direction: column; }
}

/* Mes créations — cartes */
.ptb-projects .ptb-project-card { display: block; text-decoration: none; color: inherit; border: 1px solid #eee; border-radius: 12px; overflow: hidden; background: #fff; transition: box-shadow .15s; }
.ptb-project-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,.08); }
.ptb-project-card img { width: 100%; height: 140px; object-fit: cover; display: block; }
.ptb-project-noimg { height: 140px; display: flex; align-items: center; justify-content: center; font-size: 34px; color: #c48a97; background: #faf0f3; }
.ptb-project-ref { font-weight: 600; padding: 10px 12px 0; font-size: 13px; }
.ptb-project-status { padding: 2px 12px; color: #7bb39f; font-size: 13px; }
.ptb-project-date { padding: 0 12px 12px; color: #999; font-size: 12px; }

/* Détail + messagerie */
.ptb-detail-head { display: flex; gap: 20px; flex-wrap: wrap; }
.ptb-detail-visual { flex: 0 0 220px; }
.ptb-detail-visual img { width: 100%; border-radius: 10px; }
.ptb-detail-info { flex: 1 1 240px; }
.ptb-thread { display: flex; flex-direction: column; gap: 12px; margin: 16px 0; }
.ptb-msg { max-width: 80%; padding: 10px 14px; border-radius: 12px; }
.ptb-msg-client { align-self: flex-end; background: #faf0f3; }
.ptb-msg-workshop { align-self: flex-start; background: #eef5f1; }
.ptb-msg-system { align-self: center; background: #f4f4f4; font-style: italic; }
.ptb-msg-meta { font-size: 11px; color: #999; margin-bottom: 4px; }
.ptb-msg-img { max-width: 180px; border-radius: 8px; margin-top: 6px; display: block; }
.ptb-msg-form { margin-top: 16px; }
.ptb-msg-form-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 8px; }

/* ===== Cartes de tailles à l\x27échelle — étape Dimensions du configurateur ===== */
.ptb-fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:14px;margin-top:6px}
.ptb-fcard{display:flex;flex-direction:column;padding:0;overflow:hidden;border:1.5px solid #ece7df;border-radius:14px;background:#fff;cursor:pointer;text-align:center;transition:border-color .15s ease,transform .15s ease,box-shadow .2s ease}
.ptb-fcard:hover{border-color:#14a89c;transform:translateY(-3px);box-shadow:0 14px 30px -20px rgba(20,24,28,.4)}
.ptb-fcard.selected{border-color:#14a89c;box-shadow:0 0 0 3px rgba(20,168,156,.2)}
.ptb-fcard .ptb-vis{--sc:0.34px;display:block;position:relative;height:150px;overflow:hidden;background:#fff}
.ptb-fcard .ptb-vis::before{content:"";position:absolute;left:0;right:0;top:0;bottom:46px;z-index:0;background:repeating-linear-gradient(to top,transparent,transparent calc(25*var(--sc) - 1px),#d7d4cd calc(25*var(--sc) - 1px),#d7d4cd calc(25*var(--sc))),repeating-linear-gradient(to top,transparent,transparent calc(100*var(--sc) - 2px),#aca69c calc(100*var(--sc) - 2px),#aca69c calc(100*var(--sc)))}
.ptb-fcard .ptb-vis::after{content:"";position:absolute;left:0;right:0;bottom:0;height:46px;background:#8f9391;z-index:0}
.ptb-fcard .ptb-wall{position:absolute;z-index:1;left:50%;transform:translateX(-50%);bottom:46px;width:calc(var(--w)*var(--sc));height:calc(var(--wall)*var(--sc));background:#16b0a4}
.ptb-fcard .ptb-sole{position:absolute;z-index:1;left:50%;transform:translateX(-50%);top:calc(100% - 46px);width:calc(var(--w)*var(--sc)*1.7);height:calc(var(--floor)*var(--sc)*0.42);max-height:42px;background:#16b0a4;clip-path:polygon(21% 0,79% 0,100% 100%,0 100%)}
.ptb-fcard .silimg{position:absolute;z-index:2;left:50%;transform:translateX(-50%);bottom:39px;height:calc(var(--ph)*var(--sc));width:auto}
.ptb-fdim{font-weight:800;font-size:15px;color:#1f2a2c;padding:9px 8px 2px}
.ptb-fbadges{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;padding:0 8px 12px}
.ptb-fbadges .b{font-size:10.5px;font-weight:700;color:#0f6d86;background:#e4f3f7;border-radius:20px;padding:2px 8px}
.ptb-fbadges .b.rv{color:#8a4b12;background:#fbf1e2}

/* ===== Curseur Répartition mur / sol (étape Dimensions) ===== */
.ptb-murslider{margin:18px 0 8px;padding:16px 18px;border:1.5px solid #e6efef;border-radius:14px;background:#f4fbfa}
.ptb-murslider.is-locked{opacity:.55}
.ptb-murslider-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.ptb-murslider-title{font-weight:800;color:#12433f;font-size:15px}
.ptb-murslider-val{color:#0f6d86;font-size:14px}
.ptb-murslider-val b{font-size:16px}
.ptb-murslider input[type=range]{width:100%;accent-color:#14a89c;height:26px;cursor:pointer}
.ptb-murslider.is-locked input[type=range]{cursor:not-allowed}
.ptb-murslider-scale{display:flex;justify-content:space-between;font-size:11.5px;color:#6b7b79;margin-top:2px}
.ptb-murslider-hint{margin:8px 0 0!important}
/* ===== Pilote catalogue au m² (fiche produit fond) ===== */
#ptb-bd{margin:18px 0 6px;padding:18px;border:1.5px solid #e6efef;border-radius:16px;background:#f7fbfb}
#ptb-bd .ptb-bd-head{margin-bottom:12px}
#ptb-bd .ptb-eyebrow{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0f6d86;background:#e4f3f7;border-radius:20px;padding:3px 10px}
#ptb-bd .ptb-note{margin:8px 0 0;color:#4b5b59;font-size:13.5px}
.ptb-matsel{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}
.ptb-matbtn{border:1.5px solid #d9e6e5;background:#fff;border-radius:24px;padding:8px 18px;font-weight:700;font-size:14px;color:#25403d;cursor:pointer;transition:all .15s ease}
.ptb-matbtn:hover{border-color:#14a89c}
.ptb-matbtn.selected{background:#14a89c;border-color:#14a89c;color:#fff}
.ptb-matgrid.is-hidden{display:none}
#ptb-bd .ptb-fgrid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
#ptb-bd .ptb-fcard .ptb-vis{--sc:0.3px;height:132px}
.ptb-bd-custom{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:16px 0 4px;padding-top:14px;border-top:1px dashed #d3e2e1}
.ptb-bd-or{font-weight:800;color:#12433f;font-size:13.5px;width:100%}
.ptb-bd-custom label{display:flex;flex-direction:column;font-size:12px;font-weight:700;color:#4b5b59;gap:4px}
.ptb-bd-custom input{width:120px;padding:9px 10px;border:1.5px solid #d9e6e5;border-radius:10px;font-size:15px}
/* Conseil matière (issu de l'analyse d'image) */
.ptb-advice{border:1px solid #d7ebe8;background:#f2faf9;border-radius:12px;padding:12px 14px;margin:6px 0 14px}
.ptb-advice-h{font-weight:800;font-size:13.5px;color:#0f8c82;margin-bottom:3px}
.ptb-advice-txt{margin:0;font-size:13.5px;color:#33413f;line-height:1.5}
.ptb-advice-reco{margin:6px 0 0;font-size:12.5px;color:#5c6b68}
.ptb-advice-reco b{color:#0f8c82}
.ptb-advice--sombre,.ptb-advice--plutot_sombre{border-color:#e3d9ea;background:#f7f4fb}
.ptb-advice--sombre .ptb-advice-h,.ptb-advice--plutot_sombre .ptb-advice-h,
.ptb-advice--sombre .ptb-advice-reco b,.ptb-advice--plutot_sombre .ptb-advice-reco b{color:#7b52a8}
/* Finition dynamique */
.ptb-fin{margin:14px 0 0;padding:12px 14px;border:1px solid #e2ecea;border-radius:12px;background:#fbfdfc}
.ptb-fin-h{font-weight:800;font-size:13.5px;margin-bottom:6px}
.ptb-fin-opt{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
.ptb-fin-opt em{color:#0f8c82;font-style:normal;font-weight:700;font-size:12px}
.ptb-fin-note{margin:6px 0 0;font-size:12px;color:#6b7b79}
.ptb-fin-auto{font-size:12.5px;color:#8a6d1f;background:#fbf3df;border:1px solid #efdcae;border-radius:8px;padding:8px 10px;margin-top:6px;line-height:1.45}
/* Accessoire recommandé */
.ptb-acc{margin-top:12px}
.ptb-acc-card{display:flex;align-items:center;gap:12px;border:1px solid #e2ecea;border-radius:12px;padding:10px 12px;flex-wrap:wrap}
.ptb-acc-card img{width:52px;height:52px;object-fit:cover;border-radius:8px}
.ptb-acc-info{flex:1;min-width:120px}
.ptb-acc-name{font-weight:700;font-size:13.5px}
.ptb-acc-price{font-size:12.5px;color:#14a89c;font-weight:700}
.ptb-acc-add{background:#0f8c82;color:#fff;border:none;border-radius:100px;padding:9px 16px;font-weight:700;font-size:13px;cursor:pointer}
.ptb-acc-add:disabled{opacity:.7;cursor:default}
/* Récapitulatif */
.ptb-recap{margin-top:14px;border:1px solid #e2ecea;border-radius:12px;overflow:hidden}
.ptb-recap-h{background:#f2faf9;font-weight:800;font-size:13px;padding:9px 14px;color:#0f8c82}
.ptb-recap-row{display:flex;justify-content:space-between;gap:14px;padding:7px 14px;border-top:1px solid #eef3f2;font-size:13px}
.ptb-recap-row span{color:#6b7b79}
.ptb-recap-row b{text-align:right}
/* Remarque client */
.ptb-remark{margin-top:14px}
.ptb-remark-h{display:block;font-weight:700;font-size:13px;margin-bottom:5px}
.ptb-remark textarea{width:100%;border:1.5px solid #d9e6e5;border-radius:10px;padding:9px 11px;font-size:14px;font-family:inherit;resize:vertical}
/* Confirmation avant ajout */
.ptb-confirm{display:flex;align-items:flex-start;gap:9px;margin-top:14px;font-size:13px;color:#33413f;cursor:pointer;line-height:1.4}
.ptb-confirm input{margin-top:2px;flex:none}
.ptb-bd-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:16px}
.ptb-bd-price{font-size:28px;font-weight:800;color:#14a89c;font-variant-numeric:tabular-nums;display:flex;flex-direction:column;line-height:1.1}
.ptb-bd-ttc small{font-size:14px;color:#8a9195;font-weight:700}
.ptb-bd-ht{font-size:12.5px;color:#8a8f98;font-weight:600;margin-top:2px}
/* Prix rappelé sous l'aperçu (colonne de gauche) */
.ptb-bd-price-left{display:none;flex-direction:column;align-items:center;text-align:center;margin-top:12px;font-size:26px;font-weight:800;color:#14a89c;font-variant-numeric:tabular-nums;line-height:1.1}
.ptb-bd-add{background:#14a89c;color:#fff;border:none;border-radius:26px;padding:14px 30px;font-size:15px;font-weight:800;cursor:pointer;transition:background .15s ease,transform .15s ease}
.ptb-bd-add:hover:not(:disabled){background:#0f8f85;transform:translateY(-1px)}
.ptb-bd-add:disabled{background:#b9cfce;cursor:not-allowed}
.ptb-bd-msg{margin:8px 0 0;font-size:13px;color:#8a5a12;min-height:18px}

/* ===== Configurateur : bouton Générer/Ajouter (grand, centré) + option exclusivité ===== */
.ptb-generate-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;margin:20px 0}
.ptb-generate-big{font-size:18px!important;font-weight:800!important;padding:16px 42px!important;border-radius:30px!important;box-shadow:0 12px 26px -14px rgba(20,168,156,.7)}
.ptb-generate-hint{margin:10px 0 0!important;color:#6b7b79;font-size:13px;max-width:420px}
.ptb-btn-disabled,.ptb-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none;box-shadow:none}
.ptb-exclusive-opt{display:flex;gap:10px;align-items:flex-start;margin:16px 0;padding:14px 16px;border:1.5px solid #e6d9c2;border-radius:12px;background:#fbf6ec;font-size:14px;line-height:1.45}
.ptb-exclusive-opt input{margin-top:3px;flex:0 0 auto;width:18px;height:18px}
.ptb-exclusive-opt strong{color:#8a5a12}

/* ===== Pilote catalogue : 2 colonnes (prévisualisation gauche / contrôles droite) ===== */
#ptb-bd{display:grid;grid-template-columns:minmax(220px,0.82fr) 1.18fr;gap:26px;align-items:start}
@media(max-width:860px){#ptb-bd{grid-template-columns:1fr}}
.ptb-bd-preview{position:sticky;top:16px}
.ptb-bd-frame{width:100%;aspect-ratio:var(--ar,3 / 4);border-radius:14px;overflow:hidden;background:#eef4f4;box-shadow:0 16px 36px -22px rgba(20,24,28,.5);transition:aspect-ratio .25s ease}
.ptb-bd-frame img{width:100%;height:100%;object-fit:cover;display:block}
.ptb-bd-frame.is-sized{outline:2px solid #14a89c;outline-offset:3px}
.ptb-bd-frame-cap{margin:11px 0 0;text-align:center;font-size:12.5px;color:#6b7b79}
.ptb-crop-quick{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap;margin:10px 0 0}
.ptb-crop-quick[hidden]{display:none}
.ptb-crop-lbl{font-size:12.5px;color:#6b7b79}
.ptb-crop-btn{border:1.5px solid #d9e6e5;background:#fff;border-radius:999px;padding:5px 12px;font-size:12.5px;line-height:1.2;cursor:pointer;color:#12433f}
.ptb-crop-btn:hover{border-color:#14a89c}
.ptb-crop-btn.is-on{background:#14a89c;border-color:#14a89c;color:#fff}

/* Réassurance (fiche fond) — 4 arguments vérifiés sous l'ajout au panier */
.ptb-trust{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid #eef1f0;display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.ptb-trust-i{display:flex;align-items:center;gap:9px;font-size:13px;color:#2c3a38;line-height:1.25}
.ptb-trust-ic{font-size:19px;line-height:1;flex:0 0 auto}
.ptb-trust-i span{display:flex;flex-direction:column;font-weight:600}
.ptb-trust-i em{font-style:normal;font-weight:400;font-size:11.5px;color:#7b8a88}
@media (max-width:520px){.ptb-trust{grid-template-columns:1fr}}
/* Pas de doublon « Hit » sur la fiche : le module affiche son badge sur l'aperçu, on masque le flag natif on_sale. */
.page-product .product-flag.on-sale{display:none}
.ptb-bd-nowm{margin:7px auto 0;max-width:440px;text-align:center;font-size:11.5px;line-height:1.35;color:#8a8f98;background:#f4f7f7;border:1px solid #e3ecec;border-radius:8px;padding:6px 10px}
.ptb-bd-nowm::before{content:"ℹ️ ";}
/* Matériau posé AU SOL (Mats) : pas de mur, le fond se déroule au sol */
.ptb-vis.is-floor::before{display:none}
.ptb-vis.is-floor .ptb-wall{display:none}
.ptb-vis.is-floor .ptb-sole{display:block;top:auto;bottom:0;max-height:none;width:calc(var(--w)*var(--sc)*1.8);height:56px;clip-path:polygon(15% 0,85% 0,100% 100%,0 100%)}
.ptb-vis.is-floor .silimg{bottom:26px}

/* ===== Pilote : conseil matière + choix verso (Mats RV) ===== */
.ptb-matinfo-wrap{margin:2px 0 14px}
.ptb-matinfo.is-hidden{display:none}
.ptb-matinfo{padding:12px 15px;border:1.5px solid #dcedea;border-radius:12px;background:#fff}
.ptb-mi-tag{margin:0 0 8px;font-weight:800;color:#12433f;font-size:14px}
.ptb-mi-list{margin:0;padding-left:18px;color:#3f5150;font-size:13px;line-height:1.7;column-count:2;column-gap:26px}
.ptb-mi-list li{break-inside:avoid}
@media (max-width:640px){.ptb-mi-list{column-count:1}}
.ptb-mi-best{margin:9px 0 0;font-size:13px;color:#0f6d86;font-weight:600}
.ptb-bd-verso{margin:14px 0 4px;padding:14px 16px;border:1.5px solid #e6d9c2;border-radius:12px;background:#fbf6ec}
.ptb-bd-verso .ptb-bd-or{color:#8a5a12}
.ptb-bd-verso input[type=text]{width:100%;padding:10px 12px;border:1.5px solid #d9e6e5;border-radius:10px;font-size:14px;margin-top:6px}
.ptb-bd-verso-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-top:10px;max-height:250px;overflow:auto}
.ptb-bd-verso-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border:1.5px solid #ece7df;border-radius:10px;background:#fff;cursor:pointer;font-size:12px;text-align:center;line-height:1.3}
.ptb-bd-verso-item:hover{border-color:#14a89c}
.ptb-bd-verso-item img{width:100%;height:72px;object-fit:cover;border-radius:6px}
.ptb-bd-verso-chosen{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;font-size:14px}
.ptb-bd-verso-change{background:none;border:none;color:#0f6d86;text-decoration:underline;cursor:pointer;font-size:13px}

/* Aperçu déplacé dans la colonne image (haut gauche) + contrôles seuls + lightbox */
#ptb-bd.ptb-bd-solo{grid-template-columns:1fr}
[class*="col-"] > .ptb-bd-preview{margin-bottom:14px;position:static}
.ptb-bd-preview .ptb-bd-frame{cursor:zoom-in}
.ptb-bd-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;z-index:99999;cursor:zoom-out}
.ptb-bd-lb-stage,.ptb-wm-stage{position:relative;display:inline-block;line-height:0}
.ptb-bd-lightbox img{max-width:92vw;max-height:92vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);-webkit-user-drag:none;user-select:none}
.ptb-bd-wm{position:absolute;inset:0;pointer-events:none;border-radius:8px;opacity:.22;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='250'%20height='160'%3E%3Ctext%20x='18'%20y='100'%20fill='%23ffffff'%20fill-opacity='0.55'%20font-family='Arial,Helvetica,sans-serif'%20font-size='21'%20font-weight='700'%20transform='rotate(-27%20125%2080)'%3EP%27tit%20Style%3C/text%3E%3C/svg%3E");
  background-repeat:repeat;background-position:center}
.ptb-bd-lb-close{position:absolute;top:16px;right:28px;color:#fff;font-size:42px;line-height:1;cursor:pointer;font-weight:300}
.ptb-bd-lb-note{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);margin:0;max-width:90vw;text-align:center;color:#fff;font-size:13px;background:rgba(0,0,0,.55);border-radius:8px;padding:8px 16px}
.ptb-bd-lb-note::before{content:"ℹ️ ";}

/* Aperçu collant : reste visible en scrollant la fiche */
[class*="col-"] > .ptb-bd-preview{position:sticky;top:16px;align-self:flex-start}

/* Cadrage : neutralise le drag natif de l\x27image pour que notre pan fonctionne */
.ptb-bd-frame{user-select:none;-webkit-user-select:none}
.ptb-bd-frame img{pointer-events:none;user-select:none;-webkit-user-drag:none}
