/* KoadBooth, charte « Serpentins » : composants neufs, servis par KOAD-SERP-01 (uploads/skeudva/koad-serpentins.css).
   Préfixe srp- (libre sur les 70 pages et les 16 fichiers servis, 05/10/2026). Chaque règle est portée par la racine .srp :
   0,2,0 au moins, devant Blocksy (.entry-content x = 0,1,1), 4615 (html:root h2 = 0,1,2) et la feuille de page (.kb p),
   sans !important (un seul, justifié en fin de fichier). Aucune ombre, aucun dégradé (le flash excepté), aucun contour de carte. */

/* jetons : le :root de charte.json (css_jetons.root), à l'identique */
:root{--blanc:#FFFFFF;--vert:#0A6A2C;--bordeaux:#8A1538;--encre:#0D1F13;--encre-2:#4B5A50;--vert-nuit:#06471C;--sur-vert:#DDF3E2;--bordeaux-nuit:#6A0F28;--sur-bordeaux:#F7D9E1;--gris:#F4F5F3;--filet:#DFE3DE;--filet-vert:#458E5F;--f-affiche:"Kalnia","Didot",Georgia,serif;--f-texte:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;--t-affiche:clamp(40px,4.05vw,58px);--t-titre:clamp(34px,4.4vw,62px);--t-sous-titre:clamp(23px,2.1vw,29px);--t-chapeau:clamp(18px,1.45vw,21px);--t-texte:17px;--t-petit:14px;--t-ui:15px;--gout:clamp(16px,4vw,52px);--section:clamp(76px,9.5vw,136px);--mesure:66ch;--page:1240px;--r-boitier-l:28px;--r-boitier-m:24px;--r-ecran:6px;--moulure:9px;--coin:9px;--ecran:3 / 2;--courbe:cubic-bezier(.16,1,.3,1);--t-etat:200ms;--t-serpentin:1500ms;--t-decale:140ms;--t-chiffre:360ms;--t-flash-in:70ms;--t-flash-out:560ms}
/* étiquette : le masque des coins rentrants (css_jetons.etiquette_masque) */
:root{--masque:radial-gradient(var(--coin) at 0 0,#0000 98%,#000) 0 0/51% 51% no-repeat,radial-gradient(var(--coin) at 100% 0,#0000 98%,#000) 100% 0/51% 51% no-repeat,radial-gradient(var(--coin) at 0 100%,#0000 98%,#000) 0 100%/51% 51% no-repeat,radial-gradient(var(--coin) at 100% 100%,#0000 98%,#000) 100% 100%/51% 51% no-repeat;--masque-int:radial-gradient(calc(var(--coin) + 2px) at -2px -2px,#0000 98%,#000) 0 0/51% 51% no-repeat,radial-gradient(calc(var(--coin) + 2px) at calc(100% + 2px) -2px,#0000 98%,#000) 100% 0/51% 51% no-repeat,radial-gradient(calc(var(--coin) + 2px) at -2px calc(100% + 2px),#0000 98%,#000) 0 100%/51% 51% no-repeat,radial-gradient(calc(var(--coin) + 2px) at calc(100% + 2px) calc(100% + 2px),#0000 98%,#000) 100% 100%/51% 51% no-repeat}

/* racine et régions (couleurs.roles) : la légende Archivo, l'encre ; vert, vert nuit et bordeaux portent le blanc */
.srp{font-family:var(--f-texte);font-size:var(--t-texte);line-height:1.6;color:var(--encre);-webkit-font-smoothing:antialiased;--anneau:var(--vert);--fond:var(--blanc)}
.srp *,.srp *::before,.srp *::after{box-sizing:border-box}
.srp img{display:block;max-width:100%;height:auto}
.srp :focus-visible{outline:3px solid var(--anneau);outline-offset:3px;border-radius:var(--r-ecran)}
.srp .srp-sur-vert,.srp.srp-sur-vert{background:var(--vert);color:var(--blanc);--anneau:var(--blanc);--fond:var(--vert)}
.srp .srp-sur-nuit,.srp.srp-sur-nuit{background:var(--vert-nuit);color:var(--blanc);--anneau:var(--blanc);--fond:var(--vert-nuit)}
.srp .srp-sur-bordeaux,.srp.srp-sur-bordeaux{background:var(--bordeaux);color:var(--blanc);--anneau:var(--blanc);--fond:var(--bordeaux)}
.srp .srp-page{max-width:calc(var(--page) + 2*var(--gout));margin:0 auto;padding:0 var(--gout)}
.srp .srp-sec{padding:var(--section) 0}

/* typographie (echelle) : affiche, titre, sous-titre, ligne chantée, chapeau, « dès », chiffre */
.srp .srp-h1,.srp .srp-titre,.srp .srp-sous-titre{margin:0;font-family:var(--f-affiche);font-weight:640;line-height:1.02;letter-spacing:-.012em;text-wrap:balance;color:var(--vert)}
.srp .srp-h1{font-size:var(--t-affiche);font-weight:700;line-height:.98;letter-spacing:-.015em}
.srp .srp-h1__l{display:block}
.srp .srp-titre{font-size:var(--t-titre)}
.srp .srp-sous-titre{font-size:var(--t-sous-titre);font-weight:620}
.srp :is(.srp-sur-vert,.srp-sur-nuit,.srp-sur-bordeaux) :is(.srp-titre,.srp-sous-titre,.srp-chante,.srp-chiffre,.srp-des){color:var(--blanc)}
.srp .srp-chante{display:block;font-weight:330;letter-spacing:-.01em;color:var(--bordeaux)}
.srp .srp-chapeau{margin:0;font-size:var(--t-chapeau);line-height:1.5;color:var(--encre-2);text-wrap:pretty}
.srp .srp-chapeau b{color:var(--encre);font-weight:700}
.srp :is(.srp-sur-vert,.srp-sur-nuit) .srp-chapeau{color:var(--sur-vert)}
.srp .srp-sur-bordeaux .srp-chapeau{color:var(--sur-bordeaux)}
.srp .srp-p{margin:0;text-wrap:pretty}
.srp .srp-petit{font-size:var(--t-petit);line-height:1.5}
.srp .srp-second{color:var(--encre-2)}
.srp .srp-des{font-family:var(--f-affiche);font-weight:330;font-size:clamp(26px,2.2vw,32px);line-height:1;color:var(--bordeaux)}
.srp .srp-chiffre{font-family:var(--f-affiche);font-weight:700;font-size:clamp(52px,5.6vw,80px);line-height:1;letter-spacing:-.02em;color:var(--vert);font-variant-numeric:tabular-nums}

/* étincelle : le reflet de l'objectif devenu fleuron, jamais semée */
.srp .srp-etincelle{display:inline-block;width:1em;height:1em;flex:none;fill:currentColor;vertical-align:-.1em}

/* bouton (l'étiquette) : coins rentrants par masque sur ::before, pour ne pas couper l'anneau de focus */
.srp .srp-btn{--plein:transparent;--texte:currentColor;position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;margin:0;padding:8px 28px;border:0;background:none;border-radius:var(--r-ecran);font-family:var(--f-texte);font-size:14.5px;font-weight:700;font-stretch:112%;letter-spacing:.075em;text-transform:uppercase;line-height:1.2;text-align:center;text-wrap:balance;color:var(--texte);text-decoration:none;cursor:pointer;box-shadow:none;transition:color var(--t-etat) var(--courbe);-webkit-tap-highlight-color:transparent}
.srp .srp-btn::before,.srp .srp-btn::after{content:"";position:absolute;z-index:-1;pointer-events:none}
.srp .srp-btn::before{inset:0;background:var(--plein);-webkit-mask:var(--masque);mask:var(--masque);transition:background-color var(--t-etat) var(--courbe)}
.srp .srp-btn:is(:hover,:focus-visible,:active){color:var(--texte);text-decoration:none;transform:none;box-shadow:none;background:none}
.srp .srp-btn .srp-etincelle{width:12px;height:12px}
.srp .srp-btn--bordeaux{--plein:var(--bordeaux);--texte:var(--blanc)}
.srp .srp-btn--bordeaux:hover{--plein:var(--bordeaux-nuit)}
.srp .srp-btn--blanc{--plein:var(--blanc);--texte:var(--bordeaux)}
.srp .srp-btn--blanc:hover{--plein:var(--sur-bordeaux)}
.srp .srp-btn--vert{--plein:var(--vert);--texte:var(--blanc)}
.srp .srp-btn--vert:hover{--plein:var(--vert-nuit)}
.srp .srp-btn--encre{--plein:var(--encre);--texte:var(--blanc)}
.srp .srp-btn--encre:hover{--plein:var(--vert-nuit)}
/* T25 (07/10, AUD-079) : l'évidé prend la couleur d'accent de sa surface (--anneau : vert sur blanc, blanc dans une region coloree, vert dans un formulaire blanc) ; interligne 1,2 pour les libelles sur deux lignes */
.srp .srp-btn--ligne{--plein:currentColor;--texte:var(--anneau)}
.srp .srp-btn--ligne::after{inset:2px;background:var(--fond,var(--blanc));-webkit-mask:var(--masque-int);mask:var(--masque-int);transition:opacity var(--t-etat) var(--courbe)}
.srp .srp-btn--ligne:hover::after{opacity:0}
.srp .srp-btn--ligne:hover{--plein:var(--vert);color:var(--blanc)}
.srp :is(.srp-sur-vert,.srp-sur-nuit) .srp-btn--ligne:hover{--plein:var(--blanc);color:var(--vert)}
/* correctifs du 06/10 (audit, T01) */
/* boutons d envoi : Blocksy pose son ombre floue sur [type=submit]::before (display:var(--theme-button-shadow), opacity 0, flou) ; l etiquette y peint son fond */
.srp .srp-btn.srp-btn::before,.srp #kdev-submit::before,.srp #kem-submit::before{display:block;opacity:1;filter:none}
/* un formulaire blanc pose sur une region verte reprend les couleurs du blanc */
.srp .srp-formulaire :is(.srp-titre,.srp-sous-titre,.srp-chiffre){color:var(--vert)}
.srp .srp-formulaire :is(.srp-chante,.srp-des){color:var(--bordeaux)}
.srp .srp-formulaire .srp-chapeau{color:var(--encre-2)}
/* carte de formule mise en avant (verte) des pages de ville : etiquette evidee remplie de vert, trait et texte blancs */
.srp :is(.kbz-card,.kpl-card,.kx-card,.kfr-card).pop .srp-btn--ligne{--fond:var(--vert);color:var(--blanc)}
.srp :is(.kbz-card,.kpl-card,.kx-card,.kfr-card).pop .srp-btn--ligne:hover{--plein:var(--blanc);color:var(--vert)}
.srp .srp-btn[disabled],.srp .srp-btn[aria-disabled="true"]{--plein:var(--filet);--texte:var(--encre-2);cursor:not-allowed}
.srp .srp-btn--petit{min-height:46px;padding:6px 20px;font-size:13px}
.srp .srp-btn--grand{min-height:60px;padding:8px 32px;font-size:15px}

/* lien : trait plein 2px, survol bordeaux et trait 3px ; reste blanc sur couleur */
.srp .srp-lien{color:inherit;font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:currentColor;transition:color var(--t-etat) var(--courbe),text-decoration-color var(--t-etat) var(--courbe)}
.srp .srp-lien:hover{color:var(--bordeaux);text-decoration-thickness:3px}
.srp :is(.srp-sur-vert,.srp-sur-nuit,.srp-sur-bordeaux) .srp-lien:hover{color:var(--blanc)}

/* cartouche : la moulure, neuf parts en border-image ; les deux SVG en ligne (aucun chemin d'uploads), coins en use */
.srp .srp-cartouche{position:relative}
.srp .srp-cartouche::before{content:"";position:absolute;inset:var(--moulure);pointer-events:none;border:40px solid transparent;border-image:var(--cartouche,url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' width='120' height='120'><defs><g id='c' fill='none' stroke='%230A6A2C' stroke-width='1.5'><path d='M17 .75A16.25 16.25 0 0 1 .75 17'/><path d='M21.6 7.9A23 23 0 0 1 7.9 21.6' stroke-linecap='round'/><path d='M6.5 1.3Q7.33 5.67 11.7 6.5Q7.33 7.33 6.5 11.7Q5.67 7.33 1.3 6.5Q5.67 5.67 6.5 1.3Z' fill='%238A1538' stroke='none'/></g></defs><path d='M17 .75H103M119.25 17V103M103 119.25H17M.75 103V17' fill='none' stroke='%230A6A2C' stroke-width='1.5'/><use href='%23c'/><use href='%23c' transform='matrix(-1 0 0 1 120 0)'/><use href='%23c' transform='matrix(1 0 0 -1 0 120)'/><use href='%23c' transform='matrix(-1 0 0 -1 120 120)'/></svg>")) 40/40px}
.srp :is(.srp-sur-vert,.srp-sur-nuit,.srp-sur-bordeaux) .srp-cartouche,.srp :is(.srp-sur-vert,.srp-sur-nuit,.srp-sur-bordeaux).srp-cartouche{--cartouche:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' width='120' height='120'><defs><g id='c' fill='none' stroke='%23FFFFFF' stroke-width='1.5'><path d='M17 .75A16.25 16.25 0 0 1 .75 17'/><path d='M21.6 7.9A23 23 0 0 1 7.9 21.6' stroke-linecap='round'/><path d='M6.5 1.3Q7.33 5.67 11.7 6.5Q7.33 7.33 6.5 11.7Q5.67 7.33 1.3 6.5Q5.67 5.67 6.5 1.3Z' fill='%23FFFFFF' stroke='none'/></g></defs><path d='M17 .75H103M119.25 17V103M103 119.25H17M.75 103V17' fill='none' stroke='%23FFFFFF' stroke-width='1.5'/><use href='%23c'/><use href='%23c' transform='matrix(-1 0 0 1 120 0)'/><use href='%23c' transform='matrix(1 0 0 -1 0 120)'/><use href='%23c' transform='matrix(-1 0 0 -1 120 120)'/></svg>")}

/* champ : 52px, bordure verte 2px, rayon écran ; erreur bordeaux, icône dessinée (symbole srp-alerte), « (facultatif) » */
.srp .srp-champs{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}
.srp .srp-champ{display:grid;gap:7px;align-content:start;margin:0;padding:0;border:0;min-width:0}
.srp .srp-champ--large{grid-column:1/-1}
.srp .srp-champ__libelle,.srp .srp-champ legend{display:block;margin:0;padding:0;font-size:14px;font-weight:640;line-height:1.4;color:var(--encre)}
.srp .srp-facultatif{font-weight:400;color:var(--encre-2)}
.srp .srp-champ__saisie{display:block;width:100%;min-height:52px;margin:0;padding:0 14px;border:2px solid var(--vert);border-radius:var(--r-ecran);background:var(--blanc);color:var(--encre);font:inherit;font-size:16px;line-height:1.3;box-shadow:none;appearance:none}
.srp textarea.srp-champ__saisie{min-height:120px;padding:12px 14px;resize:vertical}
.srp .srp-champ__saisie::placeholder{color:var(--encre-2);opacity:1}
.srp .srp-champ__saisie:focus-visible{outline:3px solid var(--vert);outline-offset:2px;border-color:var(--vert)}
.srp .srp-champ--erreur .srp-champ__saisie,.srp .srp-champ__saisie[aria-invalid="true"]{border-color:var(--bordeaux)}
.srp .srp-erreur{display:flex;gap:8px;align-items:center;margin:0;color:var(--bordeaux);font-size:14px;font-weight:600}
.srp .srp-erreur[hidden]{display:none}
.srp .srp-erreur svg{width:18px;height:18px;flex:none}

/* puce de choix : 44px, bordure filet ; choisie = aplat vert en étiquette (coins rentrants) ; focus sur le label */
.srp .srp-puces{display:flex;flex-wrap:wrap;gap:8px}
.srp .srp-puce{position:relative;margin:0;cursor:pointer;border-radius:var(--r-ecran)}
.srp .srp-puce input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.srp .srp-puce__texte{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:2px solid var(--filet);border-radius:var(--r-ecran);background:var(--blanc);color:var(--encre);font-size:var(--t-ui);font-weight:560;line-height:1.2;transition:border-color var(--t-etat) var(--courbe),background-color var(--t-etat) var(--courbe),color var(--t-etat) var(--courbe)}
.srp .srp-puce:hover .srp-puce__texte{border-color:var(--vert)}
.srp .srp-puce input:checked+.srp-puce__texte,.srp .srp-puce--choisie .srp-puce__texte{background:var(--vert);border-color:var(--vert);color:var(--blanc);border-radius:0;-webkit-mask:var(--masque);mask:var(--masque)}
.srp .srp-puce:has(input:focus-visible){outline:3px solid var(--vert);outline-offset:2px}

/* étape : objectif 80px (64 sur téléphone) à bague en pseudo-élément, chiffre Kalnia, frise 2px ; le clic bordeaux à bague blanche ;
   sur le vert, rond blanc à bague et chiffre verts, le clic à bague et étincelle bordeaux (jamais bordeaux contre vert) */
.srp .srp-etapes{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.srp .srp-etapes::before{content:"";position:absolute;left:40px;right:12%;top:39px;height:2px;background:var(--filet)}
.srp .srp-sur-vert .srp-etapes::before{background:var(--filet-vert)}
.srp .srp-etape{position:relative;margin:0;padding:0}
.srp .srp-etape__rond{position:relative;display:grid;place-items:center;width:80px;height:80px;border-radius:50%;background:var(--vert);color:var(--blanc);font-family:var(--f-affiche);font-size:36px;font-weight:700;line-height:1}
.srp .srp-etape__rond::before{content:"";position:absolute;inset:7px;border:2.5px solid var(--blanc);border-radius:50%;pointer-events:none}
.srp .srp-etape__rond svg{position:relative;width:30px;height:30px;fill:currentColor}
.srp .srp-etape--clic .srp-etape__rond{background:var(--bordeaux)}
.srp .srp-etape__titre{margin:24px 0 0;font-family:var(--f-affiche);font-weight:620;font-size:23px;line-height:1.1;color:var(--vert)}
.srp .srp-etape__texte{margin:10px 0 0;color:var(--encre-2);font-size:16px;max-width:30ch}
.srp .srp-sur-vert .srp-etape__rond{background:var(--blanc);color:var(--vert)}
.srp .srp-sur-vert .srp-etape__rond::before{border-color:var(--vert)}
.srp .srp-sur-vert .srp-etape--clic .srp-etape__rond{color:var(--bordeaux)}
.srp .srp-sur-vert .srp-etape--clic .srp-etape__rond::before{border-color:var(--bordeaux)}
.srp .srp-sur-vert .srp-etape__titre{color:var(--blanc)}
.srp .srp-sur-vert .srp-etape__texte{color:var(--sur-vert)}

/* questions (FAQ) : details natifs, sans script ; le plus = objectif vert 30px à barres blanches, qui tourne et passe au bordeaux */
.srp .srp-faq{margin:0}
.srp .srp-faq__q{position:relative;margin:0;padding:22px 0;border-top:2px solid var(--filet)}
.srp .srp-faq__s{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:0;padding:0;font-size:19px;font-weight:640;line-height:1.35;color:var(--encre)}
.srp .srp-faq__s::-webkit-details-marker{display:none}
.srp .srp-faq__s::marker{content:""}
.srp .srp-plus{position:relative;flex:none;width:30px;height:30px;margin-top:-2px;border-radius:50%;background:var(--vert);transition:background-color var(--t-etat) var(--courbe)}
.srp .srp-plus::before,.srp .srp-plus::after{content:"";position:absolute;left:8.5px;right:8.5px;top:13.5px;height:3px;border-radius:3px;background:var(--blanc);transition:transform var(--t-etat) var(--courbe)}
.srp .srp-plus::after{transform:rotate(90deg)}
.srp .srp-faq__q[open] .srp-plus{background:var(--bordeaux)}
.srp .srp-faq__q[open] .srp-plus::after{transform:rotate(0)}
.srp .srp-faq__r{margin:12px 0 0;color:var(--encre-2);max-width:60ch}

/* offre : pas de carte, une affichette centrée ; un filet 2px marqué d'une étincelle bordeaux sépare deux offres */
.srp .srp-offres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}
.srp .srp-offre{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;margin:0;padding:4px clamp(20px,3vw,44px) 8px}
.srp .srp-offre+.srp-offre::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;background:var(--filet)}
.srp .srp-offre+.srp-offre::after{content:"";position:absolute;left:-8px;top:calc(50% - 9px);width:18px;height:18px;background:var(--bordeaux);clip-path:path("M9 0Q10.4 7.6 18 9Q10.4 10.4 9 18Q7.6 10.4 0 9Q7.6 7.6 9 0Z")}
.srp .srp-offre__titre{margin:0;font-family:var(--f-affiche);font-size:var(--t-sous-titre);font-weight:620;line-height:1.02;color:var(--vert)}
.srp .srp-offre__prix{margin:14px 0 0;display:grid;justify-items:center;font-size:var(--t-ui);color:var(--encre-2)}
.srp .srp-offre__prix .srp-chiffre{display:block;margin:2px 0 8px}
.srp .srp-offre__texte{margin:16px 0 0;color:var(--encre-2);max-width:32ch;flex:1}
.srp .srp-offre .srp-lien{margin-top:22px;color:var(--vert)}

/* carte_modele et carte_avis : aplat gris, cartouche ; fiche technique au filet 1px, la ligne qui départage en vert gras */
.srp .srp-carte{position:relative;margin:0;background:var(--gris);border:0;border-radius:var(--r-boitier-l);padding:clamp(40px,4vw,56px);box-shadow:none;color:var(--encre)}
.srp .srp-carte--modele{display:grid;gap:26px;align-content:start}
.srp .srp-carte--avis{border-radius:var(--r-boitier-m);padding:44px 46px}
.srp .srp-carte__photo{aspect-ratio:var(--ecran);overflow:hidden;border-radius:var(--r-ecran);background:var(--blanc)}
.srp .srp-carte__photo img{width:100%;height:100%;object-fit:cover}
.srp .srp-carte__nom{margin:0;font-family:var(--f-affiche);font-weight:640;font-size:clamp(30px,3vw,40px);line-height:1.02;color:var(--vert)}
.srp .srp-carte__zone{margin:6px 0 0;color:var(--encre-2);font-size:var(--t-ui)}
.srp .srp-fiche{margin:20px 0 0;display:grid;grid-template-columns:auto 1fr;gap:0 18px;font-size:var(--t-ui)}
.srp .srp-fiche dt,.srp .srp-fiche dd{margin:0;padding:9px 0;border-top:1px solid var(--filet)}
.srp .srp-fiche dt{color:var(--encre-2)}
.srp .srp-fiche dd{font-weight:560}
.srp .srp-fiche .srp-fort{color:var(--vert);font-weight:700}
.srp .srp-carte__loc{margin:20px 0 0;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.srp .srp-carte__loc span{color:var(--encre-2);font-size:var(--t-ui)}
.srp .srp-carte__loc b{font-family:var(--f-affiche);color:var(--vert);font-size:32px;font-weight:700}
.srp .srp-carte--avis b{display:block;margin:0 0 6px;font-size:var(--t-ui);font-weight:680;color:var(--encre)}
.srp .srp-carte--avis p{margin:0;color:var(--encre-2);font-size:var(--t-ui);max-width:40ch}

/* liste à étincelles (engagements, garanties) : une étincelle par ligne */
.srp .srp-liste{list-style:none;margin:30px 0 0;padding:0}
.srp .srp-liste li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:0 16px;margin:0;padding:16px 0;border-top:1px solid var(--filet)}
.srp .srp-liste li:last-child{border-bottom:1px solid var(--filet)}
.srp .srp-liste .srp-etincelle{width:14px;height:14px;margin-top:5px;color:var(--bordeaux)}
.srp .srp-liste b{display:block;font-weight:650;color:var(--encre)}
.srp .srp-liste span{color:var(--encre-2);font-size:16px}
.srp :is(.srp-sur-vert,.srp-sur-bordeaux) .srp-liste li{border-color:var(--filet-vert)}
.srp :is(.srp-sur-vert,.srp-sur-bordeaux) .srp-liste :is(.srp-etincelle,b){color:var(--blanc)}
.srp .srp-sur-vert .srp-liste span{color:var(--sur-vert)}
.srp .srp-sur-bordeaux .srp-liste span{color:var(--sur-bordeaux)}

/* panneau_devis (vert, cartouche blanc, formulaire blanc posé dessus), panneau_appel (bordeaux CONTENU sur blanc),
   panneau_charte_entreprises (bordeaux + tirage blanc : photo 3:2, date Kalnia verte, « Votre logo ici » au filet bordeaux) */
.srp .srp-panneau{position:relative;margin:0;border:0;border-radius:var(--r-boitier-l);padding:clamp(30px,5vw,68px);box-shadow:none}
.srp .srp-panneau--devis{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,4vw,64px);align-items:center}
.srp .srp-panneau__garanties{list-style:none;margin:30px 0 0;padding:0;display:grid;gap:12px}
.srp .srp-panneau__garanties li{display:flex;gap:12px;align-items:center;margin:0;padding:0;font-weight:560}
.srp .srp-panneau__garanties .srp-etincelle{width:14px;height:14px;color:var(--blanc)}
.srp .srp-formulaire{position:relative;z-index:1;background:var(--blanc);color:var(--encre);border-radius:var(--r-boitier-m);padding:clamp(24px,3vw,38px);--anneau:var(--vert);--fond:var(--blanc)}
.srp .srp-formulaire .srp-btn{width:100%;margin-top:24px}
.srp .srp-formulaire__note{margin:12px 0 0;text-align:center;color:var(--encre-2);font-size:13.5px}
.srp .srp-panneau--appel{overflow:hidden;padding:clamp(56px,6.5vw,96px) clamp(36px,5vw,76px)}
.srp .srp-panneau__corps{position:relative;z-index:1;display:grid;justify-items:start;gap:32px}
.srp .srp-panneau--appel .srp-titre{font-size:clamp(32px,3.9vw,56px);line-height:1;max-width:15em;color:var(--blanc)}
.srp .srp-panneau--charte{padding:clamp(44px,4.4vw,64px)}
.srp .srp-tirage{background:var(--blanc);border-radius:3px;padding:6% 6% 0}
.srp .srp-tirage__photo{aspect-ratio:var(--ecran);overflow:hidden}
.srp .srp-tirage__photo img{width:100%;height:100%;object-fit:cover}
.srp .srp-tirage__pied{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4.5% 0}
.srp .srp-tirage__date{font-family:var(--f-affiche);font-weight:600;font-size:clamp(15px,1.4vw,19px);color:var(--vert)}
.srp .srp-tirage__logo{display:inline-grid;place-items:center;min-width:34%;padding:7px 12px;border:1.5px solid var(--bordeaux);border-radius:var(--r-ecran);font-size:13px;font-weight:650;color:var(--bordeaux)}
.srp .srp-panneau__legende{margin:22px 0 0;font-size:14px;color:var(--sur-bordeaux)}
.srp .srp-sur-vert .srp-panneau__legende{color:var(--sur-vert)}

/* confirmation : un objectif bordeaux à bague blanche et coche dessinée (symbole srp-coche), « C'est noté. » */
.srp .srp-merci{position:absolute;inset:0;border-radius:inherit;background:var(--blanc);display:grid;place-content:center;text-align:center;padding:32px;gap:12px}
.srp .srp-merci[hidden]{display:none}
.srp .srp-merci__rond{position:relative;width:68px;height:68px;margin:0 auto 8px;border-radius:50%;background:var(--bordeaux);color:var(--blanc);display:grid;place-items:center}
.srp .srp-merci__rond::before{content:"";position:absolute;inset:6px;border:2.5px solid var(--blanc);border-radius:50%}
.srp .srp-merci__rond svg{position:relative;width:30px;height:30px}
.srp .srp-merci__titre{margin:0;font-family:var(--f-affiche);font-weight:640;font-size:30px;line-height:1.05;color:var(--vert)}
.srp .srp-merci p{margin:0 auto;color:var(--encre-2);max-width:30ch}

/* serpentin : quatre figures en symboles (koad-serpentins-svg.html) ; les axes des masques sont posés à 1 (pathLength 1) et le
   script les déroule de 1 à 0 (1500ms, 140ms d'écart, courbe de la charte) une fois à l'arrivée, puis à chaque déclenchement */
.srp-symboles{position:absolute;width:0;height:0;overflow:hidden}
.srp-symboles .srp-axe{stroke-dasharray:1;stroke-dashoffset:1}
.srp .srp-serpentin{position:absolute;display:block;pointer-events:none;overflow:visible;z-index:0}
.srp .srp-serpentin--relais{top:0;right:calc((100vw - var(--page)) / 2 - 64px);width:104px;height:100%}
.srp .srp-serpentin--descente{top:0;right:max(0px,calc((100vw - var(--page)) / 2 - 40px));width:clamp(240px,30vw,430px);aspect-ratio:520/960}
.srp .srp-serpentin--appel{right:0;bottom:6%;width:clamp(220px,24vw,340px);aspect-ratio:2}
.srp .srp-porte-serpentin{position:relative;overflow:hidden}

/* borne_affiche : la borne du logo à l'échelle du héros, photo 3:2 dans l'écran, objectif cliquable, décompte, flash ; la scène clippe */
.srp .srp-scene{position:relative;overflow:hidden}
/* la borne est un div à role="figure", pas un <figure> : Elementor pose margin:0 sur toute figure d'un widget à 0,4,1 (frontend.min.css) */
.srp .srp-borne{position:relative;margin:44px 0 0 -2%;width:102%;aspect-ratio:460/670}
.srp .srp-borne__svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;color:var(--vert)}
.srp .srp-borne__ecran{position:absolute;left:16.96%;top:40.3%;width:44.35%;height:20.3%;border-radius:1.6%;overflow:hidden;background:var(--encre)}
.srp .srp-borne__ecran img{width:100%;height:100%;object-fit:cover}
.srp .srp-decompte{position:absolute;inset:0;display:grid;place-items:center;background:rgba(13,31,19,.45);color:var(--blanc);font-family:var(--f-affiche);font-weight:700;font-size:clamp(48px,8vw,120px);line-height:1;opacity:0;pointer-events:none}
.srp .srp-objectif{position:absolute;left:28.26%;top:21.49%;width:21.74%;aspect-ratio:1;margin:0;padding:0;border:0;border-radius:50%;background:none;color:var(--vert);cursor:pointer;box-shadow:none;transition:transform var(--t-etat) var(--courbe),color var(--t-etat) var(--courbe);--anneau:var(--blanc)}
.srp .srp-objectif svg{display:block;width:100%;height:100%}
.srp .srp-objectif:hover{transform:scale(1.06);color:var(--vert-nuit);background:none}
.srp .srp-objectif:active{transform:scale(.94)}
.srp .srp-objectif:focus-visible{outline:3px solid var(--blanc);outline-offset:3px;border-radius:50%}
.srp .srp-borne__legende{position:absolute;left:70%;top:63%;width:30%;margin:0;font-size:13.5px;line-height:1.45;color:var(--encre-2)}
.srp .srp-borne__rejouer{display:inline-flex;align-items:center;gap:6px;margin:6px 0 0;padding:4px 0;border:0;background:none;box-shadow:none;color:var(--vert);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.srp .srp-borne__rejouer .srp-etincelle{width:12px;height:12px;color:var(--bordeaux)}
.srp .srp-borne__rejouer:hover{color:var(--bordeaux);background:none}
.srp .srp-flash{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--fx,70%) var(--fy,30%),#fff 0 8%,rgba(255,255,255,.9) 24%,rgba(255,255,255,0) 66%)}

/* points de rupture (grille.points_de_rupture) : 1380 relais, 860 une colonne et borne au-dessus du titre, 560 téléphone */
@media (max-width:1379px){.srp .srp-serpentin--relais{display:none}}
@media (max-width:860px){
.srp .srp-borne{--srp-l:min(400px,74vw);order:-1;width:var(--srp-l);margin:8px 0 calc(var(--srp-l) * -.47) 2%;clip-path:inset(-20px -100vw 32% -100vw)}
.srp .srp-borne__legende{display:none}
.srp .srp-offres{grid-template-columns:minmax(0,1fr)}
.srp .srp-offre,.srp .srp-offre:first-child{padding:30px 0}
.srp .srp-offre+.srp-offre::before{left:0;right:0;top:0;bottom:auto;width:auto;height:2px}
.srp .srp-offre+.srp-offre::after{left:calc(50% - 9px);top:-8px}
.srp .srp-panneau--devis{grid-template-columns:minmax(0,1fr)}
.srp .srp-etapes{grid-template-columns:1fr 1fr;gap:40px 24px}
.srp .srp-etapes::before{display:none}
.srp .srp-serpentin--descente{width:190px;height:200px;aspect-ratio:auto;right:-24px;overflow:hidden}
.srp .srp-serpentin--appel{top:auto;bottom:-30px;width:300px}
.srp .srp-panneau--appel .srp-panneau__corps{padding-bottom:90px}
}
@media (max-width:560px){
.srp .srp-h1{font-size:clamp(34px,9.6vw,46px)}
.srp .srp-borne{--srp-l:min(300px,78vw)}
.srp .srp-champs{grid-template-columns:minmax(0,1fr)}
.srp .srp-etapes{grid-template-columns:minmax(0,1fr)}
.srp .srp-etape{display:grid;grid-template-columns:64px 1fr;gap:0 18px}
.srp .srp-etape__rond{width:64px;height:64px;font-size:28px;grid-row:span 2}
.srp .srp-etape__titre{margin-top:4px}
.srp .srp-carte,.srp .srp-panneau{border-radius:var(--r-boitier-m)}
.srp .srp-carte{padding:36px 28px}
}
/* mouvement_reduit : rubans posés (script muet), ni décompte ni flash. Seul !important du fichier : il neutralise les transitions
   posées par des sélecteurs plus forts que .srp * (0,1,0) sans les énumérer, comme le bloc reduced_motion de charte.json */
@media (prefers-reduced-motion:reduce){
.srp-symboles .srp-axe{stroke-dashoffset:0}
.srp *,.srp *::before,.srp *::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}
}
/* T22 (06/10) : à 320 px rien ne sort de l'écran (pistes en minmax, éléments de grille rétrécissables) ; sous 560 px,
   panneaux et formulaires rendent leur rembourrage aux champs ; un texte d'aide trop long finit par une ellipse */
.srp :is(.srp-panneau--devis,.srp-grille-2,.srp-page) > *{min-width:0}
.srp input:not([type=checkbox]):not([type=radio]){text-overflow:ellipsis}
@media (max-width:560px){
  .srp .srp-panneau{padding:26px 14px}
  .srp .srp-formulaire{padding:20px 14px}
}