/*
 * SPDX-FileCopyrightText: 2026 NVEIL SAS
 * SPDX-FileContributor: Pierre Jacquet
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

/* NVEIL brand overrides for mkdocs-material */

/* Brand palette from the NVEIL logo gradient */
:root {
  --nveil-purple: #5c2d91;
  --nveil-pink: #e91e8c;
  --nveil-orange: #f7941d;
  --nveil-yellow: #f9d423;
  --md-primary-fg-color: var(--nveil-purple);
  --md-accent-fg-color: var(--nveil-orange);
}

[data-md-color-scheme="slate"] {
  --md-primary-fg-color: #7b3fb5;
  --md-accent-fg-color: #f9a825;
}

/* ── Header + tabs: unified gradient ── */
.md-header {
  background: linear-gradient(135deg, #5c2d91 0%, #9b30a0 40%, #e91e8c 70%, #f7941d 100%);
}

/* Logo: bigger, site name: smaller */
.md-header__button.md-logo img {
  height: 2.4rem;
}
.md-header__topic:first-child .md-ellipsis {
  font-size: 0.85rem;
  opacity: 0.8;
}

/* Tabs bar blends into the header gradient */
.md-tabs {
  background: transparent;
}
.md-tabs__link {
  opacity: 0.7;
}
.md-tabs__link--active,
.md-tabs__link:hover {
  opacity: 1;
}

/* ── Links ── */
.md-typeset a {
  color: var(--nveil-orange);
}
.md-typeset a:hover {
  color: var(--nveil-pink);
}

/* ── Cards ── */
.md-typeset .grid.cards > ul > li {
  border: 1px solid rgba(247, 148, 29, 0.15);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.md-typeset .grid.cards > ul > li:hover {
  border-color: rgba(247, 148, 29, 0.5);
  box-shadow: 0 4px 20px rgba(247, 148, 29, 0.1);
}

/* ── Code ── */
.md-typeset code {
  border-color: rgba(247, 148, 29, 0.12);
}

/* ── Navigation ── */
.md-nav__link--active {
  color: var(--nveil-orange) !important;
}

/* ── Images ── */
.md-typeset img {
  border-radius: 8px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
}

/* ── Visually hidden context block for LLM readers ──
   Present in the DOM and text stream so crawlers and language models
   ingest it, but invisible to sighted users and hidden from assistive
   tech via aria-hidden on the element itself. */
.nveil-ai-context {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ── Admonitions with brand colors ── */
.md-typeset .admonition.tip,
.md-typeset details.tip {
  border-color: var(--nveil-orange);
}
.md-typeset .tip > .admonition-title,
.md-typeset .tip > summary {
  background-color: rgba(247, 148, 29, 0.1);
}
.md-typeset .tip > .admonition-title::before,
.md-typeset .tip > summary::before {
  background-color: var(--nveil-orange);
}

/* ════════════════════════════════════════════════════════════════
   Hub landing — only used by the docs.nveil.com portal home page
   ════════════════════════════════════════════════════════════════ */

/* Hero block: centered, breathing room, gradient headline */
.md-typeset .nveil-hero {
  text-align: center;
  margin: 1.5rem auto 2.5rem;
  max-width: 46rem;
}
.md-typeset .nveil-hero h1 {
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 0.6rem;
  background: linear-gradient(120deg, var(--nveil-purple), var(--nveil-pink) 55%, var(--nveil-orange));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
/* Lighter stops in dark mode so the headline keeps enough contrast */
[data-md-color-scheme="slate"] .md-typeset .nveil-hero h1 {
  background: linear-gradient(120deg, #b794f6, #f485c0 50%, #ffc168);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.md-typeset .nveil-hero p {
  font-size: 1.15rem;
  opacity: 0.85;
}

/* Path cards: prominent, flattering, lift on hover */
.md-typeset .grid.cards > ul > li {
  border: 1px solid rgba(247, 148, 29, 0.18);
  border-radius: 14px;
  padding: 1.4rem 1.3rem;
  background: linear-gradient(160deg, rgba(92, 45, 145, 0.05), rgba(247, 148, 29, 0.04));
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
.md-typeset .grid.cards > ul > li:hover {
  transform: translateY(-5px);
  border-color: var(--nveil-orange);
  box-shadow: 0 12px 34px rgba(92, 45, 145, 0.22);
}
/* Card divider becomes a thin brand gradient */
.md-typeset .grid.cards > ul > li > hr {
  height: 2px;
  border: 0;
  margin: 0.7rem 0 0.9rem;
  background: linear-gradient(90deg, var(--nveil-purple), var(--nveil-pink), var(--nveil-orange));
  opacity: 0.45;
}
/* Big card icons in brand orange */
.md-typeset .grid.cards .twemoji.lg svg,
.md-typeset .grid.cards .twemoji.middle svg {
  fill: var(--nveil-orange);
}

/* Figure captions */
.md-typeset figure figcaption {
  font-size: 0.82rem;
  opacity: 0.7;
  margin-top: 0.5rem;
}
