/* Shared page frame, based on the Transport page. */
:root {
  --site-shell-width: 1260px;
  --site-gutter: 38px;
  --site-guide-gap: 16px;
  --site-content-gutter: calc(var(--site-gutter) / 2 + var(--site-guide-gap));
  --site-content-width: calc(var(--site-shell-width) - 2 * var(--site-content-gutter));
}

@media (max-width: 1000px) {
  :root { --site-gutter: 25px; }
}
@media (max-width: 450px) {
  :root { --site-gutter: 17px; --site-guide-gap: 12px; }
}

/* Only page containers: cards, forms and dialogs keep their own spacing. */
:is(
  .page > section,
  #page-home #homeMosaic,
  #page-home #homeVision,
  #page-home #homeAnalyses,
  #page-home #hmTrend,
  #page-home #homeLatest,
  #page-home #homeProCta,
  #page-transport .tx-shell,
  #page-pro .pp-shell,
  #page-pieces .pe-shell,
  #page-favoris .nv-personal-shell,
  #page-messages .nv-personal-shell,
  #page-recherche .mt-search-workspace,
  #page-mobilhome .am62-hero,
  #page-publier .pub-shell,
  #page-annonce > div,
  #page-vendeur > div:not(#vendCover),
  #page-legal > div,
  .region-hero,
  .gamme-hero,
  .fiche-hero,
  #compteLoggedIn .cp2-in,
  .footer-inner,
  .footer-wrap
) {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--site-shell-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--site-content-gutter) !important;
  padding-right: var(--site-content-gutter) !important;
}

#page-recherche,
#compteLoggedIn {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* These panels have their own surface; align the surface with the content. */
#page-publier .pub-hero {
  width: calc(100% - 2 * var(--site-content-gutter));
  max-width: var(--site-content-width);
  margin-left: auto;
  margin-right: auto;
}

body > nav {
  position: absolute !important;
  left: var(--mt-guide-offset) !important;
  right: var(--mt-guide-offset) !important;
  padding-left: var(--site-guide-gap) !important;
  padding-right: var(--site-guide-gap) !important;
  border-bottom-color: transparent !important;
}
/* Extend the separator's ink to the viewport edges, without widening hover. */
body > nav::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: rgba(10, 37, 64, .08);
  box-shadow: 0 0 0 100vmax rgba(10, 37, 64, .08);
  clip-path: inset(0 -100vmax);
  pointer-events: none;
}
@media (min-width: 1200px) {
  body > nav { justify-content: flex-start; gap: 24px; }
  body > nav .nav-links { gap: 2px; }
  body > nav .nav-link {
    font-size: 13px;
    padding: 9px 10px;
    line-height: 18px;
  }
}
body > nav .nav-ico-group { margin-left: auto; }
body > nav .nav-link,
body > nav .nav-link.nav-analyses {
  color: #111;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  border-radius: 6px;
}
body > nav .nav-link:hover,
body > nav .nav-link.nav-analyses:hover { color: #111; }
body > nav .nav-link.active,
body > nav .nav-link.active:hover { color: #111; background: rgba(37, 99, 235, .09); }
@media (max-width: 1199px) {
  body > nav .nav-ico-group { margin-left: 0; }
  body > nav .nav-links {
    left: calc(var(--site-gutter) / 2);
    right: calc(var(--site-gutter) / 2);
  }
}

/* Match the annotated desktop frame; preserve the original guide gap. */
@media (min-width: 1320px) {
  :root { --site-shell-width: 1292px; }
}

@media (min-width:1320px){:root{--mt-guide-offset:max(calc(var(--site-gutter) / 2),calc((100% - clamp(1292px,92vw,1600px)) / 2 + var(--site-gutter) / 2));}}

/* Every homepage content block follows the service tiles' outer edges. */
#page-home { --home-nav-gap:16px; }
#page-home.page > :is(#homeMosaic, #homeVision, #homeAnalyses, #hmTrend, #homeLatest),
#page-home #homeExplore > .home-guide-frame {
  box-sizing:border-box;
  width:calc(100% - 2 * (var(--mt-guide-offset) + var(--home-nav-gap)))!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}
#page-home #homeMosaic .hm-mosaic-inner { max-width:none; }

@media(max-width:450px){#page-home{--home-nav-gap:12px;}}
