/* Theme OFELIA pour MkDocs Material.
   Reutilise les tokens de static/css/ofelia.css du projet BibliOfelia,
   pour assurer la coherence visuelle entre l'app et son guide utilisateur.
   Toutes les fontes sont locales (contrainte hors-ligne). */

/* ────────── Polices locales ────────── */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('./fonts/bricolage-grotesque-1.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
    U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('./fonts/bricolage-grotesque-2.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('./fonts/bricolage-grotesque-3.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('./fonts/dm-sans-1.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('./fonts/dm-sans-2.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}

/* ────────── Tokens OFELIA (alignes sur static/css/ofelia.css) ────────── */
:root {
  --ofelia-burgundy:       #6B2138;
  --ofelia-burgundy-dark:  #4E1829;
  --ofelia-burgundy-light: #F2E8EC;
  --ofelia-orange:         #ED7538;
  --ofelia-orange-light:   #FDE9D9;
  --ofelia-amber:          #F3B84C;
  --ofelia-sky:            #B7D9FF;
  --ofelia-sky-light:      #EAF5FF;
  --ofelia-blush:          #F4BABA;
  --ofelia-forest:         #3D8C5A;
  --ofelia-forest-light:   #E8F5EE;
  --ofelia-cream:          #F7F5F0;
  --ofelia-cream-dark:     #EAE6DC;
  --ofelia-paper:          #FFFFFF;
  --ofelia-ink:            #3D3530;
  --ofelia-ink-soft:       #5C5550;
  --ofelia-grey:           #9A9088;
  --ofelia-grey-light:     #D4CEC8;
  --ofelia-line:           rgba(61,53,48,0.10);
  --ofelia-line-strong:    rgba(61,53,48,0.20);
}

/* Surcharges Material — palette claire */
[data-md-color-scheme="default"] {
  --md-primary-fg-color:           var(--ofelia-burgundy);
  --md-primary-fg-color--light:    var(--ofelia-burgundy-light);
  --md-primary-fg-color--dark:     var(--ofelia-burgundy-dark);
  --md-primary-bg-color:           var(--ofelia-paper);
  --md-primary-bg-color--light:    var(--ofelia-cream);

  --md-accent-fg-color:            var(--ofelia-orange);
  --md-accent-fg-color--transparent: rgba(237,117,56,0.10);
  --md-accent-bg-color:             var(--ofelia-paper);

  --md-default-bg-color:           var(--ofelia-cream);
  --md-default-fg-color:           var(--ofelia-ink);
  --md-default-fg-color--light:    var(--ofelia-ink-soft);
  --md-default-fg-color--lighter:  var(--ofelia-grey);
  --md-default-fg-color--lightest: var(--ofelia-grey-light);

  --md-typeset-color:              var(--ofelia-ink);
  --md-typeset-a-color:            var(--ofelia-burgundy);

  --md-code-bg-color:              var(--ofelia-cream-dark);
  --md-code-fg-color:              var(--ofelia-ink);

  --md-footer-bg-color:            var(--ofelia-burgundy);
  --md-footer-bg-color--dark:      var(--ofelia-burgundy-dark);
  --md-footer-fg-color:            var(--ofelia-paper);
  --md-footer-fg-color--light:     rgba(255,255,255,0.85);
  --md-footer-fg-color--lighter:   rgba(255,255,255,0.7);
}

/* Surcharges Material — palette sombre (option utilisateur) */
[data-md-color-scheme="slate"] {
  --md-primary-fg-color:           var(--ofelia-burgundy);
  --md-accent-fg-color:            var(--ofelia-orange);
  --md-typeset-a-color:            var(--ofelia-orange);
  --md-footer-bg-color:            var(--ofelia-burgundy-dark);
}

/* ────────── Typographie ────────── */
body, .md-typeset {
  font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
  font-size: 0.85rem;
  line-height: 1.6;
  text-wrap: pretty;
}

.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-typeset h4,
.md-typeset h5,
.md-typeset h6,
.md-header__title,
.md-nav__title,
.md-footer-meta {
  font-family: 'Bricolage Grotesque', system-ui, sans-serif;
  letter-spacing: -0.01em;
}

.md-typeset h1 {
  font-weight: 700;
  color: var(--ofelia-burgundy);
  font-size: 2.2rem;
  margin: 0 0 1rem;
}

.md-typeset h2 {
  font-weight: 700;
  color: var(--ofelia-ink);
  font-size: 1.55rem;
  margin: 2rem 0 0.6rem;
  border-bottom: 1px solid var(--ofelia-line);
  padding-bottom: 0.3rem;
}

.md-typeset h3 {
  font-weight: 600;
  color: var(--ofelia-ink);
  font-size: 1.2rem;
  margin: 1.6rem 0 0.4rem;
}

.md-typeset h4 {
  font-weight: 600;
  color: var(--ofelia-ink-soft);
  font-size: 1rem;
  margin: 1.2rem 0 0.3rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ────────── Header ────────── */
.md-header {
  background: var(--ofelia-paper);
  color: var(--ofelia-ink);
  box-shadow: 0 1px 0 var(--ofelia-line);
  border-bottom: 1px solid var(--ofelia-line);
}

.md-header__button.md-logo img,
.md-header__button.md-logo svg {
  height: 28px;
  width: auto;
}

.md-header__title {
  color: var(--ofelia-burgundy);
  font-weight: 700;
  font-size: 1rem;
}

.md-header[data-md-state="shadow"] {
  box-shadow: 0 2px 8px rgba(61,53,48,0.07);
}

/* Search */
.md-search__input {
  background: var(--ofelia-cream);
  color: var(--ofelia-ink);
}
.md-search__input::placeholder {
  color: var(--ofelia-grey);
}

/* ────────── Tabs (top nav) ────────── */
.md-tabs {
  background: var(--ofelia-cream);
  color: var(--ofelia-ink);
  border-bottom: 1px solid var(--ofelia-line);
}
.md-tabs__link {
  color: var(--ofelia-ink-soft);
  opacity: 1;
  font-weight: 600;
}
.md-tabs__link--active,
.md-tabs__link:hover {
  color: var(--ofelia-burgundy);
}

/* ────────── Sidebar (table of contents + nav) ────────── */
.md-sidebar__scrollwrap {
  background: transparent;
}
.md-nav {
  font-size: 0.68rem;
  line-height: 1.35;
}
/* Densifier le menu lateral : on veut voir un maximum de sous-chapitres
   d'un seul coup d'oeil meme quand une section en compte beaucoup. */
.md-nav__list .md-nav__link {
  margin-top: 0.32em;
  margin-bottom: 0.32em;
}
.md-nav__item--section > .md-nav__link {
  margin-bottom: 0.2em;
}
.md-nav__title {
  color: var(--ofelia-ink);
  font-weight: 700;
  font-size: 0.74rem;
}
.md-nav__link {
  color: var(--ofelia-ink-soft);
}
.md-nav__link--active,
.md-nav__link:hover {
  color: var(--ofelia-burgundy);
}
.md-nav__link[data-md-state="blur"] {
  color: var(--ofelia-grey);
}

/* ────────── Content ────────── */
.md-content {
  background: var(--ofelia-cream);
}
.md-typeset a {
  color: var(--ofelia-burgundy);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.15s ease;
}
.md-typeset a:hover {
  color: var(--ofelia-orange);
  border-bottom-color: currentColor;
}

/* Images : encadrement leger + ombre */
.md-typeset img {
  border-radius: 14px;
  box-shadow: 0 6px 22px rgba(61,53,48,0.10);
  border: 1px solid var(--ofelia-line);
}

/* Admonitions OFELIA-style */
.md-typeset .admonition,
.md-typeset details {
  border-radius: 14px;
  border: 1px solid var(--ofelia-line);
  box-shadow: var(--shadow-sm, 0 2px 8px rgba(61,53,48,0.07));
  font-size: 0.85rem;
}
.md-typeset .admonition.tip,
.md-typeset details.tip {
  border-left: 4px solid var(--ofelia-forest);
  background: var(--ofelia-forest-light);
}
.md-typeset .admonition.warning,
.md-typeset details.warning {
  border-left: 4px solid var(--ofelia-orange);
  background: var(--ofelia-orange-light);
}
.md-typeset .admonition.info,
.md-typeset details.info,
.md-typeset .admonition.note,
.md-typeset details.note {
  border-left: 4px solid var(--ofelia-sky-dark, #5A9ED4);
  background: var(--ofelia-sky-light);
}
.md-typeset .admonition.danger,
.md-typeset details.danger {
  border-left: 4px solid var(--ofelia-burgundy);
  background: var(--ofelia-burgundy-light);
}

/* Code blocks */
.md-typeset code {
  background: var(--ofelia-cream-dark);
  color: var(--ofelia-burgundy-dark);
  padding: 0.1em 0.4em;
  border-radius: 6px;
  font-size: 0.85em;
}
.md-typeset pre {
  background: var(--ofelia-ink);
  border-radius: 12px;
  padding: 1rem;
}
.md-typeset pre code {
  background: transparent;
  color: var(--ofelia-paper);
}

/* Tables */
.md-typeset table:not([class]) {
  background: var(--ofelia-paper);
  border: 1px solid var(--ofelia-line);
  border-radius: 12px;
  overflow: hidden;
  font-size: 0.82rem;
}
.md-typeset table:not([class]) th {
  background: var(--ofelia-cream-dark);
  color: var(--ofelia-ink);
  font-family: 'Bricolage Grotesque', system-ui, sans-serif;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}

/* ────────── Footer ────────── */
.md-footer {
  background: var(--ofelia-burgundy);
}
.md-footer-meta {
  background: var(--ofelia-burgundy-dark);
}
.md-footer__inner,
.md-footer-meta__inner {
  font-size: 0.78rem;
}
