/* Software listing: scoped styles, preserving the existing site design. */
.software-list { max-width: 900px; margin-inline: auto; }
.software-card { padding: clamp(20px, 4vw, 36px); }
.software-card h2 { margin-top: 0; }
.software-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
.software-tags span { background: #eaf1fa; color: #18385e; padding: 5px 11px; border-radius: 999px; font-size: .88rem; }
.software-notice { margin: 18px 0 0; padding: 12px 15px; background: #f3f6fa; border-left: 3px solid #6689b2; }

/* Viewer detail: shared Japanese/English layout. */
.software-detail { max-width: 1100px; }
.software-back { margin: 24px 0 0; }
.software-link { display: inline-block; margin-top: 4px; font-weight: 700; }
.software-tags--center { justify-content: center; }
.software-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.software-feature { padding: 20px; border: 1px solid #e0e6ed; border-radius: 10px; background: #fff; }
.software-feature h3 { margin: 0 0 10px; font-size: 1.08rem; }
.software-feature p { margin: 0; line-height: 1.8; }
.software-placeholder { padding: 32px 20px; text-align: center; background: #f3f6fa; border: 1px dashed #9bacc1; border-radius: 10px; color: #475569; }
@media (max-width: 680px) { .software-feature-grid { grid-template-columns: 1fr; } }

/* Software cards: reuse the site's product-list and featured-card conventions. */
.software-list { max-width: none; margin-inline: 0; }
.software-grid { width: 100%; }
.software-product-card { padding: 16px; }
.software-product-card .card-body { padding: 0 10px 8px; }
.software-product-card h3 { margin: .2em 0; }
.software-product-card .software-product-image { margin: 18px auto; width: 100%; }
.software-visual { min-height: 180px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:12px; background:#eff5fb; border:1px solid #e2e8f0; color:#1b446e; border-radius:8px; font-weight:700; text-align:center; }
.software-visual i { font-size: 58px; color:#287aa7; }
.software-home-card { max-width: 100%; }
.software-home-card .software-card-media { background:#eff5fb; }
.software-home-card .software-visual { width:100%; min-height:220px; border:0; border-radius:0; }
.software-home-more { margin-top:16px; }
@media (max-width:720px) { .software-visual { min-height:150px; } }

/* Keep the contact trigger hidden while the shared inline form is open. */
.software-detail [data-inline-contact-trigger].is-hidden { display: none !important; }

/* Published release metadata (shown only when the manifest enables downloads). */
.software-release-info { padding: 12px 16px; margin: 12px 0 18px; background: #f3f6fa; border-radius: 8px; }
.software-release-info p { margin: 5px 0; }
.software-release-hash { overflow-wrap: anywhere; font-size: .88rem; }

/* Release history: shared between Japanese and English pages. */
.software-history-list { display: grid; gap: 14px; margin-top: 18px; }
.software-history-item { border: 1px solid #e0e6ed; border-radius: 9px; padding: 18px 20px; background: #fff; }
.software-history-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.software-history-heading time { color: #64748b; font-size: .9rem; }
.software-history-latest { background: #eaf1fa; color: #18385e; border-radius: 999px; padding: 2px 10px; font-size: .8rem; }
.software-history-item p { margin: 10px 0; }
.software-history-item ul { margin: 8px 0 0; padding-left: 1.4em; }
.software-history-item li { margin: 5px 0; }
.software-history-warning { color: #76541a; font-size: .9rem; }
.software-history-download { display: inline-block; margin-top: 5px; font-weight: 700; }

/* Patch 6: clear version-history cards in both languages. */
.software-detail .software-history-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  margin-top: 20px;
}
.software-detail .software-history-item {
  display: block;
  min-width: 0;
  padding: 20px 24px;
  border: 1px solid #dce4ef;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 23, 42, .035);
}
.software-detail .software-history-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 14px;
  row-gap: 8px;
  margin-bottom: 12px;
}
.software-detail .software-history-heading strong {
  display: inline-block;
  font-size: 1.12rem;
  line-height: 1.5;
  white-space: nowrap;
}
.software-detail .software-history-heading time {
  display: inline-block;
  color: #64748b;
  font-size: .92rem;
  line-height: 1.5;
  white-space: nowrap;
}
.software-detail .software-history-latest {
  display: inline-block;
  padding: 3px 11px;
  border-radius: 999px;
  background: #eaf1fa;
  color: #18385e;
  font-size: .8rem;
  font-weight: 700;
  line-height: 1.5;
}
.software-detail .software-history-item > p { margin: 12px 0; line-height: 1.7; }
.software-detail .software-history-item ul { margin: 8px 0 14px; padding-left: 1.5em; }
.software-detail .software-history-item li { margin: 5px 0; line-height: 1.65; }
.software-detail .software-history-warning { color: #76541a; font-size: .9rem; }
.software-detail .software-history-download {
  display: inline-block;
  margin-top: 4px;
  padding: 8px 12px;
  border: 1px solid #c4e5ed;
  border-radius: 7px;
  color: #087f9e;
  font-weight: 700;
  text-decoration: none;
}
.software-detail .software-history-download:hover { background: #eaf9fc; }
.software-detail .software-preview-disabled { cursor: not-allowed; }
@media (max-width: 600px) {
  .software-detail .software-history-item { padding: 16px; }
  .software-detail .software-history-heading { column-gap: 10px; }
}

/* Patch 7: keep long release histories inside a bounded scroll area. */
.software-detail .software-history-list {
  max-height: 400px;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior-y: contain;
  padding: 2px 10px 4px 2px;
  scrollbar-gutter: stable;
}
@media (max-width: 600px) {
  .software-detail .software-history-list {
    max-height: 380px;
    padding-right: 6px;
  }
}

/* Viewer demo videos and screenshots: two shared JA/EN media slots. */
.software-detail .software-media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.software-detail .software-media-item { min-width: 0; }
.software-detail .software-media-item h3 { margin: 10px 0 0; font-size: 1rem; }
.software-detail .software-media-frame { aspect-ratio: 16 / 9; overflow: hidden; border-radius: 10px; background: #f3f6fa; border: 1px solid #dce4ef; }
.software-detail .software-media-frame video,
.software-detail .software-media-frame img { display: block; width: 100%; height: 100%; object-fit: contain; }
.software-detail .software-media-frame--empty { display: flex; align-items: center; justify-content: center; border: 1px dashed #9bacc1; color: #64748b; }
@media (max-width: 600px) { .software-detail .software-media-grid { grid-template-columns: 1fr; gap: 18px; } }

/* Configurable software media: YouTube grid and manual screenshot carousel. */
.software-detail .software-media-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.software-detail .software-shot-carousel { position: relative; max-width: 900px; margin: 0 auto; }
.software-detail .software-shot-frame { width: 100%; }
.software-detail .software-shot-zoom { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.software-detail .software-shot-zoom img { width: 100%; height: 100%; object-fit: contain; }
.software-detail .software-shot-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 42px; height: 48px; border: 1px solid #cbd5e1; border-radius: 8px; background: rgba(255,255,255,.94); color: #26374a; font-size: 32px; line-height: 1; cursor: pointer; }
.software-detail .software-shot-arrow:hover { background: #eaf4fa; }
.software-detail .software-shot-prev { left: 8px; }
.software-detail .software-shot-next { right: 8px; }
.software-detail .software-shot-caption { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 10px; }
.software-detail .software-shot-title { margin: 0; font-size: 1rem; }
.software-detail .software-shot-counter { font-size: .9rem; color: #64748b; }
.software-detail .software-shot-dialog { max-width: min(96vw, 1500px); max-height: 94vh; padding: 34px 12px 12px; border: 1px solid #cbd5e1; border-radius: 10px; }
.software-detail .software-shot-dialog::backdrop { background: rgba(0,0,0,.78); }
.software-detail .software-shot-dialog img { display: block; max-width: 92vw; max-height: 83vh; object-fit: contain; }
.software-detail .software-shot-close { position: absolute; right: 8px; top: 4px; border: 0; background: transparent; font-size: 28px; cursor: pointer; }

/* Real Viewer screenshots: preserve full application window without cropping. */
.software-home-card .software-card-media img, .software-product-card .software-product-image img { object-fit: contain; width: 100%; height: auto; }

/* Viewer manual links */
.software-manual-links{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* Local MP4 demos share the existing responsive video frame. */
.software-media-frame video { width: 100%; height: 100%; display: block; object-fit: contain; background: #000; }
