/* =====================================================================
   STYLE V3 du site Newvibes Group (24/09/2026)
   Même grammaire que les maquettes casino validées les 10 et 16/09, aux
   couleurs Newvibes : fond noir violet, accent violet et magenta, mots
   d'accent en Instrument Serif italique lilas. Chargée sur toutes les pages
   après shell.css (en-tête, pied, variables communes).
   Mode d'emploi des composants : app/editorial/README.md.
   ===================================================================== */

/* ----- POLICES (locales, copiées des maquettes casino) ----- */
@font-face{font-family:'Jakarta'; src:url('../fonts/plus-jakarta-sans.woff2') format('woff2'); font-weight:200 800; font-display:swap}
@font-face{font-family:'Instrument'; src:url('../fonts/instrument-serif-italic.woff2') format('woff2'); font-weight:400; font-style:italic; font-display:swap}

/* ----- COULEURS ----- */
:root{
  /* Les deux lignes à changer pour passer à l'or : #D4AF37 et #F0D268. */
  --accent-a:#8B5CF6;
  --accent-b:#D946EF;

  /* Tout le reste en découle ou ne dépend pas de l'accent. */
  --degrade:linear-gradient(120deg,var(--accent-a),var(--accent-b));
  --accent-clair:color-mix(in srgb,var(--accent-a) 40%,#fff);    /* mots en italique, sur-titres : 11:1 sur le fond */
  --accent-doux:color-mix(in srgb,var(--accent-a) 14%,transparent);
  --sur-accent:#120821;                                            /* texte sur le dégradé : 4,6:1 au plus clair */
  --fond:#0B0712;
  --fond-2:#120A1E;
  --surface:#161025;
  --surface-2:#1C1430;
  --ligne:rgba(237,233,254,.10);
  --ligne-accent:color-mix(in srgb,var(--accent-a) 34%,transparent);
  --encre:#F5F3FF;                                                 /* titres */
  --texte:#CFC8DC;                                                 /* texte courant : 12:1 */
  --discret:#9D94AE;                                               /* légendes : 6,6:1 */
  /* Section claire : crème légèrement lilas. */
  --creme:color-mix(in srgb,var(--accent-a) 6%,#FBF8F1);
  --creme-2:color-mix(in srgb,var(--accent-a) 10%,#F4EEE4);
  --creme-carte:#FFFDF9;
  --creme-encre:#1B1426;
  --creme-texte:#4B4159;                                           /* 8,5:1 sur la crème */
  --creme-accent:color-mix(in srgb,var(--accent-a) 75%,#1B1426);   /* 5,4:1 sur la crème */
  --creme-ligne:color-mix(in srgb,var(--accent-a) 22%,#E9E1D3);

  --r:16px;
  --largeur:1440px;
  --marge:clamp(16px,5vw,56px);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ----- BASE : l'en-tête, le pied et la pastille du site suivent les polices v3 ----- */
body.v3,.v3 .nv2{
  --font-display:'Jakarta',system-ui,'Segoe UI',sans-serif;
  --font-sans:'Jakarta',system-ui,'Segoe UI',sans-serif;
  --font-accent:'Instrument',Georgia,serif;
  -webkit-font-smoothing:antialiased;
}
body.v3{background:var(--fond); color:var(--texte); font-family:var(--font-sans); font-size:17px; line-height:1.62}
[hidden]{display:none !important}
.v3 main{overflow-x:clip}
.v3 .v3-insec{white-space:nowrap}
.v3-wrap{width:100%; max-width:var(--largeur); margin-inline:auto; padding-inline:var(--marge)}
.v3 p{text-wrap:pretty}

/* ----- TYPOGRAPHIE ----- */
.v3 .v3-h2,.v3 .v3-h3,.v3 h3{font-family:var(--font-display); color:var(--encre); margin:0; text-wrap:balance; word-spacing:normal}
.v3 .v3-h2{font-weight:800; font-size:clamp(30px,4.2vw,52px); line-height:1.04; letter-spacing:-.035em}
.v3 .v3-h3{font-weight:800; font-size:clamp(21px,2.2vw,27px); line-height:1.1; letter-spacing:-.03em}
.v3 .v3-it{font-family:var(--font-accent); font-style:italic; font-weight:400; font-size:1.06em; line-height:.95;
  letter-spacing:0; color:var(--accent-clair)}
.v3 .v3-lede{font-size:clamp(17px,1.5vw,20px); line-height:1.6; color:var(--texte); max-width:60ch; margin:0}
.v3 .v3-lede strong{color:var(--encre)}
.v3 .inline-link{color:var(--encre); text-decoration:underline; text-decoration-color:var(--ligne-accent); text-underline-offset:3px}
.v3 .inline-link:hover{text-decoration-color:var(--accent-b)}

/* Sur-titre à filet */
.v3 .v3-surtitre{display:inline-flex; align-items:center; gap:10px; margin:0 0 18px;
  font-family:var(--font-sans); font-size:12px; font-weight:600; line-height:1.5; letter-spacing:.19em; text-transform:uppercase; color:var(--accent-clair)}
.v3 .v3-surtitre::before,.v3 .v3-surtitre--centre::after{content:""; flex:none; width:26px; height:1px; background:var(--accent-clair); opacity:.6}
.v3 .v3-surtitre--centre{justify-content:center; text-align:center}

/* ----- BOUTONS : pilules ----- */
.v3 .v3-btn,.v3 .v3-pilule{display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:999px;
  font-family:var(--font-sans); font-size:16px; font-weight:600; letter-spacing:-.01em; line-height:1.4; text-decoration:none; cursor:pointer;
  padding:11px 22px; border:1px solid transparent; transition:transform .2s var(--ease), background .2s, border-color .2s, color .2s, box-shadow .2s}
.v3 .v3-btn{background:var(--degrade); color:var(--sur-accent); box-shadow:0 12px 34px -12px color-mix(in srgb,var(--accent-b) 70%,transparent)}
.v3 .v3-btn:hover{transform:translateY(-2px); box-shadow:0 18px 40px -12px color-mix(in srgb,var(--accent-b) 85%,transparent)}
.v3 .v3-pilule{color:var(--encre); background:rgba(255,255,255,.02); border-color:rgba(245,243,255,.36)}
.v3 .v3-pilule:hover{border-color:var(--accent-clair); color:var(--accent-clair)}
.v3 .v3-pilule svg{flex:none}
.v3 .v3-btn--grand,.v3 .v3-pilule--grand{padding:11px 24px; font-size:16px}
.v3 .v3-pilule--plein{width:100%}
.v3 .v3-actions{display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin:32px 0 0}
.v3 .v3-actions--centre{justify-content:center}

/* ----- SECTIONS ----- */
.v3 .v3-section{position:relative; padding:clamp(64px,9vw,118px) 0}
.v3 .v3-section--alt{background:linear-gradient(180deg,var(--fond-2),var(--fond))}

/* En-tête de section : titre à gauche, intro à droite */
.v3 .v3-tete{display:grid; gap:14px 72px; margin-bottom:44px}
.v3 .v3-tete .v3-h2{margin:0}
.v3 .v3-tete__droite{min-width:0}
.v3 .v3-tete--action .v3-tete__droite{display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-start}
@media (min-width:1100px){
  .v3 .v3-tete:not(.v3-tete--seule){grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:end}
  .v3 .v3-tete--action .v3-tete__droite{justify-content:flex-end}
  .v3 .v3-tete--seule .v3-h2{max-width:24ch}
  .v3 .v3-tete--long:not(.v3-tete--seule){grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
}
.v3 .v3-tete--long .v3-h2{font-size:clamp(28px,3.4vw,46px)}

/* ----- HAUT DE PAGE PLEIN ÉCRAN (et appel final) ----- */
.v3 .v3-haut{position:relative; overflow:hidden; isolation:isolate; min-height:clamp(560px,88vh,900px);
  display:grid; place-items:center; text-align:center; padding-top:var(--header-h)}
.v3 .v3-haut__fond{position:absolute; inset:0; z-index:-1}
.v3 .v3-haut__fond img,.v3 .v3-haut__fond video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.v3 .v3-haut__fond img{filter:saturate(.8)}
.v3 .v3-haut__fond video{opacity:0; transition:opacity 1.1s ease}
.v3 .v3-haut__fond video.is-ready{opacity:1}
.v3 .v3-haut__fond::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(11,7,18,.8),rgba(11,7,18,.5) 38%,rgba(11,7,18,.93)),
             radial-gradient(70% 55% at 50% 55%,transparent,rgba(11,7,18,.55))}
.v3 .v3-haut__in{position:relative; width:100%; max-width:1240px; padding:clamp(56px,9vh,110px) var(--marge)}
.v3 .v3-haut__h1{margin-bottom:22px; max-width:none; color:var(--accent-clair); text-shadow:0 1px 14px rgba(11,7,18,.9)}
.v3 .v3-haut__titre{margin:0 0 22px; font-family:var(--font-display); font-weight:800; font-size:clamp(40px,6.4vw,92px);
  line-height:1; letter-spacing:-.04em; color:#fff; text-shadow:0 4px 40px rgba(0,0,0,.5)}
.v3 .v3-haut__titre .v3-it{display:block; font-size:1.14em; line-height:1; margin:.02em 0 -.02em}
.v3 .v3-haut__intro{margin:0 auto; max-width:60ch; font-size:clamp(16.5px,1.5vw,20px); line-height:1.6; color:#ECE6F7}
.v3 .v3-haut .v3-pilule{border-color:rgba(255,255,255,.45); color:#fff}
.v3 .v3-haut .v3-pilule:hover{border-color:#fff; background:rgba(255,255,255,.08); color:#fff}
.v3 .v3-reperes{list-style:none; margin:30px 0 0; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 10px}
.v3 .v3-reperes li{display:inline-flex; align-items:baseline; gap:8px; font-size:14px; color:var(--texte);
  border:1px solid var(--ligne); border-radius:999px; padding:7px 15px; background:rgba(11,7,18,.35); backdrop-filter:blur(6px)}
.v3 .v3-reperes li > b{color:var(--accent-clair); font-weight:600}
.v3 .v3-haut__defile{position:absolute; left:50%; bottom:26px; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px;
  font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.6); text-decoration:none}
.v3 .v3-haut__defile::after{content:""; width:1px; height:26px; background:linear-gradient(rgba(255,255,255,.5),transparent)}
/* Appel final : même habillage, moins haut */
.v3 .v3-haut--appel{min-height:clamp(460px,70vh,720px); padding-top:0; border-top:1px solid var(--ligne)}
.v3 .v3-haut__titre--appel{font-size:clamp(34px,5.2vw,72px)}
.v3 .v3-roller{display:block; height:1.12em; overflow:hidden}
.v3 .v3-roller__list{display:block; transition:transform .85s cubic-bezier(.76,0,.24,1)}
.v3 .v3-roller__list .v3-it{display:block; height:1.056em; line-height:1.056; font-size:1.06em; margin:0}

/* ----- SECTION CLAIRE (crème lilas) ----- */
.v3 .v3-clair{background:linear-gradient(180deg,var(--creme),var(--creme-2)); color:var(--creme-texte)}
.v3 .v3-clair .v3-h2,.v3 .v3-clair h3{color:var(--creme-encre)}
.v3 .v3-clair .v3-it{color:var(--creme-accent)}
.v3 .v3-clair .v3-surtitre{color:var(--creme-accent)}
.v3 .v3-clair .v3-surtitre::before,.v3 .v3-clair .v3-surtitre--centre::after{background:var(--creme-accent)}
.v3 .v3-clair .v3-lede{color:var(--creme-texte)}
.v3 .v3-clair .inline-link{color:var(--creme-encre); text-decoration-color:var(--creme-accent)}
.v3 .v3-clair .v3-pilule{color:var(--creme-encre); border-color:var(--creme-ligne); background:var(--creme-carte)}
.v3 .v3-clair .v3-pilule:hover{border-color:var(--creme-accent); color:var(--creme-accent)}
.v3 .v3-clair--portes{padding:clamp(34px,4.4vw,58px) 0}

/* Les deux portes */
.v3 .v3-portes__titre{display:flex; margin:0 0 22px}
.v3 .v3-portes{display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2vw,26px)}
.v3 .v3-porte{display:flex; flex-direction:column; align-items:center; text-align:center; text-decoration:none;
  background:linear-gradient(180deg,var(--creme-carte),var(--creme)); border:1px solid var(--creme-ligne); border-radius:var(--r);
  padding:clamp(22px,2.6vw,32px) clamp(18px,2.4vw,34px);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s}
.v3 .v3-porte:hover{transform:translateY(-3px); border-color:var(--creme-accent); box-shadow:0 16px 40px -18px color-mix(in srgb,var(--accent-a) 45%,transparent)}
.v3 .v3-porte__pip{display:grid; place-items:center; width:44px; height:44px; border-radius:50%; margin-bottom:12px; color:var(--creme-accent);
  background:color-mix(in srgb,var(--accent-a) 10%,#fff); border:1px solid var(--creme-ligne)}
.v3 .v3-porte__titre{font-family:var(--font-display); font-size:clamp(19px,1.9vw,23px); font-weight:800; letter-spacing:-.02em; line-height:1.15; color:var(--creme-encre); margin-bottom:9px}
.v3 .v3-porte p{margin:0; max-width:46ch; font-size:15.5px; line-height:1.55; color:var(--creme-texte)}
.v3 .v3-porte p b{color:var(--creme-accent); font-weight:700}
.v3 .v3-porte__go{margin-top:14px; font-size:13px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--creme-accent);
  border-bottom:1px solid color-mix(in srgb,var(--creme-accent) 40%,transparent); padding-bottom:2px}

/* ----- BANDEAU DE CONFIANCE ----- */
.v3 .v3-confiance{border-bottom:1px solid var(--ligne); padding:22px 0; background:var(--fond)}
.v3 .v3-confiance__in{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px 34px}
.v3 .v3-confiance__lab{font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-confiance b{font-size:16px; font-weight:700; letter-spacing:-.01em; color:var(--texte)}

/* ----- CARTES PHOTO ----- */
.v3 .v3-cartes{display:grid; gap:clamp(14px,1.8vw,22px)}
.v3 .v3-cartes--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.v3 .v3-cartes--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.v3 .v3-carte{display:flex; flex-direction:column; overflow:hidden; text-decoration:none; color:inherit;
  border:1px solid var(--ligne); border-radius:var(--r); background:linear-gradient(170deg,var(--surface),rgba(22,16,37,.55));
  transition:transform .25s var(--ease), border-color .25s}
.v3 a.v3-carte:hover{transform:translateY(-3px); border-color:var(--ligne-accent)}
.v3 .v3-carte__media{position:relative; display:block; aspect-ratio:4/3; overflow:hidden; background:var(--fond-2)}
.v3 .v3-carte__media img,.v3 .v3-carte__media video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease), opacity .5s}
.v3 .v3-carte__media video{opacity:0}
.v3 .v3-carte__media video.is-playing{opacity:1}
.v3 a.v3-carte:hover .v3-carte__media img{transform:scale(1.04)}
.v3 .v3-carte__corps{display:flex; flex-direction:column; flex:1; gap:4px; padding:clamp(20px,2.2vw,26px)}
.v3 .v3-carte h3{font-size:clamp(20px,1.7vw,23px); font-weight:800; line-height:1.15; letter-spacing:-.03em}
.v3 .v3-carte__sous{display:block; margin:2px 0 10px; font-family:var(--font-accent); font-style:italic; font-size:21px; line-height:1.18; color:var(--accent-clair)}
.v3 .v3-carte__texte{display:block; font-size:15.5px; line-height:1.55; color:var(--texte)}
.v3 .v3-carte__preuve{display:block; margin-top:16px; padding-top:14px; border-top:1px solid var(--ligne); font-size:14.5px; line-height:1.5; color:var(--discret)}
.v3 .v3-carte__preuve b{display:block; margin-bottom:3px; font-size:15px; font-weight:700; color:var(--encre)}
.v3 .v3-carte__go{display:inline-flex; align-items:center; gap:8px; margin-top:auto; padding-top:16px; font-size:14px; font-weight:700; color:var(--encre)}
.v3 .v3-carte__go svg{transition:transform .25s var(--ease); color:var(--accent-clair)}
.v3 a:hover .v3-carte__go svg{transform:translateX(4px)}

/* ----- DUO : média et texte ----- */
.v3 .v3-duo{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px,4.4vw,72px); align-items:stretch}
.v3 .v3-duo__media{position:relative; margin:0; min-height:420px; border-radius:var(--r); overflow:hidden; border:1px solid var(--ligne); background:var(--fond-2)}
.v3 .v3-duo__media img,.v3 .v3-duo__media video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.v3 .v3-duo__media video{opacity:0; transition:opacity 1.1s ease}
.v3 .v3-duo__media video.is-ready{opacity:1}
.v3 .v3-duo__texte{display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(0px,1.4vw,16px) 0}
.v3 .v3-duo__texte .v3-h2{margin-bottom:24px}
.v3 .v3-duo__texte .v3-lede + *{margin-top:24px}
.v3 .v3-petit-titre{margin:0 0 12px; font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-lieux{list-style:none; margin:0 0 24px; padding:0; display:flex; flex-wrap:wrap; gap:8px}
.v3 .v3-lieux li{font-size:15px; color:var(--encre); border:1px solid var(--ligne-accent); border-radius:999px; padding:7px 16px; background:var(--accent-doux)}
.v3 .v3-bloc{margin-top:24px; padding:0 0 0 22px; border-left:2px solid var(--accent-b)}
.v3 .v3-bloc b{display:block; margin-bottom:6px; font-size:17px; font-weight:700; color:var(--encre)}
.v3 .v3-bloc p{margin:0; max-width:52ch; font-size:16px; line-height:1.6; color:var(--texte)}

/* ----- ÉTAPES À PASTILLES ----- */
.v3 .v3-etapes{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,2.4vw,34px)}
.v3 .v3-etape{position:relative; padding-top:52px}
.v3 .v3-etape__no{position:absolute; top:0; left:0; padding:6px 13px; border-radius:999px; background:var(--degrade);
  font-size:15px; font-weight:800; letter-spacing:.08em; line-height:1.3; color:var(--sur-accent)}
.v3 .v3-etape::after{content:""; position:absolute; top:16px; left:66px; right:-14px; height:1px; background:linear-gradient(90deg,var(--ligne-accent),transparent)}
.v3 .v3-etape:last-child::after{display:none}
.v3 .v3-etape h3{font-size:21px; font-weight:800; letter-spacing:-.03em; line-height:1.2; margin-bottom:8px}
.v3 .v3-etape p{margin:0; font-size:16px; line-height:1.6; color:var(--texte); max-width:44ch}

/* ----- LISTE « COMPRIS » ET CARTE RÉCAPITULATIVE ----- */
.v3 .v3-inclus{display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(26px,3.6vw,56px); align-items:start; margin-top:56px}
.v3 .v3-inclus__listes .v3-h3{margin-bottom:10px}
.v3 .v3-inclus__listes .v3-compris + .v3-h3{margin-top:34px}
.v3 .v3-compris{list-style:none; margin:0; padding:0; columns:2; column-gap:34px}
.v3 .v3-compris li{break-inside:avoid; position:relative; padding:9px 0 9px 26px; font-size:16px; line-height:1.5; color:var(--texte); border-bottom:1px solid var(--ligne)}
.v3 .v3-compris li::before{content:"◆"; position:absolute; left:0; top:11px; font-size:11px; color:var(--accent-b)}
.v3 .v3-compris li b{color:var(--encre); font-weight:700}
.v3 .v3-compris a{color:inherit; text-decoration:none}
.v3 .v3-compris a b{text-decoration:underline; text-decoration-color:var(--ligne-accent); text-underline-offset:3px}
.v3 .v3-compris a:hover b{text-decoration-color:var(--accent-b)}
.v3 .v3-recap{position:sticky; top:calc(var(--header-h) + 24px); border:1px solid var(--ligne-accent); border-radius:var(--r);
  background:radial-gradient(120% 100% at 0% 0%,var(--accent-doux),transparent 60%),var(--surface); padding:clamp(24px,3vw,34px)}
.v3 .v3-recap__lab{display:block; margin-bottom:12px; font-size:12px; font-weight:600; letter-spacing:.19em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-recap__num{font-family:var(--font-display); font-size:clamp(44px,6vw,62px); font-weight:800; letter-spacing:-.05em; line-height:.9; color:var(--accent-clair)}
.v3 .v3-recap__num small{display:block; margin-top:10px; font-size:14px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-recap__num .v3-ttc{margin-top:8px; font-size:14px}
.v3 .v3-recap ul{list-style:none; margin:22px 0 22px; padding:0; border-top:1px solid var(--ligne)}
.v3 .v3-recap li{display:flex; justify-content:space-between; gap:14px; padding:11px 0; border-bottom:1px solid var(--ligne); font-size:15.5px; color:var(--texte)}
.v3 .v3-recap li > span:last-child{color:var(--encre); font-weight:700; text-align:right}

/* ----- QUI SOMMES-NOUS (sur la crème) ----- */
.v3 .v3-chiffres{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--creme-ligne);
  border:1px solid var(--creme-ligne); border-radius:var(--r); overflow:hidden}
.v3 .v3-chiffres > div{background:var(--creme-carte); padding:26px 22px}
.v3 .v3-chiffres > div > b{display:block; font-family:var(--font-display); font-size:clamp(24px,2.6vw,34px); font-weight:800; letter-spacing:-.04em; line-height:1.05; color:var(--creme-accent)}
.v3 .v3-chiffres > div > span{display:block; margin-top:9px; font-size:14px; line-height:1.45; color:var(--creme-texte)}
.v3 .v3-apropos{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(26px,3.6vw,56px); align-items:stretch; margin-top:clamp(28px,3.4vw,44px)}
.v3 .v3-apropos__texte{margin:0 0 18px; font-size:17px; line-height:1.6; color:var(--creme-texte); max-width:60ch}
.v3 .v3-clair .v3-compris li{color:var(--creme-texte); border-bottom-color:var(--creme-ligne)}
.v3 .v3-clair .v3-compris li::before{color:var(--creme-accent)}
.v3 .v3-clair .v3-compris li b{color:var(--creme-encre)}
.v3 .v3-citation{margin:0; display:flex; flex-direction:column; justify-content:center; gap:18px; padding:clamp(26px,3.4vw,44px);
  border-radius:var(--r); background:var(--creme-carte); border:1px solid var(--creme-ligne)}
.v3 .v3-citation p{margin:0; font-family:var(--font-accent); font-style:italic; font-size:clamp(24px,2.4vw,32px); line-height:1.22; color:var(--creme-accent)}
.v3 .v3-citation footer{font-size:14px; color:var(--creme-texte)}

/* ----- OPTIONS (Noël) ----- */
.v3 .v3-options{list-style:none; margin:24px 0 0; padding:0; width:100%}
.v3 .v3-options li{padding:16px 0; border-top:1px solid var(--ligne); font-size:16px; line-height:1.6; color:var(--texte); max-width:60ch}
.v3 .v3-options li:last-child{border-bottom:1px solid var(--ligne)}
.v3 .v3-options li b{display:block; margin-bottom:4px; font-size:17px; font-weight:700; color:var(--encre)}

/* ----- RÉALISATIONS ----- */
.v3 .v3-oeuvres{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,1.8vw,22px)}
.v3 .v3-oeuvre{display:flex; flex-direction:column; overflow:hidden; text-decoration:none; color:inherit; background:var(--surface);
  border:1px solid var(--ligne); border-radius:var(--r); transition:transform .25s var(--ease), border-color .25s}
.v3 .v3-oeuvre:hover{transform:translateY(-3px); border-color:var(--ligne-accent)}
.v3 .v3-oeuvre__media{display:block; aspect-ratio:3/2; overflow:hidden; background:var(--fond-2)}
.v3 .v3-oeuvre__media img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease)}
.v3 .v3-oeuvre:hover .v3-oeuvre__media img{transform:scale(1.04)}
.v3 .v3-oeuvre__corps{display:flex; flex-direction:column; flex:1; gap:6px; padding:20px 22px 22px}
.v3 .v3-oeuvre__tag{font-size:11.5px; font-weight:600; letter-spacing:.17em; text-transform:uppercase; color:var(--accent-clair)}
.v3 .v3-oeuvre h3{font-size:19px; font-weight:800; line-height:1.2; letter-spacing:-.025em}
.v3 .v3-oeuvre__meta{font-family:var(--font-accent); font-style:italic; font-size:18px; line-height:1.25; color:var(--accent-clair)}
.v3 .v3-oeuvre__texte{font-size:15px; line-height:1.55; color:var(--texte); margin-top:4px}

/* ----- FORMATS ----- */
.v3 .v3-formats{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(12px,1.6vw,20px)}
.v3 .v3-format{position:relative; display:block; aspect-ratio:4/5; overflow:hidden; border-radius:var(--r); border:1px solid var(--ligne); text-decoration:none; isolation:isolate}
.v3 .v3-format img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .6s var(--ease)}
.v3 .v3-format::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(11,7,18,.92),rgba(11,7,18,.2) 60%,transparent)}
.v3 .v3-format:hover img{transform:scale(1.04)}
.v3 .v3-format__txt{position:absolute; left:0; right:0; bottom:0; padding:20px 22px; display:flex; flex-direction:column; gap:2px}
.v3 .v3-format__txt b{font-size:clamp(19px,1.7vw,23px); font-weight:800; letter-spacing:-.03em; color:#fff; line-height:1.15}
.v3 .v3-format__txt .v3-it{font-size:19px; line-height:1.2}
.v3 .v3-occas{display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,2vw,26px); margin-top:clamp(14px,2vw,26px)}
.v3 .v3-occas__col{background:var(--surface); border:1px solid var(--ligne); border-radius:var(--r); padding:clamp(22px,2.8vw,34px)}
.v3 .v3-occas__pip{display:inline-grid; place-items:center; width:40px; height:40px; border-radius:50%; color:var(--accent-clair); background:var(--accent-doux); border:1px solid var(--ligne-accent)}
.v3 .v3-occas__col h3{margin:14px 0 8px; font-size:clamp(21px,2vw,26px); font-weight:800; letter-spacing:-.03em}
.v3 .v3-occas__col p{margin:0; font-size:16px; line-height:1.6; color:var(--texte); max-width:60ch}
.v3 .v3-note{margin:26px 0 0; font-size:15.5px; color:var(--discret); max-width:none}
/* B9 (01/10/2026) : liste compacte sous une grille de cartes (v3c_cartes : phrase « … : » puis lignes « Libellé : texte » ;
   hub des prestations, « Les formats que nous équipons ») : sur-titre discret, deux colonnes, libellé en gras sur sa ligne. */
.v3 .v3-cartes__liste{margin:clamp(26px,3vw,38px) 0 0; padding-top:clamp(18px,2vw,24px); border-top:1px solid var(--ligne)}
.v3 .v3-cartes__liste-titre{margin:0 0 14px; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-clair)}
.v3 .v3-cartes__liste ul{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px clamp(24px,4vw,64px)}
.v3 .v3-cartes__liste li{min-width:0; padding-left:14px; border-left:2px solid var(--ligne-accent); font-size:15.5px; line-height:1.5; color:var(--texte)}
.v3 .v3-cartes__liste li b{display:block; font-size:16px; font-weight:700; color:var(--encre)}
.v3 .v3-cartes__liste + .v3-note{margin-top:22px}
.v3 .v3-clair .v3-cartes__liste{border-top-color:var(--creme-ligne)}
.v3 .v3-clair .v3-cartes__liste-titre{color:var(--creme-accent)}
.v3 .v3-clair .v3-cartes__liste li{color:var(--creme-texte); border-left-color:var(--creme-ligne)}
.v3 .v3-clair .v3-cartes__liste li b{color:var(--creme-encre)}
@media (max-width:700px){
  .v3 .v3-cartes__liste ul{grid-template-columns:minmax(0,1fr); gap:12px}
  .v3 .v3-cartes__liste li{font-size:15px}
}

/* ----- QUESTIONS FRÉQUENTES ----- */
.v3 .v3-faq-bloc{display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:30px 80px; align-items:start}
.v3 .v3-faq-bloc__intro{position:sticky; top:calc(var(--header-h) + 32px)}
.v3 .v3-faq-bloc__intro .v3-actions{margin-top:24px}
.v3 .v3-faq{border-top:1px solid var(--ligne)}
.v3 .v3-faq details{border-bottom:1px solid var(--ligne)}
.v3 .v3-faq summary{position:relative; cursor:pointer; list-style:none; padding:22px 44px 22px 0;
  font-size:clamp(17px,1.7vw,19.5px); font-weight:600; line-height:1.35; letter-spacing:-.02em; color:var(--encre)}
.v3 .v3-faq summary::-webkit-details-marker{display:none}
.v3 .v3-faq summary::after{content:"+"; position:absolute; right:8px; top:50%; transform:translateY(-50%);
  font-size:26px; font-weight:300; color:var(--accent-clair); transition:transform .25s var(--ease)}
.v3 .v3-faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.v3 .v3-faq details p{margin:0; padding:0 0 22px; font-size:16px; line-height:1.65; color:var(--texte); max-width:60ch}

/* ----- EN-TÊTE ET PIED DU SITE, sur les pages v3 ----- */
.v3 .nav .nav__links a{text-transform:none; font-size:15px; letter-spacing:0; font-weight:500}
.v3 .nav .nav__links a::after{background:var(--degrade)}
.v3 .nav .brand b{font-weight:800; letter-spacing:.01em}
.v3 .nav__devis,.v3 .navbody .navbody__pied .btn,.v3 .mega__cta{background:var(--degrade); color:var(--sur-accent); font-weight:600}
.v3 .nav.is-stuck{background:rgba(11,7,18,.86)}
.v3 .foot{border-top:1px solid var(--ligne)}
.v3 .marquee__row span{font-weight:800; letter-spacing:-.03em; text-transform:none}


/* ----- ÉCRANS MOYENS ----- */
@media (max-width:1180px){
  .v3 .v3-cartes--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v3 .v3-formats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v3 .v3-formats .v3-format{aspect-ratio:16/10}
}
@media (max-width:980px){
  .v3 .v3-cartes--3,.v3 .v3-oeuvres{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v3 .v3-inclus,.v3 .v3-apropos,.v3 .v3-faq-bloc,.v3 .v3-duo{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-duo__media{min-height:0; aspect-ratio:16/10}
  .v3 .v3-recap,.v3 .v3-faq-bloc__intro{position:static}
  .v3 .v3-chiffres{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .v3 .v3-etapes{grid-template-columns:minmax(0,1fr); gap:28px}
  .v3 .v3-etape::after{display:none}
  .v3 .v3-portes,.v3 .v3-occas{grid-template-columns:minmax(0,1fr)}
}

/* ----- TÉLÉPHONE ----- */
@media (max-width:700px){
  .v3 .v3-haut{min-height:auto; place-items:start center}
  .v3 .v3-haut__in{padding:40px var(--marge) 56px}
  .v3 .v3-haut__h1{font-size:11px; letter-spacing:.14em; line-height:1.6}
  .v3 .v3-haut__h1::before,.v3 .v3-haut__h1::after{display:none}
  .v3 .v3-haut__titre{font-size:clamp(40px,12vw,52px); margin-bottom:16px}
  .v3 .v3-haut__intro{font-size:16px; line-height:1.55}
  .v3 .v3-haut .v3-actions{display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin-top:26px}
  .v3 .v3-haut .v3-actions > *{width:100%}
  .v3 .v3-reperes{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:22px}
  .v3 .v3-reperes li{flex-direction:column; align-items:flex-start; gap:3px; border-radius:12px; padding:12px 14px; text-align:left}
  .v3 .v3-reperes li > b{font-size:17px}
  .v3 .v3-reperes li > span{font-size:12.5px; color:var(--discret)}
  .v3 .v3-haut__defile{display:none}
  .v3 .v3-haut--appel{min-height:auto}
  .v3 .v3-cartes--3,.v3 .v3-cartes--4,.v3 .v3-oeuvres{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-compris{columns:1}
  .v3 .v3-tete{margin-bottom:32px}
  .v3 .v3-actions{gap:10px}
  .v3 .v3-btn,.v3 .v3-pilule{white-space:normal; text-align:center}
  .v3 .v3-confiance__in{gap:8px 20px}
  .v3 .v3-confiance__lab{flex-basis:100%; text-align:center}
}
@media (max-width:520px){
  .v3 .v3-formats .v3-format{aspect-ratio:3/4}
  .v3 .v3-format__txt{padding:14px}
  .v3 .v3-format__txt b{font-size:17px}
  .v3 .v3-format__txt .v3-it{font-size:16px}
  .v3 .v3-chiffres{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-chiffres > div{padding:18px 20px}
}

/* ----- MOUVEMENT RÉDUIT ----- */
@media (prefers-reduced-motion:reduce){
  .v3 .v3-btn:hover,.v3 a.v3-carte:hover,.v3 .v3-porte:hover,.v3 .v3-oeuvre:hover{transform:none}
  .v3 a:hover img,.v3 .v3-format:hover img{transform:none !important}
  .v3 .v3-carte__media video{display:none}
}

/* ----- HAUT DE PAGE PLEIN ÉCRAN, TROIS ZONES (retours du 24/09) -----
   Exactement la hauteur visible (100svh, repli 100vh), en-tête posé sur la
   vidéo. Trois rangées : le sur-titre (H1) sous l'en-tête ; « Nous sommes
   Newvibes » seul, au centre exact de l'écran (les rangées haute et basse ont
   la même hauteur) ; l'intro, les boutons et les pastilles groupés en bas.
   Les tailles suivent la largeur ET la hauteur. */
/* B9 (01/10/2026) : hauteur minimale et rangées à la taille de leur contenu au moins. Avec une hauteur fixe et des
   rangées minmax(0,1fr), un titre long (rayon son, quatre lignes à 1 440 × 900) passait sous l'intro. Quand tout
   tient, rien ne change (deux rangées égales, titre au centre exact) ; sinon le haut de page grandit. */
.v3 .v3-haut--ecran{height:auto; min-height:100vh; min-height:100svh; padding:0;
  display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(min-content,1fr) auto minmax(min-content,1fr); place-items:stretch}
.v3 .v3-haut__zone{width:100%; max-width:1240px; justify-self:center; padding-inline:var(--marge)}
.v3 .v3-haut__zone--haut{align-self:start; padding-top:calc(var(--header-h) + clamp(10px,3.2vh,44px))}
.v3 .v3-haut__zone--bas{align-self:end; padding-top:clamp(14px,2.4vh,28px); padding-bottom:clamp(20px,5vh,64px)}
.v3 .v3-haut--ecran .v3-haut__h1{margin:0}
.v3 .v3-haut--ecran .v3-haut__titre{align-self:center; margin:0; padding-inline:var(--marge); font-size:clamp(40px,min(7vw,11.5vh),116px)}
.v3 .v3-haut--ecran .v3-haut__intro{font-size:clamp(15.5px,min(1.4vw,2.3vh),19px)}
.v3 .v3-haut--ecran .v3-actions{margin-top:clamp(12px,2.6vh,26px)}
.v3 .v3-haut--ecran .v3-reperes{margin-top:clamp(10px,2.4vh,22px)}
.v3 .v3-reperes li{font-size:13.5px; padding:6px 13px}

@media (max-width:700px){
  .v3 .v3-haut__zone--haut{padding-top:calc(var(--header-h) + clamp(6px,1.6vh,18px))}
  .v3 .v3-haut__zone--bas{padding-bottom:clamp(14px,3.2vh,32px)}
  .v3 .v3-haut--ecran .v3-haut__h1{font-size:10px; letter-spacing:.13em; line-height:1.55}
  .v3 .v3-haut--ecran .v3-haut__titre{font-size:clamp(34px,min(11vw,6vh),46px)}
  .v3 .v3-haut--ecran .v3-haut__intro{font-size:14.5px; line-height:1.5; max-width:34ch}
  /* Boutons compacts, côte à côte quand ils tiennent, sinon l'un sous l'autre */
  .v3 .v3-haut--ecran .v3-actions{display:flex; flex-wrap:wrap; justify-content:center; gap:8px}
  .v3 .v3-haut--ecran .v3-actions > *{width:auto}
  .v3 .v3-haut--ecran .v3-btn,.v3 .v3-haut--ecran .v3-pilule{padding:9px 16px; font-size:14.5px}
  /* Petites pastilles sur une ligne défilante discrète (fondu sur les bords), plus de grosses cases */
  .v3 .v3-haut--ecran .v3-reperes{display:flex; flex-wrap:nowrap; justify-content:flex-start; gap:6px; overflow-x:auto; scrollbar-width:none;
    margin-inline:calc(-1 * var(--marge)); padding-inline:var(--marge);
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--marge),#000 calc(100% - var(--marge)),transparent);
            mask-image:linear-gradient(90deg,transparent,#000 var(--marge),#000 calc(100% - var(--marge)),transparent)}
  .v3 .v3-haut--ecran .v3-reperes::-webkit-scrollbar{display:none}
  .v3 .v3-haut--ecran .v3-reperes li{flex:none; white-space:nowrap}
  .v3 .v3-haut--ecran .v3-reperes li{display:inline-flex; flex-direction:row; align-items:baseline; gap:5px; border-radius:999px; padding:4px 10px; font-size:12px; text-align:center}
  .v3 .v3-haut--ecran .v3-reperes li > b{font-size:12px}
  .v3 .v3-haut--ecran .v3-reperes li > span{font-size:12px; color:var(--texte)}
}

/* ----- DÉFILEMENT VERS LE FORMULAIRE (#devis) ----- */
html:has(body.v3){scroll-behavior:smooth}
.v3 #devis,.v3 #avis,.v3 #realisations{scroll-margin-top:var(--header-h)}
@media (prefers-reduced-motion:reduce){ html:has(body.v3){scroll-behavior:auto} }

/* ----- AVIS CLIENTS ----- */
.v3 .v3-avis{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,1.8vw,22px)}
.v3 .v3-avis__carte{position:relative; display:flex; flex-direction:column; gap:18px; margin:0; padding:26px 26px 22px;
  border:1px solid var(--ligne); border-radius:var(--r); background:var(--surface)}
.v3 .v3-avis__texte{flex:1; margin:0; font-size:16px; line-height:1.6; color:var(--texte)}
.v3 .v3-avis__pied{display:flex; align-items:center; gap:12px; padding-top:16px; border-top:1px solid var(--ligne)}
.v3 .v3-avis__initiale{display:grid; place-items:center; flex:none; width:36px; height:36px; border-radius:50%;
  background:var(--degrade); color:var(--sur-accent); font-weight:800; font-size:15px}
.v3 .v3-avis__nom{display:block; font-size:15px; font-weight:700; color:var(--encre)}
.v3 .v3-avis__source{display:block; font-size:13px; color:var(--discret); text-decoration:none}
/* Emplacement à fournir : pointillés, texte en italique serif, rien qui ressemble à un vrai avis */
.v3 .v3-avis__carte--vide{background:transparent; border:1.5px dashed var(--ligne-accent)}
.v3 .v3-avis__carte--vide .v3-avis__texte{font-family:var(--font-accent); font-style:italic; font-size:21px; line-height:1.3; color:var(--accent-clair)}
.v3 .v3-avis__carte--vide .v3-avis__initiale{background:transparent; border:1.5px dashed var(--ligne-accent); color:var(--discret)}
.v3 .v3-avis__carte--vide .v3-avis__nom,.v3 .v3-avis__carte--vide .v3-avis__source{color:var(--discret); font-weight:500}
.v3 .v3-avis__marque{align-self:flex-start; font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--discret); border:1px dashed var(--ligne-accent); border-radius:999px; padding:3px 10px}

/* ----- FORMULAIRE DE DEVIS ----- */
.v3 .v3-devis{display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,.75fr); gap:clamp(22px,3vw,48px); align-items:start}
.v3 .v3-form{border:1px solid var(--ligne); border-radius:var(--r); background:var(--surface); padding:clamp(22px,3vw,40px)}
.v3 .v3-form__hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.v3 .v3-form__etapes{list-style:none; margin:0 0 28px; padding:0 0 22px; border-bottom:1px solid var(--ligne); display:flex; flex-wrap:wrap; gap:10px 22px}
.v3 .v3-form__etapes li{display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; color:var(--discret)}
.v3 .v3-form__etapes .v3-etape__no{position:static; padding:3px 10px; font-size:13px; background:transparent; color:var(--discret); border:1px solid var(--ligne-accent)}
.v3 .v3-form__etapes li.is-on{color:var(--encre)}
.v3 .v3-form__etapes li.is-on .v3-etape__no{background:var(--degrade); color:var(--sur-accent); border-color:transparent}
.v3 .v3-form__etape{border:0; margin:0; padding:0; min-width:0}
.v3 .v3-form.is-js .v3-form__etape:not(.is-active){display:none}
.v3 .v3-form__titre{padding:0; margin:0 0 20px; font-family:var(--font-display); font-size:clamp(21px,2vw,26px); font-weight:800; letter-spacing:-.03em; color:var(--encre)}
.v3 .v3-form__grille{display:grid; grid-template-columns:1fr 1fr; gap:16px 18px}
.v3 .v3-form label{display:block; font-size:13px; font-weight:600; line-height:1.4; color:var(--texte)}
.v3 .v3-form label > input,.v3 .v3-form label > select,.v3 .v3-form label > textarea{display:block; margin-top:7px}
.v3 .v3-form__plein{grid-column:1 / -1}
.v3 .v3-form__etape > .v3-form__plein{margin-top:0}
.v3 .v3-form__req{color:var(--accent-b)}
.v3 .v3-form__opt{font-weight:400; color:var(--discret)}
.v3 .v3-form__source{margin-top:18px}
.v3 .v3-form__robot{margin-top:18px}
.v3 .v3-form__robot:empty{display:none}
.v3 .v3-form__info{margin:16px 0 0; font-size:13px; line-height:1.55; color:var(--discret); max-width:none}
.v3 .v3-form__info a{color:inherit; text-decoration:underline; text-underline-offset:3px}
.v3 .v3-form input:not([type=radio]),.v3 .v3-form select,.v3 .v3-form textarea{width:100%; font:400 16px/1.4 var(--font-sans); color:var(--encre);
  background:rgba(11,7,18,.55); border:1px solid var(--ligne); border-radius:12px; padding:11px 14px; transition:border-color .2s}
.v3 .v3-form textarea{resize:vertical; min-height:130px}
.v3 .v3-form input::placeholder,.v3 .v3-form textarea::placeholder{color:#7F7690}
.v3 .v3-form input:focus,.v3 .v3-form select:focus,.v3 .v3-form textarea:focus{outline:none; border-color:var(--accent-clair)}
.v3 .v3-form .has-error{border-color:#FB7185 !important}
.v3 .v3-form input[type=date]{color-scheme:dark}
.v3 .v3-form__selection{margin-top:22px; padding:18px 20px; border:1px dashed var(--ligne-accent); border-radius:12px}
.v3 .v3-form__selection-tete{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; font-size:15px; font-weight:700; color:var(--encre)}
.v3 .v3-form__vide{margin:10px 0 0; font-size:14.5px; line-height:1.55; color:var(--discret)}
.v3 .v3-form__articles{margin:10px 0 0; padding-left:18px; font-size:15px; color:var(--texte)}
.v3 .v3-pilule--petite{padding:7px 14px; font-size:14px}
.v3 .v3-form__choix{margin:22px 0 0; padding:0; border:0; display:flex; flex-wrap:wrap; gap:8px}
.v3 .v3-form__choix legend{width:100%; margin-bottom:10px; padding:0; font-size:13px; font-weight:600; color:var(--texte)}
.v3 .v3-form__choix label{position:relative; display:inline-flex; font-size:15px; font-weight:500}
.v3 .v3-form__choix input{position:absolute; opacity:0; width:1px; height:1px}
.v3 .v3-form__choix span{display:inline-block; padding:8px 16px; border-radius:999px; border:1px solid var(--ligne-accent); color:var(--texte); cursor:pointer; transition:background .2s, color .2s}
.v3 .v3-form__choix input:checked + span{background:var(--accent-doux); border-color:var(--accent-clair); color:var(--encre)}
.v3 .v3-form__choix input:focus-visible + span{outline:2px solid var(--accent-clair); outline-offset:2px}
.v3 .v3-form__nav{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:26px}
.v3 .v3-form__nav--fin{justify-content:flex-end}
.v3 .v3-lien{display:inline-flex; align-items:center; gap:8px; padding:8px 0; background:none; border:0; cursor:pointer;
  font:600 15px/1.2 var(--font-sans); color:var(--texte)}
.v3 .v3-lien:hover{color:var(--encre)}
.v3 .v3-form__statut{margin:22px 0 0; padding:14px 18px; border-radius:12px; border:1px solid var(--ligne-accent); background:var(--accent-doux);
  font-size:15.5px; font-weight:600; color:var(--encre)}
.v3 .v3-devis__cote{top:calc(var(--header-h) + 24px)}
.v3 .v3-devis__cote li a{color:var(--encre); font-weight:700; text-decoration:none; text-align:right; overflow-wrap:anywhere}
.v3 .v3-devis__cote li a:hover{color:var(--accent-clair)}
@media (max-width:980px){
  .v3 .v3-avis{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-devis{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:620px){
  .v3 .v3-form__grille{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-form__etapes{flex-wrap:nowrap; gap:8px}
  .v3 .v3-form__etapes li{gap:6px; font-size:13px; white-space:nowrap}
  .v3 .v3-form__etape-nom{display:none}
  .v3 .v3-form__etapes li.is-on[aria-current] .v3-form__etape-nom{display:inline}
}


/* =====================================================================
   PAGES INTÉRIEURES v3 (gabarits/page-v3.php), 24/09/2026
   ===================================================================== */

/* ----- Haut de page : la composition plein écran de l'accueil (.v3-haut--ecran), plus
   le fil d'Ariane et le sur-titre dans la zone du haut. Le sur-titre est la fin du H1
   (.v3-h1__suite) : sorti du flux et posé sous le fil d'Ariane, le titre reste seul
   au centre exact de l'écran. ----- */
.v3 .v3-ariane ol{list-style:none; margin:0; padding:0; display:flex; flex-wrap:nowrap; justify-content:center; gap:8px; overflow:hidden;
  font-size:13px; line-height:20px; color:var(--discret); white-space:nowrap}
.v3 .v3-ariane li{min-width:0}
.v3 .v3-ariane li + li::before{content:"›"; margin-right:8px; color:var(--discret)}
.v3 .v3-ariane a{color:var(--discret); text-decoration:none}
.v3 .v3-ariane a:hover{color:var(--encre)}
.v3 .v3-ariane [aria-current]{color:var(--texte); overflow:hidden; text-overflow:ellipsis}
.v3 .v3-haut--page{--suite-haut:calc(var(--header-h) + clamp(10px,3.2vh,44px) + 20px + clamp(10px,2vh,18px))}
.v3 .v3-haut--page .v3-haut__zone--haut{padding-bottom:calc(18px + clamp(10px,2vh,18px))}
.v3 .v3-haut__titre--page{word-spacing:normal}
.v3 .v3-haut--page .v3-h1__suite{position:absolute; left:0; right:0; top:var(--suite-haut); margin:0; padding-inline:var(--marge);
  text-shadow:0 1px 14px rgba(11,7,18,.9)}
.v3 .v3-haut--page .v3-haut__zone--haut .v3-h1__suite{position:static; margin-top:clamp(10px,2vh,18px); padding:0}

/* ----- Blocs de texte courts ----- */
.v3 .v3-texte{margin:0 0 18px; font-size:17px; line-height:1.6; color:var(--texte); max-width:60ch}
.v3 .v3-duo__texte .v3-texte:first-of-type{font-size:clamp(17px,1.4vw,19px); color:var(--encre)}
.v3 .v3-preuve{margin:22px 0 0; padding:16px 18px; border-radius:12px; border:1px solid var(--ligne); background:rgba(255,255,255,.025); max-width:60ch}
.v3 .v3-preuve b{display:block; margin-bottom:4px; font-size:15px; font-weight:700; color:var(--encre)}
.v3 .v3-preuve p{margin:0; font-size:15px; line-height:1.55; color:var(--texte)}
.v3 .v3-duo__texte .v3-bloc{margin:6px 0 18px}
.v3 .v3-duo__texte .v3-compris{margin:0 0 22px; width:100%}
.v3 .v3-note--fort{font-size:17px; font-weight:600; color:var(--encre)}
.v3 .v3-suite{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px clamp(24px,4vw,64px); align-items:start; margin-top:32px}
.v3 .v3-suite .v3-bloc{margin-top:0}
.v3 .v3-suite .v3-texte{margin:0; align-self:center}

/* ----- Duo : légende de la photo, sens inverse ----- */
.v3 .v3-duo--inverse .v3-duo__media{order:2}
.v3 a.v3-duo__media{display:block; text-decoration:none}
.v3 .v3-duo__media img{transition:transform .6s var(--ease)}
.v3 a.v3-duo__media:hover img{transform:scale(1.03)}
.v3 .v3-duo__legende{position:absolute; left:0; right:0; bottom:0; z-index:2; display:flex; align-items:center; gap:8px; padding:40px 22px 18px;
  font-size:14px; font-weight:600; color:#fff; background:linear-gradient(0deg,rgba(11,7,18,.9),transparent)}

/* ----- Produits réels (seul endroit où un prix s'affiche) ----- */
.v3 .v3-produits{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(14px,1.8vw,22px)}
.v3 .v3-produit{display:flex; flex-direction:column; overflow:hidden; text-decoration:none; color:inherit; background:var(--surface);
  border:1px solid var(--ligne); border-radius:var(--r); transition:transform .25s var(--ease), border-color .25s}
.v3 .v3-produit:hover{transform:translateY(-3px); border-color:var(--ligne-accent)}
/* Photo posée en absolu et centrée par ses marges : sa hauteur en % se calcule alors sur le cadre.
   Laissée dans la grille, une photo en hauteur agrandissait la rangée et dépassait par le bas. */
.v3 .v3-produit__media{position:relative; display:grid; place-items:center; aspect-ratio:16/11; background:#fff; overflow:hidden}
.v3 .v3-produit__media img{position:absolute; inset:0; margin:auto; width:78%; height:82%; object-fit:contain; transition:transform .6s var(--ease)}
.v3 .v3-produit:hover .v3-produit__media img{transform:scale(1.04)}
.v3 .v3-produit__corps{display:flex; flex-direction:column; gap:6px; padding:18px 22px 20px; flex:1}
.v3 .v3-produit__nom{font-size:17px; font-weight:700; line-height:1.3; color:var(--encre)}
.v3 .v3-produit__prix{font-size:16px; font-weight:700; color:var(--accent-clair); white-space:nowrap}
.v3 .v3-produit__prix small{font-size:13.5px; font-weight:500; color:var(--discret)}
/* TTC en petit sous chaque prix HT (ed_ttc) et après chaque prix HT d'un texte (ed_ttc_texte), 25/09/2026 */
.v3 .v3-ttc{display:block; margin-top:2px; font-family:var(--font-sans); font-size:12.5px; font-weight:500; letter-spacing:0; line-height:1.35; text-transform:none; color:var(--discret); white-space:nowrap}
.v3 .v3-ttc-texte{font-size:.84em; font-weight:500; color:var(--discret); white-space:nowrap}

/* ----- Preuves : texte et réalisations en cartes photo ----- */
.v3 .v3-preuves{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,2.4vw,34px); align-items:start}
.v3 .v3-preuves--1{grid-template-columns:repeat(2,minmax(0,1fr))}
.v3 .v3-preuves--0{grid-template-columns:minmax(0,1fr)}
.v3 .v3-preuves__texte .v3-bloc:first-child,.v3 .v3-preuves__texte .v3-petit-titre:first-child{margin-top:0}

/* ----- Options numérotées (et sur la section claire) ----- */
.v3 .v3-occas--3{grid-template-columns:repeat(3,minmax(0,1fr))}
/* B6 : cinq cartes (ou plus, en nombre impair) : la dernière prend toute la rangée au lieu de rester seule à gauche */
.v3 .v3-occas:not(.v3-occas--valeurs) > :last-child:nth-child(odd):nth-child(n+5){grid-column:1 / -1}
.v3 .v3-occas__col{display:flex; flex-direction:column}
.v3 a.v3-occas__col{text-decoration:none; color:inherit; transition:transform .25s var(--ease), border-color .25s}
.v3 a.v3-occas__col:hover{transform:translateY(-3px); border-color:var(--ligne-accent)}
.v3 .v3-occas__no{position:static; align-self:flex-start}
.v3 .v3-occas__col .v3-carte__go{padding-top:18px}
.v3 .v3-clair .v3-occas__col{background:var(--creme-carte); border-color:var(--creme-ligne)}
.v3 .v3-clair .v3-occas__col p,.v3 .v3-clair .v3-note{color:var(--creme-texte)}
.v3 .v3-clair .v3-carte__go{color:var(--creme-encre)}
.v3 .v3-clair .v3-carte__go svg{color:var(--creme-accent)}
.v3 .v3-clair a.v3-occas__col:hover{border-color:var(--creme-accent)}

@media (max-width:980px){
  .v3 .v3-produits{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v3 .v3-preuves,.v3 .v3-preuves--1{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v3 .v3-preuves__texte{grid-column:1 / -1}
  .v3 .v3-occas--3{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-duo--inverse .v3-duo__media{order:0}
  /* Une colonne : même écart de 18 px entre tous les blocs (filets compris), plus de blocs collés */
  .v3 .v3-suite{grid-template-columns:minmax(0,1fr); row-gap:18px}
}
@media (max-width:700px){
  .v3 .v3-ariane ol{font-size:12.5px}
  .v3 .v3-haut--page{--suite-haut:calc(var(--header-h) + clamp(6px,1.6vh,18px) + 20px + clamp(8px,1.6vh,14px))}
  .v3 .v3-haut--page .v3-haut__zone--haut{padding-bottom:calc(16px + clamp(8px,1.6vh,14px))}
  .v3 .v3-haut--page .v3-h1__suite{font-size:10.5px; letter-spacing:.13em}
  .v3 .v3-haut--page .v3-h1__suite::before,.v3 .v3-haut--page .v3-h1__suite::after{display:none}
  .v3 .v3-produits,.v3 .v3-preuves,.v3 .v3-preuves--1{grid-template-columns:minmax(0,1fr)}
}

/* =====================================================================
   COMPOSANTS AJOUTÉS PAR LE PILOTE (pages 14 et 11, 24/09/2026)
   compris, prix, renvoi ; réalisations sans texte ; blocs après les
   étapes ; blocs de texte sur la section crème. Mode d'emploi : STYLE.md.
   ===================================================================== */

/* Ponctuation gardée dans le H1 mais masquée à l'écran (virgule avant la suite du titre) */
.v3 .v3-cache{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}

/* ----- Ce qui est compris (v3c_compris) : liste à gauche, carte des engagements à droite ----- */
.v3 .v3-inclus--section{margin-top:0}
.v3 .v3-inclus--seul{grid-template-columns:minmax(0,1fr)}
/* Trois familles au plus (« Libellé, description », page 6) : une colonne, filet haut, libellé en gros sur sa ligne,
   description dessous ; la note qui suit en retrait discret. */
.v3 .v3-compris--familles{columns:1; border-top:1px solid var(--ligne)}
.v3 .v3-compris--familles li{--pt:20px; padding:var(--pt) 0 22px 34px; font-size:16.5px; line-height:1.55}
.v3 .v3-compris--familles li::before{top:calc(var(--pt) + 6px); font-size:14px; line-height:1}
.v3 .v3-compris--familles li b{display:block; margin-bottom:7px; font-size:clamp(20px,1.6vw,23px); font-weight:800; letter-spacing:-.03em; line-height:1.15}
.v3 .v3-compris--familles li span{display:block; max-width:58ch}
.v3 .v3-inclus--familles .v3-inclus__notes .v3-texte{margin:24px 0 0; font-size:16px; color:var(--discret); max-width:none}
.v3 .v3-clair .v3-compris--familles{border-top-color:var(--creme-ligne)}
.v3 .v3-inclus__notes .v3-bloc:first-child{margin-top:30px}

/* ----- Bloc de prix (v3c_prix) : texte à gauche, carte du prix lu en base à droite ----- */
.v3 .v3-prix{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.78fr); gap:clamp(28px,4.4vw,72px); align-items:center}
.v3 .v3-prix__texte{display:flex; flex-direction:column; align-items:flex-start}
.v3 .v3-prix__texte .v3-h2{margin-bottom:22px}
.v3 .v3-prix__texte .v3-lede{margin-bottom:4px}
.v3 .v3-prix__carte{position:relative; top:auto; overflow:hidden}
.v3 .v3-prix__media{position:relative; display:block; height:clamp(170px,15vw,220px); background:#fff;
  margin:calc(-1 * clamp(24px,3vw,34px)) calc(-1 * clamp(24px,3vw,34px)) 24px}
.v3 .v3-prix__media img{position:absolute; left:14%; top:7%; width:72%; height:86%; object-fit:contain}
.v3 .v3-prix__carte .v3-recap__lab{color:var(--accent-clair)}
.v3 .v3-prix__carte li > span:first-child{flex:none}
.v3 .v3-prix__actions{display:flex; flex-wrap:wrap; gap:10px}
.v3 .v3-prix__carte .v3-carte__go{padding-top:18px}

/* ----- Renvoi court (v3c_renvoi), crème par défaut ----- */
.v3 .v3-renvoi{padding:clamp(52px,6.4vw,88px) 0}
.v3 .v3-renvoi .v3-tete{margin-bottom:0; align-items:center}
.v3 .v3-renvoi .v3-tete__droite > .v3-texte:first-child{font-size:clamp(17px,1.5vw,20px); line-height:1.6}
.v3 .v3-renvoi .v3-tete__droite .v3-bloc{margin:18px 0 0}
.v3 .v3-renvoi .v3-actions{margin-top:26px}

/* ----- Blocs de texte sur la section crème ----- */
.v3 .v3-clair .v3-texte,.v3 .v3-clair .v3-bloc p,.v3 .v3-clair .v3-carte__texte,.v3 .v3-clair .v3-etape p,
.v3 .v3-clair .v3-preuve p,.v3 .v3-clair .v3-petit-titre{color:var(--creme-texte)}
.v3 .v3-clair .v3-bloc{border-left-color:var(--creme-accent)}
.v3 .v3-clair .v3-bloc b,.v3 .v3-clair .v3-preuve b,.v3 .v3-clair .v3-note--fort{color:var(--creme-encre)}
.v3 .v3-clair .v3-preuve,.v3 .v3-clair .v3-carte{background:var(--creme-carte); border-color:var(--creme-ligne)}
.v3 .v3-clair .v3-carte__sous{color:var(--creme-accent)}
.v3 .v3-clair .v3-lieux li{color:var(--creme-encre); border-color:var(--creme-ligne); background:var(--creme-carte)}

/* ----- Blocs après les étapes (v3c_etapes) ----- */
.v3 .v3-bloc--apres{margin-top:40px}
.v3 .v3-bloc--apres + .v3-note{margin-top:22px}

/* ----- Réalisations sans texte à côté (v3c_preuves) : les cartes prennent la largeur ----- */
.v3 .v3-preuves--seules{grid-template-columns:repeat(2,minmax(0,1fr))}
.v3 .v3-preuves--seules.v3-preuves--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.v3 .v3-preuves--seules.v3-preuves--1{grid-template-columns:minmax(0,1fr); max-width:720px}

@media (max-width:980px){
  .v3 .v3-prix{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-preuves--seules.v3-preuves--3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .v3 .v3-prix__carte li{flex-direction:column; gap:2px}
  .v3 .v3-prix__carte li > span:last-child{text-align:left}
}
@media (max-width:700px){
  .v3 .v3-preuves--seules,.v3 .v3-preuves--seules.v3-preuves--3{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-prix__actions > *{flex:1 1 auto}
  .v3 .v3-bloc--apres{margin-top:30px}
}

/* =====================================================================
   CORRECTIONS DES FICHIERS COMMUNS (24/09/2026, après le passage des 13 pages)
   ===================================================================== */

/* ----- Section crème : plus aucun texte clair ni carte sombre illisible -----
   Paragraphe d'ouverture d'un duo (plus fort que .v3-clair .v3-texte) ;
   cartes de réalisation (preuves) et de produit passées en cartes crème ;
   lien « Voir la fiche » de la carte de prix, qui reste sombre. */
.v3 .v3-clair .v3-duo__texte .v3-texte:first-of-type{color:var(--creme-encre)}
.v3 .v3-clair .v3-duo__media{border-color:var(--creme-ligne)}
.v3 .v3-clair .v3-oeuvre,.v3 .v3-clair .v3-produit{background:var(--creme-carte); border-color:var(--creme-ligne)}
.v3 .v3-clair .v3-oeuvre:hover,.v3 .v3-clair .v3-produit:hover{border-color:var(--creme-accent)}
.v3 .v3-clair .v3-oeuvre__tag,.v3 .v3-clair .v3-oeuvre__meta,.v3 .v3-clair .v3-produit__prix{color:var(--creme-accent)}
.v3 .v3-clair .v3-oeuvre__texte,.v3 .v3-clair .v3-produit__prix small{color:var(--creme-texte)}
.v3 .v3-clair .v3-produit .v3-ttc,.v3 .v3-clair .v3-ttc-texte{color:var(--creme-texte)}
.v3 .v3-clair .v3-recap .v3-ttc-texte{color:var(--discret)}
.v3 .v3-clair .v3-produit__nom{color:var(--creme-encre)}
.v3 .v3-clair .v3-recap .v3-carte__go{color:var(--encre)}
.v3 .v3-clair .v3-recap .v3-carte__go svg{color:var(--accent-clair)}

/* ----- Téléphone : boutons compacts côte à côte dans les sections, comme dans le haut de page -----
   « Demander un devis » et le téléphone tiennent sur une ligne dès 360 px (324 px utiles) ;
   un libellé plus long passe à la ligne suivante. */
@media (max-width:700px){
  .v3 .v3-section .v3-actions,.v3 .v3-haut--appel .v3-actions{display:flex; flex-wrap:wrap; gap:8px}
  .v3 .v3-haut--appel .v3-actions{justify-content:center}
  .v3 .v3-haut--appel .v3-actions > *{width:auto}
  .v3 .v3-section .v3-actions .v3-btn,.v3 .v3-section .v3-actions .v3-pilule,
  .v3 .v3-haut--appel .v3-btn,.v3 .v3-haut--appel .v3-pilule{padding:9px 16px; font-size:14.5px}
}

/* ----- Décors mis en scène (page mariage, test du 24/09/2026) -----
   Photo d'ambiance et un point par objet loué (noyau/composants-v3.php, v3c_decors).
   Au bureau, la carte s'ouvre au survol à côté du point ; au clavier, au focus visible ;
   au toucher (style-v3.js), en feuille posée en haut ou en bas de la photo. */
.v3 .v3-decors{display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(44px,5.5vw,80px); margin-top:clamp(8px,1vw,16px)}
.v3 .v3-decor{margin:0; min-width:0}
.v3 .v3-decor__tete{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:6px 28px; margin-bottom:18px}
.v3 .v3-decor__titre{margin:0; font-size:clamp(22px,2.4vw,30px); font-weight:800; letter-spacing:-.03em; line-height:1.1; color:var(--encre)}
.v3 .v3-decor__sous{margin:0; font-size:16px; line-height:1.5; color:var(--texte); max-width:58ch}
.v3 .v3-decor__scene{position:relative}
.v3 .v3-decor__scene > img{display:block; width:100%; height:auto; border-radius:var(--r); border:1px solid var(--ligne)}
.v3 .v3-decor__points{list-style:none; margin:0; padding:0; position:absolute; inset:0}
.v3 .v3-point{position:absolute; left:var(--x); top:var(--y); width:0; height:0; z-index:1}
.v3 .v3-point:hover,.v3 .v3-point.est-ouvert,.v3 .v3-point:focus-within{z-index:3}
.v3 .v3-point__btn{position:absolute; left:-15px; top:-15px; width:30px; height:30px; padding:0; border-radius:50%; cursor:pointer;
  display:grid; place-items:center; border:2px solid #fff; background:rgba(11,7,18,.42); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  box-shadow:0 2px 12px rgba(0,0,0,.4); transition:transform .2s var(--ease), background .2s, opacity .2s}
.v3 .v3-point__btn::before{content:""; width:10px; height:10px; border-radius:50%; background:#fff}
.v3 .v3-point__btn::after{content:""; position:absolute; inset:-7px; border-radius:50%; border:2px solid rgba(255,255,255,.75); animation:v3-pouls 2.6s var(--ease) infinite; pointer-events:none}
@keyframes v3-pouls{0%{transform:scale(.7); opacity:.9} 70%,100%{transform:scale(1.4); opacity:0}}
.v3 .v3-point.est-ouvert .v3-point__btn,.v3 .v3-point.est-signale .v3-point__btn,.v3 .v3-point__btn:focus-visible{background:var(--degrade); transform:scale(1.14)}
.v3 .v3-point.est-signale .v3-point__btn{transform:scale(1.3)}
.v3 .v3-point__btn:focus-visible{outline:3px solid var(--accent-clair); outline-offset:4px}
/* La carte : son rembourrage transparent fait le pont avec le point (le survol ne se perd pas). */
.v3 .v3-point__carte{position:absolute; left:6px; top:0; transform:translateY(-50%); width:min(310px,72vw); padding-left:18px;
  opacity:0; visibility:hidden; pointer-events:none; transition:opacity .18s var(--ease), visibility .18s}
.v3 .v3-point--gauche .v3-point__carte{left:auto; right:6px; padding-left:0; padding-right:18px}
.v3 .v3-point--haut .v3-point__carte{top:auto; bottom:-26px; transform:none}
.v3 .v3-point--bas .v3-point__carte{top:-26px; transform:none}
.v3 .v3-point.est-ouvert .v3-point__carte,.v3 .v3-point:has(:focus-visible) .v3-point__carte{opacity:1; visibility:visible; pointer-events:auto}
.v3 .v3-point__boite{display:flex; gap:14px; align-items:center; padding:12px 18px 12px 12px; border-radius:var(--r);
  background:rgba(22,16,37,.97); border:1px solid var(--ligne-accent); box-shadow:0 18px 44px rgba(0,0,0,.5)}
.v3 .v3-point__media{flex:none; display:grid; place-items:center; width:70px; height:70px; border-radius:10px; background:#fff; overflow:hidden}
.v3 .v3-point__media img{width:86%; height:86%; object-fit:contain}
.v3 .v3-point__corps{display:flex; flex-direction:column; gap:2px; min-width:0}
.v3 .v3-point__nom{font-size:15.5px; font-weight:700; line-height:1.25; color:var(--encre)}
.v3 .v3-point__ref{font-size:11.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-point__prix{margin-top:3px; font-size:15px; font-weight:700; color:var(--accent-clair); white-space:nowrap}
.v3 .v3-point__prix small{font-size:12.5px; font-weight:500; color:var(--discret)}
.v3 .v3-point__go{display:inline-flex; align-items:center; gap:6px; margin-top:6px; font-size:13.5px; font-weight:700; color:var(--encre); text-decoration:none}
.v3 .v3-point__go svg{color:var(--accent-clair); transition:transform .2s var(--ease)}
.v3 .v3-point__go:hover svg{transform:translateX(3px)}
/* « Ajouter au devis » puis « Voir la fiche » (fiche publiée seulement), côte à côte ou l'un sous l'autre (25/09/2026) */
.v3 .v3-point__actions{display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin-top:9px}
.v3 .v3-point__actions .v3-point__go{margin-top:0}
@media (hover:hover) and (pointer:fine){
  .v3 .v3-point:hover .v3-point__carte{opacity:1; visibility:visible; pointer-events:auto}
  .v3 .v3-point:hover .v3-point__btn{background:var(--degrade); transform:scale(1.14)}
  .v3 .v3-decor__points:has(.v3-point:hover) .v3-point:not(:hover) .v3-point__btn{opacity:.5}
}
/* Objets de la scène en pilules, puis la mention de mise en scène. */
.v3 .v3-decor__liste{list-style:none; margin:18px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px}
.v3 .v3-decor__liste button{display:inline-flex; align-items:baseline; gap:8px; padding:7px 15px; border-radius:999px; cursor:pointer;
  font:inherit; font-size:14.5px; color:var(--encre); border:1px solid var(--ligne-accent); background:var(--accent-doux); transition:background .2s, border-color .2s}
.v3 .v3-decor__liste button small{font-size:11px; font-weight:600; letter-spacing:.08em; color:var(--discret)}
.v3 .v3-decor__liste button:hover,.v3 .v3-decor__liste button.est-actif{border-color:var(--accent-clair); background:color-mix(in srgb,var(--accent-a) 28%,transparent)}
.v3 .v3-decor__liste button:focus-visible{outline:3px solid var(--accent-clair); outline-offset:3px}
/* Sous les pilules : « Ajouter toute la scène au devis » et « Voir tout le catalogue » (25/09/2026) */
.v3 .v3-actions.v3-decor__actions{margin-top:20px}
.v3 .v3-decor__note{margin:14px 0 0; font-family:var(--font-accent); font-style:italic; font-size:17px; line-height:1.4; color:var(--discret)}
.v3 .v3-decors + .v3-suite{margin-top:clamp(36px,4vw,56px)}
@media (prefers-reduced-motion:reduce){ .v3 .v3-point__btn::after{animation:none; opacity:0} }
/* Téléphone : points plus petits ; la carte s'ouvre sous la photo, dans un espace qui se creuse
   (la photo reste entière et tous ses points restent touchables). */
@media (max-width:700px){
  .v3 .v3-point{position:static; width:auto; height:auto}
  .v3 .v3-point__btn{left:calc(var(--x) - 12px); top:calc(var(--y) - 12px); width:24px; height:24px}
  .v3 .v3-point__btn::before{width:8px; height:8px}
  .v3 .v3-point__btn::after{inset:-5px}
  .v3 .v3-point__carte,.v3 .v3-point--gauche .v3-point__carte,.v3 .v3-point--haut .v3-point__carte,.v3 .v3-point--bas .v3-point__carte{
    left:0; right:0; top:calc(100% + 10px); bottom:auto; width:auto; padding:0; transform:none; z-index:4}
  .v3 .v3-decor__scene{transition:margin-bottom .2s var(--ease)} /* marge posée par style-v3.js à la hauteur de la carte */
  .v3 .v3-point__boite{padding:10px 14px 10px 10px; gap:12px}
  .v3 .v3-point__media{width:56px; height:56px}
  .v3 .v3-decor__liste{flex-wrap:nowrap; overflow-x:auto; margin-right:calc(-1 * var(--marge)); padding-right:var(--marge); scrollbar-width:none}
  .v3 .v3-decor__liste::-webkit-scrollbar{display:none}
  .v3 .v3-decor__liste button{white-space:nowrap}
  .v3 .v3-decor__note{font-size:15.5px}
}
.v3 .v3-inclus + .v3-decors{margin-top:clamp(48px,6vw,88px)}

/* ----- ATTRIBUT hidden : toujours respecté, quelle que soit la règle d'affichage ----- */
[hidden]{display:none !important}

/* ----- APPARITIONS AU DÉFILEMENT (site.js, IntersectionObserver) -----
   Seulement quand le script tourne (html.js) ; ce qui est déjà à l'écran au
   chargement est montré sans transition (.v3-deja). */
html.js .v3 [data-monte]{opacity:0; transform:translateY(14px);
  transition:opacity .8s cubic-bezier(.2,.7,.3,1) var(--d,0ms), transform .8s cubic-bezier(.2,.7,.3,1) var(--d,0ms)}
html.js .v3 [data-monte].is-in{opacity:1; transform:none}
html.js .v3 [data-monte].v3-deja{transition:none}
html.js .v3 a[data-monte].is-in.v3-fin{transition:transform .45s cubic-bezier(.2,.7,.3,1), box-shadow .45s, border-color .45s}
html.js .v3 .rail [data-monte]{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){
  html.js .v3 [data-monte]{opacity:1 !important; transform:none !important}
}

/* ----- MESSAGE ÉPHÉMÈRE (ajout au devis) ----- */
.v3-toast{position:fixed; left:50%; bottom:24px; transform:translateX(-50%); z-index:120; display:inline-flex; align-items:center; gap:10px;
  padding:11px 18px 11px 12px; border-radius:999px; background:var(--surface-2); color:var(--encre); border:1px solid var(--ligne-accent);
  box-shadow:0 18px 40px -18px rgba(0,0,0,.7); font-size:15px; font-weight:600; animation:v3ToastIn .35s cubic-bezier(.2,.7,.3,1)}
.v3-toast__icone{display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:var(--degrade); flex:none}
.v3-toast a{color:var(--accent-clair); text-decoration:underline; text-underline-offset:3px}
@keyframes v3ToastIn{from{opacity:0; transform:translate(-50%,12px)} to{opacity:1; transform:translate(-50%,0)}}

/* ----- PAGES CONTACT, À PROPOS, CASINO, LÉGAL, 404, ÉVÉNEMENT (24/09/2026) ----- */

/* Haut simple (contact, mentions légales, 404) : fil d'Ariane, sur-titre, H1 et intro centrés
   sous l'en-tête fixe, halo d'accent en fond ; la section suivante remonte d'autant. */
.v3 .v3-entete{padding:calc(var(--header-h) + clamp(28px,4.6vw,64px)) 0 clamp(8px,1.6vw,20px); overflow:hidden; isolation:isolate; text-align:center}
.v3 .v3-entete::before{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(55% 90% at 50% 0%,color-mix(in srgb,var(--accent-a) 20%,transparent),transparent 70%)}
.v3 .v3-entete__in{display:flex; flex-direction:column; align-items:center}
.v3 .v3-entete .v3-ariane{width:100%; margin-bottom:clamp(20px,3vw,32px)}
.v3 .v3-entete .v3-surtitre{margin-bottom:16px}
.v3 .v3-entete__titre{margin:0 0 20px; max-width:16ch; font-family:var(--font-display); font-weight:800; font-size:clamp(38px,5.6vw,78px);
  line-height:1.02; letter-spacing:-.04em; color:var(--encre); text-wrap:balance}
.v3 .v3-entete .v3-lede{margin-inline:auto}
.v3 .v3-entete .v3-actions{margin-top:28px}
.v3 .v3-entete + .v3-section{padding-top:clamp(40px,5.4vw,72px)}

/* Contact : quatre cartes de coordonnées, carte de la zone d'intervention */
.v3 .v3-coord{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(12px,1.6vw,18px)}
.v3 .v3-coord__item{display:flex; flex-direction:column; gap:8px; min-width:0; padding:clamp(20px,2.2vw,26px);
  border:1px solid var(--ligne); border-radius:var(--r); background:var(--surface)}
.v3 .v3-coord__lab{font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-coord__val{display:inline-flex; align-items:center; gap:8px; align-self:flex-start; max-width:100%; font-size:clamp(17px,1.4vw,20px); font-weight:700;
  letter-spacing:-.02em; line-height:1.3; color:var(--encre); text-decoration:none; overflow-wrap:anywhere}
.v3 a.v3-coord__val:hover{color:var(--accent-clair)}
.v3 .v3-coord__val svg{flex:none; color:var(--accent-clair)}
.v3 .v3-coord__val--texte{display:block; font-size:17px; font-weight:600; line-height:1.5}
.v3 .v3-coord__note{margin-top:auto; font-size:15px; line-height:1.5; color:var(--texte)}
.v3 .v3-recap__num--mot{font-size:clamp(30px,3vw,40px); letter-spacing:-.04em; line-height:1}
.v3 .v3-recap .v3-lieux--recap{display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 0; padding:0; border-top:0}
.v3 .v3-recap .v3-lieux--recap li{display:inline-flex; justify-content:center; padding:5px 13px; border:1px solid var(--ligne-accent);
  border-radius:999px; font-size:14.5px; font-weight:600; color:var(--encre); background:var(--accent-doux)}

/* Qui sommes-nous : titre long du haut un cran plus petit ; valeurs sur quatre colonnes au bureau */
.v3 .v3-haut--ecran .v3-haut__titre--long{font-size:clamp(36px,min(5.6vw,9.4vh),88px)}
.v3 .v3-apropos__blocs .v3-bloc:first-child{margin-top:0}
@media (min-width:1181px){ .v3 .v3-occas--valeurs{grid-template-columns:repeat(4,minmax(0,1fr))} }

/* Casino : carte des deux marques (logos blancs, sur fond sombre) face au texte */
.v3 .v3-marques{display:flex; flex-direction:column; justify-content:center; gap:22px; min-width:0; padding:clamp(26px,3.4vw,44px);
  border:1px solid var(--ligne-accent); border-radius:var(--r);
  background:radial-gradient(90% 70% at 50% 0%,var(--accent-doux),transparent 70%),var(--surface)}
.v3 .v3-marques__logos{display:flex; align-items:center; justify-content:center; gap:clamp(16px,2.4vw,30px)}
.v3 .v3-marques__logo{display:block; width:auto; object-fit:contain}
.v3 .v3-marques__logo--nv{height:clamp(64px,7vw,96px)}
.v3 .v3-marques__logo--ce{height:clamp(92px,10vw,138px)}
.v3 .v3-marques__lien{flex:none; width:clamp(28px,4vw,56px); height:2px; border-radius:2px; background:var(--degrade)}
.v3 .v3-marques__legende{margin:0; text-align:center; font-size:16.5px; line-height:1.55; color:var(--texte)}
.v3 .v3-marques__legende b{color:var(--encre)}
.v3 .v3-marques .v3-compris{columns:1; border-top:1px solid var(--ligne)}

/* Casino : cinq tables en tuiles photo (cinq colonnes, puis 2 + 3, puis une grande et deux par ligne) */
.v3 .v3-formats--5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1180px){
  .v3 .v3-formats--5{grid-template-columns:repeat(6,minmax(0,1fr))}
  .v3 .v3-formats--5 .v3-format{grid-column:span 2; aspect-ratio:4/5}
  .v3 .v3-formats--5 .v3-format:nth-child(-n+2){grid-column:span 3; aspect-ratio:16/10}
}
@media (max-width:700px){
  .v3 .v3-formats--5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v3 .v3-formats--5 .v3-format,.v3 .v3-formats--5 .v3-format:nth-child(-n+2){grid-column:span 1; aspect-ratio:3/4}
  .v3 .v3-formats--5 .v3-format:first-child{grid-column:1 / -1; aspect-ratio:16/10}
}

/* Événement : trois portes photo sur la crème (univers) */
.v3 .v3-portes--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.v3 .v3-porte--media{padding-top:0; overflow:hidden}
.v3 .v3-porte__media{display:block; align-self:stretch; aspect-ratio:16/10; overflow:hidden; background:var(--creme-2);
  margin:0 calc(-1 * clamp(18px,2.4vw,34px)) clamp(18px,2vw,24px)}
.v3 .v3-porte__media img{display:block; width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease)}
.v3 .v3-porte:hover .v3-porte__media img{transform:scale(1.04)}
.v3 .v3-porte__tag{margin-bottom:8px; font-size:12px; font-weight:600; letter-spacing:.17em; text-transform:uppercase; color:var(--creme-accent)}

/* Mentions légales : une rubrique par rangée, titre à gauche, texte entier à droite */
.v3 .v3-legal .v3-wrap{max-width:1180px}
.v3 .v3-legal__rubrique{display:grid; grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr); gap:14px clamp(28px,4.4vw,72px);
  padding:clamp(26px,3vw,38px) 0; border-top:1px solid var(--ligne)}
.v3 .v3-legal__rubrique:last-child{border-bottom:1px solid var(--ligne)}
.v3 .v3-legal__titre{font-size:clamp(20px,1.8vw,24px)}
.v3 .v3-legal__texte .v3-texte{margin:0 0 12px; max-width:68ch; font-size:16.5px}
.v3 .v3-legal__texte .v3-texte:last-child{margin-bottom:0}

@media (max-width:860px){
  .v3 .v3-portes--3,.v3 .v3-legal__rubrique{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px){
  .v3 .v3-haut--ecran .v3-haut__titre--long{font-size:clamp(30px,min(9vw,5.2vh),40px)}
  .v3 .v3-entete__titre{font-size:clamp(34px,10vw,46px)}
  .v3 .v3-entete .v3-actions{justify-content:center}
}
@media (max-width:620px){
  .v3 .v3-coord{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){ .v3 .v3-porte:hover .v3-porte__media img{transform:none} }
/* Contact : message d'erreur du formulaire (?err=1) distinct du message de réussite */
.v3 .v3-form__statut--erreur{border-color:color-mix(in srgb,#FB7185 55%,transparent); background:color-mix(in srgb,#FB7185 12%,transparent)}
/* Retouches après captures : message de retour du formulaire posé en tête (écart avec les étapes) ;
   titre long équilibré ; logo Casino recentré (PNG vide en bas) ; nom d'événement seul en grand. */
.v3 .v3-form > .v3-form__statut--ok,.v3 .v3-form > .v3-form__statut--erreur{margin:0 0 26px}
.v3 .v3-haut__titre--long{text-wrap:balance}
.v3 .v3-marques__logo--ce{height:clamp(104px,11.5vw,160px); transform:translateY(8%)}
.v3 .v3-haut--ecran .v3-haut__titre--nom .v3-it{font-size:1.7em}

/* ----- CATALOGUE ET PANIER DE DEVIS (24/09/2026) -----
   Pages catégorie (views/public/categorie.php) et fiche produit (produit.php),
   carte produit avec « Ajouter au devis » (partials/product-card.php), texte
   long en blocs courts (partials/texte-blocs.php), sélection de matériel et
   panier flottant rendus par devis.js. Remplace l'ancienne feuille mini-cart.css. */

/* Haut de page sans photo assez grande : halo d'accent sur le fond */
.v3 .v3-haut__fond--vide{background:radial-gradient(60% 55% at 50% 42%,color-mix(in srgb,var(--accent-a) 22%,transparent),transparent 72%),var(--fond)}

/* Carte produit du catalogue : <article> (liens et bouton), habillage de .v3-produit */
.v3 .v3-produit__media--vide{background:linear-gradient(160deg,var(--surface-2),var(--fond-2))}
.v3 .v3-produit__vide{font-family:var(--font-accent); font-style:italic; font-size:19px; color:var(--discret)}
.v3 .v3-produit__cat{align-self:flex-start; font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-clair); text-decoration:none}
.v3 .v3-produit__cat:hover{color:var(--encre)}
.v3 a.v3-produit__nom{text-decoration:none; transition:color .2s}
.v3 a.v3-produit__nom:hover{color:var(--accent-clair)}
.v3 .v3-produit__pied{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 14px; margin-top:auto; padding-top:14px}
.v3 .v3-produit__pied .v3-carte__go{margin:0; padding:0; text-decoration:none}
.v3 .v3-produit__ajout{display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:8px 15px; border-radius:999px; cursor:pointer;
  font:600 14px/1.3 var(--font-sans); color:var(--encre); background:var(--accent-doux); border:1px solid var(--ligne-accent);
  transition:background .2s, border-color .2s, color .2s}
.v3 .v3-produit__ajout:hover{border-color:var(--accent-clair); background:color-mix(in srgb,var(--accent-a) 28%,transparent)}
.v3 .v3-produit__ajout svg{flex:none; width:15px; height:15px; color:var(--accent-clair)}
.v3 .btn-devis:focus-visible{outline:2px solid var(--accent-clair); outline-offset:3px}
.v3 .v3-produit__ajout.est-ajoute{border-color:var(--accent-clair); background:color-mix(in srgb,var(--accent-a) 34%,transparent)}
.v3 .v3-btn.est-ajoute{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-clair) 45%,transparent)}
html.js .v3 .v3-produit[data-monte].is-in.v3-fin{transition:transform .45s cubic-bezier(.2,.7,.3,1), border-color .45s}
.v3 .v3-clair .v3-produit__cat{color:var(--creme-accent)}
.v3 .v3-clair a.v3-produit__nom:hover{color:var(--creme-accent)}
.v3 .v3-clair .v3-produit .v3-carte__go{color:var(--creme-encre)}
.v3 .v3-clair .v3-produit .v3-carte__go svg,.v3 .v3-clair .v3-produit__ajout svg{color:var(--creme-accent)}
.v3 .v3-clair .v3-produit__ajout{color:var(--creme-encre); background:var(--creme); border-color:var(--creme-ligne)}
.v3 .v3-clair .v3-produit__ajout:hover{border-color:var(--creme-accent); background:var(--creme-2)}
/* Ajout au devis dans une carte sombre (carte prix, carte d'un point de décor) : reste sombre sur la crème */
.v3 .v3-clair .v3-recap .v3-produit__ajout,.v3 .v3-clair .v3-point .v3-produit__ajout{color:var(--encre); background:var(--accent-doux); border-color:var(--ligne-accent)}
.v3 .v3-clair .v3-recap .v3-produit__ajout svg,.v3 .v3-clair .v3-point .v3-produit__ajout svg{color:var(--accent-clair)}
/* Tailles : petite dans la carte d'un point de décor, grande (hauteur des pilules) pour « Ajouter toute la scène au devis » */
.v3 .v3-produit__ajout--petit{padding:6px 12px; font-size:13px; gap:6px}
.v3 .v3-produit__ajout--petit svg{width:13px; height:13px}
.v3 .v3-produit__ajout--grand{padding:11px 22px; gap:9px; font-size:16px; border-color:var(--accent-clair);
  background:color-mix(in srgb,var(--accent-a) 24%,transparent)}
.v3 .v3-produit__ajout--grand:hover{background:color-mix(in srgb,var(--accent-a) 38%,transparent)}
.v3 .v3-produit__ajout--grand svg{width:17px; height:17px}
.v3 .v3-clair .v3-produit__ajout--grand{border-color:var(--creme-accent)}
@media (max-width:700px){ .v3 .v3-produit__ajout--grand{padding:9px 16px; font-size:14.5px} }
/* Carte prix : « Ajouter au devis » et « Voir la fiche » sur une ligne sous le devis et le téléphone */
.v3 .v3-prix__pied{padding-top:18px}
.v3 .v3-prix__carte .v3-prix__pied .v3-carte__go{padding-top:0}
/* Quatre produits liés : quatre colonnes au bureau, deux ensuite */
.v3 .v3-produits--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1180px){ .v3 .v3-produits--4{grid-template-columns:repeat(2,minmax(0,1fr))} }
/* Téléphone : cartes en ligne (vignette à gauche), la liste reste courte */
@media (max-width:560px){
  .v3 .v3-produits,.v3 .v3-produits--4{grid-template-columns:minmax(0,1fr); gap:12px}
  .v3 .v3-produit--achat{flex-direction:row}
  .v3 .v3-produit--achat .v3-produit__media{flex:none; width:112px; aspect-ratio:auto; min-height:132px}
  .v3 .v3-produit--achat .v3-produit__media img{width:84%; height:84%; max-height:120px}
  .v3 .v3-produit--achat .v3-produit__vide{font-size:15px; text-align:center; padding:0 8px}
  .v3 .v3-produit--achat .v3-produit__corps{min-width:0; padding:14px 16px 16px; gap:4px}
  .v3 .v3-produit--achat .v3-produit__nom{font-size:16px}
  .v3 .v3-produit--achat .v3-produit__pied{padding-top:10px; gap:10px}
}

/* Blocs vides (catégorie sans produit) : cadre en pointillés, jamais de colonne vide */
.v3 .v3-vide{max-width:760px; padding:clamp(22px,3vw,34px); border:1.5px dashed var(--ligne-accent); border-radius:var(--r)}
.v3 .v3-vide .v3-texte{margin:0}
.v3 .v3-vide .v3-actions{margin-top:20px}

/* Texte long en blocs courts, en colonnes (partials/texte-blocs.php) */
.v3 .v3-textes{display:grid; grid-template-columns:repeat(var(--n,3),minmax(0,1fr)); gap:clamp(28px,3.4vw,52px) clamp(26px,3.4vw,52px); align-items:start}
.v3 .v3-textes .v3-bloc{margin:0}
.v3 .v3-bloc__titre{margin:0 0 10px; font-family:var(--font-display); font-size:clamp(19px,1.6vw,22px); font-weight:800; line-height:1.2; letter-spacing:-.025em; color:var(--encre); text-wrap:balance}
.v3 .v3-textes .v3-bloc p{max-width:60ch}
.v3 .v3-textes .v3-bloc p + p,.v3 .v3-textes .v3-bloc p + .v3-compris,.v3 .v3-textes .v3-bloc .v3-compris + p{margin-top:12px}
.v3 .v3-textes .v3-compris{columns:1}
.v3 .v3-textes .v3-bloc a{color:var(--encre); text-decoration:underline; text-decoration-color:var(--ligne-accent); text-underline-offset:3px}
.v3 .v3-textes .v3-bloc a:hover{text-decoration-color:var(--accent-b)}
.v3 .v3-clair .v3-bloc__titre{color:var(--creme-encre)}
@media (max-width:980px){ .v3 .v3-textes{grid-template-columns:minmax(0,1fr); gap:30px} }

/* Pilules cliquables (catégories voisines, occasions, autres catégories) */
.v3 .v3-lieux--liens li{padding:0; border:0; background:none}
.v3 .v3-lieux--liens a,.v3 .v3-lieux--liens li > span{display:inline-flex; align-items:center; padding:7px 16px; border-radius:999px; font-size:15px; line-height:1.4;
  color:var(--encre); text-decoration:none; border:1px solid var(--ligne-accent); background:var(--accent-doux); transition:border-color .2s, background .2s, color .2s}
.v3 .v3-lieux--liens a:hover{border-color:var(--accent-clair); background:color-mix(in srgb,var(--accent-a) 28%,transparent)}
.v3 .v3-lieux--liens li > span{color:var(--texte); background:transparent; border-color:var(--ligne)}
.v3 .v3-clair .v3-lieux--liens li{background:none; border:0}
.v3 .v3-clair .v3-lieux--liens a{color:var(--creme-encre); border-color:var(--creme-ligne); background:var(--creme-carte)}
.v3 .v3-clair .v3-lieux--liens a:hover{border-color:var(--creme-accent); color:var(--creme-accent)}
.v3 .v3-renvoi .v3-tete__droite .v3-lieux{margin-bottom:18px}

/* Fiche produit : haut de page sous l'en-tête fixe, galerie à gauche, informations à droite */
.v3 .v3-fiche{padding-top:calc(var(--header-h) + clamp(18px,2.6vw,34px))}
.v3 .v3-fiche .v3-ariane{margin-bottom:clamp(18px,2.4vw,30px)}
.v3 .v3-fiche .v3-ariane ol{justify-content:flex-start}
.v3 .v3-fiche__grille{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(28px,4.4vw,72px); align-items:start}
.v3 .v3-galerie{position:sticky; top:calc(var(--header-h) + 24px); min-width:0}
/* Photos en absolu, centrées par leurs marges (même raison que .v3-produit__media) */
.v3 .v3-galerie__grande{position:relative; display:grid; place-items:center; aspect-ratio:5/4; overflow:hidden; border-radius:var(--r); background:#fff; border:1px solid var(--ligne)}
.v3 .v3-galerie__grande img{position:absolute; inset:0; margin:auto; width:82%; height:86%; object-fit:contain}
.v3 .v3-galerie__grande--vide{background:linear-gradient(160deg,var(--surface-2),var(--fond-2))}
.v3 .v3-galerie__vignettes{list-style:none; margin:14px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px}
.v3 .v3-galerie__vignette{position:relative; display:grid; place-items:center; width:76px; height:76px; padding:0; overflow:hidden; cursor:pointer;
  border-radius:12px; background:#fff; border:2px solid transparent; opacity:.62; transition:opacity .2s, border-color .2s}
.v3 .v3-galerie__vignette img{position:absolute; inset:0; margin:auto; width:86%; height:86%; object-fit:contain}
.v3 .v3-galerie__vignette:hover,.v3 .v3-galerie__vignette.est-actif{opacity:1; border-color:var(--accent-b)}
.v3 .v3-galerie__vignette:focus-visible{outline:2px solid var(--accent-clair); outline-offset:3px}
.v3 .v3-fiche__info{display:flex; flex-direction:column; align-items:flex-start; min-width:0}
.v3 a.v3-fiche__cat{text-decoration:none}
.v3 a.v3-fiche__cat:hover{color:var(--encre)}
.v3 .v3-fiche__titre{margin:0; font-family:var(--font-display); font-weight:800; font-size:clamp(32px,3.5vw,52px); line-height:1.05; letter-spacing:-.035em; color:var(--encre); text-wrap:balance}
.v3 .v3-fiche__sous{margin:12px 0 0; font-family:var(--font-accent); font-style:italic; font-size:clamp(19px,1.6vw,23px); line-height:1.25; color:var(--accent-clair)}
.v3 .v3-fiche__ref{margin:14px 0 0; font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-fiche__prix{margin:16px 0 0; font-family:var(--font-display); font-size:clamp(28px,2.6vw,36px); font-weight:800; letter-spacing:-.03em; line-height:1.1; color:var(--accent-clair)}
.v3 .v3-fiche__prix small{font-family:var(--font-sans); font-size:15px; font-weight:500; letter-spacing:0; color:var(--discret)}
.v3 .v3-fiche__prix .v3-ttc{margin-top:6px; font-size:14.5px}
.v3 .v3-fiche__info > .v3-lede{margin-top:16px; font-size:17px}
.v3 .v3-fiche .v3-reperes{justify-content:flex-start; margin-top:18px}
.v3 .v3-fiche__avis{margin-top:clamp(28px,3vw,40px)}
.v3 .v3-etiquettes{display:flex; flex-wrap:wrap; gap:18px 56px; margin-top:clamp(36px,4vw,56px); padding-top:26px; border-top:1px solid var(--ligne)}
.v3 .v3-etiquettes .v3-lieux{margin:0}
.v3 .v3-tete + .v3-etiquettes{margin-top:0; padding-top:0; border-top:0}

/* Bloc d'ajout au devis (habillage de .v3-form) : quantité, bouton, dates */
.v3 .v3-achat{width:100%; margin-top:24px; padding:clamp(18px,2vw,24px)}
.v3 .v3-achat__ligne{display:flex; flex-wrap:wrap; align-items:center; gap:12px}
.v3 .v3-achat__ligne .v3-btn{flex:1 1 200px}
.v3 .v3-achat__ligne .v3-btn svg{flex:none}
.v3 .v3-achat__dates{margin-top:18px; padding-top:16px; border-top:1px solid var(--ligne)}
.v3 .v3-achat__lab{display:block; margin-bottom:10px; font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-achat__champs{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.v3 .v3-achat__note{margin:14px 0 0; font-size:14.5px; line-height:1.55; color:var(--discret)}

/* Sélecteur de quantité (fiche produit ; en petit dans les lignes de sélection) */
.v3 .v3-qte{display:inline-flex; align-items:center; gap:2px; padding:4px; border-radius:999px; border:1px solid var(--ligne-accent); background:rgba(11,7,18,.45)}
.v3 .v3-qte__btn{display:grid; place-items:center; flex:none; width:38px; height:38px; padding:0; border:0; border-radius:50%; cursor:pointer;
  background:transparent; color:var(--encre); font:600 19px/1 var(--font-sans); transition:background .2s}
.v3 .v3-qte__btn:hover{background:var(--accent-doux)}
.v3 .v3-qte__btn:focus-visible{outline:2px solid var(--accent-clair); outline-offset:1px}
.v3 .v3-achat .v3-qte input.v3-qte__champ{width:46px; margin:0; padding:6px 0; border:0; border-radius:0; background:transparent; text-align:center;
  font:700 17px/1 var(--font-sans); color:var(--encre); -moz-appearance:textfield; appearance:textfield}
.v3 .v3-qte input::-webkit-outer-spin-button,.v3 .v3-qte input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0}
.v3 .v3-qte__n{min-width:22px; text-align:center; font-size:14px; font-weight:700; color:var(--encre)}
.v3 .v3-qte--petite{padding:2px; border-color:var(--ligne)}
.v3 .v3-qte--petite .v3-qte__btn{width:28px; height:28px; font-size:16px}

/* Tableau technique */
.v3 .v3-specs{width:100%; border-collapse:collapse; font-size:15.5px; line-height:1.5}
.v3 .v3-specs th,.v3 .v3-specs td{padding:11px 0; border-bottom:1px solid var(--ligne); text-align:left; vertical-align:top}
.v3 .v3-specs tr:first-child th,.v3 .v3-specs tr:first-child td{border-top:1px solid var(--ligne)}
.v3 .v3-specs th{width:42%; padding-right:18px; font-weight:500; color:var(--discret)}
.v3 .v3-specs td{font-weight:600; color:var(--encre)}
.v3 .v3-inclus__listes > * + .v3-h3{margin-top:34px}
.v3 .v3-inclus__listes > .v3-actions{margin-top:34px}

/* Sélection de matériel (devis.js) : dans le formulaire (#devis-cart) et dans le panier flottant */
.v3 .v3-selection{list-style:none; margin:12px 0 0; padding:0}
.v3 .v3-selection__ligne{display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--ligne)}
.v3 .v3-selection__ligne:last-child{border-bottom:0}
.v3 .v3-selection__vignette{display:block; flex:none; width:46px; height:46px; border-radius:10px; object-fit:contain; background:#fff; border:1px solid var(--ligne)}
.v3 .v3-selection__vignette--vide{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-a) 30%,transparent),color-mix(in srgb,var(--accent-b) 18%,transparent))}
.v3 .v3-selection__info{display:flex; flex:1; flex-direction:column; gap:2px; min-width:0}
.v3 .v3-selection__nom{font-size:14.5px; font-weight:600; line-height:1.3; color:var(--encre); overflow-wrap:anywhere}
.v3 .v3-selection__ref{font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-selection__retirer,.v3 .v3-panier__fermer{display:grid; place-items:center; flex:none; width:30px; height:30px; padding:0; border-radius:50%; cursor:pointer;
  border:1px solid var(--ligne); background:transparent; color:var(--discret); transition:color .2s, border-color .2s}
.v3 .v3-selection__retirer:hover,.v3 .v3-panier__fermer:hover{color:var(--encre); border-color:var(--accent-clair)}
.v3 .v3-selection__retirer:focus-visible,.v3 .v3-panier__fermer:focus-visible{outline:2px solid var(--accent-clair); outline-offset:2px}
.v3 .v3-selection__dates{margin:12px 0 0; padding-top:12px; border-top:1px solid var(--ligne); font-size:14.5px; line-height:1.5; color:var(--texte)}
.v3 .v3-selection__dates b{color:var(--encre)}
.v3 .v3-selection__dates--vide{color:var(--accent-clair)}

/* Panier flottant : bouton rond en bas à droite, panneau au-dessus (sous l'en-tête et ses menus) */
.v3 .v3-panier{position:fixed; right:clamp(14px,3vw,26px); bottom:clamp(14px,3vw,26px); z-index:70; display:flex; flex-direction:column; align-items:flex-end; gap:12px}
.v3 .v3-panier__bouton{position:relative; display:grid; place-items:center; width:60px; height:60px; padding:0; border:0; border-radius:50%; cursor:pointer;
  color:var(--sur-accent); background:var(--degrade); box-shadow:0 16px 38px -12px color-mix(in srgb,var(--accent-b) 70%,transparent);
  transition:transform .25s var(--ease), box-shadow .25s}
.v3 .v3-panier__bouton:hover{transform:translateY(-2px); box-shadow:0 20px 46px -12px color-mix(in srgb,var(--accent-b) 85%,transparent)}
.v3 .v3-panier__bouton:focus-visible{outline:2px solid var(--accent-clair); outline-offset:3px}
.v3 .v3-panier__compte{position:absolute; top:-4px; right:-4px; display:grid; place-items:center; min-width:22px; height:22px; padding:0 6px; border-radius:999px;
  background:#fff; color:var(--sur-accent); font-size:12px; font-weight:800; line-height:1; box-shadow:0 2px 8px rgba(0,0,0,.3)}
.v3 .v3-panier__panneau{display:flex; flex-direction:column; width:min(360px,calc(100vw - 28px)); max-height:min(72vh,580px); overflow:hidden;
  border-radius:var(--r); border:1px solid var(--ligne-accent); background:rgba(22,16,37,.96); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
  box-shadow:0 26px 60px -18px rgba(0,0,0,.75); transform-origin:bottom right; animation:v3PanierIn .28s var(--ease)}
@keyframes v3PanierIn{from{opacity:0; transform:translateY(10px) scale(.96)} to{opacity:1; transform:none}}
.v3 .v3-panier__tete{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--ligne)}
.v3 .v3-panier__titre{font-size:16px; font-weight:700; letter-spacing:-.01em; color:var(--encre)}
.v3 .v3-panier__n{color:var(--accent-clair)}
.v3 .v3-panier__liste{flex:1 1 auto; min-height:0; margin:0; padding:2px 18px; overflow-y:auto}
.v3 .v3-panier__dates{padding:12px 18px 2px; border-top:1px solid var(--ligne)}
.v3 .v3-panier__lab{display:block; margin-bottom:8px; font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-panier__champs{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.v3 .v3-panier__champs label{display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--discret)}
.v3 .v3-panier__champs input{width:100%; min-width:0; padding:8px 9px; border-radius:10px; border:1px solid var(--ligne); background:rgba(11,7,18,.55);
  color:var(--encre); font:400 13.5px/1.3 var(--font-sans); color-scheme:dark}
.v3 .v3-panier__champs input:focus{outline:none; border-color:var(--accent-clair)}
.v3 .v3-panier__aide{margin:8px 0 0; font-size:13px; color:var(--encre)}
.v3 .v3-panier__aide.est-vide{color:var(--accent-clair)}
.v3 .v3-panier__cta{margin:12px 18px 18px}
/* « Continuer sur le catalogue » sous « Voir ma demande » (25/09/2026) */
.v3 .v3-panier__cta:has(+ .v3-panier__suite){margin-bottom:6px}
.v3 .v3-panier__suite{display:flex; align-items:center; justify-content:center; gap:7px; margin:0 18px 14px; padding:8px 0;
  font-size:14px; font-weight:600; color:var(--texte); text-decoration:none; transition:color .2s}
.v3 .v3-panier__suite svg{color:var(--accent-clair); transition:transform .2s var(--ease)}
.v3 .v3-panier__suite:hover{color:var(--encre)}
.v3 .v3-panier__suite:hover svg{transform:translateX(3px)}
.v3 .v3-panier__suite:focus-visible{outline:2px solid var(--accent-clair); outline-offset:2px; border-radius:8px}

@media (max-width:980px){
  .v3 .v3-fiche__grille{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-galerie{position:static}
  .v3 .v3-galerie__grande{aspect-ratio:4/3}
}
@media (max-width:700px){
  .v3 .v3-fiche .v3-reperes{display:flex; flex-wrap:wrap; gap:6px}
  .v3 .v3-fiche .v3-reperes li{flex-direction:row; align-items:baseline; gap:5px; border-radius:999px; padding:5px 11px; font-size:12.5px}
  .v3 .v3-fiche .v3-reperes li > b,.v3 .v3-fiche .v3-reperes li > span{font-size:12.5px}
  .v3 .v3-galerie__vignette{width:64px; height:64px}
  .v3 .v3-achat__ligne .v3-btn{padding:9px 16px; font-size:14.5px}
  /* Le message éphémère passe au-dessus du bouton du panier flottant */
  body:has(.v3-panier:not([hidden])) .v3-toast{bottom:92px}
}
@media (max-width:420px){ .v3 .v3-achat__champs{grid-template-columns:minmax(0,1fr)} }
@media (max-width:560px){ .v3 .v3-panier__bouton{width:54px; height:54px} }
@media (prefers-reduced-motion:reduce){
  .v3 .v3-panier__panneau{animation:none}
  .v3 .v3-panier__bouton:hover,.v3 .v3-produit--achat:hover{transform:none}
}
/* Catalogue court (un ou deux produits, categorie.php) : texte à gauche, cartes à droite, jamais de colonne vide */
.v3 .v3-catalogue{display:grid; gap:32px clamp(28px,4.4vw,72px); align-items:center}
.v3 .v3-catalogue--1{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.v3 .v3-catalogue--2{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.v3 .v3-catalogue--1 .v3-produits{grid-template-columns:minmax(0,1fr); width:100%; max-width:480px; justify-self:end}
.v3 .v3-catalogue--2 .v3-produits{grid-template-columns:repeat(2,minmax(0,1fr))}
.v3 .v3-catalogue .v3-tete--pile{margin-bottom:22px}
.v3 .v3-catalogue .v3-actions{margin-top:28px}
@media (max-width:980px){
  .v3 .v3-catalogue--1,.v3 .v3-catalogue--2{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-catalogue--1 .v3-produits{justify-self:start}
}
@media (max-width:560px){
  .v3 .v3-catalogue--2 .v3-produits{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-catalogue--1 .v3-produits{max-width:none}
}
.v3 .v3-catalogue--0{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.v3 .v3-catalogue--0 .v3-vide{max-width:none}
/* Dernière rangée incomplète d'une grille de trois : l'appel au devis occupe les cases restantes */
.v3 .v3-produits__appel{display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:18px; min-width:0;
  padding:clamp(22px,2.6vw,34px); border:1.5px dashed var(--ligne-accent); border-radius:var(--r)}
.v3 .v3-produits__appel .v3-texte{margin:0; max-width:44ch}
.v3 .v3-produits__appel .v3-texte b{color:var(--encre)}
.v3 .v3-produits__appel .v3-actions{margin:0}
.v3 .v3-produits__appel--2{grid-column:span 2}
@media (max-width:980px){
  .v3 .v3-catalogue--0{grid-template-columns:minmax(0,1fr)}
  .v3 .v3-produits__appel--1,.v3 .v3-produits__appel--2{grid-column:1 / -1}
}
/* Sélection dans un cadre étroit (formulaire sur téléphone) : quantité et retrait passent sous le nom */
.v3 .v3-selection{container-type:inline-size}
@container (max-width:320px){
  .v3 .v3-selection__ligne{flex-wrap:wrap; row-gap:8px}
  .v3 .v3-selection__info{flex-basis:calc(100% - 58px)}
  .v3 .v3-selection__ligne .v3-qte{margin-left:58px}
  .v3 .v3-selection__retirer{margin-left:auto}
}
/* Téléphone, panneau ouvert : le message éphémère passe sous l'en-tête, jamais sur « Voir ma demande » */
@media (max-width:700px){
  body:has(.v3-panier.est-ouvert) .v3-toast{top:calc(var(--header-h) + 10px); bottom:auto}
}
/* Fiche sans texte long : occasions et autres catégories sous l'ajout au devis ; appel au devis de la grille sur un halo d'accent */
.v3 .v3-fiche .v3-etiquettes{margin-top:22px; padding-top:18px; gap:14px 36px}
.v3 .v3-produits__appel{background:radial-gradient(120% 100% at 0% 0%,var(--accent-doux),transparent 60%)}
.v3 .v3-catalogue__texte{min-width:0}

/* ----- PAGE /CATALOGUE (25/09/2026) : recherche, filtres en pilules, une section par catégorie ----- */
.v3 .v3-sr{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}
.v3 .v3-entete + .v3-cat{padding-top:0}
.v3 .v3-cat{scroll-margin-top:var(--header-h)}
/* Barre fixée sous l'en-tête au bureau : fond plein jusqu'aux bords de l'écran (ombre et découpe), aucune carte ne passe derrière les pilules. */
.v3 .v3-cat-outils{position:sticky; top:var(--header-h); z-index:5; display:flex; flex-direction:column; gap:12px; margin:0 0 clamp(28px,3.4vw,44px);
  padding:14px 0 16px; background:var(--fond); box-shadow:0 0 0 100vmax var(--fond); clip-path:inset(0 -100vmax); scroll-margin-top:var(--header-h)}
.v3 .v3-cat-recherche{position:relative; display:flex; align-items:center; max-width:640px; width:100%; margin:0 auto}
.v3 .v3-cat-recherche > svg{position:absolute; left:18px; color:var(--discret); pointer-events:none}
.v3 .v3-cat-recherche input{width:100%; height:52px; padding:0 48px 0 50px; font:400 16px/1.4 var(--font-sans); color:var(--encre);
  background:var(--surface); border:1px solid var(--ligne-accent); border-radius:999px; -webkit-appearance:none; appearance:none}
.v3 .v3-cat-recherche input::placeholder{color:#7F7690}
.v3 .v3-cat-recherche input:focus{outline:none; border-color:var(--accent-clair); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-a) 30%,transparent)}
.v3 .v3-cat-recherche input::-webkit-search-cancel-button{display:none}
.v3 .v3-cat-recherche__effacer{position:absolute; right:10px; width:34px; height:34px; border:0; border-radius:50%; background:transparent;
  color:var(--discret); font-size:22px; line-height:1; cursor:pointer}
.v3 .v3-cat-recherche__effacer:hover{color:var(--encre); background:rgba(255,255,255,.06)}
.v3 .v3-cat-filtres{display:flex; flex-wrap:wrap; justify-content:center; gap:8px}
.v3 .v3-cat-pilule{display:inline-flex; align-items:center; padding:8px 18px; font:500 15px/1.3 var(--font-sans); color:var(--texte); cursor:pointer;
  background:transparent; border:1px solid var(--ligne); border-radius:999px; transition:border-color .2s, background .2s, color .2s}
.v3 .v3-cat-pilule:hover{border-color:var(--accent-clair); color:var(--encre)}
.v3 .v3-cat-pilule.est-actif{color:var(--sur-accent); background:var(--degrade); border-color:transparent; font-weight:700}
.v3 .v3-cat-pilule--petite{padding:6px 14px; font-size:13.5px}
.v3 .v3-cat-pilule--petite.est-actif{color:var(--encre); background:color-mix(in srgb,var(--accent-a) 30%,transparent); border-color:var(--accent-clair)}
.v3 button.v3-pilule{font:inherit; font-size:15px; cursor:pointer}
.v3 .v3-cat-groupe{margin:0 0 clamp(40px,4.6vw,64px); scroll-margin-top:calc(var(--header-h) + 150px)}
.v3 .v3-cat-groupe__tete{display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 16px; margin:0 0 18px; padding-bottom:12px; border-bottom:1px solid var(--ligne)}
.v3 .v3-cat-groupe__titre{margin:0; font-family:var(--font-display); font-weight:800; font-size:clamp(22px,2.2vw,30px); letter-spacing:-.03em; line-height:1.1; color:var(--encre)}
.v3 .v3-cat-groupe__univers{font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--discret)}
.v3 .v3-cat-groupe__tete .v3-carte__go{margin-left:auto}
.v3 .v3-cat-vide{margin:0 auto}
@media (max-width:700px){
  .v3 .v3-cat-outils{position:static; gap:10px; padding:4px 0 0; box-shadow:none; clip-path:none}
  .v3 .v3-cat-recherche input{height:46px; font-size:16px}
  .v3 .v3-cat-filtres{flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; margin-inline:calc(var(--marge) * -1); padding-inline:var(--marge)}
  .v3 .v3-cat-filtres::-webkit-scrollbar{display:none}
  .v3 .v3-cat-pilule{flex:none; padding:7px 14px; font-size:14px}
  .v3 .v3-cat-pilule--petite{padding:5px 12px; font-size:13px}
  .v3 .v3-cat-groupe__tete .v3-carte__go{margin-left:0; flex-basis:100%}
}

/* Fiche résumée (01/10/2026, produit.php) : objet simple, une seule section. Texte à gauche, carte des
   caractéristiques puis pilules à droite, sur la grille du haut de fiche (la carte tombe sous l'ajout au devis). */
.v3 .v3-fiche--serree{padding-bottom:clamp(40px,5vw,68px)}
.v3 .v3-resume{padding:clamp(52px,6.5vw,88px) 0}
.v3 .v3-resume .v3-tete{margin-bottom:34px}
.v3 .v3-resume__grille{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(28px,4.4vw,72px); align-items:start}
.v3 .v3-resume__grille--seul{grid-template-columns:minmax(0,1fr)}
.v3 .v3-resume__grille:not(.v3-resume__grille--seul) .v3-textes{grid-template-columns:minmax(0,1fr); gap:30px}
.v3 .v3-resume__carte{border:1px solid var(--ligne-accent); border-radius:var(--r); padding:clamp(22px,2.6vw,32px);
  background:radial-gradient(120% 100% at 0% 0%,var(--accent-doux),transparent 60%),var(--surface)}
.v3 .v3-resume__carte .v3-bloc__titre{margin-bottom:14px}
.v3 .v3-resume__carte .v3-specs tr:last-child th,.v3 .v3-resume__carte .v3-specs tr:last-child td{border-bottom:0}
.v3 .v3-resume__carte .v3-etiquettes{margin-top:0; padding-top:20px; gap:16px 36px}
.v3 .v3-resume__carte > .v3-etiquettes:first-child{padding-top:0; border-top:0}
@media (max-width:980px){ .v3 .v3-resume__grille{grid-template-columns:minmax(0,1fr)} }
.v3 .v3-resume + .v3-section{padding-top:clamp(52px,6.5vw,88px)}
/* Fiche résumée avec listes (points clés, inclus, options) : sous le texte, à gauche ; la carte suit le défilement */
.v3 .v3-resume__liste{margin-top:34px}
.v3 .v3-resume__grille--seul .v3-resume__liste{max-width:820px}
@media (min-width:981px){ .v3 .v3-resume__carte{position:sticky; top:calc(var(--header-h) + 24px)} }

/* =====================================================================
   Gabarit catégorie (01/10/2026) : categorie.php réordonné (refonte, décisions §5a, lot L3).
   Réutilise .v3-cartes et .v3-carte (Bien choisir), .v3-inclus, .v3-compris et .v3-recap (Ce qui est
   compris), .v3-oeuvre (réalisation), .v3-renvoi (pont, et voisines sur fond sombre) ; seuls les écarts sont ici.
   ===================================================================== */
/* Bien choisir : cartes sans photo, phrase-titre puis une ou deux phrases ; filet d'accent en tête */
.v3 .v3-cartes--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.v3 .v3-choisir .v3-carte{box-shadow:inset 0 2px 0 var(--ligne-accent)}
.v3 .v3-choisir .v3-carte h3{margin:0 0 8px}
.v3 .v3-choisir .v3-carte__texte{font-size:16px; line-height:1.6}
/* Ce qui est compris : la liste « En option » (une ligne) ne se coupe pas en deux colonnes */
.v3 .v3-cat-compris .v3-h3 + .v3-compris:last-child{columns:1}
/* Réalisation : titre à gauche, la carte à droite (colonne de droite de .v3-tete), centrés */
.v3 .v3-cat-realisation .v3-tete{margin-bottom:0; align-items:center}
.v3 .v3-cat-realisation .v3-tete__droite .v3-oeuvre{max-width:560px}
/* Pont en une ligne : la question à gauche, la phrase et les deux boutons à droite */
.v3 .v3-pont .v3-tete__droite > .v3-texte:first-child{margin:0}
.v3 .v3-pont .v3-actions{margin-top:20px}
@media (max-width:700px){
  .v3 .v3-cartes--2{grid-template-columns:minmax(0,1fr)}
}
/* L9 (01/10/2026) : fil d'Ariane à quatre niveaux sur mobile, les étapes passent à la ligne au lieu de se superposer et de couper la dernière (Micros à 390 px) ; le bureau ne change pas */
@media (max-width:700px){
  .v3 .v3-ariane ol{flex-wrap:wrap; white-space:normal; overflow:visible; row-gap:0; column-gap:8px}
  .v3 .v3-ariane li{min-width:auto}
  .v3 .v3-ariane [aria-current]{overflow:visible; text-overflow:clip}
}
/* Quatre niveaux ou plus : le fil tient sur deux lignes à 390 px, le sur-titre (posé en absolu sous le fil) descend d'une ligne */
@media (max-width:430px){
  .v3 .v3-haut--page:has(.v3-ariane li:nth-child(4)){--suite-haut:calc(var(--header-h) + clamp(6px,1.6vh,18px) + 40px + clamp(8px,1.6vh,14px))}
  .v3 .v3-haut--page:has(.v3-ariane li:nth-child(4)) .v3-haut__zone--haut{padding-bottom:calc(36px + clamp(8px,1.6vh,14px))}
}
/* L9 : H2 de l'appel final propre (« Pour votre prochain événement ») ; les mots tournants sont une ligne décorative juste dessous, à l'aspect inchangé */
.v3 .v3-haut__titre--appel:not(.v3-haut__titre--roule){margin-bottom:0}
.v3 .v3-haut__titre--roule{margin-top:0}
