.portal-visual .entity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0}
body.portal-visual .entity-card{margin:0!important;padding:0!important;overflow:hidden;border-radius:18px!important;background:#dff0cb!important;transition:transform .2s ease;min-width:0}
body.portal-visual .entity-card:nth-child(3n+2){background:#f9d8c7!important}body.portal-visual .entity-card:nth-child(3n){background:#fff09b!important}
@media(hover:hover){.portal-visual .entity-card:hover{transform:translateY(-5px)}}
.portal-visual .entity-logo-area{display:grid;place-items:center;height:125px;margin:10px 10px 0;border-radius:12px;background:#ffffffb5;text-decoration:none;overflow:hidden}
.portal-visual .entity-logo-area img{width:100%;height:100%;object-fit:contain;padding:12px;box-sizing:border-box}
.portal-visual .entity-logo-placeholder{display:grid;place-items:center;width:70px;height:70px;border-radius:18px;background:#087b46;color:#fff05c;font-size:42px}
.portal-visual .entity-card-body{padding:14px;display:grid;gap:9px}
.portal-visual .entity-card-body h2{margin:0!important;font-size:20px!important;line-height:1.2!important;letter-spacing:-.3px;text-wrap:balance}
.portal-visual .entity-card-body h2 a{text-decoration:none;color:#133d2d}
.portal-visual .entity-card-body p{margin:0;font-size:14px!important;line-height:1.4;color:#315440}
.portal-visual .entity-card-body .button{justify-self:start;padding:8px 16px;border-radius:10px;font-size:14px;background:#087b46;color:white}
body.portal-visual .entity-featured{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;margin:16px 0!important}
.portal-visual .entity-featured .entity-logo-area{height:150px;margin:12px}
.portal-visual .entity-featured .entity-card-body{padding:20px}
body.portal-visual .portal-main .entity-featured h1{font-size:clamp(23px,3vw,36px)!important;margin:0!important;line-height:1.15!important;letter-spacing:-.7px}
.portal-visual .entity-logo-editor{padding:16px;border-radius:14px;margin:16px 0}
.portal-visual .entity-logo-editor summary{cursor:pointer;font-weight:600}
.portal-visual .entity-logo-editor form{margin-top:12px}.portal-visual .entity-logo-editor input[type=file]{max-width:100%}
@media(max-width:900px){.portal-visual .entity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.portal-visual .entity-grid{grid-template-columns:1fr}.portal-visual .entity-featured{grid-template-columns:110px minmax(0,1fr)}.portal-visual .entity-featured .entity-logo-area{height:100px;margin:8px}.portal-visual .entity-featured .entity-card-body{padding:12px}body.portal-visual .portal-main .entity-featured h1{font-size:21px!important}}
@media(prefers-reduced-motion:reduce){.portal-visual .entity-card{transition:none!important;transform:none!important}}

/* Center entity identity consistently in directories and profile headers. */
body.portal-visual .entity-card .entity-card-body{text-align:center!important;justify-items:center}
body.portal-visual .entity-card .entity-card-body h1,body.portal-visual .entity-card .entity-card-body h2,body.portal-visual .entity-card .entity-card-body p{text-align:center!important;width:100%;text-wrap:balance}
body.portal-visual .entity-card .entity-card-body .button{justify-self:center}

/* Definite logo box: intrinsic image size must not expand the grid track. */
body.portal-visual .entity-card .entity-logo-area{position:relative;display:block;height:160px;min-height:0}
body.portal-visual .entity-card .entity-logo-area img{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain!important;object-position:center;padding:10px;box-sizing:border-box}
body.portal-visual .entity-card .entity-logo-placeholder{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
body.portal-visual .entity-featured .entity-logo-area{height:150px}
@media(max-width:560px){body.portal-visual .entity-featured .entity-logo-area{height:100px}}
