/* Espace client : connexion, puis tableau de bord (menu latéral crème, « En ce moment » en arche, bande verte « Mes avantages »). */
.rvcp-corps { padding: clamp(40px, 5vw, 72px) var(--marge) 0; max-width: calc(1100px + 2 * var(--marge)); margin: 0 auto; }
.rvcp-msg { max-width: 640px; margin: 0 auto 26px; padding: 13px 18px; font-size: 14px; line-height: 1.6; background: #fff; border: 1px solid rgba(214,174,123,.45); border-left: 3px solid var(--sauge); color: var(--encre); text-wrap: pretty; }
.rvcp-msg-erreur { border-left-color: #A8834F; background: #FFF8EC; }
.rvcp-pot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.rvcp-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rvcp-surt { margin: 0 0 6px; font-size: 10.5px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--or-f); }

/* ---------- Connexion (visiteur) ---------- */
.rvcp-acces { display: grid; grid-template-columns: minmax(0, 520px) minmax(0, 420px); gap: clamp(30px, 5vw, 70px); justify-content: center; align-items: start; }
.rvcp-boite { max-width: 520px; width: 100%; margin: 0 auto; padding: clamp(26px, 3.4vw, 42px); background: #fff; border: 1px solid rgba(214,174,123,.34); border-radius: 4px; position: relative; isolation: isolate; scroll-margin-top: 120px; }
.rvcp-boite::after { content: ""; position: absolute; z-index: -1; inset: 10px -10px -10px 10px; border: 1px solid var(--or); border-radius: 4px; }
.rvcp-boite h2 { margin: 0 0 18px; color: var(--sauge); font-size: clamp(26px, 2.6vw, 32px); text-align: center; }
.rvcp-centre { text-align: center; }
.rvcp-pourquoi { padding-top: 8px; }
.rvcp-pourquoi h2 { margin: 0 0 18px; color: var(--sauge); font-size: clamp(28px, 2.8vw, 36px); }
.rvcp-pourquoi ul { list-style: none; margin: 0; padding: 0; }
.rvcp-pourquoi li { position: relative; padding: 13px 0 13px 30px; border-top: 1px solid rgba(214,174,123,.35); font-size: 13.5px; line-height: 1.6; text-wrap: pretty; }
.rvcp-pourquoi li::before { content: "✦"; position: absolute; left: 2px; top: 13px; color: var(--or); font-size: 13px; }
.rvcp-pourquoi li b { display: block; color: var(--encre); font-weight: 500; font-size: 14.5px; }
.rvcp-onglets { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 24px; border-bottom: 1px solid rgba(214,174,123,.45); }
.rvcp-onglets a { padding: 0 6px 12px; text-align: center; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--texte) !important; text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color .2s, border-color .2s; }
.rvcp-onglets a[aria-selected="true"] { color: var(--sauge) !important; border-bottom-color: var(--or); }
.rvcp-onglets a:hover { color: var(--sauge) !important; }
.rvcp-form { display: grid; gap: 16px; }
.rvcp-form label { display: grid; gap: 6px; align-content: start; font-size: 13px; color: var(--encre); }
.rvcp-2 { align-items: start; }
.rvcp-form label > span:first-child { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sauge); }
.rvcp-form input[type=text], .rvcp-form input[type=email], .rvcp-form input[type=password], .rvcp-form input[type=tel] { width: 100%; padding: 13px 14px; border: 1px solid #E6DDCF; border-radius: 0; background: var(--creme); font: 400 15px/1.3 "Montserrat", sans-serif; color: var(--encre); }
.rvcp-form input:focus { outline: 2px solid #EACDA3; border-color: var(--or); background: #fff; }
.rvcp-form input:disabled { color: #8a8278; background: #F3EDE3; }
.rvcp-form small { font-size: 12px; color: #7a7268; }
.rvcp-form .rvge-bouton { justify-self: start; margin-top: 4px; cursor: pointer; font-family: inherit; }
.rvcp-boite .rvcp-form .rvge-bouton { justify-self: stretch; }
.rvcp-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rvcp-mdp { position: relative; display: block; }
.rvcp-mdp input { padding-right: 48px !important; }
.rvcp-oeil { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; background: none; color: #8a8278; cursor: pointer; display: grid; place-items: center; border-radius: 50%; }
.rvcp-oeil:hover, .rvcp-oeil.ouvert { color: var(--sauge); background: rgba(214,174,123,.14); }
.rvcp-oeil svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.rvcp-form .rvcp-case { display: flex !important; align-items: center; gap: 9px; font-size: 13.5px !important; cursor: pointer; }
.rvcp-form .rvcp-case > span:first-child, .rvcp-case-haut span { font: inherit !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--encre) !important; }
.rvcp-case input { width: 17px; height: 17px; accent-color: var(--sauge); margin: 0; flex: none; }
.rvcp-form .rvcp-case-haut { align-items: flex-start; line-height: 1.5; }
.rvcp-case-haut input { margin-top: 2px; }
.rvcp-case-haut small { display: block; margin-top: 2px; }
.rvcp-texte { margin: 0; font-size: 14px; line-height: 1.65; text-wrap: pretty; }
.rvcp-sous { margin: 4px 0 0; text-align: center; font-size: 13px; }
.rvcp-petit { font-size: 12.5px !important; color: #7a7268; line-height: 1.6; text-wrap: pretty; }
.rvcp-galerie-seule { text-align: center; margin: 34px 0 0; font-size: 13.5px; }
.rvcp-fs { border: 1px solid #E6DDCF; padding: 14px 16px 16px; margin: 0; }
.rvcp-fs legend { padding: 0 6px; font-size: 12px; font-weight: 600; letter-spacing: .08em; color: var(--sauge); }
.rvcp-raccourcis { margin-top: clamp(50px, 6vw, 80px); }

/* ---------- Tableau de bord ---------- */
.rvcp-tb { display: grid; grid-template-columns: 262px minmax(0, 1fr); max-width: 1440px; margin: 0 auto; padding-top: var(--rvcp-entete, 100px); }
.rvcp-cote { background: var(--creme); border-right: 1px solid rgba(214,174,123,.38); padding: 40px 24px 30px; }
.rvcp-cote > * { position: relative; }
@media (min-width: 901px) {
	.rvcp-cote { position: sticky; top: var(--rvcp-colle, 100px); align-self: start; max-height: calc(100vh - var(--rvcp-colle, 100px)); overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--or) transparent; }
}
.rvcp-qui { text-align: center; padding-bottom: 22px; margin-bottom: 18px; border-bottom: 1px solid rgba(214,174,123,.38); }
.rvcp-av { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 10px; border-radius: 50%; border: 1px solid var(--or); color: var(--sauge); font: 500 30px/1 "Cormorant Garamond", Georgia, serif; }
.rvcp-qui b { display: block; color: var(--encre); font: 500 24px/1.15 "Cormorant Garamond", Georgia, serif; text-wrap: balance; }
.rvcp-qui span { font-size: 11.5px; color: #8a8278; letter-spacing: .04em; }
.rvcp-menu a { display: flex; justify-content: center; align-items: center; gap: 8px; padding: 10px 12px; margin: 2px 0; color: var(--texte) !important; text-decoration: none; font-size: 11.5px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; border-radius: 3px; transition: color .2s; }
.rvcp-menu a:hover { color: var(--sauge) !important; }
.rvcp-menu a.actif { color: var(--sauge) !important; font-weight: 600; }
.rvcp-menu a i { font-style: normal; font-size: 10.5px; letter-spacing: 0; background: var(--papier); padding: 1px 8px; border-radius: 10px; font-weight: 500; }
.rvcp-bas { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(214,174,123,.38); display: grid; gap: 4px; text-align: center; }
.rvcp-bas a { color: var(--or-f) !important; font-size: 13px; text-decoration: none; padding: 5px 0; }
.rvcp-bas a:hover { color: var(--sauge) !important; }
.rvcp-bas .rvcp-sortir { color: #9a9187 !important; font-size: 12.5px; text-decoration: underline; text-decoration-color: rgba(214,174,123,.6); text-underline-offset: 3px; }

.rvcp-principal { padding: 36px clamp(20px, 3.4vw, 50px) 20px; min-width: 0; }
.rvcp-salut { scroll-margin-top: 200px; }
.rvcp-salut h1 { margin: 0 0 22px; color: var(--sauge); font-size: clamp(36px, 3.6vw, 46px); line-height: 1.1; }
.rvcp-principal .rvcp-msg { max-width: none; margin: 0 0 20px; }

/* États */
.rvcp-etat { display: inline-block; padding: 5px 11px 4px; border-radius: 999px; font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; line-height: 1.3; }
.rvcp-etat-actif { background: #354535; color: #F3EDE3; }
.rvcp-etat-attente { background: #FFF3DE; color: #8C6239; border: 1px solid rgba(214,174,123,.6); }
.rvcp-etat-ok { background: #E9EFE6; color: #2f4a2c; }
.rvcp-etat-fin { background: #F0ECE6; color: #7a7268; }

/* En ce moment (arche) */
.rvcp-moment { background: #fff; border: 1px solid rgba(214,174,123,.38); border-radius: 4px; text-align: center; padding: clamp(24px, 3vw, 34px) clamp(18px, 3vw, 34px) 28px; }
.rvcp-moment > .rvcp-etat { display: table; margin: 0 auto; }
.rvcp-arche-cadre { position: relative; display: table; margin: 26px auto 8px; }
.rvcp-arche { background: var(--papier) center / cover no-repeat; outline: 1px solid var(--or); outline-offset: 9px; }
.rvcp-arche-v { width: 300px; height: 375px; border-radius: 150px 150px 0 0; }
.rvcp-arche-h { width: min(560px, 76vw); aspect-ratio: 3 / 2; border-radius: 50% 50% 0 0 / 44% 44% 0 0; }
.rvcp-changer-photo { cursor: pointer; font-family: inherit; }
.rvcp-arche-cadre .rvcp-changer-photo { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); padding: 7px 14px; border: 0; border-radius: 999px; background: rgba(251,248,241,.92); color: var(--sauge); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; box-shadow: 0 4px 14px rgba(0,0,0,.14); opacity: 0; transition: opacity .2s; white-space: nowrap; }
.rvcp-arche-cadre:hover .rvcp-changer-photo, .rvcp-changer-photo:focus-visible { opacity: 1; }
@media (hover: none) { .rvcp-arche-cadre .rvcp-changer-photo { opacity: 1; } }
.rvcp-moment h2 { margin: 18px 0 2px; color: var(--sauge); font-size: clamp(30px, 3.2vw, 40px); line-height: 1.12; }
.rvcp-meta { margin: 0 0 10px; font-size: 13px; color: var(--texte); }
.rvcp-frise { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 580px; margin: 20px auto 18px; padding: 0; }
.rvcp-frise li { position: relative; padding-top: 30px; font-size: 11.5px; line-height: 1.3; text-align: center; color: #9a9187; }
.rvcp-frise li::before { content: ""; position: absolute; top: 9px; left: 0; right: 0; height: 2px; background: #e6ddcf; }
.rvcp-frise li:first-child::before { left: 50%; } .rvcp-frise li:last-child::before { right: 50%; }
.rvcp-frise li::after { content: ""; position: absolute; top: 3px; left: 50%; margin-left: -7px; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 2px solid #d9cfbf; box-sizing: border-box; }
.rvcp-frise li.fait::before, .rvcp-frise li.ici::before { background: var(--or); }
.rvcp-frise li.fait::after { background: var(--sauge); border-color: var(--sauge); }
.rvcp-frise li.ici { color: var(--encre); font-weight: 600; }
.rvcp-frise li.ici:not(.fait)::after { border-color: var(--or); box-shadow: 0 0 0 4px rgba(214,174,123,.25); }
.rvcp-moment-txt { max-width: 600px; margin: 0 auto 18px; font-size: 14px; line-height: 1.65; text-wrap: pretty; }
.rvcp-moment-txt b { color: var(--encre); font-weight: 600; }
.rvcp-gestes { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; margin: 4px 0 0; }
.rvcp-gestes-centre { justify-content: center; }
.rvcp-gestes button.rvge-bouton { cursor: pointer; font-family: inherit; }
.rvcp-moment-vide .rvcp-orne { display: block; color: var(--or); font-size: 26px; margin-top: 4px; }
.rvcp-moment-vide h2 { margin-top: 8px; }

/* Bande verte « Mes avantages » */
.rvcp-avantages { display: grid; grid-template-columns: auto repeat(3, minmax(0, 1fr)); margin: 18px 0 0; background: var(--sauge); color: #dfe5dc; border-radius: 4px; overflow: hidden; scroll-margin-top: 140px; }
.rvcp-avantages > div { padding: 20px 22px; border-left: 1px solid rgba(214,174,123,.3); font-size: 13px; line-height: 1.55; min-width: 0; }
.rvcp-av-tete { border: 0 !important; display: flex; flex-direction: column; justify-content: center; padding-right: 26px !important; }
.rvcp-av-tete .rvcp-surt { color: var(--or); margin: 0 0 2px; font-size: 9.5px; }
.rvcp-av-tete b { font: 500 25px/1.08 "Cormorant Garamond", Georgia, serif; color: #FBF8F1; white-space: nowrap; }
.rvcp-av-it b { display: block; color: #FBF8F1; font-weight: 500; font-size: 13.5px; margin-bottom: 2px; }
.rvcp-av-it > span { display: block; margin-bottom: 6px; text-wrap: pretty; }
.rvcp-av-it a, .rvcp-av-it button { color: var(--or) !important; font: 500 12px/1.4 "Montserrat", sans-serif; text-decoration: none; background: none; border: 0; padding: 0; cursor: pointer; }
.rvcp-av-it a:hover, .rvcp-av-it button:hover { color: #FBF8F1 !important; }
.rvcp-av-it .rvcp-fait { color: #FBF8F1; font-size: 12px; }
.rvcp-code-mini { color: #FBF8F1; letter-spacing: .1em; font-weight: 600; white-space: nowrap; }

/* Sections */
.rvcp-section { margin: clamp(38px, 4vw, 52px) 0 0; scroll-margin-top: 130px; }
.rvcp-section > h2 { margin: 0 0 16px; color: var(--sauge); font-size: clamp(28px, 2.6vw, 32px); display: flex; align-items: center; gap: 14px; }
.rvcp-section > h2::after { content: ""; flex: 1; height: 1px; background: rgba(214,174,123,.45); }
.rvcp-vide { margin: 0; padding: 18px 20px; background: #fff; border: 1px dashed rgba(214,174,123,.6); font-size: 14px; }
.rvcp-ligne { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; gap: 22px; align-items: start; padding: 16px 20px; margin: 0 0 12px; background: #fff; border: 1px solid rgba(214,174,123,.38); border-radius: 4px; }
.rvcp-ligne-sans { grid-template-columns: minmax(0, 1fr) auto; }
.rvcp-vign { background: var(--papier) center / cover no-repeat; height: 120px; display: grid; place-items: center; color: var(--or); font-size: 22px; }
.rvcp-vign-arche { height: 136px; border-radius: 60px 60px 0 0; }
.rvcp-vign-carte { height: auto; aspect-ratio: 7 / 5; margin-top: 4px; border: 1px solid rgba(214,174,123,.55); border-radius: 3px; box-shadow: 0 6px 16px rgba(47,42,36,.14); background-size: cover; transition: transform .25s, box-shadow .25s; }
a.rvcp-vign-carte:hover { transform: translateY(-2px) rotate(-.6deg); box-shadow: 0 12px 26px rgba(47,42,36,.18); }
.rvcp-ligne h3 { margin: 6px 0 2px; font: 500 24px/1.15 "Cormorant Garamond", Georgia, serif; color: var(--encre); text-wrap: balance; }
.rvcp-ligne .rvcp-meta { font-size: 12.5px; margin: 0 0 6px; }
.rvcp-ligne-gestes { align-self: center; display: grid; gap: 10px; justify-items: end; text-align: right; }
.rvcp-ligne-gestes .rvge-bouton { cursor: pointer; font-family: inherit; white-space: nowrap; }
.rvcp-ligne-gestes button.rvge-lien { background: none; border: 0; padding: 0; cursor: pointer; font-family: inherit; }
.rvcp-plus { font-size: 12px; color: #9a9187; }
.rvcp-dates { display: grid; gap: 1px; margin: 6px 0 8px; }
.rvcp-date { font-size: 12.5px; color: var(--encre); }
.rvcp-date strong { font-weight: 600; color: var(--sauge); }
.rvcp-date em { font-style: normal; color: #7a7268; font-size: 12px; }
.rvcp-date.passe { color: #9a9187; }
.rvcp-date.passe strong { color: #9a9187; font-weight: 500; }
.rvcp-noms { margin: 6px 0 8px; border: 1px solid #EFE7DA; background: var(--creme); padding: 0 14px; }
.rvcp-noms summary { cursor: pointer; padding: 8px 0; font-size: 12.5px; font-weight: 500; color: var(--sauge); list-style: none; }
.rvcp-noms summary::-webkit-details-marker { display: none; }
.rvcp-noms summary::before { content: "+ "; color: var(--or-f); }
.rvcp-noms[open] summary::before { content: "− "; }
.rvcp-noms p { margin: 0 0 8px; font: 400 12.5px/1.7 Menlo, Consolas, monospace; color: var(--encre); word-break: break-word; }
.rvcp-noms .rvcp-copier { background: none; border: 0; padding: 0 0 10px; cursor: pointer; font: inherit; font-size: 12.5px; }
.rvcp-liste { margin: 4px 0 8px; padding-left: 18px; font-size: 13px; line-height: 1.7; }
.rvcp-montant { margin: 4px 0 0; font-size: 13px; color: var(--encre); }
.rvcp-montant strong { color: var(--sauge); font-weight: 600; }

/* Réglages */
.rvcp-deux { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: stretch; }
.rvcp-deux > .rvcp-bloc:nth-child(n+3):last-child:nth-child(odd) { grid-column: 1 / -1; }
.rvcp-col { display: grid; gap: 18px; }
.rvcp-bloc { background: #fff; border: 1px solid rgba(214,174,123,.38); border-radius: 4px; padding: 22px 24px; scroll-margin-top: 130px; }
.rvcp-bloc h3 { margin: 0 0 10px; font: 500 24px/1.15 "Cormorant Garamond", Georgia, serif; color: var(--encre); }
.rvcp-bloc > .rvcp-petit { margin: 0 0 10px; }
.rvcp-pref { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; border-top: 1px solid #f0e8dc; cursor: pointer; }
.rvcp-bloc h3 + .rvcp-pref { border-top: 0; }
.rvcp-pref b { display: block; font-weight: 500; color: var(--encre); font-size: 13.5px; }
.rvcp-pref small { display: block; font-size: 12px; color: #7a7268; line-height: 1.5; text-wrap: pretty; }
.rvcp-pref-mini { padding: 12px 0 4px; align-items: center; margin-top: 8px; }
.rvcp-bascule { -webkit-appearance: none; appearance: none; position: relative; flex: none; width: 38px; height: 22px; margin: 0; border-radius: 22px; background: #d9d1c4; cursor: pointer; transition: background .2s; }
.rvcp-bascule::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: left .2s; }
.rvcp-bascule:checked { background: var(--sauge); }
.rvcp-bascule:checked::after { left: 19px; }
.rvcp-bascule:focus-visible { outline: 2px solid var(--or); outline-offset: 2px; }
.rvcp-note { margin: 10px 0 0; padding-top: 10px; border-top: 1px solid #f0e8dc; }
.rvcp-code-ligne { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 12px 0 10px; }
.rvcp-code { font: 600 15px/1 "Montserrat", sans-serif; letter-spacing: .14em; color: var(--sauge); background: var(--papier); border: 1px dashed var(--or); padding: 9px 14px; }
.rvcp-code-ligne button { background: none; border: 0; padding: 0; cursor: pointer; font-family: inherit; }
.rvcp-code-form { display: flex; gap: 10px; }
.rvcp-code-form input { flex: 1; min-width: 0; padding: 11px 13px; border: 1px solid #E6DDCF; background: var(--creme); font: 500 14px/1.2 "Montserrat", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--encre); }
.rvcp-code-form input:focus { outline: 2px solid #EACDA3; border-color: var(--or); background: #fff; }
.rvcp-code-form button { cursor: pointer; font-family: inherit; padding: 10px 18px !important; }
.rvcp-code-retour:empty { display: none; }
.rvcp-code-retour { margin: 10px 0 0 !important; color: var(--sauge) !important; }
.rvcp-famille { display: grid; gap: 8px; margin: 4px 0 6px; }
.rvcp-f-retirer { width: 32px; height: 32px; border: 0; border-radius: 50%; background: none; color: #9a9187; font-size: 20px; line-height: 1; cursor: pointer; }
.rvcp-f-retirer:hover { background: var(--papier); color: var(--encre); }
.rvcp-f-vide { margin: 0 !important; }
#famille .rvcp-gestes button { cursor: pointer; font-family: inherit; }
#famille .rvcp-gestes button.rvge-lien { background: none; border: 0; padding: 0; }
#famille .rvcp-gestes .rvge-bouton { padding: 9px 18px; margin-left: auto; }
.rvcp-f-prochain:empty { display: none; }
.rvcp-f-prochain { margin: 6px 0 0 !important; }

/* Profil */
#profil .rvcp-bloc { max-width: 820px; }
.rvcp-supprimer { margin-top: 22px; max-width: 520px; }
.rvcp-supprimer summary { cursor: pointer; font-size: 13px; color: #8a8278; text-decoration: underline; text-decoration-color: rgba(214,174,123,.6); text-underline-offset: 3px; }
.rvcp-supprimer .rvcp-form { margin-top: 14px; padding: 16px; border: 1px solid #E6DDCF; background: #fff; }
.rvcp-bas-tel { display: none; }

/* Choix de la photo préférée */
.rvcp-modale { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 20px; background: rgba(28,32,28,.62); }
.rvcp-modale[hidden] { display: none; }
.rvcp-modale-boite { position: relative; width: min(980px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; background: var(--creme); padding: 30px clamp(18px, 3vw, 34px); border-radius: 4px; scrollbar-width: thin; scrollbar-color: var(--or) transparent; }
.rvcp-modale-boite h2 { margin: 0 0 4px; color: var(--sauge); font-size: 30px; }
.rvcp-modale-x { position: absolute; top: 10px; right: 12px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: none; font-size: 28px; line-height: 1; color: var(--texte); cursor: pointer; }
.rvcp-modale-x:hover { background: var(--papier); }
.rvcp-choix { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 16px; }
.rvcp-choix button { padding: 0; border: 0; background: var(--papier); cursor: pointer; aspect-ratio: 4 / 5; overflow: hidden; outline: 2px solid transparent; outline-offset: 2px; transition: outline-color .2s; }
.rvcp-choix button:hover, .rvcp-choix button:focus-visible { outline-color: var(--or); }
.rvcp-choix img { width: 100%; height: 100%; object-fit: cover; display: block; }
html.rvcp-sans-defil { overflow: hidden; }

.rvcp-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 100001; background: var(--sauge, #354535); color: #FBF8F1; padding: 12px 20px; font: 400 13.5px/1.4 "Montserrat", sans-serif; box-shadow: 0 10px 30px rgba(0,0,0,.2); max-width: calc(100vw - 32px); }
.rvcp-toast[hidden] { display: none; }

/* ---------- Tablette ---------- */
@media (max-width: 1180px) {
	.rvcp-avantages { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rvcp-av-tete { grid-column: 1 / -1; flex-direction: row !important; align-items: baseline; gap: 14px; padding-bottom: 0 !important; justify-content: flex-start !important; }
	.rvcp-av-it:nth-child(2) { border-left: 0 !important; }
}

/* ---------- Téléphone ---------- */
@media (max-width: 900px) {
	.rvcp-acces { grid-template-columns: minmax(0, 1fr); }
	.rvcp-tb { grid-template-columns: minmax(0, 1fr); }
	.rvcp-cote { border-right: 0; border-bottom: 1px solid rgba(214,174,123,.38); padding: 16px 16px 6px; }
	.rvcp-qui { display: flex; align-items: center; gap: 12px; text-align: left; padding-bottom: 12px; margin-bottom: 6px; }
	.rvcp-av { width: 44px; height: 44px; margin: 0; font-size: 22px; flex: none; }
	.rvcp-qui b { font-size: 21px; }
	.rvcp-menu { display: flex; overflow-x: auto; gap: 2px; padding-bottom: 6px; margin: 0 -16px; padding-left: 10px; padding-right: 10px; scrollbar-width: none; }
	.rvcp-menu::-webkit-scrollbar { display: none; }
	.rvcp-menu a { flex: none; font-size: 10.5px; padding: 9px 10px; }
	.rvcp-bas { display: none; }
	.rvcp-bas-tel { display: flex; gap: 22px; margin: 26px 0 0; }
	.rvcp-principal { padding: 22px 16px 10px; }
	.rvcp-salut h1 { font-size: 34px; margin-bottom: 16px; }
	.rvcp-arche-v { width: 220px; height: 275px; border-radius: 110px 110px 0 0; }
	.rvcp-arche-h { width: calc(100vw - 90px); }
	.rvcp-frise li { font-size: 10.5px; }
	.rvcp-avantages { grid-template-columns: minmax(0, 1fr); }
	.rvcp-av-tete { grid-column: auto; }
	.rvcp-avantages > div { border-left: 0 !important; border-top: 1px solid rgba(214,174,123,.3); padding: 15px 18px; }
	.rvcp-avantages > div:first-child { border-top: 0; padding-top: 18px; }
	.rvcp-ligne { grid-template-columns: 84px minmax(0, 1fr); gap: 14px; padding: 14px; }
	.rvcp-ligne-sans { grid-template-columns: minmax(0, 1fr); }
	.rvcp-vign { height: 84px; } .rvcp-vign-arche { height: 100px; border-radius: 42px 42px 0 0; } .rvcp-vign-carte { height: auto; }
	.rvcp-ligne-gestes { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-items: start; text-align: left; gap: 10px 18px; }
	.rvcp-ligne-gestes:empty { display: none; }
	.rvcp-2 { grid-template-columns: 1fr; }
	.rvcp-boite::after { inset: 8px -6px -8px 6px; }
	.rvge .rvcp-ligne-gestes .rvge-bouton, .rvge .rvcp-gestes .rvge-bouton { width: auto; }
	.rvge .rvcp-moment .rvcp-gestes .rvge-bouton { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .rvcp-bascule, .rvcp-bascule::after, .rvcp-arche-cadre .rvcp-changer-photo { transition: none; } }
/* Boutons-icônes : on neutralise le style des boutons du thème */
.rvge button.rvcp-f-retirer, .rvge button.rvcp-modale-x { background: none !important; border: 0 !important; color: #9a9187 !important; box-shadow: none !important; padding: 0 !important; min-height: 0; }
.rvge button.rvcp-f-retirer:hover, .rvge button.rvcp-modale-x:hover, .rvge button.rvcp-modale-x:focus-visible { background: var(--papier) !important; color: var(--encre) !important; }
.rvge .rvcp-choix button, .rvge .rvcp-choix button:hover, .rvge .rvcp-choix button:focus { background: var(--papier) !important; border: 0 !important; padding: 0 !important; }
.rvge .rvcp-av-it button, .rvge .rvcp-av-it button:hover, .rvge .rvcp-av-it button:focus { background: none !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
.rvge button.rvge-lien, .rvge button.rvge-lien:hover, .rvge button.rvge-lien:focus { background: none !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; text-transform: none; letter-spacing: 0; font-weight: 400; }

/* ---------- Survols : soulignement doré qui se déploie, flèches qui s'allongent ---------- */
.rvcp-menu a .t { position: relative; display: inline-block; padding-bottom: 3px; transition: letter-spacing .35s ease; }
.rvcp-menu a .t::after { content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: linear-gradient(90deg, transparent, var(--or) 18%, var(--or) 82%, transparent); transform: scaleX(0); transform-origin: center; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.rvcp-menu a .t::before { content: "✦"; position: absolute; left: 50%; bottom: -9px; transform: translate(-50%, 4px) scale(.4); font-size: 8px; line-height: 1; color: var(--or); opacity: 0; transition: opacity .3s, transform .45s cubic-bezier(.2,.8,.2,1); }
.rvcp-menu a:hover .t, .rvcp-menu a:focus-visible .t { letter-spacing: .02em; }
.rvcp-menu a:hover .t::after, .rvcp-menu a:focus-visible .t::after, .rvcp-menu a.actif .t::after { transform: scaleX(1); }
.rvcp-menu a.actif .t::before { opacity: 1; transform: translate(-50%, 0) scale(1); }
.rvcp-menu a i { transition: background .3s, color .3s; }
.rvcp-menu a:hover i, .rvcp-menu a.actif i { background: var(--or); color: var(--encre); }
/* Flèche dessinée : une tige qui s'allonge au survol */
.rvcp-fl { position: relative; display: inline-block; width: 14px; height: 1px; margin-left: 6px; vertical-align: middle; background: currentColor; transition: width .35s cubic-bezier(.2,.8,.2,1); }
.rvcp-fl::after { content: ""; position: absolute; right: 0; top: -3px; width: 6px; height: 6px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); transform-origin: center; box-sizing: border-box; }
.rvge .rvge-bouton span.rvcp-fl { transform: none !important; }
a:hover > .rvcp-fl, button:hover > .rvcp-fl, a:focus-visible > .rvcp-fl, button:focus-visible > .rvcp-fl { width: 26px; }
.rvcp-bas a { position: relative; transition: color .25s, letter-spacing .35s; }
.rvcp-bas a:hover { letter-spacing: .01em; }
.rvcp-av-it a, .rvcp-av-it button { display: inline-flex; align-items: center; }
.rvcp-av-it a::before, .rvcp-av-it button::before { display: none; }
/* Couleurs du navigateur ramenées à la palette (jamais de bleu pâle) */
.rvcp ::selection { background: rgba(214,174,123,.38); color: var(--encre); }
.rvcp input, .rvcp select, .rvcp textarea { accent-color: var(--sauge); caret-color: var(--sauge); color-scheme: light; }
.rvcp input:-webkit-autofill, .rvcp input:-webkit-autofill:hover, .rvcp input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px #FBF8F3 inset !important; -webkit-text-fill-color: var(--encre) !important; transition: background-color 9999s; }
.rvcp input:focus-visible, .rvcp button:focus-visible, .rvcp a:focus-visible, .rvcp summary:focus-visible { outline: 2px solid var(--or) !important; outline-offset: 2px; box-shadow: none; }
.rvcp a, .rvcp button, .rvcp label, .rvcp summary { -webkit-tap-highlight-color: rgba(214,174,123,.22); }
.rvcp input[type=date]::-webkit-calendar-picker-indicator { filter: sepia(.6) saturate(.8) hue-rotate(350deg); cursor: pointer; }
@media (max-width: 900px) {
	.rvcp-deux { grid-template-columns: minmax(0, 1fr); }
	.rvcp-deux > .rvcp-bloc:nth-child(n+3):last-child:nth-child(odd) { grid-column: auto; }
	.rvcp-menu a .t::before { display: none; }
}
@media (prefers-reduced-motion: reduce) { .rvcp-menu a .t, .rvcp-menu a .t::after, .rvcp-menu a .t::before, .rvcp-fl { transition: none; } }

/* ---------- Ma famille ---------- */
.rvcp-f-intro { max-width: 760px; margin: 0 0 16px !important; }
.rvcp-f-intro em { font-style: normal; color: var(--or-f); }
.rvcp-famille { display: grid; gap: 10px; margin: 0 0 8px; }
.rvcp-f-ligne { position: relative; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .9fr) minmax(0, 1.1fr) 90px; gap: 10px 12px; align-items: end; padding: 14px 48px 14px 16px; background: var(--creme); border: 1px solid #EFE7DA; }
.rvcp-f-ligne label { display: grid; gap: 4px; min-width: 0; }
.rvcp-f-ligne label > span { font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sauge); }
.rvcp-f-ligne input, .rvcp-f-ligne select, .rvcp-f-apropos textarea { width: 100%; min-width: 0; padding: 9px 11px; border: 1px solid #E6DDCF; border-radius: 0; background: #fff; font: 400 14px/1.3 "Montserrat", sans-serif; color: var(--encre); }
.rvcp-f-ligne select { -webkit-appearance: none; appearance: none; padding-right: 30px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23A8834F' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 11px center; cursor: pointer; }
.rvcp-f-ligne input:focus, .rvcp-f-ligne select:focus, .rvcp-f-apropos textarea:focus { outline: 2px solid #EACDA3; border-color: var(--or); }
.rvcp-f-ligne .f-note-l { grid-column: 1 / -1; }
.rvcp-f-age { align-self: center; padding-top: 16px; font-size: 12px; color: var(--or-f); white-space: nowrap; }
.rvge button.rvcp-f-retirer { position: absolute; top: 8px; right: 8px; width: 32px; height: 32px; border-radius: 50%; font-size: 20px; line-height: 1; cursor: pointer; }
.rvcp-f-apropos { display: grid; gap: 6px; margin: 14px 0 0; }
.rvcp-f-apropos > span { font-size: 10.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sauge); }
.rvcp-f-apropos small { font-weight: 400; letter-spacing: 0; text-transform: none; color: #8a8278; font-size: 12px; }
.rvcp-f-apropos textarea { resize: vertical; min-height: 84px; line-height: 1.55; }
.rvcp-f-bas { margin-top: 14px; }
.rvcp-f-bas .rvge-bouton { cursor: pointer; font-family: inherit; }
.rvcp-f-bas .rvge-bouton:disabled { opacity: .45; cursor: default; }
.rvcp-f-rappels { margin-top: 18px; padding-top: 6px; border-top: 1px solid #f0e8dc; }
.rvcp-f-rappels .rvcp-pref { border-top: 0; }
.rvcp-deux > .rvcp-bloc:only-child { grid-column: 1 / -1; }
@media (max-width: 900px) {
	.rvcp-f-ligne { grid-template-columns: minmax(0, 1fr); padding: 12px 44px 12px 12px; }
	.rvcp-f-age { grid-column: 1 / -1; padding-top: 0; margin-top: -4px; }
	.rvcp-f-age:empty { display: none; }
}
/* Photo de chaque membre */
.rvcp-f-ligne { grid-template-columns: 78px minmax(0, 1.3fr) minmax(0, .9fr) minmax(0, 1.1fr) 90px; }
.rvcp-f-ligne .f-note-l { grid-column: 2 / -1; }
.rvge button.rvcp-f-photo { grid-row: span 2; align-self: center; position: relative; width: 78px; height: 78px; padding: 0 !important; border: 1px dashed var(--or) !important; border-radius: 50%; background: #fff center / cover no-repeat; color: var(--or-f); font: 600 10.5px/1.2 "Montserrat", sans-serif; letter-spacing: .06em; cursor: pointer; overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.rvge button.rvcp-f-photo.a-photo { border: 2px solid #fff !important; box-shadow: 0 0 0 1px var(--or); }
.rvge button.rvcp-f-photo span { position: relative; z-index: 1; }
.rvge button.rvcp-f-photo.a-photo span { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(39,52,42,.55); color: #FBF8F1; opacity: 0; transition: opacity .2s; }
.rvge button.rvcp-f-photo.a-photo:hover span, .rvge button.rvcp-f-photo.a-photo:focus-visible span, .rvge button.rvcp-f-photo.envoi span { opacity: 1; }
.rvge button.rvcp-f-photo:hover { border-color: var(--sauge) !important; color: var(--sauge); }
@media (max-width: 900px) {
	.rvcp-f-ligne { grid-template-columns: 64px minmax(0, 1fr); }
	.rvge button.rvcp-f-photo { width: 64px; height: 64px; grid-row: span 1; }
	.rvcp-f-ligne .f-note-l, .rvcp-f-ligne label:not(:first-of-type), .rvcp-f-age { grid-column: 1 / -1; }
}
.rvcp-f-rappels .rvcp-pref-mini { align-items: flex-start; } .rvcp-f-rappels .rvcp-bascule { margin-top: 2px; }
/* Choix des rappels */
.rvcp-f-choix { display: grid; gap: 8px; margin: 6px 0 4px 52px; }
.rvcp-f-choix[hidden] { display: none; }
.rvcp-case-r { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; font-size: 13px; line-height: 1.45; }
.rvcp-case-r input { width: 17px; height: 17px; margin: 1px 0 0; flex: none; accent-color: var(--sauge); cursor: pointer; }
.rvcp-case-r b { display: block; font-weight: 500; color: var(--encre); }
.rvcp-case-r small { display: block; font-size: 12px; color: #7a7268; }
/* Changer de courriel */
.rvcp-courriel-bloc { max-width: 820px; margin-top: 18px; }
.rvcp-courriel-bloc[hidden] { display: none; }
.rvcp-courriel-bloc .rvcp-texte { margin: 0 0 14px; font-size: 13.5px; }
.rvcp-form small .rvcp-ouvrir-courriel { font-size: 12.5px; cursor: pointer; }
@media (max-width: 900px) { .rvcp-f-choix { margin-left: 0; } }
/* Bouton « Réserver une séance » du menu */
.rvcp-bas a.rvcp-reserver { display: inline-flex; align-items: center; justify-content: center; gap: 2px; justify-self: center; margin: 0 0 10px; padding: 11px 20px; border-radius: 999px; background: var(--sauge); color: #FBF8F1 !important; font-size: 10.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; box-shadow: 0 6px 16px rgba(39,52,42,.16); transition: background .25s, color .25s, box-shadow .25s; }
.rvcp-bas a.rvcp-reserver:hover, .rvcp-bas a.rvcp-reserver:focus-visible { background: var(--or); color: var(--encre) !important; letter-spacing: .14em; box-shadow: 0 8px 20px rgba(168,131,79,.25); }
/* ---------- Boutons : exactement ceux du site (le thème ne doit rien y changer) ---------- */
.rvge button.rvge-bouton, .rvge .rvcp-bas a.rvcp-reserver { font: 600 11.5px/1.2 "Montserrat", sans-serif !important; letter-spacing: .14em !important; text-transform: uppercase; padding: 13px 24px !important; border-radius: 999px !important; min-height: 0; height: auto; box-shadow: none; }
.rvge button.rvge-bouton { background: var(--sauge); border: 1px solid var(--sauge); color: #FBF8F1; }
.rvge button.rvge-bouton.rvge-bouton-ligne { background: transparent; color: var(--sauge) !important; border-color: var(--or); }
.rvge button.rvge-bouton:hover:not(:disabled), .rvge button.rvge-bouton:focus-visible { background: var(--or) !important; border-color: var(--or) !important; color: var(--encre) !important; }
.rvge .rvcp-bas a.rvcp-reserver { box-shadow: none; }
/* « Enregistrer ma famille » : jamais pâle; une fois enregistré, il passe au contour doré */
.rvge .rvcp-f-bas button.rvge-bouton:disabled { opacity: 1; background: transparent; color: var(--sauge) !important; border-color: var(--or); cursor: default; }
/* Œil des mots de passe : plus grand, sans cadre */
.rvge button.rvcp-oeil { width: 44px; height: 44px; right: 2px; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; color: #8a8278 !important; border-radius: 50% !important; }
.rvge button.rvcp-oeil:hover, .rvge button.rvcp-oeil.ouvert { background: rgba(214,174,123,.16) !important; color: var(--sauge) !important; }
.rvge button.rvcp-oeil svg { width: 23px; height: 23px; stroke-width: 1.5; }
.rvcp-mdp input { padding-right: 52px !important; }
/* ---------- Menu : titres centrés et alignés, compteur collé à droite, icônes dorées ---------- */
.rvcp-menu a { position: relative; justify-content: center; padding: 11px 44px; gap: 9px; }
.rvcp-menu a i { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); min-width: 24px; text-align: center; }
.rvcp-mi { width: 16px; height: 16px; flex: none; fill: none; stroke: var(--or-f); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; transition: stroke .3s, transform .35s cubic-bezier(.2,.8,.2,1); }
.rvcp-menu a:hover .rvcp-mi, .rvcp-menu a.actif .rvcp-mi { stroke: var(--sauge); transform: translateY(-1px); }
.rvcp-point { display: inline-block; width: 7px; height: 7px; margin-left: -3px; border-radius: 50%; background: var(--or); box-shadow: 0 0 0 3px rgba(214,174,123,.22); align-self: flex-start; margin-top: 3px; animation: rvcp-pouls 2.4s ease-in-out infinite; }
@keyframes rvcp-pouls { 50% { box-shadow: 0 0 0 5px rgba(214,174,123,.08); } }
.rvcp-nouveau { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); padding: 3px 7px 2px; border-radius: 999px; background: var(--or); color: var(--encre); font: 600 8.5px/1.2 "Montserrat", sans-serif; letter-spacing: .12em; text-transform: uppercase; }
/* Boutons : pas de flèche (la flèche qui s'allonge reste pour les liens simples) */
.rvge .rvge-bouton .rvcp-fl, .rvge .rvcp-reserver .rvcp-fl { display: none; }
.rvge button.rvge-bouton, .rvge a.rvge-bouton, .rvge .rvcp-bas a.rvcp-reserver { transition: background .3s, border-color .3s, color .3s, transform .3s; }
.rvge .rvge-bouton:hover, .rvge .rvcp-bas a.rvcp-reserver:hover { transform: translateY(-1px); }
/* Barre de raccourcis (téléphone) */
.rvcp-barre { display: none; }
@media (max-width: 900px) {
	.rvcp-menu a { padding: 9px 12px; }
	.rvcp-menu a i, .rvcp-nouveau { position: static; transform: none; }
	.rvcp-menu .rvcp-mi { display: none; }
	.rvcp-barre { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; display: grid; grid-template-columns: repeat(4, 1fr); background: rgba(251,248,243,.97); border-top: 1px solid rgba(214,174,123,.45); box-shadow: 0 -6px 18px rgba(47,42,36,.07); padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
	.rvcp-barre a { position: relative; display: grid; justify-items: center; gap: 3px; padding: 5px 2px; color: var(--texte) !important; text-decoration: none; font-size: 9.5px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
	.rvcp-barre .rvcp-mi { width: 21px; height: 21px; }
	.rvcp-barre a.actif { color: var(--sauge) !important; }
	.rvcp-barre a.actif .rvcp-mi { stroke: var(--sauge); }
	.rvcp-barre a.actif::before { content: ""; position: absolute; top: -6px; left: 30%; right: 30%; height: 2px; background: var(--or); border-radius: 2px; }
	.rvcp-barre .rvcp-point { position: absolute; top: 4px; left: calc(50% + 8px); margin: 0; }
	.rvcp-connecte .rvge { padding-bottom: 18px; } /* le pied de page suit de près; le dégagement de la barre du bas est sous le pied de page */
	.rvcp-connecte footer.rvp .rvp-fin { padding-bottom: calc(11px + 84px + env(safe-area-inset-bottom)); }
	.rvcp-connecte .rvg-haut { bottom: 84px !important; }
	.rvcp-connecte .rvcp-principal > .rvcp-bas-tel { margin: 18px 0 6px; }
}
/* ---------- Menu : deux mises en page ---------- */
@media (min-width: 901px) { .rvcp-tb { grid-template-columns: 280px minmax(0, 1fr); } }
.rvcp-menu a .t { white-space: nowrap; }
.rvcp-menu .t .rvcp-point { position: absolute; top: -1px; right: -11px; margin: 0; }
/* A : trois colonnes alignées (icônes, titres, quantités) */
.rvcp-menu-a { width: 212px; margin: 0 auto; }
.rvcp-menu-a a { display: grid; grid-template-columns: 18px minmax(0, 1fr) 30px; justify-content: stretch; align-items: center; gap: 12px; padding: 10px 6px 10px 10px; text-align: left; }
.rvcp-menu-a a i, .rvcp-menu-a .rvcp-nouveau { position: static; transform: none; grid-column: 3; justify-self: end; }
.rvcp-menu-a a .t { justify-self: start; }
.rvcp-menu-a a .t::after { background: linear-gradient(90deg, var(--or), var(--or) 82%, transparent); transform-origin: left; }
.rvcp-menu-a a .t::before { left: 0; transform: translate(0, 4px) scale(.4); }
.rvcp-menu-a a.actif .t::before { transform: translate(0, 0) scale(1); }
/* B : chaque ligne centrée au complet */
.rvcp-menu-b a { display: flex; justify-content: center; gap: 9px; padding: 10px 8px; }
.rvcp-menu-b a i, .rvcp-menu-b .rvcp-nouveau { position: static; transform: none; }
@media (max-width: 900px) {
	.rvcp-menu-a { width: auto; margin: 0 -16px; }
	.rvcp-menu-a a, .rvcp-menu-b a { display: flex; gap: 6px; padding: 9px 12px; }
}
/* ---------- Image du compte : monogrammes ou photo ---------- */
.rvge button.rvcp-av, .rvcp-av { position: relative; display: grid; place-items: center; width: 68px; height: 68px; margin: 0 auto 10px; padding: 0 !important; border-radius: 50% !important; border: 1px solid var(--or) !important; background: transparent center / cover no-repeat; color: var(--sauge) !important; font: 500 31px/1 "Cormorant Garamond", Georgia, serif !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important; cursor: pointer; overflow: visible; transition: transform .3s, box-shadow .3s; }
.rvge button.rvcp-av:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(47,42,36,.12) !important; }
.rvge .rvcp-av.rvcp-av-m2 { background-color: var(--sauge) !important; border-color: var(--sauge) !important; color: #F6F2E9 !important; }
.rvge .rvcp-av.rvcp-av-m3 { background-color: var(--or) !important; border-color: var(--or) !important; color: var(--encre) !important; }
.rvge .rvcp-av.rvcp-av-m4 { background-color: #FBF8F3 !important; outline: 1px solid var(--or); outline-offset: 3px; font-style: italic !important; color: var(--or-f) !important; }
.rvge .rvcp-av.rvcp-av-photo { border: 2px solid #fff !important; box-shadow: 0 0 0 1px var(--or) !important; }
.rvcp-av-photo > span { display: none; }
.rvcp-av-crayon { position: absolute; right: -2px; bottom: -2px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 1px solid var(--or); opacity: 0; transition: opacity .25s; }
.rvcp-av-crayon svg { width: 11px; height: 11px; fill: none; stroke: var(--or-f); stroke-width: 1.6; stroke-linejoin: round; }
.rvcp-av:hover .rvcp-av-crayon, .rvcp-av:focus-visible .rvcp-av-crayon { opacity: 1; }
@media (hover: none) { .rvcp-av-crayon { opacity: 1; } }
.rvge button.rvcp-av-choisir { display: block; margin: 6px auto 0; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; color: var(--or-f) !important; font: 400 12px/1.4 "Montserrat", sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: underline; text-decoration-color: rgba(214,174,123,.6); text-underline-offset: 3px; cursor: pointer; }
.rvcp-av-boite { width: min(560px, 100%); text-align: center; }
.rvcp-av-choix { display: grid; grid-template-columns: repeat(auto-fit, minmax(86px, 1fr)); gap: 12px; margin: 20px 0 10px; }
.rvge .rvcp-av-choix > button { display: grid; justify-items: center; gap: 8px; padding: 12px 4px !important; border: 1px solid transparent !important; border-radius: 6px !important; background: none !important; box-shadow: none !important; cursor: pointer; color: var(--texte) !important; font: inherit !important; text-transform: none !important; letter-spacing: 0 !important; transition: border-color .2s, background .2s; }
.rvge .rvcp-av-choix > button:hover, .rvge .rvcp-av-choix > button.choisi { border-color: var(--or) !important; background: #fff !important; }
.rvcp-av-choix .rvcp-av { margin: 0; width: 60px; height: 60px; font-size: 27px !important; pointer-events: none; }
.rvcp-av-choix small { font-size: 11.5px; color: var(--texte); }
.rvcp-av-plus { border-style: dashed !important; }
.rvcp-av-plus svg { width: 22px; height: 22px; fill: none; stroke: var(--or-f); stroke-width: 1.4; stroke-linejoin: round; }
.rvcp-av-famille { margin: 14px 0 0; font-size: 13px; }
.rvcp-arche-vide { display: grid; place-content: center; justify-items: center; gap: 10px; background: linear-gradient(180deg, #FBF8F3, var(--papier)); padding: 0 40px; text-align: center; }
.rvcp-arche-vide .rvcp-orne { color: var(--or); font-size: 26px; }
.rvcp-arche-vide em { font: italic 500 20px/1.3 "Cormorant Garamond", Georgia, serif; color: var(--or-f); }
@media (max-width: 900px) { .rvge button.rvcp-av { width: 46px; height: 46px; margin: 0; font-size: 22px !important; } .rvcp-qui .rvcp-av-choisir { margin: 2px 0 0; } }
.rvcp-qui .rvcp-av > span { font: inherit; color: inherit; letter-spacing: 0; }
.rvcp-qui .rvcp-av-crayon { font-size: 0; }
.rvcp-av-choix { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 420px; margin-left: auto; margin-right: auto; }
.rvcp-av-choix:has(> button:nth-child(5):last-child) { grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: none; }
/* Image du compte en arche (signature du site) */
.rvge .rvcp-qui button.rvcp-av { width: 62px; height: 78px; border-radius: 31px 31px 0 0 !important; }
.rvge .rvcp-av-choix .rvcp-av { width: 50px; height: 64px; border-radius: 25px 25px 0 0 !important; }
.rvge .rvcp-av.rvcp-av-m4 { outline-offset: 3px; }
.rvcp-qui .rvcp-av-crayon { right: -8px; bottom: -4px; }
@media (max-width: 900px) { .rvge .rvcp-qui button.rvcp-av { width: 40px; height: 50px; border-radius: 20px 20px 0 0 !important; } }
/* Menu A : soulignement net, losange centré sous le titre */
.rvcp-menu-a a .t::after { left: 0; right: 0; bottom: -3px; height: 1px; background: var(--or); transform-origin: left center; }
.rvcp-menu-a a .t::before { left: 50%; bottom: -7px; transform: translate(-50%, 3px) rotate(0) scale(.4); font-size: 7px; }
.rvcp-menu-a a.actif .t::before { transform: translate(-50%, 0) scale(1); }
.rvcp-menu-a a .t::before { content: ""; width: 5px; height: 5px; background: var(--or); font-size: 0; transform: translate(-50%, 3px) rotate(45deg) scale(.4); }
.rvcp-menu-a a.actif .t::before { transform: translate(-50%, 0) rotate(45deg) scale(1); bottom: -5px; }
.rvcp-menu-a a .t::before { bottom: -5px; }
.rvcp-menu-a a .t::after { right: .12em; } .rvcp-menu-a a .t::before { left: calc(50% - .06em); }
.rvcp-tb { padding-top: 0; }
/* Première séance */
.rvcp-premiere legend small { font-weight: 400; letter-spacing: 0; color: #8a8278; }
.rvcp-premiere .rvcp-petit { margin: 2px 0 10px; }
.rvcp-3 { display: grid; grid-template-columns: 90px minmax(0, 1fr) 120px; gap: 12px; max-width: 460px; }
.rvcp-3 select { width: 100%; padding: 11px 30px 11px 12px; border: 1px solid #E6DDCF; border-radius: 0; -webkit-appearance: none; appearance: none; background: var(--creme) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23A8834F' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 11px center; font: 400 14.5px/1.3 "Montserrat", sans-serif; color: var(--encre); cursor: pointer; }
.rvcp-3 select:focus { outline: 2px solid #EACDA3; border-color: var(--or); background-color: #fff; }
@media (max-width: 480px) { .rvcp-3 { grid-template-columns: 70px minmax(0, 1fr) 96px; gap: 8px; } }
/* ---------- Menu sans barre de défilement : plus compact, et jamais de défilement interne ---------- */
@media (min-width: 901px) {
	.rvcp-cote { max-height: none; overflow: visible; padding: 26px 22px 20px; }
	.rvcp-cote.rvcp-cote-libre { position: static; }
	.rvcp-qui { padding-bottom: 14px; margin-bottom: 10px; }
	.rvge .rvcp-qui button.rvcp-av { width: 52px; height: 66px; border-radius: 26px 26px 0 0 !important; margin-bottom: 8px; font-size: 26px !important; }
	.rvcp-qui b { font-size: 22px; }
	.rvcp-menu-a a { padding-top: 8px; padding-bottom: 8px; }
	.rvcp-bas { margin-top: 14px; padding-top: 14px; gap: 2px; }
	.rvcp-bas a { padding: 3px 0; font-size: 12.5px; }
	.rvcp-bas a.rvcp-reserver { margin-bottom: 8px; padding: 11px 22px !important; }
}
@media (min-width: 901px) and (max-height: 820px) {
	.rvcp-cote { padding-top: 18px; padding-bottom: 14px; }
	.rvge .rvcp-qui button.rvcp-av { width: 44px; height: 56px; border-radius: 22px 22px 0 0 !important; font-size: 22px !important; }
	.rvcp-qui b { font-size: 20px; }
	.rvcp-menu-a a { padding-top: 6px; padding-bottom: 6px; }
	.rvcp-bas a { padding: 2px 0; }
}
/* Liens du bas du menu : icônes alignées sur celles du menu */
.rvcp-liens { list-style: none; margin: 4px auto 0; padding: 0; width: 212px; display: grid; gap: 0; text-align: left; }
.rvcp-liens a { display: grid !important; grid-template-columns: 18px auto auto; justify-content: start; align-items: center; gap: 12px; padding: 5px 6px 5px 10px !important; color: var(--or-f) !important; font-size: 12.5px !important; text-decoration: none !important; letter-spacing: 0 !important; }
.rvcp-liens a .rvcp-mi { stroke: var(--or); }
.rvcp-liens a:hover { color: var(--sauge) !important; }
.rvcp-liens a:hover .rvcp-mi { stroke: var(--sauge); }
.rvcp-liens a .rvcp-fl { margin-left: 0; width: 0; opacity: 0; transition: width .35s cubic-bezier(.2,.8,.2,1), opacity .25s; }
.rvcp-liens a:hover .rvcp-fl { width: 18px; opacity: 1; }
.rvcp-li-sortir { margin-top: 6px; padding-top: 6px; border-top: 1px solid rgba(214,174,123,.25); }
.rvcp-liens a.rvcp-sortir { color: #9a9187 !important; text-decoration: none !important; }
.rvcp-liens a.rvcp-sortir .rvcp-mi { stroke: #b3aa9e; }
@media (min-width: 901px) {
	.rvcp-cote { scrollbar-width: thin; scrollbar-color: var(--or) transparent; }
	
	.rvcp-cote::-webkit-scrollbar { width: 6px; } .rvcp-cote::-webkit-scrollbar-thumb { background: var(--or); border-radius: 6px; }
}

@media (min-width: 901px) {
	.rvcp-liens a { padding-top: 3px !important; padding-bottom: 3px !important; }
	.rvcp-li-sortir { margin-top: 4px; padding-top: 4px; }
	.rvcp-bas a.rvcp-reserver { margin-bottom: 6px; }
}
/* Liens du bas : jamais sur deux lignes, la flèche apparaît sans rien déplacer */
.rvcp-liens a { grid-template-columns: 18px max-content 0; gap: 12px; }
.rvcp-liens a > span:not(.rvcp-fl) { white-space: nowrap; }
.rvcp-liens a .rvcp-fl { justify-self: start; margin-left: -4px; }
/* Bouton « Réserver une séance » : icône de calendrier et reflet de lumière au survol */
.rvge .rvcp-bas a.rvcp-reserver { position: relative; overflow: hidden; gap: 9px; isolation: isolate; }
.rvcp-cal { width: 15px; height: 15px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.rvge .rvcp-bas a.rvcp-reserver::after { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: -60%; width: 45%; background: linear-gradient(105deg, transparent, rgba(255,255,255,.38), transparent); transform: skewX(-18deg); transition: left .7s ease; pointer-events: none; }
.rvge .rvcp-bas a.rvcp-reserver:hover::after { left: 120%; }
@media (prefers-reduced-motion: reduce) { .rvge .rvcp-bas a.rvcp-reserver::after { display: none; } }
/* Mes avantages : une icône par avantage, et les liens alignés en bas */
.rvcp-av-it { display: flex; flex-direction: column; align-items: flex-start; }
.rvcp-av-ico { display: grid; place-items: center; width: 34px; height: 42px; margin-bottom: 10px; border: 1px solid rgba(214,174,123,.55); border-radius: 17px 17px 0 0; }
.rvcp-av-ico .rvcp-mi { width: 17px; height: 17px; stroke: var(--or); }
.rvcp-av-it .rvcp-av-txt { display: block; margin-bottom: 10px; text-wrap: balance; }
.rvcp-av-it > a, .rvcp-av-it > button, .rvcp-av-it > .rvcp-fait { margin-top: auto; }
.rvcp-avantages { align-items: stretch; }
/* Liens du bas du menu : sans flèche; au survol, le texte passe au vert et l'icône se soulève */
.rvcp-liens a .rvcp-fl { display: none; }
.rvcp-liens a { grid-template-columns: 18px max-content; }
.rvcp-liens a .rvcp-mi { transition: stroke .3s, transform .35s cubic-bezier(.2,.8,.2,1); }
.rvcp-liens a:hover .rvcp-mi { transform: translateY(-1px); }
.rvcp-liens a > span { background: linear-gradient(var(--or), var(--or)) left bottom / 0 1px no-repeat; transition: background-size .4s cubic-bezier(.2,.8,.2,1); padding-bottom: 1px; }
.rvcp-liens a:hover > span { background-size: 100% 1px; }
.rvcp-avantages .rvcp-av-it > .rvcp-av-ico { display: grid; place-items: center; margin: 0 0 12px; }
.rvge .rvcp-bas a.rvcp-reserver { white-space: nowrap; font-size: 11px !important; letter-spacing: .12em !important; padding: 12px 18px !important; justify-self: stretch; }
/* Liens du bas : espacement régulier */
.rvcp-liens { gap: 4px; margin-top: 10px; }
.rvcp-liens a { padding-top: 5px !important; padding-bottom: 5px !important; }
.rvcp-li-sortir { margin-top: 8px; padding-top: 10px; }
@media (min-width: 901px) and (max-height: 820px) { .rvcp-liens { gap: 0; } }
/* Plus d'air, sans déborder sur un écran standard */
@media (min-width: 901px) {
	.rvcp-menu-a a { padding-top: 9px; padding-bottom: 9px; }
	.rvcp-qui { padding-bottom: 12px; margin-bottom: 8px; }
	.rvcp-bas { margin-top: 12px; padding-top: 16px; }
	.rvcp-liens { gap: 3px; }
}
@media (min-width: 901px) and (max-height: 820px) { .rvcp-menu-a a { padding-top: 7px; padding-bottom: 7px; } }
/* Mes avantages : colonnes centrées, arche dorée plus grande; au survol, bordure dorée et intérieur vert lumineux */
@media (min-width: 901px) {
	.rvcp-avantages .rvcp-av-it { align-items: center; text-align: center; }
	.rvcp-avantages .rvcp-av-tete { text-align: center; align-items: center; }
}
.rvcp-avantages .rvcp-av-it > .rvcp-av-ico { width: 46px; height: 58px; border-radius: 23px 23px 0 0; border: 1px solid var(--or); background: linear-gradient(160deg, #E4C496, var(--or) 55%, #C79B62); box-shadow: inset 0 1px 0 rgba(255,255,255,.35); transition: background .4s, box-shadow .4s, transform .4s cubic-bezier(.2,.8,.2,1); }
.rvcp-avantages .rvcp-av-ico .rvcp-mi { width: 23px; height: 23px; stroke: var(--sauge); stroke-width: 1.5; transition: stroke .4s; }
.rvcp-avantages .rvcp-av-it:hover > .rvcp-av-ico { background: radial-gradient(120% 90% at 50% 15%, #5c7a5c, #3f553f 55%, #2c3b2d); box-shadow: inset 0 0 0 1px rgba(214,174,123,.45), 0 6px 18px rgba(0,0,0,.18); transform: translateY(-2px); }
.rvcp-avantages .rvcp-av-it:hover > .rvcp-av-ico .rvcp-mi { stroke: var(--or); }
@media (prefers-reduced-motion: reduce) { .rvcp-avantages .rvcp-av-it > .rvcp-av-ico { transition: none; } }
/* Recadrage d'une photo (déplacer, zoomer) */
.rvcp-crop { position: fixed; inset: 0; z-index: 100002; display: grid; place-items: center; padding: 16px; background: rgba(28,32,28,.66); font-family: Montserrat, sans-serif; }
.rvcp-crop-boite { width: min(420px, 100%); background: var(--creme, #FAF6F0); border-radius: 4px; padding: 26px 22px 20px; text-align: center; }
.rvcp-crop-boite h2 { margin: 0 0 4px; font: 500 28px/1.1 "Cormorant Garamond", Georgia, serif; color: #354535; }
.rvcp-crop-zone { position: relative; width: 320px; max-width: 100%; height: 320px; margin: 16px auto 12px; overflow: hidden; background: #2b2b2b; touch-action: none; cursor: grab; border-radius: 4px; }
.rvcp-crop-zone:active { cursor: grabbing; }
.rvcp-crop-zone img { position: absolute; left: 50%; top: 50%; max-width: none !important; user-select: none; -webkit-user-drag: none; pointer-events: none; }
.rvcp-crop-masque { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 0 999px rgba(250,246,240,.78); outline: 1px solid #D6AE7B; pointer-events: none; }
.rvcp-crop-masque.rond { border-radius: 50%; }
.rvcp-crop-masque.arche { border-radius: 110px 110px 0 0; }
.rvcp-crop-zoom { display: flex; align-items: center; gap: 12px; max-width: 280px; margin: 0 auto 14px; color: #A8834F; font-size: 18px; }
.rvcp-crop-zoom input { flex: 1; accent-color: #354535; }
.rvge button.rvcp-crop-non, .rvcp-crop .rvcp-crop-non { background: none !important; border: 0 !important; padding: 0 !important; color: #354535; text-decoration: underline; text-decoration-color: #D6AE7B; text-underline-offset: 4px; cursor: pointer; font: 400 13px Montserrat, sans-serif; }
.rvcp-crop .rvge-bouton { display: inline-flex; padding: 13px 24px; border-radius: 999px; border: 1px solid #354535; background: #354535; color: #FBF8F1; font: 600 11.5px/1.2 Montserrat, sans-serif; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: background .3s, border-color .3s, color .3s; }
.rvcp-crop .rvge-bouton:hover { background: #D6AE7B; border-color: #D6AE7B; color: #2F2A24; }
.rvcp-crop .rvcp-gestes { gap: 22px; }
/* Date en trois menus (jour, mois, année) */
.rvcp-f-ligne { grid-template-columns: 78px minmax(0, 1.1fr) minmax(0, .8fr) minmax(0, 1.7fr) 74px; }
.rvcp-f-ligne .f-date { display: grid; gap: 4px; min-width: 0; }
.rvcp-f-ligne .f-date > span { font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sauge); }
.f-date-3 { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.1fr) minmax(0, 1fr); gap: 6px; }
.f-date-3 select { -webkit-appearance: none; appearance: none; width: 100%; min-width: 0; padding: 9px 22px 9px 9px; border: 1px solid #E6DDCF; border-radius: 0; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23A8834F' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 8px center; font: 400 13.5px/1.3 "Montserrat", sans-serif; color: var(--encre); cursor: pointer; }
.f-date-3 select:focus { outline: 2px solid #EACDA3; border-color: var(--or); }
/* Menus déroulants : aux couleurs du site, jamais de bleu (navigateurs récents) */
@supports (appearance: base-select) {
	.rvcp select, .rvcp select::picker(select) { appearance: base-select; }
	.rvcp select::picker-icon { display: none; }
	.rvcp select::picker(select) { border: 1px solid rgba(214,174,123,.55); background: #fff; padding: 4px 0; box-shadow: 0 10px 30px rgba(47,42,36,.14); max-height: 320px; }
	.rvcp select option { padding: 8px 14px; font: 400 13.5px/1.3 "Montserrat", sans-serif; color: var(--encre); background: #fff; }
	.rvcp select option:hover, .rvcp select option:focus-visible { background: #FBF8F3; color: var(--sauge); outline: none; }
	.rvcp select option:checked { background: #F3EDE3; color: var(--sauge); font-weight: 500; }
	.rvcp select option::checkmark { color: var(--or-f); }
	.rvcp select selectedcontent { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
.rvcp option:checked { background: #F3EDE3; color: var(--sauge); }
.rvcp-r-aucun { margin: 4px 0 0 !important; }
@media (max-width: 900px) { .rvcp-f-ligne { grid-template-columns: 64px minmax(0, 1fr); } .rvcp-f-ligne .f-date { grid-column: 1 / -1; } }
/* Envies : puces à cocher */
.rvcp-envies { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid #f0e8dc; }
.rvcp-envies-t { margin: 0 0 8px; font-size: 13px; font-weight: 500; color: var(--encre); }
.rvcp-puces { display: flex; flex-wrap: wrap; gap: 8px; }
.rvcp-puce { position: relative; cursor: pointer; }
.rvcp-puce input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rvcp-puce span { display: inline-block; padding: 7px 14px; border: 1px solid rgba(214,174,123,.6); border-radius: 999px; background: #fff; font-size: 12.5px; color: var(--texte); transition: background .25s, color .25s, border-color .25s; }
.rvcp-puce:hover span { border-color: var(--or); color: var(--sauge); }
.rvcp-puce input:checked + span { background: var(--sauge); border-color: var(--sauge); color: #F6F2E9; }
.rvcp-puce input:checked + span::before { content: "✓ "; color: var(--or); }
.rvcp-puce input:focus-visible + span { outline: 2px solid var(--or); outline-offset: 2px; }
/* Mes avantages : descriptions sur deux lignes chacune; survol : fond transparent, bordure et icône dorées */
.rvcp-avantages .rvcp-av-it .rvcp-av-txt { max-width: 36ch; min-height: calc(2 * 1.55em); }
.rvcp-avantages .rvcp-av-it:hover > .rvcp-av-ico { background: transparent; box-shadow: none; border-color: var(--or); }
.rvcp-avantages .rvcp-av-it:hover > .rvcp-av-ico .rvcp-mi { stroke: var(--or); }
/* Image du compte un peu plus grande dans le menu (une photo se voit bien) */
@media (min-width: 901px) {
	.rvge .rvcp-qui button.rvcp-av { width: 64px; height: 80px; border-radius: 32px 32px 0 0 !important; font-size: 30px !important; }
}
@media (min-width: 901px) and (max-height: 820px) {
	.rvge .rvcp-qui button.rvcp-av { width: 54px; height: 68px; border-radius: 27px 27px 0 0 !important; font-size: 26px !important; }
}
/* Monogramme « Doré » : même dégradé que les icônes des avantages; « Double filet » : lettre droite */
.rvge .rvcp-av.rvcp-av-m3 { background: linear-gradient(160deg, #E2C192, var(--or) 55%, #C99D64) border-box !important; border-color: transparent !important; color: var(--sauge) !important; box-shadow: none !important; } /* dégradé jusqu'au bord : plus de liseré clair en haut */
.rvge .rvcp-av.rvcp-av-m4 { font-style: normal !important; color: var(--sauge) !important; }
.rvcp-choix-tele { margin: 12px 0 0; }
.rvcp-choix-tele[hidden] { display: none; }
.rvcp-avantages .rvcp-av-it:hover > .rvcp-av-ico { transform: none; } /* au survol : seulement le changement de couleur */
/* Menu : le texte ne s'élargit plus au survol (seulement la couleur et le soulignement) */
.rvcp-menu a:hover .t, .rvcp-menu a:focus-visible .t, .rvcp-bas a:hover, .rvge .rvcp-bas a.rvcp-reserver:hover { letter-spacing: inherit; }
.rvcp-menu a .t { transition: none; }
.rvge .rvcp-bas a.rvcp-reserver:hover { letter-spacing: .12em !important; }
/* Reflet de lumière au survol aussi sur les boutons principaux de « En ce moment » */
.rvge .rvcp-moment .rvge-bouton { position: relative; overflow: hidden; isolation: isolate; }
.rvge .rvcp-moment .rvge-bouton::after { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: -60%; width: 45%; background: linear-gradient(105deg, transparent, rgba(255,255,255,.38), transparent); transform: skewX(-18deg); transition: left .7s ease; pointer-events: none; }
.rvge .rvcp-moment .rvge-bouton:hover::after { left: 120%; }
@media (prefers-reduced-motion: reduce) { .rvge .rvcp-moment .rvge-bouton::after { display: none; } }
.rvge .rvcp-bas a.rvcp-reserver { padding-top: 13px !important; padding-bottom: 13px !important; line-height: 1.2 !important; } /* même hauteur que les autres boutons du site */
.rvge .rvcp-bas a.rvcp-reserver { line-height: 17px !important; padding-top: 14px !important; padding-bottom: 14px !important; } /* 45 px de haut, comme les autres boutons */
/* Rappel séance famille : case + fréquence */
.rvcp-r-famille { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px 14px; }
.rvcp-r-famille > label { display: flex; gap: 10px; align-items: flex-start; flex: 1 1 260px; cursor: pointer; }
.rvcp-r-famille > label input { width: 17px; height: 17px; margin: 1px 0 0; flex: none; accent-color: var(--sauge); }
.rvcp-freq { padding: 7px 28px 7px 10px; border: 1px solid #E6DDCF; border-radius: 0; -webkit-appearance: none; appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23A8834F' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 10px center; font: 400 13px/1.3 "Montserrat", sans-serif; color: var(--encre); cursor: pointer; }
.rvcp-r-minis { margin: 2px 0 0 27px !important; }
/* Partager mon espace */
.rvcp-partage { margin-top: 18px; padding-top: 14px; border-top: 1px solid #f0e8dc; }
.rvcp-partage .rvcp-petit { margin: 0 0 10px; }
.rvcp-partage button.rvge-lien { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; font-size: 12.5px; }
.rvcp-p-form { max-width: 460px; }
/* Mes envies */
.rvcp-bloc-envies { grid-column: 1 / -1; }
.rvcp-env-txt { display: grid; gap: 6px; }
.rvcp-env-txt input, .rvcp-env-txt textarea { width: 100%; padding: 10px 12px; border: 1px solid #E6DDCF; border-radius: 0; background: var(--creme); font: 400 14px/1.5 "Montserrat", sans-serif; color: var(--encre); }
.rvcp-env-txt input:focus, .rvcp-env-txt textarea:focus { outline: 2px solid #EACDA3; border-color: var(--or); background: #fff; }
.rvcp-bloc-envies .rvge-bouton:disabled { opacity: 1; background: transparent; color: var(--sauge) !important; border-color: var(--or); cursor: default; }
/* Nom affiché */
.rvcp-nom-aff .rvcp-puces { margin: 4px 0 8px; }
.rvcp-nom-aff .rvcp-puce input { position: absolute; opacity: 0; }
.rvcp-nom-libre { max-width: 320px; margin-bottom: 6px; }
.rvcp-nom-libre[hidden] { display: none; }
#preferences:has(+ #envies) { grid-column: 1 / -1; }
.rvcp-deux > .rvcp-bloc-envies { grid-column: 1 / -1; }
.rvcp-r-famille .rvcp-freq { width: auto; flex: none; margin-left: 27px; }

/* 1.11.75 — rappels : espacements */
.rvcp-f-choix { gap: 0; margin-top: 12px; }
.rvcp-f-choix > * { padding: 12px 0; border-top: 1px solid #efe7da; }
.rvcp-f-choix > *:first-child { border-top: 0; padding-top: 4px; }
.rvcp-f-choix > [hidden] { display: none !important; }
.rvcp-case-r b { margin-bottom: 4px; line-height: 1.35; }
.rvcp-case-r small { line-height: 1.55; }
.rvcp-r-famille { gap: 10px 14px; }
.rvcp-r-famille > label { flex-basis: 100%; }
.rvcp-r-famille .rvcp-freq { margin: 2px 0 0 27px; min-width: 170px; }
.rvcp-r-minis { margin: 0 !important; padding-left: 27px !important; line-height: 1.55 !important; }
.rvcp-r-aucun { margin: 0 !important; line-height: 1.55 !important; }

/* 1.11.75 — harmonisation espacements */
.rvcp-pref b, .rvcp-f-rappels .rvcp-pref b { margin-bottom: 3px; line-height: 1.35; }
.rvcp-ligne h3 { margin: 8px 0 6px; }
.rvcp-ligne .rvcp-meta + .rvcp-meta { margin-top: 2px; }
.rvcp-ligne .rvcp-liste { margin-top: 10px; }
.rvcp-p-form input, .rvcp-p-form input::placeholder { text-transform: none !important; letter-spacing: normal !important; }
#profil .rvcp-bloc { max-width: none; }
.rvcp-pref-mini { margin-top: 12px; padding-top: 16px; }
[data-envie="themes"] .rvcp-puces { padding-bottom: 14px; }
.rvcp-voir-plus { text-align: center; margin: 18px 0 0; }
.rvcp-lien-plus { all: unset; cursor: pointer; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--encre, #354535); padding: 6px 2px; border-bottom: 1px solid #D6AE7B; transition: color .25s, border-color .25s; }
.rvcp-lien-plus:hover, .rvcp-lien-plus:focus-visible { color: #A8834F; border-color: #A8834F; }
.rvcp-apparait { animation: rvcpApp .5s cubic-bezier(.2,.7,.2,1) both; }
@keyframes rvcpApp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.rvcp-f-prochain { padding-left: 52px; margin-top: 4px !important; }
@media (max-width: 900px) { .rvcp-f-prochain { padding-left: 0; } }
.rvcp-voir-plus button.rvcp-lien-plus { background: none !important; border: 0 !important; border-bottom: 1px solid #D6AE7B !important; border-radius: 0 !important; box-shadow: none !important; padding: 6px 2px !important; font-size: 11.5px !important; letter-spacing: .14em !important; color: #354535 !important; min-height: 0 !important; }
.rvcp-voir-plus button.rvcp-lien-plus:hover { color: #A8834F !important; border-bottom-color: #A8834F !important; background: none !important; }
.rvcp-bloc .rvcp-note { max-width: none !important; text-wrap: pretty; }
@media (max-width: 600px) {
	.rvcp-p-form { display: flex !important; flex-direction: column; align-items: stretch; gap: 10px; max-width: none; }
	.rvcp-p-form input { width: 100% !important; flex: none !important; }
	.rvcp-f-ligne input[class^="f-"], .rvcp-f-ligne .f-prenom { width: 100%; }
}

/* 1.11.78 — prochaine séance, réservations en cours, avis, listes d'attente, reçus et factures */
.rvcp-resas { display: grid; gap: 12px; margin: 0 0 18px; }
.rvcp-prochaine { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 26px; align-items: center; background: #fff; border: 1px solid rgba(214,174,123,.45); border-radius: 4px; padding: 24px 28px; position: relative; overflow: hidden; }
.rvcp-prochaine::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(#D6AE7B, #A8834F); }
.rvcp-cal-date { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; width: 104px; height: 118px; border-radius: 52px 52px 4px 4px; background: linear-gradient(180deg, #354535, #2a3a2a); color: #FBF8F3; box-shadow: inset 0 0 0 1px rgba(214,174,123,.55), inset 0 0 0 5px #354535, inset 0 0 0 6px rgba(214,174,123,.35); }
.rvcp-cal-date span { font: 600 10.5px/1 "Montserrat", sans-serif; letter-spacing: .22em; text-transform: uppercase; color: #D6AE7B; margin-top: 10px; }
.rvcp-cal-date b { font: 500 46px/1 "Cormorant Garamond", Georgia, serif; margin: 4px 0 2px; }
.rvcp-cal-date small { font: 400 11px/1 "Montserrat", sans-serif; letter-spacing: .06em; color: #E4E8E1; }
.rvcp-prochaine h2 { margin: 2px 0 4px; font: 500 28px/1.15 "Cormorant Garamond", Georgia, serif; color: var(--sauge, #354535); }
.rvcp-prochaine .rvcp-surt { margin: 0; }
.rvcp-prochaine .rvcp-meta { margin: 0 0 14px; }
.rvcp-prochaine .rvcp-gestes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin: 0; }
.rvcp-agenda { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; font-size: 13px; color: #6B6257; }
.rvcp-agenda-t { white-space: nowrap; }
.rvcp-resa-c { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "etat gestes" "txt gestes"; gap: 6px 20px; align-items: center; background: #FBF8F3; border: 1px solid rgba(214,174,123,.4); border-radius: 4px; padding: 16px 22px; }
.rvcp-resa-c .rvcp-etat { grid-area: etat; justify-self: start; }
.rvcp-resa-c p { grid-area: txt; margin: 0; font-size: 14px; line-height: 1.55; }
.rvcp-resa-c > a { grid-area: gestes; }
.rvcp-avis { margin: 22px auto 0; max-width: 560px; padding: 16px 20px; border: 1px solid rgba(214,174,123,.45); border-radius: 4px; background: #FBF8F3; text-align: center; transition: opacity .45s, transform .45s; }
.rvcp-avis p { margin: 0; font-size: 13.5px; line-height: 1.6; color: #4a4339; text-wrap: pretty; }
.rvcp-avis b { color: var(--encre, #2F2A24); font-weight: 600; }
.rvcp-avis-gestes { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 18px; margin-top: 12px !important; }
.rvcp-avis-fait, .rvcp-attente-retirer { background: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; font: 400 13px/1.4 "Montserrat", sans-serif !important; color: var(--sauge, #354535) !important; text-decoration: underline !important; text-decoration-color: var(--or, #D6AE7B) !important; text-underline-offset: 4px !important; letter-spacing: 0 !important; text-transform: none !important; cursor: pointer; box-shadow: none !important; min-height: 0 !important; height: auto !important; }
.rvcp-avis-fait:hover, .rvcp-attente-retirer:hover { color: var(--or-f, #A8834F) !important; }
.rvcp-part { opacity: 0; transform: translateY(-6px); }
.rvcp-attentes { display: grid; gap: 10px; margin: 0 0 14px; }
.rvcp-attente { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 20px; align-items: center; background: #fff; border: 1px dashed rgba(214,174,123,.7); border-radius: 4px; padding: 16px 22px; transition: opacity .45s, transform .45s; }
.rvcp-attente .rvcp-etat { justify-self: start; grid-column: 1; }
.rvcp-attente p { margin: 0; font-size: 14px; line-height: 1.55; }
.rvcp-attente-gestes { grid-column: 2; grid-row: 1 / span 2; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.rvcp-docs { background: #fff; border: 1px solid rgba(214,174,123,.38); border-radius: 4px; }
.rvcp-doc { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 20px; border-top: 1px solid #f0e8dc; }
.rvcp-doc:first-child { border-top: 0; }
.rvcp-doc-ico { width: 38px; height: 38px; border-radius: 50%; background: #F6F2E9; display: inline-flex; align-items: center; justify-content: center; }
.rvcp-doc-ico .rvcp-mi { width: 19px; height: 19px; }
.rvcp-doc-corps b { display: block; font-weight: 500; font-size: 14px; color: var(--encre, #2F2A24); line-height: 1.35; margin-bottom: 3px; }
.rvcp-doc-corps span { display: block; font-size: 12.5px; color: #7a7268; }
.rvcp-doc-corps em { font-style: normal; font-weight: 600; }
.rvcp-doc-corps em.ok { color: #4f6b4f; }
.rvcp-doc-corps em.du { color: #A8834F; }
.rvcp-doc-liens { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px 16px; font-size: 13px; }
.rvcp-doc-liens a { white-space: nowrap; }
.rvg-attente { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 12px; }
.rvg-attente label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #354535; }
.rvg-attente input { padding: 10px 12px; border: 1px solid #E6DDCF; background: #fff; font: 400 14px "Montserrat", sans-serif; }
.rvg-attente-ok { flex-basis: 100%; margin: 0 0 4px; color: #354535; font-weight: 500; }
@media (max-width: 700px) {
	.rvcp-prochaine { grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 22px 18px; gap: 14px; }
	.rvcp-prochaine .rvcp-gestes { justify-content: center; flex-direction: column; }
	.rvcp-agenda { justify-content: center; }
	.rvcp-resa-c, .rvcp-attente { grid-template-columns: 1fr; grid-template-areas: "etat" "txt" "gestes"; padding: 16px; }
	.rvcp-attente-gestes { grid-column: 1; grid-row: auto; align-items: flex-start; }
	.rvcp-doc { grid-template-columns: 34px minmax(0, 1fr); padding: 14px 16px; }
	.rvcp-doc-liens { grid-column: 2; justify-content: flex-start; }
}
.rvcp-resa-c .rvcp-petit, .rvcp-attente .rvcp-petit { max-width: none !important; }
@media (max-width: 700px) {
	.rvcp-prochaine .rvcp-dans { display: block; margin-top: 3px; }
	.rvcp-prochaine .rvcp-dans i { display: none; }
	.rvcp-agenda { flex-direction: column; align-items: center; gap: 6px; }
	.rvcp-agenda > a + a { margin-top: 0; }
	.rvcp-resa-c > a, .rvcp-attente-gestes .rvge-bouton { justify-self: stretch; text-align: center; }
}

.rvcp-dans i { font-style: normal; }

/* 1.11.79 — suivi des commandes, diaporama, partage, écran d'accueil */
.rvcp-frise-cmd { margin: 10px 0 12px !important; max-width: 520px; }
.rvcp-ligne .rvcp-frise-cmd li { font-size: 11px; }
.rvcp-diapo { position: fixed; inset: 0; z-index: 100000; background: #1c221c; color: #FBF8F3; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.rvcp-diapo[hidden] { display: none; }
html.rvcp-diapo-ouvert { overflow: hidden; }
.rvcp-diapo-sc { position: relative; width: min(92vw, 1400px); height: min(78vh, 980px); }
.rvcp-diapo-sc img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: 0; transform: scale(1.025); transition: opacity 1.4s ease, transform 6.5s ease-out; }
.rvcp-diapo-sc img.on { opacity: 1; transform: scale(1); }
.rvcp-diapo-t { margin: 18px 0 6px; font: 500 24px/1.2 "Cormorant Garamond", Georgia, serif; color: #FBF8F3; letter-spacing: .02em; }
.rvcp-diapo-c { display: flex; align-items: center; gap: 14px; }
.rvcp-diapo-c button, .rvcp-diapo-x { all: unset; box-sizing: border-box; cursor: pointer; width: 42px; height: 42px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(214,174,123,.55); color: #D6AE7B; transition: background .25s, color .25s; }
.rvcp-diapo-c button:hover, .rvcp-diapo-c button:focus-visible, .rvcp-diapo-x:hover, .rvcp-diapo-x:focus-visible { background: #D6AE7B; color: #1c221c; }
.rvcp-diapo-c svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.rvcp-diapo-c .il { fill: currentColor; stroke: none; }
.rvcp-diapo-c .nb { min-width: 64px; text-align: center; font: 500 12px "Montserrat", sans-serif; letter-spacing: .12em; color: #cfc7b8; }
.rvcp-diapo-x { position: absolute; top: 18px; right: 18px; font: 300 26px/1 "Montserrat", sans-serif; }
@media (prefers-reduced-motion: reduce) { .rvcp-diapo-sc img { transition: opacity .3s; transform: none !important; } }
.rvcp-installer { display: grid; gap: 10px; margin-top: 14px; padding: 14px 16px; border: 1px solid rgba(214,174,123,.45); border-radius: 4px; background: #FBF8F3; }
.rvcp-installer[hidden] { display: none; }
.rvcp-installer p { margin: 0; }
.rvcp-installer b { display: block; font-weight: 500; color: var(--encre, #2F2A24); margin-bottom: 3px; }
.rvcp-installer-btn { justify-self: start; }
.rvcp-diapo .rvcp-diapo-x, .rvcp-diapo .rvcp-diapo-c button { background: transparent !important; border: 1px solid rgba(214,174,123,.55) !important; border-radius: 50% !important; color: #D6AE7B !important; padding: 0 !important; width: 42px !important; height: 42px !important; min-height: 0 !important; box-shadow: none !important; }
.rvcp-diapo .rvcp-diapo-x:hover, .rvcp-diapo .rvcp-diapo-c button:hover, .rvcp-diapo .rvcp-diapo-x:focus-visible, .rvcp-diapo .rvcp-diapo-c button:focus-visible { background: #D6AE7B !important; color: #1c221c !important; }
.rvcp-menu-a { width: 224px; }

/* 1.11.82 — palettes de couleurs (Mes envies) */
.rvcp-puce-pal span { display: inline-flex; align-items: center; gap: 9px; padding: 6px 14px 6px 7px; }
.rvcp-pal { display: inline-flex; flex: none; }
.rvcp-pal b { width: 16px; height: 16px; border-radius: 50%; box-shadow: 0 0 0 1.5px #fff, 0 0 0 2.5px rgba(168,131,79,.28); }
.rvcp-pal b + b { margin-left: -4px; }
.rvcp-puce-pal input:checked + span { background: var(--sauge); }
.rvcp-puce-pal input:checked + span::before { content: none; }
.rvcp-puce-pal input:checked + span .rvcp-pal b { box-shadow: 0 0 0 1.5px var(--sauge), 0 0 0 2.5px rgba(214,174,123,.6); }
.rvcp-puce-pal input:checked + span::after { content: "✓"; color: var(--or); margin-left: 2px; }

/* 1.11.84 — documents de la séance, inspirations, frise des années, fidélité, témoignage */
.rvcp-docs-s { margin: 16px 0 0; border-top: 1px solid #efe7da; padding-top: 12px; }
.rvcp-docs-s summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--encre, #354535); }
.rvcp-docs-s summary::-webkit-details-marker { display: none; }
.rvcp-docs-s summary::after { content: ""; width: 7px; height: 7px; border-right: 1.5px solid #A8834F; border-bottom: 1.5px solid #A8834F; transform: rotate(45deg) translateY(-2px); transition: transform .3s; margin-left: 2px; }
.rvcp-docs-s[open] summary::after { transform: rotate(-135deg) translateY(-1px); }
.rvcp-docs-s summary i { font-style: normal; font-size: 10.5px; letter-spacing: 0; background: #F6F2E9; padding: 1px 8px; border-radius: 10px; }
.rvcp-docs-s ul { list-style: none; margin: 10px 0 0; padding: 0; }
.rvcp-docs-s li { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 9px 0; border-top: 1px solid #f3ece0; text-align: left; }
.rvcp-docs-s li:first-child { border-top: 0; }
.rvcp-docs-s .rvcp-mi { width: 19px; height: 19px; }
.rvcp-docs-s-t b { display: block; font-weight: 500; font-size: 13.5px; color: var(--encre, #2F2A24); }
.rvcp-docs-s-t small { display: block; font-size: 12px; color: #7a7268; }
.rvcp-docs-s-g { display: flex; gap: 14px; font-size: 13px; white-space: nowrap; }
.rvcp-docs-s-g button.rvge-lien { background: none !important; border: 0 !important; border-bottom: 1px solid rgba(214,174,123,.8) !important; border-radius: 0 !important; padding: 0 0 1px !important; font: inherit !important; color: var(--sauge, #354535) !important; text-decoration: none !important; letter-spacing: 0 !important; text-transform: none !important; cursor: pointer; min-height: 0 !important; box-shadow: none !important; }
.rvcp-resa-docs { grid-column: 1 / -1; }
.rvcp-inspi-l { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 10px; margin-top: 8px; }
.rvcp-inspi-l figure { position: relative; margin: 0; aspect-ratio: 4 / 5; border-radius: 3px; overflow: hidden; background: #F2EADF; outline: 1px solid rgba(214,174,123,.35); }
.rvcp-inspi-l figure.envoi { opacity: .5; }
.rvcp-inspi-l img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rvcp-inspi-x { position: absolute; top: 6px; right: 6px; width: 26px !important; height: 26px !important; min-height: 0 !important; padding: 0 !important; border-radius: 50% !important; border: 0 !important; background: rgba(255,255,255,.92) !important; color: #354535 !important; font: 400 18px/26px "Montserrat", sans-serif !important; cursor: pointer; box-shadow: 0 2px 6px rgba(0,0,0,.15) !important; }
.rvcp-inspi-ajout { aspect-ratio: 4 / 5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 1px dashed rgba(168,131,79,.7); border-radius: 3px; cursor: pointer; color: #A8834F; background: #FBF8F3; transition: background .25s; }
.rvcp-inspi-ajout:hover { background: #F6F0E4; }
.rvcp-inspi-ajout[hidden] { display: none; }
.rvcp-inspi-ajout span { font: 300 30px/1 "Montserrat", sans-serif; }
.rvcp-inspi-ajout em { font-style: normal; font-size: 12px; text-align: center; padding: 0 8px; }
.rvcp-inspi .rvcp-envies-t small { font-weight: 400; color: #8a8178; }
.rvcp-annees { margin: 18px 0 0; background: #fff; border: 1px solid rgba(214,174,123,.38); border-radius: 4px; padding: 22px 24px 20px; }
.rvcp-annees-tete { display: flex; align-items: baseline; gap: 14px; margin-bottom: 14px; }
.rvcp-annees-tete .rvcp-surt { margin: 0; }
.rvcp-annees-tete h2 { margin: 0; font: 500 26px/1.2 "Cormorant Garamond", Georgia, serif; color: var(--sauge, #354535); }
.rvcp-annees-l { list-style: none; margin: 0; padding: 4px 0 6px; display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; position: relative; }
.rvcp-annees-l::before { content: ""; position: absolute; left: 0; right: 0; top: 77px; height: 1px; background: linear-gradient(90deg, transparent, rgba(214,174,123,.7) 6%, rgba(214,174,123,.7) 94%, transparent); z-index: 0; }
.rvcp-annees-l li { flex: none; width: 128px; text-align: center; scroll-snap-align: start; position: relative; z-index: 1; }
.rvcp-annees-l li a { color: inherit; text-decoration: none; display: block; }
.rvcp-annees-ph { display: block; width: 116px; height: 150px; margin: 0 auto 10px; border-radius: 58px 58px 3px 3px; background: #F2EADF center/cover no-repeat; box-shadow: 0 0 0 4px #fff, 0 0 0 5px rgba(214,174,123,.7); }
.rvcp-annees-l b { display: block; font: 500 24px/1.1 "Cormorant Garamond", Georgia, serif; color: var(--encre, #2F2A24); }
.rvcp-annees-l li > span:last-child, .rvcp-annees-l li a > span:last-child { display: block; font-size: 12px; color: #7a7268; margin-top: 2px; }
.rvcp-annees-suite .rvcp-annees-ph { background: #FBF8F3; box-shadow: 0 0 0 4px #fff, 0 0 0 5px rgba(214,174,123,.7); border: 1px dashed rgba(168,131,79,.6); display: flex; align-items: center; justify-content: center; }
.rvcp-annees-suite em { font-style: normal; color: #D6AE7B; font-size: 20px; }
.rvcp-annees-suite a:hover .rvcp-annees-ph { background: #F6F0E4; }
.rvcp-annees-suite a:hover > span:last-child { color: #354535; }
.rvcp-avantages { grid-template-columns: auto repeat(var(--n, 3), minmax(0, 1fr)); }
@media (max-width: 1180px) and (min-width: 701px) { .rvcp-avantages { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .rvcp-avantages { grid-template-columns: minmax(0, 1fr) !important; } }
@media (max-width: 1180px) and (min-width: 701px) { .rvcp-avantages[style*="--n:4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rvcp-fi-pts { display: inline-flex; gap: 5px; margin-left: 8px; vertical-align: middle; }
.rvcp-fi-pts i { width: 8px; height: 8px; border-radius: 50%; border: 1px solid #D6AE7B; }
.rvcp-fi-pts i.ok { background: #D6AE7B; }
.rvcp-temoin { margin: 18px auto 0; max-width: 560px; padding: 16px 20px; border: 1px solid rgba(214,174,123,.45); border-radius: 4px; background: #fff; text-align: center; transition: opacity .45s, transform .45s; }
.rvcp-temoin[hidden] { display: none; }
.rvcp-temoin p { margin: 0; font-size: 13.5px; line-height: 1.6; color: #4a4339; }
.rvcp-temoin b { color: var(--encre, #2F2A24); font-weight: 600; }
.rvcp-temoin-gestes { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 18px; margin-top: 12px !important; }
.rvcp-temoin-gestes[hidden] { display: none; }
.rvcp-temoin-non { background: none !important; border: 0 !important; border-bottom: 1px solid rgba(168,131,79,.5) !important; border-radius: 0 !important; padding: 2px 0 !important; font: 500 12.5px/1.4 "Montserrat", sans-serif !important; color: #6B6257 !important; letter-spacing: 0 !important; text-transform: none !important; cursor: pointer; box-shadow: none !important; min-height: 0 !important; }
.rvcp-temoin-f { margin-top: 12px; text-align: left; }
.rvcp-temoin-f[hidden] { display: none; }
.rvcp-etoiles { display: flex; justify-content: center; flex-direction: row-reverse; gap: 4px; margin-bottom: 10px; }
.rvcp-etoiles label { cursor: pointer; position: relative; }
.rvcp-etoiles input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rvcp-etoiles span { font-size: 26px; color: #e3d6c3; transition: color .2s; }
.rvcp-etoiles input:checked ~ span, .rvcp-etoiles label:has(input:checked) ~ label span, .rvcp-etoiles label:hover span, .rvcp-etoiles label:hover ~ label span { color: #D6AE7B; }
.rvcp-temoin-l textarea { width: 100%; box-sizing: border-box; padding: 11px 13px; border: 1px solid #E6DDCF; background: #FBF8F3; font: 400 14px/1.6 "Montserrat", sans-serif; color: #2F2A24; resize: vertical; }
.rvcp-temoin-bas { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 10px; }
.rvcp-temoin-p { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #354535; }
.rvcp-temoin-p input { width: 140px; padding: 8px 10px; border: 1px solid #E6DDCF; background: #FBF8F3; font: 400 14px "Montserrat", sans-serif; text-transform: none; letter-spacing: 0; }
.rvcp-temoin-bas .rvcp-case { font-size: 12.5px; }
.rvcp-temoin-merci { font-size: 14px !important; }
@media (max-width: 700px) {
	.rvcp-docs-s li { grid-template-columns: 20px minmax(0, 1fr); }
	.rvcp-docs-s-g { grid-column: 2; }
	.rvcp-annees { padding: 18px 16px; }
	.rvcp-annees-tete { flex-direction: column; gap: 2px; }
}
.rvcp-prochaine { align-items: start; } .rvcp-prochaine .rvcp-cal-date { margin-top: 4px; }
@media (max-width: 1400px) and (min-width: 1181px) {
	.rvcp-avantages[style*="--n:4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.rvcp-avantages[style*="--n:4"] .rvcp-av-tete { grid-column: 1 / -1; flex-direction: row !important; align-items: baseline; gap: 14px; padding-bottom: 0 !important; justify-content: flex-start !important; }
	.rvcp-avantages[style*="--n:4"] .rvcp-av-it:nth-child(2) { border-left: 0 !important; }
}
.rvcp-puce-br { flex-basis: 100%; height: 0; } @media (max-width: 600px) { .rvcp-puce-br { display: none; } }
/* Palettes : 12 choix, 2 rangées de 6 */
[data-env="palettes"] .rvcp-puces { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
[data-env="palettes"] .rvcp-puce span { width: 100%; box-sizing: border-box; }
[data-env="palettes"] .rvcp-puce-br { display: none; }
@media (max-width: 1100px) { [data-env="palettes"] .rvcp-puces { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { [data-env="palettes"] .rvcp-puces { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
[data-env="palettes"] .rvcp-puce-pal span { flex-direction: column; justify-content: center; gap: 7px; padding: 12px 8px 10px; border-radius: 10px; text-align: center; white-space: nowrap; height: 100%; }
[data-env="palettes"] .rvcp-pal b { width: 20px; height: 20px; }
[data-env="palettes"] .rvcp-pal b + b { margin-left: -5px; }
[data-env="palettes"] .rvcp-puce-pal input:checked + span::after { content: none; }
[data-env="palettes"] .rvcp-puce-pal input:checked + span { box-shadow: inset 0 0 0 1px #D6AE7B; }
@media (min-width: 701px) { .rvcp-equil { text-wrap: balance; max-width: 760px; } }

/* 1.11.90 — Mes envies en images (saisons, séances, lieux, ambiances) */
.rvcp-puces-img { display: grid !important; grid-template-columns: repeat(var(--c, 4), minmax(0, 1fr)); gap: 10px; }
.rvcp-puce-img span { display: flex !important; flex-direction: column; align-items: stretch; gap: 0; padding: 0 !important; border-radius: 6px !important; overflow: hidden; height: 100%; box-sizing: border-box; background: #fff; }
.rvcp-puce-ph { display: block; aspect-ratio: 4 / 5; background: #F2EADF center 30% / cover no-repeat; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.rvcp-puce-peu { display: flex; align-items: center; justify-content: center; color: #D6AE7B; font-style: normal; font-size: 22px; background: #FBF8F3; }
.rvcp-puce-img em { display: block; font-style: normal; padding: 8px 6px 9px; text-align: center; font-size: 12.5px; line-height: 1.3; }
.rvcp-puce-img:hover .rvcp-puce-ph { transform: scale(1.03); }
.rvcp-puce-img input:checked + span::before { content: "✓"; position: absolute; top: 8px; right: 8px; z-index: 2; width: 24px; height: 24px; border-radius: 50%; background: #354535; color: #D6AE7B; font: 600 12px/24px "Montserrat", sans-serif; text-align: center; box-shadow: 0 0 0 2px #fff; }
.rvcp-puce-img input:checked + span { background: var(--sauge); }
.rvcp-puce-img input:checked + span em { color: #F6F2E9; }
.rvcp-puce-img { position: relative; }
@media (max-width: 900px) { .rvcp-puces-img { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 480px) { .rvcp-puces-img { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rvcp-puce-ph { aspect-ratio: auto; height: 168px; }
@media (max-width: 900px) { .rvcp-puce-ph { height: auto; aspect-ratio: 4 / 5; } }

/* 1.11.91 — vignettes « Mes envies » : photo cadrée (position et zoom réglables dans l'aperçu) */
.rvcp-puce-ph { position: relative; overflow: hidden; }
.rvcp-puce-ph img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: var(--x, 50%) var(--y, 30%); transform: scale(var(--z, 1)); transform-origin: var(--x, 50%) var(--y, 30%); border-radius: 0; margin: 0; }

/* 1.11.95 — vignettes de « Mes envies » carrées (on voit mieux la photo) */
.rvcp-puce-ph { aspect-ratio: 1 / 1 !important; height: auto !important; flex: 0 0 auto; width: 100%; }

/* 1.11.98 — code de parrainage reçu : sous « Mes avantages », pour les nouvelles clientes seulement */
.rvcp-code-recu { margin: 14px 0 0; padding: 16px 20px; background: #fff; border: 1px solid rgba(214,174,123,.45); border-radius: 4px; display: grid; grid-template-columns: 1fr auto; gap: 8px 18px; align-items: center; }
.rvcp-code-recu > p:first-child { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--texte); }
.rvcp-code-recu > p:first-child b { color: var(--vert, #354535); font-weight: 600; }
.rvcp-code-recu .rvcp-code-form { display: flex; gap: 8px; margin: 0; }
.rvcp-code-recu input { width: 150px; text-transform: uppercase; }
.rvcp-code-recu .rvcp-code-retour { grid-column: 1 / -1; margin: 0; }
.rvcp-code-recu .rvcp-code-retour:empty { display: none; }
@media (max-width: 700px) { .rvcp-code-recu { grid-template-columns: 1fr; } .rvcp-code-recu input { flex: 1; width: auto; } }

/* 1.11.99 — photo retournée (effet miroir), sans perdre le cadrage */
.rvcp-puce-ph img { transform: scale(var(--z, 1)) !important; }
.rvcp-puce-ph.rvcp-miroir img { transform: translateX(calc(100% - 2 * var(--x, 50%))) scale(calc(-1 * var(--z, 1)), var(--z, 1)) !important; }

/* 1.11.100 — « Nos séances au fil des ans » : 5 arches de large, plus grandes, sans haut coupé */
.rvcp-annees-l { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 4 * 22px) / 5); gap: 22px; padding: 10px 6px 8px; overflow-x: auto; overflow-y: visible; }
.rvcp-annees-l::before { display: none; }
.rvcp-annees-l li { width: auto; min-width: 0; }
.rvcp-annees-l li::before { content: ""; position: absolute; left: -11px; right: -11px; top: 0; margin-top: calc(0.646 * (100% - 12px)); height: 1px; background: rgba(214,174,123,.7); z-index: -1; }
.rvcp-annees-l li:first-child::before { left: 50%; }
.rvcp-annees-l li:last-child::before { right: 50%; }
.rvcp-annees-ph { width: calc(100% - 12px); height: auto; aspect-ratio: 116 / 150; border-radius: 500px 500px 4px 4px; margin: 0 auto 12px; background-size: cover; background-position: center 30%; }
.rvcp-annees-l b { font-size: 26px; }
@media (max-width: 700px) { .rvcp-annees-l { grid-auto-columns: 42%; gap: 16px; } .rvcp-annees-l li::before { left: -8px; right: -8px; } }
.rvcp-annees-saison b { font-size: 21px; }

/* 1.11.101 — prochaines arches : séances réservées et prochaines étapes, avec une icône dorée */
.rvcp-annees-ico { width: 38%; max-width: 54px; height: auto; fill: none; stroke: #C9A06A; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.rvcp-annees-suite b { font-size: 21px; }
.rvcp-annees-suite .rvcp-annees-type { display: block; font-size: 12px; color: #7a7268; margin-top: 2px; }
.rvcp-annees-etat { display: inline-block; margin-top: 7px; font-style: normal; font-size: 11px; letter-spacing: .06em; padding: 3px 10px; border-radius: 999px; border: 1px solid rgba(214,174,123,.75); color: #A8834F; background: #fff; }
.rvcp-annees-reserve .rvcp-annees-etat { background: #354535; border-color: #354535; color: #F3E7D3; }
.rvcp-annees-reserve .rvcp-annees-ph { border-style: solid !important; background: #F6F0E4 !important; }
.rvcp-annees-demande .rvcp-annees-etat { background: #F6F0E4; }
.rvcp-annees-suggere a:hover .rvcp-annees-etat { background: #D6AE7B; border-color: #D6AE7B; color: #2a352a; }
.rvcp-annees-suite > div { display: block; }
/* Ligne continue sur toute la largeur, au milieu des arches (comme avant) */
.rvcp-annees-l li::before { display: none !important; }
.rvcp-annees-l::before { display: block !important; content: ""; position: absolute; left: 0; right: 0; top: 10px; margin-top: calc(0.646 * ((100% - 88px) / 5 - 12px)); height: 1px; background: linear-gradient(90deg, transparent, rgba(214,174,123,.7) 4%, rgba(214,174,123,.7) 96%, transparent); z-index: 0; pointer-events: none; }
@media (max-width: 700px) { .rvcp-annees-l::before { margin-top: calc(0.646 * (42% - 12px)); } }
/* Téléphone : le menu du compte sur plusieurs lignes (tout est visible, rien de caché à droite) et l'en-tête des avantages centré */
@media (max-width: 900px) {
	.rvcp-menu.rvcp-menu-a { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 4px; overflow: visible; width: 100% !important; margin: 0 !important; padding: 0 0 8px !important; }
	.rvcp-menu.rvcp-menu-a a { flex: 0 0 auto; width: auto !important; display: inline-flex !important; align-items: center; justify-content: center; gap: 6px; font-size: 10.5px; letter-spacing: .08em; padding: 8px 9px !important; min-height: 40px; }
	.rvcp-code-recu .rvcp-code-form { flex-wrap: wrap; }
	.rvcp-code-recu .rvcp-code-form input { flex: 1 1 150px; min-width: 0; width: auto; }
	.rvcp-code-recu .rvcp-code-form button { flex: 1 0 auto; }
	.rvcp-avantages .rvcp-av-tete { flex-direction: column !important; align-items: center !important; justify-content: center !important; text-align: center; gap: 2px; padding-right: 0 !important; }
}

/* Ce que la cliente a dit en réservant */
.rvcp-resa-l { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 14px 0 0; }
.rvcp-resa-l > div { background: #FBF8F1; border: 1px solid rgba(214,174,123,.45); border-radius: 8px; padding: 10px 14px; }
.rvcp-resa-l dt { font: 600 11px/1.3 "Montserrat", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #A8834F; margin: 0 0 4px; }
.rvcp-resa-l dd { margin: 0; color: #2F2A24; white-space: pre-line; overflow-wrap: anywhere; }
@media (max-width: 480px) { .rvcp-resa-l { grid-template-columns: 1fr; } .rvcp-resa-l > div, .rvcp-bloc-resa > h3, .rvcp-bloc-resa > p { text-align: center; } }

/* Profil : la ligne « Mon image » (le choix d'image n'est plus un lien sous le nom; le crayon apparaît au survol de l'image). */
.rvcp-image-ligne { display: flex; align-items: center; gap: 14px; }
.rvcp-av.rvcp-av-mini { width: 42px; height: 52px; margin: 0; font-size: 22px; border-radius: 999px 999px 3px 3px; background-size: cover; background-position: center; flex: none; }
.rvcp-image-ligne .rvcp-av-choisir { flex: none; width: auto; margin: 0; text-align: left; }

.rvcp-autre{display:flex;flex-direction:column;gap:6px;margin-top:12px;max-width:420px}
.rvcp-autre[hidden]{display:none}
.rvcp-autre input{width:100%;box-sizing:border-box;padding:10px 14px;border:1px solid rgba(214,174,123,.55);border-radius:4px;background:#fff;font:inherit;font-size:14.5px}
.rvge .rvcp-av.rvcp-av-mini, .rvge button.rvcp-av.rvcp-av-mini { width: 42px; height: 52px; border-radius: 21px 21px 0 0 !important; } /* même arche que l'image du coin */

/* Commandes : détail complet, modification, annulation (oct. 2026) */
.rvcp-cmd-gestes { flex-wrap: wrap; align-items: center; gap: 10px 14px; }
/* Liens d'action discrets (Modifier, Faire imprimer…) : même allure que les liens « rvge-lien » de l'espace client, jamais le style de bouton du thème. */
.rvge .rvcp-lien-doux, .rvge .rvcp-lien-doux:hover, .rvge .rvcp-lien-doux:focus, .rvge .rvcp-lien-doux:active { margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; height: auto !important; line-height: 1.4 !important; font: 400 13px/1.4 "Montserrat", sans-serif !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--sauge, #354535) !important; text-decoration: underline !important; text-decoration-color: var(--or, #D6AE7B) !important; text-underline-offset: 4px !important; cursor: pointer; transition: color .2s; }
.rvge .rvcp-lien-doux:hover, .rvge .rvcp-lien-doux:focus-visible { color: var(--or-f, #A8834F) !important; outline: none; }
.rvcp-cmd-fige { flex-basis: 100%; font: 400 12.5px/1.55 "Montserrat", sans-serif; color: #7a7268; }
.rvcp-cmd-d { flex-basis: 100%; width: 100%; margin-top: 4px; }
.rvcp-cmd-d[hidden] { display: none; }
.rvcp-cmd-att { margin: 10px 0 0; font-size: 13px; color: #7a7268; }
.rvcp-cmd-detail { margin-top: 14px; padding: 18px clamp(14px, 2.4vw, 24px) 20px; background: #fff; border: 1px solid rgba(214,174,123,.4); }
.rvcp-cmd-etapes { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; margin: 0 0 18px; padding: 0 0 16px; border-bottom: 1px solid #EFE7DB; }
.rvcp-cmd-etapes li { position: relative; padding-left: 18px; font: 400 12px/1.4 "Montserrat", sans-serif; color: #a39a8f; }
.rvcp-cmd-etapes li::before { content: ""; position: absolute; left: 0; top: 4px; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid #d9cfbf; background: #fff; box-sizing: border-box; }
.rvcp-cmd-etapes li.fait { color: #2F2A24; }
.rvcp-cmd-etapes li.fait::before { background: #D6AE7B; border-color: #D6AE7B; }
.rvcp-cmd-etapes li b { display: block; font-weight: 600; letter-spacing: .04em; }
.rvcp-cmd-etapes li span { display: block; font-size: 11.5px; color: #7a7268; }
.rvcp-cmd-lignes { width: 100%; border-collapse: collapse; border: 0 !important; background: transparent; margin: 0; }
.rvcp-cmd-lignes tr, .rvcp-cmd-lignes tbody { border: 0 !important; background: transparent !important; }
.rvcp-cmd-lignes td { padding: 9px 8px; border: 0 !important; border-bottom: 1px solid #F2EADF !important; background: transparent !important; vertical-align: middle; font: 400 13.5px/1.5 "Montserrat", sans-serif; color: #2F2A24; }
.rvcp-cmd-lignes tr:last-child td { border-bottom: 0 !important; }
.rvcp-cmd-vig { width: 64px; padding-left: 0 !important; }
.rvcp-cmd-vig img, .rvcp-cmd-vig-vide, .rvcp-cmd-vig-carte { display: block; width: 56px; height: 56px; object-fit: cover; border-radius: 3px; background: #F2EADF; }
.rvcp-cmd-vig-carte { background: linear-gradient(135deg, #F2E9DE, #E6D4BD); border: 1px solid rgba(214,174,123,.5); }
.rvcp-cmd-prod b { display: block; font-weight: 500; font-size: 14.5px; }
.rvcp-cmd-photo, .rvcp-cmd-opt { display: block; font-size: 12.5px; color: #7a7268; }
.rvcp-cmd-qte { white-space: nowrap; color: #7a7268; }
.rvcp-cmd-prix { text-align: right; white-space: nowrap; padding-right: 0 !important; font-variant-numeric: tabular-nums; }
.rvcp-cmd-totaux { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid #EFE7DB; display: grid; gap: 4px; justify-content: end; }
.rvcp-cmd-tot { display: flex; gap: 26px; justify-content: space-between; min-width: min(100%, 300px); font: 400 13px/1.5 "Montserrat", sans-serif; color: #6B6257; }
.rvcp-cmd-tot b { font-weight: 500; color: #2F2A24; font-variant-numeric: tabular-nums; }
.rvcp-cmd-tot.fort { margin-top: 4px; padding-top: 6px; border-top: 1px solid rgba(214,174,123,.5); color: #2F2A24; }
.rvcp-cmd-tot.fort b { font: 500 20px/1.1 "Cormorant Garamond", Georgia, serif; }
.rvcp-cmd-infos { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px 22px; margin-top: 18px; padding-top: 14px; border-top: 1px solid #EFE7DB; }
.rvcp-cmd-infos b { display: block; font: 600 10.5px/1.3 "Montserrat", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #A8834F; margin-bottom: 4px; }
.rvcp-cmd-infos span { font: 400 13px/1.6 "Montserrat", sans-serif; color: #2F2A24; }
.rvcp-modale.rvcp-modale-annuler { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 20px; background: rgba(28, 32, 28, .62); opacity: 1 !important; transform: none !important; }
.rvcp-modale-annuler .rvcp-modale-boite { width: min(520px, 100%); text-align: center; padding: 34px clamp(20px, 4vw, 40px) 30px; background: #FAF6F0; border-radius: 4px; box-shadow: 0 30px 80px rgba(0, 0, 0, .3); opacity: 1 !important; transform: none !important; }
.rvcp-modale-annuler .rvcp-surt { margin: 0 0 6px; }
.rvcp-modale-annuler h2 { font-size: 30px; }
.rvcp-modale-annuler .rvcp-petit { margin: 10px auto 18px; max-width: 420px; }
.rvcp-an-raison { display: block; text-align: left; margin: 0 0 18px; }
.rvcp-an-raison span { display: block; font: 600 10.5px/1.3 "Montserrat", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #A8834F; margin-bottom: 6px; }
.rvcp-an-raison input { width: 100%; padding: 11px 12px; border: 1px solid #DDD3C4; background: #fff; font: 400 14px "Montserrat", sans-serif; color: #2F2A24; }
.rvcp-an-raison input:focus { outline: none; border-color: #A8834F; box-shadow: 0 0 0 3px rgba(214,174,123,.25); }
.rvcp-modale-gestes { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
html.rvcp-modale-ouverte { overflow: hidden; }
@media (max-width: 600px) { .rvcp-cmd-lignes td { padding: 8px 5px; font-size: 13px; } .rvcp-cmd-vig { width: 52px; } .rvcp-cmd-vig img, .rvcp-cmd-vig-vide, .rvcp-cmd-vig-carte { width: 46px; height: 46px; } .rvcp-cmd-qte { display: none; } .rvcp-cmd-prod b::after { content: attr(data-q); } }

/* Cartes-cadeaux : gestion depuis l'espace (oct. 2026) */
.rvcp-carte-remise { margin: 6px 0 0; font: 400 12.5px/1.55 "Montserrat", sans-serif; color: #5E574E; }
.rvcp-carte-remise > span:first-child { color: #A8834F; margin-right: 2px; }
.rvcp-modale-annuler .rvcp-modale-boite { max-width: 560px; }
.rvcp-cm-form { text-align: left; display: grid; gap: 14px; margin-top: 6px; }
.rvcp-cm-form label > span:first-child, .rvcp-cm-form legend { display: block; font: 600 10.5px/1.3 "Montserrat", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #A8834F; margin-bottom: 6px; }
.rvcp-cm-form input[type=text], .rvcp-cm-form input[type=email], .rvcp-cm-form input[type=date], .rvcp-cm-form textarea { width: 100%; padding: 11px 12px; border: 1px solid #DDD3C4; background: #fff; font: 400 14px/1.4 "Montserrat", sans-serif; color: #2F2A24; border-radius: 0; }
.rvcp-cm-form input:focus, .rvcp-cm-form textarea:focus { outline: none; border-color: #A8834F; box-shadow: 0 0 0 3px rgba(214,174,123,.25); }
.rvcp-cm-form textarea { resize: vertical; min-height: 70px; }
.rvcp-cm-form .rvcp-deux { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rvcp-cm-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.rvcp-motifs-g { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.rvcp-motif { position: relative; display: block; cursor: pointer; border: 1px solid #E6DDCF; padding: 4px; background: #fff; transition: border-color .2s, box-shadow .2s; }
.rvcp-motif input { position: absolute; opacity: 0; pointer-events: none; }
.rvcp-motif img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.rvcp-motif span { display: block; margin-top: 4px; text-align: center; font: 500 10.5px/1.3 "Montserrat", sans-serif; color: #5E574E; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rvcp-motif.on { border-color: #354535; box-shadow: inset 0 0 0 1px #354535; }
.rvcp-motif:hover { border-color: #D6AE7B; }
.rvcp-remise { display: grid; gap: 8px; }
.rvcp-radio { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid #E6DDCF; background: #fff; cursor: pointer; font: 400 13px/1.5 "Montserrat", sans-serif; color: #5E574E; }
.rvcp-radio:has(input:checked) { border-color: #354535; box-shadow: inset 0 0 0 1px #354535; }
.rvcp-radio input { margin: 4px 0 0; accent-color: #354535; flex: none; }
.rvcp-radio b { display: block; font-weight: 500; color: #2F2A24; }
.rvcp-imp-totaux { justify-content: stretch; }
.rvcp-imp-totaux .rvcp-cmd-tot { min-width: 0; }
.rvcp-interac { margin: 14px 0 4px; padding: 14px 16px; background: #fff; border: 1px solid rgba(214,174,123,.5); text-align: left; }
.rvcp-interac p { margin: 0 0 8px; font: 600 11px/1.3 "Montserrat", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #A8834F; }
.rvcp-interac dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; margin: 0; font: 400 14px/1.5 "Montserrat", sans-serif; color: #2F2A24; }
.rvcp-interac dt { color: #7a7268; }
.rvcp-interac dd { margin: 0; }
@media (max-width: 520px) { .rvcp-cm-form .rvcp-deux { grid-template-columns: 1fr; } .rvcp-motifs-g { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Facebook, Instagram, Messenger, publications (oct. 2026) */
.rvcp-fb-bloc { margin: 0 0 18px; text-align: center; }
.rvcp-fb { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 13px 20px; border: 1px solid #354535; border-radius: 2px; background: #354535; color: #FBF8F1 !important; font: 600 11.5px/1 "Montserrat", sans-serif; letter-spacing: .14em; text-transform: uppercase; text-decoration: none !important; transition: background .2s, transform .2s; }
.rvcp-fb:hover, .rvcp-fb:focus-visible { background: #2a3829; transform: translateY(-1px); outline: none; }
.rvcp-fb svg { width: 18px; height: 18px; fill: #D6AE7B; flex: none; }
.rvcp-fb-bloc .rvcp-petit { margin: 8px auto 0; max-width: 420px; }
.rvcp-ou { display: flex; align-items: center; gap: 12px; margin: 16px 0 0; font: 600 10px/1 "Montserrat", sans-serif; letter-spacing: .18em; text-transform: uppercase; color: #A8834F; }
.rvcp-ou::before, .rvcp-ou::after { content: ""; flex: 1; height: 1px; background: rgba(214,174,123,.5); }
.rvcp-fb-lien { margin-top: 10px; }
.rvcp-fb-lien .rvcp-fb { width: auto; padding: 11px 18px; }
.rvcp-fb-lien .rvcp-petit { margin: 8px 0 0; }
.rvcp-fb-ok { color: #A8834F; font-weight: 700; }
.rvcp-pubs { list-style: none; margin: 10px 0 18px; padding: 0; display: grid; gap: 10px; }
.rvcp-pubs li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; background: #fff; border: 1px solid rgba(214,174,123,.4); }
.rvcp-pub-ico { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; border: 1px solid #D6AE7B; color: #A8834F; font: 600 15px/1 "Cormorant Garamond", Georgia, serif; }
.rvcp-pubs b { display: block; font: 500 14.5px/1.3 "Montserrat", sans-serif; color: #2F2A24; }
.rvcp-pubs li > div > span { display: block; font: 400 12.5px/1.5 "Montserrat", sans-serif; color: #7a7268; }
.rvcp-pub-merci { display: block; margin-top: 4px; font: italic 500 15px/1.4 "Cormorant Garamond", Georgia, serif; color: #354535; }
.rvcp-pub-form { margin-top: 6px; }
.rvcp-pub-form input { flex: 1 1 260px; }
.rvcp-pub-mess { margin: 14px 0 0; }
.rvcp-messenger-lien { white-space: nowrap; }
.rvcp-messenger-lien svg { width: 14px; height: 14px; fill: currentColor; vertical-align: -2px; margin-right: 4px; }

/* Téléphone : une seule navigation, la barre du bas (5 entrées) + feuille « Plus » (oct. 2026) */
.rvcp-plus { display: none; }
@media (max-width: 900px) {
	.rvcp-cote .rvcp-menu-a, .rvcp-cote .rvcp-bas-tel { display: none !important; }
	.rvcp-cote { padding-bottom: 2px; }
	.rvcp-qui { padding-bottom: 10px; margin-bottom: 0; }
	.rvcp-barre { grid-template-columns: repeat(5, 1fr); }
	.rvcp-barre .rvcp-barre-plus { all: unset; position: relative; display: grid; justify-items: center; gap: 3px; padding: 5px 2px; color: var(--texte); font: 600 9.5px/1.2 "Montserrat", sans-serif; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; -webkit-tap-highlight-color: transparent; box-sizing: border-box; }
	.rvcp-barre .rvcp-barre-plus .rvcp-mi { width: 21px; height: 21px; }
	.rvcp-barre .rvcp-barre-plus.actif, .rvcp-barre .rvcp-barre-plus[aria-expanded="true"] { color: var(--sauge); }
	.rvcp-barre .rvcp-barre-plus.actif::before { content: ""; position: absolute; top: -6px; left: 30%; right: 30%; height: 2px; background: var(--or); border-radius: 2px; }
	.rvcp-barre .rvcp-point-neuf { position: absolute; top: 4px; left: calc(50% + 8px); width: 7px; height: 7px; border-radius: 50%; background: var(--or); }
	.rvcp-plus { display: block; position: fixed; inset: 0; z-index: 9995; background: rgba(28, 32, 28, .55); }
	.rvcp-plus[hidden] { display: none; }
	.rvcp-plus-feuille { position: absolute; left: 0; right: 0; bottom: 0; max-height: 82vh; overflow-y: auto; background: var(--creme); border-radius: 18px 18px 0 0; padding: 14px 18px calc(18px + env(safe-area-inset-bottom)); box-shadow: 0 -16px 40px rgba(0, 0, 0, .22); animation: rvcp-monte .28s ease both; }
	.rvcp-plus-feuille::before { content: ""; display: block; width: 40px; height: 4px; border-radius: 4px; background: #d8cfc3; margin: 0 auto 12px; }
	.rvcp-plus-feuille .rvcp-surt { margin: 4px 0 8px; }
	.rvcp-plus-sous { margin-top: 14px !important; }
	.rvcp-plus-liste { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
	.rvcp-plus-liste a { display: flex; align-items: center; gap: 10px; padding: 11px 12px; background: #fff; border: 1px solid rgba(214,174,123,.4); border-radius: 4px; color: var(--encre) !important; text-decoration: none; font: 600 10.5px/1.25 "Montserrat", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
	.rvcp-plus-liste a .rvcp-mi { width: 18px; height: 18px; flex: none; }
	.rvcp-plus-liste a .t { flex: 1; min-width: 0; }
	.rvcp-plus-liste a .t::before, .rvcp-plus-liste a .t::after { display: none; }
	.rvcp-plus-liste a i { font-style: normal; font-size: 10px; color: #7a7268; background: var(--papier); border-radius: 999px; padding: 2px 7px; }
	.rvcp-plus-liste a.actif { border-color: var(--sauge); box-shadow: inset 0 0 0 1px var(--sauge); color: var(--sauge) !important; }
	.rvcp-plus-liste .rvcp-nouveau { position: static; transform: none; }
	.rvcp-plus-liens { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
	.rvcp-plus-liens a { display: flex; align-items: center; gap: 10px; padding: 10px 4px; color: var(--texte) !important; text-decoration: none; font: 400 13.5px/1.3 "Montserrat", sans-serif; border-bottom: 1px solid rgba(214,174,123,.25); }
	.rvcp-plus-liens li:last-child a { border-bottom: 0; }
	.rvcp-plus-liens a .rvcp-mi { width: 18px; height: 18px; flex: none; }
	.rvcp-plus-liens a .rvcp-fl { display: none; }
	.rvcp-plus-liens .rvcp-sortir { color: #8a8174 !important; }
	.rvcp-plus-fermer { all: unset; display: block; width: 100%; text-align: center; margin-top: 14px; padding: 12px; border: 1px solid var(--sauge); border-radius: 999px; color: var(--sauge); font: 600 11px/1 "Montserrat", sans-serif; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; box-sizing: border-box; }
	html.rvcp-plus-ouvert { overflow: hidden; }
	@keyframes rvcp-monte { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
	/* Avantages : contenu centré sur téléphone */
	.rvcp-avantages > div { text-align: center; }
	.rvcp-avantages > div > *:not(.rvcp-av-tete) { margin-left: auto; margin-right: auto; }
	.rvcp-avantages .rvcp-av-ico, .rvcp-avantages > div > span:first-child, .rvcp-avantages > div > svg, .rvcp-avantages > div > a:last-child { margin-left: auto; margin-right: auto; }
	.rvcp-avantages > div > a, .rvcp-avantages > div > button { justify-content: center; }
	/* Raccourcis d'administration (aperçu) : au-dessus de la barre du bas */
	.rvap-raccourci { bottom: calc(96px + env(safe-area-inset-bottom)) !important; }
}

/* Téléphone : « Peu importe » (et toute case seule en fin de grille) en pleine largeur, basse; l'image du profil plus grande */
@media (max-width: 480px) {
	.rvcp-puces-img .rvcp-puce-img:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.rvcp-puces-img .rvcp-puce-img:last-child:nth-child(odd) span { flex-direction: row; align-items: center; }
	.rvcp-puces-img .rvcp-puce-img:last-child:nth-child(odd) .rvcp-puce-ph { aspect-ratio: auto; width: 96px; height: 64px; flex: none; }
	.rvcp-puces-img .rvcp-puce-img:last-child:nth-child(odd) .rvcp-puce-peu { width: 72px; height: 64px; font-size: 20px; }
	.rvcp-puces-img .rvcp-puce-img:last-child:nth-child(odd) em { flex: 1; text-align: left; padding: 10px 12px; }
}
@media (max-width: 900px) {
	.rvcp-image-ligne { gap: 18px; }
	.rvge .rvcp-av.rvcp-av-mini, .rvge button.rvcp-av.rvcp-av-mini { width: 84px; height: 104px; border-radius: 42px 42px 0 0 !important; font-size: 34px !important; }
	.rvcp-image-ligne .rvcp-av-choisir { font-size: 14px; }
}
/* Jamais un mot seul en fin de paragraphe dans les petits textes d'aide */
.rvcp .rvcp-petit, .rvcp .rvcp-aide, .rvcp .rvcp-texte, .rvcp .rvcp-fs small, .rvcp .rvcp-fs legend, .rvcp .rvcp-nom-aff small, .rvcp label small, .rvcp .rvcp-sous, .rvcp .rvcp-envies-t, .rvcp .rvcp-meta, .rvcp .rvcp-carte-remise, .rvcp .rvcp-cmd-fige { text-wrap: pretty; }
@media (max-width: 900px) {
	.rvcp-avantages .rvcp-av-it { align-items: center; text-align: center; }
	.rvcp-avantages .rvcp-av-it > .rvcp-av-ico { margin: 0 auto 12px; }
	.rvcp-avantages .rvcp-av-it .rvcp-av-txt { max-width: 34ch; }
}

/* Offres et ententes (oct. 2026) : la raison en Cormorant, comme un mot écrit à la main. */
.rvcp-pourquoi { margin: 6px 0 4px; font: italic 500 17px/1.4 "Cormorant Garamond", Georgia, serif; color: var(--sauge, #354535); text-wrap: pretty; }
.rvcp-vign-entente { display: grid; place-items: center; background: linear-gradient(160deg, #F6EEDF, #EAD9BD); color: #A8834F; }
.rvcp-vign-entente svg { width: 40%; height: 40%; }
.rvcp-entente-fini .rvcp-vign-entente { filter: saturate(.4); opacity: .75; }
.rvcp-entente-fini h3 { color: #7a7268; }

/* Menu de gauche (oct. 2026) : groupes séparés par une fine ligne dorée (sans titres), « Me contacter » et « Me suivre », bouton d'offre dans le titre de section. */
.rvcp-sep { display: block; height: 1px; margin: 7px 22px; background: linear-gradient(90deg, transparent, rgba(214,174,123,.3) 22%, rgba(214,174,123,.3) 78%, transparent); } /* discrète : un souffle doré, pas un trait */
.rvcp-menu a[hidden], .rvcp-sep[hidden] { display: none !important; }
.rvcp-contact { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; margin: 8px 0 0; padding: 10px 0 0; }
.rvcp-contact-t { font: 600 9.5px/1 "Montserrat", sans-serif; letter-spacing: .26em; text-transform: uppercase; color: var(--or-f); white-space: nowrap; }
.rvcp-contact-ico { display: inline-flex; gap: 8px; }
.rvcp-contact-ico a { display: inline-grid; place-items: center; width: 34px; height: 34px; padding: 0 !important; border: 1px solid rgba(214,174,123,.6); border-radius: 50%; color: var(--or-f) !important; background: #fff; transition: background .2s, color .2s, border-color .2s; }
.rvcp-contact-ico a svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.rvcp-contact-ico a:hover, .rvcp-contact-ico a:focus-visible { background: var(--sauge); border-color: var(--sauge); color: #FBF8F1 !important; outline: none; }
.rvcp-suivre { padding-top: 2px; }
.rvcp-liens-fin { margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(214,174,123,.25); }
.rvcp-liens-fin .rvcp-li-sortir { margin-top: 0; padding-top: 0; border-top: 0; } /* une seule ligne au-dessus de « Me déconnecter » */
.rvcp-plus .rvcp-contact { flex-direction: row; justify-content: flex-start; gap: 14px; padding: 10px 0 0; }
/* Ordinateur : bas du menu resserré pour que tout le menu tienne à l'écran — « La boutique · Aide » sur une ligne,
   les minis séances sur la leur, puis une seule rangée d'icônes (joindre | suivre) sans libellés. */
@media (min-width: 901px) {
	.rvcp-cote .rvcp-liens { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 5px; width: auto; margin: 4px 0 0; text-align: center; }
	.rvcp-cote .rvcp-liens li { display: inline-flex; align-items: center; gap: 5px; }
	.rvcp-cote .rvcp-liens .rvcp-li-aide::before, .rvcp-cote .rvcp-liens .rvcp-li-point::before { content: "·"; color: var(--or); font-size: 14px; line-height: 1; }
	.rvcp-cote .rvcp-liens .rvcp-li-minis { flex-basis: 100%; justify-content: center; }
	.rvcp-cote .rvcp-liens a { display: inline !important; padding: 3px 0 !important; font-size: 12.5px !important; }
	.rvcp-cote .rvcp-liens a .rvcp-mi, .rvcp-cote .rvcp-li-long { display: none; }
	.rvcp-cote .rvcp-liens-fin { width: 196px; margin: 6px auto 0; padding-top: 7px; } /* Réglages · Profil · Me déconnecter, même largeur que les lignes du menu */
	.rvcp-cote .rvcp-liens-fin a.rvcp-sortir { color: #9a9187 !important; }
	/* Réglages et Profil : un peu plus présents (icône, vert sauge, 13 px) sans voler la vedette au menu; la sortie reste discrète. */
	.rvcp-cote .rvcp-liens-fin a { display: inline-flex !important; align-items: center; gap: 6px; font-size: 13px !important; font-weight: 500; color: var(--sauge) !important; }
	.rvcp-cote .rvcp-liens-fin a .rvcp-mi { display: inline-block; width: 15px; height: 15px; stroke: var(--sauge); opacity: .8; }
	.rvcp-cote .rvcp-liens-fin a.rvcp-sortir { font-size: 12.5px !important; font-weight: 400; }
	.rvcp-cote .rvcp-liens-fin a.rvcp-sortir .rvcp-mi { display: none; }
	.rvcp-cote .rvcp-liens-fin a.actif > span { background-size: 100% 1px; }
	.rvcp-cote .rvcp-liens-fin { width: auto; max-width: 214px; }
	.rvcp-cote .rvcp-liens-fin .rvcp-li-sortir { flex-basis: 100%; justify-content: center; margin-top: 2px; }
	.rvcp-cote .rvcp-liens-fin .rvcp-li-sortir::before { content: none; }
	.rvcp-joindre { display: flex; justify-content: center; align-items: center; gap: 8px; margin: 8px 0 0; padding: 6px 0 0; }
	.rvcp-joindre .rvcp-contact { margin: 0; padding: 0; }
	.rvcp-joindre .rvcp-contact-t { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.rvcp-joindre .rvcp-suivre { position: relative; padding-left: 9px; }
	.rvcp-joindre .rvcp-suivre::before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 18px; transform: translateY(-50%); background: rgba(214,174,123,.5); }
	.rvcp-joindre .rvcp-contact-ico a { width: 32px; height: 32px; }
	.rvcp-joindre .rvcp-contact-ico a svg { width: 15px; height: 15px; }
	/* Écran bas : le menu se resserre d'un cran (classe posée par placeMenu) avant de suivre la page. */
	.rvcp-cote-serre { padding-top: 14px; padding-bottom: 8px; }
	.rvcp-cote-serre .rvcp-qui { padding-bottom: 6px; margin-bottom: 4px; }
	.rvge .rvcp-cote-serre .rvcp-qui button.rvcp-av { width: 44px; height: 56px; border-radius: 22px 22px 0 0 !important; font-size: 22px !important; margin-bottom: 6px; }
	.rvcp-cote-serre .rvcp-qui b { font-size: 20px; }
	.rvcp-cote-serre .rvcp-qui > div > span { display: none; } /* « Cliente depuis » : seulement quand il y a la place */
	.rvcp-cote-serre .rvcp-menu-a a { padding-top: 4px; padding-bottom: 4px; }
	.rvcp-cote-serre .rvcp-sep { margin-top: 5px; margin-bottom: 5px; }
	.rvcp-cote-serre .rvcp-bas { margin-top: 6px; padding-top: 8px; }
	.rvcp-cote-serre .rvcp-bas a.rvcp-reserver { margin-bottom: 4px; }
	.rvcp-cote-serre .rvcp-joindre { margin-top: 6px; padding-top: 4px; }
	.rvcp-cote-serre .rvcp-liens-fin { margin-top: 4px; padding-top: 5px; }
}
/* Sous-titres des blocs de réglages : tous de la même grosseur (préférences, envies, installation, espace). */
.rvcp-envies-t, .rvcp-installer b { font-size: 13.5px; font-weight: 500; }
.rvcp-section > h2 .rvcp-h2-geste { margin-left: auto; padding: 10px 16px; font-size: 10.5px; white-space: nowrap; }
@media (max-width: 767px) { .rvcp-section > h2 { flex-wrap: wrap; } .rvcp-section > h2 .rvcp-h2-geste { margin-left: 0; flex-basis: 100%; width: auto; justify-self: start; } }

/* Réglages › Mon espace : ordre des dossiers et sections à afficher. */
.rvcp-esp-liste { list-style: none; margin: 0 0 14px; padding: 0; border: 1px solid rgba(214,174,123,.4); border-radius: 6px; background: #fff; }
.rvcp-esp-liste li { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-top: 1px solid rgba(214,174,123,.25); }
.rvcp-esp-liste li:first-child { border-top: 0; }
.rvcp-esp-nom { flex: 1 1 auto; display: inline-flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--encre); }
.rvcp-esp-nom svg { width: 17px; height: 17px; fill: none; stroke: var(--or-f); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.rvcp-esp-fleches { display: inline-flex; gap: 4px; }
.rvge .rvcp-esp-fleches button { width: 30px; height: 30px; padding: 0 !important; margin: 0; display: grid; place-items: center; border: 1px solid rgba(214,174,123,.55) !important; border-radius: 50% !important; background: #fff !important; color: var(--sauge) !important; box-shadow: none !important; cursor: pointer; }
.rvge .rvcp-esp-fleches button:hover { background: var(--sauge) !important; color: #fff !important; border-color: var(--sauge) !important; }
.rvcp-esp-fleches svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rvcp-esp-voir { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--texte); cursor: pointer; }
.rvcp-esp-voir input { accent-color: #354535; width: 16px; height: 16px; margin: 0; }
.rvcp-esp-retour { margin-left: 12px; }
.rvcp-app { display: flex; align-items: center; gap: 14px; }
.rvcp-app-ico { flex: none; width: 56px; height: 56px; border-radius: 13px; box-shadow: 0 6px 16px rgba(47,42,36,.18); }
.rvcp-app > span { display: grid; gap: 2px; }

/* Profil › Mon image : le lien « Changer mon image » reste collé à l'image (plus de centrage hérité du thème). */
.rvcp-image-ligne { justify-content: flex-start; }
.rvge .rvcp-image-ligne .rvcp-av-choisir, .rvge .rvcp-image-ligne button.rvcp-av-choisir { margin: 0 !important; display: inline-block; width: auto !important; }

/* Menu de gauche (ordinateur) : la vignette et l'espacement s'adaptent à la hauteur de l'écran.
   placeMenu() pose --rvcp-av (largeur de la vignette) et --rvcp-pad (hauteur des entrées) selon la place disponible :
   plus l'écran est haut, plus la vignette est grande (jusqu'à 92 px) et plus le menu respire; sur un écran bas, tout se resserre
   sans jamais descendre sous un minimum lisible (44 px, 4 px). */
@media (min-width: 901px) {
	.rvge .rvcp-cote-fluide .rvcp-qui button.rvcp-av { width: var(--rvcp-av, 52px); height: calc(var(--rvcp-av, 52px) * 1.27); border-radius: calc(var(--rvcp-av, 52px) / 2) calc(var(--rvcp-av, 52px) / 2) 0 0 !important; font-size: calc(var(--rvcp-av, 52px) * .5) !important; margin-bottom: calc(var(--rvcp-pad, 7px) + 2px); }
	.rvcp-cote-fluide .rvcp-qui { padding-bottom: calc(var(--rvcp-pad, 7px) + 4px); margin-bottom: calc(var(--rvcp-pad, 7px) + 1px); }
	.rvcp-cote-fluide .rvcp-qui b { font-size: clamp(20px, calc(var(--rvcp-av, 52px) * .38 + 2px), 24px); }
	.rvcp-cote-fluide .rvcp-menu-a a { padding-top: var(--rvcp-pad, 7px); padding-bottom: var(--rvcp-pad, 7px); }
	.rvcp-cote-fluide .rvcp-sep { margin-top: calc(var(--rvcp-pad, 7px) / 2 + 4px); margin-bottom: calc(var(--rvcp-pad, 7px) / 2 + 4px); }
	.rvcp-cote-fluide .rvcp-bas { margin-top: calc(var(--rvcp-pad, 7px) / 2 + 5px); padding-top: calc(var(--rvcp-pad, 7px) / 2 + 8px); }
	.rvcp-cote-fluide .rvcp-bas a.rvcp-reserver { margin-bottom: calc(var(--rvcp-pad, 7px) / 2 + 2px); }
	.rvcp-cote-fluide .rvcp-joindre { margin-top: calc(var(--rvcp-pad, 7px) / 2 + 4px); padding-top: calc(var(--rvcp-pad, 7px) / 2 + 1px); }
	.rvcp-cote-fluide .rvcp-liens-fin { margin-top: calc(var(--rvcp-pad, 7px) / 2 + 2px); padding-top: calc(var(--rvcp-pad, 7px) / 2 + 4px); }
	.rvcp-cote-fluide.rvcp-cote-serre { padding-top: 14px; padding-bottom: 8px; }
	.rvcp-cote-fluide.rvcp-cote-serre .rvcp-qui > div > span { display: none; } /* « Cliente depuis » : seulement quand il y a la place */
	.rvcp-cote-fluide:not(.rvcp-cote-serre) .rvcp-qui > div > span { display: inline; }
}
/* Ancres : les sections et les blocs arrivent juste sous l'en-tête réel (barre d'administration comprise), pas sous une hauteur fixe. */
.rvcp-tb .rvcp-section, .rvcp-tb .rvcp-bloc, .rvcp-tb .rvcp-avantages { scroll-margin-top: calc(var(--rvcp-colle, 100px) + 28px); }
/* Fenêtre de l'image : le nom sous l'image se choisit ici aussi (prénom, nom complet, famille, surnom). */
.rvcp-av-nom { margin: 18px auto 4px; max-width: 460px; padding-top: 14px; border-top: 1px solid rgba(214,174,123,.35); }
.rvcp-av-nom .rvcp-envies-t { margin-bottom: 8px; }
.rvcp-av-nom .rvcp-puces { justify-content: center; margin: 0 0 6px; }
.rvcp-av-nom .rvcp-nom-libre { width: 100%; max-width: 320px; margin: 6px auto 0; display: block; }
.rvcp-av-nom .rvcp-nom-libre[hidden] { display: none; }
.rvcp-av-nom .rvcp-gestes { margin: 10px 0 0; justify-content: center; }
/* Détail d'une commande : aperçu du produit (maquette + photo) avec la photo en médaillon; image de la carte-cadeau; instructions Interac dépliables. */
.rvcp-cmd-vig-prod { width: 96px; position: relative; }
.rvcp-cmd-vig-prod img.rvcp-cmd-ap { width: 88px; height: 88px; object-fit: contain; background: #FBF8F3; border: 1px solid rgba(214,174,123,.35); }
.rvcp-cmd-vig-prod img.rvcp-cmd-ph { position: absolute; right: 2px; bottom: 6px; width: 30px; height: 30px; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(47,42,36,.2); border-radius: 3px; }
.rvcp-cmd-vig-cc { width: 96px; }
.rvcp-cmd-vig-cc img { width: 88px; height: auto; aspect-ratio: 7 / 5; object-fit: cover; border: 1px solid rgba(214,174,123,.45); box-shadow: 0 2px 8px rgba(47,42,36,.12); }
.rvcp-cmd-vig-lien { display: block; }
.rvcp-cmd-interac { display: block; margin: 6px 0 4px; }
.rvcp-cmd-interac summary { cursor: pointer; color: var(--sauge); text-decoration: underline; text-decoration-color: var(--or); text-underline-offset: 3px; font-size: 13px; list-style: none; }
.rvcp-cmd-interac summary::-webkit-details-marker { display: none; }
.rvcp-cmd-interac summary::after { content: " ▾"; color: var(--or-f); font-size: 11px; }
.rvcp-cmd-interac[open] summary::after { content: " ▴"; }
.rvcp-cmd-interac dl { margin: 8px 0 4px; padding: 10px 12px; background: #FBF8F3; border: 1px solid rgba(214,174,123,.4); border-radius: 4px; display: grid; gap: 4px; }
.rvcp-cmd-interac dl > div { display: flex; gap: 10px; align-items: baseline; }
.rvcp-cmd-interac dt { flex: 0 0 64px; font: 600 10.5px/1.6 "Montserrat", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #A8834F; }
.rvcp-cmd-interac dd { margin: 0; font-size: 13.5px; }
.rvcp-cmd-interac .rvcp-petit { margin: 6px 0 0; }
.rvcp-cmd-carte-lien { display: inline-block; margin-top: 6px; }
@media (max-width: 600px) { .rvcp-cmd-vig-prod, .rvcp-cmd-vig-cc { width: 72px; } .rvcp-cmd-vig-prod img.rvcp-cmd-ap, .rvcp-cmd-vig-cc img { width: 64px; } .rvcp-cmd-vig-prod img.rvcp-cmd-ap { height: 64px; } .rvcp-cmd-vig-prod img.rvcp-cmd-ph { width: 24px; height: 24px; } }
/* Offrir une carte-cadeau : fenêtre par-dessus l'espace client (la page carte-cadeau dans un cadre, barre verte comme le volet d'aide). */
.rvcp-modale-carte { padding: 18px; }
.rvcp-modale-carte .rvcp-carte-boite { width: min(1180px, 100%); height: min(calc(100vh - 36px), 1000px); max-height: none; padding: 0; overflow: hidden; display: flex; flex-direction: column; background: #fff; border-radius: 6px; }
.rvcp-carte-barre { flex: 0 0 auto; min-height: 56px; display: flex; align-items: center; gap: 14px; padding: 0 12px 0 22px; background: var(--sauge); color: #FAF6F0; border-bottom: 2px solid var(--or); }
.rvcp-carte-barre strong { flex: 1 1 auto; min-width: 0; font: 500 24px/1.1 "Cormorant Garamond", Georgia, serif; letter-spacing: .01em; display: flex; flex-direction: column; }
.rvcp-carte-barre strong small { font: 600 9.5px/1 "Montserrat", sans-serif; letter-spacing: .24em; text-transform: uppercase; color: var(--or); margin-bottom: 4px; }
.rvge .rvcp-carte-barre .rvcp-carte-pleine { font: 600 10.5px/1 "Montserrat", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--or) !important; text-decoration: none !important; white-space: nowrap; }
.rvge .rvcp-carte-barre .rvcp-carte-pleine:hover { color: #FAF6F0 !important; }
.rvge .rvcp-carte-barre button.rvcp-modale-x { position: static; width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border: 1px solid rgba(250,246,240,.4) !important; border-radius: 0; color: #FAF6F0 !important; font-size: 24px; }
.rvge .rvcp-carte-barre button.rvcp-modale-x:hover { background: var(--or) !important; border-color: var(--or) !important; color: var(--encre) !important; }
.rvcp-carte-boite iframe { flex: 1 1 auto; width: 100%; border: 0; background: #fff; }
@media (max-width: 600px) { .rvcp-carte-barre .rvcp-carte-pleine { display: none; } }
/* Menu « juste » : écran un peu bas — marges extérieures réduites et « Cliente depuis » retiré, pour garder des entrées qui respirent. */
@media (min-width: 901px) {
	.rvcp-cote-fluide.rvcp-cote-juste { padding-top: 16px; padding-bottom: 10px; }
	.rvcp-cote-fluide.rvcp-cote-juste .rvcp-qui > div > span { display: none; }
	.rvcp-cote-fluide.rvcp-cote-juste .rvcp-qui b { font-size: 20px; }
	.rvcp-cote-fluide.rvcp-cote-juste .rvcp-bas a.rvcp-reserver { margin-bottom: 2px; }
}

/* Menu de gauche : toutes les lignes de séparation sur le même ton discret. */
@media (min-width: 901px) {
	.rvcp-cote .rvcp-qui { border-bottom-color: rgba(214,174,123,.28); }
	.rvcp-cote .rvcp-bas { border-top-color: rgba(214,174,123,.28); }
	.rvcp-cote .rvcp-liens-fin { border-top-color: rgba(214,174,123,.22); }
}
/* Ajouter une carte reçue : la ligne de retour (vide tant qu'on n'a rien soumis) ne prend pas de place. */
.rvcp-code-recu .rvcp-carte-ajout-retour { grid-column: 1 / -1; margin: 0 !important; color: var(--sauge) !important; }
.rvcp-code-recu .rvcp-carte-ajout-retour:empty { display: none; }
/* Retour à la ligne voulu à l'ordinateur seulement (sur téléphone, le texte prend toute la largeur). */
@media (max-width: 600px) { .rvcp-br-ordi { display: none; } }
.rvcp-interac-avant { margin: 8px 0 2px 30px; padding: 10px 14px; background: #FBF8F3; }
.rvcp-interac-avant[hidden] { display: none; }
.rvcp-interac-avant dl { font-size: 13px; }
@media (max-width: 600px) { .rvcp-interac-avant { margin-left: 0; } }
/* Fenêtre « Payer par carte » : montant en évidence, bouton principal avec cadenas. */
.rvcp-modale-payer .rvcp-modale-boite { width: min(520px, 100%); text-align: center; }
.rvcp-modale-payer .rvcp-modale-boite h2 { margin-bottom: 10px; }
.rvcp-py-montant { margin: 0 0 12px; font: 500 30px/1.1 "Cormorant Garamond", Georgia, serif; color: var(--encre); }
.rvcp-py-montant span { display: block; font: 400 11.5px/1.4 "Montserrat", sans-serif; letter-spacing: .06em; color: #8a8278; margin-top: 2px; }
.rvcp-modale-payer .rvcp-modale-gestes { justify-content: center; flex-wrap: wrap; }
.rvcp-py-cad { width: 15px; height: 15px; margin-right: 8px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; vertical-align: -2px; }
.rvcp-py-note { color: #8a8278; }
.rvcp-toast { max-width: min(560px, calc(100vw - 32px)); text-wrap: pretty; }

/* Finitions téléphone : l'espace client garde de l'air, sans étirer les champs. */
.rvcp-3 > label, .rvcp-plus-liste > a, .rvcp-code-form > input { min-width: 0; }
.rvcp-3 select, .f-date-3 select { min-width: 0; max-width: 100%; box-sizing: border-box; }
.rvcp-plus-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rvcp-plus-liste a .t { overflow-wrap: anywhere; hyphens: auto; }
@media (max-width: 600px) {
 .rvcp .rvcp-pub-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
 .rvcp .rvcp-pub-form input { width: 100%; max-width: none; box-sizing: border-box; padding: 12px 14px; }
 .rvcp .rvcp-pub-form .rvge-bouton { width: 100%; margin: 0; min-height: 48px; padding: 12px 18px !important; line-height: 1.4 !important; letter-spacing: .12em !important; }
 .rvcp .rvcp-pub-form .rvge-bouton span { display: block; white-space: normal; }
 .rvcp .rvcp-f-intro { font-size: 15px; line-height: 1.65; text-wrap: pretty; }
 .rvcp .rvcp-f-apropos textarea { min-height: 100px; font-size: 16px; line-height: 1.5; }
 .rvcp .rvcp-f-bas { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
 .rvcp .rvcp-f-bas .rvge-bouton, .rvcp .rvcp-form > .rvge-bouton { width: 100%; max-width: none; margin: 0; box-sizing: border-box; padding: 14px 18px !important; white-space: normal; }
 .rvcp .rvcp-3, .rvcp .f-date-3 { grid-template-columns: minmax(52px, .55fr) minmax(0, 1.45fr); gap: 10px; }
 .rvcp .rvcp-3 > label:last-child, .rvcp .f-date-3 > select:last-child { grid-column: 1 / -1; }
 .rvcp .rvcp-3 select { padding: 11px 24px 11px 10px; font-size: 16px; }
 .rvcp-plus-feuille { box-sizing: border-box; width: 100%; max-width: 100vw; overflow-x: hidden; }
 .rvcp-plus-liste a { gap: 7px; padding: 11px 8px; font-size: 10px; letter-spacing: .04em; min-width: 0; }
}

/* Un centrage stable, que le libellé soit du texte ou un span. */
.rvcp .rvge-bouton { text-align: center; white-space: normal; box-sizing: border-box; min-height: 44px; max-width: 100%; line-height: 1.4; }
.rvcp .rvge-bouton span, .rvcp .rvge-bouton:hover span { transform: none !important; }
.rvcp-avis-liens { align-items: center; gap: 14px 22px; }
.rvcp-avis-liens .rvge-lien { text-wrap: balance; text-align: center; }
@media (max-width: 600px) { .rvcp-avis-liens { flex-direction: column; align-items: stretch; } .rvcp-avis-liens .rvge-bouton { width: 100%; } }

/* Sommaire téléphone : icône, libellé et compteur ont chacun leur colonne. */
@media (max-width: 600px) {
 .rvcp-plus-liste a { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; min-height: 48px; box-sizing: border-box; }
 .rvcp-plus-liste a .t { white-space: normal; word-break: normal; overflow-wrap: normal; hyphens: manual; line-height: 1.35; }
 .rvcp-plus-liste a i { white-space: nowrap; justify-self: end; padding: 2px 6px; }
}

/* Menu de gauche (ordinateur) : quand il dépasse la hauteur de l'écran, il défile en lui-même;
   la barre reste invisible au repos et n'apparaît, fine et dorée, qu'au survol (demande de Rébecca, oct. 2026). */
@media (min-width: 901px) {
	.rvcp-cote:not(.rvcp-cote-libre) { position: sticky; top: var(--rvcp-colle, 100px); max-height: calc(100vh - var(--rvcp-colle, 100px)); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: transparent transparent; transition: scrollbar-color .3s; }
	.rvcp-cote:not(.rvcp-cote-libre):hover { scrollbar-color: rgba(214,174,123,.55) transparent; }
	.rvcp-cote::-webkit-scrollbar { width: 4px; }
	.rvcp-cote::-webkit-scrollbar-track { background: transparent; }
	.rvcp-cote::-webkit-scrollbar-thumb { background: transparent; border-radius: 4px; }
	.rvcp-cote:hover::-webkit-scrollbar-thumb { background: rgba(214,174,123,.55); }
}

/* Oct. 2026 : avec le menu de gauche, deux colonnes ne tiennent pas sous ~1180 px (tablette, téléphone en « version ordinateur ») :
   « Mon espace » débordait de sa carte. Une seule colonne jusque-là, et des rangées qui se replient au lieu de déborder. */
@media (max-width: 1180px) {
	.rvcp-deux { grid-template-columns: minmax(0, 1fr); }
	.rvcp-deux > .rvcp-bloc:nth-child(n+3):last-child:nth-child(odd) { grid-column: auto; }
}
.rvcp-esp-liste li { flex-wrap: wrap; row-gap: 6px; }
.rvcp-esp-nom { min-width: 0; flex: 1 1 140px; }
.rvcp-esp-voir { white-space: nowrap; }
.rvcp-principal { min-width: 0; }
.rvcp-contact-liste { list-style: none; margin: 4px 0 0; padding: 0; border: 1px solid rgba(214,174,123,.4); border-radius: 6px; background: #fff; }
.rvcp-contact-liste li { border-top: 1px solid rgba(214,174,123,.25); }
.rvcp-contact-liste li:first-child { border-top: 0; }
.rvcp-contact-liste a { display: flex; align-items: center; gap: 12px; padding: 13px 14px; color: var(--encre) !important; text-decoration: none !important; font-size: 14px; }
.rvcp-contact-liste a:hover { background: #FAF6F0; color: var(--sauge) !important; }
.rvcp-contact-liste svg { width: 19px; height: 19px; flex: none; fill: none; stroke: var(--or-f); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.rvcp-contact-liste a span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rvcp-contact-form select, .rvcp-contact-form textarea { width: 100%; }
.rvcp-contact-rep { margin: 10px 0 0; color: #984D3F; }
.rvcp-contact-rep.rvcp-contact-ok { color: var(--sauge); }
.rvcp-msg-hist { margin-top: 22px; padding-top: 16px; border-top: 1px solid rgba(214,174,123,.3); }
.rvcp-msg-liste { list-style: none; margin: 0 0 10px; padding: 0; border: 1px solid rgba(214,174,123,.4); border-radius: 6px; background: #fff; }
.rvcp-msg-liste li { padding: 11px 14px; border-top: 1px solid rgba(214,174,123,.25); display: grid; gap: 3px; }
.rvcp-msg-liste li:first-child { border-top: 0; }
.rvcp-msg-tete { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.rvcp-msg-tete b { font-weight: 500; font-size: 13.5px; color: var(--encre); }
.rvcp-msg-tete small { font-size: 12px; color: var(--or-f); }
.rvcp-msg-txt { font-size: 13px; color: var(--texte); }
.rvcp-contact-form, .rvcp-contact-form label { min-width: 0; max-width: 100%; }
.rvcp-contact-form select, .rvcp-contact-form textarea, .rvcp-contact-form button { box-sizing: border-box; max-width: 100%; min-width: 0; }
.rvcp-contact-form select { text-overflow: ellipsis; }
.rvcp-deux > .rvcp-bloc { min-width: 0; }
.rvcp .rvcp-contact-form select { width: 100% !important; max-width: 100% !important; display: block; }
.rvcp-contact-form label { grid-template-columns: minmax(0, 1fr); } .rvcp-contact-form label > *, .rvcp-contact-form .rvg-sel { min-width: 0; max-width: 100%; } .rvcp-contact-form .rvg-sel-btn { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rvcp-form label { grid-template-columns: minmax(0, 1fr); } .rvcp label > .rvg-sel { min-width: 0; max-width: 100%; }
.rvcp .rvg-sel, .rvcp .rvg-sel-btn { min-width: 0; max-width: 100%; }
.rvcp .rvg-sel-btn { overflow: hidden; }
.rvcp .rvg-sel-btn > span { min-width: 0; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- Impression d'une commande ---------- */
@media print {
	html.rvcp-impression body * { visibility: hidden !important; }
	html.rvcp-impression .rvcp-a-imprimer, html.rvcp-impression .rvcp-a-imprimer * { visibility: visible !important; }
	html.rvcp-impression .rvcp-a-imprimer { position: absolute !important; left: 0; top: 0; width: 100% !important; box-shadow: none !important; border: 0 !important; }
	html.rvcp-impression .rvcp-a-imprimer .rvcp-cmd-gestes button, html.rvcp-impression .rvcp-a-imprimer .rvcp-cmd-gestes a { display: none !important; }
	html.rvcp-impression .rvcp-a-imprimer .rvcp-cmd-d { display: block !important; }
}

/* ---------- Mes messages ---------- */
.rvcp-msg-haut { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.rvcp-msg-onglets { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid rgba(214,174,123,.45); border-radius: 999px; background: #FAF6F0; max-width: 100%; }
.rvcp-msg-onglets button { border: 0 !important; background: transparent !important; color: var(--sauge) !important; padding: 7px 14px !important; border-radius: 999px !important; font: 500 12px/1.2 Montserrat, sans-serif !important; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; box-shadow: none !important; display: inline-flex; align-items: center; gap: 6px; }
.rvcp-msg-onglets button i { font-style: normal; font-size: 10.5px; min-width: 18px; padding: 1px 6px; border-radius: 999px; background: rgba(214,174,123,.25); color: var(--sauge); text-align: center; }
.rvcp-msg-onglets button[aria-selected="true"] { background: var(--sauge) !important; color: #FAF6F0 !important; }
.rvcp-msg-onglets button[aria-selected="true"] i { background: rgba(250,246,240,.2); color: #FAF6F0; }
.rvcp-msg-ecrire { flex: none; }
.rvcp-msg-boite { list-style: none; margin: 0; padding: 0; border: 1px solid rgba(214,174,123,.4); border-radius: 6px; background: #fff; overflow: hidden; }
.rvcp-msg-boite li { border-top: 1px solid rgba(214,174,123,.22); }
.rvcp-msg-boite li:first-child, .rvcp-msg-boite li[hidden] + li:not([hidden]) { border-top: 0; }
.rvcp-msg-ouvrir { all: unset; box-sizing: border-box; display: flex; gap: 12px; align-items: flex-start; width: 100%; padding: 13px 14px; cursor: pointer; }
.rvcp-msg-ouvrir:hover, .rvcp-msg-ouvrir:focus-visible { background: #FAF6F0; }
.rvcp-msg-ico svg { width: 20px; height: 20px; fill: none; stroke: var(--or-f); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; margin-top: 2px; }
.rvcp-msg-corps { min-width: 0; flex: 1; display: grid; gap: 3px; }
.rvcp-msg-l1 { display: flex; justify-content: space-between; gap: 10px; min-width: 0; }
.rvcp-msg-l1 b { font: 500 14px/1.35 Montserrat, sans-serif; color: var(--encre); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rvcp-msg-l1 small { flex: none; font-size: 11.5px; color: var(--or-f); white-space: nowrap; }
.rvcp-msg-ap { font-size: 12.5px; line-height: 1.5; color: var(--texte); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rvcp-non-lu .rvcp-msg-l1 b { font-weight: 600; }
.rvcp-non-lu .rvcp-msg-ico { position: relative; }
.rvcp-non-lu .rvcp-msg-ico::after { content: ""; position: absolute; top: 0; right: -3px; width: 8px; height: 8px; border-radius: 50%; background: #D6AE7B; }
.rvcp-msg-vide { margin: 12px 0 0; }
.rvcp-msg-autre { margin-top: 20px; padding-top: 14px; border-top: 1px solid rgba(214,174,123,.3); }
.rvcp-msg-voies { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rvcp-msg-voies a { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid rgba(214,174,123,.55); border-radius: 999px; background: #fff; color: var(--sauge) !important; text-decoration: none !important; font-size: 13px; }
.rvcp-msg-voies a:hover { background: var(--sauge); color: #FAF6F0 !important; border-color: var(--sauge); }
.rvcp-msg-voies svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Fenêtres (écrire, lire un message ou un document) ---------- */
html.rvcp-fenetre-ouverte { overflow: hidden; }
.rvcp-fenetre { position: fixed; inset: 0; z-index: 100000; background: rgba(53,69,53,.42); display: flex; align-items: center; justify-content: center; padding: 18px; }
.rvcp-fenetre[hidden] { display: none; }
.rvcp-fenetre-boite { width: 100%; max-width: 560px; max-height: calc(100vh - 36px); max-height: calc(100dvh - 36px); background: #fff; border-top: 3px solid #D6AE7B; border-radius: 6px; box-shadow: 0 24px 60px rgba(53,69,53,.25); display: flex; flex-direction: column; overflow: hidden; }
.rvcp-fenetre-large { max-width: 760px; height: calc(100vh - 36px); height: calc(100dvh - 36px); }
.rvcp-fenetre-tete { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px 12px 18px; border-bottom: 1px solid rgba(214,174,123,.3); }
.rvcp-fenetre-tete b { font: 500 20px/1.25 "Cormorant Garamond", Georgia, serif; color: var(--sauge); }
.rvcp-lecteur-t { min-width: 0; display: grid; }
.rvcp-lecteur-t b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rvcp-lecteur-t small { font-size: 11.5px; color: var(--or-f); }
.rvcp-lecteur-gestes { display: inline-flex; align-items: center; gap: 4px; flex: none; }
.rvcp-lecteur-gestes button:not(.rvcp-fenetre-x) { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 999px; font: 500 12px Montserrat, sans-serif; color: var(--sauge); }
.rvcp-lecteur-gestes button:not(.rvcp-fenetre-x):hover { background: #FAF6F0; }
.rvcp-lecteur-gestes button[hidden] { display: none !important; }
.rvcp-lecteur-gestes svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.rvcp-fenetre-x { all: unset; cursor: pointer; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; font-size: 24px; line-height: 1; color: var(--sauge); }
.rvcp-fenetre-x:hover { background: #FAF6F0; }
.rvcp-fenetre-corps { padding: 16px 18px 20px; overflow: auto; }
.rvcp-lecteur-cadre { flex: 1; width: 100%; border: 0; background: #F2EADF; }
@media (max-width: 600px) {
	.rvcp-fenetre { padding: 0; align-items: flex-end; }
	.rvcp-fenetre-boite { max-height: 92vh; max-height: 92dvh; border-radius: 12px 12px 0 0; }
	.rvcp-fenetre-large { height: 92vh; height: 92dvh; }
	.rvcp-lecteur-gestes button span { display: none; }
	.rvcp-msg-ecrire { width: 100%; }
}

/* ---------- Menu de gauche repliable (ordinateur, tablette, téléphone en version ordinateur) ---------- */
.rvcp-replier { display: none; }
@media (min-width: 901px) {
	.rvcp-tb { transition: grid-template-columns .35s cubic-bezier(.4,0,.2,1); }
	.rvcp-cote { position: sticky; }
	.rvcp-replier { all: unset; box-sizing: border-box; position: absolute !important; top: 12px; right: 10px; z-index: 3; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(214,174,123,.55); background: #fff; color: var(--sauge); cursor: pointer; transition: background .2s, transform .35s; }
	.rvcp-replier:hover { background: var(--sauge); color: #FAF6F0; border-color: var(--sauge); }
	.rvcp-replier svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
	html.rvcp-replie .rvcp-tb { grid-template-columns: 76px minmax(0, 1fr) !important; }
	html.rvcp-replie .rvcp-cote { padding: 54px 10px 18px !important; overflow-x: hidden; }
	html.rvcp-replie .rvcp-replier { right: 50%; transform: translateX(50%) rotate(180deg); }
	html.rvcp-replie .rvcp-qui > div, html.rvcp-replie .rvcp-menu .t, html.rvcp-replie .rvcp-menu i, html.rvcp-replie .rvcp-menu .rvcp-nouveau, html.rvcp-replie .rvcp-sep,
	html.rvcp-replie .rvcp-liens, html.rvcp-replie .rvcp-joindre, html.rvcp-replie .rvcp-liens-fin { display: none !important; }
	html.rvcp-replie .rvcp-qui { justify-content: center; margin-bottom: 10px; }
	html.rvcp-replie .rvcp-av { width: 44px !important; height: 44px !important; }
	html.rvcp-replie .rvcp-menu a { justify-content: center; padding: 11px 0 !important; position: relative; }
	html.rvcp-replie .rvcp-menu a::after { display: none !important; }
	html.rvcp-replie .rvcp-menu a .rvcp-mi { margin: 0 !important; width: 20px; height: 20px; }
	html.rvcp-replie .rvcp-reserver { font-size: 0 !important; letter-spacing: 0 !important; padding: 12px 0 !important; justify-content: center; }
	html.rvcp-replie .rvcp-reserver svg { margin: 0 !important; width: 18px; height: 18px; }
}
/* Les boutons du site (fond vert, bordure, majuscules) ne doivent pas habiller ceux de la boîte. */
.rvcp .rvcp-msg-boite .rvcp-msg-ouvrir { display: flex !important; width: 100% !important; min-height: 0 !important; justify-content: flex-start !important; text-align: left !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 13px 14px !important; margin: 0 !important; box-shadow: none !important; color: inherit !important; font: inherit !important; letter-spacing: 0 !important; text-transform: none !important; }
.rvcp .rvcp-msg-boite .rvcp-msg-ouvrir:hover, .rvcp .rvcp-msg-boite .rvcp-msg-ouvrir:focus-visible { background: #FAF6F0 !important; }
.rvcp-fenetre .rvcp-fenetre-x, .rvcp-fenetre .rvcp-lecteur-gestes button { background: transparent !important; border: 0 !important; box-shadow: none !important; color: var(--sauge) !important; min-height: 0 !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 !important; }
.rvcp-fenetre .rvcp-fenetre-x { width: 34px !important; height: 34px !important; padding: 0 !important; border-radius: 50% !important; font: 300 26px/1 Arial, sans-serif !important; display: grid !important; place-items: center; }
.rvcp-fenetre .rvcp-lecteur-gestes button:not(.rvcp-fenetre-x) { padding: 7px 10px !important; border-radius: 999px !important; font: 500 12px/1 Montserrat, sans-serif !important; display: inline-flex !important; }
.rvcp-fenetre .rvcp-fenetre-x:hover, .rvcp-fenetre .rvcp-lecteur-gestes button:hover { background: #FAF6F0 !important; }
.rvcp .rvcp-msg-onglets button { min-height: 0 !important; margin: 0 !important; }
@media (max-width: 600px) {
	.rvcp-msg-onglets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; border-radius: 14px; }
	.rvcp .rvcp-msg-onglets button { justify-content: center; padding: 8px 4px !important; font-size: 11px !important; letter-spacing: .03em; border-radius: 10px !important; }
}
.rvcp .rvcp-replier { min-height: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; }
@media (min-width: 901px) {
	html body .rvcp-cote .rvcp-replier { width: 30px !important; height: 30px !important; border-radius: 50% !important; background: #fff !important; color: var(--sauge) !important; border: 1px solid rgba(214,174,123,.55) !important; display: grid !important; place-items: center; }
	html body .rvcp-cote .rvcp-replier:hover { background: var(--sauge) !important; color: #FAF6F0 !important; }
	html.rvcp-replie body .rvcp-cote a.rvcp-reserver { display: grid !important; place-items: center; width: 46px !important; height: 46px !important; min-height: 0 !important; margin: 6px auto 0 !important; padding: 0 !important; border-radius: 50% !important; font-size: 0 !important; line-height: 0 !important; letter-spacing: 0 !important; overflow: hidden; }
	html.rvcp-replie body .rvcp-cote a.rvcp-reserver svg { width: 18px !important; height: 18px !important; margin: 0 !important; }
}
@media (min-width: 901px) {
	html.rvcp-replie body .rvcp-cote .rvcp-menu { width: 100% !important; min-width: 0 !important; max-width: 100% !important; margin: 0 !important; display: flex !important; flex-direction: column; align-items: center; }
	html.rvcp-replie body .rvcp-cote .rvcp-menu a { display: flex !important; grid-template-columns: none !important; justify-content: center !important; align-items: center; width: 44px !important; height: 40px; min-width: 0 !important; margin: 2px auto !important; padding: 0 !important; gap: 0 !important; border-radius: 50% !important; }
	html.rvcp-replie body .rvcp-cote .rvcp-menu a.actif { background: rgba(214,174,123,.18); }
	html.rvcp-replie body .rvcp-cote .rvcp-menu a .rvcp-mi { display: block; margin: 0 !important; }
	html.rvcp-replie body .rvcp-cote .rvcp-menu a > *:not(.rvcp-mi) { display: none !important; }
	html.rvcp-replie body .rvcp-cote a.rvcp-reserver svg { display: block !important; position: static !important; transform: none !important; }
	html.rvcp-replie body .rvcp-cote .rvcp-bas { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
}
@media (min-width: 901px) {
	html.rvcp-replie body .rvcp-cote a.rvcp-reserver { display: flex !important; align-items: center !important; justify-content: center !important; white-space: nowrap; }
}
@media (min-width: 901px) {
	html.rvcp-replie body .rvcp-cote a.rvcp-reserver { position: relative !important; color: transparent !important; }
	html.rvcp-replie body .rvcp-cote a.rvcp-reserver svg { position: absolute !important; left: 50% !important; top: 50% !important; transform: translate(-50%, -50%) !important; color: #FAF6F0; stroke: #FAF6F0; }
}
