/* Extracted styles from index.html — Université Paris Cité colour scheme */
:root{
  /* Université Paris Cité colours */
  --upc-blue: #0057B8;
  --upc-red: #E30613;
  --upc-navy: #1E2A4A;
  --upc-yellow: #FFD200;
  /* Interface colors derived from brand colors */
  --bg: #ffffff;
  --muted: #505A74;
  --card: #f8f9fb;
  /* Layout */
  --maxw: 980px;
  --pad: 18px;
  font-family: "Lucida Grande", "Lucida Sans Unicode", "Segoe UI", "Source Sans 3", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Base styles */
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--upc-navy);line-height:1.5}

/* Layout */
.wrap{max-width:var(--maxw);margin:28px auto;padding:0 16px}
main{display:grid;grid-template-columns:1fr 320px;gap:22px}
@media (max-width:900px){ main{grid-template-columns:1fr} .aside{order:2} }

/* Typography */
.small, footer{font-size:0.9rem}
.muted, .small, footer{color:var(--muted)}

/* Header and Navigation */
header{display:flex;gap:18px;align-items:center;margin-bottom:18px}
.photo{width:110px;height:110px;border-radius:50%;flex:0 0 110px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--card)}
.photo-img{width:100%;height:100%;object-fit:cover;display:block}
h1{margin:0;font-size:1.6rem;color:var(--upc-blue);font-weight:700}
h2{margin:6px 0 12px;font-size:1rem;color:var(--muted)}
nav{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}

/* Links and Buttons */
nav a, .links a{text-decoration:none;font-weight:600}
nav a{color:var(--upc-red)}
.links a{display:block;color:var(--upc-blue);margin:6px 0;align-items:center}
.links a i{width:20px;display:inline-block;text-align:center;margin-right:8px}

/* Button styles */
.btn{display:inline-block;padding:8px 14px;border-radius:8px;text-decoration:none;font-weight:600;cursor:pointer}
.btn:focus{outline:3px solid rgba(0,87,184,0.18);outline-offset:3px}
.btn-cv{background:var(--upc-blue);color:#fff;border:1px solid rgba(0,0,0,0.04)}
.btn-cv:hover{filter:brightness(0.95)}
.btn .fa-download{margin-right:8px;font-size:0.95em}
.btn-cv[aria-disabled="true"]{opacity:0.6;pointer-events:none;cursor:default}
.btn-cv:active{transform:translateY(1px)}

/* Cards and Lists */
.card{background:var(--card);padding:var(--pad);border-radius:10px;box-shadow:0 0 0 1px rgba(30,42,74,0.03) inset}
section h3{margin-top:0}

/* Spacing instead of inline styles */
.card + .card { margin-top:16px; }
.aside .card + .card { margin-top:14px; }

/* More publications paragraph after the list */
.pubs + p { margin-top:12px; }

/* Topics */
ul.topics{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:8px 0 0;list-style:none}
ul.topics li{background:var(--bg);padding:6px 10px;border-radius:8px;border:1px solid rgba(0,87,184,0.15);font-size:0.9rem}

/* Publications */
.pubs{list-style:none;padding:0;margin:0}
.pubs li{padding:10px 0;border-bottom:1px dashed rgba(30,42,74,0.06)}

/* Contact and Footer */
.contact{word-break:break-word}
footer{margin:28px 0 60px;text-align:center}

/* Language Toggle */
.lang-toggle{margin-left:auto;display:flex;gap:6px}
.lang-toggle button{background:transparent;border:1px solid rgba(0,87,184,0.15);padding:6px 10px;border-radius:8px;cursor:pointer;color:var(--upc-blue);font-weight:600}
.lang-toggle button[aria-pressed="true"]{background:var(--upc-blue);color:var(--bg);border-color:var(--upc-blue)}

/* Interactive States */
a:focus, button:focus{outline:3px solid rgba(0,87,184,0.18);outline-offset:2px}
nav a:hover, .links a:hover{color:var(--upc-navy);transition:color 0.2s ease}
.lang-toggle button:hover:not([aria-pressed="true"]){background:rgba(0,87,184,0.05);transition:background 0.2s ease}

/* disabled CV link styling */
.disabled-link[aria-disabled="true"]{opacity:0.6;pointer-events:none;cursor:default}
.cv-unavail{color:var(--muted);font-size:0.9rem;margin-left:6px}
