.software-subnav {
    width: 100%;
    max-width: none;
    margin: -30px 0 18px 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
    position: sticky;
    top: 77px;
    z-index: 40;
    isolation: isolate;
}

.software-subnav::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 50%;
    width: min(1200px, 100%);
    background: #fff;
    box-shadow: var(--shadow-sm);
    transform: translateX(-50%);
    transform-origin: center;
    transition:
        width 180ms ease,
        box-shadow 180ms ease;
    z-index: -1;
}

.software-subnav.is-stuck {
    background: transparent;
    box-shadow: none;
}

.software-subnav.is-stuck::before {
    width: 100%;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

.software-subnav__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 12px 18px;
    background: transparent;
    box-shadow: none;
    box-sizing: border-box;
}

.software-subnav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 10px;
    background: rgba(19, 128, 107, 0.08);
    color: var(--primary);
    border: 1px solid rgba(19, 128, 107, 0.12);
    text-decoration: none;
    font-weight: 700;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}

.software-subnav__label-short {
    display: none;
}

.software-subnav a.is-active,
.software-subnav a:focus-visible,
.software-subnav a:hover {
    background: linear-gradient(135deg, #13806b 0%, #1694a2 100%);
    color: #fff;
    border-color: rgba(22, 148, 162, 0.22);
    box-shadow: none;
}

.software-subnav a:focus-visible {
    outline: 2px solid rgba(15, 58, 83, 0.22);
    outline-offset: 2px;
}

.software-overview-sticky-cta {
    position: fixed;
    top: var(--software-overview-cta-top, 139px);
    left: 0;
    z-index: 39;
    isolation: isolate;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 10px 0;
    box-sizing: border-box;
    background: transparent;
    color: #fff;
    box-shadow: none;
    transform: translateY(-10px);
    opacity: 0;
    pointer-events: none;
    transition:
        opacity 160ms ease,
        transform 160ms ease;
}

.software-overview-sticky-cta::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 50%;
    width: min(1200px, 100%);
    background: #0f3a53;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.18);
    transform: translateX(-50%);
    transform-origin: center;
    transition: width 180ms ease;
    z-index: -1;
}

.software-overview-sticky-cta.is-promo-visible,
.software-overview-sticky-cta.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.software-overview-sticky-cta.is-visible::before {
    width: 100%;
}

.software-overview-sticky-cta__inner {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    width: min(1200px, calc(100% - 40px));
    max-width: calc(100% - 32px);
    min-width: 0;
}

.software-overview-sticky-cta__promo {
    flex: 0 1 auto;
    max-width: min(58vw, 820px);
    min-width: 0;
    color: #e6fffb;
    font-weight: 800;
    line-height: 1.35;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    transition: color 160ms ease, text-decoration-color 160ms ease;
}

.software-overview-sticky-cta__promo:hover,
.software-overview-sticky-cta__promo:focus-visible {
    color: #fbbf24;
    text-decoration: underline;
    text-decoration-color: currentColor;
    text-underline-offset: 4px;
}

a.software-overview-sticky-cta__promo {
    cursor: pointer;
}

.software-overview-sticky-cta__actions {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 0 1 auto;
    max-width: 0;
    margin-left: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    transform: translateY(-4px);
    transition:
        max-width 220ms ease,
        margin-left 220ms ease,
        opacity 180ms ease,
        transform 180ms ease;
}

.software-overview-sticky-cta.is-visible .software-overview-sticky-cta__actions {
    max-width: 360px;
    margin-left: 32px;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.software-overview-sticky-cta__inner:not(:has(.software-overview-sticky-cta__promo)) .software-overview-sticky-cta__actions {
    margin-left: 0;
}

.software-overview-sticky-cta .btn {
    min-height: 38px;
    padding: 0 14px;
    white-space: nowrap;
    box-shadow: none;
}

.software-overview-sticky-cta .btn-primary {
    background: #1694a2;
}

.software-buy-promo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 10px 0;
    box-sizing: border-box;
    background: #0f3a53;
    color: #fff;
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.18);
    transform: translateY(0);
    opacity: 1;
    transition:
        opacity 160ms ease,
        transform 160ms ease;
}

.software-buy-promo.is-sticky {
    position: fixed;
    top: var(--software-overview-cta-top, 139px);
    left: 0;
    z-index: 39;
    animation: software-buy-promo-sticky-in 180ms ease both;
}

@keyframes software-buy-promo-sticky-in {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.software-buy-promo__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(1200px, calc(100% - 40px));
    max-width: calc(100% - 32px);
    min-width: 0;
}

.software-buy-promo__text {
    max-width: min(58vw, 820px);
    min-width: 0;
    color: #e6fffb;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 160ms ease, text-decoration-color 160ms ease;
}

.software-buy-promo__text:hover,
.software-buy-promo__text:focus-visible {
    color: #fbbf24;
    text-decoration: underline;
    text-decoration-color: currentColor;
    text-underline-offset: 4px;
}

a.software-buy-promo__text {
    cursor: pointer;
}

.software-detail-shell {
    display: grid;
    gap: 24px;
}

.software-overview-hero {
    display: grid;
    grid-template-columns: minmax(320px, 44%) minmax(420px, 56%);
    gap: 40px;
    align-items: flex-start;
    padding: 36px;
    background:
        radial-gradient(circle at top left, rgba(22, 148, 162, 0.14), transparent 34%),
        linear-gradient(135deg, #ffffff 0%, #f7fbfc 58%, #eef7fb 100%);
}

.software-overview-hero__media,
.software-overview-hero__content {
    min-width: 0;
}

.software-overview-hero__media {
    align-self: start;
}

.software-overview-hero__image,
.software-overview-hero__placeholder {
    width: 100%;
    display: block;
    border: 1px solid var(--line-soft);
    box-shadow: var(--shadow-md);
    background: #f8fafc;
}

.software-overview-hero__image {
    height: auto;
    object-fit: contain;
}

.software-overview-hero__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    min-height: 280px;
    background:
        linear-gradient(135deg, rgba(19, 128, 107, 0.12), rgba(22, 148, 162, 0.06)),
        #f8fafc;
    color: var(--primary-deep);
    font-size: 1.4rem;
    font-weight: 900;
    letter-spacing: -0.03em;
    text-align: center;
}

.software-overview-hero__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    min-height: 100%;
    padding: 4px 6px 4px 0;
}

.software-overview-hero__title {
    margin: 0;
    font-size: clamp(1.65rem, 2.2vw, 2.35rem);
    line-height: 1.15;
    letter-spacing: -0.03em;
    color: var(--primary-deep);
    width: 100%;
}

.software-overview-hero__summary {
    color: var(--text);
    font-size: 1.04rem;
    line-height: 1.95;
    max-width: 62ch;
    width: 100%;
}

.software-overview-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 4px;
    margin-top: auto;
}

.software-overview-hero__actions .btn {
    min-width: 132px;
}

.software-overview-hero h2,
.software-overview-detail-grid h2,
.software-overview-section h2,
#faq h2,
.software-overview-hero .rich-content h2,
.software-overview-detail-grid .rich-content h2,
.software-overview-section .rich-content h2,
#faq .rich-content h2 {
    font-size: 1.35rem;
    line-height: 1.32;
    letter-spacing: 0;
}

.software-overview-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "features"
        "system"
        "introduction"
        "faq";
    align-items: start;
    gap: 24px;
}

.software-overview-detail-card--features {
    grid-area: features;
}

.software-overview-system {
    grid-area: system;
    min-width: 0;
}

.software-overview-introduction {
    grid-area: introduction;
    min-width: 0;
}

.software-overview-faq {
    grid-area: faq;
    min-width: 0;
}

.software-overview-detail-card,
.software-overview-section {
    background:
        radial-gradient(circle at top left, rgba(22, 148, 162, 0.10), transparent 36%),
        linear-gradient(180deg, #ffffff 0%, #f9fbfd 100%);
    border: 1px solid var(--line-soft);
    box-shadow: var(--shadow-sm);
}

.software-overview-detail-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.software-overview-side {
    grid-area: side;
    display: grid;
    gap: 16px;
    min-height: 0;
    transition: height 220ms ease;
}

.software-overview-side.is-sticky {
    position: sticky;
    top: var(--software-overview-side-top, 148px);
    align-self: start;
}

.software-overview-cta-panel {
    display: grid;
    gap: 12px;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
    transition:
        opacity 180ms ease,
        transform 180ms ease;
}

.software-overview-cta-panel .btn {
    width: 100%;
}

.software-mobile-cta {
    display: none;
}

.software-overview-section {
    display: grid;
    gap: 0;
}

.software-overview-detail-card__header,
.software-overview-section__header {
    padding: 20px 24px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
    background: rgba(248, 250, 252, 0.72);
}

.software-overview-detail-card__body,
.software-overview-section__body {
    padding: 24px;
    min-height: 0;
}

.software-overview-detail-card--system {
    overflow: hidden;
    transition:
        height 220ms ease,
        max-height 220ms ease;
}

.software-overview-detail-card--system .software-overview-detail-card__body {
    flex: 1 1 auto;
    overflow-x: hidden;
    overflow-y: auto !important;
    scrollbar-gutter: stable;
    transition:
        height 220ms ease,
        max-height 220ms ease;
}

.software-overview-detail-card .section-title,
.software-overview-section .section-title {
    margin: 0;
    font-size: 1.35rem;
    line-height: 1.28;
    letter-spacing: 0;
}

.software-feature-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.software-feature-list__item {
    padding: 16px 18px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    background: rgba(255, 255, 255, 0.82);
}

.software-feature-list__title {
    margin: 0;
    color: var(--primary-deep);
    font-size: 1rem;
    line-height: 1.35;
    font-weight: 900;
}

.software-feature-list__summary {
    margin: 8px 0 0 0;
    color: #334155;
    line-height: 1.65;
}

.software-system-requirements {
    display: grid;
    gap: 22px;
    border: 0;
    background: transparent;
    overflow: visible;
}

.software-system-requirements__group {
    border: 1px solid rgba(148, 163, 184, 0.28);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.92) 0%, rgba(255, 255, 255, 0.96) 100%);
    overflow: hidden;
}

.software-system-requirements__group-title {
    margin: 0;
    padding: 14px 18px;
    background: rgba(19, 128, 107, 0.08);
    color: var(--primary-deep);
    font-size: 1rem;
    font-weight: 900;
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

.software-system-requirements__matrix {
    display: grid;
    grid-template-columns: repeat(3, minmax(112px, .52fr) minmax(0, 1fr));
    grid-auto-rows: min-content;
    align-items: start;
}

.software-system-requirement__title,
.software-system-requirement__content {
    min-height: 0;
    padding: 6px 10px;
    border-right: 1px solid rgba(148, 163, 184, 0.22);
    border-top: 1px solid rgba(148, 163, 184, 0.22);
}

.software-system-requirements__matrix > :nth-child(-n + 6) {
    border-top: 0;
}

.software-system-requirements__matrix > :nth-child(6n) {
    border-right: 0;
}

#overview,
#features,
#system-requirements,
#introduction,
#faq {
    scroll-margin-top: calc(148px + var(--software-overview-cta-height, 0px));
}

.software-system-requirement__title {
    margin: 0;
    color: var(--primary-deep);
    font-size: .94rem;
    font-weight: 800;
    background: rgba(19, 128, 107, 0.08);
}

.software-system-requirement__content {
    margin: 0;
    color: #334155;
    line-height: 1.45;
    white-space: pre-wrap;
    background: rgba(255, 255, 255, 0.88);
}

.software-requirement-matrix {
    display: grid;
    grid-template-columns: repeat(3, minmax(104px, max-content) minmax(0, 1fr));
    grid-auto-rows: min-content;
}

.software-requirement-matrix__label,
.software-requirement-matrix__value {
    min-height: 0;
    padding: 6px 10px;
    border-top: 1px solid rgba(148, 163, 184, 0.22);
    border-right: 1px solid rgba(148, 163, 184, 0.22);
    line-height: 1.45;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
}

.software-requirement-matrix > :nth-child(-n + 6) {
    border-top: 0;
}

.software-requirement-matrix > :nth-child(6n) {
    border-right: 0;
}

.software-requirement-matrix__label {
    color: var(--primary-deep);
    font-weight: 800;
    background: rgba(19, 128, 107, 0.08);
}

.software-requirement-matrix__value {
    color: #334155;
    background: rgba(255, 255, 255, 0.9);
}

.software-list-hero {
    padding: 34px 36px;
    background:
        radial-gradient(circle at top left, rgba(22, 148, 162, 0.12), transparent 34%),
        linear-gradient(135deg, #ffffff 0%, #f5fafc 58%, #eef7fb 100%);
}

.software-list-hero__meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    max-width: 760px;
    margin-top: 22px;
}

.software-list-hero__item {
    display: grid;
    gap: 4px;
    padding: 14px 16px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(15, 58, 83, 0.08);
}

.software-list-hero__value {
    color: var(--primary-deep);
    font-size: 1.18rem;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.software-list-hero__label {
    color: var(--muted);
    font-size: .9rem;
}

.software-list-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.software-list-card {
    display: grid;
    gap: 14px;
    padding: 26px 24px;
    background:
        radial-gradient(circle at top left, rgba(22, 148, 162, 0.1), transparent 36%),
        linear-gradient(180deg, #ffffff 0%, #f9fbfd 100%);
    border: 1px solid var(--line-soft);
    box-shadow: var(--shadow-sm);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.software-list-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
    border-color: #d7e6f7;
}

.software-list-card__eyebrow {
    color: var(--secondary);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.software-list-card__title {
    margin: 0;
    font-size: 1.55rem;
    line-height: 1.1;
    letter-spacing: -0.03em;
}

.software-list-card__summary {
    margin: 0;
    color: var(--muted);
    line-height: 1.82;
}

.software-list-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 8px;
}

.software-detail-hero {
    padding: 34px 36px;
    background:
        radial-gradient(circle at top left, rgba(22, 148, 162, 0.12), transparent 34%),
        linear-gradient(135deg, #ffffff 0%, #f5fafc 58%, #eef7fb 100%);
}

.software-detail-panel {
    display: grid;
    gap: 18px;
}

.software-detail-meta {
    display: grid;
    gap: 10px;
    color: var(--muted);
    line-height: 1.8;
}

.software-detail-meta p {
    margin: 0;
}

.software-detail-original-price {
    margin-left: 10px;
    color: #94a3b8;
}

.faq-accordion {
    display: grid;
    gap: 14px;
}

.faq-accordion-item {
    background: var(--surface);
    border: 1px solid var(--line-soft);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.faq-accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    list-style: none;
    padding: 20px 24px;
    cursor: pointer;
    color: var(--text);
    font-weight: 800;
}

.faq-accordion-trigger::-webkit-details-marker {
    display: none;
}

.faq-accordion-icon {
    flex: 0 0 auto;
    font-size: 1.4rem;
    line-height: 1;
    color: var(--muted-2);
}

.faq-accordion-item[open] .faq-accordion-icon {
    transform: rotate(45deg);
}

.faq-accordion-panel {
    border-top: 1px solid var(--line-soft);
}

.faq-accordion-content {
    padding: 20px 24px 24px 24px;
}

.buy-product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

.buy-product-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: 1px solid var(--line-soft);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: box-shadow .18s ease, border-color .18s ease;
}

.buy-product-card:hover {
    box-shadow: var(--shadow-md);
    border-color: #d7e6f7;
}

.buy-product-card__image-wrap {
    aspect-ratio: 16 / 9;
    background: #f8fafc;
}

.buy-product-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.buy-product-card__image--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    height: 100%;
}

.buy-product-card__body {
    padding: 20px;
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 12px;
}

.buy-product-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
    color: #64748b;
}

.buy-product-card__type {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    background: rgba(19, 128, 107, 0.10);
    color: var(--primary);
    border: 1px solid rgba(19, 128, 107, 0.14);
    font-weight: 600;
}

.buy-product-card__code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.buy-product-card__title {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.35;
}

.buy-product-card__title-button,
.buy-product-card__bundle-name-button {
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.buy-product-card__title-button {
    color: #0f172a;
}

.buy-product-card__title-button:hover,
.buy-product-card__title-button:focus-visible,
.buy-product-card__bundle-name-button:hover,
.buy-product-card__bundle-name-button:focus-visible {
    color: var(--primary);
    text-decoration: underline;
}

.buy-product-card__summary {
    margin: 0;
    color: #475569;
    line-height: 1.7;
}

.buy-product-card__license {
    padding: 12px 14px;
    background: #f8fafc;
    color: #334155;
    line-height: 1.7;
}

.buy-product-card__bundle {
    padding: 14px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, rgba(241, 245, 249, 0.95) 100%);
}

.buy-product-card__bundle-title {
    font-size: 14px;
    font-weight: 800;
    color: #0f172a;
}

.buy-product-card__bundle-list {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.buy-product-card__bundle-item {
    padding-top: 10px;
    border-top: 1px dashed rgba(100, 116, 139, 0.35);
}

.buy-product-card__bundle-item:first-child {
    padding-top: 0;
    border-top: 0;
}

.buy-product-card__bundle-main {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.buy-product-card__bundle-name {
    font-weight: 700;
    color: #1e293b;
}

.buy-product-card__bundle-name-button {
    font-weight: 700;
    color: #1e293b;
}

.buy-product-card__bundle-qty {
    font-weight: 800;
    color: #1e293b;
    white-space: nowrap;
}

.buy-product-card__bundle-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-top: 4px;
    color: #64748b;
    font-size: 13px;
}

.buy-product-card__price {
    margin-top: auto;
}

.buy-product-card__price-original {
    color: #94a3b8;
    text-decoration: line-through;
    margin-bottom: 4px;
}

.buy-product-card__price-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.buy-product-card__price-current {
    font-size: 24px;
    font-weight: 800;
    color: #0f172a;
}

.buy-product-card__promotion {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(19, 128, 107, 0.1);
    color: #0f766e;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}

.buy-product-card__promotion--red {
    background: rgba(220, 38, 38, 0.1);
    color: #b91c1c;
}

.buy-product-card__promotion--yellow {
    background: rgba(234, 179, 8, 0.16);
    color: #854d0e;
}

.buy-product-card__promotion--green {
    background: rgba(22, 163, 74, 0.12);
    color: #15803d;
}

.buy-product-card__actions {
    display: flex;
    align-items: stretch;
    gap: 12px;
    margin-top: 8px;
}

.buy-product-card__actions form {
    margin: 0;
    width: 100%;
}

.buy-product-card__actions .btn {
    width: 100%;
}

.buy-product-card__actions .btn-outline {
    border-color: rgba(15, 23, 42, 0.18);
    background: rgba(255, 255, 255, 0.92);
    color: #0f172a;
}

.buy-product-card__actions .btn-outline:hover,
.buy-product-card__actions .btn-outline:focus-visible {
    border-color: rgba(15, 23, 42, 0.18);
    background: rgba(255, 255, 255, 0.92);
    color: #0f172a;
}

.buy-product-card__actions .btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, #13695f 100%);
    border-color: rgba(19, 128, 107, 0.18);
    box-shadow: 0 14px 28px rgba(15, 58, 83, 0.16);
}

.buy-product-card__actions .btn-primary:hover,
.buy-product-card__actions .btn-primary:focus-visible {
    background: linear-gradient(135deg, var(--primary) 0%, #13695f 100%);
}

.buy-product-card__stock {
    color: #16a34a;
    font-size: 14px;
    font-weight: 600;
}

.buy-product-card__notice {
    padding: 12px 14px;
    border: 1px solid #f59e0b;
    background: #fffbeb;
    color: #92400e;
}

.buy-product-card__notice-title {
    font-size: 14px;
    font-weight: 800;
}

.buy-product-card__notice-text {
    margin-top: 4px;
    font-size: 14px;
    font-weight: 600;
}

.buy-product-card__stock--out {
    color: #dc2626;
}

.software-product-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 12px;
}

.software-product-modal.hidden {
    display: none;
}

.software-product-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.52);
}

.software-product-modal__dialog {
    position: relative;
    width: min(100%, 920px);
    max-height: calc(100dvh - 40px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--line-soft);
    box-shadow: var(--shadow-md);
}

.software-product-modal__head,
.software-product-modal__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 24px;
    border-bottom: 1px solid var(--line-soft);
}

.software-product-modal__foot {
    border-bottom: 0;
    border-top: 1px solid var(--line-soft);
    justify-content: flex-end;
}

.software-product-modal__head h2 {
    margin: 0;
    font-size: 1.3rem;
    color: var(--primary-deep);
}

.software-product-modal__close {
    border: 0;
    background: none;
    font-size: 1.8rem;
    line-height: 1;
    color: #64748b;
    cursor: pointer;
}

.software-product-modal__body {
    padding: 24px;
    overflow: auto;
}

@media (max-width: 1100px) {
    .software-subnav__overview .software-subnav__label-short::before {
        content: "資訊";
    }

    .software-overview-hero {
        grid-template-columns: minmax(280px, 42%) minmax(0, 1fr);
        gap: 28px;
    }

    .software-list-grid,
    .buy-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .software-overview-detail-grid {
        grid-template-columns: 1fr;
        grid-template-areas:
            "features"
            "system"
            "introduction"
            "faq";
    }

    .software-overview-side.is-sticky {
        position: static;
    }
}

@media (min-width: 1101px) {
    .software-overview-sticky-cta.is-promo-visible + .page-section {
        padding-top: var(--software-overview-cta-height, 0px);
        transition: padding-top 180ms ease;
    }

    .software-overview-side.is-sticky {
        height: calc(100dvh - var(--software-overview-side-top, 148px) - var(--site-checkout-sticky-avoidance, 24px) - 24px);
        grid-template-rows: minmax(0, 8fr) minmax(0, 2fr);
    }

    .software-overview-side.is-sticky .software-overview-detail-card--system,
    .software-overview-side.is-sticky .software-overview-cta-panel {
        min-height: 0;
    }

    .software-overview-side.is-sticky .software-overview-cta-panel {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
        align-content: end;
    }
}

@media (min-width: 769px) and (max-width: 1100px) {
    .software-overview-sticky-cta {
        display: none;
    }

    .software-subnav__inner {
        flex-wrap: nowrap;
        gap: 8px;
        padding: 10px 14px;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .software-subnav a {
        flex: 0 0 auto;
        min-height: 36px;
        padding: 0 12px;
        white-space: nowrap;
    }

    .software-subnav__label-full {
        display: none;
    }

    .software-subnav__label-short {
        display: inline;
    }

    .software-subnav__overview .software-subnav__label-short::before {
        content: none;
    }

    .software-overview-hero {
        display: flex;
        flex-direction: column;
        padding: 30px 28px;
    }

    .software-overview-hero__content {
        min-height: 0;
        padding: 0;
    }

    .software-overview-hero__summary {
        max-width: none;
    }

    .software-overview-cta-panel {
        display: none;
    }

    .software-mobile-cta {
        position: sticky;
        top: 139px;
        z-index: 39;
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
        width: min(720px, calc(100% - 32px));
        max-height: 0;
        margin: 0 auto;
        padding: 0 12px;
        background: #0f3a53;
        color: #fff;
        box-shadow: 0 16px 34px rgba(15, 23, 42, 0.18);
        opacity: 0;
        overflow: hidden;
        pointer-events: none;
        transition: max-height 220ms ease, margin 220ms ease, padding 220ms ease, opacity 180ms ease, gap 220ms ease;
    }

    .software-mobile-cta__promo {
        color: #e6fffb;
        font-weight: 800;
        line-height: 1.35;
        text-align: center;
        text-decoration: none;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .software-mobile-cta__actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        pointer-events: none;
        transform: translateY(-4px);
        transition:
            max-height 220ms ease,
            opacity 180ms ease,
            transform 180ms ease;
    }

    .software-mobile-cta.is-promo-visible,
    .software-mobile-cta.is-visible {
        max-height: 240px;
        margin: -4px auto 18px;
        padding: 12px;
        opacity: 1;
        pointer-events: auto;
    }

    .software-mobile-cta.is-visible {
        gap: 10px;
    }

    .software-mobile-cta.is-visible .software-mobile-cta__actions {
        max-height: 60px;
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .software-mobile-cta .btn {
        box-shadow: none;
    }

    .software-mobile-cta .btn-primary {
        background: #1694a2;
        color: #fff;
    }

    .software-mobile-cta .btn-outline,
    .software-mobile-cta .btn-light {
        background: #fff;
        color: var(--text);
        border-color: transparent;
    }

    .software-buy-promo__inner {
        width: min(720px, calc(100% - 32px));
        max-width: calc(100% - 32px);
    }

    .software-buy-promo__text {
        max-width: 100%;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    #overview,
    #features,
    #system-requirements,
    #introduction,
    #faq {
        scroll-margin-top: calc(148px + var(--software-mobile-cta-height, 0px));
    }
}

@media (max-width: 768px) {
    .software-overview-sticky-cta {
        display: none;
    }

    .software-subnav {
        top: 81px;
        margin-bottom: 14px;
    }

    .software-subnav__inner {
        flex-wrap: nowrap;
        gap: 6px;
        width: 100%;
        padding: 10px 12px;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .software-subnav a {
        flex: 0 0 auto;
        min-height: 36px;
        padding: 0 12px;
        font-size: .92rem;
        white-space: nowrap;
    }

    .software-subnav__label-full {
        display: none;
    }

    .software-subnav__label-short {
        display: inline;
    }

    .software-subnav__trial,
    .software-subnav__download,
    .software-subnav__introduction,
    .software-subnav__buy {
        display: none !important;
    }

    .software-subnav__overview .software-subnav__label-short {
        font-size: 0;
    }

    .software-subnav__overview .software-subnav__label-short::before {
        content: "資訊";
        font-size: .92rem;
    }

    .software-overview-hero {
        display: flex;
        flex-direction: column;
        padding: 24px 22px;
        gap: 20px;
    }

    .software-overview-hero__content {
        display: contents;
    }

    .software-overview-hero__title {
        order: 1;
    }

    .software-overview-hero__media {
        order: 2;
    }

    .software-overview-hero__summary {
        order: 3;
    }

    .software-overview-hero__actions {
        order: 4;
        width: 100%;
    }

    .software-overview-detail-card,
    .software-overview-section {
        padding: 0;
    }

    .software-overview-detail-card__header,
    .software-overview-section__header {
        padding: 18px 20px;
    }

    .software-overview-detail-card__body,
    .software-overview-section__body {
        padding: 20px;
    }

    .software-feature-list {
        grid-template-columns: 1fr;
    }

    .software-overview-detail-card--system,
    .software-overview-detail-card--system .software-overview-detail-card__body {
        height: auto !important;
        max-height: none !important;
        overflow: visible;
    }

    .software-overview-cta-panel {
        display: none;
    }

    .software-mobile-cta {
        position: sticky;
        top: 137px;
        z-index: 39;
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
        width: min(100% - 24px, 520px);
        max-height: 0;
        margin: 0 auto;
        padding: 0 12px;
        background: #0f3a53;
        color: #fff;
        box-shadow: 0 16px 34px rgba(15, 23, 42, 0.18);
        opacity: 0;
        overflow: hidden;
        pointer-events: none;
        transition: max-height 220ms ease, margin 220ms ease, padding 220ms ease, opacity 180ms ease, gap 220ms ease;
    }

    .software-mobile-cta__promo {
        color: #e6fffb;
        font-weight: 800;
        line-height: 1.35;
        text-align: center;
        text-decoration: none;
        overflow: hidden;
        overflow-wrap: anywhere;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .software-mobile-cta__actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        pointer-events: none;
        transform: translateY(-4px);
        transition:
            max-height 220ms ease,
            opacity 180ms ease,
            transform 180ms ease;
    }

    .software-mobile-cta.is-promo-visible,
    .software-mobile-cta.is-visible {
        max-height: 220px;
        margin: -2px auto 16px;
        padding: 12px;
        opacity: 1;
        pointer-events: auto;
    }

    .software-mobile-cta.is-visible {
        gap: 10px;
    }

    .software-mobile-cta.is-visible .software-mobile-cta__actions {
        max-height: 64px;
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .software-buy-promo {
        padding: 10px 0;
    }

    .software-buy-promo__inner {
        width: min(100% - 24px, 520px);
        max-width: calc(100% - 24px);
    }

    .software-buy-promo__text {
        max-width: 100%;
        font-size: .92rem;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .software-mobile-cta .btn {
        min-height: 44px;
        padding: 0 12px;
        box-shadow: none;
    }

    .software-mobile-cta .btn-primary {
        background: #1694a2;
        color: #fff;
    }

    .software-mobile-cta .btn-outline,
    .software-mobile-cta .btn-light {
        background: #fff;
        color: var(--text);
        border-color: transparent;
    }

    .software-system-requirements__matrix,
    .software-requirement-matrix {
        grid-template-columns: minmax(96px, .46fr) minmax(0, 1fr);
    }

    .software-system-requirement__title,
    .software-system-requirement__content,
    .software-requirement-matrix__label,
    .software-requirement-matrix__value {
        border-right: 0;
    }

    .software-system-requirements__matrix > :nth-child(-n + 6) {
        border-top: 1px solid rgba(148, 163, 184, 0.22);
    }

    .software-requirement-matrix > :nth-child(-n + 6) {
        border-top: 1px solid rgba(148, 163, 184, 0.22);
    }

    .software-system-requirements__matrix > :nth-child(-n + 2),
    .software-requirement-matrix > :nth-child(-n + 2) {
        border-top: 0;
    }

    .software-detail-hero {
        padding: 24px 22px;
    }

    .software-list-hero {
        padding: 24px 22px;
    }

    .software-list-hero__meta {
        grid-template-columns: 1fr;
    }

    .software-list-grid,
    .buy-product-grid,
    .software-overview-detail-grid {
        grid-template-columns: 1fr;
    }

    #overview,
    #features,
    #system-requirements,
    #introduction,
    #faq {
        scroll-margin-top: calc(142px + var(--software-mobile-cta-height, 0px));
    }
}
