/* Product gallery: midnight surfaces, individual color accents and four columns. */
.software-page .software-catalog {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(3.5rem, 6vw, 6rem) max(5%, calc((100% - 1420px)/2)) clamp(5rem, 8vw, 8rem);
  color: #f1f6ff;
  background: radial-gradient(ellipse at 0% 25%, #143b702b, transparent 48%),
    radial-gradient(ellipse at 100% 70%, #40327926, transparent 45%), #070e1c;
  border-top: 1px solid #719ecc16;
}
.software-catalog::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(#83b7ec08 1px, transparent 1px), linear-gradient(90deg, #83b7ec08 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(180deg, black, transparent 90%);
}
.software-catalog .software-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  background: transparent;
  border: 0;
}
.software-catalog .software-card {
  --product-rgb: 255 94 110;
  grid-column: auto;
  min-width: 0;
  min-height: 345px;
  padding: clamp(1.2rem, 2vw, 1.65rem);
  border: 1px solid rgb(var(--product-rgb) / .35);
  border-radius: 22px;
  color: #f1f6ff;
  background: radial-gradient(ellipse at 0% 0%, rgb(var(--product-rgb) / .32), transparent 82%),
    radial-gradient(ellipse at 100% 100%, rgb(var(--product-rgb) / .12), transparent 72%),
    linear-gradient(145deg, #142038, #0c1426 65%, #10192c);
  box-shadow: inset 0 1px 0 #ffffff06, 0 12px 32px #00000024;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
/* PDF Visor CCR */
.software-catalog .software-card:nth-child(1) { --product-rgb: 255 94 110; }
/* Nexo HR CCR */
.software-catalog .software-card:nth-child(2) { --product-rgb: 74 213 135; }
/* Conecta CCR */
.software-catalog .software-card:nth-child(3) { --product-rgb: 255 151 68; }
/* Coordina CCR */
.software-catalog .software-card:nth-child(4) { --product-rgb: 166 177 192; }
/* Vault CCR */
.software-catalog .software-card:nth-child(5) { --product-rgb: 76 137 255; }
/* DocuGestión CCR */
.software-catalog .software-card:nth-child(6) { --product-rgb: 249 218 74; }
/* Soporte IT CCR */
.software-catalog .software-card:nth-child(7) { --product-rgb: 111 212 255; }
/* Cuadrante CCR */
.software-catalog .software-card:nth-child(8) { --product-rgb: 167 108 244; }
/* Generador QR CCR */
.software-catalog .software-card:nth-child(9) { --product-rgb: 246 136 194; }
/* Aula CCR */
.software-catalog .software-card:nth-child(10) { --product-rgb: 247 167 84; }
/* Al Volante CCR */
.software-catalog .software-card:nth-child(11) { --product-rgb: 203 173 255; }
/* Abastece CCR */
.software-catalog .software-card:nth-child(12) { --product-rgb: 181 145 38; --product-ink: 244 214 119; }
/* Impulso SEO CCR */
.software-catalog .software-card:nth-child(13) { --product-rgb: 174 44 61; --product-ink: 255 157 166; }
.software-catalog .software-card::before {
  content: ''; position: absolute; top: 0; left: 16%; right: 16%; height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--product-rgb) / .7), transparent);
  pointer-events: none;
}
.software-catalog .software-card::after {
  content: ''; position: absolute; width: 210px; height: 210px; top: -100px; right: -100px;
  border: 1px solid rgb(var(--product-rgb) / .13); border-radius: 50%;
  box-shadow: 0 0 0 28px rgb(var(--product-rgb) / .045), 0 0 0 56px rgb(var(--product-rgb) / .025);
  pointer-events: none;
}
.software-catalog .software-card:hover,
.software-catalog .software-card:focus-within {
  transform: translateY(-5px);
  border-color: rgb(var(--product-rgb) / .65);
  color: #f1f6ff;
  background: radial-gradient(ellipse at 0% 0%, rgb(var(--product-rgb) / .4), transparent 82%), radial-gradient(ellipse at 100% 100%, rgb(var(--product-rgb) / .18), transparent 72%), linear-gradient(145deg, #17263f, #0c1426 65%, #131e34);
  box-shadow: inset 0 1px 0 #ffffff0b, 0 20px 45px #0000003d, 0 0 28px rgb(var(--product-rgb) / .06);
}
.software-catalog .software-card .software-mark,
.software-catalog .software-card:hover .software-mark {
  position: relative; z-index: 1;
  width: 72px; height: 72px; flex: 0 0 72px;
  margin: 0 0 2.8rem;
  border: 1px solid rgb(var(--product-rgb) / .3);
  border-radius: 19px;
  color: rgb(var(--product-ink, var(--product-rgb)));
  background: linear-gradient(145deg, rgb(var(--product-rgb) / .24), rgb(var(--product-rgb) / .095));
  box-shadow: inset 0 1px 0 rgb(var(--product-rgb) / .1), 0 8px 24px rgb(var(--product-rgb) / .07);
  transform: none;
}
.software-catalog .software-mark svg { width: 43px; height: 43px; filter: drop-shadow(0 0 8px rgb(var(--product-rgb) / .2)); }
.software-catalog .software-card-copy { position: relative; z-index: 1; margin-top: auto; }
.software-catalog .software-card h2 { margin: 0 0 .8rem; font-size: clamp(1.35rem, 1.6vw, 1.75rem); line-height: 1.12; letter-spacing: -.035em; overflow-wrap: anywhere; }
.software-catalog .software-card p,
.software-catalog .software-card:hover p { color: #b0bfd4; font-size: .92rem; line-height: 1.65; }
.software-catalog .software-demo {
  top: 1.45rem; right: 1.2rem;
  min-width: 65px; min-height: 44px; height: auto; padding: .65rem .8rem;
  border-color: rgb(var(--product-rgb) / .24);
  background: rgb(var(--product-rgb) / .1);
  color: rgb(var(--product-ink, var(--product-rgb)));
  font-size: .6rem; letter-spacing: .12em;
}
.software-catalog .software-demo:hover { background: rgb(var(--product-rgb) / .17); border-color: rgb(var(--product-rgb) / .65); color: #fff; transform: none; }
.software-catalog .software-demo:focus-visible { outline: 2px solid rgb(var(--product-rgb)); outline-offset: 4px; }
@media (max-width: 1100px) { .software-catalog .software-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) {
  .software-catalog .software-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .software-catalog .software-card { min-height: 300px; padding: 1.5rem; border-radius: 20px; }
  .software-catalog .software-card h2 { font-size: 1.65rem; }
}
@media (prefers-reduced-motion: reduce) {
  .software-catalog .software-card, .software-catalog .software-demo { transition: none; }
  .software-catalog .software-card:hover, .software-catalog .software-card:focus-within { transform: none; }
}
