/* Bandeau de catégorie : même grammaire que #home_banners (coins arrondis, photo, voile dégradé, boutons) */
.rdd-bandeau { display: flex; min-height: 260px; }
.rdd-bandeau__image { position: absolute; inset: 0; width: 100%; max-width: none; height: 100%; object-fit: cover; }
.rdd-bandeau .rdd-bandeau__voile {
  position: relative !important;
  flex: 1;
  min-width: 0;
  padding: 26px 32px;
  color: #fff;
  background: linear-gradient(100deg, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .5) 55%, rgba(0, 0, 0, .15) 100%);
}
.rdd-bandeau__sur { align-self: flex-start; margin: 0 0 10px; padding: 5px 12px; border-radius: 30px; background: rgba(255, 255, 255, .16); backdrop-filter: blur(4px); color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rdd-bandeau__accroche { margin: 0 0 6px; font-size: 1.6rem; font-weight: 700; line-height: 1.2; }
.rdd-bandeau__texte { margin: 0 0 14px; max-width: 640px; font-size: .95rem; font-weight: 500; }
.rdd-bandeau__promesses { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; }
.rdd-bandeau__promesses li {
  padding: 5px 12px;
  border-radius: 30px;
  background: rgba(255, 255, 255, .16);
  backdrop-filter: blur(4px);
  font-size: .8rem;
  font-weight: 600;
}
.rdd-bandeau__boutons { display: flex; flex-wrap: wrap; gap: 10px; }
/* 3 à 7 produits par catégorie : le tri ne sert pas, il est retiré ; le titre remonte vers le menu */
#category #js-product-list-top { display: none !important; }
#category #wrapper { padding-top: 0 !important; }

/* Ils nous font confiance : texte, chiffres et carte des établissements clients, puis la liste */
.rdd-confiance { padding: 40px; color: #fff; background: radial-gradient(circle at 85% 15%, #34343f 0%, #1F1F27 60%); box-shadow: 0 24px 50px -30px rgba(31, 31, 39, .8); }
/* Photo de cérémonie en tête de bande : elle devient transparente vers le bas (masque), donc se fond dans le fond
   dégradé de la bande sans trait, et le texte remonte un peu sur la partie fondue. */
.rdd-confiance { position: relative; overflow: hidden; }
.rdd-confiance__photo { position: relative; height: 300px; margin: -40px -40px -60px; }
.rdd-confiance__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; opacity: .92;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 38%, rgba(0,0,0,.55) 62%, rgba(0,0,0,.15) 82%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 38%, rgba(0,0,0,.55) 62%, rgba(0,0,0,.15) 82%, transparent 100%); }
.rdd-confiance__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(31,31,39,.15), rgba(31,31,39,0) 30%); pointer-events: none; }
.rdd-confiance__haut, .rdd-confiance__liste { position: relative; z-index: 1; }
.rdd-confiance__haut { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px; align-items: center; }
.rdd-confiance__sur { margin: 0 0 10px; color: rgba(255, 255, 255, .6); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rdd-confiance__titre { margin: 0 0 12px; color: #fff; font-size: 1.6rem; font-weight: 700; line-height: 1.25; }
.rdd-confiance__texte { margin: 0 0 22px; color: rgba(255, 255, 255, .75); line-height: 1.6; }
.rdd-confiance__chiffres { display: flex; flex-wrap: wrap; gap: 24px; margin: 0 0 26px; padding: 0; list-style: none; }
.rdd-confiance__chiffres li { padding-left: 12px; border-left: 2px solid var(--primary); }
.rdd-confiance__chiffres b { display: block; color: #fff; font-size: 1.5rem; font-weight: 800; line-height: 1.1; }
.rdd-confiance__chiffres span { color: rgba(255, 255, 255, .6); font-size: .75rem; font-weight: 600; }
/* Carte des établissements clients : tracé réel, voisins en filigrane, chapeau de l'atelier */
.rdd-carte { display: block; width: 100%; max-width: 480px; height: auto; margin: 0 auto; overflow: hidden; border-radius: 18px; }
.rdd-carte__voisin { fill: rgba(255, 255, 255, .025); stroke: rgba(255, 255, 255, .08); stroke-width: 1; stroke-linejoin: round; }
.rdd-carte__pays { fill: rgba(255, 255, 255, .06); stroke: rgba(255, 255, 255, .22); stroke-width: 1.2; stroke-linejoin: round; }
.rdd-carte__pays--fr { fill: rgba(255, 255, 255, .12); stroke: rgba(255, 255, 255, .35); }
.rdd-carte__trajets path { fill: none; stroke: rgba(255, 255, 255, .22); stroke-width: 1.2; stroke-dasharray: 2 5; stroke-linecap: round; }
.rdd-carte__client { fill: #e4434a; stroke: #1F1F27; stroke-width: 3; }
.rdd-carte__lib { fill: rgba(255, 255, 255, .82); font-size: 12px; font-weight: 600; paint-order: stroke; stroke: #1F1F27; stroke-width: 3px; stroke-linejoin: round; }
.rdd-carte__lib--fort { fill: #fff; font-size: 13.5px; font-weight: 800; }
.rdd-carte__ombre { fill: rgba(0, 0, 0, .45); }
.rdd-carte__onde { fill: none; stroke: #e4434a; stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: rdd-onde 2.6s ease-out infinite; }
.rdd-carte__plateau { fill: #b5121b; stroke: #fff; stroke-width: 1.6; stroke-linejoin: round; }
.rdd-carte__calotte { fill: #8e0d14; stroke: #fff; stroke-width: 1.6; stroke-linejoin: round; }
.rdd-carte__gland { fill: none; stroke: #f2c14e; stroke-width: 1.6; stroke-linecap: round; }
.rdd-carte__houppe { fill: #f2c14e; }
@keyframes rdd-onde { from { opacity: .9; transform: scale(.6); } to { opacity: 0; transform: scale(2.4); } }
@media (prefers-reduced-motion: reduce) { .rdd-carte__onde { animation: none; opacity: .5; } }
.rdd-carte__chapeau { transform: translateY(-6px) scale(1.4); }
@media (max-width: 767px) {
  .rdd-carte__lib { font-size: 20px; stroke-width: 4px; }
  .rdd-carte__lib--fort { font-size: 22px; }
  .rdd-carte__client { r: 10px; }
  .rdd-carte__chapeau { transform: translateY(-7px) scale(1.5); }
  .rdd-carte__trajets path { stroke-width: 1.8; }
}
.rdd-confiance__liste { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; margin: 32px 0 0; padding: 22px 0 0; border-top: 1px solid rgba(255, 255, 255, .12); list-style: none; }
.rdd-confiance__liste li { position: relative; padding: 7px 0 7px 18px; color: rgba(255, 255, 255, .85); font-size: .85rem; font-weight: 600; }
.rdd-confiance__liste li::before { content: ""; position: absolute; top: calc(7px + .55em); left: 0; width: 7px; height: 7px; margin-top: -3.5px; border-radius: 50%; background: #e4434a; }

/* Tableaux des textes (prix par quantité…) */
[id^="category-description"] table, .product-description table, #description table {
  width: auto;
  min-width: 320px;
  max-width: 100%;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 0 0 1px #e2e2e8;
}
[id^="category-description"] table th, .product-description table th, #description table th,
[id^="category-description"] table thead td, .product-description table thead td, #description table thead td {
  padding: 12px 22px;
  border: 0;
  color: #fff;
  background: #1F1F27;
  font-size: .85rem;
  font-weight: 700;
}
[id^="category-description"] table td, .product-description table td, #description table td { padding: 10px 22px; border: 0; border-top: 1px solid #ececf1; font-size: .9rem; }
[id^="category-description"] table tbody tr:nth-child(even) td, .product-description table tbody tr:nth-child(even) td, #description table tbody tr:nth-child(even) td { background: #f8f8fa; }
[id^="category-description"] table tbody tr:hover td, .product-description table tbody tr:hover td, #description table tbody tr:hover td { background: #fdf6f6; }
[id^="category-description"] table td:not(:first-child), .product-description table td:not(:first-child), #description table td:not(:first-child),
[id^="category-description"] table th:not(:first-child), .product-description table th:not(:first-child), #description table th:not(:first-child) { text-align: right; }
[id^="category-description"] table td:nth-child(2), .product-description table td:nth-child(2), #description table td:nth-child(2) { color: var(--primary); font-weight: 700; }

/* Barre de livraison offerte : encadré avec pictogramme, montant en avant, exemple calculé sur le tarif dégressif */
.rdd-livraison { display: flex; align-items: center; gap: 14px; margin: 16px 0; padding: 14px 16px; border: 1px solid #f0d7d8; background: #fdf6f6; }
.rdd-livraison__ico { display: grid; flex: none; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #fff; background: var(--primary); }
.rdd-livraison__coche, .rdd-livraison.is-acquise .rdd-livraison__camion { display: none; }
.rdd-livraison.is-acquise .rdd-livraison__coche { display: block; }
.rdd-livraison__corps { flex: 1; min-width: 0; }
.rdd-livraison__texte { margin: 0 0 7px; font-size: .9rem; font-weight: 600; }
.rdd-livraison__texte strong { color: var(--primary); font-size: 1.05rem; }
.rdd-livraison__barre { height: 10px; border-radius: 10px; background: #f0d7d8; overflow: hidden; }
.rdd-livraison__barre span { display: block; height: 100%; border-radius: 10px; background: var(--primary); transition: width .4s ease; }
.rdd-livraison__exemple { display: block; margin-top: 6px; color: #6b6b76; font-size: .78rem; }
.rdd-livraison.is-acquise { border-color: #cfe8d9; background: #f2faf5; }
.rdd-livraison.is-acquise .rdd-livraison__ico { background: #1b7a43; }
.rdd-livraison.is-acquise .rdd-livraison__texte { margin: 0; color: #1b7a43; }
.rdd-livraison.is-acquise .rdd-livraison__barre, .rdd-livraison.is-acquise .rdd-livraison__exemple { display: none; }

/* FAQ : lignes fines et flèche (le texte publié est replié à l'affichage, rien n'est réécrit) */
.rdd-faq { border-bottom: 1px solid #e2e2e8; }
.rdd-faq > summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 2px;
  cursor: pointer;
  list-style: none;
}
.rdd-faq > summary::-webkit-details-marker { display: none; }
.rdd-faq > summary::after {
  content: "";
  flex: none;
  width: 9px;
  height: 9px;
  margin: 6px 4px 0 0;
  border-right: 2px solid #1F1F27;
  border-bottom: 2px solid #1F1F27;
  transform: rotate(45deg);
  transition: transform .2s;
}
.rdd-faq[open] > summary::after { transform: rotate(-135deg); }
.rdd-faq > summary:hover h3 { color: var(--primary); }
.rdd-faq > summary h3 { margin: 0; font-size: 1rem; font-weight: 700; line-height: 1.4; transition: color .2s; }
.rdd-faq__reponse { padding: 0 2px 10px; }
.rdd-faq-zone { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 36px; align-items: start; margin-top: 8px; }
.rdd-faq-zone .rdd-faq:first-child { border-top: 1px solid #e2e2e8; }

/* Une autre question ? */
.rdd-aide { display: flex; gap: 18px; align-items: flex-start; margin: 2rem 0; padding: 24px; color: #fff; background: #1F1F27; box-shadow: 0 18px 40px -24px rgba(31, 31, 39, .7); }
.rdd-faq-zone .rdd-aide { position: sticky; top: 90px; flex-direction: column; margin: 0; }
.rdd-aide__photo { flex: none; width: 72px; height: 72px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .9); object-fit: cover; }
.rdd-aide__corps { flex: 1; min-width: 0; }
.rdd-aide__titre { margin: 0 0 6px; color: #fff; font-size: 1.2rem; font-weight: 700; }
.rdd-aide__texte { margin: 0 0 16px; color: rgba(255, 255, 255, .75); font-size: .88rem; line-height: 1.5; }
.rdd-aide__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.rdd-aide__tel { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 1.15rem; font-weight: 700; white-space: nowrap; }
.rdd-aide__tel:hover, .rdd-aide__tel:focus { color: #fff; text-decoration: underline; }
.rdd-aide a.rdd-aide__tel, .rdd-aide a.rdd-aide__tel:visited, #description .rdd-aide a.rdd-aide__tel, [id^="category-description"] .rdd-aide a.rdd-aide__tel { color: #fff; text-decoration: none; }
.rdd-aide a.rdd-aide__tel:hover, .rdd-aide a.rdd-aide__tel:focus { color: #fff; text-decoration: underline; }
.rdd-faq-zone .rdd-aide__actions { flex-direction: column; align-items: stretch; }
.rdd-faq-zone .rdd-aide__bouton { width: 100%; }

/* Fiche produit : pleine largeur sans conteneur, les blocs reprennent la largeur du site */
#product .rdd-aide, #product .rdd-confiance { max-width: 1120px; margin-right: auto; margin-left: auto; }

/* Catégorie, ordinateur : sous les produits, texte, FAQ et confiance sur toute la largeur */
.rdd-pleine { margin-top: 1rem; }
.rdd-faq-bloc { margin-bottom: 2.5rem; }
.rdd-faq-bloc > h2 { margin: 2rem 0 1rem; }
.rdd-pleine [id^="category-description"] > p,
.rdd-pleine [id^="category-description"] > ul,
.rdd-pleine [id^="category-description"] > h2 { max-width: 860px; }
.rdd-pleine [id^="category-description"] > h2 { margin-top: 2.5rem; }

@media (max-width: 991px) {
  .rdd-confiance__liste { grid-template-columns: 1fr 1fr; }
  .rdd-faq-zone { grid-template-columns: 1fr; gap: 20px; }
  .rdd-faq-zone .rdd-aide { position: static; order: 2; flex-direction: row; }
  .rdd-faq-zone .rdd-aide__actions { flex-direction: row; align-items: center; }
  .rdd-faq-zone .rdd-aide__bouton { width: auto; }
}

@media (max-width: 767px) {
  .rdd-aide, .rdd-faq-zone .rdd-aide { flex-direction: column; padding: 20px; }
  .rdd-aide__actions, .rdd-faq-zone .rdd-aide__actions { flex-direction: column; align-items: stretch; }
  .rdd-aide__tel { justify-content: center; padding: 10px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 30px; }
  .rdd-aide__bouton, .rdd-faq-zone .rdd-aide__bouton { width: 100%; }
  .rdd-bandeau { min-height: 0; }
  .rdd-bandeau__sur { font-size: .65rem; }
  .rdd-bandeau__texte { margin-bottom: 12px; font-size: .85rem; line-height: 1.45; }
  /* Une promesse par ligne : la ligne qui défilait se lisait mal sur téléphone */
  .rdd-bandeau__promesses { flex-direction: column; align-items: flex-start; gap: 6px; margin: 0 0 14px; }
  .rdd-bandeau__boutons { gap: 8px; }
  .rdd-bandeau .rdd-cta { min-height: 46px; }
  .rdd-bandeau .rdd-bandeau__voile { padding: 22px 18px; background: linear-gradient(to top, rgba(0, 0, 0, .8), rgba(0, 0, 0, .35)); }
  .rdd-bandeau__boutons .rdd-cta { flex: 1 1 100%; }
  .rdd-bandeau__accroche { font-size: 1.25rem; }
  .rdd-confiance { padding: 28px 20px; }
  .rdd-confiance__photo { height: 220px; margin: -28px -20px -44px; }
  .rdd-confiance__haut { grid-template-columns: 1fr; gap: 24px; }
  .rdd-confiance__titre { font-size: 1.3rem; }
  .rdd-confiance__liste { grid-template-columns: 1fr 1fr; gap: 0 14px; }
  .rdd-confiance__liste li { font-size: .75rem; }
  .rdd-bandeau__promesses li { font-size: .75rem; }
}

/* Bouton pilule à carré noir fléché : au survol le carré s'étire sous le libellé, la flèche est relayée, le libellé roule */
.rdd-cta {
  --cta-fond: #fff;
  --cta-texte: #1F1F27;
  --cta-carre: #1F1F27;
  --cta-fleche: #fff;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  max-width: 100%;
  min-height: 50px;
  padding: 5px 5px 5px 24px;
  border: 1.5px solid var(--cta-fond);
  border-radius: 12px;
  color: var(--cta-texte);
  background: var(--cta-fond);
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  isolation: isolate;
  overflow: hidden;
  transition: color .45s cubic-bezier(.65, 0, .35, 1);
}
.rdd-cta::before {
  content: "";
  position: absolute;
  top: 5px;
  right: 5px;
  bottom: 5px;
  z-index: -1;
  width: 38px;
  border-radius: 8px;
  background: var(--cta-carre);
  transition: width .45s cubic-bezier(.65, 0, .35, 1), border-radius .45s cubic-bezier(.65, 0, .35, 1);
}
.rdd-cta__txt { display: block; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.rdd-cta__txt > span { display: block; text-shadow: 0 1.6em currentColor; transition: transform .45s cubic-bezier(.65, 0, .35, 1); }
.rdd-cta__ico { position: relative; flex: none; width: 38px; height: 38px; overflow: hidden; }
.rdd-cta__ico::before, .rdd-cta__ico::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--cta-fleche);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 18px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 18px no-repeat;
  transition: transform .45s cubic-bezier(.65, 0, .35, 1);
}
.rdd-cta__ico::after { transform: translateX(-120%); }
.rdd-cta:hover, .rdd-cta:focus-visible { color: var(--cta-fleche); text-decoration: none; }
.rdd-cta:hover::before, .rdd-cta:focus-visible::before { width: calc(100% - 10px); border-radius: 8px; }
.rdd-cta:hover .rdd-cta__txt > span, .rdd-cta:focus-visible .rdd-cta__txt > span { transform: translateY(-1.6em); }
.rdd-cta:hover .rdd-cta__ico::before, .rdd-cta:focus-visible .rdd-cta__ico::before { transform: translateX(120%); }
.rdd-cta:hover .rdd-cta__ico::after, .rdd-cta:focus-visible .rdd-cta__ico::after { transform: translateX(0); }
.rdd-cta:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.rdd-cta--contour { --cta-fond: transparent; --cta-texte: #fff; --cta-carre: #fff; --cta-fleche: #1F1F27; border-color: #fff; }
.rdd-cta--rouge { --cta-fond: var(--primary); --cta-texte: #fff; --cta-carre: #fff; --cta-fleche: var(--primary); border-color: var(--primary); }
.rdd-cta--rouge:hover, .rdd-cta--rouge:focus-visible { color: var(--primary); }

/* En-tête : bouton devis entre le menu et le compte */
.rdd-entete { display: flex; align-items: center; padding-right: 4px; }
/* le logo garde sa largeur, le menu cède la place au bouton */
.header-top__row .header-top__block--logo { flex: 0 0 200px; max-width: 200px; }
.header-top__row .header-top__block--menu a { white-space: nowrap; }
@media (min-width: 992px) {
  .header-top__row .header-top__block--menu { flex: 1 1 0%; width: auto; min-width: 0; max-width: none; }
}
@media (max-width: 575px) {
  .header-top__row .header-top__block--logo { flex: 1 1 auto; max-width: none; }
}
.rdd-entete .rdd-cta { gap: 12px; min-height: 44px; padding-left: 18px; font-size: .82rem; white-space: nowrap; }
.rdd-entete .rdd-cta::before, .rdd-entete .rdd-cta__ico { width: 34px; }
.rdd-entete .rdd-cta__ico { height: 34px; }
.rdd-entete .rdd-cta:hover::before, .rdd-entete .rdd-cta:focus-visible::before { width: calc(100% - 10px); }
/* le menu occupe la ligne : libellé court, le titre complet reste lisible au survol */
.rdd-entete__long { display: none; }
@media (max-width: 575px) {
  .rdd-entete { padding: 0; }
  .rdd-entete .rdd-cta { gap: 8px; min-height: 38px; padding: 3px 3px 3px 14px; font-size: .8rem; }
  .rdd-entete .rdd-cta::before { top: 3px; right: 3px; bottom: 3px; width: 30px; }
  .rdd-entete .rdd-cta__ico { width: 30px; height: 30px; }
  .rdd-entete .rdd-cta:hover::before, .rdd-entete .rdd-cta:focus-visible::before { width: calc(100% - 6px); }
}

@media (prefers-reduced-motion: reduce) {
  .rdd-cta, .rdd-cta::before, .rdd-cta__txt > span, .rdd-cta__ico::before, .rdd-cta__ico::after { transition: none; }
}

/* Liens dans les textes : le thème les affichait en noir sur un texte gris foncé, on ne les voyait pas */
[id^="category-description"] a:not(.btn):not(.rdd-cta):not(.rdd-aide__tel),
.product-description a:not(.btn):not(.rdd-cta):not(.rdd-aide__tel),
#description a:not(.btn):not(.rdd-cta):not(.rdd-aide__tel),
.page-cms .cms-content a:not(.btn) {
  color: var(--primary);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color .2s;
}
[id^="category-description"] a:not(.btn):not(.rdd-cta):not(.rdd-aide__tel):hover,
.product-description a:not(.btn):not(.rdd-cta):not(.rdd-aide__tel):hover,
#description a:not(.btn):not(.rdd-cta):not(.rdd-aide__tel):hover,
.page-cms .cms-content a:not(.btn):hover { color: #1F1F27; }
.rdd-entete { margin-right: 10px; }

/* Paliers de prix sur la fiche : suivent la quantité choisie */
.rdd-palier { margin: 16px 0 0; padding: 14px 16px; border: 1px solid #e2e2e8; background: #fff; }
.rdd-palier__calcul { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 10px; font-size: 15px; }
.rdd-palier__eco { padding: 2px 9px; border-radius: 999px; font-size: 13px; font-weight: 600; color: #1b7a43; background: #e8f5ee; }
.rdd-palier__etapes { display: grid; grid-template-columns: repeat(auto-fit, minmax(68px, 1fr)); gap: 4px; margin: 0; padding: 0; list-style: none; }
.rdd-palier__etapes li { display: flex; flex-direction: column; align-items: center; padding: 7px 4px; border-radius: 6px; font-size: 12px; line-height: 1.3; color: #55556a; background: #f6f6f8; transition: background .2s, color .2s; }
.rdd-palier__etapes li b { font-weight: 600; white-space: nowrap; }
.rdd-palier__etapes li span { font-size: 13px; }
.rdd-palier__etapes li.is-passe { background: #f0d7d8; color: #1f1f27; }
.rdd-palier__etapes li.is-actif { background: var(--primary); color: #fff; }
.rdd-palier__suite { margin: 10px 0 0; font-size: 13px; color: #55556a; }
.rdd-palier + .rdd-livraison { margin-top: 8px; }
.product-discounts tr.rdd-tr-actif td, .table-product-discounts tr.rdd-tr-actif td { font-weight: 600; background: #fdf6f6; }
@media (max-width: 575px) { .rdd-palier__etapes { grid-template-columns: repeat(3, 1fr); } }

/* Appel direct depuis l'en-tête, sur mobile et tablette (la bande du haut n'y affiche pas le numéro) */
.rdd-entete__tel { display: none; flex: none; place-items: center; width: 40px; height: 40px; margin-left: 6px; border-radius: 50%; color: var(--primary); background: #eff0f2; transition: color .2s, background .2s; }
.rdd-entete__tel:hover, .rdd-entete__tel:focus-visible { color: #fff; background: var(--primary); }
@media (max-width: 991px) { .rdd-entete__tel { display: grid; } }
/* Le tableau des remises fait doublon avec la barre des paliers, plus lisible : masqué quand elle est là */
.rdd-avec-paliers .product-discounts { display: none; }
.an-pf-fields-total[hidden] { display: none; }
/* Précision sous le gros prix de la fiche */
.rdd-prix-note { margin-top: 2px; font-size: 13px; line-height: 1.35; color: #55556a; }
.rdd-prix-note b { display: block; font-size: 15px; font-weight: 600; color: #1f1f27; }

/* Boutons d'achat (fiche, fenêtre d'ajout, panier) au style rdd-cta, sur toute la largeur */
.rdd-cta--large, .rdd-cta--panier { display: flex; width: 100%; min-height: 54px; font-size: 1rem; }
.rdd-cta--panier { cursor: pointer; }
.rdd-cta--panier[disabled], .rdd-cta--panier.disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }
.rdd-cta--panier .rdd-cta__ico::before, .rdd-cta--panier .rdd-cta__ico::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2.2l2.3 10.5h10.3L20 7.5H6.4'/%3E%3Ccircle cx='9.5' cy='19' r='1.4'/%3E%3Ccircle cx='17' cy='19' r='1.4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2.2l2.3 10.5h10.3L20 7.5H6.4'/%3E%3Ccircle cx='9.5' cy='19' r='1.4'/%3E%3Ccircle cx='17' cy='19' r='1.4'/%3E%3C/svg%3E");
  -webkit-mask-size: 20px; mask-size: 20px;
}
.modal-footer .rdd-cta--large { margin-bottom: 6px; }

/* Options de personnalisation : le compteur « 0/100 » se lisait comme une quantité, on affiche son libellé */
.anpf-field-counter-max_length .anpf-field-counter-text { display: inline !important; margin-right: 2px; }
.an-pf-field-descr { display: block; margin-top: 6px; font-size: 13px; line-height: 1.4; color: #55556a; }
.an-pf-field .anpf-field-counter-max_length { position: static !important; inset: auto !important; transform: none !important; margin-top: 4px; padding: 0 !important; background: none !important; text-align: right; font-size: 12px; color: #55556a; }

/* Fiche produit, ordinateur : « Une autre question ? » à gauche, « Ils nous font confiance » à droite */
@media (min-width: 992px) {
  #product .rdd-duo { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 24px; align-items: start; max-width: 1120px; margin: 2rem auto; }
  #product .rdd-duo .rdd-aide { position: sticky; top: 90px; flex-direction: column; margin: 0; }
  #product .rdd-duo .rdd-aide__actions { flex-direction: column; align-items: stretch; }
  #product .rdd-duo .rdd-aide__bouton { width: 100%; }
  #product .rdd-duo .rdd-confiance { max-width: none; margin: 0; }
  #product .rdd-duo .rdd-confiance__liste { grid-template-columns: 1fr 1fr; }
}

/* Fenêtre « ajouté au panier » : bouton secondaire sobre et deux produits suggérés */
.rdd-continuer { display: block; width: 100%; min-height: 46px; margin: 0; padding: 10px 16px; border: 1.5px solid #e2e2e8; border-radius: 12px; color: #1F1F27; background: #fff; font-size: .9rem; font-weight: 600; cursor: pointer; transition: background .2s, border-color .2s; }
.rdd-continuer:hover, .rdd-continuer:focus-visible { border-color: #1F1F27; background: #f6f6f8; color: #1F1F27; }
.rdd-suggestions { margin-top: 18px; padding-top: 16px; border-top: 1px solid #e2e2e8; }
.rdd-suggestions__titre { margin: 0 0 10px; font-size: 13px; font-weight: 600; color: #55556a; }
.rdd-suggestions__liste { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; list-style: none; }
.rdd-suggestions__carte { display: grid; grid-template-columns: 52px 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; height: 100%; padding: 8px; border: 1px solid #e2e2e8; border-radius: 10px; color: #1F1F27; text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.rdd-suggestions__carte:hover, .rdd-suggestions__carte:focus-visible { border-color: var(--primary); box-shadow: 0 6px 18px -10px rgba(31, 31, 39, .5); color: #1F1F27; text-decoration: none; }
.rdd-suggestions__carte img { grid-row: span 2; width: 52px; height: 52px; border-radius: 6px; object-fit: contain; background: #f6f6f8; }
.rdd-suggestions__nom { font-size: 12.5px; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rdd-suggestions__prix { font-size: 13px; font-weight: 700; color: var(--primary); }
.modal-footer .rdd-suggestions { flex: 0 0 100%; width: 100%; margin: 14px 0 0; }

/* Safari iOS : la ligne de promesses qui défile élargissait le bandeau vers la droite (capture de François, 30/10/2026).
   Le bandeau prend la largeur de sa colonne, jamais celle de son contenu. */
.rdd-bandeau { width: 100%; max-width: 100%; min-width: 0; contain: inline-size; }
.rdd-bandeau .rdd-bandeau__voile { flex: 1 1 0%; width: 100%; max-width: 100%; overflow: hidden; }
#category #content-wrapper { min-width: 0; }
/* Mobile : le contenu commençait 10 px plus à droite que l'en-tête ; mêmes 16 px de marge partout */
@media (max-width: 767px) {
  #category #wrapper > .container { padding-right: 0; padding-left: 0; }
}
/* Fiche : colonne d'actions vide à droite du bouton panier (10 px de décalage) */
.product-quantity > .col-auto:not(:has(a, button)) { display: none; }

/* Paliers : dire clairement que ce sont des prix dégressifs */
.rdd-palier__titre { margin: 0 0 8px; font-size: 13px; color: #55556a; }
.rdd-palier__titre b { color: var(--primary); font-size: 14px; }

/* Panier : la réassurance devient une carte, icône à gauche, titre et texte à droite */
.cart-grid-right .blockreassurance_product { margin-top: 16px; padding: 6px 16px; border-radius: 6.4px; background: #fff; box-shadow: 0 1px 5px rgba(0, 0, 0, .1); }
.cart-grid-right .blockreassurance_product > div { display: grid; grid-template-columns: 36px minmax(0, 1fr); column-gap: 12px; align-items: center; margin: 0; padding: 10px 0; }
.cart-grid-right .blockreassurance_product > div + div { border-top: 1px solid #f0f0f2; }
.cart-grid-right .blockreassurance_product > div:empty { display: none; }
.cart-grid-right .blockreassurance_product .item-product { grid-row: span 2; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin: 0; }
.cart-grid-right .blockreassurance_product .item-product svg, .cart-grid-right .blockreassurance_product .item-product img { width: 36px; height: 36px; }
.cart-grid-right .blockreassurance_product .block-title { margin: 0; font-size: 14px; font-weight: 700; line-height: 1.3; }
.cart-grid-right .blockreassurance_product p { grid-column: 2; margin: 2px 0 0; font-size: 13px; line-height: 1.4; color: #55556a; }

/* Barre collante des fiches, mobile seulement */
.rdd-collant { display: none; }
@media (max-width: 767px) {
  .rdd-collant { position: fixed; right: 0; bottom: 0; left: 0; z-index: 1030; display: flex; align-items: center; gap: 10px; margin: 0; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid #e2e2e8; background: #fff; box-shadow: 0 -8px 24px -12px rgba(31, 31, 39, .35); transform: translateY(110%); transition: transform .3s ease; }
  .rdd-collant.is-visible { transform: none; }
  body.rdd-collant-ouvert { padding-bottom: 76px; }
  .rdd-collant__total { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; margin: 0; line-height: 1.2; }
  .rdd-collant__total span { overflow: hidden; color: #55556a; font-size: 11.5px; white-space: nowrap; text-overflow: ellipsis; }
  .rdd-collant__total b { color: #1F1F27; font-size: 16px; }
  .rdd-collant__qte { display: flex; flex: none; align-items: center; border: 1px solid #e2e2e8; border-radius: 10px; }
  .rdd-collant__qte button { width: 30px; height: 40px; padding: 0; border: 0; color: #1F1F27; background: none; font-size: 18px; line-height: 1; }
  .rdd-collant__qte span { min-width: 24px; font-size: 14px; font-weight: 700; text-align: center; }
  .rdd-collant .rdd-collant__bouton { display: inline-flex; flex: none; width: auto; min-height: 46px; gap: 8px; padding-left: 14px; font-size: .85rem; }
  .rdd-collant .rdd-collant__bouton::before, .rdd-collant .rdd-collant__bouton .rdd-cta__ico { width: 34px; }
  .rdd-collant .rdd-collant__bouton .rdd-cta__ico { height: 34px; }
  .rdd-a-remplir { border-radius: 8px; outline: 2px solid var(--primary); outline-offset: 6px; animation: rdd-secousse .35s 2; }
}
@keyframes rdd-secousse { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }

/* Fiche, mobile : la description perdait 52 px de chaque côté (carte + bloc) ; alignée sur le reste de la fiche */
@media (max-width: 767px) {
  #product .card-body:has(.product-description) { padding-right: 0; padding-left: 0; }
  #product .product-description { padding-right: 0; padding-left: 0; }
}
@media (max-width: 767px) {
  [id^="category-description"] table td, [id^="category-description"] table th, .product-description table td, .product-description table th, #description table td, #description table th { padding: 8px 10px; font-size: .8rem; }
}
@media (max-width: 767px) {
  .rdd-collant__total span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 11px; line-height: 1.3; white-space: normal; }
}
/* Bas de fiche en deux colonnes : les deux blocs démarrent à la même hauteur, chiffres sur une ligne */
@media (min-width: 992px) {
  #product .rdd-duo { width: calc(100% - 40px); }
  #product .rdd-duo > .rdd-aide, #product .rdd-duo > .rdd-confiance { margin-top: 0 !important; margin-bottom: 0 !important; }
  #product .rdd-duo .rdd-confiance__chiffres { flex-wrap: nowrap; gap: 18px; }
}


/* Page panier : produits souvent commandés avec le panier */
.cart-grid-body .rdd-suggestions { margin: 24px 0 0; padding: 20px; border: 1px solid #e2e2e8; border-radius: 12px; background: #fff; }
.cart-grid-body .rdd-suggestions__titre { font-size: 15px; color: #1F1F27; }
@media (min-width: 768px) {
  .cart-grid-body .rdd-suggestions__liste { grid-template-columns: repeat(2, 1fr); }
}

/* Page panier : questions avant de commander */
.rdd-faq-panier { margin: 24px 0 0; padding: 8px 20px 12px; border: 1px solid #e2e2e8; border-radius: 12px; background: #fff; }
.rdd-faq-panier__titre { margin: 12px 0 4px; font-size: 1.15rem; }
.rdd-faq-panier .rdd-faq:last-child { border-bottom: 0; }
.rdd-faq-panier .rdd-faq > summary { padding: 14px 2px; }
.rdd-faq-panier .rdd-faq > summary h3 { font-size: .95rem; }
.rdd-faq-panier .rdd-faq__reponse p { margin: 0 0 6px; font-size: .9rem; }

/* Vignettes produit : « Voir le produit » au style des boutons maison */
.rdd-cta--sombre { --cta-fond: #1F1F27; --cta-texte: #fff; --cta-carre: #fff; --cta-fleche: #1F1F27; border-color: #1F1F27; }
.rdd-cta--sombre:hover, .rdd-cta--sombre:focus-visible { color: #1F1F27; }
.rdd-cta--trait { --cta-fond: #fff; --cta-texte: #1F1F27; --cta-carre: #1F1F27; --cta-fleche: #fff; border-color: #1F1F27; }
.rdd-cta--trait:hover, .rdd-cta--trait:focus-visible { color: #fff; }
.product-miniature__actions .rdd-cta--vignette { display: flex; width: 100%; min-height: 46px; font-size: .85rem; }
.product-miniature__actions .rdd-cta--vignette::before, .product-miniature__actions .rdd-cta--vignette .rdd-cta__ico { width: 34px; }
.product-miniature__actions .rdd-cta--vignette .rdd-cta__ico { height: 34px; }
@media (max-width: 767px) {
  .product-miniature__actions .rdd-cta--vignette { gap: 6px; padding-left: 12px; font-size: .78rem; }
}
/* Cartes étroites (carrousels à deux cartes sur téléphone) : texte entier, sans la flèche */
.product-miniature__actions { container-type: inline-size; }
@container (max-width: 190px) {
  .rdd-cta--vignette::before, .rdd-cta--vignette .rdd-cta__ico { display: none; }
  .rdd-cta--vignette { justify-content: center; padding: 5px 10px; }
}

/* Survol : le carré doit toujours s'étirer, même là où sa largeur au repos est redéfinie (en-tête, vignettes) */
.rdd-cta.rdd-cta:hover::before, .rdd-cta.rdd-cta:focus-visible::before { width: calc(100% - 10px); }
@container (max-width: 190px) {
  .rdd-cta--vignette:hover, .rdd-cta--vignette:focus-visible { color: var(--cta-texte); }
}

/* Panier vide : best-sellers en liste serrée (petit panier de l'en-tête) */
.rdd-suggestions--compact { margin-top: 14px; padding-top: 14px; }
.rdd-suggestions--compact .rdd-suggestions__liste { grid-template-columns: 1fr; gap: 8px; }
.rdd-suggestions--compact .rdd-suggestions__carte { grid-template-columns: 44px 1fr auto; grid-template-rows: auto; padding: 6px 10px 6px 6px; }
.rdd-suggestions--compact .rdd-suggestions__carte img { grid-row: auto; width: 44px; height: 44px; }
.rdd-suggestions--compact .rdd-suggestions__prix { white-space: nowrap; }

/* Carrousels de produits : titre en haut, bouton calé en bas, quelle que soit la longueur du titre */
.product-slider .product-miniature { display: flex; flex-direction: column; }
.product-slider .product-miniature > .p-3 { display: flex; flex: 1 1 auto; flex-direction: column; }
.product-slider .product-miniature__actions { margin-top: auto; padding-top: 10px; }

/* Fiche : produits vus récemment (rempli par le script, mémoire du navigateur) */
.rdd-recents { margin: 0; }
.rdd-recents .rdd-suggestions__titre { font-size: 15px; color: #1F1F27; }
@media (min-width: 768px) { .rdd-recents .rdd-suggestions__liste { grid-template-columns: repeat(4, 1fr); } }

/* Page introuvable : meilleures ventes et accès aux rayons */
.rdd-404 { margin: 24px 0 32px; }
.rdd-404 .rdd-suggestions { margin: 0 0 24px; padding: 0; border: 0; }
@media (min-width: 768px) { .rdd-404 .rdd-suggestions__liste { grid-template-columns: repeat(4, 1fr); } }
.rdd-404__rayons { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }

/* Pas de pastille « réduction » sur les vignettes : les prix dégressifs ne sont pas des promotions */
.product-flags__flag--discount { display: none; }
.product-prices .price--regular[hidden] { display: none; }
/* Produit déjà au panier : le palier se calcule sur le total */
.rdd-palier__panier { margin: 8px 0 0; padding: 8px 12px; border-radius: 8px; background: #fbf3f3; font-size: 13px; line-height: 1.45; color: #1f1f27; }
.rdd-palier__panier[hidden] { display: none; }
.rdd-palier__panier b { color: #9b0a10; font-weight: 700; }
/* Fiches toge : quantité calculée d'après les tailles */
.rdd-tailles { margin: 4px 0 14px; padding: 9px 12px; border-radius: 8px; background: #fbf3f3; font-size: 14px; line-height: 1.45; color: #1f1f27; }
.rdd-tailles b { color: #9b0a10; font-weight: 700; }
.rdd-tailles.is-vide { background: #f6f6f8; color: #55556a; }
.rdd-tailles.is-erreur { border: 1px solid #9e0b0f; background: #fdecec; color: #9e0b0f; font-weight: 600; }
.rdd-qte-auto .qty { display: none; }
body.rdd-avec-tailles .rdd-collant__qte button { display: none; }
body.rdd-avec-tailles .rdd-collant__qte span { padding: 0 8px; }
/* Logo : fichier refusé avant l'envoi */
.rdd-logo-erreur { margin: 6px 0 0; color: #9b0a10; font-size: 13px; font-weight: 600; }
.rdd-logo-erreur[hidden] { display: none; }
/* « Vus récemment » : mêmes cartes que « Vous aimerez aussi », 2, 3 puis 4 par ligne comme le carrousel du thème */
.rdd-recents__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 20px; margin: 0 -10px; }
.rdd-recents__item { padding: 0 10px; }
@media (min-width: 1200px) { .rdd-recents__grille { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1440px) { .rdd-recents__grille { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* Cartes produits de toutes les listes : même hauteur, bouton aligné en bas, titre sur deux lignes réservées */
.product-slider .swiper-slide { height: auto; }
.product-miniature { display: flex; flex-direction: column; }
.product-miniature > .p-3 { display: flex; flex: 1 1 auto; flex-direction: column; }
.product-miniature__title { min-height: 2.6em; }
.product-miniature__actions { margin-top: auto; }
.rdd-recents .product-miniature__actions { padding-top: 10px; }

/* Accueil : rayons en cartes défilantes (displayHome) */
.rdd-rayons { padding: 50px 0 32px; }
.rdd-rayons__tete { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-bottom: 26px; text-align: center; }
.rdd-rayons__titre { margin: 0; font-size: 2.3rem; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: #1f1f27; text-wrap: balance; }
.rdd-rayons__sous { max-width: 640px; margin: 0; color: #55556a; font-size: 16px; line-height: 1.5; text-wrap: balance; }
.rdd-cs { position: relative; }
.rdd-cs__piste { display: flex; gap: 16px; margin: 0; padding: 6px 2px 18px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; }
.rdd-cs__piste::-webkit-scrollbar { display: none; }
.rdd-cs__piste.is-glisse { cursor: grabbing; scroll-snap-type: none; }
.rdd-cs__piste.is-glisse a { pointer-events: none; }
.rdd-cs__piste > li { flex: 0 0 220px; scroll-snap-align: start; }
.rdd-cs__piste > li:first-child { margin-left: auto; }
.rdd-cs__piste > li:last-child { margin-right: auto; }
.rdd-cs.has-g .rdd-cs__piste { -webkit-mask-image: linear-gradient(90deg, transparent, #000 48px); mask-image: linear-gradient(90deg, transparent, #000 48px); }
.rdd-cs.has-d .rdd-cs__piste { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); }
.rdd-cs.has-g.has-d .rdd-cs__piste { -webkit-mask-image: linear-gradient(90deg, transparent, #000 48px, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(90deg, transparent, #000 48px, #000 calc(100% - 48px), transparent); }
.rdd-cs__carte { position: relative; display: flex; flex-direction: column; height: 100%; border: 1px solid #ececf1; border-radius: 16px; background: #fff; box-shadow: 0 1px 2px rgba(31,31,39,.04), 0 10px 24px -14px rgba(31,31,39,.18); color: #1f1f27; text-decoration: none; overflow: hidden; transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s, border-color .35s; -webkit-user-drag: none; }
.rdd-cs__carte:hover, .rdd-cs__carte:focus-visible { transform: translateY(-4px); border-color: #dcdce3; box-shadow: 0 2px 4px rgba(31,31,39,.05), 0 18px 36px -16px rgba(31,31,39,.3); color: #1f1f27; text-decoration: none; }
.rdd-cs__carte:focus-visible { outline: 2px solid #9b0a10; outline-offset: 3px; }
.rdd-cs__vignette { display: block; aspect-ratio: 1.15; overflow: hidden; background: #f3f3f6; }
.rdd-cs__vignette img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); -webkit-user-drag: none; }
.rdd-cs__carte:hover .rdd-cs__vignette img { transform: scale(1.06); }
.rdd-cs__nom { display: block; padding: 13px 15px 3px; font-size: 16px; font-weight: 700; line-height: 1.25; }
.rdd-cs__info { display: block; padding: 0 15px 15px; color: #55556a; font-size: 13px; line-height: 1.35; }

/* Carte « Commande de groupe » : photo de cérémonie, texte sur dégradé, bouton du site posé dans une encoche
   découpée en bas de la photo. Coins en creux = quarts de cercle en dégradé radial de la couleur du fond (blanc).
   L'encoche et ses coins doivent rester plus étroits que la carte (210 px en grand), sinon la photo dépasse
   de chaque côté en liseré : d'où le libellé court et le bouton resserré. */
.rdd-cs__carte--groupe { min-height: 274px; border: 0; background: #1f1f27; color: #fff; }
.rdd-cs__carte--groupe:hover, .rdd-cs__carte--groupe:focus-visible { color: #fff; }
.rdd-cs__groupe-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; transition: transform .6s cubic-bezier(.2,.7,.2,1); -webkit-user-drag: none; }
.rdd-cs__carte--groupe::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(20,8,10,.15) 0%, rgba(20,8,10,.35) 38%, rgba(60,4,8,.88) 100%); }
.rdd-cs__carte--groupe:hover .rdd-cs__groupe-photo { transform: scale(1.06); }
.rdd-cs__groupe-texte { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 6px; margin-top: auto; padding: 18px 16px 62px; }
.rdd-cs__groupe-sur { align-self: flex-start; padding: 3px 10px; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; background: rgba(255,255,255,.14); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.rdd-cs__groupe-titre { font-size: 19px; font-weight: 700; line-height: 1.2; text-wrap: balance; }
.rdd-cs__groupe-info { font-size: 13px; line-height: 1.35; opacity: .88; }
/* Le bouton du site (.rdd-cta, blanc à carré sombre), animé au survol de toute la carte */
.rdd-cs__encoche { position: absolute; left: 50%; bottom: 0; z-index: 3; padding: 6px 6px 0; border-radius: 14px 14px 0 0; background: #fff; transform: translateX(-50%); --rdd-c: 12px; }
.rdd-cs__encoche::before, .rdd-cs__encoche::after { content: ""; position: absolute; bottom: 0; width: var(--rdd-c); height: var(--rdd-c); pointer-events: none; }
.rdd-cs__encoche::before { right: calc(100% - .5px); background: radial-gradient(circle at 0 0, transparent calc(var(--rdd-c) - .5px), #fff var(--rdd-c)); }
.rdd-cs__encoche::after { left: calc(100% - .5px); background: radial-gradient(circle at 100% 0, transparent calc(var(--rdd-c) - .5px), #fff var(--rdd-c)); }
.rdd-cs__groupe-cta { gap: 8px; min-height: 42px; padding: 4px 4px 4px 10px; font-size: .8rem; white-space: nowrap; --cta-fond: #9b0a10; --cta-texte: #fff; --cta-carre: #fff; --cta-fleche: #9b0a10; border-color: #9b0a10; }
.rdd-cs__groupe-cta::before { top: 4px; right: 4px; bottom: 4px; }
.rdd-cs__groupe-cta::before, .rdd-cs__groupe-cta .rdd-cta__ico { width: 30px; }
.rdd-cs__groupe-cta .rdd-cta__ico { height: 30px; }
.rdd-cs__carte--groupe:hover .rdd-cta, .rdd-cs__carte--groupe:focus-visible .rdd-cta { color: var(--cta-fleche); }
.rdd-cs__carte--groupe:hover .rdd-cta::before, .rdd-cs__carte--groupe:focus-visible .rdd-cta::before { width: calc(100% - 8px); border-radius: 8px; }
.rdd-cs__carte--groupe:hover .rdd-cta__txt > span, .rdd-cs__carte--groupe:focus-visible .rdd-cta__txt > span { transform: translateY(-1.6em); }
.rdd-cs__carte--groupe:hover .rdd-cta__ico::before, .rdd-cs__carte--groupe:focus-visible .rdd-cta__ico::before { transform: translateX(120%); }
.rdd-cs__carte--groupe:hover .rdd-cta__ico::after, .rdd-cs__carte--groupe:focus-visible .rdd-cta__ico::after { transform: translateX(0); }

.rdd-cs__fleche { position: absolute; top: calc(50% - 26px); z-index: 4; width: 42px; height: 42px; border: 1px solid #ececf1; border-radius: 50%; background: #fff; box-shadow: 0 6px 16px -6px rgba(31,31,39,.3); cursor: pointer; transition: background .2s; }
.rdd-cs__fleche[hidden] { display: none; }
.rdd-cs__fleche::before { content: ""; position: absolute; top: 15px; left: 16px; width: 10px; height: 10px; border: solid #1f1f27; border-width: 0 2px 2px 0; transform: rotate(-45deg); }
.rdd-cs__fleche--g { left: -8px; }
.rdd-cs__fleche--g::before { left: 17px; transform: rotate(135deg); }
.rdd-cs__fleche--d { right: -8px; }
.rdd-cs__fleche--d::before { left: 13px; }
.rdd-cs__fleche:hover { background: #9b0a10; border-color: #9b0a10; }
.rdd-cs__fleche:hover::before { border-color: #fff; }
@media (min-width: 1200px) {
  .rdd-cs__piste > li { flex: 1 1 0; min-width: 0; }
}
@media (max-width: 767px) {
  .rdd-rayons__titre { font-size: 2rem; }
  .rdd-rayons__sous { font-size: 15px; }
  .rdd-cs__piste { gap: 12px; }
  .rdd-cs__piste > li { flex-basis: 62%; }
  .rdd-cs__fleche { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .rdd-cs__carte, .rdd-cs__vignette img, .rdd-cs__groupe-photo { transition: none; }
}

/* Plan du site (cms/sitemap.tpl → displayRddPlan) */
.rdd-plan__intro { margin-bottom: 24px; color: #55556a; }
.rdd-plan__rayons, .rdd-plan__pages { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; margin-bottom: 20px; }
.rdd-plan__bloc { padding: 18px 20px; border: 1px solid #e6e6ec; border-radius: 12px; background: #fff; }
.rdd-plan__titre { margin: 0 0 4px; font-size: 18px; font-weight: 700; }
.rdd-plan__titre a { color: #9b0a10; }
.rdd-plan__accroche { margin: 0 0 10px; color: #55556a; font-size: 13px; }
.rdd-plan__liste { margin: 0; padding: 0; list-style: none; }
.rdd-plan__liste li { padding: 5px 0; border-top: 1px solid #f0f0f4; font-size: 14px; line-height: 1.4; }
.rdd-plan__liste li:first-child { border-top: 0; }
.rdd-plan__liste a { color: #1f1f27; }
.rdd-plan__liste a:hover { color: #9b0a10; }

/* Bandeau de réassurance au-dessus du pied de page (displayRddPrefooter) : gris clair du site, icônes blanches
   dans des ronds rouges pleins (rappel du bouton « Devis »), filets fins entre les engagements. */
.rdd-prefooter { border-top: 1px solid #ececf1; background: #f6f6f8; }
.rdd-prefooter__liste { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 auto; padding-top: 30px; padding-bottom: 30px; list-style: none; }
.rdd-prefooter__item { display: flex; align-items: center; gap: 14px; padding: 2px 20px; }
.rdd-prefooter__item + .rdd-prefooter__item { border-left: 1px solid #e3e3ea; }
.rdd-prefooter__ico { flex: 0 0 48px; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: #9b0a10; box-shadow: 0 6px 14px -8px rgba(155,10,16,.7); transition: transform .3s cubic-bezier(.2,.7,.2,1); }
.rdd-prefooter__ico svg { width: 22px; height: 22px; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rdd-prefooter__item:hover .rdd-prefooter__ico { transform: translateY(-2px) rotate(-6deg); }
.rdd-prefooter__txt { min-width: 0; color: #6b6b7e; font-size: 13px; line-height: 1.4; }
.rdd-prefooter__txt b { display: block; margin-bottom: 2px; color: #1f1f27; font-size: 14.5px; font-weight: 700; letter-spacing: -.01em; }
@media (max-width: 1199px) {
  .rdd-prefooter__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; }
  .rdd-prefooter__item:nth-child(3) { border-left: 0; }
}
@media (max-width: 575px) {
  .rdd-prefooter__liste { grid-template-columns: 1fr; row-gap: 0; padding-top: 12px; padding-bottom: 12px; }
  .rdd-prefooter__item { padding: 12px 0; }
  .rdd-prefooter__item + .rdd-prefooter__item { border-left: 0; border-top: 1px solid #e3e3ea; }
  .rdd-prefooter__ico { flex-basis: 42px; width: 42px; height: 42px; }
  .rdd-prefooter__ico svg { width: 20px; height: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .rdd-prefooter__ico { transition: none; }
}

/* Page contact (templates/contact.tpl → displayRddContact) : pleine largeur, formulaire et carte conseillère côte à côte */
body.page-contact #content-wrapper { flex: 0 0 100%; max-width: 100%; }
.rdd-contact { padding: 8px 0 24px; }
.rdd-contact__tete { max-width: 1120px; margin: 0 auto 32px; text-align: center; }
.rdd-contact__titre { margin: 0 0 12px; color: #1f1f27; font-size: 34px; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; text-wrap: balance; }
.rdd-contact__intro { margin: 0 auto 20px; max-width: 640px; color: #55556a; font-size: 16px; line-height: 1.55; text-wrap: balance; }
.rdd-contact__acces { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0; padding: 0; list-style: none; }
.rdd-contact__acces a, .rdd-contact__acces li > span { display: inline-flex; align-items: center; gap: 8px; padding: 6px 15px 6px 6px; white-space: nowrap; border: 1px solid #ececf1; border-radius: 999px; background: #fff; color: #1f1f27; font-size: 14px; font-weight: 600; box-shadow: 0 1px 2px rgba(31,31,39,.04); transition: border-color .2s, box-shadow .2s; }
.rdd-contact__acces a:hover { border-color: #9b0a10; color: #9b0a10; text-decoration: none; box-shadow: 0 8px 18px -10px rgba(155,10,16,.35); }
.rdd-contact__pic { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: #fbf1f1; }
.rdd-contact__pic svg { width: 16px; height: 16px; fill: none; stroke: #9b0a10; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (min-width: 992px) {
  .rdd-contact__acces a, .rdd-contact__acces li > span { font-size: 13.5px; }
}
@media (min-width: 1200px) {
  .rdd-contact__acces { flex-wrap: nowrap; }
}
.rdd-contact__grille { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 28px; align-items: start; margin-bottom: 40px; }
.rdd-contact__formulaire { scroll-margin-top: 110px; }
.rdd-contact__formulaire .contact-form .card { margin-bottom: 0 !important; border: 1px solid #ececf1; border-radius: 18px; box-shadow: 0 1px 2px rgba(31,31,39,.04), 0 18px 40px -24px rgba(31,31,39,.25); overflow: hidden; }

/* Trois étapes numérotées reliées par un filet vertical */
/* Carte à côté du formulaire : blanche comme les cartes produits, photo de la conseillère, ce qu'il faut écrire selon la demande
   (tiré des messages reçus), puis les deux numéros */
.rdd-contact__carte { position: sticky; top: 100px; padding: 24px; border: 1px solid #ececf1; border-radius: 18px; background: #fff; box-shadow: 0 1px 2px rgba(31,31,39,.04), 0 18px 40px -24px rgba(31,31,39,.25); }
.rdd-contact__qui { display: flex; gap: 14px; align-items: center; margin-bottom: 18px; }
.rdd-contact__qui img { flex: none; width: 64px; height: 64px; border: 3px solid #fff; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px #ececf1, 0 6px 14px -6px rgba(31,31,39,.3); }
.rdd-contact__carte-titre { margin: 0 0 3px; color: #1f1f27; font-size: 19px; font-weight: 700; line-height: 1.25; }
.rdd-contact__carte-texte { margin: 0; color: #55556a; font-size: 13.5px; line-height: 1.5; }
.rdd-contact__besoins { margin: 0 0 18px; padding: 0; list-style: none; }
.rdd-contact__besoins li { position: relative; padding: 11px 0 11px 22px; border-top: 1px solid #ececf1; }
.rdd-contact__besoins li::before { content: ""; position: absolute; top: 17px; left: 2px; width: 8px; height: 8px; border-radius: 50%; background: #9b0a10; }
.rdd-contact__besoins b { display: block; color: #1f1f27; font-size: 14.5px; font-weight: 700; line-height: 1.3; }
.rdd-contact__besoins span { display: block; margin-top: 2px; color: #5c5c70; font-size: 13px; line-height: 1.45; }
.rdd-contact__appel { display: grid; gap: 8px; padding: 14px; border-radius: 14px; background: #f6f6f8; }
.rdd-contact__appel p { margin: 0 0 2px; color: #1f1f27; font-size: 14px; font-weight: 700; }
.rdd-contact__appel p span { display: block; color: #6b6b7e; font-size: 12.5px; font-weight: 400; }
.rdd-contact__appel .rdd-cta { display: flex; width: 100%; }
.rdd-contact__envoyer { cursor: pointer; min-width: 240px; }
@media (max-width: 767px) { .rdd-contact__envoyer { display: flex; width: 100%; } }
.rdd-contact .rdd-confiance { margin-top: 0 !important; }
@media (max-width: 991px) {
  .rdd-contact__grille { grid-template-columns: minmax(0, 1fr); }
  .rdd-contact__carte { position: static; }
}
@media (max-width: 575px) {
  .rdd-contact__tete { margin-bottom: 22px; }
  .rdd-contact__titre { font-size: 25px; }
  .rdd-contact__intro { font-size: 15px; margin-bottom: 16px; }
  .rdd-contact__acces { gap: 8px; }
  .rdd-contact__acces li:nth-child(3) { display: none; }
  .rdd-contact__acces a { font-size: 13px; }
  .rdd-contact__carte { padding: 20px; }
}
/* Page contact, dans le formulaire au-dessus du message : « Ajouter un article à mon message » (replié par défaut) */
.rdd-choix { min-width: 0; max-width: 100%; margin: 0 0 1rem; border: 1.5px dashed #cfcfd8; border-radius: 12px; background: #fff; transition: border-color .2s, background .2s; }
.rdd-choix:hover { border-color: #9b0a10; }
.rdd-choix[open] { border-style: solid; border-color: #ececf1; background: #f6f6f8; }
.rdd-choix__ouvrir { display: flex; align-items: center; gap: 10px; padding: 8px 10px 8px 10px; list-style: none; cursor: pointer; user-select: none; border-radius: 10px; }
.rdd-choix__ouvrir::-webkit-details-marker { display: none; }
.rdd-choix__ouvrir:focus-visible { outline: 2px solid #9b0a10; outline-offset: 2px; }
.rdd-choix__plus { position: relative; flex: none; width: 26px; height: 26px; border-radius: 50%; background: #9b0a10; transition: transform .25s; }
.rdd-choix__plus::before, .rdd-choix__plus::after { content: ""; position: absolute; top: 50%; left: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; border-radius: 2px; background: #fff; }
.rdd-choix__plus::after { transform: rotate(90deg); }
.rdd-choix[open] .rdd-choix__plus { transform: rotate(45deg); background: #1f1f27; }
.rdd-choix__libelle { color: #1f1f27; font-size: 14px; font-weight: 700; line-height: 1.3; }
.rdd-choix__compte { flex: none; padding: 3px 9px; border-radius: 999px; background: #9b0a10; color: #fff; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.rdd-choix__compte[hidden] { display: none; }
.rdd-choix__apercu { display: flex; align-items: center; margin-left: auto; padding-left: 8px; }
.rdd-choix__apercu img { width: 30px; height: 30px; margin-left: -8px; padding: 2px; border-radius: 50%; background: #fff; object-fit: contain; box-shadow: 0 0 0 2px #fff, 0 0 0 3px #ececf1; }
.rdd-choix__apercu small { margin-left: 7px; color: #6b6b7e; font-size: 11.5px; font-weight: 600; }
.rdd-choix__masquer { display: none; align-items: center; gap: 6px; flex: none; margin-left: auto; padding: 6px 12px; border: 1.5px solid #1f1f27; border-radius: 999px; background: #fff; color: #1f1f27; font-size: 12.5px; font-weight: 700; line-height: 1.2; transition: background .2s, color .2s; }
.rdd-choix__masquer::after { content: ""; width: 6px; height: 6px; margin-top: 3px; border-top: 2px solid currentColor; border-left: 2px solid currentColor; transform: rotate(45deg); }
.rdd-choix__ouvrir:hover .rdd-choix__masquer { background: #1f1f27; color: #fff; }
.rdd-choix[open] .rdd-choix__apercu { display: none; }
.rdd-choix[open] .rdd-choix__masquer { display: inline-flex; }
.rdd-choix[open] .rdd-choix__ouvrir { scroll-margin-top: 110px; }
.rdd-choix__panneau { padding: 2px 12px 12px; }
.rdd-choix__aide { margin: 0 0 10px; color: #55556a; font-size: 12.5px; line-height: 1.45; }
.rdd-choix__filtres { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.rdd-choix__filtres button { padding: 5px 12px; border: 1px solid #dcdce3; border-radius: 999px; background: #fff; color: #1f1f27; font: inherit; font-size: 12px; font-weight: 600; line-height: 1.2; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.rdd-choix__filtres button:hover { border-color: #1f1f27; }
.rdd-choix__filtres button[aria-pressed="true"] { border-color: #1f1f27; background: #1f1f27; color: #fff; }
.rdd-choix__grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; }
.rdd-choix__article { position: relative; display: flex; flex-direction: column; border: 1.5px solid #ececf1; border-radius: 12px; background: #fff; transition: border-color .2s, box-shadow .2s; }
.rdd-choix__article:hover { box-shadow: 0 8px 18px -12px rgba(31,31,39,.35); }
.rdd-choix__article[hidden] { display: none; }
.rdd-choix__article.is-choisi { border-color: #9b0a10; box-shadow: 0 0 0 1px #9b0a10; }
.rdd-choix__choisir { display: block; width: 100%; margin: 0; padding: 0; border: 0; border-radius: 12px 12px 0 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.rdd-choix__choisir:focus-visible { outline: 2px solid #9b0a10; outline-offset: -2px; }
.rdd-choix__choisir::after { content: "+"; position: absolute; top: 6px; right: 6px; display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: #1f1f27; color: #fff; font-size: 15px; font-weight: 600; line-height: 1; }
.rdd-choix__choisir[aria-pressed="true"]::after { content: "✓"; background: #9b0a10; font-size: 12px; }
.rdd-choix__choisir img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; padding: 6px; }
.rdd-choix__nom { display: block; padding: 0 8px 6px; color: #1f1f27; font-size: 11.5px; font-weight: 600; line-height: 1.3; }
.rdd-choix__couleurs { display: flex; flex-wrap: wrap; gap: 4px; padding: 0 8px 7px; }
.rdd-choix__pastille { width: 13px; height: 13px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(31,31,39,.2); cursor: pointer; transition: transform .15s; }
.rdd-choix__pastille:hover { transform: scale(1.25); }
.rdd-choix__pastille:focus-visible { outline: 2px solid #9b0a10; outline-offset: 2px; }
.rdd-choix__pastille[aria-pressed="true"] { box-shadow: inset 0 0 0 1px rgba(31,31,39,.2), 0 0 0 2px #fff, 0 0 0 3.5px #9b0a10; }
.rdd-choix__perso { display: flex; flex-wrap: wrap; gap: 3px; margin: auto 0 0; padding: 0 8px 8px; }
.rdd-choix__perso span { padding: 2px 6px; border-radius: 999px; background: #f6f6f8; color: #55556a; font-size: 10px; font-weight: 600; line-height: 1.25; }
.rdd-choix__libelle { flex: 0 1 auto; min-width: 0; }
@media (max-width: 575px) {
  /* sur téléphone : une rangée qui défile au doigt, et la croix seule pour replier */
  .rdd-choix__grille { display: flex; gap: 8px; margin: 0 -12px; padding: 2px 12px 6px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
  .rdd-choix__article { flex: 0 0 150px; scroll-snap-align: start; }
  .rdd-choix__libelle { font-size: 13.5px; }
  .rdd-choix[open] .rdd-choix__compte { display: none; }
  .rdd-choix__masquer { padding: 7px 12px; }
  /* filtres sur une ligne qui défile, couleurs assez grandes pour le doigt */
  .rdd-choix__filtres { flex-wrap: nowrap; margin: 0 -12px 10px; padding: 0 12px 2px; overflow-x: auto; scrollbar-width: none; }
  .rdd-choix__filtres::-webkit-scrollbar { display: none; }
  .rdd-choix__filtres button { flex: none; padding: 7px 13px; font-size: 12.5px; }
  .rdd-choix__couleurs { gap: 7px; padding: 2px 9px 9px; }
  .rdd-choix__pastille { width: 20px; height: 20px; }
  .rdd-choix__pastille:hover { transform: none; }
  .rdd-choix__choisir::after { width: 26px; height: 26px; font-size: 17px; }
  .rdd-choix__nom { font-size: 12px; }
}
@media (max-width: 400px) {
  .rdd-choix__apercu { display: none; }
}
#rdd-formulaire textarea.rdd-flash { animation: rdd-flash .8s ease; }
@keyframes rdd-flash { from { box-shadow: 0 0 0 3px rgba(155,10,16,.35); } to { box-shadow: 0 0 0 0 rgba(155,10,16,0); } }
/* Liens de maillage glissés dans les textes des blocs (sous-titre des rayons, confiance, réassurance) */
.rdd-rayons__sous a, .rdd-confiance__texte a { color: inherit; text-decoration: underline; text-decoration-color: rgba(155,10,16,.45); text-underline-offset: 3px; transition: color .2s, text-decoration-color .2s; }
.rdd-rayons__sous a:hover, .rdd-confiance__texte a:hover { color: #9b0a10; text-decoration-color: #9b0a10; }
.rdd-prefooter__txt b a { color: inherit; text-decoration: none; transition: color .2s; }
.rdd-prefooter__txt b a:hover { color: #9b0a10; text-decoration: underline; text-underline-offset: 3px; }

/* Bloc « Préciser l’article » : sous-titre qui rassure (facultatif, pas une commande) */
.rdd-choix__libelle { display: flex; flex-direction: column; gap: 1px; }
.rdd-choix__sous { color: #6b6b7e; font-size: 12px; font-weight: 500; line-height: 1.35; }
@media (max-width: 767px) { .rdd-choix__sous-long { display: none; } }

/* Page contact : champ Message plus grand et net, qui s’allume après le choix des articles ; bouton « Écrire mon message » dans le choix des articles */
#rdd-formulaire .rdd-message .form-control-label { margin-bottom: 8px; color: #1f1f27; font-size: 15px; font-weight: 700; }
#rdd-formulaire .rdd-message textarea { min-height: 150px; border: 1.5px solid #d6d6de; border-radius: 10px; background: #fff; transition: border-color .2s, box-shadow .2s; }
#rdd-formulaire .rdd-message textarea:focus { border-color: #1f1f27; box-shadow: none; outline: 0; }
#rdd-formulaire .rdd-message.is-rempli textarea { border-color: #1f1f27; }
#rdd-formulaire .rdd-message.is-appel textarea { animation: rdd-appel 1.2s ease-out 1; }
@keyframes rdd-appel { 0% { box-shadow: 0 0 0 0 rgba(31, 31, 39, .35); } 100% { box-shadow: 0 0 0 10px rgba(31, 31, 39, 0); } }
.rdd-choix__ecrire { position: sticky; bottom: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 48px; margin: 12px 0 0; padding: 5px 5px 5px 18px; border: 0; border-radius: 12px; background: #9b0a10; color: #fff; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; box-shadow: 0 12px 28px -14px rgba(155, 10, 16, .8); transition: background .2s; }
.rdd-choix__ecrire:hover { background: #7d070c; }
.rdd-choix__ecrire[hidden] { display: none; }
.rdd-choix__ecrire-ico { position: relative; flex: none; width: 38px; height: 38px; border-radius: 8px; background: #fff; }
.rdd-choix__ecrire-ico::before { content: ""; position: absolute; inset: 0; margin: auto; width: 16px; height: 16px; background: #9b0a10; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; }
@media (prefers-reduced-motion: reduce) { #rdd-formulaire .rdd-message.is-appel textarea { animation: none; } }
@media (max-width: 767px) { #rdd-formulaire .rdd-message textarea { min-height: 130px; } }
/* Fiche, ordinateur : « Une autre question ? » rejoint la FAQ quand la fiche en a une ; le bloc confiance resté seul prend toute la largeur */
@media (min-width: 992px) {
  #product .rdd-duo > :only-child { grid-column: 1 / -1; }
}

/* Panier, téléphone et tablette : total et « Commander » juste sous les lignes et la barre de livraison, la réassurance
   collée dessous, puis les suggestions et les questions (le bouton était à près de 1 500 px du haut) */
@media (max-width: 991px) {
  #cart .cart-grid-body { display: contents; }
  #cart .cart-grid-body > * { order: 4; flex: 0 0 auto; width: calc(100% - 30px); max-width: none; margin-right: 15px; margin-left: 15px; }
  #cart .cart-grid-body > .cart-container { order: 1; }
  #cart .cart-grid-body > .rdd-livraison { order: 2; }
  #cart .cart-grid-right { order: 3; }
  #cart .cart-grid-right .blockreassurance_product { margin-top: 10px; }
  #cart .cart-grid-right .blockreassurance_product > div:nth-child(3) { display: none; }
  #cart .cart-grid-right .blockreassurance_product > div:nth-child(4) { border-top: 1px solid #f0f0f2; }
}
/* Barre collante du panier : total et « Commander » tant que le vrai bouton est hors de l'écran */
@media (max-width: 767px) {
  .rdd-collant--panier .rdd-collant__total span { font-size: 12px; }
  .rdd-collant--panier .rdd-collant__bouton { text-decoration: none; }
}

/* Accueil, avant le pied de page : « Conseils » — l'article à la une du blog et trois articles à vignettes carrées.
   Un seul lien par carte (le titre, étendu à toute la carte) ; le texte est avant l'image dans le code. */
.rdd-ala { padding: 56px 0 64px; background: #fff; color: #1f1f27; }
.rdd-ala__tete { max-width: 720px; margin: 0 0 32px; }
.rdd-ala__titre { margin: 0; font-size: 2rem; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: #1f1f27; text-wrap: balance; }
.rdd-ala__chapo { margin: 12px 0 0; font-size: 1rem; line-height: 1.6; color: #55556a; }
.rdd-ala__chapo a { color: #9b0a10; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.rdd-ala__grille { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.rdd-ala__une, .rdd-ala__carte { position: relative; display: flex; }
.rdd-ala__une { flex-direction: column; gap: 18px; }
.rdd-ala__une .rdd-ala__cadre { order: -1; }
.rdd-ala__cadre { position: relative; overflow: hidden; border-radius: 14px; background: #f0f0f3; }
.rdd-ala__cadre img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.rdd-ala__cadre--une { aspect-ratio: 3 / 2; }
.rdd-ala__cadre--vignette { flex: none; width: 96px; height: 96px; border-radius: 12px; }
.rdd-ala__corps { display: flex; flex-direction: column; gap: 8px; }
.rdd-ala__cat { margin: 0; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; line-height: 1.4; text-transform: uppercase; color: #9b0a10; }
.rdd-ala__titre-une { margin: 0; font-size: 1.5rem; font-weight: 700; line-height: 1.25; letter-spacing: -.01em; text-wrap: balance; }
.rdd-ala__resume { margin: 0; font-size: 1rem; line-height: 1.6; color: #55556a; }
.rdd-ala__liste { align-self: start; display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; border-top: 1px solid #e2e2e8; border-bottom: 1px solid #e2e2e8; }
.rdd-ala__item { padding: 22px 0; }
.rdd-ala__item + .rdd-ala__item { border-top: 1px solid #e2e2e8; }
.rdd-ala__carte { align-items: center; gap: 20px; }
.rdd-ala__texte { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.rdd-ala__titre-carte { margin: 0; font-size: 1.1rem; font-weight: 700; line-height: 1.35; text-wrap: balance; }
.rdd-ala a.rdd-ala__lien, .rdd-ala a.rdd-ala__lien:hover, .rdd-ala a.rdd-ala__lien:focus { color: inherit; text-decoration: none; outline: none; }
.rdd-ala__lien::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 14px; }
.rdd-ala a.rdd-ala__lien:focus-visible::after { outline: 2px solid #9b0a10; outline-offset: 6px; }
@media (hover: hover) {
  .rdd-ala__une:hover a.rdd-ala__lien, .rdd-ala__carte:hover a.rdd-ala__lien { color: #9b0a10; }
  .rdd-ala__une:hover .rdd-ala__cadre img, .rdd-ala__carte:hover .rdd-ala__cadre img { transform: scale(1.04); }
}
@media (min-width: 768px) {
  .rdd-ala__cadre--vignette { width: 112px; height: 112px; }
}
@media (min-width: 992px) {
  .rdd-ala { padding: 72px 0 80px; }
  .rdd-ala__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
  .rdd-ala__liste { border-top: 0; }
  .rdd-ala__item:first-child { padding-top: 0; }
}
@media (max-width: 767px) {
  .rdd-ala { padding: 40px 0 48px; }
  .rdd-ala__titre { font-size: 1.6rem; }
  .rdd-ala__titre-une { font-size: 1.3rem; }
}
@media (prefers-reduced-motion: reduce) { .rdd-ala__cadre img { transition: none; } }

/* Accueil : sections plus aérées (05/11/2026) — 96 px entre les blocs sur ordinateur, 64 px sur téléphone */
#index .rdd-rayons { padding: 88px 0 80px; }
#index .featured-products { padding-top: 88px !important; padding-bottom: 88px !important; }
#index .featured-products__header { margin-bottom: 48px !important; }
#index #home_banners { padding-top: 96px !important; padding-bottom: 96px !important; }
#index #home_about { margin-top: 8px; margin-bottom: 96px !important; }
#index .rdd-ala { padding: 96px 0 104px; border-top: 1px solid #ececf0; }
@media (max-width: 767px) {
  #index .rdd-rayons { padding: 56px 0 48px; }
  #index .featured-products { padding-top: 60px !important; padding-bottom: 60px !important; }
  #index .featured-products__header { margin-bottom: 32px !important; }
  #index #home_banners { padding-top: 64px !important; padding-bottom: 64px !important; }
  #index #home_about { margin-bottom: 64px !important; }
  #index .rdd-ala { padding: 60px 0 68px; }
}

/* Cartes produit : prix à l'unité et prix au palier 100 (displayRddCarte), à la place du « À partir de » du résumé */
.rdd-prix-carte { margin: 2px 0 10px; font-size: 15px; line-height: 1.4; color: #55556a; }
.rdd-prix-carte strong { font-weight: 700; color: #1f1f27; white-space: nowrap; }
.rdd-prix-carte__palier strong { color: #9b0a10; }
/* le prix au palier et « dès 100 pièces » ne se séparent jamais ; sur les cartes étroites, en 2e ligne sans le point */
.rdd-prix-carte__palier, .rdd-hero__palier { white-space: nowrap; }
.rdd-prix-carte__palier { display: block; }
.rdd-prix-carte__sep { display: none; }

/* Toges et tenues : tableau des formules remonté sous le bandeau, tuile « Commande de groupe » en 2e position,
   cartes réduites à photo, prix et bouton sur téléphone (la description se déplie) */
.rdd-formules { margin: 0 0 24px; padding: 16px 18px 6px; border: 1px solid #ececf1; border-radius: 12px; background: #fff; }
.rdd-formules__titre { margin: 0 0 8px; font-size: 1.15rem; font-weight: 700; color: #1f1f27; }
.rdd-formules .table { margin-bottom: 10px; font-size: 14px; }
.rdd-formules .table th { font-size: 13px; font-weight: 600; color: #55556a; white-space: nowrap; }
.rdd-formules .table td:nth-child(n+3) { white-space: nowrap; }
.rdd-formules .table td:last-child { font-weight: 700; color: #9b0a10; }
.rdd-tuile-groupe { margin-bottom: 1.5rem; }
.rdd-tuile-groupe .rdd-cs__carte--groupe { min-height: 230px; }
.rdd-tuile-groupe .rdd-cs__groupe-texte { padding-bottom: 66px; }
@media (min-width: 768px) {
  .rdd-tuile-groupe .rdd-cs__groupe-photo { object-position: 50% 35%; }
  .rdd-tuile-groupe .rdd-cs__groupe-titre { font-size: 24px; }
}
.rdd-carte-plus { display: none; }

/* Fenêtre « ajouté au panier » : jauge vers la livraison offerte et trois lignes de réassurance */
.rdd-fl { margin: 16px 0 0; padding: 12px 14px; border: 1px solid #ececf1; border-radius: 10px; background: #fafafb; }
.rdd-fl__texte { margin: 0 0 8px; font-size: 14px; line-height: 1.4; color: #1f1f27; }
.rdd-fl__texte strong { white-space: nowrap; }
.rdd-fl__barre { height: 8px; border-radius: 999px; background: #e6e6ec; overflow: hidden; }
.rdd-fl__barre span { display: block; height: 100%; border-radius: inherit; background: #9b0a10; }
.rdd-fl__barre.is-acquise span { background: #1b7a43; }
.rdd-fl__texte strong { color: #9b0a10; }
.rdd-fl__texte .rdd-fl__ok { color: #1b7a43; }
.rdd-fl__reassurance { display: grid; gap: 4px; margin: 12px 0 0; padding: 0; list-style: none; font-size: 13px; color: #55556a; }
.rdd-fl__reassurance li { position: relative; padding-left: 20px; }
.rdd-fl__reassurance li::before { content: ""; position: absolute; left: 3px; top: 4px; width: 9px; height: 5px; border: solid #1b7a43; border-width: 0 0 2px 2px; transform: rotate(-45deg); }

/* Tunnel de commande, sous le résumé : livraison offerte débloquée, trois garanties, trois questions repliables */
.rdd-tunnel { margin: 16px 0; padding: 16px 18px 8px; border: 1px solid #ececf1; border-radius: 12px; background: #fff; }
.rdd-tunnel__offerte { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 10px 12px; border-radius: 8px; background: #e8f5ee; color: #1b7a43; font-weight: 700; }
.rdd-tunnel__arguments { display: grid; gap: 10px; margin: 0 0 6px; padding: 0; list-style: none; }
.rdd-tunnel__arguments li { position: relative; display: flex; flex-direction: column; padding-left: 24px; font-size: 13px; line-height: 1.35; color: #55556a; }
.rdd-tunnel__arguments li::before { content: ""; position: absolute; left: 4px; top: 4px; width: 10px; height: 6px; border: solid #1b7a43; border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.rdd-tunnel__arguments strong { font-size: 14px; color: #1f1f27; }
.rdd-tunnel__faq .rdd-faq:last-child { border-bottom: 0; }
.rdd-tunnel__faq .rdd-faq > summary { padding: 12px 2px; }
.rdd-tunnel__faq .rdd-faq > summary h3 { font-size: .9rem; }
.rdd-tunnel__faq .rdd-faq__reponse p { margin: 0 0 8px; font-size: .88rem; }

/* Devis pré-rempli : lien sous le bouton panier de la fiche et dans le panier ; note au-dessus du message de la page contact */
.rdd-devis { display: flex; flex-direction: column; gap: 2px; margin: 0 0 14px; }
.rdd-devis__lien { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; padding: 4px 0; color: #9b0a10; font-weight: 600; text-decoration: underline; text-decoration-color: rgba(155,10,16,.35); text-underline-offset: 4px; }
.rdd-devis__lien:hover, .rdd-devis__lien:focus-visible { color: #1f1f27; text-decoration-color: currentColor; }
.rdd-devis__lien svg { flex: none; }
.rdd-devis__aide { padding-left: 28px; font-size: 13px; line-height: 1.4; color: #55556a; }
.rdd-devis--panier { margin: 14px 0 0; }
.rdd-devis-note { margin: 0 0 6px; padding: 7px 12px; border-radius: 8px; background: #fbf3f3; font-size: 13px; color: #1f1f27; }

/* Accueil : prix de la tenue complète et deux boutons dans la photo ; prix sur les produits phares ; confiance dessous */
.rdd-hero { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: -16px; }
.rdd-hero__prix { margin: 0; font-size: 1.05rem; font-weight: 500; color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.45); }
.rdd-hero__prix strong { font-weight: 700; white-space: nowrap; }
.rdd-hero__boutons { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.rdd-hero__boutons .rdd-cta { min-height: 52px; }
.product-slider .rdd-prix-carte { margin: 0 0 4px; font-size: 14px; }
.product-slider .rdd-prix-carte__palier { display: block; }
.product-slider .rdd-prix-carte__sep { display: none; }
.rdd-confiance-accueil:empty { display: none; }
.rdd-confiance-accueil .rdd-confiance { margin-top: 40px !important; margin-bottom: 0 !important; }
@media (max-width: 767px) {
  .rdd-hero { gap: 12px; margin-top: -24px; width: 100%; padding: 0 16px; }
  .rdd-hero__prix { font-size: .95rem; }
  .rdd-hero__boutons { flex-direction: column; align-items: stretch; width: 100%; max-width: 340px; gap: 10px; }
  .rdd-hero__boutons .rdd-cta { width: 100%; min-height: 50px; }
  #index .bm_home-header .icon-scroll { display: none; }
  .product-slider .rdd-prix-carte { font-size: 13px; }
  .rdd-confiance-accueil .rdd-confiance { margin-top: 28px !important; }
}
@media (max-width: 767px) {
  .rdd-formules { padding: 12px 12px 2px; }
  .rdd-formules .table { font-size: 13px; }
  .rdd-formules .table th, .rdd-formules .table td { padding: 6px 5px; }
  .category-id-11 .products-list__block--list .product-miniature > .row {
    display: grid; grid-template-columns: 104px minmax(0, 1fr); column-gap: 12px; align-items: start; margin: 0;
    grid-template-areas: "photo titre" "photo prix" "photo plus" "bouton bouton" "desc desc";
  }
  .category-id-11 .products-list__block--list .product-miniature__actions { margin-top: 10px; }
  .rdd-formules .table th { white-space: normal; font-size: 12px; line-height: 1.25; }
  .rdd-formules .table td:nth-child(2) { font-size: 12px; }
  .category-id-11 .products-list__block--list .product-miniature > .row > div { flex: none; max-width: none; padding: 0; }
  .category-id-11 .products-list__block--list .product-miniature > .row > div:first-child { grid-area: photo; }
  .category-id-11 .products-list__block--list .product-miniature > .row > div:nth-child(n+2),
  .category-id-11 .products-list__block--list .product-miniature > .row > div:nth-child(n+2) > div { display: contents; }
  .category-id-11 .products-list__block--list .product-miniature__title { grid-area: titre; min-height: 0; padding-top: 4px; font-size: 15px; }
  .category-id-11 .products-list__block--list .rdd-prix-carte { grid-area: prix; margin: 0 0 8px; font-size: 14px; }
  .category-id-11 .products-list__block--list .product-miniature__actions { grid-area: bouton; }
  .category-id-11 .products-list__block--list .js-product-availability { display: none !important; }
  .category-id-11 .products-list__block--list .rdd-carte-plus {
    grid-area: plus; display: inline-flex; align-items: center; gap: 6px; justify-self: start; margin: 6px 0 2px; padding: 4px 0;
    border: 0; background: none; color: #1f1f27; font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
  }
  .category-id-11 .products-list__block--list .rdd-carte-plus::after { content: ""; width: 7px; height: 7px; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
  .category-id-11 .products-list__block--list .rdd-carte-plus[aria-expanded="true"]::after { transform: translateY(1px) rotate(-135deg); }
  .category-id-11 .products-list__block--list .product-miniature__desc { grid-area: desc; margin-top: 8px; font-size: 14px; }
  .category-id-11 .products-list__block--list .product-miniature.is-repliable:not(.is-deplie) .product-miniature__desc { display: none; }
}

/* Pages CMS 6 « Louez votre tenue » et 7 « Personnalisez votre tenue » (contenu collé dans le champ Contenu).
   Tout est rangé sous .rdd-cms : aucune règle ne sort de ces deux pages.
   Le HTML ne contient ni SVG, ni attribut data-, ni bouton : les pictos sont des masques CSS,
   les flèches du carrousel et le simulateur sont posés par cmsPremium() dans rddblocs.js. */

.rdd-cms {
  --cms-rouge: var(--primary, #9E0B0F);
  --cms-rouge-vif: #c8102e;
  --cms-encre: #1F1F27;
  --cms-texte: #4b4b5c;
  --cms-gris: #f4f4f6;
  --cms-rose: #fbf1f1;
  --cms-trait: #e2e2e8;
  --cms-courbe: cubic-bezier(.22, 1, .36, 1);
  color: var(--cms-texte);
  font-size: 16px;
  line-height: 1.6;
  text-align: left;
}
.rdd-cms *, .rdd-cms *::before, .rdd-cms *::after { box-sizing: border-box; }
.rdd-cms :is(h2, h3) { color: var(--cms-encre); text-transform: none; letter-spacing: 0; }
.rdd-cms img { max-width: 100%; height: auto; margin: 0; }
.rdd-cms :is(ul, ol).rdd-cms-reperes,
.rdd-cms .rdd-cms-coches, .rdd-cms .rdd-cms-articles, .rdd-cms .rdd-cms-pastilles, .rdd-cms .rdd-cms-nuancier,
.rdd-cms .rdd-cms-etapes, .rdd-cms .rdd-cms-prix, .rdd-cms .rdd-cms-rail__piste { margin: 0; padding: 0; list-style: none; }
:where(.rdd-cms) :where(.rdd-cms-reperes, .rdd-cms-coches, .rdd-cms-articles, .rdd-cms-pastilles, .rdd-cms-nuancier, .rdd-cms-etapes, .rdd-cms-prix, .rdd-cms-rail__piste) > li { margin: 0; padding: 0; }
.rdd-cms :is(.rdd-cms-reperes, .rdd-cms-coches, .rdd-cms-articles, .rdd-cms-pastilles, .rdd-cms-nuancier, .rdd-cms-etapes, .rdd-cms-prix, .rdd-cms-rail__piste) > li::marker { content: none; }

/* Liens de texte (la règle .page-cms .cms-content a vise aussi les boutons : on les rétablit) */
.page-cms .cms-content .rdd-cms a.rdd-cta,
.rdd-cms a.rdd-cta { color: var(--cta-texte); font-weight: 700; text-decoration: none; }
.page-cms .cms-content .rdd-cms a.rdd-cta:is(:hover, :focus-visible),
.rdd-cms a.rdd-cta:is(:hover, :focus-visible) { color: var(--cta-fleche); }
.rdd-cms .rdd-cta__ico { font-size: 0; line-height: 0; }
.rdd-cms .rdd-cta { min-height: 52px; }

/* Pictos : masques SVG (aucun SVG dans le contenu) */
.rdd-cms {
  --ico-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --ico-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");
  --ico-euro: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 6.5A7 7 0 1 0 17 17.5M4 10h9M4 14h9'/%3E%3C/svg%3E");
  --ico-groupe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3.5 19c.6-3.2 2.8-5 5.5-5s4.9 1.8 5.5 5M16 5.2a3 3 0 0 1 0 5.6M17.5 14.2c1.7.6 2.7 2.2 3 4.8'/%3E%3C/svg%3E");
  --ico-horloge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E");
  --ico-coiffe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 10l10-5 10 5-10 5z'/%3E%3Cpath d='M6 12v4c2 1.8 4 2.5 6 2.5s4-.7 6-2.5v-4M20 10.5v5'/%3E%3C/svg%3E");
  --ico-pinceau: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4l6 6-8.5 8.5a3 3 0 0 1-4.2 0l-1.8-1.8a3 3 0 0 1 0-4.2z'/%3E%3Cpath d='M4 20l3-3'/%3E%3C/svg%3E");
  --ico-boucle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12a8 8 0 0 1 13.7-5.7L20 8.6M20 4v4.6h-4.6M20 12a8 8 0 0 1-13.7 5.7L4 15.4M4 20v-4.6h4.6'/%3E%3C/svg%3E");
  --ico-cadeau: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='9' width='18' height='12' rx='1.5'/%3E%3Cpath d='M3 13h18M12 9v12M12 9C10 5 6.5 5 6.5 7.2S10 9 12 9zm0 0c2-4 5.5-4 5.5-1.8S14 9 12 9z'/%3E%3C/svg%3E");
  --ico-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3.5 10.5 8 6 12.5'/%3E%3C/svg%3E");
}

/* Mise en page : sections et bandes grises pleine largeur (sans débordement : ombre portée + découpe) */
.rdd-cms-section, .rdd-cms-bande { position: relative; padding: 72px 0; }
.rdd-cms-bande { background: var(--cms-gris); box-shadow: 0 0 0 100vmax var(--cms-gris); clip-path: inset(0 -100vmax); }
.rdd-cms-tete { max-width: 760px; margin: 0 0 36px; }
.rdd-cms-tete--duo { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 56px; max-width: none; }
.rdd-cms-tete--duo > :first-child { flex: 1 1 520px; }
.rdd-cms-tete--duo > .rdd-cms-intro { flex: 0 1 380px; }
.rdd-cms .rdd-cms-h2, .rdd-cms .rdd-cms-faq > h2, .rdd-cms .rdd-cms-devis h2 {
  margin: 0 0 14px;
  font-size: clamp(26px, 3vw, 38px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.02em;
  text-wrap: balance;
}
.rdd-cms .rdd-cms-intro { margin: 0; font-size: 17px; line-height: 1.6; }
.rdd-cms .rdd-cms-sur {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 14px; padding: 6px 14px;
  border-radius: 999px; background: var(--cms-rose); color: var(--cms-rouge);
  font-size: 13px; font-weight: 700; line-height: 1.3; letter-spacing: .02em;
}
.rdd-cms-sur--atelier::before, .rdd-cms-sur--groupe::before { content: ""; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ico-pinceau) center / contain no-repeat; mask: var(--ico-pinceau) center / contain no-repeat; }
.rdd-cms-sur--groupe::before { -webkit-mask-image: var(--ico-groupe); mask-image: var(--ico-groupe); }
.rdd-cms .rdd-cms-note { margin: 20px 0 0; font-size: 14px; color: var(--cms-texte); }

/* Héros */
.rdd-cms-heros { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 56px; align-items: center; padding: 24px 0 72px; }
.rdd-cms .rdd-cms-chapo { margin: 0 0 14px; color: var(--cms-encre); font-size: clamp(19px, 2vw, 23px); font-weight: 600; line-height: 1.4; }
.rdd-cms-heros__texte > p:not([class]) { margin: 0 0 18px; font-size: 17px; }
.rdd-cms-reperes { display: grid; gap: 10px; margin: 22px 0 28px !important; }
.rdd-cms-reperes > li { display: flex; align-items: center; gap: 12px; color: var(--cms-encre); font-weight: 600; line-height: 1.4; }
.rdd-cms-reperes > li::before {
  content: ""; flex: none; width: 36px; height: 36px; border-radius: 11px;
  background: var(--cms-rose) var(--ico) center / 18px no-repeat;
  background-image: none;
  box-shadow: inset 0 0 0 1px rgba(158, 11, 15, .08);
}
.rdd-cms-reperes > li { position: relative; }
.rdd-cms-reperes > li::after {
  content: ""; position: absolute; left: 9px; top: 50%; width: 18px; height: 18px; margin-top: -9px;
  background: var(--cms-rouge); -webkit-mask: var(--ico, var(--ico-coche)) center / contain no-repeat; mask: var(--ico, var(--ico-coche)) center / contain no-repeat;
}
.rdd-cms-reperes__prix { --ico: var(--ico-euro); }
.rdd-cms-reperes__unite { --ico: var(--ico-groupe); }
.rdd-cms-reperes__delai { --ico: var(--ico-horloge); }
.rdd-cms-reperes__coiffe { --ico: var(--ico-coiffe); }
.rdd-cms-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin: 0; }
.rdd-cms-heros__photo { position: relative; margin: 0; }
.rdd-cms-heros__photo img { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 28px; box-shadow: 0 30px 60px -34px rgba(31, 31, 39, .55); }
.rdd-cms-heros__photo .rdd-cms-legende {
  margin: 0; position: absolute; left: 18px; bottom: 18px; max-width: calc(100% - 36px);
  padding: 8px 16px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px;
  background: rgba(31, 31, 39, .45); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  color: #fff; font-size: 13px; font-weight: 600; line-height: 1.35;
}
/* légende en haut quand le détail à montrer est en bas de la photo (écharpe imprimée) */
.rdd-cms-heros__photo .rdd-cms-legende--haut { top: 18px; bottom: auto; }

/* Lien téléphone */
.page-cms .cms-content .rdd-cms a.rdd-cms-tel, .rdd-cms a.rdd-cms-tel {
  display: inline-grid; grid-template-columns: 44px auto; align-items: center; column-gap: 12px;
  color: var(--cms-encre); font-weight: 400; text-decoration: none; line-height: 1.3;
}
.rdd-cms a.rdd-cms-tel::before {
  content: ""; grid-row: 1 / span 2; width: 44px; height: 44px; border-radius: 50%;
  background: var(--cms-encre); -webkit-mask: none; mask: none;
  box-shadow: inset 0 0 0 1px var(--cms-trait);
  background: #fff;
}
.rdd-cms a.rdd-cms-tel { position: relative; }
.rdd-cms a.rdd-cms-tel::after {
  content: ""; position: absolute; left: 13px; top: 50%; width: 18px; height: 18px; margin-top: -9px;
  background: var(--cms-rouge); -webkit-mask: var(--ico-tel) center / contain no-repeat; mask: var(--ico-tel) center / contain no-repeat;
}
.rdd-cms a.rdd-cms-tel :is(strong, small) { grid-column: 2; }
.rdd-cms a.rdd-cms-tel strong { display: block; white-space: nowrap; font-size: 17px; font-weight: 700; }
.rdd-cms a.rdd-cms-tel small { display: block; color: var(--cms-texte); font-size: 13px; }
.page-cms .cms-content .rdd-cms a.rdd-cms-tel--clair, .rdd-cms a.rdd-cms-tel--clair { color: #fff; }
.rdd-cms a.rdd-cms-tel--clair small { color: rgba(255, 255, 255, .7); }
.rdd-cms a.rdd-cms-tel--clair::before { background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); }
.rdd-cms a.rdd-cms-tel--clair::after { background: #fff; }
.rdd-cms a.rdd-cms-tel:is(:hover, :focus-visible) strong { color: var(--cms-rouge); }
.rdd-cms a.rdd-cms-tel--clair:is(:hover, :focus-visible) strong { color: #fff; text-decoration: underline; }

/* Atelier (texte d'origine + photo) */
.rdd-cms-atelier { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 56px; align-items: center; }
.rdd-cms-atelier__photo { margin: 0; }
.rdd-cms-atelier__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 24px; }
.rdd-cms-atelier__photo .rdd-cms-legende { margin: 10px 0 0; font-size: 13px; color: var(--cms-texte); }
.rdd-cms-atelier__texte p { margin: 0 0 14px; }
.rdd-cms-atelier__texte .rdd-cms-actions { margin-top: 22px; }

/* Articles personnalisables : 2 grandes cartes puis 3 */
.rdd-cms-articles { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; }
.rdd-cms-article { grid-column: span 2; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--cms-trait); border-radius: 22px; background: #fff; transition: transform .45s var(--cms-courbe), box-shadow .45s var(--cms-courbe); }
.rdd-cms-article:nth-child(-n+2) { grid-column: span 3; }
.rdd-cms-article img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: #fff; }
.rdd-cms-article:nth-child(-n+2) img { aspect-ratio: 16 / 9; }
.rdd-cms-article__corps { padding: 20px 22px 24px; }
.rdd-cms .rdd-cms-article h3 { margin: 0 0 6px; font-size: 19px; font-weight: 700; line-height: 1.3; }
.rdd-cms .rdd-cms-article p { margin: 0; font-size: 15px; line-height: 1.55; }
@media (hover: hover) {
  .rdd-cms-article:hover { transform: translateY(-4px); box-shadow: 0 22px 40px -26px rgba(31, 31, 39, .45); }
}

/* Texte, logo, couleurs : bento 1 / 2 / 1 (bloc « Atouts en bento ») */
.rdd-cms-bento { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.rdd-cms-bento__carte { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 26px; border: 1px solid #ececf1; border-radius: 22px; background: #fff; box-shadow: 0 0 4px rgba(0, 0, 0, .04); transition: box-shadow .3s, transform .3s; }
.rdd-cms .rdd-cms-bento h3 { margin: 14px 0 8px; font-size: 21px; font-weight: 700; line-height: 1.25; }
.rdd-cms .rdd-cms-bento__carte p { margin: 0; font-size: 15px; line-height: 1.55; }
.rdd-cms .rdd-cms-bento__ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--cms-encre); color: #fff; font-family: Georgia, "Times New Roman", serif; font-size: 21px; font-style: italic; line-height: 1; }
.rdd-cms .rdd-cms-bento__exemple {
  align-self: stretch; margin-top: auto !important; padding: 18px 16px; border: 1.5px dashed #d6d6de; border-radius: 14px;
  background: var(--cms-encre); color: #f3d27a; font-family: Georgia, "Times New Roman", serif; font-size: 19px !important; font-style: italic; line-height: 1.35 !important; text-align: center;
}
.rdd-cms-bento__carte--texte .rdd-cms-bento__exemple { margin-top: 24px !important; }
.rdd-cms-bento__carte--logo { gap: 22px; }
.rdd-cms-bento__photo { width: 100%; height: 240px; overflow: hidden; border-radius: 16px; background: var(--cms-gris); }
.rdd-cms-bento__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 30% 85%; transition: transform .6s var(--cms-courbe); }
.rdd-cms-bento__corps { display: flex; flex-direction: column; justify-content: space-between; gap: 18px; flex: 1; min-width: 0; }
.rdd-cms .rdd-cms-bento__corps h3 { margin-top: 0; }
.rdd-cms-pastilles { display: flex; flex-wrap: wrap; gap: 8px; }
.rdd-cms .rdd-cms-pastilles > li { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 6px 13px; border-radius: 12px; background: var(--cms-gris); color: var(--cms-encre); font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.rdd-cms-pastilles > li::before { content: ""; flex: none; width: 14px; height: 14px; background: var(--cms-rouge); -webkit-mask: var(--ico-coche) center / contain no-repeat; mask: var(--ico-coche) center / contain no-repeat; }
.rdd-cms .rdd-cms-bento__carte--couleurs h3 { margin-top: 0; }
.rdd-cms-nuancier { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px 4px; width: 100%; margin: 6px 0 16px !important; }
.rdd-cms-nuancier > li { display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--cms-texte); font-size: 11px; line-height: 1.15; text-align: center; }
.rdd-cms-nuancier > li::before { content: ""; width: 28px; height: 28px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .14); }
.rdd-cms-c-blanc { --c: #fff; } .rdd-cms-c-noir { --c: #111; } .rdd-cms-c-rouge { --c: #c8102e; } .rdd-cms-c-jaune { --c: #f5c400; }
.rdd-cms-c-bleu-fonce { --c: #1b2a6b; } .rdd-cms-c-bleu-clair { --c: #6fb6e6; } .rdd-cms-c-vert-fonce { --c: #1f5a32; } .rdd-cms-c-vert-clair { --c: #7cc36b; }
.rdd-cms-c-orange { --c: #f07d1a; } .rdd-cms-c-rose { --c: #ef8fb5; } .rdd-cms-c-bordeaux { --c: #6d1022; } .rdd-cms-c-violet { --c: #5b2a86; }
.rdd-cms-c-marron { --c: #6b4226; } .rdd-cms-c-gris { --c: #8c8c94; } .rdd-cms-c-dore { --c: linear-gradient(135deg, #a8802a, #f3d27a 45%, #b8892b); }
.rdd-cms .rdd-cms-polices { margin: 0 0 8px; font-size: 14px; }
.rdd-cms .rdd-cms-bento__carte--couleurs .rdd-cms-note { margin: auto 0 0; padding-top: 12px; border-top: 1px solid var(--cms-trait); font-size: 13.5px; }
@media (min-width: 640px) {
  .rdd-cms-bento__carte--logo { flex-direction: row; align-items: stretch; gap: 28px; }
  .rdd-cms-bento__photo { flex: none; width: 46%; height: auto; min-height: 280px; }
}
@media (min-width: 768px) {
  .rdd-cms-bento { grid-template-columns: 1fr 1fr; grid-template-areas: "b b" "a c"; }
  .rdd-cms-bento__carte--texte { grid-area: a; } .rdd-cms-bento__carte--logo { grid-area: b; } .rdd-cms-bento__carte--couleurs { grid-area: c; }
}
@media (min-width: 1200px) {
  .rdd-cms-bento { grid-template-columns: 1fr 2fr 1.15fr; grid-template-areas: "a b c"; gap: 22px; }
  .rdd-cms-bento__carte { min-height: 420px; }
  .rdd-cms-bento__photo { width: 44%; min-height: 0; }
}
@media (hover: hover) {
  .rdd-cms-bento__carte:hover { transform: translateY(-3px); box-shadow: 0 16px 36px -18px rgba(31, 31, 39, .25); }
  .rdd-cms-bento__carte:hover .rdd-cms-bento__photo img { transform: scale(1.05); }
}

/* Étapes : cartes qui montent, lueur rouge au survol (bloc « Cartes étapes 4 colonnes ») */
.rdd-cms-etapes { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: stretch; }
.rdd-cms-etape {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; flex-direction: column; justify-content: space-between; gap: 26px;
  min-height: 210px; padding: 24px; border-radius: 20px; background: var(--cms-gris);
  transition: transform .5s cubic-bezier(.22, .61, .36, 1);
}
.rdd-cms-bande .rdd-cms-etape { background: #fff; }
.rdd-cms-etape::before {
  content: ""; position: absolute; inset: 22% -12% -12%; z-index: -1; border-radius: 0 0 20px 20px;
  filter: blur(15px); transform-origin: 50% 100%; opacity: 0; pointer-events: none; transition: opacity .5s;
  background: radial-gradient(86% 49% at -4% 84%, #e0261d, rgba(224, 38, 29, 0)), radial-gradient(33% 51% at 105% 64%, #e0261d, rgba(224, 38, 29, 0) 75%), linear-gradient(rgba(158, 11, 15, 0), var(--cms-rouge)), var(--cms-gris);
}
.rdd-cms .rdd-cms-etape__num { display: grid; place-items: center; width: 38px; height: 38px; margin: 0; border-radius: 12px; background: var(--cms-encre); color: #fff; font-size: 15px; font-weight: 700; line-height: 1; transition: background .45s, color .45s; }
.rdd-cms .rdd-cms-etape h3 { margin: 0 0 6px; font-size: 18px; font-weight: 700; line-height: 1.3; transition: color .45s; }
.rdd-cms .rdd-cms-etape p:not(.rdd-cms-etape__num) { margin: 0; font-size: 15px; line-height: 1.5; transition: color .45s; }
@keyframes rdd-cms-lueur { 0%, 100% { transform: translate(0) scale(1); } 30% { transform: translate(-1%, -1.5%) scale(1.03, 1.07); } 60% { transform: translate(1.2%, -.6%) scale(1.05, 1.04); } }
@media (hover: hover) {
  .rdd-cms-etape:hover { transform: translateY(-10px); }
  .rdd-cms-etape:hover::before { opacity: 1; animation: rdd-cms-lueur 4.5s ease-in-out infinite; }
  .rdd-cms .rdd-cms-etape:hover :is(h3, p:not(.rdd-cms-etape__num)) { color: #fff; }
  .rdd-cms .rdd-cms-etape:hover a { color: #fff; }
  .rdd-cms .rdd-cms-etape:hover .rdd-cms-etape__num { background: #fff; color: var(--cms-rouge); }
}
@media (min-width: 640px) { .rdd-cms-etapes { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rdd-cms-etape { min-height: 230px; } }
@media (min-width: 992px) { .rdd-cms-etapes { grid-template-columns: repeat(4, minmax(0, 1fr)); } .rdd-cms-etapes--cinq { grid-template-columns: repeat(6, minmax(0, 1fr)); } .rdd-cms-etapes--cinq > li { grid-column: span 2; } .rdd-cms-etapes--cinq > li:nth-child(-n+2) { grid-column: span 3; } }
@media (min-width: 1200px) { .rdd-cms-etapes--cinq { grid-template-columns: repeat(5, minmax(0, 1fr)); } .rdd-cms-etapes--cinq > li, .rdd-cms-etapes--cinq > li:nth-child(-n+2) { grid-column: auto; } }

/* Relance : phrase + bouton de contact, adaptée à chaque section */
.rdd-cms .rdd-cms-relance {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 28px;
  margin: 32px 0 0; padding: 16px 16px 16px 26px; border-radius: 18px; background: var(--cms-gris);
  color: var(--cms-encre); font-size: 16px; font-weight: 600; line-height: 1.45;
}
.rdd-cms-bande .rdd-cms-relance { background: #fff; }
.rdd-cms .rdd-cms-relance .rdd-cta { flex: none; }

/* Tarifs en cartes (bloc « Tarifs en trois cartes ») */
.rdd-cms-prix { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.rdd-cms-prix--quatre { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rdd-cms-prix__carte { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 26px 24px; border-radius: 24px; background: #fff; }
.rdd-cms-section .rdd-cms-prix__carte { background: var(--cms-gris); }
.rdd-cms-prix__carte--sombre, .rdd-cms-section .rdd-cms-prix__carte--sombre { background: var(--cms-encre); background-image: radial-gradient(circle at 85% 10%, #3a3a46 0%, var(--cms-encre) 62%); color: #d5d4da; }
.rdd-cms .rdd-cms-prix__nom { margin: 0; color: var(--cms-encre); font-size: 17px; font-weight: 700; }
.rdd-cms .rdd-cms-prix__montant { margin: 6px 0 2px; color: var(--cms-encre); font-size: 42px; font-weight: 700; line-height: 1.1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rdd-cms .rdd-cms-prix__montant small { margin-left: 4px; color: var(--cms-texte); font-size: 14px; font-weight: 500; letter-spacing: 0; }
.rdd-cms .rdd-cms-prix__desc { margin: 0; padding-top: 14px; border-top: 1px solid var(--cms-trait); font-size: 14.5px; line-height: 1.5; }
.rdd-cms .rdd-cms-prix__carte--sombre :is(.rdd-cms-prix__nom, .rdd-cms-prix__montant) { color: #fff; }
.rdd-cms .rdd-cms-prix__carte--sombre .rdd-cms-prix__montant small, .rdd-cms .rdd-cms-prix__carte--sombre .rdd-cms-prix__desc { color: #d5d4da; }
.rdd-cms .rdd-cms-prix__carte--sombre .rdd-cms-prix__desc { border-color: rgba(255, 255, 255, .14); }
.rdd-cms .rdd-cms-prix__badge { align-self: flex-start; margin: -8px 0 2px; padding: 4px 11px; border-radius: 999px; background: var(--cms-rouge); color: #fff; font-size: 12px; font-weight: 700; }

/* Tableaux : défilement horizontal à l'intérieur du cadre, jamais de la page */
.rdd-cms-tableau { margin: 28px 0 0; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--cms-trait); border-radius: 20px; background: #fff; }
.rdd-cms-tableau table { width: 100%; min-width: 640px; margin: 0; border-collapse: collapse; font-size: 15px; }
.rdd-cms-tableau caption { caption-side: top; padding: 16px 20px 6px; color: var(--cms-encre); font-size: 14px; font-weight: 700; text-align: left; }
.rdd-cms-tableau :is(th, td) { padding: 13px 16px; border: 0; border-bottom: 1px solid #ececf1; text-align: center; vertical-align: middle; }
.rdd-cms-tableau thead th { color: var(--cms-texte); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; background: #fafafb; }
.rdd-cms-tableau tbody th { color: var(--cms-encre); font-weight: 600; text-align: left; }
.rdd-cms-tableau tbody tr:last-child :is(th, td) { border-bottom: 0; }
.rdd-cms-tableau tbody td:last-child { color: var(--cms-rouge); font-weight: 700; }
.rdd-cms-tableau tbody tr:hover { background: #fbfbfc; }
.rdd-cms-tableau :is(th, td):first-child { position: sticky; left: 0; background: inherit; }
.rdd-cms-tableau tbody th:first-child { background: #fff; }
.rdd-cms-tableau--choix table { min-width: 560px; }
.rdd-cms-tableau--choix :is(th, td) { text-align: left; }
.rdd-cms-tableau--choix tbody td:last-child { color: inherit; font-weight: 400; }
.rdd-cms-tableau--choix tbody td:nth-child(2) { color: var(--cms-encre); font-weight: 600; }

/* Cartes simples et duo */
.rdd-cms-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 24px; }
.rdd-cms-carte { padding: 26px 28px; border-radius: 22px; background: #fff; }
.rdd-cms-section .rdd-cms-carte { background: var(--cms-gris); }
.rdd-cms .rdd-cms-carte p { margin: 0 0 10px; }
.rdd-cms .rdd-cms-carte p:last-child { margin-bottom: 0; }
.rdd-cms .rdd-cms-carte h3 { margin: 0 0 12px; font-size: 19px; font-weight: 700; }
.rdd-cms .rdd-cms-carte__titre { display: flex; align-items: center; gap: 12px; }
.rdd-cms .rdd-cms-carte__titre::before { content: ""; flex: none; width: 40px; height: 40px; border-radius: 12px; background: var(--cms-rose); }
.rdd-cms .rdd-cms-carte__titre { position: relative; }
.rdd-cms .rdd-cms-carte__titre::after { content: ""; position: absolute; left: 10px; top: 50%; width: 20px; height: 20px; margin-top: -10px; background: var(--cms-rouge); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.rdd-cms-carte__titre--boucle { --ico: var(--ico-boucle); }
.rdd-cms-carte__titre--cadeau { --ico: var(--ico-cadeau); }
.rdd-cms-carte--photo { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 22px; align-items: start; }
.rdd-cms-carte--photo img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 16px; }
.rdd-cms-carte--conseil { border-top: 4px solid var(--cms-rouge); }
.rdd-cms-carte--conseil + .rdd-cms-carte--conseil { border-top-color: var(--cms-encre); }
.rdd-cms-coches { display: grid; gap: 10px; margin: 6px 0 14px !important; }
.rdd-cms-coches > li { position: relative; padding-left: 32px !important; line-height: 1.5; }
.rdd-cms-coches > li::before { content: ""; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; border-radius: 50%; background: var(--cms-rouge); }
.rdd-cms-coches > li::after { content: ""; position: absolute; left: 5px; top: 6px; width: 12px; height: 12px; background: #fff; -webkit-mask: var(--ico-coche) center / contain no-repeat; mask: var(--ico-coche) center / contain no-repeat; }

/* Simulateur de prix de location (rempli par cmsPremium ; sans JS : un exemple chiffré) */
.rdd-cms-simu { padding: 26px 28px; border-radius: 22px; background: var(--cms-encre); background-image: radial-gradient(circle at 90% 0%, #3a3a46 0%, var(--cms-encre) 60%); color: rgba(255, 255, 255, .82); }
.rdd-cms .rdd-cms-simu h3 { margin: 0 0 16px; color: #fff; font-size: 19px; font-weight: 700; }
.rdd-cms .rdd-cms-simu p { margin: 0 0 8px; }
.rdd-cms .rdd-cms-simu strong { color: #fff; }
.rdd-cms-simu label { display: block; margin: 0 0 8px; color: #fff; font-size: 14px; font-weight: 600; }
.rdd-cms-simu__ligne { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.rdd-cms-simu input[type="number"] { width: 104px; flex: none; padding: 10px 12px; border: 0; border-radius: 12px; color: var(--cms-encre); font: inherit; font-size: 18px; font-weight: 700; }
.rdd-cms-simu input[type="range"] { flex: 1; min-width: 0; accent-color: #fff; }
.rdd-cms-simu .rdd-cms-simu__case { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; font-weight: 500; }
.rdd-cms-simu__case input { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--cms-rouge-vif); }
.rdd-cms-simu__total { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .18); color: #fff; }
.rdd-cms .rdd-cms-simu__total strong { font-size: 36px; line-height: 1; font-variant-numeric: tabular-nums; }
.rdd-cms .rdd-cms-simu__detail { margin: 10px 0 0; font-size: 13.5px; }
.rdd-cms-simu :focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Carrousel de cartes photo, pastille centrale + flèches (bloc « Carrousel de cartes photo ») */
.rdd-cms-rail { overflow: hidden; overflow: clip; }
.rdd-cms-rail__tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.rdd-cms-rail__tete > div:first-child { max-width: 760px; }
.rdd-cms-rail__fleches { display: flex; flex: none; gap: 8px; }
.rdd-cms .rdd-cms-rail__fleches button {
  display: grid; place-items: center; width: 48px; height: 48px; margin: 0; padding: 0;
  border: 1px solid var(--cms-trait); border-radius: 50%; background: #fff; color: var(--cms-encre); cursor: pointer;
  transition: border-color .2s, opacity .2s, transform .15s, background .2s;
}
.rdd-cms .rdd-cms-rail__fleches button::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ico-fleche) center / contain no-repeat; mask: var(--ico-fleche) center / contain no-repeat; }
.rdd-cms .rdd-cms-rail__fleches button:first-child::before { transform: scaleX(-1); }
.rdd-cms .rdd-cms-rail__fleches button:hover:not(:disabled) { border-color: var(--cms-encre); background: var(--cms-encre); color: #fff; }
.rdd-cms .rdd-cms-rail__fleches button:active:not(:disabled) { transform: scale(.94); }
.rdd-cms .rdd-cms-rail__fleches button:disabled { opacity: .35; cursor: default; }
.rdd-cms .rdd-cms-rail__fleches button:focus-visible { outline: 2px solid var(--cms-rouge); outline-offset: 2px; }
.rdd-cms-rail__piste {
  display: flex; gap: 18px; padding-bottom: 6px !important;
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none;
}
.rdd-cms-rail__piste::-webkit-scrollbar { display: none; }
.rdd-cms-rail__piste:focus-visible { outline: 2px solid var(--cms-rouge); outline-offset: 4px; border-radius: 28px; }
.rdd-cms-rail__piste.is-glisse { scroll-snap-type: none; scroll-behavior: auto; cursor: grabbing; }
.rdd-cms-rail__piste.is-glisse * { pointer-events: none; }
.rdd-cms-rail__carte { flex: 0 0 340px; scroll-snap-align: start; scroll-snap-stop: normal; transition: opacity .7s var(--cms-courbe), transform .7s var(--cms-courbe); }
.rdd-cms-rail.is-anim .rdd-cms-rail__carte { opacity: 0; transform: translateY(20px); }
.rdd-cms-rail.is-anim.is-vu .rdd-cms-rail__carte { opacity: 1; transform: none; }
.rdd-cms-rail.is-vu .rdd-cms-rail__carte:nth-child(2) { transition-delay: 70ms; }
.rdd-cms-rail.is-vu .rdd-cms-rail__carte:nth-child(3) { transition-delay: 140ms; }
.rdd-cms-rail.is-vu .rdd-cms-rail__carte:nth-child(n+4) { transition-delay: 210ms; }
.rdd-cms-rail__carte:last-child { scroll-snap-align: end; }
.rdd-cms-rail__photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 28px; background: #1c1c1c; }
.rdd-cms-rail__photo--zoom img { transform: scale(2.5); }
.rdd-cms-rail__photo img { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; transition: transform 1s var(--cms-courbe); }
.rdd-cms-rail__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, .16)); pointer-events: none; }
.rdd-cms .rdd-cms-rail__pastille {
  position: absolute; left: 50%; top: 50%; z-index: 1;
  display: flex; align-items: center; gap: 10px; max-width: calc(100% - 28px); margin: 0; padding: 6px 6px 6px 16px;
  border: 1px solid rgba(255, 255, 255, .28); border-radius: 999px;
  background: rgba(31, 31, 39, .5); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  color: #fff; white-space: nowrap; transform: translate(-50%, -50%); transition: transform .4s cubic-bezier(.34, 1.56, .64, 1);
  text-shadow: 0 1px 2px rgba(0, 0, 0, .25);
}
.rdd-cms .rdd-cms-rail__pastille strong { overflow: hidden; text-overflow: ellipsis; color: #fff; font-size: 15px; font-weight: 700; }
.rdd-cms .rdd-cms-rail__pastille span { flex: none; padding: 4px 10px; border-radius: 999px; background: rgba(255, 255, 255, .2); font-size: 12px; font-weight: 600; line-height: 1; }
.rdd-cms .rdd-cms-rail__legende { margin: 16px 0 0; padding: 0 4px; font-size: 15px; line-height: 1.5; }
@media (hover: hover) {
  .rdd-cms-rail__carte:hover .rdd-cms-rail__photo img { transform: scale(1.05); }
  .rdd-cms-rail__carte:hover .rdd-cms-rail__photo--zoom img { transform: scale(2.6); }
  .rdd-cms-rail__carte:hover .rdd-cms-rail__pastille { transform: translate(-50%, -50%) scale(1.06); }
}

/* FAQ (repliée par replierFaq) et encart d'aide */
.rdd-cms-faq > h2 { margin-bottom: 22px !important; }
.rdd-cms .rdd-faq-zone { margin-top: 0; }
.rdd-cms .rdd-faq > summary h3 { color: var(--cms-encre); }
.rdd-cms .rdd-faq__reponse p { margin: 0 0 10px; }
.rdd-cms .rdd-aide__tel.rdd-cms-tel { font-weight: 700; }
.rdd-cms .rdd-aide__tel.rdd-cms-tel { grid-template-columns: 38px auto; }
.rdd-cms .rdd-aide__tel.rdd-cms-tel::before { width: 38px; height: 38px; }
.rdd-cms .rdd-aide__tel.rdd-cms-tel::after { left: 10px; }

/* Demande de devis (page Personnalisation) */
.rdd-cms-devis {
  display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .9fr); gap: 28px 56px; align-items: center;
  padding: 44px 48px; border-radius: 28px; color: rgba(255, 255, 255, .82);
  background: radial-gradient(circle at 88% 12%, #3a3a46 0%, var(--cms-encre) 58%);
  box-shadow: 0 30px 60px -36px rgba(31, 31, 39, .8);
}
.rdd-cms .rdd-cms-devis h2 { color: #fff; }
.rdd-cms .rdd-cms-devis p { margin: 0 0 16px; }
.rdd-cms-devis .rdd-cms-coches { margin-bottom: 0 !important; }
.rdd-cms-devis .rdd-cms-coches > li { color: #fff; }
.rdd-cms-devis__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }

/* Bande « Ils nous font confiance » sans la carte (page Location) : la liste prend sa place */
.rdd-cms .rdd-cms-confiance { margin: 0; }
.rdd-cms .rdd-cms-confiance .rdd-confiance__liste { align-self: center; display: flex; flex-wrap: wrap; gap: 0 16px; margin: 0; padding: 0; }
.rdd-cms .rdd-cms-confiance .rdd-confiance__liste li { margin: 0; }
.rdd-cms .rdd-confiance :is(ul, li) { list-style: none; }
.rdd-cms .rdd-confiance li::marker { content: none; }
.page-cms .cms-content .rdd-cms .rdd-confiance a:not(.rdd-cta) { color: #fff; }

/* Tablette */
@media (max-width: 991px) {
  .rdd-cms-heros { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 8px; }
  .rdd-cms-heros__photo { order: -1; }
  .rdd-cms-atelier { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .rdd-cms-articles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rdd-cms-article, .rdd-cms-article:nth-child(-n+2) { grid-column: auto; }
  .rdd-cms-article:first-child { grid-column: 1 / -1; }
  .rdd-cms-prix--quatre { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rdd-cms-devis { grid-template-columns: minmax(0, 1fr); padding: 36px 32px; }
}

/* Téléphone */
@media (max-width: 767px) {
  .rdd-cms-section, .rdd-cms-bande { padding: 52px 0; }
  .rdd-cms-heros { padding-bottom: 52px; }
  .rdd-cms-heros__photo img { aspect-ratio: 4 / 3; border-radius: 22px; }
  .rdd-cms-tete--duo { flex-direction: column; align-items: flex-start; }
  .rdd-cms-tete--duo > :first-child, .rdd-cms-tete--duo > .rdd-cms-intro { flex: none; }
  .rdd-cms .rdd-cms-intro { font-size: 16px; }
  .rdd-cms-articles { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .rdd-cms-article, .rdd-cms-article:first-child { grid-column: auto; flex-direction: row; align-items: stretch; }
  .rdd-cms-article img, .rdd-cms-article:nth-child(-n+2) img { flex: none; width: 34%; aspect-ratio: auto; min-height: 100%; }
  .rdd-cms-article__corps { padding: 14px 16px; }
  .rdd-cms .rdd-cms-article h3 { font-size: 17px; }
  .rdd-cms .rdd-cms-article p { font-size: 14px; }
  .rdd-cms-prix, .rdd-cms-prix--quatre { grid-template-columns: minmax(0, 1fr); }
  .rdd-cms-prix--quatre { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .rdd-cms-prix--quatre .rdd-cms-prix__carte { padding: 18px 16px; }
  .rdd-cms .rdd-cms-prix--quatre .rdd-cms-prix__montant { font-size: 32px; }
  .rdd-cms .rdd-cms-prix--quatre .rdd-cms-prix__montant small { display: block; margin: 2px 0 0; }
  .rdd-cms .rdd-cms-prix--quatre .rdd-cms-prix__desc { font-size: 13px; }
  .rdd-cms-duo { grid-template-columns: minmax(0, 1fr); }
  .rdd-cms-carte, .rdd-cms-simu { padding: 22px 20px; }
  .rdd-cms-carte--photo { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; }
  .rdd-cms .rdd-cms-relance { flex-direction: column; align-items: stretch; padding: 18px; }
  .rdd-cms-rail__fleches { display: none; }
  .rdd-cms-rail__piste { margin: 0 -10px !important; padding: 0 10px 6px !important; scroll-padding-left: 10px; gap: 14px; }
  .rdd-cms-rail__carte { flex-basis: 78%; }
  .rdd-cms-devis { padding: 30px 22px; border-radius: 22px; }
  .rdd-cms-devis__actions { align-items: stretch; }
  .rdd-cms .rdd-cms-nuancier { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .rdd-cms-tableau table { min-width: 700px; font-size: 14px; }
  .rdd-cms-tableau tbody th { min-width: 150px; }
  .rdd-cms-tableau caption { max-width: calc(100vw - 40px); }
  .rdd-cms-tableau :is(th, td) { padding: 11px 12px; }
}
@media (max-width: 480px) {
  .rdd-cms .rdd-cms-actions { flex-direction: column; align-items: stretch; }
  .rdd-cms .rdd-cta { width: 100%; }
  .rdd-cms .rdd-cta__txt { white-space: normal; }
  .rdd-cms .rdd-cta__txt > span { text-shadow: none; }
  .rdd-cms .rdd-cms-prix__montant { font-size: 36px; }
}

@media (prefers-reduced-motion: reduce) {
  .rdd-cms *, .rdd-cms *::before, .rdd-cms *::after { transition: none !important; animation: none !important; }
  .rdd-cms-rail.is-anim .rdd-cms-rail__carte { opacity: 1; transform: none; }
  .rdd-cms-rail__piste { scroll-behavior: auto; }
}

/* Fiche : le bas de page suit la largeur utile du .container du thème (960, 1140, 1440 px moins 2 × 10 px), comme l'accueil et les catégories */
@media (min-width: 992px) {
  #product .rdd-duo { width: auto; max-width: 940px; margin-right: auto; margin-left: auto; }
}
@media (min-width: 1200px) {
  #product .rdd-duo { max-width: 1120px; }
}
@media (min-width: 1470px) {
  #product .rdd-aide, #product .rdd-confiance, #product .rdd-duo { max-width: 1420px; }
}
@media (min-width: 1200px) {
  #product .rdd-duo > .rdd-confiance:only-child .rdd-confiance__liste { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
  #product .rdd-confiance { margin-right: 16px !important; margin-left: 16px !important; }
}

/* Recette du 06/11 */
/* Entre 992 et 1199 px, le menu ne tient pas entre le logo et le bouton Devis */
@media (min-width: 992px) and (max-width: 1199px) {
  #header .header-top__block--logo { flex: 0 0 150px; max-width: 150px; }
  #header .main-menu__item-link--top { padding-right: 8px; padding-left: 8px; font-size: 13px; }
  .products-list__block--list .product-miniature .col-lg-3 > .p-3 { padding-right: 4px !important; padding-left: 4px !important; }
}
/* Photo d'accueil : voile derrière le texte seulement, la photo garde ses bords clairs */
#index .bm_home-header .hi { background: radial-gradient(ellipse 62% 58% at 50% 56%, rgba(16, 16, 16, .58), rgba(16, 16, 16, .3) 55%, rgba(16, 16, 16, 0) 78%); }
#index .bm_home-header .hi h1, #index .bm_home-header .hi .title { text-shadow: 0 2px 14px rgba(0, 0, 0, .45); }
.rdd-hero .rdd-cta--contour { --cta-fond: rgba(16, 16, 16, .45); }
@media (max-width: 575px) {
  .rdd-hero__point { display: none; }
  .rdd-hero__palier { display: block; }
}
#footer .footer-bottom .title { text-wrap: balance; }
/* Conditions générales : le texte collé porte une largeur de 960 px et sa propre police */
.page-cms-3 [style] { width: auto !important; min-width: 0 !important; max-width: 100%; font-family: inherit !important; }
.page-cms-3 table, .page-cms-8 table { max-width: 100%; }
.page-cms-8 table { width: 100%; margin-bottom: 24px; border-collapse: collapse; font-size: 14px; }
.page-cms-8 th, .page-cms-8 td { padding: 10px 12px; border: 1px solid #e2e2e8; vertical-align: top; text-align: left; }
.page-cms-8 th { background: #f4f4f6; font-weight: 700; }
@media (max-width: 767px) {
  .page-cms-8 table, .page-cms-8 tbody, .page-cms-8 tr, .page-cms-8 td { display: block; }
  .page-cms-8 thead { display: none; }
  .page-cms-8 tr { margin-bottom: 12px; border: 1px solid #e2e2e8; border-radius: 10px; overflow: hidden; }
  .page-cms-8 td { border: 0; border-top: 1px solid #ececf1; }
  .page-cms-8 td:first-child { border-top: 0; background: #f4f4f6; font-weight: 700; }
}
/* Suggestions : les noms tiennent sur deux lignes dès que la carte a de la place */
.rdd-404 .rdd-suggestions__liste, .cart-grid-body .rdd-suggestions__liste { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
/* Fiche produit : titres, tableau et listes de la description */
#product .product-title { font-weight: 600; }
#product .featured-products__title { font-size: clamp(22px, 2.4vw, 28px); text-wrap: balance; }
.product-description h2 { margin-top: 40px; }
.product-description > h2:first-child { margin-top: 0; }
.product-description .table-responsive { margin-bottom: 24px; }
.product-description ul:not([class]) { padding-left: 20px; list-style-position: outside; }
.rdd-palier__titre { text-wrap: balance; }
.an-pf-field-type-file-wrap input[type="file"]::file-selector-button { margin-right: 12px; padding: 8px 16px; border: 1px solid #1f1f27; border-radius: 999px; background: #fff; color: #1f1f27; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
/* Tableau des accessoires : la colonne Personnalisation n'est pas un prix */
.category-id-13 .cms-content .table td:nth-child(2) { color: inherit; font-weight: 400; text-align: left; }
#contact input[name="from"] { background-color: #fff; }
