/* ========================================================================
   NOVTINIS — FONDATION DESKTOP PREMIUM
   ------------------------------------------------------------------------
   Source de vérité unique à partir de 981 px :
   1. un seul rail horizontal (1360 px) pour logo, navigation et contenu ;
   2. un seul header Novtinis injecté au-dessus des shells métier ;
   3. Astra neutralisé seulement sur le front Novtinis ;
   4. aucune règle mobile modifiée.
   ======================================================================== */

:root {
  --nt-site-max: 1360px;
  --nt-page-gutter: 32px;
  --nt-nav-height: 112px;
  --nt-page-surface: #f6f8fc;
  --nt-page-surface-soft: #fbfcff;
  --nt-section-space: 28px;
}

@media (min-width: 981px) {
  html:has(body.nt-desktop-frame),
  body.nt-desktop-frame {
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    overflow-x: clip !important;
    background: var(--nt-page-surface) !important;
  }

  /* Astra n'est plus un composant de navigation sur les écrans Novtinis.
     La structure WordPress reste chargée, mais ne peut plus poser une grille,
     un conteneur ou une sidebar différente selon la page. */
  body.nt-premium-shared-public-nav #masthead,
  body.nt-premium-shared-public-nav .site-header,
  body.nt-premium-shared-public-nav .ast-primary-header-bar,
  body.nt-premium-shared-public-nav .ast-above-header-bar,
  body.nt-premium-shared-public-nav .ast-below-header-bar,
  body.nt-premium-shared-public-nav .ast-builder-grid-row-container,
  body.nt-premium-shared-public-nav .main-header-bar-wrap,
  body.nt-premium-shared-public-nav .main-header-bar,
  body.nt-premium-shared-public-nav .ast-mobile-header-wrap,
  body.nt-premium-shared-public-nav .entry-header {
    display: none !important;
  }

  body.nt-premium-shared-public-nav #page,
  body.nt-premium-shared-public-nav .site,
  body.nt-premium-shared-public-nav #content,
  body.nt-premium-shared-public-nav .site-content,
  body.nt-premium-shared-public-nav .site-content > .ast-container,
  body.nt-premium-shared-public-nav .ast-container,
  body.nt-premium-shared-public-nav #primary,
  body.nt-premium-shared-public-nav .content-area,
  body.nt-premium-shared-public-nav .site-main,
  body.nt-premium-shared-public-nav article,
  body.nt-premium-shared-public-nav .ast-article-single,
  body.nt-premium-shared-public-nav .entry-content {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    background: transparent !important;
  }

  body.nt-premium-shared-public-nav #primary {
    flex: 0 0 100% !important;
  }

  /* ----- composant unique de navigation ----- */
  .nt-public-desktop-nav {
    display: block !important;
  }

  .nt-public-desktop-nav--global {
    position: relative !important;
    z-index: 999 !important;
    display: block !important;
    width: 100% !important;
    height: var(--nt-nav-height) !important;
    min-height: var(--nt-nav-height) !important;
    margin: 0 !important;
    padding: 18px 0 20px !important;
    overflow: visible !important;
    isolation: isolate !important;
    box-sizing: border-box !important;
    background: transparent !important;
  }

  .nt-public-desktop-nav--global::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    border-bottom: 1px solid rgba(194, 208, 228, .68);
    background:
      radial-gradient(circle at 10% 0%, rgba(37, 99, 235, .075), transparent 30%),
      radial-gradient(circle at 91% 8%, rgba(255, 122, 0, .055), transparent 24%),
      linear-gradient(180deg, #fbfcff 0%, #f6f8fc 100%);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .035);
  }

  .nt-public-desktop-nav__inner,
  .nt-public-desktop-nav--in-shell .nt-public-desktop-nav__inner {
    width: min(calc(100% - (var(--nt-page-gutter) * 2)), var(--nt-site-max)) !important;
    min-height: 74px !important;
    display: grid !important;
    grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr) !important;
    align-items: center !important;
    gap: 28px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .nt-public-desktop-nav__brand {
    justify-self: start !important;
    display: inline-flex !important;
    align-items: center !important;
    min-height: 54px !important;
    line-height: 0 !important;
    text-decoration: none !important;
  }

  .nt-public-desktop-nav__brand img {
    display: block !important;
    width: 154px !important;
    height: auto !important;
    max-width: 100% !important;
  }

  .nt-public-desktop-nav__links {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 28px !important;
    min-width: 0 !important;
    white-space: nowrap !important;
  }

  .nt-public-desktop-nav__link {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 46px !important;
    color: #1e3557 !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 850 !important;
    text-decoration: none !important;
  }

  .nt-public-desktop-nav__link:hover,
  .nt-public-desktop-nav__link:focus-visible,
  .nt-public-desktop-nav__link.is-current {
    color: #2563eb !important;
  }

  .nt-public-desktop-nav__account {
    justify-self: end !important;
    min-height: 48px !important;
    padding: 0 21px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid rgba(37, 99, 235, .14) !important;
    border-radius: 999px !important;
    color: #1d4ed8 !important;
    background: #ffffff !important;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .08) !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
  }

  .nt-public-desktop-nav__account:not(.is-current):hover,
  .nt-public-desktop-nav__account:not(.is-current):focus-visible {
    color: #ffffff !important;
    border-color: transparent !important;
    background: linear-gradient(135deg, #2563eb, #2878ff) !important;
  }

  .nt-public-desktop-nav__link.is-current,
  .nt-public-desktop-nav__account.is-current {
    cursor: default !important;
    user-select: none !important;
  }

  /* Garde-fous : aucune ancienne barre locale ne peut réapparaître. */
  body.nt-premium-shared-public-nav .nt-listing-desktop-nav,
  body.nt-premium-shared-public-nav .nt-add-commerce-global-nav,
  body.nt-premium-shared-public-nav .nt-add-commerce-desktop-nav,
  body.nt-premium-shared-public-nav .nt-claim-desktop-header {
    display: none !important;
  }

  /* ----- pleine largeur technique, rail commun visuel ----- */
  body.nt-premium-shared-public-nav .home-app,
  body.nt-premium-shared-public-nav .search-app,
  body.nt-premium-shared-public-nav .listing-single-pro,
  body.nt-premium-shared-public-nav .seva-account-page,
  body.nt-premium-shared-public-nav .merchant-page,
  body.nt-premium-shared-public-nav .seva-add-commerce-page,
  body.nt-premium-shared-public-nav .nt-edit-page,
  body.nt-premium-shared-public-nav .nt-fiche-pro-page,
  body.nt-premium-shared-public-nav .nt-subscription-page,
  body.nt-premium-shared-public-nav .nt-claim-page,
  body.nt-premium-shared-public-nav .seva-login-page,
  body.nt-premium-shared-public-nav .seva-register-page,
  body.nt-premium-shared-public-nav .seva-reset-page,
  body.nt-premium-shared-public-nav .nt-ambassador-public-page,
  body.nt-premium-shared-public-nav .nt-gamification-page {
    box-sizing: border-box !important;
  }

  /* Accueil : le menu est déjà au-dessus, le hero repart sur le même axe. */
  body.nt-premium-shared-public-nav .nt-home-desktop-intro {
    width: min(calc(100% - (var(--nt-page-gutter) * 2)), var(--nt-site-max)) !important;
    max-width: var(--nt-site-max) !important;
    margin: 0 auto !important;
    padding: 24px 0 32px !important;
  }

  /* Recherche : l'ancien header devient uniquement le titre accessible. */
  body.nt-premium-shared-public-nav .search-header {
    width: min(calc(100% - (var(--nt-page-gutter) * 2)), var(--nt-site-max)) !important;
    max-width: var(--nt-site-max) !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }

  body.nt-premium-shared-public-nav .search-header-main.screen-reader-text {
    margin: 0 !important;
  }

  body.nt-premium-shared-public-nav .search-panel-top,
  body.nt-premium-shared-public-nav .search-results-section {
    width: min(calc(100% - (var(--nt-page-gutter) * 2)), var(--nt-site-max)) !important;
    max-width: var(--nt-site-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.nt-premium-shared-public-nav .search-panel-top {
    margin-top: 26px !important;
  }

  /* Les shells d'application restent centrés exactement au même rail. */
  body.nt-premium-shared-public-nav .seva-account-shell,
  body.nt-premium-shared-public-nav .merchant-page,
  body.nt-premium-shared-public-nav .seva-add-commerce-card,
  body.nt-premium-shared-public-nav .nt-claim-shell,
  body.nt-premium-shared-public-nav .seva-claim-shell,
  body.nt-premium-shared-public-nav .claim-commerce-shell {
    width: min(calc(100% - (var(--nt-page-gutter) * 2)), var(--nt-site-max)) !important;
    max-width: var(--nt-site-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.nt-premium-shared-public-nav .seva-account-page {
    padding-top: 0 !important;
  }

  body.nt-premium-shared-public-nav .seva-account-shell {
    overflow: visible !important;
  }

  body.nt-premium-shared-public-nav .merchant-page {
    margin-top: 0 !important;
  }

  body.nt-premium-shared-public-nav .listing-single-pro {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }
}

@media (min-width: 981px) and (max-width: 1180px) {
  :root {
    --nt-page-gutter: 24px;
    --nt-nav-height: 100px;
  }

  .nt-public-desktop-nav--global {
    padding: 14px 0 16px !important;
  }

  .nt-public-desktop-nav__inner,
  .nt-public-desktop-nav--in-shell .nt-public-desktop-nav__inner {
    min-height: 70px !important;
    grid-template-columns: 140px auto 140px !important;
    gap: 16px !important;
  }

  .nt-public-desktop-nav__brand img {
    width: 138px !important;
  }

  .nt-public-desktop-nav__links {
    gap: 18px !important;
  }

  .nt-public-desktop-nav__link,
  .nt-public-desktop-nav__account {
    font-size: 13px !important;
  }
}

/* ========================================================================
   NAVIGATION — verrouillage final du centre de viewport
   ------------------------------------------------------------------------
   Les précédents rendus locaux utilisaient des grilles différentes. Ce bloc
   s'applique seulement aux routes identifiées par nt-premium-shared-public-nav
   et rend le groupe de liens indépendant de la largeur logo/bouton.
   ======================================================================== */
@media (min-width: 981px) {
  body.nt-premium-shared-public-nav .nt-public-desktop-nav__inner,
  body.nt-premium-shared-public-nav .nt-public-desktop-nav--in-shell .nt-public-desktop-nav__inner {
    position: relative !important;
    width: min(calc(100% - (var(--nt-page-gutter) * 2)), var(--nt-site-max)) !important;
    min-height: 74px !important;
    height: 74px !important;
    display: block !important;
    margin: 0 auto !important;
    padding: 0 !important;
  }

  body.nt-premium-shared-public-nav .nt-public-desktop-nav__brand,
  body.nt-premium-shared-public-nav .nt-public-desktop-nav__links,
  body.nt-premium-shared-public-nav .nt-public-desktop-nav__account {
    position: absolute !important;
    top: 50% !important;
  }

  body.nt-premium-shared-public-nav .nt-public-desktop-nav__brand {
    left: 0 !important;
    transform: translateY(-50%) !important;
  }

  body.nt-premium-shared-public-nav .nt-public-desktop-nav__links {
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    min-width: max-content !important;
  }

  body.nt-premium-shared-public-nav .nt-public-desktop-nav__account {
    right: 0 !important;
    transform: translateY(-50%) !important;
  }

  /* Barres locales historiques : le composant injecté via wp_body_open est
     désormais la seule navigation desktop. */
  body.nt-premium-shared-public-nav .nt-listing-desktop-nav,
  body.nt-premium-shared-public-nav .nt-add-commerce-global-nav,
  body.nt-premium-shared-public-nav .nt-add-commerce-desktop-nav,
  body.nt-premium-shared-public-nav .nt-claim-desktop-header,
  body.nt-premium-shared-public-nav .app-header > .nt-public-desktop-nav,
  body.nt-premium-shared-public-nav .search-header > .nt-public-desktop-nav {
    display: none !important;
  }
}
