
/* CSV98 · Arquitectura quirúrgica
   Capa deliberadamente pequeña: no sustituye la identidad visual existente. */

:focus-visible{
  outline:3px solid #ff9b29!important;
  outline-offset:3px!important;
}

.csv98-service-intro{
  display:flex;
  justify-content:flex-end;
  margin:-8px 0 22px;
}

/* Service families */
.service-groups{
  padding:54px 0 16px;
  display:grid;
  gap:42px;
}
.service-family{
  padding:0;
}
.service-family-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);
  gap:22px;
  align-items:end;
  margin-bottom:18px;
  padding-bottom:15px;
  border-bottom:1px solid #eadfce;
}
.service-family-head h2{
  margin:0;
  color:#06172b;
  font-size:clamp(1.55rem,3vw,2.25rem);
  line-height:1.08;
}
.service-family-head p{
  margin:0;
  color:#687587;
}
.service-family-grid{
  padding:0!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.service-family-grid .card{
  min-height:100%;
}

/* Keep real values in DOM; give motion visually without rewriting text */
.hero-proof strong.csv98-count-ready,
.hero-proof.csv98-proof-ready strong{
  animation:csv98ProofIn .65s ease both;
}
.hero-proof div:nth-child(2) strong{animation-delay:.08s}
.hero-proof div:nth-child(3) strong{animation-delay:.16s}
@keyframes csv98ProofIn{
  from{opacity:.35;transform:translateY(6px) scale(.94)}
  to{opacity:1;transform:none}
}

@media(max-width:900px){
  .service-family-head{grid-template-columns:1fr}
  .service-family-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:650px){
  .csv98-service-intro{justify-content:stretch}
  .csv98-service-intro .btn{width:100%}
  .service-groups{gap:34px;padding-top:36px}
  .service-family-grid{grid-template-columns:1fr!important}
}
@media(prefers-reduced-motion:reduce){
  .hero-proof strong.csv98-count-ready,
  .hero-proof.csv98-proof-ready strong{animation:none}
}
