/* GP Ansor Toraja Raya — final public portal refinement, 2026-07-22 */
html { scroll-behavior: smooth; }
body.public-body {
  overflow-x: clip !important;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.public-body :where(h1,h2,h3,p,strong,span,small,a,button) {
  min-width: 0;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
}
body.public-body :where(a,button,.card,.public-card,.news-card) {
  -webkit-tap-highlight-color: transparent;
}
body.public-body .public-main {
  width: min(calc(100% - 36px), 1460px) !important;
  max-width: 1460px !important;
  gap: 20px !important;
}
body.public-body .public-header-clean {
  box-shadow: 0 16px 42px rgba(9,76,52,.09) !important;
  transition: box-shadow .25s ease, transform .25s ease, background-color .25s ease !important;
}
body.public-body .public-header-clean:hover {
  box-shadow: 0 20px 52px rgba(9,76,52,.13) !important;
}
body.public-body .public-header-actions .btn,
body.public-body .public-utility-actions .btn,
body.public-body .public-hero-actions .btn,
body.public-body .public-link-actions .btn {
  transition: transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .2s ease, border-color .2s ease, background-color .2s ease !important;
}
body.public-body .public-header-actions .btn:hover,
body.public-body .public-hero-actions .btn:hover,
body.public-body .public-link-actions .btn:hover {
  transform: translateY(-2px) !important;
}
body.public-body :where(a,button):focus-visible {
  outline: 3px solid rgba(242,201,76,.78) !important;
  outline-offset: 3px !important;
}

/* Dashboard sections must use the full desktop width. */
body.public-body .public-info-grid {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) !important;
  gap: 20px !important;
}
body.public-body .public-info-card {
  width: 100% !important;
  padding: clamp(18px,2vw,28px) !important;
  border-radius: 26px !important;
  box-shadow: 0 18px 48px rgba(10,79,55,.07) !important;
}
body.public-body .public-info-card .info-list {
  display: grid !important;
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
  gap: 12px !important;
}
body.public-body .public-info-card .info-list > div {
  min-height: 92px !important;
  padding: 15px 16px !important;
  align-content: start !important;
  border-radius: 18px !important;
}
body.public-body .public-info-card .info-list strong {
  line-height: 1.45 !important;
}
body.public-body .news-toolbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px 20px !important;
  flex-wrap: wrap !important;
  padding: 12px 15px !important;
  margin-bottom: 16px !important;
  border-radius: 16px !important;
}

/* Genuine article thumbnails: three comfortable columns on wide screens. */
body.public-body .news-card-grid {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 18px !important;
}
body.public-body .news-card {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) !important;
  grid-template-rows: auto minmax(0,1fr) !important;
  min-width: 0 !important;
  height: 100% !important;
  border-radius: 22px !important;
  box-shadow: 0 16px 38px rgba(15,106,75,.08) !important;
  transition: transform .24s cubic-bezier(.2,.8,.2,1), box-shadow .24s ease, border-color .24s ease !important;
}
body.public-body .news-card:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 25px 55px rgba(15,106,75,.15) !important;
}
body.public-body .news-card-thumb {
  width: 100% !important;
  min-height: 0 !important;
  aspect-ratio: 16 / 9 !important;
  border-radius: 0 !important;
  background: linear-gradient(135deg,#eaf4ee,#dfece5) !important;
}
body.public-body .news-card-thumb > img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}
body.public-body .news-card-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 17px 18px 18px !important;
}
body.public-body .news-card-body > strong {
  display: -webkit-box !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  font-size: clamp(16px,1.35vw,19px) !important;
  line-height: 1.32 !important;
}
body.public-body .news-card-body > p {
  display: -webkit-box !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  line-height: 1.55 !important;
}
body.public-body .news-card-action {
  margin-top: auto !important;
}
body.public-body .news-card-thumb-fallback {
  z-index: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  padding: 20px !important;
  color: #356652 !important;
  text-align: center !important;
  background: linear-gradient(135deg,#edf6f1,#dcece4) !important;
}
body.public-body .news-card-placeholder-logo {
  display: grid !important;
  width: 68px !important;
  height: 68px !important;
  place-items: center !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.88) !important;
  box-shadow: 0 10px 28px rgba(15,106,75,.12) !important;
}
body.public-body .news-card-placeholder-logo img {
  position: static !important;
  display: block !important;
  width: 54px !important;
  height: 54px !important;
  object-fit: contain !important;
  transform: none !important;
  background: transparent !important;
}
body.public-body .news-card-thumb-fallback small {
  color: #4f6f61 !important;
  font-size: 11px !important;
  font-weight: 750 !important;
}

/* Activity posters stay complete and readable. */
body.public-body .public-cards {
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 18px !important;
}
body.public-body .public-card {
  min-width: 0 !important;
  height: 100% !important;
  border-radius: 22px !important;
  transition: transform .24s cubic-bezier(.2,.8,.2,1), box-shadow .24s ease !important;
}
body.public-body .public-card:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 24px 52px rgba(15,106,75,.13) !important;
}
body.public-body .public-card > strong {
  line-height: 1.35 !important;
}

@media (max-width: 1180px) {
  body.public-body .public-info-card .info-list { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.public-body .news-card-grid,
  body.public-body .public-cards { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 760px) {
  body.public-body .public-main { width: min(calc(100% - 22px),1460px) !important; padding-top: 14px !important; gap: 14px !important; }
  body.public-body .public-info-card { padding: 17px 14px !important; border-radius: 20px !important; }
  body.public-body .public-info-card .info-list { grid-template-columns: minmax(0,1fr) !important; gap: 9px !important; }
  body.public-body .public-info-card .info-list > div { min-height: 0 !important; padding: 13px 14px !important; }
  body.public-body .news-card-grid,
  body.public-body .public-cards { grid-template-columns: minmax(0,1fr) !important; gap: 13px !important; }
  body.public-body .news-card { border-radius: 19px !important; }
  body.public-body .news-card-body { padding: 14px 15px 16px !important; }
  body.public-body .news-card-body > strong { font-size: 16px !important; -webkit-line-clamp: 4 !important; }
  body.public-body .news-card-thumb { aspect-ratio: 16 / 9 !important; }
  body.public-body .news-toolbar { align-items: flex-start !important; flex-direction: column !important; }
}
@media (max-width: 420px) {
  body.public-body .public-main { width: min(calc(100% - 16px),1460px) !important; }
  body.public-body .public-hero { padding: 20px 15px !important; }
  body.public-body .public-hero-copy h1 { font-size: clamp(1.85rem,9vw,2.55rem) !important; }
  body.public-body .news-card-kicker { top: 10px !important; left: 10px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.public-body *, body.public-body *::before, body.public-body *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}
