/* Espace client et pages légales : bandeau photo, cartes, sommaire. Palette du site. */
.rvge {
	--sauge: #354535; --sauge-f: #27342a; --or: #D6AE7B; --or-f: #A8834F; --creme: #FAF6F0; --papier: #F2EADF;
	--encre: #2F2A24; --texte: #5A544B;
	--marge: max(clamp(16px, 4.6vw, 80px), calc((100% - 1400px) / 2));
	background: var(--creme); color: var(--texte);
	font-family: "Montserrat", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; font-weight: 400;
	padding-bottom: clamp(56px, 8vw, 110px); overflow-x: clip;
}
.rvge *, .rvge *::before, .rvge *::after { box-sizing: border-box; }
.rvge h1, .rvge h2 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; letter-spacing: .01em; text-wrap: balance; }
.rvge a { -webkit-tap-highlight-color: rgba(214,174,123,.22); }
.rvge :focus-visible { outline: 2px solid var(--or); outline-offset: 3px; }

/* ---------- Bandeau photo ---------- */
.rvbn { position: relative; isolation: isolate; min-height: clamp(380px, 40vw, 520px); display: grid; place-items: center; background: var(--sauge); overflow: hidden; }
.rvbn-photos { position: absolute; inset: 0; z-index: -2; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 0; }
.rvbn-photos span { background-size: cover; background-position: center 30%; transform: none; animation: rvbn-entree 1.4s cubic-bezier(.2,.7,.2,1) both; }
.rvbn-photos span:nth-child(2) { animation-delay: .08s; } .rvbn-photos span:nth-child(3) { animation-delay: .16s; }
.rvbn-photos span:nth-child(4) { animation-delay: .24s; } .rvbn-photos span:nth-child(5) { animation-delay: .32s; } .rvbn-photos span:nth-child(6) { animation-delay: .4s; }
@keyframes rvbn-entree { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: none; } } /* fin à 100 % : aucune photo agrandie, donc aucune perte de netteté */
.rvbn::before { content: ""; position: absolute; inset: 0; z-index: -1;
	background: radial-gradient(ellipse 55% 65% at 50% 50%, rgba(28,38,30,.66), rgba(28,38,30,.34) 72%), linear-gradient(180deg, rgba(28,38,30,.12), rgba(28,38,30,.4)); }
.rvbn::after { content: ""; position: absolute; inset: clamp(12px, 1.6vw, 22px); z-index: -1; border: 1px solid rgba(214,174,123,.55); pointer-events: none; }
.rvbn-texte { text-align: center; padding: clamp(56px, 7vw, 96px) 24px; max-width: 760px; animation: rvbn-texte 1s .25s ease both; }
@keyframes rvbn-texte { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.rvbn-surtitre { margin: 0 0 14px; font-size: 11px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--or); display: inline-flex; align-items: center; gap: 14px; }
.rvbn-surtitre::before, .rvbn-surtitre::after { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .7; }
.rvge .rvbn h1 { margin: 0; color: #FBF8F1; font-size: clamp(34px, 5.2vw, 60px); line-height: 1.08; text-shadow: 0 2px 24px rgba(0,0,0,.25); }
.rvbn-intro { margin: 18px auto 0; max-width: 54ch; color: #E4E8E1; font-size: clamp(14px, 1.3vw, 16px); line-height: 1.75; font-weight: 300; text-wrap: pretty; }
.rvbn-geste { margin: 30px 0 0; }
.rvge .rvbn-bouton { display: inline-flex; align-items: center; gap: 10px; padding: 15px 30px; border-radius: 999px; background: var(--or); color: var(--encre) !important; text-decoration: none;
	font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; transition: background .3s, transform .3s; }
.rvge .rvbn-bouton:hover { background: #FBF8F1; transform: translateY(-1px); }
.rvbn-court { min-height: clamp(300px, 30vw, 400px); }
.rvbn-court .rvbn-photos span { background-position: center; }

/* ---------- Boutons communs ---------- */
.rvge .rvge-bouton { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 13px 24px; border: 1px solid var(--sauge); border-radius: 999px; background: var(--sauge);
	color: #FBF8F1 !important; text-decoration: none; font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; transition: background .3s, border-color .3s, color .3s; }
.rvge .rvge-bouton:hover, .rvge .rvge-bouton:focus-visible { background: var(--or); border-color: var(--or); color: var(--encre) !important; }
.rvge .rvge-bouton span { transition: transform .3s; } .rvge .rvge-bouton:hover span { transform: translateX(3px); }
.rvge .rvge-bouton-ligne { background: transparent; color: var(--sauge) !important; border-color: var(--or); }
.rvge .rvge-lien { color: var(--sauge) !important; font-size: 13px; text-decoration: underline; text-decoration-color: var(--or); text-underline-offset: 4px; }
.rvge .rvge-lien:hover { color: var(--or-f) !important; }

/* ---------- Cartes de l'espace client ---------- */
.rvge-grille { isolation: isolate; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(26px, 3vw, 42px); padding: clamp(56px, 7vw, 96px) var(--marge) 0; }
.rvge-carte { position: relative; display: flex; flex-direction: column; padding: clamp(26px, 2.8vw, 40px); background: #fff; border: 1px solid rgba(214,174,123,.34); border-radius: 4px; }
.rvge-carte::after { content: ""; position: absolute; z-index: -1; inset: 10px -10px -10px 10px; border: 1px solid var(--or); border-radius: 4px; transition: inset .45s ease, border-color .45s; }
.rvge-carte:hover::after { inset: 15px -15px -15px 15px; border-color: var(--or-f); }
.rvge-ico { display: inline-grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--papier); color: var(--sauge); margin-bottom: 18px; flex: none; }
.rvge-ico svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.rvge .rvge-carte h2 { margin: 0 0 10px; color: var(--encre); font-size: clamp(24px, 2.2vw, 30px); line-height: 1.15; }
.rvge-carte p { margin: 0 0 22px; font-size: 14.5px; line-height: 1.7; }
.rvge-carte .rvge-gestes { margin: auto 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
@media (min-width: 1025px) {
	.rvge-grille { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.rvge-grille > .rvge-carte { grid-column: span 2; }
	.rvge-grille > .rvge-carte:nth-last-child(-n+2):nth-child(3n+2), .rvge-grille > .rvge-carte:nth-last-child(-n+2):nth-child(3n+3) { grid-column: span 3; }
	.rvge-grille > .rvge-vedette { grid-column: 1 / -1; }
}
.rvge-vedette { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; column-gap: clamp(20px, 3vw, 44px); align-items: center; background: var(--sauge); border-color: rgba(214,174,123,.5); }
.rvge-vedette .rvge-ico { grid-row: span 2; width: 76px; height: 76px; margin: 0; background: rgba(214,174,123,.16); color: var(--or); }
.rvge-vedette .rvge-ico svg { width: 38px; height: 38px; }
.rvge .rvge-vedette h2 { color: #FBF8F1; font-size: clamp(28px, 3vw, 38px); margin: 0 0 6px; align-self: end; }
.rvge-vedette p { color: #D9E0D6; margin: 0; max-width: 60ch; align-self: start; }
.rvge-vedette .rvge-gestes { grid-row: 1 / span 2; grid-column: 3; margin: 0; }
.rvge .rvge-vedette .rvge-bouton { background: var(--or); border-color: var(--or); color: var(--encre) !important; padding: 16px 30px; }
.rvge .rvge-vedette .rvge-bouton:hover { background: #FBF8F1; border-color: #FBF8F1; }

/* Bande Clic & Craie et contact */
.rvge-bande { margin: clamp(56px, 7vw, 90px) var(--marge) 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: clamp(18px, 3vw, 40px); align-items: center;
	padding: clamp(24px, 3vw, 38px) clamp(24px, 3.4vw, 46px); background: var(--papier); border-left: 3px solid var(--or); border-radius: 4px; }
.rvge-bande-ico { width: 62px; height: 62px; border-radius: 50%; background: #fff; color: var(--sauge); display: grid; place-items: center; }
.rvge-bande-ico svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.rvge .rvge-bande h2 { margin: 0 0 4px; color: var(--encre); font-size: clamp(23px, 2.2vw, 28px); }
.rvge-bande p { margin: 0; font-size: 14.5px; line-height: 1.65; }
.rvge-contact { margin: clamp(56px, 7vw, 90px) auto 0; padding: 0 24px; max-width: 680px; text-align: center; }
.rvge-contact::before { content: ""; display: block; width: 60px; height: 1px; background: var(--or); margin: 0 auto 30px; }
.rvge .rvge-contact h2 { margin: 0 0 12px; color: var(--encre); font-size: clamp(28px, 3vw, 36px); }
.rvge-contact p { margin: 0 0 24px; font-size: 14.5px; line-height: 1.75; text-wrap: pretty; }
.rvge-contact-liens { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.rvge-contact-liens .rvge-bouton { text-transform: none; letter-spacing: .03em; font-size: 14px; font-weight: 500; }

/* ---------- Pages légales ---------- */
.rvgl-bref { list-style: none; margin: calc(-1 * clamp(34px, 4vw, 52px)) var(--marge) 0; padding: 0; position: relative; z-index: 1;
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: #fff; border: 1px solid rgba(214,174,123,.34); border-radius: 4px; box-shadow: 0 18px 50px rgba(47,42,36,.08); }
.rvgl-bref li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; align-items: center; padding: clamp(20px, 2.4vw, 30px); }
.rvgl-bref li + li { border-left: 1px solid var(--papier); }
.rvgl-bref .rvge-ico { grid-row: span 2; margin: 0; width: 50px; height: 50px; }
.rvgl-bref .rvge-ico svg { width: 26px; height: 26px; }
.rvgl-bref strong { color: var(--encre); font-family: "Cormorant Garamond", Georgia, serif; font-size: 21px; font-weight: 500; line-height: 1.2; align-self: end; }
.rvgl-bref li > span:last-child { font-size: 13px; line-height: 1.55; align-self: start; }
.rvgl-corps { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: clamp(36px, 5vw, 80px); align-items: start; padding: clamp(50px, 6vw, 84px) var(--marge) 0; max-width: calc(1180px + 2 * var(--marge)); margin: 0 auto; }
.rvgl-sommaire { position: sticky; top: 110px; }
.rvgl-sommaire summary { list-style: none; cursor: default; margin: 0 0 16px; font-size: 11px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--or-f); pointer-events: none; }
.rvgl-sommaire summary::-webkit-details-marker { display: none; }
.rvgl-sommaire ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid rgba(214,174,123,.5); counter-reset: s; }
.rvgl-sommaire li { counter-increment: s; }
.rvge .rvgl-sommaire a { display: flex; gap: 10px; padding: 8px 0 8px 18px; margin-left: -1px; border-left: 2px solid transparent; color: var(--texte) !important; text-decoration: none; font-size: 13.5px; line-height: 1.4; transition: color .2s, border-color .2s; }
.rvgl-sommaire a::before { content: counter(s, decimal-leading-zero); color: var(--or); font-size: 11px; font-weight: 600; padding-top: 2px; }
.rvge .rvgl-sommaire a:hover { color: var(--sauge) !important; border-left-color: var(--or); }
.rvgl-texte { background: #fff; border: 1px solid rgba(214,174,123,.28); border-radius: 4px; padding: clamp(28px, 4.4vw, 64px); min-width: 0; }
.rvgl-maj { margin: 0 0 22px; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--or-f); display: inline-block; padding: 6px 14px; background: var(--creme); border-radius: 999px; }
.rvgl-texte .rvg-legal { max-width: none; font-family: inherit; }
.rvge .rvgl-texte h2 { scroll-margin-top: 110px; margin: 2.2em 0 .6em; padding-top: 1.4em; border-top: 1px solid var(--papier); color: var(--encre); font-size: clamp(25px, 2.6vw, 32px); line-height: 1.2; }
.rvge .rvgl-texte .rvg-legal > h2:first-of-type { margin-top: 1.4em; }
.rvgl-texte p, .rvgl-texte li { font-size: 15px; line-height: 1.8; color: var(--texte); }
.rvgl-texte p { margin: 0 0 1em; }
.rvgl-texte ul { margin: 0 0 1.2em; padding: 0; list-style: none; }
.rvgl-texte li { position: relative; padding-left: 26px; margin: 0 0 .6em; }
.rvgl-texte li::before { content: ""; position: absolute; left: 4px; top: .72em; width: 9px; height: 1px; background: var(--or); box-shadow: 0 0 0 0 var(--or); }
.rvgl-texte strong { color: var(--sauge); font-weight: 600; }
.rvge .rvgl-texte a { color: var(--sauge) !important; text-decoration: underline; text-decoration-color: var(--or); text-underline-offset: 3px; overflow-wrap: anywhere; }
.rvge .rvgl-texte a:hover { color: var(--or-f) !important; }
.rvgl-texte .rvg-nowrap { white-space: nowrap; }
.rvgl-fin { margin-top: 2.6em; padding: clamp(22px, 3vw, 32px); background: var(--sauge); border-radius: 4px; color: #D9E0D6; }
.rvgl-fin p { color: #D9E0D6; margin: 0 0 18px; }
.rvgl-fin strong { color: #FBF8F1; }
.rvgl-fin-gestes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin: 0 !important; }
.rvge .rvgl-fin .rvge-bouton { background: var(--or); border-color: var(--or); color: var(--encre) !important; }
.rvge .rvgl-fin .rvge-bouton:hover { background: #FBF8F1; border-color: #FBF8F1; }
.rvge .rvgl-fin .rvge-lien { color: #FBF8F1 !important; text-decoration: underline !important; }

/* ---------- Tablette ---------- */
@media (max-width: 1024px) {
	.rvge-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rvge-grille .rvge-carte:last-child:nth-child(even) { grid-column: 1 / -1; }
	.rvge-grille .rvge-vedette { grid-column: 1 / -1; grid-template-columns: auto minmax(0, 1fr); }
	.rvge-vedette .rvge-gestes { grid-row: auto; grid-column: 1 / -1; margin-top: 22px; }
	.rvbn-photos span:nth-child(n+5) { display: none; }
}
@media (max-width: 999px) {
	.rvgl-corps { grid-template-columns: minmax(0, 1fr); gap: 22px; }
	.rvgl-sommaire { position: static; background: #fff; border: 1px solid rgba(214,174,123,.34); border-radius: 4px; padding: 0 20px; }
	.rvgl-sommaire summary { pointer-events: auto; cursor: pointer; margin: 0; padding: 18px 0; display: flex; justify-content: space-between; align-items: center; }
	.rvgl-sommaire summary::after { content: "+"; font-size: 20px; font-weight: 300; letter-spacing: 0; color: var(--sauge); }
	.rvgl-sommaire details[open] summary::after { content: "–"; }
	.rvgl-sommaire ol { margin-bottom: 18px; }
	.rvgl-bref { grid-template-columns: minmax(0, 1fr); }
	.rvgl-bref li + li { border-left: 0; border-top: 1px solid var(--papier); }
	.rvgl-bref li { padding: 18px 22px; }
}
/* ---------- Téléphone ---------- */
@media (max-width: 767px) {
	.rvbn { min-height: 460px; }
	.rvbn-court { min-height: 330px; }
	.rvbn-photos span:nth-child(n+4) { display: none; }
	.rvbn-texte { padding: 64px 26px; }
	.rvbn-surtitre::before, .rvbn-surtitre::after { width: 22px; }
	.rvge-grille { grid-template-columns: minmax(0, 1fr); gap: 30px; padding-top: 48px; }
	.rvge-grille .rvge-carte:last-child:nth-child(even) { grid-column: auto; }
	.rvge-vedette { display: flex; flex-direction: column; align-items: stretch; }
	.rvge-vedette .rvge-ico { align-self: flex-start; }
	.rvge .rvge-vedette h2, .rvge-vedette p { align-self: auto; }
	.rvgl-maj { font-size: 10.5px; letter-spacing: .08em; padding: 5px 12px; }
	.rvge-vedette .rvge-ico { margin-bottom: 16px; width: 62px; height: 62px; }
	.rvge .rvge-vedette h2 { margin-bottom: 10px; }
	.rvge-carte::after { inset: 8px -8px -8px 8px; }
	.rvge-carte:hover::after { inset: 10px -10px -10px 10px; }
	.rvge-carte .rvge-gestes { flex-direction: column; align-items: stretch; text-align: center; }
	.rvge .rvge-bouton { width: 100%; }
	.rvge-bande { grid-template-columns: minmax(0, 1fr); text-align: center; justify-items: center; }
	.rvge-contact-liens { flex-direction: column; }
	.rvgl-bref { margin-top: -28px; }
	.rvgl-texte { padding: 26px 20px; }
	.rvgl-texte p, .rvgl-texte li { font-size: 14.5px; }
	.rvgl-fin-gestes { flex-direction: column; align-items: stretch; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	.rvbn-photos span, .rvbn-texte { animation: none; }
	.rvge-carte::after, .rvge .rvge-bouton, .rvge .rvge-bouton span { transition: none; }
}

/* Bandeaux (1.8.8) : 6 photos verticales ou 3 horizontales ; sur téléphone, 3 verticales ou 1 horizontale, toujours nettes */
.rvbn-photos.rvbn-n3 span:nth-child(n) { display: block; }
@media (max-width: 1024px) { .rvbn-photos.rvbn-n6 span:nth-child(n+5) { display: none; } }
@media (max-width: 767px) {
	.rvbn-photos.rvbn-n6 span:nth-child(n+4) { display: none; }
	/* 3 photos horizontales : les 3 restent visibles, l'une au-dessus de l'autre (une par rangée). */
	.rvbn-photos.rvbn-n3 { grid-auto-flow: row; grid-auto-rows: 1fr; grid-auto-columns: auto; grid-template-columns: 1fr; }
	.rvbn-photos.rvbn-n3 span:nth-child(n) { display: block; }
}
/* Bandeaux en vraies images : chargées tout de suite, apparition courte */
.rvbn-photos span.rvbn-img { position: relative; overflow: hidden; background: #2b3a2d; }
.rvbn-photos span.rvbn-img img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; display: block; }
.rvbn-photos span { animation-duration: .6s !important; }
.rvbn-photos span:nth-child(n) { animation-delay: 0s !important; }
.rvbn-texte { animation-duration: .5s !important; animation-delay: .05s !important; }
.rvbn-intro strong { font-weight: 600; color: #FBF8F1; }

/* Téléphone : une seule photo par bannière, en pleine largeur (choisie dans Site Web › Modifier mes pages › Bannières). */
@media (max-width: 767px) {
	.rvbn .rvbn-photos { display: block !important; }
	.rvbn .rvbn-photos > span { display: none !important; }
	.rvbn .rvbn-photos > span.rvbn-tel { display: block !important; position: absolute; inset: 0; }
}

/* Bannières : la même hauteur sur toutes les pages (le texte reste centré). */
.rvbn, .rvbn.rvbn-court, .rvbn.rvgb-court, .rvbn.rvbn-boutique { min-height: 540px !important; }
@media (max-width: 1024px) { .rvbn, .rvbn.rvbn-court, .rvbn.rvgb-court, .rvbn.rvbn-boutique { min-height: 520px !important; } }
@media (max-width: 767px) { .rvbn, .rvbn.rvbn-court, .rvbn.rvgb-court, .rvbn.rvbn-boutique { min-height: 500px !important; } }

/* Bannières à formats mélangés (oct. 2026) : chaque photo prend une largeur proportionnelle à sa forme
   (ex. 4 verticales + 1 horizontale), sur ordinateur et tablette. Sur téléphone : une seule photo. */
@media (min-width: 768px) {
	.rvbn .rvbn-photos.rvbn-mix { display: flex !important; gap: 0; }
	.rvbn .rvbn-photos.rvbn-mix > span { display: block !important; flex-basis: 0; flex-shrink: 1; min-width: 0; position: relative; }
}
