/*
 * VELAXIZ dynamic-content stability layer.
 *
 * The supplied static pages define the visual rhythm. WordPress titles and
 * descriptions can be longer or shorter than the static demo copy, so this
 * file stabilizes only list/card/navigation text. Long-form detail content
 * remains unrestricted. The original static CSS files stay untouched.
 */

/* ---------- Shared fixed-height surfaces ---------- */
.page-banners-content .titles,
.page-banners-content .texts,
.mod_title,
.mod_subtitle,
.page-shell .page-heading h1,
.page-shell .heading-note,
.page-shell .list-head h2,
.page-shell .category-summary {
    overflow-wrap: anywhere;
}

.page-banners-content .titles {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-wrap: balance;
}
.page-banners-content .texts {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.mod-braeds-item a,
.mod-braeds-current {
    min-width: 0;
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* Header contact/menu labels are fixed-height in the supplied desktop header. */
.header-top-inner .address,
.header-top-inner .address a,
.mainnav .menu > li > a,
.mainnav .submenu > li > a {
    min-width: 0;
}
.header-top-inner .address a,
.mainnav .menu > li > a {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* The four statistic cells in the static home strip use a two-line label at most. */
.stats-bar .stat-item > div {
    min-width: 0;
}
.stats-bar .stat-item strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.stats-bar .stat-item span {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

/* ---------- Product archive / taxonomy ---------- */
.page-shell .product-card {
    display: flex;
    height: 100%;
    flex-direction: column;
}
.page-shell .product-info {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    flex-direction: column;
}
.page-shell .product-series {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.page-shell .product-name {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
    text-overflow: ellipsis;
}
.page-shell .product-meta {
    margin-top: auto;
}
.page-shell .product-meta > span:first-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.page-shell .product-meta .detail-arrow {
    flex: 0 0 auto;
    margin-left: 10px;
}
.page-shell .scene-content h4 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.page-shell .scene-content p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

/* Product detail cards / related cases. */
.prodeta-info-item .tits,
.prodeta-download-item .tits,
.prodeta-case .case-conts .conts .tits {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.prodeta-case .case-conts .conts .texts {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

/* ---------- Solution archive / taxonomy / detail ---------- */
.app-section .app__name {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: normal;
}
.app-section .app__desc {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.app-section .app__btn {
    margin-top: auto;
}
.solution-prducts .card__name {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-align: center;
}

/* ---------- Projects ---------- */
.casenav__inner .item__label {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-align: center;
}
.case-big-flexs .lefts .subtit,
.case-big-flexs .lefts .tits {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.case-big-flexs .lefts .texts p:first-child {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.case-big-flexs .lefts .texts p:last-child {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.case-conts .conts {
    display: flex;
    min-width: 0;
    flex-direction: column;
}
.case-conts .conts .tits {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.case-conts .conts .adds p,
.case-conts .conts .times {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.case-conts .conts .texts {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.case-conts .conts .times {
    margin-top: auto;
    padding-top: 10px;
}
.case-group .case-group-link .tit,
.case-group .case-conts .conts .tits {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.case-group .case-conts .conts .texts {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.case-details-controls .case-cut p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
}

/* ---------- Blog ---------- */
.blog-liinks .conts {
    display: flex;
    min-width: 0;
    flex-direction: column;
}
.blog-liinks .tits {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.blog-liinks .texts {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.blogdeta-group-list .links .conts {
    min-width: 0;
}
.blogdeta-group-list .links .tits {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.blogdeta-group-list .links .times {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.blogdeta-page .prevs .tits,
.blogdeta-page .nexts .tits {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

/* ---------- Downloads ---------- */
.download-items .left,
.download-items .left .conts,
.download-items .right,
.download-items .right .links {
    min-width: 0;
}
.download-items .left .tits {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.download-items .left .texts {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.download-items .right .links .tit {
    width: 100%;
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.download-navs-items {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---------- Support / Videos ---------- */
.support-main-link .title,
.support-video-cont .tits {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-align: center;
}
.support-faq .flexs {
    flex-wrap: wrap;
}
.support-faq .flexs .items:nth-child(2n) {
    border-right: 0;
}
.support-faq-list .hds p {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* ---------- Product mega menu ---------- */
.mega__cat {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mega .feature__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
}
.mega .feature__desc {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.mega .series__name {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

/* ---------- Home dynamic modules ---------- */
.home-product .card__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.home-product .card__desc {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.home-solution .card__label {
    min-width: 0;
}
.home-solution .card__label > span {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-choose .feature__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.home-choose .feature__desc {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}
.home-case .card__body {
    display: flex;
    min-width: 0;
    flex-direction: column;
}
.home-case .card__name {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.home-case .card__location,
.home-case .card__product {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.home-case .card__product {
    margin-top: auto;
}
.home-factory .card__label {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}


.home-case .card {
    display: flex;
    height: 100%;
    flex-direction: column;
}
.home-case .card__body {
    flex: 1 1 auto;
}
.home-about .about__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.home-about .about__text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}
.home-about .stat__big,
.home-about .stat__text {
    overflow-wrap: anywhere;
}

/* ---------- Footer ---------- */

.footer .contact__label {
    min-width: 0;
    max-width: 320px;
}
.footer .contact__label a {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.footer .col__list a {
    display: block;
}

.footer .brand__desc {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
}
.footer .col__list a {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Reserve the line counts used by the desktop/tablet static cards so rows do
 * not jump when dynamic records have shorter copy. On narrow single-column
 * mobile layouts, the reservation is intentionally removed. */
@media (min-width: 481px) {
    .app-section .app__desc { min-height: 3.2em; }
    .case-conts .conts .tits { min-height: 3.12em; }
    .case-conts .conts .texts { min-height: 3.12em; }
    .blog-liinks .tits { min-height: 4.35em; }
    .blog-liinks .texts { min-height: 4.95em; }
    .blogdeta-group-list .links .tits { min-height: 2.9em; }
    .download-items .left .tits { min-height: 1.45em; }
    .download-items .left .texts { min-height: 3.3em; }
    .download-items .right .links .tit { min-height: 1.35em; }
    .support-main-link .title { min-height: 3em; }
    .support-video-cont .tits { min-height: 3.2em; }
    .mega .feature__desc { min-height: 5.1em; }
    .mega .series__name { min-height: 2.8em; }
    .home-product .card__title { min-height: 2.6em; }
    .home-product .card__desc { min-height: 3em; }
    .home-choose .feature__title { min-height: 2.7em; }
    .home-choose .feature__desc { min-height: 6.4em; }
    .home-case .card__name { min-height: 2.7em; }
    .home-case .card__location { min-height: 1.4em; }
    .home-about .about__title { min-height: 2.7em; }
}

/* Below the desktop Download layout, let labels wrap to two lines because the
 * available width becomes intentionally narrower in the supplied media.css. */
@media (max-width: 991px) {
    .download-navs-items {
        white-space: normal;
    }
    .download-items .left .tits {
        min-height: 2.9em;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        white-space: normal;
    }
    .download-items .right .links .tit {
        min-height: 2.7em;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        white-space: normal;
    }
}

@media (max-width: 480px) {
    .mod-braeds-item a,
    .mod-braeds-current {
        max-width: 160px;
    }
    .blog-liinks .tits,
    .blog-liinks .texts,
    .support-video-cont .tits,
    .support-main-link .title,
    .home-product .card__title,
    .home-product .card__desc,
    .home-choose .feature__title,
    .home-choose .feature__desc,
    .home-case .card__name,
    .home-case .card__location,
    .home-about .about__title {
        min-height: 0;
    }
}

/* ---------- About / independent structured cards ---------- */
.about-process .timeline-item .tits,
.about-team-conts .tits,
.about-strength-content .tits {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.about-process .timeline-item p,
.about-team-conts .texts {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.about-choose2-content .tits {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.about-choose2-content .texts,
.about-choose .list .item .texts {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}

@media (min-width: 481px) {
    .about-process .timeline-item .tits,
    .about-team-conts .tits,
    .about-strength-content .tits,
    .about-choose2-content .tits { min-height: 2.9em; }
    .about-team-conts .texts { min-height: 4.35em; }
    .about-choose2-content .texts { min-height: 6.4em; }
}

/* ---------- Search / generic WordPress cards ---------- */
.search-result-card > a {
    display: flex;
    height: 100%;
    flex-direction: column;
}
.search-result-card small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.search-result-card h2 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}
.search-result-card p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
@media (min-width: 481px) {
    .search-result-card h2 { min-height: 2.7em; }
    .search-result-card p { min-height: 4.8em; }
}


/* ---------- Support FAQ interaction polish (v1.8.1) ----------
   Keep the supplied two-column DOM, but make dynamic answer lengths stable and readable.
   One FAQ can be open across the entire section at any time (handled in carter.js). */
.support-faq {
    background: #f7f9fc;
}
.support-faq .flexs {
    background: transparent;
    align-items: flex-start;
    gap: 2px;
}
.support-faq .flexs .items {
    width: calc(50% - 1px);
    background: #fff;
    border-right: 0;
    min-width: 0;
    border: 1px solid #e7ebf0;
    border-top: 0;
}
.support-faq .flexs .items .tits {
    min-height: 52px;
    display: flex;
    align-items: center;
}
.support-faq-list .item {
    background: #fff;
    border-bottom: 1px solid #e7ebf0;
}
.support-faq-list .hds {
    min-height: 58px;
    background: #fff;
    border: 0;
    transition: background-color .2s ease, color .2s ease;
}
.support-faq-list .hds:hover,
.support-faq-list .hds:focus-visible {
    background: #f7faff;
    outline: none;
}
.support-faq-list .item.open .hds {
    background: #f2f7ff;
}
.support-faq-list .item.open .hds p {
    color: var(--primary);
}
.support-faq-list .bds {
    display: none;
    background: #fff;
    color: #555;
    padding: 4px 20px 20px;
    border-top: 1px solid #edf1f5;
    font-size: 16px;
    line-height: 1.7;
}
.support-faq-list .bds p {
    margin: 0;
}
.support-faq-list .bds p + p {
    margin-top: 10px;
}
.support-faq-list .hds svg {
    flex: 0 0 auto;
    transition: transform .22s ease;
}
.support-faq-list .item.open .hds svg {
    transform: rotate(180deg);
}

@media (max-width: 767px) {
    .support-faq .flexs {
        gap: 18px;
    }
    .support-faq .flexs .items {
        width: 100%;
    }
    .support-faq .flexs .items .tits {
        min-height: 48px;
    }
    .support-faq-list .hds {
        min-height: 54px;
        padding: 14px 16px;
    }
    .support-faq-list .bds {
        padding: 4px 16px 18px;
    }
}



/* ---------- Support Videos: static-source 5:3 YouTube frame (v1.10.1) ----------
 * support_video.html uses padding-top:60%, i.e. a 5:3 media frame. Force the
 * same padding-ratio geometry after WordPress/iframe markup so browser intrinsic
 * iframe sizes can never make the cards taller than the supplied static page.
 */
.support-video-cont .img_box {
    position: relative;
    display: block;
    width: 100%;
    height: 0 !important;
    padding-top: 60% !important;
    aspect-ratio: auto;
    overflow: hidden;
}
.support-video-cont .img_box > iframe {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    display: block;
    border: 0;
}


/* Backend ACF owns visible toggle icons; CSS never supplies an icon fallback. */
.btn-submenu::before,
.btn-submenu.active::before { content: none !important; display: none !important; }
.btn-submenu svg { width: 20px; height: 20px; transition: transform .3s ease; pointer-events: none; }
.btn-submenu.active svg { transform: rotate(180deg); }
.prodeta-faq-item .hds .icons::before,
.prodeta-faq-item .hds .icons::after { content: none !important; display: none !important; }
.prodeta-faq-item .hds .icons svg { width: 18px; height: 18px; display: block; }
.prodeta-faq-item .hds .icons .faq-v { opacity: 1; transition: opacity .3s ease; }
.prodeta-faq-item.active .hds .icons .faq-v { opacity: 0; }


/* ACF is authoritative for visible icons/text. Static CSS pseudo-content is disabled. */
.icon-ctrl::before,
.icon-Arrow---Right-2::before,
.search a.active-search::before,
.nav-shop-cart ul li.current::after,
span.select-category::after,
.nav-wrap-category .title-menu::after,
.close-menus::after,
.contact-form .sa::after {
    content: none !important;
    display: none !important;
}
.velaxiz-search-icon-open,
.velaxiz-search-icon-close { display: inline-flex; align-items: center; justify-content: center; }
.velaxiz-search-icon-close { display: none; }
.search.open .velaxiz-search-icon-open,
.show-search[aria-expanded="true"] .velaxiz-search-icon-open { display: none; }
.search.open .velaxiz-search-icon-close,
.show-search[aria-expanded="true"] .velaxiz-search-icon-close { display: inline-flex; }
.search.open .show-search svg,
.show-search[aria-expanded="true"] svg { display: block; }
