/* ============================================================================
   Ibudo — Skin Directories Pro  (habille le moteur d'annuaire avec le DS)
   Cible visuelle : idl/tpl-annuaire.html. Scopé sous .drts pour ne pas déborder.
   Spécifique au site annuaire (règle : spécifique = plugin). Chargé après ibudo.css.
   ============================================================================ */

/* --- Largeur : la page Directories sort du conteneur étroit du thème --------- */
.section .container.narrow:has(.drts),
.container.narrow:has(.drts-main){ max-width:var(--container); }

/* --- Base : typo + couleurs DS dans tout le moteur -------------------------- */
.drts{ font-family:var(--font-body); color:var(--text); }
.drts h1,.drts h2,.drts h3,.drts h4,.drts h5{ font-family:var(--font-display); }
.drts a{ color:var(--accent); text-decoration:none; }
.drts a:hover{ color:var(--accent-strong); }

/* ============================ EN-TÊTE DE VUE ================================ */
.drts .drts-view-entities-header{ margin-bottom:var(--s-8); }
/* compteur "Afficher 1 - 1 de 1" */
.drts .drts-view-nav-item-name-num{
  font-family:var(--font-display); font-weight:var(--fw-semi);
  color:var(--text-faint); font-size:var(--t-sm); letter-spacing:.01em;
}

/* ============================== BOUTONS ===================================== */
.drts .drts-bs-btn{
  font-family:var(--font-display); font-weight:var(--fw-semi);
  border-radius:var(--r-pill); border:1.5px solid transparent;
  transition:background var(--dur-2) var(--ease),color var(--dur-2),
             border-color var(--dur-3),transform var(--dur-1),box-shadow var(--dur-2);
}
.drts .drts-bs-btn:hover{ transform:translateY(-2px); }
.drts .drts-bs-btn-primary{ background:var(--accent); color:var(--on-accent); border-color:transparent; }
.drts .drts-bs-btn-primary:hover{
  background:var(--accent-strong); color:var(--on-accent);
  box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 35%,transparent);
}
.drts .drts-bs-btn-secondary{ background:var(--ibu-ink-700); color:#fff; border-color:transparent; }
.drts .drts-bs-btn-outline-secondary,
.drts .drts-bs-btn-outline-primary{
  background:transparent; color:var(--text); border-color:var(--border-strong);
}
.drts .drts-bs-btn-outline-secondary:hover,
.drts .drts-bs-btn-outline-primary:hover{ border-color:var(--accent); color:var(--accent); background:transparent; }
.drts .drts-bs-btn-link{ color:var(--accent); border-color:transparent; }
.drts .drts-bs-btn-lg{ padding:15px 28px; font-size:var(--t-body); }

/* tri (dropdown) */
.drts .drts-view-entities-sort.drts-bs-dropdown-toggle{ border-color:var(--border-strong); color:var(--text-muted); }
.drts .drts-bs-dropdown-menu{
  background:var(--surface-raised); border:1px solid var(--border);
  border-radius:var(--r-md); box-shadow:var(--shadow-2); padding:var(--s-2);
}
.drts .drts-bs-dropdown-item{ border-radius:var(--r-sm); padding:8px 12px; color:var(--text); font-size:var(--t-sm); }
.drts .drts-bs-dropdown-item:hover,
.drts .drts-bs-dropdown-item.drts-bs-active{ background:var(--surface-2); color:var(--accent-strong); }

/* ===================== CARTES DE FILTRES (sidebar) ========================= */
.drts .drts-view-entities-filter-form .drts-bs-card{
  background:var(--surface-raised); border:1px solid var(--border);
  border-radius:var(--r-lg); box-shadow:var(--shadow-1); overflow:hidden;
  margin-bottom:var(--s-5);
}
.drts .drts-view-entities-filter-form .drts-bs-card-header{
  background:var(--surface-2); border-bottom:1px solid var(--border);
  font-family:var(--font-display); font-weight:var(--fw-semi); color:var(--text);
  font-size:var(--t-sm); letter-spacing:.01em; padding:12px 16px;
}
.drts .drts-view-entities-filter-form .drts-bs-card-header i{ color:var(--accent); }
.drts .drts-view-entities-filter-form .drts-bs-card-body{ padding:14px 16px; }

/* cases à cocher des filtres → accent DS */
.drts .drts-bs-custom-control-label{ color:var(--text-muted); font-size:var(--t-sm); cursor:pointer; }
.drts .drts-form-field-radio-option:not(.drts-bs-disabled) .drts-bs-custom-control-label:hover{ color:var(--text); }
.drts .drts-bs-custom-control-input:checked ~ .drts-bs-custom-control-label::before{
  background:var(--accent)!important; border-color:var(--accent)!important;
}
.drts .drts-bs-custom-control-label::before{ border-color:var(--border-strong); }
.drts .drts-bs-custom-control-input:focus ~ .drts-bs-custom-control-label::before{
  box-shadow:0 0 0 4px var(--ring)!important;
}
.drts .drts-bs-disabled{ opacity:.45; }
.drts .drts-form-field-radio-options-toggle{ color:var(--accent); font-weight:var(--fw-semi); font-size:var(--t-xs); }
.drts .drts-icon{ color:var(--accent); }

/* champ de recherche / inputs */
.drts input[type=text],.drts input[type=search],.drts input[type=email],
.drts .drts-bs-form-control,.drts select,.drts textarea{
  border-radius:var(--r-md); border:1.5px solid var(--border);
  background:var(--surface-2); color:var(--text); font-family:var(--font-body);
}
.drts input[type=text]:focus,.drts input[type=search]:focus,
.drts .drts-bs-form-control:focus,.drts select:focus,.drts textarea:focus{
  outline:0; border-color:var(--accent); background:var(--surface);
  box-shadow:0 0 0 4px var(--ring);
}

/* ===================== CARTES D'ANNONCE (entités) ========================== */
.drts .drts-view-entities-masonry-container{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:var(--s-6); align-items:start;
}
.drts .drts-view-entity-container{ width:auto!important; position:static!important; margin:0!important; }

/* L'accent "tourne" d'une carte à l'autre (mécanique orbitale Ibudo) */
.drts .drts-view-entity-container:nth-child(5n+1) .drts-entity{--accent:var(--ibu-blue-600)}
.drts .drts-view-entity-container:nth-child(5n+2) .drts-entity{--accent:var(--a-green-500)}
.drts .drts-view-entity-container:nth-child(5n+3) .drts-entity{--accent:var(--a-violet-500)}
.drts .drts-view-entity-container:nth-child(5n+4) .drts-entity{--accent:var(--a-red-500)}
.drts .drts-view-entity-container:nth-child(5n+5) .drts-entity{--accent:var(--a-yellow-600)}

.drts .drts-entity.drts-display--summary{
  position:relative; background:var(--surface-raised);
  border:1px solid var(--border); border-radius:var(--r-lg);
  padding:var(--s-6); overflow:hidden;
  box-shadow:var(--shadow-1);
  transition:transform var(--dur-3) var(--ease),box-shadow var(--dur-3) var(--ease),border-color var(--dur-3);
}
.drts .drts-entity.drts-display--summary::before{
  content:""; position:absolute; left:0; top:0; right:0; height:5px;
  background:var(--accent); transform:scaleX(0); transform-origin:left;
  transition:transform var(--dur-3) var(--ease);
}
.drts .drts-entity.drts-display--summary:hover{
  transform:translateY(-6px); box-shadow:var(--shadow-2); border-color:var(--accent);
}
.drts .drts-entity.drts-display--summary:hover::before{ transform:scaleX(1); }

/* image / logo */
.drts .directory-listing-aside img{
  border-radius:var(--r-md); width:100%; max-height:220px; object-fit:cover;
  border:1px solid var(--border); background:var(--surface-2);
}

/* titre de l'annonce (la classe porte un suffixe -N → match par sous-chaîne) */
.drts [class*="entity_field_post_title"] a{
  font-family:var(--font-display); font-weight:var(--fw-bold);
  font-size:var(--t-h4); line-height:var(--lh-snug); color:var(--text);
}
.drts [class*="entity_field_post_title"] a:hover{ color:var(--accent); }

/* extrait */
.drts [class*="entity_field_post_content"]{ color:var(--text-muted); font-size:var(--t-sm); margin:var(--s-2) 0 var(--s-4); }

/* libellés de champ → overline DS ; valeurs → texte */
.drts .drts-entity-field-label{
  font-family:var(--font-display); font-weight:var(--fw-semi);
  text-transform:uppercase; letter-spacing:.12em; font-size:var(--t-xs);
  color:var(--text-faint); margin-top:var(--s-3); margin-bottom:2px;
}
.drts .drts-entity-field-value{ color:var(--text); font-size:var(--t-sm); }

/* la catégorie porte l'accent de la carte (tag coloré, sans troncature) */
.drts [class*="entity_field_directory_category"]{ margin-top:var(--s-4); }
.drts [class*="entity_field_directory_category"] .drts-entity-field-value a{
  color:var(--accent); font-family:var(--font-display); font-weight:var(--fw-semi);
}
.drts [class*="entity_field_directory_category"] .drts-icon{ color:var(--accent); }
/* petit liseré d'accent permanent en haut de carte (s'étend au survol via ::before) */
.drts .drts-entity.drts-display--summary{ border-top:3px solid color-mix(in srgb,var(--accent) 55%,var(--border)); }

/* champs "inline" (thématique, catégorie, type, statut) → libellé + valeur compacts */
.drts .drts-display-element-inlineable{ margin-top:var(--s-3); }
.drts .drts-display-element-inlineable .drts-entity-field-label{
  display:inline; margin:0 .5em 0 0; font-size:var(--t-xs);
}
.drts .drts-display-element-inlineable .drts-entity-field-value{ display:inline; }

/* bouton coeur (favori) */
.drts .drts-voting-button{ color:var(--text-faint); }
.drts .drts-voting-button:hover{ color:var(--a-red-500); }

/* ==================== FICHE PROGRAMME (single-listing) ===================== */
.prog-back{display:inline-flex;align-items:center;gap:.4em;color:var(--text-muted);
  font-family:var(--font-display);font-weight:var(--fw-med);margin-bottom:var(--s-6)}
.prog-back:hover{color:var(--accent)}
.prog-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,.95fr);
  gap:var(--s-12);align-items:start}
@media(max-width:760px){.prog-layout{grid-template-columns:1fr;gap:var(--s-8)}}
.prog-body p{margin-bottom:var(--s-4);color:var(--text-muted);font-size:var(--t-lead);line-height:1.6}
.prog-aside{background:var(--surface-raised);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:var(--s-8);box-shadow:var(--shadow-1);position:sticky;top:90px}
.prog-facts{display:grid;gap:0;margin:0 0 var(--s-6)}
.prog-facts>div{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-4);
  padding:var(--s-3) 0;border-bottom:1px solid var(--border)}
.prog-facts>div:last-child{border-bottom:0}
.prog-facts dt{color:var(--text-faint);font-size:var(--t-sm)}
.prog-facts dd{font-family:var(--font-display);font-weight:var(--fw-semi);text-align:right;color:var(--accent)}

/* ============================ PAGINATION =================================== */
.drts .drts-bs-pagination{ gap:6px; justify-content:center; }
.drts .drts-bs-page-link{
  border:1px solid var(--border); border-radius:var(--r-sm); color:var(--text);
  min-width:40px; text-align:center;
}
.drts .drts-bs-page-item.drts-bs-active .drts-bs-page-link{
  background:var(--accent); border-color:var(--accent); color:var(--on-accent);
}

/* --- Projets de la communauté (2026-10-01) : étiquette d'origine, logo, sections --- */
.vcard .vcard-origin{display:flex;align-items:center;gap:.4em;margin-top:var(--s-4);
  font-size:var(--t-xs);color:var(--text-faint)}
.prog-head{display:flex;align-items:center;gap:var(--s-6);margin-top:var(--s-4)}
.prog-logo{width:96px;height:96px;flex:none;object-fit:contain;border-radius:var(--r-lg);
  background:var(--surface-raised);border:1px solid var(--border);padding:var(--s-2)}
@media(max-width:560px){.prog-head{flex-direction:column;align-items:flex-start;gap:var(--s-4)}
  .prog-logo{width:72px;height:72px}}
.prog-origin{margin-top:var(--s-5)}
.prog-sub{font-size:var(--t-h4);margin:var(--s-8) 0 var(--s-3)}
.prog-actions{display:grid;gap:var(--s-3)}
