/* ================= Public Officer Directory ================= */
.dir-hero{background:linear-gradient(180deg,var(--ipiz-mint),var(--ipiz-bg));padding:48px 0 10px;position:relative;overflow:hidden}
.dir-hero::before{content:"";position:absolute;inset:0;background-image:url('../img/pattern.svg');background-size:170px;opacity:.05}
.dir-hero .container{position:relative}
.dir-hero h1{margin:12px 0 8px}
.dir-hero__lead{color:var(--ipiz-muted);max-width:66ch;font-size:1.02rem;margin:0}
.dir-prepare{display:inline-flex;align-items:flex-start;gap:11px;margin-top:16px;max-width:70ch;
  background:var(--ipiz-green-soft);border:1px solid #b9e3cd;border-radius:12px;padding:12px 16px;color:#2f4a3d;font-size:.9rem;line-height:1.5}
.dir-prepare__ico{width:26px;height:26px;border-radius:8px;background:#fff;color:var(--ipiz-green);display:grid;place-items:center;flex:none}

/* Quick guidance */
.dir-guide__title{font-size:1.25rem;margin:0 0 16px}
.dir-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:14px}
.dir-guide__card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--ipiz-line);border-radius:var(--radius-lg);
  padding:22px;box-shadow:var(--shadow-xs);transition:transform .16s,box-shadow .2s,border-color .2s}
.dir-guide__card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgba(0,107,63,.3)}
.dir-guide__ico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;margin-bottom:12px}
.dir-guide__ico svg{width:22px;height:22px}
/* distinct, meaningful tints per channel */
.dir-guide__ico--jsm{background:#EFF6FF;color:var(--ipiz-info)}
.dir-guide__ico--hep{background:var(--ipiz-green-soft);color:var(--ipiz-green)}
.dir-guide__ico--ipiz{background:var(--ipiz-gold-soft);color:#a9791a}
.dir-guide__card h3{margin:0 0 2px;font-size:1.06rem}
.dir-guide__sub{font-family:var(--font-head);font-weight:700;font-size:.82rem;color:var(--ipiz-green)}
.dir-guide__card p{color:var(--ipiz-muted);font-size:.9rem;margin:8px 0 14px;flex:1}
.dir-guide__cta{align-self:flex-start;font-family:var(--font-head);font-weight:600;font-size:.85rem;
  color:var(--ipiz-green-dark);background:var(--ipiz-green-soft);padding:8px 14px;border-radius:999px;
  transition:background .15s,color .15s,transform .15s}
.dir-guide__card:hover .dir-guide__cta{background:var(--ipiz-green);color:#fff;transform:translateX(2px)}

/* Unit sections — offset for sticky header */
.dir-unit{margin-top:40px;scroll-margin-top:110px}
.dir-unit__head{display:flex;align-items:center;gap:14px;margin-bottom:8px;flex-wrap:wrap}
.dir-section__badge{font-family:var(--font-head);font-weight:700;font-size:.82rem;padding:7px 14px;border-radius:10px;
  background:var(--ipiz-green-soft);color:var(--ipiz-green-dark)}
.dir-unit__guide{color:var(--ipiz-muted);font-size:.92rem;max-width:78ch;margin:0 0 18px}

/* Officer cards — equal size, no avatar. Manager sits in the same grid. */
.dir-officers{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:16px;align-items:stretch}
.oc{position:relative;background:#fff;border:1px solid var(--ipiz-line);border-radius:var(--radius-lg);padding:22px;
  box-shadow:var(--shadow-xs);display:flex;flex-direction:column;overflow:hidden;transition:transform .16s,box-shadow .2s}
.oc::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--ipiz-green)}
.oc:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
/* Manager: same size, distinguished only by accent + gold badge */
.oc--mgr{border-color:rgba(214,163,41,.4);box-shadow:0 16px 38px -24px rgba(0,107,63,.4)}
.oc--mgr::before{height:4px;background:linear-gradient(90deg,var(--ipiz-green),var(--ipiz-gold))}
.oc--mgr{background:linear-gradient(180deg,#fffdf6,#fff)}
.oc__body{flex:1;display:flex;flex-direction:column}
.oc__lead{align-self:flex-start;font-family:var(--font-head);font-weight:700;font-size:.68rem;letter-spacing:.04em;
  text-transform:uppercase;padding:4px 10px;border-radius:7px;margin-bottom:10px}
.oc__lead--mgr{color:#7a5a06;background:var(--ipiz-gold-soft);box-shadow:inset 0 0 0 1px #f0dfa4}
.oc__lead--off{color:var(--ipiz-green-dark);background:var(--ipiz-green-soft)}
.oc__name{margin:0 0 3px;font-size:1.08rem;color:var(--ipiz-green-dark);line-height:1.25}
.oc__pos{color:var(--ipiz-muted);font-size:.88rem;margin-bottom:12px}
.oc__badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.badge-mgr{background:var(--ipiz-gold-soft);color:#7a5a06;box-shadow:inset 0 0 0 1px #f0dfa4}
.oc__div{border:none;border-top:1px dashed var(--ipiz-line);margin:0 0 14px}
.oc__contact{display:flex;gap:10px;align-items:flex-start;font-size:.86rem;color:#3f4a44;margin-bottom:9px;word-break:break-word}
.oc__contact svg{color:var(--ipiz-green);flex:none;margin-top:2px}
.oc__contact a{color:#3f4a44}
.oc__contact a:hover{color:var(--ipiz-green)}
.oc__btns{display:flex;gap:9px;margin-top:auto;padding-top:14px;flex-wrap:wrap}
.oc__btns .btn{flex:1 1 100%}

/* IPIZ support — compact */
.dir-ipiz{display:grid;grid-template-columns:1fr 1.05fr;gap:26px;background:linear-gradient(150deg,var(--ipiz-green-dark),var(--ipiz-green-deep));
  color:#fff;border-radius:var(--radius-xl);padding:28px 30px;position:relative;overflow:hidden;align-items:center}
.dir-ipiz::before{content:"";position:absolute;inset:0;background-image:url('../img/pattern.svg');background-size:150px;opacity:.06}
.dir-ipiz__intro,.dir-ipiz__info{position:relative;z-index:1}
.dir-ipiz__intro h3{color:#fff;margin:0 0 8px}
.dir-ipiz__intro p{color:rgba(255,255,255,.82);margin:0 0 16px;font-size:.94rem}
.dir-ipiz__btn{background:#fff;color:var(--ipiz-green-dark)}
.dir-ipiz__btn:hover{background:var(--ipiz-gold-soft)}
.dir-ipiz__btn-ghost{background:transparent;border:1.5px solid rgba(255,255,255,.5);color:#fff}
.dir-ipiz__btn-ghost:hover{background:rgba(255,255,255,.12)}
.dir-ipiz__info{display:grid;gap:13px;align-content:start}
.dir-ipiz__line{display:flex;gap:12px;align-items:flex-start}
.dir-ipiz__line svg{color:var(--ipiz-gold);flex:none;margin-top:2px}
.dir-ipiz__line span{display:block;font-size:.7rem;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.05em;font-weight:700;font-family:var(--font-head);margin-bottom:1px}
.dir-ipiz__line a,.dir-ipiz__line b{color:#fff;font-weight:600;font-size:.9rem;word-break:break-word}
.dir-ipiz__line a:hover{color:var(--ipiz-gold-soft)}

/* Privacy note */
.dir-privacy{display:flex;gap:12px;align-items:flex-start;margin-top:24px;background:var(--ipiz-gold-soft);border:1px solid #f2e0a8;
  border-radius:14px;padding:16px 18px;color:#5f4a06;font-size:.9rem;line-height:1.55}
.dir-privacy__ico{width:26px;height:26px;border-radius:8px;background:#fff;color:#a9791a;display:grid;place-items:center;flex:none}

/* Responsive: 4 -> 2 -> 1 */
@media(max-width:1080px){
  .dir-officers{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:960px){
  .dir-guide{grid-template-columns:1fr 1fr}
  .dir-ipiz{grid-template-columns:1fr;gap:20px;align-items:stretch}
}
@media(max-width:680px){
  .dir-guide,.dir-officers{grid-template-columns:1fr}
}
