/* ============================================================
   BS Solutions et Expertises — feuille de style partagée
   Utilisée par toutes les pages sauf bs-se-accueil.html,
   mentions-legales.html et politique-confidentialite.html
   (autonomes, avec leur propre <style> inline).
   ============================================================ */

:root{
  --ink:#10131C;
  --paper:#F7F7FB;
  --indigo:#4338CA;
  --violet:#9333EA;
  --cyan:#06B6D4;
  --slate:#5B6072;
  --line:#E4E4EE;
  --card:#FFFFFF;
  --grad: linear-gradient(115deg, var(--indigo) 0%, var(--violet) 55%, var(--cyan) 100%);
  --grad-soft: linear-gradient(115deg, rgba(67,56,202,.10) 0%, rgba(147,51,234,.10) 55%, rgba(6,182,212,.10) 100%);
  --radius: 16px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;letter-spacing:-0.01em;}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}
section{position:relative;}

/* ---------- Header / nav / logo ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(247,247,251,.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 28px;max-width:1180px;margin:0 auto;
}
.logo{
  display:flex;align-items:center;gap:10px;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:14px;
}
.logo-mark{
  width:32px;height:32px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.logo-mark svg{display:block;}
.logo-word{line-height:1.15;}
footer .logo-word{font-size:15px;line-height:1.3;}
nav ul{display:flex;gap:30px;list-style:none;}
nav ul li a{
  font-size:14.5px;font-weight:500;color:var(--ink);opacity:.75;
  transition:opacity .2s;
}
nav ul li a:hover,nav ul li a.active{opacity:1;}
nav ul li a.active{color:var(--indigo);}
.nav-actions{display:flex;align-items:center;gap:18px;}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 22px;border-radius:999px;
  font-size:14.5px;font-weight:600;
  border:1px solid transparent;cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.btn-primary{
  background:var(--grad);color:#fff;
  box-shadow:0 6px 20px rgba(67,56,202,.28);
}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(67,56,202,.35);}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);}
.btn-ghost:hover{border-color:var(--indigo);color:var(--indigo);}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;font-size:18px;}

/* ---------- Eyebrow / gradient text ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.06em;
  color:var(--indigo);text-transform:uppercase;
  padding:7px 14px;border-radius:999px;
  background:var(--grad-soft);
  margin-bottom:22px;
}
.gradient-text{
  background:var(--grad);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ---------- Page hero (sub-pages) ---------- */
.page-hero{padding:64px 0 56px;}
.page-hero.dark{background:var(--ink);color:#fff;}
.page-hero.dark .breadcrumb, .page-hero.dark .breadcrumb a{color:#A6ACC1;}
.page-hero.dark .lead{color:#C7CBDA;}
.breadcrumb{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--slate);
  margin-bottom:18px;
}
.breadcrumb a{color:var(--slate);}
.breadcrumb a:hover{color:var(--indigo);}
.page-hero h1{font-size:clamp(28px,4.4vw,40px);line-height:1.16;font-weight:700;margin-bottom:16px;}
.lead{font-size:16.5px;color:var(--slate);max-width:640px;}

/* ---------- Content sections ---------- */
.content-section{padding:70px 0;}
.content-section h2{font-size:clamp(22px,3.2vw,30px);font-weight:700;margin-bottom:14px;}
.content-section > .wrap > p{color:var(--slate);font-size:15.5px;max-width:70ch;}
.section-head{max-width:620px;margin-bottom:44px;}
.section-head .eyebrow{margin-bottom:16px;}
.section-head h2{font-size:30px;font-weight:700;margin-bottom:14px;}
.section-head p{color:var(--slate);font-size:15.5px;}

/* ---------- Card grid / info card (used by dev, sécurité, IA pages) ---------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px;}
.card-grid.cols-2{grid-template-columns:1fr 1fr;}
.ia-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.info-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:28px 26px;transition:transform .25s ease, box-shadow .25s ease;
}
.info-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(16,19,28,.08);}
.info-icon{
  width:44px;height:44px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;
}
.info-icon.dev{background:linear-gradient(135deg,#4338CA,#6D5CE0);}
.info-icon.hr{background:linear-gradient(135deg,#9333EA,#B85CE0);}
.info-icon.sec{background:linear-gradient(135deg,#06B6D4,#3B82F6);}
.info-icon.ia{background:linear-gradient(135deg,#9333EA,#06B6D4);}
.info-card h3{font-size:17.5px;font-weight:600;margin-bottom:10px;}
.info-card p{font-size:14px;color:var(--slate);}

/* ---------- Réalisations / real-card (shared with bs-se-accueil.html) ---------- */
.realisations{padding:90px 0;}
.real-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.real-card{
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card);
  transition:transform .25s ease, box-shadow .25s ease;
}
.real-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(16,19,28,.08);}
.real-top{height:120px;background:var(--grad-soft);position:relative;overflow:hidden;}
.real-top .glyph{
  position:absolute;bottom:-18px;right:-10px;font-family:'IBM Plex Mono',monospace;
  font-size:64px;font-weight:500;color:rgba(67,56,202,.14);
}
.real-body{padding:24px 24px 28px;}
.real-body .cat{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--violet);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;display:block;}
.real-body h3{font-size:17px;font-weight:600;margin-bottom:8px;}
.real-body p{font-size:14px;color:var(--slate);}

.real-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px;}
.real-tab{
  font-family:'IBM Plex Mono',monospace;font-size:12.5px;padding:9px 16px;border-radius:999px;
  background:var(--card);border:1px solid var(--line);color:var(--slate);cursor:pointer;
  transition:all .18s ease;
}
.real-tab:hover{border-color:var(--indigo);color:var(--indigo);}
.real-tab.active{background:var(--grad);color:#fff;border-color:transparent;}

/* ---------- Confiance band (shared with bs-se-accueil.html) ---------- */
.confiance{padding:60px 0;}
.confiance-box{
  border:1px solid var(--line);border-radius:var(--radius);
  padding:44px 44px;background:var(--grad-soft);
  display:flex;gap:32px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.confiance-box p{font-size:18px;font-weight:500;max-width:640px;font-family:'Space Grotesk',sans-serif;}
.confiance-tags{display:flex;gap:10px;flex-wrap:wrap;}
.tag{
  font-family:'IBM Plex Mono',monospace;font-size:12px;padding:8px 14px;
  border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--slate);
}

/* ---------- CTA final ---------- */
.cta-final{padding:90px 0;text-align:center;}
.cta-final h2{font-size:30px;font-weight:700;max-width:640px;margin:0 auto 16px;}
.cta-final p{color:var(--slate);margin-bottom:30px;}

/* ---------- Timeline (à propos) ---------- */
.timeline{display:flex;flex-direction:column;gap:0;border-left:2px solid var(--line);padding-left:28px;margin-top:8px;}
.timeline-item{position:relative;padding-bottom:32px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-item::before{
  content:'';position:absolute;left:-33px;top:4px;width:10px;height:10px;border-radius:50%;
  background:var(--grad);border:2px solid var(--paper);
}
.timeline-item .year{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--indigo);font-weight:600;
  display:block;margin-bottom:4px;
}
.timeline-item h4{font-size:16px;font-weight:600;margin-bottom:6px;}
.timeline-item p{font-size:14px;color:var(--slate);max-width:60ch;}

/* ---------- FAQ ---------- */
.faq-list{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.faq-item{background:var(--card);}
.faq-q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 24px;background:none;border:none;text-align:left;cursor:pointer;
  font-family:'Inter',sans-serif;font-size:15.5px;font-weight:600;color:var(--ink);
}
.faq-q .plus{font-family:'IBM Plex Mono',monospace;font-size:18px;color:var(--indigo);transition:transform .2s ease;flex-shrink:0;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-item.open .faq-a{max-height:400px;}
.faq-a-inner{padding:0 24px 22px;font-size:14.5px;color:var(--slate);max-width:70ch;}

/* ---------- Contact page ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:start;}
@media (max-width:820px){ .contact-grid{grid-template-columns:1fr;} }
.contact-info-item{display:flex;gap:14px;align-items:flex-start;margin-bottom:26px;}
.contact-info-icon{
  width:40px;height:40px;border-radius:11px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--grad-soft);color:var(--indigo);
}
.contact-info-item h4{font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);font-family:'IBM Plex Mono',monospace;font-weight:600;margin-bottom:4px;}
.contact-info-item a,.contact-info-item p{font-size:15px;color:var(--ink);}
.contact-info-item a:hover{color:var(--indigo);}
.form-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:34px 32px;box-shadow:0 1px 2px rgba(16,19,28,.05), 0 8px 24px rgba(16,19,28,.06);
  display:flex;flex-direction:column;gap:20px;
}
.form-row{display:flex;flex-direction:column;gap:8px;}
.form-row label{font-size:13px;font-weight:600;color:var(--slate);}
.form-row input,.form-row textarea{
  border:1px solid var(--line);border-radius:10px;padding:12px 14px;
  font-family:'Inter',sans-serif;font-size:14.5px;color:var(--ink);background:var(--paper);
  resize:vertical;
}
.form-row input:focus,.form-row textarea:focus{outline:2px solid var(--indigo);outline-offset:1px;}
.checkbox-group{display:flex;gap:10px;flex-wrap:wrap;}
.checkbox-pill{
  display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--slate);
  border:1px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer;
}
.checkbox-pill input{accent-color:var(--indigo);}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--line);padding:56px 0 32px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;margin-bottom:40px;}
.footer-grid h4{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--slate);margin-bottom:16px;font-family:'IBM Plex Mono',monospace;}
.footer-grid ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer-grid ul li a{font-size:14px;color:var(--ink);opacity:.8;}
.footer-grid ul li a:hover{opacity:1;color:var(--indigo);}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  padding-top:24px;border-top:1px solid var(--line);
  font-size:13px;color:var(--slate);
}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* ---------- Responsive ---------- */
@media (max-width:920px){
  nav ul{display:none;}
  .menu-toggle{display:block;}
  .card-grid{grid-template-columns:1fr 1fr;}
  .ia-grid{grid-template-columns:1fr 1fr;}
  .real-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .confiance-box{flex-direction:column;align-items:flex-start;}
}
@media (max-width:640px){
  .card-grid,.card-grid.cols-2,.ia-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
}
