/* Ziveka Campus Connect — all styles are scoped; Elementor typography and global colours stay in control. */
.zc-connect {
  --zc-accent: var(--e-global-color-primary, #1a578f);
  --zc-ink: inherit;
  --zc-muted: #64748b;
  --zc-line: rgba(47,65,88,.13);
  --zc-radius: 14px;
  font-family: inherit;
  color: inherit;
  width: 100%;
}
.zc-connect *, .zc-connect *::before, .zc-connect *::after { box-sizing:border-box; }
.zc-connect a { text-decoration:none; }
.zc-connect a:focus-visible { outline: 3px solid var(--zc-accent); outline-offset:3px; }
.zc-section { padding: 24px 0 28px; }
.zc-section-heading { display:flex; gap:18px; align-items:flex-end; justify-content:space-between; margin-bottom:20px; }
.zc-section-heading h2 { font-family:inherit; font-weight:700; font-size:clamp(23px,2.45vw,34px); line-height:1.2; letter-spacing:-.025em; margin:5px 0 0; color:inherit; }
.zc-eyebrow { display:block; color:var(--zc-accent); font-size:11px; font-weight:750; letter-spacing:.12em; line-height:1.5; }
.zc-viewall { white-space:nowrap; font-size:13px; font-weight:650; color:var(--zc-accent); padding:7px 0; }
.zc-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.zc-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; background:#fff; border:1px solid var(--zc-line); border-radius:var(--zc-radius); box-shadow:0 8px 24px rgba(33,52,74,.035); transition:transform .22s ease, box-shadow .22s ease; }
.zc-card:hover { transform:translateY(-3px); box-shadow:0 13px 32px rgba(33,52,74,.09); }
.zc-card-image { display:block; width:100%; aspect-ratio: 16/9; background:#eef3f8; overflow:hidden; }
.zc-thumb { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.zc-card:hover .zc-thumb { transform:scale(1.03); }
.zc-placeholder { height:100%; display:grid; place-items:center; background:linear-gradient(125deg, #e8eff7, #f7faff 56%, #e7eef7); color:var(--zc-accent); }
.zc-placeholder span { font-size:40px; opacity:.52; }
.zc-card-body { flex:1; padding:17px 18px 20px; display:flex; flex-direction:column; align-items:flex-start; }
.zc-card-meta { font-size:12px; font-weight:700; color:var(--zc-accent); line-height:1.5; margin-bottom:7px; }
.zc-card h3 { font-family:inherit; font-size:clamp(16px,1.5vw,19px); font-weight:700; line-height:1.4; margin:0 0 8px; color:#1c2b3e; }
.zc-card h3 a { color:inherit; }
.zc-card h3 a:hover { color:var(--zc-accent); }
.zc-card p { font-size:13px; color:#5f6c7a; line-height:1.7; margin:0 0 13px; }
.zc-mini { display:block; color:var(--zc-muted); font-size:12px; margin:0 0 12px; }
.zc-link { display:inline-flex; gap:8px; align-items:center; color:var(--zc-accent); font-size:13px; font-weight:700; margin-top:auto; line-height:1.5; }
.zc-link:hover, .zc-viewall:hover { text-decoration:underline; }
.zc-empty { color:var(--zc-muted); font-size:14px; border:1px dashed var(--zc-line); border-radius:12px; padding:23px; margin:0; }
.zc-ticker { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; min-height:48px; padding:10px 17px; border-radius:10px; background:rgba(36,88,148,.065); border:1px solid var(--zc-line); }
.zc-ticker-label { display:inline-flex; align-items:center; gap:8px; color:var(--zc-accent); font-size:12px; font-weight:750; text-transform:uppercase; letter-spacing:.035em; white-space:nowrap; }
.zc-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--zc-accent); box-shadow:0 0 0 3px rgba(80,118,165,.12); }
.zc-ticker > a { flex:1 1 260px; min-width:0; font-size:13px; font-weight:600; color:inherit; }
.zc-ticker > a:hover { text-decoration:underline; }
.zc-ticker-end { white-space:nowrap; }
.zc-ticker-end .zc-link { margin:0; }
.zc-hub .zc-ticker { margin:10px 0 14px; }
.zc-hub > .zc-section + .zc-section { border-top:1px solid var(--zc-line); }
.zc-single-details { margin-top:22px; padding:20px; border-radius:12px; background:rgba(36,88,148,.055); border:1px solid var(--zc-line); }
.zc-detail-row { display:flex; flex-wrap:wrap; gap:6px 20px; padding:9px 0; border-bottom:1px solid var(--zc-line); font-size:14px; }
.zc-detail-row strong { flex:0 0 155px; }
.zc-detail-row span { flex:1 1 160px; }
.zc-detail-action { padding-top:14px; }
@media (max-width: 1024px) { .zc-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; } }
@media (max-width: 640px) {
  .zc-section { padding:18px 0 21px; }
  .zc-grid { grid-template-columns:1fr; gap:14px; }
  .zc-section-heading { align-items:flex-end; gap:10px; }
  .zc-section-heading h2 { font-size:24px; }
  .zc-viewall { font-size:12px; }
  .zc-card-body { padding:15px 16px 17px; }
  .zc-ticker { align-items:flex-start; gap:8px 10px; }
  .zc-ticker-label { width:100%; }
  .zc-ticker > a { flex-basis:200px; }
}
@media (prefers-reduced-motion:reduce) { .zc-card, .zc-thumb { transition:none; } .zc-card:hover, .zc-card:hover .zc-thumb { transform:none; } }
