/* Self-hosted fonts (OFL-1.1) — loaded from canonical branding/fonts-face.css */
@import url('fonts-face.css');

/* ---- Sidebar / navigation ---- */
.wy-side-nav-search {
  background-color: #6B4FA0;
  border-bottom: 3px solid #E8B84B;
}
.wy-side-nav-search > a,
.wy-side-nav-search .wy-dropdown > a {
  color: #F4F0FA;
  font-family: 'EB Garamond', 'Palatino Linotype', serif;
  font-style: italic;
  font-weight: 600;
}
.wy-side-nav-search .version {
  color: #E8B84B;
  font-family: 'Jost', 'Segoe UI', sans-serif;
}
.wy-nav-side {
  background-color: #2A1850;
}
.wy-menu-vertical a {
  color: rgba(244,240,250,0.82);
  font-family: 'Jost', 'Segoe UI', sans-serif;
}
.wy-menu-vertical a:hover {
  background-color: rgba(107,79,160,0.35);
  color: #E8B84B;
}
.wy-menu-vertical li.current > a,
.wy-menu-vertical li.current > a:hover {
  background-color: #6B4FA0;
  color: #F4F0FA;
  border-right: 3px solid #E8B84B;
}
.wy-menu-vertical li.toctree-l1.current > a {
  background-color: #6B4FA0;
}
.wy-menu-vertical li.toctree-l2.current > a {
  background-color: rgba(107,79,160,0.6);
}

/* ---- Topbar (mobile hamburger menu) ---- */
.wy-nav-top {
  background-color: #6B4FA0;
}
/* Move hamburger icon to the right to match the main Jekyll site */
@media screen and (max-width: 768px) {
  .wy-nav-top {
    display: flex;
    align-items: center;
  }
  .wy-nav-top i {
    order: 1;
    margin-left: auto;
    float: none;
  }
  .wy-nav-top a {
    float: none;
  }
}
.wy-nav-top a {
  color: #F4F0FA;
  font-family: 'EB Garamond', serif;
  font-style: italic;
}

/* ---- Base font size: match Jekyll site (root 22px → 1.05rem body = 23.1px) ---- */
html {
  font-size: 22px;
}

/* ---- Content area ---- */
.wy-nav-content-wrap { background-color: #F4F0FA; }
.wy-nav-content      { background-color: #F4F0FA; max-width: 1100px; }

/* ---- Headings ---- */
h1, h2, h3, h4, h5, h6 {
  font-family: 'EB Garamond', 'Palatino Linotype', serif;
  font-style: italic;
  font-weight: 600;
  color: #2A1850;
}
h2 {
  border-bottom: 2px solid #E8B84B;
  padding-bottom: 0.2em;
}

/* ---- Body text ---- */
.wy-nav-content p,
.wy-nav-content li,
.wy-nav-content dd,
.wy-nav-content td {
  font-family: 'EB Garamond', 'Palatino Linotype', serif;
  font-size: 1.05rem;
  line-height: 1.75;
  color: #2A1850;
}

/* ---- Links ---- */
a           { color: #6B4FA0; }
a:hover     { color: #C4664A; }
a:visited   { color: #5A3E8C; }
.wy-breadcrumbs a { color: #6B4FA0; }

/* ---- Visited links on dark sidebar/navbar backgrounds ---- */
.wy-side-nav-search > a:visited,
.wy-side-nav-search .wy-dropdown > a:visited {
  color: #F4F0FA;
}
.wy-menu-vertical a:visited {
  color: rgba(244,240,250,0.82);
}
.wy-menu-vertical li.current > a:visited {
  color: #F4F0FA;
}
.wy-nav-top a:visited {
  color: #F4F0FA;
}

/* ---- Code / pre ---- */
/* Disable Fira Code ligatures (-- would otherwise render as em-dash, etc.) */
.rst-content tt,
.rst-content code,
pre, div.highlight {
  font-variant-ligatures: none;
  font-feature-settings: "liga" 0, "clig" 0, "calt" 0;
}
.rst-content tt,
.rst-content code,
.rst-content tt.literal,
.rst-content code.literal {
  font-family: 'Fira Code', 'Consolas', monospace;
  background-color: #E8E0F8;
  color: #5A3E8C;
  padding: 0.1em 0.3em;
  border-radius: 3px;
}
pre, div.highlight {
  font-family: 'Fira Code', 'Consolas', monospace;
  background-color: #E8E0F8;
  border-left: 3px solid #E8B84B;
}
.rst-content pre.literal-block,
.rst-content div[class^="highlight"] pre,
.rst-content .linenodiv pre {
  font-family: 'Fira Code', 'Consolas', monospace;
  font-size: 0.72rem;
}
div.highlight pre {
  background-color: transparent;
  color: #2A1850;
}

/* sphinx-copybutton: rtd-theme's .rst-content img rules force the icon
   to display: block with auto margins, which collapses the SVG and
   leaves only the (cropped) alt text "Copy" visible.  Restore inline
   rendering for the copy-button icon. */
.rst-content button.copybtn img {
  display: inline;
  margin: 0;
  padding: .2em;
  width: 100%;
  height: auto;
}

/* ---- Tables ---- */
/* sphinx-rtd-theme puts white-space: nowrap on <code> inside tables,
   which forces horizontal scrolling for tables containing long
   :cfunc:`...` names.  Allow wrapping instead. */
.rst-content table.docutils td,
.rst-content table.docutils th,
.wy-table-responsive table td,
.wy-table-responsive table th {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.rst-content table.docutils td code,
.rst-content table.docutils th code,
.wy-table-responsive table td code,
.wy-table-responsive table th code {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* ---- Tighten paragraph → list spacing ---- */
.wy-nav-content p:has(+ ul),
.wy-nav-content p:has(+ ol) {
  margin-bottom: 0;
}
.wy-nav-content p:has(+ dl) {
  margin-bottom: 12px;
}

/* ---- Admonitions (note / warning / hint) ---- */
.rst-content .note,
.rst-content .hint,
.rst-content .warning {
  background-color: #EDE8F7;
  border-left: 4px solid;
}
.rst-content .note  { border-color: #6B4FA0; }
.rst-content .hint  { border-color: #E8B84B; }
.rst-content .warning { border-color: #C4664A; }

.rst-content .note    > .admonition-title,
.rst-content .hint    > .admonition-title,
.rst-content .warning > .admonition-title {
  font-family: 'Jost', 'Segoe UI', sans-serif;
  font-weight: 600;
  font-style: normal;
}
.rst-content .note    > .admonition-title { background-color: #6B4FA0; color: #F4F0FA; }
.rst-content .hint    > .admonition-title { background-color: #E8B84B; color: #2A1850; }
.rst-content .warning > .admonition-title { background-color: #C4664A; color: #F4F0FA; }

.rst-content .note    > .admonition-title::before,
.rst-content .hint    > .admonition-title::before,
.rst-content .warning > .admonition-title::before {
  color: inherit;
}

/* ---- Spoiler / collapsible blocks ---- */
details {
  margin-bottom: 1.5em;
}

/* ---- Footer ---- */
footer {
  background-color: #EDE8F7;
  border-top: 1px solid #D6CCF0;
  font-family: 'Jost', 'Segoe UI', sans-serif;
  color: #8A7A9B;
}
#provsql-site-footer {
  text-align: center;
  padding: 0.8em 1em;
  background: #2A1850;
  border-top: 2px solid #E8B84B;
  font-family: 'Jost', 'Segoe UI', sans-serif;
  font-size: 0.85rem;
}
#provsql-site-footer a {
  color: rgba(244,240,250,0.85);
  text-decoration: none;
}
#provsql-site-footer a:hover {
  color: #E8B84B;
}
#provsql-site-footer .sep {
  margin: 0 0.4em;
  color: rgba(244,240,250,0.4);
}

/* :sc:`text` role — small caps for in-UI labels mentioned in prose. */
.smallcaps {
  font-variant: small-caps;
  letter-spacing: 0.04em;
}

/* :guilabel:`text` role — UI button / chip labels rendered in the body
   sans-serif font (not monospace), to match how they look in Studio. */
.guilabel {
  font-family: var(--font-sans, system-ui, sans-serif);
}

/* ---- Collapsible navigation sidebar (custom toggle, see
   sidebar-toggle.js) ---- */
#ps-sidebar-toggle {
  position: fixed;
  bottom: 1em;
  left: 1em;
  z-index: 300;
  width: 2.4em;
  height: 2.4em;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #6B4FA0;
  color: #fff;
  font-size: 1rem;
  line-height: 2.4em;
  text-align: center;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}
#ps-sidebar-toggle:hover {
  background: #58408a;
}
body.ps-sidebar-collapsed .wy-nav-side {
  display: none;
}
body.ps-sidebar-collapsed .wy-nav-content-wrap {
  margin-left: 0;
}
body.ps-sidebar-collapsed .wy-nav-content {
  max-width: none;
}
/* On narrow viewports the theme already has its own off-canvas menu. */
@media screen and (max-width: 768px) {
  #ps-sidebar-toggle {
    display: none;
  }
}

/* ---- Math in tables ----
   imgmath renders math as SVG <img class="math">.  The RTD theme's
   img{max-width:100%} (theme.css) shrinks them to the column width inside
   the narrow cells of grid tables (e.g. the tractability table in
   probabilities.rst), making the math illegibly small.  Let math images
   keep their intrinsic size in table cells. */
.rst-content table.docutils td img.math,
.rst-content table.docutils th img.math {
  max-width: none;
}
