.nb4cc-editor-empty{padding:16px;border:1px dashed #c3c4c7;background:#f6f7f7;color:#50575e;font-size:13px}
.nb4cc-event-title{margin:0}.nb4cc-event-title a{color:inherit;text-decoration:inherit}
.nb4cc-event-image img,.nb4cc-speaker-photo{display:block;width:100%;height:auto}.nb4cc-card-image img{display:block}
.nb4cc-meta-grid,.nb4cc-speakers,.nb4cc-edition-selector{display:grid;gap:20px}
.nb4cc-meta-card{display:flex;min-width:0;flex-direction:column;gap:8px;padding:20px;border:1px solid #e1e1e1;background:#fff;color:inherit;text-decoration:none;transition:background-color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.nb4cc-meta-icon{display:inline-flex;line-height:1}.nb4cc-meta-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.nb4cc-meta-value{font-size:17px;line-height:1.45}.nb4cc-meta-link-text{font-size:13px;text-decoration:underline}
.nb4cc-speaker-card{overflow:hidden;border:1px solid #e5e5e5}.nb4cc-speaker-content{padding:20px}.nb4cc-speaker-photo{aspect-ratio:1/1;object-fit:cover}.nb4cc-speaker-name{margin:0 0 6px}.nb4cc-speaker-role{font-weight:600;margin-bottom:10px}.nb4cc-speaker-bio>:first-child,.nb4cc-timeline-description>:first-child,.nb4cc-program-description>:first-child{margin-top:0}.nb4cc-speaker-bio>:last-child,.nb4cc-timeline-description>:last-child,.nb4cc-program-description>:last-child{margin-bottom:0}
.nb4cc-edition-option{appearance:none;width:100%;text-align:left;display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid #d8d8d8;background:#fff;color:inherit;cursor:pointer;transition:.2s ease}.nb4cc-edition-option:hover,.nb4cc-edition-option.is-selected{border-color:currentColor}.nb4cc-edition-option.is-selected{box-shadow:0 0 0 2px currentColor inset}.nb4cc-edition-option.is-disabled{opacity:.45;cursor:not-allowed}.nb4cc-edition-name{font-weight:700}.nb4cc-edition-meta{display:flex;flex-direction:column;gap:4px}.nb4cc-edition-price{font-weight:700}.nb4cc-edition-closed{font-size:12px;text-transform:uppercase;font-weight:700}
.nb4cc-timeline{--nb4cc-line-color:#dedede;--nb4cc-line-active:#222;--nb4cc-line-width:2px;--nb4cc-dot-size:14px}.nb4cc-timeline-day{display:flex;gap:10px;align-items:baseline;margin:34px 0 18px}.nb4cc-timeline-day:first-child{margin-top:0}.nb4cc-timeline-day strong{font-size:20px}.nb4cc-timeline-day span{opacity:.7}.nb4cc-timeline-track{position:relative;padding-left:44px;--nb4cc-progress:0%}.nb4cc-timeline-track:before,.nb4cc-timeline-track:after{content:"";position:absolute;left:calc((var(--nb4cc-dot-size) - var(--nb4cc-line-width))/2);top:0;width:var(--nb4cc-line-width);border-radius:999px}.nb4cc-timeline-track:before{height:100%;background:var(--nb4cc-line-color)}.nb4cc-timeline-track:after{height:var(--nb4cc-progress);background:var(--nb4cc-line-active);transition:height .08s linear}.nb4cc-timeline-item{position:relative;min-height:70px;padding:0 0 28px}.nb4cc-timeline-dot{position:absolute;left:calc(-44px + (var(--nb4cc-dot-size) - var(--nb4cc-dot-size))/2);top:8px;width:var(--nb4cc-dot-size);height:var(--nb4cc-dot-size);border-radius:50%;background:var(--nb4cc-line-color);border:3px solid #fff;box-shadow:0 0 0 1px var(--nb4cc-line-color);z-index:2;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}.nb4cc-timeline-item.is-active .nb4cc-timeline-dot{background:var(--nb4cc-line-active);box-shadow:0 0 0 2px var(--nb4cc-line-active);transform:scale(1.28)}.nb4cc-timeline-card{padding:20px;border:1px solid #e3e3e3;background:#fff}.nb4cc-timeline-time{font-size:14px;font-weight:700;margin-bottom:6px}.nb4cc-timeline-title{margin:0 0 8px;font-size:20px}.nb4cc-timeline-speaker{font-weight:600;margin-bottom:8px}.nb4cc-timeline-description{line-height:1.55}.nb4cc-timeline-link{display:inline-block;margin-top:12px}
.nb4cc-timeline.is-animation-ready.nb4cc-reveal-fade-up .nb4cc-timeline-item:not(.is-revealed) .nb4cc-timeline-card{opacity:0;transform:translateY(28px)}.nb4cc-timeline.is-animation-ready.nb4cc-reveal-scale .nb4cc-timeline-item:not(.is-revealed) .nb4cc-timeline-card{opacity:0;transform:scale(.94)}.nb4cc-timeline.is-animation-ready.nb4cc-reveal-slide-alternate .nb4cc-timeline-item:not(.is-revealed) .nb4cc-timeline-card{opacity:0;transform:translateX(-34px)}.nb4cc-timeline.is-animation-ready.nb4cc-reveal-slide-alternate .nb4cc-timeline-item:nth-child(even):not(.is-revealed) .nb4cc-timeline-card{transform:translateX(34px)}.nb4cc-timeline-card{transition:opacity .55s ease,transform .55s ease,border-color .25s ease,box-shadow .25s ease}.nb4cc-timeline-item.is-revealed .nb4cc-timeline-card{opacity:1;transform:none}
.nb4cc-program-day{display:flex;gap:10px;align-items:baseline;margin:26px 0 12px}.nb4cc-program-day strong{font-size:20px}.nb4cc-program-row{display:grid;grid-template-columns:minmax(90px,150px) minmax(0,1fr);gap:22px;padding:20px;border:1px solid #e3e3e3;border-bottom:0}.nb4cc-program-row:last-child{border-bottom:1px solid #e3e3e3}.nb4cc-program-time{font-weight:700}.nb4cc-program-title{margin:0 0 6px}.nb4cc-program-speaker{font-weight:600;margin-bottom:6px}
.nb4cc-pdf-button,.nb4cc-submit{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 20px;border:1px solid currentColor;background:transparent;color:inherit;text-decoration:none;cursor:pointer}.nb4cc-price-spots{display:flex;gap:16px;align-items:baseline}.nb4cc-price{font-size:28px;font-weight:700}.nb4cc-spots{font-size:14px}
.nb4cc-event-filters{display:flex;flex-wrap:wrap;gap:10px}.nb4cc-filter-button{min-height:40px;padding:8px 18px;border:1px solid #d4d4d4;background:transparent;color:inherit;cursor:pointer}.nb4cc-filter-button.is-active{font-weight:700}
.nb4cc-grid-shell{position:relative;min-width:0}.nb4cc-event-grid{--nb4cc-grid-gap:24px;gap:var(--nb4cc-grid-gap)}.nb4cc-event-grid.is-grid{display:grid}.nb4cc-event-grid.is-carousel{display:flex;align-items:stretch;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-inline:contain;padding:0}.nb4cc-event-grid.is-carousel::-webkit-scrollbar{display:none}.nb4cc-event-grid.is-carousel.is-swipe-disabled{overflow-x:hidden;touch-action:pan-y}.nb4cc-event-grid.is-carousel .nb4cc-event-card{flex:0 0 calc((100% - 2 * var(--nb4cc-grid-gap))/3);scroll-snap-align:start;scroll-snap-stop:always}.nb4cc-event-card{min-width:0;overflow:hidden;border:0;background:transparent;isolation:isolate}.nb4cc-event-card[hidden]{display:none!important}.nb4cc-card-link{display:block;height:100%;color:inherit;text-decoration:none;border-radius:inherit;overflow:hidden;cursor:pointer}.nb4cc-card-image{overflow:hidden}.nb4cc-card-image img{width:100%!important;height:100%!important;max-width:none!important;aspect-ratio:auto!important;object-fit:var(--nb4cc-grid-image-fit,cover)!important;object-position:var(--nb4cc-grid-image-position,center center)!important;transition:transform .35s ease}.nb4cc-event-card:hover .nb4cc-card-image img{transform:scale(1.035)}.nb4cc-card-content{padding:20px}.nb4cc-card-title{margin:6px 0 10px}.nb4cc-card-meta{font-size:13px}.nb4cc-card-excerpt{margin-top:10px}.nb4cc-carousel-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 12px}.nb4cc-carousel-prev,.nb4cc-carousel-next{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;box-sizing:border-box;padding:0!important;border:1px solid #d4d4d4;border-radius:50%;background:#fff;color:inherit;line-height:0;cursor:pointer;appearance:none;-webkit-appearance:none}.nb4cc-carousel-prev svg,.nb4cc-carousel-next svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.nb4cc-carousel-prev:disabled,.nb4cc-carousel-next:disabled{opacity:.38;cursor:default}.nb4cc-carousel-pagination{display:flex;align-items:center;justify-content:center;gap:7px;margin:16px 0 0}.nb4cc-carousel-pagination[hidden]{display:none!important}.nb4cc-carousel-dot{display:block;width:9px;height:9px;flex:0 0 auto;padding:0!important;border:0;border-radius:999px;background:rgba(0,0,0,.24);cursor:pointer;appearance:none;-webkit-appearance:none}.nb4cc-carousel-dot.is-active{background:currentColor}.nb4cc-carousel-dot:focus-visible,.nb4cc-carousel-prev:focus-visible,.nb4cc-carousel-next:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.nb4cc-registration-form{padding:28px;border:1px solid #e3e3e3}.nb4cc-registration-form h2{margin-top:0}.nb4cc-registration-form h3{margin:28px 0 14px}.nb4cc-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.nb4cc-field{display:flex;flex-direction:column;gap:6px;min-width:0}.nb4cc-field-full{margin-bottom:16px}.nb4cc-field label{font-size:14px;font-weight:600}.nb4cc-field input,.nb4cc-field select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cfcfcf;background:#fff;color:#222;font:inherit}.nb4cc-privacy{display:flex;align-items:flex-start;gap:10px;margin:22px 0}.nb4cc-privacy input{margin-top:4px}.nb4cc-submit{width:100%;font-weight:700}.nb4cc-form-error,.nb4cc-registration-closed{padding:14px 16px;border:1px solid #b32d2e;background:#fff5f5;margin-bottom:18px}
@media(max-width:767px){.nb4cc-program-row{grid-template-columns:1fr;gap:8px}.nb4cc-form-grid{grid-template-columns:1fr}.nb4cc-timeline-track{padding-left:36px}.nb4cc-timeline-dot{left:-36px}.nb4cc-event-grid.is-carousel .nb4cc-event-card{flex-basis:86%}}
@media(prefers-reduced-motion:reduce){.nb4cc-timeline-card,.nb4cc-timeline-dot,.nb4cc-card-image img{transition:none!important}.nb4cc-timeline-item .nb4cc-timeline-card{opacity:1!important;transform:none!important}}
.nb4cc-cta-wrap{display:flex;width:100%;min-width:0;justify-content:flex-start}
.nb4cc-cta-button{display:inline-flex;align-items:center;justify-content:center;max-width:100%;min-height:44px;padding:12px 22px;border:1px solid currentColor;background:transparent;color:inherit;text-decoration:none;text-align:center;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.nb4cc-event-card.is-overlay{position:relative;height:var(--nb4cc-grid-image-height,auto);min-height:var(--nb4cc-grid-image-height,320px);aspect-ratio:var(--nb4cc-grid-image-ratio,auto)}.nb4cc-event-card.is-overlay .nb4cc-card-link{position:relative;display:flex;height:100%;min-height:inherit;align-items:flex-end;overflow:hidden}.nb4cc-event-card.is-overlay .nb4cc-card-link:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.04));z-index:1}.nb4cc-event-card.is-overlay .nb4cc-card-image{position:absolute;inset:0}.nb4cc-event-card.is-overlay .nb4cc-card-content{position:relative;z-index:2;width:100%;color:#fff}.nb4cc-event-card .nb4cc-card-title{transition:font-size .22s ease,transform .22s ease}
.nb4cc-course-checkout .woocommerce-billing-fields>h3,.nb4cc-course-checkout .woocommerce-additional-fields{display:none!important}.nb4cc-course-checkout .nb4cc-hidden-checkout-field{display:none!important}.nb4cc-checkout-summary{margin:0 0 28px;padding:22px;border:1px solid #e2e2e2;background:#fff}.nb4cc-checkout-summary h2{margin:4px 0 8px}.nb4cc-checkout-kicker{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.65}.nb4cc-checkout-edition{font-weight:700;margin-bottom:8px}.nb4cc-checkout-summary p{margin:0}
.nb4cc-edition-content[hidden]{display:none!important}.nb4cc-edition-content.is-active{display:block}.nb4cc-documents{display:flex;flex-wrap:wrap;gap:12px}.nb4cc-speaker-card .nb4cc-speaker-content{height:100%;display:flex;align-items:center}.nb4cc-speaker-card .nb4cc-speaker-name{margin:0}

/* Edizione > Giornate */
.nb4cc-speaker-days,.nb4cc-document-groups{display:flex;flex-direction:column;gap:28px}.nb4cc-speaker-day{padding:0}.nb4cc-speaker-day-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:14px}.nb4cc-speaker-day-title,.nb4cc-day-card-title,.nb4cc-timeline-day-title,.nb4cc-program-day-title,.nb4cc-document-group-title{margin:0}.nb4cc-speaker-day-date,.nb4cc-day-card-date,.nb4cc-timeline-day-date,.nb4cc-program-day-date,.nb4cc-document-group-date{opacity:.72}.nb4cc-days-grid{display:grid;gap:24px}.nb4cc-day-card{min-width:0;padding:24px;border:1px solid #e3e3e3;background:#fff}.nb4cc-day-card-date{margin-top:6px}.nb4cc-day-card-description{margin-top:16px;line-height:1.6}.nb4cc-day-card-description>:first-child,.nb4cc-timeline-day-description>:first-child,.nb4cc-program-day-description>:first-child{margin-top:0}.nb4cc-day-card-description>:last-child,.nb4cc-timeline-day-description>:last-child,.nb4cc-program-day-description>:last-child{margin-bottom:0}.nb4cc-day-card-speakers,.nb4cc-timeline-day-speakers,.nb4cc-program-day-speakers{margin-top:12px;font-weight:600}.nb4cc-day-meta-grid,.nb4cc-timeline-day-meta-grid,.nb4cc-program-day-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:18px}.nb4cc-day-meta-card,.nb4cc-timeline-day-meta-card,.nb4cc-program-day-meta-card{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid #e3e3e3;color:inherit;text-decoration:none}.nb4cc-day-meta-title,.nb4cc-timeline-day-meta-title,.nb4cc-program-day-meta-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.nb4cc-day-meta-value,.nb4cc-timeline-day-meta-value,.nb4cc-program-day-meta-value{line-height:1.45}.nb4cc-day-documents{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.nb4cc-day-document-link{display:inline-flex;align-items:center;min-height:42px;padding:9px 14px;border:1px solid currentColor;color:inherit;text-decoration:none}.nb4cc-timeline-day-section,.nb4cc-program-day-section{margin:0 0 36px}.nb4cc-timeline-day-section:last-child,.nb4cc-program-day-section:last-child{margin-bottom:0}.nb4cc-timeline-day-header,.nb4cc-program-day-section{min-width:0}.nb4cc-timeline-day-date,.nb4cc-program-day-date{margin-top:6px}.nb4cc-timeline-day-description,.nb4cc-program-day-description{margin-top:14px;line-height:1.6}.nb4cc-timeline-day-meta-grid,.nb4cc-program-day-meta-grid{margin-bottom:20px}.nb4cc-timeline-day-section .nb4cc-timeline-track{margin-top:18px}.nb4cc-program-day-section .nb4cc-program-row:first-of-type{margin-top:18px}.nb4cc-document-group{display:flex;flex-direction:column;gap:10px}.nb4cc-document-group-date{margin-top:-4px}.nb4cc-document-group .nb4cc-documents{margin-top:2px}
@media(max-width:767px){.nb4cc-day-meta-grid,.nb4cc-timeline-day-meta-grid,.nb4cc-program-day-meta-grid{grid-template-columns:1fr}.nb4cc-day-card{padding:18px}.nb4cc-speaker-day-head{flex-direction:column;align-items:flex-start}}

/* Pagina iscrizione dedicata */
.nb4cc-registration-event-header{margin:0 0 28px}.nb4cc-registration-kicker{display:block;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.65;margin-bottom:6px}.nb4cc-registration-event-title{margin:0 0 10px}.nb4cc-registration-back{display:inline-flex;align-items:center;color:inherit;text-decoration:none}.nb4cc-registration-back:hover{text-decoration:underline}.nb4cc-spots.is-sold-out{font-weight:700}.nb4cc-spots.is-unlimited{font-weight:600}

/* Theme Builder - pagina iscrizione */
.nb4cc-registration-summary{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid #e3e3e3;background:#fff}.nb4cc-registration-summary-course{font-size:22px;font-weight:700}.nb4cc-registration-summary-edition{font-size:16px;font-weight:700}.nb4cc-registration-summary-meta{font-size:14px}.nb4cc-registration-summary-price{font-size:26px;font-weight:700;margin-top:4px}.nb4cc-registration-back-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid currentColor;color:inherit;text-decoration:none}.nb4cc-registration-summary-panel[hidden]{display:none!important}

/* Grid/Carousel - image sizing controls (v1.3.4)
 * The Elementor widget writes CSS custom properties on its wrapper.
 * These rules intentionally avoid hard-coded cover/ratio values so the frontend
 * always follows the widget settings, including overlay cards. */
.nb4cc-event-card:not(.is-overlay) .nb4cc-card-image{position:relative;overflow:hidden;width:var(--nb4cc-grid-image-width,100%)!important;max-width:100%;height:var(--nb4cc-grid-image-height,auto);aspect-ratio:var(--nb4cc-grid-image-ratio,4 / 3)}
.nb4cc-event-card:not(.is-overlay) .nb4cc-card-image img{width:100%!important;height:100%!important;max-width:none!important;aspect-ratio:auto!important;object-fit:var(--nb4cc-grid-image-fit,cover)!important;object-position:var(--nb4cc-grid-image-position,center center)!important}
.nb4cc-event-card.is-overlay .nb4cc-card-image{overflow:hidden}
.nb4cc-event-card.is-overlay .nb4cc-card-image img{width:100%!important;height:100%!important;max-width:none!important;aspect-ratio:auto!important;object-fit:var(--nb4cc-grid-image-fit,cover)!important;object-position:var(--nb4cc-grid-image-position,center center)!important}

/* Checkout corsi dedicato (v1.3.2) */
.nb4cc-course-payment-page .woocommerce-form-coupon-toggle,
.nb4cc-course-payment-page form.checkout_coupon,
.nb4cc-course-payment-page #customer_details,
.nb4cc-course-payment-page .woocommerce-billing-fields,
.nb4cc-course-payment-page .woocommerce-shipping-fields,
.nb4cc-course-payment-page .woocommerce-additional-fields,
.nb4cc-course-payment-page .woocommerce-account-fields,
.nb4cc-course-payment-page .nb4cc-hidden-checkout-field{display:none!important}
.nb4cc-course-payment{width:100%}
.nb4cc-course-payment form.checkout{display:block!important}
.nb4cc-course-payment #order_review_heading{margin-top:0}
.nb4cc-course-payment #order_review{width:100%!important;float:none!important}
.nb4cc-course-payment .woocommerce-checkout-review-order-table{width:100%;margin-bottom:24px}
.nb4cc-course-payment #payment{width:100%;box-sizing:border-box}
.nb4cc-course-payment #payment .wc_payment_methods{margin:0;padding:0;list-style:none}
.nb4cc-course-payment #payment .wc_payment_method{list-style:none}
.nb4cc-course-payment #place_order{min-height:48px}


/* Grid/Carousel - hard column containment (v1.3.6)
 * A fixed fallback min-height combined with aspect-ratio (for example 21:9)
 * could transfer a large intrinsic width to an overlay card and make it spill
 * into adjacent CSS Grid tracks. The grid track is now always authoritative. */
.nb4cc-event-grid.is-grid{min-width:0;align-items:stretch}
.nb4cc-event-grid.is-grid>.nb4cc-event-card{width:100%!important;max-width:100%!important;min-width:0!important;justify-self:stretch;box-sizing:border-box}
.nb4cc-event-grid.is-grid>.nb4cc-event-card .nb4cc-card-link{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.nb4cc-event-grid.is-grid>.nb4cc-event-card .nb4cc-card-image{max-width:100%;min-width:0;box-sizing:border-box}
.nb4cc-event-card.is-overlay{width:100%!important;max-width:100%!important;min-width:0!important;height:var(--nb4cc-grid-image-height,auto);min-height:0!important;aspect-ratio:var(--nb4cc-grid-image-ratio,4 / 3);box-sizing:border-box}
.nb4cc-event-card.is-overlay .nb4cc-card-link{width:100%;max-width:100%;min-width:0;height:100%;min-height:0;box-sizing:border-box}
.nb4cc-event-card.is-overlay .nb4cc-card-image{top:0;right:auto;bottom:0;left:0;width:min(var(--nb4cc-grid-image-width,100%),100%);max-width:100%;min-width:0;box-sizing:border-box}
.nb4cc-event-card.is-overlay .nb4cc-card-image img{max-width:100%!important}


/* Grid/Carousel polish and controls (v1.3.7) */
.nb4cc-event-card,.nb4cc-event-card .nb4cc-card-link{box-sizing:border-box}
.nb4cc-event-card.is-overlay .nb4cc-card-link:after{border-radius:inherit}
.nb4cc-event-grid.is-carousel>.nb4cc-event-card{max-width:100%;overflow:hidden}
.nb4cc-event-grid.is-carousel>.nb4cc-event-card>.nb4cc-card-link{width:100%;max-width:100%;min-width:0}

/* True transform carousel engine (v1.3.8) */
.nb4cc-carousel-viewport{
    width:100%;
    min-width:0;
    overflow:hidden;
    position:relative;
    touch-action:pan-y;
}
.nb4cc-event-grid.is-carousel{
    display:flex;
    align-items:stretch;
    width:100%;
    min-width:0;
    max-width:none;
    overflow:visible!important;
    overflow-x:visible!important;
    overflow-y:visible!important;
    scroll-snap-type:none!important;
    scrollbar-width:auto;
    -ms-overflow-style:auto;
    overscroll-behavior:auto;
    transform:translate3d(0,0,0);
    will-change:transform;
    backface-visibility:hidden;
}
.nb4cc-event-grid.is-carousel::-webkit-scrollbar{display:initial}
.nb4cc-event-grid.is-carousel.is-swipe-disabled{touch-action:auto}
.nb4cc-event-grid.is-carousel.is-dragging{cursor:grabbing;user-select:none}
.nb4cc-event-grid.is-carousel>.nb4cc-event-card{
    flex-shrink:0;
    scroll-snap-align:none!important;
    scroll-snap-stop:normal!important;
}
.nb4cc-event-grid.is-carousel>.nb4cc-carousel-clone{
    pointer-events:auto;
}
@media (hover:hover) and (pointer:fine){
    .nb4cc-carousel-viewport{cursor:grab}
    .nb4cc-carousel-viewport:active{cursor:grabbing}
}
@media (prefers-reduced-motion:reduce){
    .nb4cc-event-grid.is-carousel{transition-duration:0ms!important}
}


/* Compact internally scrollable day timeline (v1.3.9) */
.nb4cc-timeline-scroll{
    position:relative;
    min-width:0;
    max-width:100%;
    --nb4cc-visible-items:2;
    --nb4cc-scrollbar-size:6px;
    --nb4cc-scrollbar-thumb:rgba(0,0,0,.28);
    --nb4cc-scrollbar-track:rgba(0,0,0,.07);
}
.nb4cc-timeline-scroll[data-internal-scroll="yes"].is-scroll-enabled{
    max-height:var(--nb4cc-scroll-height);
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    scrollbar-width:thin;
    scrollbar-color:var(--nb4cc-scrollbar-thumb) var(--nb4cc-scrollbar-track);
}
.nb4cc-timeline-scroll[data-internal-scroll="yes"].is-scroll-enabled::-webkit-scrollbar{
    width:var(--nb4cc-scrollbar-size);
}
.nb4cc-timeline-scroll[data-internal-scroll="yes"].is-scroll-enabled::-webkit-scrollbar-track{
    background:var(--nb4cc-scrollbar-track);
    border-radius:999px;
}
.nb4cc-timeline-scroll[data-internal-scroll="yes"].is-scroll-enabled::-webkit-scrollbar-thumb{
    background:var(--nb4cc-scrollbar-thumb);
    border-radius:999px;
}
.nb4cc-timeline-scroll[data-scrollbar="hidden"].is-scroll-enabled{
    scrollbar-width:none;
}
.nb4cc-timeline-scroll[data-scrollbar="hidden"].is-scroll-enabled::-webkit-scrollbar{
    width:0;
    height:0;
}
.nb4cc-timeline-scroll.is-scroll-enabled .nb4cc-timeline-track{
    margin-top:0;
}
.nb4cc-timeline-scroll:not(.is-scroll-enabled){
    overflow:visible;
    max-height:none;
}
.nb4cc-timeline-day-section .nb4cc-timeline-scroll{margin-top:18px}
.nb4cc-timeline-day-section .nb4cc-timeline-scroll .nb4cc-timeline-track{margin-top:0}

/* Timeline internal scroll - safe marker gutter (v1.3.10)
 * The active step marker slightly overflows its nominal box because of border,
 * shadow and scale. With overflow-x hidden that overflow was clipped. Keep the
 * entire track inside a small horizontal safe area instead of allowing negative
 * paint outside the scroll viewport. */
.nb4cc-timeline-scroll[data-internal-scroll="yes"].is-scroll-enabled{
    box-sizing:border-box;
    padding-left:8px;
}



/* Free registration confirmation */
.nb4cc-registration-success {
    padding: 24px;
    border: 1px solid currentColor;
    border-radius: 12px;
}
.nb4cc-registration-success h2 { margin-top: 0; }
.nb4cc-registration-success-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 8px;
}
.nb4cc-price.is-free,
.nb4cc-edition-price.is-free,
.nb4cc-registration-summary-price.is-free {
    font-weight: 600;
}

/* Timeline mobile visibility + overflow containment (v1.3.14)
 * Timeline cards remain visible by default until JS has initialized the reveal
 * state. This avoids mobile browsers leaving the cards at opacity:0 when the
 * timeline lives inside an internally scrollable clipping ancestor. */
@media(max-width:767px){
    .nb4cc-timeline,
    .nb4cc-timeline-day-section,
    .nb4cc-timeline-scroll,
    .nb4cc-timeline-track,
    .nb4cc-timeline-item,
    .nb4cc-timeline-card{min-width:0;max-width:100%;box-sizing:border-box}
    .nb4cc-timeline-scroll,
    .nb4cc-timeline-track,
    .nb4cc-timeline-item,
    .nb4cc-timeline-card{width:100%}
}

/* Mobile timeline hard fallback (v1.3.16)
 * Elementor/theme animation CSS must never be able to hide the timeline cards on
 * phones. The nested timeline remains scrollable; only reveal transforms are disabled. */
@media(max-width:767px){
    .nb4cc-timeline .nb4cc-timeline-item .nb4cc-timeline-card,
    .nb4cc-timeline.is-animation-ready .nb4cc-timeline-item:not(.is-revealed) .nb4cc-timeline-card,
    .nb4cc-timeline.nb4cc-reveal-fade-up .nb4cc-timeline-item .nb4cc-timeline-card,
    .nb4cc-timeline.nb4cc-reveal-scale .nb4cc-timeline-item .nb4cc-timeline-card,
    .nb4cc-timeline.nb4cc-reveal-slide-alternate .nb4cc-timeline-item .nb4cc-timeline-card{
        opacity:1!important;
        visibility:visible!important;
        transform:none!important;
    }
    .nb4cc-timeline-scroll[data-internal-scroll="yes"].is-scroll-enabled{
        overflow-y:auto!important;
        overflow-x:hidden!important;
    }
}


/* Mobile timeline structural layout (v1.3.17)
 * Keep line and marker in a dedicated internal gutter so cards can never be
 * shifted outside the scroll viewport by theme/mobile CSS. */
@media(max-width:767px){
    .nb4cc-timeline .nb4cc-timeline-scroll{position:relative!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;}
    .nb4cc-timeline .nb4cc-timeline-track{position:relative!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;padding-left:34px!important;margin-left:0!important;transform:none!important;}
    .nb4cc-timeline .nb4cc-timeline-track:before,.nb4cc-timeline .nb4cc-timeline-track:after{left:7px!important;}
    .nb4cc-timeline .nb4cc-timeline-item{display:block!important;position:relative!important;width:auto!important;max-width:none!important;min-width:0!important;margin-left:0!important;margin-right:0!important;opacity:1!important;visibility:visible!important;transform:none!important;}
    .nb4cc-timeline .nb4cc-timeline-dot{display:block!important;left:-34px!important;opacity:1!important;visibility:visible!important;}
    .nb4cc-timeline .nb4cc-timeline-card{display:block!important;position:relative!important;width:auto!important;max-width:100%!important;min-width:0!important;margin-left:0!important;margin-right:0!important;opacity:1!important;visibility:visible!important;transform:none!important;box-sizing:border-box!important;}
    .nb4cc-timeline .nb4cc-timeline-card>*{opacity:1!important;visibility:visible!important;}
}

/* v1.3.18 - profili campi iscrizione gratuiti / a pagamento */
.nb4cc-registration-form .nb4cc-mode-field[hidden],
.nb4cc-registration-form .nb4cc-fields-section[hidden],
.nb4cc-registration-form .nb4cc-required-mark[hidden] { display: none !important; }
.nb4cc-registration-form .nb4cc-fields-section { min-width: 0; }

/* v1.3.22 - Express Checkout wallets (Apple Pay / Google Pay)
 * Keep gateway-provided wallet containers visible and full width inside the
 * dedicated course checkout. The gateway still decides device/account eligibility. */
.nb4cc-course-payment #wc-stripe-express-checkout-element,
.nb4cc-course-payment .wc-stripe-express-checkout-element,
.nb4cc-course-payment #wcpay-express-checkout-button,
.nb4cc-course-payment .wcpay-express-checkout-wrapper,
.nb4cc-course-payment .wc-block-components-express-payment{
    display:block;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}
.nb4cc-course-payment .wc-stripe-express-checkout-element-separator,
.nb4cc-course-payment .wcpay-express-checkout-separator{
    width:100%;
    box-sizing:border-box;
}

/* v1.3.23 - Payment Plugins for Stripe WooCommerce 4.x wallets */
.nb4cc-course-payment #wc-stripe_applepay-checkout-button,
.nb4cc-course-payment #wc-stripe_googlepay-checkout-button,
.nb4cc-course-payment #wc-stripe_link_checkout-checkout-button,
.nb4cc-course-payment .wc-stripe-banner-checkout,
.nb4cc-course-payment .wc-stripe-banner-checkout-container,
.nb4cc-course-payment .wc-stripe-express-checkout-container,
.nb4cc-course-payment .wc-stripe-express-checkout{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
}
.nb4cc-course-payment #wc-stripe_applepay-checkout-button,
.nb4cc-course-payment #wc-stripe_googlepay-checkout-button,
.nb4cc-course-payment #wc-stripe_link_checkout-checkout-button{
    overflow:hidden;
}
