/* Cycles Blain — vitrine 1.0.0 : menu fixe, panneaux, pied de page. Sobre, clair, boutons bien identifiables. */
.cbv, .cbv-pied { --cbv-noir: #1d1d1f; --cbv-gris: #f5f5f7; --cbv-trait: #e3e3e8; --cbv-texte2: #6e6e73; --cbv-bleu: #0b5cad; --cbv-bleu-f: #08427c; --cbv-vert: #1e7a3c;
  font-family: Montserrat, "Helvetica Neue", Arial, sans-serif; color: var(--cbv-noir); -webkit-font-smoothing: antialiased; }
.cbv *, .cbv-pied * { box-sizing: border-box; }
.cbv a, .cbv-pied a { text-decoration: none; }
.cbv-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cbv button { font: inherit; cursor: pointer; }

/* ---- bande fixe ---- */
.cbv { position: sticky; top: 0; z-index: 1000; }
.cbv-barre { position: relative; z-index: 3; display: flex; align-items: center; gap: 24px; height: 72px; padding: 0 clamp(16px, 3vw, 44px); background: rgba(255, 255, 255, .94); border-bottom: 1px solid var(--cbv-trait); -webkit-backdrop-filter: saturate(180%) blur(14px); backdrop-filter: saturate(180%) blur(14px); }
.cbv-logo { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; color: var(--cbv-noir); }
.cbv-logo img { display: block; width: 52px; height: 52px; }
.cbv-slogan { display: flex; flex-direction: column; line-height: 1.2; }
.cbv-slogan strong { font-size: 13px; font-weight: 800; }
.cbv-slogan span { font-size: 12px; font-weight: 600; color: var(--cbv-texte2); }
.cbv-nav { display: flex; align-items: center; justify-content: center; gap: 10px; flex: 1 1 auto; min-width: 0; }
.cbv-bouton { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-width: 0; width: 210px; height: 50px; padding: 0 18px; border: 1px solid #dcdce1; border-radius: 999px; background: var(--cbv-gris); color: var(--cbv-noir); font-size: 16px; font-weight: 700; white-space: nowrap; transition: background .15s, border-color .15s, color .15s; }
.cbv-bouton:hover { background: #ebebf0; color: var(--cbv-noir); }
.cbv-bouton[aria-expanded="true"] { background: var(--cbv-noir); border-color: var(--cbv-noir); color: #ffffff; }
.cbv-bouton-bleu, .cbv-bouton-bleu:hover { background: var(--cbv-bleu); border-color: var(--cbv-bleu); color: #ffffff; }
.cbv-bouton-bleu:hover, .cbv-bouton-bleu[aria-expanded="true"] { background: var(--cbv-bleu-f); border-color: var(--cbv-bleu-f); color: #ffffff; }
.cbv-fleche { width: 7px; height: 7px; margin-left: 2px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); opacity: .55; transition: transform .2s; }
.cbv-bouton[aria-expanded="true"] .cbv-fleche { transform: rotate(-135deg) translateY(-1px); }
.cbv-ext { opacity: .6; }
.cbv-icones { display: flex; align-items: center; gap: 2px; flex: 0 0 auto; }
.cbv-cherche { display: flex; align-items: center; gap: 8px; width: 220px; height: 40px; margin-right: 6px; padding: 0 14px; border: 1px solid #d2d2d7; border-radius: 999px; background: #ffffff; color: var(--cbv-bleu); }
.cbv-cherche input { flex: 1 1 auto; min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: 14px; color: var(--cbv-noir); }
.cbv-cherche:focus-within { border-color: var(--cbv-bleu); box-shadow: 0 0 0 3px rgba(11, 92, 173, .15); }
.cbv-icone { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; color: var(--cbv-noir); }
.cbv-icone:hover { background: var(--cbv-gris); color: var(--cbv-noir); }
.cbv-panier-nb { position: absolute; top: 2px; right: 0; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--cbv-bleu); color: #ffffff; font-size: 10px; font-weight: 800; line-height: 17px; text-align: center; }
.cbv-burger { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: var(--cbv-noir); }

/* ---- panneaux ---- */
.cbv-panneau { position: absolute; left: 0; right: 0; top: 72px; z-index: 2; max-height: calc(100vh - 72px); overflow-y: auto; background: #ffffff; border-bottom: 1px solid var(--cbv-trait); box-shadow: 0 24px 40px rgba(0, 0, 0, .07); animation: cbv-ouvre .18s ease-out; }
@keyframes cbv-ouvre { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.cbv-voile { position: fixed; inset: 72px 0 0 0; z-index: 1; background: rgba(0, 0, 0, .18); }
.cbv-retour { display: none; }
.cbv-sur { display: block; margin-bottom: 8px; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--cbv-texte2); }
.cbv-tete { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 8px; }
.cbv-tete strong { font-size: 18px; font-weight: 800; }
.cbv-tete a, .cbv-liens-simples a, .cbv-tout { font-size: 14px; font-weight: 600; color: var(--cbv-bleu); }
.cbv-tete a:hover, .cbv-liens-simples a:hover, .cbv-tout:hover { color: var(--cbv-bleu-f); text-decoration: underline; }

/* Nous trouver */
.cbv-p-trouver { display: grid; grid-template-columns: 360px minmax(0, 1fr) 280px; gap: 40px; max-width: 1440px; margin: 0 auto; padding: 32px clamp(16px, 3vw, 44px) 38px; }
.cbv-carte-proche { display: flex; flex-direction: column; gap: 10px; padding: 24px; border-radius: 22px; background: var(--cbv-gris); }
.cbv-carte-proche:empty { display: none; }
.cbv-carte-proche h3 { margin: 0; font-size: 22px; font-weight: 800; color: var(--cbv-noir); }
.cbv-carte-proche .cbv-adr { font-size: 14px; color: var(--cbv-texte2); }
.cbv-boutons-mag { display: flex; gap: 10px; margin-top: 4px; }
.cbv-boutons-mag a { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 46px; border-radius: 999px; font-size: 15px; font-weight: 700; }
.cbv-appeler { background: var(--cbv-noir); color: #ffffff !important; }
.cbv-appeler:hover { background: #000000; }
.cbv-itineraire { border: 1px solid #c7c7cc; background: #ffffff; color: var(--cbv-noir) !important; }
.cbv-itineraire:hover { border-color: var(--cbv-noir); }
.cbv-localiser { align-self: flex-start; padding: 0; border: 0; background: none; font-size: 13px; font-weight: 600; color: var(--cbv-bleu); }
.cbv-liste-magasins ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 36px; margin: 0; padding: 0; list-style: none; }
.cbv-liste-magasins li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 11px 4px; border-bottom: 1px solid #ececf0; }
.cbv-mag-nom { font-size: 15px; font-weight: 700; color: var(--cbv-noir); }
.cbv-mag-nom:hover { color: var(--cbv-bleu); }
.cbv-mag-tel { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: var(--cbv-gris); color: var(--cbv-noir); font-size: 14px; font-weight: 700; white-space: nowrap; }
.cbv-mag-tel:hover { background: var(--cbv-noir); color: #ffffff; }
.cbv-grand-tel { font-size: 24px; font-weight: 800; color: var(--cbv-bleu) !important; letter-spacing: .5px; }
.cbv-grand-tel:hover { color: var(--cbv-bleu-f) !important; }
.cbv-statut { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.cbv-statut::before { content: ""; width: 7px; height: 7px; border-radius: 4px; background: currentColor; }
.cbv-statut:empty { display: none; }
.cbv-ouvert { color: var(--cbv-vert); }
.cbv-ferme { color: #9a3412; }
.cbv-cote { display: flex; flex-direction: column; gap: 14px; }
.cbv-plan { display: flex; flex-direction: column; justify-content: flex-end; gap: 10px; min-height: 170px; padding: 20px; border-radius: 22px; background: #e8edf3 linear-gradient(135deg, #eef2f7, #dde6f0); color: var(--cbv-noir); font-size: 15px; font-weight: 700; }
.cbv-plan svg { color: var(--cbv-bleu); }
.cbv-plan:hover { color: var(--cbv-bleu); }
.cbv-liens-simples { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.cbv-colonne { flex-direction: column; flex-wrap: nowrap; gap: 0; }
.cbv-colonne a { padding: 11px 0; border-bottom: 1px solid #ececf0; color: var(--cbv-noir); font-size: 15px; }

/* Acheter */
.cbv-p-acheter { display: grid; grid-template-columns: 230px minmax(0, 1fr) 280px; gap: 36px; max-width: 1440px; margin: 0 auto; padding: 30px clamp(16px, 3vw, 44px) 36px; }
.cbv-onglets { display: flex; flex-direction: column; gap: 8px; }
.cbv-onglet { display: flex; align-items: center; justify-content: space-between; height: 54px; padding: 0 18px; border: 0; border-radius: 16px; background: var(--cbv-gris); color: var(--cbv-noir); font-size: 16px; font-weight: 700; }
.cbv-onglet:hover { background: #ebebf0; }
.cbv-onglet.actif { background: var(--cbv-noir); color: #ffffff; }
.cbv-malin { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 1px solid #ececf0; }
.cbv-malin a { font-size: 14px; color: var(--cbv-noir); }
.cbv-malin a:hover { color: var(--cbv-bleu); }
.cbv-contenu { display: flex; flex-direction: column; gap: 18px; }
.cbv-contenu[hidden] { display: none; }
.cbv-moteurs { display: inline-flex; align-self: flex-start; gap: 4px; padding: 4px; border-radius: 999px; background: var(--cbv-gris); }
.cbv-moteurs button { padding: 9px 20px; border: 0; border-radius: 999px; background: transparent; color: var(--cbv-noir); font-size: 14px; font-weight: 600; }
.cbv-moteurs button.actif { background: #ffffff; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); font-weight: 700; }
.cbv-types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.cbv-type { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border-radius: 18px; background: var(--cbv-gris); }
.cbv-type-nom { font-size: 16px; font-weight: 800; color: var(--cbv-noir); }
.cbv-type-nom:hover { color: var(--cbv-bleu); }
.cbv-type-liens { font-size: 13px; line-height: 1.6; color: var(--cbv-texte2); }
.cbv-type-liens a { color: var(--cbv-texte2); }
.cbv-type-liens a:hover { color: var(--cbv-bleu); }
.cbv-contenu[data-moteur] .cbv-type-liens { display: none; }
.cbv-contenu[data-moteur="tous"] .cbv-type-liens[data-pour="tous"], .cbv-contenu[data-moteur="elec"] .cbv-type-liens[data-pour="elec"], .cbv-contenu[data-moteur="musc"] .cbv-type-liens[data-pour="musc"] { display: block; }
.cbv-marques { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 8px; }
.cbv-marques a { display: flex; align-items: center; justify-content: center; height: 48px; padding: 0 8px; border-radius: 14px; background: var(--cbv-gris); color: var(--cbv-noir); font-size: 12px; font-weight: 700; overflow: hidden; }
.cbv-marques a:hover { background: #ebebf0; }
.cbv-marques img { display: block; max-width: 86%; max-height: 26px; width: auto; height: auto; object-fit: contain; }
.cbv-marques a span { display: none; }
.cbv-marques a.cbv-sans-logo span { display: inline; }
.cbv-marques a.cbv-sans-logo img { display: none; }
.cbv-colonnes-liens { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cbv-colonnes-liens > div, .cbv-arbre > div { display: flex; flex-direction: column; gap: 6px; }
.cbv-colonnes-liens a, .cbv-arbre a { font-size: 14px; color: var(--cbv-noir); }
.cbv-colonnes-liens a:hover, .cbv-arbre a:hover { color: var(--cbv-bleu); }
.cbv-arbre { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.cbv-arbre-titre { font-weight: 800; }
.cbv-trouver { display: flex; flex-direction: column; gap: 10px; padding: 20px; border-radius: 22px; background: var(--cbv-gris); }
.cbv-trouver strong { font-size: 16px; }
.cbv-trouver span { font-size: 13px; color: var(--cbv-texte2); }
.cbv-trouver input { height: 44px; padding: 0 16px; border: 1px solid #d2d2d7; border-radius: 999px; background: #ffffff; font: inherit; font-size: 14px; }
.cbv-trouver input:focus { outline: 0; border-color: var(--cbv-bleu); box-shadow: 0 0 0 3px rgba(11, 92, 173, .15); }
.cbv-bons-plans { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 1px solid #f2d27a; border-radius: 22px; background: #fff6d6; color: #3a2a00; }
.cbv-bons-plans span { font-size: 13px; color: #5b4a12; }

/* Atelier */
.cbv-p-atelier { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) 300px; gap: 24px; max-width: 1440px; margin: 0 auto; padding: 30px clamp(16px, 3vw, 44px) 36px; }
.cbv-grande-carte { display: flex; flex-direction: column; gap: 12px; padding: 26px; border-radius: 22px; background: var(--cbv-gris); }
.cbv-grande-carte strong { font-size: 22px; font-weight: 800; }
.cbv-grande-carte > span:not(.cbv-carre) { font-size: 14px; line-height: 1.5; color: var(--cbv-texte2); }
.cbv-carre { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: #ffffff; color: var(--cbv-bleu); }
.cbv-noire { background: var(--cbv-noir); color: #ffffff; }
.cbv-noire > span:not(.cbv-carre) { color: #c7c7cc !important; }
.cbv-noire .cbv-carre { background: #2c2c30; color: #9cc3ef; }
.cbv-action-bleue, .cbv-action-blanche { align-self: flex-start; display: inline-flex; align-items: center; height: 46px; margin-top: 4px; padding: 0 24px; border-radius: 999px; font-size: 15px; font-weight: 700; }
.cbv-action-bleue { background: var(--cbv-bleu); color: #ffffff !important; }
.cbv-action-bleue:hover { background: var(--cbv-bleu-f); }
.cbv-action-blanche { background: #ffffff; color: var(--cbv-noir) !important; }
.cbv-action-blanche:hover { background: #e8e8ed; }

/* ---- tiroir téléphone ---- */
.cbv-tiroir { display: none; }

@media (max-width: 1280px) {
  .cbv-bouton { width: auto; font-size: 15px; }
}
@media (max-width: 1180px) {
  .cbv-slogan { display: none; }
  .cbv-bouton { width: auto; }
  .cbv-cherche { width: 170px; }
}
@media (max-width: 991px) {
  .cbv-barre { height: 60px; gap: 8px; }
  .cbv-logo img { width: 42px; height: 42px; }
  .cbv-slogan { display: flex; }
  .cbv-slogan strong { font-size: 11px; }
  .cbv-slogan span { font-size: 10px; }
  .cbv-nav, .cbv-cherche, .cbv-masque-mobile { display: none; }
  .cbv-burger { display: inline-flex; }
  .cbv-logo { margin-right: auto; }
  .cbv.cbv-tiroir-ouvert .cbv-tiroir { display: block; position: fixed; inset: 60px 0 0 0; z-index: 2; overflow-y: auto; padding: 16px; background: #ffffff; }
  .cbv-tiroir-boutons { display: flex; flex-direction: column; gap: 10px; }
  .cbv-pilule { display: flex; align-items: center; gap: 14px; width: 100%; height: 60px; padding: 0 20px; border: 0; border-radius: 999px; background: var(--cbv-gris); color: var(--cbv-noir) !important; font-size: 17px; font-weight: 700; text-align: left; }
  .cbv-pilule span:first-of-type { flex: 1 1 auto; }
  .cbv-pilule span:last-child { opacity: .5; }
  .cbv-pilule-bleue { background: var(--cbv-bleu); color: #ffffff !important; }
  .cbv-proche { margin-top: 14px; }
  .cbv-proche .cbv-carte-proche { padding: 18px; }
  .cbv-panneau { position: fixed; inset: 60px 0 0 0; top: 60px; max-height: none; z-index: 3; box-shadow: none; animation: none; }
  .cbv-voile { display: none !important; }
  .cbv-retour { display: block; margin: 12px 16px 0; padding: 8px 0; border: 0; background: none; font-size: 15px; font-weight: 700; color: var(--cbv-bleu); }
  .cbv-p-trouver, .cbv-p-acheter, .cbv-p-atelier { grid-template-columns: 1fr; gap: 20px; padding: 12px 16px 32px; }
  .cbv-liste-magasins ul { grid-template-columns: 1fr; }
  .cbv-liste-magasins li { grid-template-columns: minmax(0, 1fr) auto; }
  .cbv-liste-magasins li .cbv-statut { grid-column: 1 / -1; }
  .cbv-types, .cbv-colonnes-liens, .cbv-arbre { grid-template-columns: 1fr; }
  .cbv-marques { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cbv-onglets { flex-direction: row; flex-wrap: wrap; }
  .cbv-onglet { flex: 1 1 30%; height: 46px; padding: 0 12px; font-size: 14px; justify-content: center; }
  .cbv-onglet span { display: none; }
  .cbv-malin { order: 9; width: 100%; }
  html.cbv-bloque, html.cbv-bloque body { overflow: hidden; }
}

/* ---- pied de page ---- */

/* ================= 1.0.2 ================= */
/* Boutons du haut : pastilles blanches en relief, icône dans un rond coloré */
.cbv-nav { gap: 12px; }
.cbv-bouton { width: auto; min-width: 196px; height: 54px; padding: 0 22px 0 8px; gap: 12px; justify-content: flex-start; border: 1px solid rgba(0, 0, 0, .04); background: #ffffff; box-shadow: 0 1px 2px rgba(15, 23, 32, .06), 0 6px 18px rgba(15, 23, 32, .08); font-size: 16px; transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease; }
.cbv-bouton:hover { transform: translateY(-2px); background: #ffffff; box-shadow: 0 2px 4px rgba(15, 23, 32, .08), 0 12px 26px rgba(15, 23, 32, .14); }
.cbv-pastille { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; background: #eaf2fb; color: var(--cbv-bleu); transition: background .15s, color .15s; }
.cbv-bouton:hover .cbv-pastille { background: var(--cbv-bleu); color: #ffffff; }
.cbv-bouton[aria-expanded="true"] { transform: none; background: var(--cbv-noir); color: #ffffff; box-shadow: 0 6px 18px rgba(15, 23, 32, .25); }
.cbv-bouton[aria-expanded="true"] .cbv-pastille { background: #2c2c30; color: #9cc3ef; }
.cbv-bouton .cbv-fleche { margin-left: auto; }
.cbv-bouton .cbv-ext { margin-left: auto; }
.cbv-bouton-bleu, .cbv-bouton-bleu:hover, .cbv-bouton-bleu[aria-expanded="true"] { border-color: transparent; background: linear-gradient(135deg, #1a78dc, #0b5cad); color: #ffffff; box-shadow: 0 2px 4px rgba(11, 92, 173, .2), 0 8px 22px rgba(11, 92, 173, .35); }
.cbv-bouton-bleu:hover { box-shadow: 0 2px 6px rgba(11, 92, 173, .25), 0 14px 30px rgba(11, 92, 173, .45); }
.cbv-bouton-bleu .cbv-pastille, .cbv-bouton-bleu:hover .cbv-pastille { background: rgba(255, 255, 255, .2); color: #ffffff; }
.cbv-pilule .cbv-pastille { width: 40px; height: 40px; }
.cbv-pilule-bleue .cbv-pastille { background: rgba(255, 255, 255, .2); color: #ffffff; }
.cbv-pilule { padding: 0 20px 0 10px; background: #ffffff; box-shadow: 0 1px 2px rgba(15, 23, 32, .06), 0 6px 18px rgba(15, 23, 32, .08); }
.cbv-pilule-bleue { background: linear-gradient(135deg, #1a78dc, #0b5cad); }

/* Nous trouver : cartes simples */
.cbv-p-trouver { display: block; }
.cbv-p-trouver .cbv-tete { margin-bottom: 16px; }
.cbv-tete-liens { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.cbv-magasins { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.cbv-magasin { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 16px 18px; border-radius: 18px; background: var(--cbv-gris); color: var(--cbv-noir); transition: background .15s, transform .15s; }
.cbv-magasin:hover { background: #ebebf0; transform: translateY(-2px); color: var(--cbv-noir); }
.cbv-magasin-nom { font-size: 16px; font-weight: 800; }
.cbv-magasin-adr { font-size: 13px; line-height: 1.4; color: var(--cbv-texte2); }
.cbv-magasin-tel { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 6px; font-size: 14px; font-weight: 700; color: var(--cbv-bleu); }
@media (max-width: 1280px) { .cbv-bouton { min-width: 0; padding-right: 16px; font-size: 15px; } .cbv-magasins { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .cbv-bouton .cbv-fleche, .cbv-bouton .cbv-ext { display: none; } }
@media (max-width: 991px) { .cbv-magasins { grid-template-columns: 1fr; } .cbv-magasin { flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 12px; } .cbv-magasin-tel { margin-left: auto; margin-top: 0; padding-top: 0; } .cbv-magasin-adr { order: 3; width: 100%; } }

/* ================= 1.1.0 : en-tête sur deux étages, page d’accueil ================= */
.cbv, .cbv-accueil { --cbv-cuivre: #b5651d; --cbv-sable: #f6efe4; --cbv-creme: #fbf6ee; --cbv-nuit: #1c1a17; --cbv-texte2: #6f6a63; }
.cbv-barre { height: 112px; padding: 0 clamp(16px, 4vw, 56px); border-bottom: 0; }
.cbv-logo img { width: 84px; height: 84px; }
.cbv-slogan strong { font-size: 26px; font-weight: 800; letter-spacing: -.3px; }
.cbv-slogan span { font-size: 15px; }
.cbv-logo { margin-right: auto; }
.cbv-icone { flex-direction: column; gap: 3px; width: 72px; height: auto; padding: 6px 0; border-radius: 14px; }
.cbv-icone svg { width: 26px; height: 26px; }
.cbv-icone-lib { font-size: 12px; font-weight: 700; }
.cbv-panier-nb { top: 0; right: 12px; }
.cbv-rangee { position: relative; z-index: 3; display: flex; justify-content: center; padding: 10px clamp(16px, 4vw, 56px) 26px; background: rgba(255, 255, 255, .96); border-bottom: 1px solid #ebe6de; transition: padding .2s; }
.cbv-rangee .cbv-nav { gap: 16px; }
.cbv-rangee .cbv-bouton { height: 60px; min-width: 210px; font-size: 17px; }
.cbv-rangee .cbv-pastille { width: 44px; height: 44px; }
.cbv-panneau { top: 100%; }
.cbv-voile { position: absolute; inset: 100% 0 auto 0; height: 100vh; }
.cbv.cbv-compact .cbv-barre { height: 72px; }
.cbv.cbv-compact .cbv-logo img { width: 52px; height: 52px; }
.cbv.cbv-compact .cbv-slogan span { display: none; }
.cbv.cbv-compact .cbv-slogan strong { font-size: 20px; }
.cbv.cbv-compact .cbv-icone-lib { display: none; }
.cbv.cbv-compact .cbv-rangee { padding: 0 clamp(16px, 4vw, 56px) 12px; }
.cbv.cbv-compact .cbv-rangee .cbv-bouton { height: 48px; font-size: 15px; }
.cbv.cbv-compact .cbv-rangee .cbv-pastille { width: 34px; height: 34px; }
@media (max-width: 1280px) { .cbv-rangee .cbv-bouton { min-width: 0; } }
@media (max-width: 991px) {
  .cbv-barre { height: 64px; }
  .cbv-logo img { width: 46px; height: 46px; }
  .cbv-slogan strong { font-size: 16px; }
  .cbv-slogan span { font-size: 11px; }
  .cbv-rangee { display: none; }
  .cbv-icone { width: 44px; }
  .cbv-icone-lib { display: none; }
  .cbv-panneau, .cbv.cbv-tiroir-ouvert .cbv-tiroir { top: 64px; inset: 64px 0 0 0; }
}

/* ---- page d’accueil ---- */
.cbv-accueil { display: block; font-family: Montserrat, "Helvetica Neue", Arial, sans-serif; color: #1d1d1f; -webkit-font-smoothing: antialiased; }
.cbv-accueil * { box-sizing: border-box; }
.cbv-accueil a { text-decoration: none; }
.cbv-accueil h2 { margin: 0; font-size: 32px; font-weight: 800; color: #1d1d1f; }
.cba-sur { display: block; margin-bottom: 4px; font-size: 13px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--cbv-bleu, #0b5cad); }
.cba-hero { display: grid; grid-template-columns: minmax(0, 600px) minmax(0, 1fr); gap: 40px; align-items: center; min-height: 600px; margin: 8px clamp(16px, 4vw, 56px) 0; padding: 40px clamp(20px, 4vw, 56px); border-radius: 36px; background: radial-gradient(circle at 78% 52%, #ffffff 0%, var(--cbv-creme) 38%, #f3e9db 100%); }
.cba-hero-texte { display: flex; flex-direction: column; gap: 20px; }
.cba-badge { display: inline-flex; align-self: flex-start; align-items: center; gap: 8px; height: 32px; padding: 0 14px; border-radius: 999px; background: #ffffff; font-size: 13px; font-weight: 700; color: #8a5a1c; }
.cba-titre { margin: 0; font-size: clamp(38px, 4.4vw, 58px); line-height: 1.02; font-weight: 800; letter-spacing: -.5px; color: #1d1d1f; }
.cba-titre span { color: var(--cbv-cuivre); }
.cba-texte { margin: 0; font-size: 18px; line-height: 1.5; color: var(--cbv-texte2); }
.cba-cherche { display: flex; align-items: center; gap: 12px; height: 72px; padding: 0 10px 0 26px; border: 1px solid #e6e0d6; border-radius: 999px; background: #ffffff; box-shadow: 0 14px 40px rgba(15, 23, 32, .10); }
.cba-cherche:focus-within { border-color: var(--cbv-bleu, #0b5cad); }
.cba-cherche input { flex: 1 1 auto; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; font: inherit; font-size: 19px; color: #1d1d1f; }
.cba-cherche button { flex: 0 0 auto; height: 54px; padding: 0 28px; border: 0; border-radius: 999px; background: linear-gradient(135deg, #1a78dc, #0b5cad); color: #ffffff; font: inherit; font-size: 17px; font-weight: 800; cursor: pointer; }
.cba-exemples { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cba-exemples > span { width: 100%; font-size: 13px; color: var(--cbv-texte2); }
.cba-exemples a { display: inline-flex; align-items: center; min-height: 38px; padding: 6px 16px; border: 1px solid #ecdcc6; border-radius: 999px; background: #ffffff; font-size: 14px; color: #1d1d1f; }
.cba-exemples a:hover { border-color: var(--cbv-cuivre); color: var(--cbv-cuivre); }
.cba-velos { position: relative; height: 540px; }
.cba-slide { position: absolute; inset: 0 0 24px; display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateX(40px); transition: opacity .7s ease, transform .9s cubic-bezier(.2, .8, .2, 1); pointer-events: none; }
.cba-slide.actif { opacity: 1; transform: none; pointer-events: auto; }
.cba-slide.sort { opacity: 0; transform: translateX(-30px); }
.cba-slide img { display: block; max-width: 100%; max-height: 500px; width: auto; height: auto; filter: drop-shadow(0 28px 26px rgba(80, 50, 20, .18)); }
.cba-etiquette { position: absolute; right: 16px; bottom: 16px; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; padding: 12px 16px; border-radius: 16px; background: rgba(255, 255, 255, .94); box-shadow: 0 6px 20px rgba(15, 23, 32, .08); color: #1d1d1f; }
.cba-etiquette span { font-size: 13px; font-weight: 700; color: #1e7a3c; }
.cba-points { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); display: flex; gap: 6px; }
.cba-points span { width: 8px; height: 8px; border-radius: 4px; background: #d8cfc2; transition: width .3s, background .3s; }
.cba-points span.actif { width: 22px; background: #1d1d1f; }
.cba-types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 72px clamp(16px, 4vw, 56px) 0; }
.cba-type { display: flex; align-items: center; gap: 18px; padding: 24px 26px; border: 1px solid #ebe3d6; border-radius: 22px; background: #ffffff; color: #1d1d1f; transition: transform .15s, box-shadow .15s; }
.cba-type:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(60, 40, 20, .08); color: #1d1d1f; }
.cba-type-ic { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 18px; background-color: var(--cbv-sable); background-repeat: no-repeat; background-position: center; background-size: 34px; }
.cba-type-txt { display: flex; flex-direction: column; gap: 4px; }
.cba-type-txt strong { font-size: 20px; font-weight: 800; }
.cba-type-txt span { font-size: 14px; color: var(--cbv-texte2); }
.cba-section { margin: 100px clamp(16px, 4vw, 56px) 0; }
.cba-tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.cba-grand { font-size: 40px !important; }
.cba-bouton-noir { display: inline-flex; align-items: center; height: 46px; padding: 0 22px; border-radius: 999px; background: #1d1d1f; color: #ffffff !important; font-size: 15px; font-weight: 700; white-space: nowrap; }
.cba-bouton-noir:hover { background: #000000; }
.cba-lien { font-size: 15px; font-weight: 700; color: var(--cbv-bleu, #0b5cad); white-space: nowrap; }
.cba-velos-semaine { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cba-velo { display: flex; flex-direction: column; gap: 8px; padding: 16px; border: 1px solid #e6e0d6; border-radius: 20px; background: #ffffff; color: #1d1d1f; transition: transform .15s, box-shadow .15s; }
.cba-velo:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(60, 40, 20, .08); color: #1d1d1f; }
.cba-dispo { align-self: flex-start; padding: 4px 10px; border-radius: 999px; background: #eaf6ee; color: #1e7a3c; font-size: 12px; font-weight: 700; }
.cba-dispo-commande { background: #eaf2fb; color: #0b5cad; }
.cba-velo-img { display: flex; align-items: center; justify-content: center; height: 180px; }
.cba-velo-img img { max-width: 100%; max-height: 180px; width: auto; height: auto; }
.cba-velo strong { font-size: 15px; line-height: 1.3; }
.cba-bref { font-size: 12px; color: var(--cbv-texte2); }
.cba-prix { display: flex; align-items: baseline; gap: 8px; margin-top: auto; }
.cba-prix strong { font-size: 18px; color: var(--cbv-bleu, #0b5cad); }
.cba-prix s { font-size: 13px; color: #8fa7cc; }
.cba-famille { margin: 110px clamp(16px, 4vw, 56px) 0; padding: 56px clamp(20px, 4vw, 56px) 64px; border-radius: 36px; background: var(--cbv-nuit); color: #f6f1e8; }
.cba-chiffres { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); padding-bottom: 44px; margin-bottom: 48px; border-bottom: 1px solid #3a352e; }
.cba-chiffres > span { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 0 12px; text-align: center; }
.cba-chiffres strong { font-size: 34px; font-weight: 800; line-height: 1; color: #ffffff; }
.cba-chiffres span span { font-size: 14px; color: #d9d0c2; }
.cba-famille-corps { display: grid; grid-template-columns: minmax(0, 600px) minmax(0, 1fr); gap: 64px; align-items: center; }
.cba-famille-photo { display: block; width: 100%; height: 480px; object-fit: cover; border-radius: 24px; }
.cba-famille-texte { display: flex; flex-direction: column; gap: 16px; }
.cba-famille-texte h2 { font-size: 44px; line-height: 1.06; color: #ffffff !important; }
.cba-famille-texte p { margin: 0; font-size: 17px; line-height: 1.6; color: #d9d0c2; }
.cba-sur-clair { color: #a89f91; padding-top: 6px; }
.cba-equipe { display: flex; flex-direction: column; gap: 10px; }
.cba-perso { display: flex; gap: 14px; padding: 16px; border-radius: 20px; background: #2a2621; transition: box-shadow .4s, transform .4s; }
.cba-perso.actif { box-shadow: 0 0 0 1px #f2c94c; transform: translateX(4px); }
.cba-perso img, .cba-ini { flex: 0 0 auto; width: 58px; height: 58px; border-radius: 50%; object-fit: cover; }
.cba-ini { display: flex; align-items: center; justify-content: center; background: #c9b79c; font-size: 17px; font-weight: 800; color: #1c1a17; }
.cba-perso > span { display: flex; flex-direction: column; gap: 3px; }
.cba-perso strong { font-size: 15px; color: #ffffff; }
.cba-role { font-size: 12px; font-weight: 700; color: #f2c94c; }
.cba-mot { font-size: 13px; line-height: 1.45; color: #d9d0c2; }
.cba-lien-or { font-size: 15px; font-weight: 700; color: #f2c94c !important; }
.cba-conseils { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cba-conseil { display: flex; flex-direction: column; gap: 10px; color: #1d1d1f; }
.cba-conseil-img { display: block; height: 190px; border-radius: 20px; background: var(--cbv-sable); overflow: hidden; }
.cba-conseil-img img { width: 100%; height: 100%; object-fit: cover; }
.cba-conseil strong { font-size: 17px; line-height: 1.3; }
.cba-conseil:hover strong { color: var(--cbv-cuivre); }
.cba-seo { max-width: 1100px; margin: 100px auto 0; padding: 0 clamp(16px, 4vw, 56px); color: var(--cbv-texte2); }
.cba-seo h1 { margin: 0 0 18px; font-size: 20px; line-height: 1.35; font-weight: 800; color: #1d1d1f; }
.cba-seo h2 { font-size: 17px !important; margin: 0 0 8px !important; }
.cba-seo h3 { margin: 18px 0 6px; font-size: 15px; font-weight: 800; color: #1d1d1f; }
.cba-seo p { margin: 0 0 10px; font-size: 14px; line-height: 1.65; }
.cba-seo a { color: var(--cbv-bleu, #0b5cad); }
@media (max-width: 1100px) {
  .cba-velos-semaine, .cba-conseils { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cba-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cba-famille-corps { grid-template-columns: 1fr; }
  .cba-chiffres { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 24px; }
}
@media (max-width: 767px) {
  .cba-hero { grid-template-columns: 1fr; min-height: 0; padding: 28px 18px; border-radius: 26px; }
  .cba-velos { height: 280px; order: -1; }
  .cba-slide img { max-height: 250px; }
  .cba-etiquette { display: none; }
  .cba-cherche { height: 60px; padding-left: 18px; }
  .cba-cherche input { font-size: 16px; }
  .cba-cherche button { height: 46px; padding: 0 18px; font-size: 15px; }
  .cba-types, .cba-velos-semaine { grid-template-columns: 1fr 1fr; gap: 10px; }
  .cba-type { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; }
  .cba-type-txt span { display: none; }
  .cba-section { margin-top: 64px; }
  .cba-tete { flex-direction: column; align-items: flex-start; }
  .cba-famille { padding: 32px 18px; border-radius: 26px; }
  .cba-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cba-famille-photo { height: 260px; }
  .cba-famille-texte h2 { font-size: 32px; }
  .cba-conseils { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .cba-slide { transition: none; } }
.cba-ic-route{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23b5651d%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2217%22%20r%3D%224%22/%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2217%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22M6%2017l5-8h6l1%208M11%209l-1-3H8M17%209l1-3h2%22/%3E%3C/svg%3E")}
.cba-ic-gravel{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23b5651d%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2216%22%20r%3D%224%22/%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2216%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22M6%2016l5-8h6l1%208M11%208l-1-3H8M3%2022h4M10%2022h4M17%2022h4%22/%3E%3C/svg%3E")}
.cba-ic-vtt{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23b5651d%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2217%22%20r%3D%224%22/%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2217%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22M6%2017l5-8h5l2%208M11%209l-1-3H8M4%206l3-3%202%202%202-2%203%203%22/%3E%3C/svg%3E")}
.cba-ic-ville{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23b5651d%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2217%22%20r%3D%224%22/%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2217%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22M6%2017l4-7h7l1%207M10%2010l-1-3H7%22/%3E%3Crect%20x%3D%2215%22%20y%3D%226%22%20width%3D%225%22%20height%3D%224%22%20rx%3D%221%22/%3E%3C/svg%3E")}
.cba-ic-enfant{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23b5651d%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%227%22%20cy%3D%2218%22%20r%3D%223%22/%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%2218%22%20r%3D%223%22/%3E%3Cpath%20d%3D%22M7%2018l3-5h5l2%205M10%2013l-1-2H8M15%2013l1-3h2%22/%3E%3C/svg%3E")}
.cba-ic-cargo{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23b5651d%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%225%22%20cy%3D%2218%22%20r%3D%223%22/%3E%3Ccircle%20cx%3D%2219%22%20cy%3D%2218%22%20r%3D%223%22/%3E%3Cpath%20d%3D%22M5%2018l3-6h6l5%206M14%2012l1-4h2%22/%3E%3Crect%20x%3D%222%22%20y%3D%229%22%20width%3D%227%22%20height%3D%225%22%20rx%3D%221%22/%3E%3C/svg%3E")}

/* ================= 1.1.1 ================= */
/* Plus de recul : contenu centré, marges latérales plus larges */
.cbv-accueil { max-width: 1440px; margin: 0 auto; padding: 0 clamp(16px, 5vw, 96px); }
.cba-hero, .cba-types, .cba-section, .cba-famille { margin-left: 0; margin-right: 0; }
.cba-seo { padding: 0; }
/* Vélos de la semaine : 5 par ligne, cartes plus compactes */
.cba-velos-semaine { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.cba-velo { padding: 12px; gap: 6px; border-radius: 18px; }
.cba-velo-img { height: 130px; }
.cba-velo-img img { max-height: 130px; }
.cba-velo strong { font-size: 14px; }
.cba-velo .cba-prix strong { font-size: 16px; }
.cba-dispo { font-size: 11px; padding: 3px 9px; }
@media (max-width: 1280px) { .cba-velos-semaine { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .cba-velos-semaine { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .cba-velos-semaine { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* En-tête : pas de saut au défilement (la hauteur ne change plus brutalement) */
.cbv-barre, .cbv-rangee, .cbv-logo img { transition: height .25s ease, padding .25s ease, width .25s ease; }

/* ================= 1.1.2 ================= */
/* H1 : discret, juste au-dessus de la recherche (même texte qu'avant, pour Google) */
.cba-h1 { margin: 4px 0 -8px !important; padding: 0; font-size: 13px !important; line-height: 1.45 !important; font-weight: 500 !important; letter-spacing: 0; text-transform: none; color: var(--cbv-texte2) !important; }
/* Nos conseils : seuls quelques guides sont affichés à la fois */
.cba-conseil-cache { display: none !important; }
.cba-conseil-img:empty { background: var(--cbv-sable) linear-gradient(135deg, #f4ebdd, #e9dcc8); }
/* Texte de référencement : plus sobre, lecture confortable, repliable */
.cba-seo { max-width: 860px; margin: 96px auto 0; padding: 40px 0 0; border-top: 1px solid #ebe3d6; }
.cba-seo-texte { position: relative; }
.cba-seo-texte h2 { margin: 0 0 12px !important; font-size: 22px !important; line-height: 1.25; font-weight: 800; color: #1d1d1f; }
.cba-seo-texte h3 { margin: 22px 0 6px; font-size: 15px; }
.cba-seo-texte p { font-size: 14px; line-height: 1.7; color: var(--cbv-texte2); }
.cba-seo-texte strong { font-weight: 600; color: #1d1d1f; }
.cba-seo-texte a { color: var(--cbv-texte2); text-decoration: underline; text-decoration-color: #d8cfc2; text-underline-offset: 2px; }
.cba-seo-texte a:hover { color: var(--cbv-cuivre); text-decoration-color: currentColor; }
.cba-replie { max-height: 150px; overflow: hidden; -webkit-mask-image: linear-gradient(#000 45%, transparent); mask-image: linear-gradient(#000 45%, transparent); }
.cba-seo-plus { display: inline-flex; align-items: center; height: 40px; margin-top: 12px; padding: 0 18px; border: 1px solid #d8cfc2; border-radius: 999px; background: #ffffff; color: #1d1d1f; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.cba-seo-plus:hover { border-color: var(--cbv-cuivre); color: var(--cbv-cuivre); }
.cba-seo-plus:focus-visible { outline: 2px solid var(--cbv-bleu, #0b5cad); outline-offset: 2px; }
/* Bandeau d'aperçu (seulement avant activation) */
.cbv-apercu { position: fixed; right: 16px; bottom: 16px; z-index: 9999; display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 999px; background: #1c1a17; color: #f6f1e8; font: 600 13px/1 Montserrat, "Helvetica Neue", Arial, sans-serif; box-shadow: 0 8px 24px rgba(0, 0, 0, .2); }
.cbv-apercu a { color: #f2c94c; text-decoration: underline; }
@media (max-width: 767px) { .cba-seo { margin-top: 64px; padding-top: 28px; } .cbv-apercu { left: 12px; right: 12px; justify-content: space-between; border-radius: 14px; } }

/* ================= 1.1.3 ================= */
/* ---- Pied de page : fond noir chaud, 5 colonnes, bande des guides ---- */
.cbv-pied { margin-top: 96px; padding: 64px 0 0; border-radius: 36px 36px 0 0; background: #1c1a17; color: #d9d0c2; font-family: Montserrat, "Helvetica Neue", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
.cbv-pied a { color: #d9d0c2; }
.cbv-pied a:hover { color: #f0b77a; text-decoration: underline; }
.cbv-pied-in { display: flex; flex-direction: column; gap: 56px; max-width: 1280px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 56px); }
.cbv-pied-haut { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; align-items: end; padding-bottom: 48px; border-bottom: 1px solid #3a352e; }
.cbv-pied-marque { display: flex; flex-direction: column; gap: 18px; }
.cbv-pied-logo { display: inline-flex; align-items: center; gap: 14px; }
.cbv-pied-logo:hover { text-decoration: none !important; }
.cbv-pied-logo img { width: 56px; height: 56px; padding: 3px; border-radius: 50%; background: #ffffff; object-fit: contain; }
.cbv-pied-logo > span { display: flex; flex-direction: column; gap: 2px; }
.cbv-pied-logo strong { font-size: 22px; font-weight: 800; color: #ffffff; }
.cbv-pied-logo > span > span { font-size: 14px; color: #a89f91; }
.cbv-pied-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.cbv-pied-btn { display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 0 22px; border-radius: 999px; font-size: 15px; font-weight: 700; white-space: nowrap; }
.cbv-pied-btn:hover { text-decoration: none !important; }
.cbv-pied .cbv-pied-btn-bleu { background: #0b5cad; color: #ffffff; }
.cbv-pied .cbv-pied-btn-bleu:hover { background: #08427c; color: #ffffff; }
.cbv-pied .cbv-pied-btn-contour { border: 1px solid #5a5248; color: #ffffff; }
.cbv-pied .cbv-pied-btn-contour:hover { border-color: #ffffff; color: #ffffff; }
.cbv-pied .cbv-pied-btn-blanc { align-self: flex-start; background: #ffffff; color: #1c1a17; }
.cbv-pied .cbv-pied-btn-blanc:hover { background: #f0e6d8; color: #1c1a17; }
.cbv-pied-lettre { display: flex; flex-direction: column; gap: 10px; }
.cbv-pied-lettre strong { font-size: 18px; font-weight: 700; color: #ffffff; }
.cbv-pied-lettre span { font-size: 14px; color: #a89f91; }
.cbv-pied-colonnes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 40px; max-width: none; margin: 0; }
.cbv-pied-col summary, .cbv-pied-bande summary { list-style: none; cursor: default; pointer-events: none; }
.cbv-pied-col summary::-webkit-details-marker, .cbv-pied-bande summary::-webkit-details-marker { display: none; }
.cbv-pied-col summary { margin-bottom: 12px; font-size: 15px; font-weight: 700; color: #ffffff; }
.cbv-pied-liens { display: flex; flex-direction: column; gap: 9px; font-size: 14px; line-height: 1.4; }
.cbv-pied-liens a, .cbv-pied-bande-liens a { font-size: inherit; color: #d9d0c2; }
.cbv-pied-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: column; column-gap: 14px; row-gap: 9px; padding-bottom: 6px; }
.cbv-pied a.cbv-pied-fort { color: #f0b77a; font-weight: 600; }
.cbv-pied-petits { font-size: 13px; line-height: 1.6; color: #a89f91; }
.cbv-pied .cbv-pied-petits a, .cbv-pied .cbv-pied-bande-liens a { color: #a89f91; }
.cbv-pied .cbv-pied-petits a:hover, .cbv-pied .cbv-pied-bande-liens a:hover { color: #f0b77a; }
.cbv-pied-bande { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; padding: 32px 0; border-top: 1px solid #3a352e; }
.cbv-pied-bande summary { display: flex; flex-direction: column; gap: 6px; }
.cbv-pied-bande summary strong { font-size: 15px; font-weight: 700; color: #ffffff; }
.cbv-pied-bande summary span { font-size: 13px; line-height: 1.5; color: #a89f91; }
.cbv-pied-bande-liens { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 28px; row-gap: 8px; font-size: 13px; line-height: 1.45; }
.cbv-pied-bas { max-width: none; margin: 8px 0 0; padding: 0; border: 0; background: #141210; font-size: 13px; color: #a89f91; }
.cbv-pied-bas-in { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; max-width: 1280px; margin: 0 auto; padding: 20px clamp(16px, 4vw, 56px); }
.cbv-pied-bas-liens { display: flex; flex-wrap: wrap; gap: 20px; }
.cbv-pied .cbv-pied-bas a { color: #a89f91; }
@media (max-width: 1100px) {
  .cbv-pied-colonnes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cbv-pied-bande-liens { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .cbv-pied { margin-top: 56px; padding-top: 40px; border-radius: 26px 26px 0 0; }
  .cbv-pied-in { gap: 28px; }
  .cbv-pied-haut { grid-template-columns: 1fr; gap: 24px; padding-bottom: 0; border-bottom: 0; }
  .cbv-pied-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .cbv-pied-btn { padding: 0 12px; font-size: 14px; }
  .cbv-pied-lettre { padding: 20px; border-radius: 20px; background: #2a2621; }
  .cbv-pied .cbv-pied-btn-blanc { align-self: stretch; }
  .cbv-pied-colonnes { display: flex; flex-direction: column; gap: 0; }
  .cbv-pied-col, .cbv-pied-bande { display: block; padding: 0; border-top: 1px solid #3a352e; }
  .cbv-pied-bande { border-bottom: 1px solid #3a352e; }
  .cbv-pied-col summary, .cbv-pied-bande summary { display: flex; flex-direction: row; align-items: center; justify-content: space-between; min-height: 56px; margin: 0; pointer-events: auto; cursor: pointer; font-size: 16px; font-weight: 700; color: #ffffff; }
  .cbv-pied-bande summary span { display: none; }
  .cbv-pied-bande summary strong { font-size: 16px; }
  .cbv-pied-col summary::after, .cbv-pied-bande summary::after { content: ""; width: 9px; height: 9px; margin-right: 4px; border-right: 2px solid #a89f91; border-bottom: 2px solid #a89f91; transform: rotate(45deg); transition: transform .2s; }
  .cbv-pied-col[open] summary::after, .cbv-pied-bande[open] summary::after { transform: rotate(-135deg); border-color: #f0b77a; }
  .cbv-pied-liens, .cbv-pied-bande-liens { padding-bottom: 16px; }
  .cbv-pied-liens a, .cbv-pied-bande-liens a { display: inline-block; padding: 6px 0; }
  .cbv-pied-bande-liens { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cbv-pied-bas-in { flex-direction: column; padding: 20px; }
}

/* ---- Collaborateurs : un seul à la fois, flèches pour les autres ---- */
.cba-perso { display: none; }
.cba-perso.actif { display: flex; transform: none; box-shadow: 0 0 0 1px #f2c94c; }
.cba-equipe-nav { display: flex; gap: 8px; }
.cba-equipe-nav button { width: 44px; height: 44px; border: 1px solid #4a443c; border-radius: 50%; background: transparent; color: #ffffff; font: inherit; font-size: 20px; line-height: 1; cursor: pointer; }
.cba-equipe-nav button:hover { border-color: #f2c94c; color: #f2c94c; }
.cba-equipe-nav button:focus-visible { outline: 2px solid #f2c94c; outline-offset: 2px; }
.cba-ex-pre { display: none; }
.cbv-lib-court { display: none; }

/* ---- Téléphone : en-tête avec les 4 boutons sur une ligne ---- */
@media (max-width: 991px) {
  .cbv-burger { display: none !important; }
  .cbv-rangee { display: block; padding: 0 12px 10px; border-bottom: 1px solid #ebe3d6; }
  .cbv .cbv-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
  .cbv-rangee .cbv-bouton, .cbv.cbv-compact .cbv-rangee .cbv-bouton { flex-direction: column; gap: 2px; width: auto; min-width: 0; height: 58px; padding: 0 2px; border-radius: 14px; font-size: 12px; line-height: 1.1; white-space: normal; text-align: center; }
  .cbv-rangee .cbv-pastille, .cbv.cbv-compact .cbv-rangee .cbv-pastille { width: 24px; height: 24px; background: transparent; }
  .cbv-rangee .cbv-bouton-bleu .cbv-pastille { background: transparent; }
  .cbv-rangee .cbv-lib-long { display: none; }
  .cbv-rangee .cbv-lib-court { display: inline; }
  .cbv-rangee .cbv-fleche, .cbv-rangee .cbv-ext { display: none; }
  .cbv.cbv-compact .cbv-barre { height: 52px; }
  .cbv.cbv-compact .cbv-logo img { width: 36px; height: 36px; }
  .cbv.cbv-compact .cbv-rangee .cbv-bouton { flex-direction: row; gap: 4px; height: 40px; }
  .cbv.cbv-compact .cbv-rangee .cbv-pastille { width: 18px; height: 18px; }
  .cbv.cbv-compact .cbv-rangee .cbv-pastille svg { width: 16px; height: 16px; }
  .cbv-panneau { position: fixed; inset: 0; top: 0; z-index: 1001; max-height: none; overflow-y: auto; }
}

/* ---- Téléphone : page d'accueil courte ---- */
@media (max-width: 767px) {
  .cbv-accueil { padding: 0; }
  .cba-hero { display: flex; flex-direction: column; gap: 14px; min-height: 0; margin: 0; padding: 16px 14px 0; border-radius: 0; background: none; }
  .cba-hero-texte { display: contents; }
  .cba-badge, .cba-titre, .cba-texte, .cba-exemples > span { display: none; }
  .cba-cherche { order: 1; height: 56px; padding: 0 6px 0 16px; box-shadow: 0 8px 24px rgba(15, 23, 32, .08); }
  .cba-cherche input { font-size: 16px; }
  .cba-cherche button { height: 44px; padding: 0 18px; font-size: 15px; }
  .cba-exemples { order: 2; margin-top: -4px; }
  .cba-exemples a { display: none; min-height: 36px; font-size: 13px; }
  .cba-exemples a:first-of-type { display: inline-flex; }
  .cba-ex-pre { display: inline; margin-right: 3px; }
  .cba-h1 { order: 3; margin: -4px 0 0 !important; font-size: 10px !important; line-height: 1.4 !important; }
  .cba-velos { order: 4; height: 170px; border-radius: 22px; background: var(--cbv-sable); overflow: hidden; }
  .cba-slide { inset: 10px 0 20px; }
  .cba-slide img { max-height: 140px; filter: drop-shadow(0 12px 12px rgba(80, 50, 20, .15)); }
  .cba-etiquette { display: flex; left: 12px; right: auto; bottom: 10px; align-items: flex-start; padding: 6px 10px; border-radius: 10px; font-size: 12px; box-shadow: none; }
  .cba-etiquette strong { font-size: 12px; }
  .cba-etiquette span { font-size: 11px; }
  .cba-points { left: auto; right: 12px; bottom: 16px; transform: none; }
  /* 6 types : une ligne de pastilles qui défile au doigt */
  .cba-types { display: flex; gap: 8px; margin: 14px 0 0; padding: 0 14px 4px; overflow-x: auto; scrollbar-width: none; }
  .cba-types::-webkit-scrollbar { display: none; }
  .cba-type { flex: 0 0 auto; flex-direction: row; gap: 0; height: 40px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--cbv-sable); }
  .cba-type-ic, .cba-type-txt span { display: none; }
  .cba-type-txt strong { font-size: 14px; font-weight: 700; white-space: nowrap; }
  .cba-type:hover { transform: none; box-shadow: none; }
  /* Sections : titre court, une ligne qui défile */
  .cba-section { margin: 40px 0 0; }
  .cba-tete { flex-direction: row; align-items: baseline; margin-bottom: 12px; padding: 0 14px; }
  .cba-tete .cba-sur { display: none; }
  .cbv-accueil h2, .cba-grand { font-size: 22px !important; }
  .cba-bouton-noir { height: auto; padding: 0; background: none; color: var(--cbv-bleu, #0b5cad) !important; font-size: 14px; }
  .cba-lien { font-size: 14px; }
  .cba-velos-semaine, .cba-conseils { display: flex; gap: 10px; padding: 0 14px 6px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .cba-velos-semaine::-webkit-scrollbar, .cba-conseils::-webkit-scrollbar { display: none; }
  .cba-velo { flex: 0 0 158px; scroll-snap-align: start; }
  .cba-velo-img { height: 96px; }
  .cba-velo-img img { max-height: 96px; }
  .cba-bref { display: none; }
  .cba-conseil { flex: 0 0 230px; scroll-snap-align: start; }
  .cba-conseil-img { height: 130px; border-radius: 16px; }
  .cba-conseil strong { font-size: 15px; }
  /* Bloc famille compact : photo, titre, 3 chiffres, un collaborateur, notre histoire */
  .cba-famille { display: flex; flex-direction: column; gap: 14px; margin: 44px 14px 0; padding: 18px; border-radius: 24px; }
  .cba-famille-corps, .cba-famille-texte { display: contents; }
  .cba-famille-photo { order: 1; height: 170px; border-radius: 16px; }
  .cba-famille-texte h2 { order: 2; font-size: 24px !important; line-height: 1.1; }
  .cba-chiffres { order: 3; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; border: 0; row-gap: 8px; }
  .cba-chiffres > span { padding: 10px 4px; border-radius: 12px; background: #2a2621; }
  .cba-chiffres > span:nth-child(-n+2) { display: none; }
  .cba-chiffres strong { font-size: 20px; }
  .cba-chiffres span span { font-size: 11px; }
  .cba-famille-texte > p, .cba-sur-clair { display: none; }
  .cba-equipe { order: 4; }
  .cba-equipe-nav { order: 5; margin-top: -4px; }
  .cba-equipe-nav button { width: 40px; height: 40px; }
  .cba-lien-or { order: 6; }
  .cba-perso { padding: 12px; gap: 10px; }
  .cba-perso img, .cba-ini { width: 44px; height: 44px; font-size: 14px; }
  .cba-mot { display: none; }
  /* Texte de référencement */
  .cba-seo { margin: 44px 14px 0; padding-top: 20px; }
  .cba-seo-texte h2 { font-size: 17px !important; }
  .cba-replie { max-height: 92px; }
}

/* ================= 1.1.4 ================= */
/* La page d'accueil ne doit jamais être plus large que l'écran (les lignes qui défilent l'élargissaient) */
.cbv-accueil { width: 100%; max-width: 1440px; min-width: 0; overflow-x: clip; }
.cba-hero, .cba-types, .cba-section, .cba-famille, .cba-seo, .cba-velos-semaine, .cba-conseils { min-width: 0; max-width: 100%; }
@media (max-width: 767px) {
  .cbv-accueil { max-width: 100vw; }
  /* Recherche et bande des vélos sur toute la largeur */
  .cba-hero { align-items: stretch; }
  .cba-exemples { align-self: flex-start; }
  .cba-velos { width: 100%; }
  /* Pastilles des types : texte centré */
  .cba-type { align-items: center; justify-content: center; }
  .cba-type-txt { justify-content: center; }
}

/* ================= 1.1.5 ================= */
/* Bande des vélos (téléphone) : la photo d'abord, juste le nom en tout petit */
@media (max-width: 767px) {
  .cba-etiquette { left: 10px; bottom: 8px; padding: 3px 8px; border-radius: 999px; background: rgba(255, 255, 255, .72); }
  .cba-etiquette strong { font-size: 10px; font-weight: 600; color: #3a352e; }
  .cba-etiquette span { display: none; }
  .cba-slide { inset: 6px 0 14px; }
  .cba-slide img { max-height: 150px; }
  .cba-points { bottom: 12px; }
}

/* ================= 1.1.6 ================= */
/* Panneau « Acheter → Occasions » présenté comme les vélos neufs, avec la touche jaune « Reconditionné » */
.cbv-occ { display: flex; flex-direction: column; gap: 14px; }
.cbv-occ-tete { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.cbv-occ-pastille { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: #fdf0c4; color: #6b4a00; font-size: 13px; font-weight: 800; }
.cbv-occ .cbv-type { background: #fff8e1; border: 1px solid #f2d58a; }
.cbv-occ .cbv-type-nom:hover { color: #8a5a1c; }
.cbv-occ-raccourcis { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.cbv-occ-raccourcis a { font-size: 14px; font-weight: 600; color: var(--cbv-bleu); }
.cbv-occ-raccourcis a:hover { color: var(--cbv-bleu-f); text-decoration: underline; }

/* ===== 1.1.7 — « Acheter » mis en valeur, « Louer un vélo » discret, vrai bouton « Trouver mon vélo » ===== */
/* Acheter : bouton plein, foncé */
.cbv-rangee .cbv-bouton-acheter, .cbv-rangee .cbv-bouton-acheter:hover, .cbv-rangee .cbv-bouton-acheter[aria-expanded="true"] { background: var(--cbv-noir); border-color: var(--cbv-noir); color: #ffffff; font-weight: 800; box-shadow: 0 2px 4px rgba(15, 23, 32, .15), 0 8px 22px rgba(15, 23, 32, .22); }
.cbv-rangee .cbv-bouton-acheter .cbv-pastille, .cbv-rangee .cbv-bouton-acheter:hover .cbv-pastille { background: var(--cbv-bleu); color: #ffffff; }
.cbv-pilule-acheter { background: var(--cbv-noir) !important; color: #ffffff !important; font-weight: 800; }
/* Louer un vélo : icône de vélo fine, sans pastille, texte normal */
.cbv-rangee .cbv-bouton-louer { font-weight: 500; color: #3a3a3f; }
.cbv-rangee .cbv-bouton-louer .cbv-pastille, .cbv-rangee .cbv-bouton-louer:hover .cbv-pastille { background: transparent; color: #6e6e73; }
.cbv-rangee .cbv-bouton-louer .cbv-ext { opacity: .45; }
.cbv-pilule-louer { font-weight: 500 !important; }
.cbv-pilule-louer svg { color: #6e6e73; }
/* Panneau Acheter : « Trouver mon vélo » en vrai bouton bleu */
.cbv-trouver { gap: 10px; border: 1px solid #d7e3f1; background: #f2f7fd; }
.cbv-trouver .cbv-trouver-titre { font-size: 16px; font-weight: 800; color: var(--cbv-noir); }
.cbv-trouver-bouton { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 52px; padding: 0 20px; border: 0; border-radius: 999px; background: linear-gradient(135deg, #1a78dc, #0b5cad); color: #ffffff; font: inherit; font-size: 16px; font-weight: 800; cursor: pointer; box-shadow: 0 2px 4px rgba(11, 92, 173, .2), 0 8px 22px rgba(11, 92, 173, .3); transition: transform .15s, box-shadow .15s; }
.cbv-trouver-bouton:hover { transform: translateY(-1px); box-shadow: 0 2px 6px rgba(11, 92, 173, .25), 0 12px 28px rgba(11, 92, 173, .4); }
.cbv-trouver-bouton:focus-visible { outline: 3px solid rgba(11, 92, 173, .35); outline-offset: 2px; }
@media (max-width: 991px) {
  .cbv-rangee .cbv-bouton-acheter .cbv-pastille { background: transparent; color: #ffffff; }
  .cbv-trouver-bouton { height: 54px; font-size: 17px; }
}

/* ===== 1.1.8 — « Bons plans » ressort de nouveau à côté du bouton bleu ===== */
.cbv-bons-plans { border: 2px solid #f2c94c; background: #fff3c4; }
.cbv-bons-plans strong { display: inline-flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 800; color: #3a2a00; }
.cbv-bons-plans strong svg { color: #c62828; }
.cbv-bons-plans span { font-size: 14px; font-weight: 600; color: #4a3a0a; }
.cbv-bons-plans:hover { background: #ffecaa; }

/* ===== 1.1.9 — « Trouver mon vélo » bien visible à droite du panneau Acheter ===== */
.cbv-cote .cbv-trouver { gap: 12px; padding: 24px; border: 2px solid var(--cbv-bleu); background: #e8f1fb; box-shadow: 0 10px 28px rgba(11, 92, 173, .18); }
.cbv-cote .cbv-trouver .cbv-trouver-titre { display: flex; align-items: flex-start; gap: 10px; font-size: 19px; line-height: 1.25; color: #0b3f75; }
.cbv-cote .cbv-trouver .cbv-trouver-titre svg { flex: 0 0 auto; margin-top: 1px; color: var(--cbv-bleu); }
.cbv-cote .cbv-trouver > span { font-size: 14px; color: #2b3442; }
.cbv-cote .cbv-trouver input { height: 50px; border: 2px solid #9fc1e6; font-size: 15px; }
.cbv-cote .cbv-trouver-bouton { height: 56px; font-size: 17px; }

/* Ne jamais afficher le bandeau "Promo !" de PrestaShop */
.product-flags .on-sale, .product-flag.on-sale { display: none !important; }

/* ===== 1.2.0 — Onglet Accessoires en 7 familles, blocs entièrement cliquables ===== */
.cbv-bloc-cliquable { cursor: pointer; transition: background .15s, box-shadow .15s; }
.cbv-type.cbv-bloc-cliquable:hover { background: #ebebf0; }
.cbv-occ .cbv-type.cbv-bloc-cliquable:hover { background: #fff1c7; }
.cbv-grande-carte.cbv-bloc-cliquable:hover { box-shadow: 0 8px 22px rgba(0, 0, 0, .08); }
.cbv-familles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.cbv-famille { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; min-height: 172px; padding: 18px; border-radius: 20px; background: #f3f5f9; color: var(--cbv-noir); transition: background .15s, transform .15s; }
.cbv-famille:hover { background: #e8eef7; color: var(--cbv-noir); transform: translateY(-1px); }
.cbv-famille-dessin { position: absolute; right: -10px; bottom: -12px; width: 96px; height: 96px; color: var(--cbv-bleu); opacity: .45; transform: rotate(-6deg); pointer-events: none; }
.cbv-famille-texte { position: relative; display: flex; flex-direction: column; gap: 5px; max-width: 78%; }
.cbv-famille-texte strong { font-size: 16px; font-weight: 800; line-height: 1.2; }
.cbv-famille-texte span { font-size: 13px; line-height: 1.35; color: var(--cbv-texte2); }
.cbv-famille-fleche { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: #ffffff; color: var(--cbv-bleu); font-size: 18px; font-weight: 800; }
@media (max-width: 1280px) { .cbv-familles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .cbv-familles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 991px) {
  .cbv-familles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .cbv-famille { min-height: 132px; padding: 14px; }
  .cbv-famille-dessin { width: 72px; height: 72px; }
  .cbv-famille-texte strong { font-size: 15px; }
  }

/* ===== 1.2.1 — recherche de droite adaptée aux accessoires ; textes d'exemple plus pâles dans tous les champs ===== */
.cbv-trouver[hidden] { display: none; }
.cbv input::placeholder, .cbv-pied input::placeholder, #cb-r-q::placeholder, .cb-r-form input::placeholder, #main input[type="search"]::placeholder, #main input[type="text"]::placeholder { color: #a3a8b0 !important; opacity: 1 !important; font-weight: 400 !important; font-style: normal; }
.cbv input::-webkit-input-placeholder, #cb-r-q::-webkit-input-placeholder { color: #a3a8b0 !important; opacity: 1 !important; font-weight: 400 !important; }

/* ===== 1.2.2 — « Nous trouver » : carte illustrée des magasins ===== */
.cbvc{--cbvc-bleu:#0b5cad;--cbvc-noir:#1d1d1f;--cbvc-gris:#6e6e73;color:var(--cbvc-noir)}
.cbvc[hidden],.cbv-magasins[hidden]{display:none!important}
.cbvc-grille{display:grid;grid-template-columns:300px auto 290px;gap:20px;justify-content:center;align-items:start}
.cbvc-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cbv .cbvc-ligne{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:50px;padding:6px 14px;border-radius:14px;border:2px solid transparent;background:#f5f5f7;color:var(--cbvc-noir);text-align:left}
.cbvc-ligne > span:first-child{display:flex;flex-direction:column;gap:1px}
.cbvc-ligne strong{font-size:14px;font-weight:800}
.cbvc-ligne small{font-size:12px;color:var(--cbvc-gris)}
.cbv .cbvc-ligne:hover{background:#ececf0}
.cbv .cbvc-ligne.actif{border-color:var(--cbvc-bleu);background:#e8f1fb}
.cbvc-chev{font-size:18px;color:#9aa4b2}
.cbvc-carte{position:relative;width:min(820px,calc((100vh - 290px) * 1.268));min-width:480px;aspect-ratio:824/650;border-radius:22px;overflow:hidden;border:1px solid #e3e3e8;background:#f4f5f1}
.cbvc-carte svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.cbvc-svg-m{display:none}
.cbv .cbvc-pin{position:absolute;left:var(--x);top:var(--y);width:0;height:0;padding:0;border:0;background:none;z-index:2}
.cbvc-rond{position:absolute;left:-18px;top:-18px;width:36px;height:36px;border-radius:50%;border:3px solid #fff;background:var(--cbvc-noir);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(15,23,32,.25);transition:transform .15s}
.cbvc-rond svg{position:static;width:19px;height:19px}
.cbvc-lab{position:absolute;top:0;left:24px;transform:translateY(-50%);white-space:nowrap;font-size:12px;font-weight:800;line-height:1.2;padding:5px 10px;border-radius:999px;background:#fff;color:var(--cbvc-noir);box-shadow:0 3px 10px rgba(15,23,32,.14)}
.cbvc-pin.g .cbvc-lab{left:auto;right:24px}
.cbvc-pin:hover .cbvc-rond{transform:scale(1.08)}
.cbv .cbvc-pin.actif{z-index:3}
.cbvc-pin.actif .cbvc-rond{background:var(--cbvc-bleu);box-shadow:0 0 0 6px rgba(11,92,173,.22),0 6px 16px rgba(15,23,32,.3)}
.cbvc-pin.actif .cbvc-lab{background:var(--cbvc-bleu);color:#fff}
.cbvc-pin:focus-visible,.cbvc-ligne:focus-visible,.cbvc-chip:focus-visible{outline:3px solid var(--cbvc-bleu);outline-offset:3px}
.cbvc-fiche{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border-radius:18px;background:#fff;border:1px solid #ececf0;box-shadow:0 12px 34px rgba(15,23,32,.12)}
.cbvc-nom{font-size:18px;font-weight:800;line-height:1.2}
.cbvc-statut{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;padding:4px 10px 4px 8px;border-radius:999px;font-size:12px;font-weight:800}
.cbvc-statut i{width:8px;height:8px;border-radius:50%;background:currentColor}
.cbvc-statut.ouvert{color:#1a8f3c;background:#e6f5ea}
.cbvc-statut.ferme{color:#d23a3a;background:#fdecec}
.cbvc-adr{font-size:13px;line-height:1.4;color:var(--cbvc-gris)}
.cbv .cbvc-tel{font-size:15px;font-weight:800;color:var(--cbvc-bleu)}
.cbvc-yaller{font-size:12px;font-weight:700;color:var(--cbvc-gris);margin-top:6px}
.cbvc-btns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cbv .cbvc-btns a{display:flex;align-items:center;justify-content:center;height:44px;border-radius:12px;font-size:13px;font-weight:800;text-align:center;line-height:1.1}
.cbv .cbvc-btns .waze{background:#33ccff;color:#0f1720}
.cbv .cbvc-btns .plans{background:var(--cbvc-noir);color:#fff}
.cbv .cbvc-btns .google{background:var(--cbvc-bleu);color:#fff}
.cbv .cbvc-btns a:hover{filter:brightness(.92)}
.cbvc-horaires{font-size:13px;margin-top:4px}
.cbvc-horaires summary{cursor:pointer;font-weight:700;color:var(--cbvc-bleu)}
.cbvc-horaires table{margin-top:6px;border-collapse:collapse;width:100%}
.cbvc-horaires th{text-align:left;font-weight:600;padding:2px 10px 2px 0;color:var(--cbvc-gris)}
.cbvc-horaires td{padding:2px 0}
.cbv .cbvc-lien{font-size:13px;font-weight:700;color:var(--cbvc-bleu);margin-top:2px}
.cbvc-pastilles{display:none}
@media (max-width:1099px){
  .cbvc-grille{grid-template-columns:1fr;gap:14px}
  .cbvc-liste{display:none}
  .cbvc-carte,.cbvc-fiche{width:100%;max-width:620px;min-width:0;margin:0 auto}
  .cbvc-carte{border-radius:18px}
  .cbvc-fiche{box-shadow:0 8px 26px rgba(15,23,32,.12)}
  .cbvc-svg-d{display:none}.cbvc-svg-m{display:block}
  .cbv .cbvc-pin{left:var(--xm);top:var(--ym)}
  .cbvc-pin .cbvc-lab,.cbvc-pin.g .cbvc-lab{left:17px;right:auto}
  .cbvc-pin.gm .cbvc-lab{left:auto;right:17px}
  .cbvc-rond{left:-13px;top:-13px;width:26px;height:26px;border-width:2px}
  .cbvc-rond svg{width:14px;height:14px}
  .cbvc-lab{font-size:10px;padding:3px 7px}
  .cbv .cbvc-btns a{height:46px}
  .cbvc-pastilles{display:flex;flex-wrap:wrap;gap:8px;max-width:620px;margin:14px auto 0}
  .cbv .cbvc-chip{padding:10px 16px;border-radius:999px;border:2px solid transparent;background:#f5f5f7;font-size:13px;font-weight:800;color:var(--cbvc-noir)}
  .cbv .cbvc-chip.actif{border-color:var(--cbvc-bleu);background:#e8f1fb}
}
@media (min-width:640px) and (max-width:1099px){
  .cbvc-rond{left:-16px;top:-16px;width:32px;height:32px}
  .cbvc-lab{font-size:12px;padding:4px 9px}
  .cbvc-pin .cbvc-lab,.cbvc-pin.g .cbvc-lab{left:20px}.cbvc-pin.gm .cbvc-lab{left:auto;right:20px}
}
@media (prefers-reduced-motion:reduce){.cbvc-rond{transition:none}}

/* ===== 1.2.3 — carte « Nous trouver » plus compacte sur ordinateur ===== */
@media (min-width:1100px){
  #cbv-p-trouver .cbv-p-trouver{width:fit-content;max-width:100%;margin:0 auto;padding-left:clamp(24px,5vw,80px);padding-right:clamp(24px,5vw,80px);padding-top:24px}
  #cbv-p-trouver .cbv-tete{width:100%}
  #cbv-p-trouver .cbv-tete{margin-bottom:14px}
  #cbv-p-trouver .cbv-tete strong{font-size:17px}
  .cbvc-grille{grid-template-columns:250px auto 250px;gap:16px}
  .cbvc-liste{gap:5px}
  .cbv .cbvc-ligne{min-height:0;padding:7px 12px;border-radius:12px;line-height:1.25}
  .cbvc-ligne > span:first-child{gap:2px}
  .cbvc-ligne strong{font-size:13px;line-height:1.25}
  .cbvc-ligne small{font-size:11px;line-height:1.3}
  .cbvc-chev{font-size:15px}
  .cbvc-carte{width:min(700px,calc((100vh - 340px) * 1.268));min-width:440px;border-radius:18px}
  .cbvc-rond{left:-15px;top:-15px;width:30px;height:30px;border-width:2px}
  .cbvc-rond svg{width:15px;height:15px}
  .cbvc-lab{left:19px;font-size:11px;line-height:1.2;padding:4px 8px}
  .cbvc-pin.g .cbvc-lab{left:auto;right:19px}
  .cbvc-fiche{gap:5px;padding:14px 16px;border-radius:16px;line-height:1.3}
  .cbvc-nom{font-size:16px}
  .cbvc-adr{font-size:12px}
  .cbv .cbvc-tel{font-size:14px}
  .cbvc-yaller{font-size:11px;margin-top:4px}
  .cbvc-btns{gap:6px}
  .cbv .cbvc-btns a{height:36px;border-radius:10px;font-size:12px}
  .cbvc-horaires,.cbv .cbvc-lien{font-size:12px}
}

/* ===== 1.2.4 — horaires du jour et de la semaine ===== */
.cbvc-auj{font-size:13px;color:var(--cbvc-noir)}
.cbvc-auj b{font-weight:800;margin-right:4px}
.cbvc-horaires tr.auj th,.cbvc-horaires tr.auj td{font-weight:800;color:var(--cbvc-noir)}
.cbvc-horaires tr.auj td{color:var(--cbvc-bleu)}
@media (min-width:1100px){.cbvc-auj{font-size:12px}}

/* ===== 1.2.5 — cartes magasin de part et d'autre de la carte, boutons Qui sommes-nous / Nos valeurs ===== */
#cbv-p-trouver .cbv-tete{align-items:center}
#cbv-p-trouver .cbv-tete-liens{gap:10px}
.cbv #cbv-p-trouver a.cbvc-pilule{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px 0 6px;border-radius:999px;background:#fff;border:1.5px solid #e6e6eb;box-shadow:0 2px 6px rgba(15,23,32,.04);color:#1d1d1f;font-size:13px;font-weight:800;line-height:1;text-decoration:none}
.cbv #cbv-p-trouver a.cbvc-pilule:hover{border-color:#cfd3da;color:#1d1d1f;text-decoration:none}
.cbvc-pico{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#1d1d1f;color:#fff}
.cbvc-pilule.bleu .cbvc-pico{background:#0b5cad}
.cbvc-pico svg{width:14px;height:14px}
.cbvc-pchev{color:#9aa4b2}
.cbvc-col{display:flex;flex-direction:column;gap:8px}
.cbvc-mag{background:#fff;border:1.5px solid #e6e6eb;border-radius:16px;padding:12px 14px;box-shadow:0 2px 6px rgba(15,23,32,.04);transition:border-color .15s,box-shadow .15s}
.cbvc-mag:hover{border-color:#cfd3da}
.cbvc-mag.ouvert{border-color:var(--cbvc-bleu);box-shadow:0 10px 28px rgba(11,92,173,.16)}
.cbv .cbvc-mtete{display:flex;align-items:center;gap:12px;width:100%;padding:0;border:0;background:none;color:inherit;text-align:left;line-height:1.2}
.cbvc-mrond{display:flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--cbvc-noir);color:#fff}
.cbvc-mag.ouvert .cbvc-mrond{background:var(--cbvc-bleu)}
.cbvc-mrond svg{width:16px;height:16px}
.cbvc-mtxt{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}
.cbvc-mtxt strong{font-size:14px;font-weight:800;line-height:1.2}
.cbvc-mstatut{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;line-height:1.2}
.cbvc-mstatut i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.cbvc-mstatut.ouvert{color:#1a8f3c}.cbvc-mstatut.ferme{color:#d23a3a}
.cbvc-mville{font-size:11.5px;color:var(--cbvc-gris);line-height:1.2}
.cbvc-mchev{font-size:18px;color:#9aa4b2;transition:transform .15s}
.cbvc-mag.ouvert .cbvc-mchev{transform:rotate(90deg)}
.cbvc-mcorps{display:none}
.cbvc-mag.ouvert .cbvc-mcorps{display:flex;flex-direction:column;gap:8px;padding-top:12px;margin-top:12px;border-top:1px solid #ececf0;line-height:1.35}
.cbvc-mcorps .cbvc-adr{font-size:12px}
.cbv .cbvc-mcorps .cbvc-tel{font-size:14px}
.cbvc-semaine{width:100%;border-collapse:separate;border-spacing:0;background:#f5f5f7;border-radius:12px;font-size:11.5px;line-height:1.35}
.cbvc-semaine th,.cbvc-semaine td{padding:2px 12px;font-weight:500;color:#3a3a3c}
.cbvc-semaine th{text-align:left}.cbvc-semaine td{text-align:right}
.cbvc-semaine tr:first-child th,.cbvc-semaine tr:first-child td{padding-top:9px}
.cbvc-semaine tr:last-child th,.cbvc-semaine tr:last-child td{padding-bottom:9px}
.cbvc-semaine tr.auj th,.cbvc-semaine tr.auj td{font-weight:800;color:var(--cbvc-bleu)}
.cbvc-mcorps .cbvc-btns{gap:6px}
.cbv .cbvc-mcorps .cbvc-btns a{height:34px;border-radius:10px;font-size:12px}
.cbvc-mag .cbvc-maps{display:none}
.cbv .cbvc-mcorps .cbvc-lien{font-size:12px}
@media (min-width:1100px){
  .cbvc-grille{grid-template-columns:266px auto 266px;gap:20px}
  .cbvc-carte{width:min(640px,calc((100vh - 300px) * 1.268),calc(100vw - 720px));min-width:380px}
  .cbvc-fiche{display:none}
}
@media (max-width:1099px){
  .cbvc-col{display:none}
  .cbv #cbv-p-trouver a.cbvc-pilule{height:34px;font-size:12px;padding-right:12px}
  .cbvc-pico{width:22px;height:22px}.cbvc-pico svg{width:12px;height:12px}
  .cbvc-fiche .cbvc-semaine{margin-top:6px}
  #cbv-p-trouver .cbv-tete{flex-wrap:wrap;row-gap:10px}
  #cbv-p-trouver .cbv-tete strong{flex:1 1 100%}
  #cbv-p-trouver .cbv-tete-liens{gap:8px}
}
@media (prefers-reduced-motion:reduce){.cbvc-mag,.cbvc-mchev{transition:none}}

/* =====================================================================
   1.2.6 — Nouvelle page d'accueil avec Pierre-Louis (maquette validée le 28 oct 2026)
   ===================================================================== */
.cba-hero.cba-pl { min-height: 0; padding: clamp(24px, 3vw, 40px) clamp(20px, 4vw, 56px); background: #f6f1e8; gap: 24px 48px; }
.cba-pl .cba-hero-texte { gap: 16px; }
.cba-pl-qui { display: inline-flex; align-items: center; gap: 12px; }
.cba-pl-av { position: relative; flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%; background: #8a5a1c; color: #f6f1e8; display: inline-flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 800; }
.cba-pl-av::after { content: ""; position: absolute; right: 1px; bottom: 1px; width: 12px; height: 12px; border-radius: 50%; background: #2f9e57; border: 2px solid #f6f1e8; }
.cba-pl-qui > span:last-child { display: flex; flex-direction: column; line-height: 1.2; }
.cba-pl-qui strong { font-size: 17px; font-weight: 800; color: #1d1d1f; }
.cba-pl-qui > span:last-child > span { font-size: 14px; font-weight: 600; color: #8a5a1c; }
.cba-pl .cba-titre { min-height: 2.15em; font-size: clamp(34px, 3.8vw, 50px); line-height: 1.08; }
.cba-pl .cba-titre .cba-salut-2 { color: #8a5a1c; }
.cba-pl .cba-titre.cba-ecrit::after { content: ""; display: inline-block; width: 3px; height: .9em; margin-left: 4px; vertical-align: -.08em; background: #8a5a1c; animation: cbaCurseur 1s step-end infinite; }
@keyframes cbaCurseur { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
.cba-pl .cba-cherche { height: 68px; border-color: #ffffff; box-shadow: 0 18px 50px rgba(60, 40, 10, .14), 0 2px 6px rgba(0, 0, 0, .05); }
.cba-pl .cba-cherche.cba-halo { animation: cbaHalo 2.4s ease-out 3; }
@keyframes cbaHalo { 0% { box-shadow: 0 0 0 0 rgba(26, 120, 220, .35), 0 18px 50px rgba(60, 40, 10, .14); } 70% { box-shadow: 0 0 0 14px rgba(26, 120, 220, 0), 0 18px 50px rgba(60, 40, 10, .14); } 100% { box-shadow: 0 0 0 0 rgba(26, 120, 220, 0), 0 18px 50px rgba(60, 40, 10, .14); } }
.cba-pl .cba-cherche input::placeholder { color: #a3a3a8; }
.cba-pl .cba-exemples a { border-color: #e6e0d6; font-weight: 600; }
.cba-pl .cba-exemples a:hover { border-color: #8a5a1c; color: #8a5a1c; }
.cba-pl .cba-h1 { margin: 6px 0 0; font-size: 12px; font-weight: 500; line-height: 1.5; color: #8d877f; }
.cba-pl .cba-velos { height: 400px; }
.cba-pl .cba-slide img { max-height: 340px; }
.cba-pl .cba-etiquette { flex-direction: row; align-items: baseline; gap: 6px; right: 50%; transform: translateX(50%); bottom: 18px; white-space: nowrap; }
.cba-pl .cba-etiquette span { color: #1d1d1f; font-size: 14px; }
.cba-pl .cba-etiquette span::before { content: "· "; }
.cba-pl .cba-points { display: none; }

/* Les bons plans de la semaine : 2 lignes de 4, fixes */
.cba-bp { margin-top: 72px; }
.cba-bp .cba-tete h2 { margin: 0; font-size: 30px; font-weight: 800; }
.cba-bp-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cba-bp-carte { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px solid #e3ddd2; border-radius: 20px; background: #ece8e1; color: #1d1d1f; transition: transform .15s, box-shadow .15s; }
.cba-bp-carte:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(60, 40, 20, .1); color: #1d1d1f; }
.cba-bp-img { position: relative; display: flex; align-items: center; justify-content: center; height: 170px; border-radius: 14px; overflow: hidden; background: #ece8e1; }
.cba-bp-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cba-bp-badge { position: absolute; top: 8px; left: 8px; padding: 4px 10px; border-radius: 999px; background: #8a5a1c; color: #ffffff; font-size: 12px; font-weight: 800; }
.cba-bp-promo .cba-bp-badge { background: #c2410c; }
.cba-bp-recond { border: 3px solid #f2c94c; padding: 10px; }
.cba-bp-etiquette { position: absolute; top: 0; left: 0; padding: 7px 12px 7px 10px; border-bottom-right-radius: 12px; background: #f2c94c; color: #3d2b00; font-size: 12px; font-weight: 800; }
.cba-bp-carte > strong { font-size: 15px; line-height: 1.3; }
.cba-bp-prix { display: flex; align-items: baseline; gap: 8px; margin-top: auto; }
.cba-bp-prix strong { font-size: 17px; font-weight: 800; color: #1d1d1f; }
.cba-bp-promo .cba-bp-prix strong { color: #c2410c; }
.cba-bp-prix s { font-size: 13px; color: #6e6e73; }

/* La famille Blain : carte blanche avec relief */
.cbv-accueil .cba-famille { background: #ffffff; color: #1d1d1f; border: 1px solid #e0d6c6; box-shadow: 0 20px 50px rgba(90, 60, 20, .13), 0 2px 6px rgba(90, 60, 20, .06); }
.cbv-accueil .cba-chiffres { border-bottom-color: #ebe3d6; }
.cbv-accueil .cba-chiffres strong { color: #1d1d1f; }
.cbv-accueil .cba-chiffres span span { color: #6b5a42; }
.cbv-accueil .cba-famille-texte h2 { color: #1d1d1f !important; }
.cbv-accueil .cba-famille-texte p { color: #4a4a4f; }
.cbv-accueil .cba-famille .cba-sur-clair { color: #6b5a42; }
.cbv-accueil .cba-famille .cba-perso { background: #f6f1e8; color: #1d1d1f; }
.cbv-accueil .cba-famille .cba-perso.actif { box-shadow: 0 0 0 1px #d9c9b0; }
.cbv-accueil .cba-famille .cba-perso strong { color: #1d1d1f; }
.cbv-accueil .cba-famille .cba-role { color: #8a5a1c; }
.cbv-accueil .cba-famille .cba-mot { color: #4a4a4f; }
.cbv-accueil .cba-famille .cba-ini { background: #8a5a1c; color: #f6f1e8; }
.cbv-accueil .cba-famille .cba-equipe-nav button { border-color: #d9c9b0; background: #ffffff; color: #3a352e; }
.cbv-accueil .cba-famille .cba-equipe-nav button:hover { border-color: #8a5a1c; color: #8a5a1c; }
.cbv-accueil .cba-famille .cba-lien-or { color: #8a5a1c !important; }

@media (max-width: 1099px) {
  .cba-bp-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Téléphone : peu de texte, pas de gros vélo en haut, 4 bons plans */
@media (max-width: 767px) {
  .cba-hero.cba-pl { padding: 22px 18px 20px; border-radius: 26px; }
  .cba-pl .cba-velos { display: none; }
  .cba-pl-qui > span:last-child > span { display: none; }
  .cba-pl-av { width: 44px; height: 44px; font-size: 14px; }
  .cba-pl .cba-titre { font-size: 29px; }
  .cba-pl .cba-cherche { height: 58px; padding-left: 18px; }
  .cba-pl .cba-cherche button { height: 46px; padding: 0 18px; font-size: 15px; }
  .cba-pl .cba-exemples a:nth-child(n+2) { display: none; }
  .cba-bp { margin-top: 32px; }
  .cba-bp .cba-tete h2 { font-size: 21px; }
  .cba-bp-grille { gap: 10px; }
  .cba-bp-carte:nth-child(n+5) { display: none; }
  .cba-bp-carte { padding: 8px; border-radius: 16px; }
  .cba-bp-recond { padding: 6px; }
  .cba-bp-img { height: 96px; border-radius: 12px; }
  .cba-bp-carte > strong { font-size: 13px; }
  .cba-bp-prix strong { font-size: 14px; }
  .cba-bp-badge, .cba-bp-etiquette { font-size: 11px; padding: 3px 8px; }
  .cbv-accueil .cba-famille-texte p, .cbv-accueil .cba-famille .cba-sur-clair, .cbv-accueil .cba-equipe, .cbv-accueil .cba-equipe-nav { display: none; }
}
@media (prefers-reduced-motion: reduce) { .cba-pl .cba-cherche.cba-halo { animation: none; } .cba-pl .cba-titre.cba-ecrit::after { animation: none; } }

/* =====================================================================
   1.2.7 — Accueil plus calme : tout un peu plus petit, surtout le bloc Pierre-Louis
   ===================================================================== */
/* Bloc Pierre-Louis : moins haut, titre plus petit, barre plus fine, ombre plus douce, halo une seule fois et plus léger */
.cba-hero.cba-pl { padding: clamp(20px, 2.2vw, 30px) clamp(20px, 3.4vw, 48px); gap: 20px 40px; border-radius: 30px; }
@media (min-width: 768px) { .cba-hero.cba-pl { grid-template-columns: minmax(0, 540px) minmax(0, 1fr); } }
.cba-pl .cba-hero-texte { gap: 12px; }
.cba-pl-qui { gap: 10px; }
.cba-pl-av { width: 40px; height: 40px; font-size: 13px; }
.cba-pl-av::after { width: 10px; height: 10px; }
.cba-pl-qui strong { font-size: 15px; }
.cba-pl-qui > span:last-child > span { font-size: 13px; }
.cba-pl .cba-titre { font-size: clamp(28px, 2.9vw, 40px); line-height: 1.1; }
.cba-pl .cba-cherche { height: 56px; padding: 0 7px 0 22px; box-shadow: 0 8px 24px rgba(60, 40, 10, .09), 0 1px 3px rgba(0, 0, 0, .04); }
.cba-pl .cba-cherche input { font-size: 17px; }
.cba-pl .cba-cherche button { height: 44px; padding: 0 22px; font-size: 15px; font-weight: 700; }
.cba-pl .cba-cherche.cba-halo { animation: cbaHalo127 2.4s ease-out 1; }
@keyframes cbaHalo127 { 0% { box-shadow: 0 0 0 0 rgba(26, 120, 220, .22), 0 8px 24px rgba(60, 40, 10, .09); } 70% { box-shadow: 0 0 0 10px rgba(26, 120, 220, 0), 0 8px 24px rgba(60, 40, 10, .09); } 100% { box-shadow: 0 0 0 0 rgba(26, 120, 220, 0), 0 8px 24px rgba(60, 40, 10, .09); } }
.cba-pl .cba-exemples a { min-height: 34px; padding: 4px 14px; font-size: 13px; }
.cba-pl .cba-velos { height: 320px; }
.cba-pl .cba-slide img { max-height: 270px; }
.cba-pl .cba-etiquette { bottom: 14px; padding: 9px 13px; border-radius: 13px; font-size: 14px; }
.cba-pl .cba-etiquette span { font-size: 13px; }

/* Les bons plans : un peu plus serrés */
.cba-bp { margin-top: 52px; }
.cba-bp .cba-tete { margin-bottom: 18px; }
.cba-bp .cba-tete h2 { font-size: 25px; }
.cba-bp-grille { gap: 14px; }
.cba-bp-carte { padding: 10px; border-radius: 18px; }
.cba-bp-recond { padding: 8px; }
.cba-bp-img { height: 145px; border-radius: 12px; }
.cba-bp-carte > strong { font-size: 14px; }
.cba-bp-prix strong { font-size: 16px; }

/* La famille Blain et Nos conseils : moins d'espace et des titres plus petits */
.cbv-accueil .cba-famille { margin-top: 72px; padding: 40px clamp(20px, 3.4vw, 48px) 44px; border-radius: 30px; }
.cbv-accueil .cba-chiffres { padding-bottom: 30px; margin-bottom: 34px; }
.cbv-accueil .cba-chiffres strong { font-size: 28px; }
.cbv-accueil .cba-chiffres span span { font-size: 13px; }
.cbv-accueil .cba-famille-corps { gap: 48px; }
.cbv-accueil .cba-famille-photo { height: 380px; border-radius: 20px; }
.cbv-accueil .cba-famille-texte h2 { font-size: 34px; }
.cbv-accueil .cba-famille-texte p { font-size: 16px; }
.cbv-accueil .cba-section { margin-top: 72px; }
.cbv-accueil .cba-grand { font-size: 32px !important; }
.cbv-accueil .cba-conseil-img { height: 160px; }
.cbv-accueil .cba-conseil strong { font-size: 16px; }

/* Téléphone : même logique, en plus discret */
@media (max-width: 767px) {
  .cba-hero.cba-pl { padding: 18px 16px 16px; border-radius: 22px; gap: 10px; }
  .cba-pl .cba-hero-texte { gap: 10px; }
  .cba-pl-av { width: 36px; height: 36px; font-size: 12px; }
  .cba-pl .cba-titre { font-size: 24px; }
  .cba-pl .cba-cherche { height: 50px; padding-left: 16px; }
  .cba-pl .cba-cherche input { font-size: 16px; }
  .cba-pl .cba-cherche button { height: 40px; padding: 0 14px; font-size: 14px; }
  .cba-bp { margin-top: 26px; }
  .cbv-accueil .cba-bp .cba-tete h2 { font-size: 19px !important; }
  .cba-bp-img { height: 88px; }
  .cbv-accueil .cba-famille { margin-top: 32px; padding: 16px; }
  .cbv-accueil .cba-famille-photo { height: 150px; }
  .cbv-accueil .cba-famille-texte h2 { font-size: 22px; }
  .cbv-accueil .cba-chiffres strong { font-size: 22px; }
  .cbv-accueil .cba-section { margin-top: 32px; }
  .cbv-accueil .cba-grand { font-size: 20px !important; }
}
@media (prefers-reduced-motion: reduce) { .cba-pl .cba-cherche.cba-halo { animation: none; } }

/* 1.2.15 : rien d'ouvert d'office sur la carte des magasins */
.cbvc-fiche:empty{display:none!important}
