:root{
    --ui-cyan:#03baf0;
    --ui-blue:#0564a1;
    --ui-ink:#1e2a35;
    --ui-text:#4d5a66;
    --ui-muted:#7b8790;
    --ui-line:#dce6ec;
    --ui-radius:8px;
    --ui-shadow:0 10px 30px rgba(37,61,76,.075);
}

.ui-target-icon{
    display:block;
    flex:0 0 12px;
    width:12px;
    height:12px;
    margin:0;
    overflow:visible;
    transform:none;
    transform-origin:50% 50%;
}

.ui-target-icon .ui-target-dot{
    transform-origin:50% 50%;
}

.text-link, .card-arrow, .button{
    --action-icon-size:12px;
}

.text-link .ui-target-icon, .card-arrow .ui-target-icon, .button .ui-target-icon{
    width:var(--action-icon-size);
    height:var(--action-icon-size);
    flex-basis:var(--action-icon-size);
}

.text-link:hover .ui-target-icon, .card-arrow:hover .ui-target-icon, .button:hover .ui-target-icon{
    transform:rotate(90deg);
    transition:transform .34s ease;
}

.text-link:hover .ui-target-dot, .card-arrow:hover .ui-target-dot, .button:hover .ui-target-dot{
    transform:scale(1.38);
    transition:transform .34s ease;
}

.text-link, .card-arrow{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    color:var(--ui-cyan);
    font-weight:400;
    letter-spacing:.015em;
    text-transform:uppercase;
    vertical-align:middle;
}

.button-primary, .button-light, .button-ghost, .fibernet-form .button-primary{
    border-color:rgba(8,163,204,.34);
    background:rgba(255,255,255,.20);
    color:#26657c;
}

.button-primary:hover, .button-primary:focus-visible,
.button-light:hover, .button-light:focus-visible,
.button-ghost:hover, .button-ghost:focus-visible,
.fibernet-form .button-primary:hover, .fibernet-form .button-primary:focus-visible{
    border-color:var(--ui-cyan);
    background:var(--ui-cyan);
    color:#fff;
}

.form-submit-row{
    justify-content:flex-end;
}

.home-feature-card{
    border-radius:8px;
}

.home-feature-image, .home-feature-image img{
    border-radius:7px 7px 0 0;
}

.ui-target-icon{
    fill:none;
    stroke:currentColor;
    stroke-width:1.55;
}

.ui-target-icon .ui-target-dot{
    r:2.15px;
    fill:currentColor;
    stroke:none;
}

.text-link, .card-arrow{
    gap:8px;
    min-height:20px;
    line-height:20px;
    font-size:12px;
}

.text-link .ui-target-icon, .card-arrow .ui-target-icon{
    position:relative;
    top:-.2px;
}

html, body{
    max-width:100%;
    overflow-x:clip;
}

body{
    font-size:18px;
}

#page, #main, main, .site, .site-content, .container, .section{
    min-width:0;
    max-width:100%;
}

img, video, iframe, svg{
    max-width:100%;
}

.entry-content, .rich-text, .feature-abstract, .feature-content, .section-lead, .page-intro{
    font-size:18px;
}

html{
    width:100%;
    max-width:none;
    overflow-x:clip;
}

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

#page, .site, #main, main, .site-content{
    display:block;
    width:100%;
    min-width:0;
    max-width:none;
    margin-inline:0;
}

.container{
    width:calc(100% - (var(--page-gap) * 2));
    max-width:var(--content);
    min-width:0;
    margin-inline:auto;
}

@media (max-width:1380px) {
    :root{
        --page-gap:clamp(18px,3vw,36px);
    }
}

body{
    background:#f5f7fa;
}

:root{
    --cyan:#03baf0;
    --cyan-deep:#03baf0;
    --blue:#0564a1;
    --brand-blue:#3a57a7;
}

@media (max-width:760px) {
    :root{
        --page-gap:16px;
        --header-h:72px;
    }

    body{
        font-size:16px;
        overflow-x:hidden;
    }

    .container{
        width:calc(100% - 32px);
        max-width:none;
    }
}

@media (max-width:760px) {
}

:root{
    --muted-text:#7c7f85;
}

.section-heading.with-arrows .section-lead{
    font-size:18px;
    line-height:1.55;
}

@media (max-width:760px) {
    .section-heading.with-arrows .section-lead{
        font-size:16px;
    }
}

/* ==========================================================================
   SHARED INTERACTIONS
   ========================================================================== */
.text-link,.card-arrow{transition:color .24s ease;}
.text-link:hover,.card-arrow:hover{color:var(--blue);}
.text-link .ui-target-icon,.card-arrow .ui-target-icon,.button .ui-target-icon,.fibernet-form .button .ui-target-icon{transition:transform .32s cubic-bezier(.2,.7,.2,1),opacity .32s ease;}
.text-link:hover .ui-target-icon,.card-arrow:hover .ui-target-icon,.button:hover .ui-target-icon,.fibernet-form .button:hover .ui-target-icon{transform:rotate(90deg) scale(1.24);}
.text-link:hover .ui-target-dot,.card-arrow:hover .ui-target-dot,.button:hover .ui-target-dot,.fibernet-form .button:hover .ui-target-dot{transform:scale(1.75);}
.button:hover,.button:focus-visible,.fibernet-form .form-submit:hover,.fibernet-form .form-submit:focus-visible{color:#fff;}
.button:hover svg,.button:focus-visible svg,.fibernet-form .form-submit:hover svg,.fibernet-form .form-submit:focus-visible svg{color:#fff;stroke:#fff;}
.fhp-tabnav button:focus-visible,.fhs-tab:focus-visible,.footer-socials a:focus-visible,.button:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}


/* Slider navigation — one shared style for Markets, Product Item and all sliders. */
.slider-arrow,
.slick-arrow,
.product-gallery-arrow{
    display:grid;
    width:50px;
    height:50px;
    padding:0;
    place-items:center;
    border:1px solid #dce2e6;
    border-radius:50%;
    background:#fff;
    color:#7d858b;
    box-shadow:none;
    font:300 28px/1 Heebo,Arial,sans-serif;
    cursor:pointer;
    transition:transform .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease;
}
.slider-arrow:hover,
.slick-arrow:hover,
.product-gallery-arrow:hover{
    border-color:var(--cyan);
    background:var(--cyan);
    color:#fff;
    box-shadow:0 9px 22px rgba(3,186,240,.18);
}
.slider-arrow svg,
.slick-arrow svg,
.product-gallery-arrow svg{
    width:24px;
    height:24px;
    stroke-width:1.6;
}
@media(max-width:760px){
    .slider-arrow,.slick-arrow,.product-gallery-arrow{width:44px;height:44px;font-size:25px;}
}


/* Generic CMS/editor button uses the exact site button-light interaction language. */
.btn{
    display:inline-flex;
    min-height:44px;
    padding:0 21px;
    align-items:center;
    justify-content:center;
    gap:12px;
    border:1px solid rgba(18,157,194,.34);
    border-radius:5px;
    background:rgba(255,255,255,.24);
    color:#1e5870;
    box-shadow:none;
    font:inherit;
    line-height:1;
    text-decoration:none;
    cursor:pointer;
    transition:
        background .25s ease,
        border-color .25s ease,
        color .25s ease,
        box-shadow .25s ease;
}

.btn:not(:has(.ui-target-icon))::after{
    content:"";
    display:block;
    flex:0 0 14px;
    width:14px;
    height:14px;
    box-sizing:border-box;
    border:1.55px solid currentColor;
    border-radius:50%;
    background:radial-gradient(circle,currentColor 0 2.15px,transparent 2.35px);
    transform-origin:50% 50%;
    transition:transform .32s cubic-bezier(.2,.7,.2,1);
}

.btn:hover,
.btn:focus-visible{
    border-color:var(--cyan);
    background:var(--cyan);
    color:#fff;
    box-shadow:0 8px 22px rgba(3,186,240,.18);
}

.btn:hover::after,
.btn:focus-visible::after{
    transform:rotate(90deg) scale(1.18);
}

.btn:hover .ui-target-icon,
.btn:focus-visible .ui-target-icon{
    color:#fff;
    stroke:#fff;
    transform:rotate(90deg) scale(1.24);
}

.btn:hover .ui-target-dot,
.btn:focus-visible .ui-target-dot{
    transform:scale(1.75);
}

.btn:focus-visible{
    outline:2px solid var(--blue);
    outline-offset:3px;
}

a.btn,
a.btn:visited,
button.btn{
    color:#1e5870;
}

a.btn:hover,
a.btn:focus-visible,
button.btn:hover,
button.btn:focus-visible{
    border-color:var(--cyan);
    background:var(--cyan);
    color:#fff;
}

a.btn:hover .ui-target-icon,
a.btn:focus-visible .ui-target-icon,
button.btn:hover .ui-target-icon,
button.btn:focus-visible .ui-target-icon{
    color:#fff;
    stroke:#fff;
}


/* Shared image lightbox */
html.lightbox-open,
html.lightbox-open body{
    overflow:hidden;
}

.site-lightbox[hidden]{
    display:none;
}

.site-lightbox{
    position:fixed;
    z-index:10000;
    inset:0;
    display:grid;
    place-items:center;
}

.site-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(12,22,31,.84);
    backdrop-filter:blur(5px);
}

.site-lightbox-dialog{
    position:relative;
    z-index:1;
    display:grid;
    width:min(94vw,1600px);
    height:min(90vh,1000px);
    place-items:center;
}

.site-lightbox-stage{
    display:grid;
    width:calc(100% - 150px);
    height:100%;
    place-items:center;
}

.site-lightbox-stage img{
    display:block;
    width:auto;
    height:auto;
    max-width:100%;
    max-height:100%;
    object-fit:contain;
    box-shadow:0 20px 60px rgba(0,0,0,.20);
}

.site-lightbox-close{
    position:absolute;
    z-index:3;
    top:0;
    right:0;
    width:48px;
    height:48px;
    padding:0;
    border:1px solid rgba(255,255,255,.3);
    border-radius:50%;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:31px;
    font-weight:300;
    line-height:1;
    cursor:pointer;
    transition:background .22s ease,transform .22s ease;
}

.site-lightbox-close:hover{
    background:var(--cyan);
    transform:rotate(90deg);
}

.site-lightbox-arrow{
    position:absolute;
    z-index:3;
    top:50%;
    transform:translateY(-50%);
}

.site-lightbox-arrow:hover{
    transform:translateY(-50%) scale(1.06);
}

.site-lightbox-prev{left:0;}
.site-lightbox-next{right:0;}

@media(max-width:760px){
    .site-lightbox-dialog{
        width:96vw;
        height:88vh;
    }

    .site-lightbox-stage{
        width:100%;
        height:calc(100% - 90px);
    }

    .site-lightbox-arrow{
        top:auto;
        bottom:0;
        transform:none;
    }

    .site-lightbox-arrow:hover{
        transform:scale(1.06);
    }

    .site-lightbox-prev{left:calc(50% - 58px);}
    .site-lightbox-next{right:calc(50% - 58px);}
}


/* Back to top */
.site-back-to-top{
    position:fixed;
    z-index:90;
    right:24px;
    bottom:24px;
    display:grid;
    width:48px;
    height:48px;
    padding:0;
    place-items:center;
    border:1px solid rgba(5,100,161,.22);
    border-radius:50%;
    background:rgba(255,255,255,.92);
    box-shadow:0 10px 30px rgba(22,57,79,.13);
    color:var(--blue);
    font-size:24px;
    line-height:1;
    opacity:0;
    visibility:hidden;
    transform:translateY(12px);
    cursor:pointer;
    backdrop-filter:blur(8px);
    transition:opacity .25s ease,visibility .25s ease,transform .25s ease,background .2s ease,color .2s ease;
}

.site-back-to-top.is-visible{
    opacity:1;
    visibility:visible;
    transform:none;
}

.site-back-to-top:hover{
    background:var(--blue);
    color:#fff;
}

@media(max-width:700px){
    .site-back-to-top{
        right:16px;
        bottom:16px;
        width:44px;
        height:44px;
    }
}
