/* Pages CMS 6 (location) et 7 (personnalisation) servies par les gabarits cms-*.tpl du module.
   Chargée seulement sur ces deux pages. Charte du site : Montserrat, rouge #9E0B0F, encre #1F1F27. */

.rdp {
  --r: #9E0B0F;
  --r-f: #7d070c;
  --encre: #1F1F27;
  --texte: #4b4b5c;
  --doux: #6b6b7b;
  --trait: #e6e6ec;
  --gris: #f4f4f6;
  --rose: #fbf1f1;
  --rose-f: #f3dcdc;
  --rayon: 22px;
  --ombre: 0 24px 50px -30px rgba(31, 31, 39, .35);
  --ombre-f: 0 30px 60px -28px rgba(31, 31, 39, .45);
  --courbe: cubic-bezier(.16, 1, .3, 1);
  color: var(--texte);
  font-family: Montserrat, system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.65;
}
.rdp *, .rdp *::before, .rdp *::after { box-sizing: border-box; }
.rdp :where(h1, h2, h3, p, ul, ol, li, figure, table, fieldset) { margin: 0; padding: 0; }
.rdp :where(h1, h2, h3) { color: var(--encre); font-family: Montserrat, system-ui, sans-serif; text-transform: none; }
.rdp img { display: block; max-width: 100%; height: auto; }
/* Le thème marge les images (.cms-content img), numérote les listes et souligne tous les liens du contenu CMS */
.cms-content .rdp img { margin: 0; }
.cms-content .rdp :is(ul, ol) { padding-left: 0; list-style: none; }
.cms-content .rdp li { list-style: none; }
.cms-content .rdp li::marker { content: none; }
.cms-content .rdp li::before { content: none; }
.cms-content .rdp .rdp-simu__reperes li::before { content: ""; }
.page-cms .cms-content .rdp a:not(.btn) { color: var(--r); font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.page-cms .cms-content .rdp a:not(.btn):hover { color: var(--r-f); text-decoration-thickness: 2px; }
.page-cms .cms-content .rdp a.rdd-cta { color: var(--cta-texte); font-weight: 700; text-decoration: none; }
.page-cms .cms-content .rdp a.rdd-cta:is(:hover, :focus-visible) { color: var(--cta-fleche); }
.page-cms .cms-content .rdp :is(a.rdp-tel, a.rdp-aide__tel, a.cus__explorer) { font-weight: inherit; text-decoration: none; }
.page-cms .cms-content .rdp a.rdp-tel { color: var(--encre); }
.page-cms .cms-content .rdp a.rdp-tel:hover { color: var(--r); }
.page-cms .cms-content .rdp a.rdp-tel--clair, .page-cms .cms-content .rdp a.rdp-tel--clair:hover { color: #fff; }
.page-cms .cms-content .rdp a.rdp-aide__tel { color: var(--r); font-weight: 700; }
.page-cms .cms-content .rdp a.rdp-aide__tel:hover { color: var(--r-f); }
.page-cms .cms-content .rdp a.cus__explorer { color: var(--encre); }
.page-cms .cms-content .rdp .rdd-confiance a:not(.btn):not(.rdd-cta) { color: #fff; }
.page-cms .cms-content .rdp .rdd-confiance a:not(.btn):not(.rdd-cta):hover { color: #ffd9da; }
.rdp .rdp-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.rdp .rdp-ico { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
/* Libellés longs sur deux lignes en mobile : sans l'effet de texte qui roule (sa copie chevaucherait la 2e ligne) */
.rdp .rdd-cta__txt { white-space: normal; }
.rdp .rdd-cta__txt > span { text-shadow: none; transform: none !important; }
.rdp .rdd-cta { max-width: 100%; }
.rdp .rdp-cta-bloc { display: flex; width: 100%; }
.rdp button { font-family: inherit; }

/* Rythme : sections pleine largeur (le fond déborde du conteneur sans élargir la page) */
.rdp-section { position: relative; padding: 96px 0; }
.rdp-bande { background: var(--gris); box-shadow: 0 0 0 100vmax var(--gris); clip-path: inset(0 -100vmax); }
.rdp-teinte { background: var(--rose); box-shadow: 0 0 0 100vmax var(--rose); clip-path: inset(0 -100vmax); }
.rdp-in { width: 100%; }

/* Titres */
.rdp .rdp-h1 { margin-top: 18px; font-size: clamp(32px, 3.6vw, 50px); line-height: 1.08; font-weight: 700; letter-spacing: -.025em; text-wrap: balance; }
.rdp .rdp-h2 { font-size: clamp(27px, 2.6vw, 38px); line-height: 1.15; font-weight: 700; letter-spacing: -.02em; text-wrap: balance; }
.rdp-sur { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: var(--rose); color: var(--r); font-size: 12.5px; line-height: 1.3; font-weight: 700; letter-spacing: .02em; }
.rdp-sur .rdp-ico { width: 15px; height: 15px; }
.rdp-sur--blanc { background: #fff; }
.rdp-tete { max-width: 760px; margin-bottom: 44px; }
.rdp-tete .rdp-h2 { margin-top: 14px; }
.rdp-tete > .rdp-h2:first-child { margin-top: 0; }
.rdp-tete--duo { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 24px 56px; align-items: end; max-width: none; }
.rdp-tete--centre { margin-right: auto; margin-left: auto; text-align: center; }
.rdp-tete--large { max-width: 980px; }
.rdp-intro { margin-top: 14px; color: var(--doux); font-size: 16.5px; }
.rdp-tete--duo .rdp-intro { margin-top: 0; }
.rdp-intro--liste { font-size: 14.5px; line-height: 1.75; }
.rdp-note { margin-top: 18px; color: var(--doux); font-size: 13.5px; }

/* Héros */
.rdp-heros { position: relative; isolation: isolate; padding: 36px 0 84px; }
.rdp-heros::before { content: ""; position: absolute; inset: -40px 0 0; z-index: -1; pointer-events: none; background: radial-gradient(520px 380px at 78% 30%, var(--rose), transparent 70%); }
.rdp-heros__grille { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 56px; align-items: center; }
.rdp-chapo { margin-top: 20px; color: var(--encre); font-size: 19px; line-height: 1.5; font-weight: 600; }
.rdp-heros__intro { margin-top: 12px; color: var(--doux); }
.rdp-reperes { display: grid; gap: 12px; margin-top: 26px; }
.rdp-reperes li { display: flex; align-items: center; gap: 12px; color: var(--encre); font-size: 15px; line-height: 1.4; font-weight: 600; }
.rdp-reperes__ico { display: grid; flex: none; place-items: center; width: 36px; height: 36px; border-radius: 11px; background: var(--rose); color: var(--r); }
.rdp-reperes__ico .rdp-ico { width: 18px; height: 18px; }
.rdp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 26px; margin-top: 30px; }
.rdp-tel { display: inline-flex; align-items: center; gap: 12px; color: var(--encre); text-decoration: none; }
.rdp-tel:hover { color: var(--r); text-decoration: none; }
.rdp-tel__ico { display: grid; flex: none; place-items: center; width: 42px; height: 42px; border: 1px solid var(--trait); border-radius: 50%; background: #fff; color: var(--r); transition: transform .4s var(--courbe), border-color .3s; }
.rdp-tel:hover .rdp-tel__ico { border-color: var(--r); transform: rotate(-12deg); }
.rdp-tel strong { display: block; font-size: 16px; line-height: 1.2; }
.rdp-tel small { display: block; color: var(--doux); font-size: 12px; line-height: 1.3; }
.rdp-tel--clair, .rdp-tel--clair:hover { color: #fff; }
.rdp-tel--clair small { color: rgba(255, 255, 255, .65); }
.rdp-tel--clair .rdp-tel__ico { border-color: rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .06); color: #fff; }
.rdp-heros__visuel { position: relative; }
.rdp-heros__photo { position: relative; overflow: hidden; border-radius: 28px; box-shadow: var(--ombre-f); aspect-ratio: 5 / 4; }
.rdp-heros__photo img { width: 100%; height: 100%; object-fit: cover; }
.rdp-legende { position: absolute; left: 16px; bottom: 16px; margin: 0; padding: 8px 14px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px; background: rgba(31, 31, 39, .55); color: #fff; font-size: 13px; line-height: 1.3; font-weight: 600; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.rdp-legende--haut { top: 16px; bottom: auto; }
.rdp-heros__badge { position: absolute; right: -14px; bottom: 36px; display: flex; flex-direction: column; padding: 14px 20px; border-radius: 18px; background: #fff; box-shadow: var(--ombre-f); animation: rdp-flotte 6s ease-in-out infinite; }
.rdp-heros__badge b { color: var(--r); font-size: 30px; line-height: 1; font-weight: 800; letter-spacing: -.03em; }
.rdp-heros__badge span { margin-top: 4px; color: var(--encre); font-size: 12.5px; line-height: 1.2; font-weight: 600; }
@keyframes rdp-flotte { 50% { transform: translateY(-8px); } }

/* Location : tarifs + simulateur en un seul bloc */
.rdp-tarif { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); overflow: hidden; border-radius: 28px; background: #fff; box-shadow: var(--ombre-f); }
.rdp-tarif__paliers { padding: 36px; }
.rdp-tarif__titre { color: var(--encre); font-size: 18px; }
.rdp-tarif__sous { margin-top: 6px; color: var(--doux); font-size: 14.5px; }
.rdp-paliers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 22px; }
.rdp .rdp-palier { position: relative; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; width: 100%; height: 100%; margin: 0; padding: 18px 18px 16px; border: 1.5px solid var(--trait); border-radius: 18px; background: #fff; color: var(--texte); font-size: 14px; line-height: 1.35; text-align: left; cursor: pointer; transition: border-color .25s, background-color .25s, transform .35s var(--courbe), box-shadow .35s; }
.rdp .rdp-palier:hover { border-color: #d2c3c3; transform: translateY(-2px); box-shadow: 0 16px 30px -22px rgba(31, 31, 39, .5); }
.rdp .rdp-palier:focus-visible { outline: 2px solid var(--r); outline-offset: 3px; }
.rdp-palier__q { flex-basis: 100%; color: var(--doux); font-size: 13px; font-weight: 600; }
.rdp-palier__p { margin-top: 4px; color: var(--encre); font-size: 26px; line-height: 1.1; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; transition: color .25s; }
.rdp-palier__u { color: var(--doux); font-size: 13px; }
.rdp-palier__badge { position: absolute; top: -10px; right: 14px; padding: 3px 10px; border-radius: 999px; background: var(--r); color: #fff; font-size: 11px; line-height: 1.4; font-weight: 700; }
.rdp .rdp-palier[aria-pressed="true"] { border-color: var(--r); background: var(--rose); box-shadow: 0 0 0 4px rgba(158, 11, 15, .08); }
.rdp .rdp-palier[aria-pressed="true"] .rdp-palier__p { color: var(--r); }
.rdp-tarif__coiffe { display: flex; align-items: center; gap: 14px; margin-top: 18px; padding: 14px 16px; border-radius: 16px; background: var(--gris); color: var(--encre); font-size: 14.5px; line-height: 1.45; }
.rdp-tarif__coiffe-ico { display: grid; flex: none; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: #fff; color: var(--r); }

.rdp-simu { display: flex; flex-direction: column; padding: 36px; color: rgba(255, 255, 255, .78); background: #1F1F27; }
.rdp .rdp-simu__titre { color: #fff; font-size: 20px; line-height: 1.3; font-weight: 700; }
.rdp-simu__label { margin: 20px 0 8px; color: rgba(255, 255, 255, .7); font-size: 13px; font-weight: 600; }
.rdp-simu__saisie { display: inline-flex; align-items: stretch; align-self: flex-start; overflow: hidden; border: 1px solid rgba(255, 255, 255, .16); border-radius: 14px; background: rgba(255, 255, 255, .06); }
.rdp .rdp-simu__pas { width: 46px; margin: 0; padding: 0; border: 0; background: transparent; color: #fff; font-size: 22px; line-height: 1; cursor: pointer; transition: background-color .2s; }
.rdp .rdp-simu__pas:hover { background: rgba(255, 255, 255, .1); }
.rdp .rdp-simu__pas:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.rdp .rdp-simu__nombre { width: 84px; height: 50px; margin: 0; padding: 0; border: 0; border-right: 1px solid rgba(255, 255, 255, .12); border-left: 1px solid rgba(255, 255, 255, .12); border-radius: 0; background: transparent; color: #fff; font: 700 20px/1 Montserrat, sans-serif; text-align: center; -moz-appearance: textfield; appearance: textfield; }
.rdp .rdp-simu__nombre::-webkit-outer-spin-button, .rdp .rdp-simu__nombre::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
.rdp .rdp-simu__nombre:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.rdp-simu__piste { position: relative; margin-top: 22px; padding-bottom: 26px; }
.rdp .rdp-simu__curseur { --pct: 10.5%; width: 100%; height: 28px; margin: 0; background: transparent; -webkit-appearance: none; appearance: none; cursor: pointer; }
.rdp .rdp-simu__curseur::-webkit-slider-runnable-track { height: 6px; border-radius: 6px; background: linear-gradient(90deg, #fff var(--pct), rgba(255, 255, 255, .16) var(--pct)); }
.rdp .rdp-simu__curseur::-moz-range-track { height: 6px; border-radius: 6px; background: linear-gradient(90deg, #fff var(--pct), rgba(255, 255, 255, .16) var(--pct)); }
.rdp .rdp-simu__curseur::-webkit-slider-thumb { width: 24px; height: 24px; margin-top: -9px; border: 4px solid #fff; border-radius: 50%; background: #1F1F27; box-shadow: 0 4px 14px rgba(0, 0, 0, .4); -webkit-appearance: none; appearance: none; transition: transform .2s; }
.rdp .rdp-simu__curseur::-moz-range-thumb { width: 16px; height: 16px; border: 4px solid #fff; border-radius: 50%; background: #1F1F27; }
.rdp .rdp-simu__curseur:active::-webkit-slider-thumb { transform: scale(1.15); }
.rdp .rdp-simu__curseur:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: 6px; }
.rdp-simu__reperes { position: absolute; right: 12px; bottom: 0; left: 12px; height: 20px; }
.rdp-simu__reperes li { position: absolute; top: 0; color: rgba(255, 255, 255, .45); font-size: 11.5px; font-weight: 600; transform: translateX(-50%); transition: color .25s; }
.rdp-simu__reperes li::before { content: ""; position: absolute; top: -8px; left: 50%; width: 1px; height: 6px; background: currentColor; }
.rdp-simu__reperes li.is-atteint { color: #fff; }
.rdp-case { position: relative; display: flex; align-items: flex-start; gap: 12px; margin-top: 16px; color: rgba(255, 255, 255, .85); font-size: 14px; line-height: 1.45; cursor: pointer; }
.rdp-case input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.rdp-case__boite { position: relative; flex: none; width: 22px; height: 22px; margin-top: -1px; border: 1.5px solid rgba(255, 255, 255, .4); border-radius: 7px; transition: background-color .2s, border-color .2s; }
.rdp-case__boite::after { content: ""; position: absolute; top: 3px; left: 7px; width: 5px; height: 10px; border: solid #1F1F27; border-width: 0 2px 2px 0; opacity: 0; transform: rotate(45deg) scale(.6); transition: opacity .2s, transform .25s var(--courbe); }
.rdp-case input:checked + .rdp-case__boite { border-color: #fff; background: #fff; }
.rdp-case input:checked + .rdp-case__boite::after { opacity: 1; transform: rotate(45deg) scale(1); }
.rdp-case input:focus-visible + .rdp-case__boite { outline: 2px solid #fff; outline-offset: 2px; }
.rdp-simu__total { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-top: 24px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .12); }
.rdp-simu__total span { color: rgba(255, 255, 255, .7); font-size: 14px; font-weight: 600; }
.rdp-simu__total output { color: #fff; font-size: clamp(40px, 4vw, 54px); line-height: 1; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.rdp-simu__total output.is-bouge { animation: rdp-pouls .45s var(--courbe); }
@keyframes rdp-pouls { 40% { transform: scale(1.04); color: #ffd9da; } }
.rdp-simu__detail { margin-top: 8px; color: rgba(255, 255, 255, .62); font-size: 13px; }
.rdp-simu__palier { display: flex; align-items: center; gap: 8px; margin-top: 14px; padding: 10px 14px; border-radius: 12px; background: rgba(255, 255, 255, .07); color: #fff; font-size: 13.5px; font-weight: 600; }
.rdp-simu__palier::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px rgba(255, 255, 255, .18); }
.rdp-simu__palier.is-max::before { background: #fff; }
.rdp-simu__note { margin-top: 10px; color: rgba(255, 255, 255, .5); font-size: 12.5px; }
.rdp-simu__relance { margin: auto 0 14px; padding-top: 22px; color: #fff; font-size: 14.5px; font-weight: 600; }

.rdp-relance { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 20px; margin-top: 40px; padding: 18px 20px; border: 1px solid var(--trait); border-radius: 20px; background: #fff; }
.rdp-relance p { flex: 1 1 280px; color: var(--encre); font-size: 15px; font-weight: 600; }
.rdp-relance__ico { display: grid; flex: none; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--rose); color: var(--r); }

/* Location : ce qui est compris. Quatre tuiles autour d'une pastille ronde, grande carte photo à encart blanc
   (bento du bloc cmu59vpuw0001w2omg7vo55e0 de la bibliothèque) */
.rdp-compris { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 20px; }
.rdp-garde { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; min-height: 520px; overflow: hidden; padding: 16px; border: 1px solid var(--trait); border-radius: 30px; background: var(--rose); }
.rdp .rdp-garde__photo { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; transition: transform .8s cubic-bezier(.22, 1, .36, 1); }
.rdp-garde:hover .rdp-garde__photo { transform: scale(1.05); }
.rdp-garde__encart { padding: 24px; border-radius: 20px; background: rgba(255, 255, 255, .94); box-shadow: 0 0 10px rgba(31, 31, 39, .1); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.rdp .rdp-garde__titre { display: flex; align-items: center; gap: 12px; font-size: 19px; line-height: 1.3; font-weight: 700; }
.rdp-garde__ico { display: grid; flex: none; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--rose); color: var(--r); }
.rdp-garde__encart p { margin-top: 12px; font-size: 14.5px; }

/* Louer ou acheter : deux cartes en forme de dossier, onglet biseauté à gauche puis à droite
   (bloc cmugnlsay008bcsxn49agq7o9 de la bibliothèque, sans la bascule de période) */
.rdp-duel { --onglet: 40px; --rr: 26px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.rdp-duel__carte { position: relative; isolation: isolate; display: flex; flex-direction: column; padding: calc(var(--onglet) + 40px) 44px 40px; transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.rdp-duel__carte:hover { transform: translateY(-6px); }
.rdp-duel__forme { position: absolute; z-index: -1; inset: 0; filter: drop-shadow(0 26px 40px rgba(31, 31, 39, .1)); }
.rdp-duel__onglet { position: absolute; top: 0; width: 58%; height: calc(var(--onglet) + 2px); background: var(--c); }
.rdp-duel__corps { position: absolute; inset: var(--onglet) 0 0; border-radius: var(--rr); background: var(--c); }
.rdp-duel__carte--loc { --c: var(--r); color: rgba(255, 255, 255, .82); }
.rdp-duel__carte--loc .rdp-duel__corps { border-top-left-radius: 0; background: var(--r); }
.rdp-duel__carte--loc .rdp-duel__onglet { left: 0; border-top-left-radius: var(--rr); clip-path: polygon(0 0, 70% 0, 100% 100%, 0 100%); }
.rdp-duel__carte--achat .rdp-duel__onglet { right: 0; border-top-right-radius: var(--rr); clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%); }
.rdp-duel__carte--achat .rdp-duel__corps { border-top-right-radius: 0; }
.rdp-duel__forme--trait { --c: #d9d9e0; }
.rdp-duel__forme--dedans { --c: #fff; inset: 1.5px; filter: none; }
.rdp-duel__forme--dedans .rdp-duel__corps { border-radius: calc(var(--rr) - 1.5px); border-top-right-radius: 0; }
.rdp-duel__forme--dedans .rdp-duel__onglet { border-top-right-radius: calc(var(--rr) - 1.5px); }
.rdp .rdp-duel__titre { display: flex; align-items: center; gap: 14px; font-size: 26px; line-height: 1.2; font-weight: 700; letter-spacing: -.02em; }
.rdp-duel__ico { display: grid; flex: none; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: var(--rose); color: var(--r); }
.rdp-duel__carte--loc .rdp-duel__titre { color: #fff; }
.rdp-duel__carte--loc .rdp-duel__ico { background: #fff; }
.rdp-duel__liste { margin: 26px 0 0; }
.rdp-duel__liste > div { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); gap: 4px 16px; padding: 13px 0; border-bottom: 1px solid var(--trait); }
.rdp-duel__liste dt { color: var(--doux); font-size: 13px; line-height: 1.6; font-weight: 600; }
.rdp-duel__liste dd { margin: 0; color: var(--encre); font-size: 15px; line-height: 1.5; font-weight: 600; }
.rdp-duel__carte--loc .rdp-duel__liste > div { border-color: rgba(255, 255, 255, .2); }
.rdp-duel__carte--loc dt { color: rgba(255, 255, 255, .78); }
.rdp-duel__carte--loc dd { color: #fff; }
.rdp-duel__conseil { margin-top: auto; padding-top: 26px; font-size: 15px; }
.rdp .rdp-duel__conseil h4 { margin: 0 0 4px; color: var(--encre); font: 700 18px/1.3 Montserrat, system-ui, sans-serif; text-transform: none; }
.rdp .rdp-duel__carte--loc h4 { color: #fff; }

/* Questions fréquentes : une carte par question, le + pivote en × (bloc cmu5dc25s000113a8z9g7dwm1 de la bibliothèque) */
.rdp-faq__grille { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 40px 64px; align-items: start; }
.rdp-faq__cote { position: sticky; top: 110px; }
.rdp-aide { margin-top: 28px; padding: 28px; border: 1px solid var(--rose-f); border-radius: var(--rayon); background: radial-gradient(300px 200px at 100% 0%, var(--rose), transparent 70%), #fff; box-shadow: var(--ombre); }
.rdp-aide__photo { width: 64px; height: 64px; border: 3px solid var(--rose-f); border-radius: 50%; object-fit: cover; }
.rdp-aide__titre { margin-top: 16px; color: var(--encre); font-size: 19px; font-weight: 700; }
.rdp-aide__texte { margin-top: 6px; font-size: 14px; }
.rdp .rdp-aide__tel { display: inline-flex; align-items: center; gap: 10px; margin: 18px 0; font-size: 18px; font-weight: 700; text-decoration: none; }
.rdp-faq__liste { display: grid; gap: 4px; }
.rdp-q { border-radius: 14px; background: var(--gris); transition: background-color .25s; }
.rdp-q:hover { background: #eeeef1; }
.rdp-bande .rdp-q, .rdp-bande .rdp-q:hover { background: #fff; }
.rdp-q summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 80px; padding: 18px 26px; list-style: none; cursor: pointer; }
.rdp-q summary::-webkit-details-marker { display: none; }
.rdp-q summary:focus-visible { outline: 2px solid var(--r); outline-offset: -4px; border-radius: 14px; }
.rdp .rdp-q h3 { color: var(--encre); font-size: 16.5px; line-height: 1.4; font-weight: 700; }
.rdp-q__ico { position: relative; flex: none; width: 36px; height: 36px; border-radius: 50%; background: #e8e8ec; transition: background-color .3s, transform .4s cubic-bezier(.34, 1.56, .64, 1); }
.rdp-bande .rdp-q__ico { background: var(--gris); }
.rdp-q__ico::before, .rdp-q__ico::after { content: ""; position: absolute; top: 50%; left: 50%; width: 14px; height: 1.5px; border-radius: 2px; background: var(--encre); transform: translate(-50%, -50%); transition: background-color .3s; }
.rdp-q__ico::after { transform: translate(-50%, -50%) rotate(90deg); }
.rdp-q summary:hover .rdp-q__ico { transform: scale(1.08); }
.rdp-q[open] .rdp-q__ico { background: var(--r); transform: rotate(45deg); }
.rdp-q[open] .rdp-q__ico::before, .rdp-q[open] .rdp-q__ico::after { background: #fff; }
.rdp-q__r { padding: 0 86px 24px 26px; }
.rdp-q[open] .rdp-q__r { animation: rdp-ouvre .45s var(--courbe); }
@keyframes rdp-ouvre { from { opacity: 0; transform: translateY(-6px); } }

/* Confiance (bloc du site) */
.rdp-section--confiance { padding-top: 24px; }
.rdp .rdd-confiance { margin: 0 !important; }
/* Le bloc commun du site garde sa photo en bandeau : sans ces règles, la remise à zéro de .rdp (marges des figures, hauteur des images) la laissait couvrir le texte */
.page-cms .cms-content .rdp .rdd-confiance__photo { height: 300px; margin: -40px -40px -60px; }
.page-cms .cms-content .rdp .rdd-confiance__photo img { width: 100%; height: 100%; }
@media (max-width: 767px) { .page-cms .cms-content .rdp .rdd-confiance__photo { height: 220px; margin: -28px -20px -44px; } }
.page-cms .cms-content .rdp .rdd-confiance__chiffres { margin-bottom: 26px; }

/* Personnalisation : atelier (mise en page dans la couche v5) */
.rdp-pale { color: #a9a9b6; }
.rdp-atelier { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.rdp-atelier__texte { display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: 40px 40px 112px; border-radius: var(--rayon); background: #fff; }
.rdp-atelier__tel { padding: 14px 18px; border-left: 3px solid var(--r); border-radius: 0 14px 14px 0; background: var(--rose); color: var(--encre); }

/* Personnalisation : articles en onglets (liste à gauche, photo à droite) */
.rdp-onglets { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); align-items: center; }
.rdp-onglets__item { position: relative; border-radius: 18px 0 0 18px; transition: background-color .3s; }
.rdp-onglets__item + .rdp-onglets__item { margin-top: 4px; }
.rdp .rdp-onglets__h { font-size: inherit; }
.rdp .rdp-onglets__bouton { display: flex; align-items: center; gap: 16px; width: 100%; margin: 0; padding: 18px 22px 8px; border: 0; background: transparent; color: var(--encre); font-size: 19px; line-height: 1.3; font-weight: 700; text-align: left; cursor: pointer; }
.rdp .rdp-onglets__bouton > span:last-child { font-family: Montserrat, system-ui, sans-serif; font-weight: 700; }
.rdp .rdp-onglets__bouton:focus-visible { outline: 2px solid var(--r); outline-offset: -2px; border-radius: 16px; }
.rdp-onglets__num { color: var(--doux); font-size: 12px; font-weight: 800; letter-spacing: .1em; transition: color .3s; }
.rdp-onglets__repli { display: grid; grid-template-rows: 1fr; }
.rdp-onglets__desc { min-height: 0; overflow: hidden; }
.rdp-onglets__desc p { padding: 0 22px 18px 50px; font-size: 14.5px; line-height: 1.6; }
.rdp-onglets__vue { position: relative; overflow: hidden; aspect-ratio: 4 / 3; border-radius: 28px; background: var(--gris); }
.rdp-onglets__img { position: absolute; inset: 14px; width: calc(100% - 28px) !important; height: calc(100% - 28px) !important; border-radius: 20px; background: #fff; object-fit: contain; opacity: 0; }
.rdp-onglets__img.is-actif { z-index: 2; opacity: 1; }
.rdp-onglets[data-rdp-pret] .rdp-onglets__img.is-actif { animation: rdp-fondu .6s cubic-bezier(.4, 0, .2, 1); }
.rdp-onglets__img.is-avant { z-index: 1; opacity: 1; }
@keyframes rdp-fondu { from { opacity: 0; transform: scale(1.02); } }
.rdp-onglets[data-rdp-pret] .rdp-onglets__repli { grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .5s var(--courbe), visibility 0s .5s; }
.rdp-onglets[data-rdp-pret] .rdp-onglets__item.is-actif .rdp-onglets__repli { grid-template-rows: 1fr; visibility: visible; transition: grid-template-rows .5s var(--courbe), visibility 0s; }
.rdp-onglets[data-rdp-pret] .rdp-onglets__item.is-actif { background: var(--gris); }
.rdp-onglets[data-rdp-pret] .rdp-onglets__item.is-actif .rdp-onglets__num { color: var(--r); }
.rdp-onglets[data-rdp-pret] .rdp-onglets__item:not(.is-actif) .rdp-onglets__bouton { padding-bottom: 18px; color: var(--doux); }
.rdp-onglets[data-rdp-pret] .rdp-onglets__item:not(.is-actif) .rdp-onglets__bouton:hover { color: var(--encre); }

/* Personnalisation : bento texte, logo, couleurs */
.rdp-bento { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr) minmax(0, 1fr); gap: 20px; }
.rdp-bento__carte { display: flex; flex-direction: column; padding: 28px; border-radius: var(--rayon); background: #fff; box-shadow: var(--ombre); }
.rdp .rdp-bento__carte h3 { margin-top: 16px; font-size: 19px; font-weight: 700; }
.rdp-bento__carte > p, .rdp-bento__corps > p { margin-top: 8px; font-size: 14.5px; }
.rdp-bento__ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: var(--encre); color: #fff; font: italic 700 18px/1 Georgia, serif; }
.rdp-bento__apercu { margin-top: auto; padding-top: 22px; }
.rdp-bento__exemple { --ex: #d8b25a; padding: 22px 18px; border-radius: 16px; background: #1F1F27; color: var(--ex); font: italic 600 20px/1.3 Georgia, "Times New Roman", serif; text-align: center; transition: color .35s; }
.rdp-bento__essai { margin-top: 8px; color: var(--doux); font-size: 12.5px; text-align: center; }
.rdp-bento__carte--logo { flex-direction: row; gap: 0; padding: 0; overflow: hidden; }
.rdp-bento__photo { flex: 0 0 46%; }
.rdp-bento__photo img { width: 100%; height: 100%; object-fit: cover; }
.rdp-bento__corps { display: flex; flex-direction: column; padding: 28px; }
.rdp .rdp-bento__corps h3 { margin-top: 0; }
.rdp-pastilles { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 18px; }
.rdp-pastilles li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 8px; border-radius: 999px; background: var(--gris); color: var(--encre); font-size: 12.5px; font-weight: 600; }
.rdp-pastilles .rdp-ico { width: 15px; height: 15px; color: var(--r); stroke-width: 2.4; }
.rdp-nuancier { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px 4px; margin-top: 18px; }
.rdp .rdp-nuance { display: flex; flex-direction: column; align-items: center; gap: 5px; width: 100%; margin: 0; padding: 0; border: 0; background: none; color: var(--doux); font-size: 10.5px; line-height: 1.2; font-weight: 600; cursor: pointer; }
.rdp .rdp-nuance::before { content: ""; width: 26px; height: 26px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(31, 31, 39, .14); transition: transform .3s var(--courbe), box-shadow .3s; }
.rdp .rdp-nuance:hover::before { transform: scale(1.12); }
.rdp .rdp-nuance[aria-pressed="true"] { color: var(--encre); }
.rdp .rdp-nuance[aria-pressed="true"]::before { box-shadow: inset 0 0 0 1px rgba(31, 31, 39, .14), 0 0 0 3px #fff, 0 0 0 5px var(--r); }
.rdp .rdp-nuance:focus-visible { outline: 2px solid var(--r); outline-offset: 2px; border-radius: 6px; }
.rdp-c-blanc { --c: #fff; } .rdp-c-noir { --c: #1b1b1b; } .rdp-c-rouge { --c: #d0161d; } .rdp-c-jaune { --c: #f3c21b; }
.rdp-c-bleu-fonce { --c: #1d2f6b; } .rdp-c-bleu-clair { --c: #6aa9e0; } .rdp-c-vert-fonce { --c: #1f5b35; } .rdp-c-vert-clair { --c: #6cc070; }
.rdp-c-orange { --c: #f07d1a; } .rdp-c-rose { --c: #f08db2; } .rdp-c-bordeaux { --c: #74121d; } .rdp-c-violet { --c: #6a3a9c; }
.rdp-c-marron { --c: #6b4226; } .rdp-c-gris { --c: #9a9aa2; } .rdp-c-dore { --c: linear-gradient(135deg, #f5dc8c, #b8892c); }
.rdp-polices { margin-top: 18px; font-size: 13.5px; }
.rdp-bento__carte .rdp-note { margin-top: 10px; }

/* Personnalisation : prix, calcul, paliers */
.rdp-prix { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.rdp-prix__carte { padding: 28px; border: 1px solid var(--trait); border-radius: var(--rayon); background: #fff; transition: transform .4s var(--courbe), box-shadow .4s; }
.rdp-prix__carte:hover { transform: translateY(-4px); box-shadow: var(--ombre); }
.rdp-prix__nom { color: var(--encre); font-size: 14px; font-weight: 700; }
.rdp-prix__montant { margin-top: 10px; padding-bottom: 16px; border-bottom: 1px solid var(--trait); color: var(--encre); font-size: 40px; line-height: 1.1; font-weight: 800; letter-spacing: -.03em; }
.rdp-prix__montant small { color: var(--doux); font-size: 13px; font-weight: 500; letter-spacing: 0; }
.rdp-prix__desc { margin-top: 14px; font-size: 14px; }
.rdp-prix__carte--sombre { border-color: transparent; color: rgba(255, 255, 255, .85); background: var(--r); }
.rdp-prix__carte--sombre :is(.rdp-prix__nom, .rdp-prix__montant) { color: #fff; }
.rdp-prix__carte--sombre .rdp-prix__montant { border-color: rgba(255, 255, 255, .14); }
.rdp-prix__carte--sombre small { color: rgba(255, 255, 255, .6); }
.rdp-calcul { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); gap: 0; overflow: hidden; margin-top: 20px; border-radius: 24px; border: 1px solid var(--trait); background: #fff; box-shadow: var(--ombre); }
.rdp-calcul[hidden] { display: none; }
.rdp-calcul__champs { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 18px 22px; padding: 30px; }
.rdp-calcul__titre { flex-basis: 100%; color: var(--encre); font-size: 19px; font-weight: 700; }
.rdp-calcul__champ { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; border: 0; }
.rdp-calcul__champ > span, .rdp-calcul__champ > label, .rdp-calcul__champ legend { color: var(--doux); font-size: 13px; font-weight: 600; }
.rdp-calcul__champ legend { float: left; width: 100%; margin-bottom: 8px; padding: 0; }
.rdp .rdp-calcul select { height: 52px; min-width: 240px; padding: 0 40px 0 16px; border: 1px solid var(--trait); border-radius: 14px; background: var(--gris) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231F1F27' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center; color: var(--encre); font: 600 15px Montserrat, sans-serif; -webkit-appearance: none; appearance: none; }
.rdp .rdp-calcul select:focus-visible { outline: 2px solid var(--r); outline-offset: 2px; }
.rdp-calcul__impression { flex-direction: row; flex-wrap: wrap; gap: 0; }
.rdp-calcul__impression label { position: relative; margin: 0; cursor: pointer; }
.rdp-calcul__impression input { position: absolute; opacity: 0; }
.rdp-calcul__impression span { display: block; padding: 14px 16px; border: 1px solid var(--trait); background: var(--gris); color: var(--encre); font-size: 13.5px; font-weight: 600; transition: background-color .2s, color .2s; }
.rdp-calcul__impression label:first-of-type span { border-radius: 14px 0 0 14px; }
.rdp-calcul__impression label:last-of-type span { border-radius: 0 14px 14px 0; }
.rdp-calcul__impression label + label span { border-left: 0; }
.rdp-calcul__impression input:checked + span { border-color: var(--r); background: var(--r); color: #fff; }
.rdp-calcul__impression input:focus-visible + span { position: relative; outline: 2px solid var(--r); outline-offset: 2px; }
.rdp-calcul__resultat { display: flex; flex-direction: column; justify-content: center; padding: 30px; background: var(--rose); }
.rdp-calcul__label { color: var(--doux); font-size: 13px; font-weight: 600; }
.rdp-calcul__resultat output { margin-top: 4px; color: var(--r); font-size: 46px; line-height: 1.05; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.rdp-calcul__resultat output.is-bouge { animation: rdp-pouls-clair .45s var(--courbe); }
@keyframes rdp-pouls-clair { 40% { transform: scale(1.04); } }
.rdp-calcul .rdp-simu__saisie { border-color: var(--trait); background: var(--gris); }
.rdp-calcul .rdp-simu__pas, .rdp-calcul .rdp-simu__nombre { color: var(--encre); }
.rdp-calcul .rdp-simu__nombre { border-color: var(--trait); }
.rdp-calcul .rdp-simu__pas:hover { background: var(--rose-f); }
.rdp-calcul :is(.rdp-simu__pas, .rdp-simu__nombre):focus-visible { outline-color: var(--r); }
.rdp-calcul .rdp-simu__note { color: var(--doux); }
.rdp-calcul__detail { margin-top: 8px; color: var(--texte); font-size: 13px; }
.rdp-calcul__livraison { margin-top: 10px; color: var(--encre); font-size: 13px; font-weight: 600; }
.rdp-calcul__livraison:empty { display: none; }
.rdp-tableau { overflow-x: auto; margin-top: 20px; border: 1px solid var(--trait); border-radius: var(--rayon); background: #fff; -webkit-overflow-scrolling: touch; }
.rdp-tableau table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 14px; font-variant-numeric: tabular-nums; }
.rdp-tableau caption { padding: 18px 20px 6px; color: var(--encre); font-size: 14px; font-weight: 700; text-align: left; caption-side: top; }
.rdp-tableau :is(th, td) { padding: 13px 16px; border-bottom: 1px solid var(--trait); text-align: right; white-space: nowrap; transition: background-color .25s, color .25s; }
.rdp-tableau :is(th, td):first-child { position: sticky; left: 0; z-index: 1; background: #fff; text-align: left; white-space: normal; }
.rdp-tableau thead th { color: var(--doux); font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.rdp-tableau tbody th { color: var(--encre); font-weight: 600; }
.rdp-tableau tbody tr:last-child :is(th, td) { border-bottom: 0; }
.rdp-tableau td:last-child { color: var(--r); font-weight: 700; }
.rdp-tableau .is-col { background: var(--rose); }
.rdp-tableau .is-ligne :is(th, td) { background: #fafafb; }
.rdp-tableau .is-ligne .is-col { background: var(--r); color: #fff; font-weight: 700; }

/* Personnalisation : réalisations (bento de 4 tuiles) */
.rdp-realisations { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.rdp-realisation__photo { position: relative; overflow: hidden; aspect-ratio: 4 / 5; border-radius: var(--rayon); background: #fff; }
.rdp-realisation__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--courbe); }
.rdp-realisation:hover .rdp-realisation__photo img { transform: scale(1.06); }
.rdp-realisation__photo--zoom img { transform: scale(1.18); }
.rdp-realisation:hover .rdp-realisation__photo--zoom img { transform: scale(1.24); }
.rdp-realisation__photo::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(to top, rgba(15, 15, 20, .55), transparent); pointer-events: none; }
.rdp-realisation__pastille { position: absolute; z-index: 1; right: 12px; bottom: 12px; left: 12px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 8px; color: #fff; font-size: 13.5px; line-height: 1.3; }
.rdp-realisation__pastille span { padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .22); font-size: 11.5px; font-weight: 700; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.rdp-realisation__legende { margin-top: 12px; font-size: 14px; line-height: 1.55; }
.rdp-realisation--compteur { position: relative; }
.rdp-realisation--compteur .rdp-realisation__photo::after { inset: 0; background: rgba(158, 11, 15, .88); }
.rdp-realisation__chiffre { position: absolute; z-index: 1; top: 0; right: 0; left: 0; display: flex; flex-direction: column; justify-content: flex-end; aspect-ratio: 4 / 5; padding: 22px; color: #fff; }
.rdp-realisation__chiffre strong { font-size: 28px; line-height: 1.1; font-weight: 800; letter-spacing: -.02em; }
.rdp-realisation__chiffre span { margin-top: 6px; font-size: 14px; font-weight: 600; opacity: .85; }

/* Personnalisation : bloc final. Photo pleine largeur qui se resserre en carte quand elle entre à l'écran
   (bloc cmvfcenjf00032va54laar5cn de la bibliothèque) */
.rdp-clip { position: relative; margin: 0 calc(50% - 50vw); padding: 80px calc(50vw - 50%); color: rgba(255, 255, 255, .88); }
.rdp .rdp-clip__calque { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; clip-path: inset(0); will-change: clip-path; }
.rdp .rdp-clip__photo { object-fit: cover; object-position: 50% 30%; }
.rdp-clip__voile { background: linear-gradient(90deg, rgba(31, 31, 39, .9) 0%, rgba(31, 31, 39, .78) 45%, rgba(31, 31, 39, .5) 100%); }
.rdp-clip .rdp-in { position: relative; }
.rdp-devis { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 40px 64px; align-items: center; min-height: 480px; padding: 64px; border-radius: 28px; }
.rdp-devis .rdp-h2 { color: #fff; }
.rdp-devis__texte > p { margin-top: 14px; }
.rdp-devis__liste { display: grid; gap: 12px; margin-top: 22px; }
.rdp-devis__liste li { display: flex; align-items: center; gap: 14px; color: #fff; font-size: 15px; font-weight: 600; }
.rdp-devis__num { display: grid; flex: none; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #fff; color: #1F1F27; font-size: 13px; font-weight: 800; }
.rdp-devis__actions { display: grid; gap: 20px; }

/* Apparitions au défilement (seulement si le script tourne) */
.rdp[data-rdp-js] .rdp-revele { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--courbe), transform 1s var(--courbe); }
.rdp[data-rdp-js] .rdp-revele.is-vu { opacity: 1; transform: none; }
@keyframes rdp-monte { from { opacity: 0; transform: translateY(26px); } }

/* Carrousel « cas d'usage » (maquette validée, bloc cmw1xuomw0000ynuimwagulc6 de la bibliothèque), aux couleurs du site */
.rdp-section--cus { padding: 72px 0; }
.cus {
  --cus-encre: #1F1F27; --cus-texte: #4b4b5c; --cus-gris: #6b6b7b; --cus-accent: #9E0B0F; --cus-accent-clair: #fbf1f1;
  --cus-filet: #f0dede; --cus-grille: #f3eaea; --cus-cadre: #fff; --cus-page: transparent; --cus-rayon: 32px; --cus-carte-rayon: 24px;
  --cus-coupe: 18%; --cus-voile: .55; --cus-duree: .9s; --cus-courbe: cubic-bezier(.65, .05, .25, 1); --cus-sortie: cubic-bezier(.22, 1, .36, 1);
  position: relative; width: 100%; padding: 0; background: var(--cus-page); color: var(--cus-encre); font-family: Montserrat, system-ui, sans-serif;
  font-size: 16px; font-style: normal; font-weight: 400; line-height: 1.5; text-align: left; -webkit-font-smoothing: antialiased; overflow-x: clip; container: cus / inline-size;
}
.cus, .cus *, .cus *::before, .cus *::after { box-sizing: border-box; }
.cus :is(h2, h3, p, a, span, div, article, img, svg, button) { margin: 0; padding: 0; border: 0; font: inherit; color: inherit; letter-spacing: inherit; text-transform: none; text-decoration: none; background: none; box-shadow: none; border-radius: 0; min-width: 0; max-width: none; }
.cus :is(h2, h3, p, span) { line-height: inherit; }
.cus svg { display: block; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cus .cus__cadre { position: relative; max-width: none; margin: 0 auto; padding: 72px 40px 136px clamp(40px, 5cqi, 64px); border-radius: var(--cus-rayon); background: var(--cus-cadre); overflow: hidden; overflow: clip; isolation: isolate; box-shadow: var(--ombre); }
.cus .cus__cadre::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; z-index: -1; height: 128px; pointer-events: none; background-image: linear-gradient(90deg, var(--cus-grille) 1px, transparent 1px), linear-gradient(var(--cus-grille) 1px, transparent 1px); background-size: 64px 44px; -webkit-mask-image: linear-gradient(to top, #000 35%, transparent); mask-image: linear-gradient(to top, #000 35%, transparent); }
.cus .cus__grille { --cus-g: 20px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); grid-template-rows: auto 1fr auto auto; column-gap: 48px; }
.cus .cus__tete { grid-column: 1; grid-row: 1; }
.cus .cus__pages { grid-column: 1; grid-row: 3; }
.cus .cus__intro { grid-column: 1; grid-row: 4; }
.cus .cus__scene { position: relative; grid-column: 2; grid-row: 1 / span 4; align-self: start; min-width: 0; }
.cus .cus__nav { position: absolute; right: 0; bottom: 0; z-index: 2; display: flex; gap: 10px; }
.cus p.cus__pastille { display: inline-block; padding: 6px 12px; border-radius: 999px; background: var(--cus-accent-clair); color: var(--cus-accent); font-size: 12.5px; line-height: 1.3; font-weight: 700; }
.cus h2.cus__titre { margin-top: 18px; max-width: 12em; color: var(--cus-encre); font-size: clamp(30px, 3.6cqi, 44px); line-height: 1.1; font-weight: 700; letter-spacing: -.025em; text-wrap: balance; }
.cus p.cus__intro { margin-top: 40px; max-width: 22em; color: var(--cus-texte); font-size: 15.5px; line-height: 1.65; }
.cus .cus__pages { position: relative; display: flex; gap: 4px; margin-top: 36px; }
.cus .cus__curseur { position: absolute; left: 0; top: 0; width: 48px; height: 40px; border: 1px solid var(--cus-filet); border-radius: 10px; background: var(--cus-accent-clair); overflow: hidden; transform: translate3d(calc(var(--cus-i, 0) * 52px), 0, 0); transition: transform .7s var(--cus-sortie); }
.cus .cus__progres { position: absolute; left: 8px; right: 8px; bottom: 5px; height: 2px; border-radius: 2px; background: var(--cus-accent); transform: scaleX(0); transform-origin: left; opacity: 0; }
.cus[data-cus] button.cus__num { position: relative; display: grid; place-items: center; width: 48px; height: 40px; margin: 0; padding: 0; border: 0; border-radius: 10px; background: none; color: var(--cus-gris); font: inherit; font-size: 14px; line-height: 1; font-weight: 700; font-variant-numeric: tabular-nums; cursor: pointer; transition: color .4s ease; }
.cus[data-cus] button.cus__num:is(:hover, :focus, :active) { background: none; color: var(--cus-encre); }
.cus[data-cus] button.cus__num[aria-current="true"] { color: var(--cus-accent); }
.cus[data-cus] button.cus__num:focus-visible { outline: 2px solid var(--cus-accent); outline-offset: 2px; }
.cus .cus__fenetre { position: relative; min-width: 0; overflow: hidden; overflow: clip; outline: 0; container-type: inline-size; touch-action: pan-y; border-radius: var(--cus-carte-rayon); }
.cus .cus__fenetre:focus-visible { outline: 2px solid var(--cus-accent); outline-offset: 4px; }
.cus .cus__piste { --cus-l: calc((100cqi - var(--cus-g)) / 2); display: flex; align-items: flex-start; gap: var(--cus-g); transform: translate3d(var(--cus-tire, 0px), 0, 0); transition: transform var(--cus-duree) var(--cus-courbe); }
.cus .cus__carte { position: relative; flex: 0 0 var(--cus-l); aspect-ratio: 5 / 8; border-radius: var(--cus-carte-rayon); overflow: hidden; overflow: clip; isolation: isolate; color: #fff; --cus-x: calc(var(--cus-d, 0) * (var(--cus-l) + var(--cus-g))); clip-path: inset(0 0 var(--cus-coupe) 0 round var(--cus-carte-rayon)); transform: translate3d(var(--cus-x), 0, 0); transform-origin: 100% 50%; transition: clip-path var(--cus-duree) var(--cus-courbe), opacity .45s var(--cus-sortie), transform var(--cus-duree) var(--cus-courbe); -webkit-user-select: none; user-select: none; }
.cus .cus__carte::before { content: ""; position: absolute; inset: 1px; z-index: -1; border-radius: calc(var(--cus-carte-rayon) - 1px); background: #d9d4d4; }
.cus .cus__carte[data-cus-etat="actif"] { clip-path: inset(0 0 0 0 round var(--cus-carte-rayon)); }
.cus .cus__carte:is([data-cus-etat="passe"], [data-cus-etat="precedent"]) { opacity: 0; transform: translate3d(var(--cus-x), 0, 0) scale(.9); pointer-events: none; }
.cus .cus__carte[data-cus-saut], .cus .cus__carte[data-cus-saut] *, .cus .cus__carte[data-cus-saut] *::before, .cus .cus__carte[data-cus-saut] *::after { transition: none !important; }
.cus[data-cus-pret] .cus__carte:is([data-cus-etat="suivant"], [data-cus-etat="loin"]) { cursor: pointer; }
.cus img.cus__photo { position: absolute; inset: 0; z-index: -1; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transform: scale(1.08); transform-origin: 50% 0; transition: transform 1.3s var(--cus-sortie); -webkit-user-drag: none; }
.cus img.cus__photo--a { object-position: 42% 50%; }
.cus img.cus__photo--b { object-position: 50% 50%; }
.cus img.cus__photo--d { object-position: 40% 50%; }
.cus [data-cus-etat="actif"] img.cus__photo { transform: none; }
.cus .cus__voile { position: absolute; inset: 0; z-index: -1; }
.cus .cus__voile::before, .cus .cus__voile::after { content: ""; position: absolute; inset: 0; transition: opacity .6s ease; }
.cus .cus__voile::before { background: linear-gradient(to top, rgba(20, 12, 14, .3), rgba(20, 12, 14, .12) 12%, rgba(20, 12, 14, 0) 26%); }
.cus .cus__voile::after { background: rgba(20, 12, 14, .08); opacity: 0; }
.cus :is([data-cus-etat="suivant"], [data-cus-etat="loin"]) .cus__voile::before { opacity: 0; }
.cus :is([data-cus-etat="suivant"], [data-cus-etat="loin"]) .cus__voile::after { opacity: 1; }
.cus .cus__contenu { position: absolute; inset: 0; display: flex; flex-direction: column; padding: 28px; transition: opacity .24s ease; }
.cus [data-cus-texte="bas"] .cus__contenu { bottom: var(--cus-coupe); }
.cus [data-cus-texte="bas"] .cus__haut { margin-top: auto; }
.cus :is([data-cus-etat="actif"][data-cus-texte="bas"], [data-cus-etat="suivant"][data-cus-texte="haut"], [data-cus-etat="loin"][data-cus-texte="haut"]) .cus__contenu { opacity: 0; }
.cus .cus__haut { position: relative; }
.cus .cus__haut::before { content: ""; position: absolute; inset: -28px -28px -150px; z-index: -1; pointer-events: none; background: linear-gradient(rgb(24 14 16 / var(--cus-voile)), rgb(24 14 16 / var(--cus-voile)) calc(100% - 150px), rgb(24 14 16 / calc(var(--cus-voile) * .5)) calc(100% - 78px), rgb(24 14 16 / 0)); }
.cus [data-cus-texte="bas"] .cus__haut::before { inset: -150px -28px -28px; background: linear-gradient(to top, rgb(24 14 16 / var(--cus-voile)), rgb(24 14 16 / var(--cus-voile)) calc(100% - 150px), rgb(24 14 16 / calc(var(--cus-voile) * .5)) calc(100% - 78px), rgb(24 14 16 / 0)); }
@keyframes cus-voile-a { from { opacity: 0; } to { opacity: 1; } }
@keyframes cus-voile-b { from { opacity: 0; } to { opacity: 1; } }
.cus [data-cus-jeu="a"] .cus__haut::before { animation: cus-voile-a .5s ease both; }
.cus [data-cus-jeu="b"] .cus__haut::before { animation: cus-voile-b .5s ease both; }
.cus .cus__bas { display: none; }
.cus [data-cus-texte="haut"] .cus__bas { display: flex; justify-content: center; margin-top: auto; }
.cus p.cus__etiquette { display: inline-flex; align-self: flex-start; align-items: center; gap: 8px; padding: 4px 10px 4px 8px; border-radius: 999px; background: rgba(255, 255, 255, .16); color: #fff; font-size: 12.5px; line-height: 18px; font-weight: 700; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.cus p.cus__etiquette::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: #ff6b70; box-shadow: 0 0 0 3px rgba(255, 107, 112, .3); }
.cus h3.cus__nom { margin-top: 14px; color: #fff; font-size: clamp(22px, 8cqi, 30px); line-height: 1.12; font-weight: 700; letter-spacing: -.02em; text-wrap: balance; }
.cus p.cus__phrase { margin-top: 10px; max-width: 19em; color: rgba(255, 255, 255, .94); font-size: 14px; line-height: 1.5; }
.cus a.cus__explorer[href] { display: inline-flex; align-items: center; gap: 14px; padding: 6px 6px 6px 18px; border-radius: 14px; background: rgba(255, 255, 255, .95); color: var(--cus-encre); font-size: 14px; line-height: 20px; font-weight: 600; text-decoration: none; box-shadow: 0 10px 30px -12px rgba(9, 9, 12, .6); transition: background-color .3s ease; }
.cus a.cus__explorer[href]:is(:link, :visited, :hover, :focus, :active) { color: var(--cus-encre); text-decoration: none; }
.cus a.cus__explorer[href]:is(:hover, :focus-visible) { background: #fff; }
.cus a.cus__explorer[href]:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.cus .cus__pic { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: var(--cus-accent); color: #fff; transition: transform .45s var(--cus-sortie); }
.cus .cus__pic .rdp-ico { width: 16px; height: 16px; stroke-width: 2.2; }
@media (hover: hover) and (pointer: fine) {
  .cus a.cus__explorer[href]:hover .cus__pic { transform: translateX(3px); }
  .cus[data-cus-pret] .cus__carte[data-cus-etat="suivant"]:hover img.cus__photo { transform: scale(1.12); }
}
@keyframes cus-a { from { opacity: 0; transform: translate3d(0, 18px, 0); } to { opacity: 1; transform: none; } }
@keyframes cus-b { from { opacity: 0; transform: translate3d(0, 18px, 0); } to { opacity: 1; transform: none; } }
.cus [data-cus-jeu="a"] .cus__anim { animation: cus-a .7s var(--cus-sortie) both; }
.cus [data-cus-jeu="b"] .cus__anim { animation: cus-b .7s var(--cus-sortie) both; }
.cus [data-cus-jeu] .cus__etiquette { animation-delay: .14s; }
.cus [data-cus-jeu] .cus__nom { animation-delay: .22s; }
.cus [data-cus-jeu] .cus__phrase { animation-delay: .3s; }
.cus [data-cus-jeu] .cus__explorer { animation-delay: .42s; }
.cus[data-cus] button.cus__fleche { display: grid; place-items: center; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 12px; background: var(--cus-accent-clair); color: var(--cus-accent); cursor: pointer; transition: background-color .25s ease, color .25s ease, opacity .25s ease; }
.cus[data-cus] button.cus__fleche[data-cus-sens="1"] { background: var(--cus-accent); color: #fff; }
.cus[data-cus] button.cus__fleche:is(:hover, :focus, :active) { background: #f3dcdc; color: var(--cus-accent); }
.cus[data-cus] button.cus__fleche[data-cus-sens="1"]:is(:hover, :focus, :active) { background: #7d070c; color: #fff; }
.cus[data-cus] button.cus__fleche:focus-visible { outline: 2px solid var(--cus-accent); outline-offset: 2px; }
.cus .cus__nav svg { width: 18px; height: 18px; }
.cus .cus__annonce { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.cus[data-cus-tire] .cus__piste { transition: none; }
.cus[data-cus-tire] .cus__carte[data-cus-etat="precedent"] { opacity: var(--cus-revele, 0); transition: none; }
.cus[data-cus-tire] .cus__fenetre { cursor: grabbing; }
.cus:not([data-cus-pret]) .cus__fenetre { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; }
.cus:not([data-cus-pret]) .cus__fenetre::-webkit-scrollbar { display: none; }
.cus:not([data-cus-pret]) .cus__carte { scroll-snap-align: start; }
.cus:not([data-cus-pret]) :is(.cus__pages, .cus__nav) { visibility: hidden; }
.cus[data-cus-instant] :is(.cus__piste, .cus__carte, .cus__contenu, .cus__curseur, img.cus__photo), .cus[data-cus-instant] .cus__voile::before, .cus[data-cus-instant] .cus__voile::after { transition: none; }
@container cus (max-width: 955.98px) {
  .cus .cus__cadre { padding: 56px 32px 120px; }
  .cus .cus__grille { grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto auto auto; column-gap: 16px; }
  .cus .cus__tete { grid-column: 1 / -1; grid-row: 1; }
  .cus .cus__intro { grid-column: 1 / -1; grid-row: 2; }
  .cus .cus__scene { display: contents; }
  .cus .cus__fenetre { grid-column: 1 / -1; grid-row: 3; margin-top: 36px; }
  .cus .cus__pages { grid-column: 1; grid-row: 4; align-self: center; margin-top: 24px; }
  .cus .cus__nav { position: static; grid-column: 2; grid-row: 4; justify-self: end; align-self: center; margin-top: 24px; }
  .cus p.cus__intro { margin-top: 16px; max-width: 34em; }
}
@container cus (max-width: 599.98px) {
  .cus .cus__cadre { padding: 36px 18px 96px; --cus-rayon: 24px; }
  .cus .cus__grille { --cus-g: 12px; }
  .cus .cus__piste { --cus-l: 84cqi; }
  .cus .cus__cadre::after { height: 96px; background-size: 48px 36px; }
  .cus h2.cus__titre { margin-top: 14px; font-size: clamp(26px, 8cqi, 34px); }
  .cus .cus__fenetre { margin-top: 28px; }
  .cus .cus__contenu { padding: 20px; }
  .cus [data-cus-texte="bas"] .cus__haut { opacity: 0; }
  .cus p.cus__phrase { font-size: 13.5px; }
  .cus .cus__pages { gap: 0; }
  .cus .cus__curseur { width: 44px; transform: translate3d(calc(var(--cus-i, 0) * 44px), 0, 0); }
  .cus[data-cus] button.cus__num { width: 44px; }
  .cus .cus__nav { gap: 8px; }
}
@container cus (max-width: 355.98px) {
  .cus .cus__cadre { padding: 32px 14px 88px; }
  .cus[data-cus] button.cus__fleche { width: 40px; height: 40px; }
  .cus[data-cus] button.cus__num { width: 38px; }
  .cus .cus__curseur { width: 38px; transform: translate3d(calc(var(--cus-i, 0) * 38px), 0, 0); }
}

/* Tablette et mobile */
@media (max-width: 1199px) {
  .rdp-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rdp-bento__carte--logo { grid-column: 1 / -1; grid-row: 1; }
  .rdp-realisations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rdp-calcul { grid-template-columns: 1fr; }
}
@media (max-width: 991px) {
  .rdp-section { padding: 72px 0; }
  .rdp-heros__grille, .rdp-tarif, .rdp-compris, .rdp-duel, .rdp-faq__grille, .rdp-devis, .rdp-tete--duo { grid-template-columns: 1fr; }
  .rdp-garde { min-height: 460px; }
  .rdp-clip__voile { background: rgba(31, 31, 39, .82); }
  .rdp-heros__grille { gap: 40px; }
  .rdp-heros__badge { right: 12px; }
  .rdp-faq__cote { position: static; }
  .rdp-onglets { grid-template-columns: 1fr; gap: 20px; }
  .rdp-onglets__vue { order: -1; aspect-ratio: 16 / 10; }
  .rdp-onglets__item { border-radius: 18px; }
  .rdp-prix { grid-template-columns: 1fr; }
  .rdp-devis { min-height: 0; padding: 40px 32px; }
}
@media (max-width: 767px) {
  .rdp { font-size: 15.5px; }
  .rdp-section { padding: 56px 0; }
  .rdp-section--cus { padding: 40px 0; }
  .rdp-heros { padding: 20px 0 56px; }
  .rdp .rdp-h1 { margin-top: 14px; font-size: 30px; }
  .rdp-chapo { font-size: 17px; }
  .rdp-actions { gap: 16px; }
  .rdp-actions .rdd-cta { width: 100%; }
  .rdp-heros__photo { border-radius: 22px; aspect-ratio: 4 / 3; }
  .rdp-heros__badge { display: none; }
  .rdp-simu__reperes li[data-q="20"] { font-size: 0; }
  .rdp-tete { margin-bottom: 30px; }
  .rdp-tarif { border-radius: 22px; }
  .rdp-tarif__paliers, .rdp-simu { padding: 24px 18px; }
  .rdp-paliers { gap: 10px; }
  .rdp .rdp-palier { padding: 14px 12px 12px; }
  .rdp-palier__p { font-size: 22px; }
  .rdp-palier__q { font-size: 12px; }
  .rdp-palier__badge { right: 8px; font-size: 10px; }
  .rdp-relance { padding: 16px; }
  .rdp-relance .rdd-cta { width: 100%; }
  .rdp-garde { min-height: 480px; padding: 10px; border-radius: 24px; }
  .rdp-garde__encart { padding: 20px 18px; }
  .rdp-duel { --onglet: 30px; --rr: 22px; gap: 18px; }
  .rdp-duel__carte { padding: calc(var(--onglet) + 28px) 22px 28px; }
  .rdp .rdp-duel__titre { font-size: 22px; }
  .rdp-duel__liste > div { grid-template-columns: 1fr; gap: 0; padding: 11px 0; }
  .rdp-q summary { min-height: 68px; padding: 14px 16px; }
  .rdp .rdp-q h3 { font-size: 15.5px; }
  .rdp-q__ico { width: 32px; height: 32px; }
  .rdp-q__r { padding: 0 16px 20px; }
  .rdp-aide { padding: 22px; }
  .rdp-clip { padding-top: 40px; padding-bottom: 40px; }
  .rdp-onglets__desc p { padding-left: 22px; }
  .rdp .rdp-onglets__bouton { font-size: 17px; padding: 15px 18px 6px; }
  .rdp-onglets[data-rdp-pret] .rdp-onglets__item:not(.is-actif) .rdp-onglets__bouton { padding-bottom: 15px; }
  .rdp-bento { grid-template-columns: 1fr; }
  .rdp-bento__carte--logo { flex-direction: column; }
  .rdp-bento__photo { aspect-ratio: 16 / 10; }
  .rdp-bento__carte, .rdp-bento__corps { padding: 22px 20px; }
  .rdp-bento__carte--logo { padding: 0; }
  .rdp-calcul__champs, .rdp-calcul__resultat { padding: 22px 18px; }
  .rdp .rdp-calcul select { min-width: 0; width: 100%; }
  .rdp-calcul__champ:first-of-type { width: 100%; }
  .rdp-calcul__impression span { padding: 12px 11px; font-size: 12.5px; }
  .rdp-realisations { gap: 14px; }
  .rdp-realisation__pastille { font-size: 12px; }
  .rdp-realisation__chiffre { padding: 16px; }
  .rdp-realisation__chiffre strong { font-size: 17px; overflow-wrap: anywhere; }
  .rdp-realisation__legende { font-size: 13px; }
  .rdp-devis { padding: 36px 20px; border-radius: 22px; }
}
@media (max-width: 380px) {
  .rdp-paliers { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .rdp *, .rdp *::before, .rdp *::after { transition: none !important; animation: none !important; }
  .rdp[data-rdp-js] .rdp-revele { opacity: 1; transform: none; }
  .cus .cus__carte:is([data-cus-etat="passe"], [data-cus-etat="precedent"]) { transform: translate3d(var(--cus-x), 0, 0); }
  .cus img.cus__photo { transform: none; }
}

/* v4 : photos */
.rdp-tarif__paliers { display: flex; flex-direction: column; }
.cms-content .rdp .rdp-tarif__photo { flex: 1 1 200px; width: 100%; height: 200px; min-height: 200px; margin-top: 18px; border-radius: 16px; object-fit: cover; object-position: 50% 30%; }
.rdp-inclus { display: flex; flex-direction: column; overflow: hidden; border-radius: 30px; background: var(--gris); }
.rdp .rdp-inclus__photo { width: 100%; height: 250px; object-fit: cover; object-position: 50% 60%; }
.rdp .rdp-inclus__badge { display: inline-flex; align-items: center; align-self: flex-start; gap: 8px; margin: -19px 0 0 24px; padding: 9px 18px; border-radius: 999px; background: var(--r); color: #fff; font-size: 14px; line-height: 1.4; font-weight: 700; position: relative; }
.rdp-inclus__badge .rdp-ico { width: 16px; height: 16px; stroke-width: 2.6; }
.cms-content .rdp .rdp-inclus__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 20px 24px 24px; }
.rdp-inclus__grille li { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-radius: 18px; background: #fff; color: var(--encre); font-size: 15px; line-height: 1.45; font-weight: 600; }
.rdp-inclus__ico { display: grid; flex: none; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--rose); color: var(--r); }
.rdp-inclus__ico .rdp-ico { width: 22px; height: 22px; stroke-width: 1.6; }
.rdp-onglets__img { object-fit: cover; }
/* Bloc commun « Ils nous font confiance » sur fond encre : accents blancs, pas de rouge */
.rdp .rdd-confiance { background: #1F1F27; }
.rdp .rdd-confiance__chiffres li { border-left-color: rgba(255, 255, 255, .5); }
.rdp .rdd-confiance__liste li::before { background: rgba(255, 255, 255, .55); }
.rdp .rdd-carte__plateau, .rdp .rdd-carte__calotte { fill: #fff; stroke: #1F1F27; }
.rdp .rdd-carte__onde { stroke: #fff; }
.rdp .rdd-carte__client { fill: #fff; }
.page-cms .cms-content .rdp .rdd-confiance__sur { margin-bottom: 10px; }
.page-cms .cms-content .rdp .rdd-confiance__titre { margin-bottom: 12px; }
.page-cms .cms-content .rdp .rdd-confiance__texte { margin-bottom: 22px; }
@media (max-width: 767px) {
  .rdp .rdp-inclus__photo { height: 180px; }
  .rdp .rdp-inclus__badge { margin-left: 16px; }
  .cms-content .rdp .rdp-inclus__grille { grid-template-columns: 1fr; gap: 10px; padding: 16px; }
  .rdp-inclus { border-radius: 24px; }
}

/* v5 : finitions reprises des blocs de la bibliothèque */

/* Héros : grande photo, pastille de prix logée dans une encoche aux angles inversés
   (bloc cmugnk7gp0087csxn6bumwxjk de la bibliothèque) */
.rdp-heros::before { content: none; }
.rdp-heros__grille { align-items: stretch; }
.rdp-heros__texte { align-self: center; }
.rdp-heros__photo { --e: 26px; height: 100%; min-height: 580px; border-radius: 32px 32px 0; background: var(--gris); box-shadow: none; aspect-ratio: auto; }
.rdp .rdp-heros__photo img { position: absolute; inset: 0; object-position: 85% 50%; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); animation: rdp-dezoom 1.8s cubic-bezier(.2, .7, .2, 1) backwards; }
.rdp--perso .rdp-heros__photo img { object-position: 30% 50%; }
.rdp-heros__photo:hover img { transform: scale(1.03); }
@keyframes rdp-dezoom { from { transform: scale(1.1); } }
.rdp-heros__badge { right: 0; bottom: 0; padding: 18px 16px 10px 24px; border-radius: var(--e) 0 0; box-shadow: none; animation: none; }
.rdp-heros__badge::before, .rdp-heros__badge::after { content: ""; position: absolute; width: var(--e); height: var(--e); background: radial-gradient(circle at 0 0, transparent calc(var(--e) - .5px), #fff var(--e)); }
.rdp-heros__badge::before { right: 100%; bottom: 0; }
.rdp-heros__badge::after { right: 0; bottom: 100%; }
.rdp-heros__badge b { font-size: 38px; }
.rdp-heros__badge span { font-size: 13.5px; }

/* Temps fort : photo en bandeau, titre dans une encoche, chiffres en cartes claires
   (bloc cmu5c9mye0009wl0o261bmff8 de la bibliothèque, sans voile sombre) */
.rdp-section--fort { padding: 72px 0; }
.rdp-fort { --e: 28px; position: relative; isolation: isolate; display: flex; align-items: flex-end; overflow: hidden; min-height: 540px; padding: 18px; border-radius: 32px; background: var(--gris); }
.rdp .rdp-fort__photo { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.rdp-fort:hover .rdp-fort__photo { transform: scale(1.03); }
.rdp-fort__titre { position: absolute; top: 0; left: 0; max-width: 380px; padding: 2px 30px 24px 2px; border-radius: 0 0 var(--e); background: #fff; color: var(--encre); font-size: clamp(24px, 2.5vw, 34px); line-height: 1.15; font-weight: 700; letter-spacing: -.02em; text-wrap: balance; }
.rdp-fort__titre::before, .rdp-fort__titre::after { content: ""; position: absolute; width: var(--e); height: var(--e); background: radial-gradient(circle at 100% 100%, transparent calc(var(--e) - .5px), #fff var(--e)); }
.rdp-fort__titre::before { top: 0; left: 100%; }
.rdp-fort__titre::after { top: 100%; left: 0; }
.cms-content .rdp .rdp-fort__chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; width: 100%; }
.rdp-fort__chiffres li { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px; border-radius: 20px; background: rgba(255, 255, 255, .93); box-shadow: 0 14px 30px -20px rgba(31, 31, 39, .55); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); transition: transform .4s var(--courbe); }
.rdp-fort__chiffres li:hover { transform: translateY(-4px); }
.rdp-fort__chiffres b { color: var(--r); font-size: clamp(30px, 3vw, 42px); line-height: 1; font-weight: 800; letter-spacing: -.035em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rdp-fort__chiffres span { color: var(--encre); font-size: 14px; line-height: 1.4; font-weight: 600; }
.rdp[data-rdp-js] .rdp-fort__chiffres li { opacity: 0; transform: translateY(16px); transition: opacity .7s var(--courbe), transform .7s var(--courbe); transition-delay: calc(.25s + var(--i, 0) * 90ms); }
.rdp[data-rdp-js] .rdp-fort.is-vu .rdp-fort__chiffres li { opacity: 1; transform: none; }
.rdp[data-rdp-js] .rdp-fort.is-vu .rdp-fort__chiffres li:hover { transform: translateY(-4px); transition-delay: 0s; }
.rdp-fort__chiffres li:nth-child(2) { --i: 1; }
.rdp-fort__chiffres li:nth-child(3) { --i: 2; }
.rdp-fort__chiffres li:nth-child(4) { --i: 3; }

/* Étapes : photo en tête, numéro en pastille de verre, texte dessous, apparition en cascade
   (bloc cmtnc7e86000311fbxvl2fegf de la bibliothèque) ; rail à faire glisser sur tablette et téléphone */
.rdp-pas { --n: 5; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); gap: 16px; }
.rdp-pas--4 { --n: 4; gap: 20px; }
.rdp-pas:focus-visible { outline: 2px solid var(--r); outline-offset: 8px; border-radius: 20px; }
.rdp-pas__etape { display: flex; flex-direction: column; }
.rdp-pas__vue { position: relative; overflow: hidden; border-radius: 20px; background: var(--rose-f); aspect-ratio: 4 / 5; }
.rdp .rdp-pas__photo { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.rdp-pas__etape:hover .rdp-pas__photo { transform: scale(1.06); }
.rdp-pas__num { position: absolute; top: 10px; left: 10px; display: grid; place-items: center; min-width: 40px; height: 32px; padding: 0 10px; border-radius: 10px; background: rgba(31, 31, 39, .38); color: #fff; font-size: 13px; line-height: 1; font-weight: 700; letter-spacing: .08em; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.rdp-pas__pic { position: absolute; right: 10px; bottom: 10px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--r); box-shadow: 0 8px 18px -8px rgba(31, 31, 39, .5); transition: transform .45s cubic-bezier(.2, .7, .2, 1), background-color .3s, color .3s; }
.rdp-pas__pic .rdp-ico { width: 21px; height: 21px; stroke-width: 1.7; }
.rdp-pas__etape:hover .rdp-pas__pic { background: var(--r); color: #fff; transform: scale(1.08); }
.rdp-pas__etape h3 { margin-top: 18px; font-size: 18px; line-height: 1.3; font-weight: 700; }
.rdp-pas__etape p { margin-top: 6px; font-size: 14.5px; line-height: 1.6; }
.rdp[data-rdp-js] .rdp-pas:not(.is-vu) .rdp-pas__etape { opacity: 0; }
.rdp[data-rdp-js] .rdp-pas.is-vu .rdp-pas__etape { animation: rdp-monte .9s var(--courbe) var(--d, 0s) backwards; }
.rdp-pas__etape:nth-child(2) { --d: .12s; }
.rdp-pas__etape:nth-child(3) { --d: .24s; }
.rdp-pas__etape:nth-child(4) { --d: .36s; }
.rdp-pas__etape:nth-child(5) { --d: .48s; }

/* Photos des cartes déjà en place */
.rdp .rdp-garde__photo { object-position: 50% 0; }
.cms-content .rdp .rdp-duel__photo { width: 100%; height: 190px; margin-bottom: 26px; border-radius: 18px; object-fit: cover; object-position: 50% 22%; }
.rdp .rdp-duel__carte--achat .rdp-duel__photo { object-position: 50% 40%; }

/* Questions fréquentes : toutes les questions sur un même plateau, numérotées
   (bloc cmvb05tp50001huv8r76dlg96 de la bibliothèque) */
.rdp-faq__liste { gap: 0; padding: 6px 30px; border-radius: 28px; background: var(--gris); }
.rdp-bande .rdp-faq__liste { background: #fff; box-shadow: var(--ombre); }
.rdp .rdp-q, .rdp .rdp-q:hover { border-radius: 0; background: none; }
.rdp-q + .rdp-q { border-top: 1px solid var(--trait); }
.rdp-q summary { justify-content: flex-start; gap: 16px; min-height: 76px; padding: 18px 0; }
.rdp-q summary:focus-visible { outline-offset: 2px; }
.rdp-q__num { flex: none; width: 30px; color: var(--r); font-size: 12px; line-height: 1; font-weight: 800; letter-spacing: .1em; }
.rdp .rdp-q h3 { flex: 1; transition: color .25s; }
.rdp .rdp-q summary:hover h3 { color: var(--r); }
.rdp-q__r { padding: 0 60px 24px 46px; }
.rdp-aide { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 0 16px; align-items: center; }
.rdp-aide__titre { margin-top: 0; }
.rdp-aide > :not(.rdp-aide__photo, .rdp-aide__titre) { grid-column: 1 / -1; }
.rdp-aide__texte { margin-top: 16px; }

/* Atelier : grande photo, la commande réelle posée dessus comme un tirage
   (bloc cmub0m60r0001wc8ee9pat3i0 de la bibliothèque, photos en vis-à-vis) */
.rdp-atelier { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); }
.rdp-atelier__scene { position: relative; min-height: 460px; }
.rdp-atelier__grande { position: absolute; inset: 0; overflow: hidden; border-radius: 28px; background: #e9e9ee; }
.rdp .rdp-atelier__grande img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.rdp-atelier__scene:hover .rdp-atelier__grande img { transform: scale(1.04); }
.rdp-atelier__reelle { position: absolute; bottom: 22px; left: 22px; width: min(260px, 46%); padding: 8px 8px 0; border-radius: 16px; background: #fff; box-shadow: 0 20px 40px -18px rgba(31, 31, 39, .6); transform: rotate(-2.5deg); transition: transform .5s var(--courbe); }
.rdp-atelier__scene:hover .rdp-atelier__reelle { transform: translateY(-4px); }
.rdp .rdp-atelier__reelle img { width: 100%; border-radius: 10px; }
.rdp-atelier__legende { padding: 9px 6px 11px; color: var(--encre); font-size: 12.5px; line-height: 1.35; font-weight: 700; }
.rdp-atelier__texte { padding: 40px; border-radius: 28px; }
.rdp .rdp-atelier__cta { position: relative; bottom: auto; left: auto; align-self: flex-start; margin-top: 8px; transform: none; box-shadow: none; }

/* Mosaïque d'ambiance : une grande carte photo et deux cartes hautes à étiquette
   (bloc cmu703cdv0001vys3r4va0hu3 de la bibliothèque) */
.rdp-mosaique { display: grid; grid-template-columns: 1.9fr 1fr 1fr; gap: 16px; height: clamp(380px, 34vw, 480px); }
.rdp-mosaique__carte { position: relative; isolation: isolate; overflow: hidden; border-radius: 24px; background: #e9e9ee; box-shadow: 0 24px 48px -28px rgba(31, 31, 39, .45); }
.rdp .rdp-mosaique__carte img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.rdp-mosaique__carte:hover img { transform: scale(1.06); }
.rdp-mosaique__carte--grande::after { content: ""; position: absolute; z-index: -1; inset: 45% 0 0; background: linear-gradient(180deg, rgba(31, 31, 39, 0), rgba(31, 31, 39, .74)); }
.rdp-mosaique__bas { position: absolute; right: 28px; bottom: 26px; left: 28px; display: flex; flex-direction: column; gap: 8px; color: #fff; }
.rdp-mosaique__sur { color: rgba(255, 255, 255, .82); font-size: 11.5px; line-height: 1.3; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.rdp-mosaique__titre { max-width: 15em; font-size: clamp(22px, 2.4vw, 32px); line-height: 1.15; font-weight: 700; letter-spacing: -.02em; text-wrap: balance; }
.rdp-mosaique__etiquette { position: absolute; right: 12px; bottom: 12px; left: 12px; display: flex; flex-direction: column; gap: 3px; padding: 13px 16px; border-radius: 16px; background: rgba(255, 255, 255, .92); box-shadow: 0 10px 24px -16px rgba(31, 31, 39, .6); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.rdp-mosaique__etiquette strong { color: var(--encre); font-size: 14.5px; line-height: 1.3; font-weight: 700; }
.rdp-mosaique__etiquette span { color: var(--doux); font-size: 12.5px; line-height: 1.4; }
.rdp-mosaique .rdp-revele:nth-child(2) { transition-delay: .12s; }
.rdp-mosaique .rdp-revele:nth-child(3) { transition-delay: .24s; }

/* Prix de la personnalisation : carte du milieu mise en avant, tableau des paliers avec une vignette par article */
.rdp-prix__carte { padding: 30px; border-radius: 26px; }
.rdp-prix__carte--sombre { box-shadow: 0 26px 50px -26px rgba(158, 11, 15, .7); }
.rdp-tableau { border-radius: 26px; box-shadow: var(--ombre); }
.rdp-tableau caption { padding: 24px 24px 16px; font-size: 16px; }
.rdp-tableau :is(th, td) { padding: 12px 16px; }
.rdp-tableau :is(th, td):first-child { padding-left: 24px; }
.rdp-tableau :is(th, td):last-child { padding-right: 24px; }
.rdp-tableau thead th, .rdp-tableau thead th:first-child { border-top: 1px solid var(--trait); background: var(--gris); }
.rdp-tableau thead th:last-child { color: var(--r); }
.rdp-tableau tbody th { min-width: 280px; }
.cms-content .rdp .rdp-tableau__vignette { display: inline-block; width: 44px; height: 44px; margin-right: 14px; border-radius: 12px; object-fit: cover; vertical-align: middle; }
.rdp-tableau tbody tr:hover :is(th, td):not(.is-col) { background: #fafafb; }

@media (max-width: 1199px) {
  .rdp-heros__photo { min-height: 520px; }
  .rdp-fort__chiffres li { padding: 16px; }
}
@media (max-width: 991px) {
  .rdp-heros__photo { height: auto; min-height: 0; aspect-ratio: 16 / 10; }
  .rdp .rdp-heros__photo img, .rdp--perso .rdp-heros__photo img { object-position: 50% 30%; }
  .rdp-section--fort { padding: 56px 0; }
  .rdp-fort { min-height: 0; padding: 220px 14px 14px; }
  .cms-content .rdp .rdp-fort__chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cms-content .rdp .rdp-pas { display: flex; gap: 14px; overflow-x: auto; margin: 0 calc(50% - 50vw); padding: 4px calc(50vw - 50%) 10px; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .rdp-pas::-webkit-scrollbar { display: none; }
  .rdp-pas:focus-visible { outline-offset: -2px; border-radius: 0; }
  .rdp-pas__etape { flex: 0 0 38%; scroll-snap-align: center; }
  .rdp-atelier { grid-template-columns: 1fr; gap: 20px; }
  .rdp-atelier__scene { min-height: 0; aspect-ratio: 3 / 2; }
  .rdp-mosaique { grid-template-columns: repeat(2, minmax(0, 1fr)); height: auto; }
  .rdp-mosaique__carte { height: 300px; }
  .rdp-mosaique__carte--grande { grid-column: 1 / -1; height: 360px; }
}
@media (max-width: 767px) {
  .rdp-heros__photo { --e: 20px; border-radius: 24px 24px 0; aspect-ratio: 1; }
  .rdp-heros__badge { display: flex; right: 0; padding: 14px 12px 8px 18px; }
  .rdp-heros__badge b { font-size: 30px; }
  .rdp-heros__badge span { font-size: 12.5px; }
  .rdp-legende { max-width: calc(100% - 32px); }
  .rdp-section--fort { padding: 44px 0; }
  .rdp-fort { --e: 20px; padding: 190px 10px 10px; border-radius: 24px; }
  .rdp-fort__titre { max-width: 250px; padding: 0 20px 16px 0; font-size: 22px; }
  .cms-content .rdp .rdp-fort__chiffres { gap: 8px; }
  .rdp-fort__chiffres li { gap: 6px; padding: 14px; border-radius: 16px; }
  .rdp-fort__chiffres b { font-size: 26px; }
  .rdp-fort__chiffres span { font-size: 12.5px; }
  .cms-content .rdp .rdp-pas { gap: 12px; }
  .rdp-pas__etape { flex-basis: 70%; }
  .rdp-pas__vue { aspect-ratio: 1; }
  .rdp-pas__etape h3 { margin-top: 14px; font-size: 17px; }
  .cms-content .rdp .rdp-duel__photo { height: 150px; margin-bottom: 20px; border-radius: 14px; }
  .rdp-faq__liste { padding: 2px 16px; border-radius: 22px; }
  .rdp-q summary { gap: 10px; min-height: 68px; padding: 14px 0; }
  .rdp-q__num { width: 24px; }
  .rdp-q__r { padding: 0 0 20px 34px; }
  .rdp-atelier__scene { aspect-ratio: 4 / 5; }
  .rdp-atelier__grande { border-radius: 22px; }
  .rdp-atelier__reelle { bottom: 14px; left: 14px; width: 62%; }
  .rdp-atelier__texte { padding: 26px 20px; border-radius: 22px; }
  .rdp .rdp-atelier__cta { align-self: stretch; margin: 6px 0 0; }
  .rdp-mosaique { gap: 10px; }
  .rdp-mosaique__carte { height: 230px; border-radius: 20px; }
  .rdp-mosaique__carte--grande { height: 300px; }
  .rdp-mosaique__bas { right: 18px; bottom: 18px; left: 18px; }
  .rdp-mosaique__etiquette { right: 8px; bottom: 8px; left: 8px; padding: 10px 12px; border-radius: 13px; }
  .rdp-mosaique__etiquette strong { font-size: 13.5px; }
  .rdp-mosaique__etiquette span { font-size: 11.5px; }
  .rdp-prix__carte { padding: 24px; border-radius: 22px; }
  /* Tableau des paliers : une carte par article, six prix en grille */
  .rdp-tableau { overflow: visible; border: 0; border-radius: 0; background: none; box-shadow: none; }
  .rdp-tableau table { display: block; min-width: 0; }
  .rdp-tableau caption { display: block; padding: 0 0 12px; font-size: 15px; }
  .rdp-tableau thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .rdp-tableau tbody { display: grid; gap: 12px; }
  .rdp-tableau tbody tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 14px; border: 1px solid var(--trait); border-radius: 20px; background: #fff; }
  .rdp-tableau tbody tr.is-ligne { border-color: var(--r); }
  .rdp-tableau tbody th, .rdp-tableau tbody th:first-child { grid-column: 1 / -1; position: static; display: flex; align-items: center; min-width: 0; padding: 0 0 8px; border: 0; background: none; font-size: 15px; }
  .cms-content .rdp .rdp-tableau__vignette { flex: none; }
  .rdp-tableau tbody td, .rdp-tableau tbody td:last-child { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 4px; border: 0; border-radius: 12px; background: var(--gris); color: var(--encre); font-size: 14px; font-weight: 700; }
  .rdp-tableau td::before { content: attr(data-l); color: var(--doux); font-size: 10.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
  .rdp-tableau tbody td:last-child { color: var(--r); }
  .rdp-tableau tbody td.is-col { background: var(--rose); }
  .rdp-tableau tbody .is-ligne td.is-col { background: var(--r); color: #fff; }
  .rdp-tableau .is-ligne td.is-col::before { color: rgba(255, 255, 255, .8); }
  .rdp-tableau tbody tr:hover :is(th, td):not(.is-col) { background: var(--gris); }
  .rdp-tableau tbody tr:hover th { background: none; }
}
@media (prefers-reduced-motion: reduce) {
  .rdp[data-rdp-js] .rdp-pas:not(.is-vu) .rdp-pas__etape, .rdp[data-rdp-js] .rdp-fort__chiffres li { opacity: 1; transform: none; }
}
