/* ── PARTENAIRES.CSS ── */

/* Le <main> englobe aussi le héros (le lien d'évitement mène au H1) : la mise en page vise le bloc qui suit. */
.main-inner{max-width:1180px;margin:0 auto;padding:clamp(96px,12vw,160px) clamp(16px,4vw,56px);}

/* ── Catégorie ── */
.partners-category{margin-bottom:clamp(56px,7vw,92px);}
.partners-category:last-child{margin-bottom:0;}
.partners-category-head{max-width:760px;margin-bottom:28px;}
.partners-category-label{font-family:'Fraunces',serif;font-style:italic;font-weight:600;font-size:clamp(1.5rem,3.2vw,2.15rem);letter-spacing:-.02em;line-height:1.08;color:var(--ink);text-wrap:balance;}
.partners-category-desc{margin-top:9px;font-size:1rem;line-height:1.55;color:var(--muted);}

.partners-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:18px;}

/* ── Carte partenaire ── */
.partner-card{position:relative;background:var(--cream);border-radius:22px;padding:30px 24px;border:1px solid color-mix(in srgb,var(--ink-fixed) 6%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 8px 24px color-mix(in srgb,var(--ink-fixed) 6%,transparent);display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;transition:transform .55s var(--ease),box-shadow .55s var(--ease);}
/* Liseré de marque teal→sea qui se déploie au survol (signature, transform only = GPU-safe) */
.partner-card::before{content:"";position:absolute;top:0;left:50%;width:62px;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--teal),var(--sea));transform:translateX(-50%) scaleX(0);transform-origin:center;transition:transform .55s var(--ease);}
.partner-card:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 24px 50px color-mix(in srgb,var(--ink-fixed) 12%,transparent),0 8px 22px color-mix(in srgb,var(--teal) 13%,transparent);}
.partner-card:hover::before{transform:translateX(-50%) scaleX(1);}
a.partner-card{text-decoration:none;color:inherit;}
a.partner-card:active{transform:translateY(0) scale(.99);transition-duration:.12s;}

/* Le plateau reste clair (--cream-fixed) pour que les logos colorés restent lisibles en mode sombre */
.partner-logo-wrap{height:66px;min-height:0;width:100%;max-width:192px;display:flex;align-items:center;justify-content:center;background:var(--cream-fixed);border-radius:14px;padding:12px 20px;border:1px solid color-mix(in srgb,var(--ink-fixed) 5%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.6);transition:box-shadow .55s var(--ease);}
.partner-card:hover .partner-logo-wrap{box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 8px 18px color-mix(in srgb,var(--ink-fixed) 8%,transparent);}
/* Taille optique uniformisée : base ~38px, modulée par aspect-ratio pour que les
   logos carrés/portraits ne dominent plus les wordmarks larges (qui restent fins par nature). */
.partner-logo{max-height:38px;max-width:100%;width:auto;height:auto;object-fit:contain;transition:transform .55s var(--ease);}
.partner-logo--wide{max-height:30px;}   /* wordmarks larges : ANCT, Département, Action Logement, France ESF */
.partner-logo--tall{max-height:44px;}    /* portraits étroits : Trets, URIOPSS, Cultures du Cœur (étroits → un peu plus hauts) */
.partner-card:hover .partner-logo{transform:scale(1.04);}

/* Pastille monogramme — partenaires sans logo exploitable */
.partner-monogram{height:66px;width:66px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-weight:700;font-size:1.05rem;letter-spacing:.01em;line-height:1;background:color-mix(in srgb,var(--sea) 15%,var(--cream-fixed));color:var(--teal-ink-fixed);border:1px solid color-mix(in srgb,var(--sea) 26%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.5);transition:transform .55s var(--ease),box-shadow .55s var(--ease);}
.partner-card:hover .partner-monogram{transform:scale(1.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 8px 18px color-mix(in srgb,var(--teal) 18%,transparent);}

.partner-name{font-family:'Fraunces',serif;font-weight:600;font-size:.98rem;line-height:1.25;color:var(--ink);text-wrap:balance;}
.partner-desc{font-size:.9rem;line-height:1.5;color:var(--muted);}

/* Partenaire présent sur plusieurs lieux : une seule carte, un seul logo,
   puis la liste des lieux. Texte en --ink/--muted/--teal-ink (AA dans les
   2 thèmes) ; --sea seulement en pastille décorative. */
.partner-sites-label{font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;line-height:1.2;color:var(--teal-ink);}
.partner-sites{list-style:none;width:100%;margin-top:-8px;text-align:left;border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent);}
.partner-sites li{position:relative;padding:10px 4px 10px 22px;border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent);}
.partner-sites li:last-child{border-bottom:0;padding-bottom:0;}
.partner-sites li::before{content:"";position:absolute;left:5px;top:16px;width:7px;height:7px;border-radius:50%;background:var(--sea);box-shadow:0 0 0 3px color-mix(in srgb,var(--sea) 20%,transparent);}
.partner-site-name{display:block;font-weight:600;font-size:.92rem;line-height:1.3;color:var(--ink);}
.partner-site-desc{display:block;margin-top:3px;font-size:.84rem;line-height:1.45;color:var(--muted);overflow-wrap:break-word;}

/* Lien site officiel — collé en bas de carte */
.partner-link-ext{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;letter-spacing:.01em;color:color-mix(in srgb,var(--teal) 85%,var(--ink));transition:color .5s var(--ease);}
/* Flèche « button-in-button » : pastille circulaire qui se décale en diagonale au survol (tension cinétique) */
.partner-link-ext svg{box-sizing:border-box;width:1.95em;height:1.95em;padding:.46em;border-radius:50%;background:color-mix(in srgb,var(--teal) 13%,transparent);transition:transform .5s var(--ease),background .5s var(--ease);}
a.partner-card:hover .partner-link-ext{color:var(--teal-ink);}
a.partner-card:hover .partner-link-ext svg{transform:translate(2px,-2px) scale(1.08);background:color-mix(in srgb,var(--teal) 22%,transparent);}
/* le teal sombre passe AA sur cream (clair) ; en sombre la carte devient foncée → bascule sur --sea, lisible */
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .partner-link-ext{color:var(--sea);}:root:not([data-theme="light"]) .partner-link-ext svg{background:color-mix(in srgb,var(--sea) 16%,transparent);}}
:root[data-theme="dark"] .partner-link-ext{color:var(--sea);}
:root[data-theme="dark"] .partner-link-ext svg{background:color-mix(in srgb,var(--sea) 16%,transparent);}

/* Accessibilité clavier : anneau de focus de marque + liseré déployé (outline transparent pour le mode contrasté forcé) */
/* outline teal SOLIDE (4.5:1 clair / 3.17:1 sombre ≥ 3:1) : l'anneau teal-38% seul = 1.69:1 (échec 1.4.11). Le box-shadow reste décoratif. */
a.partner-card:focus-visible{outline:3px solid var(--teal);outline-offset:2px;box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 0 0 3px color-mix(in srgb,var(--teal) 38%,transparent),0 18px 40px color-mix(in srgb,var(--ink-fixed) 10%,transparent);}
a.partner-card:focus-visible::before{transform:translateX(-50%) scaleX(1);}

/* prefers-reduced-motion : on garde les états, on coupe les glissements */
@media(prefers-reduced-motion:reduce){
  .partner-card,.partner-card::before,.partner-logo-wrap,.partner-logo,.partner-monogram,.partner-link-ext,.partner-link-ext svg{transition:none;}
}

@media(max-width:600px){
  /* minmax(0,…) : à 320 px, « d'accompagnement » en .9rem élargissait la colonne hors de l'écran. */
  .partners-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .partner-desc{overflow-wrap:break-word;}
  .partner-card{padding:22px 14px;border-radius:18px;gap:13px;}
  .partner-logo-wrap{height:56px;padding:8px 14px;}
  .partner-logo{max-height:34px;}
  .partner-logo--wide{max-height:27px;}
  .partner-logo--tall{max-height:40px;}
  .partner-monogram{height:56px;width:56px;font-size:.95rem;}
  .partner-name{font-size:.9rem;}
  .partner-sites li{padding:9px 0 9px 17px;}
  .partner-sites li::before{left:2px;top:15px;width:6px;height:6px;}
  .partner-site-name{font-size:.86rem;}
  .partner-site-desc{font-size:.8rem;}
}
/* Césure seulement sur les très petits écrans, où un mot long ne tient pas dans la colonne. */
@media(max-width:359px){.partner-desc{hyphens:auto;}}
