/* Canonical frontend node visibility binding: Desktop / Laptop / Tablet / Mobile. */
@media (min-width: 1200px) {
 .nb-hidden-desktop, .ntp-hide-desktop { display: none !important; }
}
@media (min-width: 960px) and (max-width: 1199px) {
 .nb-hidden-laptop, .ntp-hide-laptop { display: none !important; }
}
@media (min-width: 640px) and (max-width: 959px) {
 .nb-hidden-tablet, .ntp-hide-tablet { display: none !important; }
}
@media (max-width: 639px) {
 .nb-hidden-mobile, .ntp-hide-mobile { display: none !important; }
}

/* Core Hardening 2AP: hide public form honeypot without removing it from submitted markup. */
.nb-form-hp {
 position: absolute !important;
 left: -10000px !important;
 width: 1px !important;
 height: 1px !important;
 overflow: hidden !important;
}

/* frontend inspector responsive-style binding. */
.nb-builder [data-nb-responsive-style],
.nb-section[data-nb-responsive-style],
.nb-row[data-nb-responsive-style],
.nb-column[data-nb-responsive-style],
.nb-widget[data-nb-responsive-style] {
 transition: color .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

/* Element entrance animations are activated by frontend-elements.js so content
 * remains visible if JavaScript is unavailable. Reduced-motion is authoritative. */
html.nb-animation-runtime [data-nb-animation]:not(.is-nb-animated){opacity:0}
html.nb-animation-runtime [data-nb-animation].is-nb-animated{
 animation-name:var(--nb-animation-keyframe,nbFadeIn);
 animation-duration:var(--nb-animation-duration,600ms);
 animation-delay:var(--nb-animation-delay,0ms);
 animation-timing-function:var(--nb-animation-easing,cubic-bezier(.2,.8,.2,1));
 animation-fill-mode:both;
}
[data-nb-animation]{--nb-animation-distance:32px}
[data-nb-animation="fade"]{--nb-animation-keyframe:nbFadeIn}
[data-nb-animation="slide-up"]{--nb-animation-keyframe:nbSlideUp}
[data-nb-animation="slide-down"]{--nb-animation-keyframe:nbSlideDown}
[data-nb-animation="slide-left"]{--nb-animation-keyframe:nbSlideLeft}
[data-nb-animation="slide-right"]{--nb-animation-keyframe:nbSlideRight}
[data-nb-animation="scale-in"]{--nb-animation-keyframe:nbScaleIn}
[data-nb-animation="scale-out"]{--nb-animation-keyframe:nbScaleOut}
[data-nb-animation="blur-in"]{--nb-animation-keyframe:nbBlurIn}
@keyframes nbFadeIn{from{opacity:0}to{opacity:1}}
@keyframes nbSlideUp{from{opacity:0;transform:translateY(var(--nb-animation-distance,32px))}to{opacity:1;transform:none}}
@keyframes nbSlideDown{from{opacity:0;transform:translateY(calc(var(--nb-animation-distance,32px) * -1))}to{opacity:1;transform:none}}
@keyframes nbSlideLeft{from{opacity:0;transform:translateX(var(--nb-animation-distance,32px))}to{opacity:1;transform:none}}
@keyframes nbSlideRight{from{opacity:0;transform:translateX(calc(var(--nb-animation-distance,32px) * -1))}to{opacity:1;transform:none}}
@keyframes nbScaleIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes nbScaleOut{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}
@keyframes nbBlurIn{from{opacity:0;filter:blur(10px);transform:translateY(calc(var(--nb-animation-distance,32px) * .35))}to{opacity:1;filter:blur(0);transform:none}}

/* Shared element typography is applied to the actual presentation subtree only
 * when the author explicitly creates an override. This prevents UIkit/theme
 * inner selectors from defeating Builder settings while preserving inherited
 * component typography when no override exists. */
.nb-widget[data-nb-font-size="1"] :where(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,li,blockquote,figcaption,strong,em,span){font-size:var(--nb-element-font-size)!important}
.nb-widget[data-nb-font-weight="1"] :where(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,li,blockquote,figcaption,strong,em,span){font-weight:var(--nb-element-font-weight)!important}
.nb-widget[data-nb-line-height="1"] :where(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,li,blockquote,figcaption,strong,em,span){line-height:var(--nb-element-line-height)!important}
.nb-widget[data-nb-text-color="1"] :where(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,li,blockquote,figcaption,strong,em,span){color:var(--nb-element-text-color)!important}
.nb-widget[data-nb-text-align="1"] :where(h1,h2,h3,h4,h5,h6,p,blockquote,figcaption){text-align:var(--nb-element-text-align)!important}

@media (prefers-reduced-motion:reduce){
 html.nb-animation-runtime [data-nb-animation],html.nb-animation-runtime [data-nb-animation].is-nb-animated,.ntp-animate-fade,.ntp-animate-slide,.ntp-animate-scale{animation:none!important;transition:none!important;opacity:1!important;transform:none!important;filter:none!important}
}


/* Theme Propagation Engine: utility classes use global tokens so saved templates and reusable sections update when Theme Profile tokens change. */
.nb-token-surface { background: var(--ninja-color-section-background); color: var(--ninja-color-body-text); }
.nb-token-card { background: var(--ninja-color-card-background); color: var(--ninja-color-body-text); border-radius: var(--ninja-radius-lg); box-shadow: var(--ninja-shadow-sm); }
.nb-token-primary-text { color: var(--ninja-color-primary); }
.nb-token-heading-text { color: var(--ninja-color-heading-text); }
.nb-token-section-space { padding-block: var(--ninja-space-section); }

/* Content Widgets */
.nb-rich-text-dropcap > p:first-child::first-letter{float:left;font-size:3.25em;line-height:.85;margin:.08em .12em 0 0;}
.nb-list-check{list-style:none;padding-left:0;} .nb-list-check li::before{content:'✓';margin-right:.5rem;}
.nb-list-dash{list-style:none;padding-left:0;} .nb-list-dash li::before{content:'—';margin-right:.5rem;}
.nb-divider-primary{border-color:var(--ninja-color-primary,#1473ff);} .nb-divider-accent{border-color:var(--ninja-color-accent,#35a7ff);} .nb-divider-dashed{border-style:dashed;}
.nb-code-block pre{overflow:auto;padding:1rem;border-radius:.5rem;}


.ntp-section{position:relative;overflow:hidden;}
.ntp-section-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none;}
.ntp-section>.ntp-container{position:relative;z-index:1;}
.ntp-section-decor-title{position:absolute;z-index:2;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(15,23,42,.55);pointer-events:none;}
.ntp-section-title-left-top .ntp-section-decor-title{left:12px;top:12px;}
.ntp-section-title-left-center .ntp-section-decor-title{left:12px;top:50%;transform:translateY(-50%);}
.ntp-section-title-right-top .ntp-section-decor-title{right:12px;top:12px;}
.ntp-section-title-right-center .ntp-section-decor-title{right:12px;top:50%;transform:translateY(-50%);}
.ntp-section-title-left-top.ntp-section-title-rotate-left .ntp-section-decor-title,
.ntp-section-title-left-center.ntp-section-title-rotate-left .ntp-section-decor-title{transform:translateY(-50%) rotate(-90deg);transform-origin:left center;}
.ntp-section-title-right-top.ntp-section-title-rotate-right .ntp-section-decor-title,
.ntp-section-title-right-center.ntp-section-title-rotate-right .ntp-section-decor-title{transform:translateY(-50%) rotate(90deg);transform-origin:right center;}
.ntp-section-expand-left{margin-left:calc((100vw - 100%)/-2);}
.ntp-section-expand-right{margin-right:calc((100vw - 100%)/-2);}
.ntp-animate-fade{animation:ntpFadeIn .55s ease both;}
.ntp-animate-slide{animation:ntpSlideIn .55s ease both;}
.ntp-animate-scale{animation:ntpScaleIn .45s ease both;}
@keyframes ntpFadeIn{from{opacity:0}to{opacity:1}}
@keyframes ntpSlideIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes ntpScaleIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}

/* Ninja Theme Pro responsive column controls */
.nb-row,.ntp-row{display:flex;flex-wrap:wrap;align-items:flex-start;}
.nb-column.ntp-column{box-sizing:border-box;width:var(--ntp-col-desktop, 100%)!important;flex:0 0 var(--ntp-col-desktop, 100%);max-width:var(--ntp-col-desktop, 100%);display:var(--ntp-col-display-desktop, block);order:var(--ntp-col-order-desktop, 0);}
@media (max-width: 1199px){.nb-column.ntp-column{width:var(--ntp-col-laptop, var(--ntp-col-desktop, 100%))!important;flex-basis:var(--ntp-col-laptop, var(--ntp-col-desktop, 100%));max-width:var(--ntp-col-laptop, var(--ntp-col-desktop, 100%));display:var(--ntp-col-display-laptop, var(--ntp-col-display-desktop, block));order:var(--ntp-col-order-laptop, var(--ntp-col-order-desktop, 0));}}
@media (max-width: 959px){.nb-column.ntp-column{width:var(--ntp-col-tablet, var(--ntp-col-laptop, var(--ntp-col-desktop, 100%)))!important;flex-basis:var(--ntp-col-tablet, var(--ntp-col-laptop, var(--ntp-col-desktop, 100%)));max-width:var(--ntp-col-tablet, var(--ntp-col-laptop, var(--ntp-col-desktop, 100%)));display:var(--ntp-col-display-tablet, var(--ntp-col-display-laptop, var(--ntp-col-display-desktop, block)));order:var(--ntp-col-order-tablet, var(--ntp-col-order-laptop, var(--ntp-col-order-desktop, 0)));}}
@media (max-width: 639px){.nb-column.ntp-column{width:var(--ntp-col-mobile, 100%)!important;flex-basis:var(--ntp-col-mobile, 100%);max-width:var(--ntp-col-mobile, 100%);display:var(--ntp-col-display-mobile, block);order:var(--ntp-col-order-mobile, 0);}}

/* Menu surface authority */
.nb-mega-menu__featured-links{display:grid;grid-template-columns:repeat(var(--nb-featured-columns,1),minmax(0,1fr));gap:var(--ninja-space-sm,1rem)}
.nb-mega-menu__featured-links--list{display:block}.nb-mega-menu__featured-links--list .nb-mega-menu__featured-link{display:block}
.nb-mega-menu__promo-image{display:block;width:100%;height:auto;margin-bottom:var(--ninja-space-sm,1rem);border-radius:var(--ninja-radius-md,.5rem)}
.nb-mega-menu__panel-inner--simple_dropdown .nb-mega-menu__columns{grid-template-columns:minmax(0,1fr)}
.nb-mega-menu__panel-inner--two_column .nb-mega-menu__columns{grid-template-columns:repeat(2,minmax(0,1fr))}
.nb-mega-menu__panel-inner--three_column .nb-mega-menu__columns{grid-template-columns:repeat(3,minmax(0,1fr))}
.nb-mega-menu__panel-inner--full_width .nb-mega-menu__columns{grid-template-columns:repeat(4,minmax(0,1fr))}
.nb-mega-menu__item--parent:not(.is-open)>.nb-mega-menu__panel{display:none}
.nb-mega-menu__item--parent.is-open>.nb-mega-menu__panel{display:block}
@media(max-width:959px){
 .nb-mega-menu--mobile-stacked .nb-mega-menu__list{display:block}.nb-mega-menu--mobile-stacked .nb-mega-menu__panel{position:static}
 .nb-mega-menu--mobile-accordion .nb-mega-menu__panel,.nb-mega-menu--mobile-offcanvas .nb-mega-menu__panel{position:static}
 .nb-mega-menu__panel-inner--two_column .nb-mega-menu__columns,.nb-mega-menu__panel-inner--three_column .nb-mega-menu__columns,.nb-mega-menu__panel-inner--full_width .nb-mega-menu__columns{grid-template-columns:1fr}
}

/* Mega Menu mobile offcanvas fallback */
.nb-mega-menu-offcanvas__trigger,.nb-mega-menu-offcanvas__backdrop,.nb-mega-menu-offcanvas__bar{display:none}
@media(max-width:959px){
 .nb-mega-menu-offcanvas-shell{position:relative}
 .nb-mega-menu-offcanvas__trigger{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}
 .nb-mega-menu-offcanvas__trigger>span[aria-hidden="true"]{width:1.25rem;height:.875rem;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}
 .nb-mega-menu-offcanvas__trigger>span[aria-hidden="true"]:after{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px solid currentColor;transform:translateY(-50%)}
 .nb-mega-menu-offcanvas__backdrop{display:block;position:fixed;inset:0;border:0;background:rgba(0,0,0,.48);z-index:9998}
 .nb-mega-menu--mobile-offcanvas{position:fixed!important;top:0;right:0;bottom:0;width:min(420px,92vw);max-width:100%;z-index:9999;background:var(--ninja-color-card-background,#fff);color:var(--ninja-color-body-text,#111);box-shadow:-20px 0 60px rgba(0,0,0,.28);overflow:auto;transform:translateX(105%);transition:transform var(--ninja-motion-duration,.25s) ease;visibility:hidden}
 .nb-mega-menu-offcanvas-shell.is-mobile-open>.nb-mega-menu--mobile-offcanvas{transform:translateX(0);visibility:visible}
 .nb-mega-menu--mobile-offcanvas .nb-mega-menu__list{display:block;margin:0;padding:0 1rem 2rem}
 .nb-mega-menu--mobile-offcanvas .nb-mega-menu__panel{position:static}
 .nb-mega-menu-offcanvas__bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid rgba(127,127,127,.25)}
 .nb-mega-menu-offcanvas__bar button{border:0;background:transparent;font-size:1.75rem;line-height:1;cursor:pointer}
 html.nb-mega-offcanvas-open,html.nb-mega-offcanvas-open body{overflow:hidden}
}

/* Canonical core widget presentation contracts (8.20.49). */
.nb-card-padding-small.uk-card-body{padding:var(--ninja-space-sm,1rem)}
.nb-card-padding-large.uk-card-body{padding:var(--ninja-space-xl,3rem)}
.nb-card-image{display:block;width:100%;height:auto;margin-bottom:var(--ninja-space-md,1.5rem)}
.nb-tabs-style-primary>.uk-tab>*>a,.nb-tabs-style-primary .uk-tab>*>a{color:var(--ninja-color-primary,#1473ff)}
.nb-tabs-style-muted>.uk-tab>*>a,.nb-tabs-style-muted .uk-tab>*>a{color:var(--ninja-color-muted-text,#6b7280)}
.nb-accordion-style-primary .uk-accordion-title{color:var(--ninja-color-primary,#1473ff)}
.nb-accordion-style-muted .uk-accordion-title{color:var(--ninja-color-muted-text,#6b7280)}
.nb-gallery-widget img{display:block;width:100%;height:auto}
.nb-video-widget video{display:block;width:100%;height:100%;object-fit:contain}

/* 8.20.49 canonical semantic heading + Joomla-native form token bridge */
h1.nb-heading{font-family:var(--ninja-font-h1-family,var(--ninja-font-heading-font,inherit));font-size:calc(var(--ninja-font-h1-size,56)*1px);font-weight:var(--ninja-font-h1-weight,800);line-height:var(--ninja-font-h1-line-height,1.05);letter-spacing:calc(var(--ninja-font-h1-letter-spacing,-1.6)*1px)}
h2.nb-heading{font-family:var(--ninja-font-h2-family,var(--ninja-font-heading-font,inherit));font-size:calc(var(--ninja-font-h2-size,44)*1px);font-weight:var(--ninja-font-h2-weight,800);line-height:var(--ninja-font-h2-line-height,1.1);letter-spacing:calc(var(--ninja-font-h2-letter-spacing,-1.2)*1px)}
h3.nb-heading{font-family:var(--ninja-font-h3-family,var(--ninja-font-heading-font,inherit));font-size:calc(var(--ninja-font-h3-size,34)*1px);font-weight:var(--ninja-font-h3-weight,750);line-height:var(--ninja-font-h3-line-height,1.15);letter-spacing:calc(var(--ninja-font-h3-letter-spacing,-.8)*1px)}
h4.nb-heading{font-family:var(--ninja-font-h4-family,var(--ninja-font-heading-font,inherit));font-size:calc(var(--ninja-font-h4-size,26)*1px);font-weight:var(--ninja-font-h4-weight,700);line-height:var(--ninja-font-h4-line-height,1.2)}
h5.nb-heading{font-family:var(--ninja-font-h5-family,var(--ninja-font-heading-font,inherit));font-size:calc(var(--ninja-font-h5-size,21)*1px);font-weight:var(--ninja-font-h5-weight,700);line-height:var(--ninja-font-h5-line-height,1.25)}
h6.nb-heading{font-family:var(--ninja-font-h6-family,var(--ninja-font-heading-font,inherit));font-size:calc(var(--ninja-font-h6-size,16)*1px);font-weight:var(--ninja-font-h6-weight,800);line-height:var(--ninja-font-h6-line-height,1.25);text-transform:var(--ninja-font-h6-transform,uppercase)}
.nb-image img{max-width:100%;height:auto;display:inline-block}.ntp-image-inspector-preview{padding:10px;border:1px solid #d9e2ec;border-radius:12px;background:#f8fafc}.ntp-image-inspector-preview img{display:block;max-width:100%;max-height:240px;object-fit:contain;margin:auto}
.ninja-theme-pro input[type="text"],.ninja-theme-pro input[type="password"],.ninja-theme-pro input[type="email"],.ninja-theme-pro input[type="search"],.ninja-theme-pro select,.ninja-theme-pro textarea,.ninja-theme-pro .form-control,.ninja-theme-pro .form-select{font-family:var(--ninja-font-form-family,var(--ninja-font-body-font,inherit));font-size:calc(var(--ninja-font-form-size,15)*1px);font-weight:var(--ninja-font-form-weight,500);color:var(--ninja-color-body-text,#152536);background:var(--ninja-component-forms-background,var(--ninja-color-card-background,#fff));border:1px solid var(--ninja-component-forms-border,var(--ninja-color-border,#d9e2ec));border-radius:var(--ninja-component-forms-radius,var(--ninja-radius-md,8px));padding:.62rem .75rem}
.ninja-theme-pro button,.ninja-theme-pro input[type="submit"],.ninja-theme-pro .btn{font-family:var(--ninja-font-button-family,var(--ninja-font-body-font,inherit));font-weight:var(--ninja-font-button-weight,700);border-radius:var(--ninja-component-buttons-radius,var(--ninja-radius-md,8px))}

.ntp-image-load-error{display:none;margin-top:8px;overflow-wrap:anywhere;font-size:12px;color:#b42318}.ntp-image-inspector-preview[data-load-state="error"] .ntp-image-load-error{display:block}


/* 8.20.148 element behavior/style completion. */
.nb-spacer{height:var(--nb-spacer-desktop,48px)}
@media (min-width:960px) and (max-width:1199px){.nb-spacer{height:var(--nb-spacer-laptop,var(--nb-spacer-desktop,48px))}}
@media (min-width:640px) and (max-width:959px){.nb-spacer{height:var(--nb-spacer-tablet,var(--nb-spacer-laptop,var(--nb-spacer-desktop,48px)))}}
@media (max-width:639px){.nb-spacer{height:var(--nb-spacer-mobile,var(--nb-spacer-tablet,var(--nb-spacer-laptop,var(--nb-spacer-desktop,48px))))}}
.nb-grid-widget.nb-grid-equal-height>div{display:flex}.nb-grid-widget.nb-grid-equal-height>div>.nb-grid-item{width:100%}
.nb-flex-widget{display:flex}.nb-flex-widget.nb-flex-column{flex-direction:column}.nb-flex-widget.nb-flex-row{flex-direction:row}
.nb-tabs-widget.nb-tabs-orientation-vertical .uk-tab{margin:0}.nb-tabs-widget.nb-tabs-orientation-vertical .uk-switcher{margin-top:0}
.nb-timeline{display:grid;gap:1rem}.nb-timeline-item{display:grid;grid-template-columns:minmax(5rem,auto) 1fr;gap:1rem;align-items:start}.nb-timeline-item time{font-weight:700;color:var(--ninja-color-muted-text,#64748b)}.nb-timeline--compact .nb-timeline-item{gap:.5rem}.nb-timeline--alternating .nb-timeline-item:nth-child(even){direction:rtl;text-align:right}.nb-timeline--alternating .nb-timeline-item:nth-child(even)>*{direction:ltr}
.nb-countdown-widget--minimal>div{background:transparent;padding:.25rem}.nb-countdown-widget--inline{display:flex;align-items:center;justify-content:center;gap:1.25rem}.nb-countdown-widget--inline>div{background:transparent;padding:0}.nb-countdown-widget--inline strong{font-size:1.6rem}
.nb-marketing-hero--minimal{padding-block:clamp(2rem,5vw,4rem);background:transparent!important}.nb-marketing-hero--split .nb-marketing-hero__inner{max-width:1200px}.nb-marketing-hero--image{background-size:cover;background-position:center}
.nb-newsletter--inline{display:flex;align-items:end;flex-wrap:wrap}.nb-newsletter--inline label{flex:1 1 16rem}.nb-newsletter--stacked{display:grid}.nb-newsletter--card{box-shadow:var(--ninja-shadow-md,0 12px 30px rgba(15,23,42,.12))}
.nb-pricing-card--featured{outline:2px solid var(--ninja-color-primary,#1473ff);transform:translateY(-4px);box-shadow:var(--ninja-shadow-lg,0 20px 45px rgba(15,23,42,.16))}.nb-pricing-featured-label{display:inline-flex;margin-bottom:.75rem;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ninja-color-primary,#1473ff)}
.nb-promo-banner--position-top{position:sticky;top:0;z-index:var(--ninja-z-sticky,1020);border-radius:0}.nb-promo-banner--position-bottom{position:sticky;bottom:0;z-index:var(--ninja-z-sticky,1020);border-radius:0}
.nb-feature-list--cards li{padding:1rem;border:1px solid var(--ninja-color-border,rgba(15,23,42,.12));border-radius:var(--ninja-radius-md,8px)}.nb-feature-list--bordered li{padding:.75rem 0;border-bottom:1px solid var(--ninja-color-border,rgba(15,23,42,.12))}
.nb-stats-counter [data-nb-counter-value]{font-variant-numeric:tabular-nums}
.nb-team-card__links[hidden]{display:none!important}

/* 8.20.148 — canonical responsive element collection layout. */
.nb-responsive-grid{
 display:grid!important;
 grid-template-columns:repeat(var(--nb-grid-columns-desktop,1),minmax(0,1fr));
 gap:var(--nb-grid-gap-desktop,var(--ninja-space-normal,1rem))!important;
 margin-left:0!important;
}
.nb-responsive-grid>*{min-width:0;width:auto!important;max-width:none!important;padding-left:0!important;margin-top:0!important}
.nb-responsive-grid>li{margin-bottom:0!important}
.nb-grid-widget.nb-grid-equal-height>.nb-grid-item,
.nb-grid-widget.nb-grid-equal-height>div>.nb-grid-item,
.nb-team-grid>div>.nb-team-card{height:100%}
@media (min-width:960px) and (max-width:1199px){
 .nb-responsive-grid{grid-template-columns:repeat(var(--nb-grid-columns-laptop,var(--nb-grid-columns-desktop,1)),minmax(0,1fr));gap:var(--nb-grid-gap-laptop,var(--nb-grid-gap-desktop,var(--ninja-space-normal,1rem)))!important}
}
@media (min-width:640px) and (max-width:959px){
 .nb-responsive-grid{grid-template-columns:repeat(var(--nb-grid-columns-tablet,var(--nb-grid-columns-laptop,var(--nb-grid-columns-desktop,1))),minmax(0,1fr));gap:var(--nb-grid-gap-tablet,var(--nb-grid-gap-laptop,var(--nb-grid-gap-desktop,var(--ninja-space-normal,1rem))))!important}
}
@media (max-width:639px){
 .nb-responsive-grid{grid-template-columns:repeat(var(--nb-grid-columns-mobile,var(--nb-grid-columns-tablet,var(--nb-grid-columns-laptop,var(--nb-grid-columns-desktop,1)))),minmax(0,1fr));gap:var(--nb-grid-gap-mobile,var(--nb-grid-gap-tablet,var(--nb-grid-gap-laptop,var(--nb-grid-gap-desktop,var(--ninja-space-normal,1rem)))))!important}
}

/* Flex Layout uses the same four-device inheritance contract as the Builder. */
.nb-flex-widget{
 display:flex;
 flex-direction:var(--nb-flex-direction-desktop,row);
 flex-wrap:var(--nb-flex-wrap,nowrap);
 align-items:var(--nb-flex-align-desktop,stretch);
 justify-content:var(--nb-flex-justify-desktop,flex-start);
 gap:var(--nb-flex-gap-desktop,var(--ninja-space-normal,1rem));
}
@media (min-width:960px) and (max-width:1199px){.nb-flex-widget{flex-direction:var(--nb-flex-direction-laptop,var(--nb-flex-direction-desktop,row));align-items:var(--nb-flex-align-laptop,var(--nb-flex-align-desktop,stretch));justify-content:var(--nb-flex-justify-laptop,var(--nb-flex-justify-desktop,flex-start));gap:var(--nb-flex-gap-laptop,var(--nb-flex-gap-desktop,var(--ninja-space-normal,1rem)))}}
@media (min-width:640px) and (max-width:959px){.nb-flex-widget{flex-direction:var(--nb-flex-direction-tablet,var(--nb-flex-direction-laptop,var(--nb-flex-direction-desktop,row)));align-items:var(--nb-flex-align-tablet,var(--nb-flex-align-laptop,var(--nb-flex-align-desktop,stretch)));justify-content:var(--nb-flex-justify-tablet,var(--nb-flex-justify-laptop,var(--nb-flex-justify-desktop,flex-start)));gap:var(--nb-flex-gap-tablet,var(--nb-flex-gap-laptop,var(--nb-flex-gap-desktop,var(--ninja-space-normal,1rem))))}}
@media (max-width:639px){.nb-flex-widget{flex-direction:var(--nb-flex-direction-mobile,var(--nb-flex-direction-tablet,var(--nb-flex-direction-laptop,var(--nb-flex-direction-desktop,row))));align-items:var(--nb-flex-align-mobile,var(--nb-flex-align-tablet,var(--nb-flex-align-laptop,var(--nb-flex-align-desktop,stretch))));justify-content:var(--nb-flex-justify-mobile,var(--nb-flex-justify-tablet,var(--nb-flex-justify-laptop,var(--nb-flex-justify-desktop,flex-start))));gap:var(--nb-flex-gap-mobile,var(--nb-flex-gap-tablet,var(--nb-flex-gap-laptop,var(--nb-flex-gap-desktop,var(--ninja-space-normal,1rem)))))}}

/* Responsive alignment must reach components whose base alignment is applied
 * by an inner UIkit class rather than inherited from the outer widget. */
.nb-widget[data-nb-text-align="1"] .nb-button-wrap,
.nb-widget[data-nb-text-align="1"] .nb-image-figure,
.nb-widget[data-nb-text-align="1"] .nb-marketing-hero,
.nb-widget[data-nb-text-align="1"] .nb-cta-block,
.nb-widget[data-nb-text-align="1"] .nb-rich-text,
.nb-widget[data-nb-text-align="1"] .nb-text{ text-align:var(--nb-element-text-align)!important; }
.nb-divider{margin-block:0}

/* Ninja Theme Pro 8.20.158 — shared-Builder Header surface normalization.
 * Header still uses the canonical Section -> Row -> Column -> Element renderer,
 * but page-section spacing and block-column behavior are not appropriate inside
 * a site header.  These are context presentation rules, not a second renderer. */
.ntp-unified-header .ntp-header-section,
.ntp-unified-header>.nb-section{
 padding-block:0!important;
 margin-block:0!important;
}
.ntp-unified-header .ntp-header-section>.ntp-container,
.ntp-unified-header>.nb-section>.ntp-container{
 min-height:0!important;
}
.ntp-unified-header .ntp-header-row,
.ntp-unified-header .nb-header-row,
.ntp-unified-header .nb-row{
 margin-top:0!important;
 margin-bottom:0!important;
 margin-left:0!important;
 width:100%!important;
 column-gap:0!important;
 row-gap:0!important;
 align-items:center!important;
}
.ntp-unified-header .ntp-header-row>.ntp-header-column,
.ntp-unified-header .nb-header-row>.nb-header-column{
 padding:.5rem .75rem!important;
 box-sizing:border-box!important;
}
@media(min-width:960px){
 .ntp-unified-header .ntp-header-row,
 .ntp-unified-header .nb-header-row{flex-wrap:nowrap!important}
}
.ntp-unified-header .ntp-header-column{
 align-items:center!important;
 gap:.75rem!important;
 flex-wrap:wrap!important;
 min-width:0!important;
}
.ntp-unified-header .ntp-header-column>.nb-widget{
 margin-top:0!important;
 min-width:0;
}
.ntp-unified-header .ntp-header-column>.nb-widget+.nb-widget{
 margin-top:0!important;
}
.ntp-unified-header .ntp-header-slot--start{justify-content:flex-start!important;text-align:left}
.ntp-unified-header .ntp-header-slot--center{justify-content:center!important;text-align:center}
.ntp-unified-header .ntp-header-slot--end{justify-content:flex-end!important;text-align:right}
.ntp-unified-header .ntp-header-column:not([data-ntp-header-slot]){justify-content:flex-start}
.ntp-unified-header .ntp-header-row>.ntp-header-column:not([data-ntp-header-slot]):last-child{justify-content:flex-end}
.ntp-unified-header .ntp-header-row>.ntp-header-column:not([data-ntp-header-slot]):only-child{justify-content:center}
.ntp-unified-header .nb-site-logo,
.ntp-unified-header .nb-site-logo__link{max-width:100%}
.ntp-unified-header .nb-site-logo__name{white-space:nowrap}
@media(max-width:639px){
 .ntp-unified-header .ntp-header-column{justify-content:flex-start!important;text-align:left!important}
}


/* 8.20.159 — Header element settings must have visible runtime effect. */
.ntp-unified-header .nb-widget-site-logo{width:100%;flex:1 1 auto;min-width:0}
.ntp-unified-header .nb-widget-site-logo>.nb-site-logo{width:100%}


/* Ninja Theme Pro 8.20.165 — shared-Builder Footer surface normalization.
 * Footer keeps the canonical Section -> Row -> Column -> Element renderer while
 * removing page-section geometry that makes a site footer drift from its Builder. */
.ntp-unified-footer .ntp-footer-section,
.ntp-unified-footer>.nb-section{
 padding-block:0!important;
 margin-block:0!important;
}
.ntp-unified-footer .ntp-footer-section>.ntp-container,
.ntp-unified-footer>.nb-section>.ntp-container{min-height:0!important}
.ntp-unified-footer .ntp-footer-row,
.ntp-unified-footer .nb-footer-row,
.ntp-unified-footer .nb-row{
 margin-left:0!important;
 width:100%!important;
 column-gap:0!important;
}
.ntp-unified-footer .ntp-footer-row>.ntp-footer-column,
.ntp-unified-footer .nb-footer-row>.nb-footer-column{box-sizing:border-box!important}
.ntp-unified-footer .ntp-footer-column{
 display:flex!important;
 flex-direction:column!important;
 align-items:flex-start!important;
 min-width:0!important;
}
.ntp-unified-footer .ntp-footer-column>.nb-widget{min-width:0;max-width:100%}
.ntp-unified-footer .nb-widget-site-logo,
.ntp-unified-footer .nb-widget-site-logo>.nb-site-logo,
.ntp-unified-footer .nb-site-logo__link{max-width:100%}

/* Ninja Theme Pro 8.20.165 — unified Header mobile-navigation parity.
 * The normal Header Navigation/Menu remains the desktop authority. At the
 * established tablet/mobile handoff, the same menu is presented through the
 * existing Mobile Menu runtime rather than as a desktop navbar. Footer menu
 * behavior is intentionally untouched. */
.ntp-unified-header__mobile-navigation{
 display:none;
 position:absolute;
 top:.5rem;
 right:1rem;
 z-index:40;
 align-items:center;
 justify-content:flex-end;
}
@media(max-width:960px){
 .ntp-unified-header .nb-widget-navigation-menu{display:none!important}
 .ntp-unified-header__mobile-navigation{display:flex}
}
@media(min-width:961px){
 .ntp-unified-header__mobile-navigation{display:none!important}
}
