/* ICPalestina – Visuals */
.visuals-hero { padding-bottom:4.25rem; }
.visuals-section { background:linear-gradient(180deg,var(--white),var(--cream));min-height:650px; }
.visuals-tools { display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2rem;padding:1rem;background:var(--white);border:1px solid var(--border);border-radius:8px;box-shadow:0 5px 20px var(--shadow); }
.visuals-filters { display:flex;gap:.45rem;flex-wrap:wrap; }
.visual-filter { border:1px solid var(--border);border-radius:22px;background:var(--white);color:var(--text-muted);padding:.55rem 1rem;font-family:'Source Serif 4',serif;font-size:.8rem;cursor:pointer;transition:.2s;display:flex;gap:.45rem;align-items:center; }
.visual-filter:hover,.visual-filter.active { background:var(--green);border-color:var(--green);color:var(--white); }
.visual-search { width:min(390px,100%);height:43px;border:1px solid var(--border);display:flex;align-items:center;gap:.65rem;padding:0 .9rem;background:var(--cream);transition:.2s; }
.visual-search:focus-within { border-color:var(--green-mid);box-shadow:0 0 0 3px rgba(45,110,62,.08);background:var(--white); }
.visual-search>i { color:var(--text-muted);font-size:.8rem; }.visual-search input { border:0;outline:0;background:transparent;width:100%;font:inherit;color:var(--text-dark);font-size:.82rem; }.search-clear { border:0;background:none;color:var(--text-muted);cursor:pointer;padding:.25rem; }
.visuals-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.35rem; }
.visual-card { background:var(--white);border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:0 4px 18px rgba(30,25,20,.05);transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column;min-width:0; }
.visual-card:hover { transform:translateY(-4px);box-shadow:0 14px 32px var(--shadow); }
.visual-preview { height:230px;position:relative;overflow:hidden;background:#e8e4dc;cursor:pointer;border:0;padding:0;text-align:inherit;width:100%; }
.visual-preview img { width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s; }.visual-card:hover .visual-preview img { transform:scale(1.025); }
.visual-preview.pdf-preview img { object-fit:cover; }.visual-preview.pdf-preview.no-cover { background:linear-gradient(145deg,#f5f1e9,#ddd5c7);display:flex;align-items:center;justify-content:center; }
.pdf-placeholder { text-align:center;color:var(--red-mid); }.pdf-placeholder i { font-size:3.2rem;display:block;margin-bottom:.65rem; }.pdf-placeholder span { font-size:.72rem;letter-spacing:.15em;font-weight:700; }
.type-badge { position:absolute;left:.75rem;top:.75rem;padding:.32rem .6rem;border-radius:3px;background:rgba(20,20,20,.82);color:#fff;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;backdrop-filter:blur(5px); }.type-badge.pdf { background:rgba(160,30,34,.92); }
.preview-overlay { position:absolute;inset:0;background:rgba(12,15,12,.0);display:flex;align-items:center;justify-content:center;transition:.25s; }.preview-overlay span { opacity:0;transform:translateY(5px);transition:.25s;background:rgba(255,255,255,.94);color:var(--text-dark);border-radius:22px;padding:.55rem .9rem;font-size:.75rem; }.visual-preview:hover .preview-overlay { background:rgba(12,15,12,.2); }.visual-preview:hover .preview-overlay span { opacity:1;transform:none; }
.visual-card-body { padding:1.15rem 1.2rem .85rem;flex:1; }.visual-card h3 { font-size:1.02rem;line-height:1.35;margin:0 0 .35rem;font-weight:600; }.visual-creator { font-size:.72rem;color:var(--green-mid);margin-bottom:.65rem;display:flex;align-items:center;gap:.35rem; }.visual-description { color:var(--text-muted);font-size:.79rem;line-height:1.55;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden; }
.visual-card-footer { border-top:1px solid var(--border);padding:.8rem 1.2rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem; }.visual-open { border:0;background:none;color:var(--text-muted);font:inherit;font-size:.75rem;cursor:pointer;padding:.3rem 0; }.visual-open:hover { color:var(--green); }.visual-download { text-decoration:none;color:var(--green);border:1px solid rgba(45,110,62,.28);border-radius:4px;padding:.48rem .72rem;font-size:.72rem;display:flex;gap:.4rem;align-items:center;transition:.2s; }.visual-download:hover { background:var(--green);color:#fff; }
.visuals-status,.visuals-empty { text-align:center;padding:5rem 1rem;color:var(--text-muted); }.visuals-status { display:flex;justify-content:center;gap:.6rem;align-items:center; }.visuals-empty .empty-icon { width:64px;height:64px;border-radius:50%;background:var(--cream-dark);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;color:var(--red-mid);font-size:1.3rem; }.visuals-empty h2 { font-size:1.15rem;margin-bottom:.35rem; }.visuals-empty p { font-size:.82rem; }
.visual-error { color:var(--red-mid); }.visual-error button { display:block;margin:.9rem auto 0;border:1px solid var(--red-mid);background:transparent;color:var(--red-mid);padding:.45rem .8rem;border-radius:4px;cursor:pointer; }
.visual-modal[hidden],.visuals-status[hidden],.visuals-empty[hidden] { display:none; }.visual-modal { position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:2rem; }.visual-modal-backdrop { position:absolute;inset:0;background:rgba(10,12,10,.88);backdrop-filter:blur(5px); }.visual-modal-dialog { width:min(1180px,96vw);height:min(90vh,900px);background:var(--white);position:relative;z-index:1;border-radius:8px;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;box-shadow:0 24px 70px rgba(0,0,0,.35); }.visual-modal-header { display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--border); }.modal-type { color:var(--red-mid);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em; }.visual-modal-header h2 { font-size:1rem;margin:.1rem 0 0; }.modal-actions { display:flex;align-items:center;gap:.5rem; }.modal-download { text-decoration:none;background:var(--green);color:#fff;padding:.55rem .8rem;border-radius:4px;font-size:.73rem;display:flex;gap:.4rem;align-items:center; }.modal-close { width:36px;height:36px;border:1px solid var(--border);border-radius:50%;background:var(--white);cursor:pointer;color:var(--text-dark); }.visual-modal-content { min-height:0;background:#252525;display:flex;align-items:center;justify-content:center;overflow:auto; }.visual-modal-content img { max-width:100%;max-height:100%;object-fit:contain;display:block; }.visual-modal-content iframe { width:100%;height:100%;border:0;background:#fff; }/* Pages drawn with pdf.js on browsers without a PDF viewer of their own (see pdf-viewer.js) */.visual-pdf-pages { width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;padding:.6rem;background:#252525; }.visual-pdf-pages .pdf-page { display:block;width:100%;height:auto;margin:0 auto .6rem;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.35); }.visual-pdf-pages .pdf-page:last-child { margin-bottom:0; }.visual-pdf-loading { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--white);font-size:.8rem;background:#252525; }.visual-modal-content { position:relative; }/* Only when the pages cannot be drawn either (see visuals.js) */.visual-open-pdf { display:flex;flex-direction:column;align-items:center;gap:.7rem;text-decoration:none;color:var(--white);padding:2.5rem 1.5rem;text-align:center;font-size:.85rem; }.visual-open-pdf i { font-size:2.75rem;color:var(--red-mid); }.visual-open-pdf span { text-decoration:underline; }.visual-modal-meta { padding:.75rem 1.1rem;border-top:1px solid var(--border); }.visual-modal-meta div { color:var(--green-mid);font-size:.72rem;margin-bottom:.25rem; }.visual-modal-meta p { color:var(--text-muted);font-size:.77rem;line-height:1.45;margin:0;max-height:3.2em;overflow:auto; }
body.modal-open { overflow:hidden; }
@media(max-width:900px){.visuals-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.visuals-tools{align-items:stretch;flex-direction:column}.visual-search{width:100%}}
@media(max-width:600px){.visuals-grid{grid-template-columns:1fr}.visual-preview{height:235px}.visuals-tools{padding:.8rem}.visual-filter{flex:1;justify-content:center}.visual-modal{padding:.5rem}.visual-modal-dialog{width:100%;height:94vh}.visual-modal-header{padding:.7rem}.modal-download span{display:none}.visual-modal-meta{padding:.65rem .8rem}}
