:root {
    --up-blue: #0071ba;
    --up-dark: #26343d;
    --up-text: #38434a;
    --up-light: #f2f4f7;
    --up-white: #ffffff;
}

body {
    color: var(--up-text);
}

.container-component {
    max-width: none;
    padding: 0;
}

main {
    margin: 0;
}

.item-page {
    margin: 0;
}

.item-page > .page-header,
.item-page > .article-info {
    display: none;
}

/* HERO */

.up-hero {
    min-height: 610px;
    display: flex;
    align-items: center;
    position: relative;
    background:
        linear-gradient(90deg,rgba(0,25,45,.78),rgba(0,40,70,.30)),
        url('/images/upprovider/homepage/upprovider-slideshow.jpg') center/cover no-repeat;
    color: #fff;
}

.up-hero-inner {
    width: min(1180px, calc(100% - 40px));
    margin: auto;
}

.up-hero h1 {
    max-width: 850px;
    font-size: clamp(2.6rem,5vw,5rem);
    line-height: 1.05;
    font-weight: 700;
    margin: 0 0 25px;
    color: #fff;
}

.up-hero p {
    max-width: 760px;
    font-size: clamp(1.15rem,2vw,1.45rem);
    line-height: 1.6;
}

.up-btn {
    display: inline-block;
    padding: 14px 27px;
    margin-top: 18px;
    border-radius: 5px;
    background: var(--up-blue);
    color: #fff !important;
    text-decoration: none;
    font-weight: 600;
    transition: .2s ease;
}

.up-btn:hover {
    transform: translateY(-2px);
    filter: brightness(.9);
}

/* GENERALE */

.up-section {
    padding: 85px 20px;
}

.up-inner {
    max-width: 1180px;
    margin: auto;
}

.up-eyebrow {
    font-size: .9rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: var(--up-blue);
    margin-bottom: 10px;
}

.up-section h2 {
    font-size: clamp(2rem,4vw,3rem);
    margin: 0 0 25px;
    color: var(--up-dark);
}

.up-lead {
    font-size: 1.2rem;
    line-height: 1.7;
    max-width: 850px;
}

/* PERCHÉ */

.up-why {
    background: var(--up-blue);
    color: #fff;
}

.up-why h2,
.up-why .up-eyebrow {
    color: #fff;
}

.up-why-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    margin-top: 40px;
}

.up-why-grid p {
    line-height: 1.9;
}

/* SERVIZI */

.up-services-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 25px;
    margin-top: 45px;
}

.up-service {
    padding: 35px 28px;
    border: 1px solid #e4e8eb;
    border-radius: 10px;
    background: #fff;
    transition: .2s ease;
}

.up-service:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0,0,0,.08);
}

.up-service img {
    width: 70px;
    height: 70px;
    object-fit: contain;
    margin-bottom: 25px;
}

.up-service h3 {
    font-size: 1.45rem;
    margin-bottom: 15px;
}

.up-service p {
    line-height: 1.65;
}

.up-service a {
    color: var(--up-blue);
    text-decoration: none;
    font-weight: 600;
}

/* TECNOLOGIE */

.up-tech {
    background: var(--up-light);
}

.up-tech-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
}

/* PARALLAX */

.up-parallax {
    min-height: 390px;
    display: flex;
    align-items: center;
    background:
        linear-gradient(rgba(0,35,60,.55),rgba(0,35,60,.55)),
        url('/images/upprovider/homepage/upprovider-parallax-bottom.jpg')
        center/cover fixed;
    color: #fff;
    text-align: center;
}

.up-parallax .up-inner {
    width: 100%;
}

.up-parallax h2 {
    color: #fff;
}

/* CTA */

.up-cta {
    background: var(--up-blue);
    color: #fff;
}

.up-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.up-cta h2 {
    color: #fff;
    margin-bottom: 10px;
}

.up-cta .up-btn {
    background: #fff;
    color: var(--up-blue) !important;
    white-space: nowrap;
}

/* CLIENTI */

.up-clients {
    text-align: center;
}

.up-clients-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 35px;
    align-items: center;
    margin-top: 45px;
}

.up-clients-grid img {
    max-width: 100%;
    height: 80px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: .75;
    transition: .2s ease;
}

.up-clients-grid img:hover {
    filter: none;
    opacity: 1;
}

/* RESPONSIVE */

@media (max-width: 900px) {
    .up-services-grid {
        grid-template-columns: repeat(2,1fr);
    }

    .up-why-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .up-tech-row,
    .up-cta-inner {
        display: block;
    }

    .up-clients-grid {
        grid-template-columns: repeat(2,1fr);
    }

    .up-hero {
        min-height: 520px;
    }

    .up-parallax {
        background-attachment: scroll;
    }
}

@media (max-width: 560px) {
    .up-services-grid {
        grid-template-columns: 1fr;
    }

    .up-clients-grid {
        grid-template-columns: 1fr 1fr;
    }

    .up-section {
        padding: 60px 18px;
    }
}


/* ============================================================
   UPPROVIDER - SITE LAYOUT
   ============================================================ */

.container-header {
    background: #fff;
    box-shadow: 0 2px 15px rgba(0,0,0,.08);
}

.container-header .navbar-brand {
    padding: 14px 0;
}

.container-header .navbar-brand img {
    width: 198px;
    height: auto;
}

.container-header .mod-menu {
    display: flex;
    align-items: center;
    gap: 3px;
}

.container-header .mod-menu > li > a {
    color: #38434a;
    padding: 25px 15px;
    font-weight: 600;
    text-decoration: none;
}

.container-header .mod-menu > li > a:hover,
.container-header .mod-menu > li.active > a {
    color: #0071ba;
}

.container-header .mod-menu .metismenu-item > ul {
    background: #fff;
    box-shadow: 0 10px 30px rgba(0,0,0,.13);
    border: 0;
}

.container-header .mod-menu .metismenu-item > ul a {
    color: #38434a;
}

.container-breadcrumbs {
    max-width: 1180px;
    margin: 0 auto;
    padding: 12px 20px;
}

.up-page-hero {
    min-height: 320px;
    display: flex;
    align-items: center;
    color: #fff;
    position: relative;
    background-position: center;
    background-size: cover;
}

.up-page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,rgba(0,35,65,.85),rgba(0,70,115,.30));
}

.up-page-hero .up-inner {
    position: relative;
    width: 100%;
}

.up-page-hero h1 {
    color: #fff;
    font-size: clamp(2.7rem,5vw,4.5rem);
    margin: 0 0 10px;
}

.up-page-hero p {
    font-size: 1.25rem;
    max-width: 720px;
}

.up-page-hero-services {
    background-image: url('/images/upprovider/header/upprovider-servizi-header.jpg');
}

.up-page-hero-tech {
    background-image: url('/images/upprovider/header/upprovider-tecnologie-header.jpg');
}

.up-page-hero-contact {
    background-image: url('/images/upprovider/header/upprovider-contatti-header.jpg');
}

.up-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
}

.up-contact-card {
    border-left: 4px solid #0071ba;
    padding: 10px 0 10px 30px;
    font-size: 1.1rem;
    line-height: 1.7;
}

.up-contact-card a {
    color: #0071ba;
}

.up-map {
    line-height: 0;
}

.footer {
    margin-top: 0;
    background: #26343d;
    color: #dce3e7;
}

.up-footer-module {
    width: 100%;
}

.up-footer-inner {
    max-width: 1180px;
    margin: auto;
    padding: 70px 20px 50px;
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 55px;
}

.up-footer-inner h3 {
    color: #fff;
    font-size: 1.05rem;
    margin-bottom: 20px;
}

.up-footer-inner a {
    display: block;
    color: #dce3e7;
    text-decoration: none;
    margin: 8px 0;
}

.up-footer-inner a:hover {
    color: #fff;
}

.up-footer-brand img {
    width: 125px;
    height: auto;
    margin-bottom: 20px;
}

.up-footer-ticket {
    display: inline-block !important;
    background: #0071ba;
    padding: 10px 18px;
    border-radius: 4px;
    color: #fff !important;
}

.up-footer-copy {
    border-top: 1px solid rgba(255,255,255,.12);
    text-align: center;
    padding: 20px;
    font-size: .9rem;
}

@media (max-width:900px) {

    .up-contact-grid {
        grid-template-columns:1fr;
        gap:40px;
    }

    .up-footer-inner {
        grid-template-columns:1fr 1fr;
    }

    .container-header .mod-menu {
        display:block;
    }

}

@media (max-width:560px) {

    .up-footer-inner {
        grid-template-columns:1fr;
    }

    .up-page-hero {
        min-height:260px;
    }

}


/* ==========================================================
   UPPROVIDER FRONTEND CLEANUP
   ========================================================== */

/* elimina spaziature Joomla attorno alle landing */
.site-grid {
    grid-template-columns:
        [full-start] minmax(0,1fr)
        [main-start] minmax(0,100%)
        [main-end] minmax(0,1fr)
        [full-end];
    gap: 0;
}

.grid-child.container-component {
    max-width: none;
    width: 100%;
    padding: 0;
}

main {
    margin: 0;
}

.com-content-article {
    margin: 0;
}

/* se Joomla lascia comunque header/metadati */
.com-content-article > .page-header,
.com-content-article > .article-info,
.com-content-article > .icons,
.com-content-article > .content_rating,
.com-content-article > .content_vote {
    display: none !important;
}


/* HEADER */

.container-header {
    background: #fff !important;
    box-shadow: 0 2px 14px rgba(0,0,0,.08);
    position: relative;
    z-index: 1000;
}

.container-header .grid-child {
    max-width: 1180px;
    width: calc(100% - 40px);
    margin-left: auto;
    margin-right: auto;
}

.container-header .navbar-brand {
    padding-top: 17px;
    padding-bottom: 17px;
}

.container-header .navbar-brand img {
    width: 198px;
    max-height: 60px;
    object-fit: contain;
}

.container-header .container-nav {
    padding-bottom: 0;
}

.container-header .mod-menu > li > a,
.container-header .mod-menu > li > button {
    color: #202c33 !important;
}

.container-header .mod-menu > li > a {
    padding: 18px 15px 22px;
}

.container-header .mod-menu > li.active > a {
    color: #0071ba !important;
}


/* HOME */

.up-home {
    overflow: hidden;
}

.up-inner {
    width: min(1180px,calc(100% - 40px));
    margin-left: auto;
    margin-right: auto;
}

.up-hero {
    min-height: 570px;
    display: flex;
    align-items: center;
    position: relative;
    background:
      linear-gradient(90deg,rgba(0,31,55,.82),rgba(0,45,75,.22)),
      url('/images/upprovider/homepage/upprovider-slideshow.jpg')
      center center / cover no-repeat;
    color: #fff;
}

.up-hero-inner {
    width: min(1180px,calc(100% - 40px));
    margin: auto;
    position: relative;
}

.up-hero h1 {
    color: #fff;
    font-size: clamp(2.8rem,5vw,4.8rem);
    line-height: 1.05;
    max-width: 920px;
    margin: 12px 0 22px;
    font-weight: 700;
}

.up-hero p {
    font-size: 1.3rem;
    line-height: 1.6;
    max-width: 720px;
    margin-bottom: 30px;
}

.up-eyebrow {
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .14em;
    font-size: .8rem;
    color: #0079bd;
}

.up-hero .up-eyebrow {
    color: #fff;
}

.up-btn {
    display: inline-block;
    padding: 13px 24px;
    background: #0071ba;
    color: #fff !important;
    border-radius: 4px;
    text-decoration: none !important;
    font-weight: 700;
    transition: .2s ease;
}

.up-btn:hover {
    transform: translateY(-1px);
    background: #005f9d;
}


/* SEZIONI */

.up-section {
    padding: 85px 0;
}

.up-section h2 {
    font-size: clamp(2rem,3.5vw,3rem);
    margin: 8px 0 25px;
}

.up-lead {
    font-size: 1.18rem;
    line-height: 1.75;
    max-width: 850px;
}

.up-services-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 25px;
    margin-top: 45px;
}

.up-service {
    background: #fff;
    border: 1px solid #e4e9ec;
    padding: 32px 27px;
    border-radius: 5px;
    transition: transform .2s ease,box-shadow .2s ease;
}

.up-service:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 35px rgba(0,0,0,.09);
}

.up-service img {
    width: 65px;
    height: 65px;
    object-fit: contain;
    margin-bottom: 22px;
}

.up-service h3 {
    font-size: 1.3rem;
}

.up-service p {
    line-height: 1.65;
}

.up-service a {
    font-weight: 700;
    text-decoration: none;
}


/* CTA */

.up-cta {
    background: #0071ba;
    color: #fff;
}

.up-cta h2 {
    color: #fff;
    margin-bottom: 5px;
}

.up-cta-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
}

.up-cta .up-btn {
    background: #fff;
    color: #0071ba !important;
    white-space: nowrap;
}


/* ARTICOLI NORMALI */

.com-content-article:not(:has(.up-page)):not(:has(.up-home)) {
    width: min(1000px,calc(100% - 40px));
    margin: 55px auto 80px;
    font-size: 1.05rem;
    line-height: 1.75;
}

.com-content-article:not(:has(.up-page)):not(:has(.up-home)) h1,
.com-content-article:not(:has(.up-page)):not(:has(.up-home)) h2,
.com-content-article:not(:has(.up-page)):not(:has(.up-home)) h3 {
    color: #26343d;
}


/* RESPONSIVE */

@media(max-width:1000px) {

    .up-services-grid {
        grid-template-columns:repeat(2,1fr);
    }

}

@media(max-width:768px) {

    .up-hero {
        min-height:480px;
    }

    .up-section {
        padding:60px 0;
    }

    .up-cta-inner {
        display:block;
    }

    .up-cta .up-btn {
        margin-top:20px;
    }

}

@media(max-width:560px) {

    .up-services-grid {
        grid-template-columns:1fr;
    }

    .up-hero h1 {
        font-size:2.5rem;
    }

}


/* ============================================================
   UPPROVIDER - BACKGROUNDS / HERO FIX
   ============================================================ */

/*
 * HOME HERO
 * L'HTML della home contiene direttamente .up-hero,
 * quindi non dipendiamo dal wrapper .up-home.
 */
.up-hero {
    position: relative !important;
    min-height: 570px !important;
    display: flex !important;
    align-items: center !important;

    background-image:
        linear-gradient(
            90deg,
            rgba(4,35,57,.88) 0%,
            rgba(4,46,76,.67) 48%,
            rgba(4,46,76,.20) 100%
        ),
        url('/images/upprovider/homepage/upprovider-slideshow.jpg') !important;

    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;

    color: #fff !important;
    overflow: hidden;
}

.up-hero-inner {
    position: relative;
    z-index: 2;
    width: min(1180px,calc(100% - 40px)) !important;
    margin: 0 auto !important;
    padding: 80px 0;
}

.up-hero h1 {
    color: #fff !important;
    max-width: 900px;
    font-size: clamp(2.8rem,5vw,4.6rem) !important;
    line-height: 1.08;
    text-shadow: 0 2px 12px rgba(0,0,0,.18);
}

.up-hero p {
    color: #fff !important;
    max-width: 720px;
    font-size: 1.25rem;
}

.up-hero a {
    color: #fff;
}

.up-hero .up-eyebrow {
    color: #fff !important;
}


/* ============================================================
   HOME - SEZIONE PERCHE'
   ============================================================ */

.up-why {
    background:
        linear-gradient(
            rgba(255,255,255,.96),
            rgba(255,255,255,.96)
        ),
        url('/images/upprovider/homepage/upprovider-slideshow-2.jpg')
        center center / cover no-repeat;
}


/* ============================================================
   CARD SERVIZI
   ============================================================ */

.up-services {
    background: #f4f7f8;
}

.up-services-grid {
    position: relative;
}

.up-service {
    background: rgba(255,255,255,.98) !important;
}


/* ============================================================
   PARALLAX / CTA CENTRALE
   ============================================================ */

.up-parallax {
    position: relative;
    min-height: 380px;
    display: flex;
    align-items: center;

    background-image:
        linear-gradient(
            rgba(0,42,69,.78),
            rgba(0,42,69,.78)
        ),
        url('/images/upprovider/homepage/upprovider-parallax-bottom.jpg');

    background-position: center;
    background-size: cover;
    background-attachment: fixed;

    color: #fff;
}

.up-parallax h1,
.up-parallax h2,
.up-parallax h3,
.up-parallax p {
    color: #fff;
}


/* ============================================================
   CLIENTI
   ============================================================ */

.up-clients {
    background: #f5f7f8;
}

.up-clients-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 30px;
    align-items: center;
    margin-top: 40px;
}

.up-clients-grid a {
    background: #fff;
    min-height: 130px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 25px;
    border: 1px solid #e8edef;
    transition: .2s ease;
}

.up-clients-grid a:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
}

.up-clients-grid img {
    max-width: 100%;
    max-height: 80px;
    width: auto;
    height: auto;
}


/* ============================================================
   LANDING SERVIZI
   ============================================================ */

.up-page-hero-services {
    background-image:
        linear-gradient(
            90deg,
            rgba(0,37,62,.88),
            rgba(0,52,87,.35)
        ),
        url('/images/upprovider/header/upprovider-servizi-header.jpg')
        !important;
}


/* ============================================================
   LANDING TECNOLOGIA
   ============================================================ */

.up-page-hero-tech {
    background-image:
        linear-gradient(
            90deg,
            rgba(0,37,62,.88),
            rgba(0,52,87,.35)
        ),
        url('/images/upprovider/header/upprovider-tecnologie-header.jpg')
        !important;
}


/* ============================================================
   CONTATTI
   ============================================================ */

.up-page-hero-contact {
    background-image:
        linear-gradient(
            90deg,
            rgba(0,37,62,.88),
            rgba(0,52,87,.35)
        ),
        url('/images/upprovider/header/upprovider-contatti-header.jpg')
        !important;
}


/* ============================================================
   LANDING HERO COMUNE
   ============================================================ */

.up-page-hero {
    min-height: 360px !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
}

.up-page-hero .up-inner {
    padding-top: 80px;
    padding-bottom: 80px;
}

.up-page-hero .up-eyebrow,
.up-page-hero h1,
.up-page-hero p {
    color: #fff !important;
}


/* ============================================================
   HEADER PIU' COMPATTO
   ============================================================ */

.container-header {
    background: #fff !important;
}

.container-header .navbar-brand {
    padding-top: 12px !important;
    padding-bottom: 8px !important;
}

.container-header .navbar-brand img {
    width: 198px !important;
}

.container-header .container-nav {
    padding-top: 0 !important;
}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 900px) {

    .up-hero {
        min-height: 500px !important;
        background-position: 58% center !important;
    }

    .up-parallax {
        background-attachment: scroll;
    }

    .up-clients-grid {
        grid-template-columns: repeat(2,1fr);
    }
}

@media (max-width: 560px) {

    .up-hero {
        min-height: 450px !important;
    }

    .up-hero-inner {
        padding: 55px 0;
    }

    .up-clients-grid {
        grid-template-columns: 1fr;
    }

    .up-page-hero {
        min-height: 290px !important;
    }
}


/* ============================================================
   UPPROVIDER - FINAL DESKTOP / MOBILE
   ============================================================ */

html,
body {
    overflow-x: hidden;
}

/* ---------- HEADER DESKTOP ---------- */

.container-header {
    background: #fff !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.08);
}

.container-header .grid-child {
    width: min(1180px,calc(100% - 40px));
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto;
}

/* Cassiopeia: logo + menu sulla stessa riga */

.container-header .container-nav {
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    padding: 0 !important;
}

.container-header .navbar-brand {
    margin-right: auto;
}

.container-header .navbar-brand img {
    display: block;
    width: 198px !important;
    height: auto !important;
}

.container-header nav {
    margin-left: auto;
}

.container-header .mod-menu {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0;
}

.container-header .mod-menu > li > a {
    padding: 25px 14px !important;
    color: #172a38 !important;
    font-weight: 600;
    text-decoration: none;
}

.container-header .mod-menu > li.active > a,
.container-header .mod-menu > li > a:hover {
    color: #0879b9 !important;
}


/* ---------- ELIMINA CHROME ARTICOLO JOOMLA ---------- */

.com-content-article > .page-header,
.com-content-article > .article-info,
.com-content-article > .icons,
.com-content-article > .content_rating,
.com-content-article > .content_vote {
    display: none !important;
}

.grid-child.container-component {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
}

main {
    margin: 0 !important;
}


/* ---------- HOME HERO ---------- */

.up-hero {
    min-height: 540px !important;

    display: flex !important;
    align-items: center !important;

    background:
        linear-gradient(
            90deg,
            rgba(0,31,54,.90) 0%,
            rgba(0,43,73,.66) 52%,
            rgba(0,43,73,.18) 100%
        ),
        url('/images/upprovider/homepage/upprovider-slideshow.jpg')
        center center / cover no-repeat !important;

    color: #fff !important;
}

.up-hero-inner {
    width: min(1180px,calc(100% - 40px)) !important;
    margin: auto !important;
    padding: 75px 0 !important;
}

.up-hero .up-eyebrow {
    color: #fff !important;
    letter-spacing: .17em;
}

.up-hero h1 {
    color: #fff !important;
    font-size: clamp(2.8rem,5vw,4.5rem) !important;
    line-height: 1.08 !important;
    max-width: 900px;
    margin: 12px 0 20px !important;
}

.up-hero p {
    color: #fff !important;
    font-size: 1.25rem !important;
    line-height: 1.6;
    max-width: 720px;
}

.up-hero a {
    display: inline-block;
    background: #087fc2;
    color: #fff !important;
    text-decoration: none !important;
    padding: 13px 23px;
    margin-top: 10px;
    border-radius: 4px;
    font-weight: 700;
}


/* ---------- SEZIONI ---------- */

.up-section {
    padding: 75px 0 !important;
}

.up-inner {
    width: min(1180px,calc(100% - 40px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.up-why {
    background: #fff;
}

.up-tech {
    background: #f3f7f9;
}

.up-eyebrow {
    color: #0879b9;
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .14em;
}

.up-section h2 {
    color: #172f42;
    font-size: clamp(2rem,3.5vw,3rem);
}


/* ---------- CARDS ---------- */

.up-services-grid {
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 22px;
    margin-top: 40px;
}

.up-service {
    background: #fff;
    border: 1px solid #e2e9ed;
    border-radius: 5px;
    padding: 28px 24px;
    min-width: 0;
}

.up-service img {
    display: block;
    width: 62px !important;
    height: 62px !important;
    object-fit: contain;
    margin-bottom: 20px;
}

.up-service h3 {
    color: #17334a;
    font-size: 1.25rem;
}

.up-service p {
    line-height: 1.6;
}

.up-service a {
    color: #0879b9;
    font-weight: 700;
    text-decoration: none;
}


/* ---------- PARALLAX ---------- */

.up-parallax {
    min-height: 360px;

    display: flex;
    align-items: center;

    background:
        linear-gradient(
            rgba(0,38,66,.80),
            rgba(0,38,66,.80)
        ),
        url('/images/upprovider/homepage/upprovider-parallax-bottom.jpg')
        center center / cover no-repeat !important;

    color: #fff !important;
}

.up-parallax h1,
.up-parallax h2,
.up-parallax h3,
.up-parallax p,
.up-parallax .up-eyebrow {
    color: #fff !important;
}


/* ---------- CTA ---------- */

.up-cta {
    background: #0879b9 !important;
    color: #fff !important;
}

.up-cta h2,
.up-cta p {
    color: #fff !important;
}

.up-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.up-cta .up-btn {
    background: #fff !important;
    color: #0879b9 !important;
}


/* ---------- CLIENTI ---------- */
/* Non mostriamo clienti finché non decidiamo quali sono reali */

.up-clients {
    display: none !important;
}


/* ---------- PAGINE SERVIZI / TECNOLOGIA / CONTATTI ---------- */

.up-page-hero {
    min-height: 340px !important;
    display: flex !important;
    align-items: center !important;
    color: #fff !important;

    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
}

.up-page-hero-services {
    background-image:
        linear-gradient(90deg,rgba(0,35,60,.88),rgba(0,50,85,.30)),
        url('/images/upprovider/header/upprovider-servizi-header.jpg')
        !important;
}

.up-page-hero-tech {
    background-image:
        linear-gradient(90deg,rgba(0,35,60,.88),rgba(0,50,85,.30)),
        url('/images/upprovider/header/upprovider-tecnologie-header.jpg')
        !important;
}

.up-page-hero-contact {
    background-image:
        linear-gradient(90deg,rgba(0,35,60,.88),rgba(0,50,85,.30)),
        url('/images/upprovider/header/upprovider-contatti-header.jpg')
        !important;
}

.up-page-hero h1,
.up-page-hero p,
.up-page-hero .up-eyebrow {
    color: #fff !important;
}


/* ---------- FOOTER ---------- */

.footer {
    background: #172b39 !important;
    color: #dce5ea !important;
    margin-top: 0 !important;
}

.up-footer-inner {
    width: min(1180px,calc(100% - 40px));
    margin: auto;
    padding: 55px 0 40px;

    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 45px;
}

.up-footer-brand img {
    width: 120px;
    height: auto;
}

.up-footer-inner h3 {
    color: #fff;
}

.up-footer-inner a {
    display: block;
    color: #dce5ea;
    text-decoration: none;
    margin: 7px 0;
}

.up-footer-copy {
    border-top: 1px solid rgba(255,255,255,.15);
    padding: 18px;
    text-align: center;
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 950px) {

    .up-services-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .up-footer-inner {
        grid-template-columns: repeat(2,1fr);
    }

}


/* ============================================================
   SMARTPHONE
   ============================================================ */

@media (max-width: 768px) {

    .container-header .grid-child {
        width: calc(100% - 30px);
    }

    .container-header .navbar-brand img {
        width: 160px !important;
    }

    /*
     * Lasciamo a Cassiopeia il suo pulsante hamburger.
     * Non forziamo il menu desktop sul telefono.
     */

    .container-header .container-nav {
        flex-wrap: wrap;
    }

    .container-header .mod-menu {
        display: block;
        width: 100%;
    }

    .container-header .mod-menu > li > a {
        padding: 11px 8px !important;
    }

    .up-hero {
        min-height: 470px !important;
        background-position: 60% center !important;
    }

    .up-hero-inner {
        width: calc(100% - 36px) !important;
        padding: 55px 0 !important;
    }

    .up-hero h1 {
        font-size: clamp(2.25rem,10vw,3.3rem) !important;
    }

    .up-hero p {
        font-size: 1.05rem !important;
    }

    .up-inner {
        width: calc(100% - 36px) !important;
    }

    .up-section {
        padding: 55px 0 !important;
    }

    .up-services-grid {
        grid-template-columns: 1fr;
    }

    .up-cta-inner {
        display: block;
    }

    .up-cta .up-btn {
        margin-top: 20px;
    }

    .up-page-hero {
        min-height: 280px !important;
    }

    .up-contact-grid {
        grid-template-columns: 1fr !important;
        gap: 40px !important;
    }

    .up-footer-inner {
        grid-template-columns: 1fr;
        gap: 30px;
    }

}


/* piccolo telefono */

@media (max-width: 420px) {

    .up-hero h1 {
        font-size: 2.15rem !important;
    }

    .up-hero {
        min-height: 440px !important;
    }

}


/* ============================================================
   UPPROVIDER - FINAL 2026
   old identity / modern responsive layout
   ============================================================ */


/* ------------------------------------------------------------
   CLIENTI
   ------------------------------------------------------------ */

.up-clients,
section.up-clients {
    display: none !important;
}


/* ------------------------------------------------------------
   TOP CONTACT BAR
   ------------------------------------------------------------ */

.container-topbar {
    background: #26343d !important;
    color: #dce5ea;
}

.up-topbar-module {
    width: 100%;
}

.up-topbar-inner {
    width: min(1180px,calc(100% - 40px));
    min-height: 38px;

    margin: auto;

    display: flex;
    align-items: center;
    gap: 28px;

    font-size: .88rem;
}

.up-top-contact {
    display: flex;
    align-items: center;
    gap: 7px;

    color: #dce5ea !important;
    text-decoration: none !important;
}

.up-top-contact:hover {
    color: #fff !important;
}

.up-top-icon {
    opacity: .8;
}

.up-top-support {
    margin-left: auto;

    color: #fff !important;
    text-decoration: none !important;
    font-weight: 600;
}


/* ------------------------------------------------------------
   MAIN HEADER
   ------------------------------------------------------------ */

.container-header {
    background: #fff !important;
    box-shadow: 0 2px 14px rgba(0,0,0,.08);
    position: relative;
    z-index: 1000;
}

.container-header .container-nav {
    width: min(1180px,calc(100% - 40px)) !important;
    max-width: 1180px !important;

    min-height: 88px;

    margin: auto !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
}

.container-header .navbar-brand {
    margin: 0 auto 0 0 !important;
    padding: 8px 0 !important;
}

.container-header .navbar-brand img {
    width: 190px !important;
    max-height: 65px !important;
    height: auto !important;
    object-fit: contain;
}

.container-header nav {
    margin-left: auto;
}

.container-header .mod-menu {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin: 0;
}

.container-header .mod-menu > li > a {
    display: flex;
    align-items: center;

    min-height: 88px;

    padding: 0 17px !important;

    color: #142b3c !important;
    font-weight: 700;
    font-size: .94rem;

    text-decoration: none !important;
    text-transform: uppercase;

    border-bottom: 3px solid transparent;
}

.container-header .mod-menu > li.active > a,
.container-header .mod-menu > li > a:hover {
    color: #087fc2 !important;
    border-bottom-color: #087fc2;
}


/* ------------------------------------------------------------
   DROPDOWN DESKTOP
   ------------------------------------------------------------ */

@media (min-width: 769px) {

    .container-header .metismenu.mod-menu .metismenu-item {
        position: relative;
    }

    .container-header .mod-menu .metismenu-item > ul {
        min-width: 275px !important;
        max-width: 330px;

        padding: 8px 0 !important;

        background: #fff !important;
        border: 0 !important;
        border-top: 3px solid #087fc2 !important;

        box-shadow: 0 15px 35px rgba(0,0,0,.17) !important;
    }

    .container-header .mod-menu .metismenu-item > ul a {
        display: block;

        padding: 9px 16px !important;

        color: #1b303e !important;
        font-size: .90rem;
        font-weight: 500;

        line-height: 1.35;
        white-space: normal;
        text-transform: none;
    }

    .container-header .mod-menu .metismenu-item > ul a:hover {
        color: #087fc2 !important;
        background: #f1f6f9;
    }

}


/* ------------------------------------------------------------
   HOME HERO
   ------------------------------------------------------------ */

.up-hero {
    min-height: 510px !important;

    display: flex !important;
    align-items: center !important;

    background:
        linear-gradient(
            90deg,
            rgba(4,28,45,.77) 0%,
            rgba(4,35,57,.48) 55%,
            rgba(4,35,57,.18) 100%
        ),
        url('/images/upprovider/homepage/upprovider-slideshow.jpg')
        center center / cover no-repeat !important;

    color: #fff !important;
}

.up-hero-inner {
    width: min(1180px,calc(100% - 40px)) !important;
    margin: auto !important;

    padding: 80px 0 !important;
}

.up-hero .up-eyebrow {
    color: #fff !important;
    font-size: .78rem;
    letter-spacing: .20em;
}

.up-hero h1 {
    max-width: 900px;

    margin: 12px 0 20px !important;

    color: #fff !important;

    font-size: clamp(2.7rem,4.7vw,4.3rem) !important;
    font-weight: 800;
    line-height: 1.06 !important;

    text-shadow: 0 2px 12px rgba(0,0,0,.20);
}

.up-hero p {
    max-width: 720px;

    color: #fff !important;

    font-size: 1.2rem !important;
    line-height: 1.6;
}


/* ------------------------------------------------------------
   COMMON WIDTH
   ------------------------------------------------------------ */

.up-inner {
    width: min(1180px,calc(100% - 40px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.up-section {
    padding: 70px 0 !important;
}


/* ------------------------------------------------------------
   SERVIZI
   ------------------------------------------------------------ */

.up-services {
    background: #fff !important;
}

.up-services-grid {
    display: grid !important;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 18px;

    margin-top: 38px;
}

.up-service {
    padding: 28px 23px;

    background: #fff;

    border: 1px solid #e2e9ed;
    border-radius: 3px;

    transition:
        transform .18s ease,
        box-shadow .18s ease;
}

.up-service:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(21,53,73,.10);
}

.up-service img {
    width: 60px !important;
    height: 60px !important;

    object-fit: contain;

    margin-bottom: 20px;
}

.up-service h3 {
    color: #17354b !important;
}


/* ------------------------------------------------------------
   WHY / INFRASTRUCTURE
   ------------------------------------------------------------ */

.up-why {
    background: #f4f7f9 !important;
}


/* ------------------------------------------------------------
   2026 SECURITY SECTION
   ------------------------------------------------------------ */

.up-security-2026 {
    background:
        linear-gradient(
            110deg,
            #0c2b40 0%,
            #104768 100%
        ) !important;
}

.up-security-heading h2 {
    color: #fff !important;
}


/* ------------------------------------------------------------
   PARALLAX
   ------------------------------------------------------------ */

.up-parallax {
    background:
        linear-gradient(
            rgba(0,37,61,.78),
            rgba(0,37,61,.78)
        ),
        url('/images/upprovider/homepage/upprovider-parallax-bottom.jpg')
        center center / cover no-repeat !important;
}


/* ------------------------------------------------------------
   PAGE HERO
   ------------------------------------------------------------ */

.up-page-hero {
    min-height: 330px !important;
}

.up-page-hero h1 {
    color: #fff !important;
    font-size: clamp(3rem,5vw,4.2rem) !important;
}


/* ------------------------------------------------------------
   FOOTER
   ------------------------------------------------------------ */

.footer {
    background: #172c3a !important;
}

.up-footer-inner {
    width: min(1180px,calc(100% - 40px));
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 1000px) and (min-width: 769px) {

    .container-header .navbar-brand img {
        width: 155px !important;
    }

    .container-header .mod-menu > li > a {
        padding-left: 10px !important;
        padding-right: 10px !important;
        font-size: .82rem;
    }

    .up-services-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

}


/* ============================================================
   SMARTPHONE
   ============================================================ */

@media (max-width: 768px) {

    /* top */

    .up-topbar-inner {
        width: calc(100% - 30px);
        min-height: 34px;

        gap: 12px;

        font-size: .78rem;
    }

    .up-top-support {
        display: none;
    }


    /* header */

    .container-header .container-nav {
        width: calc(100% - 30px) !important;
        min-height: 70px;

        flex-wrap: wrap !important;
    }

    .container-header .navbar-brand img {
        width: 145px !important;
    }


    /*
     * Il bottone hamburger è quello nativo Cassiopeia.
     */

    .container-header .navbar-toggler {
        margin-left: auto;

        border: 0;
        background: #087fc2;

        color: #fff;

        padding: 9px 11px;
    }


    /*
     * Menu mobile stile vecchio sito:
     * pannello blu, voci grandi, submenu sotto.
     */

    .container-header nav {
        width: 100%;
    }

    .container-header .mod-menu {
        display: block !important;

        width: 100%;

        margin: 0;
        padding: 0;

        background: #087fc2;
    }

    .container-header .mod-menu > li {
        width: 100%;
        border-bottom: 1px solid rgba(255,255,255,.15);
    }

    .container-header .mod-menu > li > a {
        min-height: auto !important;

        display: block;

        padding: 15px 18px !important;

        color: #fff !important;

        border: 0 !important;
    }

    .container-header .mod-menu > li.active > a {
        color: #fff !important;
        background: rgba(0,0,0,.10);
    }

    .container-header .mod-menu .metismenu-item > ul {
        position: static !important;

        width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #076eaa !important;

        border: 0 !important;
        box-shadow: none !important;
    }

    .container-header .mod-menu .metismenu-item > ul li {
        border-top: 1px solid rgba(255,255,255,.10);
    }

    .container-header .mod-menu .metismenu-item > ul a {
        display: block;

        padding: 12px 30px !important;

        color: #fff !important;

        font-size: .90rem;
    }


    /* hero */

    .up-hero {
        min-height: 430px !important;

        background-position: 56% center !important;
    }

    .up-hero-inner {
        width: calc(100% - 34px) !important;

        padding: 50px 0 !important;
    }

    .up-hero h1 {
        font-size: 2.25rem !important;
        line-height: 1.08 !important;
    }

    .up-hero p {
        font-size: 1rem !important;
    }


    /* sections */

    .up-inner {
        width: calc(100% - 34px) !important;
    }

    .up-section {
        padding: 50px 0 !important;
    }

    .up-services-grid {
        grid-template-columns: 1fr !important;
    }


    /* security */

    .up-security-heading,
    .up-security-grid {
        grid-template-columns: 1fr !important;
    }


    /* page hero */

    .up-page-hero {
        min-height: 260px !important;
    }

    .up-page-hero h1 {
        font-size: 2.45rem !important;
    }


    /* footer */

    .up-footer-inner {
        grid-template-columns: 1fr !important;
    }

}


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

@media (max-width: 430px) {

    .up-top-contact:nth-child(2) {
        display: none;
    }

    .up-hero h1 {
        font-size: 2rem !important;
    }

}


/* ============================================================
   UPPROVIDER - VISUAL FIX DEFINITIVO
   ============================================================ */


/* ============================================================
   HEADER DESKTOP
   ============================================================ */

@media (min-width: 769px) {

    .container-header {
        background: #fff !important;
    }

    /*
     * Il logo e il menu devono stare compatti.
     */

    .container-header .container-nav {
        width: min(1180px,calc(100% - 40px)) !important;
        max-width: 1180px !important;

        min-height: 72px !important;

        margin: 0 auto !important;
        padding: 0 !important;

        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    .container-header .navbar-brand {
        flex: 0 0 auto !important;

        margin: 0 45px 0 0 !important;
        padding: 7px 0 !important;
    }

    .container-header .navbar-brand img {
        width: 170px !important;
        max-height: 58px !important;
        height: auto !important;
    }

    .container-header nav {
        flex: 0 1 auto !important;

        width: auto !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .container-header .mod-menu {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;

        width: auto !important;

        margin: 0 !important;
        padding: 0 !important;

        background: transparent !important;
    }

    .container-header .mod-menu > li {
        width: auto !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
    }

    .container-header .mod-menu > li > a {
        display: flex !important;
        align-items: center !important;

        min-height: 72px !important;

        padding: 0 16px !important;

        color: #102c40 !important;

        font-size: .90rem !important;
        font-weight: 700 !important;

        line-height: 1 !important;
        text-transform: uppercase !important;

        border: 0 !important;
        border-bottom: 3px solid transparent !important;
    }

    .container-header .mod-menu > li.active > a,
    .container-header .mod-menu > li > a:hover {
        color: #087fc2 !important;
        border-bottom-color: #087fc2 !important;
    }


    /* --------------------------------------------------------
       DROPDOWN COME VECCHIO SITO
       -------------------------------------------------------- */

    .container-header .metismenu.mod-menu
    .metismenu-item > ul {
        min-width: 240px !important;
        max-width: 290px !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #0879b9 !important;

        border: 0 !important;
        border-radius: 0 !important;

        box-shadow: 0 8px 18px rgba(0,0,0,.20) !important;
    }

    .container-header .metismenu.mod-menu
    .metismenu-item > ul > li {
        margin: 0 !important;
        padding: 0 !important;

        border-bottom:
            1px solid rgba(255,255,255,.12) !important;
    }

    .container-header .metismenu.mod-menu
    .metismenu-item > ul a {
        display: block !important;

        padding: 13px 20px !important;

        background: transparent !important;

        color: #fff !important;

        font-size: .88rem !important;
        font-weight: 600 !important;

        line-height: 1.35 !important;
        text-transform: uppercase !important;

        border: 0 !important;
    }

    .container-header .metismenu.mod-menu
    .metismenu-item > ul a:hover {
        background: #07679e !important;
        color: #fff !important;
    }

}


/* ============================================================
   TOP BAR
   ============================================================ */

.container-topbar {
    background: #273740 !important;
}

.up-topbar-inner {
    min-height: 34px !important;
}

.up-top-contact,
.up-top-support {
    color: #fff !important;
}


/* ============================================================
   HERO HOME
   ============================================================ */

.up-hero {
    min-height: 475px !important;
}

.up-hero-inner {
    padding-top: 65px !important;
    padding-bottom: 65px !important;
}

.up-hero h1 {
    max-width: 800px !important;

    font-size: clamp(2.7rem,4.5vw,4rem) !important;
    line-height: 1.07 !important;
}


/* ============================================================
   PERCHÉ SCEGLIERE UPPROVIDER
   Torniamo al blu del sito originale.
   ============================================================ */

.up-why {
    position: relative !important;

    background: #087fc2 !important;

    color: #fff !important;

    padding-top: 65px !important;
    padding-bottom: 65px !important;
}


/*
 * Qualunque vecchia regola abbia lasciato colori strani
 * viene neutralizzata qui.
 */

.up-why *,
.up-why p,
.up-why li,
.up-why strong,
.up-why b {
    color: #fff !important;
}

.up-why .up-eyebrow {
    color: rgba(255,255,255,.78) !important;
}

.up-why h1,
.up-why h2,
.up-why h3,
.up-why h4 {
    color: #fff !important;
}


/*
 * Il titolo non deve occupare tutta la pagina.
 */

.up-why h2 {
    max-width: 600px !important;

    margin-top: 8px !important;
    margin-bottom: 18px !important;

    font-size: clamp(2.2rem,4vw,3.3rem) !important;
    line-height: 1.05 !important;
}

.up-why p {
    opacity: 1 !important;
}


/*
 * Se il contenuto usa colonne/grid recuperate dalla Home,
 * le rendiamo leggibili.
 */

.up-why .up-columns,
.up-why .up-grid,
.up-why .up-why-grid {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;

    gap: 50px !important;

    margin-top: 35px !important;
}

.up-why ul {
    margin-bottom: 0 !important;
}

.up-why li {
    margin-bottom: 7px !important;
}


/* ============================================================
   SERVIZI
   ============================================================ */

.up-services,
.up-tech {
    background: #fff !important;
}

.up-services .up-eyebrow,
.up-tech .up-eyebrow {
    color: #087fc2 !important;
}

.up-services h2,
.up-tech h2 {
    color: #15364d !important;
}


/* ============================================================
   SECURITY 2026
   ============================================================ */

.up-security-2026 {
    background: #102f44 !important;
}

.up-security-2026 *,
.up-security-2026 p {
    color: #dce7ed !important;
}

.up-security-2026 h2,
.up-security-2026 h3,
.up-security-2026 strong {
    color: #fff !important;
}

.up-security-2026 .up-eyebrow,
.up-security-2026 a {
    color: #65c6f4 !important;
}


/* ============================================================
   CLIENTI - NON MOSTRARE
   ============================================================ */

.up-clients,
section.up-clients {
    display: none !important;
}


/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 768px) {

    .container-header .container-nav {
        width: 100% !important;

        min-height: 68px !important;

        padding: 0 16px !important;

        display: flex !important;
        align-items: center !important;
    }

    .container-header .navbar-brand {
        margin: 0 auto 0 0 !important;
    }

    .container-header .navbar-brand img {
        width: 145px !important;
    }

    .container-header .navbar-toggler {
        display: block !important;

        margin-left: auto !important;

        background: #087fc2 !important;
        color: #fff !important;

        border: 0 !important;
        border-radius: 2px !important;

        padding: 9px 12px !important;
    }


    /* MENU MOBILE BLU */

    .container-header nav {
        width: 100% !important;
    }

    .container-header .mod-menu {
        width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #087fc2 !important;
    }

    .container-header .mod-menu > li {
        width: 100% !important;

        border-bottom:
            1px solid rgba(255,255,255,.15) !important;
    }

    .container-header .mod-menu > li > a {
        min-height: auto !important;

        display: block !important;

        padding: 14px 18px !important;

        color: #fff !important;

        font-size: .92rem !important;
        font-weight: 700 !important;

        text-transform: uppercase !important;

        border: 0 !important;
    }

    .container-header .mod-menu
    .metismenu-item > ul {
        position: static !important;

        width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #076da7 !important;

        box-shadow: none !important;
        border: 0 !important;
    }

    .container-header .mod-menu
    .metismenu-item > ul a {
        display: block !important;

        padding: 12px 30px !important;

        color: #fff !important;

        font-size: .88rem !important;

        text-transform: none !important;
    }


    /* TOP BAR */

    .up-topbar-inner {
        width: calc(100% - 28px) !important;
    }

    .up-top-support {
        display: none !important;
    }


    /* HERO */

    .up-hero {
        min-height: 390px !important;
    }

    .up-hero-inner {
        padding-top: 45px !important;
        padding-bottom: 45px !important;
    }

    .up-hero h1 {
        font-size: 2.2rem !important;
    }


    /* WHY */

    .up-why {
        padding-top: 50px !important;
        padding-bottom: 50px !important;
    }

    .up-why h2 {
        font-size: 2.25rem !important;
    }

    .up-why .up-columns,
    .up-why .up-grid,
    .up-why .up-why-grid {
        grid-template-columns: 1fr !important;
        gap: 25px !important;
    }

}


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

@media (max-width: 430px) {

    .up-top-contact:nth-child(2) {
        display: none !important;
    }

    .up-hero h1 {
        font-size: 1.95rem !important;
    }

}

/* ============================================================
   UPPROVIDER HEADER - OLD SITE STYLE / 2026
   ============================================================ */


/* ---------- TOP BAR ---------- */

body .container-topbar {
    background: #eef0f2 !important;
    color: #7a858d !important;
}

body .up-topbar-inner {
    width: min(1150px, calc(100% - 40px)) !important;
    min-height: 48px !important;

    margin: 0 auto !important;

    display: flex !important;
    align-items: center !important;
    gap: 22px !important;

    font-size: 14px !important;
}

body .up-top-contact {
    color: #7a858d !important;
    font-weight: 500 !important;
    text-decoration: none !important;
}

body .up-top-contact:hover {
    color: #087fc2 !important;
}

body .up-top-icon {
    display: none !important;
}


/* assistenza come vecchio sito */

body .up-top-support {
    margin-left: auto !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 38px !important;

    padding: 0 20px !important;

    background: #087fc2 !important;

    color: #fff !important;

    border-radius: 24px !important;

    font-size: 12px !important;
    font-weight: 800 !important;

    text-transform: uppercase !important;
    text-decoration: none !important;
}

body .up-top-support:hover {
    background: #066ca6 !important;
}


/* ============================================================
   DESKTOP HEADER
   ============================================================ */

@media (min-width: 769px) {

    body .container-header {
        position: relative !important;

        min-height: 82px !important;

        background: #fff !important;

        box-shadow: none !important;

        z-index: 5000 !important;
    }

    body .container-header .container-nav {
        position: relative !important;

        width: min(1150px, calc(100% - 40px)) !important;
        max-width: 1150px !important;

        min-height: 82px !important;

        margin: 0 auto !important;
        padding: 0 !important;

        display: flex !important;
        flex-flow: row nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;

        overflow: visible !important;
    }


    /* LOGO */

    body .container-header .navbar-brand {
        flex: 0 0 165px !important;

        width: 165px !important;

        margin: 0 35px 0 0 !important;
        padding: 0 !important;
    }

    body .container-header .navbar-brand img {
        display: block !important;

        width: 160px !important;
        height: auto !important;
        max-height: 60px !important;

        margin: 0 !important;
    }


    /* NAV */

    body .container-header nav,
    body .container-header .navbar-collapse {
        position: static !important;

        flex: 0 0 auto !important;

        width: auto !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: visible !important;
    }

    body .container-header .metismenu.mod-menu {
        position: static !important;

        display: flex !important;
        flex-flow: row nowrap !important;
        align-items: center !important;

        width: auto !important;

        margin: 0 !important;
        padding: 0 !important;

        background: transparent !important;

        list-style: none !important;

        overflow: visible !important;
    }


    /* VOCI PRINCIPALI */

    body .container-header
    .metismenu.mod-menu > li {
        position: relative !important;

        display: flex !important;
        align-items: center !important;

        width: auto !important;

        margin: 0 !important;
        padding: 0 !important;

        background: transparent !important;

        border: 0 !important;
    }

    body .container-header
    .metismenu.mod-menu > li > a {
        display: flex !important;
        align-items: center !important;

        min-height: 82px !important;

        margin: 0 !important;
        padding: 0 13px !important;

        background: transparent !important;

        color: #111 !important;

        font-family: Arial, Helvetica, sans-serif !important;
        font-size: 13px !important;
        font-weight: 800 !important;

        line-height: 1 !important;

        text-transform: uppercase !important;
        text-decoration: none !important;

        border: 0 !important;
    }

    body .container-header
    .metismenu.mod-menu > li > a:hover,

    body .container-header
    .metismenu.mod-menu > li.active > a {
        color: #087fc2 !important;
        background: transparent !important;
    }


    /* ========================================================
       FRECCIA ACCANTO AL TESTO
       ======================================================== */

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > button.mm-toggler {

        position: static !important;

        flex: 0 0 22px !important;

        width: 22px !important;
        height: 82px !important;

        margin: 0 3px 0 -9px !important;
        padding: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        background: transparent !important;

        color: #111 !important;

        border: 0 !important;
        box-shadow: none !important;
    }

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > button.mm-toggler:hover {
        color: #087fc2 !important;
    }


    /* ========================================================
       DROPDOWN BLU
       ======================================================== */

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > ul {

        position: absolute !important;

        top: 82px !important;
        left: 0 !important;

        z-index: 999999 !important;

        width: 240px !important;
        min-width: 240px !important;
        max-width: 300px !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #0878b7 !important;

        border: 0 !important;
        border-radius: 0 !important;

        box-shadow: 0 8px 18px rgba(0,0,0,.20) !important;

        overflow: visible !important;
    }


    /* CHIUSO */

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > ul.mm-collapse:not(.mm-show) {
        display: none !important;
    }


    /* APERTO */

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > ul.mm-collapse.mm-show {
        display: block !important;

        height: auto !important;
    }


    /* RIGHE */

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > ul > li {

        display: block !important;

        width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #0878b7 !important;

        border: 0 !important;
        border-bottom:
            1px solid rgba(255,255,255,.10) !important;
    }


    /* LINK */

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > ul a {

        display: block !important;

        width: 100% !important;

        margin: 0 !important;
        padding: 17px 20px !important;

        background: #0878b7 !important;

        color: #fff !important;

        font-family: Arial, Helvetica, sans-serif !important;
        font-size: 12px !important;
        font-weight: 600 !important;

        line-height: 1.25 !important;

        text-transform: uppercase !important;
        text-decoration: none !important;

        border: 0 !important;
    }

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > ul a:hover {

        background: #09689c !important;
        color: #fff !important;
    }


    /* hamburger desktop a destra: non ci serve */

    body .container-header .navbar-toggler {
        display: none !important;
    }

}


/* ============================================================
   MOBILE - STILE MENU LATERALE DEL VECCHIO SITO
   ============================================================ */

@media (max-width: 768px) {

    body .container-topbar {
        min-height: 38px !important;
    }

    body .up-topbar-inner {
        width: calc(100% - 28px) !important;
        min-height: 38px !important;

        font-size: 12px !important;
    }

    body .up-top-support {
        display: none !important;
    }


    /* HEADER */

    body .container-header {
        background: #fff !important;
    }

    body .container-header .container-nav {

        width: 100% !important;
        min-height: 70px !important;

        margin: 0 !important;
        padding: 0 16px !important;

        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
    }

    body .container-header .navbar-brand {
        margin: 0 auto 0 0 !important;
        padding: 7px 0 !important;
    }

    body .container-header .navbar-brand img {
        width: 145px !important;
        height: auto !important;
    }


    /* HAMBURGER */

    body .container-header .navbar-toggler {

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 42px !important;
        height: 42px !important;

        margin-left: auto !important;
        padding: 0 !important;

        background: #087fc2 !important;

        color: #fff !important;

        border: 0 !important;
        border-radius: 0 !important;
    }


    /* MENU APERTO */

    body .container-header nav,
    body .container-header .navbar-collapse {

        width: calc(100% + 32px) !important;

        margin-left: -16px !important;
        margin-right: -16px !important;

        padding: 0 !important;
    }

    body .container-header .metismenu.mod-menu {

        display: block !important;

        width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #087fc2 !important;
    }

    body .container-header
    .metismenu.mod-menu > li {

        position: relative !important;

        display: block !important;

        width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #087fc2 !important;

        border-bottom:
            1px solid rgba(255,255,255,.15) !important;
    }

    body .container-header
    .metismenu.mod-menu > li > a {

        display: block !important;

        width: 100% !important;

        min-height: 0 !important;

        margin: 0 !important;

        padding:
            16px 55px
            16px 20px !important;

        color: #fff !important;

        font-size: 13px !important;
        font-weight: 700 !important;

        text-transform: uppercase !important;

        border: 0 !important;
    }


    /* FRECCIA MOBILE */

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > button.mm-toggler {

        position: absolute !important;

        top: 0 !important;
        right: 0 !important;

        width: 52px !important;
        height: 48px !important;

        margin: 0 !important;
        padding: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        background: transparent !important;

        color: #fff !important;

        border: 0 !important;
    }


    /* SUBMENU */

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > ul {

        position: static !important;

        width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #076da5 !important;

        border: 0 !important;
        box-shadow: none !important;
    }

    body .container-header
    .metismenu.mod-menu
    .metismenu-item > ul a {

        display: block !important;

        padding: 13px 34px !important;

        background: #076da5 !important;

        color: #fff !important;

        font-size: 12px !important;
        font-weight: 500 !important;

        text-transform: uppercase !important;
        text-decoration: none !important;
    }

}


/* ============================================================
   CONTENUTO NON DEVE PASSARE SOPRA AL MENU
   ============================================================ */

body main,
body .site-grid,
body .com-content-article {
    position: relative;
    z-index: 1;
}

body .container-header {
    z-index: 5000 !important;
}


/* ============================================================
   UPPROVIDER - HEADER / MENU FINAL
   ============================================================ */

/* HEADER */
body .container-header {
    background: #fff !important;
    background-image: none !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
    color: #0b2d43 !important;
}

/* TOPBAR */
body .container-header .container-topbar {
    background: #eef0f2 !important;
    color: #78858d !important;
    padding: 0 !important;
}

body .up-topbar-inner {
    width: min(1150px, calc(100% - 40px)) !important;
    min-height: 48px !important;
    margin: 0 auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 24px !important;
}

body .up-top-contact {
    color: #78858d !important;
    text-decoration: none !important;
    font-size: 14px !important;
}

body .up-top-support {
    margin-left: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #087fc1 !important;
    color: #fff !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    padding: 12px 23px !important;
    border-radius: 24px !important;
}

/* LOGO */
body .container-header > .grid-child:not(.container-nav) {
    width: min(1150px, calc(100% - 40px)) !important;
    margin: 0 auto !important;
    padding: 17px 0 5px !important;
}

body .container-header .navbar-brand {
    margin: 0 !important;
    padding: 0 !important;
}

body .container-header .brand-logo img {
    width: 168px !important;
    height: auto !important;
    display: block !important;
}

/* ============================================================
   DESKTOP MENU
   ============================================================ */

@media (min-width: 992px) {

    body .container-header .container-nav {
        width: min(1150px, calc(100% - 40px)) !important;
        margin: 0 auto !important;
        padding: 0 !important;
        display: block !important;
    }

    body #mod-menu144 {
        display: flex !important;
        flex-direction: row !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    body #mod-menu144 > li {
        position: relative !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        margin: 0 5px 0 0 !important;
        padding: 0 !important;
        min-height: 58px !important;
        overflow: visible !important;
    }

    body #mod-menu144 > li > a {
        display: flex !important;
        align-items: center !important;
        height: 58px !important;
        padding: 0 16px !important;
        margin: 0 !important;
        border: 0 !important;
        color: #071d2b !important;
        background: transparent !important;
        text-decoration: none !important;
        text-transform: uppercase !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        line-height: 58px !important;
        white-space: nowrap !important;
    }

    /* freccia Joomla: resta ACCANTO alla voce */
    body #mod-menu144 > li.parent > .mod-menu__toggle-sub {
        position: static !important;
        display: flex !important;
        flex: 0 0 30px !important;
        width: 30px !important;
        height: 58px !important;
        margin: 0 7px 0 -13px !important;
        padding: 0 !important;
        align-items: center !important;
        justify-content: center !important;
        border: 0 !important;
        background: transparent !important;
        color: #071d2b !important;
        box-shadow: none !important;
        cursor: pointer !important;
    }

    body #mod-menu144 > li.parent > .mod-menu__toggle-sub span.icon-chevron-down {
        display: block !important;
        margin: 0 !important;
        font-size: 13px !important;
    }

    body #mod-menu144 > li.active > a,
    body #mod-menu144 > li.current > a,
    body #mod-menu144 > li:hover > a {
        color: #087fc1 !important;
    }

    body #mod-menu144 > li.active::after,
    body #mod-menu144 > li.current::after {
        content: "" !important;
        position: absolute !important;
        height: 3px !important;
        left: 14px !important;
        right: 14px !important;
        bottom: 0 !important;
        background: #087fc1 !important;
    }

    /* DROPDOWN */
    body #mod-menu144 > li > .mod-menu__sub {
        position: absolute !important;
        z-index: 10000 !important;
        top: 100% !important;
        left: 0 !important;

        display: none !important;

        width: 255px !important;
        min-width: 255px !important;

        margin: 0 !important;
        padding: 0 !important;

        background: #087fc1 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: 0 8px 18px rgba(0,0,0,.18) !important;

        list-style: none !important;
    }

    body #mod-menu144 > li:hover > .mod-menu__sub,
    body #mod-menu144 > li:focus-within > .mod-menu__sub,
    body #mod-menu144 > li > .mod-menu__toggle-sub[aria-expanded="true"] + .mod-menu__sub {
        display: block !important;
    }

    body #mod-menu144 .mod-menu__sub > li {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border-bottom: 1px solid rgba(255,255,255,.12) !important;
    }

    body #mod-menu144 .mod-menu__sub > li:last-child {
        border-bottom: 0 !important;
    }

    body #mod-menu144 .mod-menu__sub > li > a {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 13px 20px !important;
        color: #fff !important;
        background: transparent !important;
        text-decoration: none !important;
        text-transform: uppercase !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        line-height: 1.45 !important;
    }

    body #mod-menu144 .mod-menu__sub > li > a:hover,
    body #mod-menu144 .mod-menu__sub > li > a:focus {
        background: #076fa8 !important;
        color: #fff !important;
    }
}


/* ============================================================
   SMARTPHONE / TABLET
   ============================================================ */

@media (max-width: 991.98px) {

    body .up-topbar-inner {
        width: calc(100% - 28px) !important;
        min-height: 42px !important;
        gap: 12px !important;
    }

    body .up-top-contact {
        font-size: 12px !important;
    }

    body .up-top-icon {
        display: none !important;
    }

    body .up-top-support {
        padding: 8px 12px !important;
        font-size: 10px !important;
    }

    body .container-header > .grid-child:not(.container-nav) {
        width: calc(100% - 28px) !important;
        padding: 14px 0 !important;
    }

    body .container-header .brand-logo img {
        width: 145px !important;
    }

    body .container-header .container-nav {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body #mod-menu144 {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }

    body #mod-menu144 > li {
        position: relative !important;
        display: grid !important;
        grid-template-columns: 1fr 54px !important;
        width: 100% !important;
        min-height: 52px !important;
        margin: 0 !important;
        padding: 0 !important;
        border-top: 1px solid #e8edf0 !important;
    }

    body #mod-menu144 > li:not(.parent) {
        display: block !important;
    }

    body #mod-menu144 > li > a {
        display: flex !important;
        align-items: center !important;
        min-height: 52px !important;
        margin: 0 !important;
        padding: 0 22px !important;
        color: #0b2d43 !important;
        background: #fff !important;
        text-decoration: none !important;
        text-transform: uppercase !important;
        font-size: 13px !important;
        font-weight: 700 !important;
    }

    body #mod-menu144 > li.parent > .mod-menu__toggle-sub {
        position: static !important;
        display: flex !important;
        width: 54px !important;
        height: 52px !important;
        margin: 0 !important;
        padding: 0 !important;
        align-items: center !important;
        justify-content: center !important;
        border: 0 !important;
        border-left: 1px solid #e8edf0 !important;
        background: #fff !important;
        color: #0b2d43 !important;
    }

    body #mod-menu144 > li > .mod-menu__sub {
        position: static !important;
        grid-column: 1 / -1 !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #087fc1 !important;
        box-shadow: none !important;
    }

    body #mod-menu144 .mod-menu__sub > li {
        margin: 0 !important;
        padding: 0 !important;
        border-bottom: 1px solid rgba(255,255,255,.15) !important;
    }

    body #mod-menu144 .mod-menu__sub > li > a {
        display: block !important;
        padding: 13px 28px !important;
        color: #fff !important;
        background: transparent !important;
        text-decoration: none !important;
        font-size: 13px !important;
    }

    body #mod-menu144 > li.active > a,
    body #mod-menu144 > li.current > a {
        color: #087fc1 !important;
    }
}


/* UPPROVIDER_PRIVACY_MAPS_CSS */

.up-map-consent {
    min-height: 380px;
    padding: 40px 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg,#073451,#087fc1);
    color: #fff;
    text-align: center;
}

.up-map-consent-inner {
    max-width: 600px;
}

.up-map-consent strong {
    display: block;
    margin-bottom: 15px;
    font-size: 29px;
}

.up-map-consent p {
    margin: 8px 0;
    color: #fff;
}

.up-map-load {
    margin: 20px 0;
    padding: 13px 24px;
    border: 2px solid #fff;
    border-radius: 4px;
    background: #fff;
    color: #087fc1;
    font-weight: 700;
    cursor: pointer;
}

.up-map-load:hover {
    background: transparent;
    color: #fff;
}

.up-map-consent small {
    display: block;
}

.up-map-consent a {
    color: #fff;
    text-decoration: underline;
}



/* ==========================================================
   UPPROVIDER CONTACT FORM
   ========================================================== */

.up-contact-page {
    max-width: 1040px;
    margin: 0 auto;
    padding: 55px 28px 80px;
}

.up-contact-intro {
    max-width: 760px;
    margin: 0 auto 34px;
    text-align: center;
}

.up-contact-kicker {
    display: inline-block;
    margin-bottom: 10px;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #087fbd;
}

.up-contact-intro h1 {
    margin: 0 0 14px;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.08;
    font-weight: 800;
    color: #17334d;
}

.up-contact-intro p {
    max-width: 650px;
    margin: 0 auto;
    font-size: 1.08rem;
    line-height: 1.7;
    color: #647484;
}

.up-contact-card {
    max-width: 900px;
    margin: 0 auto;
    padding: 38px 42px 42px;
    background: #fff;
    border: 1px solid #e4e9ed;
    border-radius: 10px;
    box-shadow: 0 10px 35px rgba(20, 50, 75, .08);
}

.up-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 26px;
}

.up-field-full {
    grid-column: 1 / -1;
}

/* Neutralizza il vecchio layout Joomla */
.up-contact-form .control-group {
    margin: 0;
}

.up-contact-form .control-label {
    display: block;
    float: none;
    width: auto;
    margin: 0 0 7px;
    padding: 0;
    text-align: left;
}

.up-contact-form .controls {
    margin: 0;
}

.up-contact-form label {
    display: inline-block;
    margin: 0;
    font-size: .94rem;
    font-weight: 700;
    color: #253d52;
}

.up-contact-form .star {
    color: #087fbd;
}

.up-contact-form input[type="text"],
.up-contact-form input[type="email"],
.up-contact-form textarea,
.up-contact-form select {
    display: block;
    width: 100%;
    max-width: none;
    min-height: 48px;
    box-sizing: border-box;
    padding: 11px 14px;
    border: 1px solid #ccd6de;
    border-radius: 5px;
    background: #fff;
    color: #263746;
    font: inherit;
    box-shadow: none;
    transition:
        border-color .18s ease,
        box-shadow .18s ease;
}

.up-contact-form textarea {
    min-height: 165px;
    resize: vertical;
}

.up-contact-form input:focus,
.up-contact-form textarea:focus,
.up-contact-form select:focus {
    outline: 0;
    border-color: #087fbd;
    box-shadow: 0 0 0 3px rgba(8, 127, 189, .12);
}

.up-captcha {
    margin-top: 26px;
    padding-top: 24px;
    border-top: 1px solid #e7ecef;
}

.up-captcha .control-group {
    margin: 0;
}

.up-captcha .control-label {
    display: none;
}

.up-contact-actions {
    margin-top: 28px;
}

.up-contact-submit,
.up-contact-form .up-contact-submit {
    min-width: 210px;
    min-height: 48px;
    padding: 12px 28px;
    border: 0;
    border-radius: 24px;
    background: #087fbd;
    color: #fff;
    font-size: .86rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
    cursor: pointer;
}

.up-contact-submit:hover,
.up-contact-submit:focus {
    background: #066fa5;
    color: #fff;
}

@media (max-width: 700px) {

    .up-contact-page {
        padding: 35px 16px 55px;
    }

    .up-contact-card {
        padding: 25px 20px 30px;
    }

    .up-contact-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .up-field-full {
        grid-column: auto;
    }

    .up-contact-submit {
        width: 100%;
    }
}


/* Evita margini ereditati dal componente Joomla */
.com-contact.contact {
    margin: 0;
}



/* ==========================================================
   UPPROVIDER - GOOGLE MAPS PRIVACY PLACEHOLDER FINAL
   ========================================================== */

.up-map-consent {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    min-height: 380px !important;
    margin: 0 !important;
    padding: 50px 24px !important;

    background: linear-gradient(115deg, #0b4568 0%, #087fbd 100%) !important;
    color: #fff !important;

    text-align: center !important;
    overflow: hidden !important;
}

.up-map-consent-inner {
    position: relative !important;
    z-index: 2 !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;

    width: 100% !important;
    max-width: 680px !important;

    margin: 0 auto !important;
    padding: 0 !important;
}

.up-map-consent h2,
.up-map-consent h3 {
    position: static !important;

    display: block !important;

    margin: 0 0 14px !important;
    padding: 0 !important;

    font-size: 2rem !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;

    color: #fff !important;
}

.up-map-consent p {
    position: static !important;

    display: block !important;

    width: 100% !important;
    margin: 0 0 20px !important;
    padding: 0 !important;

    font-size: 1rem !important;
    line-height: 1.6 !important;

    color: rgba(255,255,255,.94) !important;
}

.up-map-consent button,
.up-map-consent .up-map-load {
    position: static !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-width: 230px !important;
    min-height: 48px !important;

    margin: 2px 0 16px !important;
    padding: 11px 25px !important;

    border: 0 !important;
    border-radius: 5px !important;

    background: #fff !important;
    color: #087fbd !important;

    font-size: .95rem !important;
    font-weight: 800 !important;

    cursor: pointer !important;

    transition:
        transform .15s ease,
        box-shadow .15s ease !important;
}

.up-map-consent button:hover,
.up-map-consent .up-map-load:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 7px 20px rgba(0,0,0,.16) !important;
}

.up-map-consent a {
    color: #fff !important;
    text-decoration: underline !important;
}

.up-map-consent iframe {
    position: absolute !important;
    inset: 0 !important;

    display: block !important;

    width: 100% !important;
    height: 100% !important;

    border: 0 !important;
}


/* Mobile */
@media (max-width: 700px) {

    .up-map-consent {
        min-height: 330px !important;
        padding: 40px 20px !important;
    }

    .up-map-consent h2,
    .up-map-consent h3 {
        font-size: 1.65rem !important;
    }

    .up-map-consent p {
        font-size: .94rem !important;
    }

    .up-map-consent button,
    .up-map-consent .up-map-load {
        width: 100% !important;
        max-width: 300px !important;
    }
}



/* ==========================================================
   UPPROVIDER - CHI SIAMO
   ========================================================== */

.up-about {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;

    width: calc(100% - 48px);
    max-width: 1120px;

    margin: 60px auto 80px;

    background: #fff;
    border: 1px solid #e5eaee;
    border-radius: 10px;

    overflow: hidden;

    box-shadow: 0 12px 38px rgba(20, 50, 75, .08);
}

.up-about-image {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    background: #0b4568;
}

.up-about-image img {
    display: block;

    width: 100%;
    height: 100%;

    position: absolute;
    inset: 0;

    object-fit: cover;
    object-position: center;

    margin: 0;
    padding: 0;
}

.up-about-content {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 55px 58px;
}

.up-about-kicker {
    display: block;

    margin: 0 0 12px;

    color: #087fbd;

    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .16em;
}

.up-about-content h2 {
    margin: 0 0 22px;

    color: #17334d;

    font-size: clamp(1.8rem, 3vw, 2.55rem);
    font-weight: 800;
    line-height: 1.15;
}

.up-about-lead {
    margin: 0 0 27px;

    color: #52697a;

    font-size: 1.08rem;
    line-height: 1.75;
}

.up-about-label {
    margin: 0 0 13px;

    color: #17334d;

    font-size: 1rem;
    font-weight: 800;
}

.up-about-list {
    list-style: none;

    margin: 0;
    padding: 0;
}

.up-about-list li {
    position: relative;

    margin: 0;
    padding: 9px 0 9px 31px;

    color: #334d61;

    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5;
}

.up-about-list li::before {
    content: "✓";

    position: absolute;
    left: 0;
    top: 8px;

    color: #087fbd;

    font-size: 1.1rem;
    font-weight: 900;
}


/* Tablet / mobile */

@media (max-width: 850px) {

    .up-about {
        grid-template-columns: 1fr;

        width: calc(100% - 32px);
        margin: 35px auto 55px;
    }

    .up-about-image {
        min-height: 360px;
    }

    .up-about-content {
        padding: 38px 30px 42px;
    }
}

@media (max-width: 500px) {

    .up-about-image {
        min-height: 280px;
    }

    .up-about-content {
        padding: 30px 22px 35px;
    }

    .up-about-content h2 {
        font-size: 1.75rem;
    }

    .up-about-lead {
        font-size: 1rem;
    }
}



/* ==========================================================
   UPPROVIDER FOOTER FINAL
   ========================================================== */

.up-footer-new {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 30px;
    color: #fff;
}

.up-footer-main {
    display: grid;
    grid-template-columns: 1.35fr 1fr 1fr;
    gap: 70px;

    padding: 48px 0 38px;
}

.up-footer-logo {
    display: block;
    width: 175px;
    max-width: 100%;
    height: auto;

    margin: 0 0 18px;
}

.up-footer-brand p,
.up-footer-company p {
    margin: 0;

    color: rgba(255,255,255,.78);

    font-size: .92rem;
    line-height: 1.65;
}

.up-footer-new h3 {
    margin: 0 0 15px;

    color: #fff;

    font-size: .93rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.up-footer-contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.up-footer-new a {
    color: rgba(255,255,255,.9) !important;
    text-decoration: none !important;
}

.up-footer-new a:hover {
    color: #fff !important;
    text-decoration: underline !important;
}

.up-footer-contact > a {
    margin-bottom: 7px;
}

.up-footer-pec {
    margin-top: 10px;
    margin-bottom: 4px;

    color: rgba(255,255,255,.55);

    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.up-footer-company-data {
    margin-top: 12px !important;
}

.up-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    padding: 19px 0 22px;

    border-top: 1px solid rgba(255,255,255,.14);

    color: rgba(255,255,255,.65);

    font-size: .82rem;
}

.up-footer-dot {
    margin: 0 9px;
    color: rgba(255,255,255,.35);
}


/* Eliminiamo padding enorme del vecchio footer */

.container-footer {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.container-footer > .grid-child {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.container-footer .mod-custom {
    width: 100%;
}


/* MOBILE */

@media (max-width: 800px) {

    .up-footer-main {
        grid-template-columns: 1fr;
        gap: 30px;

        padding: 38px 0 30px;
    }

    .up-footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 9px;
    }
}



/* ==========================================================
   UPPROVIDER MOBILE HAMBURGER MENU
   ========================================================== */

.up-mobile-menu-toggle {
    display: none;
}

@media (max-width: 800px) {

    /* Header principale: logo + hamburger */
    .container-header {
        position: sticky;
        top: 0;
    }

    .container-header > .grid-child:not(.container-nav) {
        position: relative;
    }

    .container-header .navbar-brand {
        padding-right: 65px;
    }

    /* Pulsante hamburger */
    .up-mobile-menu-toggle {
        display: flex;
        position: absolute;

        right: 20px;
        top: 50%;

        width: 46px;
        height: 42px;

        padding: 0;

        align-items: center;
        justify-content: center;

        transform: translateY(-50%);

        border: 0;
        border-radius: 5px;

        background: transparent;
        color: #087fbd;

        cursor: pointer;
        z-index: 1001;
    }

    .up-mobile-menu-toggle span,
    .up-mobile-menu-toggle::before,
    .up-mobile-menu-toggle::after {
        display: block;
        position: absolute;

        width: 28px;
        height: 3px;

        border-radius: 3px;

        background: currentColor;

        content: "";
        transition:
            transform .22s ease,
            opacity .18s ease;
    }

    .up-mobile-menu-toggle::before {
        transform: translateY(-9px);
    }

    .up-mobile-menu-toggle::after {
        transform: translateY(9px);
    }

    /* ☰ -> X */
    .up-mobile-menu-toggle.is-open span {
        opacity: 0;
    }

    .up-mobile-menu-toggle.is-open::before {
        transform: rotate(45deg);
    }

    .up-mobile-menu-toggle.is-open::after {
        transform: rotate(-45deg);
    }


    /* NAV chiusa */
    .container-header .container-nav {
        display: none !important;

        width: 100%;
        padding: 0;

        background: #fff;

        border-top: 1px solid rgba(0,0,0,.08);
        box-shadow: 0 12px 25px rgba(0,0,0,.08);
    }

    /* NAV aperta */
    .container-header .container-nav.up-mobile-open {
        display: block !important;
    }


    /* Menu principale */
    #mod-menu144 {
        display: block !important;

        width: 100%;
        max-width: none;

        margin: 0 !important;
        padding: 8px 20px 14px !important;
    }

    #mod-menu144 > li {
        display: flex;
        position: relative;
        flex-wrap: wrap;

        width: 100%;

        margin: 0 !important;

        border-bottom: 1px solid #eceff1;
    }

    #mod-menu144 > li:last-child {
        border-bottom: 0;
    }

    #mod-menu144 > li > a {
        display: flex;
        flex: 1;

        align-items: center;

        min-height: 50px;

        padding: 10px 5px !important;

        font-size: 1rem;
        font-weight: 600;

        color: #333 !important;
        text-decoration: none !important;
    }

    #mod-menu144 > li.current > a,
    #mod-menu144 > li.active > a {
        color: #087fbd !important;
    }


    /* Freccia sottomenu */
    #mod-menu144 > li > .mod-menu__toggle-sub {
        position: static !important;

        width: 48px;
        min-height: 50px;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;

        background: transparent !important;
        color: #087fbd !important;

        box-shadow: none !important;
    }


    /* Sottomenu chiuso */
    #mod-menu144 .mod-menu__sub {
        display: none !important;

        flex-basis: 100%;
        position: static !important;

        width: 100% !important;

        margin: 0 !important;
        padding: 2px 0 10px 18px !important;

        background: #f7f9fa !important;

        border: 0 !important;
        box-shadow: none !important;
    }


    /* Joomla mette aria-expanded sul pulsante */
    #mod-menu144 .mod-menu__toggle-sub[aria-expanded="true"] + .mod-menu__sub {
        display: block !important;
    }


    #mod-menu144 .mod-menu__sub li {
        display: block !important;
        width: 100%;
    }

    #mod-menu144 .mod-menu__sub a {
        display: block !important;

        padding: 10px 12px !important;

        color: #444 !important;

        font-size: .92rem;
        line-height: 1.3;

        text-decoration: none !important;
    }


    /* Topbar un po' più compatta su telefono */
    .up-topbar-inner {
        padding-left: 15px;
        padding-right: 15px;
    }
}



/* ==========================================================
   UPPROVIDER MOBILE MENU - VISIBILITY FIX
   ========================================================== */

@media screen and (max-width: 800px) {

    /* CHIUSO: forza la sparizione del menu */
    .container-header .container-nav {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .container-header .container-nav #mod-menu144 {
        display: none !important;
    }


    /* APERTO */
    .container-header .container-nav.up-mobile-open {
        display: block !important;
        visibility: visible !important;
        height: auto !important;
        overflow: visible !important;

        width: 100% !important;

        background: #fff !important;

        border-top: 1px solid rgba(0,0,0,.08);
        box-shadow: 0 12px 25px rgba(0,0,0,.10);
    }

    .container-header .container-nav.up-mobile-open #mod-menu144 {
        display: block !important;
    }

}

