/* doc-project | public/assets/css/public-layout.css | organise logo et navigation publics, pied de page et comportement mobile professionnel */
.site-header { position: sticky; z-index: 1000; top: 0; background: rgba(255,255,255,.94); border-bottom: 1px solid rgba(214,227,232,.85); backdrop-filter: blur(14px); }
.site-header__inner { display: flex; min-height: 5.1rem; align-items: center; justify-content: space-between; gap: 1.5rem; }
.site-header .brand__logo { display:block;flex:0 0 auto;width:auto;max-width:8rem; }
.site-header .brand__logo img { display:block;width:auto;height:3.4rem;max-width:8rem;object-fit:contain; }
.site-header .brand__logo + span { min-width:0; }
.main-nav { display: flex; align-items: center; gap: .15rem; }
.main-nav > a:not(.button) { padding: .6rem .68rem; color: var(--ink-soft); border-radius: .6rem; font-size: .9rem; font-weight: 700; text-decoration: none; }
.main-nav > a.is-active, .main-nav > a:not(.button):hover { color: var(--ocean-900); background: var(--surface-tint); }
.main-nav__actions { display: flex; gap: .5rem; margin-left: .6rem; }
.nav-toggle { display: none; width: 2.7rem; height: 2.7rem; place-items: center; color: var(--ocean-900); background: #fff; border: 1px solid var(--line); border-radius: .75rem; }
.site-footer { color: #d8e9ef; background: #062e40; }
.site-footer__grid { display: grid; grid-template-columns: 1.45fr .75fr 1.2fr .8fr; gap: clamp(1.5rem,4vw,4rem); padding: 4.5rem 0 3rem; }
.site-footer h2 { color: #fff; font-size: 1rem; }
.site-footer section { display: grid; align-content: start; gap: .55rem; }
.site-footer a { width: fit-content; color: #d8e9ef; text-decoration: none; }
.site-footer a:hover { color: #fff; }
.brand--footer strong, .brand--footer small { color: #fff; }
.site-footer__legal { color: #9fc0cb; font-size: .83rem; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 1rem; padding: 1.2rem 0 1.6rem; color: #9fc0cb; border-top: 1px solid rgba(255,255,255,.12); font-size: .82rem; }
@media (max-width: 1060px) {
  .site-header .brand small { display: none; }
  .main-nav > a:not(.button) { padding-inline: .48rem; }
  .site-footer__grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 850px) {
  .nav-toggle { display: grid; }
  .main-nav { position: absolute; top: calc(100% + 1px); right: 0; left: 0; display: none; align-items: stretch; padding: .8rem 1rem 1rem; background: #fff; border-bottom: 1px solid var(--line); box-shadow: var(--shadow); }
  .main-nav.is-open { display: grid; }
  .main-nav > a:not(.button) { padding: .85rem; }
  .main-nav__actions { display: grid; grid-template-columns: 1fr 1fr; margin: .45rem 0 0; }
}
@media (max-width: 600px) {
  .site-header__inner { min-height: 4.55rem; }
  .site-header .brand__logo img { height:2.8rem;max-width:6.5rem; }
  .site-footer__grid { grid-template-columns: 1fr; padding-top: 3.5rem; }
  .site-footer__bottom { align-items: flex-start; flex-direction: column; }
  .main-nav__actions { grid-template-columns: 1fr; }
}