/* Zurita Lopez Lab — components rendered by the plugin.
   Colors come from the child theme's --zl-* tokens, with fallbacks. */

.zl-small{font-size:.9rem;color:var(--zl-ink-soft,#4A5265)}

/* ---------- Team grid ---------- */
.zl-team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem 1.75rem;margin-top:1.5rem}
.zl-member-photo{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;background:var(--zl-pale,#F1EDE2);margin-bottom:.8rem}
.zl-initials{display:grid;place-items:center;font-family:var(--zl-serif,Georgia,serif);font-size:2.4rem;color:var(--zl-ink-soft,#4A5265);letter-spacing:.04em}
.zl-member-name{font-family:var(--zl-sans,system-ui,sans-serif);font-size:1rem;font-weight:600;line-height:1.35;margin:0}
.zl-member-name a{color:inherit;text-decoration:none}
.zl-member-name a:hover{color:var(--zl-brick,#A6262E);text-decoration:underline}
.zl-member-meta{display:block;color:var(--zl-ink-soft,#4A5265);font-size:.85rem;line-height:1.4}
.zl-member-project{font-size:.9rem;margin:.4rem 0 0;line-height:1.45}

.zl-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;margin-top:1.5rem}
.zl-mini-card{background:var(--zl-pale,#F1EDE2);padding:1.4rem 1.5rem;border-radius:4px}
.zl-mini-card b{display:block;font-weight:600}
.zl-mini-card span{display:block;color:var(--zl-ink-soft,#4A5265);font-size:.85rem;margin-top:.2rem}
.zl-mini-card p{font-size:.92rem;margin:.5rem 0 0}

.zl-alum-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;margin-top:1.5rem}
.zl-alum-year{font-family:var(--zl-serif,Georgia,serif);font-weight:500;font-size:1.4rem;color:var(--zl-moss,#3E6F63);margin:0 0 .6rem}
.zl-alum-grid ul{list-style:none;padding:0;margin:0}
.zl-alum-grid li{padding:.45rem 0;font-size:.95rem;border-bottom:1px solid var(--zl-line,#DDD9CF);margin:0}
.zl-alum-grid small{display:block;color:var(--zl-ink-soft,#4A5265);font-size:.8rem}

/* ---------- Single profile ---------- */
.zl-profile{display:grid;grid-template-columns:240px 1fr;gap:2.5rem;align-items:start;margin:1rem 0 2rem}
.zl-profile-photo{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px;background:var(--zl-pale,#F1EDE2)}
.zl-profile-photo.zl-initials{font-size:3.5rem}
.zl-profile-meta{color:var(--zl-ink-soft,#4A5265);margin:0 0 .25rem}
.zl-profile-project{margin:1rem 0}
.zl-back{margin-top:2rem;font-size:.95rem}

/* ---------- News cards (homepage) ---------- */
.zl-news{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1.5rem;margin-top:1.75rem}
.zl-news-card{display:flex;flex-direction:column;background:var(--zl-pale,#F1EDE2);padding:1.75rem;border-radius:4px}
.zl-news-card time{display:block;font-size:.85rem;color:var(--zl-ink-soft,#4A5265);margin-bottom:.5rem}
.zl-news-card h3{font-size:1.3rem;margin:0 0 .6rem;line-height:1.2}
.zl-news-card h3 a{color:inherit;text-decoration:none}
.zl-news-card h3 a:hover{text-decoration:underline}
.zl-news-card p{flex:1;margin:0;font-size:.97rem}
.zl-more{display:inline-block;margin-top:1rem;font-weight:600;font-size:.92rem;text-decoration:none}
.zl-news-card.is-feature{background:var(--zl-brick,#A6262E);color:#fff}
.zl-news-card.is-feature time,.zl-news-card.is-feature h3,.zl-news-card.is-feature p,.zl-news-card.is-feature a{color:#fff}
.zl-news-card.is-feature p{opacity:.93}

/* ---------- News archive ---------- */
.zl-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.25rem}
.zl-chips a{font-size:.88rem;font-weight:500;padding:.4rem .95rem;border-radius:999px;border:1px solid var(--zl-line,#DDD9CF);color:var(--zl-ink,#1B2233);text-decoration:none;line-height:1.3}
.zl-chips a:hover{border-color:var(--zl-brick,#A6262E);color:var(--zl-brick,#A6262E)}
.zl-chips a[aria-current="page"]{background:var(--zl-ink,#1B2233);border-color:var(--zl-ink,#1B2233);color:var(--zl-paper,#FBFAF6)}
.zl-post-list{border-top:1px solid var(--zl-line,#DDD9CF)}
.zl-post{padding:2rem 0;border-bottom:1px solid var(--zl-line,#DDD9CF)}
.zl-post.has-thumb{display:grid;grid-template-columns:200px 1fr;gap:2rem}
.zl-post-thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}
.zl-post-meta{font-size:.85rem;color:var(--zl-ink-soft,#4A5265);margin:0 0 .4rem}
.zl-post-title{font-size:1.5rem;margin:0 0 .5rem;line-height:1.2}
.zl-post-title a{color:var(--zl-ink,#1B2233);text-decoration:none}
.zl-post-title a:hover{color:var(--zl-brick,#A6262E)}
.zl-post p{margin:0}
.zl-pin{display:inline-block;background:var(--zl-brick,#A6262E);color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.15rem .5rem;border-radius:3px;margin-right:.6rem;vertical-align:1px}
.zl-pager{display:flex;justify-content:space-between;margin-top:2rem;font-weight:600}

/* ---------- Portal ---------- */
.zl-card{background:var(--zl-paper,#FBFAF6);border:1px solid var(--zl-line,#DDD9CF);border-radius:4px;padding:1.75rem 2rem}
.zl-me p{margin:0 0 .75rem}
.zl-me p:last-child{margin-bottom:0}
.zl-linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--zl-brick,#A6262E);text-decoration:underline;cursor:pointer;margin-left:1rem}
.zl-progress{margin:.5rem 0 1.25rem;max-width:28rem}
.zl-progress-label{font-weight:600;margin-bottom:.4rem}
.zl-progress-bar{height:8px;background:var(--zl-pale,#F1EDE2);border-radius:999px;overflow:hidden}
.zl-progress-bar span{display:block;height:100%;background:var(--zl-moss,#3E6F63)}
.zl-checklist{padding:0;margin:0;list-style:none;counter-reset:zl;border-top:1px solid var(--zl-line,#DDD9CF)}
.zl-checklist li{counter-increment:zl;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;padding:1rem 0 1rem 2.4rem;border-bottom:1px solid var(--zl-line,#DDD9CF);position:relative;margin:0}
.zl-checklist li::before{content:counter(zl);position:absolute;left:0;font-family:var(--zl-serif,Georgia,serif);font-size:1.35rem;color:var(--zl-moss,#3E6F63);line-height:1.1}
.zl-checklist li.is-done::before{content:"✓"}
.zl-checklist a{font-weight:600}
.zl-status{font-size:.88rem;color:var(--zl-ink-soft,#4A5265)}
.zl-status.is-done{color:var(--zl-moss,#3E6F63);font-weight:600}
.zl-ack{margin:3rem 0 1rem;padding:1.5rem 1.75rem;border-radius:4px;background:var(--zl-pale,#F1EDE2)}
.zl-ack p{margin:0 0 .75rem}
.zl-ack form{display:inline}
.zl-ack .zl-small{margin:1rem 0 0}
.zl-ack-done{font-weight:600;color:var(--zl-moss,#3E6F63)}

/* ---------- Footer ---------- */
.zl-footer{border-top:1px solid var(--zl-line,#DDD9CF);background:var(--zl-paper,#FBFAF6);color:var(--zl-ink-soft,#4A5265);font-size:.92rem}
.zl-footer-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;max-width:1120px;margin:0 auto;padding:3rem 1.25rem}
.zl-footer-title{color:var(--zl-ink,#1B2233);font-weight:600;margin:0 0 .4rem}
.zl-footer address{font-style:normal;line-height:1.7}
.zl-footer-login{margin:.9rem 0 0}

@media (max-width: 960px){
	.zl-team{grid-template-columns:repeat(3,minmax(0,1fr))}
	.zl-alum-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 781px){
	.zl-team{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 1.25rem}
	.zl-mini,.zl-news,.zl-footer-inner{grid-template-columns:1fr}
	.zl-post.has-thumb{grid-template-columns:1fr;gap:1rem}
	.zl-post-thumb img{max-width:320px}
	.zl-profile{grid-template-columns:1fr}
	.zl-profile-photo{max-width:240px}
}
