/* =========================================================
   Nos partenaires : logos mis en valeur sur cartes claires
   (les logos sombres étaient illisibles sur le fond vert)
   ========================================================= */
* { margin: 0; padding: 0; box-sizing: border-box; }
body.page-partenaires { background: var(--green-dk); color: var(--cream); overflow-x: hidden; }
img { display: block; max-width: 100%; }

.pt { width: 100%; }

/* ---------- en-tête ---------- */
.pt-hero { max-width: 1300px; margin: 0 auto; padding: 150px var(--gutter) clamp(40px, 6vw, 70px); display: grid; grid-template-columns: 1fr auto; gap: 20px 40px; align-items: end; }
.pt-title { grid-column: 1 / -1; font-size: clamp(56px, 12vw, 190px); line-height: .9; }
.pt-title .char { display: inline-block; }
.pt-intro { max-width: 38em; font-size: clamp(18px, 1.8vw, 24px); line-height: 1.55; color: #e7e0d4; }
.pt-intro b { color: var(--beige); font-weight: 800; }
.pt-count { font-family: var(--display); text-transform: uppercase; font-size: clamp(22px, 2.2vw, 30px); color: var(--muted); text-align: right; line-height: 1; white-space: nowrap; }
.pt-count-n { display: block; font-size: clamp(80px, 10vw, 150px); color: var(--red); line-height: .85; }

/* ---------- valeurs ---------- */
.pt-values { max-width: 1300px; margin: 0 auto; padding: 0 var(--gutter) clamp(50px, 7vw, 90px); display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pt-value { display: flex; gap: 18px; align-items: center; background: var(--green); border-radius: 20px; padding: 22px 24px; }
.pt-value-ico { flex: none; width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; background: var(--cream); color: var(--green-dk); }
.pt-value-ico svg { width: 28px; height: 28px; }
.pt-value p { font-size: clamp(16px, 1.4vw, 19px); line-height: 1.45; font-weight: 600; }

/* ---------- mur de logos ---------- */
.pt-wall { max-width: 1300px; margin: 0 auto; padding: 0 var(--gutter); perspective: 1200px; }
.pt-grid { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.pt-card {
    position: relative; display: flex; flex-direction: column; height: 100%;
    background: var(--cream); color: var(--green-dk); border-radius: 22px; overflow: hidden; text-decoration: none;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .4) inset, 0 14px 30px rgba(0, 0, 0, .22);
    transform-style: preserve-3d; will-change: transform; transition: box-shadow .3s;
}
.pt-card:hover { box-shadow: 0 1px 0 rgba(255, 255, 255, .4) inset, 0 26px 50px rgba(0, 0, 0, .35); }
.pt-logo { display: flex; align-items: center; justify-content: center; height: 150px; padding: 22px 26px; background: #fff; border-bottom: 1px solid #e8e1d4; flex: none; }
/* l'image remplit le cadre et object-fit garde ses proportions : logos larges ou carrés tiennent tous dedans */
.pt-logo img { width: 100%; height: 100%; object-fit: contain; transition: transform .4s cubic-bezier(.34, 1.56, .64, 1); }
.pt-card:hover .pt-logo img { transform: scale(1.07) translateZ(30px); }
.pt-mono { width: 96px; height: 96px; border-radius: 50%; display: grid; place-items: center; background: var(--green); color: var(--cream); font-family: var(--display); font-size: 40px; letter-spacing: .02em; }
.pt-name { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 18px; font-weight: 800; font-size: 16px; line-height: 1.25; }
.pt-ext { color: var(--red); font-size: 18px; }
.pt-card.is-link .pt-name { color: var(--red); }
/* reflet lumineux qui suit la souris (position mise à jour par GSAP) */
.pt-card::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .3s;
    background: radial-gradient(240px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, .55), transparent 60%);
    mix-blend-mode: soft-light;
}
.pt-card:hover::after { opacity: 1; }
.pt-card:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }

/* ---------- remerciements ---------- */
.pt-thanks { max-width: 1100px; margin: 0 auto; padding: clamp(80px, 12vw, 160px) var(--gutter) clamp(70px, 10vw, 130px); text-align: center; }
.pt-thanks-tx { font-size: clamp(18px, 1.8vw, 24px); line-height: 1.5; color: #e7e0d4; max-width: 34em; margin: 0 auto; }
.pt-thanks-tx b { color: var(--beige); }
.pt-together { font-size: clamp(42px, 7.4vw, 112px); line-height: .98; margin-top: 26px; }
.pt-together .word { display: inline-block; }

/* ---------- mobile ---------- */
@media (max-width: 760px) {
    .pt-hero { grid-template-columns: 1fr; padding-top: 120px; }
    .pt-count { text-align: left; display: flex; align-items: baseline; gap: 10px; }
    .pt-count-n { display: inline; font-size: 72px; }
    .pt-values { grid-template-columns: 1fr; }
    .pt-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .pt-logo { height: 104px; padding: 14px; }
    .pt-mono { width: 70px; height: 70px; font-size: 30px; }
    .pt-name { font-size: 14px; padding: 10px 12px; }
}
