/* ==========================================================================
   SECUNDIS — feuilles des pages (liste, pilier, fiche lot, simulateur, contact,
   carte de France, chatbot). Depend des tokens de style.css.
   ========================================================================== */

/* ---------------------------------------------------------------- fil d'Ariane */
.ariane{font-size:var(--t-sm); color:var(--texte-2); padding:0 0 .75rem; overflow-wrap:anywhere}
.ariane a{text-decoration:none; color:var(--texte-2)}
.ariane a:hover{color:var(--vert)}
.ariane span{margin:0 .4rem; color:var(--trait)}

/* ---------------------------------------------------------------- heros des pages (pilier, liste, contact) */
.pilier-heros{background:linear-gradient(180deg,var(--papier) 0%,var(--blanc) 100%); padding:1.5rem 0 3rem}
.pilier-heros .enveloppe{max-width:880px; margin-left:auto; margin-right:auto}
.pilier-heros h1{font-size:var(--t-2xl); margin-bottom:.9rem}
.pilier-heros h1 .vert{color:var(--vert)}
.pilier-heros .chapeau{font-size:var(--t-md); color:var(--texte-2); margin:0}
.pilier-heros--court{padding-bottom:2rem}
.pilier-cta{display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1.5rem}

/* ---------------------------------------------------------------- chiffres cles pilier */
.pilier-chiffres{border-top:1px solid var(--trait); border-bottom:1px solid var(--trait); background:var(--blanc)}
.chiffres-grille{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1.25rem; padding:1.5rem 0}
.chiffre span{display:block; font-family:var(--titres); font-size:1.35rem; font-weight:700; color:var(--vert); line-height:1.2}
.chiffre b{display:block; font-family:var(--data); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--texte-2); font-weight:500; margin-top:.3rem}

/* ---------------------------------------------------------------- stock dans le pilier */
.pilier-stock{padding-top:2.5rem; background:var(--papier)}
.pilier-stock > .enveloppe > h2{font-size:var(--t-xl); margin-bottom:1.25rem}

/* ---------------------------------------------------------------- filtres */
.filtres{background:var(--blanc); border-top:1px solid var(--trait); border-bottom:1px solid var(--trait); padding:.9rem 0}
.filtres .enveloppe{display:flex; gap:.7rem; align-items:end; flex-wrap:wrap}
.filtre{display:flex; flex-direction:column; gap:.25rem; min-width:0}
.filtre label{font-family:var(--data); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--texte-2)}
.filtre select{border:1px solid var(--trait); border-radius:var(--r-sm); padding:.5rem .55rem; background:var(--blanc); font-size:.875rem; min-width:130px; color:var(--marine)}
.filtres .bouton{padding:.55rem 1.1rem; font-size:.875rem}
.filtres .effacer{margin-left:auto; color:var(--vert); font-weight:600; font-size:.85rem; text-decoration:none; padding-bottom:.55rem}

/* ---------------------------------------------------------------- resultats */
.resultats{padding:1.5rem 0 3.5rem; background:var(--papier)}
.resultats-tete{display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1.25rem; flex-wrap:wrap}
.compte{font-family:var(--data); font-size:.875rem; color:var(--texte-2)}
.compte b{color:var(--marine); font-size:1.05rem}
.page-info{font-family:var(--data); font-size:.75rem; color:var(--texte-2)}
.pagination{margin-top:2rem; display:flex; justify-content:center; gap:.35rem; flex-wrap:wrap}
.pagination .page-numbers{display:inline-flex; min-width:38px; height:38px; align-items:center; justify-content:center; padding:0 .7rem; border:1px solid var(--trait); border-radius:var(--r-sm); background:var(--blanc); color:var(--marine); text-decoration:none; font-size:.875rem}
.pagination .page-numbers.current{background:var(--marine); color:#fff; border-color:var(--marine)}
.pagination .page-numbers:hover{border-color:var(--vert); color:var(--vert)}
.pagination .dots{border:0; background:none}
.jeton--loue{background:var(--vert); color:#fff}
.jeton--vendu{background:var(--brique); color:#fff}

/* ---------------------------------------------------------------- corps editorial pilier */
.pilier-corps{padding:3.5rem 0}
.prose{max-width:780px}
.prose h2{font-size:var(--t-xl); margin:2.25rem 0 .75rem}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:var(--t-md); margin:1.5rem 0 .4rem}
.prose p,.prose li{color:var(--texte-2); font-size:1.0625rem}
.prose a{color:var(--vert)}
.pilier-faq{background:var(--papier); padding:3.5rem 0}
.pilier-faq .enveloppe{max-width:880px}
.pilier-faq h2{font-size:var(--t-xl); margin-bottom:1.25rem}
.pilier-faq details,.faq details{border:1px solid var(--trait); border-radius:var(--r-sm); margin-bottom:.65rem; padding:0 1.1rem; background:var(--blanc)}
.pilier-faq summary,.faq summary{font-family:var(--titres); font-weight:600; font-size:.95rem; padding:.9rem 0; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem}
.pilier-faq summary::after,.faq summary::after{content:"+"; color:var(--vert); font-size:1.2rem; flex-shrink:0}
.pilier-faq details[open] summary::after,.faq details[open] summary::after{content:"–"}
.pilier-faq details p,.faq details p{font-size:.9rem; color:var(--texte-2); padding-bottom:1rem; margin:0}

/* ---------------------------------------------------------------- fiche lot */
.fiche{padding:1.25rem 0 3rem}
.fiche-ariane{padding-bottom:0}
.fiche-grille{display:grid; grid-template-columns:1fr 390px; gap:2.5rem; align-items:start}
.fiche-etat{border-radius:var(--r-sm); padding:.9rem 1.1rem; margin:0 0 1.25rem; font-size:.95rem; background:#F3EAD9; color:var(--ambre)}
.fiche-etat--vendu{background:#F6E4DF; color:var(--brique)}
.fiche-etat a{color:inherit; font-weight:600}
.colonne-droite{position:sticky; top:106px; display:flex; flex-direction:column; gap:1.25rem}
.galerie{display:grid; grid-template-columns:2fr 1fr; grid-auto-rows:180px; gap:.6rem; border-radius:var(--r); overflow:hidden}
.photo{background:linear-gradient(135deg,var(--marine) 0%,var(--marine-2) 55%,var(--vert) 140%); position:relative; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.55); font-family:var(--data); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; background-size:cover; background-position:center}
.photo--une{grid-row:span 2}
.photo--une .badges{position:absolute; top:.9rem; left:.9rem; display:flex; gap:.5rem; z-index:1}
.photo .sans-photo{font-family:var(--titres); font-size:1.1rem; letter-spacing:0; text-transform:none; color:rgba(255,255,255,.8); padding:1rem; text-align:center}
.compteur{position:absolute; bottom:.8rem; right:.8rem; background:rgba(255,255,255,.92); color:var(--marine); font-family:var(--data); font-size:.72rem; padding:.3rem .7rem; border-radius:99px}
.fiche-titre{margin:1.5rem 0 .25rem; display:flex; justify-content:space-between; gap:1rem; align-items:start; flex-wrap:wrap}
.fiche-titre h1{font-size:var(--t-xl)}
.fiche-titre .ref{font-family:var(--data); font-size:.75rem; color:var(--texte-2); white-space:nowrap; padding-top:.6rem}
.sous-titre{color:var(--texte-2); margin-bottom:1.5rem}
.bloc{border-top:1px solid var(--trait); padding:2rem 0}
.bloc h2{font-size:var(--t-lg); margin-bottom:1.25rem}
.bloc h3{font-size:1rem; margin-bottom:.5rem}
.texte-2{font-size:.9375rem; color:var(--texte-2)}
.deux-colonnes{display:grid; grid-template-columns:1fr 1fr; gap:0 3rem}
.annonce{margin-top:1.5rem; color:var(--texte-2); font-size:.95rem}
.carte-prix{background:var(--blanc); border:1px solid var(--trait); border-radius:var(--r); box-shadow:0 10px 30px rgba(29,46,74,.08); padding:1.5rem}
.carte-prix .prix{font-family:var(--titres); font-size:2rem; font-weight:700}
.carte-prix .prix small{font-size:.85rem; font-weight:500; color:var(--texte-2)}
.carte-prix .renta-ligne{display:flex; justify-content:space-between; align-items:baseline; background:var(--sauge-15); border-radius:var(--r-sm); padding:.7rem .9rem; margin:.9rem 0 1.1rem}
.carte-prix .renta-ligne b{font-family:var(--titres); color:var(--vert); font-size:var(--t-lg)}
.carte-prix .renta-ligne span{font-size:.8rem; color:var(--texte-2)}
.carte-prix .bouton{width:100%; margin-bottom:.6rem}
.carte-prix .note{font-size:.72rem; color:var(--texte-2); margin:0; text-align:center}
.docs{display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; align-items:start}
.doc-libre{display:flex; align-items:center; gap:1rem; border:1px solid var(--trait); border-radius:var(--r-sm); padding:1rem 1.1rem; text-decoration:none; transition:border-color .15s; margin-bottom:.75rem}
.doc-libre:hover{border-color:var(--vert)}
.doc-libre--absent{opacity:.7}
.doc-ico{width:40px; height:40px; flex-shrink:0; border-radius:8px; background:var(--sauge-15); color:var(--vert); display:flex; align-items:center; justify-content:center; font-family:var(--data); font-size:.65rem; font-weight:500}
.doc-libre b{display:block; font-size:.95rem}
.doc-libre span{font-size:.78rem; color:var(--texte-2)}
.doc-libre .dl{margin-left:auto; color:var(--vert); font-weight:600; font-size:.85rem; white-space:nowrap}
.coffre{position:relative; border:1px solid var(--trait); border-radius:var(--r); overflow:hidden}
.coffre-liste{filter:blur(5px); user-select:none; pointer-events:none; padding:1rem 1.1rem}
.coffre-liste .spec{font-size:.875rem}
.coffre-voile{position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.92) 45%); display:flex; align-items:center; justify-content:center; padding:1.25rem}
.coffre-carte{background:var(--blanc); border:1px solid var(--trait); border-radius:var(--r-sm); box-shadow:0 10px 26px rgba(29,46,74,.14); padding:1.25rem; width:100%; max-width:330px; text-align:center}
.coffre-carte h3{font-size:1rem; margin-bottom:.35rem}
.coffre-carte p{font-size:.8rem; color:var(--texte-2); margin-bottom:.9rem}
.similaires{background:var(--papier); padding:3.5rem 0}
.similaires h2{font-size:var(--t-2xl); margin-bottom:2rem}
.cta-mobile{display:none; position:fixed; bottom:0; left:0; right:0; z-index:65; background:var(--blanc); border-top:1px solid var(--trait); padding:.7rem 1rem; gap:.6rem; box-shadow:0 -6px 20px rgba(29,46,74,.1)}
.cta-mobile .bouton{flex:1; padding:.7rem .5rem; font-size:.85rem}

/* ---------------------------------------------------------------- simulateur (fiche + page) */
.simulateur-fiche{background:var(--marine); border-radius:var(--r); color:#C9D6D0; padding:2rem}
.simulateur-fiche h2{color:#fff; font-size:var(--t-lg); margin-bottom:.35rem}
.simulateur-fiche .etiquette{color:var(--sauge)}
.simulateur-fiche .etiquette a{color:#fff}
.simulateur-fiche .sous{color:#9FB2AA; font-size:.9rem; margin-bottom:1.5rem}
.bloc-simulateur{padding:1rem 0 1.5rem}
.bloc-simulateur + .section{padding-top:1.5rem}
.sim-grille{display:grid; grid-template-columns:1fr 1.2fr; gap:2rem}
.sim-champs{display:flex; flex-direction:column; gap:1rem}
.simulateur-fiche--page .sim-champs{display:grid; grid-template-columns:1fr 1fr}
.sim-champ label{font-family:var(--data); font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; color:#9FB2AA; display:block; margin-bottom:.35rem}
.sim-champ select,.sim-champ input{width:100%; border:1px solid #39506A; border-radius:var(--r-sm); background:#22385C; color:#fff; padding:.6rem .7rem; font-size:.95rem}
.sim-basculeur{display:flex; border:1px solid #39506A; border-radius:var(--r-sm); overflow:hidden}
.sim-basculeur button{flex:1; background:transparent; border:0; color:#9FB2AA; padding:.55rem; cursor:pointer; font-size:.875rem; font-weight:500}
.sim-basculeur button.actif{background:var(--vert); color:#fff}
.sim-resultats{background:#22385C; border:1px solid #34507A; border-radius:var(--r-sm); padding:1.4rem}
.sim-total{display:flex; justify-content:space-between; align-items:baseline; border-top:1px solid #39506A; margin-top:1rem; padding-top:1rem; gap:1rem}
.sim-total span{font-size:.875rem; color:#9FB2AA}
.sim-total b{font-family:var(--titres); font-size:var(--t-xl); color:#fff; white-space:nowrap}
.sim-total b em{font-style:normal; font-size:.85rem; color:#9FB2AA; font-weight:400}
.simulateur-fiche .spec dt{color:#93A5B4}
.simulateur-fiche .spec .conduite{border-bottom-color:#39506A}
.simulateur-fiche .spec dd{color:#fff}
.sim-mention{font-size:.72rem; color:#7E92AC; margin:1rem 0 0}
.sim-pdf{margin-top:1.25rem; display:flex; gap:.6rem; flex-wrap:wrap}
.sim-pdf .bouton{padding:.6rem 1rem; font-size:.85rem}
.sim-pdf .bouton--fil{color:#fff; border-color:#fff}
.sim-pdf .bouton--fil:hover{background:#fff; color:var(--marine)}
.simulateur-fiche .barres{display:flex; flex-direction:column; gap:.65rem; margin-top:1rem}
.simulateur-fiche .barre{display:grid; grid-template-columns:150px 1fr 84px; align-items:center; gap:.7rem; font-size:.8rem}
.simulateur-fiche .barre .nom{color:#B9C7D6}
.simulateur-fiche .barre .rail{height:12px; background:rgba(255,255,255,.08); border-radius:99px; overflow:hidden}
.simulateur-fiche .barre .rempli{height:100%; border-radius:99px; background:#5E769B; transition:width .4s ease}
.simulateur-fiche .barre .val{font-family:var(--data); text-align:right; color:#D7E0EA; white-space:nowrap}
.simulateur-fiche .barre--nous .nom{color:#fff; font-weight:600}
.simulateur-fiche .barre--nous .rempli{background:var(--sauge)}
.simulateur-fiche .barre--nous .val{color:#fff; font-weight:600}

/* ---------------------------------------------------------------- contact */
.contact{padding:1rem 0 4rem}
.contact-grille{display:grid; grid-template-columns:1.1fr .9fr; gap:2.5rem; align-items:start}
.contact-form{background:var(--blanc); border:1px solid var(--trait); border-radius:var(--r); padding:2rem; box-shadow:0 10px 30px rgba(29,46,74,.06)}
.contact-form h2{font-size:var(--t-lg); margin-bottom:.35rem}
.contact-cote{display:flex; flex-direction:column; gap:1.25rem}
.contact-bloc{border:1px solid var(--trait); border-radius:var(--r); padding:1.5rem}
.contact-bloc--papier{background:var(--papier)}
.contact-bloc h3{font-size:var(--t-md); margin-bottom:.5rem}
.contact-bloc .bouton{margin-top:.75rem}
.coches{list-style:none; margin:0; padding:0}
.coches li{padding:.4rem 0 .4rem 1.6rem; position:relative; color:var(--texte-2); font-size:.95rem}
.coches li::before{content:"✓"; position:absolute; left:0; color:var(--vert); font-weight:700}

/* ---------------------------------------------------------------- carte de France (SVG) */
.carte--svg{padding:1.5rem 1.5rem 1.25rem}
.carte-france{position:relative}
.carte-france svg{display:block; width:100%; height:auto; overflow:visible}
.cf-region path{fill:url(#cf-fond); stroke:#7FA898; stroke-width:1.1; stroke-linejoin:round; transition:fill .18s, stroke .18s, transform .18s; transform-box:fill-box; transform-origin:center; cursor:pointer}
.cf-region path{fill:rgb(calc(34 + 10 * var(--i, 0)), calc(56 + 40 * var(--i, 0)), calc(92 + 0 * var(--i, 0)))}
.cf-region:hover path,.cf-region.actif path{fill:var(--vert); stroke:#fff; transform:scale(1.02)}
.cf-region--vide path{fill:#22385C; stroke:#3C5578; cursor:default}
.cf-region:focus-visible path{stroke:#fff; stroke-width:2}
.cf-pastille circle{fill:#fff; stroke:var(--vert); stroke-width:2; filter:drop-shadow(0 3px 6px rgba(0,0,0,.35)); transition:fill .18s}
.cf-pastille text{font-family:var(--titres); font-weight:700; font-size:12px; fill:var(--marine); pointer-events:none}
.cf-pastille.actif circle{fill:var(--vert)}
.cf-pastille.actif text{fill:#fff}
.cf-legende{position:absolute; left:0; bottom:0; background:rgba(255,255,255,.96); border-radius:8px; padding:.55rem .8rem; box-shadow:0 8px 20px rgba(0,0,0,.25); max-width:60%}
.cf-legende b{display:block; font-family:var(--titres); font-size:.85rem; color:var(--marine)}
.cf-legende span{font-size:.72rem; color:var(--texte-2)}
.cf-liste{list-style:none; margin:1rem 0 0; padding:0; display:flex; flex-wrap:wrap; gap:.35rem}
.cf-liste a{display:inline-flex; align-items:center; gap:.4rem; font-size:.72rem; color:#C9D6D0; text-decoration:none; border:1px solid rgba(255,255,255,.16); border-radius:99px; padding:.2rem .55rem; transition:background .15s, border-color .15s}
.cf-liste a span{font-family:var(--data); color:var(--sauge)}
.cf-liste a:hover,.cf-liste a.actif{background:var(--vert); border-color:var(--vert); color:#fff}
.cf-liste a:hover span,.cf-liste a.actif span{color:#fff}

/* ---------------------------------------------------------------- chatbot */
.chat-bulle--pulse{animation:pulse 1.2s ease 3}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.chat{position:fixed; right:1.4rem; bottom:1.4rem; z-index:90; width:min(390px, calc(100vw - 2rem)); height:min(600px, calc(100vh - 3rem)); background:var(--blanc); border:1px solid var(--trait); border-radius:14px; box-shadow:0 24px 60px rgba(29,46,74,.28); display:flex; flex-direction:column; overflow:hidden}
.chat[hidden]{display:none}
.chat-tete{background:var(--marine); color:#fff; padding:.9rem 1.1rem; display:flex; align-items:center; gap:.7rem}
.chat-tete .pastille{width:9px; height:9px; border-radius:50%; background:#6FCF97; flex-shrink:0}
.chat-tete b{font-family:var(--titres); font-size:.95rem; display:block}
.chat-tete span{display:block; font-size:.7rem; color:#9FB2AA}
.chat-tete button{margin-left:auto; background:none; border:0; color:#9FB2AA; font-size:1.15rem; cursor:pointer}
.chat-corps{flex:1; overflow-y:auto; padding:1rem; display:flex; flex-direction:column; gap:.6rem; background:var(--papier)}
.bulle{max-width:88%; padding:.65rem .85rem; border-radius:12px; font-size:.875rem; line-height:1.5; animation:apparait .25s ease}
.bulle--bot{background:var(--blanc); border:1px solid var(--trait); border-bottom-left-radius:4px; align-self:flex-start}
.bulle--moi{background:var(--vert); color:#fff; border-bottom-right-radius:4px; align-self:flex-end}
.bulle a{color:var(--vert); font-weight:600}
.bulle--typing{display:flex; gap:4px; padding:.8rem .9rem}
.bulle--typing span{width:6px; height:6px; border-radius:50%; background:var(--sauge); animation:typing 1s infinite}
.bulle--typing span:nth-child(2){animation-delay:.15s}.bulle--typing span:nth-child(3){animation-delay:.3s}
@keyframes typing{0%,80%,100%{opacity:.3}40%{opacity:1}}
@keyframes apparait{from{opacity:0; transform:translateY(6px)}to{opacity:1; transform:none}}
.chat-choix{display:flex; flex-wrap:wrap; gap:.45rem; align-self:flex-start; max-width:95%}
.chat-choix button{background:var(--blanc); border:1.5px solid var(--vert); color:var(--vert); border-radius:99px; padding:.42rem .85rem; font-size:.82rem; font-weight:600; cursor:pointer; transition:all .12s; text-align:left}
.chat-choix button:hover{background:var(--vert); color:#fff}
.chat-lots{display:flex; flex-direction:column; gap:.4rem; margin:.2rem 0}
.chat-lot{display:flex; gap:.6rem; align-items:center; text-decoration:none; color:var(--marine); border:1px solid var(--trait); border-radius:8px; padding:.4rem; transition:border-color .15s}
.chat-lot:hover{border-color:var(--vert)}
.chat-lot i{width:54px; height:44px; flex-shrink:0; border-radius:6px; background:linear-gradient(135deg,var(--marine),var(--vert) 160%); background-size:cover; background-position:center}
.chat-lot span{font-size:.78rem; line-height:1.3}
.chat-lot b{display:block; color:var(--vert)}
.chat-lot small{color:var(--texte-2)}
.chat-voir{margin:.4rem 0 0; font-size:.85rem}
.chat-form-zone{border-top:1px solid var(--trait); padding:.75rem; max-height:55%; overflow:auto; background:var(--blanc)}
.chat-form-zone[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.bulle,.chat-bulle--pulse{animation:none}}

/* ---------------------------------------------------------------- responsive */
@media (max-width:1080px){
  .fiche-grille{grid-template-columns:1fr 340px}
  .contact-grille{grid-template-columns:1fr}
}
@media (max-width:920px){
  .fiche-grille{grid-template-columns:1fr}
  .colonne-droite{position:static}
  .carte-prix .bouton{display:none}
  .cta-mobile{display:flex}
  .sim-grille,.docs,.deux-colonnes{grid-template-columns:1fr}
  .simulateur-fiche--page .sim-champs{grid-template-columns:1fr}
  .galerie{grid-template-columns:1fr; grid-auto-rows:220px}
  .photo:not(.photo--une){display:none}
  body.page-template-templatestemplate-single-lot-php{padding-bottom:64px}
  .filtres .effacer{margin-left:0}
}
@media (max-width:640px){
  .filtre{flex:1 1 46%}
  .filtre select{min-width:0; width:100%}
  .filtres .bouton{flex:1 1 100%}
  .simulateur-fiche{padding:1.25rem}
  .simulateur-fiche .barre{grid-template-columns:100px 1fr 74px}
  .chat{right:.5rem; bottom:.5rem; width:calc(100vw - 1rem); height:calc(100vh - 1rem)}
  .cf-legende{position:static; margin-top:.75rem; max-width:none}
}

/* ==========================================================================
   0.4 — liste (tête compacte, vues, chips), mode carte, fiche (galerie uniforme,
   tuiles clés, cadre infos, coffre), simulateur clair, lightbox, chat saisie, guides
   ========================================================================== */

/* ---- liste : tête compacte, moteur puis résultats */
.liste-tete{padding:1.25rem 0 .75rem; background:#fff}
.liste-tete h1{font-size:var(--t-xl); margin:0}
.liste-tete .vert{color:var(--vert)}
.filtres{position:sticky; top:0; z-index:40; box-shadow:0 8px 24px rgba(29,46,74,.06)}
.filtres .enveloppe{gap:.6rem}
.filtre select{border-radius:10px; background:#F7F9F8; min-width:118px}
.filtre--tri label{color:var(--vert)}
.filtre--tri select{background:var(--menthe,#EEF6F2); border-color:#BFD9CD; color:var(--vert-fonce); font-weight:600}
.filtre-tag{display:inline-block; font-size:.55rem; letter-spacing:.1em; background:var(--vert); color:#fff; border-radius:999px; padding:.05rem .4rem; margin-left:.3rem; vertical-align:middle}
.filtres .bouton{border-radius:999px; padding:.6rem 1.15rem}
#zone-liste.chargement .resultats{opacity:.45; transition:opacity .2s}
.resultats-compte{display:flex; align-items:center; gap:.75rem; flex-wrap:wrap}
.chip{display:inline-flex; align-items:center; gap:.4rem; background:var(--menthe); color:var(--vert); border-radius:999px; padding:.25rem .7rem; font-size:.78rem; text-decoration:none; font-weight:600}
.chip:hover{background:var(--vert); color:#fff}
.vues{display:inline-flex; border:1px solid var(--trait); border-radius:999px; overflow:hidden; background:#fff}
.vue{padding:.45rem .95rem; font-size:.85rem; text-decoration:none; color:var(--texte-2); font-weight:600}
.vue.actif{background:var(--marine); color:#fff}
.pagination .page-numbers{border-radius:999px}

/* ---- mode carte */
.mode-carte{display:grid; grid-template-columns:1.4fr .9fr; gap:1.25rem; align-items:start}
.mode-carte-svg{position:relative; background:#fff; border:1px solid var(--trait); border-radius:18px; box-shadow:var(--ombre-1); padding:1rem; min-height:420px}
.mode-carte-svg svg{width:100%; height:auto; display:block; overflow:hidden}
.mode-carte-svg{overflow:hidden}
.mode-carte--region .mode-carte-svg{display:flex; align-items:center; justify-content:center; min-height:0}
.mc-region{fill:#EEF3F0; stroke:#fff; stroke-width:1.4}
.mode-carte--region .mc-region{fill:#F3F6F4; stroke:#E3E9E6}
.mc-region--active{fill:#E1EEE7 !important; stroke:#7FA898 !important; stroke-width:1.2}
.mc-pin{cursor:pointer}
.mc-pin circle{fill:var(--vert); stroke:#fff; stroke-width:1.4; filter:drop-shadow(0 2px 4px rgba(29,46,74,.35)); transition:transform .15s; transform-box:fill-box; transform-origin:center}
.mc-pin:hover circle{fill:var(--marine); transform:scale(1.25)}
.mc-pin text{font-family:var(--titres); font-weight:700; font-size:5px; fill:#fff; pointer-events:none}
.mode-carte--region .mc-pin text{font-size:6px}
.mc-info{position:absolute; z-index:5; width:260px; background:#fff; border:1px solid var(--trait); border-radius:14px; box-shadow:var(--ombre-2); padding:.5rem; display:flex; flex-direction:column; gap:.35rem}
.mc-info[hidden]{display:none}
.mc-carte,.mc-item{display:flex; gap:.6rem; align-items:center; text-decoration:none; color:var(--marine); border:1px solid var(--trait); border-radius:10px; padding:.4rem; transition:border-color .15s, background .15s}
.mc-carte:hover,.mc-item:hover,.mc-item.actif{border-color:var(--vert); background:var(--menthe)}
.mc-carte i,.mc-item i{width:56px; height:44px; flex-shrink:0; border-radius:7px; background:linear-gradient(135deg,var(--marine),var(--vert) 160%); background-size:cover; background-position:center}
.mc-carte span,.mc-item span{font-size:.78rem; line-height:1.3}
.mc-carte b,.mc-item b{display:block; color:var(--vert)}
.mc-carte small,.mc-item small{color:var(--texte-2)}
.mc-plus{font-size:.75rem; color:var(--texte-2); margin:.2rem 0 0; text-align:center}
.mc-etat{position:absolute; left:1rem; bottom:.8rem; font-family:var(--data); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--texte-2); background:rgba(255,255,255,.9); padding:.25rem .55rem; border-radius:999px}
.mode-carte-liste{display:flex; flex-direction:column; gap:.4rem; max-height:640px; overflow:auto; padding-right:.25rem}

/* ---- fiche : galerie uniforme + lightbox */
.galerie{display:grid; gap:.6rem; border-radius:18px; overflow:hidden; grid-auto-rows:auto}
.galerie--une{grid-template-columns:1fr}
.galerie--deux{grid-template-columns:1fr 1fr}
.galerie--plus{grid-template-columns:2fr 1fr}
.galerie .photo{border:0; padding:0; width:100%; cursor:zoom-in; text-align:left; font:inherit; color:inherit}
.galerie .photo--une{aspect-ratio:16/9; height:auto; grid-row:auto}
.galerie--deux .photo--une{aspect-ratio:4/3}
.galerie-bande{display:grid; grid-template-rows:repeat(2,1fr); gap:.6rem}
.galerie--plus .galerie-bande{grid-template-columns:1fr 1fr}
.galerie-bande .photo{aspect-ratio:4/3; min-height:0}
.galerie-bande .plus{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(29,46,74,.55); color:#fff; font-family:var(--titres); font-weight:700; font-size:1.3rem}
.photo-seo{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none}
.galerie .photo:hover{filter:brightness(1.05)}
.lightbox{position:fixed; inset:0; z-index:200; background:rgba(13,22,38,.94); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:1rem}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0; max-width:min(1200px, 92vw); width:100%; height:min(72vh, 800px); display:flex; flex-direction:column; align-items:center; justify-content:center}
.lightbox img{max-width:100%; max-height:calc(100% - 2rem); height:auto; object-fit:contain; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.5); background:#000}
.lightbox figcaption{color:#C9D6D0; font-family:var(--data); font-size:.72rem; letter-spacing:.1em; margin-top:.6rem}
.lb-fermer,.lb-prev,.lb-next{position:absolute; background:rgba(255,255,255,.12); color:#fff; border:0; width:48px; height:48px; border-radius:50%; font-size:1.7rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s}
.lb-fermer:hover,.lb-prev:hover,.lb-next:hover{background:var(--vert)}
.lb-fermer{top:1rem; right:1rem}
.lb-prev{left:1rem; top:50%; transform:translateY(-50%)}
.lb-next{right:1rem; top:50%; transform:translateY(-50%)}
.lb-vignettes{display:flex; gap:.4rem; margin-top:1rem; max-width:92vw; overflow:auto; padding-bottom:.3rem}
.lb-vignettes button{width:72px; height:54px; flex-shrink:0; border:2px solid transparent; border-radius:8px; background-size:cover; background-position:center; cursor:pointer; opacity:.6; transition:opacity .15s, border-color .15s}
.lb-vignettes button.actif,.lb-vignettes button:hover{opacity:1; border-color:var(--sauge)}

/* ---- fiche : tuiles clés + cadre infos */
.tuiles-cles{display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; margin-bottom:1rem}
.tuile-cle{background:#fff; border:1px solid var(--trait); border-radius:16px; padding:1rem 1.1rem; box-shadow:var(--ombre-1); min-width:0}
.tuile-cle-l{display:block; font-family:var(--data); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--texte-2); margin-bottom:.3rem}
.tuile-cle b{display:block; font-family:var(--titres); font-size:1.5rem; line-height:1.1; color:var(--marine); overflow-wrap:anywhere}
.tuile-cle > small{display:block; font-size:.75rem; color:var(--texte-2); margin-top:.3rem}
.tuile-cle--vert{background:var(--degrade-vert); border-color:transparent}
.tuile-cle--vert .tuile-cle-l,.tuile-cle--vert b,.tuile-cle--vert > small{color:#fff}
.tuile-cle--vert .tuile-cle-l,.tuile-cle--vert > small{opacity:.85}
.cadre-infos{background:#F7F9F8; border:1px solid var(--trait); border-radius:16px; padding:1.1rem 1.25rem}
.specs--cadre .spec{display:grid; grid-template-columns:minmax(120px, 42%) 1fr; gap:.6rem; align-items:start; padding:.5rem 0; border-bottom:1px dashed var(--trait); font-size:.9rem}
.specs--cadre .spec:last-child{border-bottom:0}
.specs--cadre dt{color:var(--texte-2)}
.specs--cadre dd{margin:0; text-align:right; font-family:var(--data); font-size:.82rem; color:var(--marine); overflow-wrap:anywhere; white-space:normal; line-height:1.4}
.specs--cadre dd small{font-family:var(--corps); color:var(--texte-2)}
.specs--cadre dd.ok{color:var(--vert); font-weight:600}
.specs--cadre dd.attention{color:var(--ambre); font-weight:600}
.spec--long dd{text-align:left}

/* ---- fiche : coffre « dossier complet » */
.coffre{position:relative; border:1px solid var(--trait); border-radius:18px; overflow:hidden; background:#fff; min-height:380px}
.coffre-docs{display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; padding:1rem; filter:blur(3px); user-select:none; pointer-events:none}
.coffre-doc{display:flex; gap:.7rem; align-items:flex-start; border:1px solid var(--trait); border-radius:12px; padding:.7rem}
.coffre-apercu{width:54px; height:70px; flex-shrink:0; background:#fff; border:1px solid #DDE4E1; border-radius:4px; padding:8px 6px; display:flex; flex-direction:column; gap:4px; box-shadow:0 2px 6px rgba(29,46,74,.12)}
.coffre-apercu span{display:block; height:3px; border-radius:2px; background:#B9C7D6}
.coffre-apercu span:nth-child(1){width:60%; background:var(--marine)}
.coffre-apercu span:nth-child(4){width:70%}
.coffre-apercu span:nth-child(6){width:50%}
.coffre-doc-txt b{display:block; font-size:.85rem}
.coffre-doc-txt span{display:block; font-size:.72rem; color:var(--texte-2)}
.coffre-doc-txt small{display:block; font-family:var(--data); font-size:.6rem; color:var(--texte-2); margin-top:.25rem}
.coffre-chiffres{grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,1fr); gap:.3rem 1.5rem; background:#F7F9F8; border-radius:12px; padding:.9rem 1rem}
.coffre-chiffres .etiquette{grid-column:1 / -1; margin-bottom:.2rem}
.coffre-chiffres .spec{display:flex; justify-content:space-between; font-size:.85rem; padding:.25rem 0}
.coffre-chiffres dd{margin:0; font-family:var(--data)}
.flou{color:var(--marine); letter-spacing:.05em}
.coffre-voile{position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.25) 0%,rgba(255,255,255,.88) 55%,rgba(255,255,255,.96) 100%); display:flex; align-items:flex-end; justify-content:center; padding:1.25rem}
.coffre-carte{background:#fff; border:1px solid var(--trait); border-radius:18px; box-shadow:var(--ombre-2); padding:1.5rem 1.6rem; width:100%; max-width:440px; text-align:center; position:relative}
.coffre-cadenas{display:inline-flex; width:46px; height:46px; border-radius:50%; background:var(--menthe); align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:.6rem}
.coffre-carte h3{font-size:1.2rem; margin-bottom:.4rem}
.coffre-carte p{font-size:.9rem; color:var(--texte-2); margin-bottom:1rem}
.coffre-carte .bouton{width:100%}
.coffre-note{font-family:var(--data); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; color:var(--texte-2); margin:.7rem 0 0 !important}
.doc-libre--plan{margin-top:1rem; border-radius:14px}
.lien-hypotheses{background:none; border:0; color:var(--vert); font-weight:600; cursor:pointer; padding:0; text-decoration:underline dotted; font-size:.85rem}
.lien-hypotheses:hover{color:var(--vert-fonce)}

/* ---- simulateur : thème clair, arrondi, ludique */
.simulateur-fiche{background:linear-gradient(160deg,#FFFFFF 0%,#F1F6F3 100%); color:var(--texte-2); border:1px solid var(--trait); border-radius:22px; padding:2rem; box-shadow:var(--ombre-1)}
.simulateur-fiche h2{color:var(--marine)}
.simulateur-fiche .etiquette{color:var(--vert)}
.simulateur-fiche .etiquette a{color:var(--marine)}
.simulateur-fiche .sous{color:var(--texte-2)}
.sim-champ label{color:var(--texte-2)}
.sim-champ select,.sim-champ input{border:1px solid var(--trait); background:#fff; color:var(--marine); border-radius:12px; padding:.75rem .8rem; font-size:1rem; box-shadow:inset 0 1px 2px rgba(29,46,74,.04)}
.sim-champ select:focus,.sim-champ input:focus{border-color:var(--vert); outline:none; box-shadow:0 0 0 3px rgba(44,125,92,.15)}
.sim-basculeur{border:1px solid var(--trait); border-radius:999px; background:#fff; padding:.25rem}
.sim-basculeur button{color:var(--texte-2); border-radius:999px; padding:.55rem}
.sim-basculeur button.actif{background:var(--degrade-vert); color:#fff; box-shadow:0 4px 12px rgba(44,125,92,.3)}
.sim-resultats{background:var(--degrade-marine); border:0; border-radius:20px; padding:1.5rem; color:#fff; box-shadow:0 18px 40px rgba(29,46,74,.25)}
.simulateur-fiche .spec dt{color:#B9C7D6}
.simulateur-fiche .spec .conduite{border-bottom-color:rgba(255,255,255,.18)}
.simulateur-fiche .spec dd{color:#fff}
.sim-total{border-top:1px solid rgba(255,255,255,.18); align-items:center}
.sim-total span{color:#C9D6D0}
.sim-total b{font-size:2.4rem; color:#fff}
.sim-total b em{color:#9FB2AA}
.sim-mention{color:var(--texte-2)}
.sim-pdf .bouton--fil{color:var(--marine); border-color:var(--marine)}
.sim-pdf .bouton--fil:hover{background:var(--marine); color:#fff}
.simulateur-fiche .barre .nom{color:var(--texte-2)}
.simulateur-fiche .barre .rail{background:#E4EAE7; height:14px}
.simulateur-fiche .barre .rempli{background:#B9C7D6; border-radius:999px}
.simulateur-fiche .barre .val{color:var(--marine)}
.simulateur-fiche .barre--nous .nom{color:var(--marine)}
.simulateur-fiche .barre--nous .rempli{background:var(--degrade-vert)}
.simulateur-fiche .barre--nous .val{color:var(--vert)}

/* ---- pilier : chiffre phare */
.chiffre--phare span{font-size:1.65rem}
.pilier-heros{background:radial-gradient(700px 300px at 10% 0%, rgba(88,153,125,.14), transparent 60%), linear-gradient(180deg,#F5F8F6 0%,#FBFCFB 100%)}

/* ---- chatbot : saisie dans le fil, bouton recommencer */
.chat{border-radius:20px}
.chat-tete{gap:.6rem}
#chat-reinit{margin-left:auto; background:rgba(255,255,255,.1); border:0; color:#fff; width:30px; height:30px; border-radius:50%; cursor:pointer; font-size:1rem; display:flex; align-items:center; justify-content:center}
#chat-reinit:hover{background:var(--vert)}
#chat-fermer{margin-left:0}
.chat-saisie{display:flex; gap:.4rem; align-self:stretch; background:#fff; border:1.5px solid var(--vert); border-radius:999px; padding:.25rem .25rem .25rem .9rem; animation:apparait .25s ease}
.chat-saisie input{flex:1; border:0; outline:none; font-size:.9rem; background:transparent; min-width:0; color:var(--marine)}
.chat-saisie input.erreur{color:var(--brique)}
.chat-saisie button{width:36px; height:36px; border-radius:50%; border:0; background:var(--degrade-vert); color:#fff; cursor:pointer; font-size:.9rem; flex-shrink:0}
.chat-choix button{border-radius:999px}
.chat-bulle{border-radius:999px; padding:.9rem 1.4rem; background:var(--degrade-vert); box-shadow:0 12px 30px rgba(34,98,72,.45)}

/* ---- guides */
.guide-corps{padding:1rem 0 4rem}
.guide-grille{display:grid; grid-template-columns:1fr 320px; gap:3rem; align-items:start}
.guide-cote{position:sticky; top:96px; display:flex; flex-direction:column; gap:1rem}
.guide-bloc{background:#fff; border:1px solid var(--trait); border-radius:16px; padding:1.2rem 1.3rem}
.guide-bloc--marine{background:var(--degrade-marine); color:#fff; border:0}
.guide-bloc--marine h3{color:#fff; font-size:1.05rem; margin:.3rem 0 .9rem}
.guide-bloc--marine .etiquette{color:var(--sauge)}
.guide-bloc--marine .bouton{width:100%; margin-bottom:.5rem}
.sommaire{margin:0; padding-left:1.2rem; font-size:.88rem}
.sommaire li{margin-bottom:.35rem}
.sommaire a{color:var(--texte-2); text-decoration:none}
.sommaire a:hover{color:var(--vert)}
.liens-guides{list-style:none; margin:0; padding:0; font-size:.9rem}
.liens-guides li{padding:.4rem 0; border-bottom:1px dashed var(--trait)}
.liens-guides a{text-decoration:none; color:var(--marine)}
.liens-guides a:hover{color:var(--vert)}
.guides--index{grid-template-columns:1fr 1fr}
.prose h2[id]{scroll-margin-top:110px}

@media (max-width:1080px){.mode-carte{grid-template-columns:1fr}.mode-carte-liste{max-height:none; flex-direction:row; overflow-x:auto}.mc-item{min-width:260px}.guide-grille{grid-template-columns:1fr}.guide-cote{position:static}}
@media (max-width:760px){.tuiles-cles{grid-template-columns:1fr}.coffre-docs{grid-template-columns:1fr}.coffre-chiffres{grid-template-columns:1fr}.galerie--plus{grid-template-columns:1fr}.galerie--plus .galerie-bande{grid-template-columns:repeat(4,1fr); grid-template-rows:auto}.galerie--deux{grid-template-columns:1fr}.specs--cadre .spec{grid-template-columns:1fr}.specs--cadre dd{text-align:left}.guides--index{grid-template-columns:1fr}}

/* ==========================================================================
   LIVRAISON 0.5.1 (15/09/2026)
   ========================================================================== */

/* ---- 3. moteur complet : grille alignee sur deux lignes, textes jamais tronques */
.filtres .enveloppe{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:.7rem .9rem; align-items:end}
.filtre select{width:100%; min-width:0; text-overflow:ellipsis; font-size:.9rem; padding:.62rem .6rem}
.filtres .bouton{width:100%; justify-self:stretch}
.filtres .effacer{margin-left:0; justify-self:end; padding-bottom:.6rem; grid-column:4}
.filtres form > input[type=hidden]{display:none}
@media (max-width:920px){.filtres .enveloppe{grid-template-columns:repeat(2, minmax(0,1fr))}.filtres .effacer{grid-column:2}}
@media (max-width:640px){.filtres{position:static}}

/* ---- 18. fiche : informations du lot lisibles, valeur mise en valeur */
.cadre-infos{padding:.4rem 1.25rem .6rem}
.specs--cadre .spec{grid-template-columns:1fr; gap:.15rem; padding:.7rem 0; border-bottom:1px solid #E6ECE9}
.specs--cadre dt{font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--texte-2); font-family:var(--data)}
.specs--cadre dd{text-align:left; font-family:var(--corps); font-size:1rem; font-weight:600; color:var(--marine); line-height:1.35}
.specs--cadre dd small{display:block; font-weight:400; font-size:.85rem; color:var(--texte-2); margin-top:.1rem}
.specs--cadre dd b{font-weight:700}
.deux-colonnes{display:grid; grid-template-columns:1fr 1fr; gap:0 2.5rem}
@media (max-width:640px){.deux-colonnes{grid-template-columns:1fr}.specs--cadre .spec{padding:.55rem 0}}

/* ---- 20. coffre : « Fiche technique » lisible, comme un fichier a portee de main */
.coffre-docs{filter:none; pointer-events:none}
.coffre-doc{filter:blur(3px); opacity:.85}
.coffre-chiffres{filter:blur(3px)}
.coffre-doc--net{filter:none; opacity:.72; background:#fff; border-color:rgba(44,125,92,.45); box-shadow:0 8px 22px rgba(29,46,74,.12); position:relative; z-index:0}
.coffre-voile{z-index:1}
.coffre-doc--net .coffre-doc-txt b{font-size:.98rem; color:var(--marine)}
.coffre-doc--net .coffre-doc-txt span{color:var(--texte-2)}
.coffre-doc--net .coffre-doc-txt small{color:var(--vert); font-weight:600}

.coffre-doc--net .coffre-apercu{border-color:var(--sauge)}
.coffre-voile{background:linear-gradient(180deg,rgba(255,255,255,.15) 0%,rgba(255,255,255,.75) 32%,rgba(255,255,255,.94) 55%)}

/* ---- pages institutionnelles (mentions, confidentialite, a propos, marche secondaire) */
.page-contenu .enveloppe{max-width:860px}
.legal{font-size:.98rem}
.legal h2{font-size:1.2rem; margin:2rem 0 .5rem; color:var(--marine)}
.legal h3{font-size:1.02rem; margin:1.2rem 0 .3rem}
.legal .encart{background:#F7F9F8; border:1px solid var(--trait); border-radius:14px; padding:1rem 1.2rem; margin:1rem 0}
.legal .encart p:last-child{margin:0}
.legal dl{display:grid; grid-template-columns:200px 1fr; gap:.35rem 1rem; margin:0 0 1rem}
.legal dt{color:var(--texte-2)}
.legal dd{margin:0; color:var(--marine); font-weight:500}
.legal table{width:100%; border-collapse:collapse; font-size:.92rem; margin:.5rem 0 1.25rem}
.legal th,.legal td{text-align:left; padding:.55rem .6rem; border-bottom:1px solid var(--trait); vertical-align:top}
.legal th{font-family:var(--data); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--texte-2); font-weight:500}
.legal .maj{font-family:var(--data); font-size:.72rem; color:var(--texte-2); letter-spacing:.08em; text-transform:uppercase}
.legal .droits{display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; margin:1rem 0}
.legal .droits div{background:#fff; border:1px solid var(--trait); border-radius:12px; padding:.8rem .9rem; font-size:.9rem}
.legal .droits b{display:block; color:var(--marine); margin-bottom:.15rem}
.legal .obf{color:var(--vert); font-weight:600}
@media (max-width:640px){.legal dl{grid-template-columns:1fr; gap:0 0}.legal dt{margin-top:.5rem}.legal .droits{grid-template-columns:1fr}}

/* qui sommes-nous */
.apropos-heros{background:radial-gradient(900px 400px at 10% 0%, rgba(88,153,125,.16), transparent 60%), linear-gradient(180deg,#F5F8F6 0%,#FBFCFB 100%); padding:2.5rem 0 2.5rem}
.apropos-heros h1{font-size:clamp(2rem, 3.4vw, 2.8rem); max-width:16em; margin-bottom:.8rem}
.apropos-heros .chapeau{font-size:1.1rem; color:var(--texte-2); max-width:38em}
.apropos-chiffres{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:2rem}
.apropos-chiffres div{background:#fff; border:1px solid var(--trait); border-radius:16px; padding:1.1rem 1.2rem; box-shadow:var(--ombre-1)}
.apropos-chiffres b{display:block; font-family:var(--titres); font-size:2rem; color:var(--vert); line-height:1}
.apropos-chiffres span{font-size:.9rem; color:var(--texte-2)}
.apropos-section{padding:3.5rem 0}
.apropos-section--papier{background:linear-gradient(180deg,#F4F7F5 0%,#FBFCFB 100%)}
.apropos-grille{display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center}
.apropos-grille h2{font-size:clamp(1.5rem, 2.3vw, 2rem); margin-bottom:.9rem}
.apropos-grille p{color:var(--texte-2)}
.schema{background:#fff; border:1px solid var(--trait); border-radius:18px; box-shadow:var(--ombre-2); padding:1.2rem}
.schema svg{width:100%; height:auto; display:block}
.schema figcaption{font-family:var(--data); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--texte-2); margin-top:.7rem; text-align:center}
.frise{position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin-top:2rem}
.frise::before{content:""; position:absolute; left:2%; right:2%; top:11px; height:2px; background:linear-gradient(90deg,var(--sauge-15),var(--vert))}
.frise div{position:relative; padding-top:2rem}
.frise div::before{content:""; position:absolute; top:4px; left:0; width:16px; height:16px; border-radius:50%; background:#fff; border:3px solid var(--vert)}
.frise b{display:block; font-family:var(--data); color:var(--vert); font-size:.8rem; letter-spacing:.08em; margin-bottom:.3rem}
.frise h3{font-size:1rem; margin-bottom:.3rem}
.frise p{font-size:.9rem; color:var(--texte-2); margin:0}
.criteres{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.5rem}
.critere{background:#fff; border:1px solid var(--trait); border-radius:16px; padding:1.2rem 1.2rem 1.1rem; box-shadow:var(--ombre-1)}
.critere .num{font-family:var(--data); color:var(--vert); font-size:.72rem; letter-spacing:.14em}
.critere h3{font-size:1.02rem; margin:.4rem 0 .35rem}
.critere p{font-size:.9rem; color:var(--texte-2); margin:0}
.equipe{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:1.5rem}
.equipe div{background:#fff; border:1px solid var(--trait); border-radius:16px; padding:1.2rem; text-align:center}
.equipe .avatar{width:64px; height:64px; border-radius:50%; margin:0 auto .7rem; background:linear-gradient(145deg,#E6F0EB,#C9E3D5); display:flex; align-items:center; justify-content:center; font-family:var(--titres); font-weight:700; color:var(--vert); font-size:1.2rem}
.equipe b{display:block; color:var(--marine)}
.equipe span{font-size:.86rem; color:var(--texte-2)}
.recompenses{display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.25rem}
.recompense{flex:1 1 260px; background:#fff; border:1px solid var(--trait); border-radius:16px; padding:1rem 1.1rem; display:flex; gap:.9rem; align-items:center}
.recompense .medaille{width:48px; height:48px; border-radius:50%; flex-shrink:0; background:linear-gradient(145deg,#F5E3B0,#D9B25A); display:flex; align-items:center; justify-content:center; font-family:var(--titres); font-weight:700; color:#7A5A12}
.recompense b{display:block; color:var(--marine)}
.recompense span{font-size:.86rem; color:var(--texte-2)}
.apropos-cta{background:var(--degrade-marine); color:#fff; border-radius:20px; padding:2.2rem 2rem; display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap}
.apropos-cta h2{color:#fff; font-size:1.5rem; margin-bottom:.3rem}
.apropos-cta p{color:#C9D6D0; margin:0}
@media (max-width:1080px){.apropos-chiffres,.equipe{grid-template-columns:1fr 1fr}.frise{grid-template-columns:1fr 1fr 1fr}.frise::before{display:none}.frise div{padding-top:1.6rem}}
@media (max-width:760px){.apropos-grille{grid-template-columns:1fr; gap:1.5rem}.criteres,.frise{grid-template-columns:1fr}.apropos-section{padding:2.5rem 0}}
@media (max-width:520px){.apropos-chiffres,.equipe{grid-template-columns:1fr}}

/* marche secondaire enrichi : schemas et telechargement */
.prose .schema{margin:1.5rem 0 2rem}
.prose .chiffres-marche{display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; margin:1.5rem 0}
.prose .chiffres-marche div{background:#F7F9F8; border:1px solid var(--trait); border-radius:14px; padding:.9rem 1rem}
.prose .chiffres-marche b{display:block; font-family:var(--titres); font-size:1.6rem; color:var(--vert); line-height:1.1}
.prose .chiffres-marche span{font-size:.86rem; color:var(--texte-2)}
.prose .atouts{display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; margin:1.25rem 0 2rem; padding:0; list-style:none}
.prose .atouts li{background:#fff; border:1px solid var(--trait); border-radius:14px; padding:.9rem 1rem; font-size:.92rem; color:var(--texte-2); margin:0}
.prose .atouts li b{display:block; color:var(--marine); margin-bottom:.15rem}
.prose .retenir{background:var(--degrade-marine); color:#C9D6D0; border-radius:18px; padding:1.6rem 1.6rem 1.2rem; margin:2rem 0}
.prose .retenir h2{color:#fff; margin:0 0 1rem; font-size:1.3rem}
.prose .retenir ol{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin:0; padding:0; list-style:none; counter-reset:ret}
.prose .retenir li{counter-increment:ret; font-size:.9rem; margin:0}
.prose .retenir li::before{content:counter(ret); display:block; font-family:var(--titres); font-size:2rem; color:#9FD5BC; line-height:1; margin-bottom:.3rem}
.prose .retenir li b{display:block; color:#fff; margin-bottom:.25rem}
.telecharger{display:flex; gap:1rem; align-items:center; background:#fff; border:1px solid var(--trait); border-radius:16px; padding:1rem 1.2rem; text-decoration:none; color:var(--marine); box-shadow:var(--ombre-1); margin:1.5rem 0; transition:border-color .15s, transform .15s}
.telecharger:hover{border-color:var(--vert); transform:translateY(-2px)}
.telecharger .pdf{flex-shrink:0; width:52px; height:64px; border-radius:6px; background:#fff; border:1px solid var(--trait); display:flex; align-items:center; justify-content:center; font-family:var(--data); font-size:.7rem; color:#B4232C; font-weight:700; box-shadow:0 3px 8px rgba(29,46,74,.12)}
.telecharger b{display:block}
.telecharger span{font-size:.88rem; color:var(--texte-2)}
.telecharger .dl{margin-left:auto; color:var(--vert); font-weight:600; white-space:nowrap}
@media (max-width:760px){.prose .chiffres-marche,.prose .atouts,.prose .retenir ol{grid-template-columns:1fr}.telecharger{flex-wrap:wrap}.telecharger .dl{margin-left:0}}

/* 18/09 : defilement infini des resultats ; la pagination classique reste pour les robots */
.charger-suite{display:flex; flex-direction:column; align-items:center; gap:.5rem; margin:1.5rem 0 .5rem}
.charger-suite.chargement .bouton{opacity:.6; pointer-events:none}
.charger-etat{font-size:.8rem; color:var(--texte-2)}
.pagination--seo{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%)}
/* bail sur deux lignes dans les cartes */
.lot .spec--bail{flex-wrap:wrap; align-items:baseline}
.lot .spec--bail .conduite{min-width:1rem}
.lot .spec--bail dd{white-space:normal; text-align:right; max-width:70%; line-height:1.35; overflow-wrap:anywhere}
.lot .spec--bail dd small{display:block; font-size:.9em; color:var(--texte-2)}

/* mentions legales : methode de calcul des simulateurs (18/09) */
.legal .methode{margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--trait)}
.legal .methode-avert{background:#FFF8EC; border:1px solid #F1D9A6; border-left:4px solid var(--ambre,#D9A441); border-radius:12px; padding:1rem 1.2rem; font-size:.92rem; line-height:1.55; margin:1rem 0 1.5rem}
.legal .methode-grille{display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin:.75rem 0 1.25rem}
.legal .methode-grille div{background:#fff; border:1px solid var(--trait); border-radius:14px; padding:.9rem 1rem; font-size:.9rem; color:var(--texte-2); line-height:1.5}
.legal .methode-grille b{display:block; color:var(--marine); margin-bottom:.2rem; font-family:var(--titres)}
.legal .methode ul{color:var(--texte-2); font-size:.95rem}
@media (max-width:640px){.legal .methode-grille{grid-template-columns:1fr}}

/* ==========================================================================
   18/09 — mobile : navigation fluide (70 % du trafic)
   ========================================================================== */
.filtres-plus{display:none}
@media (max-width:640px){
  /* saisie : 16px = pas de zoom automatique iOS ; cibles tactiles >= 44px */
  input,select,textarea,button,.bouton{font-size:16px !important}
  .bouton,.filtres .bouton,.sim2-pilules button,.chat-choix button{min-height:44px}
  select{min-height:44px}
  /* en-tete plus compact */
  .entete .enveloppe{min-height:60px; gap:.75rem}
  .marque img{height:32px}
  .nav.ouvert{padding:.75rem 1rem 1rem; max-height:calc(100dvh - 60px); overflow:auto}
  .nav.ouvert .bouton{width:100%; justify-content:center}
  /* moteur d'accueil : la carte de France laisse la place a la liste des regions */
  .carte-france svg{display:none}
  .cf-legende{display:none}
  .cf-liste{display:flex; flex-wrap:wrap; gap:.4rem}
  .cf-liste a{border:1px solid var(--trait); border-radius:999px; padding:.35rem .7rem; font-size:.8rem; background:#fff}
  /* filtres : 3 premiers visibles, le reste derriere « Plus de filtres » */
  .filtres .enveloppe{gap:.6rem}
  .filtres .filtre:nth-of-type(n+4){display:none}
  .filtres--ouvert .filtre:nth-of-type(n+4){display:block}
  .filtres-plus{display:block; flex:1 1 46%; background:#fff; border:1px solid var(--trait); border-radius:999px; padding:.6rem .8rem; font-weight:600; color:var(--marine)}
  .filtres .bouton{flex:1 1 46%}
  .filtres .effacer{flex:1 1 100%; text-align:center}
  /* resultats */
  .resultats-tete{flex-direction:column; align-items:flex-start; gap:.6rem}
  .mode-carte-svg{padding:.5rem; min-height:0}
  .mode-carte-svg svg{max-height:56vh}
  .mode-carte-liste{flex-direction:column; overflow-x:visible; max-height:none}
  .mc-item{min-width:0}
  /* chatbot plein ecran */
  .chat{right:0; bottom:0; left:0; top:0; width:100vw; width:100dvw; height:100vh; height:100dvh; border-radius:0; border:0; padding-bottom:env(safe-area-inset-bottom)}
  .chat-corps{-webkit-overflow-scrolling:touch}
  .chat-bulle{right:.75rem; bottom:calc(.75rem + env(safe-area-inset-bottom)); padding:.7rem 1rem; font-size:.9rem; max-width:calc(100vw - 1.5rem)}
  body.page-template-templatestemplate-single-lot-php .chat-bulle{bottom:calc(72px + env(safe-area-inset-bottom))}
  /* popins : plein ecran, defilement dans la boite */
  .sortie{padding:0; align-items:flex-end}
  .sortie-boite,.sortie-boite--form{max-width:none; border-radius:18px 18px 0 0; max-height:calc(100dvh - .5rem); padding:1.2rem 1rem calc(1rem + env(safe-area-inset-bottom))}
  .sortie-boite h2{font-size:1.2rem}
  .sec-form__form{grid-template-columns:1fr}
  .sec-form__meeting-frame,.sec-form__meeting-frame iframe{min-height:420px}
  /* fiche lot : galerie, tuiles, simulateur */
  .fiche-titre h1{font-size:1.45rem}
  .tuiles-cles{grid-template-columns:1fr 1fr}
  .tuile-cle:first-child{grid-column:1 / -1}
  .sim2-hero-val b{font-size:2.4rem}
  .sim2-tuiles{grid-template-columns:1fr}
  .sim2-comp{gap:.6rem}
  .sim2-comp-val{font-size:.85rem}
  /* accueil */
  .heros{padding:1.5rem 0 2rem}
  .preuve{padding:1rem}
  .comparatif{padding:1rem}
  .barre{grid-template-columns:90px 1fr 48px; font-size:.85rem}
  .barre .nom--logo img{height:34px}
  .exploitants .defile{gap:.4rem}
  /* pied */
  .pied-bas{flex-direction:column; gap:.3rem; text-align:center}
}
@media (max-width:400px){
  .filtres .filtre,.filtres-plus,.filtres .bouton{flex-basis:100%}
  .sim2-pilules button{padding:.45rem .6rem}
}

.carte-prix .prix-ttc{font-family:var(--data); font-size:.8rem; color:var(--texte-2); margin-top:-.2rem}
.carte-prix .prix-ttc small{font-size:.68rem}

/* fiche lot : les chiffres cles — tableau a deux colonnes, libelles alignes */
.chiffres-cles{margin-top:1.25rem; background:#fff; border:1px solid var(--trait); border-radius:18px; padding:1.4rem 1.6rem 1.2rem}
.chiffres-cles h3{font-family:var(--data); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--vert); margin:0 0 .6rem; font-weight:600}
.cles{margin:0; display:grid; grid-template-columns:1fr 1fr; gap:0 3rem}
.cles > div{display:grid; grid-template-columns:170px 1fr; align-items:baseline; gap:1rem; padding:.62rem 0; border-bottom:1px solid var(--trait)}
.cles > div:last-child,.cles > div:nth-last-child(2):nth-child(odd){border-bottom:0}
.cles dt{color:var(--texte-2); font-size:.88rem; line-height:1.35}
.cles dd{margin:0; color:var(--marine); font-size:.95rem; line-height:1.45; text-align:right}
.cles dd b{font-weight:700}
.cles dd small{display:block; color:var(--texte-2); font-size:.78rem; line-height:1.35; margin-top:.1rem}
.cles dd.ok{color:var(--vert); font-weight:600} .cles dd.attention{color:var(--brique); font-weight:600}
.cles-dpe{display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; justify-content:flex-end}
.cles-dpe small{display:inline; margin:0}
.dpe-lettre{display:inline-flex; width:30px; height:30px; border-radius:8px; color:#fff; font-weight:700; align-items:center; justify-content:center; font-size:.95rem; box-shadow:inset 0 -2px 0 rgba(0,0,0,.15)}
.dpe-lettre--vide{background:#C9D1CC}
@media (max-width:1080px){ .cles{grid-template-columns:1fr; gap:0} .cles > div{border-bottom:1px solid var(--trait) !important} .cles > div:last-child{border-bottom:0 !important} }
@media (max-width:640px){ .chiffres-cles{padding:1.1rem 1rem .8rem} .cles > div{grid-template-columns:1fr; gap:.1rem; padding:.55rem 0} .cles dt{font-family:var(--data); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase} .cles dd{text-align:left} .cles-dpe{justify-content:flex-start} }

/* ==========================================================================
   19/09 — passe mobile complète (tunnel de lead, cartes, résultats, simulateur, guides)
   ========================================================================== */
@media (max-width:640px){
  /* --- fiche lot : galerie, tuiles, coffre --- */
  .galerie{grid-template-columns:1fr; gap:.4rem}
  .galerie .photo--une{aspect-ratio:4/3; border-radius:14px}
  .galerie-vignettes{display:grid; grid-template-columns:repeat(4,1fr); gap:.4rem}
  .galerie-vignettes .photo{aspect-ratio:1; border-radius:10px}
  .galerie .plus{font-size:.8rem}
  .fiche-tete{gap:.75rem}
  .carte-prix{position:static; width:100%}
  .carte-prix .prix{font-size:1.9rem}
  .coffre{padding:1rem}
  .coffre-docs{grid-template-columns:1fr}
  .coffre-voile{padding:1rem}
  .coffre-voile h3{font-size:1.15rem}
  /* --- cartes de lots --- */
  .lots--liste{grid-template-columns:1fr}
  .lot-photo{aspect-ratio:16/10}
  .lot .spec dd{max-width:60%}
  /* --- résultats : barre d'actions accessible au pouce --- */
  .resultats-tete{position:sticky; top:60px; z-index:5; background:var(--papier); padding:.5rem 0; margin:0 -1rem; padding-left:1rem; padding-right:1rem}
  .vues{width:100%; display:grid; grid-template-columns:1fr 1fr}
  .vues button{justify-content:center}
  /* --- simulateur --- */
  .sim2-reglage-tete{flex-wrap:wrap; gap:.35rem}
  .sim2-jauge{font-size:.6rem}
  .sim2-flux li{font-size:.82rem}
  .sim2-flux li::before{display:none}
  .sim2-flux li{justify-content:space-between}
  .sim2-comp-tags span{font-size:.64rem}
  .sim2-comp-logo{width:40px; height:40px}
  .sim2-comp-logo svg{width:40px; height:40px}
  /* --- formulaires de lead : tunnel complet au pouce --- */
  .sec-form__form{grid-template-columns:1fr !important}
  .sec-form__field--half{grid-column:1 / -1}
  .sec-pills{display:grid; grid-template-columns:1fr 1fr; gap:.4rem}
  .sec-pills button{width:100%; justify-content:center}
  .sec-form button[type=submit],.sec-form__submit{position:sticky; bottom:calc(.4rem + env(safe-area-inset-bottom)); width:100%; z-index:3}
  .sec-form__meeting-frame,.sec-form__meeting-frame iframe{min-height:520px}
  .sortie-boite--agenda .sec-form__meeting-frame,.sortie-boite--agenda .sec-form__meeting-frame iframe{min-height:70vh}
  .sec-tel{flex-wrap:nowrap}
  /* --- guides et pages éditoriales --- */
  .gd-heros h1,.gl-heros h1{font-size:1.6rem}
  .gd-infos span{font-size:.72rem}
  .gd-prose h2::before{width:24px; height:24px; font-size:.75rem; margin-right:.4rem}
  .gd-prose table{display:block; overflow-x:auto; white-space:nowrap}
  .gl-schema{padding:.5rem}
  .gl-cles dt{font-size:1.1rem}
  .ap-tri-lot{min-height:0}
  /* --- pied de page et chatbot --- */
  .pied-cols{grid-template-columns:1fr; gap:1.25rem}
  .chat-corps{padding-bottom:.5rem}
  .chat-saisie{padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}
}
/* tablettes : deux colonnes plutôt qu'une grille serrée */
@media (min-width:641px) and (max-width:900px){
  .lots--liste{grid-template-columns:1fr 1fr}
  .cles{grid-template-columns:1fr}
  .sim2-grille{grid-template-columns:1fr}
  .gd-grille{grid-template-columns:1fr}
}
/* admin (back-office) sur mobile : tableaux du module Leads lisibles */
@media (max-width:782px){
  .toplevel_page_secundis-leads .widefat,.settings_page_secundis .widefat{display:block; overflow-x:auto; white-space:nowrap}
  .toplevel_page_secundis-leads .form-table td,.settings_page_secundis .form-table td{display:block; width:100%}
  .toplevel_page_secundis-leads input[type=text],.settings_page_secundis input[type=text],.settings_page_secundis input[type=url]{max-width:100%}
}

/* ==========================================================================
   21/09 — corrections mobile relevées sur iPhone
   ========================================================================== */
@media (max-width:900px){
  /* --- carte de France : visible sur mobile (elle était masquée), réduite --- */
  .carte-france svg{display:block !important; max-width:100%; height:auto; max-height:46vh; margin:0 auto}
  .cf-legende{display:flex !important; flex-wrap:wrap; gap:.3rem; justify-content:center; font-size:.7rem}
  .carte-france{padding-bottom:.5rem}
  .cf-liste{margin-top:.6rem}
}
@media (max-width:380px){
  /* très petits écrans : la liste des régions suffit */
  .carte-france svg{display:none !important}
}
@media (max-width:900px){
  /* --- menu déroulant : contours des boutons bien visibles --- */
  .nav.ouvert{background:#fff; box-shadow:0 18px 40px rgba(29,46,74,.18)}
  .nav.ouvert .bouton{background:#fff; border:2px solid var(--marine); color:var(--marine); box-shadow:none}
  .nav.ouvert .bouton--plein{background:var(--vert); border-color:var(--vert); color:#fff}
  .nav-tous-lots{display:block; font-weight:700; font-size:1.05rem; color:var(--marine); padding:.65rem 0; border-bottom:1px solid var(--trait); margin-bottom:.35rem; text-decoration:none}
  .nav-tous-lots::after{content:' →'; color:var(--vert)}
}
@media (min-width:901px){ .nav-tous-lots{display:none} }

@media (max-width:640px){
  /* --- comparatif du simulateur : une ligne = un bloc lisible (plus de chevauchement) --- */
  .sim2-comp{grid-template-columns:44px 1fr; grid-template-areas:'logo nom' 'rail rail' 'val val' 'tags tags'; row-gap:.45rem; padding:.85rem .9rem}
  .sim2-comp-nom b{font-size:.98rem; line-height:1.25}
  .sim2-comp-nom b .jeton{display:inline-block; margin-top:.15rem}
  .sim2-comp-nom span{font-size:.8rem; line-height:1.35}
  .sim2-comp-val{align-items:flex-start; text-align:left; font-size:1rem}
  .sim2-comp-val small{font-size:.75rem}
  .sim2-comp-tags{display:flex; flex-wrap:wrap; gap:.3rem}
  .sim2-comp-tags span{display:inline-block; border-radius:999px; padding:.22rem .6rem; font-size:.7rem; line-height:1.3; white-space:normal; max-width:100%}
  .sim2-comp-rail{height:10px}
  /* le logo Secundis du comparatif d'accueil ne doit pas passer sous la barre */
  .barre{grid-template-columns:80px 1fr 52px; gap:.5rem; align-items:center}
  .barre .nom--logo img{height:26px !important; max-width:80px}
  .barre .nom{font-size:.82rem; line-height:1.25}
  /* --- formulaires : le bandeau d'aide ne doit plus chevaucher les pastilles --- */
  .sec-form__note,.sec-form__hint,.sim-mention{position:static !important; margin:.35rem 0 0; font-size:.72rem; line-height:1.35; letter-spacing:0}
  .sec-pills{margin-top:.2rem}
  .sec-form__field{min-width:0}
  /* --- fiche lot : la barre d'action du bas ne masque plus le contenu --- */
  body.secundis-lot{padding-bottom:78px}
  .barre-action-lot{padding-bottom:calc(.6rem + env(safe-area-inset-bottom))}
  /* --- chatbot : masqué sur les fiches lot (la barre d'action suffit) --- */
  body.secundis-lot .chat-bulle{display:none !important}
}

/* ==========================================================================
   21/09 (2e passe) — corrections mobile
   ========================================================================== */
@media (max-width:900px){
  /* sommaire collant des guides : les entrées se chevauchaient */
  .gl-sommaire .enveloppe{display:flex; gap:.4rem; overflow-x:auto; -webkit-overflow-scrolling:touch; padding:.4rem 1rem}
  .gl-sommaire a{flex:0 0 auto; white-space:nowrap; background:var(--papier); border:1px solid var(--trait)}
  .gl-tete h2,.gd-prose h2{overflow-wrap:anywhere}
}
@media (max-width:640px){
  /* ---- comparatif du simulateur : une carte par placement, plus de colonne étroite ---- */
  .sim2-comp{display:block; padding:1rem; border:1px solid var(--trait); border-radius:16px; background:#fff}
  .sim2-comp + .sim2-comp{margin-top:.6rem}
  .sim2-comp--nous{background:var(--menthe,#EEF6F2); border-color:#CFE3D8}
  .sim2-comp-logo{float:left; width:38px; height:38px; margin:0 .6rem .2rem 0}
  .sim2-comp-logo svg{width:38px; height:38px}
  .sim2-comp-nom{display:block; min-height:38px}
  .sim2-comp-nom b{display:block; font-size:1rem}
  .sim2-comp-nom span{display:block; font-size:.8rem; margin-top:.1rem}
  .sim2-comp-val{display:flex; flex-direction:row; align-items:baseline; gap:.5rem; justify-content:flex-start; clear:both; margin-top:.5rem; font-size:1.05rem}
  .sim2-comp-val small{font-size:.8rem}
  .sim2-comp-rail{margin-top:.45rem; height:10px}
  .sim2-comp-tags{margin-top:.6rem; display:flex; flex-wrap:wrap; gap:.35rem}
  .sim2-comp-tags span{display:inline-block; width:auto; max-width:100%; white-space:normal; border-radius:10px; padding:.3rem .6rem; font-size:.74rem; line-height:1.3; background:#F1F4F3}
  .sim2-comp--nous .sim2-comp-tags span{background:#fff}
  /* ---- chatbot : la dernière réponse reste au-dessus de la zone système ---- */
  .chat-corps{padding-bottom:1.5rem}
  .chat-choix{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}
  .chat-choix button{margin-bottom:.35rem}
  /* ---- coffre des documents : un seul document flouté sous la fiche technique ---- */
  .coffre-docs .coffre-doc:nth-child(n+3){display:none}
  .coffre-docs{gap:.5rem}
  .coffre-doc--net{opacity:.85}
  .coffre-voile{position:static; margin-top:.75rem; padding:1rem; background:#fff; border:1px solid var(--trait); border-radius:16px; backdrop-filter:none}
  .coffre-docs{filter:none}
  .coffre-docs .coffre-doc:not(.coffre-doc--net){filter:blur(3px); opacity:.5; max-height:110px; overflow:hidden}
}

/* ==========================================================================
   21/09 (3e passe) — mobile : formulaires, simulateur, coffre, filtres, menu
   ========================================================================== */
@media (max-width:900px){
  /* 8. « Vendre mon LMNP » retiré du menu sur mobile */
  .nav .nav-vendre{display:none !important}
}
@media (max-width:640px){
  /* 9. plus aucun texte superposé dans les formulaires : la mention décorative est sortie du flux visuel */
  .sec-form__eyebrow,.sec-form__meeting-sub,.sec-form .mention,.sec-form__legend{position:static !important; transform:none !important; letter-spacing:0 !important; font-size:.7rem; line-height:1.35; color:var(--texte-2); margin:.2rem 0 .5rem}
  .sec-form__title + .sec-form__eyebrow{margin-top:-.2rem}
  .sec-form__form{row-gap:.9rem}
  .sec-form__field{position:relative}
  .sec-form label{display:block}
  .sec-pills{margin-top:.15rem}
  .sec-check{display:flex; gap:.5rem; align-items:flex-start; line-height:1.4}
  .sec-check input{margin-top:.15rem; flex:0 0 auto}
  .sec-consent,.sec-consent p{margin:.3rem 0}
  /* 5. simulateur : plus de colonne étroite, chaque ligne occupe la largeur */
  .sim2-grille,.sim2-colonnes,.sim2-detail{grid-template-columns:1fr !important; display:block}
  .sim2-bloc,.sim2-carte,.sim2-flux,.sim2-tuiles{width:100%; max-width:none}
  .sim2-flux li{display:flex; justify-content:space-between; gap:.75rem; flex-wrap:wrap}
  .sim2-flux li span:last-child{margin-left:auto; white-space:nowrap}
  .sim2-hero{display:block; text-align:left}
  .sim2-hero-val{display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap}
  .sim2-jeton,.jeton{white-space:normal; display:inline-block; max-width:100%}
  .sim2-comp-nom b .jeton{margin:.15rem 0 0}
  /* 6. coffre : la fiche technique et le bouton se suivent */
  .coffre{padding:1rem .9rem}
  .coffre-docs{display:block}
  .coffre-docs .coffre-doc{margin-bottom:.5rem}
  .coffre-docs .coffre-doc:nth-child(n+2){display:none}
  .coffre-cta{margin-top:.75rem}
  .coffre-voile{margin-top:.6rem; padding:1rem .9rem; text-align:center}
  .coffre-voile h3{font-size:1.1rem; margin:.2rem 0 .35rem}
  .coffre-voile p{font-size:.88rem; margin-bottom:.7rem}
  .coffre-voile .bouton{width:100%; justify-content:center}
  /* 7. tous les filtres visibles par défaut sur mobile */
  .filtres .filtre:nth-of-type(n+4){display:block}
  .filtres-plus{display:none}
  .filtres .filtre{flex:1 1 100%}
  /* 4. bouton de sortie sous l'agenda */
  .sec-form__retour{display:block; width:100%; margin-top:.75rem}
}
@media (min-width:641px){ .sec-form__retour{display:inline-flex; margin-top:.75rem} }

/* ==========================================================================
   Choix multiples (21/09, v3) — mots cliquables, sans case a cocher ni liste native
   ========================================================================== */
.multi{position:relative}
.multi > summary{list-style:none; cursor:pointer; background:#fff; border:1px solid var(--trait); border-radius:12px; padding:.7rem 2.2rem .7rem .9rem; min-height:46px; display:flex; align-items:center; color:var(--marine); position:relative}
.multi > summary::-webkit-details-marker{display:none}
.multi > summary::after{content:''; position:absolute; right:.9rem; top:50%; width:8px; height:8px; border-right:2px solid var(--texte-2); border-bottom:2px solid var(--texte-2); transform:translateY(-70%) rotate(45deg); transition:transform .15s}
.multi[open] > summary::after{transform:translateY(-20%) rotate(-135deg)}
.multi[open] > summary{border-color:var(--marine)}
.multi--actif > summary{border-color:var(--vert); color:var(--vert); font-weight:600}
.multi-resume{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.multi-panneau{position:absolute; z-index:40; top:calc(100% + 4px); left:0; right:0; min-width:220px; background:#fff; border:1px solid var(--trait); border-radius:14px; box-shadow:0 18px 40px rgba(29,46,74,.16); padding:.3rem; max-height:min(58vh,340px); overflow:auto}
.multi-mot{display:flex; align-items:center; gap:.5rem; padding:.6rem .7rem; border-radius:10px; cursor:pointer; user-select:none;
  /* meme typographie que les anciennes options de menu : on annule le style des libelles de filtre */
  font-family:var(--corps, inherit) !important; font-size:.95rem !important; font-weight:400; letter-spacing:normal !important; text-transform:none !important; color:var(--marine) !important; line-height:1.35}
.multi-mot .multi-libelle{font:inherit; letter-spacing:normal; text-transform:none}
.multi-mot input{position:absolute; opacity:0; width:0; height:0; pointer-events:none}
.multi-mot:hover{background:var(--papier)}
.multi-mot .multi-nb{margin-left:auto; font-family:var(--data); font-size:.78rem; color:var(--texte-2)}
.multi-mot--pris,.multi-mot:has(input:checked){color:var(--vert) !important; font-weight:700; background:var(--menthe,#EEF6F2)}
.multi-mot--pris .multi-nb,.multi-mot:has(input:checked) .multi-nb{color:var(--vert)}
.multi-mot--pris::before,.multi-mot:has(input:checked)::before{content:'✓'; font-weight:700; margin-right:-.1rem}
.multi-mot--vide{opacity:.35}
.multi-actions{display:flex; align-items:stretch; margin-top:.2rem; border-top:1px solid var(--trait)}
.multi-ok{display:none}
.multi-effacer{display:block; width:100%; padding:.55rem; border:0; background:none; color:var(--texte-2); font:inherit; cursor:pointer}
.multi-effacer:hover{color:var(--brique)}
@media (max-width:640px){
  /* le panneau reste ancre SOUS son champ (il s'affichait en bas de l'ecran, tres loin du filtre) */
  .multi-panneau{position:absolute; left:0; right:0; top:calc(100% + 4px); bottom:auto; max-height:52vh}
  .multi-mot{padding:.75rem .8rem; font-size:1rem}
  /* deux actions : « OK » ferme la liste (sinon on reste bloqué sur le même champ), « Tout effacer » à droite */
  .multi-ok{display:block; flex:1 1 50%; padding:.8rem; border:0; background:none; font:inherit; font-weight:700; color:var(--vert); cursor:pointer}
  .multi-actions{position:relative}
  .multi-actions::after{content:''; position:absolute; left:50%; top:.5rem; bottom:.5rem; width:1px; background:var(--trait)}
  .multi-effacer{flex:1 1 50%; width:auto; padding:.8rem}
}
