/* Worldprint : habillage « Sentier » de sphinx_rtd_theme 3.1.
   Couleurs et police de titre de la marque (branding/). Maquette : branding/docs-propales.html, A. */
@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@500;600&family=IBM+Plex+Sans:ital,wght@0,400;0,600;1,400&family=JetBrains+Mono:wght@400;600&display=swap");

:root {
  --wp-green: #123B3A;     /* fond de l'icône */
  --wp-green-hover: #174645;
  --wp-green-deep: #0d2e2d;
  --wp-cream: #EADFC8;     /* courbes de l'icône */
  --wp-orange: #E8833A;    /* sommet de l'icône */
  --wp-page: #F5F6F2;      /* blanc teinté vers le vert */
  --wp-text: #1d2b2a;
  --wp-muted: #5c6e6c;
  --wp-line: #d7ddd5;
  --wp-wash: #E3E8E0;
  --wp-link: #1b5a57;
  --wp-sans: "IBM Plex Sans", sans-serif;
  --wp-title: "Outfit", sans-serif;
  --wp-mono: "JetBrains Mono", ui-monospace, monospace;
}

/* ---------- texte ---------- */
body, .btn, input, select, textarea, .wy-menu-vertical, .wy-breadcrumbs, .rst-content .toctree-wrapper > p.caption {
  font-family: var(--wp-sans);
}
body { background: var(--wp-page); color: var(--wp-text); font-size: 16px; line-height: 1.6; }
.rst-content p, .rst-content li { line-height: 1.6; }
h1, h2, h3, h4, h5, h6, legend, .rst-content .admonition-title {
  font-family: var(--wp-title);
  font-weight: 600;
  color: var(--wp-green);
  line-height: 1.2;
}
.rst-content h1 { font-size: 2.3rem; margin: .2em 0 .5em; }
.rst-content h2 { font-size: 1.5rem; margin: 2em 0 .5em; }
.rst-content h3 { font-size: 1.15rem; margin: 1.6em 0 .4em; }
.rst-content .headerlink { color: var(--wp-orange); }

a, a:visited { color: var(--wp-link); }
.rst-content a { text-decoration: underline; text-decoration-color: #9cbcb6; text-underline-offset: 2px; }
.rst-content a:hover { color: var(--wp-green); text-decoration-color: var(--wp-orange); }
.rst-content a.headerlink { text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--wp-orange); outline-offset: 2px; }

/* ---------- barre latérale ---------- */
.wy-nav-side { background: var(--wp-green); }
.wy-nav-side::after {   /* l'icône en filigrane : son fond se confond avec la barre, seules les courbes restent */
  content: "";
  position: absolute;
  /* coin haut-gauche d'une icône de 420px ; la boîte ne déborde pas, sinon la barre défile pour la montrer */
  width: 250px; height: 250px;
  right: 0; bottom: 0;
  background: url("worldprint-icon.svg") 0 0 / 420px 420px no-repeat;
  opacity: .16;
  pointer-events: none;
}
.wy-side-scroll { position: relative; z-index: 1; }
.wy-side-nav-search { background: var(--wp-green); text-align: left; padding: 20px 22px 18px; margin-bottom: 0; }
.wy-side-nav-search > a { display: block; padding: 0; }
.wy-side-nav-search > a img.logo, .wy-side-nav-search .wy-dropdown > a img.logo {
  width: 190px; max-width: 100%; margin: 0; padding: 0;
}
.wy-side-nav-search > a:hover { background: transparent; }
.wy-side-nav-search input[type=text] {
  margin-top: 16px; border-radius: 4px; border: 1px solid #2c5a58; box-shadow: none;
  background: var(--wp-green-deep); color: var(--wp-cream); font-size: 14px; padding: 8px 10px;
}
.wy-side-nav-search input[type=text]::placeholder { color: #93aaa3; }
.wy-side-nav-search .switch-menus { color: #b8c7bf; }
.wy-side-nav-search .switch-menus select { background: var(--wp-green-deep); color: var(--wp-cream); border-color: #2c5a58; }

.wy-menu-vertical { font-size: 15px; }
.wy-menu-vertical p.caption {
  color: #a7bab3; text-transform: none; font-weight: 400; font-size: 13px;
  padding: 0 22px; margin: 14px 0 4px; height: auto; line-height: 1.6;
}
.wy-menu-vertical p.caption .caption-text { font-family: var(--wp-sans); }
.wy-menu-vertical a { color: #dbe3dc; padding: 6px 22px; line-height: 1.5; }
.wy-menu-vertical a:hover { background: var(--wp-green-hover); color: #fff; }
.wy-menu-vertical a:active { background: var(--wp-green-hover); }
.wy-menu-vertical li.current { background: #E4E8E1; }
.wy-menu-vertical li.current > a,
.wy-menu-vertical li.toctree-l1.current > a {
  background: var(--wp-page); color: var(--wp-green); font-weight: 600;
  border: 0; box-shadow: inset 4px 0 0 var(--wp-orange); padding: 6px 22px;
}
.wy-menu-vertical li.current > a:hover { background: var(--wp-page); color: var(--wp-green); }
.wy-menu-vertical li.current a { color: #2a4544; border-right: 0; }
.wy-menu-vertical li.toctree-l2 a, .wy-menu-vertical li.current li.toctree-l2 > a {
  padding: 6px 22px 6px 38px; background: #E4E8E1; color: #2a4544; font-weight: 400; box-shadow: none;
}
.wy-menu-vertical li.toctree-l2 a:hover, .wy-menu-vertical li.current a:hover { background: #d8ded5; color: var(--wp-green); }
.wy-menu-vertical li.toctree-l2.current > a, .wy-menu-vertical li.toctree-l3.current > a { background: #d8ded5; font-weight: 600; }
.wy-menu-vertical li.toctree-l3 a, .wy-menu-vertical li.current li.toctree-l3 > a { padding-left: 54px; background: #d8ded5; }
.wy-menu-vertical li button.toctree-expand { color: inherit; }
.wy-menu-vertical li.current > a button.toctree-expand, .wy-menu-vertical li.on a button.toctree-expand { color: #7d8f8a; margin-left: -2px; margin-right: 6px; }
.wy-menu-vertical li.toctree-l1 > a { font-size: 14.5px; }
.wy-menu-vertical li.toctree-l2 > a { font-size: 14px; }

/* ---------- page ---------- */
.wy-nav-content-wrap, .wy-nav-content { background: var(--wp-page); }
.wy-nav-content { max-width: calc(39rem + 96px); padding: 22px 48px 60px; }
.wy-breadcrumbs, .wy-breadcrumbs a { color: var(--wp-muted); font-size: 13.5px; }
.rst-content > div[role=navigation] hr, footer hr { border-top-color: var(--wp-line); }

/* code dans le texte */
.rst-content code, .rst-content tt, .rst-content pre, .rst-content kbd, code, pre { font-family: var(--wp-mono); }
.rst-content code.literal, .rst-content tt.literal, code {
  background: var(--wp-wash); color: #173f3d; border: 0; border-radius: 3px; padding: 1px 5px; font-size: .86em;
  white-space: normal;
}

/* blocs de code : le vert de l'icône, mots-clés orange */
.rst-content div[class^=highlight], .rst-content pre.literal-block {
  background: var(--wp-green); border: 0; border-radius: 6px; margin: 1em 0 1.4em; overflow: hidden;
}
.rst-content div[class^=highlight] pre, .rst-content pre.literal-block {
  font-size: 13.5px; line-height: 1.6; padding: 14px 16px; color: #EDE6D6;
  font-variant-ligatures: none;
}
.rst-content .highlight { background: transparent; }
.highlight, .highlight .w, .highlight .n, .highlight .o, .highlight .p, .highlight .nn, .highlight .na { color: #EDE6D6; background: none; font-weight: 400; }
.highlight .k, .highlight .kd, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kt, .highlight .kc, .highlight .ow { color: #F0A869; font-weight: 400; }
.highlight .nc, .highlight .nf, .highlight .nb, .highlight .bp, .highlight .nt { color: #9FD4C3; font-weight: 400; }
.highlight .s, .highlight .s1, .highlight .s2, .highlight .sa, .highlight .sb, .highlight .sc, .highlight .se, .highlight .si,
.highlight .m, .highlight .mi, .highlight .mf, .highlight .mh, .highlight .il { color: #E8D9A8; }
.highlight .c, .highlight .c1, .highlight .cm, .highlight .cs, .highlight .ch, .highlight .cp, .highlight .cpf { color: #86a39b; font-style: italic; }
.highlight .hll { background: #1e4f4d; }
.highlight .err { border: 0; color: #f3b7a0; }
.rst-content div[class^=highlight] div[class^=highlight] { margin: 0; }

/* encadrés : un aplat, un titre, pas d'icône */
.rst-content .admonition, .rst-content .note, .rst-content .warning, .rst-content .tip, .rst-content .important,
.rst-content .hint, .rst-content .caution, .rst-content .attention, .rst-content .danger, .rst-content .error,
.rst-content .seealso, .rst-content .admonition-todo {
  background: #E6EEE7; border-radius: 4px; padding: 10px 16px; margin: 1.2em 0;
}
.rst-content .admonition-title, .rst-content .admonition .admonition-title, .rst-content .note .admonition-title {
  background: none; color: var(--wp-green); margin: 0 0 2px; padding: 0; font-size: 1rem;
}
.rst-content .admonition-title::before { display: none; }
.rst-content .admonition p:last-child { margin-bottom: 0; }
.rst-content .warning, .rst-content .caution, .rst-content .attention, .rst-content .danger, .rst-content .error,
.rst-content .admonition.warning { background: #FBEBDD; }
.rst-content .warning .admonition-title, .rst-content .caution .admonition-title, .rst-content .attention .admonition-title,
.rst-content .danger .admonition-title, .rst-content .error .admonition-title, .rst-content .admonition.warning .admonition-title {
  background: none; color: #9a4a12;
}

/* tableaux */
.wy-table-responsive table { width: 100%; }
.rst-content table.docutils, .wy-table-bordered-all { border: 0; }
.rst-content table.docutils thead th, .wy-table thead th {
  background: var(--wp-wash); color: var(--wp-green); font-weight: 600; border: 0; text-align: left;
}
.rst-content table.docutils td, .rst-content table.docutils th, .wy-table-responsive table td, .wy-table-responsive table th {
  border: 0; border-bottom: 1px solid #dfe4dc; padding: 7px 10px; white-space: normal; vertical-align: top;
}
.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td, .wy-table-backed, .wy-table-odd td,
.wy-table-striped tr:nth-child(2n-1) td { background: transparent; }
.rst-content table.docutils td p { line-height: 1.5; }

/* précédent / suivant et pied de page */
.rst-footer-buttons { margin-top: 48px; }
.btn, .btn-neutral, .btn-neutral:visited {
  font-family: var(--wp-title); font-weight: 500; font-size: 15px; color: var(--wp-green) !important;
  background: transparent !important; border: 1px solid #c5cfc7; border-radius: 4px; box-shadow: none; padding: 8px 14px;
}
.btn:hover, .btn-neutral:hover { border-color: var(--wp-green); background: transparent !important; }
.btn .fa { display: none; }
.rst-footer-buttons .btn { max-width: 48%; white-space: normal; text-align: left; }
.rst-footer-buttons .btn.float-right { text-align: right; }
.rst-footer-buttons .btn.float-right::after { margin-left: -.3em; }  /* RTD laisse un espace après « Next » */
.rst-footer-buttons .btn::after { content: ": " attr(title); }
footer, footer p { color: #6b7c7a; font-size: 13px; }

/* recherche */
.rst-content .highlighted, .highlighted { background: #F7D9B9; box-shadow: none; }
.rst-content pre .highlighted, .highlight .highlighted { background: rgba(232,131,58,.38); color: #FFF4E6; border-radius: 2px; }

/* ---------- mobile ---------- */
.wy-nav-top { background: var(--wp-green); color: var(--wp-cream); }
.wy-nav-top a { font-family: var(--wp-title); font-weight: 600; color: var(--wp-cream); }
.wy-nav-top i { color: var(--wp-cream); }
@media screen and (max-width: 768px) {
  .wy-nav-content { padding: 18px 16px 40px; }
  .rst-content h1 { font-size: 1.9rem; }
}
