/* PASIVITE 2.8.48.3 — audit exhaustif Homepage.
   Objectifs: aucun chevauchement, aucune carte vide, mascotte entière,
   densité mobile maîtrisée, états de liens stables. */

/* HERO — structure robuste, sans superposition. */
body.public-body:not(.mobile-mode) .psv-home-hero-grid{
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr)!important;
  gap:clamp(28px,5vw,64px)!important;
  align-items:center!important;
}
body.public-body:not(.mobile-mode) .psv-home-hero-mascot{
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:auto auto auto!important;
  justify-items:center!important;
  align-items:start!important;
  gap:12px!important;
  min-height:0!important;
  width:100%!important;
  overflow:visible!important;
  padding:0!important;
}
body.public-body:not(.mobile-mode) .psv-home-hero-mascot::before{
  inset:4% 6% 18%!important;
}
body.public-body:not(.mobile-mode) .psv-home-hero-mascot>img{
  position:static!important;
  display:block!important;
  grid-row:1!important;
  width:min(310px,78%)!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  clip-path:none!important;
}
body.public-body:not(.mobile-mode) .psv-mascot-note{
  position:static!important;
  grid-row:2!important;
  width:min(280px,92%)!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
}
body.public-body:not(.mobile-mode) .psv-home-method-mini{
  position:static!important;
  grid-row:3!important;
  width:100%!important;
  max-width:none!important;
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  gap:7px!important;
  margin:0!important;
}

/* 4 PORTES — pas de variante inversée fragile: toutes lisibles, la première est accentuée. */
body.public-body:not(.mobile-mode) .pv-home-main .pv-card-grid{
  align-items:stretch!important;
}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card:link,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card:visited,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card:hover,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card:focus,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card:focus-visible,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card:active{
  position:relative!important;
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  min-height:168px!important;
  padding:20px!important;
  border:1px solid #d7e3e8!important;
  border-radius:18px!important;
  background:#fff!important;
  color:#18242f!important;
  text-decoration:none!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card>div{
  position:relative!important;
  z-index:1!important;
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  min-width:0!important;
}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card strong{
  display:block!important;
  color:#082653!important;
}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card small{
  display:block!important;
  color:#5b6e80!important;
}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card em{
  display:block!important;
  color:#087b70!important;
}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary:link,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary:visited,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary:hover,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary:focus,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary:focus-visible,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary:active{
  border-color:#8bd8cd!important;
  background:linear-gradient(135deg,#f2fffc 0%,#ffffff 76%)!important;
  color:#18242f!important;
  box-shadow:inset 5px 0 0 #087b70,0 8px 24px rgba(8,38,83,.065)!important;
}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary :is(strong,small,em){
  color:inherit!important;
}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary strong{color:#082653!important}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary small{color:#5b6e80!important}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card.is-primary em{color:#087b70!important}
body.public-body:not(.mobile-mode) .pv-home-main .pv-card:hover,
body.public-body:not(.mobile-mode) .pv-home-main .pv-card:focus-visible{
  border-color:#9acfc5!important;
  box-shadow:0 12px 28px rgba(8,38,83,.09)!important;
  transform:translateY(-1px);
}

/* Sections suivantes: largeur, rythme et cartes cohérents. */
body.public-body:not(.mobile-mode) .pv-home-decoder .pv-signature{
  overflow:hidden!important;
}
body.public-body:not(.mobile-mode) .pv-home-essential .pv-card{
  min-height:124px!important;
}
body.public-body:not(.mobile-mode) .pv-home-trust-grid>div{
  min-width:0!important;
}

@media(max-width:1050px){
  body.public-body:not(.mobile-mode) .psv-home-hero-grid{
    grid-template-columns:1fr!important;
  }
  body.public-body:not(.mobile-mode) .psv-home-hero-mascot{
    max-width:560px!important;
    margin:0 auto!important;
  }
}

@media(max-width:680px){
  body.public-body:not(.mobile-mode) .psv-home-hero-grid{
    gap:22px!important;
    padding:34px 0 30px!important;
  }
  body.public-body:not(.mobile-mode) .psv-home-hero-copy{
    text-align:left!important;
  }
  body.public-body:not(.mobile-mode) .psv-home-hero h1{
    font-size:clamp(38px,10.5vw,50px)!important;
  }
  body.public-body:not(.mobile-mode) .psv-home-hero-lead{
    font-size:17px!important;
    line-height:1.48!important;
    margin-bottom:18px!important;
  }
  body.public-body:not(.mobile-mode) .psv-home-hero-direction{
    font-size:14px!important;
    line-height:1.45!important;
  }
  body.public-body:not(.mobile-mode) .psv-home-proof{
    margin-top:15px!important;
  }
  body.public-body:not(.mobile-mode) .psv-home-hero-mascot{
    gap:10px!important;
    overflow:visible!important;
  }
  body.public-body:not(.mobile-mode) .psv-home-hero-mascot>img{
    width:min(210px,62vw)!important;
    height:auto!important;
    max-height:none!important;
  }
  body.public-body:not(.mobile-mode) .psv-mascot-note{
    width:min(300px,92vw)!important;
    padding:11px 13px!important;
  }
  body.public-body:not(.mobile-mode) .psv-home-method-mini span{
    font-size:.75rem!important;
    padding:7px 10px!important;
  }

  body.public-body:not(.mobile-mode) .pv-home-main{
    padding:30px 0!important;
  }
  body.public-body:not(.mobile-mode) .pv-home-main .pv-section-head{
    margin-bottom:18px!important;
  }
  body.public-body:not(.mobile-mode) .pv-home-main .pv-section-head h2{
    font-size:clamp(1.8rem,8vw,2.3rem)!important;
    line-height:1.08!important;
  }
  body.public-body:not(.mobile-mode) .pv-home-main .pv-section-head>p{
    margin-top:10px!important;
    font-size:1rem!important;
    line-height:1.48!important;
  }
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card,
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card:link,
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card:visited,
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card:hover,
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card:focus,
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card:focus-visible,
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card:active{
    min-height:0!important;
    padding:18px!important;
  }
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card strong{
    font-size:1.2rem!important;
    line-height:1.2!important;
  }
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card small{
    margin-top:7px!important;
    font-size:.94rem!important;
    line-height:1.4!important;
  }
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card em{
    margin-top:13px!important;
    padding-top:0!important;
    font-size:.9rem!important;
  }
  body.public-body:not(.mobile-mode) .pv-signature-mascot{
    grid-template-columns:minmax(0,1fr) 70px!important;
    gap:12px!important;
  }
  body.public-body:not(.mobile-mode) .pv-signature-mascot .primary-button{
    grid-column:1/-1!important;
  }
  body.public-body:not(.mobile-mode) .pv-signature-character{
    width:66px!important;
    height:76px!important;
  }
}

@media(max-width:390px){
  body.public-body:not(.mobile-mode) .psv-home-method-mini{
    gap:5px!important;
  }
  body.public-body:not(.mobile-mode) .psv-home-method-mini span{
    font-size:.7rem!important;
    padding:6px 8px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.public-body:not(.mobile-mode) .pv-home-main .pv-card{
    transform:none!important;
    transition:none!important;
  }
}
