/* NDX Hospital Directory — Modern Elevated Hospital Cards */
.ndxhp-hospital-grid-wrap{width:100%;max-width:100%;margin:0 auto;box-sizing:border-box}
.ndxhp-hospital-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;align-items:stretch;width:100%;box-sizing:border-box}
.ndxhp-hospital-grid.ndxhp-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ndxhp-hospital-grid.ndxhp-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ndxhp-hospital-grid.ndxhp-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}

.ndxhp-hospital-card{
    position:relative;
    display:flex!important;
    flex-direction:column!important;
    min-width:0;
    height:100%;
    overflow:hidden;
    background:#ffffff!important;
    border:1px solid #e2edf8!important;
    border-radius:20px!important;
    box-shadow:0 2px 8px -2px rgba(3,29,64,.05),0 8px 22px -4px rgba(3,29,64,.06)!important;
    text-decoration:none!important;
    color:inherit!important;
    transition:transform .28s cubic-bezier(.16,1,.3,1),box-shadow .28s cubic-bezier(.16,1,.3,1),border-color .25s ease!important;
    box-sizing:border-box;
}
.ndxhp-hospital-card:hover{
    transform:translateY(-6px);
    border-color:#9ec2e6!important;
    box-shadow:0 20px 42px -10px rgba(3,29,64,.15),0 8px 18px -6px rgba(3,29,64,.08)!important;
}

/* Force uppercase for all hospital titles on frontend */
.ndxhp-hospital-card-title,
.ndxhp-hospital-card-title a,
.ndxhp-hospital-title,
.ndxhp-hospital-title a {
    text-transform: uppercase !important;
}

.ndxhp-hospital-card-image,.ndxhp-hospital-media{
    position:relative;
    display:block;
    width:100%;
    aspect-ratio:16/9;
    height:auto;
    min-height:0;
    overflow:hidden;
    background:#edf5fb;
    box-sizing:border-box;
}
.ndxhp-hospital-card-image::after,.ndxhp-hospital-media::after{
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:45%;
    background:linear-gradient(to top,rgba(3,29,64,.42) 0%,rgba(3,29,64,.10) 55%,transparent 100%);
    pointer-events:none;
    z-index:1;
}
.ndxhp-hospital-card-image img,.ndxhp-hospital-media img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
    transition:transform .45s cubic-bezier(.16,1,.3,1),filter .45s ease!important;
}
.ndxhp-hospital-card:hover .ndxhp-hospital-card-image img,
.ndxhp-hospital-card:hover .ndxhp-hospital-media img{
    transform:scale(1.06);
    filter:brightness(1.02);
}
.ndxhp-card-placeholder,.ndxhp-hospital-placeholder{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(145deg,#edf7ff,#dceefb);
    color:#2478d1;
    font-size:42px;
    font-weight:700;
}

.ndxhp-card-badge,.ndxhp-hospital-grade,.ndxhp-hospital-badges .ndxhp-badge{
    position:absolute;
    left:12px;
    bottom:12px;
    z-index:2;
    display:inline-flex!important;
    align-items:center;
    gap:6px;
    min-height:28px;
    padding:5px 12px!important;
    border:1px solid rgba(255,255,255,.30)!important;
    border-radius:999px!important;
    font-size:11px!important;
    line-height:1.1!important;
    font-weight:700!important;
    letter-spacing:.02em;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    box-sizing:border-box;
}
.ndxhp-card-badge.is-government{
    background:linear-gradient(135deg,rgba(16,185,129,.95),rgba(5,150,105,.95))!important;
    color:#fff!important;
    box-shadow:0 4px 12px rgba(5,150,105,.35);
}
.ndxhp-card-badge.is-private{
    background:linear-gradient(135deg,rgba(37,99,235,.95),rgba(29,78,216,.95))!important;
    color:#fff!important;
    box-shadow:0 4px 12px rgba(29,78,216,.35);
}
.ndxhp-card-badge.is-neutral{
    background:linear-gradient(135deg,rgba(71,85,105,.95),rgba(51,65,85,.95))!important;
    color:#fff!important;
    box-shadow:0 4px 12px rgba(51,65,85,.35);
}
.ndxhp-hospital-grade{
    background:linear-gradient(135deg,rgba(245,158,11,.95),rgba(217,119,6,.95))!important;
    color:#fff!important;
    box-shadow:0 4px 12px rgba(217,119,6,.35);
}
.ndxhp-hospital-badges{
    position:absolute;
    left:12px;
    bottom:12px;
    z-index:2;
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}
.ndxhp-hospital-badges .ndxhp-hospital-grade,.ndxhp-hospital-badges .ndxhp-badge{
    position:static!important;
}

.ndxhp-hospital-card-body,.ndxhp-hospital-body{
    display:flex!important;
    flex-direction:column!important;
    flex:1 1 auto!important;
    min-width:0;
    padding:20px 20px 18px!important;
    box-sizing:border-box!important;
    background:#ffffff;
}
.ndxhp-hospital-card-title,.ndxhp-hospital-title{
    margin:0 0 9px!important;
    min-height:48px;
    color:#0b2445!important;
    font-size:17.5px!important;
    line-height:1.36!important;
    font-weight:800!important;
    letter-spacing:-.015em!important;
    box-sizing:border-box;
}
.ndxhp-hospital-card-title a{
    color:inherit!important;
    text-decoration:none!important;
    transition:color .18s ease;
}
.ndxhp-hospital-card-title a:hover{
    color:#1963c4!important;
}

.ndxhp-hospital-card-location,.ndxhp-hospital-location{
    display:flex!important;
    align-items:flex-start!important;
    gap:7px!important;
    min-height:20px!important;
    margin:0 0 14px!important;
    color:#64748b!important;
    font-size:13px!important;
    line-height:1.45!important;
    box-sizing:border-box;
}
.ndxhp-hospital-card-location>span:first-child,.ndxhp-hospital-location span:first-child{
    color:#ef4444!important;
    font-size:15px!important;
    line-height:1.15!important;
    flex:0 0 auto;
}

.ndxhp-hospital-card-tags,.ndxhp-hospital-specialties{
    display:flex!important;
    align-items:flex-start!important;
    align-content:flex-start!important;
    flex-wrap:wrap!important;
    gap:6px!important;
    min-height:35px!important;
    margin:0 0 18px!important;
    box-sizing:border-box;
}
.ndxhp-hospital-card-tags span,.ndxhp-hospital-specialties span{
    display:inline-flex!important;
    align-items:center!important;
    min-height:28px!important;
    padding:5px 11px!important;
    border:1px solid #e1edf7!important;
    border-radius:999px!important;
    background:#f1f6fc!important;
    color:#1e4a74!important;
    font-size:11px!important;
    line-height:1.15!important;
    font-weight:600!important;
    box-sizing:border-box!important;
}
.ndxhp-hospital-card-tags .ndxhp-card-extra,.ndxhp-hospital-specialties .ndxhp-hospital-more{
    background:#e0f2fe!important;
    color:#0284c7!important;
    border-color:#bae6fd!important;
    font-weight:800!important;
}
.ndxhp-hospital-specialties-empty{visibility:hidden}

.ndxhp-hospital-card-button,.ndxhp-hospital-action{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    width:100%!important;
    min-height:44px!important;
    margin-top:auto!important;
    padding:11px 16px!important;
    border:0!important;
    border-radius:12px!important;
    background:linear-gradient(135deg,#1d72dd 0%,#1255af 100%)!important;
    color:#ffffff!important;
    text-decoration:none!important;
    font-size:13.5px!important;
    line-height:1.2!important;
    font-weight:700!important;
    box-shadow:0 4px 14px -3px rgba(18,85,175,.45),inset 0 1px 0 rgba(255,255,255,.22)!important;
    box-sizing:border-box!important;
    transition:transform .2s ease,box-shadow .2s ease,background .2s ease!important;
    cursor:pointer;
}
.ndxhp-hospital-card-button:hover,.ndxhp-hospital-action:hover{
    transform:translateY(-2px);
    background:linear-gradient(135deg,#1665cb 0%,#0b4594 100%)!important;
    box-shadow:0 8px 20px -4px rgba(18,85,175,.55),inset 0 1px 0 rgba(255,255,255,.28)!important;
    color:#ffffff!important;
}
.ndxhp-hospital-card-button span:last-child,.ndxhp-hospital-action span:last-child{
    transition:transform .22s ease;
}
.ndxhp-hospital-card:hover .ndxhp-hospital-card-button span:last-child,
.ndxhp-hospital-card:hover .ndxhp-hospital-action span:last-child{
    transform:translateX(4px);
}

.ndxhp-grid-empty{
    padding:56px 24px;
    text-align:center;
    border:1px dashed #cbd5e1;
    border-radius:20px;
    background:#ffffff;
}
.ndxhp-grid-empty-icon{
    width:52px;
    height:52px;
    margin:0 auto 14px;
    border-radius:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eff8ff;
    color:#207ce6;
    font-size:26px;
    font-weight:800;
}
.ndxhp-grid-empty h3{margin:0 0 6px;font-size:19px;font-weight:800;color:#0b2445}
.ndxhp-grid-empty p{margin:0;color:#64748b;font-size:13.5px}

@media (max-width:1200px){
 .ndxhp-hospital-grid,.ndxhp-hospital-grid.ndxhp-grid-cols-4{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
}
@media (max-width:980px){
 .ndxhp-hospital-grid,.ndxhp-hospital-grid.ndxhp-grid-cols-3,.ndxhp-hospital-grid.ndxhp-grid-cols-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
}
@media (max-width:640px){
 .ndxhp-hospital-grid,.ndxhp-hospital-grid.ndxhp-grid-cols-2,.ndxhp-hospital-grid.ndxhp-grid-cols-3,.ndxhp-hospital-grid.ndxhp-grid-cols-4{grid-template-columns:1fr;gap:15px}
 .ndxhp-hospital-card-image,.ndxhp-hospital-media{aspect-ratio:16/9;height:auto;min-height:0}
 .ndxhp-hospital-card-body,.ndxhp-hospital-body{padding:18px 16px 16px!important}
 .ndxhp-hospital-card-title,.ndxhp-hospital-title{min-height:0;font-size:17px!important}
}
@media (prefers-reduced-motion:reduce){
 .ndxhp-hospital-card,.ndxhp-hospital-card-image img,.ndxhp-hospital-media img,.ndxhp-hospital-card-button,.ndxhp-hospital-action{transition:none!important}
 .ndxhp-hospital-card:hover,.ndxhp-hospital-card:hover .ndxhp-hospital-card-image img,.ndxhp-hospital-card:hover .ndxhp-hospital-media img,.ndxhp-hospital-card-button:hover,.ndxhp-hospital-action:hover{transform:none!important}
}

/* Standard hospital featured image — all upload dimensions render consistently */
.ndxhp-hospital-hero-image{
    display:block!important;
    width:100%!important;
    height:auto!important;
    aspect-ratio:16/9!important;
    object-fit:cover!important;
    object-position:center center!important;
    border-radius:0!important;
}

/* Strong, readable directory headings and breadcrumb labels */
#ndxhp-directory h1,
#ndxhp-directory h2,
#ndxhp-directory h3,
#ndxhp-directory .ndxhp-page-title,
#ndxhp-directory .ndxhp-directory-title{
    color:#031d40!important;
}
#ndxhp-directory .ndxhp-breadcrumb,
#ndxhp-directory .ndxhp-breadcrumb a{
    color:#475569!important;
}
#ndxhp-directory .ndxhp-breadcrumb a:hover{
    color:#1769c4!important;
}

/* Hospital hero tagline — force high-contrast text over every image/theme */
#hospital-header .ndxhp-hospital-hero-image + .absolute h2,
#hospital-header .relative > .absolute h2{
    color:#ffffff!important;
    text-shadow:0 2px 4px rgba(0,0,0,.72), 0 1px 10px rgba(0,0,0,.45)!important;
    -webkit-text-fill-color:#ffffff!important;
    opacity:1!important;
}
#hospital-header .relative > .absolute{
    background:linear-gradient(180deg,rgba(3,29,64,.02) 18%,rgba(3,29,64,.28) 48%,rgba(3,29,64,.92) 100%)!important;
}
