:root {
    --blue:#1b509f; --blue-dark:#153d7a; --blue-darker:#0e2a55;
    --blue-pale:#e9eef6; --orange:#ffb733; --orange-dark:#e5a02d;
    --header-bg:#ffffff; --grey-50:#f7f8fa; --grey-100:#eef0f4;
    --grey-200:#d5dae2; --grey-400:#8a95a3; --grey-600:#5a6577;
    --grey-800:#2c3e50; --grey-900:#1a2530; --white:#fff;
  }
  /* Site-wide: hide the in-page edit-mode toolbars (client logos, cas concrets). */
  .clients-toolbar{display:none!important}
  *{margin:0;padding:0;box-sizing:border-box}
  body{font-family:'DM Sans',sans-serif;background:var(--white);color:var(--grey-800)}
  img{display:block;width:100%;height:100%;object-fit:cover}

  /* ---------- HEADER ---------- */
  .wireframe-nav{
    position:sticky;top:0;z-index:100;background:var(--header-bg);
    display:flex;align-items:center;justify-content:space-between;
    padding:0 40px;height:84px;
    border-bottom:1px solid var(--grey-100);
    box-shadow:0 4px 20px rgba(0,0,0,0.04),0 1px 2px rgba(0,0,0,0.03);
  }
  .nav-logo{display:flex;align-items:center;height:100%;flex-shrink:0}
  .nav-logo a{display:flex;align-items:center;height:100%;text-decoration:none;gap:12px}
  .nav-logo img{
    height:72px;width:auto;max-width:240px;object-fit:contain;display:block;
  }
  .nav-logo .wordmark-fallback{
    display:none;align-items:center;gap:10px;line-height:1;
  }
  .nav-logo .wordmark-fallback .wm-mark{
    width:40px;height:40px;background:var(--blue);color:var(--orange);
    display:flex;align-items:center;justify-content:center;
    font-weight:800;font-size:18px;letter-spacing:.5px;
  }
  .nav-logo .wordmark-fallback .wm-text{
    display:flex;flex-direction:column;gap:3px;
    font-weight:700;font-size:15px;color:var(--blue-darker);
    letter-spacing:1px;text-transform:uppercase;
  }
  .nav-logo .wordmark-fallback .wm-text small{
    font-size:10px;font-weight:600;color:var(--grey-400);letter-spacing:3px;
  }
  .nav-logo img.is-broken{display:none}
  .nav-logo img.is-broken + .wordmark-fallback{display:inline-flex}

  .nav-links{display:flex;gap:28px}
  .nav-links a{color:var(--grey-600);text-decoration:none;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;transition:color .2s}
  .nav-links a:hover{color:var(--blue)}
  .cta-btn{background:var(--blue);color:var(--white);border:none;padding:10px 24px;font-size:13px;font-weight:600;cursor:pointer;letter-spacing:.5px;text-transform:uppercase;transition:background .2s}
  .cta-btn:hover{background:var(--blue-dark)}

  .breadcrumbs{padding:10px 40px;font-size:12px;color:var(--grey-400);background:var(--grey-50);border-bottom:1px solid var(--grey-100)}
  .breadcrumbs a{color:var(--grey-400);text-decoration:none}.breadcrumbs a:hover{color:var(--blue)}.breadcrumbs span{margin:0 6px}

  .page-sep{background:var(--blue-darker);color:var(--white);padding:16px 40px;font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;display:flex;align-items:center;gap:12px}
  .page-sep::before{content:'';width:24px;height:2px;background:var(--orange)}

  .hero{position:relative;height:500px;overflow:hidden}
  .hero img{filter:brightness(.3)}
  .hero-content{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 80px;max-width:720px}
  .hero-tag{font-size:12px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--orange);margin-bottom:16px}
  .hero h1{font-size:40px;font-weight:700;color:var(--white);line-height:1.15;margin-bottom:20px}
  .hero h1 span{color:var(--orange)}
  .hero p{font-size:16px;color:rgba(255,255,255,.7);line-height:1.7;margin-bottom:28px;max-width:520px}
  .btn-row{display:flex;gap:12px}
  .btn-solid{background:var(--orange);color:var(--blue-darker);border:none;padding:14px 32px;font-size:14px;font-weight:700;cursor:pointer;letter-spacing:.3px;transition:background .2s}
  .btn-solid:hover{background:var(--orange-dark)}
  .btn-outline{background:transparent;color:var(--white);border:2px solid rgba(255,255,255,.3);padding:12px 28px;font-size:14px;font-weight:500;cursor:pointer;transition:border-color .2s}
  .btn-outline:hover{border-color:var(--orange);color:var(--orange)}

  .stats-bar{display:grid;grid-template-columns:repeat(4,1fr);background:var(--blue)}
  .stat{padding:32px;text-align:center;border-right:1px solid rgba(255,255,255,.1)}.stat:last-child{border-right:none}
  .stat-num{font-size:36px;font-weight:700;color:var(--orange);font-variant-numeric:tabular-nums;display:inline-block;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
  .stat-num.pulse{transform:scale(1.08)}
  .stat-label{font-size:12px;color:rgba(255,255,255,.6);margin-top:4px;text-transform:uppercase;letter-spacing:1.5px}

  .section{padding:64px 40px;position:relative}
  .section.has-pattern{
    background:#fafbfc url('assets/bg-expertises.jpg') center/cover no-repeat;
  }
  .section.has-pattern::before{
    content:'';position:absolute;inset:0;pointer-events:none;
    background:rgba(255,255,255,.55);
  }
  .section.has-pattern > *{position:relative;z-index:1}
  .section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:40px;padding-bottom:16px;border-bottom:1px solid var(--grey-100)}
  .section-header h2{font-size:28px;font-weight:700;color:var(--grey-800)}
  .section-header h2 span{color:var(--blue)}
  .section-header .more{font-size:13px;color:var(--blue);text-decoration:none;font-weight:600;letter-spacing:.5px}
  .section-header .more:hover{color:var(--orange-dark)}

  .expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
  .exp-card{border:1px solid var(--grey-100);padding:36px 28px;position:relative;transition:all .25s;background:var(--white)}
  .exp-card:hover{background:var(--blue-pale)}
  .exp-card::before{content:'';position:absolute;top:0;left:0;width:0;height:3px;background:var(--orange);transition:width .3s}
  .exp-card:hover::before{width:100%}
  .exp-icon{width:48px;height:48px;background:var(--blue);display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--orange);font-size:16px;font-weight:700;letter-spacing:.5px}
  .exp-card h3{font-size:16px;font-weight:700;color:var(--blue-dark);margin-bottom:8px}
  .exp-card p{font-size:14px;color:var(--grey-600);line-height:1.6}

  .ref-section{background:#3a3a3a;padding:64px 0 72px}
  .ref-section .ref-title{text-align:center;color:var(--white);font-size:30px;font-weight:700;margin-bottom:36px;letter-spacing:.2px}
  .ref-section .ref-title span{color:var(--orange)}
  .ref-strip{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;max-width:1240px;margin:0 auto;padding:0 24px}
  .ref-tile{aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px 8px;color:var(--white);text-align:center;transition:transform .35s cubic-bezier(.34,1.4,.64,1),box-shadow .35s,filter .35s;cursor:default;will-change:transform}
  .ref-tile:hover{transform:translateY(-6px) rotate(-2deg);filter:brightness(1.08);box-shadow:0 14px 28px rgba(0,0,0,.35)}
  .ref-tile svg{width:40px;height:40px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s}
  .ref-tile:hover svg{transform:scale(1.08)}
  .ref-tile .ref-label{font-size:12.5px;font-weight:700;line-height:1.2;letter-spacing:.2px}
  .ref-tile.c1{background:#6b2fb3}
  .ref-tile.c2{background:#1f4cb8}
  .ref-tile.c3{background:#3aa3df}
  .ref-tile.c4{background:#0f8a6a}
  .ref-tile.c5{background:#8bbf2a}
  .ref-tile.c6{background:#e09a1a}
  .ref-tile.c7{background:#d9542a}
  .ref-tile.c8{background:#c8262a}

  .actu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
  .actu-card{border:1px solid var(--grey-100);overflow:hidden;transition:all .25s;background:var(--white);display:flex;flex-direction:column}
  .actu-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.06)}
  .actu-img{height:200px;position:relative}
  .actu-img .cat{position:absolute;bottom:0;left:0;background:var(--blue);color:var(--white);font-size:10px;font-weight:700;padding:5px 12px;letter-spacing:1.5px;text-transform:uppercase}
  .actu-body{padding:24px;flex:1;display:flex;flex-direction:column}
  .actu-body .date{font-size:11px;color:var(--grey-400);margin-bottom:8px;text-transform:uppercase;letter-spacing:1.5px}
  .actu-body h3{font-size:16px;font-weight:700;color:var(--grey-800);margin-bottom:8px;line-height:1.35}
  .actu-body p{font-size:14px;color:var(--grey-600);line-height:1.6}
  .actu-btn{margin-top:auto;align-self:flex-end;display:inline-flex;align-items:center;gap:9px;background:var(--blue);color:var(--white);text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.4px;padding:11px 20px;transition:background .2s}
  .actu-btn i{font-size:14px;transition:transform .2s}
  .actu-btn:hover{background:var(--orange);color:var(--blue-darker)}
  .actu-btn:hover i{transform:scale(1.12)}

  .cta-band{background:var(--blue);padding:56px 40px;display:flex;align-items:center;justify-content:space-between}
  .cta-band h2{font-size:26px;color:var(--white);font-weight:700}
  .cta-band h2 span{color:var(--orange)}
  .cta-band p{color:rgba(255,255,255,.6);margin-top:8px;font-size:15px}

  .cabinet-hero{display:grid;grid-template-columns:1fr 1fr;min-height:400px}
  .cabinet-text{padding:60px 48px;display:flex;flex-direction:column;justify-content:center;background:var(--grey-50)}
  .cabinet-text h2{font-size:30px;font-weight:700;color:var(--grey-800);margin-bottom:16px;line-height:1.3}
  .cabinet-text h2 span{color:var(--blue)}
  .cabinet-text p{font-size:15px;color:var(--grey-600);line-height:1.7;margin-bottom:16px}
  .cabinet-img{position:relative;overflow:hidden;min-height:400px}

  .team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
  .team-card{border:1px solid var(--grey-100);text-align:center;overflow:hidden;transition:all .2s;background:var(--white)}
  .team-card:hover{border-color:var(--blue)}
  .team-photo{height:220px;background:linear-gradient(180deg,var(--grey-50) 0%,var(--blue-pale) 100%);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
  .team-photo .avatar-disc{width:140px;height:140px;border-radius:50%;background:var(--blue);position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;box-shadow:0 8px 24px rgba(27,80,159,.25);transition:transform .3s}
  .team-card:hover .avatar-disc{transform:translateY(-4px)}
  .team-photo .avatar-disc::before{content:'';position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border-radius:50%;border:2px solid var(--orange);opacity:0;transition:opacity .3s}
  .team-card:hover .avatar-disc::before{opacity:1}
  .team-photo svg{width:auto;height:110%;display:block;fill:#fff}
  .team-photo .portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);mix-blend-mode:luminosity;transition:transform .4s}
  .team-card:hover .team-photo .portrait{transform:scale(1.05)}
  .team-photo.mode-photo{background:var(--blue)}
  .team-photo.mode-photo .avatar-disc{display:none}
  .team-photo.mode-pictogram .portrait{display:none}
  .team-photo::after{content:'';position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(transparent,rgba(14,42,85,.04));pointer-events:none}
  .team-info{padding:20px}
  .team-info h4{font-size:15px;font-weight:700;color:var(--grey-800)}
  .team-info .role{font-size:11px;color:var(--blue);font-weight:600;text-transform:uppercase;letter-spacing:1.5px;margin-top:4px}

  /* ---- Organigramme ---- */
  .org{padding:8px 40px 28px;overflow-x:auto}
  .org ul{display:flex;justify-content:center;position:relative;padding-top:30px;list-style:none}
  .org-root-ul{padding-top:0}
  .org li.org-li{position:relative;display:flex;flex-direction:column;align-items:center;padding:30px 11px 0}
  .org li.org-li::before,.org li.org-li::after{content:'';position:absolute;top:0;width:50%;height:30px;border-top:2px solid var(--grey-200)}
  .org li.org-li::before{right:50%}
  .org li.org-li::after{left:50%;border-left:2px solid var(--grey-200)}
  .org li.org-li:first-child::before{border:0}
  .org li.org-li:last-child::after{border:0}
  .org li.org-li:last-child::before{border-right:2px solid var(--grey-200)}
  .org li.org-li:only-child::before,.org li.org-li:only-child::after{display:none}
  .org li.org-li:only-child{padding-top:0}
  .org ul ul::before{content:'';position:absolute;top:0;left:50%;height:30px;border-left:2px solid var(--grey-200)}
  .org .team-card{width:198px}
  .org .team-card.org-boss{border-top:3px solid var(--orange)}
  .org-zone{display:inline-flex;align-items:center;gap:9px;background:var(--blue);color:var(--white);font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:11px 24px}
  .org-zone::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--orange)}

  /* ---- Team organisation graphic (accueil) ---- */
  .team-graphic{display:grid;grid-template-columns:312px 1fr;border:1px solid var(--grey-100);background:var(--white)}
  .tg-direction{background:var(--blue);color:var(--white);padding:40px 34px;display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden}
  .tg-direction::after{content:'';position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.04)}
  .tg-badge{font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--orange);margin-bottom:22px;position:relative}
  .tg-badge::before{content:'';display:inline-block;width:22px;height:2px;background:var(--orange);vertical-align:middle;margin-right:10px}
  .tg-boss-avatar{width:118px;height:118px;border-radius:50%;background:var(--blue-dark);display:flex;align-items:flex-end;justify-content:center;overflow:hidden;margin-bottom:20px;box-shadow:0 12px 28px rgba(0,0,0,.28);border:3px solid var(--orange);position:relative}
  .tg-boss-avatar svg{height:110%;width:auto;fill:#fff;display:block}
  .tg-direction h3{font-size:23px;font-weight:700;margin-bottom:5px;position:relative}
  .tg-boss-role{font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--orange);margin-bottom:18px;position:relative}
  .tg-boss-note{font-size:13.5px;line-height:1.65;color:rgba(255,255,255,.72);position:relative}
  .tg-zones{display:grid;grid-template-columns:1fr 1fr}
  .tg-zone{padding:30px 30px 34px}
  .tg-zone + .tg-zone{border-left:1px solid var(--grey-100)}
  .tg-zone-head{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--blue-dark);padding-bottom:16px;margin-bottom:20px;border-bottom:2px solid var(--grey-100)}
  .tg-zone-head .pin{width:30px;height:30px;border-radius:50%;background:var(--blue-pale);color:var(--blue);display:inline-flex;align-items:center;justify-content:center;font-size:13px;flex:none}
  .tg-zone-count{margin-left:auto;font-size:11px;font-weight:600;letter-spacing:.5px;color:var(--grey-400);text-transform:none}
  .tg-people{display:flex;flex-direction:column;gap:18px}
  .tg-person{display:flex;align-items:center;gap:15px}
  .tg-person .disc{width:58px;height:58px;border-radius:50%;background:var(--blue);overflow:hidden;display:flex;align-items:flex-end;justify-content:center;flex:none;transition:transform .25s}
  .tg-person:hover .disc{transform:translateY(-3px)}
  .tg-person .disc svg{height:108%;width:auto;fill:#fff;display:block}
  .tg-person .who h4{font-size:15px;font-weight:700;color:var(--grey-800);line-height:1.2}
  .tg-person .who .role{font-size:11px;color:var(--blue);font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-top:4px}
  @media(max-width:860px){
    .team-graphic{grid-template-columns:1fr}
    .tg-zones{grid-template-columns:1fr}
    .tg-zone + .tg-zone{border-left:0;border-top:1px solid var(--grey-100)}
  }

  .contact-section{display:grid;grid-template-columns:1fr 1fr}
  .contact-form-block{padding:60px 48px;background:var(--white)}
  .contact-form-block h2{font-size:26px;font-weight:700;color:var(--grey-800);margin-bottom:32px}
  .form-row{display:flex;gap:12px;margin-bottom:12px}
  .form-field{flex:1;min-width:0;padding:14px 16px;border:1px solid var(--grey-200);font-family:inherit;font-size:14px;background:var(--grey-50);outline:none;transition:border-color .2s}
  .form-field:focus{border-color:var(--blue);background:var(--white)}
  .form-field.full{width:100%;margin-bottom:12px}
  textarea.form-field{min-height:120px;resize:vertical}
  .form-submit{background:var(--blue);color:var(--white);border:none;padding:16px 40px;font-size:14px;font-weight:700;cursor:pointer;letter-spacing:.5px;text-transform:uppercase;margin-top:4px;transition:background .2s}
  .form-submit:hover{background:var(--blue-dark)}
  .contact-map{background:var(--grey-100);position:relative;min-height:500px}
  .contact-map .map-overlay{position:absolute;bottom:0;left:0;right:0;background:var(--blue-darker);padding:32px}
  .contact-map .map-overlay h3{font-size:16px;color:var(--white);font-weight:700;margin-bottom:12px}
  .loc-item{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
  .loc-dot{width:8px;height:8px;background:var(--orange);margin-top:6px;flex-shrink:0}
  .loc-item p{font-size:13px;color:rgba(255,255,255,.7);line-height:1.5}
  .loc-item strong{color:var(--white)}

  .footer{background:var(--grey-900);padding:48px 40px 24px}
  .footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
  .footer h4{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:16px}
  .footer p,.footer a{font-size:14px;color:rgba(255,255,255,.5);text-decoration:none;line-height:1.8;display:block}
  .footer a:hover{color:var(--orange)}
  .footer-bar{border-top:1px solid rgba(255,255,255,.06);padding-top:20px;display:flex;justify-content:space-between}
  .footer-bar span{font-size:12px;color:rgba(255,255,255,.25)}

  /* ---------- Team mode picker (floating) — removed ---------- */

  /* tighten nav between desktop and mobile so the two CTAs never clip */
  @media(max-width:1120px){
    .wireframe-nav{padding:0 20px}
    .nav-links{gap:16px}
    .nav-links a{font-size:12px}
    .cta-btn{padding:9px 14px}
    .nav-cta-group{gap:8px}
  }
  @media(max-width:880px) and (min-width:769px){
    .nav-links{gap:12px}
    .nav-links a{font-size:11px;letter-spacing:.2px}
    .cta-oc2 span{display:none}
  }

  @media(max-width:768px){
    .nav-links{display:none}.wireframe-nav{padding:0 20px;height:72px}
    .nav-logo img{height:72px;max-width:180px}
    .hero{height:400px}.hero-content{padding:0 20px;max-width:100%}.hero h1{font-size:28px}
    .stats-bar{grid-template-columns:repeat(2,1fr)}
    .stat{padding:24px 16px}
    .expertise-grid,.actu-grid{grid-template-columns:1fr}
    .ref-strip{grid-template-columns:repeat(2,1fr);gap:6px}
    .ref-section .ref-title{font-size:22px;padding:0 20px}
    .cabinet-hero,.contact-section{grid-template-columns:minmax(0,1fr)}
    .cabinet-text,.contact-form-block{padding:40px 20px}
    .team-grid{grid-template-columns:repeat(2,1fr)}
    .footer{padding:40px 20px 20px}
    .footer-grid{grid-template-columns:1fr 1fr;gap:28px}
    .section{padding:40px 20px}
    .breadcrumbs{padding:10px 20px}
    .page-sep{padding:14px 20px}
    .cta-band{flex-direction:column;gap:24px;text-align:center;padding:40px 20px}
    .section-header{flex-direction:column;align-items:flex-start;gap:8px}
  }

  /* ---------- SHARED EXTRAS for sub-pages ---------- */
  a{color:inherit}
  .nav-links a.active{color:var(--blue)}
  .nav-links a.active::after{content:'';display:block;height:2px;background:var(--orange);margin-top:6px}
  .page-hero{position:relative;height:300px;overflow:hidden;background:var(--blue-darker)}
  .page-hero img{filter:brightness(.35)}
  .page-hero .hero-content{padding:0 80px}
  .page-hero h1{font-size:36px;margin-bottom:8px}
  .page-hero p{margin-bottom:0}
  .container{max-width:1240px;margin:0 auto}
  .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:40px}
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
  .lead{font-size:17px;color:var(--grey-600);line-height:1.7;max-width:760px}
  .placeholder{background:repeating-linear-gradient(45deg,#fff5e1,#fff5e1 8px,#fff 8px,#fff 16px);border:1px dashed var(--orange);color:var(--orange-dark);padding:8px 12px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;display:inline-block}
  .timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:24px}
  .tl-step{padding:24px 20px;border-right:1px solid var(--grey-100);position:relative}
  .tl-step:last-child{border-right:none}
  .tl-step .num{font-size:48px;font-weight:700;color:var(--blue-pale);line-height:1;margin-bottom:8px;font-variant-numeric:tabular-nums}
  .tl-step h4{font-size:15px;color:var(--blue-darker);margin-bottom:6px;font-weight:700}
  .tl-step p{font-size:13px;color:var(--grey-600);line-height:1.6}
  .values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:8px}
  .value-card{padding:32px 28px;border:1px solid var(--grey-100);transition:all .25s}
  .value-card:hover{background:var(--blue-pale);transform:translateY(-2px)}
  .value-card .v-num{font-size:11px;color:var(--orange-dark);font-weight:700;letter-spacing:2px;margin-bottom:12px}
  .value-card h4{font-size:17px;color:var(--blue-darker);font-weight:700;margin-bottom:8px}
  .value-card p{font-size:14px;color:var(--grey-600);line-height:1.6}

  /* expertise detail page */
  .expertise-detail{display:grid;grid-template-columns:2fr 1fr;gap:48px;align-items:start}
  .exp-content h2{font-size:24px;font-weight:700;color:var(--blue-darker);margin:32px 0 16px}
  .exp-content h2:first-child{margin-top:0}
  .exp-content p{font-size:15px;color:var(--grey-600);line-height:1.75;margin-bottom:14px}
  .exp-content ul{margin:8px 0 16px 0;padding-left:0;list-style:none}
  .exp-content ul li{padding:10px 0 10px 28px;border-bottom:1px solid var(--grey-100);font-size:14px;color:var(--grey-600);position:relative}
  .exp-content ul li::before{content:'›';position:absolute;left:8px;color:var(--orange);font-weight:700;font-size:18px;line-height:1}
  .exp-aside{background:var(--grey-50);padding:32px;border-top:3px solid var(--orange);position:sticky;top:104px}
  .exp-aside h4{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--blue);margin-bottom:14px;font-weight:700}
  .exp-aside .meta-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--grey-100);font-size:13px}
  .exp-aside .meta-row:last-child{border-bottom:none}
  .exp-aside .meta-row span:first-child{color:var(--grey-400)}
  .exp-aside .meta-row span:last-child{color:var(--grey-800);font-weight:600;text-align:right}
  .exp-aside button{margin-top:20px;width:100%}

  /* case studies */
  .cases-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:24px}
  .case-card{border:1px solid var(--grey-100);padding:28px 24px;background:var(--white);transition:all .25s;position:relative;overflow:hidden}
  .case-card::after{content:'';position:absolute;top:0;right:0;width:0;height:0;border-style:solid;border-width:0 32px 32px 0;border-color:transparent var(--blue-pale) transparent transparent;transition:border-color .25s}
  .case-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.06)}
  .case-card:hover::after{border-color:transparent var(--orange) transparent transparent}
  .case-card .case-cat{font-size:10px;color:var(--orange-dark);font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}
  .case-card h4{font-size:16px;color:var(--blue-darker);font-weight:700;margin-bottom:10px;line-height:1.35}
  .case-card .case-desc{font-size:13px;color:var(--grey-600);line-height:1.6;margin-bottom:16px}
  .case-card .case-amount{font-size:22px;color:var(--blue);font-weight:700;font-variant-numeric:tabular-nums}
  .case-card .case-amount small{font-size:12px;color:var(--grey-400);font-weight:500;display:block;text-transform:uppercase;letter-spacing:1.5px;margin-top:2px}

  /* references — filters */
  .filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px;padding:20px;background:var(--grey-50);border:1px solid var(--grey-100)}
  .filter-bar button{background:var(--white);border:1px solid var(--grey-200);padding:8px 16px;font-size:12px;font-weight:600;font-family:inherit;color:var(--grey-600);cursor:pointer;letter-spacing:.5px;transition:all .2s;text-transform:uppercase}
  .filter-bar button:hover{border-color:var(--blue);color:var(--blue)}
  .filter-bar button.active{background:var(--blue);color:var(--white);border-color:var(--blue)}
  .ref-clients-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0}
  .client-tile{aspect-ratio:3/2;border:1px solid var(--grey-100);background:var(--white);display:flex;align-items:center;justify-content:center;padding:18px;font-size:13px;color:var(--grey-600);font-weight:700;text-transform:uppercase;letter-spacing:.5px;text-align:center;transition:all .25s}
  .client-tile:hover{background:var(--blue-pale);color:var(--blue);transform:scale(1.04);z-index:2;box-shadow:0 6px 18px rgba(0,0,0,.08)}
  .client-tile.hidden{display:none}

  /* territory map */
  .territory-block{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
  .territory-svg{background:var(--blue-pale);padding:32px;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}
  .territory-svg svg{width:100%;height:100%}
  .territory-list{display:flex;flex-direction:column;gap:16px}
  .terr-item{padding:20px 24px;border:1px solid var(--grey-100);background:var(--white);display:flex;justify-content:space-between;align-items:center;transition:all .2s}
  .terr-item:hover{border-color:var(--blue);background:var(--blue-pale)}
  .terr-item h4{font-size:16px;color:var(--blue-darker);font-weight:700}
  .terr-item .terr-count{font-size:24px;color:var(--orange-dark);font-weight:700;font-variant-numeric:tabular-nums}
  .terr-item .terr-count small{font-size:11px;color:var(--grey-400);display:block;text-transform:uppercase;letter-spacing:1.5px;font-weight:500}

  /* news featured */
  .featured-actu{display:grid;grid-template-columns:1.2fr 1fr;border:1px solid var(--grey-100);background:var(--white);overflow:hidden;margin-bottom:48px}
  .featured-img{height:100%;min-height:340px;position:relative;background:var(--blue-pale)}
  .featured-img .cat{position:absolute;top:24px;left:0;background:var(--orange);color:var(--blue-darker);font-size:11px;font-weight:700;padding:6px 16px;letter-spacing:1.5px;text-transform:uppercase}
  .featured-body{padding:48px}
  .featured-body .date{font-size:11px;color:var(--grey-400);margin-bottom:12px;text-transform:uppercase;letter-spacing:1.5px}
  .featured-body h2{font-size:28px;color:var(--grey-800);font-weight:700;margin-bottom:16px;line-height:1.25}
  .featured-body p{font-size:15px;color:var(--grey-600);line-height:1.7;margin-bottom:24px}
  .featured-body .read-more{font-size:13px;color:var(--blue);font-weight:700;letter-spacing:1px;text-transform:uppercase;text-decoration:none}
  .featured-body .read-more:hover{color:var(--orange-dark)}

  /* newsletter */
  .newsletter-band{background:var(--blue-darker);padding:56px 40px;text-align:center}
  .newsletter-band h2{font-size:26px;color:var(--white);font-weight:700;margin-bottom:8px}
  .newsletter-band h2 span{color:var(--orange)}
  .newsletter-band p{color:rgba(255,255,255,.6);font-size:14px;margin-bottom:24px}
  .newsletter-form{display:flex;gap:0;max-width:520px;margin:0 auto}
  .newsletter-form input{flex:1;padding:14px 18px;border:none;font-family:inherit;font-size:14px;background:var(--white);outline:none}
  .newsletter-form button{background:var(--orange);color:var(--blue-darker);border:none;padding:0 28px;font-size:13px;font-weight:700;cursor:pointer;letter-spacing:.5px;text-transform:uppercase;transition:background .2s}
  .newsletter-form button:hover{background:var(--orange-dark)}

  /* contact details cards */
  .contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:48px}
  .contact-card{padding:32px 28px;border:1px solid var(--grey-100);background:var(--white);transition:all .25s}
  .contact-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.06);border-color:var(--blue)}
  .contact-card h4{font-size:11px;color:var(--orange-dark);letter-spacing:2px;text-transform:uppercase;font-weight:700;margin-bottom:14px}
  .contact-card .city{font-size:18px;color:var(--blue-darker);font-weight:700;margin-bottom:8px}
  .contact-card p{font-size:14px;color:var(--grey-600);line-height:1.7}
  .contact-card a{color:var(--blue);text-decoration:none;font-weight:600}
  .contact-card a:hover{color:var(--orange-dark)}

  .socials{display:flex;gap:12px;margin-top:24px}
  .socials a{width:40px;height:40px;background:var(--blue);color:var(--white);display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:14px;font-weight:700;transition:background .2s}
  .socials a:hover{background:var(--orange);color:var(--blue-darker)}

  /* scroll reveal */
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease}
  .reveal.in{opacity:1;transform:none}

  /* sub-page mobile */
  @media(max-width:768px){
    .page-hero .hero-content{padding:0 20px}
    .page-hero h1{font-size:26px}
    .grid-2,.grid-3,.timeline,.values-grid,.cases-grid,.contact-cards,.featured-actu,.expertise-detail,.territory-block{grid-template-columns:minmax(0,1fr)}
    .featured-body{padding:28px 20px}
    .ref-clients-grid{grid-template-columns:repeat(3,1fr)}
    .exp-aside{position:static}
    .newsletter-form{flex-direction:column;gap:8px}
    .newsletter-form button{padding:14px 28px}
  }

  /* Partner card (Autres expertises) */
  .exp-partner-card{margin-top:32px;background:linear-gradient(135deg,var(--blue-darker) 0%,var(--blue) 100%);color:var(--white);position:relative;overflow:hidden}
  .exp-partner-card::before{content:'';position:absolute;top:0;left:0;width:6px;height:100%;background:var(--orange)}
  .exp-partner-inner{padding:48px 56px;max-width:900px}
  .exp-partner-eyebrow{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--orange);margin-bottom:14px}
  .exp-partner-card h3{font-size:26px;font-weight:700;color:var(--white);margin-bottom:14px;line-height:1.2}
  .exp-partner-card p{font-size:15px;color:rgba(255,255,255,.78);line-height:1.7;margin-bottom:20px;max-width:680px}
  .exp-partner-tags{display:flex;flex-wrap:wrap;gap:8px}
  .exp-partner-tags span{display:inline-block;padding:7px 14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,183,51,.3);color:var(--white);font-size:12px;font-weight:600;letter-spacing:.5px}
  @media(max-width:720px){.exp-partner-inner{padding:32px 24px}.exp-partner-card h3{font-size:22px}}

  /* "…et bien d'autres" tile */
  .client-tile.client-tile-more{background:var(--blue-pale);color:var(--blue);font-style:italic;text-transform:none;letter-spacing:.2px}

  /* case study placeholders (photos à venir) */
  .case-card.case-placeholder{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
  .case-placeholder .ph-visual{
    width:100%;height:150px;display:flex;align-items:center;justify-content:center;
    background:repeating-linear-gradient(45deg,#fff5e1,#fff5e1 8px,#fff 8px,#fff 16px);
    border:1px dashed var(--orange);
  }
  .case-placeholder .ph-visual span{
    font-family:'DM Mono',ui-monospace,monospace;font-size:12px;font-weight:600;
    letter-spacing:1px;text-transform:uppercase;color:var(--orange-dark);
  }

/* Formulaire de premier contact (compact accueil + complet contact) */
.qf-lead{font-size:14px;color:var(--grey-600);line-height:1.6;margin:-20px 0 24px;text-wrap:pretty}
.qf-step{display:inline-block;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--orange-dark);margin-bottom:10px}
.qf-label{display:block;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--grey-800);margin:0 0 10px}
.qf-label small{font-weight:500;text-transform:none;letter-spacing:0;color:var(--grey-400);margin-left:6px}
.qf-group{margin-bottom:22px}
.qf-chips{display:flex;flex-wrap:wrap;gap:8px}
.qf-chips.cols-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.qf-chip{position:relative;display:flex;align-items:center;padding:10px 14px;border:1px solid var(--grey-200);background:var(--grey-50);font-size:13px;font-weight:600;color:var(--grey-600);cursor:pointer;transition:all .15s;user-select:none;white-space:nowrap}
.qf-chip input{position:absolute;opacity:0;pointer-events:none}
.qf-chip:hover{border-color:var(--blue);color:var(--blue)}
.qf-chip:has(input:checked){background:var(--blue);border-color:var(--blue);color:var(--white)}
.qf-chip:has(input:focus-visible){outline:2px solid var(--orange);outline-offset:2px}
.qf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:8px}
.qf-actions .form-submit{margin-top:0}
.qf-note{font-size:13px;color:var(--grey-400)}
.qf-consent{display:flex;gap:10px;font-size:13px;color:var(--grey-600);line-height:1.5;margin:8px 0 20px}
.qf-consent input{margin-top:3px;flex-shrink:0}
.qf-section{padding:28px 0;border-top:1px solid var(--grey-100)}
.qf-section:first-of-type{border-top:none;padding-top:0}
.qf-section h3{display:flex;align-items:baseline;gap:12px;font-size:18px;font-weight:700;color:var(--blue-darker);margin-bottom:20px}
.qf-section h3 span{font-size:12px;font-weight:700;letter-spacing:2px;color:var(--orange-dark)}
.qf-resume{display:none;background:var(--blue-pale);border-left:3px solid var(--orange);padding:14px 18px;font-size:14px;color:var(--blue-darker);margin-bottom:28px}
.qf-resume.on{display:block}
.qf-done{display:none;padding:40px 0}
.qf-done h3{font-size:22px;color:var(--blue-darker);margin-bottom:10px}
.qf-done p{font-size:15px;color:var(--grey-600);line-height:1.7}
form.sent .qf-body{display:none}
form.sent .qf-done{display:block}
.contact-section.is-full{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.contact-section.is-full .contact-map{min-height:100%}
@media(max-width:768px){.contact-section.is-full{grid-template-columns:minmax(0,1fr)}.contact-section.is-full .contact-map{min-height:420px}.qf-chips.cols-2{grid-template-columns:minmax(0,1fr)}.form-row{flex-direction:column}}

.cta-btn.is-active{background:var(--blue-darker);box-shadow:inset 0 -3px 0 var(--orange)}
.contact-section.is-solo{display:block;max-width:900px;margin:0 auto}
.contact-cards.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
