/*
 * Bloc « Section de relevé » (acf/releve), maquette « relevé en cours » validée le 04/10 : la nuit du scan
 * (bleu nuit, trame de points), le papier calque du plan (quadrillage) et le blanc ; lignes de cote sous les
 * titres, laser orange, repères d'angle de viseur, photos décomposées en nuage de points. Titres sans couleur
 * ni italique, police de la charte. releve.js pose la classe is-in à l'arrivée à l'écran.
 */

.cp-rl {
	--n: var(--wp--preset--color--navy, #000033);
	--o: var(--wp--preset--color--orange, #FF9900);
	--paper: #F4F6FA;
	--ink: #11142A;
	--mute: #565C70;
	--soft: #B9BDD6;
	--line: rgba(0, 0, 51, .12);
	--ease: cubic-bezier(.2, .7, .2, 1);
	position: relative;
	margin: 0 !important;
	padding-block: clamp(96px, 12vw, 176px);
	overflow: clip;
	color: var(--ink);
	font-size: 18px;
	line-height: 1.75;
}
.cp-rl,
.cp-rl * { box-sizing: border-box; }
.cp-rl :where(h2, h3, p, ol, ul, figure) { margin: 0; padding: 0; }
.cp-rl :where(ol, ul) { list-style: none; }
.cp-rl img { display: block; max-width: 100%; height: auto; }
.cp-rl__w { position: relative; max-width: 1320px; margin: 0 auto; padding-inline: clamp(16px, 4vw, 48px); }

/* ---------- Trois matières ---------- */
.cp-rl--blanc { background: #fff; }
.cp-rl--nuit { background: radial-gradient(70% 60% at 85% 0%, #14147A 0%, rgba(20, 20, 122, 0) 60%), var(--n); color: #fff; }
.cp-rl--nuit::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .16) 1px, transparent 1.3px); background-size: 18px 18px; -webkit-mask-image: linear-gradient(180deg, #000, transparent 70%); mask-image: linear-gradient(180deg, #000, transparent 70%); pointer-events: none; }
.cp-rl--calque { background: #F1F3F9; }
/* Trame de points qui s'estompe depuis l'angle haut droit (validée le 05/10, remplace le quadrillage) */
.cp-rl--calque::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(0, 0, 51, .22) 1px, transparent 1.4px); background-size: 14px 14px; -webkit-mask-image: radial-gradient(70% 80% at 100% 0%, #000 0%, transparent 75%); mask-image: radial-gradient(70% 80% at 100% 0%, #000 0%, transparent 75%); pointer-events: none; }

/* ---------- Textes (couleurs déclarées : les titres héritent sinon du bleu nuit global) ---------- */
.cp-rl .cp-rl__h { color: var(--n); font-size: clamp(34px, 4vw, 60px); line-height: 1.04; font-weight: 700; letter-spacing: -.025em; text-wrap: balance; }
.cp-rl .cp-rl__h3 { color: var(--n); font-size: clamp(22px, 1.9vw, 28px); line-height: 1.2; font-weight: 600; letter-spacing: -.01em; margin-bottom: 14px; }
.cp-rl--nuit .cp-rl__h,
.cp-rl--nuit .cp-rl__h3,
.cp-rl--photo .cp-rl__h { color: #fff; }
.cp-rl p,
.cp-rl .cp-rl__txt li { color: var(--mute); }
.cp-rl--nuit p,
.cp-rl--nuit .cp-rl__txt li { color: var(--soft); }
.cp-rl__txt > * + * { margin-top: 1.1em !important; }
.cp-rl__txt a { color: inherit; text-decoration-color: var(--o); text-underline-offset: 3px; }
.cp-rl .cp-rl__lead { margin-bottom: 22px; color: var(--ink); font-size: clamp(19px, 1.45vw, 22px); line-height: 1.6; }
.cp-rl--nuit .cp-rl__lead { color: #E3E5F2; }
.cp-rl__txt--2 { column-count: 2; column-gap: clamp(32px, 4vw, 72px); }
.cp-rl__txt--2 > * { break-inside: avoid; }
.cp-rl .cp-rl__cap { margin-top: 16px; color: #8A90A3; font-size: 14px; line-height: 1.5; }
.cp-rl--nuit .cp-rl__cap { color: #8E93B5; }

/* Ligne de cote : se trace sous le titre */
.cp-rl__cote { position: relative; width: min(100%, 560px); height: 14px; margin: 28px 0 clamp(40px, 5vw, 64px); color: var(--o); }
.cp-rl__cote::before { content: ""; position: absolute; left: 0; right: 0; top: 6px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--ease); }
.cp-rl__cote i { position: absolute; top: 0; width: 1px; height: 14px; background: currentColor; }
.cp-rl__cote i:first-child { left: 0; }
.cp-rl__cote i:last-of-type { right: 0; opacity: 0; transition: opacity .3s 1s; }
.cp-rl__cote b { position: absolute; right: 0; top: -24px; font-size: 12px; font-weight: 600; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; opacity: 0; transition: opacity .4s 1.1s; font-variant-numeric: tabular-nums; }
.cp-rl.is-in .cp-rl__cote::before { transform: none; }
.cp-rl.is-in .cp-rl__cote i,
.cp-rl.is-in .cp-rl__cote b { opacity: 1; }

/* Apparitions (classe cp-rl--anime posée par releve.js : sans script, tout est visible) */
.cp-rl--anime .cp-rl__rv { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.cp-rl--anime .cp-rl__rv.is-in { opacity: 1; transform: none; }

/* Boutons */
.cp-rl .cp-rl__btn { display: inline-flex; align-items: center; gap: 12px; min-height: 56px; margin-top: 36px; padding: 0 28px; border-radius: 8px; background: var(--o); color: var(--n); font-weight: 700; font-size: 16px; text-decoration: none; transition: background-color .25s, transform .25s; }
.cp-rl .cp-rl__btn:hover { background: #fff; color: var(--n); transform: translateY(-2px); }
.cp-rl__arw { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Grilles ---------- */
.cp-rl__g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 5vw, 96px); align-items: center; }
.cp-rl__g--57 { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.cp-rl__g--75 { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.cp-rl__g--84 { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); align-items: end; }
.cp-rl__g--84 .cp-rl__cote { margin-bottom: 0; }
.cp-rl__g--top { align-items: start; }
.cp-rl__col { min-width: 0; }

/* Viseur : repères d'angle orange */
.cp-rl__vis { position: relative; }
.cp-rl__vis::before,
.cp-rl__vis::after,
.cp-rl__c3,
.cp-rl__c4 { content: ""; position: absolute; z-index: 3; width: 22px; height: 22px; border: 0 solid var(--o); pointer-events: none; }
.cp-rl__vis::before { left: -10px; top: -10px; border-left-width: 2px; border-top-width: 2px; }
.cp-rl__vis::after { right: -10px; bottom: -10px; border-right-width: 2px; border-bottom-width: 2px; }
.cp-rl__c3 { right: -10px; top: -10px; border-right-width: 2px; border-top-width: 2px; }
.cp-rl__c4 { left: -10px; bottom: -10px; border-left-width: 2px; border-bottom-width: 2px; }

/* ---------- Scanner à 360° ---------- */
.cp-rl__scan { position: relative; display: grid; place-items: center; width: 100%; max-width: 520px; aspect-ratio: 1; margin-left: auto; }
.cp-rl__ring { position: absolute; inset: 4%; border: 1px dashed rgba(0, 0, 51, .25); border-radius: 50%; animation: cp-rl-spin 40s linear infinite; }
.cp-rl__ring::after { content: ""; position: absolute; left: 50%; top: -5px; width: 10px; height: 10px; margin-left: -5px; border-radius: 50%; background: var(--o); box-shadow: 0 0 0 6px rgba(255, 153, 0, .2); }
.cp-rl__ring2 { position: absolute; inset: 18%; border: 1px solid rgba(0, 0, 51, .08); border-radius: 50%; }
.cp-rl__deg { position: absolute; right: 2%; top: 12%; color: transparent; font-size: clamp(48px, 6vw, 88px); font-weight: 900; line-height: 1; letter-spacing: -.04em; -webkit-text-stroke: 1px rgba(0, 0, 51, .25); }
.cp-rl .cp-rl__obj { position: relative; width: 56%; mix-blend-mode: multiply; filter: drop-shadow(0 40px 40px rgba(0, 0, 51, .25)); }
@keyframes cp-rl-spin { to { transform: rotate(360deg); } }

/* ---------- Lecteur vidéo ---------- */
.cp-rl__player { position: relative; aspect-ratio: 16 / 9; max-width: 100%; overflow: hidden; border-radius: 8px; background: #000; }
.cp-rl .cp-rl__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cp-rl__player::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(0, 0, 30, .6), rgba(0, 0, 30, .05) 55%); pointer-events: none; }
.cp-rl__player iframe { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; border: 0; }
.cp-rl__play { position: absolute; left: 50%; top: 50%; z-index: 2; display: grid; place-items: center; width: 92px; height: 92px; margin: -46px 0 0 -46px; padding: 0; border: 0; border-radius: 50%; background: var(--o); color: var(--n); cursor: pointer; transition: transform .4s var(--ease); }
.cp-rl__play::before { content: ""; position: absolute; inset: -14px; border: 1px solid rgba(255, 153, 0, .5); border-radius: 50%; animation: cp-rl-ping 2.2s ease-out infinite; }
.cp-rl__play:hover { transform: scale(1.08); }
.cp-rl__play:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.cp-rl__play svg { width: 28px; height: 28px; margin-left: 5px; fill: currentColor; }
@keyframes cp-rl-ping { from { transform: scale(.8); opacity: 1; } to { transform: scale(1.5); opacity: 0; } }
.cp-rl__ask { position: absolute; inset: 0; z-index: 4; display: grid; place-content: center; justify-items: center; gap: 14px; padding: 24px; background: rgba(0, 0, 20, .82); text-align: center; }
.cp-rl__ask[hidden] { display: none; }
.cp-rl .cp-rl__ask p { color: #fff; font-size: 17px; font-weight: 600; }
.cp-rl .cp-rl__ask .cp-consent__accept { min-height: 48px; padding: 12px 22px; border: 0; border-radius: 8px; background: var(--o); color: var(--n); font: 700 15px/1.2 inherit; cursor: pointer; }
.cp-rl .cp-rl__ask .cp-consent__out { color: #E1E4F2; font-size: 14px; text-decoration-color: var(--o); }
.cp-rl__sub { display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: clamp(24px, 3vw, 48px); align-items: center; margin-top: clamp(56px, 7vw, 96px); padding: clamp(24px, 3vw, 40px); border-radius: 8px; background: rgba(255, 255, 255, .04); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
.cp-rl--blanc .cp-rl__sub,
.cp-rl--calque .cp-rl__sub { background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.cp-rl__sub--solo { grid-template-columns: minmax(0, 1fr); }
.cp-rl .cp-rl__subimg { border-radius: 8px; }

/* ---------- Écrans assemblés ---------- */
.cp-rl__stack { position: relative; min-height: 440px; }
.cp-rl__stack figure { position: absolute; width: 72%; overflow: hidden; border-radius: 8px; box-shadow: 0 40px 80px -30px rgba(0, 0, 51, .45); }
.cp-rl__stack figure:first-child { left: 0; top: 0; }
.cp-rl__stack figure:nth-child(2) { right: 0; bottom: 0; }
.cp-rl__stack figure img { width: 100%; }
.cp-rl__net { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; pointer-events: none; }
.cp-rl__net circle { fill: var(--o); }
.cp-rl__net path { fill: none; stroke: var(--o); stroke-width: 1.2; stroke-dasharray: 4 5; opacity: .85; vector-effect: non-scaling-stroke; }

/* ---------- Orthoimage dévoilée par le laser ---------- */
.cp-rl__ortho { margin-top: clamp(48px, 6vw, 80px); overflow: hidden; border-radius: 8px; background: #fff; }
.cp-rl .cp-rl__orthoimg { width: 100%; visibility: hidden; }
.cp-rl__dots,
.cp-rl__real { position: absolute; inset: 0; background: center / cover no-repeat; }
.cp-rl__dots { -webkit-mask-image: radial-gradient(circle, #000 1px, transparent 1.4px); mask-image: radial-gradient(circle, #000 1px, transparent 1.4px); -webkit-mask-size: 5px 5px; mask-size: 5px 5px; opacity: .9; }
.cp-rl--anime .cp-rl__real { clip-path: inset(0 100% 0 0); transition: clip-path 2.4s var(--ease); }
.cp-rl__beam { position: absolute; top: 0; bottom: 0; left: 0; width: 2px; background: var(--o); box-shadow: 0 0 16px 3px rgba(255, 153, 0, .8); opacity: 0; }
.cp-rl--anime .cp-rl__beam { opacity: 1; transition: left 2.4s var(--ease), opacity .4s 2.3s; }
.cp-rl--anime .cp-rl__ortho.is-in .cp-rl__real { clip-path: inset(0 0 0 0); }
.cp-rl--anime .cp-rl__ortho.is-in .cp-rl__beam { left: 100%; opacity: 0; }

/* ---------- Comparateur ---------- */
.cp-rl__cmp { position: relative; aspect-ratio: 1045 / 590; max-width: 100%; overflow: hidden; border-radius: 8px; background: #fff; --x: 50%; }
.cp-rl__cmp img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.cp-rl__cmp .cp-rl__top { clip-path: inset(0 0 0 var(--x)); }
.cp-rl__cbeam { position: absolute; top: 0; bottom: 0; left: var(--x); width: 2px; margin-left: -1px; background: var(--o); box-shadow: 0 0 14px 2px rgba(255, 153, 0, .7); pointer-events: none; }
.cp-rl__knob { position: absolute; top: 50%; left: var(--x); display: grid; place-items: center; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: var(--o); color: var(--n); pointer-events: none; }
.cp-rl__knob svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cp-rl__range { position: absolute; inset: 0; z-index: 4; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; touch-action: pan-y; }
.cp-rl__range:focus-visible ~ .cp-rl__knob { outline: 2px solid var(--n); outline-offset: 3px; }
.cp-rl__lab { position: absolute; top: 16px; z-index: 2; padding: 5px 12px; border-radius: 8px; background: rgba(0, 0, 51, .82); color: #fff; font-size: 13px; font-weight: 600; line-height: 1.4; pointer-events: none; }
.cp-rl__lab--l { left: 16px; }
.cp-rl__lab--r { right: 16px; }

/* ---------- Index des livrables ---------- */
.cp-rl__idx { position: relative; margin-top: clamp(40px, 5vw, 72px) !important; border-top: 1px solid rgba(255, 255, 255, .14); }
.cp-rl--blanc .cp-rl__idx,
.cp-rl--calque .cp-rl__idx { border-top-color: var(--line); }
.cp-rl__idx li { position: relative; display: grid; grid-template-columns: 70px minmax(0, 5fr) minmax(0, 6fr) 40px; gap: 24px; align-items: center; padding: 34px 0; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.cp-rl--blanc .cp-rl__idx li,
.cp-rl--calque .cp-rl__idx li { border-bottom-color: var(--line); }
.cp-rl__idx li::before { content: ""; position: absolute; inset: 0 -16px; border-radius: 8px; background: rgba(255, 255, 255, .04); opacity: 0; transition: opacity .3s; }
.cp-rl__idx li:hover::before { opacity: 1; }
.cp-rl__idx b { color: var(--o); font-size: 14px; font-weight: 700; letter-spacing: .1em; font-variant-numeric: tabular-nums; }
.cp-rl__idx strong { color: #fff; font-size: clamp(26px, 2.6vw, 40px); font-weight: 600; line-height: 1.1; letter-spacing: -.02em; transition: transform .5s var(--ease); }
.cp-rl--blanc .cp-rl__idx strong,
.cp-rl--calque .cp-rl__idx strong { color: var(--n); }
.cp-rl__idx li:hover strong { transform: translateX(10px); }
.cp-rl .cp-rl__idx p { font-size: 16.5px; }
.cp-rl__idx .cp-rl__arw { width: 22px; height: 22px; color: var(--o); opacity: 0; transform: translateX(-8px); transition: opacity .3s, transform .3s; }
.cp-rl__idx li:hover .cp-rl__arw { opacity: 1; transform: none; }
.cp-rl__peek { position: fixed; left: 0; top: 0; z-index: 40; width: 220px; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; opacity: 0; pointer-events: none; transform: translate(-50%, -50%) scale(.9) rotate(-3deg); transition: opacity .25s, transform .35s var(--ease), top .35s var(--ease); box-shadow: 0 30px 60px rgba(0, 0, 0, .45); background: #fff; }
.cp-rl__peek.on { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(-3deg); }
.cp-rl__peek img { width: 100%; height: 100% !important; object-fit: cover; }

/* ---------- Échelle mm / cm ---------- */
.cp-rl__scale { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; margin-top: clamp(40px, 5vw, 64px); overflow: hidden; border-radius: 8px; }
.cp-rl__scale > div { padding: clamp(28px, 3.5vw, 48px); background: #fff; color: var(--n); }
.cp-rl__scale > div + div { background: var(--n); color: #fff; }
.cp-rl__scale small { display: block; color: var(--mute); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.cp-rl__scale > div + div small { color: var(--soft); }
.cp-rl__scale strong { display: block; margin-top: 14px; color: var(--n); font-size: clamp(56px, 6.5vw, 104px); font-weight: 900; line-height: .9; letter-spacing: -.04em; }
.cp-rl__scale > div + div strong { color: var(--o); }
.cp-rl .cp-rl__scale p { margin-top: 16px; font-size: 16px; }
.cp-rl .cp-rl__scale > div + div p { color: var(--soft); }
.cp-rl__ruler { display: block; height: 28px; margin-top: 22px; background-image: linear-gradient(90deg, currentColor 1px, transparent 1px), linear-gradient(90deg, currentColor 1px, transparent 1px); background-size: 10px 10px, 50px 22px; background-repeat: repeat-x; background-position: 0 100%, 0 100%; opacity: .4; }
.cp-rl__scale > div + div .cp-rl__ruler { background-size: 50px 10px, 250px 22px; }

/* ---------- Bandeau photo ---------- */
.cp-rl--photo { display: grid; align-items: center; min-height: 600px; background: var(--n); color: #fff; }
.cp-rl--photo .cp-rl__bg { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.cp-rl--photo::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(1, 1, 44, .95) 0%, rgba(1, 1, 44, .75) 42%, rgba(1, 1, 44, .1) 100%); }
.cp-rl--photo .cp-rl__w { z-index: 2; width: 100%; }
.cp-rl__band { max-width: 760px; }
/* Vidéo de fond du bandeau : YouTube sans son, en boucle, après l'accord des cookies ; couvre toute la section
   (unités de conteneur), apparaît en fondu sur la photo une fois lancée. */
.cp-rl--photo:has(.cp-rl__bgv) { min-height: clamp(600px, 56.25vw, 100svh); }
/* Section à vidéo de fond (hors bandeau) : voile bleu nuit au-dessus de la vidéo, contenu au-dessus du voile */
.cp-rl--video::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, rgba(0, 0, 51, .92) 0%, rgba(0, 0, 51, .8) 50%, rgba(0, 0, 51, .7) 100%); pointer-events: none; }
.cp-rl--video .cp-rl__w { z-index: 2; }
.cp-rl--nuit .cp-rl__list li { border-bottom-color: rgba(255, 255, 255, .16); color: #fff; }
.cp-rl--nuit .cp-rl__list li:hover { background: rgba(255, 255, 255, .08); }
.cp-rl__bgv { position: absolute; inset: 0; overflow: hidden; container-type: size; opacity: 0; transition: opacity 1.2s var(--ease); pointer-events: none; }
.cp-rl__bgv.is-on { opacity: 1; }
.cp-rl__bgv iframe { position: absolute; top: 50%; left: 50%; width: max(100cqw, 177.78cqh); height: max(100cqh, 56.25cqw); border: 0; transform: translate(-50%, -50%) scale(1.2); } /* agrandie : l'habillage YouTube (titre, logo) sort du cadre */
.cp-rl--photo .cp-rl__h { font-size: clamp(44px, 5.4vw, 84px); }
.cp-rl--photo .cp-rl__lead { margin-top: 20px; color: #D5D8EA; }
.cp-rl__laser { position: absolute; top: 0; bottom: 0; left: -2%; z-index: 2; width: 2px; background: var(--o); box-shadow: 0 0 18px 3px rgba(255, 153, 0, .7); animation: cp-rl-pass 7s var(--ease) infinite; }
@keyframes cp-rl-pass { 0% { left: -2%; opacity: 0; } 10% { opacity: 1; } 60% { left: 102%; opacity: 1; } 61%, 100% { left: 102%; opacity: 0; } }

/* ---------- Liste de relevé ---------- */
.cp-rl__list { display: grid; grid-template-columns: minmax(0, 1fr); margin-top: 8px !important; counter-reset: cp-rl; }
/* Une ligne par usage ; au survol : ligne teintée qui glisse, pastille orange pleine, filet qui se remplit d'orange */
.cp-rl__list li { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 20px; align-items: center; padding: 18px 16px; border-bottom: 1px solid var(--line); border-radius: 8px 8px 0 0; color: var(--n); font-size: clamp(18px, 1.35vw, 20px); font-weight: 500; line-height: 1.45; counter-increment: cp-rl; transition: background-color .35s var(--ease), padding-left .35s var(--ease); }
.cp-rl__list li::before { content: counter(cp-rl, decimal-leading-zero); display: grid; place-items: center; width: 40px; height: 40px; border: 1.5px solid var(--o); border-radius: 50%; color: var(--o); font-size: 13px; font-weight: 700; letter-spacing: .04em; font-variant-numeric: tabular-nums; transition: background-color .35s var(--ease), color .35s var(--ease); }
.cp-rl__list li::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--o); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease); }
.cp-rl__list li:hover { padding-left: 24px; background: #F1F3F9; }
.cp-rl--calque .cp-rl__list li:hover { background: #fff; }
.cp-rl__list li:hover::before { background: var(--o); color: var(--n); }
.cp-rl__list li:hover::after { transform: none; }
.cp-rl--releve .cp-rl__lead { margin-bottom: 12px; }

/* ---------- Empreinte numérique ---------- */
.cp-rl__split { margin-top: clamp(48px, 6vw, 80px); overflow: hidden; border-radius: 8px; background: #fff; }
.cp-rl__split > img { width: 100%; }
.cp-rl__pts { position: absolute; inset: 0 50% 0 0; overflow: hidden; background: #fff; }
.cp-rl__pts span { position: absolute; top: 0; bottom: 0; left: 0; width: 200%; background: left center / 100% auto no-repeat; -webkit-mask-image: radial-gradient(circle, #000 1px, transparent 1.4px); mask-image: radial-gradient(circle, #000 1px, transparent 1.4px); -webkit-mask-size: 4px 4px; mask-size: 4px 4px; filter: saturate(0) contrast(1.3) brightness(.6) sepia(1) hue-rotate(190deg) saturate(4); }
.cp-rl__sep { position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; margin-left: -1px; background: var(--o); box-shadow: 0 0 14px 2px rgba(255, 153, 0, .6); }
.cp-rl__split .cp-rl__lab { top: auto; bottom: 16px; }
.cp-rl__vv { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 64px); align-items: center; margin-top: clamp(56px, 7vw, 96px); padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--line); }
.cp-rl__vv .cp-rl__h3 { margin-bottom: 0; }

/* ---------- Citation ---------- */
.cp-rl .cp-rl__quote { position: relative; padding-left: clamp(28px, 4vw, 64px); color: var(--n); font-size: clamp(28px, 3vw, 46px); line-height: 1.22; font-weight: 300; letter-spacing: -.015em; }
.cp-rl__quote::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 2px; background: var(--o); }
.cp-rl__quote strong { font-weight: 700; }

/* ---------- Drone en orbite ---------- */
.cp-rl__orbit { position: relative; display: grid; place-items: center; width: 100%; max-width: 520px; aspect-ratio: 1; margin-inline: auto; }
.cp-rl__orbit::before,
.cp-rl__orbit::after { content: ""; position: absolute; border-radius: 50%; border: 1px dashed rgba(255, 255, 255, .22); }
.cp-rl__orbit::before { inset: 0; }
.cp-rl__orbit::after { inset: 14%; border-style: solid; border-color: rgba(255, 255, 255, .08); }
.cp-rl--blanc .cp-rl__orbit::before,
.cp-rl--calque .cp-rl__orbit::before { border-color: rgba(0, 0, 51, .22); }
.cp-rl__sat { position: absolute; inset: 0; animation: cp-rl-spin 18s linear infinite; }
.cp-rl__sat::after { content: ""; position: absolute; left: 50%; top: -6px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: var(--o); box-shadow: 0 0 0 7px rgba(255, 153, 0, .2); }
.cp-rl__disc { position: relative; display: grid; place-items: center; width: 76%; aspect-ratio: 1; overflow: hidden; border-radius: 50%; background: #fff; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6); }
.cp-rl__disc img { width: 88%; }
.cp-rl__orbit + .cp-rl__cap { text-align: center; }

/* ---------- Villes ---------- */
.cp-rl__cities { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.cp-rl__cities a,
.cp-rl__cities span { padding: 9px 15px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--n); font-size: 15px; font-weight: 600; line-height: 1.3; text-decoration: none; transition: border-color .2s, background-color .2s; }
.cp-rl__cities a:hover { border-color: var(--o); background: #FFF6E8; }

/* ---------- Points de rupture ---------- */
@media (max-width: 1000px) {
	.cp-rl__g,
	.cp-rl__g--57,
	.cp-rl__g--75,
	.cp-rl__g--84,
	.cp-rl__vv { grid-template-columns: minmax(0, 1fr); }
	.cp-rl__scan { max-width: 380px; margin-inline: auto; }
	.cp-rl__stack { min-height: 340px; }
	.cp-rl__idx li { grid-template-columns: 50px minmax(0, 1fr) 30px; }
	.cp-rl__idx li p { grid-column: 2; }
}
@media (max-width: 700px) {
	.cp-rl__scale,
	.cp-rl__list { grid-template-columns: minmax(0, 1fr); }
	.cp-rl__txt--2 { column-count: 1; }
	.cp-rl__sub { grid-template-columns: minmax(0, 1fr); }
	.cp-rl .cp-rl__subimg { max-width: 180px; }
	.cp-rl__stack { min-height: 260px; }
	.cp-rl--photo { min-height: 480px; }
	.cp-rl__peek { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.cp-rl *,
	.cp-rl *::before,
	.cp-rl *::after { animation: none !important; transition: none !important; }
	.cp-rl__laser { display: none; }
}

/* ---------- Recalage en direct (validé le 05/10) : étapes à gauche, écran de travail collé à droite ---------- */
.cp-rl__story { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 104px); align-items: start; }
.cp-rl__step { position: relative; display: grid; align-content: center; min-height: 62vh; padding: 32px 0 32px 40px; border-left: 1px solid var(--line); opacity: .35; cursor: pointer; transition: opacity .6s var(--ease); }
.cp-rl__step::before { content: ""; position: absolute; left: -1px; top: 0; bottom: 0; width: 2px; background: var(--o); transform: scaleY(0); transform-origin: top; transition: transform .8s var(--ease); }
.cp-rl__step.is-on { opacity: 1; }
.cp-rl__step.is-on::before { transform: none; }
.cp-rl__step:focus-visible { outline: 2px solid var(--o); outline-offset: 4px; }
.cp-rl__step > b { color: var(--o); font-size: 14px; font-weight: 700; letter-spacing: .12em; font-variant-numeric: tabular-nums; }
.cp-rl .cp-rl__step .cp-rl__h3 { margin: 10px 0 0; font-size: clamp(24px, 2.1vw, 32px); font-weight: 700; line-height: 1.15; letter-spacing: -.015em; }
.cp-rl__step .cp-rl__txt { margin-top: 16px; }
.cp-rl__step .cp-rl__txt > * + * { margin-top: 1em !important; }
.cp-rl__stage { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cp-bar-h, 76px) + 32px); }
.cp-rl__screen { position: relative; aspect-ratio: 4 / 3; max-width: 100%; overflow: hidden; border-radius: 8px; background: radial-gradient(80% 70% at 50% 40%, #0B0B5C 0%, #000033 70%); box-shadow: 0 60px 100px -40px rgba(0, 0, 51, .6); }
.cp-rl__screen canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.cp-rl__screen::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px); background-size: 32px 32px; pointer-events: none; }
.cp-rl__hud { position: absolute; left: 18px; right: 18px; top: 16px; z-index: 2; display: flex; justify-content: space-between; gap: 12px; color: rgba(255, 255, 255, .75); font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .12em; text-transform: uppercase; font-variant-numeric: tabular-nums; }
.cp-rl__hud span { display: flex; align-items: center; gap: 8px; }
.cp-rl__hud b { font-weight: 600; }
.cp-rl__hud i { width: 8px; height: 8px; border-radius: 50%; background: var(--o); box-shadow: 0 0 0 4px rgba(255, 153, 0, .25); }
.cp-rl .cp-rl__hph { position: absolute; left: 18px; bottom: 30px; z-index: 2; color: #fff; font-size: 15px; font-weight: 600; line-height: 1.3; }
.cp-rl__hbar { position: absolute; left: 18px; right: 18px; bottom: 18px; z-index: 2; height: 2px; overflow: hidden; border-radius: 2px; background: rgba(255, 255, 255, .15); }
.cp-rl__hbar span { display: block; width: 0; height: 100%; background: var(--o); box-shadow: 0 0 12px rgba(255, 153, 0, .8); }
.cp-rl__thumbs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.cp-rl__thumbs figure { overflow: hidden; border-radius: 8px; background: #fff; box-shadow: 0 20px 40px -24px rgba(0, 0, 51, .5); transition: transform .5s var(--ease); }
.cp-rl__thumbs figure:hover { transform: translateY(-4px); }
.cp-rl__thumbs img { width: 100%; }
.cp-rl__thumbs figcaption { padding: 10px 12px; color: var(--mute); font-size: 13.5px; line-height: 1.4; }
@media (max-width: 1000px) {
	.cp-rl__story { grid-template-columns: minmax(0, 1fr); }
	.cp-rl__stage { position: static; order: -1; }
	.cp-rl__screen { aspect-ratio: 16 / 10; }
	.cp-rl__step { min-height: 0; padding-block: 28px; }
}
@media (max-width: 600px) {
	.cp-rl__thumbs { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Élévation (validée le 05/10) : façade détourée dans la nuit du relevé, nuage de points déposé par le
   faisceau du scanner, puis orthoimage projetée ; cotes et niveaux tracés ; trois temps cliquables ---------- */
.cp-rl--planche { background: radial-gradient(55% 40% at 50% 72%, rgba(40, 40, 150, .5) 0%, rgba(40, 40, 150, 0) 70%), radial-gradient(70% 60% at 85% 0%, #14147A 0%, rgba(20, 20, 122, 0) 60%), var(--n); }
.cp-rl--planche .cp-rl__cote { margin-top: 22px; }
.cp-rl__eltxt { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 112px); margin-top: clamp(28px, 3vw, 40px); }
.cp-rl .cp-rl__eltxt > p { margin: 0 !important; }
.cp-rl--nuit .cp-rl__eltxt > p:first-child { color: #DADCEC; font-size: clamp(18px, 1.4vw, 20px); line-height: 1.7; font-weight: 300; }
.cp-rl .cp-rl__eltxt > p:last-child:not(:first-child) { padding-top: 6px; font-size: 16px; line-height: 1.7; }
.cp-rl--nuit .cp-rl__eltxt strong { color: #fff; font-weight: 600; }
.cp-rl__elev { margin-top: clamp(56px, 7vw, 96px); }
.cp-rl__elev.is-wait .cp-rl__eplate,
.cp-rl__elev.is-wait .cp-rl__esteps { opacity: 0; }
.cp-rl__eplate { position: relative; display: grid; grid-template-columns: 44px minmax(0, 1fr) 150px; grid-template-rows: 56px auto; }
.cp-rl__edimh { position: relative; grid-column: 2; grid-row: 1; }
.cp-rl__edimv { position: relative; grid-column: 1; grid-row: 2; }
.cp-rl__efac { position: relative; grid-column: 2; grid-row: 2; aspect-ratio: var(--ratio); max-width: 100%; cursor: crosshair; }
.cp-rl__ecloud,
.cp-rl .cp-rl__eimg { position: absolute; inset: 0; width: 100%; height: 100%; }
.cp-rl .cp-rl__eimg { z-index: 1; transition: opacity 1.4s var(--ease), filter 1.4s var(--ease); }
.cp-rl__ecloud { transition: opacity 1.2s var(--ease); }
.cp-rl__elev.is-s0 .cp-rl__eimg { opacity: 0; filter: blur(6px) saturate(.6); }
.cp-rl__elev.is-s1 .cp-rl__eimg { opacity: .55; filter: blur(1.5px) saturate(.8); }
.cp-rl__elev.is-s2 .cp-rl__ecloud { opacity: 0; }
.cp-rl__erefl { --m: calc((1 - var(--g)) * 100%); position: absolute; left: 0; right: 0; top: calc((2 * var(--g) - 1) * 100%); height: 100%; opacity: 0; pointer-events: none; -webkit-mask-image: linear-gradient(180deg, transparent var(--m), rgba(0, 0, 0, .4) var(--m), transparent calc(var(--m) + 26%)); mask-image: linear-gradient(180deg, transparent var(--m), rgba(0, 0, 0, .4) var(--m), transparent calc(var(--m) + 26%)); transition: opacity 1.4s var(--ease); }
.cp-rl .cp-rl__erefl img { width: 100%; height: 100%; transform: scaleY(-1); }
.cp-rl__elev.is-s2 .cp-rl__erefl { opacity: .5; }
.cp-rl__ebeam { position: absolute; z-index: 2; top: -4%; bottom: -4%; left: var(--t, 0%); width: 2px; margin-left: -1px; background: linear-gradient(180deg, transparent, var(--o) 12%, var(--o) 88%, transparent); box-shadow: 0 0 18px 3px rgba(255, 153, 0, .7); opacity: 0; pointer-events: none; }
.cp-rl__elev.is-scan .cp-rl__ebeam { opacity: 1; }
.cp-rl__edimh .cp-rl__eln { position: absolute; left: 0; right: 0; bottom: 14px; height: 1px; background: var(--o); transform: scaleX(0); transition: transform 1.2s var(--ease); }
.cp-rl__edimh .cp-rl__eln::before,
.cp-rl__edimh .cp-rl__eln::after { content: ""; position: absolute; top: -6px; width: 1px; height: 13px; background: var(--o); }
.cp-rl__edimh .cp-rl__eln::before { left: 0; }
.cp-rl__edimh .cp-rl__eln::after { right: 0; }
.cp-rl__edimh b { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); color: var(--soft); font-size: 12px; font-weight: 600; line-height: 1.3; letter-spacing: .14em; text-align: center; text-transform: uppercase; white-space: nowrap; opacity: 0; transition: opacity .8s .6s; }
.cp-rl__edimv .cp-rl__eln { position: absolute; right: 16px; top: var(--y0); bottom: calc(100% - var(--y1)); width: 1px; background: var(--o); transform: scaleY(0); transform-origin: bottom; transition: transform 1.2s .2s var(--ease); }
.cp-rl__edimv .cp-rl__eln::before,
.cp-rl__edimv .cp-rl__eln::after { content: ""; position: absolute; left: -6px; width: 13px; height: 1px; background: var(--o); }
.cp-rl__edimv .cp-rl__eln::before { top: 0; }
.cp-rl__edimv .cp-rl__eln::after { bottom: 0; }
.cp-rl__elv { position: absolute; z-index: 2; left: -44px; right: -150px; top: var(--y); height: 0; border-top: 1px dashed rgba(255, 255, 255, .22); opacity: 0; pointer-events: none; transition: opacity .9s var(--ease); }
.cp-rl__elv span { position: absolute; right: 0; top: 0; display: flex; align-items: center; gap: 10px; padding-left: 12px; background: var(--n); color: var(--soft); font-size: 12px; font-weight: 600; line-height: 1; letter-spacing: .12em; text-transform: uppercase; transform: translateY(-50%); }
.cp-rl__elv span::before { content: ""; width: 9px; height: 9px; border: 1.5px solid var(--o); border-radius: 50%; }
.cp-rl__elev:not(.is-s0) .cp-rl__eln { transform: none; }
.cp-rl__elev:not(.is-s0) .cp-rl__edimh b,
.cp-rl__elev:not(.is-s0) .cp-rl__elv { opacity: 1; }
.cp-rl__elv + .cp-rl__elv { transition-delay: .15s; }
.cp-rl__elv + .cp-rl__elv + .cp-rl__elv { transition-delay: .3s; }
.cp-rl__elens { position: absolute; z-index: 3; left: 0; top: 0; width: 200px; height: 200px; overflow: hidden; border: 1.5px solid var(--o); border-radius: 50%; background: var(--n); box-shadow: 0 24px 50px rgba(0, 0, 0, .55), 0 0 0 6px rgba(255, 153, 0, .16); opacity: 0; transform: translate(-50%, -50%) scale(.8); transition: opacity .25s, transform .35s var(--ease); pointer-events: none; }
.cp-rl__elens.is-on { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.cp-rl__elens canvas { display: block; width: 100%; height: 100%; }
.cp-rl__elens b { position: absolute; left: 50%; bottom: 18px; padding: 3px 8px; border-radius: 4px; background: rgba(0, 0, 51, .8); color: #fff; font-size: 10px; font-weight: 700; line-height: 1.4; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; transform: translateX(-50%); }
.cp-rl__esteps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 3vw, 40px); margin-top: clamp(72px, 9vw, 128px) !important; }
.cp-rl__esteps button { all: unset; position: relative; box-sizing: border-box; display: block; width: 100%; padding-top: 18px; color: #7F84A8; cursor: pointer; transition: color .4s; }
.cp-rl__esteps button::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(255, 255, 255, .18); }
.cp-rl__esteps button::after { content: ""; position: absolute; left: 0; top: -.5px; width: calc(var(--k, 0) * 100%); height: 2px; background: var(--o); box-shadow: 0 0 10px rgba(255, 153, 0, .6); }
.cp-rl__esteps button:not([aria-pressed="true"])::after { opacity: .4; }
.cp-rl__esteps button:focus-visible { outline: 2px solid var(--o); outline-offset: 6px; border-radius: 2px; }
.cp-rl__esteps i { color: var(--o); font-size: 13px; font-style: normal; font-weight: 700; letter-spacing: .14em; font-variant-numeric: tabular-nums; }
.cp-rl__esteps b { display: block; margin-top: 6px; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.25; font-weight: 600; }
.cp-rl__esteps small { display: block; margin-top: 4px; font-size: 14px; line-height: 1.5; }
.cp-rl__esteps [aria-pressed="true"] { color: #fff; }
.cp-rl__esteps [aria-pressed="true"] small { color: var(--soft); }
@media (max-width: 900px) {
	.cp-rl__eltxt { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.cp-rl .cp-rl__eltxt > p:last-child:not(:first-child) { padding-top: 0; }
	.cp-rl__eplate { grid-template-columns: 24px minmax(0, 1fr) 0; grid-template-rows: 48px auto; }
	.cp-rl__edimv .cp-rl__eln { right: 8px; }
	.cp-rl__elv { left: -24px; right: 0; }
	.cp-rl__elv span { display: none; }
	.cp-rl__edimh b { font-size: 10px; letter-spacing: .1em; }
}
@media (max-width: 600px) {
	.cp-rl__esteps { gap: 14px; }
	.cp-rl__esteps b { font-size: 15px; }
	.cp-rl__esteps small { display: none; }
}

/* ---------- Scanner : constructeurs, règle millimétrique et centimétrique ---------- */
.cp-rl__pr-in { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px 32px; margin-top: clamp(28px, 3vw, 44px); }
.cp-rl__pr-in .cp-rl__lead { grid-column: span 7; margin: 0; }
.cp-rl__pr-nx { grid-column: span 5; }
.cp-rl .cp-rl__pr-nx p { font-size: 17px; line-height: 1.7; color: var(--mute); }
.cp-rl__mk { display: flex; flex-wrap: wrap; gap: 12px; margin-top: clamp(32px, 3.4vw, 48px); }
.cp-rl__mk-i { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 14px 20px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.cp-rl__mk-n { font-size: 17px; font-weight: 700; color: var(--mute); }
.cp-rl__mk-i.is-ours { border-color: var(--n); background: var(--n); }
.cp-rl__mk-i.is-ours .cp-rl__mk-n { color: #fff; }
.cp-rl__mk-m { display: flex; flex-wrap: wrap; gap: 8px; }
.cp-rl__mk-m span { padding: 4px 10px; border: 1px solid rgba(255, 255, 255, .32); border-radius: 999px; color: #fff; font-size: 13px; font-weight: 600; line-height: 1.4; }
.cp-rl .cp-rl__pr-h3 { margin-top: clamp(56px, 6vw, 92px); color: var(--n); font-size: clamp(24px, 2.4vw, 34px); font-weight: 700; line-height: 1.2; }
.cp-rl .cp-rl__pr-say { margin-top: 14px; }
.cp-rl .cp-rl__pr-say p { font-size: 17px; line-height: 1.7; color: var(--mute); }
.cp-rl__pr { margin-top: clamp(26px, 3vw, 40px); padding: clamp(26px, 3.2vw, 48px) clamp(20px, 3vw, 44px) clamp(22px, 3vw, 40px); border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.cp-rl__pr-band { position: relative; display: grid; grid-template-columns: 57fr 43fr; }
.cp-rl__pr-s { position: relative; display: block; height: 112px; }
.cp-rl__pr-t { position: absolute; inset: 0; }
.cp-rl__pr-t::before, .cp-rl__pr-t::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; }
.cp-rl__pr-s--l .cp-rl__pr-t::before { height: 20px; background-image: repeating-linear-gradient(90deg, var(--n) 0 1px, transparent 1px 8px); opacity: .45; }
.cp-rl__pr-s--l .cp-rl__pr-t::after { height: 44px; background-image: repeating-linear-gradient(90deg, var(--n) 0 1.5px, transparent 1.5px 40px); opacity: .9; }
.cp-rl__pr-s--r .cp-rl__pr-t::before { height: 20px; background-image: repeating-linear-gradient(90deg, var(--mute) 0 1px, transparent 1px 56px); opacity: .5; }
.cp-rl__pr-s--r .cp-rl__pr-t::after { height: 44px; background-image: repeating-linear-gradient(90deg, var(--mute) 0 1.5px, transparent 1.5px 224px); opacity: .75; }
.cp-rl__pr-g { position: absolute; bottom: -1px; height: 45px; background: #fff; }
.cp-rl__pr-g::after { content: ""; position: absolute; inset: auto 0 0 0; height: 1px; background: repeating-linear-gradient(90deg, var(--mute) 0 4px, transparent 4px 9px); opacity: .55; }
.cp-rl__pr-r { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--n); }
.cp-rl__pr-s--r .cp-rl__pr-r { background: var(--mute); opacity: .55; }
.cp-rl__pr-sp { position: absolute; top: -10px; bottom: -10px; left: 57%; width: 1px; background: var(--o); }
.cp-rl__pr-sp::before, .cp-rl__pr-sp::after { content: ""; position: absolute; left: -4px; width: 9px; height: 1px; background: var(--o); }
.cp-rl__pr-sp::before { top: 0; }
.cp-rl__pr-sp::after { bottom: 0; }
.cp-rl__pr-sw { position: absolute; top: 0; bottom: 0; left: 0; width: 2px; background: var(--o); box-shadow: 0 0 18px 3px rgba(255, 153, 0, .55); opacity: 0; }
.cp-rl--precision.is-in .cp-rl__pr-sw { animation: cp-rl-sweep 4.2s cubic-bezier(.65, 0, .35, 1) infinite; }
@keyframes cp-rl-sweep { 0%, 8% { left: 0; opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { left: 100%; opacity: 0; } }
.cp-rl__pr-leg { display: grid; grid-template-columns: 57fr 43fr; margin-top: 26px; }
.cp-rl__pr-c { padding-right: 36px; }
.cp-rl__pr-c + .cp-rl__pr-c { padding: 0 0 0 36px; border-left: 1px solid var(--line); }
.cp-rl__pr-v { display: flex; align-items: baseline; gap: 10px; }
.cp-rl__pr-v b { color: var(--n); font-size: clamp(40px, 4.6vw, 68px); font-weight: 900; line-height: .9; letter-spacing: -.04em; }
.cp-rl__pr-c + .cp-rl__pr-c .cp-rl__pr-v b { color: var(--mute); }
.cp-rl__pr-v span { color: var(--mute); font-size: 17px; font-weight: 600; }
.cp-rl .cp-rl__pr-n { margin-top: 14px; color: var(--n); font-size: 20px; font-weight: 700; line-height: 1.3; }
.cp-rl .cp-rl__pr-p p { margin-top: 10px; color: var(--mute); font-size: 16px; line-height: 1.6; }
.cp-rl .cp-rl__pr-p strong { color: var(--n); font-weight: 700; }
.cp-rl .cp-rl__pr-sign { display: flex; align-items: center; gap: 18px; margin-top: clamp(40px, 4vw, 64px); color: var(--n); font-size: 17px; line-height: 1.6; }
.cp-rl__pr-sign i { flex: 1 1 60px; height: 1px; background: var(--line); }
@media (max-width: 1000px) {
	.cp-rl__pr-in .cp-rl__lead, .cp-rl__pr-nx { grid-column: span 12; }
	.cp-rl__pr-band, .cp-rl__pr-leg { grid-template-columns: 1fr; }
	.cp-rl__pr-sp, .cp-rl__pr-sw { display: none; }
	.cp-rl__pr-s { height: 86px; }
	.cp-rl__pr-s + .cp-rl__pr-s { margin-top: 26px; }
	.cp-rl__pr-c { padding-right: 0; }
	.cp-rl__pr-c + .cp-rl__pr-c { margin-top: 26px; padding: 26px 0 0; border-left: 0; border-top: 1px solid var(--line); }
}
@media (prefers-reduced-motion: reduce) {
	.cp-rl--precision .cp-rl__pr-sw { animation: none !important; left: 32%; opacity: 1; }
}

/* ---------- Plan de vol (validé le 05/10) : le drone survole la vue aérienne en allers-retours ; à chaque point,
   flash, emprise du cliché en couleur, cliché dans la pellicule ; la mission recommence ---------- */
.cp-rl__vmis { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: clamp(20px, 2.5vw, 36px); align-items: start; margin-top: clamp(48px, 6vw, 80px); }
.cp-rl__vmap { position: relative; aspect-ratio: var(--ratio); max-width: 100%; overflow: hidden; border-radius: 8px; background: #05052A; box-shadow: 0 60px 100px -40px rgba(0, 0, 0, .7), 0 0 0 1px rgba(255, 255, 255, .08); }
.cp-rl .cp-rl__vbase { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; transition: filter .8s; }
.cp-rl__vmap.is-live .cp-rl__vbase { filter: grayscale(1) brightness(.42) contrast(1.1); }
.cp-rl__vmap.is-live::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px); background-size: 6.25% 8.33%; pointer-events: none; }
.cp-rl__vfill { position: absolute; inset: 0; }
.cp-rl__vshot { position: absolute; width: var(--sw); height: var(--sh); background-repeat: no-repeat; outline: 1px solid rgba(255, 255, 255, .22); outline-offset: -1px; transform: translate(-50%, -50%); animation: cp-rl-snap .9s var(--ease) both; }
.cp-rl__vshot::after { content: ""; position: absolute; inset: 0; background: #fff; animation: cp-rl-flash .5s ease-out both; }
@keyframes cp-rl-snap { 0% { outline-color: #fff; outline-width: 2px; filter: brightness(1.6); } 100% { outline-color: rgba(255, 255, 255, .22); outline-width: 1px; filter: none; } }
@keyframes cp-rl-flash { 0% { opacity: .85; } 100% { opacity: 0; } }
.cp-rl__vroute { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.cp-rl__vroute path { fill: none; stroke: var(--o); stroke-width: 1.5; stroke-dasharray: 6 7; vector-effect: non-scaling-stroke; opacity: .85; }
.cp-rl__vroute circle { fill: var(--n); stroke: var(--o); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.cp-rl__vroute circle.is-done { fill: var(--o); }
.cp-rl__vdrone,
.cp-rl__vshadow { display: none; }
.cp-rl__vmap.is-live .cp-rl__vdrone,
.cp-rl__vmap.is-live .cp-rl__vshadow { display: block; }
.cp-rl__vdrone { position: absolute; z-index: 4; left: 0; top: 0; width: clamp(96px, 16vw, 240px); transform: translate(-46%, -112%) rotate(var(--a, 0deg)); transform-origin: 46% 90%; pointer-events: none; filter: brightness(1.9) contrast(1.15) drop-shadow(0 0 1px rgba(255, 255, 255, .9)) drop-shadow(0 0 10px rgba(255, 255, 255, .35)) drop-shadow(0 16px 20px rgba(0, 0, 0, .55)); }
.cp-rl .cp-rl__vdrone img { width: 100%; animation: cp-rl-hover 2.4s ease-in-out infinite; }
@keyframes cp-rl-hover { 50% { transform: translateY(-6px); } }
.cp-rl__vshadow { position: absolute; z-index: 3; left: 0; top: 0; width: clamp(70px, 8vw, 120px); aspect-ratio: 2.6; border-radius: 50%; background: radial-gradient(closest-side, rgba(0, 0, 0, .55), rgba(0, 0, 0, 0)); transform: translate(-50%, -50%); pointer-events: none; }
.cp-rl__vhud { position: absolute; z-index: 5; left: 16px; right: 16px; top: 14px; display: none; justify-content: space-between; gap: 12px; color: rgba(255, 255, 255, .85); font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .12em; text-transform: uppercase; font-variant-numeric: tabular-nums; }
.cp-rl__vmap.is-live .cp-rl__vhud { display: flex; }
.cp-rl__vhud span { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 6px; background: rgba(0, 0, 51, .6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.cp-rl__vhud b { font-weight: 600; }
.cp-rl__vhud i { width: 8px; height: 8px; border-radius: 50%; background: #E5484D; box-shadow: 0 0 0 4px rgba(229, 72, 77, .25); animation: cp-rl-rec 1.2s steps(2) infinite; }
@keyframes cp-rl-rec { 50% { opacity: .25; } }
.cp-rl__vfilm { display: flex; flex-direction: column; gap: 12px; }
.cp-rl .cp-rl__vcount { color: var(--soft); font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .14em; text-transform: uppercase; }
.cp-rl__vcount b { display: block; margin-top: 2px; color: #fff; font-size: 34px; line-height: 1.1; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.cp-rl__vstrip { display: grid; gap: 10px; }
.cp-rl__vframe { position: relative; aspect-ratio: 16 / 10; max-width: 100%; overflow: hidden; border-radius: 6px; background: #05052A no-repeat; box-shadow: 0 0 0 1px rgba(255, 255, 255, .14), 0 14px 30px -12px rgba(0, 0, 0, .6); animation: cp-rl-enter .6s var(--ease) both; }
.cp-rl__vframe span { position: absolute; left: 8px; bottom: 6px; padding: 1px 6px; border-radius: 4px; background: rgba(0, 0, 51, .7); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .08em; font-variant-numeric: tabular-nums; }
@keyframes cp-rl-enter { from { opacity: 0; transform: translateY(-14px) scale(.96); } to { opacity: 1; transform: none; } }
.cp-rl__vtxt { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 104px); margin-top: clamp(56px, 6vw, 88px); }
.cp-rl__vtxt { align-items: start; }
.cp-rl--vol .cp-rl__lead { color: #fff; font-size: clamp(24px, 2.3vw, 34px); line-height: 1.3; font-weight: 600; letter-spacing: -.01em; text-wrap: balance; }
@media (min-width: 1001px) {
	.cp-rl--vol .cp-rl__lead { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cp-bar-h, 76px) + 32px); }
}
@media (max-width: 1000px) {
	.cp-rl__vmis { grid-template-columns: minmax(0, 1fr); }
	.cp-rl__vfilm { flex-direction: row; align-items: center; }
	.cp-rl .cp-rl__vcount { flex: 0 0 auto; width: 110px; }
	.cp-rl__vstrip { flex: 1; grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.cp-rl__vtxt { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
@media (max-width: 600px) {
	.cp-rl__vhud span:last-child { display: none; }
	.cp-rl .cp-rl__vcount { width: 84px; }
	.cp-rl__vcount b { font-size: 26px; }
	.cp-rl__vstrip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cp-rl__vstrip .cp-rl__vframe:nth-child(n+4) { display: none; }
}

/* ---------- Dispositions de la page « Archive numérique » (validées le 06/10) ---------- */
/* Couches : étapes à gauche, image collée qui change avec l'étape */
.cp-rl__cltop { margin-top: clamp(28px, 3vw, 40px); }
.cp-rl__cl { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 104px); align-items: start; margin-top: clamp(48px, 6vw, 80px); }
.cp-rl__clstep { position: relative; display: grid; align-content: center; min-height: 56vh; padding: 28px 0 28px 36px; border-left: 1px solid var(--line); opacity: .38; cursor: pointer; transition: opacity .6s var(--ease); }
.cp-rl__clstep::before { content: ""; position: absolute; left: -1px; top: 0; bottom: 0; width: 2px; background: var(--o); transform: scaleY(0); transform-origin: top; transition: transform .8s var(--ease); }
.cp-rl__clstep.is-on,
.cp-rl__clstep:hover { opacity: 1; }
.cp-rl__clstep.is-on::before { transform: none; }
.cp-rl__clstep:focus-visible { outline: 2px solid var(--o); outline-offset: 4px; }
.cp-rl__clstep > b { color: var(--o); font-size: 13px; font-weight: 700; letter-spacing: .14em; }
.cp-rl .cp-rl__clstep .cp-rl__h3 { margin: 8px 0 0; }
.cp-rl__clstep .cp-rl__txt { margin-top: 12px; }
.cp-rl__clstage { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cp-bar-h, 76px) + 32px); }
.cp-rl__clframe { position: relative; aspect-ratio: 4 / 3; max-width: 100%; overflow: hidden; border-radius: 8px; background: #fff; box-shadow: 0 50px 90px -40px rgba(0, 0, 51, .45), 0 0 0 1px var(--line); }
.cp-rl .cp-rl__clframe img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .9s var(--ease), transform 1.2s var(--ease); }
.cp-rl .cp-rl__clframe img.is-on { opacity: 1; transform: none; }
.cp-rl__cltag { position: absolute; z-index: 2; left: 16px; bottom: 14px; padding: 4px 10px; border-radius: 6px; background: var(--n); color: #fff; font-size: 12px; font-weight: 600; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; }
.cp-rl__cltag:empty { display: none; }
.cp-rl__clscan { position: absolute; z-index: 2; top: 0; bottom: 0; left: -2px; width: 2px; background: var(--o); box-shadow: 0 0 16px 3px rgba(255, 153, 0, .7); opacity: 0; }
.cp-rl__clframe.is-swap .cp-rl__clscan { animation: cp-rl-clpass 1s var(--ease); }
@keyframes cp-rl-clpass { 0% { left: 0; opacity: 1; } 100% { left: 100%; opacity: 0; } }
.cp-rl__clticks { display: flex; gap: 8px; margin-top: 16px; }
.cp-rl__clticks i { flex: 1; height: 3px; border-radius: 2px; background: var(--line); transition: background .5s; }
.cp-rl__clticks i.is-on { background: var(--o); }
.cp-rl--couches .cp-rl__cap { margin-top: 14px; }

/* Frise : jalons qui se tracent */
.cp-rl__fr { position: relative; display: grid; grid-template-columns: repeat(var(--cnt, 3), minmax(0, 1fr)); gap: 20px; margin-top: clamp(56px, 6vw, 88px) !important; }
.cp-rl__fr::before,
.cp-rl__fr::after { content: ""; position: absolute; left: 0; right: 0; top: 22px; height: 2px; background: rgba(255, 255, 255, .14); }
.cp-rl__fr::after { background: var(--o); box-shadow: 0 0 12px rgba(255, 153, 0, .6); transform: scaleX(0); transform-origin: left; transition: transform 2.2s var(--ease); }
.cp-rl__fr.is-in::after,
.cp-rl:not(.cp-rl--anime) .cp-rl__fr::after { transform: none; }
.cp-rl--blanc .cp-rl__fr::before,
.cp-rl--calque .cp-rl__fr::before { background: var(--line); }
.cp-rl__frj { position: relative; padding-top: 64px; }
.cp-rl__frj::before { content: ""; position: absolute; left: 0; top: 12px; width: 22px; height: 22px; border-radius: 50%; background: var(--n); box-shadow: inset 0 0 0 2px var(--o); transition: background .4s, transform .4s var(--ease); }
.cp-rl__frj:hover::before { background: var(--o); transform: scale(1.25); }
.cp-rl__frc { height: 100%; padding: 22px; border-radius: 8px; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); transition: background .4s, transform .4s var(--ease), box-shadow .4s; }
.cp-rl__frj:hover .cp-rl__frc { background: rgba(255, 255, 255, .09); transform: translateY(-6px); box-shadow: inset 0 0 0 1px rgba(255, 153, 0, .5), 0 24px 40px -20px rgba(0, 0, 0, .6); }
.cp-rl__frc small { display: block; color: var(--o); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.cp-rl .cp-rl__frc .cp-rl__h3 { margin: 8px 0 0; font-size: 21px; }
.cp-rl .cp-rl__frc p { margin-top: 8px; font-size: 16px; line-height: 1.6; }

/* Mémoire : citation collée, risques à pictogrammes */
.cp-rl__me { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 104px); align-items: start; margin-top: clamp(48px, 6vw, 80px); }
.cp-rl__mestick { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cp-bar-h, 76px) + 40px); }
.cp-rl__mequote { position: relative; margin: 0; padding: clamp(28px, 3vw, 44px); overflow: hidden; border-radius: 8px; background: var(--n); color: #fff; }
.cp-rl__mequote::after { content: ""; position: absolute; right: -60px; top: -60px; width: 240px; height: 240px; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 153, 0, .28), transparent); }
.cp-rl .cp-rl__mequote p { position: relative; color: #fff; font-size: clamp(22px, 2vw, 30px); line-height: 1.35; font-weight: 600; letter-spacing: -.01em; }
.cp-rl__mequote span { position: relative; display: block; margin-top: 18px; color: var(--soft); font-size: 15px; line-height: 1.6; }
.cp-rl__merisks { display: grid; gap: 14px; margin-top: 32px !important; }
.cp-rl__merisk { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 18px; padding: 22px 24px; border-radius: 8px; background: #fff; box-shadow: 0 0 0 1px var(--line); transition: transform .4s var(--ease), box-shadow .4s; }
.cp-rl__merisk:hover { transform: translateX(8px); box-shadow: 0 0 0 1px rgba(255, 153, 0, .6), 0 20px 40px -24px rgba(0, 0, 51, .35); }
.cp-rl__merisk svg { width: 44px; height: 44px; padding: 10px; border-radius: 50%; background: #F1F3F9; color: var(--n); transition: background .4s; }
.cp-rl__merisk:hover svg { background: var(--o); }
.cp-rl .cp-rl__merisk .cp-rl__h3 { margin: 0; font-size: 19px; }
.cp-rl .cp-rl__merisk p { margin-top: 4px; font-size: 16px; line-height: 1.6; }

/* Planches : agrandies au survol, deux colonnes */
.cp-rl__pq { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 20px; align-items: start; margin-top: clamp(48px, 6vw, 72px); }
.cp-rl__pqf { position: relative; overflow: hidden; border-radius: 8px; background: #fff; box-shadow: 0 0 0 1px var(--line); cursor: zoom-in; }
.cp-rl .cp-rl__pqf img { width: 100%; transition: transform .8s var(--ease); }
.cp-rl .cp-rl__pqf:hover img { transform: scale(1.12); }
.cp-rl__pqf figcaption { position: absolute; left: 14px; bottom: 12px; padding: 4px 10px; border-radius: 6px; background: var(--n); color: #fff; font-size: 12px; font-weight: 600; line-height: 1.4; }
.cp-rl__pqcols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 5vw, 80px); margin-top: clamp(40px, 5vw, 64px); }
.cp-rl .cp-rl__pqcols .cp-rl__h3 { display: inline-block; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid var(--o); }

/* Déroulé : colonne collée, étapes numérotées */
.cp-rl__dr { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 104px); align-items: start; }
.cp-rl__drstick { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--cp-bar-h, 76px) + 40px); }
.cp-rl--deroule .cp-rl__h { font-size: clamp(30px, 2.9vw, 46px); }
.cp-rl--deroule .cp-rl__lead { margin-top: 28px; }
.cp-rl__drkit { margin-top: 36px; padding: 24px; border-radius: 8px; background: #F1F3F9; }
.cp-rl--calque .cp-rl__drkit { background: #fff; box-shadow: 0 0 0 1px var(--line); }
.cp-rl .cp-rl__drkt { color: var(--mute); font-size: 14px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.cp-rl__drkit li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 1.5; }
.cp-rl__drkit li:last-child { border-bottom: 0; }
.cp-rl__drkit li span { color: var(--mute); }
.cp-rl__drkit li b { color: var(--n); font-weight: 600; text-align: right; }
.cp-rl__drsteps li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 20px; padding: 30px 24px 30px 0; border-bottom: 1px solid var(--line); border-radius: 8px 8px 0 0; transition: padding-left .4s var(--ease), background-color .4s; }
.cp-rl__drsteps li:hover { padding-left: 18px; background: #F1F3F9; }
.cp-rl--calque .cp-rl__drsteps li:hover { background: #fff; }
.cp-rl__drn { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--o); color: var(--o); font-weight: 700; font-variant-numeric: tabular-nums; transition: background .4s, color .4s; }
.cp-rl__drsteps li:hover .cp-rl__drn { background: var(--o); color: var(--n); }
.cp-rl .cp-rl__drsteps .cp-rl__h3 { margin: 0 0 8px; }

/* Publics : cartes à pictogramme */
.cp-rl__pu { display: grid; grid-template-columns: repeat(var(--cnt, 4), minmax(0, 1fr)); gap: 16px; margin-top: clamp(48px, 6vw, 72px) !important; }
.cp-rl__puc { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 320px; padding: 26px; border-radius: 8px; background: #fff; box-shadow: 0 0 0 1px var(--line); transition: background-color .5s var(--ease), transform .5s var(--ease); }
.cp-rl--blanc .cp-rl__puc { background: #F1F3F9; box-shadow: none; }
.cp-rl__puc svg { position: absolute; left: 26px; top: 26px; width: 44px; height: 44px; color: var(--n); transition: color .5s; }
.cp-rl .cp-rl__puc .cp-rl__h3 { margin: 0; font-size: 20px; transition: color .5s; }
.cp-rl .cp-rl__puc p { margin-top: 10px; font-size: 16px; line-height: 1.6; transition: color .5s; }
.cp-rl__puc:hover,
.cp-rl__puc:focus-within,
.cp-rl__puc:focus { background: var(--n); transform: translateY(-6px); outline: 0; }
.cp-rl__puc:hover svg,
.cp-rl__puc:focus svg { color: var(--o); }
.cp-rl .cp-rl__puc:hover .cp-rl__h3,
.cp-rl .cp-rl__puc:focus .cp-rl__h3 { color: #fff; }
.cp-rl .cp-rl__puc:hover p,
.cp-rl .cp-rl__puc:focus p { color: var(--soft); }

@media (max-width: 1000px) {
	.cp-rl__cl,
	.cp-rl__me,
	.cp-rl__dr,
	.cp-rl__pq,
	.cp-rl__pqcols { grid-template-columns: minmax(0, 1fr); }
	.cp-rl__clstage,
	.cp-rl__mestick,
	.cp-rl__drstick { position: static; }
	.cp-rl__clstage { order: -1; }
	.cp-rl__clstep { min-height: 0; padding-block: 24px; opacity: 1; }
	.cp-rl__pu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cp-rl__puc { min-height: 0; padding-top: 96px; }
}
@media (max-width: 640px) {
	.cp-rl__fr,
	.cp-rl__pu { grid-template-columns: minmax(0, 1fr); }
	.cp-rl__fr::before,
	.cp-rl__fr::after { display: none; }
	.cp-rl__frj { padding-top: 0; }
	.cp-rl__frj::before { display: none; }
	.cp-rl__drsteps li { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; }
	.cp-rl__drn { width: 44px; height: 44px; font-size: 14px; }
}

/* ---------- Visionneuse (validée le 06/10) : sélecteur automatique, fenêtre inclinable, annotations liées aux métiers ---------- */
.cp-rl--visionneuse { isolation: isolate; }
.cp-rl__vsg { position: absolute; z-index: -1; border-radius: 50%; filter: blur(90px); opacity: .55; pointer-events: none; }
.cp-rl__vsg--1 { left: -160px; top: -120px; width: 520px; height: 520px; background: #1E3478; }
.cp-rl__vsg--2 { right: -120px; bottom: -160px; width: 460px; height: 460px; background: rgba(255, 153, 0, .35); animation: cp-rl-vsdrift 14s ease-in-out infinite alternate; }
@keyframes cp-rl-vsdrift { to { transform: translate(-80px, -60px); } }
.cp-rl__vshead { text-align: center; }
.cp-rl__vshead .cp-rl__cote { margin-inline: auto; }
.cp-rl--visionneuse .cp-rl__vshead .cp-rl__lead { max-width: min(100%, 760px); margin: 24px auto 0; color: #DADCEC; }
.cp-rl__vseg { position: relative; display: inline-grid; grid-template-columns: 1fr 1fr; margin-top: 40px; padding: 6px; border-radius: 999px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.cp-rl__vseg button { all: unset; position: relative; z-index: 1; padding: 12px 26px; border-radius: 999px; color: var(--soft); font-size: 16px; font-weight: 600; line-height: 1.3; text-align: center; white-space: nowrap; cursor: pointer; transition: color .4s; }
.cp-rl__vseg button[aria-selected="true"] { color: var(--n); }
.cp-rl__vseg button:focus-visible { outline: 2px solid var(--o); outline-offset: 2px; }
.cp-rl__vspill { position: absolute; top: 6px; bottom: 6px; left: 6px; width: calc(50% - 6px); overflow: hidden; border-radius: 999px; background: var(--o); box-shadow: 0 8px 24px -8px rgba(255, 153, 0, .7); transition: transform .55s var(--ease); }
.cp-rl__vspill::after { content: ""; position: absolute; left: 0; bottom: 0; width: calc(var(--k, 0) * 100%); height: 3px; background: rgba(0, 0, 51, .35); }
.cp-rl__vseg[data-s="1"] .cp-rl__vspill { transform: translateX(100%); }
.cp-rl__vsbody { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: center; margin-top: clamp(48px, 6vw, 72px); }
.cp-rl__vspanel { position: relative; }
.cp-rl__vspane { position: absolute; inset: 0 0 auto; opacity: 0; transform: translateY(18px); pointer-events: none; transition: opacity .6s var(--ease), transform .6s var(--ease); }
.cp-rl__vspane.is-on { position: relative; opacity: 1; transform: none; pointer-events: auto; }
.cp-rl .cp-rl__vspane .cp-rl__h3 { margin: 0; color: #fff; font-size: clamp(24px, 2.1vw, 32px); line-height: 1.15; letter-spacing: -.015em; }
.cp-rl__vspane .cp-rl__txt { margin-top: 16px; }
.cp-rl--nuit .cp-rl__vspane a { color: #fff; text-decoration: underline; text-decoration-color: var(--o); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.cp-rl__vschips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px !important; }
.cp-rl__vschip { display: flex; align-items: center; gap: 10px; padding: 9px 14px 9px 10px; border-radius: 999px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); color: #fff; font-size: 15px; font-weight: 600; line-height: 1.2; cursor: default; transition: background-color .3s, box-shadow .3s, transform .3s var(--ease); }
.cp-rl__vschip b { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(255, 153, 0, .18); color: var(--o); font-size: 12px; }
.cp-rl__vschip.is-hot { background: rgba(255, 153, 0, .16); box-shadow: inset 0 0 0 1px var(--o); transform: translateY(-2px); }
.cp-rl__vschip.is-hot b { background: var(--o); color: var(--n); }
.cp-rl__vsstage { perspective: 1400px; }
.cp-rl__vswin { position: relative; border-radius: 8px; background: #0B0B3D; box-shadow: 0 60px 120px -40px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .1); transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .5s var(--ease); }
.cp-rl__vswin::before { content: ""; position: absolute; inset: -1px; padding: 1px; border-radius: 9px; background: radial-gradient(300px circle at var(--mx, 50%) var(--my, 0%), rgba(255, 153, 0, .9), transparent 60%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; pointer-events: none; transition: opacity .4s; }
.cp-rl__vsstage:hover .cp-rl__vswin::before { opacity: 1; }
.cp-rl__vsbar { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.cp-rl__vsbar i { width: 10px; height: 10px; border-radius: 50%; background: #30A46C; }
.cp-rl__vsbar i:first-child { background: #E5484D; }
.cp-rl__vsbar i:nth-child(2) { background: #F5A524; }
.cp-rl__vsfile { margin-left: 12px; color: var(--soft); font-size: 13px; font-weight: 600; letter-spacing: .04em; }
.cp-rl__vsbar em { display: flex; align-items: center; gap: 8px; margin-left: auto; color: var(--o); font-size: 12px; font-style: normal; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.cp-rl__vsbar em::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--o); box-shadow: 0 0 0 4px rgba(255, 153, 0, .2); animation: cp-rl-vsblink 1.6s infinite; }
@keyframes cp-rl-vsblink { 50% { opacity: .3; } }
.cp-rl__vsview { position: relative; aspect-ratio: 1080 / 860; max-width: 100%; margin: 14px; overflow: hidden; border-radius: 6px; background: #07072E; }
.cp-rl__vsshot { position: absolute; inset: 0; opacity: 0; transition: opacity .7s var(--ease); }
.cp-rl__vsshot.is-on { opacity: 1; }
.cp-rl .cp-rl__vsshot img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: contain; }
.cp-rl__vsscan { position: absolute; z-index: 4; top: 0; bottom: 0; left: -2px; width: 2px; background: var(--o); box-shadow: 0 0 18px 3px rgba(255, 153, 0, .7); opacity: 0; }
.cp-rl__vsview.is-swap .cp-rl__vsscan { animation: cp-rl-clpass 1.1s var(--ease); }
.cp-rl__vslines { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.cp-rl__vslines line { stroke: var(--n); stroke-width: 1.5; vector-effect: non-scaling-stroke; opacity: 0; transition: opacity .5s var(--ease) .3s, stroke .3s; }
.cp-rl__vsshot.is-on .cp-rl__vslines line { opacity: 1; }
.cp-rl__vsshot.is-on .cp-rl__vslines line:nth-child(2) { transition-delay: .6s; }
.cp-rl__vsshot.is-on .cp-rl__vslines line:nth-child(3) { transition-delay: .9s; }
.cp-rl__vsshot.is-on .cp-rl__vslines line:nth-child(4) { transition-delay: 1.2s; }
.cp-rl__vslines line.is-hot { stroke: var(--o); stroke-width: 2.5; }
.cp-rl__vspin { position: absolute; z-index: 3; inset: 0; pointer-events: none; }
.cp-rl__vsdot { position: absolute; left: var(--x); top: var(--y); width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: var(--o); transform: scale(0); transition: transform .45s var(--ease) calc(var(--d) * 1s); }
.cp-rl__vslb { position: absolute; left: var(--lx); top: var(--ly); padding: 5px 11px; border-radius: 6px; background: var(--n); color: #fff; font-size: 13px; font-weight: 600; line-height: 1.3; white-space: nowrap; opacity: 0; pointer-events: auto; cursor: default; transform: translate(-50%, -50%) translateY(8px); transition: opacity .4s calc(var(--d) * 1s + .45s), transform .4s var(--ease) calc(var(--d) * 1s + .45s), background-color .3s, color .3s; }
.cp-rl__vsshot.is-on .cp-rl__vsdot { transform: scale(1); animation: cp-rl-vspulse 2.2s calc(var(--d) * 1s + .5s) infinite; }
.cp-rl__vsshot.is-on .cp-rl__vslb { opacity: 1; transform: translate(-50%, -50%); }
@keyframes cp-rl-vspulse { 0% { box-shadow: 0 0 0 0 rgba(255, 153, 0, .6); } 100% { box-shadow: 0 0 0 16px rgba(255, 153, 0, 0); } }
.cp-rl__vspin.is-hot .cp-rl__vslb { background: var(--o); color: var(--n); }
.cp-rl__vspin.is-hot .cp-rl__vsdot { transform: scale(1.4); }
.cp-rl .cp-rl__vscap { padding: 0 16px 14px; color: #7F84A8; font-size: 13px; line-height: 1.4; text-align: right; }
@media (max-width: 1000px) {
	.cp-rl__vsbody { grid-template-columns: minmax(0, 1fr); }
	.cp-rl__vsstage { order: -1; }
	.cp-rl__vswin { transform: none !important; }
}
@media (max-width: 600px) {
	.cp-rl__vseg { display: grid; width: 100%; }
	.cp-rl__vseg button { padding: 11px 10px; font-size: 14px; white-space: normal; }
	.cp-rl__vslb { max-width: 110px; padding: 3px 6px; font-size: 10px; text-align: center; white-space: normal; }
	.cp-rl__vsfile { display: none; }
}
