/* Public ministry shortcodes — v1.2.14.2.10. Theme-safe and portal-independent. */
.hb-public-ministry,
.hb-public-ministry * { box-sizing: border-box; }
.hb-public-ministry {
  width: 100%;
  max-width: 1180px;
  margin: 28px auto;
  color: var(--hb-public-text, #14233b);
  font: inherit;
}
.hb-public-section {
  margin: 0 0 28px;
  padding: clamp(18px, 3vw, 30px);
  border: 1px solid #d8e0ec;
  border-color: color-mix(in srgb, var(--hb-public-primary, #1f63dc) 16%, #d8e0ec);
  border-radius: 20px;
  background: var(--hb-public-card, #fff);
  box-shadow: 0 12px 32px rgba(20, 35, 59, .07);
  overflow: hidden;
}
.hb-public-section-heading { margin: 0 0 20px; }
.hb-public-section-heading > span {
  display: block;
  margin-bottom: 5px;
  color: var(--hb-public-primary, #1f63dc);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hb-public-section-heading h2 {
  margin: 0;
  color: var(--hb-public-secondary, #153a70);
  font-size: clamp(1.45rem, 3vw, 2.2rem);
  line-height: 1.15;
}
.hb-public-section-heading p {
  max-width: 760px;
  margin: 8px 0 0;
  color: color-mix(in srgb, var(--hb-public-text, #14233b) 72%, transparent);
  font-size: 1rem;
  line-height: 1.6;
}
.hb-public-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.hb-public-stat {
  min-width: 0;
  padding: 17px;
  border: 1px solid rgba(20,35,59,.09);
  border-radius: 16px;
  background: #f4f7fc;
  background: color-mix(in srgb, var(--hb-public-surface, #f4f7fc) 74%, #fff);
  border-top: 4px solid var(--hb-public-primary, #1f63dc);
}
.hb-public-stat.is-green { border-top-color: var(--hb-public-green, #169b55); }
.hb-public-stat.is-purple { border-top-color: var(--hb-public-purple, #7442d6); }
.hb-public-stat.is-orange { border-top-color: var(--hb-public-orange, #e97b12); }
.hb-public-stat strong { display:block; margin-bottom:4px; font-size:1.65rem; line-height:1.1; }
.hb-public-stat span { display:block; font-size:.86rem; font-weight:700; line-height:1.35; }
.hb-public-engagement {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}
.hb-public-engagement span {
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
  padding:12px 13px;
  border-radius:13px;
  background: var(--hb-public-surface, #f4f7fc);
  font-size:.82rem;
  line-height:1.3;
}
.hb-public-engagement strong { font-size:1.15rem; }
.hb-public-period { margin:16px 0 0; font-weight:700; }
.hb-public-updated { margin:5px 0 0; color:rgba(20,35,59,.65); font-size:.82rem; }
.hb-public-card-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.hb-public-card {
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:100%;
  padding:19px;
  border:1px solid rgba(20,35,59,.1);
  border-radius:17px;
  background:#fff;
  border-top:4px solid var(--hb-public-primary, #1f63dc);
}
.hb-public-card.is-plan { border-top-color:var(--hb-public-green, #169b55); }
.hb-public-card.is-resource { border-top-color:var(--hb-public-purple, #7442d6); }
.hb-public-card-type {
  align-self:flex-start;
  margin-bottom:10px;
  padding:5px 9px;
  border-radius:999px;
  background:#eef4ff;
  background:color-mix(in srgb, var(--hb-public-primary, #1f63dc) 10%, #fff);
  color:var(--hb-public-secondary, #153a70);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.03em;
}
.hb-public-card h3 { margin:0 0 8px; color:var(--hb-public-secondary, #153a70); font-size:1.18rem; line-height:1.3; }
.hb-public-card > strong { margin-bottom:9px; }
.hb-public-card p { margin:6px 0 11px; line-height:1.55; }
.hb-public-card small { display:block; margin-top:9px; color:rgba(20,35,59,.68); line-height:1.45; }
.hb-public-card-date { color:var(--hb-public-orange, #e97b12); font-size:.88rem; font-weight:800; }
.hb-public-card-meta { display:flex; flex-wrap:wrap; gap:7px 12px; margin-top:auto; padding-top:10px; font-size:.82rem; font-weight:700; }
.hb-public-card-link {
  align-self:flex-start;
  margin-top:14px;
  padding:9px 13px;
  border-radius:10px;
  background:var(--hb-public-primary, #1f63dc);
  color:#fff !important;
  font-weight:800;
  text-decoration:none !important;
}
.hb-public-card-link:hover,
.hb-public-card-link:focus-visible { filter:brightness(.92); }
.hb-public-empty { padding:20px; border:1px dashed rgba(20,35,59,.22); border-radius:14px; background:var(--hb-public-surface,#f4f7fc); text-align:center; }
@media (max-width: 900px) {
  .hb-public-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hb-public-engagement { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hb-public-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 560px) {
  .hb-public-ministry { margin:18px auto; }
  .hb-public-section { padding:17px; border-radius:16px; }
  .hb-public-stat-grid,
  .hb-public-engagement,
  .hb-public-card-grid { grid-template-columns:1fr; }
  .hb-public-card { padding:17px; }
}

/* Public content banners — v1.2.15.4. The complete image remains visible at every breakpoint. */
.hb-public-card-banner {
  display: grid;
  place-items: center;
  width: auto;
  min-width: 0;
  margin: -19px -19px 15px;
  overflow: hidden;
  border-radius: 13px 13px 0 0;
  background: var(--hb-public-surface, #f4f7fc);
}
.hb-public-card-banner img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(68vh, 720px);
  object-fit: contain;
  object-position: center;
}
@media (min-width: 561px) and (max-width: 900px) {
  .hb-public-card-banner img { max-height: min(62vh, 560px); }
}
@media (max-width: 560px) {
  .hb-public-card-banner { margin: -17px -17px 14px; }
  .hb-public-card-banner img { max-height: min(66vh, 520px); }
}


/* Version 1.2.15.5 — safe linked announcement message content. */
.hb-public-card-content { margin: 2px 0 8px; line-height: 1.55; }
.hb-public-card-content p { margin: 6px 0 11px; }
.hb-public-card-content ul,
.hb-public-card-content ol { margin: 7px 0 12px; padding-left: 1.35rem; }
.hb-public-card-content li + li { margin-top: 4px; }
.hb-public-card-content a {
  color: var(--hb-public-primary, #1f63dc);
  font-weight: 750;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .14em;
  overflow-wrap: anywhere;
}
.hb-public-card-content a:hover,
.hb-public-card-content a:focus-visible { color: var(--hb-public-secondary, #153a70); }
