/* =========================================================================
   Altius — surcouche spécifique au site, par-dessus Anw Theme.
   Ne redéfinit pas de couleurs en dur : tout passe par les tokens de
   static/theme/theme-tokens.css (var(--color-*), var(--brand-*), var(--gray-*)).
   ========================================================================= */

/* ---------- Logos thème-dépendants (navbar) ---------- */
.theme-logo { height: 28px; width: auto; }
.theme-logo--light { display: inline-block; }
.theme-logo--dark { display: none; }
[data-bs-theme="dark"] .theme-logo--light { display: none; }
[data-bs-theme="dark"] .theme-logo--dark { display: inline-block; }

.site-footer__brand-logo-img { height: 28px; width: auto; }

/* ---------- Clients logos slider (Swiper) ---------- */
.clients-slider { padding: 8px 0; }
.clients-slider .swiper-slide { width: auto; display: flex; align-items: center; justify-content: center; }
.clients-slider__img {
  height: 36px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .7;
  transition: filter var(--t-base), opacity var(--t-base);
}
.clients-slider__img:hover { filter: grayscale(0); opacity: 1; }

/* ---------- Rich text content (TinyMCE service/blog body) ---------- */
.prose { color: var(--color-text); line-height: 1.75; }
.prose :is(h2, h3, h4) { color: var(--color-text-strong); margin: 1.5em 0 0.5em; }
.prose p { margin: 0 0 1em; }
.prose ul, .prose ol { margin: 0 0 1em 1.25em; }
.prose a { color: var(--color-primary); }
.prose img { max-width: 100%; border-radius: var(--radius-md); }

/* ---------- Mobile menu toggle (public-nav has no built-in JS/CSS for this) ---------- */
@media (max-width: 991.98px) {
  .public-nav.is-open .public-nav__menu {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--app-surface);
    border-bottom: 1px solid var(--app-border);
    padding: 8px 16px 16px;
    gap: 0;
    max-height: calc(100vh - 64px);
    overflow-y: auto;
  }
  .public-nav.is-open .public-nav__menu > li { width: 100%; }
  .public-nav.is-open .public-nav__link { width: 100%; }
  .public-nav.is-open .mega-menu {
    display: block !important;
    position: static;
    box-shadow: none;
    border: none;
    padding: 0 0 8px 16px;
    grid-template-columns: 1fr;
  }
}
