.download-page { color:#fff; background:#000; font-size:16px; }
.download-page > .banner { position:relative; height:calc(21.25vw - .10625rem); overflow:hidden; }
.download-page > .banner .img,
.download-page > .banner .img-mobile { width:100%; height:100%; display:block; object-fit:cover; }
.download-page > .banner .img-mobile { display:none; }
.download-page > .banner .headline { position:absolute; top:50%; left:22.5rem; transform:translateY(-50%); }
.download-page > .banner h1 { margin:0 0 2.6875rem; color:#e3e3e3; font-size:3rem; font-weight:300; line-height:1; }
.download-page > .content { padding:10vw; background-image:var(--download-bg); background-position:center; background-size:cover; }
.download-page .software-card { position:relative; margin-bottom:5rem; display:block; color:#fff; background:transparent; }
.software-card > .header { height:25vh; padding-left:5vw; display:flex; align-items:center; background-position:center; background-size:cover; font-size:3.125rem; font-weight:700; }
.software-card > .content { padding:2vw 5vw 5vw; background:rgb(0 0 0 / 75%); }
.software-box { box-sizing:content-box; height:auto; min-height:25vh; padding-bottom:1.25rem; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; letter-spacing:.0625rem; border-bottom:.0625rem solid #444; }
.software-box .info { min-width:10vw; margin-right:1.25rem; flex:1; }
.software-box .info p { margin:0 0 .625rem; font-size:1.25rem; line-height:1.5; }
.software-box .info .name { margin-bottom:1.5625rem; color:#ff7a00; font-size:1.875rem; letter-spacing:0; }
.software-box .products { min-width:10vw; flex:2; }
.software-box .products p { margin:0 0 .625rem; font-size:1.25rem; }
.software-box .products ul { margin:0; padding:0; display:flex; flex-wrap:wrap; list-style:none; }
.software-box .products li { width:50%; margin-bottom:.3125rem; }
.software-box .download-btn { padding-right:3vw; display:flex; flex-direction:column; gap:.75rem; }
.software-box .animated-button { position:relative; padding:1rem 2.25rem; overflow:hidden; display:flex; align-items:center; gap:.25rem; color:#ff6a00; background:transparent; border:.25rem solid transparent; border-radius:6.25rem; box-shadow:0 0 0 .125rem #ff6a00; font-size:1rem; font-weight:600; line-height:1; transition:all .6s cubic-bezier(.23,1,.32,1); }
.software-box .animated-button svg { position:absolute; z-index:2; width:1.5rem; fill:#ff6a00; transition:all .8s cubic-bezier(.23,1,.32,1); }
.software-box .animated-button .arr-1 { right:1rem; }
.software-box .animated-button .arr-2 { left:-25%; }
.software-box .animated-button .circle { position:absolute; top:50%; left:50%; width:1.25rem; height:1.25rem; opacity:0; background:#ff6a00; border-radius:50%; transform:translate(-50%,-50%); transition:all .8s cubic-bezier(.23,1,.32,1); }
.software-box .animated-button .text { position:relative; z-index:1; min-width:5vw; transform:translateX(-.75rem); transition:all .8s cubic-bezier(.23,1,.32,1); }
.software-box .animated-button:hover { color:#212121; border-radius:.75rem; box-shadow:0 0 0 .75rem transparent; }
.software-box .animated-button:hover .arr-1 { right:-25%; }
.software-box .animated-button:hover .arr-2 { left:1rem; }
.software-box .animated-button:hover .text { transform:translateX(.75rem); }
.software-box .animated-button:hover svg { fill:#212121; }
.software-box .animated-button:hover .circle { width:13.75rem; height:13.75rem; opacity:1; }

.faq-page { min-height:100vh; overflow:hidden; color:#333; background:#f2f2f2; font-size:16px; line-height:1; }
.faq-page .container { box-sizing:content-box; max-width:75rem; margin:0 auto; padding:0 1.25rem; }
.faq-page > .banner { padding:5.625rem 0 4.375rem; color:#fff; background:#161d24; }
.faq-page > .banner h1 { margin:0 0 .875rem; font-size:2.75rem; font-weight:700; line-height:1.2; }
.faq-page > .banner p { margin:0; color:#d6d6d6; font-size:1.125rem; font-weight:400; line-height:1; }
.faq-page > .main { padding:3.125rem 0 6.25rem; }
.faq-page .search-box { box-sizing:content-box; max-width:40rem; margin:0 auto 2.125rem; padding:0 .875rem; position:relative; display:flex; align-items:center; background:#fff; border:.0625rem solid #d9d9d9; border-radius:.25rem; transition:border-color .2s; }
.faq-page .search-box:focus-within { border-color:#e3540b; }
.faq-page .search-box .icon { margin-right:.625rem; display:inline-flex; color:#888; }
.faq-page .search-box input[type="search"] { min-width:0; padding:.8125rem 0; flex:1; color:#333; background:transparent; border:0; outline:0; font-size:.9375rem; }
.faq-page .search-box input::placeholder { color:#999; }
.faq-page .search-box .clear { padding:0 .25rem; color:#999; background:transparent; border:0; font-size:1.375rem; line-height:1; }
.faq-page .search-box .clear:hover { color:#333; }
.faq-page .tabs { margin-bottom:2.5rem; display:flex; flex-wrap:wrap; justify-content:center; gap:2.25rem; border-bottom:.0625rem solid #d9d9d9; }
.faq-page .tabs .tab { padding:.75rem .25rem; position:relative; color:gray; background:transparent; border:0; font-size:1rem; font-weight:500; line-height:1.375rem; transition:color .2s; }
.faq-page .tabs .tab.active,
.faq-page .tabs .tab:hover { color:#333; }
.faq-page .tabs .tab.active::after { position:absolute; right:0; bottom:-.0625rem; left:0; height:.125rem; content:""; background:#e3540b; }
.faq-page .body { display:grid; grid-template-columns:13.75rem 1fr; align-items:flex-start; gap:3.75rem; }
.faq-page .side { display:flex; flex-direction:column; gap:1.375rem; }
.faq-page .side-item { padding:0; display:flex; align-items:center; justify-content:space-between; color:gray; background:transparent; border:0; font-size:1.0625rem; line-height:1.0625rem; text-align:left; transition:color .2s; }
.faq-page .side-item:hover { color:#333; }
.faq-page .side-item.active { color:#e3540b; font-weight:500; }
.faq-page .side-item .count { margin-left:.5rem; color:#b0b0b0; font-size:.75rem; }
.faq-page .qa { min-width:0; }
.faq-page .search-summary { margin:0 0 .875rem; color:#666; font-size:.8125rem; }
.faq-page .qa .accordion { margin:0; padding:0; border:0; }
.faq-page .qa .row { border-bottom:.0625rem solid rgb(0 0 0 / 8%); }
.faq-page .qa .row:first-child { border-top:.0625rem solid rgb(0 0 0 / 8%); }
.faq-page .qa .q { width:100%; padding:1.25rem 0; display:flex; align-items:flex-start; gap:.875rem; color:#333; background:transparent; border:0; font-family:inherit; font-size:1rem; line-height:1; text-align:left; cursor:pointer; }
.faq-page .qa .mark { width:1.25rem; min-width:1.25rem; margin-top:.125rem; color:#e3540b; font-size:1.375rem; font-weight:400; line-height:1; text-align:center; }
.faq-page .qa .q-text { flex:1; font-weight:500; line-height:1.5; }
.faq-page .qa .q:hover .q-text { color:#e3540b; }
.faq-page .qa .row.is-open .q-text { color:#333; }
.faq-page .qa .a { padding:0 0 1.5rem 2.125rem; color:#5a5a5a; }
.faq-page .qa .a p { margin:0; color:#5a5a5a; font-size:.9375rem; line-height:1.85; }
.faq-page .qa .a p + p { margin-top:.75rem; }
.faq-page .qa .a a { color:#e3540b; }
.faq-page .qa .a a:hover { text-decoration:underline; }
.faq-page .qa .empty { padding:3.75rem 0; color:#999; font-size:.9375rem; text-align:center; }

@media (max-width:991px) {
  .faq-page .body { grid-template-columns:1fr; gap:1.875rem; }
  .faq-page .side { padding-bottom:.5rem; overflow-x:auto; overflow-y:hidden; flex-direction:row; gap:.625rem; scrollbar-width:none; -webkit-overflow-scrolling:touch; mask-image:linear-gradient(90deg,#000 calc(100% - 1.5rem),transparent); }
  .faq-page .side::-webkit-scrollbar { display:none; }
  .faq-page .side-item { padding:.625rem .875rem; flex:0 0 auto; color:gray; background:#fff; border:.0625rem solid #ececec; border-radius:1.25rem; font-size:.875rem; line-height:1rem; white-space:nowrap; }
  .faq-page .side-item.active { color:#fff; background:#e3540b; border-color:#e3540b; }
  .faq-page .side-item.active .count { color:rgb(255 255 255 / 85%); }
  .faq-page .side-item .count { display:none; }
}

@media (max-width:767px) {
  .download-page { margin-top:-40px; }
  .download-page > .banner { height:54.4vw; }
  .download-page > .banner .img { display:none; }
  .download-page > .banner .img-mobile { display:block; }
  .download-page > .banner .headline { top:auto; bottom:0; left:4rem; transform:none; }
  .download-page > .banner h1 { margin-bottom:.5rem; font-size:1.875rem; font-weight:500; }
  .download-page > .content { padding:7vw; }
  .download-page .software-card { margin-bottom:3.125rem; }
  .software-card > .header { height:10vh; font-size:1.125rem; }
  .software-card > .content { padding:2vw 6vw 15vw; }
  .software-box { height:auto; min-height:0; padding-bottom:1.25rem; display:block; position:relative; }
  .software-box .info { min-width:70vw; margin:0 0 1.875rem; }
  .software-box .info p { margin:0 0 .3125rem; font-size:.875rem; font-weight:200; line-height:.875rem; }
  .software-box .info .name { margin:0; padding:1.25rem 0 .9375rem; font-size:1.125rem; font-weight:530; line-height:1.125rem; }
  .software-box .products { min-width:80vw; }
  .software-box .products p { margin:0 0 .625rem; font-size:.875rem; line-height:.875rem; }
  .software-box .products ul { width:100%; }
  .software-box .products li { max-width:37vw; margin-bottom:.3125rem; font-size:.75rem; line-height:.75rem; letter-spacing:0; }
  .software-box .download-btn { position:absolute; top:10%; right:0; padding-right:2vw; gap:.5rem; }
  .software-box .animated-button { width:4.25rem; height:1.9375rem; padding:.3125rem 1.25rem; border-width:.125rem; font-size:.75rem; gap:.125rem; }
  .software-box .animated-button .text { min-width:8vw; transform:translateX(-.375rem); }
  .software-box .animated-button:hover .text { transform:translateX(.375rem); }
  .software-box .animated-button svg { width:1.25rem; }
  .software-box .animated-button .arr-1 { right:.625rem; }
  .software-box .animated-button .arr-2 { left:-30%; }
  .software-box .animated-button:hover .arr-2 { left:.625rem; }
  .software-box .animated-button:hover .arr-1 { right:-30%; }

  .faq-page { margin-top:-40px; }
  .faq-page .container { padding:0 1rem; }
  .faq-page > .banner { padding:2.75rem 0 2rem; }
  .faq-page > .banner h1 { font-size:1.625rem; }
  .faq-page > .banner p { margin-top:.375rem; font-size:.8125rem; }
  .faq-page > .main { padding:1.5rem 0 3.5rem; }
  .faq-page .search-box { margin:0 auto 1.375rem; padding:0 .75rem; }
  .faq-page .search-box .icon { margin-right:.5rem; }
  .faq-page .search-box input[type="search"] { padding:.75rem 0; font-size:.9375rem; line-height:1.1; }
  .faq-page .search-box .clear { font-size:1.25rem; }
  .faq-page .tabs { margin-bottom:1.375rem; overflow-x:auto; overflow-y:hidden; flex-wrap:nowrap; justify-content:flex-start; gap:1.375rem; scrollbar-width:none; -webkit-overflow-scrolling:touch; mask-image:linear-gradient(90deg,#000 calc(100% - 1.5rem),transparent); }
  .faq-page .tabs::-webkit-scrollbar { display:none; }
  .faq-page .tabs .tab { padding:.625rem .125rem; flex:0 0 auto; font-size:.875rem; line-height:1.25rem; white-space:nowrap; }
  .faq-page .tabs .prefix { display:none; }
  .faq-page .qa .q { min-height:2.75rem; padding:1rem 0; gap:.75rem; font-size:.9375rem; }
  .faq-page .qa .mark { width:1.5rem; min-width:1.5rem; font-size:1.5rem; }
  .faq-page .qa .q-text { padding-right:.25rem; font-weight:600; line-height:1.55; }
  .faq-page .qa .a { padding:0 .25rem 1.25rem 2.25rem; }
  .faq-page .qa .a p { font-size:.875rem; line-height:1.75; }
  .faq-page .qa .a a { word-break:break-all; }
  .faq-page .qa .accordion { padding-bottom:1.5rem; }
}

@media (max-width:520px) {
  .download-page > .banner .headline { left:1.25rem; }
}

@media (max-width:450px) {
  .download-page > .banner h1 { font-size:1.5rem; }
}

@media (min-width:767.01px) and (max-width:768px) {
  .download-page,
  .faq-page { margin-top:2.5rem; }
}

/* Four independently editable columns share the same vertical centre. */
.software-box.software-box--columns { display:grid; grid-template-columns:minmax(15rem,1.3fr) minmax(0,1fr) minmax(0,1fr) auto; align-items:center; gap:2rem; padding-top:1.25rem; }
.software-box--columns > .info, .software-box--columns > .products { min-width:0; margin-right:0; overflow-wrap:anywhere; }
.software-box--columns .products li { width:100%; line-height:1.5; }
.software-box--columns > .download-btn { align-self:center; padding-right:0; }
@media (max-width:1100px) and (min-width:768px) {
  .software-box.software-box--columns { gap:1rem; }
  .software-box--columns .animated-button { padding:1rem 1.5rem; }
}
@media (max-width:767px) {
  .software-box.software-box--columns { grid-template-columns:minmax(0,1fr) auto; gap:1rem; }
  .software-box--columns > .info { margin:0; }
  .software-box--columns > .info p { letter-spacing:0; }
  .software-box--columns > .info .name { padding-top:0; line-height:1.4; }
  .software-box--columns > .info p { line-height:1.5; }
  .software-box--columns > .products { grid-column:1/-1; }
  .software-box--columns > .software-box__third:has(> ul:empty) { display:none; }
  .software-box--columns > .download-btn { position:static; grid-column:2; grid-row:1; padding:0; }
  .software-box--columns .animated-button { width:5.5rem; padding-inline:.75rem; justify-content:center; }
  .software-box--columns .products li { max-width:none; font-size:.875rem; line-height:1.5; }
}
