/* Device-specific refinements. No title replacements, hidden content or page-wide overflow masks. */
body.sibo-site .sibo-footer-group-title{list-style:none}
body.sibo-site .sibo-footer-group-title::-webkit-details-marker{display:none}
body.sibo-site .sibo-footer-group-icon{display:none}
@media(min-width:768px){
 body.sibo-site .sibo-footer-group-title{pointer-events:none;cursor:default}
}
/* Laptop: maintain real desktop navigation and four-product rows, with less wasted space. */
@media(min-width:1101px) and (max-width:1440px){
 body.sibo-site .sibo-footer--editorial{padding-top:44px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-community{padding-bottom:32px;gap:28px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-grid{grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:40px;padding-top:40px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-directory{grid-template-columns:.8fr 1.2fr 1.2fr 1fr .8fr;gap:18px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-column h2{font-size:15px;margin-bottom:18px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-column a{font-size:15px;line-height:1.65}
 body.sibo-site .sibo-footer--editorial .sibo-footer-column li+li{margin-top:12px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-details{font-size:16px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-bottom{padding-top:64px;padding-bottom:32px}
 body.sibo-article-page .sibo-article-header h1{font-size:36px;line-height:1.22}
 body.sibo-site .sibo-article-layout{gap:40px}
 body.sibo-site .sibo-pdp-layout{grid-template-columns:250px minmax(0,1fr);gap:28px}
 body.sibo-site .sibo-pdp-heading h1{font-size:32px;line-height:1.25}
 body.sibo-site .sibo-pdp-overview{gap:28px}
}
/* 375px-first reading scale: comfortable paragraphs, smaller technical titles and clear rhythm. */
@media(max-width:767px){
 body.sibo-site{--sibo-text-body:1rem;--sibo-text-reading:1.0625rem;--sibo-text-control:1rem;line-height:1.7}
 body.sibo-site .sibo-page-hero-copy h1{font-size:32px;line-height:1.12}
 body.sibo-site :is(.sibo-products-intro h2,.sibo-products-series h2,.sibo-about-section h2,.sibo-about-culture h2,.sibo-about-cta h2,.sibo-application-intro h2,.sibo-application-cta h2,.sibo-contact-copy>h2,.sibo-solution-overview h2,.sibo-solution-value-heading h2,.sibo-solution-section-head h2,.sibo-solution-faq h2,.sibo-solution-cta h2,.sibo-news-archive-intro h2){font-size:30px;line-height:1.18;letter-spacing:-.01em}
 body.sibo-home :is(.sibo-section-heading h2,#sibo-about-title,#sibo-inquiry-title){font-size:32px;line-height:1.18}
 body.sibo-site :is(.sibo-products-intro-description,.sibo-products-series-description,.sibo-about-summary,.sibo-about-prose,.sibo-contact-description,.sibo-solution-prose,.sibo-pdp-intro,.sibo-pdp-prose,.sibo-category-description){font-size:16px;line-height:1.75}
 body.sibo-home .sibo-hero-cover .sibo-hero-description{font-size:16px;line-height:1.75}
 body.sibo-home .sibo-hero-cover .sibo-hero-benefits li{font-size:14px;line-height:1.6}
 body.sibo-site .sibo-kicker{font-size:12px;line-height:1.6;letter-spacing:.07em}
 body.sibo-home .sibo-section{padding-block:56px}
 body.sibo-site :is(.sibo-about-section,.sibo-products-intro,.sibo-products-series,.sibo-application-intro,.sibo-application-industries,.sibo-contact-enquiry){padding-block:48px}
 body.sibo-site .sibo-products-series-inner{gap:28px}
 body.sibo-site .sibo-products-series-copy h2{margin-bottom:18px}
 body.sibo-site .sibo-solution-overview{padding-block:48px 32px}
 body.sibo-site .sibo-solution-values{padding-block:16px 48px}
 body.sibo-site .sibo-solution-products{padding-block:48px}
 body.sibo-site .sibo-solution-priority summary{gap:14px;padding-block:20px}
 body.sibo-site .sibo-solution-priority h3{font-size:19px;line-height:1.35}
 body.sibo-site .sibo-solution-priority-body{padding-right:0;padding-bottom:22px}
 body.sibo-site .sibo-pdp-heading h1{font-size:25px;line-height:1.28;margin-bottom:20px}
 body.sibo-site .sibo-pdp-intro{padding:16px;margin-bottom:24px!important}
 body.sibo-site .sibo-pdp-intro p{font-size:16px;line-height:1.75}
 body.sibo-site .sibo-pdp-key-specs :is(dt,dd){font-size:14px;line-height:1.6}
 body.sibo-site .sibo-pdp-section-nav a{min-height:44px;display:inline-flex;align-items:center;font-size:14px}
 body.sibo-site.sibo-article-page .sibo-article-header h1{font-size:28px;line-height:1.22;margin:24px 0 28px}
 body.sibo-site.sibo-article-page .sibo-article-content{font-size:16px;line-height:1.75}
 body.sibo-site.sibo-article-page .sibo-article-content h2{font-size:24px;margin:32px 0 16px}
 body.sibo-site.sibo-article-page .sibo-article-content h3{font-size:21px;margin:26px 0 14px}
 body.sibo-site .sibo-article-content :is(p,ul,ol,blockquote,figure,table){margin-bottom:20px}
 body.sibo-site .sibo-article-header{min-width:0}
 body.sibo-site .sibo-article-panel{padding:22px 20px}
 body.sibo-site .sibo-category-product h2{font-size:20px;line-height:1.35}
 body.sibo-site .sibo-news-archive-card h3{font-size:21px;line-height:1.3}
 /* Inputs stay 16px to avoid automatic mobile browser zoom; do not resize checkbox/radio widgets. */
 body.sibo-site :is(.fluentform,.woocommerce-form,.sibo-search-panel,.sibo-not-found-search,.sibo-video-search) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]),textarea,select){font-size:16px!important;line-height:1.5}
 body.sibo-site :is(.fluentform,.woocommerce-form) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]),select){min-height:48px}
 body.sibo-site .sibo-header :is(.sibo-search-toggle,.sibo-menu-toggle){width:44px;height:44px;flex:0 0 44px}
 body.sibo-site .sibo-header .sibo-header-cta{height:44px;min-height:44px!important;font-size:12px!important;padding-inline:12px!important}
 body.sibo-site .sibo-contact-socials a{width:44px;height:44px;flex-basis:44px}
 /* Each native footer group is one clear, full-width touch target. */
 body.sibo-site .sibo-footer--editorial{padding-top:32px;border-radius:16px 16px 0 0}
 body.sibo-site .sibo-footer--editorial .sibo-footer-community{flex-direction:column;gap:20px;padding-bottom:24px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-home{width:120px;margin-bottom:14px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-community h2{font-size:26px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-feature-links{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-feature{width:100%;height:80px;border-radius:10px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-feature>span{font-size:13px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding:28px 0 0}
 body.sibo-site .sibo-footer--editorial .sibo-footer-invitation{font-size:22px;line-height:1.3;margin-bottom:16px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-summary{font-size:15px;line-height:1.7}
 body.sibo-site .sibo-footer--editorial .sibo-footer-details{font-size:16px;gap:10px;margin-top:18px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-socials{margin-top:18px;gap:12px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-socials a{width:44px;height:44px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-directory{display:block;border-top:1px solid #ffffff26}
 body.sibo-site .sibo-footer--editorial .sibo-footer-column{border-bottom:1px solid #ffffff26}
 body.sibo-site .sibo-footer--editorial .sibo-footer-group-title{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:56px;padding:14px 0;cursor:pointer}
 body.sibo-site .sibo-footer--editorial .sibo-footer-group-title h2{margin:0;font-size:16px;line-height:1.5}
 body.sibo-site .sibo-footer--editorial .sibo-footer-group-icon{display:block;position:relative;flex:0 0 18px;width:18px;height:18px;color:var(--sibo-accent)}
 body.sibo-site .sibo-footer-group-icon::before,body.sibo-site .sibo-footer-group-icon::after{content:'';position:absolute;left:3px;top:8px;width:12px;height:1.5px;background:currentColor}
 body.sibo-site .sibo-footer-group-icon::after{transform:rotate(90deg)}
 body.sibo-site .sibo-footer-group[open] .sibo-footer-group-icon::after{transform:rotate(0deg)}
 body.sibo-site .sibo-footer--editorial .sibo-footer-group-title:focus-visible{outline:2px solid var(--sibo-accent);outline-offset:-2px;border-radius:4px}
 body.sibo-site .sibo-footer--editorial .sibo-footer-links{margin:0;padding:0 0 14px;list-style:none}
 body.sibo-site .sibo-footer--editorial .sibo-footer-column li+li{margin:0}
 body.sibo-site .sibo-footer--editorial .sibo-footer-column a{display:flex;align-items:center;width:100%;min-height:44px;padding:9px 12px;font-size:15px;line-height:1.5}
 body.sibo-site .sibo-footer--editorial .sibo-footer-bottom{padding:28px 0 24px;gap:18px;font-size:12px;line-height:1.65}
}
@media(max-width:359px){
 body.sibo-site .sibo-header .sibo-brand{flex-basis:84px}
 body.sibo-site .sibo-header .sibo-brand img{width:84px}
 body.sibo-site .sibo-header .sibo-header-inner{gap:6px}
 body.sibo-site .sibo-header .sibo-header-cta{padding-inline:8px!important;font-size:11px!important}
}

/* Shared phone/tablet type hierarchy (CSS pixels shown at a 16px root).
 * Tablet 768-1100px: 40px cover / 32px section / 20px card / 16px copy.
 * Phone <=767px: 32px cover / 28px section / 18px card / 15-16px copy.
 * Keep desktop, font faces, content, card clamping and control geometry intact.
 * The reference site requires an access challenge; these are SIBO's own scale,
 * not claimed measurements of the reference. Rem units retain user text sizing.
 */
@media (max-width: 1100px) {
    body.sibo-site {
        --sibo-device-cover: 2.5rem;
        --sibo-device-section: 2rem;
        --sibo-device-card: 1.25rem;
        --sibo-device-copy: 1rem;
        --sibo-device-compact: .9375rem;
        --sibo-text-body: var(--sibo-device-copy);
        --sibo-text-reading: 1rem;
        --sibo-text-control: 1rem;
        --sibo-text-action: .875rem;
        --sibo-text-small: .8125rem;
        --sibo-text-caption: .75rem;
    }
    body.sibo-site .sibo-page-hero .sibo-page-hero-copy h1 {
        font-size: var(--sibo-device-cover);
        line-height: 1.15;
    }
    body.sibo-site.sibo-home .sibo-hero-cover #sibo-hero-title {
        font-size: 2.625rem;
        line-height: 1.12;
    }
    body.sibo-site main .sibo-application-copy h3,
    body.sibo-site.sibo-home :is(.sibo-section-heading h2, #sibo-about-title,
        #sibo-inquiry-title, .sibo-industry-showcase-heading h2, .sibo-contact-inner h2),
    body.sibo-site main :is(.sibo-products-intro, .sibo-products-series,
        .sibo-about-section, .sibo-about-culture, .sibo-about-cta,
        .sibo-application-intro, .sibo-application-cta, .sibo-application-contact, .sibo-contact-copy,
        .sibo-solution-overview, .sibo-solution-value-heading, .sibo-solution-section-head,
        .sibo-solution-faq, .sibo-solution-cta, .sibo-news-archive-intro) h2 {
        font-size: var(--sibo-device-section);
        line-height: 1.25;
        letter-spacing: -.01em;
    }
    body.sibo-site .sibo-category-page .sibo-category-heading h1,
    body.sibo-site .sibo-pdp-main .sibo-pdp-heading h1 {
        font-size: 1.875rem;
        line-height: 1.3;
    }
    body.sibo-site.sibo-article-page .sibo-article-header h1 {
        font-size: 2rem;
        line-height: 1.3;
    }
    body.sibo-site.sibo-article-page .sibo-article-content h2 {
        font-size: 1.625rem;
        line-height: 1.35;
    }
    body.sibo-site.sibo-article-page .sibo-article-content h3 {
        font-size: 1.375rem;
        line-height: 1.4;
    }
    body.sibo-site.sibo-article-page .sibo-article-content {
        font-size: 1rem;
        line-height: 1.75;
    }
    body.sibo-site main :is(.sibo-category-product, .sibo-about-feature,
        .sibo-about-culture-cards, .sibo-news-archive-card, .sibo-news-card,
        .sibo-application-card, .sibo-industry-detail, .sibo-solution-priority,
        .sibo-contact-form-heading, .sibo-hub-document-copy) :is(h2, h3),
    body.sibo-site main.sibo-hub--service .sibo-hub-service h3 {
        font-size: var(--sibo-device-card);
        line-height: 1.4;
    }
    body.sibo-site .sibo-products .sibo-product-info h3,
    body.sibo-site main.sibo-solution-main .sibo-solution-product h3 {
        font-size: var(--sibo-device-card);
        line-height: 1.4;
    }
    body.sibo-site main.sibo-hub .sibo-hub-contact h2 {
        font-size: 1.5rem;
        line-height: 1.3;
    }
    body.sibo-site main.sibo-hub .sibo-hub-faq h3 {
        font-size: 1.1875rem;
        line-height: 1.45;
    }
    body.sibo-site.sibo-home .sibo-hero-cover .sibo-hero-description,
    body.sibo-site :is(main, .sibo-pdp) :is(.sibo-heading-description, .sibo-about-summary,
        .sibo-about-prose, .sibo-about-section-head > p, .sibo-industries-intro,
        .sibo-industry-description, .sibo-products-intro-description,
        .sibo-products-series-description, .sibo-application-description,
        .sibo-contact-description, .sibo-category-description, .sibo-solution-prose,
        .sibo-pdp-intro, .sibo-pdp-intro p, .sibo-pdp-prose) {
        font-size: var(--sibo-device-copy);
        line-height: 1.7;
    }
    body.sibo-site main :is(.sibo-category-product-description,
        .sibo-about-feature p, .sibo-about-culture-cards p,
        .sibo-news-archive-card p, .sibo-news-card p, .sibo-industry-detail p,
        .sibo-solution-priority-body, .sibo-showcase-usage,
        .sibo-hub-contact p, .sibo-hub-service-body, .sibo-hub-service-body p),
    body.sibo-site main.sibo-hub .sibo-hub-faq-answer,
    body.sibo-site main.sibo-hub .sibo-hub-faq-answer p {
        font-size: var(--sibo-device-compact);
        line-height: 1.7;
    }
    body.sibo-site .sibo-header .sibo-navigation .sibo-nav-link {
        font-size: var(--sibo-text-nav);
        line-height: 1.5;
    }
    body.sibo-site .sibo-kicker,
    body.sibo-site.sibo-home .sibo-hero-split .sibo-kicker,
    body.sibo-site.sibo-home .sibo-hero-cover .sibo-kicker,
    body.sibo-site.sibo-home .sibo-industry-content .sibo-kicker {
        font-size: .75rem;
        line-height: 1.6;
    }
    body.sibo-site.sibo-home #sibo-products .sibo-showcase-category {
        font-size: .75rem;
        line-height: 1.5;
    }
    body.sibo-site.sibo-home #sibo-products .sibo-product-info h3.sibo-showcase-model {
        font-size: var(--sibo-device-card);
        line-height: 1.4;
    }
    body.sibo-site.sibo-home #sibo-products .sibo-showcase-usage {
        font-size: var(--sibo-device-compact);
        line-height: 1.6;
    }
    body.sibo-site main.sibo-hub .sibo-video-library .sibo-hub-video h3 {
        font-size: 1rem;
        line-height: 1.5;
    }
    body.sibo-site main :is(.sibo-hub-tabs a, .sibo-products-tabs a,
        .sibo-video-filters button, .sibo-pdp-section-nav a) {
        font-size: .875rem;
        line-height: 1.5;
    }
    /* Keep form entry at 16px or more; only type changes, not touch targets. */
    body.sibo-site :is(.fluentform, .woocommerce-form, .sibo-search-panel,
        .sibo-not-found-search, .sibo-video-search, .sibo-video-sort)
        :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]), textarea, select) {
        font-size: 1rem !important;
        line-height: 1.5;
    }
}
@media (max-width: 767px) {
    body.sibo-site {
        --sibo-device-cover: 2rem;
        --sibo-device-section: 1.75rem;
        --sibo-device-card: 1.125rem;
        --sibo-device-copy: 1rem;
        --sibo-device-compact: .9375rem;
    }
    body.sibo-site.sibo-home .sibo-hero-cover #sibo-hero-title {
        font-size: 2.25rem;
    }
    body.sibo-site .sibo-category-page .sibo-category-heading h1 {
        font-size: 1.625rem;
    }
    body.sibo-site .sibo-pdp-main .sibo-pdp-heading h1 {
        font-size: 1.5rem;
        line-height: 1.3;
    }
    body.sibo-site.sibo-article-page .sibo-article-header h1 {
        font-size: 1.75rem;
    }
    body.sibo-site.sibo-article-page .sibo-article-content h2 {
        font-size: 1.5rem;
    }
    body.sibo-site.sibo-article-page .sibo-article-content h3 {
        font-size: 1.25rem;
    }
    body.sibo-site main.sibo-hub .sibo-hub-faq h3 {
        font-size: 1.0625rem;
    }
    /* Retire the product landing's older phone-only important font sizes. */
    body.sibo-site .sibo-products-landing .sibo-products-intro h2,
    body.sibo-site .sibo-products-landing .sibo-products-series h2 {
        font-size: var(--sibo-device-section) !important;
    }
    body.sibo-site .sibo-footer--editorial .sibo-footer-community h2 {
        font-size: 1.5rem;
        line-height: 1.3;
    }
}
@media (max-width: 359px) {
    body.sibo-site {
        --sibo-device-section: 1.625rem;
    }
    body.sibo-site.sibo-home .sibo-hero-cover #sibo-hero-title {
        font-size: 2rem;
    }
}

/* Card previews only: retain complete titles/copy in the DOM and on details.
 * Two line-height units reserve consistent rows without changing the type scale. */
body.sibo-site :is(
    .sibo-news-card h3,
    .sibo-news-archive-card h3,
    .sibo-news-archive-card-excerpt,
    .sibo-solution-product h3,
    .sibo-pdp-related-card h3,
    .sibo-article-recent-name,
    .sibo-search-result h2,
    .sibo-search-result > p
),
body.sibo-site .sibo-header :is(
    .sibo-mega-product-name,
    .sibo-mega-news-card .sibo-mega-feature-title,
    .sibo-mega-news-card .sibo-mega-feature-summary
) {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
    white-space: normal;
    height: auto;
    min-height: 2lh;
    max-height: 2lh;
}

/* Newsroom stories stack vertically, unlike equal-height cards. Clamp previews
 * without reserving an empty second line below shorter titles or excerpts. */
body.sibo-site.sibo-home .sibo-newsroom-copy :is(h3, p) {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
    white-space: normal;
    height: auto;
    min-height: 0;
    max-height: none;
}

/* Compact article cards follow their text instead of reserving empty rows.
 * Keep two-line ellipsis, but let a one-line heading place its excerpt directly
 * below it. Desktop card alignment and product/menu preview heights stay intact.
 */
@media (max-width: 1280px) {
    body.sibo-site :is(
        .sibo-news-card h3,
        .sibo-news-archive-card h3,
        .sibo-news-archive-card-excerpt
    ) {
        height: auto;
        min-height: 0;
        max-height: none;
    }
}
/* Compact content CTAs on phones/tablets, without changing desktop geometry.
 * The coarse-pointer branch also covers larger landscape tablets; a desktop
 * pointer above 1100px keeps its original buttons. Icon-only controls, menus,
 * tabs and floating tools deliberately do not match this CTA selector.
 */
@media (max-width: 1100px), (max-width: 1366px) and (hover: none) and (pointer: coarse) {
    body.sibo-site {
        --sibo-compact-button-padding: 10px 20px;
        --sibo-compact-button-gap: 8px;
        --sibo-compact-filter-padding: 8px 16px;
    }
    body.sibo-site :is(main, .sibo-footer) :is(
        .sibo-button, .sibo-text-link, .sibo-product-detail, .button,
        .wp-block-button__link, .wp-element-button, .ff-btn-submit,
        .single_add_to_cart_button, .ct-button, .sibo-resource-button
    ):not(:where([class*="wishlist"], [class*="compare"], [class*="quick-view"])) {
        min-width: 44px !important;
        min-height: 44px !important;
        height: auto !important;
        padding: var(--sibo-compact-button-padding) !important;
        gap: var(--sibo-compact-button-gap) !important;
        /* Keep existing full-width actions and font sizes; long labels may grow. */
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    body.sibo-site .sibo-video-filters button {
        min-height: 44px;
        padding: var(--sibo-compact-filter-padding);
        gap: 8px;
    }
}
@media (max-width: 767px) {
    body.sibo-site {
        --sibo-compact-button-padding: 8px 16px;
        --sibo-compact-button-gap: 6px;
        --sibo-compact-filter-padding: 8px 12px;
    }
}