/* Shared responsive components for the public website pages. */
.public-card{border:1px solid rgba(22,43,72,.06);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(20,38,60,.06);transition:transform .22s ease,box-shadow .22s ease}
.public-card:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(20,38,60,.11)}
.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.public-rule{width:62px;height:4px;border-radius:5px;background:var(--public-primary,var(--bs-primary));margin:.7rem auto 0}
.public-footer{background:#071626;color:#dbe5f0}
.public-footer h5,.public-footer h6{color:#fff;font-weight:800}
.public-footer a{color:#c8d4e2;text-decoration:none}
.public-footer a:hover{color:#fff}
.public-footer .footer-label{height:3px;width:38px;border-radius:4px;background:#e3a008;margin-top:.65rem;margin-bottom:1.2rem}
.footer-social{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.1);margin-right:.4rem}
.footer-map{width:100%;height:170px;border:0;border-radius:12px;background:#1b2f43}
.public-page-hero{position:relative;overflow:hidden;border-radius:24px;background:linear-gradient(135deg,var(--public-primary,#0d6efd),#102f45);color:#fff;box-shadow:0 20px 50px rgba(15,35,60,.14)}
.public-eyebrow{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);padding:.5rem .85rem;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.public-section-title{font-weight:800;letter-spacing:-.025em;color:#162b48}
.public-content{font-size:1.05rem;line-height:1.9;overflow-wrap:anywhere}
.public-content p:last-child{margin-bottom:0}
.public-photo{width:100%;height:220px;object-fit:cover}
.gtk-photo{width:100%;height:300px;object-fit:cover;object-position:center top;background:#e9eef4}
.news-hero-image{display:block;width:100%;max-height:620px;object-fit:contain;background:#eef1f4;border-radius:18px}
@media(max-width:767px){.public-page-hero{border-radius:18px}.public-page-hero h1{font-size:2rem}.footer-map{height:200px}.gtk-photo{height:260px}.public-photo{height:200px}}
@media(prefers-reduced-motion:reduce){.public-card{transition:none}.public-card:hover{transform:none}}
/* Widget statistik modern dan identitas unit yayasan */
.public-stats-wrap{position:relative;isolation:isolate}
.public-stats-wrap:before{content:"";position:absolute;z-index:-1;inset:10% -2% 0;background:radial-gradient(circle at 15% 20%,rgba(13,110,253,.10),transparent 32%),radial-gradient(circle at 85% 75%,rgba(232,166,26,.12),transparent 34%)}
.public-stat-card{position:relative;height:100%;overflow:hidden;padding:1.45rem;border-radius:20px;background:rgba(255,255,255,.94);border:1px solid rgba(34,63,98,.08);box-shadow:0 14px 35px rgba(21,44,75,.08);transition:transform .25s ease,box-shadow .25s ease}
.public-stat-card:hover{transform:translateY(-5px);box-shadow:0 22px 42px rgba(21,44,75,.13)}
.public-stat-icon{display:flex;width:52px;height:52px;align-items:center;justify-content:center;border-radius:16px;background:linear-gradient(135deg,var(--public-primary,#0d6efd),#1d4d71);color:#fff;font-size:1.15rem;box-shadow:0 8px 18px rgba(13,110,253,.18)}
.public-stat-value{display:block;margin-top:1rem;font-size:clamp(2rem,3vw,2.65rem);line-height:1;font-weight:900;letter-spacing:-.055em;color:#152d4c;font-variant-numeric:tabular-nums}
.public-stat-label{margin-top:.55rem;color:#617188;font-weight:700;font-size:.92rem}
.public-stat-caption{margin-top:.4rem;color:#8895a7;font-size:.78rem}
.unit-identity-card{height:100%;border:1px solid rgba(24,51,80,.08);border-radius:20px;padding:1.4rem;background:linear-gradient(155deg,#fff,#f6f9fc);box-shadow:0 12px 30px rgba(20,39,66,.07);transition:transform .25s ease,box-shadow .25s ease}
.unit-identity-card:hover{transform:translateY(-5px);box-shadow:0 20px 38px rgba(20,39,66,.13)}
.unit-identity-icon{display:flex;width:54px;height:54px;align-items:center;justify-content:center;border-radius:17px;background:#e7effa;color:var(--public-primary,#0d6efd);font-size:1.25rem}
.unit-identity-name{font-size:1.13rem;font-weight:850;color:#172f4e;overflow-wrap:anywhere}
.unit-identity-level{font-size:.83rem;color:#78869a;min-height:2.35rem}
.unit-identity-meta{border-top:1px solid #e8edf3;margin-top:1rem;padding-top:.8rem;display:grid;grid-template-columns:1fr;gap:.65rem}
.unit-identity-meta small{display:block;text-transform:uppercase;letter-spacing:.07em;font-size:.64rem;color:#8a98aa;font-weight:800;margin-bottom:.2rem}
.unit-identity-meta strong{display:block;color:#334b67;font-size:.9rem;overflow-wrap:anywhere}
.program-media-card,.facility-media-card{height:100%;border:1px solid rgba(22,43,72,.06);border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 12px 30px rgba(20,38,60,.07);transition:transform .22s ease,box-shadow .22s ease}
.program-media-card:hover,.facility-media-card:hover{transform:translateY(-4px);box-shadow:0 20px 38px rgba(20,38,60,.12)}
.program-media-photo,.facility-media-photo{display:block;width:100%;height:340px;object-fit:cover;background:#e9eef4}
.program-media-body,.facility-media-body{padding:1.35rem 1.45rem 1.5rem}
.program-media-title,.facility-media-title{font-weight:850;color:#172f4e;font-size:1.12rem;margin-bottom:.45rem}
.program-media-description,.facility-media-description{color:#69798e;line-height:1.75;margin-bottom:0;white-space:normal;overflow-wrap:anywhere}
.founder-portrait-wrap{display:flex;justify-content:center;align-items:center;padding:1rem 0 1.75rem}
.founder-portrait{width:min(100%,440px);height:440px;object-fit:cover;object-position:center 25%;border-radius:22px;border:7px solid #fff;box-shadow:0 18px 46px rgba(18,42,72,.17);background:#edf1f6}
.public-count-reduced{font-size:1rem}
@media(max-width:767px){.public-stat-card{padding:1.1rem}.public-stat-icon{width:46px;height:46px}.public-stat-value{font-size:2rem}.program-media-photo,.facility-media-photo{height:260px}.founder-portrait{height:330px;border-width:5px}.unit-identity-card{padding:1.15rem}}
@media(prefers-reduced-motion:reduce){.public-stat-card,.unit-identity-card,.program-media-card,.facility-media-card{transition:none}.public-stat-card:hover,.unit-identity-card:hover,.program-media-card:hover,.facility-media-card:hover{transform:none}}


/* Widget ringkas beranimasi dan daftar identitas unit dalam baris */
.public-stats-compact{padding-top:.55rem!important;padding-bottom:.8rem!important}
.public-stats-compact:before{inset:12% 0 0;opacity:.65}
.public-stats-heading h2{letter-spacing:-.025em}
.public-stat-card-compact{display:flex;align-items:center;justify-content:flex-start;gap:.7rem;min-height:82px;padding:.7rem .85rem;border-radius:15px;box-shadow:0 7px 18px rgba(21,44,75,.065);animation:publicWidgetCardFloat 5.2s ease-in-out infinite;animation-delay:var(--widget-delay,0s)}
.public-stat-card-compact:hover{transform:translateY(-3px)}
.public-stat-card-compact .public-stat-icon{flex:0 0 38px;width:38px;height:38px;border-radius:12px;font-size:.95rem;animation:publicWidgetIconFloat 3.8s ease-in-out infinite;animation-delay:var(--widget-delay,0s);box-shadow:0 5px 12px rgba(13,110,253,.15)}
.public-stat-card-compact .public-stat-value{margin:0;font-size:clamp(1.15rem,2vw,1.65rem);line-height:1.1;letter-spacing:-.035em}
.public-stat-card-compact .public-stat-label{margin-top:.22rem;font-size:.78rem;line-height:1.15;color:#617188}
.public-stat-info{min-width:0}
.unit-identity-list{display:flex;flex-direction:column;gap:.6rem;max-width:1000px;margin:0 auto}
.unit-identity-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border:1px solid rgba(24,51,80,.09);border-left:4px solid var(--public-primary,#0d6efd);border-radius:14px;background:linear-gradient(100deg,#fff,#f7faff);box-shadow:0 5px 16px rgba(20,39,66,.045);animation:unitRowEnter .65s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--unit-delay,0s);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.unit-identity-row:hover{transform:translateX(4px);box-shadow:0 10px 22px rgba(20,39,66,.09);border-left-color:#e0a116}
.unit-identity-row-main{display:flex;align-items:center;gap:.8rem;min-width:0;flex:1}
.unit-identity-row-icon{width:39px;height:39px;flex:0 0 39px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#eaf1fb;color:var(--public-primary,#0d6efd);font-size:1.05rem;animation:publicWidgetIconFloat 4s ease-in-out infinite;animation-delay:var(--unit-delay,0s)}
.unit-identity-row-title{display:flex;flex-direction:column;min-width:0;gap:.12rem}
.unit-identity-row-title strong{color:#172f4e;font-size:.96rem;font-weight:850;line-height:1.25;overflow-wrap:anywhere}
.unit-identity-row-title span{color:#78869a;font-size:.8rem;line-height:1.25}
.unit-identity-row-details{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex-wrap:wrap}
.unit-identity-chip{display:inline-flex;align-items:center;gap:.35rem;border:1px solid #e6ecf4;border-radius:999px;padding:.36rem .65rem;background:#fff;white-space:nowrap}
.unit-identity-chip small{color:#8793a4;font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.unit-identity-chip strong{color:#314967;font-size:.76rem;font-weight:800;overflow-wrap:anywhere}
@keyframes publicWidgetIconFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes publicWidgetCardFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes unitRowEnter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:575.98px){.public-stats-compact .row{--bs-gutter-x:.42rem}.public-stat-card-compact{min-height:78px;flex-direction:column;justify-content:center;gap:.28rem;padding:.55rem .25rem;text-align:center;border-radius:12px}.public-stat-card-compact .public-stat-icon{width:31px;height:31px;flex-basis:31px;border-radius:10px;font-size:.8rem}.public-stat-card-compact .public-stat-value{font-size:1.17rem}.public-stat-card-compact .public-stat-label{font-size:.67rem;margin-top:.12rem}.unit-identity-row{align-items:flex-start;flex-direction:column;gap:.6rem;padding:.7rem .75rem}.unit-identity-row-details{justify-content:flex-start;margin-left:0;gap:.38rem}.unit-identity-chip{padding:.32rem .5rem}.unit-identity-chip small{font-size:.6rem}.unit-identity-chip strong{font-size:.71rem}}


@media(prefers-reduced-motion:reduce){.public-stat-card-compact{animation:publicWidgetCardReduced 8s ease-in-out infinite!important;transition:none!important}.public-stat-card-compact .public-stat-icon,.unit-identity-row-icon{animation:publicWidgetIconReduced 8s ease-in-out infinite!important}.unit-identity-row{animation:unitRowEnter 1s ease-out both!important;transition:none!important}.hero-img-float{animation:heroFloatReduced 8s ease-in-out infinite!important}.profile-unit-logo-image{animation:profileLogoBreatheReduced 8s ease-in-out infinite!important}}

/* Deretan logo unit pada Profil Yayasan: animasi mengambang dan membesar-mengecil. */
.profile-unit-logo-strip{display:flex;flex-wrap:nowrap;align-items:flex-start;justify-content:center;gap:16px;max-width:100%;overflow-x:auto;padding:18px 6px 14px;margin:0 auto 1.35rem;scrollbar-width:thin;scrollbar-color:#c5d4e5 transparent}
.profile-unit-logo-item{flex:0 0 130px;width:130px;display:flex;flex-direction:column;align-items:center;gap:.55rem;text-align:center;color:#304967;font-weight:750;transform-origin:center center;will-change:transform}
.profile-unit-logo-image{display:block;width:130px;height:130px;max-width:none;object-fit:contain;border:1px solid #e7edf5;border-radius:50%;padding:5px;background:#fff;box-shadow:0 8px 20px rgba(20,44,72,.10);transform-origin:center center;will-change:transform;animation:profileLogoBreathe 3.8s ease-in-out infinite}
.profile-unit-logo-item span{display:block;max-width:130px;font-size:.78rem;line-height:1.3;font-weight:750;overflow-wrap:anywhere}
.hero-img-float{display:inline-block;transform-origin:center center;will-change:transform;animation:heroFloat 3.8s cubic-bezier(.45,0,.55,1) infinite}
@keyframes heroFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.035)}}
@keyframes profileLogoBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.055)}}
@keyframes heroFloatReduced{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.012)}}
@keyframes profileLogoBreatheReduced{0%,100%{transform:scale(1)}50%{transform:scale(1.02)}}
@keyframes publicWidgetCardReduced{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
@keyframes publicWidgetIconReduced{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02)}}
@media(max-width:767px){.profile-unit-logo-strip{justify-content:flex-start;gap:13px;padding-left:2px;padding-right:2px}.profile-unit-logo-item{flex-basis:130px}}
