/* ============================================================
   PARTICIPACIÓN COLABORATIVA — estilos propios de esta página.
   ============================================================ */

/* ---------- Estado activo en el menú ---------- */
nav.primary a.is-current, .mobile-panel a.is-current { color:var(--pine); font-weight:700; }
nav.primary a.is-current::after { transform:scaleX(1); }

/* ---------- Encabezado de página ---------- */
.part-hero { padding:44px 0 8px; }
.part-hero .wrap { max-width:820px; }
.part-hero h1 { margin-top:16px; font-size:clamp(2rem,4vw,3rem); color:var(--pine); line-height:1.08; }
.part-hero p.lead { margin-top:18px; font-size:1.05rem; color:var(--ink-600); line-height:1.65; max-width:62ch; }
.part-hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; }

/* ---------- Banner de transparencia ---------- */
.part-disclosure {
  display:flex; gap:14px; align-items:flex-start;
  margin-top:28px; padding:18px 20px; border-radius:18px;
  background:var(--coop-50); border:1px solid rgba(31,122,77,.22);
}
.part-disclosure svg { width:22px; height:22px; color:var(--coop); flex-shrink:0; margin-top:2px; }
.part-disclosure p { font-size:.88rem; line-height:1.6; color:var(--pine); }
.part-disclosure strong { font-weight:700; }

/* ---------- Mecanismo (línea de tiempo) ---------- */
.mecanismo { background:var(--cream); }
.mec-list { max-width:700px; margin:8px auto 0; position:relative; }
.mec-list::before {
  content:""; position:absolute; left:23px; top:10px; bottom:10px; width:2px;
  background:repeating-linear-gradient(to bottom, rgba(31,122,77,.3) 0 6px, transparent 6px 12px);
}
.mec-step { position:relative; display:flex; gap:20px; padding:0 0 34px 0; }
.mec-step:last-child { padding-bottom:0; }
.mec-num {
  position:relative; z-index:1; flex-shrink:0; width:48px; height:48px; border-radius:50%;
  background:var(--cream-100); border:2px solid var(--coop); color:var(--coop);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:700; font-size:1.1rem;
}
.mec-step:last-child .mec-num { background:var(--coop); color:var(--cream-100); }
.mec-body { padding-top:8px; }
.mec-body h3 { font-size:1.08rem; color:var(--pine); }
.mec-body p { margin-top:6px; font-size:.9rem; color:var(--ink-600); line-height:1.6; max-width:52ch; }

/* ---------- Grid de categorías ---------- */
.categorias { background:rgba(255,244,220,.6); }
.cat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:8px; }
.cat-card {
  position:relative; overflow:hidden; text-align:left; display:flex; flex-direction:column; height:100%;
  border-radius:22px; border:1px solid rgba(20,67,44,.08); background:var(--cream-100);
  padding:26px; transition:.3s;
}
.cat-card:hover { transform:translateY(-6px); box-shadow:var(--lift); }
.cat-card::before { content:""; position:absolute; left:0; right:0; top:0; height:4px; background:var(--ember); transform:scaleX(0); transform-origin:left; transition:.4s; }
.cat-card:hover::before { transform:scaleX(1); }
.cat-icon { width:56px; height:56px; border-radius:16px; background:var(--cream-200); display:flex; align-items:center; justify-content:center; transition:.3s; }
.cat-card:hover .cat-icon { background:var(--ember-100); }
.cat-icon svg { width:32px; height:32px; }
.cat-card h3 { margin-top:20px; font-size:1.12rem; color:var(--pine); line-height:1.3; }
.cat-card p { margin-top:10px; flex:1; font-size:.86rem; color:var(--ink-600); line-height:1.6; }
.cat-open { margin-top:18px; display:inline-flex; align-items:center; gap:6px; font-size:.85rem; font-weight:700; color:var(--ember-600); }
.cat-open svg { width:14px; height:14px; transition:.2s; }
.cat-card:hover .cat-open svg { transform:translate(2px,-2px); }

/* ---------- Franja de cierre ---------- */
.part-closing { position:relative; overflow:hidden; background:var(--pine); padding:56px 0; }
.part-closing .wrap { position:relative; display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; }
.part-closing h2 { font-size:clamp(1.4rem,2.4vw,1.9rem); color:var(--cream); max-width:34ch; }
.part-closing p { margin-top:10px; font-size:.9rem; color:rgba(255,249,236,.75); max-width:44ch; }
.part-closing-actions { display:flex; gap:12px; flex-wrap:wrap; }

/* ---------- MODAL: Ficha de transparencia ---------- */
.partmodal-overlay {
  position:fixed; inset:0; z-index:9999; background:rgba(14,48,32,.62); backdrop-filter:blur(3px);
  display:none; align-items:center; justify-content:center; padding:16px;
}
.partmodal-overlay.is-open { display:flex; }
body.partmodal-lock { overflow:hidden; }

.partmodal-panel {
  width:100%; max-width:760px; max-height:min(90vh,940px); background:var(--cream-100);
  border-radius:22px; box-shadow:var(--lift); display:flex; flex-direction:column; overflow:hidden;
  animation:partmodal-pop .25s ease;
}
@keyframes partmodal-pop {
  from { opacity:0; transform:translateY(14px) scale(.98); }
  to { opacity:1; transform:translateY(0) scale(1); }
}

.partmodal-topbar { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:22px 22px 18px; background:var(--pine); color:var(--cream); flex:0 0 auto; }
.partmodal-eyebrow { display:block; font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sun); margin-bottom:5px; }
.partmodal-title h3 { font-size:1.28rem; color:var(--cream); line-height:1.25; }
.partmodal-close { appearance:none; border:none; background:rgba(255,255,255,.14); color:#fff; width:36px; height:36px; min-width:36px; border-radius:50%; font-size:20px; line-height:1; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.partmodal-close:hover { background:rgba(255,255,255,.26); }

.partmodal-body { padding:22px 22px 26px; overflow-y:auto; }
.partmodal-resumen { font-size:.92rem; color:var(--ink-600); line-height:1.6; }
.partmodal-ejemplo { margin-top:12px; padding:12px 14px; border-radius:12px; background:var(--cream-200); font-size:.83rem; color:var(--ink-600); line-height:1.6; }
.partmodal-h4 { margin-top:26px; margin-bottom:12px; font-family:var(--mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-400); display:flex; align-items:center; gap:8px; }
.partmodal-h4::after { content:""; flex:1; height:1px; background:rgba(20,67,44,.12); }

.part-ficha { position:relative; border:1px dashed rgba(20,67,44,.28); border-radius:16px; padding:16px 16px 14px; background:rgba(246,234,209,.4); }
.part-ficha-row { display:flex; justify-content:space-between; gap:14px; padding:7px 0; font-size:.82rem; border-bottom:1px solid rgba(20,67,44,.08); }
.part-ficha-row:last-child { border-bottom:none; }
.part-ficha-row dt { color:var(--ink-400); flex:0 0 44%; }
.part-ficha-row dd { font-family:var(--mono); font-weight:600; color:var(--pine); text-align:right; }
.part-ficha-row.ref dd { color:var(--ember-600); letter-spacing:.04em; }

.part-riesgos { border:1.5px solid rgba(178,74,15,.28); background:var(--ember-100); border-radius:16px; padding:16px 18px; }
.part-riesgos ul { display:flex; flex-direction:column; gap:9px; }
.part-riesgos li { display:flex; gap:9px; font-size:.85rem; color:var(--ember-600); line-height:1.55; }
.part-riesgos li svg { width:15px; height:15px; flex-shrink:0; margin-top:3px; }

.part-docs { display:flex; flex-direction:column; gap:10px; }
.part-doc { display:flex; gap:12px; align-items:flex-start; padding:12px 14px; border-radius:14px; border:1px solid rgba(20,67,44,.08); background:#fff; }
.part-doc svg { width:18px; height:18px; color:var(--coop); flex-shrink:0; margin-top:2px; }
.part-doc strong { display:block; font-size:.86rem; color:var(--ink); }
.part-doc span { display:block; margin-top:2px; font-size:.78rem; color:var(--ink-400); line-height:1.5; }

.part-estado { display:flex; gap:10px; padding:14px 16px; border-radius:14px; background:var(--cream-200); }
.part-estado svg { width:17px; height:17px; color:var(--ink-400); flex-shrink:0; margin-top:2px; }
.part-estado p { font-size:.82rem; color:var(--ink-600); line-height:1.6; }
.partmodal-ctarow { margin-top:22px; display:flex; gap:10px; flex-wrap:wrap; }

/* ---------- Responsive ---------- */
@media (max-width:980px) {
  .cat-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px) {
  .cat-grid { grid-template-columns:1fr; }
  .part-ficha-row { flex-direction:column; gap:2px; }
  .part-ficha-row dd { text-align:left; }
  .part-closing .wrap { flex-direction:column; align-items:flex-start; }
}
@media (max-width:480px) {
  .part-disclosure { flex-direction:column; }
  .mec-step { gap:14px; }
  .mec-num { width:40px; height:40px; font-size:1rem; }
  .mec-list::before { left:19px; }
}
