@import url('https://fonts.googleapis.com/css2?family=STIX+Two+Text:ital,wght@0,400..700;1,400..700&display=swap');

/* =========================================================
   Variables
   ========================================================= */
:root {
  /* Nordic palette (a bit lighter) */
  --bg: #bfc7cf;             /* lighter cold grey-blue */
  --text: #111827;           /* deep slate */
  --link: #0f3d5e;           /* fjord blue */
  --border: rgba(17, 24, 39, 0.18);

  /* Layout */
  --content-max: 760px;
  --content-pad: 20px;
  --page-top: 60px;
  --block-gap: 28px;

  /* Typography weights */
  --text-weight: 400;        /* normal */
  --heading-weight: 600;
  --strong-weight: 700;

  /* Base font size */
  --body-size: 19px;
}

/* =========================================================
   Reset / base layout
   ========================================================= */
html, body {
  margin: 0;
  padding: 0;
}

/* Unified readable page width */
body {
  background: var(--bg);
  color: var(--text);

  font-family: "STIX Two Text", serif;
  font-optical-sizing: auto;

  font-weight: var(--text-weight);
  font-size: var(--body-size);
  line-height: 1.50;

  max-width: var(--content-max);
  margin: var(--page-top) auto;
  padding: 0 var(--content-pad);
}

/* Consistent vertical spacing between main blocks */
header, main, section, footer {
  margin: 0 0 var(--block-gap) 0;
}
header:last-child, main:last-child, section:last-child, footer:last-child {
  margin-bottom: 0;
}

/* =========================================================
   Typography
   ========================================================= */
h1, h2, h3 {
  font-weight: var(--heading-weight);
  margin: 0 0 10px 0;
}

p {
  margin: 0 0 14px 0;
}

strong, b {
  font-weight: var(--strong-weight);
}

/* =========================================================
   Links
   ========================================================= */
a {
  color: var(--link);
  text-decoration: none;
  transition: opacity 120ms ease, transform 120ms ease;
}
a:hover {
  opacity: 0.92;
}

/* =========================================================
   Home page helpers
   ========================================================= */
.home-spacer {
  height: 18px;
}

.home-link {
  font-size: 1.15rem;
  display: inline-block;
}
.home-link:hover {
  transform: scale(1.03);
}

/* Social icons row (Mastodon + ORCID, etc.) */
.social-row {
  display: inline-flex;
  align-items: baseline;
  gap: 0.7em;
}

.social-link {
  display: inline-flex;
  align-items: baseline;
}

.social-link:hover {
  transform: scale(1.10);
}

.social-icon {
  width: auto;
  height: 1.1em;
  vertical-align: baseline;
  display: block;
  object-fit: contain;
}

/* =========================================================
   Definition lists (dl/dt/dd)
   ========================================================= */
dl { margin: 0; }
dt { font-weight: var(--heading-weight); margin-top: 10px; }
dd { margin: 4px 0 0 0; }

/* =========================================================
   Metadata disclosure (details.meta)
   ========================================================= */
details.meta {
  margin-top: 14px;
  padding-top: 0;
  border-top: 0;
}

details.meta summary {
  cursor: pointer;
  font-weight: var(--heading-weight);
  list-style: none;

  display: flex;
  align-items: baseline;
  gap: 8px;
}

details.meta summary::-webkit-details-marker {
  display: none;
}

/* Disclosure glyph */
details.meta summary::before { content: "▸"; }
details.meta[open] summary::before { content: "▾"; }

/* Indent content to start under “Métadonnées” text (not under the arrow) */
details.meta .meta-body {
  padding-left: calc(1ch + 16px);
  margin-top: 10px;
}

details.meta .meta-body p {
  margin: 0 0 10px 0;
}

/* Space between metadata block and first section below it */
details.meta + section {
  margin-top: var(--block-gap);
}

/* =========================================================
   Divider
   ========================================================= */
hr.divider {
  border: 0;
  border-top: 1px solid var(--border);
  margin: 32px 0;
}
