/* Pro Grandson – Partenaires & Liens v1.1
   CSS volontairement isolé pour Elementor / Gutenberg.
*/
.pgpl-directory{
  --pgpl-ink:#17384e;
  --pgpl-soft:#687984;
  --pgpl-blue:#2863a6;
  --pgpl-green:#78a843;
  --pgpl-terra:#b86c4b;
  --pgpl-yellow:#d4a34a;
  --pgpl-line:rgba(23,56,78,.11);

  box-sizing:border-box !important;
  display:block !important;
  width:min(1160px, calc(100% - 40px)) !important;
  max-width:1160px !important;
  margin:42px auto 58px !important;
  padding:0 !important;
  font-family:Inter,Arial,sans-serif !important;
}
.pgpl-directory *,
.pgpl-directory *:before,
.pgpl-directory *:after{box-sizing:border-box !important}

.pgpl-directory .pgpl-heading{
  max-width:760px !important;
  margin:0 0 30px !important;
  padding:0 !important;
}
.pgpl-directory .pgpl-heading h2{
  color:var(--pgpl-ink) !important;
  font-size:clamp(32px,4vw,48px) !important;
  line-height:1.04 !important;
  letter-spacing:-.04em !important;
  margin:0 0 12px !important;
}
.pgpl-directory .pgpl-heading p{
  color:var(--pgpl-soft) !important;
  font-size:16px !important;
  line-height:1.65 !important;
  margin:0 !important;
}

.pgpl-directory .pgpl-grid{
  display:grid !important;
  grid-template-columns:repeat(var(--pgpl-cols,3),minmax(0,1fr)) !important;
  gap:18px !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  align-items:stretch !important;
}

.pgpl-directory .pgpl-card{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  width:100% !important;
  min-width:0 !important;
  min-height:205px !important;
  height:auto !important;
  margin:0 !important;
  padding:22px 24px 20px !important;
  overflow:hidden !important;

  border:1px solid var(--pgpl-line) !important;
  border-radius:18px !important;
  background:#fff !important;
  box-shadow:0 8px 24px rgba(23,56,78,.055) !important;

  color:var(--pgpl-ink) !important;
  text-decoration:none !important;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease !important;
}

.pgpl-directory .pgpl-card:before{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  left:24px !important;
  width:54px !important;
  height:4px !important;
  border-radius:0 0 5px 5px !important;
  background:var(--pgpl-blue) !important;
}
.pgpl-directory .pgpl-card:nth-child(4n+2):before{background:var(--pgpl-green) !important}
.pgpl-directory .pgpl-card:nth-child(4n+3):before{background:var(--pgpl-terra) !important}
.pgpl-directory .pgpl-card:nth-child(4n+4):before{background:var(--pgpl-yellow) !important}

.pgpl-directory a.pgpl-card:hover{
  transform:translateY(-3px) !important;
  border-color:rgba(40,99,166,.22) !important;
  box-shadow:0 14px 30px rgba(23,56,78,.10) !important;
}

.pgpl-directory .pgpl-category{
  display:inline-flex !important;
  align-self:flex-start !important;
  width:auto !important;
  margin:0 0 8px !important;
  padding:5px 8px !important;
  border:0 !important;
  border-radius:999px !important;
  background:#f1f5f8 !important;
  color:#617687 !important;
  font-size:9px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.10em !important;
  text-transform:uppercase !important;
}

.pgpl-directory .pgpl-logo{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 92px !important;
  width:100% !important;
  height:92px !important;
  min-height:92px !important;
  margin:4px 0 12px !important;
  padding:6px 12px !important;
  background:transparent !important;
}
.pgpl-directory .pgpl-logo img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:210px !important;
  max-height:76px !important;
  margin:0 auto !important;
  padding:0 !important;
  border:0 !important;
  object-fit:contain !important;
  object-position:center !important;
  box-shadow:none !important;
}

.pgpl-directory .pgpl-textmark{
  display:flex !important;
  align-items:center !important;
  width:100% !important;
  min-height:92px !important;
  margin:4px 0 12px !important;
  padding:0 !important;
  color:var(--pgpl-ink) !important;
  font-size:27px !important;
  line-height:1.06 !important;
  letter-spacing:-.035em !important;
  font-weight:900 !important;
}

.pgpl-directory .pgpl-card-copy{
  display:block !important;
  width:100% !important;
  margin-top:auto !important;
  padding:0 !important;
}
.pgpl-directory .pgpl-card-copy h3{
  color:var(--pgpl-ink) !important;
  font-size:16px !important;
  line-height:1.25 !important;
  font-weight:800 !important;
  letter-spacing:-.015em !important;
  margin:0 0 6px !important;
  padding:0 !important;
}
.pgpl-directory .pgpl-card-copy p{
  color:var(--pgpl-soft) !important;
  font-size:12px !important;
  line-height:1.5 !important;
  margin:0 0 9px !important;
  padding:0 !important;
}
.pgpl-directory .pgpl-visit{
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  margin:0 !important;
  padding:0 !important;
  color:var(--pgpl-blue) !important;
  font-size:11px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  text-decoration:none !important;
}

.pgpl-empty{
  width:min(1160px,calc(100% - 40px)) !important;
  margin:30px auto !important;
  padding:18px !important;
  border:1px dashed rgba(23,56,78,.2) !important;
  border-radius:14px !important;
  color:#687984 !important;
  background:#fafafa !important;
}

@media(max-width:900px){
  .pgpl-directory .pgpl-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:580px){
  .pgpl-directory{
    width:calc(100% - 28px) !important;
    margin:30px auto 45px !important;
  }
  .pgpl-directory .pgpl-grid{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  .pgpl-directory .pgpl-card{
    min-height:185px !important;
    padding:20px !important;
  }
  .pgpl-directory .pgpl-logo{
    height:82px !important;
    min-height:82px !important;
    flex-basis:82px !important;
  }
  .pgpl-directory .pgpl-logo img{
    max-height:68px !important;
  }
}