/* An Phat software catalogue — isolated component styles, no external dependencies. */
.software-site{--sw-ink:#172f49;--sw-muted:#607084;--sw-border:#e1e7ee;--sw-red:#d72b36;--sw-blue:#1461bd;background:#f7f9fc;color:var(--sw-ink)}
.sw-main{padding-bottom:44px}.sw-wrap{max-width:1340px}.sw-main [hidden]{display:none!important}.sw-main :focus-visible{outline:3px solid #2274d5;outline-offset:4px}.sw-main .icon{width:20px;height:20px;flex-shrink:0}.sw-main h1,.sw-main h2,.sw-main h3{letter-spacing:-.035em;line-height:1.24;color:var(--sw-ink)}.sw-main p{line-height:1.7}.sw-breadcrumb{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;margin:24px 0;color:var(--sw-muted)}.sw-breadcrumb a{color:var(--sw-muted)}.sw-breadcrumb [aria-current]{max-width:600px}.sw-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.13em;color:#60778c;line-height:1.6}.sw-hero{display:grid;grid-template-columns:1.35fr 1fr;gap:56px;padding:42px 46px;background:white;border:1px solid var(--sw-border);border-radius:24px;position:relative;overflow:hidden}.sw-hero-copy h1{font-size:clamp(34px,4.1vw,58px);font-weight:850;margin:18px 0 20px}.sw-hero-copy h1 em{font-style:normal;color:var(--sw-blue)}.sw-hero-copy>p{font-size:16px;max-width:650px;color:var(--sw-muted)}.sw-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.sw-main .btn{display:inline-flex;justify-content:center;align-items:center;gap:9px;font-size:13px;border-radius:9px;min-height:46px;line-height:1.4;padding:12px 19px;background:var(--sw-red);border:1px solid var(--sw-red);color:white;box-shadow:none;cursor:pointer;transition:background .18s,transform .18s}.sw-main .btn:hover{background:#b81e2b;transform:translateY(-1px)}.sw-main .btn-ghost{background:white;border-color:#d8e1eb;color:var(--sw-ink)}.sw-main .btn-ghost:hover{background:#f0f5fb}.sw-hero-audiences{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;font-weight:700;color:#65778c;margin-top:24px}.sw-hero-audiences span:before{content:'•';margin-right:7px;color:#d72b36}.sw-hero-aside{border:1px solid #dbe9f6;border-radius:17px;padding:23px 26px;background:linear-gradient(130deg,#edf6ff,#fbfdff 70%);position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;overflow:hidden}.sw-hero-aside:after{content:'';position:absolute;right:-85px;top:60px;width:230px;height:230px;border:38px solid #d9eafa55;border-radius:50%;pointer-events:none}.sw-brand-logos{display:flex;align-items:center;gap:20px;height:72px;position:relative;z-index:1}.sw-brand-logos img{max-height:62px;width:auto;object-fit:contain}.sw-hero-aside-label{font-size:9px;letter-spacing:.13em;font-weight:750;color:#6f7f90;margin:20px 0 12px}.sw-hero-aside>strong{font-size:34px;letter-spacing:-.04em;font-weight:800;position:relative;z-index:1}.sw-hero-aside>strong span{color:#99adbf;font-weight:400;padding:0 6px}.sw-hero-aside>p{font-size:13px;color:#62778d;max-width:330px;margin:9px 0 20px;position:relative;z-index:1}.sw-vat{position:relative;z-index:1;padding-top:17px;border-top:1px solid #d3e3f2;width:100%;display:flex;flex-direction:column;gap:7px;font-size:11px;color:#566f87}.sw-vat span:first-child{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:var(--sw-blue)}.sw-assurance{display:flex;gap:22px;justify-content:space-around;padding:23px 12px;color:#556b82;font-size:12px;border-bottom:1px solid var(--sw-border)}.sw-assurance span{display:flex;align-items:center;gap:9px}.sw-assurance .icon{color:#2771ba}.sw-catalog{padding-top:44px;scroll-margin-top:180px}.sw-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.sw-section-heading h2{font-size:27px;margin:5px 0 0}.sw-section-heading>span,.sw-section-heading>a{font-size:12px;color:var(--sw-muted);white-space:nowrap}.sw-category-tabs{display:flex;flex-wrap:wrap;gap:9px;margin:24px 0 20px}.sw-category-tabs a{display:flex;align-items:center;gap:10px;border:1px solid var(--sw-border);border-radius:8px;background:white;padding:10px 13px;font-size:12px;font-weight:650;color:#4c6278;white-space:nowrap}.sw-category-tabs a[aria-current]{background:var(--sw-ink);border-color:var(--sw-ink);color:white}.sw-category-tabs a span{font-size:10px;background:#edf2f7;color:#5b728a;padding:2px 5px;border-radius:4px}.sw-category-tabs a[aria-current] span{background:#ffffff24;color:white}.sw-filters{display:grid;grid-template-columns:minmax(220px,1.8fr) 1fr 1fr auto;gap:14px;align-items:end;padding:18px 20px;background:#fff;border:1px solid var(--sw-border);border-radius:12px}.sw-filters label{display:block;min-width:0}.sw-filters label>span{display:block;font-size:11px;font-weight:700;margin-bottom:7px;color:#597089}.sw-filters input,.sw-filters select{font:inherit;width:100%;height:43px;min-width:0;border:1px solid #dbe3ec;border-radius:7px;background:#fafdff;padding:10px 12px;font-size:13px;color:var(--sw-ink)}.sw-reset{height:43px;border:1px solid #d8e2ed;background:white;border-radius:7px;padding:8px 15px;font-size:12px;cursor:pointer;color:#5a6f85}.sw-catalog-note{font-size:11px;color:#65778b;margin:14px 0 19px}.sw-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}.sw-card{display:flex;flex-direction:column;background:white;border:1px solid var(--sw-border);border-radius:15px;overflow:hidden;box-shadow:0 3px 14px #172f4904;transition:border-color .2s,box-shadow .2s;min-width:0}.sw-card:hover{border-color:#b9cce1;box-shadow:0 10px 26px #17324d0c}.sw-card-image-link{display:block;padding:12px 12px 0;text-decoration:none}.sw-cover{position:relative;isolation:isolate;min-height:230px;overflow:hidden;border-radius:10px;display:flex;flex-direction:column;align-items:flex-start;padding:24px 25px;color:#164f94;background:linear-gradient(130deg,#f1f7ff,#dfedff)}.sw-cover:before{content:'';position:absolute;z-index:-1;right:-34px;top:36px;width:165px;height:165px;border:26px solid currentColor;border-radius:35px;transform:rotate(-19deg);opacity:.04}.sw-cover-office{background:linear-gradient(130deg,#fff6f2,#fce4db);color:#a8451e}.sw-cover-microsoft-365{background:linear-gradient(130deg,#f6f4ff,#e6e1ff);color:#6542b6}.sw-cover-bao-mat{background:linear-gradient(130deg,#f0f9f6,#d8efe6);color:#247467}.sw-cover-server{background:linear-gradient(130deg,#eef3f8,#dbe7f2);color:#345875}.sw-cover-khac{background:linear-gradient(130deg,#f4f5f8,#e2e7ec);color:#576a7e}.sw-cover-brand{font-size:11px;font-weight:800;letter-spacing:.05em}.sw-cover-icon{position:absolute;right:22px;top:22px;border:1px solid #ffffffad;background:#ffffff57;border-radius:11px;padding:10px;display:flex}.sw-cover-icon .icon{width:29px;height:29px}.sw-cover strong{max-width:86%;font-size:27px;line-height:1.22;letter-spacing:-.04em;margin-top:28px;font-weight:800;overflow-wrap:anywhere}.sw-cover-license{font-size:11px;font-weight:650;margin-top:8px}.sw-cover-caption{font-size:8px;font-weight:700;letter-spacing:.11em;opacity:.62;margin-top:auto;padding-top:18px}.sw-card-body{padding:20px 23px 22px;display:flex;flex:1;flex-direction:column}.sw-card-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#76889b;font-size:10px}.sw-badge{padding:3px 6px;color:#1c6b55;background:#edf7f0;border-radius:4px;font-size:9px;font-weight:700}.sw-card h3{font-size:18px;font-weight:780;margin:13px 0 10px;min-height:46px;overflow-wrap:anywhere}.sw-card h3 a{color:var(--sw-ink)}.sw-card-summary{font-size:12px;color:#63768a;margin:0 0 17px!important;line-height:1.6!important}.sw-card-meta{display:grid;gap:8px;font-size:10px;color:#6c7f91;margin-top:auto;padding-top:8px}.sw-card-meta>span{display:flex;align-items:center;gap:8px;line-height:1.5}.sw-card-meta .icon{width:15px;height:15px;color:#7590aa}.sw-card-bottom{display:flex;gap:8px;align-items:center;justify-content:space-between;border-top:1px solid #edf1f6;margin:20px 0 15px;padding-top:17px;font-size:12px}.sw-card-bottom>strong{color:#b92b37;font-size:15px}.sw-card-bottom>a{display:flex;align-items:center;gap:3px;color:#2b659f;font-size:11px}.sw-card-bottom .icon{width:14px;height:14px}.sw-main .sw-card-cta{width:100%;background:#f4f7fb;color:#244b71;border-color:#dce5ef;font-size:12px;min-height:41px;padding:9px 14px}.sw-main .sw-card-cta:hover{background:#eaf1f9}.sw-main .sw-card-cta .icon{width:15px;height:15px}.sw-product-image{height:230px;background:#fff;display:flex;align-items:center;justify-content:center;border-radius:10px;overflow:hidden}.sw-product-image img{width:100%;height:100%;object-fit:contain}.sw-empty{padding:45px;background:white;border:1px dashed #b8c8da;border-radius:12px;text-align:center;color:#647c91}.sw-combo-strip{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:44px 0;padding:33px 37px;background:#17324d;border-radius:17px;color:#dce7f3}.sw-combo-strip h2{color:white;margin:7px 0 10px;font-size:27px}.sw-combo-strip .sw-eyebrow{color:#aabed2}.sw-combo-strip p{font-size:13px;margin:0;max-width:690px;color:#b9cadd}.sw-combo-strip>.btn{flex-shrink:0}.sw-panel{background:white;border:1px solid var(--sw-border);border-radius:15px;padding:29px 32px;scroll-margin-top:180px}.sw-faq{margin:34px 0 22px}.sw-faq details{border-top:1px solid #e8edf2}.sw-faq summary{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer;padding:20px 0;font-size:14px;font-weight:700;list-style:none;line-height:1.6}.sw-faq summary::-webkit-details-marker{display:none}.sw-faq summary .icon{width:17px;height:17px;color:#6b869e;transition:transform .15s}.sw-faq details[open] summary .icon{transform:rotate(180deg)}.sw-faq details>div{font-size:13px;color:#607489;max-width:1000px;padding:0 28px 15px 0}.sw-faq details p{margin:0 0 10px}.sw-faq .sw-section-heading h2{font-size:23px}.sw-fineprint{font-size:11px;color:#7b8ca0}.sw-fineprint a{color:#385e84}.sw-detail-top{display:grid;grid-template-columns:.86fr 1.14fr;gap:45px;padding:36px;background:white;border:1px solid var(--sw-border);border-radius:20px}.sw-detail-visual{min-width:0}.sw-cover-large{min-height:370px;padding:34px 31px}.sw-cover-large strong{font-size:44px;margin-top:77px}.sw-cover-large .sw-cover-brand{font-size:15px}.sw-cover-large .sw-cover-icon{top:35px;right:30px;padding:15px}.sw-cover-large .sw-cover-icon .icon{width:44px;height:44px}.sw-cover-large .sw-cover-license{font-size:13px}.sw-cover-large:before{width:270px;height:270px;border-width:43px;right:-60px;top:90px}.sw-product-image-large{height:370px;border:1px solid var(--sw-border)}.sw-image-caption{font-size:10px!important;color:#7b8a9b;text-align:center;padding:10px 15px}.sw-visual-brand{display:flex;align-items:center;justify-content:center;gap:15px;border-top:1px solid #e7edf3;padding:16px 5px}.sw-visual-brand img{width:51px;height:45px;object-fit:contain}.sw-visual-brand>span{font-size:10px;color:#738398}.sw-visual-brand strong{display:block;font-size:12px;color:var(--sw-ink);margin:2px 0}.sw-visual-brand small{display:block;font-size:10px}.sw-detail-intro h1{font-size:clamp(27px,3vw,37px);margin:14px 0;overflow-wrap:anywhere}.sw-detail-summary{font-size:14px;color:#677a8d;line-height:1.6!important}.sw-audience-chips{display:flex;flex-wrap:wrap;gap:6px;margin:19px 0}.sw-audience-chips span{font-size:10px;font-weight:650;color:#456c8d;background:#f0f5fa;border:1px solid #e1eaf2;padding:4px 8px;border-radius:5px}.sw-quick-specs{display:grid;gap:9px;margin:18px 0 20px;font-size:12px}.sw-quick-specs div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px;line-height:1.6}.sw-quick-specs dt{color:#6e8092}.sw-quick-specs dd{margin:0;font-weight:650;overflow-wrap:anywhere}.sw-price-panel{border-top:1px solid #e7edf3;padding-top:20px;margin-top:20px;display:flex;flex-direction:column;gap:6px}.sw-price-panel strong{font-size:24px;letter-spacing:-.04em;color:#be2a37}.sw-price-panel span{font-size:11px;color:#6d8092}.sw-detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.sw-detail-benefits{display:flex;gap:13px;flex-wrap:wrap;font-size:10px;color:#6a8194}.sw-detail-benefits span{display:flex;align-items:center;gap:5px}.sw-detail-benefits .icon{width:15px;height:15px}.sw-note{padding:20px 25px;border:1px solid #ebdec1;border-left:4px solid #c9a55a;background:#fffbf2;border-radius:9px;margin:24px 0;color:#796743;font-size:13px}.sw-note strong{display:block;color:#685935;margin-bottom:5px}.sw-note p{margin:0!important;font-size:12px}.sw-detail-nav{display:flex;gap:23px;border-bottom:1px solid #d8e2ed;margin:28px 0 24px;padding:5px 0 15px;font-size:13px;font-weight:700;color:#55718c;overflow-x:auto;white-space:nowrap}.sw-detail-columns{display:grid;grid-template-columns:1.45fr 1fr;align-items:start;gap:25px}.sw-prose h2,.sw-spec-panel h2{font-size:22px;margin:8px 0 23px}.sw-prose h3{font-size:17px;line-height:1.5;margin:26px 0 10px}.sw-prose p,.sw-prose li{font-size:13px;color:#5c7388;line-height:1.85}.sw-prose ul{padding-left:20px;margin:14px 0}.sw-prose li{margin:8px 0}.sw-specs>div{padding:13px 0;border-bottom:1px solid #e9edf3;display:grid;grid-template-columns:100px 1fr;gap:12px;font-size:12px;line-height:1.65}.sw-specs dt{color:#74869a}.sw-specs dd{margin:0;font-weight:550;overflow-wrap:anywhere}.sw-text-link{font-size:12px;display:block;margin-top:22px;color:#2265a0}.sw-reference{padding:18px 8px}.sw-reference h2{font-size:17px}.sw-reference p{font-size:12px;color:#778799}.sw-reference a{display:inline-block;margin:4px 20px 4px 0;font-size:12px;color:#2361a0}.sw-updated{font-size:11px;color:#7c8ca0;padding:20px 8px;border-top:1px solid #e2e9f0;line-height:1.7}.sw-related{margin-top:37px}.sw-thumbnails{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.sw-thumbnails a{border:1px solid #dae4ee;border-radius:6px;overflow:hidden;background:white}.sw-thumbnails img{width:80px;height:64px;object-fit:contain}.rail-software,.software-nav-link{font-weight:750!important}.refined-ui .software-nav-link{color:#b82232!important}.software-catalog-link{padding:28px 32px;border:1px solid #d7e3f0;border-radius:14px;background:#f1f6fc;margin:24px 0}.software-catalog-link h2{margin:0 0 12px}.software-catalog-link p{max-width:720px}.audience-card-software{background:#f2f6fb!important;border-color:#c5d7e9!important}
@media(min-width:1500px){.sw-hero{gap:85px;padding:50px 58px}.sw-hero-aside{padding:27px 34px}.sw-card h3{font-size:19px}.sw-cover{min-height:246px}.sw-cover strong{font-size:30px}}
@media(max-width:1100px){.sw-hero{gap:25px;padding:32px}.sw-hero-aside>strong{font-size:29px}.sw-product-grid{gap:16px}.sw-card-body{padding:17px}.sw-cover{padding:20px;min-height:215px}.sw-cover strong{font-size:24px}.sw-detail-top{gap:27px;padding:27px}.sw-quick-specs div{grid-template-columns:120px 1fr}.sw-detail-columns{grid-template-columns:1.3fr 1fr;gap:18px}.sw-panel{padding:24px}.sw-combo-strip{padding:28px}.sw-cover-large{min-height:330px}.sw-cover-large strong{font-size:34px}.sw-main .btn{font-size:12px}.sw-card h3{font-size:16px}}
@media(max-width:850px){.sw-hero{grid-template-columns:1fr 1fr;padding:27px;gap:22px}.sw-hero-copy h1{font-size:36px}.sw-hero-copy>p{font-size:14px}.sw-hero-aside{padding:20px}.sw-hero-aside>strong{font-size:25px}.sw-brand-logos{gap:15px}.sw-brand-logos img{max-height:51px}.sw-hero-actions .btn{width:100%}.sw-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sw-filters{grid-template-columns:1fr 1fr;gap:12px}.sw-filters label:first-child{grid-column:1/-1}.sw-reset{grid-column:1/-1}.sw-assurance{flex-wrap:wrap;gap:12px;font-size:10px}.sw-combo-strip{align-items:flex-start;flex-direction:column}.sw-detail-top{grid-template-columns:1fr 1.1fr;gap:23px;padding:22px}.sw-detail-intro h1{font-size:27px}.sw-cover-large{min-height:330px}.sw-cover-large strong{font-size:29px;margin-top:62px}.sw-cover-large .sw-cover-icon{top:24px;right:20px;padding:9px}.sw-cover-large .sw-cover-icon .icon{width:25px;height:25px}.sw-cover-large .sw-cover-brand{font-size:12px}.sw-quick-specs div{grid-template-columns:1fr;gap:2px}.sw-detail-columns{grid-template-columns:1fr}.sw-detail-nav{gap:17px;font-size:12px}.sw-faq .sw-section-heading{display:block}.sw-faq .sw-section-heading>span{display:block;margin-top:12px}.sw-main .sw-card h3{font-size:18px}}
@media(max-width:580px){.sw-breadcrumb{font-size:10px;margin:18px 0;gap:6px}.sw-hero{display:flex;flex-direction:column;padding:25px 21px;gap:25px;border-radius:16px}.sw-hero-copy h1{font-size:38px;line-height:1.15;margin:17px 0}.sw-hero-copy>p{font-size:14px}.sw-hero-actions{gap:9px;margin-top:21px}.sw-hero-actions .btn{width:auto;flex:1;padding:11px 10px;font-size:11px}.sw-hero-audiences{gap:10px;font-size:9px;margin-top:19px}.sw-hero-aside{padding:20px 21px;min-height:0}.sw-brand-logos{height:48px}.sw-brand-logos img{max-height:44px}.sw-hero-aside-label{font-size:8px;margin:17px 0 7px}.sw-hero-aside>strong{font-size:32px}.sw-hero-aside>p{font-size:12px;margin-bottom:15px}.sw-vat{padding-top:13px}.sw-assurance{align-items:flex-start;justify-content:flex-start;gap:11px 18px;padding:20px 8px;font-size:10px}.sw-assurance .icon{width:16px;height:16px}.sw-catalog{padding-top:29px}.sw-section-heading h2{font-size:23px}.sw-section-heading{gap:10px;margin-bottom:18px}.sw-section-heading>span{font-size:10px}.sw-category-tabs{gap:7px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:7px;margin:20px 0 12px}.sw-category-tabs a{padding:9px 10px;font-size:11px}.sw-filters{padding:14px;gap:11px}.sw-filters input,.sw-filters select{font-size:12px;height:42px;padding:9px}.sw-reset{height:35px}.sw-catalog-note{font-size:10px;line-height:1.7!important}.sw-product-grid{grid-template-columns:1fr;gap:19px}.sw-card-image-link{padding:12px 12px 0}.sw-cover{min-height:230px;padding:23px 26px}.sw-cover strong{font-size:31px;max-width:84%;margin-top:35px}.sw-card-body{padding:21px 24px}.sw-main .sw-card h3{font-size:20px;margin:14px 0 12px;min-height:0}.sw-card-summary{font-size:13px}.sw-card-meta{font-size:11px}.sw-cover-caption{font-size:8px}.sw-card-bottom>strong{font-size:17px}.sw-card-bottom>a{font-size:12px}.sw-main .sw-card-cta{height:43px}.sw-combo-strip{padding:25px 23px;margin:31px 0;border-radius:13px;gap:22px}.sw-combo-strip h2{font-size:25px}.sw-combo-strip p{font-size:12px}.sw-combo-strip>.btn{width:100%}.sw-faq{padding:24px 20px}.sw-faq .sw-section-heading h2{font-size:22px}.sw-faq summary{font-size:13px;padding:18px 0}.sw-faq details>div{padding-right:7px;font-size:12px}.sw-detail-top{grid-template-columns:1fr;padding:20px;border-radius:15px;gap:23px}.sw-detail-intro h1{font-size:29px}.sw-detail-intro>.sw-eyebrow{font-size:10px}.sw-cover-large{min-height:330px;padding:27px}.sw-cover-large strong{font-size:36px;margin-top:64px}.sw-cover-large .sw-cover-brand{font-size:13px}.sw-cover-large .sw-cover-icon{padding:11px;right:24px;top:26px}.sw-cover-large .sw-cover-icon .icon{width:34px;height:34px}.sw-quick-specs div{grid-template-columns:115px 1fr;gap:9px}.sw-detail-summary{font-size:13px}.sw-detail-actions .btn{width:100%;font-size:13px}.sw-detail-benefits{font-size:9px;gap:9px}.sw-detail-columns{gap:16px}.sw-panel{padding:24px 20px}.sw-specs>div{font-size:12px;grid-template-columns:105px 1fr}.sw-note{padding:17px 19px;font-size:12px}.sw-note p{font-size:11px}.sw-related .sw-section-heading{flex-wrap:wrap}.sw-visual-brand{padding:12px 0}.sw-fineprint{font-size:10px}.sw-image-caption{margin:8px 0;padding:6px}.software-catalog-link{padding:22px}}
@media(prefers-reduced-motion:reduce){.sw-main *{scroll-behavior:auto!important;transition:none!important}}
.sw-icon-defs{position:absolute}.sw-service-callout{display:flex;align-items:center;justify-content:space-between;gap:22px;border:1px solid #d9e5f1;border-radius:12px;padding:25px 28px;margin-top:25px;background:#f2f7fd;color:#254d74}.sw-service-callout p{font-size:13px;line-height:1.7;margin:8px 0 0;color:#658097}.sw-service-callout strong{font-size:18px}.audience-software{border-color:#cadaeb!important;background:#f4f8fd!important}.sa-main-image>img{object-fit:contain}
@media(max-width:650px){.sw-service-callout{flex-direction:column;align-items:flex-start;padding:20px;margin-top:20px}.sw-service-callout strong{font-size:17px}.sw-service-callout p{font-size:12px}.sw-service-callout .btn{width:100%}}

/* v1.5.0 software catalog refinements */
.sw-featured{margin:1.2rem 0 2rem}
.sw-featured-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.sw-section-heading-tight{margin-top:1.2rem}
.sw-card{position:relative;overflow:hidden}
.sw-card-sku{padding:.35rem .65rem;border-radius:999px;background:rgba(23,50,77,.08);font-size:.72rem;font-weight:700;color:#30506d}
.sw-badge-hot{background:linear-gradient(135deg,#ff944d,#ff3d7a);box-shadow:0 10px 24px rgba(255,91,91,.24)}
.sw-card-featured{border-color:rgba(255,105,74,.35);box-shadow:0 20px 42px rgba(17,40,63,.14),0 0 0 1px rgba(255,130,72,.18) inset}
.sw-card-featured::before{content:"";position:absolute;inset:-2px;padding:2px;border-radius:calc(var(--radius-xl,24px) + 2px);background:linear-gradient(120deg,#ff7a18,#ffd000,#42e695,#3bb2ff,#9b5cff,#ff4d8d,#ff7a18);background-size:300% 300%;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.95;animation:swRgbFlow 10s linear infinite;pointer-events:none}
.sw-card-featured::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(255,124,53,.14),transparent 34%),radial-gradient(circle at bottom left,rgba(86,163,255,.16),transparent 32%);pointer-events:none}
@keyframes swRgbFlow{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.sw-card-price{display:flex;flex-direction:column;gap:.2rem}
.sw-card-price span{font-size:.76rem;font-weight:800;color:#ff6b36;letter-spacing:.02em;text-transform:uppercase}
.sw-card-price strong{font-size:1.18rem;line-height:1.15}
.sw-card-price small{font-size:.8rem;color:#5b6d80}
.sw-price-panel em{display:inline-flex;align-self:flex-start;margin-bottom:.4rem;padding:.3rem .7rem;border-radius:999px;background:rgba(255,107,54,.12);font-style:normal;font-weight:800;color:#cb4d00}
.sw-price-panel-hot{border-color:rgba(255,120,66,.22);box-shadow:0 18px 32px rgba(255,120,66,.12)}
.sw-detail-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.25rem 0 1.5rem}
.sw-mini-panel{padding:1rem 1.1rem;border:1px solid rgba(23,50,77,.09);border-radius:20px;background:linear-gradient(180deg,#fff,#f6f8fc)}
.sw-mini-panel span{display:block;font-size:.78rem;font-weight:800;letter-spacing:.06em;color:#6e8095;text-transform:uppercase;margin-bottom:.45rem}
.sw-mini-panel strong{display:block;font-size:1rem;line-height:1.45;color:#17324d}
.sw-mini-panel p{margin:.45rem 0 0;color:#506274;font-size:.93rem;line-height:1.62}
.sw-prose h2{margin-top:1.6rem}
.sw-prose ul li{margin-bottom:.45rem}
@media (max-width: 980px){.sw-featured-grid,.sw-detail-highlights{grid-template-columns:1fr}}

/* v1.5.1 — primary navigation is product detail, consultation is secondary. */
.sw-card-bottom{align-items:center;gap:14px;flex-wrap:wrap}
.sw-card-price{flex:1 1 140px;min-width:0}
.sw-card-price strong{font-size:22px;color:#af143b;letter-spacing:-.025em}
.sw-card-price small{font-size:11px;line-height:1.5}
.sw-main .sw-card-detail{position:relative;z-index:1;display:flex;width:100%;min-height:52px;padding:13px 16px;margin:0;gap:10px;border:1px solid #bc1940;border-radius:10px;background:#bc1940;color:#fff;font-size:15px;font-weight:800;line-height:1.45;text-align:center;text-decoration:none;box-shadow:0 5px 12px #bc194012;white-space:normal}
.sw-main .sw-card-detail:hover{background:#981330;border-color:#981330;color:#fff;box-shadow:0 7px 16px #98133020}
.sw-main .sw-card-detail .icon{width:19px;height:19px}
.sw-main .sw-card-consult{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:128px;min-height:44px;padding:10px 12px;border:1px solid #c5d4e3;border-radius:8px;background:#f4f8fc;color:#24486a;font:inherit;font-size:12px;font-weight:650;line-height:1.4;cursor:pointer;text-align:center}
.sw-main .sw-card-consult:hover{background:#e7f0f9;border-color:#819fbc;color:#143553}
.sw-main .sw-card-consult .icon{width:14px;height:14px}
.sw-main .sw-card-detail:focus-visible,.sw-main .sw-card-consult:focus-visible{outline:3px solid #155bb5;outline-offset:4px}
.sw-badge-hot{color:#fff;background:linear-gradient(120deg,#b72319,#b4144c);padding:5px 8px;font-size:10px}
.sw-card-summary{font-size:13px;line-height:1.75!important}
.sw-card-meta{font-size:11px;line-height:1.6}
.sw-detail-highlights{gap:18px}
.sw-mini-panel{padding:22px 24px;border-radius:16px}
.sw-mini-panel span{color:#4d6680;font-size:11px;letter-spacing:.09em}
.sw-mini-panel strong{font-size:17px;line-height:1.55}
.sw-mini-panel p{color:#4c6278;font-size:14px;line-height:1.8}
.sw-prose p,.sw-prose li{color:#435b72;font-size:14px;line-height:1.85}
.sw-prose h3{font-size:19px;color:#17324d;margin-top:30px}
.sw-reference a{padding:9px 0;font-size:13px}
@media(max-width:580px){
 .sw-main .sw-card-detail{min-height:52px;font-size:15px;padding:13px 12px}
 .sw-card-price strong{font-size:22px}
 .sw-card-bottom{gap:12px;margin-bottom:16px}
 .sw-mini-panel{padding:20px}
 .sw-mini-panel strong{font-size:17px}
 .sw-mini-panel p{font-size:14px}
 .sw-main .sw-card-consult{font-size:12px;min-width:128px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){
 .sw-card-featured::before{animation:none!important}
 .sw-main .sw-card-detail,.sw-main .sw-card-consult{transition:none;transform:none}
}

/* v1.5.2 — square product media. Preserve whole artwork and the v1.5.1 primary detail button. */
.sw-main .sw-product-image{display:block;position:relative;width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:1/1;background:#fff;border-radius:12px;box-sizing:border-box;overflow:hidden}
.sw-main .sw-product-image>img{position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;padding:0;display:block;transform:none}
.sw-main .sw-product-image-large{width:100%;max-width:600px;margin-inline:auto;border:1px solid #e0e7ef;cursor:zoom-in}
.sw-main .sw-image-open{position:absolute;right:10px;bottom:10px;display:flex;align-items:center;gap:6px;min-height:36px;padding:7px 11px;border:1px solid #dce5ee;border-radius:20px;background:rgba(255,255,255,.95);color:#234b72;font-size:11px;font-weight:700;box-shadow:0 2px 9px #17324d0d;pointer-events:none}
.sw-main .sw-image-open .icon{width:16px;height:16px}
.sw-main .sw-cover{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:1/1;box-sizing:border-box;padding:22px;overflow:hidden}
.sw-main .sw-cover strong{font-size:clamp(21px,2.1vw,29px);margin-top:auto;max-width:95%;overflow-wrap:anywhere}
.sw-main .sw-cover-icon{right:17px;top:17px}
.sw-main .sw-cover-license{font-size:11px;overflow-wrap:anywhere}
.sw-main .sw-cover-large{padding:30px}
.sw-main .sw-cover-large strong{font-size:clamp(27px,3vw,44px);margin-top:auto}
.sw-main .sw-cover-caption{font-size:8px;line-height:1.5;letter-spacing:.08em}
.sw-main .sw-thumbnails{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin:12px auto;max-width:600px}
.sw-main .sw-thumbnails>a{position:relative;width:80px;height:80px;flex:0 0 80px;display:block;border:2px solid #e0e7ef;border-radius:9px;overflow:hidden;background:white}
.sw-main .sw-thumbnails img{width:100%;height:100%;object-fit:contain;display:block}
.sw-main .sw-thumbnails [aria-current=true]{border-color:#bc2440;box-shadow:0 0 0 2px #bc244015}
.sw-lightbox{width:min(96vw,1160px);max-width:1160px;max-height:94dvh;max-height:94vh;padding:0;border:1px solid #dbe4ed;border-radius:17px;background:#fff;color:#18344e;box-shadow:0 30px 100px #0005;overflow:auto;overscroll-behavior:contain}
.sw-lightbox::backdrop{background:rgba(12,27,44,.78)}
.sw-lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 18px;border-bottom:1px solid #e3e9ef;background:#fff}
.sw-lightbox-header strong{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.sw-lightbox button{font:inherit;cursor:pointer;background:#f0f4f8;color:#234764;border:1px solid #d8e2ec;border-radius:9px;min-width:44px;min-height:44px;padding:8px 12px;flex-shrink:0}
.sw-lightbox-stage{background:#fff;display:flex;align-items:center;justify-content:center;padding:8px;min-height:180px}
.sw-lightbox-stage img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(90vh - 165px);object-fit:contain}
.sw-lightbox-footer{display:flex;align-items:center;justify-content:center;gap:18px;border-top:1px solid #e3e9ef;padding:10px 14px;font-size:12px}
.sw-lightbox button:focus-visible{outline:3px solid #2274d5;outline-offset:3px}
@media(max-width:580px){.sw-main .sw-cover{padding:24px}.sw-main .sw-cover strong{font-size:26px}.sw-main .sw-cover-large strong{font-size:32px}.sw-main .sw-thumbnails>a{width:64px;height:64px;flex-basis:64px}.sw-main .sw-image-open{font-size:10px}.sw-lightbox-header strong{font-size:12px}.sw-lightbox{width:96vw;border-radius:12px}}
@media(prefers-reduced-motion:reduce){.sw-card-featured::before{animation:none!important}}

/* =====================================================================
   An Phat / software v1.5.3 — presentation only.
   This override supports the already-published v1.5.0 card HTML as well as
   v1.5.1–v1.5.2. Links, buttons, data-* attributes and their handlers remain
   untouched. No DOM replacement, catalogue migration or HTML rebuild.
   ===================================================================== */

/* Only the software catalogue uses the wider canvas. */
.software-site .sw-main .sw-wrap:has(.sw-catalog) {
  width: calc(100% - 48px);
  max-width: 1800px;
  margin-inline: auto;
}
.software-site .sw-main .sw-catalog { padding-top: 24px; }
.software-site .sw-main .sw-featured { margin: 16px 0 24px; }
.software-site .sw-main .sw-section-heading { margin-bottom: 15px; }
.software-site .sw-main .sw-category-tabs { margin: 18px 0 14px; }
.software-site .sw-main .sw-catalog-note { margin: 10px 0 16px; }

/* auto-fill reserves sensible card widths, even for a short featured list. */
.software-site .sw-main :is(.sw-product-grid, .sw-featured-grid) {
  --sw-card-min: 224px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--sw-card-min)), 1fr));
  gap: 16px 14px;
  align-items: stretch;
}
.software-site .sw-main .sw-card {
  --sw-radius: 18px;
  --sw-rgb: linear-gradient(128deg, #21a3e9, #7467ea, #df4a9e, #efab48, #2dc8b1, #21a3e9);
  --sw-glow: rgba(42, 116, 183, .10);
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0;
  border: 1px solid #dce5ef;
  border-radius: var(--sw-radius);
  background: #fff;
  overflow: hidden;
  box-shadow: 0 3px 12px rgba(25, 52, 80, .045);
  transition: border-color .18s ease, box-shadow .18s ease;
}
/* The original featured checkbox still determines which cards are RGB. */
.software-site .sw-main .sw-card-featured {
  border: 2px solid transparent;
  background: linear-gradient(#fff, #fff) padding-box, var(--sw-rgb) border-box;
  background-size: 100% 100%, 250% 250%;
  background-position: 0 0, 25% 50%;
  box-shadow: 0 4px 15px var(--sw-glow);
}
.software-site .sw-main .sw-card-featured:nth-child(4n+1) {
  --sw-radius: 22px 12px 22px 12px;
  --sw-rgb: linear-gradient(125deg, #14bce4, #4169ef, #ac55e9, #f161a2, #14bce4);
  --sw-glow: rgba(75, 110, 216, .14);
}
.software-site .sw-main .sw-card-featured:nth-child(4n+2) {
  --sw-radius: 16px;
  --sw-rgb: linear-gradient(130deg, #f2a343, #f0655b, #d9417d, #825bef, #f2a343);
  --sw-glow: rgba(213, 83, 125, .13);
}
.software-site .sw-main .sw-card-featured:nth-child(4n+3) {
  --sw-radius: 12px 22px 12px 22px;
  --sw-rgb: linear-gradient(130deg, #17bd9a, #1ca9e0, #6b69e6, #71d3bf, #17bd9a);
  --sw-glow: rgba(27, 168, 166, .14);
}
.software-site .sw-main .sw-card-featured:nth-child(4n) {
  --sw-radius: 22px;
  --sw-rgb: linear-gradient(130deg, #8270ee, #d252c5, #ef7c6a, #45bfdc, #8270ee);
  --sw-glow: rgba(136, 84, 203, .13);
}
/* Remove the older tinted overlays: product artwork stays colour-accurate. */
.software-site .sw-main .sw-card-featured::before,
.software-site .sw-main .sw-card-featured::after {
  content: none;
  display: none;
  animation: none;
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  .software-site .sw-main .sw-card:hover,
  .software-site .sw-main .sw-card:focus-within {
    border-color: #9eb6d1;
    box-shadow: 0 8px 22px rgba(24, 56, 93, .13);
  }
  .software-site .sw-main .sw-card-featured:hover,
  .software-site .sw-main .sw-card-featured:focus-within {
    border-color: transparent;
    box-shadow: 0 8px 22px var(--sw-glow);
    animation: apSoftwareRgb153 5s linear infinite;
  }
}
@keyframes apSoftwareRgb153 {
  0%, 100% { background-position: 0 0, 0% 50%; }
  50% { background-position: 0 0, 100% 50%; }
}

/* The link itself defines the square. Absolute contents cannot stretch it
   into a landscape banner or a tall box, including the text-only fallback. */
.software-site .sw-main .sw-card > .sw-card-image-link {
  display: block;
  position: relative;
  flex: none;
  align-self: stretch;
  width: auto;
  height: auto;
  min-height: 0;
  aspect-ratio: 1 / 1;
  padding: 0;
  margin: 8px 8px 0;
  background: #fff;
  border-radius: 11px;
  overflow: hidden;
}
.software-site .sw-main .sw-card-image-link > :is(.sw-product-image, .sw-cover) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  max-width: none;
  margin: 0;
  aspect-ratio: 1 / 1;
  border: 0;
  border-radius: inherit;
  box-sizing: border-box;
}
.software-site .sw-main .sw-card .sw-product-image > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  padding: 0;
  object-fit: contain;
  object-position: center;
  transform: none;
}
.software-site .sw-main .sw-card .sw-cover {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 18px;
}
.software-site .sw-main .sw-card .sw-cover-brand { font-size: 10px; letter-spacing: .04em; }
.software-site .sw-main .sw-card .sw-cover strong {
  max-width: 100%;
  margin: auto 0 8px;
  font-size: 23px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}
.software-site .sw-main .sw-card .sw-cover-license {
  font-size: 10px;
  line-height: 1.45;
  margin: 0;
  overflow-wrap: anywhere;
}
.software-site .sw-main .sw-card .sw-cover-caption {
  margin-top: auto;
  padding-top: 12px;
  font-size: 7px;
  line-height: 1.4;
  letter-spacing: .06em;
}
.software-site .sw-main .sw-card .sw-cover-icon { right: 12px; top: 12px; padding: 7px; border-radius: 8px; }
.software-site .sw-main .sw-card .sw-cover-icon .icon { width: 22px; height: 22px; }
.software-site .sw-main .sw-card .sw-cover::before { width: 130px; height: 130px; top: 45px; border-width: 20px; }

/* The same visual areas work with either historical card DOM. The neutral
   div wrapper has no semantics or events; its children keep their originals. */
.software-site .sw-main .sw-card > .sw-card-body {
  display: grid;
  flex: 1;
  min-width: 0;
  padding: 12px;
  grid-template-columns: minmax(0, 1fr) 70px;
  grid-template-areas: "top top" "title title" "summary summary" "meta meta" "price consult" "detail detail";
  grid-template-rows: auto auto auto auto minmax(68px, 1fr) auto;
  gap: 6px 8px;
  align-items: start;
  align-content: start;
}
.software-site .sw-main .sw-card-topline {
  grid-area: top;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
  min-height: 18px;
  gap: 6px;
  font-size: 10px;
  line-height: 1.3;
  color: #526981;
}
.software-site .sw-main .sw-card-topline > span:first-child {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.software-site .sw-main .sw-card-topline :is(.sw-badge, .sw-card-sku) {
  flex-shrink: 0;
  max-width: 52%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 3px 6px;
  border-radius: 6px;
  font-size: 9px;
  font-weight: 750;
  box-shadow: none;
}
.software-site .sw-main .sw-card-topline .sw-badge-hot { background: linear-gradient(115deg, #c12725, #bc1940); color: #fff; }
.software-site .sw-main .sw-card-body > h3 {
  grid-area: title;
  min-width: 0;
  min-height: 41px;
  margin: 0;
  font-size: 15px;
  line-height: 1.36;
  font-weight: 780;
  letter-spacing: -.025em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  overflow-wrap: anywhere;
}
.software-site .sw-main .sw-card-body > h3 a { color: #17324d; text-decoration: none; }
.software-site .sw-main .sw-card-body > h3 a:hover { color: #b81a40; }
.software-site .sw-main .sw-card-summary {
  grid-area: summary;
  min-width: 0;
  min-height: 34px;
  margin: 0 !important;
  font-size: 11.5px;
  line-height: 1.5 !important;
  color: #5a6c7e;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.software-site .sw-main .sw-card-meta { grid-area: meta; display: grid; gap: 4px; padding: 0; margin: 0; min-width: 0; }
.software-site .sw-main .sw-card-meta > span {
  position: relative;
  display: block;
  padding-left: 19px;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 10.5px;
  line-height: 1.45;
  color: #526a81;
}
.software-site .sw-main .sw-card-meta .icon { position: absolute; left: 0; top: 1px; width: 14px; height: 14px; }
.software-site .sw-main .sw-card-bottom { display: contents; }
.software-site .sw-main .sw-card-price {
  grid-area: price;
  align-self: center;
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  margin: 0;
  padding: 6px 0 4px;
}
.software-site .sw-main .sw-card-price > span {
  font-size: 9px;
  line-height: 1.4;
  color: #8b3444;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0;
  text-transform: none;
}
.software-site .sw-main .sw-card-price > strong {
  font-size: 19px;
  line-height: 1.22;
  font-weight: 850;
  color: #b91c41;
  letter-spacing: -.04em;
  overflow-wrap: normal;
}
.software-site .sw-main .sw-card-price > small {
  font-size: 10px;
  line-height: 1.45;
  font-weight: 450;
  color: #596d80;
}
/* Primary: existing detail anchor, whether in the old price row or new footer. */
.software-site .sw-main .sw-card-body > a.sw-card-detail,
.software-site .sw-main .sw-card-bottom > a {
  grid-area: detail;
  align-self: end;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  height: auto;
  padding: 9px 8px;
  margin: 0;
  gap: 6px;
  border: 1px solid #bc1940;
  border-radius: 9px;
  background: #bc1940;
  color: #fff;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  box-shadow: 0 3px 7px rgba(188, 25, 64, .10);
  cursor: pointer;
  transform: none;
}
.software-site .sw-main .sw-card-body > a.sw-card-detail:hover,
.software-site .sw-main .sw-card-bottom > a:hover { color: #fff; background: #a71337; border-color: #a71337; transform: none; }
.software-site .sw-main .sw-card-body > a.sw-card-detail .icon,
.software-site .sw-main .sw-card-bottom > a .icon { width: 15px; height: 15px; flex-shrink: 0; }
/* Secondary: same consultation button, same form and product data. */
.software-site .sw-main .sw-card-body > button.sw-card-cta,
.software-site .sw-main .sw-card-bottom > button.sw-card-consult {
  grid-area: consult;
  align-self: center;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  height: auto;
  margin: 0;
  padding: 7px 6px;
  gap: 0;
  border: 1px solid #d1deea;
  border-radius: 8px;
  background: #f5f8fc;
  color: #294d6d;
  font-family: inherit;
  font-size: 10.5px;
  font-weight: 650;
  line-height: 1.35;
  white-space: normal;
  text-align: center;
  box-shadow: none;
  cursor: pointer;
  transform: none;
}
.software-site .sw-main .sw-card-body > button.sw-card-cta .icon,
.software-site .sw-main .sw-card-bottom > button.sw-card-consult .icon { display: none; }
.software-site .sw-main .sw-card-body > button.sw-card-cta:hover,
.software-site .sw-main .sw-card-bottom > button.sw-card-consult:hover { background: #e9f1fa; color: #183b5e; border-color: #9fb5cc; transform: none; }
.software-site .sw-main .sw-card :is(a, button):focus-visible { outline: 3px solid #256dc2; outline-offset: 2px; }
/* Preserve filtering: hidden products must never reappear due to display:grid. */
.software-site .sw-main [hidden] { display: none !important; }

@media (min-width: 2000px) {
  .software-site .sw-main .sw-wrap:has(.sw-catalog) { max-width: 2060px; }
  .software-site .sw-main :is(.sw-product-grid, .sw-featured-grid) { --sw-card-min: 240px; }
}
@media (max-width: 900px) and (min-width: 640px) {
  .software-site .sw-main .sw-wrap:has(.sw-catalog) { width: calc(100% - 32px); }
  .software-site .sw-main :is(.sw-product-grid, .sw-featured-grid) { gap: 14px 12px; }
  .software-site .sw-main .sw-card > .sw-card-body { grid-template-columns: minmax(0, 1fr) 68px; padding: 10px; gap: 7px; }
  .software-site .sw-main .sw-card-price > strong { font-size: 17.5px; }
}
/* Phones: two readable cards, full-width prices, two clearly separated actions.
   The long teaser and repeated licence line stay in the HTML/detail page. */
@media (max-width: 639px) {
  .software-site .sw-main .sw-wrap:has(.sw-catalog) { width: calc(100% - 20px); }
  .software-site .sw-main :is(.sw-product-grid, .sw-featured-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
  .software-site .sw-main .sw-card { --sw-radius: 13px; }
  .software-site .sw-main .sw-card-featured:nth-child(4n+1) { --sw-radius: 17px 10px 17px 10px; }
  .software-site .sw-main .sw-card-featured:nth-child(4n+2) { --sw-radius: 13px; }
  .software-site .sw-main .sw-card-featured:nth-child(4n+3) { --sw-radius: 10px 17px 10px 17px; }
  .software-site .sw-main .sw-card-featured:nth-child(4n) { --sw-radius: 17px; }
  .software-site .sw-main .sw-card > .sw-card-image-link { margin: 6px 6px 0; border-radius: 8px; }
  .software-site .sw-main .sw-card .sw-cover { padding: 12px; }
  .software-site .sw-main .sw-card .sw-cover strong { font-size: 18px; line-height: 1.15; margin-bottom: 6px; }
  .software-site .sw-main .sw-card .sw-cover-brand { font-size: 8.5px; letter-spacing: 0; }
  .software-site .sw-main .sw-card .sw-cover-license { font-size: 9px; line-height: 1.35; }
  .software-site .sw-main .sw-card .sw-cover-caption { font-size: 6px; padding-top: 7px; letter-spacing: .015em; }
  .software-site .sw-main .sw-card .sw-cover-icon { top: 9px; right: 9px; padding: 4px; }
  .software-site .sw-main .sw-card .sw-cover-icon .icon { width: 15px; height: 15px; }
  .software-site .sw-main .sw-card .sw-cover::before { width: 95px; height: 95px; border-width: 13px; top: 32px; right: -29px; }
  .software-site .sw-main .sw-card > .sw-card-body {
    padding: 9px 8px 8px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "top top" "title title" "meta meta" "price price" "stock consult" "detail detail";
    grid-template-rows: auto auto auto auto minmax(34px, 1fr) auto;
    gap: 5px 6px;
  }
  .software-site .sw-main .sw-card-topline { min-height: 16px; font-size: 9.5px; gap: 4px; }
  .software-site .sw-main .sw-card-topline :is(.sw-badge, .sw-card-sku) { font-size: 8px; padding: 3px 4px; border-radius: 5px; }
  .software-site .sw-main .sw-card-body > h3 { min-height: 34px; font-size: 12.5px; line-height: 1.35; letter-spacing: -.02em; }
  .software-site .sw-main .sw-card-summary { display: none; }
  .software-site .sw-main .sw-card-meta { gap: 0; }
  .software-site .sw-main .sw-card-meta > span { font-size: 10px; padding-left: 16px; }
  .software-site .sw-main .sw-card-meta > span + span { display: none; }
  .software-site .sw-main .sw-card-meta .icon { width: 12px; height: 12px; }
  .software-site .sw-main .sw-card-price { display: contents; }
  .software-site .sw-main .sw-card-price > span { display: none; }
  .software-site .sw-main .sw-card-price > strong { grid-area: price; align-self: end; font-size: 19px; letter-spacing: -.04em; line-height: 1.2; padding-top: 3px; }
  .software-site .sw-main .sw-card-price > small { grid-area: stock; align-self: center; display: block; font-size: 9.5px; line-height: 1.35; }
  .software-site .sw-main .sw-card-body > button.sw-card-cta,
  .software-site .sw-main .sw-card-bottom > button.sw-card-consult { min-height: 34px; font-size: 10.5px; padding: 6px; border-radius: 7px; }
  .software-site .sw-main .sw-card-body > a.sw-card-detail,
  .software-site .sw-main .sw-card-bottom > a { min-height: 42px; font-size: 11.5px; padding: 6px; border-radius: 7px; gap: 3px; }
  .software-site .sw-main .sw-card-body > a.sw-card-detail .icon,
  .software-site .sw-main .sw-card-bottom > a .icon { width: 12px; height: 12px; }
}
@media (max-width: 359px) {
  .software-site .sw-main .sw-card-price > strong { font-size: 17px; }
  .software-site .sw-main .sw-card .sw-cover { padding: 10px; }
  .software-site .sw-main .sw-card .sw-cover strong { font-size: 16px; }
  .software-site .sw-main .sw-card-topline { font-size: 9px; }
  .software-site .sw-main .sw-card-topline :is(.sw-badge, .sw-card-sku) { font-size: 7.5px; }
}
@media (max-width: 309px) {
  .software-site .sw-main :is(.sw-product-grid, .sw-featured-grid) { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .software-site .sw-main .sw-card,
  .software-site .sw-main .sw-card-featured:hover,
  .software-site .sw-main .sw-card-featured:focus-within { animation: none !important; transition: none !important; }
}
