/* Thème clair uniquement. Bleu République #000091 comme unique accent, réservé
   aux actions : ni bandeau ni décor ne doit le consommer. */
:root{
  --ink:#161721; --ink2:#4B4F5C; --ink3:#767B89; --ink4:#9BA0AD;
  --line:#DFDBD0; --line2:#EBE8DF;
  /* Bleu relevé au colorimètre sur la porte cochère de l'illustration :
     R31 V46 B103. Le marine de l'interface et celui de l'asset coïncident. */
  --blue:#1F2E67; --blue2:#2E4189;
  --red:#E1000F;
  /* Contraste de remplissage, jamais d'élévation : ni ombre ni bordure sur
     les surfaces. Mais la teinte vient de la MARQUE, pas d'un gris neutre :
     page bleu très pâle, cartes blanches. --surface2 est toujours l'inverse
     de la surface qui l'entoure. */
  /* Page crème, cartes blanches. L'illustration conserve son propre crème
     (#F3E9DF, celui des rendus madom) et devient une tuile arrondie : pas de
     détourage, donc ombre portée d'origine conservée et aucun matte
     approximatif sur les arbres et les lampadaires. */
  --page:#F0EEE7; --surface:#fff; --surface2:#F0EEE7;
  --ok:#18753C; --okbg:#E4F5E9;
  /* Une seule échelle de rayons : 20 pour les surfaces, 12 pour les éléments
     internes, pilule pour tout ce qui est cliquable. */
  --r:20px; --r-in:12px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--page);color:var(--ink);
  line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px}

/* ---------- en-tête ---------- */
/* Filet marine en tête : convention des sites institutionnels. */
header{background:var(--surface);border-top:4px solid var(--blue);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.nav{height:60px;display:flex;align-items:center;gap:18px}
/* Pas de marque tricolore : accoler un drapeau a "Registre Public" suggere un
   site de l'Etat, ce que les mentions legales dementent. Le registre visuel
   institutionnel vient du bleu et de la typographie. */
.logo{font-weight:760;font-size:1.14rem;letter-spacing:-.028em;white-space:nowrap}
/* Monochrome : depuis que le marine est sombre, un "Public" marine sur un
   "Registre" quasi-noir ne se distingue plus. Le mot-symbole prend une seule
   couleur, celle de la marque. */
.logo{color:var(--blue)}
.logo em{font-style:normal;font-weight:550}
.nav form{flex:1;max-width:430px;position:relative}
.nav input{width:100%;border:1px solid transparent;border-radius:99px;padding:10px 15px 10px 38px;
  font-size:.87rem;font-family:inherit;background:var(--surface2);color:var(--ink);
  transition:border-color .16s,background .16s}
.nav input::placeholder{color:var(--ink4)}
.nav input:focus{outline:none;border-color:var(--blue);background:var(--surface)}
.nav .mag{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:14px;height:14px;
  border:1.6px solid var(--ink4);border-radius:50%}
.nav .mag:after{content:"";position:absolute;right:-5px;bottom:-3px;width:6px;height:1.6px;background:var(--ink4);transform:rotate(45deg)}
.nav .cta{margin-left:auto;font-size:.85rem;font-weight:600;color:#fff;background:var(--blue);border-radius:99px;
  padding:10px 19px;white-space:nowrap;transition:background .16s}
.nav .cta:hover{background:var(--blue2)}
@media(max-width:900px){.nav form{display:none}}
@media(max-width:620px){.nav .cta{display:none}}

/* ---------- fraîcheur des sources : ambiant, jamais un bandeau ----------
   Le bleu est réservé aux actions. Cette ligne est une note de bas de page
   remontée en haut, pas une annonce. */
.fresh{display:flex;flex-wrap:wrap;gap:3px 22px;padding:11px 0 0;font-size:.76rem;color:var(--ink4)}
.fresh b{font-weight:550;color:var(--ink3)}

/* ---------- hero ---------- */
.hero{background:var(--surface);border-radius:var(--r);margin-top:11px;padding:24px 26px;
  display:grid;grid-template-columns:minmax(190px,auto) minmax(0,1fr) auto;gap:20px 30px;align-items:center}
/* Filet vertical : ancre les deux blocs et supprime l'effet de vide au centre. */
.hero-id{min-width:0;align-self:center;padding-right:28px;border-right:1px solid var(--line2)}
h1{font-size:clamp(1.45rem,3vw,1.9rem);font-weight:770;letter-spacing:-.034em;line-height:1.1}
.hero-sub{margin-top:6px;font-size:.9rem;color:var(--ink2);display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.badge{display:inline-block;font-size:.7rem;font-weight:600;border-radius:99px;padding:3px 11px;background:var(--okbg);color:var(--ok)}
.hero-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:.88rem;min-width:0}
.hero-facts dt{color:var(--ink3);white-space:nowrap}
.hero-facts dd{font-weight:500;overflow-wrap:anywhere}
.hero-facts dd.addr-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
/* Action discrete contre l'adresse du recap : contour, pas de remplissage,
   pour ne pas concurrencer le bouton plein de la carte Adresse. */
.mini{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;border:none;
  background:var(--surface2);color:var(--blue);border-radius:99px;padding:4px 11px;font-size:.74rem;
  font-weight:600;white-space:nowrap;transition:background .16s,color .16s}
.mini:hover{background:var(--blue);color:#fff}
.hero-acts{display:grid;gap:8px;justify-items:stretch}
/* Le bouton vit DANS une carte blanche : il contraste par le remplissage
   teinté, soit l'inverse de son contenant. */
.ghost{display:flex;align-items:center;justify-content:center;gap:8px;border:none;background:var(--surface2);
  color:var(--blue);border-radius:99px;padding:10px 18px;font-size:.83rem;font-weight:600;white-space:nowrap;
  transition:background .16s,color .16s}
.ghost:hover{background:var(--blue);color:#fff}
@media(max-width:980px){
  .hero{grid-template-columns:1fr;gap:16px}
  .hero-id{padding-right:0;border-right:none;padding-bottom:16px;border-bottom:1px solid var(--line2)}
  .hero-acts{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){.hero{padding:18px}.hero-acts{grid-template-columns:1fr}}

/* ---------- grille de sections ----------
   align-items par défaut (stretch) : les cartes d'une même rangée partagent la
   hauteur de la plus haute. Le corps absorbe le surplus pour que les pieds de
   carte restent alignés en bas. */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 0 44px}
.full{grid-column:1/-1}
@media(max-width:980px){.grid{grid-template-columns:1fr;gap:14px}}

/* ---------- carte de section : titre identique partout ---------- */
.card{background:var(--surface);border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column}
.card>h2{font-size:1.04rem;font-weight:690;letter-spacing:-.026em;padding:18px 24px 12px;
  display:flex;align-items:center;gap:11px}
.card>h2:before{content:"";width:4px;height:17px;border-radius:99px;background:var(--blue);flex-shrink:0}
.card>h2 .n{margin-left:auto;font-size:.74rem;font-weight:500;color:var(--ink3);letter-spacing:0}
.body{padding:0 24px 20px;flex:1}
.foot{padding:0 24px 20px;margin-top:auto;background:var(--surface);display:flex;flex-wrap:wrap;gap:9px}
.foot .ghost{background:var(--surface2)}
.foot .ghost:hover{background:var(--blue);color:#fff}

/* ---------- listes clé / valeur avec copie ---------- */
.kv{display:grid;grid-template-columns:172px 1fr;gap:0 16px;font-size:.89rem}
.kv dt{color:var(--ink3);padding:7px 0;border-bottom:1px solid var(--line2)}
.kv dd{font-weight:500;padding:7px 0;border-bottom:1px solid var(--line2);overflow-wrap:anywhere;
  display:flex;align-items:baseline;gap:8px}
.kv dt:last-of-type,.kv dd:last-of-type{border-bottom:none}
.kv .na{color:var(--ink4);font-weight:400}
.kv dd{flex-wrap:wrap}
/* Libellé secondaire d'un code (intitulé officiel de la sous-classe NAF). */
.q{color:var(--ink3);font-weight:400;font-size:.94em}
/* Marqueur d'inférence : ce champ n'est pas publié au registre, il est déduit.
   Sans ce marquage, une déduction se lit comme une donnée officielle. */
.der{font-size:.71rem;font-weight:600;color:var(--ink3);background:var(--surface2);border-radius:99px;
  padding:1px 8px;cursor:help;white-space:nowrap}
/* Contrôle réussi auprès d'une source externe (VIES pour la TVA). */
.vf{font-size:.71rem;font-weight:600;color:var(--ok);background:var(--okbg);border-radius:99px;
  padding:1px 8px;white-space:nowrap}
/* Texte long replié, sans JavaScript. */
.more{display:inline}
.more summary{display:inline;cursor:pointer;list-style:none}
.more summary::-webkit-details-marker{display:none}
.more summary:after{content:"Voir plus";color:var(--blue);font-weight:600;font-size:.92em;margin-left:5px}
.more[open] summary:after{content:"Voir moins"}
.more[open] .el{display:none}
.el{color:var(--ink4)}
.mono{font-family:ui-monospace,Menlo,monospace;font-size:.92em;letter-spacing:-.03em}
.cp{border:none;background:none;padding:2px 6px;margin:-2px 0;cursor:pointer;color:var(--ink4);font-family:inherit;
  font-size:.72rem;font-weight:600;border-radius:99px;flex-shrink:0;transition:color .14s,background .14s}
.cp:hover{color:var(--blue);background:var(--surface2)}
.cp.done{color:var(--ok)}
@media(max-width:520px){
  .kv{grid-template-columns:1fr;gap:0}
  .kv dt{padding:9px 0 0;border-bottom:none;font-size:.81rem}
  .kv dd{padding:1px 0 9px}
}

/* ---------- carte adresse : élément primaire, bouton immédiatement dessous ---------- */
/* Aucun aplat bleu pâle. La primauté de cette carte vient de sa position, de
   sa largeur et du seul bouton plein de la page, pas d'une teinte. */
.addr{background:var(--surface)}
.addr-v{font-size:1.14rem;font-weight:560;letter-spacing:-.022em;line-height:1.15;overflow-wrap:anywhere;
  display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.addr-cta{display:inline-flex;align-items:center;gap:7px;background:var(--blue);color:#fff;border-radius:99px;
  padding:12px 22px;font-size:.88rem;font-weight:600;margin-top:15px;
  transition:background .16s,transform .16s}
.addr-cta:hover{background:var(--blue2)}
.addr-cta:active{transform:translateY(1px)}

/* ---------- deux cartes soeurs : la donnée, puis l'annonce ----------
   L'annonce est une CARTE À PART, au même rang qu'Identité ou Activité, et non
   une moitié de la carte adresse. Elle porte un libellé explicite : le site se
   déclare indépendant dans ses mentions légales, donc un encart commercial non
   signalé serait une pratique trompeuse au sens du code de la consommation. */
.alarme{font-size:.88rem;color:var(--ink3);margin-top:2px;line-height:1.45}
.registre-meta{margin-top:15px;display:grid;gap:0;font-size:.88rem}
.registre-meta div{display:flex;gap:16px;padding:7px 0;border-bottom:1px solid var(--line2)}
.registre-meta div:last-child{border-bottom:none}
.registre-meta dt{color:var(--ink3);min-width:132px}
.registre-meta dd{font-weight:500}
.addr .body{display:flex;flex-direction:column}
.addr .addr-cta{margin-top:auto;align-self:flex-start}

/* ---- carte annonce ---- */
.pub>h2 .tag{margin-left:auto;font-size:.66rem;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink4)}
/* Sans panneau teinte : le fond du rendu est blanc pur, donc le multiply le
   fait disparaitre directement dans la carte blanche, et le rendu porte sa
   propre ombre depuis la reparation du fichier. */
.pub .vis{position:relative;height:152px;margin:2px 0 10px}
.pub .vis img{position:relative;z-index:1;display:block;width:164px;height:161px;
  object-fit:contain;mix-blend-mode:multiply}
.pub h3{font-size:1.04rem;font-weight:720;letter-spacing:-.026em;line-height:1.25}
/* Rythme vertical egal a l'oeil, pas dans le code : l'accroche est en
   interligne 1,25 et les puces en 1,4, donc a marge egale le premier blanc
   parait plus serre. 9 en haut contre 7 entre les puces compense le
   demi-interligne des puces. La marge basse garantit le blanc avant le bouton,
   que margin-top:auto reduisait a zero quand les deux cartes sont a hauteur
   egale. */
.pub ul{list-style:none;margin:9px 0 15px;display:grid;gap:7px;font-size:.86rem;color:var(--ink2);line-height:1.4}
.pub li{padding-left:16px;position:relative}
.pub li:before{content:"";position:absolute;left:0;top:.5em;width:5px;height:5px;border-radius:99px;background:var(--blue)}
.pub b{font-weight:650;color:var(--ink)}

.pub .cta{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:auto;
  background:var(--blue);color:#fff;border-radius:99px;padding:12px 18px;font-size:.87rem;font-weight:640;
  transition:background .16s}
.pub .cta:hover{background:var(--blue2)}
.pub .body{display:flex;flex-direction:column}

/* ---- emplacement publicitaire reel ----
   Ici le visuel EST la publicite : accroche, argument, mention legale et
   marque sont dans le fichier, donc la creative est reutilisable telle quelle
   en display Google ou en Meta Ads. Le HTML ne porte que l'etiquette, la
   mention repetee en texte lisible et le bouton. */
.creative{display:block;border-radius:var(--r-in);overflow:hidden;background:#F9F6F2}
.creative img{display:block;width:100%;height:auto}
.pub .fine{font-size:.7rem;color:var(--ink4);margin:10px 0 15px;line-height:1.5}
.pub>h2 .tag{margin-left:auto}
.src{font-size:.73rem;color:var(--ink4);margin-top:11px;line-height:1.45;max-width:44ch}
@media(max-width:520px){.nudge img{width:98px;height:143px}.nudge{gap:14px}}

/* ---------- dirigeants ---------- */
.pers{display:flex;justify-content:space-between;gap:14px;align-items:baseline;font-size:.9rem;padding:9px 0}
.pers+.pers{border-top:1px solid var(--line2)}
.pers:first-child{padding-top:0}
.pers:last-child{padding-bottom:0}
.pers .nm{font-weight:550}
.pers .yr{color:var(--ink4);font-weight:400;font-size:.85em}
.pers .rl{color:var(--ink3);font-size:.83rem;text-align:right;white-space:nowrap}
.objet{font-size:.89rem;color:var(--ink2)}

.links{font-size:.86rem;color:var(--ink2)}
.links a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
footer{background:var(--blue);color:rgb(255 255 255/.68);padding:30px 0 42px;font-size:.82rem;
  line-height:1.7;margin-top:10px}
footer a{text-decoration:underline;text-underline-offset:2px;color:rgb(255 255 255/.82)}
footer a:hover{color:#fff}
footer b{color:#fff;font-weight:650}

/* ---------- contact dirigeant et déradiation ----------
   Repris de la version precedente des fiches, restyle sur le nouveau systeme :
   remplissage plutot que bordure, pilules pour les actions, aucune ombre. */
.reveal{display:inline-flex;align-items:center;gap:7px;border:none;cursor:pointer;font:inherit;
  font-size:.83rem;font-weight:620;color:var(--blue);background:var(--surface2);
  border-radius:99px;padding:9px 16px;transition:background .16s,color .16s}
.reveal:hover{background:var(--blue);color:#fff}
.reveal:disabled{opacity:.55;cursor:default}
.reveal-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.reveal-form input{flex:1;min-width:190px;height:42px;font:inherit;font-size:.88rem;padding:0 15px;
  border:1.5px solid transparent;border-radius:99px;background:var(--surface2);color:var(--ink)}
.reveal-form input:focus{outline:none;border-color:var(--blue);background:var(--surface)}
.reveal-note{font-size:.76rem;color:var(--ink4);margin-top:8px;line-height:1.45}
.reveal-note a{color:var(--blue);font-weight:600}
.reveal-result{display:inline-block;font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:.9rem;
  font-weight:600;color:var(--ok);background:var(--okbg);border-radius:99px;padding:7px 15px}
.derad-input{width:100%;height:48px;font:inherit;font-size:.92rem;padding:0 16px;margin-bottom:9px;
  border:1.5px solid transparent;border-radius:var(--r-in);background:var(--surface2);color:var(--ink)}
.derad-input:focus{outline:none;border-color:var(--blue);background:var(--surface)}
.derad h3{font-size:1.04rem;font-weight:720;letter-spacing:-.026em;line-height:1.25;margin-bottom:8px}
.derad p{font-size:.86rem;color:var(--ink2);line-height:1.45;margin-bottom:13px}

/* Pied de page colle en bas sur les pages courtes : sans ca, une bande creme
   apparait sous le marine quand le contenu ne remplit pas l'ecran. */
body{min-height:100vh;display:flex;flex-direction:column}
body > footer{margin-top:auto}

/* Tableau financier : filets internes seulement, chiffres alignes a droite en
   chasse fixe pour que les ordres de grandeur se comparent a l'oeil. */
.fin{width:100%;border-collapse:collapse;font-size:.88rem}
.fin th{text-align:left;color:var(--ink3);font-weight:500;padding:0 0 7px}
.fin th:not(:first-child),.fin td:not(:first-child){text-align:right}
.fin td{padding:9px 0;border-top:1px solid var(--line2);color:var(--ink2);
  font-family:ui-monospace,"SF Mono",Menlo,monospace;font-variant-numeric:tabular-nums}
.fin td:first-child{font-family:inherit;font-weight:550;color:var(--ink)}
