/* Partner catalog is rendered into HTML by scripts/sync_scanport.py. */
.software { background-color: #84299A; background-image: radial-gradient(circle at 72% 18%, rgba(255,255,255,.08) 0 90px, transparent 91px), radial-gradient(circle at 36% 72%, rgba(112,42,133,.22) 0 145px, transparent 146px), linear-gradient(125deg, #84299A 0%, #8d35a1 52%, #9846a8 100%); color: #fff; position: relative; overflow: hidden; isolation: isolate; }
.software::before, .software::after { content: ''; position: absolute; border-radius: 50%; pointer-events: none; z-index: -1; }
.software::before { top: -60px; right: -60px; width: 300px; height: 300px; background: rgba(255,255,255,.09); }
.software::after { bottom: -80px; left: -40px; width: 400px; height: 400px; background: rgba(70,15,87,.24); }
.software .tag, .software .tag::before { color: #fff; }
.software .tag::before { background: #fff; }
.software .h2, .software .lead, .software .software-group-title { color: #fff; }
.software .lead { margin-top: 12px; }
.software-note { margin-top: 20px; color: rgba(255,255,255,.82); font-size: 14px; }
.software-note a { color: #fff; text-decoration: underline; }
.software-group-title { margin: 36px 0 18px; font-size: 22px; line-height: 1.3; }
.software-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.software-card { min-width: 0; padding: 20px; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--white); color: var(--ink); box-shadow: var(--shadow-sm); display: flex; flex-direction: column; }
.software-image { width: 136px; max-width: 100%; height: 136px; margin: 0 auto 12px; display: flex; justify-content: center; overflow: hidden; border-radius: 18px; background: #f3e9f5; }
.software-image img { width: 100%; max-width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.software-card h4 { font-size: 18px; line-height: 1.35; }
.software-description { color: var(--ink2); font-size: 14px; margin: 8px 0; }
.software-price { font-size: 25px; font-weight: 900; }
.software-minimum { color: var(--ink3); font-size: 12px; margin: 4px 0 12px; }
.software-licenses { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.software-licenses summary { padding: 14px 0; cursor: pointer; font-size: 14px; font-weight: 700; }
.software-licenses ul { list-style: none; }
.software-licenses li { display: grid; gap: 6px; padding: 14px 0; border-top: 1px solid var(--border2); font-size: 13px; overflow-wrap: anywhere; }
.software-licenses small { color: var(--ink3); }
.software-licenses strong { font-size: 17px; }
.software-variant-link { color: var(--accent2); text-decoration: underline; padding: 6px 0; }
.software-inquiry { margin-top: auto; padding-top: 20px; width: 100%; text-align: center; font-size: 14px; padding: 12px; }
summary:focus-visible, a:focus-visible, button:focus-visible { outline: 3px solid var(--accent2); outline-offset: 4px; }
.pl-head { list-style: none; }
.pl-head::-webkit-details-marker { display: none; }
.pl-cat[open] .pl-arrow { transform: rotate(180deg); }
.pl-cat[open] > .pl-rows { display: block; }
@media (max-width: 1024px) {
  .software-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #mainNav { visibility: hidden; max-height: calc(100dvh - 80px); overflow-y: auto; }
  #mainNav.open { visibility: visible; }
}
@media (max-width: 640px) {
  .software-grid { grid-template-columns: minmax(0, 1fr); }
  .software-card { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .fade-in { opacity: 1; transform: none; transition: none; }
  .car-track { transition: none; }
}
/* Keep section headings clear of the sticky company header. */
section[id] { scroll-margin-top: 120px; }
@media (prefers-reduced-motion: reduce) {
  #mainNav { transition: none; }
}
