/* =========================================================================
   INOCESS - feuille de style commune à toutes les pages (v2)
   Palette : indigo Nextent (solution), graphite Inocess (bureau d'étude),
   bleu nuit (fonds), bleu UE (bandeau réglementaire), vert-bleu TowerIA.
   Polices : Manrope (titres), IBM Plex Sans (texte), IBM Plex Mono (repères).
   ========================================================================= */
:root{
  --indigo:#4f579c;      /* Nextent - accents, boutons, blocs colorés */
  --indigo-2:#3f4682;    /* indigo survol / profond */
  --indigo-3:#2c3258;    /* bleu nuit - titres, pied de page */
  --indigo-soft:#eef0fb; /* fond indigo très pâle */
  --lav:#c9cde6;         /* lavande - traits, étiquettes sur fond sombre */
  --graphite:#22252a;    /* Inocess - bureau d'étude */
  --graphite-2:#4f4f4e;  /* gris du logo */
  --eu:#003399;          /* bleu Union européenne */
  --eu-y:#ffcc00;
  --ia:#1f9d8a;          /* TowerIA */
  --ink:#181c22;
  --ink-soft:#5a5d66;
  --line:#d9dce4;
  --pale:#f6f7fb;        /* fond de section alterné */
  --paper:#ffffff;
  --shadow:0 1px 2px rgba(24,28,34,.05),0 12px 30px -16px rgba(24,28,34,.25);
  --r:12px;              /* rayon des cartes */
  --r-lg:20px;           /* rayon des grands conteneurs */
  --font:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --font-head:"Manrope","IBM Plex Sans","Segoe UI",system-ui,sans-serif;
  --mono:"IBM Plex Mono","Cascadia Code","SF Mono",Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.1;letter-spacing:-.02em;margin:0;color:var(--ink)}
h1{font-weight:800}
h1{font-size:clamp(2.1rem,4.6vw,3.5rem)}
h2{font-size:clamp(1.7rem,3.1vw,2.4rem)}
h3{font-size:1.2rem;letter-spacing:-.01em;line-height:1.3}
h4{font-size:1rem;letter-spacing:0}
p{margin:0}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
ul{margin:0;padding-left:1.2rem}
.wrap{width:min(1240px,92vw);margin:0 auto}
.eyebrow{font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--indigo)}
.band .eyebrow,.dark .eyebrow{color:var(--lav)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:1rem;background:#fff;padding:.6rem 1rem;z-index:100;border-radius:6px}
:focus-visible{outline:2px solid var(--indigo);outline-offset:3px}
.muted{color:var(--ink-soft)}
.small{font-size:.9rem}
.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .8rem;border-radius:999px;background:var(--indigo-soft);border:1px solid #d3d8f3;color:var(--indigo);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--indigo)}
.pill.ia{background:#e4f5f1;border-color:#bfe6de;color:#157a6b}
.pill.ia::before{background:var(--ia)}

/* ---- bandeau réglementaire UE (TowerIA / FEDER) ---- */
.ribbon{background:var(--eu);color:#fff;font-size:.8rem;padding:.5rem 0;border-bottom:1px solid #002266}
.ribbon .wrap{display:flex;gap:.9rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ribbon .eu{display:inline-flex;align-items:center;gap:.6rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:.74rem}
.ribbon .eu svg{width:24px;height:16px;flex:0 0 auto;border-radius:2px}
.ribbon .eu span{color:#c7d3ff;font-weight:400;text-transform:none;letter-spacing:0;font-size:.8rem}
.ribbon a{color:#fff;font-weight:600;text-decoration:none;border:1px solid rgba(255,255,255,.35);padding:.2rem .7rem;border-radius:4px}
.ribbon a:hover{background:rgba(255,255,255,.12)}
@media(max-width:700px){.ribbon .eu span{display:none}}

/* ---- navigation ---- */
.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;gap:1.5rem}
.brand{display:block;line-height:0}
.brand img{height:40px;width:auto}
.nav-menu{display:contents}
.nav-links{display:flex;gap:.35rem;font-size:1.08rem;align-items:center}
.nav-links a{text-decoration:none;color:#3a3d46;font-weight:500;padding:.5rem .85rem;border-radius:8px}
.nav-links a:hover{background:var(--pale);color:var(--indigo)}
.nav-links a[aria-current="page"]{color:var(--indigo);background:var(--indigo-soft);font-weight:600}
.nav-links a.ia .tag{font-size:.62rem;font-weight:700;background:#e4f5f1;color:#157a6b;padding:.1rem .4rem;border-radius:4px;margin-left:.4rem;vertical-align:middle;letter-spacing:.06em}
.nav-menu>.btn-primary{font-size:1.02rem;padding:.9rem 1.45rem}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:40px;padding:0 9px;background:transparent;border:1px solid var(--line);border-radius:6px;cursor:pointer}
.nav-toggle span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.nav[data-open] .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav[data-open] .nav-toggle span:nth-child(2){opacity:0}
.nav[data-open] .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:940px){
  .brand img{height:34px}
  .nav .wrap{position:relative}
  .nav-toggle{display:flex}
  .nav-menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 16px 26px -18px rgba(24,28,34,.4);padding-bottom:1rem;
    /* l'en-tête reste collé en haut : le menu ne doit jamais dépasser l'écran, il défile à l'intérieur (hauteur affinée par site.js) */
    max-height:calc(100vh - 78px);max-height:calc(100dvh - 78px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .nav[data-open] .nav-menu{display:flex}
  .nav-menu .nav-links{flex-direction:column;gap:0;font-size:1rem;align-items:stretch}
  .nav-menu .nav-links a{padding:.95rem 1.5rem;border-top:1px solid var(--line);border-radius:0}
  .nav-menu .btn-primary{margin:.9rem 1.5rem 0;justify-content:center}
  .nav-links{font-size:1.08rem}
}

/* ---- boutons ---- */
.btn{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font-family:inherit;font-weight:600;font-size:.95rem;padding:.85rem 1.3rem;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease;line-height:1.2}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--indigo);color:#fff}
.btn-primary:hover{background:var(--indigo-2)}
.btn-dark{background:var(--graphite-2);color:#fff}
.btn-dark:hover{background:var(--graphite)}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--indigo);color:var(--indigo)}
.btn-light{background:#fff;color:var(--indigo)}
.btn-light:hover{background:var(--indigo-soft)}
.btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn-outline-light:hover{background:rgba(255,255,255,.1)}
.btn-ia{background:var(--ia);color:#fff}
.btn-ia:hover{background:#178274}
.btn[disabled]{opacity:.55;cursor:progress;transform:none}
.btn .arrow{transition:transform .15s ease}
.btn:hover .arrow{transform:translateX(3px)}
/* grand bouton d'orientation (accueil) */
.btn-door{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem 1.3rem;border-radius:12px;text-decoration:none;font-weight:600;font-size:1rem;border:2px solid transparent;transition:transform .15s ease}
.btn-door:hover{transform:translateY(-2px)}
.btn-door.nx{background:var(--indigo);color:#fff}
.btn-door.be{background:#fff;color:var(--graphite);border-color:var(--graphite)}
.btn-door small{display:block;font-weight:400;font-size:.82rem;opacity:.8;margin-top:.15rem}

/* ---- sections ---- */
section{padding:clamp(3.2rem,6.5vw,5.5rem) 0}
.section-head{max-width:64ch;margin-bottom:2.4rem}
.section-head p{margin-top:.9rem;color:var(--ink-soft);font-size:1.05rem}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head.row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.section-head.row p{max-width:46ch;margin:0}
.band{background:var(--indigo-3);color:#fff}
.band h1,.band h2,.band h3,.band h4{color:#fff}
.band .section-head p,.band .muted{color:rgba(230,232,245,.8)}
.soft{background:var(--pale);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ia-band{background:linear-gradient(135deg,#232847,#173a4a);color:#fff}
.ia-band h2,.ia-band h3{color:#fff}
.ia-band .eyebrow{color:#7fe0cf}

/* ---- hero accueil ---- */
.hero{padding:clamp(2.4rem,5vw,4rem) 0 clamp(2.4rem,5vw,4rem)}
.hero-top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(1.5rem,4vw,4rem);align-items:end;margin-bottom:2.2rem}
@media(max-width:980px){.hero-top{grid-template-columns:1fr}}
.hero h1{margin-top:0}
.hero h1 em{font-style:normal;color:var(--indigo)}
.hero .lede{margin-top:1.2rem;font-size:1.12rem;color:var(--ink-soft);max-width:56ch}
.hero-doors{display:grid;gap:.8rem}
.hero-note{margin-top:.9rem;font-size:.85rem;color:var(--ink-soft)}
/* visuel immersif plein cadre */
.immersive{position:relative;border-radius:var(--r-lg);overflow:hidden;background:#14161c;border:1px solid var(--line);min-height:clamp(340px,44vw,540px)}
.immersive>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.immersive>img.logo-nx{inset:auto;top:calc(50% - 3.5rem);left:50%;transform:translate(-50%,-50%);z-index:2;width:clamp(160px,24vw,340px);max-width:60%;height:auto;object-fit:contain;filter:drop-shadow(0 2px 14px rgba(0,0,0,.55))}
/* Téléphone : logo plus grand, centré dans la zone libre au-dessus des trois encadrés empilés */
@media(max-width:700px){.immersive>img.logo-nx{top:22%;width:66%;max-width:none}}
.immersive::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,22,28,.85),rgba(20,22,28,.15) 55%,transparent)}
.immersive .badge{position:absolute;top:1rem;left:1rem;z-index:2;display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.94);color:var(--ink);font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.45rem .8rem;border-radius:8px}
.immersive .badge::before{content:"";width:8px;height:8px;border-radius:50%;background:#22a06b;box-shadow:0 0 0 0 rgba(34,160,107,.6);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,160,107,.6)}70%{box-shadow:0 0 0 8px rgba(34,160,107,0)}100%{box-shadow:0 0 0 0 rgba(34,160,107,0)}}
.immersive .facts{position:absolute;left:1rem;right:1rem;bottom:1rem;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
@media(max-width:700px){.immersive .facts{grid-template-columns:1fr;gap:.5rem}.immersive{min-height:640px}.fact{padding:.7rem .9rem}.fact .v{font-size:1.15rem}}
.fact{background:rgba(79,87,156,.92);backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:.9rem 1.05rem}
.fact .k{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#d0d3ff;font-weight:600}
.fact .v{font-size:1.35rem;font-weight:700;line-height:1.15;margin-top:.15rem}
.fact .d{font-size:.82rem;color:#e3e5ff;margin-top:.2rem}

/* bandeau de repères (chiffres séparés par des filets, sans boîtes) */
.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
@media(max-width:860px){.strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
.strip>div{padding:0 1.4rem;border-left:1px solid var(--line)}
.strip>div:first-child{border-left:0;padding-left:0}
@media(max-width:860px){.strip>div:nth-child(3){border-left:0;padding-left:0}.strip>div{padding:0 1rem}.strip .v{font-size:1.45rem}}
.strip .k{font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--indigo)}
.strip .v{font-family:var(--font-head);font-size:1.9rem;font-weight:700;color:var(--ink);line-height:1.1;margin-top:.3rem;font-variant-numeric:tabular-nums}
.strip .d{font-size:.88rem;color:var(--ink-soft);margin-top:.3rem}

/* ---- deux métiers : blocs colorés ---- */
.metiers{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media(max-width:900px){.metiers{grid-template-columns:1fr}}
.metier{border-radius:var(--r-lg);color:#fff;display:grid;grid-template-rows:auto 1fr;overflow:hidden;text-decoration:none}
.metier.nx{background:var(--indigo)}
.metier.be{background:var(--graphite)}
.metier .pic{height:230px;position:relative}
.metier .pic img{width:100%;height:100%;object-fit:cover;opacity:.9}
.metier .pic .num{position:absolute;top:1rem;left:1rem;font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:rgba(0,0,0,.45);padding:.35rem .7rem;border-radius:6px;backdrop-filter:blur(6px)}
.metier .in{padding:1.9rem 2rem 2rem}
.metier h3{color:#fff;font-size:1.55rem;margin-bottom:.6rem}
.metier p{color:rgba(255,255,255,.85);max-width:52ch}
.metier ul{list-style:none;padding:0;margin:1.2rem 0 0;display:grid;gap:.5rem;color:rgba(255,255,255,.9);font-size:.95rem}
.metier ul li{padding-left:1.3rem;position:relative}
.metier ul li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:2px;background:currentColor;opacity:.7}
.metier .foot{margin-top:1.6rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.2);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.9rem}
.metier .foot .cta{font-weight:700;color:#fff}
.metier:hover .foot .cta .arrow{transform:translateX(3px)}
.metier .arrow{display:inline-block;transition:transform .15s ease}

/* ---- grilles / cartes (usage général) ---- */
.grid{display:grid;gap:1.3rem}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:980px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem}
.card>img:first-child{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:8px;margin-bottom:1rem}
/* Carte illustrée par un logo de produit (et non une photo) */
.card>img.logo-produit:first-child{width:auto;max-width:100%;height:40px;aspect-ratio:auto;object-fit:contain;border-radius:0;margin-bottom:1.2rem}
.grid>.card.large{grid-column:1/-1}
/* Photo détourée d'un boîtier à côté des caractéristiques */
.split.boitier{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:center}
.split.boitier>img{border:0;border-radius:0;background:none;width:100%;max-width:340px;height:auto;justify-self:center}
.split.boitier .spec{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.split.boitier{grid-template-columns:1fr}.split.boitier>img{max-width:240px}}
@media(max-width:560px){.split.boitier .spec{grid-template-columns:1fr}}
.card h3{margin-bottom:.6rem}
.card p{color:var(--ink-soft);font-size:.97rem}
.card .more{display:inline-block;margin-top:1rem;font-weight:600;color:var(--indigo);text-decoration:none}
.card .more:hover{text-decoration:underline}
/* Carte terminée par un lien : le lien se cale en bas, pour que les liens de cartes voisines soient alignés */
.card:has(>.more){display:flex;flex-direction:column;align-items:flex-start}
.card:has(>.more)>.more{margin-top:auto;padding-top:1rem}
.card.link{transition:transform .15s ease,border-color .15s ease}
.card.link:hover{transform:translateY(-3px);border-color:var(--indigo)}
.card .ico{width:44px;height:44px;border-radius:10px;background:var(--indigo-soft);color:var(--indigo);display:grid;place-items:center;margin-bottom:1rem}
.card .ico svg{width:24px;height:24px}
.card.fill{background:var(--indigo);border-color:transparent;color:#fff}
.card.fill h3{color:#fff}
.card.fill p{color:rgba(255,255,255,.85)}
.card.fill .more{color:#fff}
.band .card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
.band .card p{color:rgba(230,232,245,.8)}
.band .card .ico{background:rgba(255,255,255,.1);color:var(--lav)}
.band .card .more{color:var(--lav)}

/* ---- références : mosaïque photo ---- */
.refs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem}
@media(max-width:980px){.refs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.refs{grid-template-columns:1fr}}
.ref{position:relative;border-radius:var(--r);overflow:hidden;min-height:330px;display:flex;align-items:flex-end;text-decoration:none;color:#fff;background:var(--indigo-3);border:1px solid var(--line)}
.ref img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.ref:hover img{transform:scale(1.04)}
.ref .in{position:relative;width:100%;padding:1.4rem;background:linear-gradient(to top,rgba(20,22,28,.92),rgba(20,22,28,.35) 70%,transparent)}
.ref .k{font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#d0d3ff}
.ref h3{color:#fff;font-size:1.25rem;margin:.35rem 0 .4rem}
.ref p{font-size:.9rem;color:rgba(255,255,255,.82)}
.ref .num{display:inline-block;margin-top:.7rem;font-weight:700;font-size:.9rem;color:#fff;background:rgba(79,87,156,.9);padding:.25rem .6rem;border-radius:6px}
.ref.solid{background:var(--indigo);align-items:flex-start}
.ref.solid .in{background:none;height:100%;display:flex;flex-direction:column;justify-content:space-between}
.ref.solid p{color:rgba(255,255,255,.88);font-size:.97rem;margin-top:.2rem}
.ref.solid .num{background:rgba(255,255,255,.16)}

/* légende technique sous une photo (fiche terrain) */
.capstrip{display:flex;gap:1.2rem;flex-wrap:wrap;background:var(--pale);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r) var(--r);padding:.6rem 1rem;font-size:.78rem;color:var(--ink-soft)}
.capstrip b{color:var(--ink);font-weight:600}
.figure{margin:0}
.figure img{border-radius:var(--r) var(--r) 0 0;border:1px solid var(--line);border-bottom:0;width:100%}

/* chiffres en boîtes (pages intérieures) */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}
@media(max-width:860px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stat{padding:1.2rem 1.3rem;border-left:3px solid var(--indigo);background:var(--pale);border-radius:0 10px 10px 0}
.stat .v{font-size:1.9rem;font-weight:700;color:var(--ink);line-height:1.1;font-variant-numeric:tabular-nums}
.stat .l{margin-top:.35rem;font-size:.9rem;color:var(--ink-soft)}
.band .stat{background:rgba(255,255,255,.06);border-left-color:var(--lav)}
.band .stat .v{color:#fff}
.band .stat .l{color:rgba(230,232,245,.8)}

/* hero des pages intérieures */
.page-hero{padding:clamp(2.4rem,5vw,4rem) 0 clamp(2rem,4vw,3.5rem)}
.page-hero .lede{margin-top:1.2rem;font-size:1.15rem;color:var(--ink-soft);max-width:60ch}
.page-hero.band .lede{color:rgba(230,232,245,.85)}
.page-hero.band h1{color:#fff}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,4vw,3.5rem);align-items:center}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr}}
.hero-cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.8rem}
.hero-visual{position:relative}
.hero-visual img{border-radius:var(--r-lg);border:1px solid var(--line)}
.float-card{position:absolute;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;box-shadow:var(--shadow);font-size:.85rem;line-height:1.3}
.float-card .v{font-size:1.3rem;font-weight:700;color:var(--ink);display:block}
.float-card.tl{top:-14px;left:-14px}
.float-card.br{bottom:-14px;right:-14px}
@media(max-width:600px){.float-card.tl{left:0;top:-10px}.float-card.br{right:0;bottom:-10px}}
/* hero photo plein cadre (pages intérieures) */
.photo-hero{position:relative;color:#fff;background:#14161c;overflow:hidden;padding:0}
.photo-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.photo-hero .wrap{position:relative;padding:clamp(3.5rem,8vw,6.5rem) 0 clamp(2.5rem,6vw,4.5rem);max-width:min(1240px,92vw)}
.photo-hero h1{color:#fff;max-width:20ch}
.photo-hero .hero-logo{display:block;width:clamp(150px,18vw,220px);height:auto;margin-bottom:1.6rem}
.photo-hero .lede{margin-top:1.2rem;font-size:1.15rem;color:rgba(255,255,255,.88);max-width:58ch}
.photo-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgba(20,22,28,.85),rgba(20,22,28,.45) 60%,rgba(20,22,28,.2))}
.photo-hero.nx::before{background:linear-gradient(to right,rgba(44,50,88,.92),rgba(44,50,88,.55) 60%,rgba(44,50,88,.25))}
/* Variante « fort » : pour une photo claire. Photo assombrie et recadrée sur la foule (le ciel sort du cadre), voile indigo placé au-dessus de la photo et renforcé côté texte. */
.photo-hero.fort>img{opacity:.42;object-position:center 60%}
.photo-hero.fort::before{z-index:1;background:linear-gradient(to right,rgba(44,50,88,.95),rgba(44,50,88,.82) 50%,rgba(44,50,88,.4))}
.photo-hero.fort .wrap{z-index:2}
@media(max-width:700px){.photo-hero.fort::before{background:rgba(44,50,88,.86)}}
.photo-hero .pill{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff}
.photo-hero .pill::before{background:#fff}

/* bloc image + texte */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.split.rev>:first-child{order:2}
@media(max-width:900px){.split{grid-template-columns:1fr}.split.rev>:first-child{order:0}}
.split img{border-radius:var(--r);border:1px solid var(--line)}
.split .txt p{margin-top:1rem;color:var(--ink-soft)}
.split .txt ul{margin-top:1rem;color:var(--ink-soft);display:grid;gap:.4rem}
.split .txt ul li::marker{color:var(--indigo)}
.band .split .txt p,.band .split .txt ul{color:rgba(230,232,245,.82)}

/* cas d'usage */
.case{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(1.6rem,4vw,3.5rem);align-items:start;padding:2.6rem 0;border-top:1px solid var(--line)}
.case:first-of-type{border-top:0}
.case.rev>:first-child{order:2}
@media(max-width:900px){.case{grid-template-columns:1fr}.case.rev>:first-child{order:0}}
.case figure{margin:0;display:grid;gap:.8rem}
.case figure img{border-radius:var(--r);border:1px solid var(--line)}
.case figure .pair{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.case figcaption{font-size:.8rem;color:var(--ink-soft)}
.case h3{font-size:1.5rem;margin:.4rem 0 .8rem}
.case .meta{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 1rem}
.chip{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;background:var(--indigo-soft);color:var(--indigo);padding:.28rem .6rem;border-radius:4px;font-weight:700}
.case p{color:var(--ink-soft)}
.case dl{margin:1.1rem 0 0;display:grid;gap:.7rem}
.case dt{font-weight:600;font-size:.92rem;color:var(--ink)}
.case dd{margin:0;font-size:.95rem;color:var(--ink-soft)}

/* fiche produit / composant */
.spec{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
@media(max-width:900px){.spec{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.spec{grid-template-columns:1fr}}
.spec>div{padding:1rem 1.1rem;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.05)}
.spec .k{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#7fe0cf;font-weight:700}
.spec .v{font-weight:700;font-size:1.15rem;margin-top:.25rem;color:#fff}
.spec .d{font-size:.85rem;color:rgba(230,232,245,.75);margin-top:.2rem}
.spec.light>div{border-color:var(--line);background:#fff}
.spec.light .k{color:var(--ink-soft)}
.spec.light .v{color:var(--indigo)}
.spec.light .d{color:var(--ink-soft)}

/* logos */
/* rangées de tuiles de largeur fixe, centrées : la dernière rangée, incomplète, reste centrée */
.logos{--n:6;--g:1rem;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--g)}
@media(max-width:980px){.logos{--n:4}}
@media(max-width:600px){.logos{--n:3;--g:.7rem}}
.logos div{flex:0 0 calc((100% - (var(--n) - 1) * var(--g)) / var(--n));background:#fff;border:1px solid var(--line);border-radius:10px;height:92px;display:grid;place-items:center;padding:.9rem}
.logos img{max-height:58px;width:auto;max-width:100%;object-fit:contain}
/* Variante défilante : deux rangées, défilement horizontal au doigt ou à la molette (partiels/partenaires.php) */
.logos.defilant{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,92px);grid-auto-columns:200px;gap:var(--g);justify-content:start;overflow-x:auto;overscroll-behavior-x:contain;padding:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.logos.defilant div{flex:none;width:auto}
.logos.defilant:focus-visible{outline:2px solid var(--indigo);outline-offset:4px}
@media(max-width:600px){.logos.defilant{grid-template-rows:repeat(2,80px);grid-auto-columns:150px}}
/* Carrousel (site.js) : la liste défile seule en boucle, sans barre de défilement ; deux flèches sur les côtés */
.carrousel{position:relative}
.carrousel.is-js .logos.defilant{scrollbar-width:none}
.carrousel.is-js .logos.defilant::-webkit-scrollbar{display:none}
.carrousel-btn{display:none;position:absolute;top:50%;z-index:2;width:42px;height:42px;transform:translateY(-50%);border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:0 6px 18px -8px rgba(24,28,34,.45);cursor:pointer;place-items:center;padding:0}
.carrousel-btn svg{width:22px;height:22px}
.carrousel-btn:hover{color:var(--indigo);border-color:var(--indigo)}
.carrousel-btn.prev{left:-.6rem}.carrousel-btn.next{right:-.6rem}
.carrousel.is-js .carrousel-btn{display:grid}
@media(max-width:600px){.carrousel-btn{width:36px;height:36px}.carrousel-btn.prev{left:-.3rem}.carrousel-btn.next{right:-.3rem}}
.logos .lbl{font-size:.8rem;text-align:center;color:var(--ink-soft);font-weight:600;line-height:1.25}

/* presse */
.press{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
@media(max-width:980px){.press{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.press{grid-template-columns:repeat(2,minmax(0,1fr))}}
.press a{display:block;text-decoration:none;padding:1.1rem 1.2rem;border:1px solid var(--line);border-radius:10px;background:#fff;transition:border-color .15s ease}
.press a:hover{border-color:var(--indigo)}
.press .src{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--indigo);font-weight:700}
.press .logo{display:flex;align-items:center;height:48px;margin-bottom:.6rem}
.press .logo img{max-height:40px;max-width:130px;width:auto;height:auto;object-fit:contain}
.press .logo.sq img{max-height:44px}
.press .t{margin-top:.4rem;font-size:.92rem;color:var(--ink);line-height:1.35}

/* liste de points */
.checks{display:grid;gap:.6rem;list-style:none;padding:0;margin:0}
.checks li{position:relative;padding-left:1.7rem;color:var(--ink-soft)}
.checks li::before{content:"";position:absolute;left:0;top:.5em;width:14px;height:8px;border-left:2.5px solid var(--indigo);border-bottom:2.5px solid var(--indigo);transform:rotate(-45deg)}
.band .checks li{color:rgba(230,232,245,.85)}
.band .checks li::before{border-color:var(--lav)}
.ia-band .checks li::before{border-color:#7fe0cf}

/* ---- encart TowerIA (accueil) : grand conteneur photo + specs ---- */
.ia-box{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--pale)}
@media(max-width:900px){.ia-box{grid-template-columns:1fr}}
.ia-box .pic{position:relative;background:#fff;min-height:380px}
.ia-box .pic img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.ia-box .pic .badge{position:absolute;top:1rem;left:1rem;display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.95);color:var(--ink);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.45rem .8rem;border-radius:8px;border:1px solid var(--line)}
.ia-box .pic .badge svg{width:22px;height:15px;border-radius:2px}
.ia-box .pic .cap{position:absolute;left:1rem;right:1rem;bottom:1rem;background:rgba(20,22,28,.8);color:#fff;font-size:.78rem;letter-spacing:.04em;padding:.6rem .9rem;border-radius:8px;backdrop-filter:blur(6px)}
.ia-box .txt{padding:clamp(1.6rem,3.5vw,2.8rem)}
.ia-box .txt p{color:var(--ink-soft);margin-top:.9rem}
.ia-box .spec{margin-top:1.4rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.ia-box .foot{margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.ia-box .foot img{height:40px;width:auto}
.ia-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,4rem);align-items:center}
@media(max-width:900px){.ia-card{grid-template-columns:1fr}}
.ia-card img{border-radius:var(--r);box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
.fund{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.15)}
.fund img{height:44px;width:auto;background:#fff;border-radius:6px;padding:.3rem .5rem}
/* Logos des financeurs du projet Nextent TowerIA : Union européenne, puis Région Sud en dessous */
.financeurs{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;flex:none}
.fund p{font-size:.85rem;color:rgba(230,232,245,.8);max-width:46ch}

/* CTA final */
.cta-strip{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding:2rem 2.2rem;border-radius:var(--r-lg);background:var(--indigo);color:#fff}
.cta-strip h2{font-size:1.6rem;color:#fff}
.cta-strip p{color:rgba(255,255,255,.85);margin-top:.4rem}

/* ---- contact : carte indigo ---- */
.contact-card{max-width:900px;margin:0 auto;background:var(--indigo);color:#fff;border-radius:var(--r-lg);padding:clamp(1.6rem,4vw,3rem)}
.contact-card .head{text-align:center;max-width:56ch;margin:0 auto 1.8rem}
.contact-card .head h2{color:#fff}
.contact-card .head p{color:rgba(255,255,255,.85);margin-top:.6rem}
.contact-card .head .eyebrow{color:#d0d3ff}
.contact-card label{color:#fff}
.contact-card label .opt{color:rgba(255,255,255,.7)}
.contact-card input,.contact-card select,.contact-card textarea{border-color:rgba(255,255,255,.35);background:#fff;color:var(--ink)}
.contact-card input:focus,.contact-card select:focus,.contact-card textarea:focus{outline:2px solid #fff;border-color:#fff}
.contact-card .consent{color:rgba(255,255,255,.85)}
.contact-card .consent a{color:#fff}
.contact-card .btn-light{width:100%;justify-content:center;padding:1rem}
.contact-card .aside{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.2);font-size:.9rem;color:rgba(255,255,255,.85)}
.contact-card .aside a{color:#fff}

/* formulaire (base) */
form{display:grid;gap:1rem}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.f2{grid-template-columns:1fr}}
label{display:block;font-size:.88rem;font-weight:600;color:var(--ink);margin-bottom:.35rem}
label .opt{font-weight:400;color:var(--ink-soft)}
input,select,textarea{width:100%;font:inherit;font-size:1rem;padding:.75rem .9rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--indigo);outline:2px solid rgba(79,87,156,.25);outline-offset:0}
textarea{min-height:140px;resize:vertical}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.88rem;color:var(--ink-soft)}
.consent input{width:auto;margin-top:.3rem}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-msg{padding:.9rem 1rem;border-radius:8px;font-size:.95rem;display:none}
.form-msg.ok{display:block;background:#e6f5ec;color:#1d5a34;border:1px solid #b9e2c8}
.form-msg.ko{display:block;background:#fdecec;color:#8a1f1f;border:1px solid #f3c1c1}

/* étapes */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem;counter-reset:step}
@media(max-width:860px){.steps{grid-template-columns:1fr}}
.step{position:relative;padding:1.4rem 1.4rem 1.4rem 4.2rem;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);position:absolute;left:1.2rem;top:1.25rem;font-weight:700;font-size:1.2rem;color:var(--indigo)}
.step h3{font-size:1.05rem;margin-bottom:.4rem}
.step p{font-size:.95rem;color:var(--ink-soft)}
.steps.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:980px){.steps.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.steps.four{grid-template-columns:1fr}}
/* pied de page */
footer{background:var(--indigo-3);color:rgba(230,232,245,.8);padding:3.2rem 0 2rem;font-size:.92rem}
.foot{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2rem}
@media(max-width:900px){.foot{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot{grid-template-columns:1fr}}
.foot img{height:36px;width:auto;margin-bottom:1rem}
.foot h4{color:#fff;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.8rem;font-family:var(--mono)}
.foot ul{list-style:none;padding:0;display:grid;gap:.45rem}
.foot a{color:rgba(230,232,245,.85);text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline}
.foot-eu{display:flex;gap:.8rem;align-items:center;margin-top:1.2rem}
.foot-eu img{height:34px;margin:0;background:#fff;border-radius:4px;padding:.25rem .4rem}
.foot-eu p{font-size:.8rem}
.foot-bottom{margin-top:2.4rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.82rem}
.foot-bottom a{color:rgba(230,232,245,.7)}
/* pages légales */
.legal{max-width:76ch}
.legal h2{font-size:1.4rem;margin:2.2rem 0 .8rem}
.legal p,.legal li{color:var(--ink-soft)}
.legal ul{display:grid;gap:.4rem;margin-top:.5rem}
.todo{background:#fff4e5;color:#8a4b00;padding:.1rem .35rem;border-radius:4px;font-weight:600}
/* table simple */
.tbl{width:100%;border-collapse:collapse;font-size:.95rem}
.tbl th,.tbl td{text-align:left;padding:.75rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--indigo);font-family:var(--mono)}
.tbl td{color:var(--ink-soft)}
.tbl td:first-child{color:var(--ink);font-weight:600}
.tbl-wrap{overflow-x:auto}

/* ---- thème Bureau d'étude (body.be) : l'anthracite remplace l'indigo ----
   Les variables indigo sont redéfinies sur <main> et sur les liens du menu.
   Le bandeau UE, le bouton « Nous contacter » du menu et le pied de page
   restent communs à tout le site. L'indigo reste réservé à Nextent. */
body.be main,body.be .nav-links{
  --indigo:var(--graphite);
  --indigo-2:#3a3e45;
  --indigo-3:#2b2e34;
  --indigo-soft:#eef0f2;
  --lav:#c9ccd3;
}
body.be .pill{border-color:#d5d8de}
body.be main .btn-primary{background:var(--graphite-2)}
body.be main .btn-primary:hover{background:var(--graphite)}
body.be .hero-visual img{width:100%;aspect-ratio:9/7;object-fit:cover}
body.be .band .split .txt ul li::marker{color:var(--lav)}

/* ---- liste des projets réalisés (page bureau d'étude) ----
   Une ligne par projet : repère (année ou statut), contenu, colonne latérale
   (photo et/ou chiffres clés). Pour ajouter un projet, dupliquer un <li>. */
.projects{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.project{display:grid;grid-template-columns:150px minmax(0,1fr) 300px;gap:clamp(1.2rem,3vw,2.8rem);padding:2rem 0;border-bottom:1px solid var(--line);align-items:start}
@media(max-width:980px){.project{grid-template-columns:130px minmax(0,1fr)}.project>aside{grid-column:2}}
@media(max-width:620px){.project{grid-template-columns:1fr;gap:1rem}.project>aside{grid-column:auto}}
.project .when{font-family:var(--mono);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--indigo);padding-top:.3rem}
.project .when small{display:block;margin-top:.35rem;font-family:var(--font);font-weight:400;font-size:.82rem;letter-spacing:0;text-transform:none;color:var(--ink-soft);line-height:1.4}
.project h3{font-size:1.3rem;margin-bottom:.35rem}
.project .client{font-size:.92rem;color:var(--ink-soft);margin-bottom:.8rem}
.project .client b{color:var(--ink);font-weight:600}
.project p{color:var(--ink-soft);font-size:.97rem}
.project .tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}
.project .more{display:inline-block;margin-top:.9rem;font-weight:600;color:var(--indigo);text-decoration:none}
.project .more:hover{text-decoration:underline}
.project>aside{display:grid;gap:.8rem}
.project>aside img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);border:1px solid var(--line)}
/* Projet illustré par une photo, avec le logo du client posé dessus en bas à gauche */
.project>aside .photo-logo{position:relative}
.project>aside .photo-logo>img:first-child{display:block}
.project>aside .photo-logo>img.logo{position:absolute;left:.6rem;bottom:.6rem;width:34%;height:auto;aspect-ratio:auto;object-fit:contain;border:0;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.project .kv{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.project .kv div{padding:.7rem .9rem;background:var(--pale);border:1px solid var(--line);border-radius:10px}
.project .kv .v{display:block;font-family:var(--font-head);font-weight:700;font-size:1.2rem;color:var(--ink);line-height:1.1;font-variant-numeric:tabular-nums}
.project .kv .l{display:block;font-size:.78rem;color:var(--ink-soft);margin-top:.2rem}

/* ---- menus déroulants « Nos solutions » et « Produits et services » ----
   Bureau : ouverture au survol, au clavier (focus) ou au clic.
   Mobile : accordéon dans le menu déplié. */
.nav-links{list-style:none;margin:0;padding:0}
.nav-links>li{position:relative}
.nav-btn{font:inherit;font-size:1.08rem;font-weight:500;color:#3a3d46;background:none;border:0;padding:.5rem .85rem;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;line-height:1.5}
.nav-btn::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);flex:0 0 auto}
.nav-btn:hover,.nav-btn[aria-expanded="true"],.nav-btn.is-active{background:var(--pale);color:var(--indigo)}
.nav-btn.is-active{font-weight:600;background:var(--indigo-soft)}
.sub{display:none;position:absolute;top:calc(100% + .35rem);left:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 48px -20px rgba(24,28,34,.35);padding:.55rem;min-width:600px;z-index:70}
.sub::before{content:"";position:absolute;left:0;right:0;top:-.5rem;height:.5rem}
.sub-grid{display:grid;grid-template-columns:1fr 1fr;gap:.15rem}
.sub a{display:block;text-decoration:none;padding:.7rem .9rem;border-radius:10px;color:var(--ink);font-weight:400}
.sub a:hover,.sub a[aria-current="page"]{background:var(--pale);color:var(--ink)}
.sub a[aria-current="page"] b{color:var(--indigo)}
.sub a b{display:block;font-weight:600;font-size:.93rem}
.sub a span{display:block;font-size:.8rem;color:var(--ink-soft);margin-top:.15rem;line-height:1.35}
@media(min-width:941px){
  .nav-links>li:hover>.sub,.nav-links>li:focus-within>.sub,.nav-btn[aria-expanded="true"]+.sub{display:block}
  .nav-links>li:hover>.nav-btn{background:var(--pale);color:var(--indigo)}
}
@media(max-width:940px){
  .nav-links>li{display:block}
  .nav-btn{width:100%;justify-content:space-between;padding:.95rem 1.5rem;border-top:1px solid var(--line);border-radius:0;font-size:1rem}
  .nav-btn[aria-expanded="true"]::after{transform:translateY(2px) rotate(225deg)}
  .sub{position:static;border:0;box-shadow:none;border-radius:0;padding:.2rem .75rem .7rem;min-width:0;background:var(--pale)}
  .nav-btn[aria-expanded="true"]+.sub{display:block}
  .sub-grid{grid-template-columns:1fr}
  .nav-menu .nav-links .sub a{padding:.65rem .85rem;border-top:0;border-radius:8px}
}

/* ---- accueil : piliers et cartes de solutions ---- */
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem}
@media(max-width:860px){.pillars{grid-template-columns:1fr}}
.pillar{padding:1.5rem;border:1px solid var(--line);border-radius:var(--r);background:#fff;text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:flex-start;transition:transform .15s ease,border-color .15s ease}
.pillar:hover{transform:translateY(-3px);border-color:var(--indigo)}
.pillar .n{font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--indigo)}
.pillar h3{margin:.5rem 0 .5rem;font-size:1.1rem}
.pillar p{color:var(--ink-soft);font-size:.95rem}
.pillar .more{display:inline-block;margin-top:auto;padding-top:.9rem;font-weight:600;color:var(--indigo)}
.sol{position:relative;display:grid;grid-template-rows:200px auto;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;text-decoration:none;color:inherit;transition:transform .15s ease,border-color .15s ease}
.sol:hover{transform:translateY(-3px);border-color:var(--indigo)}
.sol img{width:100%;height:100%;object-fit:cover}
.sol .in{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;align-items:flex-start}
.sol .k{font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--indigo)}
.sol h3{font-size:1.15rem;margin:.4rem 0 .5rem}
.sol p{color:var(--ink-soft);font-size:.93rem}
.sol .tag{display:inline-block;margin-top:.8rem;margin-bottom:0;font-size:.78rem;font-weight:600;color:var(--ink);background:var(--pale);border:1px solid var(--line);border-radius:6px;padding:.25rem .6rem}
.sol .more{display:inline-block;margin-top:auto;padding-top:1rem;font-weight:600;color:var(--indigo)}
.sol.be .k,.sol.be .more{color:var(--graphite)}
.sol.be:hover{border-color:var(--graphite)}
.sol.ia .k,.sol.ia .more{color:var(--ia)}
.sol.ia:hover{border-color:var(--ia)}
/* bandeau de références (logos + libellés) */
.trust{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 2.6rem}
.trust img{height:44px;width:auto;max-width:150px;object-fit:contain}
.trust img.haut{height:68px}  /* logo presque carré : plus de hauteur pour peser autant que les autres */
.trust img.large{max-width:230px}  /* logo très allongé : plus de largeur pour rester lisible */
.trust span{font-family:var(--font-head);font-weight:700;color:var(--ink-soft);font-size:1rem;letter-spacing:-.01em}
.trust-lbl{font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);text-align:center;margin-bottom:1.2rem}
/* liens vers les autres pages en bas de page */
.related .card{display:block;text-decoration:none;color:inherit}
/* page contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(2rem,4vw,3.5rem);align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-grid .contact-card{max-width:none;margin:0}
.contact-info h2{font-size:1.5rem}
.contact-info dl{margin:1.4rem 0 0;display:grid;gap:1rem}
.contact-info dt{font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--indigo)}
.contact-info dd{margin:.2rem 0 0;color:var(--ink-soft)}
.contact-info dd a{color:var(--ink)}
/* gabarit « Ils en parlent » à compléter (page Tower / TowerIA) */
.press a.a-completer{border-style:dashed;background:var(--pale)}
.press a.a-completer .src{color:#8a4b00}
