/* Groupe Cruvelier — Public shell V1
   Central presentation layer for the marketing/public pages that already use
   the Groupe Cruvelier burger navigation. No business behaviour. */

html{background-color:#F3F6FB}

body.gc-public-theme-v1{
  --gc-public-header:#F3F6FB;
  --gc-public-border:#DCE3EC;
  --gc-public-ink:#252A33;
  --gc-public-muted:#626B78;
  --gc-public-red:#C62828;
  --gc-public-red-hover:#A82026;
  --gc-public-red-focus:rgba(198,40,40,.20);
  --gc-text:#252A33;
  --gc-muted:#626B78;
  --gc-navy:#A82026;
  --gc-navy-2:#C62828;
  --gc-navy-3:#D13A40;
  --pico-primary:#C62828;
  --pico-primary-hover:#A82026;
  --pico-primary-focus:rgba(198,40,40,.20);
  --text:#252A33;
  --muted:#626B78;
  --accent:#C62828;
}

/* Central public header: geometry intentionally matches the existing a_propos.php shell. */
body.gc-public-theme-v1 .gc-public-header.navwrap{
  position:sticky!important;top:0!important;z-index:1000!important;margin:0!important;
  background:var(--gc-public-header)!important;color:var(--gc-public-ink)!important;
  border:0!important;box-shadow:0 8px 24px rgba(31,41,55,.055)!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
body.gc-public-theme-v1 .gc-public-header .navwrap-bleed{
  width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;
  background:var(--gc-public-header)!important;border-bottom:1px solid var(--gc-public-border)!important;
}
body.gc-public-theme-v1 .gc-public-header .navcontainer{
  width:min(1160px,calc(100% - 24px))!important;max-width:none!important;margin:0 auto!important;padding:0!important;
}
body.gc-public-theme-v1 .gc-public-header .nav{
  min-height:60px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;
  padding-top:calc(8px + env(safe-area-inset-top))!important;padding-bottom:8px!important;padding-left:0!important;padding-right:0!important;
}
body.gc-public-theme-v1 .gc-public-header .brand{
  display:flex!important;align-items:center!important;gap:12px!important;min-width:0!important;overflow:visible!important;
}
body.gc-public-theme-v1 .gc-public-header .brand .logo{
  display:block!important;width:auto!important;height:36px!important;max-width:min(68vw,430px)!important;object-fit:contain!important;
}
/* Specificity deliberately exceeds P6's button :not() selector. */
body.gc-ui.gc-realm-public.gc-public-theme-v1 .gc-public-header button.burger{
  position:static!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  flex:0 0 44px!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;
  margin:0!important;padding:0!important;border-radius:14px!important;border:1px solid var(--gc-public-border)!important;
  background:#fff!important;color:var(--gc-public-ink)!important;box-shadow:0 6px 18px rgba(31,41,55,.07)!important;
  transform:none!important;cursor:pointer!important;-webkit-tap-highlight-color:transparent;
}
body.gc-ui.gc-realm-public.gc-public-theme-v1 .gc-public-header button.burger svg{width:22px!important;height:22px!important;display:block!important}
@media(hover:hover) and (pointer:fine){
 body.gc-ui.gc-realm-public.gc-public-theme-v1 .gc-public-header button.burger:hover{
   background:#fff!important;border-color:#C9D2DE!important;color:var(--gc-public-red)!important;
   box-shadow:0 8px 20px rgba(31,41,55,.09)!important;transform:none!important;
 }
}
body.gc-ui.gc-realm-public.gc-public-theme-v1 .gc-public-header button.burger:active{background:#F8FAFC!important;transform:none!important}
@media(min-width:901px){
 body.gc-public-theme-v1 .gc-public-header .navcontainer{width:min(1440px,calc(100% - 32px))!important}
 body.gc-public-theme-v1 .gc-public-header .brand .logo{height:44px!important}
}

/* P6 currently turns intended white public hero titles/help titles navy. Restore their public design. */
body.gc-public-theme-v1 .hero-banner .hero-title,
body.gc-public-theme-v1 .help-card .help-card-text h3{color:#fff!important}

/* Keep hero controls in the public red/neutral family instead of P6 navy. */
body.gc-public-theme-v1 .hero-banner :where(button.hero-btn,a.hero-btn){
  background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.18)!important;
  color:#fff!important;box-shadow:none!important;
}
body.gc-public-theme-v1 .hero-banner :where(button.hero-btn,a.hero-btn):hover{
  background:rgba(255,255,255,.17)!important;border-color:rgba(255,255,255,.27)!important;color:#fff!important;
}
body.gc-public-theme-v1 .hero-banner .hero-btn.primary{background:var(--gc-public-red)!important;border-color:var(--gc-public-red)!important;color:#fff!important}
body.gc-public-theme-v1 .hero-banner .hero-btn.primary:hover{background:var(--gc-public-red-hover)!important;border-color:var(--gc-public-red-hover)!important}

/* Alimentation toolbar: primary action is brand red; reset stays neutral/glass. */
body.gc-ui.gc-realm-public.gc-public-theme-v1 #sortDistance{
  background:var(--gc-public-red)!important;border-color:var(--gc-public-red)!important;color:#fff!important;
  box-shadow:0 7px 18px rgba(198,40,40,.18)!important;
}
body.gc-ui.gc-realm-public.gc-public-theme-v1 #sortDistance:hover{
  background:var(--gc-public-red-hover)!important;border-color:var(--gc-public-red-hover)!important;color:#fff!important;
}
body.gc-ui.gc-realm-public.gc-public-theme-v1 #resetOrder{
  background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.22)!important;color:#fff!important;box-shadow:none!important;
}
body.gc-ui.gc-realm-public.gc-public-theme-v1 #resetOrder:hover{
  background:rgba(255,255,255,.18)!important;border-color:rgba(255,255,255,.30)!important;color:#fff!important;
}
body.gc-public-theme-v1 .help-card .help-card-text a{color:#FF9A9A!important}

/* Other P6 public actions use Groupe Cruvelier red, never the P6 navy/blue. */
body.gc-public-theme-v1 :where(button,[role=button],input[type=submit],.gc-btn):not(.secondary):not(.outline):not(.contrast):not(.danger):not(.burger):not(.close):not(.hero-btn){
  background:var(--gc-public-red)!important;border-color:var(--gc-public-red)!important;color:#fff!important;
}
body.gc-public-theme-v1 :where(button,[role=button],input[type=submit],.gc-btn):not(.secondary):not(.outline):not(.contrast):not(.danger):not(.burger):not(.close):not(.hero-btn):hover{
  background:var(--gc-public-red-hover)!important;border-color:var(--gc-public-red-hover)!important;color:#fff!important;
  box-shadow:0 8px 20px rgba(198,40,40,.16)!important;
}

/* Central public footer. */
body.gc-public-theme-v1 .gc-public-footer{
  margin:0!important;padding:16px 20px 14px!important;
  background:var(--gc-public-header)!important;color:#59616D!important;border-top:1px solid var(--gc-public-border)!important;
  text-align:center!important;font-size:.88rem!important;line-height:1.35!important;box-shadow:none!important;
}
body.gc-public-theme-v1 .gc-public-safe-bottom{
  display:block!important;width:100%!important;height:env(safe-area-inset-bottom)!important;min-height:env(safe-area-inset-bottom)!important;
  margin:0!important;padding:0!important;background:#F3F6FB!important;border:0!important;box-shadow:none!important;
  flex:0 0 env(safe-area-inset-bottom)!important;pointer-events:none!important;
}
body.gc-public-theme-v1 .gc-public-footer p{color:inherit!important}
body.gc-public-theme-v1 .gc-public-footer p:first-child{margin:0 0 4px!important}
body.gc-public-theme-v1 .gc-public-footer p:last-child{margin:0!important}


/* Public shell V2 — targeted geometry/safe-area corrections.
   1) The full-width header no longer uses 100vw breakout geometry, which can
      exceed the layout viewport by the classic desktop scrollbar width.
   2) The public home page is a true one-viewport composition: header + hero
      share the dynamic viewport without creating a 61px vertical overflow.
   3) The bottom iOS safe area is painted by a dedicated solid #F3F6FB strip
      rendered immediately after the footer; no gradient and no extra net
      safe-area height versus V1. */
body.gc-public-theme-v1.theme-noir{
  height:100vh!important;min-height:100vh!important;overflow:hidden!important;
  display:flex!important;flex-direction:column!important;
}
@supports(height:100dvh){
  body.gc-public-theme-v1.theme-noir{height:100dvh!important;min-height:100dvh!important}
}
body.gc-public-theme-v1.theme-noir > .gc-public-header{flex:0 0 auto!important}
body.gc-public-theme-v1.theme-noir > .hero{
  flex:1 1 auto!important;min-height:0!important;height:auto!important;width:100%!important;
}


/* Public shell V3 — footer follows the page surface; home gets a black header/safe area.
   Footer deliberately behaves like the standard portal footer: text-only, centered,
   transparent, with the bottom safe-area absorbed as spacing rather than as a colored bar. */
body.gc-public-theme-v1 .gc-public-footer{
  margin:22px 0 0!important;
  padding:0 16px calc(12px + env(safe-area-inset-bottom))!important;
  background:transparent!important;
  border:0!important;
  color:var(--pico-muted-color,var(--gc-public-muted))!important;
  text-align:center!important;
  font-size:.9rem!important;
  line-height:1.35!important;
  box-shadow:none!important;
}
body.gc-public-theme-v1 .gc-public-footer p{color:inherit!important}
body.gc-public-theme-v1 .gc-public-footer p:first-child{margin:0 0 4px!important}
body.gc-public-theme-v1 .gc-public-footer p:last-child{margin:0!important}
body.gc-public-theme-v1 .gc-public-safe-bottom{display:none!important}

/* Home-only exception: the landing hero is black, so the public header and iOS
   top safe area must visually continue that black surface. No gradient. */
html.gc-public-home-root{background-color:#000!important}
body.gc-public-theme-v1.theme-noir .gc-public-header.navwrap,
body.gc-public-theme-v1.theme-noir .gc-public-header .navwrap-bleed{
  background:#000!important;
  color:#fff!important;
}
body.gc-public-theme-v1.theme-noir .gc-public-header.navwrap{
  box-shadow:none!important;
}
body.gc-public-theme-v1.theme-noir .gc-public-header .navwrap-bleed{
  border-bottom-color:#000!important;
}
body.gc-ui.gc-realm-public.gc-public-theme-v1.theme-noir .gc-public-header button.burger{
  background:rgba(0,0,0,.28)!important;
  border-color:rgba(255,255,255,.22)!important;
  color:rgba(255,255,255,.92)!important;
  box-shadow:0 10px 26px rgba(0,0,0,.18)!important;
}
@media(hover:hover) and (pointer:fine){
  body.gc-ui.gc-realm-public.gc-public-theme-v1.theme-noir .gc-public-header button.burger:hover{
    background:rgba(255,255,255,.10)!important;
    border-color:rgba(255,255,255,.30)!important;
    color:#fff!important;
    box-shadow:0 10px 26px rgba(0,0,0,.18)!important;
    transform:none!important;
  }
}
body.gc-ui.gc-realm-public.gc-public-theme-v1.theme-noir .gc-public-header button.burger:active{
  background:rgba(255,255,255,.14)!important;
  color:#fff!important;
  transform:none!important;
}

/* Public shell V4 — home overlay refinement.
   Home-only exception: the header itself is transparent so the landing image
   remains visible beneath it. The iOS top safe area and any canvas exposed
   behind the hero remain solid black. Other public pages are unchanged. */
html.gc-public-home-root,
body.gc-public-theme-v1.theme-noir{
  background:#000!important;
}
body.gc-public-theme-v1.theme-noir > .gc-public-header.navwrap{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  background:transparent!important;
  color:#fff!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.gc-public-theme-v1.theme-noir > .gc-public-header .navwrap-bleed{
  background:transparent!important;
  border-bottom-color:transparent!important;
}
body.gc-public-theme-v1.theme-noir::before{
  content:"";
  position:fixed;
  z-index:1002;
  top:0;
  left:0;
  right:0;
  height:env(safe-area-inset-top);
  background:#000;
  pointer-events:none;
}
