.software-hero {
    padding-block: clamp(38px, 6vw, 76px);
    background: radial-gradient(ellipse at 95% 15%, #17684b, transparent 65%), linear-gradient(115deg, var(--green-deep), var(--green-dark));
    color: #fff;
}
.software-hero-inner { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: center; gap: clamp(28px, 5vw, 70px); }
.software-hero .eyebrow, .software-cta .eyebrow { color: var(--mint); }
.software-hero h1 { max-width: 650px; font-size: clamp(2.4rem, 5.5vw, 4.6rem); overflow-wrap: anywhere; }
.software-hero h1 em { display: block; color: var(--mint); font-style: normal; }
.software-hero-copy > p:not(.eyebrow) { max-width: 53ch; margin: 22px 0 28px; color: #daeee2; font-size: 1.075rem; line-height: 1.7; }
.software-hero-art { position: relative; padding: 24px 18px; overflow: hidden; border: 1px solid #ffffff33; border-radius: 24px; background: #ffffff08; }
.software-hero-art img { width: 100%; height: auto; }
.software-hero-art > span { display: block; margin-top: 8px; color: #a9edbdab; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-align: right; }
.software-catalog { padding-block: 30px 68px; scroll-margin-top: 20px; }
.software-group-nav { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 38px; }
.software-group-nav a { padding: 10px 14px; border: 1px solid var(--line); border-radius: 24px; background: #fff; color: var(--green-text); font-size: .875rem; font-weight: 650; text-decoration: none; overflow-wrap: anywhere; }
.software-group-nav a:hover { border-color: #82be98; background: #e8f5ed; }
.software-group + .software-group { margin-top: 44px; }
.software-group h2 { scroll-margin-top: 20px; font-size: clamp(1.65rem, 3.2vw, 2.3rem); }
.software-products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 20px 0 0; padding: 0; list-style: none; }
.software-products > li { display: flex; min-width: 0; }
.software-products > .software-product-with-manual { flex-direction: column; }
.software-product-with-manual > .software-product { flex: 1; }
.software-manual-link { display: flex; justify-content: space-between; gap: 12px; align-items: center; min-height: 44px; padding: 10px 16px; margin: 6px 0 0; border: 1px solid var(--line); border-radius: 7px; color: var(--green-text); background: #eef7f1; font-size: 13px; font-weight: 650; text-decoration: none; }
.software-manual-link:hover { background: #e3f1e8; }
.software-product { display: flex; flex-direction: column; width: 100%; padding: 23px; border: 1px solid var(--line); border-radius: 14px; background: #fff; text-decoration: none; }
.software-product-heading { display: flex; align-items: center; gap: 14px; }
.software-product-heading img { flex: 0 0 56px; width: 56px; height: 56px; object-fit: contain; }
.software-product h3 { color: var(--green-dark); font-size: 1.35rem; line-height: 1.25; overflow-wrap: anywhere; }
.software-product p { margin: 14px 0 24px; color: var(--muted); line-height: 1.6; overflow-wrap: anywhere; }
.software-product-more { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); color: var(--green-text); font-size: .875rem; font-weight: 700; }
.software-product:hover { border-color: #82be98; box-shadow: 0 10px 24px #073c2d0b; }
.software-cta { padding-block: 42px; background: var(--green-dark); color: #fff; }
.software-cta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.software-cta h2 { max-width: 23ch; font-size: clamp(1.65rem, 3.2vw, 2.3rem); }
.software-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 7px 10px; margin: 0 0 30px; padding: 0; color: #daeee2; font-size: .875rem; list-style: none; }
.software-breadcrumbs li { overflow-wrap: anywhere; }
.software-breadcrumbs li + li::before { content: "›"; margin-right: 10px; }
.software-breadcrumbs a { text-underline-offset: 3px; }
.software-detail-logo { margin-bottom: 18px; padding: 5px; border-radius: 12px; background: #fff; object-fit: contain; }
.software-video-link { display: inline-flex; gap: 8px; margin-top: 18px; color: var(--mint); font-weight: 600; text-underline-offset: 4px; }
.software-detail-cover { display: block; overflow: hidden; border: 1px solid #ffffff44; border-radius: 14px; background: #f3f5f4; cursor: zoom-in; }
.software-detail-cover img { width: 100%; height: auto; max-height: 430px; object-fit: contain; }
.software-detail { max-width: 1000px; padding-block: 42px 64px; }
.software-article { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.software-article > h2 { margin: 0; padding: 24px 24px 0; color: var(--green-dark); font-size: clamp(1.5rem, 3vw, 2rem); overflow-wrap: anywhere; }
.software-article .forum-post-body { padding: 22px 24px 24px; }
.software-article .forum-rich-body :is(h2, h3, h4) { margin: 1.25em 0 .6em; font-size: 1.35rem; line-height: 1.35; overflow-wrap: anywhere; }
.software-gallery { margin-top: 36px; }
.software-gallery h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
.software-gallery ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 20px 0 0; padding: 0; list-style: none; }
.software-gallery a { display: block; aspect-ratio: 8 / 5; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; cursor: zoom-in; }
.software-gallery img { width: 100%; height: 100%; object-fit: contain; }
.software-gallery video { display: block; width: 100%; aspect-ratio: 8 / 5; object-fit: contain; border: 1px solid var(--line); border-radius: 12px; background: #fff; }

@media (prefers-reduced-motion: no-preference) {
    .software-product { transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }
    .software-product:hover { transform: translateY(-3px); }
}
@media (max-width: 900px) {
    .software-products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .software-hero-inner { grid-template-columns: minmax(0, 1fr); }
    .software-hero-art { max-width: 480px; width: 100%; margin-inline: auto; }
    .software-detail-cover { max-width: 560px; width: 100%; margin-inline: auto; }
}
@media (max-width: 540px) {
    .software-products, .software-gallery ul { grid-template-columns: minmax(0, 1fr); }
    .software-product { padding: 20px; }
    .software-group-nav a { padding: 9px 12px; }
    .software-article > h2 { padding: 20px 16px 0; }
    .software-article .forum-post-body { padding: 18px 16px 20px; }
}
