.noc-button{--d:var(--noc-btn-dur,.25s);display:inline-flex;align-items:center;justify-content:center;gap:.5em;align-self:var(--noc-self,flex-start);box-sizing:border-box;padding:var(--noc-btn-py,.8em) var(--noc-btn-px,1.6em);border:var(--noc-btn-border,1.5px) solid var(--noc-btn-bg,var(--noc-color-accent,#2563eb));border-radius:var(--noc-btn-radius,4px);background-color:var(--noc-btn-bg,var(--noc-color-accent,#2563eb));color:var(--noc-btn-ink,var(--noc-btn-color,#fff));font:inherit;font-size:var(--noc-btn-fs,inherit);font-weight:var(--noc-btn-fw,600);letter-spacing:var(--noc-btn-ls,normal);text-transform:var(--noc-btn-tt,none);line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color var(--d),color var(--d),border-color var(--d),transform var(--d),box-shadow var(--d),filter var(--d)}
.noc-button:hover{background-color:var(--noc-btn-bg-hover,var(--noc-btn-bg,var(--noc-color-accent,#2563eb)));border-color:var(--noc-btn-bg-hover,var(--noc-btn-bg,var(--noc-color-accent,#2563eb)));color:var(--noc-btn-ink,var(--noc-btn-color-hover,var(--noc-btn-color,#fff)));filter:brightness(1.06)}
.noc-button--outline{background-color:transparent;color:var(--noc-btn-ink,var(--noc-btn-bg,var(--noc-color-accent,#2563eb)))}
.noc-button--outline:hover{background-color:var(--noc-btn-bg,var(--noc-color-accent,#2563eb));color:var(--noc-btn-ink,var(--noc-btn-color-hover,var(--noc-btn-color,#fff)));filter:none}
.noc-button--text{padding-inline:0;border-color:transparent;background:none;color:var(--noc-btn-ink,var(--noc-btn-bg,var(--noc-color-accent,#2563eb)))}
.noc-button--text:hover{background:none;border-color:transparent;filter:none;opacity:.75}
.noc-button--sm{font-size:calc(var(--noc-btn-fs,1em)*.875)}
.noc-button--lg{font-size:calc(var(--noc-btn-fs,1em)*1.125);--noc-btn-py:1em;--noc-btn-px:2em}
.noc-button .noc-icon{transition:transform var(--noc-btn-dur,.25s) cubic-bezier(.22,.8,.3,1)}
.noc-button:hover .noc-icon--after{transform:translateX(3px)}
@media (prefers-reduced-motion:reduce){.noc-button,.noc-button .noc-icon{transition:none}}
.noc-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Effetti al passaggio (si sommano allo stile globale). */
.noc-button__arrow{display:inline-flex;width:0;margin-left:-.5em;opacity:0;overflow:hidden;transform:translateX(-.5em);transition:width var(--d) cubic-bezier(.22,.8,.3,1),margin var(--d) cubic-bezier(.22,.8,.3,1),opacity var(--d),transform var(--d) cubic-bezier(.22,.8,.3,1)}
.noc-button--fx-arrow:hover .noc-button__arrow,.noc-button--fx-arrow:focus-visible .noc-button__arrow{width:1em;margin-left:0;opacity:1;transform:none}
.noc-button__diag{position:relative;display:inline-block;width:1em;height:1em;overflow:hidden}
.noc-button__diag>span{position:absolute;inset:0;display:flex;transition:transform calc(var(--d)*1.6) cubic-bezier(.22,.8,.3,1)}
.noc-button__diag>span+span{transform:translate(-110%,110%)}
.noc-button--fx-arrow-diag:hover .noc-button__diag>span:first-child{transform:translate(110%,-110%)}
.noc-button--fx-arrow-diag:hover .noc-button__diag>span+span{transform:none}
.noc-button--fx-arrow-circle{gap:.75em}
.noc-button__circle{display:inline-grid;place-items:center;width:2.1em;height:2.1em;margin:-.5em -1em -.5em 0;border:1px solid currentColor;border-radius:50%;transition:background-color var(--d),color var(--d),transform var(--d) cubic-bezier(.22,.8,.3,1)}
.noc-button--text .noc-button__circle{margin-right:0}
.noc-button--fx-arrow-circle:hover .noc-button__circle{background:currentColor;transform:rotate(-45deg)}
.noc-button--fx-arrow-circle:hover .noc-button__circle svg{color:var(--noc-btn-bg,var(--noc-color-accent,#2563eb))}
.noc-button--text.noc-button--fx-arrow-circle:hover .noc-button__circle svg{color:#fff}
.noc-button__roll{display:inline-grid;overflow:hidden;line-height:1.2}
.noc-button__roll>span{grid-area:1/1;transition:transform calc(var(--d)*1.6) cubic-bezier(.65,0,.15,1)}
.noc-button__roll>span+span{transform:translateY(105%)}
.noc-button--fx-reveal:hover .noc-button__roll>span:first-child{transform:translateY(-105%)}
.noc-button--fx-reveal:hover .noc-button__roll>span+span{transform:none}
.noc-button__wave{display:inline-flex;overflow:hidden;line-height:1.2}
.noc-button__c{display:inline-block;text-shadow:0 1.25em currentColor;transition:transform calc(var(--d)*1.8) cubic-bezier(.65,0,.15,1)}
.noc-button--fx-wave:hover .noc-button__c{transform:translateY(-1.25em)}
.noc-button__c:nth-child(2){transition-delay:20ms}.noc-button__c:nth-child(3){transition-delay:40ms}.noc-button__c:nth-child(4){transition-delay:60ms}.noc-button__c:nth-child(5){transition-delay:80ms}.noc-button__c:nth-child(6){transition-delay:100ms}.noc-button__c:nth-child(7){transition-delay:120ms}.noc-button__c:nth-child(8){transition-delay:140ms}.noc-button__c:nth-child(9){transition-delay:160ms}.noc-button__c:nth-child(10){transition-delay:180ms}.noc-button__c:nth-child(n+11){transition-delay:200ms}
.noc-button--fx-underline{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:100% 100%;background-size:0 1px;transition:background-size calc(var(--d)*1.6) cubic-bezier(.65,0,.15,1),color var(--d)}
.noc-button--text.noc-button--fx-underline{padding-bottom:.25em;background-size:100% 1px;background-position:0 100%}
.noc-button--fx-underline:hover{background-size:100% 1px;background-position:0 100%}
.noc-button--text.noc-button--fx-underline:hover{animation:noc-btn-line calc(var(--d)*3) cubic-bezier(.65,0,.15,1)}
@keyframes noc-btn-line{0%{background-size:100% 1px;background-position:100% 100%}45%{background-size:0 1px;background-position:100% 100%}46%{background-position:0 100%}100%{background-size:100% 1px;background-position:0 100%}}
.noc-button--fx-material{box-shadow:0 2px 6px rgba(0,0,0,.14),0 1px 2px rgba(0,0,0,.08)}
.noc-button--fx-material:hover{filter:none;transform:translateY(-2px);box-shadow:0 12px 26px -8px rgba(0,0,0,.32),0 2px 6px rgba(0,0,0,.1)}
.noc-button--fx-material:active{transform:none;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.noc-button--next{flex-direction:column}
@media (prefers-reduced-motion:reduce){.noc-button__arrow,.noc-button__diag>span,.noc-button__circle,.noc-button__roll>span,.noc-button__c{transition:none}.noc-button--text.noc-button--fx-underline:hover{animation:none}}
.noc-image{margin:0}
.noc-image img,.noc-image picture{display:inline-block;max-width:100%;vertical-align:middle}
.noc-image img{height:auto;object-fit:var(--noc-img-fit,cover)}
:where(.noc-image) img{border-radius:var(--noc-img-radius,0)}
.noc-image__link{display:inline-block;max-width:100%;overflow:hidden;border-radius:var(--noc-img-radius,0)}
.noc-image__caption{margin-top:.5em;font-size:.875em;opacity:.75}
.noc-image--zoom .noc-image__link,.noc-image--zoom picture{overflow:hidden;border-radius:var(--noc-img-radius,0)}
.noc-image--zoom img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.noc-image--zoom:hover img{transform:scale(1.06)}
.noc-image--lift img{transition:transform .3s,box-shadow .3s}
.noc-image--lift:hover img{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,0,0,.15)}
.noc-image--grayscale img{filter:grayscale(1);transition:filter .4s}
.noc-image--grayscale:hover img{filter:none}
@media (prefers-reduced-motion:reduce){.noc-image img{transition:none!important}}
.noc-col>.noc-image:only-child{display:flex;flex-direction:column}
.noc-col>.noc-image:only-child :is(.noc-image__link,picture){display:flex;flex-direction:column;flex:var(--noc-col-fill,0 1 auto);min-height:0}
.noc-col>.noc-image:only-child img{flex:var(--noc-col-fill,0 1 auto);width:var(--noc-fill-w,auto);height:var(--noc-fill-h,auto);min-height:var(--noc-fill-min,0);object-fit:var(--noc-img-fit,cover)}
.noc-carousel,.noc-row--carousel>.noc-row__inner{position:relative;display:block;container-type:inline-size}
.noc-carousel__track{--g:var(--noc-car-gap,var(--noc-gal-gap,var(--noc-gap,var(--noc-gutter,24px))));--p:var(--noc-per,var(--noc-cols,1));--w:calc((100cqw - (var(--p) - 1)*var(--g))/var(--p));position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:var(--w);gap:var(--g);align-items:stretch;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;outline-offset:4px}
.noc-carousel__track::-webkit-scrollbar{display:none}
.noc-carousel__track>*{min-width:0;scroll-snap-align:start;scroll-snap-stop:normal}
.noc-carousel--center .noc-carousel__track>*{scroll-snap-align:center}
.noc-carousel__track img{-webkit-user-drag:none;user-select:none}
.noc-carousel--bleed .noc-carousel__track{margin-right:calc((100cqw - var(--noc-vw,100vw))/2);padding-right:calc((var(--noc-vw,100vw) - 100cqw)/2);scroll-padding-inline-end:calc((var(--noc-vw,100vw) - 100cqw)/2)}
.noc-row--carousel>.noc-row__inner>.noc-carousel__track>.noc-col{flex:none;max-width:none;width:auto}
.is-dragging>.noc-carousel__track,.is-dragging .noc-carousel__track{scroll-snap-type:none;cursor:grabbing;user-select:none}
.noc-carousel__nav{display:flex;align-items:center;gap:clamp(1rem,2.5vw,2rem);margin-top:clamp(1.25rem,3vw,2.5rem)}
.noc-carousel__progress{position:relative;flex:1;height:2px;overflow:hidden;border-radius:2px;background:color-mix(in srgb,currentColor 14%,transparent)}
.noc-carousel__progress span{position:absolute;inset:0 auto 0 0;width:calc(var(--noc-car-thumb,.25)*100%);border-radius:inherit;background:currentColor;transform:translateX(calc(var(--noc-car-p,0)*(1/var(--noc-car-thumb,.25) - 1)*100%));transition:width .4s cubic-bezier(.22,.8,.3,1)}
.noc-carousel__count{min-width:7ch;font-size:.8125rem;letter-spacing:.06em;font-variant-numeric:tabular-nums;opacity:.6}
.noc-carousel__count b{font-weight:600;opacity:1}
.noc-carousel__nav--arrows{justify-content:flex-end}
.noc-carousel__arrows{display:flex;gap:.625rem;margin-left:auto}
.noc-carousel__btn{display:grid;place-items:center;width:52px;height:52px;padding:0;border:1px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:50%;background:transparent;color:inherit;cursor:pointer;transition:background-color .4s cubic-bezier(.22,.8,.3,1),border-color .4s,opacity .3s}
.noc-carousel__btn svg{transition:transform .4s cubic-bezier(.22,.8,.3,1)}
.noc-carousel__btn:hover:not(:disabled){border-color:currentColor;background:color-mix(in srgb,currentColor 8%,transparent)}
.noc-carousel__next:hover:not(:disabled) svg{transform:translateX(3px)}
.noc-carousel__prev:hover:not(:disabled) svg{transform:translateX(-3px)}
.noc-carousel__btn:disabled{opacity:.28;cursor:default}
.noc-carousel__btn:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.noc-carousel--filled .noc-carousel__btn{width:44px;height:44px;border:0;background:color-mix(in srgb,currentColor 9%,transparent)}
.noc-carousel--filled .noc-carousel__btn:hover:not(:disabled){border:0;background:color-mix(in srgb,currentColor 15%,transparent)}
.is-static>.noc-carousel__nav{visibility:hidden}
.noc-carousel--parallax .noc-carousel__track :is(figure,.noc-image,.noc-gallery__item,.noc-card__media){overflow:hidden}
.noc-carousel--parallax .noc-carousel__track img{transform:translate3d(var(--noc-px,0%),0,0) scale(1.18);will-change:transform}
.noc-carousel-cursor{position:fixed;top:0;left:0;z-index:9999;display:grid;place-items:center;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;background:var(--noc-car-cursor-bg,#111);color:var(--noc-car-cursor-ink,#fff);font:600 11px/1 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;pointer-events:none;opacity:0;transition:opacity .35s;transform:scale(.3)}
.noc-carousel-cursor.is-on{opacity:1}
.has-cursor>.noc-carousel__track,.has-cursor .noc-carousel__track{cursor:none}
@media (prefers-reduced-motion:reduce){.noc-carousel--parallax .noc-carousel__track img{transform:none}.noc-carousel__btn,.noc-carousel__btn svg,.noc-carousel__progress span{transition:none}}
.is-pinned:not(.noc-row),.is-pinned>.noc-row__inner{box-sizing:content-box;min-height:calc(var(--pin-h,0px) + var(--pin-dist,0px))}
.is-pinned>.noc-carousel__track,.is-pinned>.noc-row__inner>.noc-carousel__track{position:sticky;top:var(--pin-top,0px);overflow:hidden;scroll-snap-type:none;cursor:auto}
.is-pinned>.noc-carousel__nav,.is-pinned>.noc-row__inner>.noc-carousel__nav{position:sticky;top:var(--pin-nav,auto)}
.noc-posts--grid,.noc-posts--list{display:grid;grid-template-columns:repeat(var(--noc-cols,3),minmax(0,1fr));gap:var(--noc-gal-gap,clamp(18px,2.6vw,36px))}
.noc-posts--list{grid-template-columns:1fr}
.noc-post{position:relative;display:flex;flex-direction:column;gap:1.1rem;min-width:0;overflow:hidden;border-radius:var(--noc-post-radius,var(--noc-img-radius,18px))}
.noc-posts--filled .noc-post{background:var(--noc-post-bg,color-mix(in srgb,currentColor 5%,transparent))}
.noc-posts--ink-dark{--noc-post-ink-auto:#161616}.noc-posts--ink-light{--noc-post-ink-auto:#ffffff}
.noc-post{color:var(--noc-post-ink,var(--noc-post-ink-auto,inherit))}
.noc-post .noc-post__title,.noc-post .noc-post__excerpt,.noc-post .noc-post__meta{color:inherit}
.noc-posts--bordered .noc-post{border:var(--noc-post-border-w,1px) solid var(--noc-post-border-color,color-mix(in srgb,currentColor 14%,transparent))}
.noc-posts--shadow .noc-post{box-shadow:0 1px 2px rgba(0,0,0,.05),0 12px 32px -14px rgba(0,0,0,.22)}
.noc-posts--boxed .noc-post__body{padding:0 clamp(18px,2vw,26px) clamp(18px,2vw,26px)}
.noc-posts--boxed.noc-posts--media-none .noc-post__body,.noc-posts--boxed .noc-post:not(.has-media) .noc-post__body{padding-top:clamp(18px,2vw,26px)}
.noc-post__media{position:relative;display:block;overflow:hidden;aspect-ratio:var(--noc-post-ratio,3/2);border-radius:var(--noc-post-radius,var(--noc-img-radius,18px))}
.noc-posts--boxed .noc-post__media{border-radius:0}
.noc-post__img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.22,.8,.3,1)}
.noc-posts--hover-zoom .noc-post:hover .noc-post__img{transform:scale(1.04)}
.noc-posts--hover-lift .noc-post{transition:transform .35s cubic-bezier(.22,.8,.3,1),box-shadow .35s}
.noc-posts--hover-lift .noc-post:hover{transform:translateY(-4px);box-shadow:0 18px 40px -16px rgba(0,0,0,.25)}
.noc-post__body{display:flex;flex:1;flex-direction:column;gap:.55rem;min-width:0}
.noc-post__body>.is-end{margin-top:auto}
.noc-post__meta{margin:0;font-size:.8125rem;letter-spacing:.02em;opacity:.6}
.noc-post__meta--pill{opacity:1}
.noc-post__meta--pill .noc-post__term{display:inline-block;padding:.25em .75em;border-radius:999px;background:color-mix(in srgb,currentColor 8%,transparent)}
.noc-post__meta--pill>:not(.noc-post__term){opacity:.6}
.noc-post__meta--image{position:absolute;top:.85rem;left:.85rem;z-index:2;padding:.35em .8em;border-radius:999px;background:var(--noc-post-badge-bg,rgba(255,255,255,.92));color:var(--noc-post-badge-ink,#141414);font-size:.75rem;font-weight:600;opacity:1;pointer-events:none}
.noc-post .noc-post__title{margin:0;font-size:clamp(1.15rem,1.6vw,1.45rem);font-weight:var(--noc-typo-h3-weight,600);line-height:1.2;letter-spacing:-.015em;text-transform:none}
.noc-post__title a{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s cubic-bezier(.22,.8,.3,1)}
.noc-post:hover .noc-post__title a{background-size:100% 1px}
.noc-post__title a::after{content:"";position:absolute;inset:0;z-index:1}
.noc-post__title a:focus-visible{outline:0}
.noc-post:has(.noc-post__title a:focus-visible){outline:2px solid currentColor;outline-offset:3px}
.noc-post__excerpt{margin:0;font-size:.95rem;line-height:1.55;opacity:.75}
.noc-post__more{margin-top:.25rem;color:inherit;font-weight:600;font-size:.9rem;text-decoration:none}
.noc-post__more.is-end,.noc-post__meta.is-end+.noc-post__more{padding-top:.4rem}
.noc-post__more span{display:inline-block;transition:transform .35s cubic-bezier(.22,.8,.3,1)}
.noc-post:hover .noc-post__more span{transform:translateX(4px)}
/* Posizione dell'immagine. */
.noc-posts--media-bottom .noc-post__media{order:2}
.noc-posts--media-left .noc-post.has-media,.noc-posts--media-right .noc-post.has-media{display:grid;grid-template-columns:minmax(0,.9fr) 1fr;align-items:center;gap:clamp(16px,2.4vw,32px)}
.noc-posts--media-right .noc-post.has-media .noc-post__media{order:2}
.noc-posts--media-left .noc-post__media,.noc-posts--media-right .noc-post__media{height:100%;min-height:180px;aspect-ratio:auto}
.noc-posts--boxed.noc-posts--media-left .noc-post.has-media .noc-post__body,.noc-posts--boxed.noc-posts--media-right .noc-post.has-media .noc-post__body{padding:clamp(18px,2vw,26px)}
.noc-posts--media-background .noc-post.has-media{display:grid;min-height:clamp(320px,36vw,480px);color:#fff}
.noc-posts--media-background .noc-post.has-media>*{grid-area:1/1}
.noc-posts--media-background .noc-post__media{aspect-ratio:auto;border-radius:0}
.noc-posts--media-background .noc-post.has-media::after{content:"";grid-area:1/1;z-index:0;background:linear-gradient(0deg,rgba(0,0,0,.65),rgba(0,0,0,.05) 65%);pointer-events:none}
.noc-posts--media-background .noc-post__body{position:relative;z-index:1;align-self:end;padding:clamp(18px,2.4vw,30px)}
@media (max-width:767px){.noc-posts--media-left .noc-post.has-media,.noc-posts--media-right .noc-post.has-media{grid-template-columns:1fr}.noc-posts--media-right .noc-post.has-media .noc-post__media{order:0}.noc-posts--media-left .noc-post__media,.noc-posts--media-right .noc-post__media{aspect-ratio:var(--noc-post-ratio,3/2);height:auto}}
/* Masonry: colonne CSS (nessun JS, nessuno spostamento al caricamento); immagini nelle proporzioni originali salvo scelta. Dove il browser ha il masonry nativo, l'ordine resta per righe. */
.noc-posts--masonry{columns:var(--noc-cols,3);column-gap:var(--noc-gal-gap,clamp(18px,2.6vw,36px))}
.noc-posts--masonry>.noc-post{break-inside:avoid;margin-bottom:var(--noc-gal-gap,clamp(18px,2.6vw,36px))}
.noc-posts--masonry .noc-post__media{aspect-ratio:auto}
.noc-posts--masonry .noc-post__img{height:auto;aspect-ratio:var(--noc-post-ratio,auto)}
@supports (display:grid-lanes){.noc-posts--masonry{display:grid-lanes;grid-template-columns:repeat(var(--noc-cols,3),minmax(0,1fr));gap:var(--noc-gal-gap,clamp(18px,2.6vw,36px));columns:auto}.noc-posts--masonry>.noc-post{margin-bottom:0}}
@media (prefers-reduced-motion:reduce){.noc-post,.noc-post__img{transition:none!important}}
/* Altri contenuti: pulsante a tutta larghezza in griglia/elenco, su tutte le colonne nel masonry, sotto il carosello. */
.noc-posts__pager{display:flex;flex-direction:column;align-items:center;gap:.5rem;grid-column:1/-1;column-span:all;padding-top:var(--noc-gal-gap,clamp(18px,2.6vw,36px))}
.noc-posts__load{display:inline-flex;align-items:center;gap:.5em;padding:.75em 1.6em;border:1.5px solid currentColor;border-radius:var(--noc-btn-radius,999px);background:none;color:inherit;font:inherit;font-weight:600;cursor:pointer;transition:background-color .25s}
.noc-posts__load:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.noc-posts__load[aria-busy=true]{opacity:.6;cursor:progress}
.noc-posts__status:empty{display:none}.noc-posts__status{font-size:.85rem;opacity:.7}
.noc-post.is-new{animation:noc-post-in .5s cubic-bezier(.22,.8,.3,1) both}
@keyframes noc-post-in{from{opacity:0;transform:translateY(12px)}}
@media (prefers-reduced-motion:reduce){.noc-post.is-new{animation:none}}
/* I link della card prendono il colore della card anche dentro temi con regole sui link molto specifiche
   (es. .article-body a:not(…):not(…)…): :not(#noc) vale come un ID, senza !important. */
.noc-post a:not(#noc){color:inherit}
.noc-post .noc-post__title a:not(#noc),.noc-post .noc-post__more:not(#noc){text-decoration:none}
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth iframe{pointer-events:none}
