@charset "UTF-8";
/* ==========================================================================
   public.scss — pages publiques (landing et pages légales)
   ==========================================================================

   Compilée vers `public/css/public.css`, chargée par `app/Views/layouts/public_layout.php` dans
   la section `pageStyles`, APRÈS `landing.css` (thème du Kit).

   C'est précisément l'intérêt d'une feuille distincte : ces règles habillent ou corrigent
   `landing.css`, et les avoir dans `main.css` les faisait passer AVANT lui — elles ne l'emportaient
   alors que par la spécificité, au cas par cas. Ici l'ordre travaille pour nous.

   Corollaire à ne pas perdre de vue : une règle qui égalait la spécificité d'une règle de
   `landing.css` et lui laissait la main par l'ordre l'emporte désormais. Le survol des liens de
   navbar était dans ce cas (cf. le commentaire dans le partiel).

   Compilation : sass public/sass:public/css */
/* ==========================================================================
   Pages publiques : landing et pages légales
   ==========================================================================

   `landing.css` (thème du Kit) est chargé APRÈS `main.css`, dans la section `pageStyles`.
   L'ordre ne joue donc pas en notre faveur : chaque règle ci-dessous ne l'emporte que par sa
   spécificité. C'est bien le cas — `landing.css` n'habille le bandeau que par le sélecteur
   d'élément `header` (0,0,1), que `.legal-header` (0,1,0) bat quel que soit l'ordre — et les
   autres classes n'ont aucun équivalent chez lui. Toute règle ajoutée ici doit être vérifiée
   sur ce point avant d'être posée. */
/* La navbar est fixe : sans marge d'ancre, le titre de la section visée arrive derrière elle.
   Hauteur réelle mesurée en JS (--landing-anchor-offset) ; la valeur ci-dessous n'est que le
   repli si le script ne s'exécute pas. */
.landing-page section[id] {
  scroll-margin-top: var(--landing-anchor-offset, 80px);
}

/* Bandeau des pages légales : celui de la landing occupe tout l'écran (`header` de landing.css),
   on le réduit ici à un simple en-tête de page. */
.legal-header {
  min-height: unset;
  padding: 140px 0 70px 0;
}
.legal-header::before {
  border-radius: 0 0 30% 30%;
}

/* Colonne de lecture des pages légales : une ligne de texte pleine largeur serait illisible. */
.legal-content {
  max-width: 920px;
}

/* Étape du parcours (landing). Flex plutôt que bloc : la ligne fait exactement la hauteur de
   l'avatar (pas d'espace de ligne sous un élément inline), donc le top: 50 % de la flèche tombe
   pile au milieu de l'icône. */
.workflow-step {
  position: relative;
  display: flex;
  justify-content: center;
}

/* translate(50%) pose le milieu de la flèche sur le bord de colonne, soit à mi-distance entre
   deux avatars centrés de même largeur : elle tombe donc entre les cadres, pas sous eux. */
.workflow-arrow {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(50%, -50%);
  opacity: 0.5;
}

/* Pastille numérotée débordant du coin de l'avatar de l'étape. */
.workflow-step-badge {
  position: absolute;
  top: -8px;
  right: -8px;
}

/* Textes blancs atténués sur fond sombre ou coloré. Trois paliers distincts, volontairement
   nommés par leur emploi : les utilitaires `.opacity-*` de Bootstrap ne descendent pas à ce
   grain (25/50/75/100) et un arrondi changerait le rendu. */
.hero-lead {
  opacity: 0.85;
}

.cta-lead {
  opacity: 0.9;
}

.footer-note {
  opacity: 0.7;
}

/* Liens de la navbar publique : le fond de la navbar est sombre (var(--bs-dark)), mais Bootstrap
   pose `--bs-navbar-color` en variante claire par défaut (rgba(0,0,0,.55), donc du texte sombre)
   faute de classe `.navbar-dark`.

   ⚠️ L'état de survol est redéclaré ici volontairement. `landing.css` le pose par
   `.navbar .nav-link:hover` (spécificité 0,3,0), exactement celle de notre sélecteur : tant que
   `main.css` passait AVANT, l'ordre donnait le survol à `landing.css`. Cette feuille passant
   désormais APRÈS, l'ordre s'inverserait et le survol resterait blanc. On ne dépend donc plus de
   l'ordre du tout : les deux états sont écrits ici. */
.navbar .navbar-nav .nav-link {
  color: #fff;
}
.navbar .navbar-nav .nav-link:hover, .navbar .navbar-nav .nav-link:focus, .navbar .navbar-nav .nav-link:active {
  color: var(--bs-primary);
}

/* Mode sombre des pages publiques
   ==========================================================================

   `landing.css` porte bien un bloc sombre, mais il ne s'applique JAMAIS : il est écrit
   `[data-pc-theme=dark].landing-page`, soit un sélecteur COMPOSÉ — il exige les deux sur le même
   élément. Or `data-pc-theme` est posé sur le `<body>` (dk_body_attributes / theme.js) et
   `.landing-page` est un `<div>` à l'intérieur : il faut un combinateur de descendance. Sa dernière
   déclaration est de surcroît du SCSS non compilé (`lighten($dark-layout-color, 4%)`), donc une
   valeur invalide que le navigateur jette.

   Résultat : en sombre, le thème passait les titres en clair (`--bs-heading-color: #fafafa`) alors
   que les sections gardaient leur fond blanc — les `h2` devenaient invisibles. On réécrit donc le
   bloc ici, avec la même palette que le thème (#161c25 fond de page, #1e2632 bandes de section).

   ⚠️ Ne PAS redéfinir `--bs-white` / `--bs-white-rgb` pour y parvenir : `.text-white` en dérive, et
   tout le texte du hero, de la navbar, du bloc d'appel à l'action et du pied de page — posés sur
   des fonds sombres ou colorés dans les DEUX thèmes — virerait au noir. Seul le fond est repeint. */
[data-pc-theme=dark] .landing-page {
  background: var(--bs-body-bg);
  /* `!important` obligatoire : l'utilitaire `.bg-white` de Bootstrap en porte un. */
}
[data-pc-theme=dark] .landing-page .bg-white {
  background-color: #1e2632 !important;
}
[data-pc-theme=dark] .landing-page {
  /* Pages légales : leur carte reçoit `--bs-card-bg: #1e2632` du thème, soit exactement le fond
     que la règle ci-dessus donne à sa section — la carte s'y fondrait (le thème lui retire bordure
     et ombre en sombre). On rend cette section-là au fond de page pour qu'elle s'en détache. */
}
[data-pc-theme=dark] .landing-page section.bg-white:has(> .legal-content) {
  background-color: var(--bs-body-bg) !important;
}

/* Bandeau de maintenance (dk_maintenance_banners(), ci4-dashboard-kit) sur la landing publique.
   `.navbar` de landing.css est en `position: fixed; top: 0` dès le chargement (pas seulement au
   défilement) : sans ce décalage, le bandeau — lui aussi fixe en haut — le recouvrirait. Motif
   `body.dk-has-topbar` du shell admin, transposé ici car ce gabarit n'en hérite pas : la classe se
   pose sur `.landing-page` (le seul conteneur que ce fichier possède), pas sur `<body>`. */
.landing-page.has-topbar .navbar {
  top: var(--dk-topbar-height);
}

/*# sourceMappingURL=public.css.map */
