/* =========================================================
   FIBEERSX GLOBAL RESPONSIVE — v2.2.0
   Mobile-first repair layer. Desktop rules are intentionally
   kept minimal; aggressive corrections live below 820 px.
========================================================= */

html{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
}

body{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:hidden;
}

@supports (overflow:clip){
    html,
    body{ overflow-x:clip; }
}

*,
*::before,
*::after{
    box-sizing:border-box;
}

img,
picture,
video,
canvas,
svg,
iframe,
embed,
object{
    max-width:100%;
}

img,
picture,
video,
canvas,
svg{
    height:auto;
}

.wp-site-blocks,
.wp-block-post-content,
.wp-block-group,
.wp-block-columns,
.wp-block-column,
.wp-block-media-text,
.wp-block-cover,
main,
section,
article{
    min-width:0;
}

.wp-block-table{
    max-width:100%;
}

input,
select,
textarea,
button{
    font:inherit;
    max-width:100%;
}

p,
li,
td,
th,
a,
span,
h1,
h2,
h3,
h4,
h5,
h6{
    overflow-wrap:break-word;
    word-break:normal;
}

/* =========================================================
   TABLET / PHONE CORE
========================================================= */

@media (max-width:820px){

    :root{
        --fxr-edge:14px;
        --fxr-radius:22px;
    }

    body{
        min-width:0;
    }

    .wp-site-blocks,
    .wp-block-post-content,
    main{
        width:100%;
        max-width:100%;
        min-width:0;
    }

    .wp-block-columns:not(.is-not-stacked-on-mobile){
        flex-wrap:wrap !important;
    }

    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column{
        flex-basis:100% !important;
        width:100% !important;
        min-width:0 !important;
    }

    .wp-block-media-text{
        grid-template-columns:minmax(0,1fr) !important;
    }

    .wp-block-media-text .wp-block-media-text__media,
    .wp-block-media-text .wp-block-media-text__content{
        grid-column:1 !important;
        min-width:0 !important;
    }

    /* Avoid iOS zooming form fields. */
    input,
    select,
    textarea{
        font-size:16px;
    }

    /* Safe touch target without forcing all buttons full width. */
    button,
    .wp-element-button,
    .wp-block-button__link,
    a[class*="btn"],
    a[class*="button"]{
        min-height:44px;
    }

    /* -----------------------------------------
       RUNTIME OVERFLOW REPAIR
    ------------------------------------------ */

    .fxr-overflow-fix{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin-left:auto !important;
        margin-right:auto !important;
        left:auto !important;
        right:auto !important;
    }

    .fxr-force-single-column{
        grid-template-columns:minmax(0,1fr) !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .fxr-force-wrap{
        flex-wrap:wrap !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .fxr-force-wrap > *{
        min-width:0 !important;
        max-width:100% !important;
    }

    /* -----------------------------------------
       RUNTIME MEDIA REPAIR
    ------------------------------------------ */

    .fxr-responsive-media{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        aspect-ratio:auto !important;
        margin-left:auto !important;
        margin-right:auto !important;
        overflow:hidden !important;
    }

    .fxr-responsive-media > img,
    .fxr-responsive-media picture > img,
    img.fxr-responsive-image{
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        margin-left:auto !important;
        margin-right:auto !important;
        object-position:center center !important;
        transform:none !important;
    }

    .fxr-responsive-media > img,
    img.fxr-responsive-image{
        object-fit:contain !important;
    }

    .fxr-portrait-media{
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        padding-top:18px !important;
        padding-bottom:18px !important;
    }

    .fxr-portrait-media img{
        width:auto !important;
        max-width:min(88vw,520px) !important;
        height:auto !important;
        max-height:72dvh !important;
        object-fit:contain !important;
        margin:auto !important;
    }

    /* -----------------------------------------
       GENERIC EQUAL-HEIGHT CARDS
    ------------------------------------------ */

    .fxr-equal-grid{
        align-items:stretch !important;
        grid-auto-rows:1fr !important;
    }

    .fxr-equal-grid > .fxr-equal-card:not(.fxr-flip-card):not(.fsx-support-card),
    .fxr-equal-card:not(.fxr-flip-card):not(.fsx-support-card){
        height:100% !important;
        min-height:100% !important;
    }

    /* -----------------------------------------
       TABLES: 2–3 COLS FIT / 4+ COLS STACK
    ------------------------------------------ */

    table.fxr-mobile-table{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin-left:0 !important;
        margin-right:0 !important;
    }

    table.fxr-fit-table{
        display:table !important;
        table-layout:fixed !important;
        width:100% !important;
        min-width:0 !important;
    }

    table.fxr-fit-table th,
    table.fxr-fit-table td{
        width:auto !important;
        min-width:0 !important;
        max-width:none !important;
        padding:10px 8px !important;
        font-size:clamp(10px,2.75vw,13px) !important;
        line-height:1.35 !important;
        white-space:normal !important;
        overflow-wrap:anywhere !important;
        word-break:normal !important;
        vertical-align:middle !important;
    }

    /* Wide tables become readable row cards, with every value visible. */
    table.fxr-stack-table,
    table.fxr-stack-table tbody,
    table.fxr-stack-table tr,
    table.fxr-stack-table td,
    table.fxr-stack-table th{
        display:block !important;
        width:100% !important;
        min-width:0 !important;
        max-width:100% !important;
    }

    table.fxr-stack-table{
        border:0 !important;
        background:transparent !important;
    }

    table.fxr-stack-table thead{
        display:none !important;
    }

    table.fxr-stack-table tbody{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) !important;
        gap:14px !important;
    }

    table.fxr-stack-table tr{
        overflow:hidden !important;
        border:1px solid rgba(27,125,190,.18) !important;
        border-radius:18px !important;
        background:#fff !important;
        box-shadow:0 12px 30px rgba(16,55,82,.07) !important;
    }

    table.fxr-stack-table td,
    table.fxr-stack-table tbody th{
        position:relative !important;
        display:grid !important;
        grid-template-columns:minmax(105px,38%) minmax(0,1fr) !important;
        gap:12px !important;
        align-items:start !important;
        padding:12px 14px !important;
        border:0 !important;
        border-bottom:1px solid rgba(24,100,150,.11) !important;
        background:transparent !important;
        color:inherit !important;
        font-size:13px !important;
        line-height:1.45 !important;
        text-align:left !important;
        white-space:normal !important;
    }

    table.fxr-stack-table td:last-child,
    table.fxr-stack-table tbody th:last-child{
        border-bottom:0 !important;
    }

    table.fxr-stack-table td::before,
    table.fxr-stack-table tbody th::before{
        content:attr(data-fxr-label);
        display:block;
        color:#176fb2;
        font-size:10px;
        font-weight:800;
        line-height:1.35;
        letter-spacing:.07em;
        text-transform:uppercase;
    }

    table.fxr-stack-table td[data-fxr-label=""]::before,
    table.fxr-stack-table tbody th[data-fxr-label=""]::before{
        display:none;
    }

    /* Existing table wrappers must not crop the repaired table. */
    .fx-comparison-scroll:has(table.fxr-mobile-table),
    .wp-block-table:has(table.fxr-mobile-table),
    [class*="table-wrap"]:has(table.fxr-mobile-table),
    [class*="table-scroll"]:has(table.fxr-mobile-table){
        width:100% !important;
        max-width:100% !important;
        overflow:visible !important;
        padding-left:0 !important;
        padding-right:0 !important;
    }

    /* -----------------------------------------
       DIV-BASED COMPARISON TABLES
    ------------------------------------------ */

    .fx-advantage-table,
    .fx-advantage-body,
    .fx-advantage-row{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .fx-advantage-row{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) !important;
        gap:0 !important;
        overflow:hidden !important;
        margin-bottom:14px !important;
        border-radius:18px !important;
    }

    .fx-advantage-cell{
        width:100% !important;
        min-width:0 !important;
        max-width:100% !important;
        padding:14px 16px !important;
    }

    .fx-advantage-mobile-label{
        display:block !important;
        margin-bottom:5px !important;
    }

    /* -----------------------------------------
       FLIP CARDS — reliable tap-only behavior on phones
       and Safari-safe front/back visibility
    ------------------------------------------ */

    .fxr-flip-card{
        perspective:1200px !important;
        overflow:visible !important;
    }

    .fxr-flip-inner{
        position:relative !important;
        transform-style:preserve-3d !important;
        -webkit-transform-style:preserve-3d !important;
    }

    .fxr-flip-front,
    .fxr-flip-back{
        -webkit-backface-visibility:hidden !important;
        backface-visibility:hidden !important;
        transform-style:preserve-3d !important;
    }

    .fxr-flip-back{
        transform:rotateY(180deg) !important;
    }

    /* On touch devices the plugin owns the flip state.
       We use a visibility swap instead of relying on mobile Safari 3D backface rendering. */
    .fxr-touch-flip-managed .fxr-flip-inner{
        transform:none !important;
        -webkit-transform:none !important;
        transform-style:flat !important;
        -webkit-transform-style:flat !important;
    }

    .fxr-touch-flip-managed .fxr-flip-front,
    .fxr-touch-flip-managed .fxr-flip-back{
        position:absolute !important;
        inset:0 !important;
        width:100% !important;
        height:100% !important;
        max-width:100% !important;
        transform:none !important;
        -webkit-transform:none !important;
        backface-visibility:visible !important;
        -webkit-backface-visibility:visible !important;
        transition:opacity .28s ease, visibility .28s ease !important;
    }

    .fxr-touch-flip-managed .fxr-flip-front{
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:auto !important;
        z-index:2 !important;
    }

    .fxr-touch-flip-managed .fxr-flip-back{
        opacity:0 !important;
        visibility:hidden !important;
        pointer-events:none !important;
        z-index:1 !important;
    }

    .fxr-touch-flip-managed.fxr-is-flipped .fxr-flip-front{
        opacity:0 !important;
        visibility:hidden !important;
        pointer-events:none !important;
        z-index:1 !important;
    }

    .fxr-touch-flip-managed.fxr-is-flipped .fxr-flip-back{
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:auto !important;
        z-index:2 !important;
    }

    .fxr-touch-flip-managed .fxr-flip-front img,
    .fxr-touch-flip-managed .fxr-flip-back img{
        display:block !important;
        visibility:visible !important;
        opacity:1 !important;
        max-width:100% !important;
        height:auto !important;
    }

    /* Existing non-managed flip cards still get bleed-through protection. */
    .fxr-flip-card:not(.fxr-touch-flip-managed).fxr-is-flipped .fxr-flip-front{
        opacity:0 !important;
        visibility:hidden !important;
        pointer-events:none !important;
    }

    .fxr-flip-card:not(.fxr-touch-flip-managed):not(.fxr-is-flipped) .fxr-flip-back{
        visibility:hidden !important;
        pointer-events:none !important;
    }

    .fxr-flip-card:not(.fxr-touch-flip-managed).fxr-is-flipped .fxr-flip-back{
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:auto !important;
    }

    /* Known support cards: prevent the equal-height repair from turning
       170px cards into huge empty mobile boxes. */
    .fsx-support__grid.fxr-equal-grid{
        grid-auto-rows:auto !important;
        align-items:start !important;
    }

    .fsx-support-card,
    .fsx-support-card.fxr-equal-card,
    .fsx-support-card__inner,
    .fsx-support-card__face{
        height:190px !important;
        min-height:190px !important;
        max-height:190px !important;
    }

    .fsx-support-card{
        width:100% !important;
        max-width:100% !important;
        align-self:start !important;
    }

    .fsx-support-card__inner{
        position:relative !important;
    }

    .fsx-support-card__face{
        inset:0 !important;
        padding:20px 18px !important;
        overflow:hidden !important;
    }

    .fsx-support-card__number,
    .fsx-support-card__icon,
    .fsx-support-card__title,
    .fsx-support-card__hint,
    .fsx-support-card__back p{
        visibility:visible !important;
    }

    .fsx-support-card__title{
        display:block !important;
        opacity:1 !important;
        font-size:clamp(.9rem,4vw,1rem) !important;
        line-height:1.3 !important;
    }

    .fsx-support-card__icon{
        display:flex !important;
        opacity:1 !important;
    }

    .fsx-support-card__hint{
        display:block !important;
        opacity:1 !important;
    }

    /* -----------------------------------------
       SECTIONS IDENTIFIED BY HEADING TEXT
    ------------------------------------------ */

    .fxr-equal-section [class*="grid"]{
        align-items:stretch !important;
        grid-auto-rows:1fr !important;
    }

    .fxr-equal-section [class*="card"]{
        height:100% !important;
    }

    .fxr-stack-section [class*="grid"],
    .fxr-stack-section [class*="layout"],
    .fxr-stack-section [class*="row"]{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        grid-template-columns:minmax(0,1fr) !important;
    }

    .fxr-process-flow-section img{
        display:block !important;
        max-width:100% !important;
        margin-left:auto !important;
        margin-right:auto !important;
        transform:none !important;
    }

    /* =====================================================
       HOMEPAGE — KNOWN CURRENT CLASSES
    ===================================================== */

    #fx-wide-hero{
        width:100vw !important;
        max-width:100vw !important;
        margin-left:calc(50% - 50vw) !important;
        margin-right:calc(50% - 50vw) !important;
        overflow:hidden !important;
    }

    #fx-wide-hero .fx-wide-hero-slide,
    #fx-wide-hero .fx-wide-hero-box{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    #fx-wide-hero .fx-wide-description{
        text-align:left !important;
    }

    .fx-system-row,
    .fx-tech-grid-section,
    .fx-main-custom,
    .fx-future-choice,
    .fx-green,
    .fx-robot{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        padding-left:var(--fxr-edge) !important;
        padding-right:var(--fxr-edge) !important;
    }

    .fx-system-grid{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:10px !important;
    }

    .fx-system-card{
        width:100% !important;
        min-width:0 !important;
    }

    /* Tech-image / warranty block */
    .fx-tech-image-section{
        width:100% !important;
        max-width:100% !important;
        padding:38px var(--fxr-edge) !important;
    }

    .fx-tech-image-card,
    .fx-tech-image-card__frame{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .fx-tech-image-card__frame{
        height:auto !important;
        min-height:0 !important;
        aspect-ratio:auto !important;
    }

    .fx-tech-image-card__frame img{
        width:100% !important;
        height:auto !important;
        object-fit:contain !important;
    }

    /* Multifunctional block — mobile image must remain visible even when
       the page version uses absolute positioning + translate/scale zoom. */
    .fx-multifunctional-section{
        width:calc(100% - 18px) !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .fx-multifunctional-card,
    .fx-multifunctional-image,
    .fx-multifunctional-content{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .fx-multifunctional-image{
        position:relative !important;
        height:auto !important;
        min-height:0 !important;
        aspect-ratio:auto !important;
        overflow:hidden !important;
    }

    .fx-multifunctional-image img{
        position:relative !important;
        top:auto !important;
        left:auto !important;
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        margin:0 !important;
        object-fit:contain !important;
        object-position:center !important;
        transform:scale(1.13) !important;
        transform-origin:center center !important;
        visibility:visible !important;
        opacity:1 !important;
    }

    .fx-multifunctional-image.is-zoomed-out img,
    .fx-multifunctional-image.is-zoomed img{
        transform:scale(1) !important;
    }

    /* Laser Technologies home grid */
    .fx-tech-grid{
        width:100% !important;
        max-width:100% !important;
        grid-template-columns:minmax(0,1fr) !important;
    }

    .fx-tech-card{
        width:100% !important;
        max-width:520px !important;
        min-width:0 !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }

    /* Test request image/button — compact desktop-like CTA on mobile. */
    .fx-test-request-section{
        width:100% !important;
        max-width:100% !important;
        padding-left:10px !important;
        padding-right:10px !important;
    }

    .fx-test-request-container{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .fx-test-request-image{
        display:block !important;
        width:100% !important;
        height:auto !important;
    }

    .fx-test-request-button{
        position:absolute !important;
        top:10px !important;
        right:10px !important;
        left:auto !important;
        bottom:auto !important;
        display:inline-flex !important;
        width:auto !important;
        height:auto !important;
        min-width:0 !important;
        max-width:calc(100% - 20px) !important;
        min-height:36px !important;
        padding:7px 9px 7px 12px !important;
        gap:6px !important;
        border-radius:999px !important;
        font-size:11px !important;
        line-height:1 !important;
        white-space:nowrap !important;
        animation:none !important;
        transform:none !important;
    }

    .fx-test-request-arrow{
        flex:0 0 22px !important;
        width:22px !important;
        height:22px !important;
        min-width:22px !important;
        min-height:22px !important;
        font-size:13px !important;
    }

    /* Main custom / future / green / robot */
    .fx-main-custom-panel,
    .fx-green-panel,
    .fx-robot-panel,
    .fx-future-grid{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        grid-template-columns:minmax(0,1fr) !important;
    }

    .fx-main-custom-media,
    .fx-green-image,
    .fx-robot-image{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        height:auto !important;
        min-height:0 !important;
    }

    .fx-main-custom-media img,
    .fx-green-image img,
    .fx-robot-image img{
        display:block !important;
        width:100% !important;
        height:auto !important;
        max-height:none !important;
        object-fit:contain !important;
        object-position:center !important;
        transform:none !important;
    }

    .fx-robot-footer{
        width:100% !important;
        max-width:100% !important;
        display:block !important;
    }

    .fx-robot-footer::after{
        display:none !important;
    }

    .fx-robot-btn{
        display:flex !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        align-items:center !important;
        justify-content:center !important;
    }

    /* =====================================================
       COMMON FIBEERSX BLOCK PATTERNS ON SUBPAGES
    ===================================================== */

    [class^="fx-"][class*="section"],
    [class^="fsx-"][class*="section"],
    [class*=" fx-"][class*="section"],
    [class*=" fsx-"][class*="section"]{
        max-width:100% !important;
        min-width:0 !important;
    }

    /* Panels/layouts that are frequently desktop two-column. */
    [class^="fx-"][class*="layout"],
    [class^="fsx-"][class*="layout"],
    [class^="fx-"][class*="panel"],
    [class^="fsx-"][class*="panel"]{
        min-width:0 !important;
        max-width:100% !important;
    }

    /* Known laser-surface comparison table. */
    .fx-comparison-section,
    .fx-comparison-panel,
    .fx-comparison-scroll{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    /* Casting image block from current code. */
    .fx-cast-section,
    .fx-cast-panel,
    .fx-cast-layout,
    .fx-cast-content,
    .fx-cast-hero{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .fx-cast-layout{
        grid-template-columns:minmax(0,1fr) !important;
    }

    /* =====================================================
       OFB / POPUP FORMS — DESKTOP-LIKE LOOK ON PHONE
    ===================================================== */

    .fxr-ofb-card{
        position:relative !important;
        width:min(94vw,620px) !important;
        max-width:min(94vw,620px) !important;
        min-width:0 !important;
        max-height:88dvh !important;
        margin:auto !important;
        padding:20px 16px 18px !important;
        overflow-x:hidden !important;
        overflow-y:auto !important;
        -webkit-overflow-scrolling:touch !important;
        overscroll-behavior:contain !important;
        border-radius:24px !important;
    }

    .fxr-ofb-card::before,
    .fxr-ofb-card::after{
        display:none !important;
    }

    .fxr-ofb-heading{
        position:relative !important;
        display:block !important;
        visibility:visible !important;
        opacity:1 !important;
        margin:0 52px 20px 0 !important;
        padding-left:16px !important;
        color:#101927 !important;
        font-size:clamp(1.65rem,7vw,2.15rem) !important;
        font-weight:800 !important;
        line-height:1.06 !important;
        letter-spacing:-.03em !important;
        text-align:left !important;
    }

    .fxr-ofb-heading::before{
        content:"";
        position:absolute;
        left:0;
        top:0;
        bottom:0;
        width:4px;
        border-radius:999px;
        background:linear-gradient(180deg,#176fb2,#54c1f4);
        box-shadow:0 0 12px rgba(55,171,235,.25);
    }

    .fxr-popup-close{
        position:absolute !important;
        top:12px !important;
        right:12px !important;
        bottom:auto !important;
        left:auto !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        width:36px !important;
        height:36px !important;
        min-width:36px !important;
        min-height:36px !important;
        margin:0 !important;
        padding:0 !important;
        border-radius:50% !important;
        transform:none !important;
        z-index:50 !important;
    }

    .fxr-ofb-form{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:0 !important;
    }

    .fxr-ofb-form label{
        display:block !important;
        width:100% !important;
        margin:0 0 7px !important;
        font-size:13px !important;
        font-weight:700 !important;
        line-height:1.35 !important;
        text-align:left !important;
    }

    .fxr-ofb-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
    .fxr-ofb-form select,
    .fxr-ofb-form textarea{
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        min-height:48px !important;
        margin:0 0 13px !important;
        padding:12px 14px !important;
        border-radius:12px !important;
        font-size:16px !important;
        line-height:1.35 !important;
    }

    .fxr-ofb-form textarea{
        min-height:96px !important;
        resize:vertical !important;
    }

    .fxr-ofb-form input[type="submit"],
    .fxr-ofb-form button[type="submit"]{
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        width:auto !important;
        max-width:100% !important;
        min-width:150px !important;
        min-height:44px !important;
        margin:2px 0 0 !important;
        padding:11px 24px !important;
        border-radius:999px !important;
        white-space:nowrap !important;
    }
}

/* =========================================================
   SMALL PHONE
========================================================= */

@media (max-width:480px){
    :root{ --fxr-edge:10px; }

    .fx-system-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:9px !important;
    }

    .fx-system-title{
        font-size:.68rem !important;
        line-height:1.3 !important;
    }

    table.fxr-stack-table td,
    table.fxr-stack-table tbody th{
        grid-template-columns:minmax(90px,36%) minmax(0,1fr) !important;
        padding:11px 12px !important;
        gap:9px !important;
    }

    .fxr-ofb-card{
        width:calc(100vw - 20px) !important;
        max-width:calc(100vw - 20px) !important;
        padding:18px 14px 16px !important;
        border-radius:20px !important;
    }
}

/* =========================================================
   VERY SMALL PHONE
========================================================= */

@media (max-width:360px){
    .fx-system-grid{ gap:7px !important; }
    .fx-system-title{ font-size:.64rem !important; }
}

/* =========================================================
   TOUCH DEVICES: REMOVE STUCK HOVERS
========================================================= */

@media (hover:none) and (pointer:coarse){
    .fx-system-card:hover,
    .fx-tech-card:hover,
    .fx-future-card:hover,
    .fx-multifunctional-card:hover,
    .fx-main-custom-panel:hover,
    .fx-green-panel:hover,
    .fx-robot-panel:hover{
        transform:none !important;
    }

    .fx-system-card:hover img,
    .fx-tech-card:hover img,
    .fx-future-card:hover img,
    .fx-main-custom-panel:hover img,
    .fx-green-panel:hover img,
    .fx-robot-panel:hover img{
        transform:none !important;
    }
}

/* =========================================================
   v2.1.0 MOBILE SAFETY NET
   Fixes iOS blank flip cards, oversized home cards, the
   multifunctional image and the Test Request CTA.
========================================================= */

@media (max-width:820px){
    /* Never let generic equal-height logic stretch flip cards. */
    .fxr-flip-card.fxr-equal-card,
    .fsx-support-card.fxr-equal-card{
        height:auto !important;
        min-height:0 !important;
    }

    /* Support cards need an explicit compact mobile viewport. */
    .fsx-support-card,
    .fsx-support-card.fxr-equal-card{
        height:190px !important;
        min-height:190px !important;
        max-height:190px !important;
    }

    /* Multifunctional image: override any older global transform reset. */
    .fx-multifunctional-section .fx-multifunctional-image{
        position:relative !important;
        height:auto !important;
        min-height:0 !important;
        aspect-ratio:auto !important;
        overflow:hidden !important;
    }

    .fx-multifunctional-section .fx-multifunctional-image img{
        position:relative !important;
        top:auto !important;
        left:auto !important;
        display:block !important;
        width:100% !important;
        height:auto !important;
        max-width:100% !important;
        max-height:none !important;
        transform:scale(1.13) !important;
        transform-origin:center center !important;
        visibility:visible !important;
        opacity:1 !important;
    }

    .fx-multifunctional-section .fx-multifunctional-image.is-zoomed-out img,
    .fx-multifunctional-section .fx-multifunctional-image.is-zoomed img{
        transform:scale(1) !important;
    }

    /* Keep Test Request small even if page CSS has a large mobile override. */
    .fx-test-request-container .fx-test-request-button{
        top:10px !important;
        right:10px !important;
        left:auto !important;
        bottom:auto !important;
        width:auto !important;
        height:auto !important;
        min-width:0 !important;
        min-height:36px !important;
        max-width:calc(100% - 20px) !important;
        padding:7px 9px 7px 12px !important;
        gap:6px !important;
        border-radius:999px !important;
        font-size:11px !important;
        line-height:1 !important;
        animation:none !important;
        transform:none !important;
    }

    .fx-test-request-container .fx-test-request-arrow{
        width:22px !important;
        height:22px !important;
        min-width:22px !important;
        min-height:22px !important;
        font-size:13px !important;
    }
}

/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion:reduce){
    *,
    *::before,
    *::after{
        scroll-behavior:auto !important;
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.01ms !important;
    }
}


/* =========================================================
   v2.2.0 MOBILE CONTENT REPAIR
   Targeted fixes from live iPhone screenshots:
   - comparison labels/icons
   - tall/cropped media
   - justified text gaps
   - compact metric rows
   - laser-cutting comparison cards
   - generic mobile overflow protection
========================================================= */

@media (max-width:820px){

    /* -----------------------------------------------------
       READABILITY: never split normal words letter-by-letter
    ----------------------------------------------------- */
    main p,
    main li,
    main span,
    main h1,
    main h2,
    main h3,
    main h4,
    .wp-block-post-content p,
    .wp-block-post-content li{
        word-break:normal !important;
        overflow-wrap:break-word !important;
        hyphens:none !important;
        -webkit-hyphens:none !important;
    }

    .fxr-mobile-left-text{
        text-align:left !important;
        text-align-last:auto !important;
        word-spacing:normal !important;
        letter-spacing:normal !important;
    }

    /* -----------------------------------------------------
       SURFACE-TREATMENT: Disadvantages & Advantages
       The page reserves left space for the +/- icon. The old
       global cell padding overwrote that reservation, causing
       the icon to sit on top of the mobile label.
    ----------------------------------------------------- */
    .fx-advantage-cell{
        word-break:normal !important;
        overflow-wrap:break-word !important;
    }

    .fx-advantage-drawback,
    .fx-advantage-benefit{
        position:relative !important;
        display:block !important;
        padding:16px 18px 16px 54px !important;
    }

    .fx-advantage-drawback::before,
    .fx-advantage-benefit::before{
        left:18px !important;
        top:18px !important;
        transform:none !important;
    }

    .fx-advantage-mobile-label{
        display:block !important;
        min-height:24px !important;
        margin:0 0 7px !important;
        padding:0 !important;
        line-height:1.35 !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
    }

    .fx-advantage-technology{
        padding:17px 18px !important;
    }

    .fx-advantage-laser .fx-advantage-drawback,
    .fx-advantage-laser .fx-advantage-benefit{
        padding-left:54px !important;
    }

    /* -----------------------------------------------------
       GENERIC LARGE MEDIA REPAIR
       Applied only by JS when a landscape image is rendered
       as an abnormally tall or off-screen mobile panel.
    ----------------------------------------------------- */
    .fxr-wide-landscape-media{
        position:relative !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        aspect-ratio:auto !important;
        overflow:hidden !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }

    .fxr-wide-landscape-media > img,
    .fxr-wide-landscape-media picture > img,
    img.fxr-wide-landscape-image{
        position:relative !important;
        inset:auto !important;
        top:auto !important;
        right:auto !important;
        bottom:auto !important;
        left:auto !important;
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        margin:0 auto !important;
        object-fit:contain !important;
        object-position:center center !important;
        transform:none !important;
    }

    /* True portrait artwork should still stay compact. */
    .fxr-portrait-media img{
        max-height:58dvh !important;
        width:auto !important;
        max-width:100% !important;
    }

    /* -----------------------------------------------------
       METRIC / KPI ROWS
       Prevent 3-up cards from overflowing and from breaking
       normal words in the middle (Mechanic/al, Automatio/n).
    ----------------------------------------------------- */
    .fxr-mobile-stat-grid,
    [class*="metrics"],
    [class*="metric-grid"],
    [class*="stats"],
    [class*="stat-grid"],
    [class*="kpi"]{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .fxr-mobile-stat-grid{
        display:grid !important;
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:8px !important;
        align-items:stretch !important;
    }

    .fxr-mobile-stat-grid > *{
        width:auto !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:13px 9px !important;
        overflow:hidden !important;
        text-align:left !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
        hyphens:none !important;
    }

    .fxr-mobile-stat-grid > * *{
        max-width:100% !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
        hyphens:none !important;
    }

    .fxr-mobile-stat-grid > * strong,
    .fxr-mobile-stat-grid > * b,
    .fxr-mobile-stat-grid > * [class*="value"],
    .fxr-mobile-stat-grid > * [class*="number"]{
        font-size:clamp(1.1rem,5.2vw,1.55rem) !important;
        line-height:1.05 !important;
    }

    .fxr-mobile-stat-grid > * p,
    .fxr-mobile-stat-grid > * span,
    .fxr-mobile-stat-grid > * [class*="label"]{
        font-size:clamp(.72rem,3.3vw,.92rem) !important;
        line-height:1.3 !important;
    }

    /* Known ablation metric block from the page code. */
    .ablation-metrics{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:8px !important;
    }

    .ablation-metric-card{
        min-width:0 !important;
        padding:13px 9px !important;
        overflow:hidden !important;
    }

    .ablation-metric-value{
        font-size:clamp(1.15rem,5.2vw,1.45rem) !important;
    }

    .ablation-metric-label{
        font-size:clamp(.7rem,3.2vw,.86rem) !important;
        line-height:1.28 !important;
        word-break:normal !important;
        overflow-wrap:normal !important;
    }

    /* -----------------------------------------------------
       MOBILE MEDIA + COPY PANELS
       JS marks sections whose image/text geometry is escaping
       the viewport. Keep both halves inside the phone.
    ----------------------------------------------------- */
    .fxr-mobile-media-text{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        overflow:hidden !important;
    }

    .fxr-mobile-media-text [class*="layout"],
    .fxr-mobile-media-text [class*="grid"],
    .fxr-mobile-media-text [class*="row"]{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        grid-template-columns:minmax(0,1fr) !important;
    }

    .fxr-mobile-media-text img{
        max-width:100% !important;
    }

    /* -----------------------------------------------------
       LASER CUTTING COMPARISON
       Build clean technology/value rows inside each Aspect card
       and neutralize the desktop sticky laser column.
    ----------------------------------------------------- */
    .fx-cut-compare,
    .fx-cut-compare__panel,
    .fx-cut-compare__scroll{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        overflow:visible !important;
    }

    .fx-cut-compare__table.fxr-stack-table{
        width:100% !important;
        max-width:100% !important;
    }

    .fx-cut-compare__table.fxr-stack-table tbody{
        gap:14px !important;
    }

    .fx-cut-compare__table.fxr-stack-table tr{
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        overflow:hidden !important;
    }

    .fx-cut-compare__table.fxr-stack-table td,
    .fx-cut-compare__table.fxr-stack-table tbody th{
        position:static !important;
        inset:auto !important;
        transform:none !important;
        writing-mode:horizontal-tb !important;
        text-orientation:mixed !important;
        float:none !important;
        clear:both !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        white-space:normal !important;
        word-break:normal !important;
        overflow-wrap:break-word !important;
    }

    .fx-cut-compare__table.fxr-stack-table td:first-child,
    .fx-cut-compare__table.fxr-stack-table tbody th:first-child{
        display:block !important;
        padding:12px 16px !important;
        font-size:1rem !important;
        font-weight:800 !important;
        line-height:1.3 !important;
    }

    .fx-cut-compare__table.fxr-stack-table td:not(:first-child),
    .fx-cut-compare__table.fxr-stack-table tbody th:not(:first-child){
        display:grid !important;
        grid-template-columns:minmax(118px,42%) minmax(0,1fr) !important;
        align-items:center !important;
        gap:10px !important;
        padding:13px 16px !important;
    }

    .fx-cut-compare__table.fxr-stack-table td:not(:first-child)::before,
    .fx-cut-compare__table.fxr-stack-table tbody th:not(:first-child)::before{
        display:block !important;
        margin:0 !important;
        color:#1775b9 !important;
        font-size:clamp(.68rem,3vw,.8rem) !important;
        font-weight:800 !important;
        line-height:1.25 !important;
        letter-spacing:.04em !important;
        text-transform:uppercase !important;
        white-space:normal !important;
    }

    .fx-cut-compare__laser-head,
    .fx-cut-compare__laser-cell,
    .fx-cut-compare__table [class*="laser"]{
        position:static !important;
        left:auto !important;
        right:auto !important;
        transform:none !important;
        writing-mode:horizontal-tb !important;
        text-orientation:mixed !important;
    }

    .fx-cut-status{
        display:inline-flex !important;
        align-items:center !important;
        justify-content:flex-start !important;
        gap:8px !important;
        min-width:0 !important;
        white-space:normal !important;
    }

    /* -----------------------------------------------------
       COMMON LARGE TECHNICAL HEADINGS / PARAGRAPHS
       Prevent clipped titles and huge justified word gaps.
    ----------------------------------------------------- */
    .fxr-mobile-copy-section h1,
    .fxr-mobile-copy-section h2,
    .fxr-mobile-copy-section h3{
        max-width:100% !important;
        margin-left:0 !important;
        margin-right:0 !important;
        transform:none !important;
        word-break:normal !important;
        overflow-wrap:break-word !important;
    }

    .fxr-mobile-copy-section p{
        max-width:100% !important;
        text-align:left !important;
        text-align-last:auto !important;
        word-spacing:normal !important;
        word-break:normal !important;
        overflow-wrap:break-word !important;
    }
}

@media (max-width:480px){
    .fxr-mobile-stat-grid{
        gap:6px !important;
    }

    .fxr-mobile-stat-grid > *{
        padding:11px 7px !important;
    }

    .fx-cut-compare__table.fxr-stack-table td:not(:first-child),
    .fx-cut-compare__table.fxr-stack-table tbody th:not(:first-child){
        grid-template-columns:minmax(106px,40%) minmax(0,1fr) !important;
        padding:12px 13px !important;
    }
}

/* =========================================================
   v2.2.0 EXACT IPHONE SCREENSHOT FIXES
   Extra targeted safeguards for ablation/welding/cutting pages.
========================================================= */
@media (max-width:820px){

    /* The source ablation blocks force 520/540/680px image heights.
       On a phone that produces very tall visual panels. Keep the
       complete visual responsive and let overlays stay inside it. */
    .ablation-image-frame,
    .laser-image-frame{
        position:relative !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        aspect-ratio:4 / 3 !important;
        overflow:hidden !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }

    .ablation-image-frame > img,
    .laser-image-frame > img{
        position:absolute !important;
        inset:0 !important;
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        height:100% !important;
        min-height:0 !important;
        max-height:none !important;
        object-fit:cover !important;
        object-position:center center !important;
        transform:none !important;
    }

    /* Keep the technical overlays readable after the image frame is
       shortened. They may scale visually, but may never make the frame
       wider than the viewport. */
    .ablation-top-panel,
    .ablation-data-panel,
    .laser-precision-panel,
    .laser-target-panel{
        max-width:calc(100% - 24px) !important;
        min-width:0 !important;
    }

    .ablation-data-panel,
    .laser-precision-panel{
        width:min(190px,58%) !important;
        padding:12px !important;
    }

    .ablation-target,
    .laser-target-panel{
        transform:scale(.82) !important;
        transform-origin:left top !important;
    }

    /* Long-form welding / plastic-welding copy must be normal mobile
       reading text, not full justification with enormous word gaps. */
    html.fxr-family-plastic-welding main p,
    html.fxr-family-laser-welding main p,
    html.fxr-family-plastic-welding .wp-block-post-content p,
    html.fxr-family-laser-welding .wp-block-post-content p{
        max-width:100% !important;
        text-align:left !important;
        text-align-last:auto !important;
        word-spacing:normal !important;
        letter-spacing:normal !important;
        word-break:normal !important;
        overflow-wrap:break-word !important;
    }

    html.fxr-family-plastic-welding main h1,
    html.fxr-family-plastic-welding main h2,
    html.fxr-family-plastic-welding main h3,
    html.fxr-family-laser-welding main h1,
    html.fxr-family-laser-welding main h2,
    html.fxr-family-laser-welding main h3{
        max-width:100% !important;
        min-width:0 !important;
        white-space:normal !important;
        word-break:normal !important;
        overflow-wrap:break-word !important;
    }

    /* Three-number KPI strips: compact, balanced, no mid-word splits. */
    .ablation-metrics,
    .fxr-mobile-copy-section .fxr-mobile-stat-grid{
        display:grid !important;
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:7px !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .ablation-metric-card,
    .fxr-mobile-copy-section .fxr-mobile-stat-grid > *{
        min-width:0 !important;
        width:auto !important;
        max-width:100% !important;
        padding:12px 7px !important;
        text-align:center !important;
    }

    .ablation-metric-label,
    .fxr-mobile-copy-section .fxr-mobile-stat-grid > * [class*="label"],
    .fxr-mobile-copy-section .fxr-mobile-stat-grid > * p,
    .fxr-mobile-copy-section .fxr-mobile-stat-grid > * span{
        white-space:normal !important;
        word-break:keep-all !important;
        overflow-wrap:normal !important;
        hyphens:none !important;
        text-align:center !important;
    }

    /* Laser cutting: the source laser-cell uses its ::before as a blue
       vertical stripe. On stacked mobile cards that same pseudo element
       must become the technology label instead of leaving LASER CUTTING
       squeezed vertically at the left edge. */
    .fx-cut-compare__table.fxr-stack-table td::before,
    .fx-cut-compare__table.fxr-stack-table tbody th::before,
    .fx-cut-compare__table.fxr-stack-table .fx-cut-compare__laser-cell::before{
        content:attr(data-fxr-label) !important;
        position:static !important;
        inset:auto !important;
        display:block !important;
        width:auto !important;
        height:auto !important;
        min-width:0 !important;
        margin:0 !important;
        padding:0 !important;
        border:0 !important;
        border-radius:0 !important;
        background:transparent !important;
        box-shadow:none !important;
        transform:none !important;
        writing-mode:horizontal-tb !important;
        color:#1775b9 !important;
        font-size:clamp(.68rem,3vw,.8rem) !important;
        font-weight:800 !important;
        line-height:1.25 !important;
        letter-spacing:.04em !important;
        text-transform:uppercase !important;
        white-space:normal !important;
        word-break:normal !important;
        overflow-wrap:break-word !important;
    }

    .fx-cut-compare__table.fxr-stack-table .fx-cut-compare__laser-cell{
        border-left:0 !important;
        box-shadow:none !important;
    }

    .fx-cut-compare__table.fxr-stack-table .fx-cut-compare__laser-cell::after{
        display:none !important;
    }

    /* If a technical split block still carries a desktop width/min-width,
       the marked section may never escape the viewport. */
    .fxr-mobile-copy-section,
    .fxr-mobile-copy-section > *,
    .fxr-mobile-media-text,
    .fxr-mobile-media-text > *{
        max-width:100% !important;
        min-width:0 !important;
    }

    .fxr-mobile-copy-section [class*="content"],
    .fxr-mobile-copy-section [class*="copy"],
    .fxr-mobile-copy-section [class*="text"],
    .fxr-mobile-media-text [class*="content"],
    .fxr-mobile-media-text [class*="copy"]{
        max-width:100% !important;
        min-width:0 !important;
    }
}

@media (max-width:480px){
    .ablation-image-frame,
    .laser-image-frame{
        aspect-ratio:1 / 1 !important;
    }

    .ablation-metric-card,
    .fxr-mobile-copy-section .fxr-mobile-stat-grid > *{
        padding:10px 6px !important;
    }
}
