/* Fiche vélo Cycles Blain (v1.3) */
:root { --cb-bleu: #0b5cad; --cb-encre: #0f1720; --cb-texte: #2b3442; --cb-gris: #4a5565; --cb-ligne: #e3e7ee; --cb-fond: #f3f5f8; --cb-vert: #1e7a3c; }

/* Retirés de la fiche */
.product-page-right > .product-reference,
.product-price-loa,
.cb-masque,
.cb-details-natifs { display: none !important; }

/* Paiement en plusieurs fois (bloc officiel Cofidis, placé sous le prix) */
.cb-cofidis-slot { margin: 6px 0 18px; }
.cb-cofidis-slot.cb-vide { display: none; }
.cb-cofidis-slot .cofidis-dynamic-badge-below-cart { border: 2px solid #f2c94c; background: #fffaeb; border-radius: 14px; padding: 6px 10px; }
.cb-cofidis-slot #financing-module .cof_dyn_banner { box-shadow: none !important; background: transparent !important; margin: 0 !important; }

/* En bref */
.cb-en-bref { margin: 2px 0 16px; border: 1px solid #dbe2ea; background: #f8fafc; border-radius: 14px; padding: 11px 15px; }
.cb-en-bref-titre { font-size: 10px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; color: var(--cb-bleu); margin-bottom: 6px; }
.cb-en-bref ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.cb-en-bref li { position: relative; padding-left: 15px; font-size: 14px; line-height: 1.4; color: var(--cb-texte); }
.cb-en-bref li::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 3px; background: var(--cb-bleu); }
.cb-en-bref li strong { color: var(--cb-encre); }

/* Tailles en cases */
.cb-tailles { margin: 0 0 14px; }
.cb-tailles-entete { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.cb-tailles-entete .control-label { font-weight: 700; }
.cb-ouvrir-guide { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding: 9px 16px; border: 2px solid var(--cb-bleu); border-radius: 999px; background: #ffffff; color: var(--cb-bleu); font: inherit; font-size: 14px; font-weight: 800; text-decoration: none; cursor: pointer; transition: background .15s, color .15s; }
.cb-ouvrir-guide:hover, .cb-ouvrir-guide:focus-visible { background: var(--cb-bleu); color: #ffffff; }
.cb-ouvrir-guide svg { flex-shrink: 0; }
.cb-tailles-cases { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.cb-taille-case label { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 54px; margin: 0; padding: 6px 4px; border: 2px solid #c9d1dc; border-radius: 12px; background: #ffffff; cursor: pointer; text-align: center; }
.cb-taille-case input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.cb-taille-case input:focus-visible + .cb-taille-nom { outline: 3px solid var(--cb-bleu); outline-offset: 4px; }
.cb-taille-nom { font-size: 15px; font-weight: 800; color: var(--cb-encre); }
.cb-taille-etat { font-size: 10px; font-weight: 700; line-height: 1.2; }
.cb-taille-case[data-cb-etat="stock"] .cb-taille-etat { color: #1e8a4a; }
.cb-taille-case[data-cb-etat="arrivage"] .cb-taille-etat { color: #2c6fb5; }
.cb-taille-case[data-cb-etat="aucun"] .cb-taille-etat { color: #6b7686; }
.cb-taille-case.cb-choisie label { background: var(--cb-encre); border-color: var(--cb-encre); }
.cb-taille-case.cb-choisie .cb-taille-nom, .cb-taille-case.cb-choisie .cb-taille-etat { color: #ffffff; }
.cb-plus-tailles button { width: 100%; min-height: 54px; border-radius: 12px; border: 2px dashed #9fb7d3; background: #f5f9fe; color: var(--cb-bleu); font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }

/* Bloc de disponibilité */
#product-availability.cb-availability-card, [data-product-availability].cb-availability-card {
  display: block; width: 100%; box-sizing: border-box; margin: 12px 0; padding: 12px 15px; border-radius: 12px;
  border: 2px solid #3d82c9; background: #e8f1fb; color: #0b3f75 !important; text-align: left; line-height: 1.5; white-space: normal;
}
.cb-availability-card .cb-availability-title { display: block; margin: 0 0 2px; font-size: 17px; font-weight: 800; line-height: 1.25; color: inherit; }
.cb-availability-card .cb-availability-detail { display: block; font-size: 13px; font-weight: 500; color: inherit; }
.cb-availability-card[data-cb-availability-kind="stock"] { border-color: #2f9e5a; background: #e7f6ec; color: #145c2e !important; }
.cb-availability-card[data-cb-availability-kind="none"] { border-color: #c9d1dc; background: #f1f3f6; color: var(--cb-texte) !important; }

/* Boutons */
.cb-order-button { font-weight: 800; border-radius: 10px; min-height: 50px; }
#add-to-cart-or-refresh.cb-indispo .product-add-to-cart button.add-to-cart { display: none !important; }
.add-to-loa { border-radius: 10px; min-height: 50px; }
.add-to-loa span { font-weight: 800; }
.add-to-loa.cb-loa-principal { flex: 1 1 auto; font-size: 15px; }

/* Note Google et atouts */
.cb-atouts { margin: 12px 0 10px; display: flex; flex-direction: column; gap: 8px; }
.cb-note-google { font-size: 13px; color: var(--cb-texte); }
.cb-note-google strong { color: var(--cb-encre); }
.cb-etoiles { color: #b07a00; letter-spacing: 2px; }
.cb-atouts-liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.cb-atouts-liste li { background: var(--cb-fond); border-radius: 8px; padding: 8px 10px; font-size: 12px; line-height: 1.35; color: var(--cb-texte); }
.cb-atouts-liste strong { display: block; color: var(--cb-encre); }

/* Texte court replié */
.cb-texte-court { max-height: 4.7em; overflow: hidden; position: relative; }
.cb-texte-court::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1.6em; background: linear-gradient(rgba(255,255,255,0), #ffffff); }
.cb-lire-suite { display: inline-block; margin: 4px 0 12px; font-size: 13px; font-weight: 700; }

/* Réf. vendeur */
.cb-ref-vendeur { margin: 8px 0 0; font-size: 12px; color: var(--cb-gris); }

/* Onglets Caractéristiques / Description */
.cb-onglets { margin: 28px 0 40px; }
.cb-onglets-barre { display: flex; gap: 8px; border-bottom: 2px solid var(--cb-ligne); }
.cb-onglet { border: 0; background: transparent; padding: 10px 16px; margin-bottom: -2px; font: inherit; font-size: 15px; font-weight: 800; color: var(--cb-gris); border-bottom: 3px solid transparent; cursor: pointer; }
.cb-onglet.actif { color: var(--cb-encre); border-bottom-color: var(--cb-bleu); }
.cb-accordeon > summary { display: none; }
.cb-accordeon-contenu { padding-top: 16px; }
.cb-surtitre { font-size: 11px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; color: var(--cb-gris); margin: 0 0 10px; }
.cb-essentiel { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 24px; }
.cb-carte { border: 1px solid #d6e4f3; background: #f5f9fe; border-radius: 12px; padding: 11px 14px; }
.cb-carte-titre { font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #3d6a99; }
.cb-carte-valeur { font-size: 15px; font-weight: 800; color: var(--cb-encre); margin: 2px 0; }
.cb-carte-detail { font-size: 12px; line-height: 1.4; color: var(--cb-gris); }
.cb-fiche { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 40px; }
.cb-fiche-titre { font-size: 14px; font-weight: 800; color: var(--cb-encre); padding-bottom: 6px; border-bottom: 2px solid var(--cb-bleu); }
.cb-fiche-ligne { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; border-bottom: 1px solid var(--cb-ligne); font-size: 13px; }
.cb-fiche-ligne span:first-child { color: var(--cb-gris); }
.cb-fiche-ligne span:last-child { font-weight: 600; text-align: right; color: var(--cb-encre); }
.cb-description { max-width: 820px; font-size: 14px; line-height: 1.65; color: var(--cb-texte); }

/* Fenêtre « Quelle taille choisir ? » */
.cb-guide-fond[hidden] { display: none !important; }
.cb-guide-fond { position: fixed; inset: 0; z-index: 2000; background: rgba(15, 23, 32, .45); display: flex; align-items: flex-start; justify-content: center; padding: 8vh 16px; overflow-y: auto; }
.cb-guide-fenetre { width: min(640px, 100%); background: #ffffff; border-radius: 18px; padding: 24px 26px; box-sizing: border-box; box-shadow: 0 20px 60px rgba(15, 23, 32, .25); display: flex; flex-direction: column; gap: 16px; }
.cb-guide-entete { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.cb-guide-titre { font-size: 22px; font-weight: 800; color: var(--cb-encre); }
.cb-guide-nom { font-size: 13px; color: var(--cb-gris); margin-top: 4px; }
.cb-guide-fermer { width: 44px; height: 44px; border-radius: 22px; border: 1px solid #c9d1dc; background: #ffffff; font-size: 22px; line-height: 1; cursor: pointer; }
.cb-guide-recherche { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; background: var(--cb-fond); border-radius: 12px; padding: 14px 16px; }
.cb-guide-recherche label { font-weight: 800; margin: 0; }
.cb-guide-saisie { display: flex; align-items: center; gap: 6px; }
.cb-guide-saisie input { width: 96px; min-height: 44px; padding: 0 10px; font-size: 18px; font-weight: 700; border: 2px solid #c9d1dc; border-radius: 8px; }
.cb-guide-conseil { flex: 1 1 100%; margin: 0; font-weight: 800; color: #0b3f75; }
.cb-guide-grille { display: flex; flex-direction: column; }
.cb-guide-ligne { display: grid; grid-template-columns: 52px minmax(0, 1fr) 130px; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 10px; }
.cb-guide-ligne.cb-guide-conseillee { background: #e8f1fb; box-shadow: inset 4px 0 0 var(--cb-bleu); }
.cb-guide-taille { font-weight: 800; font-size: 15px; }
.cb-guide-plage { display: block; height: 10px; border-radius: 5px; background: #9fb7d3; }
.cb-guide-conseillee .cb-guide-plage { background: var(--cb-bleu); }
.cb-guide-cm { display: block; font-size: 12px; color: var(--cb-gris); margin-top: 4px; }
.cb-guide-dispo { text-align: right; font-size: 12px; font-weight: 700; }
.cb-k-stock { color: #1e8a4a; } .cb-k-arrivage { color: #2c6fb5; } .cb-k-aucun { color: #6b7686; }
.cb-guide-note { margin: 0; font-size: 12px; color: var(--cb-gris); }
body.cb-guide-ouvert { overflow: hidden; }

/* Téléphone */
@media (max-width: 767px) {
  .cb-availability-card .cb-availability-title { font-size: 18px; }
  .cb-tailles-cases { gap: 6px; }
  .cb-taille-case label, .cb-plus-tailles button { min-height: 56px; }
  .cb-taille-nom { font-size: 15px; }
  .cb-taille-etat { font-size: 10px; }
  .cb-atouts-liste { grid-template-columns: 1fr; gap: 6px; }
  .cb-atouts-liste li { padding: 8px 10px; }
  /* Onglets → accordéons repliés */
  .cb-onglets-barre { display: none; }
  .cb-onglets { border-top: 1px solid var(--cb-ligne); }
  .cb-accordeon { border-bottom: 1px solid var(--cb-ligne); }
  .cb-accordeon > summary { display: flex; justify-content: space-between; align-items: center; min-height: 54px; font-size: 16px; font-weight: 800; color: var(--cb-encre); cursor: pointer; list-style: none; }
  .cb-accordeon > summary::-webkit-details-marker { display: none; }
  .cb-accordeon > summary::after { content: "+"; font-size: 22px; color: var(--cb-bleu); }
  .cb-accordeon[open] > summary::after { content: "−"; }
  .cb-accordeon-contenu { padding: 4px 0 16px; }
  .cb-essentiel { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 20px; }
  .cb-fiche { grid-template-columns: 1fr; gap: 20px; }
  /* Fenêtre du guide : monte du bas de l'écran */
  .cb-guide-fond { align-items: flex-end; padding: 0; }
  .cb-guide-fenetre { border-radius: 18px 18px 0 0; padding: 18px 16px 24px; max-height: 90vh; overflow-y: auto; }
  .cb-guide-ligne { grid-template-columns: 40px minmax(0, 1fr); }
  .cb-guide-dispo { grid-column: 2; text-align: left; }
  /* Barre de commande fixée en bas */
  body.cb-fiche-velo { padding-bottom: 86px; }
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; display: flex; gap: 8px;
    padding: 10px 14px 16px; background: #ffffff; border-top: 1px solid var(--cb-ligne); box-shadow: 0 -4px 14px rgba(15, 23, 32, .08);
  }
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper > * { flex: 1 1 0; min-height: 52px; }
}
.cb-contact { display: inline-flex; align-items: center; justify-content: center; min-height: 58px; padding: 0 22px; border-radius: 12px; background: var(--cb-vert); color: #ffffff !important; font-weight: 800; font-size: 17px; text-decoration: none; }

/* v1.3.2 : quantité masquée (un vélo se commande à l'unité) */
.cb-fiche-velo .product-quantity .qty { display: none !important; }
@media (max-width: 767px) {
  .cb-essentiel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* v1.3.3 : la réassurance du thème est remplacée par nos atouts */
.cb-reassurance-theme { display: none !important; }

/* v1.3.3 : téléphone — l'essentiel seulement, et des boutons évidents */
@media (max-width: 767px) {
  .cb-texte-court-zone, .cb-lire-suite { display: none !important; }      /* le texte est dans « Description » */
  .cb-atouts { margin: 8px 0 4px; gap: 4px; }
  .cb-note-google { font-size: 12px; }
  .cb-atouts-liste { display: flex; flex-wrap: wrap; gap: 4px 10px; }
  .cb-atouts-liste li { background: none; padding: 0; font-size: 12px; color: var(--cb-gris); }
  .cb-atouts-liste li strong { display: inline; font-weight: 700; color: var(--cb-texte); }
  .cb-atouts-liste li strong::after { content: ""; }
  .cb-atouts-liste li { font-size: 0; }                                    /* on ne garde que le titre de chaque atout */
  .cb-atouts-liste li strong { font-size: 12px; }
  .cb-atouts-liste li + li strong::before { content: "· "; color: var(--cb-gris); font-weight: 400; }
  .cb-ref-vendeur { font-size: 11px; }
  /* Barre de commande : compacte, lisible, au-dessus des petits widgets */
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper { padding: 8px 10px 12px; gap: 8px; }
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper > * { min-height: 48px; font-size: 15px !important; padding: 0 10px !important; white-space: nowrap; }
  body.cb-fiche-velo .add-to-loa img, body.cb-fiche-velo .add-to-cart .shopping-cart { display: none; }
  body.cb-fiche-velo .add-to-loa span { margin-left: 0 !important; }
  /* Widgets flottants (messagerie, cookies, avis) remontés au-dessus de la barre */
  body.cb-fiche-velo #brevo-conversations, body.cb-fiche-velo #sib-conversations,
  body.cb-fiche-velo [id^="brevo-conversations"], body.cb-fiche-velo #tarteaucitronIcon,
  body.cb-fiche-velo .grw-badge, body.cb-fiche-velo [class*="google-reviews"] { bottom: 84px !important; }
}

/* v1.3.4 : téléphone — on retire encore du texte */
@media (max-width: 767px) {
  .cb-atouts, .cb-ref-vendeur .cb-ref, .product-tab-review-wrapper { display: none !important; }
  .cb-ouvrir-guide { margin-top: 10px; }
}

/* v1.3.5 : titre et prix comme sur la maquette */
body.cb-fiche-velo .product-page-right h1, body.cb-fiche-velo .product-page-right .h1 {
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif; font-size: 32px; font-weight: 800; line-height: 1.15; color: var(--cb-encre); text-transform: none; letter-spacing: 0; margin: 0 0 8px;
}
body.cb-fiche-velo .product-page-right .product-prices .current-price,
body.cb-fiche-velo .product-page-right .product-prices .current-price span {
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif; font-size: 30px; font-weight: 800; color: var(--cb-bleu);
}
body.cb-fiche-velo .product-page-right .product-prices .tax-shipping-delivery-label { font-size: 13px; color: var(--cb-gris); }

/* v1.3.5 : onglets centrés, en boutons bien visibles */
.cb-onglets-barre { justify-content: center; gap: 10px; border-bottom: 0; padding: 4px; }
.cb-onglet { min-width: 200px; padding: 13px 26px; margin: 0; border: 2px solid #c9d1dc; border-radius: 999px; background: #ffffff; color: var(--cb-encre); font-size: 16px; }
.cb-onglet:hover { border-color: var(--cb-bleu); color: var(--cb-bleu); }
.cb-onglet.actif { background: var(--cb-encre); border-color: var(--cb-encre); color: #ffffff; }
.cb-onglets { padding-top: 20px; border-top: 1px solid var(--cb-ligne); }

/* v1.3.5 : choix de forme de cadre / options en cases illustrées */
.cb-options-cases { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cb-option-case label { position: relative; display: flex; align-items: center; gap: 8px; min-height: 48px; margin: 0; padding: 6px 14px 6px 10px; border: 2px solid #c9d1dc; border-radius: 12px; background: #ffffff; cursor: pointer; font-size: 14px; font-weight: 700; color: var(--cb-encre); }
.cb-option-case input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.cb-option-case input:checked + .cb-option-icone + .cb-option-nom, .cb-option-case input:checked ~ .cb-option-nom { color: #ffffff; }
.cb-option-case label:has(input:checked) { background: var(--cb-encre); border-color: var(--cb-encre); color: #ffffff; }
.cb-option-case input:focus-visible ~ .cb-option-nom { outline: 3px solid var(--cb-bleu); outline-offset: 3px; }
.cb-option-icone { width: 40px; height: 24px; flex-shrink: 0; color: var(--cb-bleu); }
.cb-option-case label:has(input:checked) .cb-option-icone { color: #ffffff; }
.cb-option-titre { display: block; font-weight: 700; margin-bottom: 8px; }

/* v1.3.5 : guide sans grille + guide sur téléphone */
.cb-guide-sans { margin: 0; padding: 12px 14px; border-radius: 12px; background: #fff8e6; color: #5c4600; font-size: 14px; line-height: 1.5; }
@media (max-width: 767px) {
  .cb-onglets { border-top: 0; padding-top: 0; }
  .cb-guide-titre { font-size: 19px; }
  .cb-guide-recherche { padding: 12px; }
  .cb-guide-saisie { flex: 1 1 auto; }
  .cb-guide-saisie input { flex: 1 1 auto; width: auto; font-size: 20px; min-height: 50px; }
  .cb-guide-ligne { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 8px; padding: 10px 6px; }
  .cb-guide-dispo { grid-column: auto; text-align: right; font-size: 11px; }
  .cb-guide-cm { font-size: 12px; }
  body.cb-fiche-velo .product-page-right h1, body.cb-fiche-velo .product-page-right .h1 { font-size: 24px; }
  body.cb-fiche-velo .product-page-right .product-prices .current-price span { font-size: 24px; }
}

/* v1.7.1 : deux boutons clairs — l'action principale (panier ou demande) puis « Négocier » */
.cb-demande { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 22px; border-radius: 10px; font-weight: 800; font-size: 16px; }
.add-to-loa.cb-loa-second { background: #ffffff !important; color: var(--cb-bleu, #1f5fae) !important; border: 2px solid var(--cb-bleu, #1f5fae) !important; box-shadow: none !important; }
.add-to-loa.cb-loa-second span { color: inherit !important; }
@media (max-width: 767px) {
  body.cb-fiche-velo { padding-bottom: 150px; }
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper { flex-direction: column; align-items: stretch; gap: 8px; padding: 10px 12px calc(12px + env(safe-area-inset-bottom, 0px)); }
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper > * { flex: 0 0 auto !important; width: 100% !important; max-width: none !important; margin: 0 !important; min-height: 52px; font-size: 16px !important; white-space: normal; }
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper > .cb-order-button,
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper > .cb-demande,
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper > .add { order: 1; }
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper > .add-to-loa,
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper > :has(.add-to-loa) { order: 2; }
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper .add-to-cart,
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper .add-to-loa { width: 100% !important; min-height: 52px; }
  body.cb-fiche-velo #brevo-conversations, body.cb-fiche-velo #sib-conversations,
  body.cb-fiche-velo [id^="brevo-conversations"], body.cb-fiche-velo #tarteaucitronIcon,
  body.cb-fiche-velo .grw-badge, body.cb-fiche-velo [class*="google-reviews"] { bottom: 146px !important; }
}


/* ================= v1.8.0 ================= */

/* Cofidis : le bloc du module, mis en avant en jaune sous le prix */
.cb-cofidis-slot { margin: 8px 0 18px; }
.cb-cofidis-slot .cofidis-dynamic-badge-below-cart, .cb-cofidis-slot > #financing-module { border: 2px solid #f2c94c !important; background: #fff6d6 !important; border-radius: 14px !important; padding: 10px 14px !important; }
.cb-cofidis-slot strong, .cb-cofidis-slot b { font-weight: 800; }
.cb-cofidis-slot { font-size: 16px; }

/* En bref : « Libellé  valeur » */
.cb-en-bref { border: 0; background: var(--cb-fond); padding: 14px 18px; }
.cb-en-bref-titre { font-size: 11px; margin-bottom: 8px; }
.cb-en-bref-liste { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 18px; margin: 0; font-size: 15px; line-height: 1.35; }
.cb-en-bref-liste dt { font-weight: 400; color: var(--cb-gris); }
.cb-en-bref-liste dd { margin: 0; font-weight: 800; color: var(--cb-encre); }

/* Guide des tailles : bien visible sous les tailles */
.cb-ouvrir-guide { display: flex !important; align-items: center; gap: 12px; width: 100%; max-width: 520px; margin-top: 12px; padding: 12px 16px; border: 2px solid var(--cb-bleu); border-radius: 12px; background: #eaf2fb; color: var(--cb-bleu); text-align: left; }
.cb-ouvrir-guide[hidden] { display: none !important; }
.cb-ouvrir-guide:hover { background: #dce9f8; color: var(--cb-bleu); }
.cb-guide-textes { display: flex; flex-direction: column; gap: 2px; }
.cb-guide-textes strong { font-size: 15px; font-weight: 800; color: var(--cb-bleu); }
.cb-guide-textes span { font-size: 13px; font-weight: 500; color: var(--cb-texte); }

/* Sous les boutons : livraison gratuite et réf. vendeur discrète */
.cb-livraison { display: flex; align-items: center; gap: 10px; margin: 12px 0 0; font-size: 14px; color: var(--cb-texte); }
.cb-livraison svg { flex: 0 0 auto; color: var(--cb-vert); }
.cb-livraison strong { color: var(--cb-vert); }
.cb-ref-vendeur { margin: 6px 0 0; font-size: 11px; color: #6b7480; }
.cb-ref-vendeur .cb-ref { display: inline !important; }

/* « Négocier » : toujours en second ; « Je veux ce vélo » quand rien n'est disponible */
.add-to-loa.cb-loa-principal { background: var(--cb-bleu) !important; color: #ffffff !important; border: 0 !important; }
.add-to-loa.cb-loa-principal span { color: #ffffff !important; }

/* Bas de fiche : onglets centrés et bien visibles */
.cb-onglets { margin-top: 40px; }
.cb-onglets-barre { justify-content: center; gap: 8px; width: max-content; max-width: 100%; margin: 0 auto 28px; padding: 6px; border-radius: 16px; background: var(--cb-fond); }
.cb-onglet { min-width: 220px; padding: 14px 28px; border: 0; border-radius: 12px; background: transparent; color: var(--cb-encre); font-size: 17px; }
.cb-onglet:hover { color: var(--cb-bleu); }
.cb-onglet.actif { background: var(--cb-encre); color: #ffffff; }

/* Caractéristiques : l'essentiel à gauche, tout le reste en cartes à droite */
.cb-carac { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 32px; align-items: start; }
.cb-essentiel-bloc { padding: 22px; border-radius: 16px; background: var(--cb-encre); color: #ffffff; }
.cb-essentiel-titre { margin-bottom: 6px; font-size: 12px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; color: #9cc3ef; }
.cb-essentiel-liste { margin: 0; }
.cb-essentiel-ligne { display: flex; flex-direction: column; gap: 2px; padding: 11px 0; border-bottom: 1px solid #2a3442; }
.cb-essentiel-ligne:last-child { border-bottom: 0; }
.cb-essentiel-ligne dt { font-size: 13px; font-weight: 400; color: #b8c2cf; }
.cb-essentiel-ligne dd { margin: 0; font-size: 18px; font-weight: 800; color: #ffffff; line-height: 1.3; }
.cb-accordeon-carac .cb-accordeon-contenu { padding-top: 0; }
.cb-fiche-cartes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.cb-fiche-carte { padding: 16px 20px; border: 1px solid var(--cb-ligne); border-radius: 14px; background: #ffffff; }
.cb-fiche-carte-titre { display: flex; align-items: center; gap: 10px; padding-bottom: 6px; font-size: 15px; font-weight: 800; color: var(--cb-encre); }
.cb-fiche-icone { width: 10px; height: 10px; border-radius: 3px; background: var(--cb-bleu); }
.cb-fiche-carte dl { margin: 0; }
.cb-fiche-carte-ligne { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid #edf0f4; font-size: 14px; }
.cb-fiche-carte-ligne:last-child { border-bottom: 0; }
.cb-fiche-carte-ligne dt { font-weight: 400; color: var(--cb-gris); }
.cb-fiche-carte-ligne dd { margin: 0; font-weight: 600; color: var(--cb-encre); text-align: right; }
.cb-description { max-width: 820px; margin: 0 auto; font-size: 16px; line-height: 1.65; }

@media (max-width: 1100px) {
  .cb-fiche-cartes { grid-template-columns: 1fr; }
}

/* Téléphone */
@media (max-width: 767px) {
  .cb-cofidis-slot { margin: 6px 0 14px; }
  .cb-ouvrir-guide { max-width: none; }
  .cb-livraison { font-size: 13px; }
  .cb-ref-vendeur .cb-ref { display: inline !important; }
  .cb-carac { grid-template-columns: 1fr; gap: 12px; }
  .cb-essentiel-bloc { padding: 16px; }
  .cb-essentiel-liste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
  .cb-essentiel-ligne { border-bottom: 1px solid #2a3442 !important; }
  .cb-essentiel-ligne dd { font-size: 15px; }
  .cb-onglets .cb-accordeon { border-bottom: 0; margin-top: 10px; }
  .cb-onglets .cb-accordeon > summary { min-height: 58px; padding: 0 16px; border-radius: 12px; background: var(--cb-encre); color: #ffffff; }
  .cb-onglets .cb-accordeon > summary::after { color: #9cc3ef; }
  .cb-onglets .cb-accordeon-desc > summary { background: var(--cb-fond); color: var(--cb-encre); }
  .cb-onglets .cb-accordeon-desc > summary::after { color: var(--cb-bleu); }
  .cb-onglets .cb-accordeon[open] > .cb-accordeon-contenu { padding: 12px 0 8px; }
  .cb-fiche-carte { padding: 12px 14px; }
  /* Boutons : remontés, plus loin du bas de l'écran */
  body.cb-fiche-velo { padding-bottom: 170px; }
  body.cb-fiche-velo .product-add-to-cart .add-to-cart-bonwrapper { padding: 12px 14px calc(26px + env(safe-area-inset-bottom, 0px)) !important; }
}

/* ================= v1.8.1 ================= */
/* Boutons : texte normal (le thème mettait une majuscule à chaque mot) */
.cb-order-button, .cb-order-button *, .add-to-loa, .add-to-loa span { text-transform: none !important; }
/* Sous les boutons : seulement la note Google, discrète */
.cb-atouts { margin: 10px 0 0; }
.cb-atouts-liste { display: none !important; }
.cb-note-google { font-size: 12px; color: #6b7480; }
.cb-note-google strong { color: #2b3442; }
.cb-etoiles { color: #b8862b; letter-spacing: 1px; }
.cb-masque { display: none !important; }
/* Bas de fiche plus aéré : contenu centré, plus étroit, textes un cran plus petits */
.cb-onglets { max-width: 1120px; margin: 56px auto 0; padding: 0 24px; box-sizing: border-box; }
.cb-onglet { min-width: 180px; padding: 11px 24px; font-size: 15px; }
.cb-onglets-barre { margin-bottom: 24px; }
.cb-carac { grid-template-columns: 280px minmax(0, 1fr); gap: 24px; }
.cb-essentiel-bloc { padding: 18px 20px; }
.cb-essentiel-ligne { padding: 9px 0; }
.cb-essentiel-ligne dd { font-size: 16px; }
.cb-fiche-cartes { gap: 12px; }
.cb-fiche-carte { padding: 14px 16px; }
.cb-fiche-carte-titre { font-size: 14px; }
.cb-fiche-carte-ligne { font-size: 13px; padding: 7px 0; }
.cb-description { font-size: 15px; }
@media (max-width: 767px) {
  .cb-onglets { padding: 0; margin-top: 32px; }
  .cb-carac { grid-template-columns: 1fr; }
}

.cb-cofidis-slot.cb-vide { display: none !important; }

/* ================= v1.8.4 ================= */
/* Cofidis : une ligne sobre sous le prix */
.cb-cofidis-slot { margin: 6px 0 18px; }
.cb-cofidis-slot .cofidis-dynamic-badge-below-cart { border: 0 !important; background: none !important; padding: 0 !important; }
.cb-cofidis-slot .cofidis-dynamic-badge-below-cart.cb-cof-source { display: none !important; }
.cb-cof { display: flex; align-items: center; gap: 12px; max-width: 560px; padding: 10px 14px; border: 2px solid #f2c94c; border-radius: 12px; background: #fff6d6; }
.cb-cof-logo { flex: 0 0 auto; width: auto; height: 32px; max-width: 72px; object-fit: contain; border-radius: 6px; background: #ffffff; }
.cb-cof-txt { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cb-cof-main { font-size: 17px; line-height: 1.3; color: #0f1720; }
.cb-cof-main strong { font-weight: 800; }
.cb-cof-sub { font-size: 12px; line-height: 1.35; color: #5b4a12; }
.cb-cof-plus { flex: 0 0 auto; font-size: 13px; font-weight: 700; color: #6b4e00 !important; white-space: nowrap; }
.cb-cof-plus:hover { color: #3a2a00 !important; text-decoration: underline; }
/* Prix en promotion : le nouveau prix en avant, l'ancien plus petit et pâle */
.product-prices .current-price, .product-prices .current-price-value { display: inline-flex; align-items: baseline; flex-wrap: wrap; gap: 14px; }
.product-prices .regular-price { font-size: 0.55em !important; font-weight: 600 !important; color: #8fa7cc !important; text-decoration: line-through; text-decoration-thickness: 2px; }
.product-prices .discount, .product-prices .discount-percentage, .product-prices .discount-amount { display: none !important; }
@media (max-width: 767px) {
  .cb-cof { gap: 10px; padding: 9px 12px; }
  .cb-cof-logo { height: 28px; max-width: 60px; }
  .cb-cof-main { font-size: 15px; }
  .cb-cof-sub { font-size: 11px; }
  .cb-cof-plus { font-size: 12px; }
}

.cb-taille-case[data-cb-etat="fournisseur"] .cb-taille-etat { color: #2c6fb5; }

/* ================= v1.9.1 ================= */
/* Description : plus grande, aérée, agréable à lire */
.cb-description { max-width: 780px; margin: 8px auto 0; font-size: 17px !important; line-height: 1.75; color: #2b3442; text-align: left !important; }
.cb-description * { font-size: inherit !important; line-height: inherit; text-align: left !important; }
.cb-description p { margin: 0 0 18px; }
.cb-description h1, .cb-description h2, .cb-description h3, .cb-description h4, .cb-description h5, .cb-description h6, .cb-description .cb-desc-titre { display: block; margin: 18px 0 6px; font-size: inherit !important; font-weight: 800; color: #0f1720; }
.cb-description strong, .cb-description b { font-weight: 700; color: #0f1720; }
/* 1.9.17 — points sur une ligne, pastille bleue */
.cb-description ul, .cb-description ol { margin: 0 0 18px; padding: 0 !important; list-style: none !important; }
.cb-description li { position: relative; display: block; margin: 0 0 8px; padding-left: 20px; list-style: none !important; }
.cb-description li::before { content: ""; position: absolute; left: 2px; top: .68em; width: 7px; height: 7px; border-radius: 50%; background: var(--cb-bleu, #0b5cad); }
.cb-description li > p { display: inline; margin: 0; }
.cb-description li br { display: none; }
.cb-description img { max-width: 100%; height: auto; border-radius: 12px; }
@media (max-width: 767px) { .cb-description { font-size: 16px !important; line-height: 1.7; } }

/* ===== Vélo reconditionné : pastille au-dessus du titre ===== */
.cb-occ-pastille { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 10px; border-radius: 999px; background: #fdf0c4; color: #6b4a00; font-weight: 800; line-height: 1.2; }

/* ===== 1.9.9 — fiche occasion (maquette validée) =====
   Un seul jaune : Cofidis (+ la petite pastille). Prix simple, « En bref » au style des vélos neufs, magasin en cadre blanc. */
.cb-occ { display: flex; flex-direction: column; gap: 14px; margin: 4px 0 18px; }
.cb-occ-prix { display: flex; flex-direction: column; gap: 6px; }
.cb-occ-prix .product-prices { margin: 0; }
.cb-occ-neuf { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 14px; color: var(--cb-gris); }
.cb-occ-neuf s { color: inherit; }
.cb-occ-eco { padding: 3px 10px; border-radius: 999px; background: #e3f3e8; color: #1e6a35; font-weight: 700; }
.cb-occ .cb-cofidis-slot { margin: 0; }
.cb-occ .cb-en-bref { margin: 0; }
.cb-occ-magasin { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border: 1px solid var(--cb-ligne); border-radius: 14px; background: #ffffff; font-size: 15px; }
.cb-occ-magasin-txt { display: inline-flex; align-items: center; gap: 10px; color: var(--cb-encre); }
.cb-occ-magasin-txt svg { color: var(--cb-bleu); flex: 0 0 auto; }
.cb-occ-magasin-txt strong { font-size: 15px; }
.cb-occ-itineraire { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--cb-bleu); color: var(--cb-bleu); font-size: 14px; font-weight: 700; white-space: nowrap; }
.cb-occ-itineraire:hover { background: var(--cb-bleu); color: #ffffff; text-decoration: none; }
.cb-occ-pastille { padding: 7px 14px; font-size: 14px; }
/* « Pièce unique » : vert (le bloc de disponibilité du thème est plus prioritaire, d'où l'identifiant) */
#product-availability.cb-availability-card[data-cb-availability-kind="occasion"], [data-product-availability].cb-availability-card[data-cb-availability-kind="occasion"] { border-color: #2f9e5a; background: #e7f6ec; color: #145c2e !important; }

/* Onglet « Caractéristiques » des occasions : colonne centrée, petit texte, 4 petites cartes */
.cb-onglets-occasion .cb-onglet.actif { cursor: default; }
.cb-occ-carac { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
.cb-mot-vendeur { margin: 0; padding: 16px 20px; border: 1px solid var(--cb-ligne); border-radius: 14px; background: #f8fafc; }
.cb-mot-vendeur-titre { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 12px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--cb-bleu); }
.cb-mot-vendeur-texte { font-size: 15px; line-height: 1.55; color: var(--cb-encre); }
.cb-mot-vendeur-texte p { margin: 0 0 6px; }
.cb-mot-vendeur-texte > :last-child { margin-bottom: 0; }
.cb-mot-vendeur-texte h1, .cb-mot-vendeur-texte h2, .cb-mot-vendeur-texte h3, .cb-mot-vendeur-texte h4 { font-size: 15px; }
.cb-mot-vendeur-magasin { margin: 6px 0 0; font-size: 13px; color: var(--cb-gris); }
.cb-occ-cartes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.cb-occ-carte { padding: 14px 18px; border: 1px solid var(--cb-ligne); border-radius: 14px; background: #ffffff; }
.cb-occ-carte h3 { margin: 0 0 8px; font-size: 13px; font-weight: 800; color: var(--cb-encre); text-transform: none; letter-spacing: 0; }
.cb-occ-carte dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 16px; margin: 0; font-size: 14px; line-height: 1.4; }
.cb-occ-carte dt { font-weight: 400; color: var(--cb-gris); }
.cb-occ-carte dd { margin: 0; font-weight: 600; color: var(--cb-encre); text-align: right; overflow-wrap: anywhere; }
@media (max-width: 767px) {
  .cb-occ { gap: 12px; }
  .cb-occ-magasin { padding: 10px 12px; font-size: 14px; }
  .cb-occ-cartes { grid-template-columns: minmax(0, 1fr); }
  .cb-mot-vendeur { padding: 14px 16px; }
  .cb-mot-vendeur-texte { font-size: 14px; }
}

/* 1.9.10 — Occasion : pastille sur sa propre ligne au-dessus du titre ; titre long : il passe à la ligne au lieu d'être coupé */
.cb-occ-pastille { display: flex; width: max-content; max-width: 100%; }
h1.cb-titre-occasion { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere; min-width: 0; flex: 1 1 auto; }

/* ===== 1.9.13 — cadre photo (maquette validée), thème Bonpresta : neufs, occasions, accessoires ===== */
#product .images-container .product-cover { position: relative; padding: 0 !important; margin-bottom: 14px; border: 0; border-radius: 22px; overflow: hidden; background: #ece8e1; box-shadow: 0 1px 2px rgba(20, 20, 20, .06), 0 8px 24px rgba(20, 20, 20, .06); }
/* PrestaShop fabrique la photo en carré avec du blanc autour : recadrage 4:3, le blanc disparaît */
#product .images-container .product-cover img.js-qv-product-cover { display: block; width: 100% !important; height: auto !important; max-height: none !important; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
/* Produit plus haut que large (accessoire) : montré en entier sur fond blanc */
#product .images-container .product-cover.cb-photo-haute { background: #ffffff; border: 1px solid #e3e7ee; box-shadow: none; }
#product .images-container .product-cover.cb-photo-haute img.js-qv-product-cover { object-fit: contain; }
/* Étiquettes du thème (Nouveau, Promo…) posées sur la photo, en haut à gauche */
#product .images-container .product-cover .product-flags { position: absolute; z-index: 3; top: 16px; left: 16px; margin: 0; padding: 0; }
body#product.cb-fiche-occasion .product-cover .product-flag.cb-reconditionne, body#product.cb-fiche-occasion .product-cover .product-flags { display: none !important; }
body#product.cb-fiche-occasion .images-container .product-cover { border: 3px solid #f2c94c; box-shadow: none; }
.cb-photo-etiquette { position: absolute; z-index: 4; top: 0; left: 0; display: inline-flex; align-items: center; gap: 8px; padding: 11px 20px 11px 16px; border-bottom-right-radius: 18px; background: #f2c94c; color: #3d2b00; font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif; font-size: 16px; font-weight: 800; line-height: 1; pointer-events: none; }
.cb-photo-etiquette svg { flex: 0 0 auto; }
.cb-tampon { position: absolute; z-index: 4; top: 14px; right: 14px; width: clamp(64px, 14%, 100px); height: auto; transform: rotate(-12deg); opacity: .9; pointer-events: none; }
/* Vignettes sous la grande photo : même recadrage, coins arrondis, vignette choisie entourée */
#product .js-qv-product-images .thumb-container { padding: 0; }
#product .js-qv-product-images img.thumb { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border: 2px solid transparent; border-radius: 12px; background: #ece8e1; }
#product .js-qv-product-images img.thumb.selected { border-color: #0b5cad; }
body#product.cb-fiche-occasion .js-qv-product-images img.thumb.selected { border-color: #e0b52c; }
body.cb-fiche-occasion .cb-occ-pastille { display: none !important; }
@media (max-width: 767px) {
  #product .images-container .product-cover { border-radius: 18px; }
  .cb-photo-etiquette { padding: 8px 14px 8px 12px; font-size: 13px; border-bottom-right-radius: 14px; }
  .cb-photo-etiquette svg { width: 15px; height: 15px; }
}

/* ===== 1.9.16 — onglet Caractéristiques des vélos neufs (maquette C) ===== */
.cb-onglets:not(.cb-onglets-occasion) { max-width: 1068px; }
.cb-carac.cb-carac-v3 { display: block; max-width: 1020px; margin: 0 auto; }
.cb-essentiel-v3 { margin: 0 0 24px; padding: 18px 20px 20px; border-radius: 20px; background: #f2f6fd; border: 1px solid #dbe6f8; }
.cb-essentiel-v3-titre { margin-bottom: 12px; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #2f6fd6; }
.cb-essentiel-v3-tuiles { display: flex; gap: 12px; margin: 0; }
.cb-essentiel-v3-tuile { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 8px; padding: 16px 18px; border-radius: 16px; background: #ffffff; border: 1px solid #e1eaf8; box-shadow: 0 1px 2px rgba(47,111,214,.06); }
.cb-essentiel-v3-rond { width: 26px; height: 26px; border-radius: 50%; background: #e8f0fc; flex: none; }
.cb-essentiel-v3-tuile dt { margin: 0; font-size: 13px; font-weight: 400; color: #5a6474; }
.cb-essentiel-v3-tuile dd { margin: 2px 0 0; font-size: 20px; font-weight: 800; line-height: 1.25; color: #0f1720; overflow-wrap: anywhere; }
.cb-fiche-cartes.cb-fiche-cartes-v3 { display: block; columns: 3; column-gap: 16px; }
.cb-fiche-cartes-v3 .cb-fiche-carte { break-inside: avoid; display: inline-block; width: 100%; box-sizing: border-box; margin: 0 0 16px; border-radius: 16px; }
.cb-fiche-cartes-v3 .cb-fiche-carte-ligne dd { text-align: right; overflow-wrap: anywhere; }
@media (max-width: 1000px) { .cb-fiche-cartes.cb-fiche-cartes-v3 { columns: 2; } }
@media (max-width: 640px) {
  .cb-essentiel-v3 { padding: 14px; margin-bottom: 16px; border-radius: 18px; }
  .cb-essentiel-v3-titre { font-size: 11px; margin-bottom: 10px; }
  .cb-essentiel-v3-tuiles { flex-direction: column; gap: 8px; }
  .cb-essentiel-v3-tuile { flex-direction: row; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; }
  .cb-essentiel-v3-tuile dt { font-size: 12px; }
  .cb-essentiel-v3-tuile dd { font-size: 16px; }
  .cb-fiche-cartes.cb-fiche-cartes-v3 { columns: 1; }
  .cb-fiche-cartes-v3 .cb-fiche-carte { margin-bottom: 12px; padding: 14px 16px; }
  .cb-fiche-cartes-v3 .cb-fiche-carte-ligne { font-size: 13px; }
  .cb-fiche-cartes-v3 .cb-fiche-carte-ligne dt { flex: none; max-width: 42%; }
}

/* 1.9.17 — Rien sous « Livraison offerte » sur les vélos neufs : l'accroche, la liste et « Voir la description complète » sont retirées
   (les onglets Description et Caractéristiques suffisent). Les occasions gardent le lien vers le mot du vendeur. */
body.cb-fiche-velo:not(.cb-fiche-occasion) .cb-texte-court-zone,
body.cb-fiche-velo:not(.cb-fiche-occasion) .cb-lire-suite,
body#product.cb-fiche-velo:not(.cb-fiche-occasion) .product-information > .product-description-short,
body#product.cb-fiche-velo:not(.cb-fiche-occasion) [id^="product-description-short"] { display: none !important; }
