/* Copyright (c) 2026 Mark Buckwell and contributors */
/* SPDX-License-Identifier: MIT */

/* .web-only content (e.g. the "Download PDF" link/button on every docs
   page) needs no rule here at all - prodockit.pdf.css hides it
   automatically in every PDF build, and it's meant to show normally here
   on the live website. .pdf-only is the other half: content meant only
   for the PDF (this site has none yet, but a project with e.g. an
   automated cover-page word count would add its own here) - prodockit
   has no reach into a live website's own stylesheet, so this one line is
   the project-side part of the convention - see the "Web-only / PDF-only
   content" section in the PDF generation docs. */
.pdf-only {
  display: none !important;
}

/* prodockit.tables' own <colgroup>-based column widths only take effect
   under table-layout: fixed - scoped to its own marker class so a plain
   table's existing auto-layout/content-driven column sizing is unaffected.
   A consuming project's own website theme needs this same rule too -
   prodockit doesn't ship a bundled website stylesheet the way it ships
   prodockit.pdf's own CSS for the PDF path.

   The theme's own default table styling (border, padding, alternating
   presentation) is scoped ".md-typeset table:not([class])" - confirmed
   directly in Zensical's bundled CSS - so a table carrying
   prodockit-table-sized (or any other class) gets none of it at all, not
   just no width control. Rebuilt here rather than left bare: a full grey
   grid line (matching prodockit.pdf's own PDF table borders) on both the
   outer table and every internal row/column division, and width: 100% so
   a percentage column resolves against the same full-width table
   prodockit.pdf itself always builds. */
.md-typeset table.prodockit-table-sized {
  table-layout: fixed;
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #555555;
}
.md-typeset table.prodockit-table-sized th,
.md-typeset table.prodockit-table-sized td {
  border: 1px solid #555555;
  padding: 0.9375em 1.25em;
  vertical-align: top;
}
.md-typeset table.prodockit-table-sized th {
  font-weight: 700;
}

/* ============================================================= */
/* ================ Style for slate theme logo ================ */
/* ============================================================= */

/* Inlined as base64 data: URIs (from a downsized 128px copy, not the full
   docs/assets/logo_*.png - see customise.md's Site logo section for those)
   rather than a relative url("../assets/...") - the PDF build
   (prodockit.pdf) copies this whole stylesheet next to a compiled temp
   HTML file elsewhere on disk, and Pandoc fails the entire PDF build if a
   plain relative CSS url() doesn't resolve from there, even inside a rule
   this build never actually applies (its own header/logo is already
   force-hidden in the PDF - see prodockit.pdf's own base CSS). */
[data-md-color-scheme="slate"] .md-logo img {
  content: url("data:image/png;base64,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");
}
[data-md-color-scheme="default"] .md-logo img {
  content: url("data:image/png;base64,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");
}

/* ============================================================= */
/* ======= Fix for the bundled theme's #only-light/dark bug ===== */
/* ============================================================= */

/* Zensical's own theme CSS hides #only-dark images in light (default)
   mode and #only-light images in dark (slate) mode, but neither rule
   uses !important, so attr_list-style inline `style="display: block"`
   silently wins over both of them - both the light and dark image end up
   visible at once, in both modes. Reassert both directions here, with
   !important, to actually win (see zensicalbasics.md's own "Images"
   section, which demonstrates this hash-fragment syntax live). */
[data-md-color-scheme="default"] img[src$="#gh-dark-mode-only"],
[data-md-color-scheme="default"] img[src$="#only-dark"] {
  display: none !important;
}
[data-md-color-scheme="slate"] img[src$="#gh-light-mode-only"],
[data-md-color-scheme="slate"] img[src$="#only-light"] {
  display: none !important;
}

/* ============================================================= */
/* =============== Site header title weight ===================== */
/* ============================================================= */

/* Matches the regular (non-bold) weight "prodockit" already renders at on
   the cover page's own hero title (see ".cover-hero-title-light" below) -
   the theme's own header title is bold by default, which otherwise reads
   inconsistently against the cover page directly beneath it. */
.md-header__topic .md-ellipsis {
  font-weight: normal;
}

/* ============================================================= */
/* ==================== Cover page hero ========================= */
/* ============================================================= */

/* Full-bleed, full-height split hero (title/release/download left,
   the abstract-flow graphic right) - the same wide, bold treatment as
   zensical.org's own homepage. Breaks out of the theme's centred content
   column via the negative-margin/100vw trick, since Zensical has no
   built-in "full width section" primitive. Respects the site's own
   light/dark toggle rather than forcing one scheme, unlike zensical.org's
   own always-dark hero - text colour here already matches the theme's
   own foreground colour with no override needed. */
.cover-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4rem;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  min-height: calc(100vh - 8rem);
  padding: 2rem 6vw;
  box-sizing: border-box;
}

.cover-hero-text {
  flex: 1 1 420px;
  max-width: 640px;
}

.cover-hero-title {
  font-size: clamp(2.5rem, 5vw, 4rem) !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  margin: 0 0 1rem !important;
}

/* The site's own wordmark - kept regular weight rather than the bold
   ".cover-hero-title" default, matching the header logo/title elsewhere on
   the page. Same rule for both the website and the PDF, since both share
   this markup and CSS. */
.cover-hero-title-light {
  font-weight: 400 !important;
}

/* Given its own class (rather than staying a bare, unstyled <p>) for the
   same reason .cover-hero-release needs one: prodockit.pdf's Pandoc-based
   PDF pipeline resolved a class-less paragraph placed directly after an h1
   at a wrong, inflated size (a Pandoc HTML round-trip quirk, confirmed by
   comparison against the identical sentence rendering at the correct size
   elsewhere in the document, outside a "div > h1 + p" position) - a class
   here sidesteps it entirely. */
.cover-hero-subtitle {
  font-size: 1.15rem;
  font-weight: 400;
  color: var(--md-default-fg-color--light);
  margin: 0 0 1rem;
}

.cover-hero-release {
  font-size: 1rem;
  color: var(--md-default-fg-color--light);
  margin: 0 0 1.5rem;
}

/* Matches the hero graphic's own innermost, most saturated stroke colour
   (docs/assets/cover-hero-*.svg - both light and dark variants use the
   same green now) rather than the theme's default primary colour, which
   .md-button--primary would otherwise use unmodified. Scoped to the hero's
   own "Download PDF" button, not the bare ".md-button--primary" class, so
   any other primary button elsewhere keeps the theme's default colour. */
.cover-hero-text .md-button--primary {
  background-color: #22c55e !important;
  border-color: #22c55e !important;
}
.cover-hero-text .md-button--primary:hover {
  background-color: #16a34a !important;
  border-color: #16a34a !important;
}

.cover-hero-graphic {
  flex: 1 1 480px;
  max-width: 640px;
}

.cover-hero-graphic img {
  width: 100%;
  height: auto;
  display: block;
}

@media (max-width: 960px) {
  .cover-hero {
    flex-direction: column;
    text-align: center;
    min-height: auto;
    padding: 2rem 4vw;
  }
  .cover-hero-text {
    max-width: 100%;
  }
}

/* The PDF build reuses this same stylesheet (see "PDF-only / web-only
   content markers" below) - reset the breakout/flex/100vh sizing back to
   plain block flow for print, since WeasyPrint paginates rather than
   scrolls and has no concept of a viewport height to fill. */
@media print {
  .cover-hero {
    display: block;
    width: auto;
    position: static;
    left: auto;
    right: auto;
    margin: 0;
    min-height: 0;
    padding: 0;
  }
  .cover-hero-text,
  .cover-hero-graphic {
    max-width: 100%;
  }
  /* clamp()/vw sizing (used for the live website, where the viewport is
     known) has no meaning on a paginated PDF page, and isn't supported by
     WeasyPrint anyway - fall back to a plain point size. */
  .cover-hero-title {
    font-size: 32pt !important;
  }
  /* The live website picks light/dark between these two images via
     [data-md-color-scheme] (see "#only-light/dark" below) - meaningless in
     a static PDF with no theme toggle, so both would otherwise render at
     once. Keep only the light version, matching the PDF's white page
     background. Selectors below need the extra ".cover-hero-graphic"/
     ".off-glb" qualifier to out-specificity (rather than just out-!important)
     prodockit.pdf's own ".cover-page img" rule (display/max-height, etc,
     also !important) - equal-or-lower specificity loses to it regardless of
     !important or source order, since that rule is appended after this
     stylesheet. */
  .cover-hero-graphic img.hero-dark {
    display: none !important;
  }
  .cover-hero-graphic img.off-glb {
    width: 70% !important;
    max-width: 70% !important;
    max-height: none !important;
    margin: 0 auto !important;
  }
}

