/* Shared service capability library — managed from wp-admin. */
.msav-service-library-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2vw,30px);width:100%}
.msav-service-library-card{display:block;min-width:0;color:#fff;text-decoration:none!important}
.msav-service-library-visual{position:relative;display:grid;place-items:center;aspect-ratio:1/1;overflow:hidden;background:linear-gradient(115deg,#51070d 0%,#a10d18 52%,#dc1f2f 100%);border:1px solid rgba(255,255,255,.08);transition:border-color .28s ease,transform .35s cubic-bezier(.16,1,.3,1),background .28s ease}
.msav-service-library-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 0%,rgba(255,255,255,.035) 50%,transparent 100%);pointer-events:none}
.msav-service-library-visual>i{position:absolute;z-index:3;left:50%;top:50%;color:#fff;font-size:clamp(58px,6vw,96px);line-height:1;font-weight:300;transform:translate(-50%,-50%);transform-origin:center;transition:transform .35s cubic-bezier(.16,1,.3,1),color .25s ease}
.msav-service-library-visual.has-image{background:#101010}
.msav-service-library-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) brightness(.86);transition:transform .65s cubic-bezier(.16,1,.3,1),filter .35s ease}
.msav-service-library-mark{position:absolute;right:8%;top:50%;bottom:auto;z-index:3;color:rgba(255,255,255,.7);font:500 8px/1 "Fira Mono",monospace;letter-spacing:.05em;transform:translateY(-50%)}
.msav-service-library-copy{display:block;padding:14px 8px 0;text-align:center}
.msav-service-library-copy strong{display:block;color:#f5f5f5;font-family:"Inter",Arial,sans-serif;font-size:clamp(15px,1.2vw,18px);font-weight:600;line-height:1.25;letter-spacing:-.025em;transition:color .2s ease}
.msav-service-library-copy small{display:block;margin-top:5px;color:rgba(255,255,255,.48);font-family:"Inter",Arial,sans-serif;font-size:13px;line-height:1.25}
.msav-service-library-empty{color:rgba(255,255,255,.55);font-size:14px}
@media(hover:hover) and (pointer:fine){.msav-service-library-card:hover .msav-service-library-visual{border-color:#c7ff00;transform:translateY(-3px);background:linear-gradient(115deg,#6a0810 0%,#bd1022 52%,#e32638 100%)}.msav-service-library-card:hover .msav-service-library-visual>i{transform:translate(-50%,-50%) scale(1.08);color:#c7ff00}.msav-service-library-card:hover .msav-service-library-visual img:not(.msav-service-library-custom-icon){transform:scale(1.045);filter:saturate(1) brightness(.98)}.msav-service-library-card:hover .msav-service-library-copy strong{color:#c7ff00}}
@media(max-width:1100px){.msav-service-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.msav-service-library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.msav-service-library-copy{padding:11px 2px 0}.msav-service-library-copy strong{font-size:14px}.msav-service-library-copy small{font-size:12px}.msav-service-library-visual>i{font-size:52px}}
@media(max-width:390px){.msav-service-library-grid{grid-template-columns:1fr 1fr}}




/* Service visual custom icons. Recommended upload: 512x512 transparent square. */
.msav-service-library-custom-icon{
  position:absolute;
  z-index:3;
  left:50%;
  top:50%;
  width:min(44%,132px)!important;
  height:auto!important;
  max-height:132px;
  object-fit:contain!important;
  filter:none!important;
  transform:translate(-50%,-50%);
  transform-origin:center;
}

/* Lime glass / mirror hover overlay. */
.msav-service-library-visual::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  opacity:0;
  background:
    linear-gradient(130deg,rgba(199,255,0,.36) 0%,rgba(199,255,0,.10) 38%,rgba(255,255,255,.13) 54%,rgba(199,255,0,.24) 100%);
  mix-blend-mode:screen;
  transition:opacity .28s ease;
}
.msav-service-library-visual>i,
.msav-service-library-mark{z-index:3}
@media(hover:hover) and (pointer:fine){
  .msav-service-library-card:hover .msav-service-library-visual::before{opacity:1}
}
.msav-service-library-card:focus-visible .msav-service-library-visual::before{opacity:1}

@media(hover:hover) and (pointer:fine){.msav-service-library-card:hover .msav-service-library-custom-icon{transform:translate(-50%,-50%) scale(1.045)}}
