/* DefenceXpress v0.18 R27 — search accuracy, graphic normalisation and hero de-duplication */

/* One consistent footprint for role/app artwork across Clients, Officers, Companies and STUs. */
.dx27-app-visual{
  width:min(100%,720px)!important;
  margin:22px auto 12px!important;
  aspect-ratio:16/9;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:16px;
  border:1px solid rgba(61,143,190,.28);
  background:#03111d;
  box-shadow:0 18px 48px rgba(0,0,0,.28);
}
.dx27-app-visual>img{
  display:block;
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:center!important;
}
.dx27-app-visual .dx24-visual-overlay,
.dx27-app-visual .dx24-visual-caption{display:none!important}
.dx27-app-caption{max-width:760px;margin:8px auto 0;text-align:center;color:#8fa9ba;font-size:.82rem;line-height:1.5}

/* On standalone role pages, keep the illustrative visual important but never poster-sized. */
.security-companies-page .dx22-app-section,
.specialised-tactical-units-page .dx22-app-section{padding-top:64px;padding-bottom:64px}

/* Multi-capability result sets: each requested capability keeps its own quantity and representative matches. */
.dx27-service-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:20px 0 30px}
.dx27-service-summary{display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:center;padding:15px;border:1px solid rgba(54,142,188,.24);border-radius:14px;background:linear-gradient(145deg,rgba(7,27,44,.86),rgba(3,13,24,.94))}
.dx27-service-summary img{width:42px;height:42px;object-fit:contain}
.dx27-service-summary b{display:block;color:#f7fbff;font-size:.96rem}
.dx27-service-summary small{display:block;margin-top:3px;color:#89a4b5;line-height:1.35}
.dx27-service-summary .dx27-service-qty{color:#f6c75b;font-weight:900;font-size:1.04rem;margin-right:4px}

.dx27-multi-matches{margin-top:34px}
.dx27-match-group{margin:0 0 26px;border:1px solid rgba(58,143,191,.25);border-radius:18px;background:linear-gradient(145deg,rgba(7,27,44,.84),rgba(3,13,24,.95));overflow:hidden}
.dx27-match-group-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 18px;border-bottom:1px solid rgba(58,143,191,.18)}
.dx27-match-group-title{display:flex;align-items:center;gap:12px;min-width:0}
.dx27-match-group-title img{width:46px;height:46px;object-fit:contain;flex:0 0 auto}
.dx27-match-group-title h3{margin:0;color:#fff;font-size:1.18rem}
.dx27-match-group-title p{margin:3px 0 0;color:#8ca7b9;font-size:.82rem;line-height:1.4}
.dx27-match-count{flex:0 0 auto;text-align:center;min-width:86px;padding:8px 10px;border-radius:12px;background:rgba(246,185,59,.08);border:1px solid rgba(246,185,59,.26)}
.dx27-match-count strong{display:block;color:#f6c75b;font-size:1.35rem}
.dx27-match-count span{display:block;color:#b5c7d3;font-size:.66rem;text-transform:uppercase;letter-spacing:.08em}
.dx27-person-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;padding:16px}
.dx27-person-card{border:1px solid rgba(72,148,187,.22);border-radius:14px;overflow:hidden;background:rgba(4,18,31,.88)}
.dx27-person-photo{height:180px;background:#061827;overflow:hidden}
.dx27-person-photo img{width:100%;height:100%;object-fit:cover;object-position:center 24%}
.dx27-person-body{padding:14px}
.dx27-person-body .dx27-proto{display:inline-flex;margin-bottom:8px;color:#75d5ff;font-size:.62rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.dx27-person-body h4{margin:0;color:#fff;font-size:1rem}
.dx27-person-body .dx27-role{margin:3px 0 7px;color:#e8c66d;font-size:.8rem;font-weight:800}
.dx27-person-body .dx27-meta{color:#8da7b8;font-size:.74rem;line-height:1.45}
.dx27-person-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.dx27-person-tags span{padding:5px 7px;border-radius:999px;border:1px solid rgba(62,145,189,.22);color:#b8ccd8;font-size:.67rem;background:rgba(22,65,89,.16)}
.dx27-group-note{padding:0 16px 16px;color:#829dac;font-size:.75rem}

@media(max-width:760px){
  .dx27-app-visual{width:min(94vw,620px)!important;margin:15px auto 9px!important;border-radius:13px}
  .dx27-app-caption{font-size:.76rem;padding:0 8px}
  .dx27-match-group-head{align-items:flex-start}
  .dx27-person-grid{grid-template-columns:1fr 1fr;gap:10px;padding:12px}
  .dx27-person-photo{height:150px}
}
@media(max-width:520px){
  .dx27-person-grid{grid-template-columns:1fr}
  .dx27-match-group-head{display:block}
  .dx27-match-count{margin-top:12px;width:max-content;text-align:left}
  .dx27-match-count strong,.dx27-match-count span{display:inline-block;margin-right:5px}
}
