/* Pagine del collega: Portfolio (506), Blog/We Talk (11891), Chi siamo (226).
   Riusa i moduli di next-shared.css. Qui solo ciò che manca, sempre con un prefisso di pagina. */

/* ================= PORTFOLIO (ID 506) ================= */

/* Stessi moduli della home: next-home.css è richiamato dalla pagina, qui solo gli adattamenti. */

/* hero: stesso modulo della home. Le regole di .home vanno ripetute, perché qui il body non ha quella classe */
.nxh-hero.nx-hportfolio {
    --nx-purple: #422d70; --nx-purple-deep: #2c1d4d; --nx-green: #5cf9bc; --nx-pink: #f78598; --nx-lav: #f5f3fa; --nx-ink: #5a4d78; --nx-line: #ebe6f5;
    padding-bottom: 116px !important;
}
.page-template-page-blank.page-id-506:not(.home) #content > .section:first-of-type { min-height: 0 !important; }
.nx-hportfolio .nxh-wrap { padding-top: 48px; }
.nx-hportfolio .nxh-slide__title { margin: 0 0 22px; font-size: clamp(38px, 4.8vw, 66px) !important; line-height: 1.03 !important; font-weight: 800; letter-spacing: -.02em; color: #fff !important; }

/* al posto dell'immagine: quattro copertine di progetti */
.nx-hmosaico { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 6px; aspect-ratio: 5 / 4; background: #2c1d4d; }
.nxh-slide__media .nx-hmosaico img { display: block; width: 100%; height: 100%; min-height: 0; aspect-ratio: auto; object-fit: cover; }
/* badge più in basso che in home: non deve coprire i loghi delle copertine */
.nx-hportfolio .nxh-badge { z-index: 2; bottom: -18px; }

/* sezione progetti: stessa struttura dei Case studies della home */
.nx-pportfolio { padding: 88px 0 96px !important; }
.nx-pportfolio .section-content > .row { max-width: 1240px; margin: 0 auto; }
.nx-pportfolio .section-content > .row > .col { padding: 0 32px !important; }
.nx-pportfolio .nxh-head { margin-bottom: 24px; }
.nx-pportfolio .nxh-h2 { margin-bottom: 0; }

/* filtri: schede di testo con sottolineatura, come il menu in alto.
   Sottolineatura viola e non verde: sul fondo lavanda il verde non si legge. Peso uguale per tutte, così la riga non si sposta. */
.nx-pportfolio .filter-nav {
    display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 32px; width: auto; margin: 0 0 32px; padding: 0; list-style: none;
    box-shadow: inset 0 -1px 0 #dcd5ea; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.nx-pportfolio .filter-nav::-webkit-scrollbar { display: none; }
.nx-pportfolio .filter-nav > li { flex: none; width: auto; margin: 0 !important; padding: 0; }
.nx-pportfolio .filter-nav > li > a {
    position: relative; display: flex; align-items: center; min-height: 48px; padding: 0 2px; border: 0; background: transparent !important; color: #5a4d78 !important;
    font-size: 16px !important; font-weight: 700; line-height: 1.2; letter-spacing: 0; text-transform: none; white-space: nowrap; transition: color .2s;
}
.nx-pportfolio .filter-nav > li > a::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: #422d70; transform: scaleX(0); transform-origin: left; transition: transform .25s cubic-bezier(.2, .7, .2, 1);
}
.nx-pportfolio .filter-nav > li.active > a { color: #422d70 !important; }
.nx-pportfolio .filter-nav > li.active > a::after { transform: scaleX(1); }
@media (hover: hover) {
    .nx-pportfolio .filter-nav > li > a:hover { color: #422d70 !important; }
    .nx-pportfolio .filter-nav > li:not(.active) > a:hover::after { background: #cbc1e0; transform: scaleX(1); }
}
.nx-pportfolio .filter-nav > li > a:focus-visible { outline: 2px solid #422d70; outline-offset: -2px; }

/* griglia con tutte le card, nello stile dei Case studies della home: solo immagine 16:9, zoom, 26 px tra le card.
   Ombra verde a righe solo al passaggio del mouse o con il focus da tastiera */
.nx-pportfolio .row.nx-pgrid { display: flex; flex-wrap: wrap; width: auto; max-width: none !important; margin: 0 -13px !important; }
.nx-pportfolio .nx-pgrid > .col { flex: 0 0 33.3333%; max-width: 33.3333%; padding: 0 13px 26px !important; }
.nx-pportfolio .nx-pgrid > .col[hidden] { display: none !important; }
.nx-pportfolio .box-image { position: relative; overflow: visible; }
.nx-pportfolio .box-image::before {
    content: ""; position: absolute; inset: 0; background: #5cf9bc; transition: transform .35s cubic-bezier(.2, .7, .2, 1);
    -webkit-mask: linear-gradient(135deg, #000 25%, transparent 25% 50%, #000 50% 75%, transparent 75%) 0 0 / 14px 14px;
    mask: linear-gradient(135deg, #000 25%, transparent 25% 50%, #000 50% 75%, transparent 75%) 0 0 / 14px 14px;
}
.nx-pportfolio .image-cover { position: relative; overflow: hidden; }
.nx-pportfolio .box-image img { transition: transform .8s; }
.nx-pportfolio .nx-pgrid > .col a:focus-visible .box-image::before { transform: translate(14px, 14px); }
@media (hover: hover) {
    .nx-pportfolio .nx-pgrid > .col:hover .box-image::before { transform: translate(14px, 14px); }
    .nx-pportfolio .nx-pgrid > .col:hover .box-image img { transform: scale(1.05); }
}
/* il nome del progetto non si vede, come in home, ma resta per chi usa uno screen reader */
.nx-pportfolio .box-none .box-text {
    display: block !important; position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}

@media (max-width: 1099px) {
    .nx-pportfolio .nx-pgrid > .col { flex-basis: 50%; max-width: 50%; }
}
@media (max-width: 849px) {
    .nxh-hero.nx-hportfolio { padding-bottom: 110px !important; }
    .nx-hportfolio .nxh-chips { flex-wrap: wrap; overflow: visible; }
    .nx-hportfolio .nxh-wrap { padding-top: 24px; }
    .nx-pportfolio { padding: 64px 0 72px !important; }
    .nx-pportfolio .section-content > .row > .col { padding: 0 20px !important; }
    .showcase.nx-pportfolio .filter-nav {
        gap: 24px; margin-right: -20px; padding-right: 40px; white-space: nowrap;
        -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent);
    }
    .showcase.nx-pportfolio .filter-nav.is-fine { -webkit-mask-image: none; mask-image: none; }
}
@media (max-width: 549px) {
    .nx-pportfolio .filter-nav > li > a { font-size: 15px !important; }
    .nx-pportfolio .row.nx-pgrid { margin: 0 !important; }
    .nx-pportfolio .nx-pgrid > .col { flex-basis: 100%; max-width: 100%; padding: 0 0 20px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .nx-pportfolio .box-image::before, .nx-pportfolio .box-image img, .nx-pportfolio .filter-nav > li > a::after { transition: none; }
}

/* ================= BLOG / WE TALK (ID 11891) ================= */

.page-template-page-blank.page-id-11891:not(.home) #content > .section:first-of-type { min-height: 0 !important; }
/* niente hero: il titolo principale della pagina resta per i motori di ricerca e gli screen reader */
.nx-pblog__h1 { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* sezioni: stessa struttura dei Case studies della home */
.nx-pblog { --nx-purple: #422d70; --nx-green: #5cf9bc; --nx-pink: #f78598; --nx-lav: #f5f3fa; --nx-ink: #5a4d78; --nx-line: #ebe6f5; }
body:not(.home) .nx-pblog { padding: 88px 0 96px !important; }
/* niente hero: sotto la barra in vetro resta una fascia viola, così la barra è uguale a quella delle altre pagine */
.nx-pblog { position: relative; }
.nx-pblog::before { content: ""; position: absolute; top: 0; left: 0; right: 0; z-index: 1; height: 84px; background: #422d70; }
.nx-pblog .section-content > .row { max-width: 1240px; margin: 0 auto; }
.nx-pblog .section-content > .row > .col { padding: 0 32px !important; }
.nx-pblog .nxh-head { margin-bottom: 24px; }
.nx-pblog .nxh-head__title { padding-top: 72px; }
.nx-pblog .section-content > .row + .row { margin-top: 0; }
.nx-pblog .nxh-h2 { color: #422d70; }
.nx-punto { color: #f78598; }

/* filtri: schede di testo con sottolineatura, come nel Portfolio */
.nx-pblog .checkContainer {
    display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 32px; height: auto; margin: 0 0 32px; padding: 0 !important;
    box-shadow: inset 0 -1px 0 #dcd5ea; overflow-x: auto; scrollbar-width: none;
}
.nx-pblog .checkContainer::-webkit-scrollbar { display: none; }
.nx-pblog .checkContainer .checkDiv {
    position: relative; display: flex; flex: none; align-items: center; width: auto; min-height: 48px; margin: 0; padding: 0 2px; border: 0; border-radius: 0; background: transparent !important; box-shadow: none;
    color: #5a4d78 !important; font-size: 14px; font-weight: 700; line-height: 1.2; letter-spacing: .06em; white-space: nowrap; transition: color .2s;
}
.nx-pblog .checkContainer .checkDiv::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: #422d70; transform: scaleX(0); transform-origin: left; transition: transform .25s cubic-bezier(.2, .7, .2, 1);
}
.nx-pblog .checkContainer .checkActive, .nx-pblog .checkContainer .checkActiveBlog, .nx-pblog .checkContainer .checkActiveNews, .nx-pblog .checkContainer .checkActiveNewsletter { color: #422d70 !important; }
.nx-pblog .checkContainer .checkActive::after, .nx-pblog .checkContainer .checkActiveBlog::after, .nx-pblog .checkContainer .checkActiveNews::after, .nx-pblog .checkContainer .checkActiveNewsletter::after { transform: scaleX(1); }
.nx-pblog .checkContainer .checkDiv:focus-visible { outline: 2px solid #422d70; outline-offset: -2px; }
@media (hover: hover) {
    .nx-pblog .checkContainer .checkDiv:hover { color: #422d70 !important; }
    .nx-pblog .checkContainer .checkDiv:not(.checkActive):not(.checkActiveBlog):not(.checkActiveNews):not(.checkActiveNewsletter):hover::after { background: #cbc1e0; transform: scaleX(1); }
}

/* card degli articoli: come le card della home. Al passaggio del mouse si alzano e compare l'ombra verde a righe */
.nx-pblog .row.post-archive-loop { display: flex; flex-wrap: wrap; width: auto; max-width: none !important; margin: 0 -14px !important; padding: 0 !important; }
.nx-pblog .post-archive-loop > .nextblog { flex: 0 0 33.3333%; max-width: 33.3333%; padding: 0 14px 34px !important; }
.nx-pblog .post-archive-loop .col-inner { position: relative; isolation: isolate; height: 100%; }
.nx-pblog .post-archive-loop .col-inner::before {
    content: ""; position: absolute; inset: 0; z-index: -1; background: #5cf9bc; transition: transform .35s cubic-bezier(.2, .7, .2, 1);
    -webkit-mask: linear-gradient(135deg, #000 25%, transparent 25% 50%, #000 50% 75%, transparent 75%) 0 0 / 14px 14px;
    mask: linear-gradient(135deg, #000 25%, transparent 25% 50%, #000 50% 75%, transparent 75%) 0 0 / 14px 14px;
}
.nx-pblog .post-archive-loop a.plain, .nx-pblog .post-archive-loop .box { display: flex; flex-direction: column; height: 100%; }
.nx-pblog .post-archive-loop .box { position: relative; background: #fff; color: #422d70; box-shadow: 0 20px 44px -30px rgba(66, 45, 112, .5); transition: transform .35s cubic-bezier(.2, .7, .2, 1), box-shadow .35s; }
.nx-pblog .post-archive-loop .box-image { position: relative; width: 100%; overflow: hidden; }
.nx-pblog .post-archive-loop .image-cover { position: relative; height: auto; padding-top: 0 !important; aspect-ratio: 16 / 9; overflow: hidden; background: #2c1d4d; }
.nx-pblog .post-archive-loop .image-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.nx-pblog .post-archive-loop .box-text { position: static; display: flex; flex: 1 1 auto; padding: 22px 56px 22px 24px; text-align: left; }
.nx-pblog .post-archive-loop .box-text-inner { display: flex; flex-direction: column; width: 100%; }
.nx-pblog .post-archive-loop .is-divider { display: none; }
.nx-pblog .post-archive-loop .cat-label { position: relative; z-index: 1; align-self: flex-start; width: auto; margin: -36px 0 14px; padding: 4px 12px; font-size: 12px; line-height: 1.5; font-weight: 800 !important; letter-spacing: .1em; opacity: 1; box-shadow: 0 8px 18px -8px rgba(44, 29, 77, .7); }
.nx-pblog .post-archive-loop .post-title { display: block; max-width: none; margin: 0 0 16px; font-size: 21px; line-height: 1.25; letter-spacing: -.005em; color: #422d70; overflow: visible; -webkit-line-clamp: unset; }
.nx-pblog .post-archive-loop .post-meta { display: flex; align-items: center; gap: 10px; margin-top: auto; font-size: 13px; line-height: 1.4; font-weight: 700 !important; letter-spacing: .04em; color: #5a4d78; opacity: 1; }
.nx-pblog .post-archive-loop .post-meta::before { content: ""; flex: none; width: 24px; height: 3px; background: #5cf9bc; }
.nx-pblog .post-archive-loop .box-text::after { content: "→"; position: absolute; right: 22px; bottom: 18px; font-size: 20px; line-height: 1; color: #422d70; transition: transform .25s; }
.nx-pblog .post-archive-loop a.plain:focus-visible { outline: 2px solid #422d70; outline-offset: 3px; }
.nx-pblog .post-archive-loop a.plain:focus-visible .box { transform: translate(-5px, -5px); }
.nx-pblog .post-archive-loop > .nextblog:has(a.plain:focus-visible) .col-inner::before { transform: translate(9px, 9px); }
@media (hover: hover) {
    .nx-pblog .post-archive-loop > .nextblog:hover .box { transform: translate(-5px, -5px); box-shadow: 0 30px 60px -30px rgba(66, 45, 112, .55); }
    .nx-pblog .post-archive-loop > .nextblog:hover .col-inner::before { transform: translate(9px, 9px); }
    .nx-pblog .post-archive-loop > .nextblog:hover .image-cover img { transform: scale(1.05); }
    .nx-pblog .post-archive-loop > .nextblog:hover .box-text::after { transform: translateX(4px); }
}
/* Mostra altri articoli: pulsante della home. La riga viene dallo shortcode */
.nx-pblog #moreload {
    margin-top: 10px; padding: 14px 26px !important; border: 0; background: #5cf9bc; color: #2c1d4d !important; font-size: 16px; font-weight: 800; line-height: 1.2; box-shadow: 0 14px 28px -14px rgba(92, 249, 188, .9); transition: transform .2s, box-shadow .2s;
}
.nx-pblog #moreload:hover { transform: translateY(-2px); box-shadow: 0 18px 36px -12px rgba(92, 249, 188, 1); }
.nx-pblog #moreload:focus-visible { outline: 2px solid #422d70; outline-offset: 3px; }


@media (max-width: 1099px) {
    .nx-pblog .post-archive-loop > .nextblog { flex-basis: 50%; max-width: 50%; }
}
@media (max-width: 849px) {
    body:not(.home) .nx-pblog { padding: 64px 0 72px !important; }
    .nx-pblog .section-content > .row > .col { padding: 0 20px !important; }
    .nx-pblog .nxh-head__title { padding-top: 44px; }
    .nx-pblog::before { height: 70px; }
}
@media (max-width: 549px) {
    .nx-pblog .checkContainer { gap: 24px; margin-right: -20px; padding-right: 20px !important; }
    .nx-pblog .row.post-archive-loop { margin: 0 !important; }
    .nx-pblog .post-archive-loop > .nextblog { flex-basis: 100%; max-width: 100%; padding: 0 0 24px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .nx-pblog .image-cover img, .nx-pblog .box, .nx-pblog .col-inner::before, .nx-pblog .checkContainer .checkDiv::after { transition: none; }
}

/* ================= ARTICOLI DEL BLOG (template-parts/posts/next-articolo.php) ================= */

/* hero: stesso modulo della home, con la copertina dell'articolo */
.nxh-hero.nx-art-hero {
    --nx-purple: #422d70; --nx-purple-deep: #2c1d4d; --nx-green: #5cf9bc; --nx-pink: #f78598; --nx-lav: #f5f3fa; --nx-ink: #5a4d78; --nx-line: #ebe6f5;
    position: relative; margin-top: -114px; padding: 150px 0 84px; background: #422d70; overflow: hidden;
}
.nx-art-hero .nxh-slide__copy { justify-content: center; }
.nx-art-hero .nxh-slide__title { margin: 0 0 18px !important; font-size: clamp(32px, 3.4vw, 48px) !important; line-height: 1.1 !important; font-weight: 800; letter-spacing: -.015em; color: #fff !important; }
.nx-art__torna { display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; margin: 0 0 18px; color: #5cf9bc !important; font-size: 14px; font-weight: 800; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; }
.nx-art__torna::before { content: "←"; }
.nx-art__torna:hover { color: #fff !important; }
.nx-art__torna:focus-visible { outline: 2px solid #5cf9bc; outline-offset: 3px; }
.nx-art__sommario { margin: 0 0 8px; }
.nx-art__sommario p { margin: 0 0 10px; font-size: 17px; line-height: 1.6; font-weight: 500; color: rgba(255, 255, 255, .86); }
.nx-art__sommario p:last-child { margin-bottom: 0; }
.nx-art-hero .nxh-actions { margin-top: 22px; }
.nx-art-hero .nxh-slide__media { max-width: 520px; }
.nx-art-hero .nxh-slide__media img { display: block; width: 100%; height: auto; aspect-ratio: auto; max-height: 420px; object-fit: contain; }

/* corpo: una colonna di lettura */
.nx-art__corpo.containerBlog { width: 100%; max-width: none; margin: 0; background: #fff; padding: 56px 0 72px; }
/* articoli Builder: il titolo è già nella hero, la copertina solo se è la stessa. Allineati alla colonna */
.nx-art__corpo--builder .article-header .row:first-of-type > .col:has(> .col-inner > h1) { display: none; }
.nx-art__corpo--stessa-copertina .article-header .row:first-of-type > .col:has(.img) { display: none; }
.nx-art__corpo--builder .articleContainer .section { padding: 0 !important; min-height: 0; }
.nx-art__corpo--builder .articleContainer .section + .section { margin-top: 28px; }
.nx-art__corpo--builder .articleContainer .row { width: auto; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.nx-art__corpo--builder .articleContainer .row > .col { padding-left: 0 !important; padding-right: 0 !important; }
.nx-art__corpo--builder .articleContainer .col { padding-bottom: 12px; }
.nx-art__corpo--builder .articleContainer .article-social { align-items: center; padding-bottom: 12px; border-bottom: 1px solid #ebe6f5; }
.nx-art__corpo--builder .articleContainer .logo-author p:has(> img) { display: none; }
.nx-art__corpo--builder .articleContainer .logo-author p { margin: 0; font-size: 15px; line-height: 1.5; }
.nx-art__corpo--builder .articleContainer .author-name { font-weight: 800; color: #422d70; }
.nx-art__corpo--builder .articleContainer .section.article-footer { padding-top: 20px !important; border-top: 1px solid #ebe6f5; border-bottom: 0; }
.nx-art__corpo--builder .articleContainer .article-footer .author { display: flex; align-items: center; gap: 12px; }
.nx-art__corpo--builder .articleContainer .article-footer p { margin: 0; font-size: 14px; }
.nx-art__wrap { box-sizing: border-box; width: 100%; max-width: 1314px; margin: 0 auto; padding: 0 32px; }
.nx-art__corpo .headerContainer { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 0 0 40px; padding: 0 0 20px; border-bottom: 1px solid #ebe6f5; }
.nx-art__corpo .articleContainer { color: #5a4d78 !important; font-size: 18px; line-height: 1.7; }
.nx-art__corpo .articleContainer p, .nx-art__corpo .articleContainer li { font-size: 18px; line-height: 1.7; color: #5a4d78; }
.nx-art__corpo .articleContainer strong, .nx-art__corpo .articleContainer b { color: #422d70; }
.nx-art__corpo .articleContainer h1, .nx-art__corpo .articleContainer h2, .nx-art__corpo .articleContainer h3, .nx-art__corpo .articleContainer h4 { margin: 44px 0 14px; color: #422d70; font-weight: 800; line-height: 1.2 !important; letter-spacing: -.01em; }
.nx-art__corpo .articleContainer h1, .nx-art__corpo .articleContainer h2 { font-size: clamp(26px, 2.6vw, 34px) !important; }
.nx-art__corpo .articleContainer h3 { font-size: clamp(21px, 2vw, 24px) !important; }
.nx-art__corpo .articleContainer h1 span, .nx-art__corpo .articleContainer h2 span, .nx-art__corpo .articleContainer h3 span { font-size: inherit !important; line-height: inherit !important; }
.nx-art__corpo .articleContainer a { color: #422d70; text-decoration: underline; text-decoration-color: #5cf9bc; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.nx-art__corpo .articleContainer img { max-width: 100%; height: auto; }
.nx-art__corpo .article-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 40px; padding: 20px 0 0; border-top: 1px solid #ebe6f5; border-bottom: 0; }
.nx-art__corpo .article-footer .tag { margin: 0; }
.nx-art__corpo .tagsContainer p { margin: 0; }

/* BesTalks: quattro card piccole, nello stile delle card del Blog */
.nx-art__extra { background: #422d70; padding: 64px 0 44px; }
.nx-art__best { margin: 0 0 28px; color: #fff; font-size: clamp(32px, 3.6vw, 50px); line-height: 1.08; font-weight: 800; letter-spacing: -.015em; }
.nx-art__extra .row.post-archive-loop { display: flex; flex-wrap: wrap; width: auto; max-width: none !important; margin: 0 -10px !important; padding: 0 !important; }
.nx-art__extra .post-archive-loop > .post-item { flex: 0 0 25%; max-width: 25%; margin: 0; padding: 0 10px 28px !important; }
.nx-art__extra .post-item > .col-inner { position: relative; isolation: isolate; height: 100%; }
.nx-art__extra .post-item > .col-inner::before {
    content: ""; position: absolute; inset: 0; z-index: -1; background: #5cf9bc; transition: transform .35s cubic-bezier(.2, .7, .2, 1);
    -webkit-mask: linear-gradient(135deg, #000 25%, transparent 25% 50%, #000 50% 75%, transparent 75%) 0 0 / 14px 14px;
    mask: linear-gradient(135deg, #000 25%, transparent 25% 50%, #000 50% 75%, transparent 75%) 0 0 / 14px 14px;
}
.nx-art__extra .box { position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; box-shadow: 0 24px 50px -28px rgba(20, 10, 40, .8); transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.nx-art__extra .box-image { position: relative; width: 100%; margin: 0; overflow: hidden; }
.nx-art__extra .image-cover { position: relative; height: auto; padding-top: 0 !important; aspect-ratio: 16 / 9; overflow: hidden; background: #2c1d4d; }
.nx-art__extra .image-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.nx-art__extra .box-text { position: static; display: flex; flex: 1 1 auto; padding: 18px 18px 16px; text-align: left; }
.nx-art__extra .box-text-inner { display: flex; flex-direction: column; width: 100%; }
.nx-art__extra .is-divider { display: none; }
.nx-art__extra .post-archive-loop .cat-label { position: relative; z-index: 1; align-self: flex-start; width: auto; margin: -30px 0 12px; padding: 3px 10px; background: #5cf9bc !important; color: #2c1d4d; font-size: 11px; line-height: 1.5; font-weight: 800 !important; letter-spacing: .1em; opacity: 1; box-shadow: 0 8px 18px -8px rgba(44, 29, 77, .7); }
.nx-art__extra .post-archive-loop .post-title { display: block; max-width: none; margin: 0 0 12px; font-size: 17px; line-height: 1.25; overflow: visible; -webkit-line-clamp: unset; }
.nx-art__extra .post-title a { color: #422d70 !important; font-weight: 800 !important; font-style: normal; text-decoration: none; }
.nx-art__extra .post-archive-loop .post-meta { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-right: 26px; font-size: 12px; line-height: 1.4; font-weight: 700 !important; letter-spacing: .04em; color: #5a4d78; opacity: 1; }
.nx-art__extra .post-meta::before { content: ""; flex: none; width: 18px; height: 3px; background: #5cf9bc; }
.nx-art__extra .box-text::after { content: "→"; position: absolute; right: 16px; bottom: 14px; font-size: 18px; line-height: 1; color: #422d70; transition: transform .25s; }
@media (hover: hover) {
    .nx-art__extra .post-item:hover .box { transform: translate(-5px, -5px); }
    .nx-art__extra .post-item:hover > .col-inner::before { transform: translate(9px, 9px); }
    .nx-art__extra .post-item:hover .image-cover img { transform: scale(1.05); }
    .nx-art__extra .post-item:hover .box-text::after { transform: translateX(4px); }
}
@media (max-width: 1099px) {
    .nx-art__extra .post-archive-loop > .post-item { flex-basis: 50%; max-width: 50%; }
}
@media (max-width: 549px) {
    /* una card alla volta con scorrimento laterale: la successiva si intravede */
    .nx-art__extra { padding: 48px 0 40px; }
    .nx-art__best { margin-bottom: 22px; }
    .nx-art__extra .row.post-archive-loop {
        flex-wrap: nowrap; gap: 14px; margin: 0 -20px !important; padding: 0 20px 16px !important; overflow-x: auto; overflow-y: hidden;
        scroll-snap-type: x mandatory; scroll-padding-inline: 20px; scrollbar-width: none; -webkit-overflow-scrolling: touch;
    }
    .nx-art__extra .row.post-archive-loop::-webkit-scrollbar { display: none; }
    .nx-art__extra .post-archive-loop > .post-item { flex: 0 0 84%; width: 84%; max-width: 84%; padding: 0 !important; scroll-snap-align: start; }
    .nx-art__extra .box-text { padding: 20px 18px 18px; }
    .nx-art__extra .post-archive-loop .post-title { font-size: 19px; }
}

@media (max-width: 849px) {
    /* barra Chiama/Scrivi: più staccata dai margini, e a fine pagina non copre il testo del footer */
    body.single-post .next-cta-bar.next-cta-bar { left: 16px; right: 16px; bottom: calc(20px + env(safe-area-inset-bottom)); }
    body.single-post .bgFooter { padding-bottom: calc(112px + env(safe-area-inset-bottom)) !important; }
    .nxh-hero.nx-art-hero { margin-top: -100px; padding: 132px 0 72px; }
    .nx-art__corpo.containerBlog { padding: 40px 0 56px; }
    .nx-art__wrap { padding: 0 20px; }
    .nx-art__corpo .articleContainer p, .nx-art__corpo .articleContainer li { font-size: 17px; }
}

/* ================= SCHEDE PROGETTO (/featured_item/): modello unico .nx-case ================= */
.nxh-hero.nx-case-hero {
    --nx-purple: #422d70; --nx-purple-deep: #2c1d4d; --nx-green: #5cf9bc; --nx-pink: #f78598; --nx-lav: #f5f3fa; --nx-ink: #5a4d78; --nx-line: #ebe6f5;
    margin-top: -114px; padding: 132px 0 84px !important;
}
/* niente barra fissa "Torna ai progetti" né frecce progetto precedente/successivo: si naviga dall'header */
body:has(.nx-case-hero) .custom-back-btn, body:has(.nx-case-hero) .portfolio-bottom { display: none; }
.nx-case-hero .nxh-slide__title { margin: 0 0 22px; font-size: clamp(32px, 3.4vw, 48px) !important; line-height: 1.08 !important; font-weight: 800; letter-spacing: -.02em; color: #fff !important; text-wrap: balance; }
.nx-case-hero .nxh-slide__media { max-width: 460px; }
/* etichetta, titolo, voci e pulsante raccolti e centrati: senza voci l'etichetta non resta staccata in alto */
.nx-case-hero .nxh-slide__copy { justify-content: center; }
.nx-case-hero .nxh-slide__title { margin-top: 0 !important; }
.nx-case-hero .nxh-slide__text { margin-bottom: 22px; }
.nx-case-hero .nxh-slide__media img { aspect-ratio: auto; max-height: 420px; object-fit: contain; }
.nx-case-hero .nxh-slide__media.nx-case-nofondo::before { display: none; }
.nx-case__label { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 14px !important; line-height: 1.5; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #f78598 !important; }
.nx-case__label::before { content: ""; flex: none; width: 24px; height: 3px; border-radius: 3px; background: #5cf9bc; }
.nx-case__logo { display: block; width: auto; max-width: 240px; height: 42px; margin: 0 0 24px; object-fit: contain; object-position: left; }
.nx-case__logo--bianco { filter: brightness(0) invert(1); }
.nx-case__logo--riquadro { box-sizing: content-box; height: 40px; padding: 8px 14px; background: #fff; }
.nx-case-hero .nx-case__h1--lungo { font-size: clamp(26px, 2.7vw, 38px) !important; line-height: 1.15 !important; }
.nx-case-hero .nxh-chips { margin-bottom: 30px; }

.nx-case { --nx-purple: #422d70; --nx-purple-deep: #2c1d4d; --nx-green: #5cf9bc; --nx-pink: #f78598; font-family: Raleway, sans-serif; color: #422d70; }
.nx-case__wrap { box-sizing: border-box; max-width: 1240px; margin: 0 auto; padding: 72px 32px; }
.nx-case__wrap *, .nx-case__wrap *::before { box-sizing: border-box; }
/* fondi come Mindlogix: bianco, ultima sezione viola. Tra due sezioni bianche non si raddoppia lo spazio */
.nx-case:not(.nx-case--viola) + .nx-case:not(.nx-case--viola) .nx-case__wrap { padding-top: 0; }
.nx-case--viola { background: #422d70 !important; color: #fff; }
.nx-case--viola .nx-case__wrap { padding-bottom: 28px; }

/* sezioni: intestazione a due colonne */
.nx-case__sez { scroll-margin-top: 90px; }
/* intestazione come la home: etichetta, titolo e sotto la descrizione, tutto sullo stesso asse */
.nx-case__head { display: block; max-width: 860px; margin-bottom: 32px; }
.nx-case__head .nx-case__label { margin-bottom: 12px; }
.nx-case__head h2 { margin: 0 0 16px; font-size: clamp(34px, 3.6vw, 50px) !important; line-height: 1.08 !important; font-weight: 800; letter-spacing: -.015em; color: inherit; }
.nx-case__head h3 { margin: 0 0 8px; font-size: 19px !important; line-height: 1.35 !important; font-weight: 800; color: inherit; }
.nx-case__head p { margin: 0; font-size: 17px; line-height: 1.6; font-weight: 500; color: #5a4d78; }
.nx-case--viola .nx-case__head p { color: rgba(255, 255, 255, .84); }

/* testi: più paragrafi uno sotto l'altro, su due colonne se sono lunghi */
.nx-case__head--largo { max-width: none; }
.nx-case__head h2.nx-case__lungo { font-size: clamp(25px, 2.5vw, 34px) !important; line-height: 1.2 !important; letter-spacing: -.01em; }
.nx-case__testi > * + * { margin-top: 12px; }
.nx-case__testi ul { margin: 12px 0 0; padding-left: 20px; font-size: 16px; line-height: 1.55; font-weight: 500; }
.nx-case__testi li { margin: 0 0 4px; }
.nx-case__testi a { font-weight: 700; color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.nx-case__testi--2 { columns: 2; column-gap: 48px; }
.nx-case__testi--2 > * { break-inside: avoid; }
.nx-case__link { margin-top: 20px !important; }
.nx-case--viola .nx-case__testi p, .nx-case--viola .nx-case__testi ul { color: rgba(255, 255, 255, .84); }
/* video: affiancati e contenuti, come le immagini */
.nx-case__head + .nx-case__video-riga { margin-top: 0; }
.nx-case__righe + .nx-case__video-riga { margin-top: 16px; }
.nx-case__video-riga { display: flex; flex-wrap: wrap; gap: 16px; }
.nx-case__video-riga + .nx-case__head, .nx-case__video-riga + .nx-case__righe { margin-top: 16px; }
.nx-case__foto .nx-case__video { width: 100%; max-height: none; }
.nx-case__video { display: block; flex: 0 1 auto; width: auto; max-width: 100%; height: auto; max-height: 420px; }
.nx-case .video-fit { position: relative; width: 100%; max-width: 580px; margin-bottom: 0; padding-top: 0 !important; aspect-ratio: 16 / 9; background: #f5f3fa; }
.nx-case--viola .video-fit { background: rgba(255, 255, 255, .08); }
.nx-case .video-fit iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.nx-case .video-fit + .video-fit, .nx-case .video + .video { margin-top: 16px; }
/* schermate lunghe: si scorrono dentro il riquadro */
.nx-case__scorri { max-width: 760px; max-height: 480px; overflow-y: auto; border: 1px solid #e3ddf0; background: #fff; }
.nx-case__scorri img { display: block; width: 100%; height: auto; }
.nx-case__scorri:focus-visible { outline: 2px solid #422d70; outline-offset: 3px; }
/* nella griglia a tre colonne ha la stessa altezza delle altre celle */
.nx-case__voce .nx-case__scorri { max-width: none; aspect-ratio: 16 / 10; max-height: none; }

/* il cliente, la sfida, la soluzione */
.nx-case__tre { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.nx-case__carta { padding: 28px; background: #f5f3fa; color: #422d70; }
.nx-case__carta h2 { margin: 0 0 10px; font-size: 22px !important; line-height: 1.2 !important; font-weight: 800; color: #422d70; }
.nx-case__carta p { margin: 0; font-size: 16px; line-height: 1.55; font-weight: 500; color: #5a4d78 !important; }
.nx-case__carta a { font-weight: 700; color: #422d70 !important; text-decoration: underline; text-underline-offset: 3px; }

/* titolo + immagini: griglia a due colonne */
.nx-case__griglia { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 26px; align-items: start; }
.nx-case__voce .nx-case__label { margin-bottom: 8px; }
.nx-case__voce h2 { margin: 0 0 12px; font-size: 20px !important; line-height: 1.25 !important; font-weight: 800; color: inherit; }

/* righe di immagini: stessa altezza, nessun taglio (il rapporto arriva dal flex scritto nella pagina) */
.nx-case__righe { display: flex; flex-direction: column; gap: 16px; }
.nx-case__riga { display: flex; gap: 16px; }
/* tipografia e colori: a tutta larghezza, staccati dalle immagini */
.nx-case__brand { display: flex; flex-direction: column; gap: 48px; margin-block: 40px; }
.nx-case__foto { display: block; flex: 1 1 0; min-width: 0; }
.nx-case__foto img { display: block; width: 100%; height: auto; }
/* immagini trasparenti sul viola: fondo bianco, altrimenti i testi scuri non si leggono */
.nx-case--viola .nx-case__foto--trasp { background: #fff; }

/* griglia di immagini: rettangolare, celle uguali 16:10, massimo 6 per sezione */
.nx-case__griglia-foto { display: grid; grid-template-columns: repeat(var(--nx-c, 3), minmax(0, 1fr)); gap: 16px; }
.nx-case__griglia-foto--1 { max-width: 460px; }
.nx-case__griglia-foto--2 { max-width: 780px; }
.nx-case__griglia-foto .nx-case__foto { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #f5f3fa; }
/* quattro o cinque immagini: una riga sola con celle piccole, come i loghi di Mindlogix */
.nx-case__griglia-foto--5 .nx-case__foto { aspect-ratio: 1; }
.nx-case__griglia-foto--4 .nx-case__foto { aspect-ratio: 4 / 3; }
.nx-case__griglia-foto .nx-case__foto img, .nx-case__griglia-foto .nx-case__video { display: block; width: 100%; height: 100%; max-height: none; object-fit: cover; transition: transform .6s; }
.nx-case__griglia-foto .nx-case__foto--trasp { background: #fff; box-shadow: inset 0 0 0 1px #e8e3f2; }
.nx-case__griglia-foto .nx-case__foto--trasp img { padding: 14px; object-fit: contain; }
.nx-case__griglia-foto .nx-case__foto--intera img { object-fit: contain; }
.nx-case__griglia-foto--1 .nx-case__foto { aspect-ratio: auto; background: none; }
.nx-case__griglia-foto--1 .nx-case__foto img { height: auto; max-height: 420px; object-fit: contain; }
.nx-case__griglia-foto--larga .nx-case__foto { grid-column: span 2; aspect-ratio: 16 / 10; }
.nx-case__griglia-foto--larga .nx-case__foto:nth-child(-n+2) { grid-column: span 3; aspect-ratio: 2 / 1; }
.nx-case__griglia-foto + .nx-case__griglia-foto { margin-top: 16px; }
.nx-case__griglia-foto .nx-case__foto--video { background: #fff; box-shadow: inset 0 0 0 1px #e8e3f2; }
.nx-case__griglia-foto .nx-case__foto--video .nx-case__video { object-fit: contain; }
@media (hover: hover) { .nx-case__griglia-foto a.nx-case__foto:hover img { transform: scale(1.04); } }
.nx-case__voce .nx-case__griglia-foto { gap: 10px; }

/* griglia con i titoli delle voci: celle tutte uguali, come le righe di Mindlogix */
.nx-case__griglia-voci { display: grid; grid-template-columns: repeat(60, minmax(0, 1fr)); gap: 26px 0; align-items: end; margin-inline: -8px; }
.nx-case__cella { grid-column: span var(--nx-s, 20); padding-inline: 8px; }
/* una voce sola: titolo e immagine affiancati */
.nx-case__griglia-voci--sola { display: block; margin-inline: 0; }
.nx-case__griglia-voci--sola .nx-case__cella { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 16px clamp(32px, 4vw, 56px); align-items: center; padding-inline: 0; }
.nx-case__griglia-voci--sola .nx-case__foto { aspect-ratio: 2; }
.nx-case__cap { min-height: 62px; }
.nx-case__cap-sub { margin: 0 0 6px; font-size: 14px; line-height: 1.35; font-weight: 800; color: inherit; }
.nx-case__cap .nx-case__testi { margin-bottom: 10px; }
.nx-case__cap .nx-case__testi p { margin: 0; font-size: 14px; line-height: 1.45; font-weight: 500; color: #5a4d78; }
.nx-case--viola .nx-case__cap .nx-case__testi p { color: rgba(255, 255, 255, .84); }
.nx-case__cap .nx-case__label { margin: 0 0 4px; font-size: 13px !important; }
.nx-case__cap h3 { margin: 0 0 10px; font-size: 18px !important; line-height: 1.2 !important; font-weight: 800; color: inherit; }
.nx-case__cella .nx-case__foto { display: block; aspect-ratio: var(--nx-ar, 1.6); overflow: hidden; background: #f5f3fa; }
.nx-case__cella .nx-case__foto img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.nx-case__cella .nx-case__foto--trasp { background: #fff; box-shadow: inset 0 0 0 1px #e8e3f2; }
.nx-case__cella .nx-case__foto--trasp img { padding: 12px; object-fit: contain; }
.nx-case__cella .nx-case__foto--intera img { object-fit: contain; }
.nx-case__cella .nx-case__foto--alto img { height: auto; object-position: top; }
@media (hover: hover) { .nx-case__cella a.nx-case__foto:hover img { transform: scale(1.04); } }
.nx-case__cella .nx-case__foto--video { background: #fff; box-shadow: inset 0 0 0 1px #e8e3f2; }
.nx-case__cella .nx-case__video { display: block; width: 100%; height: 100%; max-height: none; object-fit: contain; }
.nx-case__head--mini { margin-bottom: 18px; }
.nx-case__head--mini h2 { font-size: 26px !important; }
.nx-case__head--mini .nx-case__label { margin-bottom: 6px; }
.nx-case__griglia-voci + .nx-case__head, .nx-case__tech + .nx-case__griglia-voci { margin-top: 0; }

/* testo e una o due immagini: affiancati, la descrizione resta sotto il titolo */
.nx-case__affianco { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 32px clamp(32px, 4vw, 56px); align-items: center; }
.nx-case__aff-testo .nx-case__head { max-width: none; margin-bottom: 0; }
.nx-case__aff-media .nx-case__griglia-foto--1, .nx-case__aff-media .nx-case__griglia-foto--2 { max-width: none; }
.nx-case__aff-media .nx-case__righe { gap: 12px; }

/* tipografia in più immagini: due colonne compatte */
.nx-case__tipi { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 48px; align-items: center; }
.nx-case__tipi .nx-case__riga { max-width: none !important; }
.nx-case__tipi--3 .nx-case__riga:first-child { grid-row: span 2; }

/* tipografia in codice: font veri dei progetti (licenze aperte), ospitati nel tema */
@font-face { font-family: 'Syne'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/syne-400.woff2') format('woff2'); }
@font-face { font-family: 'Syne'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/syne-700.woff2') format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/roboto-400.woff2') format('woff2'); }
@font-face { font-family: 'Roboto'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/roboto-700.woff2') format('woff2'); }
@font-face { font-family: 'Barlow Semi Condensed'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/barlow-semi-condensed-400.woff2') format('woff2'); }
@font-face { font-family: 'Barlow Semi Condensed'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/barlow-semi-condensed-700.woff2') format('woff2'); }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/public-sans-400.woff2') format('woff2'); }
@font-face { font-family: 'Public Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/public-sans-700.woff2') format('woff2'); }
@font-face { font-family: 'Josefin Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/josefin-sans-400.woff2') format('woff2'); }
@font-face { font-family: 'Josefin Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/josefin-sans-700.woff2') format('woff2'); }
@font-face { font-family: 'Catamaran'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/catamaran-400.woff2') format('woff2'); }
@font-face { font-family: 'Catamaran'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/catamaran-700.woff2') format('woff2'); }
@font-face { font-family: 'Palanquin'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/palanquin-400.woff2') format('woff2'); }
@font-face { font-family: 'Palanquin'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/palanquin-700.woff2') format('woff2'); }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/open-sans-400.woff2') format('woff2'); }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/open-sans-700.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/poppins-400.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/poppins-700.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/playfair-display-400.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/playfair-display-700.woff2') format('woff2'); }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/casi/lato-400.woff2') format('woff2'); }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/casi/lato-700.woff2') format('woff2'); }

.nx-typo { color: #333; }
.nx-typo__griglia { display: grid; gap: 28px 48px; }
.nx-typo__griglia--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nx-typo__font { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 48px; font-family: var(--nx-f), sans-serif; }
.nx-typo__griglia--2 .nx-typo__font { grid-template-columns: minmax(0, 1fr); }
.nx-typo__nomi p { margin: 0 0 14px; font-family: inherit !important; font-size: 40px; line-height: 1.1; font-weight: 400; color: #333; }
.nx-typo__nomi .nx-typo__b { font-weight: 700; }
.nx-typo__frase { margin: 0 0 22px; font-family: inherit !important; font-size: 38px; line-height: 1.16; font-weight: 400; color: #333; }
.nx-typo__frase b { font-weight: 700; }
.nx-typo__alfa { display: flex; justify-content: space-between; gap: 20px; }
.nx-typo__alfa p { margin: 0; font-family: inherit !important; font-size: 17px; line-height: 1.25; font-weight: 700; color: #333; }
.nx-typo__alfa p:last-child { flex: none; text-align: right; }
.nx-typo__griglia--2 .nx-typo__nomi p { margin-bottom: 8px; font-size: 28px; }
.nx-typo__griglia--2 .nx-typo__frase { font-size: 27px; }
.nx-typo__griglia--2 .nx-typo__alfa p { font-size: 13px; }
/* il tema forza Raleway sui paragrafi: qui deve vincere il font del progetto */
body .nx-case .nx-typo .nx-typo__font p, body .nx-case .nx-typo .nx-typo__font b { font-family: var(--nx-f), sans-serif !important; }
.nx-case--viola .nx-typo { padding: 28px; background: #fff; }

/* palette: stesso disegno di Mindlogix (cerchio, scala verticale, numero, nome, HEX e RGB) */
.nx-pal { color: #333; }
.nx-pal__tit { margin: 0 0 28px; font-size: 21px; line-height: 1; font-weight: 800; letter-spacing: .12em; color: #333; }
.nx-pal__griglia { display: grid; grid-template-columns: repeat(var(--nx-col, 4), minmax(0, 299px)); gap: 40px 0; }
/* tutti i colori su una riga: con 5 o 6 colori i cerchi si riducono */
.nx-pal__griglia--5, .nx-pal__griglia--6 { grid-template-columns: repeat(var(--nx-col), minmax(0, 1fr)); gap: 0 16px; }
.nx-pal__griglia--5 .nx-pal__segni { width: 196px; margin-bottom: 18px; }
.nx-pal__griglia--5 .nx-pal__cerchio { width: 136px; height: 136px; }
.nx-pal__griglia--5 .nx-pal__scala { width: 24px; height: 196px; }
.nx-pal__griglia--6 .nx-pal__segni { width: 164px; margin-bottom: 18px; }
.nx-pal__griglia--6 .nx-pal__cerchio { width: 112px; height: 112px; }
.nx-pal__griglia--6 .nx-pal__scala { width: 22px; height: 164px; }
.nx-pal__griglia--5 .nx-pal__num, .nx-pal__griglia--6 .nx-pal__num { margin-bottom: 10px; font-size: 22px; }
.nx-pal__griglia--5 .nx-pal__val, .nx-pal__griglia--6 .nx-pal__val { font-size: 15px; }
.nx-pal__segni { display: flex; align-items: center; justify-content: space-between; width: 232px; max-width: 100%; margin-bottom: 26px; }
/* clip-path e non border-radius: il tema azzera gli arrotondamenti su tutto il sito */
.nx-pal__cerchio { flex: none; display: block; width: 164px; height: 164px; clip-path: circle(50%); }
.nx-pal__scala { display: flex; flex: none; flex-direction: column; width: 27px; height: 238px; overflow: hidden; border-radius: 0 !important; }
.nx-pal__scala i { display: block; flex: 1; }
.nx-pal__num { margin: 0 0 18px; padding-left: 14px; font-size: 28px; line-height: 1; font-weight: 800; color: #333; }
.nx-pal h4 { margin: 0 0 18px; font-size: 32px !important; line-height: 1.1 !important; font-weight: 800; letter-spacing: 0 !important; text-transform: none !important; color: #333 !important; }
.nx-pal__val { margin: 0; font-size: 17px; line-height: 1.65; font-weight: 500; color: #555; }
.nx-pal__val b { font-weight: 800; color: #333; }
.nx-case--viola .nx-pal { padding: 28px; background: #fff; }
/* tipografia staccata dalla palette: si mostra solo la parte alta dell'immagine */
.nx-case__taglio { display: block; overflow: hidden; background: #fff; }
.nx-case__taglio img { display: block; width: 100%; height: auto; }
/* loghi delle tecnologie: su una riga, senza fondo. Viola scuro sul bianco, bianchi nella sezione viola */
.nx-case__tech { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 36px; margin: 4px 0 12px; }
.nx-case__tech img { display: block; width: auto; max-width: 150px; height: 32px; object-fit: contain; filter: brightness(0) saturate(100%) invert(18%) sepia(38%) saturate(2070%) hue-rotate(226deg) brightness(92%) contrast(93%); }
.nx-case--viola .nx-case__tech img { filter: brightness(0) invert(1); }

/* slider di immagini */
.nx-case .section-content > .row { max-width: 1240px; margin: 0 auto; padding-bottom: 72px; }
.nx-case .section-content > .row > .col { padding: 0 32px !important; }
.nx-case--viola .section-content > .row { padding-bottom: 0; }
.nx-case .slider { overflow: visible; }
/* lo slider parte solo quando si avvicina: prima resta già su una riga, così la pagina non cambia altezza */
.nx-case .slider:not(.flickity-enabled) { display: flex; gap: 0; overflow: hidden; }
.nx-case .slider:not(.flickity-enabled) > * { flex: 0 0 300px; max-width: 300px; }
@media (max-width: 549px) { .nx-case .slider:not(.flickity-enabled) > * { flex-basis: 260px; max-width: 260px; } }

/* sezione viola e form senza stacco: niente bordo arrotondato, luci che sfumano dal viola pieno */
body:has(.nx-case-hero) .nx-contact-stage { margin-top: 0; border-radius: 0; }
/* niente striscia bianca tra form e footer: il contenitore del tema ha 30 px sotto */
body:has(.nx-case-hero) .portfolio-top .page-wrapper { padding-bottom: 0; }
body:has(.nx-case-hero) .portfolio-top > .row { display: none; }
body:has(.nx-case-hero) .nx-stage-bg { -webkit-mask-image: linear-gradient(to bottom, transparent, #000 260px); mask-image: linear-gradient(to bottom, transparent, #000 260px); }
.nx-case--viola .section-content > .row { padding-bottom: 0; }

@media (max-width: 849px) {
    .nxh-hero.nx-case-hero { margin-top: -100px; padding: 94px 0 72px !important; }
    .nx-case__wrap { padding: 52px 20px; }
    .nx-case__brand { gap: 32px; margin-block: 28px; }
    .nx-case__head { margin-bottom: 24px; }
    .nx-case__head h3 { font-size: 18px !important; }
    .nx-case__head p { font-size: 16px; }
    .nx-case .section-content > .row > .col { padding: 0 20px !important; }
    .nx-case .section-content > .row { padding-bottom: 52px; }
    .nx-case--viola .section-content > .row { padding-bottom: 0; }
    .nx-case__tre { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .nx-case__griglia-voci--sola .nx-case__cella { grid-template-columns: minmax(0, 1fr); }
    .nx-case__griglia-voci.nx-case__griglia-voci--sola { margin-inline: 0; }
    .nx-case__affianco { grid-template-columns: minmax(0, 1fr); }
    .nx-case__testi--2 { columns: 1; }
}
@media (max-width: 549px) {
    /* a telefono due colonne: a tutta larghezza solo le immagini che lo richiedono */
    .nx-case__righe, .nx-case__riga { gap: 8px; }
    .nx-case__griglia-voci { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 0; margin-inline: -4px; }
    .nx-case__cella { grid-column: auto !important; padding-inline: 4px; }
    .nx-case__cella .nx-case__foto { aspect-ratio: 1.6; }
    .nx-case__cap { min-height: 52px; }
    .nx-case__cap h3 { font-size: 15px !important; }
    .nx-typo__griglia--2, .nx-typo__font { grid-template-columns: minmax(0, 1fr); }
    .nx-typo__nomi p, .nx-typo__griglia--2 .nx-typo__nomi p { font-size: 24px; margin-bottom: 6px; }
    .nx-typo__frase, .nx-typo__griglia--2 .nx-typo__frase { font-size: 22px; margin-bottom: 12px; }
    .nx-typo__alfa p, .nx-typo__griglia--2 .nx-typo__alfa p { font-size: 11px; }
    .nx-case--viola .nx-typo { padding: 18px; }
    .nx-case__tipi { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .nx-case__griglia-foto { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .nx-case__griglia-foto--1 { grid-template-columns: minmax(0, 1fr); }
    .nx-case__griglia-foto--larga .nx-case__foto, .nx-case__griglia-foto--larga .nx-case__foto:nth-child(-n+2) { grid-column: auto; aspect-ratio: 16 / 10; }
    .nx-case__griglia-foto--larga .nx-case__foto:first-child { grid-column: span 2; }
    .nx-case__griglia-foto + .nx-case__griglia-foto { margin-top: 8px; }
    .nx-case__griglia-foto--3 .nx-case__foto:first-child, .nx-case__griglia-foto--5 .nx-case__foto:first-child { grid-column: span 2; aspect-ratio: 16 / 10; }
    .nx-case__griglia-foto--4 .nx-case__foto, .nx-case__griglia-foto--5 .nx-case__foto { aspect-ratio: 16 / 10; }
    .nx-pal__griglia, .nx-pal__griglia--5, .nx-pal__griglia--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 14px; }
    .nx-pal__griglia--5 .nx-pal__segni, .nx-pal__griglia--6 .nx-pal__segni { width: 134px; margin-bottom: 14px; }
    .nx-pal__griglia--5 .nx-pal__cerchio, .nx-pal__griglia--6 .nx-pal__cerchio { width: 94px; height: 94px; }
    .nx-pal__griglia--5 .nx-pal__scala, .nx-pal__griglia--6 .nx-pal__scala { width: 16px; height: 136px; }
    .nx-pal__tit { margin-bottom: 16px; font-size: 16px; }
    .nx-pal__segni { width: 134px; margin-bottom: 14px; }
    .nx-pal__cerchio { width: 94px; height: 94px; }
    .nx-pal__scala { width: 16px; height: 136px; }
    .nx-pal__num { margin-bottom: 8px; padding-left: 6px; font-size: 18px; }
    .nx-pal h4 { margin-bottom: 8px; font-size: 19px !important; }
    .nx-pal__val { font-size: 13px; }
    .nx-case--viola .nx-pal { padding: 18px; }
    .nx-case__tech { gap: 12px 24px; }
    .nx-case__tech img { height: 24px; }
    .nx-case__griglia { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .nx-case__riga[style] { max-width: none !important; }
    .nx-case__brand { gap: 24px; margin-block: 24px; }
    .nx-case__riga { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
    .nx-case__foto--largo { grid-column: 1 / -1; }
}
