:root{
  --chu-blue:#00558c;
  --chu-blue-dark:#003f66;
  --chu-cyan:#00a3c8;
  --chu-green:#7ab51d;
  --ink:#14233b;
  --muted:#637083;
  --line:#d9e3ea;
  --bg:#f5f8fb;
  --card:#ffffff;
  --shadow:0 18px 45px rgba(10,43,74,.10);
  --radius:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55}
a{color:var(--chu-blue);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;display:block}.container{width:min(1160px,92vw);margin:0 auto}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.75rem;z-index:10}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.header{height:84px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;align-items:center;gap:1rem}.chu-logo{height:48px;width:auto}.brand-text{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.brand-name{font-weight:800;color:var(--chu-blue-dark);line-height:1.15}.nav{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;justify-content:flex-end}.nav a{font-size:.93rem;color:var(--ink);padding:.55rem .75rem;border-radius:999px}.nav a:hover,.nav a.active{background:#eaf4fa;text-decoration:none;color:var(--chu-blue-dark)}.menu-toggle{display:none;border:1px solid var(--line);background:#fff;border-radius:10px;padding:.5rem .75rem}
.hero{background:linear-gradient(130deg,#fff 0%,#f8fbfd 45%,#e8f5fa 100%);border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center;padding:4.5rem 0}.service-logo{width:210px;border-radius:14px;box-shadow:var(--shadow);margin-bottom:1.4rem}.kicker{font-size:.84rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--chu-blue)}h1{font-size:clamp(2.3rem,5vw,4.6rem);line-height:.98;margin:.55rem 0 1rem;color:var(--chu-blue-dark);font-weight:900;letter-spacing:-.04em}h2{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.05;margin:0 0 .8rem;color:var(--chu-blue-dark)}h3{margin:.2rem 0 .6rem;color:var(--chu-blue-dark);line-height:1.2}.lead{font-size:1.16rem;color:#3f4b5f;max-width:62ch}.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.78rem 1rem;font-weight:800;border:1px solid transparent}.btn.primary{background:var(--chu-blue);color:#fff}.btn.secondary{background:#fff;color:var(--chu-blue-dark);border-color:var(--line)}.btn.ghost{background:#eef7fb;color:var(--chu-blue-dark)}.btn:hover{text-decoration:none;filter:brightness(.98)}.team-photo-card{background:#fff;border-radius:28px;padding:.7rem;box-shadow:var(--shadow);position:relative}.team-photo-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:22px}.caption{font-size:.85rem;color:var(--muted);margin:.7rem .4rem .2rem}
.section{padding:4.5rem 0}.section.alt{background:#fff}.section-head{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:2rem}.section-head p{max-width:62ch;color:var(--muted);margin:.3rem 0 0}.grid{display:grid;gap:1.25rem}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:repeat(2,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.35rem;box-shadow:0 8px 22px rgba(10,43,74,.05)}.card strong{color:var(--chu-blue-dark)}.tags{display:flex;flex-wrap:wrap;gap:.45rem;margin:.85rem 0}.tag{font-size:.78rem;background:#eaf4fa;color:var(--chu-blue-dark);border:1px solid #cbe4f0;border-radius:999px;padding:.25rem .55rem;font-weight:700}.stat{border-left:6px solid var(--chu-cyan)}.stat .num{font-size:2rem;font-weight:900;color:var(--chu-blue-dark)}
.page-hero{padding:3.2rem 0;background:#fff;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(2.1rem,4vw,3.6rem)}.breadcrumbs{font-size:.85rem;color:var(--muted);margin-bottom:.75rem}.person-card{display:grid;grid-template-columns:110px 1fr;gap:1rem}.avatar{width:110px;height:110px;border-radius:18px;object-fit:cover;background:linear-gradient(135deg,#dfeef5,#fff);border:1px solid var(--line)}.avatar.missing{display:flex;align-items:center;justify-content:center;color:var(--chu-blue);font-weight:900;font-size:2rem}.person-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.9rem}.small{font-size:.9rem;color:var(--muted)}
.news-card time{font-weight:800;color:var(--chu-blue)}.trial-status{display:inline-flex;border-radius:999px;padding:.25rem .55rem;background:#eaf7e8;color:#2c6b16;font-weight:800;font-size:.82rem}.contact-unit h3{margin-bottom:.2rem}.contact-line{display:grid;grid-template-columns:130px 1fr;gap:.75rem;border-top:1px solid #edf2f5;padding:.55rem 0}.contact-line:first-of-type{border-top:0}.footer{background:#102a43;color:#d9e9f3;padding:2.5rem 0;margin-top:2rem}.footer a{color:#fff}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:1.5rem}.footer-logo{height:46px;width:auto;margin-bottom:1rem;filter:brightness(0) invert(1)}
.placeholder-note{display:none}.json-help{background:#f2f7fb;border:1px dashed #aacbdc;border-radius:16px;padding:1rem;color:#405065;font-size:.93rem}
@media(max-width:900px){.header{height:auto;padding:1rem 0;align-items:flex-start}.menu-toggle{display:block}.nav{display:none;width:100%;padding:.75rem 0}.nav.open{display:flex}.brand{flex:1}.hero-grid,.grid.three,.grid.two,.footer-grid{grid-template-columns:1fr}.hero-grid{padding:3rem 0}.section-head{display:block}.person-card{grid-template-columns:1fr}.service-logo{width:170px}.team-photo-card img{aspect-ratio:16/10}.contact-line{grid-template-columns:1fr;gap:.1rem}}
@media print{.topbar,.actions,.btn,.footer{display:none}.section{padding:1rem 0}.card{box-shadow:none}}

/* Actualités enrichies */
.news-card{overflow:hidden}.news-image{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:18px;margin-bottom:1rem;border:1px solid var(--line)}.news-meta{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.75rem}.news-more{margin-top:1rem;border-top:1px solid var(--line);padding-top:.85rem}.news-more summary{cursor:pointer;font-weight:800;color:var(--chu-blue-dark)}.news-more p{margin:.75rem 0 0}.tag-vie-du-service{background:#eaf4fa;color:#0b4f71}.tag-recherche{background:#eaf7e8;color:#2c6b16}.tag-enseignement{background:#fff3df;color:#8a4b00}.tag-essai-clinique{background:#fce8e6;color:#9b1c1c}.tag-distinction{background:#f1e9ff;color:#5b2ca0}
