.gsi-annuaire{max-width:1250px;margin:0 auto;padding:1rem;color:inherit}.gsi-annuaire-categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1.5rem 0}.gsi-annuaire-category,.gsi-annuaire-site{border:1px solid currentColor;border-color:color-mix(in srgb,currentColor 18%,transparent);border-radius:12px;padding:1rem;background:color-mix(in srgb,currentColor 4%,transparent)}.gsi-annuaire-category{display:flex;flex-direction:column;gap:.5rem;text-decoration:none}.gsi-annuaire-filters{display:flex;flex-wrap:wrap;gap:.8rem;align-items:end;margin:1.5rem 0}.gsi-annuaire-filters label{display:flex;flex-direction:column;gap:.3rem}.gsi-annuaire-filters input,.gsi-annuaire-filters select{color:#222;background:#fff;padding:.55rem;border:1px solid #999;border-radius:6px}.gsi-annuaire-filters button{padding:.6rem 1rem;border-radius:6px}.gsi-annuaire-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1rem}.gsi-annuaire-site h2{font-size:1.2rem}.gsi-annuaire-status{font-size:.8rem;font-weight:700}.gsi-annuaire-pagination{margin:2rem 0}.gsi-annuaire-intro{margin:1rem 0}
/* Annuaire GSI 1.9.130 : statut lisible dans toutes les apparences */
.gsi-annuaire-count{font-weight:700;margin:1rem 0}.gsi-annuaire-help{opacity:.85}.gsi-annuaire-category:hover,.gsi-annuaire-category:focus-visible{outline:2px solid currentColor;outline-offset:2px}.gsi-annuaire-status{display:inline-block;border-radius:999px;padding:.25rem .65rem;background:color-mix(in srgb,currentColor 12%,transparent)}.gsi-status-reliable{color:#166534;background:#dcfce7}.gsi-status-test{color:#374151;background:#e5e7eb}.gsi-status-watch{color:#92400e;background:#fef3c7}.gsi-status-notrecommended{color:#991b1b;background:#fee2e2}.gsi-status-closed{color:#fff;background:#1e3a8a}.gsi-annuaire-site{min-width:0}.gsi-annuaire-site p{overflow-wrap:anywhere}.gsi-annuaire-category span{opacity:.8}

/* 1.9.131 — lignes horizontales, une fiche par rangée */
.gsi-annuaire-results{display:flex;flex-direction:column;gap:.85rem}
.gsi-annuaire-site{display:grid;grid-template-columns:112px minmax(0,1fr) auto;align-items:center;gap:1.15rem;padding:1rem 1.2rem}
.gsi-annuaire-visual{width:112px;height:100px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:9px;background:color-mix(in srgb,currentColor 6%,transparent)}
.gsi-annuaire-visual img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.gsi-annuaire-placeholder{font-weight:800;font-size:1.5rem;opacity:.5}
.gsi-annuaire-heading{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem 1rem}
.gsi-annuaire-heading h2{margin:0;font-size:1.22rem;line-height:1.35}
.gsi-annuaire-description{margin:.5rem 0;line-height:1.5}
.gsi-annuaire-meta{display:flex;flex-wrap:wrap;gap:.7rem;font-size:.86rem;opacity:.85}
.gsi-annuaire-action a{display:inline-flex;align-items:center;justify-content:center;padding:.65rem .9rem;border:1px solid currentColor;border-radius:8px;text-decoration:none;font-weight:650;white-space:nowrap}
.gsi-annuaire-action a:hover,.gsi-annuaire-action a:focus-visible{background:color-mix(in srgb,currentColor 9%,transparent)}
.gsi-annuaire-empty{padding:1rem}
@media(max-width:750px){.gsi-annuaire-site{grid-template-columns:80px minmax(0,1fr);gap:.8rem}.gsi-annuaire-visual{width:80px;height:80px}.gsi-annuaire-action{grid-column:1/-1}.gsi-annuaire-action a{width:100%}}
@media(max-width:420px){.gsi-annuaire-site{grid-template-columns:64px minmax(0,1fr);padding:.75rem}.gsi-annuaire-visual{width:64px;height:64px}}

/* 1.9.132 : aperçu des fiches et informations complémentaires */
.gsi-annuaire-visual{width:148px;height:108px;background:color-mix(in srgb,currentColor 5%,transparent)}
.gsi-annuaire-site{grid-template-columns:148px minmax(0,1fr) auto;align-items:start}
.gsi-annuaire-visual img{display:block;width:100%;height:100%;object-fit:contain}
.gsi-annuaire-category-label{font-size:.82rem;margin-top:.25rem}
.gsi-annuaire-category-label a{text-decoration:underline;text-underline-offset:2px}
.gsi-annuaire-meta{opacity:1;gap:.45rem .9rem;line-height:1.45}
.gsi-annuaire-meta span{display:inline-block;padding:.18rem .5rem;border-radius:5px;background:color-mix(in srgb,currentColor 7%,transparent)}
.gsi-annuaire-action{align-self:center}
@media(max-width:750px){.gsi-annuaire-site{grid-template-columns:95px minmax(0,1fr)}.gsi-annuaire-visual{width:95px;height:90px}}
@media(max-width:420px){.gsi-annuaire-site{grid-template-columns:70px minmax(0,1fr)}.gsi-annuaire-visual{width:70px;height:70px}}

/* 1.9.133 : images personnalisées et évaluations des membres */
.gsi-annuaire-visual img{object-fit:contain;object-position:center}
.gsi-annuaire-stars{color:#d79b18;letter-spacing:.06em;background:none!important;padding:0!important}
.gsi-annuaire-meta a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* 1.9.135 — refined cards, motion and accessible AJAX feedback */
.gsi-annuaire{--gsi-accent:#2a6eaa;--gsi-border:color-mix(in srgb,currentColor 17%,transparent)}
.gsi-annuaire-filters{border:1px solid var(--gsi-border);border-radius:16px;padding:1rem;box-shadow:0 8px 24px color-mix(in srgb,#000 8%,transparent);background:color-mix(in srgb,var(--gsi-accent) 4%,transparent)}
.gsi-annuaire-filters :is(input,select){border-radius:9px;transition:border-color .2s,box-shadow .2s}
.gsi-annuaire-filters :is(input,select):focus-visible{outline:2px solid var(--gsi-accent);outline-offset:2px}
.gsi-annuaire-site{position:relative;overflow:hidden;border:1px solid var(--gsi-border);border-radius:17px;box-shadow:0 3px 12px color-mix(in srgb,#000 9%,transparent);transition:transform .23s ease,box-shadow .23s ease,border-color .23s ease}
.gsi-annuaire-site:before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:var(--gsi-accent);opacity:.75}
.gsi-annuaire-site:hover{transform:translateY(-3px);box-shadow:0 12px 26px color-mix(in srgb,#000 15%,transparent);border-color:color-mix(in srgb,var(--gsi-accent) 55%,transparent)}
.gsi-annuaire-visual{border:1px solid var(--gsi-border);border-radius:12px;overflow:hidden;display:grid;place-items:center}
.gsi-annuaire-visual img{transition:transform .25s ease}.gsi-annuaire-site:hover .gsi-annuaire-visual img{transform:scale(1.045)}
.gsi-annuaire-action a{border-radius:10px;transition:background .2s,transform .2s}.gsi-annuaire-action a:hover{transform:translateX(2px)}
.gsi-annuaire-count{font-weight:650}.gsi-is-loading .gsi-annuaire-results{opacity:.52;transition:opacity .16s;pointer-events:none}
.gsi-annuaire-results{transition:opacity .16s}.gsi-annuaire-empty{border:1px dashed var(--gsi-border);border-radius:12px;text-align:center}
@media(max-width:750px){.gsi-annuaire-site{grid-template-columns:95px minmax(0,1fr)}.gsi-annuaire-action{grid-column:1/-1}.gsi-annuaire-action a{width:100%}}
@media(prefers-reduced-motion:reduce){.gsi-annuaire *{transition:none!important;animation:none!important}.gsi-annuaire-site:hover{transform:none}}

/* 1.9.136 — status emblems and compact accessible detail action */
.gsi-annuaire .gsi-annuaire-status{display:inline-flex;align-items:center;gap:.42rem;padding:.32rem .72rem .32rem .38rem;border:1px solid var(--gsi-status-edge);border-radius:9px;background:linear-gradient(135deg,var(--gsi-status-bg),color-mix(in srgb,var(--gsi-status-bg) 80%,#fff));color:var(--gsi-status-fg);font-size:.79rem;font-weight:750;line-height:1.3;white-space:nowrap;box-shadow:0 2px 5px rgba(0,0,0,.09),inset 0 1px rgba(255,255,255,.32)}
.gsi-annuaire .gsi-status-icon{display:inline-grid;place-items:center;width:1.42rem;height:1.42rem;flex:none;border-radius:6px;background:color-mix(in srgb,var(--gsi-status-fg) 12%,transparent);font-size:.95rem;line-height:1;font-weight:800}
.gsi-annuaire .gsi-status-reliable{--gsi-status-bg:#e5f6eb;--gsi-status-fg:#166534;--gsi-status-edge:#8ccba7}
.gsi-annuaire .gsi-status-test{--gsi-status-bg:#eef1f5;--gsi-status-fg:#374151;--gsi-status-edge:#b8c1cc}
.gsi-annuaire .gsi-status-watch{--gsi-status-bg:#fff0d8;--gsi-status-fg:#92400e;--gsi-status-edge:#e9b767}
.gsi-annuaire .gsi-status-notrecommended{--gsi-status-bg:#fce7e8;--gsi-status-fg:#991b1b;--gsi-status-edge:#e9a2a7}
.gsi-annuaire .gsi-status-closed{--gsi-status-bg:#e4eefb;--gsi-status-fg:#1e3a8a;--gsi-status-edge:#95b7dd}
.gsi-annuaire .gsi-annuaire-action a{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:auto;min-height:34px;padding:.42rem .78rem;border-radius:9px;font-size:.82rem;font-weight:700;line-height:1.2;white-space:nowrap;box-shadow:0 2px 7px rgba(0,0,0,.08)}
.gsi-annuaire .gsi-annuaire-action a:focus-visible{outline:2px solid var(--gsi-accent);outline-offset:3px}
@media(max-width:750px){.gsi-annuaire .gsi-annuaire-action a{width:auto;max-width:100%}}

/* 1.9.137 — official logos only, premium status design */
.gsi-annuaire .gsi-annuaire-site{grid-template-columns:80px minmax(0,1fr) auto;gap:1rem}
.gsi-annuaire .gsi-annuaire-logo{width:76px;height:76px;box-sizing:border-box;padding:8px;border-radius:14px;background:color-mix(in srgb,currentColor 4%,transparent)}
.gsi-annuaire .gsi-annuaire-logo img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.gsi-annuaire .gsi-annuaire-status{border-radius:12px;padding:.3rem .7rem .3rem .35rem;box-shadow:0 3px 9px rgba(0,0,0,.10),inset 0 1px 0 rgba(255,255,255,.55);letter-spacing:.01em}
.gsi-annuaire .gsi-status-icon{border-radius:9px;background:color-mix(in srgb,var(--gsi-status-fg) 14%,transparent)}
@media(max-width:750px){.gsi-annuaire .gsi-annuaire-site{grid-template-columns:76px minmax(0,1fr)}.gsi-annuaire .gsi-annuaire-action{grid-column:2}}
@media(max-width:420px){.gsi-annuaire .gsi-annuaire-site{grid-template-columns:64px minmax(0,1fr)}.gsi-annuaire .gsi-annuaire-logo{width:62px;height:62px;padding:6px}.gsi-annuaire .gsi-annuaire-action{grid-column:1/-1}}

/* 1.9.138 — left accent follows the site's official administrative status */
.gsi-annuaire .gsi-annuaire-site--reliable{--gsi-row-status-color:#16834b}
.gsi-annuaire .gsi-annuaire-site--test{--gsi-row-status-color:#7b8797}
.gsi-annuaire .gsi-annuaire-site--watch{--gsi-row-status-color:#df8b18}
.gsi-annuaire .gsi-annuaire-site--notrecommended{--gsi-row-status-color:#c63845}
.gsi-annuaire .gsi-annuaire-site--closed{--gsi-row-status-color:#254f89}
.gsi-annuaire .gsi-annuaire-site:before{background:var(--gsi-row-status-color,var(--gsi-accent));opacity:1}
.gsi-annuaire .gsi-annuaire-site:hover{border-color:color-mix(in srgb,var(--gsi-row-status-color,var(--gsi-accent)) 55%,transparent)}

/* 1.9.140 : action en haut à droite, description sur toute la largeur des détails */
.gsi-annuaire .gsi-annuaire-site{grid-template-columns:80px minmax(0,1fr)}
.gsi-annuaire .gsi-annuaire-details{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1rem;align-content:start}
.gsi-annuaire .gsi-annuaire-heading{grid-column:1;grid-row:1;min-width:0}
.gsi-annuaire .gsi-annuaire-action{grid-column:2;grid-row:1;align-self:start;justify-self:end;margin:0}
.gsi-annuaire .gsi-annuaire-category-label,.gsi-annuaire .gsi-annuaire-description,.gsi-annuaire .gsi-annuaire-meta{grid-column:1/-1}
.gsi-annuaire .gsi-annuaire-description{max-width:none;width:100%;white-space:normal}
@media(max-width:600px){.gsi-annuaire .gsi-annuaire-details{grid-template-columns:minmax(0,1fr)}.gsi-annuaire .gsi-annuaire-heading,.gsi-annuaire .gsi-annuaire-action{grid-column:1;grid-row:auto}.gsi-annuaire .gsi-annuaire-action{justify-self:start;margin:.25rem 0}}

/* Indicateur de réservation GSI : état prudent avant raccordement au moteur de points. */
.gsi-annuaire-referral{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border-radius:999px;font-size:.82rem;font-weight:650;border:1px solid currentColor;line-height:1.35}
.gsi-annuaire-referral--unknown{color:#8a651e;background:rgba(205,157,58,.10)}
.gsi-annuaire-referral--unavailable{color:#697786;background:rgba(128,143,158,.10)}

/* Repère de suivi réservé au super-administrateur, pour les articles Joomla historiques. */
.gsi-annuaire-legacy-notice{display:inline-block;background:#fff0c2;color:#664400;border:1px solid #c79838;padding:3px 8px;font-size:.78rem;font-weight:700;line-height:1.5;margin:0 8px 6px 0;border-radius:4px}

/* 1.9.173 — aperçu lisible : surface dédiée plutôt que vignette 76 × 76 */
.gsi-annuaire .gsi-annuaire-site{grid-template-columns:minmax(180px,240px) minmax(0,1fr);align-items:start}
.gsi-annuaire .gsi-annuaire-visual.gsi-annuaire-logo{width:100%;height:auto;min-height:138px;aspect-ratio:16/10;padding:6px;box-sizing:border-box;border-radius:10px;overflow:hidden}
.gsi-annuaire .gsi-annuaire-visual.gsi-annuaire-logo img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;transform:none}
.gsi-annuaire .gsi-annuaire-site:hover .gsi-annuaire-visual.gsi-annuaire-logo img{transform:none}
@media(max-width:750px){.gsi-annuaire .gsi-annuaire-site{grid-template-columns:minmax(130px,35%) minmax(0,1fr)}.gsi-annuaire .gsi-annuaire-visual.gsi-annuaire-logo{width:100%;height:auto;min-height:100px}}
@media(max-width:420px){.gsi-annuaire .gsi-annuaire-site{grid-template-columns:1fr}.gsi-annuaire .gsi-annuaire-visual.gsi-annuaire-logo{width:100%;max-width:320px;min-height:150px;aspect-ratio:16/9}.gsi-annuaire .gsi-annuaire-details{grid-column:1}}

/* 1.9.174 — aperçu et titre sur une même ligne ; contenu descriptif pleine largeur. */
.gsi-annuaire .gsi-annuaire-site{display:flex;flex-direction:column;align-items:stretch;gap:.75rem}
.gsi-annuaire .gsi-annuaire-topline{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr);gap:1rem;align-items:center;width:100%;min-width:0}
.gsi-annuaire .gsi-annuaire-topinfo{min-width:0;display:flex;flex-direction:column;gap:.4rem}
.gsi-annuaire .gsi-annuaire-topinfo .gsi-annuaire-heading{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;width:100%}
.gsi-annuaire .gsi-annuaire-topinfo .gsi-annuaire-heading h2{min-width:0;overflow-wrap:anywhere}
.gsi-annuaire .gsi-annuaire-topinfo .gsi-annuaire-category-label{margin:0}
.gsi-annuaire .gsi-annuaire-topline .gsi-annuaire-visual.gsi-annuaire-logo{width:100%;height:auto;min-height:115px;aspect-ratio:16/10;margin:0}
.gsi-annuaire .gsi-annuaire-details{display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0;gap:.4rem}
.gsi-annuaire .gsi-annuaire-details .gsi-annuaire-description{width:100%;max-width:none;margin:.25rem 0}
.gsi-annuaire .gsi-annuaire-details .gsi-annuaire-meta{width:100%}
.gsi-annuaire .gsi-annuaire-details .gsi-annuaire-action{align-self:flex-end;grid-column:auto;grid-row:auto}
@media(max-width:600px){.gsi-annuaire .gsi-annuaire-topline{grid-template-columns:minmax(95px,35%) minmax(0,1fr);gap:.7rem}.gsi-annuaire .gsi-annuaire-topline .gsi-annuaire-visual.gsi-annuaire-logo{min-height:85px}.gsi-annuaire .gsi-annuaire-details .gsi-annuaire-action{align-self:stretch}}
@media(max-width:380px){.gsi-annuaire .gsi-annuaire-topline{grid-template-columns:1fr}.gsi-annuaire .gsi-annuaire-topline .gsi-annuaire-visual.gsi-annuaire-logo{max-width:260px}}

/* 1.9.175 — compact spacing, unchanged preview dimensions and typography */
.gsi-annuaire .gsi-annuaire-site{gap:.35rem;padding:.65rem 1rem}
.gsi-annuaire .gsi-annuaire-topline{gap:.7rem;align-items:center}
.gsi-annuaire .gsi-annuaire-topinfo{gap:.15rem}
.gsi-annuaire .gsi-annuaire-topinfo .gsi-annuaire-heading h2{margin:0}
.gsi-annuaire .gsi-annuaire-topinfo .gsi-annuaire-category-label{margin:0}
.gsi-annuaire .gsi-annuaire-topline .gsi-annuaire-visual.gsi-annuaire-logo{padding:2px;min-height:0}
.gsi-annuaire .gsi-annuaire-details{gap:.2rem}
.gsi-annuaire .gsi-annuaire-details .gsi-annuaire-description{margin:.1rem 0}
.gsi-annuaire .gsi-annuaire-details .gsi-annuaire-meta{gap:.25rem .65rem}
.gsi-annuaire .gsi-annuaire-details .gsi-annuaire-action{align-self:flex-end;margin:.15rem 0 0}
@media(max-width:600px){.gsi-annuaire .gsi-annuaire-site{padding:.6rem .75rem}.gsi-annuaire .gsi-annuaire-details .gsi-annuaire-action{align-self:flex-end}.gsi-annuaire .gsi-annuaire-topline .gsi-annuaire-visual.gsi-annuaire-logo{min-height:0}}

/* 1.9.176 — action sur la ligne de réservation ; aperçu sans bandes verticales artificielles. */
.gsi-annuaire .gsi-annuaire-meta{align-items:center}
.gsi-annuaire .gsi-annuaire-meta .gsi-annuaire-action{margin:0 0 0 auto;align-self:center;flex:0 0 auto;opacity:1}
.gsi-annuaire .gsi-annuaire-topline .gsi-annuaire-visual.gsi-annuaire-logo{aspect-ratio:auto;height:auto;min-height:0;padding:0;display:block;line-height:0}
.gsi-annuaire .gsi-annuaire-topline .gsi-annuaire-visual.gsi-annuaire-logo img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;vertical-align:top}
.gsi-annuaire .gsi-annuaire-topline .gsi-annuaire-visual.gsi-annuaire-logo .gsi-annuaire-placeholder{display:grid;place-items:center;min-height:85px;line-height:1.3}
@media(max-width:600px){.gsi-annuaire .gsi-annuaire-meta .gsi-annuaire-action{margin-left:auto}}
