.eb-software-catalog-page { color: var(--eb-text); max-width: 1280px; margin: 0 auto; padding: 12px 0 32px; }
.eb-software-catalog-page * { box-sizing: border-box; }
.eb-software-catalog-page__search { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(0, 2fr); gap: 20px; align-items: center; padding: 22px; margin: 0 0 24px; border: 1px solid var(--eb-border); border-radius: 16px; background: var(--eb-surface); }
.eb-software-catalog-page__search label { color: var(--eb-text); font-weight: 600; }
.eb-software-catalog-page__search label span { display: block; margin-top: 4px; color: var(--eb-text-muted); font-size: 13px; font-weight: 400; }
.eb-software-catalog-page__search > div { display: grid; grid-template-columns: minmax(0, 1fr) max-content; gap: 10px; min-width: 0; }
.eb-software-catalog-page__search input[type=search] { width: 100%; min-width: 0; min-height: 46px; padding: 10px 14px; border: 1px solid var(--eb-border); border-radius: 10px; color: var(--eb-text); background: var(--eb-surface); font: inherit; }
.eb-software-catalog-page__search button { min-height: 46px; padding: 10px 20px; border: 0; border-radius: 10px; color: var(--eb-text-on-dark); background: var(--eb-brand-primary); font: inherit; font-weight: 600; cursor: pointer; }
.eb-software-catalog-page__search button:hover { background: var(--eb-brand-primary-hover); }
.eb-software-catalog-page__search button:active { background: var(--eb-brand-dark); }
.eb-software-catalog-page__search button:disabled { background: var(--eb-border); color: var(--eb-text-muted); cursor: wait; }
.eb-software-catalog-page__results { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; color: var(--eb-text-muted); margin-bottom: 24px; }
@media (max-width: 620px) { .eb-software-catalog-page__search { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 18px; } }
.eb-software-catalog-page__hero { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: clamp(24px, 5vw, 56px); margin-bottom: 32px; border-radius: 24px; background: linear-gradient(120deg, var(--eb-brand-dark), var(--eb-brand-primary)); color: var(--eb-text-on-dark); }
.eb-software-catalog-page__hero > div:first-child { max-width: 760px; }
.eb-software-catalog-page__hero--shared { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 420px); align-items: center; }
.eb-software-catalog-page__featured { min-width: 0; }
.eb-software-catalog-page__featured-label { margin: 0 0 12px; color: var(--eb-brand-cyan); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.eb-software-catalog-page__featured .eb-software-catalog__visual { height: 140px; }
.eb-software-catalog-page__featured .eb-software-catalog__image { max-height: 100px; }
.eb-software-catalog-page__featured .eb-software-catalog__content > p { color: var(--eb-text-muted); }
.eb-software-catalog-page__other-title { margin: 0 0 20px; color: var(--eb-text); font-size: 24px; }
@media (max-width: 800px) { .eb-software-catalog-page__hero--shared { grid-template-columns: minmax(0, 1fr); } .eb-software-catalog-page__featured { width: 100%; } }
.eb-software-catalog-page__eyebrow { margin: 0 0 14px; color: var(--eb-brand-cyan); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.eb-software-catalog-page__hero h2 { margin: 0 0 16px; color: var(--eb-text-on-dark); font-size: clamp(28px, 4vw, 44px); line-height: 1.15; letter-spacing: -.025em; }
.eb-software-catalog-page__hero div > p:last-child { margin-bottom: 0; line-height: 1.65; color: var(--eb-dark-text-muted); }
.eb-software-catalog-page__count { flex: none; display: grid; gap: 8px; text-align: center; padding: 22px; border: 1px solid var(--eb-dark-border); border-radius: 16px; background: var(--eb-dark-surface); }
.eb-software-catalog-page__count strong { font-size: 42px; line-height: 1; color: var(--eb-brand-cyan); }
.eb-software-catalog-page__count span { font-size: 13px; color: var(--eb-dark-text-muted); }
.eb-software-catalog-page__demo, .eb-software-catalog-page__empty { padding: 16px 20px; border-radius: 12px; background: var(--eb-surface-selected); color: var(--eb-text); line-height: 1.6; }
.eb-software-catalog { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.eb-software-catalog__item { overflow: hidden; min-width: 0; border: 1px solid var(--eb-border); border-radius: 20px; background: var(--eb-surface); }
.eb-software-catalog__visual { position: relative; display: grid; place-items: center; height: 200px; padding: 24px; border-bottom: 1px solid var(--eb-border); background: linear-gradient(135deg, var(--eb-page-bg), var(--eb-surface-selected)); }
.eb-software-catalog__image { display: block; width: 100%; height: 100%; max-height: 150px; object-fit: contain; }
.eb-software-catalog__monogram { display: grid; place-items: center; width: 84px; height: 84px; border-radius: 24px; background: var(--eb-brand-primary); color: var(--eb-text-on-dark); font-size: 30px; font-weight: 700; }
.eb-software-catalog__version { position: absolute; right: 14px; bottom: 12px; padding: 4px 10px; border: 1px solid var(--eb-border); border-radius: 999px; color: var(--eb-text-muted); background: var(--eb-surface); font-size: 12px; }
.eb-software-catalog__content { padding: 24px; }
.eb-software-catalog__content h3 { margin: 0 0 12px; color: var(--eb-text); font-size: 22px; line-height: 1.3; overflow-wrap: anywhere; }
.eb-software-catalog__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.eb-software-catalog__tags span { padding: 4px 10px; border-radius: 999px; color: var(--eb-brand-primary); background: var(--eb-surface-selected); font-size: 12px; font-weight: 600; }
.eb-software-catalog__description { margin: 0 0 20px; color: var(--eb-text-muted); font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.eb-software-catalog__details { margin: 10px 0; color: var(--eb-text); font-size: 13px; }
.eb-software-catalog__details summary { cursor: pointer; padding: 6px 0; color: var(--eb-brand-primary); font-weight: 600; }
.eb-software-catalog__details summary:hover { color: var(--eb-brand-primary-hover); }
.eb-software-catalog__details p { line-height: 1.65; overflow-wrap: anywhere; }
.eb-software-catalog__package { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin: 22px 0 16px; padding-top: 16px; border-top: 1px solid var(--eb-border); color: var(--eb-text-muted); font-size: 12px; }
.eb-software-catalog__download form { display: grid; gap: 12px; margin: 0; }
.eb-software-catalog__download label { display: grid; gap: 6px; color: var(--eb-text); font-size: 13px; }
.eb-software-catalog__download input { min-height: 44px; width: 100%; padding: 10px 12px; border: 1px solid var(--eb-border); border-radius: 10px; color: var(--eb-text); background: var(--eb-surface); font: inherit; }
.eb-software-catalog__download button, .eb-software-catalog__signin { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 46px; padding: 12px 16px; border: 0; border-radius: 10px; background: var(--eb-brand-primary); color: var(--eb-text-on-dark); font: inherit; font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer; }
.eb-software-catalog__download button:hover, .eb-software-catalog__signin:hover { background: var(--eb-brand-primary-hover); color: var(--eb-text-on-dark); }
.eb-software-catalog__download button:active, .eb-software-catalog__signin:active { background: var(--eb-brand-dark); }
.eb-software-catalog__download button:disabled { cursor: wait; background: var(--eb-border); color: var(--eb-text-muted); }
.eb-software-catalog__technical { margin: 14px 0 0; }
.eb-software-catalog__technical summary { color: var(--eb-text-muted); font-size: 12px; font-weight: 400; }
.eb-software-catalog__checksum code { overflow-wrap: anywhere; font-size: 11px; }
.eb-software-catalog-page :focus-visible { outline: 3px solid var(--eb-focus-ring); outline-offset: 3px; }
.eb-software-catalog__pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px; margin-top: 32px; color: var(--eb-text-muted); font-size: 14px; }
.eb-software-catalog-page a:not(.eb-software-catalog__signin) { color: var(--eb-brand-primary); }
.eb-software-catalog__pagination a { padding: 10px 16px; border: 1px solid var(--eb-border); border-radius: 10px; background: var(--eb-surface); text-decoration: none; }
.eb-software-catalog__pagination a:hover { background: var(--eb-surface-selected); }
@media (max-width: 1000px) { .eb-software-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .eb-software-catalog-page__hero { align-items: start; flex-direction: column; gap: 24px; border-radius: 18px; } .eb-software-catalog-page__count { display: flex; align-items: center; gap: 12px; padding: 12px 18px; } .eb-software-catalog-page__count strong { font-size: 28px; } .eb-software-catalog { grid-template-columns: minmax(0, 1fr); gap: 20px; } .eb-software-catalog__content { padding: 20px; } }

/* Action labels must not inherit the shell's arbitrary word breaking. */
.eb-software-catalog-page__search button,
.eb-software-catalog__download button,
.eb-software-catalog__signin {
    width: auto;
    max-width: 100%;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
    line-height: 1.4;
    flex-shrink: 0;
}
.eb-software-catalog__download button,
.eb-software-catalog__signin { width: 100%; }
.eb-software-catalog__download button > span { flex: none; }
@media (max-width: 400px) {
    .eb-software-catalog-page__search > div { grid-template-columns: minmax(0, 1fr); }
    .eb-software-catalog-page__search button { justify-self: start; }
    .eb-software-catalog__download button,
    .eb-software-catalog__signin { white-space: normal; }
}

/* The platform shell supplies page spacing; public download pages retain
   their existing presentation. Keep action-label word-breaking safeguards. */
.eb-mod2 .eb-software-catalog-page { width: 100%; min-width: 0; max-width: none; margin: 0; padding: 0; font-family: Inter, system-ui, sans-serif; }
.eb-mod2 .eb-software-catalog-page__hero { min-width: 0; gap: 18px; padding: 20px; margin-bottom: 16px; border-radius: 12px; }
.eb-mod2 .eb-software-catalog-page__hero--shared { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.eb-mod2 .eb-software-catalog-page__hero > div:first-child { min-width: 0; max-width: none; }
.eb-mod2 .eb-software-catalog-page__eyebrow { margin-bottom: 10px; }
.eb-mod2 .eb-software-catalog-page__hero h2 { margin-bottom: 10px; font-size: clamp(26px, 2.6vw, 36px); }
.eb-mod2 .eb-software-catalog-page__hero div > p:last-child { line-height: 1.5; }
.eb-mod2 .eb-software-catalog-page__count { padding: 14px; border-radius: 10px; }
.eb-mod2 .eb-software-catalog-page__count strong { font-size: 32px; }
.eb-mod2 .eb-software-catalog-page__search { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 16px; padding: 16px; margin-bottom: 16px; border-radius: 12px; }
.eb-mod2 .eb-software-catalog-page__results { gap: 10px; margin-bottom: 16px; }
.eb-mod2 .eb-software-catalog { grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 16px; }
.eb-mod2 .eb-software-catalog__item { border-radius: 12px; }
.eb-mod2 .eb-software-catalog__visual { height: 160px; padding: 18px; }
.eb-mod2 .eb-software-catalog__image { max-height: 125px; object-fit: contain; }
.eb-mod2 .eb-software-catalog-page__featured .eb-software-catalog__visual { height: 130px; }
.eb-mod2 .eb-software-catalog-page__featured .eb-software-catalog__image { max-height: 100px; }
.eb-mod2 .eb-software-catalog__content { padding: 16px; }
.eb-mod2 .eb-software-catalog__content h3 { margin-bottom: 10px; font-size: 21px; }
.eb-mod2 .eb-software-catalog__tags { margin-bottom: 12px; }
.eb-mod2 .eb-software-catalog__description { margin-bottom: 14px; line-height: 1.55; }
.eb-mod2 .eb-software-catalog__package { margin: 16px 0 12px; padding-top: 12px; }
.eb-mod2 .eb-software-catalog__download input { min-width: 0; }
.eb-mod2 .eb-software-catalog__pagination { gap: 10px; margin-top: 18px; }
@media (max-width: 1000px) {
    .eb-mod2 .eb-software-catalog-page__hero--shared { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 620px) {
    .eb-mod2 .eb-software-catalog-page__hero, .eb-mod2 .eb-software-catalog-page__search { padding: 14px; }
    .eb-mod2 .eb-software-catalog-page__search { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .eb-mod2 .eb-software-catalog__content { padding: 14px; }
}
