.elementor-kit-11{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-color-fe577a2:#326D97;--e-global-color-8361766:#FFFFFF;--e-global-color-beee817:#1A1818;--e-global-color-4833d0a:#BFDDF2;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;--e-global-typography-dceb118-font-family:"Playfair Display";--e-global-typography-dceb118-font-size:4em;--e-global-typography-f75f365-font-family:"Open Sans";--e-global-typography-f75f365-font-size:1em;--e-global-typography-f75f365-line-height:1.5em;--e-global-typography-f75f365-letter-spacing:1.5px;}.elementor-kit-11 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* =========================================================
   mNw Elementor Boilerplate (Normalized)
   Prefix: mNw-
   Sections:
     1) Base reset
     2) Tokens
     3) Utilities
     4) Components (Header/Nav/Reveal/InvRadius)
     5) Legacy aliases (optional)
   ========================================================= */

/* ---------------------------------------------------------
   1) Base reset (safe + minimal)
   --------------------------------------------------------- */
:where(*, *::before, *::after){ box-sizing: border-box; }
:where(html){ -webkit-text-size-adjust: 100%; }
:where(body){ margin: 0; text-rendering: optimizeLegibility; }
:where(img, svg, video){ max-inline-size: 100%; block-size: auto; }
:where(a){ color: inherit; }

/* ---------------------------------------------------------
   2) Tokens (design system)
   --------------------------------------------------------- */
:root{
  /* ---------- Brand + Neutrals (single source of truth) ---------- */
  /* Project brand (override per project) */
  --mNw-brand: #326D97;
  --mNw-brand-contrast: #ffffff;

  /* Neutrals */
  --mNw-neutral-950: #0b0c0f;
  --mNw-neutral-900: #111111;
  --mNw-neutral-700: #4a4a4a;
  --mNw-neutral-0:   #ffffff;
  
  /* Fonts */
  --mNw-font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";
  --mNw-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  /* Fluid type scale */
  --mNw-text-xs: clamp(0.75rem, 0.72rem + 0.20vw, 0.875rem);
  --mNw-text-s:  clamp(0.875rem, 0.84rem + 0.25vw, 1rem);
  --mNw-text-m:  clamp(1rem, 0.96rem + 0.30vw, 1.125rem);
  --mNw-text-l:  clamp(1.125rem, 1.06rem + 0.45vw, 1.375rem);
  --mNw-h-s:     clamp(1.375rem, 1.20rem + 0.90vw, 1.875rem);
  --mNw-h-m:     clamp(1.75rem, 1.45rem + 1.40vw, 2.50rem);
  --mNw-h-l:     clamp(2.25rem, 1.75rem + 2.30vw, 3.50rem);
  --mNw-h-xl:    clamp(2.75rem, 2.00rem + 3.20vw, 4.50rem);

  /* Line heights */
  --mNw-lh-tight: 1.1;
  --mNw-lh-ui:    1.3;
  --mNw-lh-body:  1.6;

  /* Spacing */
  --mNw-space-1: 0.25rem;
  --mNw-space-2: 0.5rem;
  --mNw-space-3: 0.75rem;
  --mNw-space-4: 1rem;
  --mNw-space-5: 1.5rem;
  --mNw-space-6: 2rem;
  --mNw-space-7: 3rem;
  --mNw-space-8: 4rem;

  /* Radius */
  --mNw-radius-s: 0.5rem;
  --mNw-radius-m: 0.9rem;
  --mNw-radius-l: 1.25rem;

  /* Shadows */
  --mNw-shadow-s: 0 6px 18px rgba(0,0,0,.08);
  --mNw-shadow-m: 0 12px 30px rgba(0,0,0,.10);

  /* Motion */
  --mNw-dur-fast: 180ms;
  --mNw-dur-med:  420ms;
  --mNw-dur-slow: 900ms;
  --mNw-ease-out: cubic-bezier(.2,.8,.2,1);
  --mNw-ease-io:  cubic-bezier(.65,0,.35,1);

  /* Surfaces (defaults; override per project) */
  --mNw-surface-1: var(--mNw-neutral-0);
  --mNw-surface-2: #f6f7f9; /* keep as token if you want */
  --mNw-text-1: var(--mNw-neutral-900);
  --mNw-text-2: var(--mNw-neutral-700);

  /* Glass */
  --mNw-glass-bg: rgba(255,255,255,.80);
  --mNw-glass-border: rgba(0,0,0,.08);
  --mNw-glass-shadow: var(--mNw-shadow-m);
  --mNw-glass-blur: blur(12px);

  /* Header */
  --mNw-header-z: 99999;
  --mNw-header-hide-y: -110%;
  --mNw-header-dur: var(--mNw-dur-med);
  --mNw-header-ease: var(--mNw-ease-out);
  --mNw-logo-h-normal: 120px;
  --mNw-logo-h-sticky: 70px;

  /* Reveal */
  --mNw-reveal-dur: var(--mNw-dur-slow);
  --mNw-reveal-delay: 0ms;
  --mNw-reveal-ease: var(--mNw-ease-out);
  --mNw-reveal-y: 1.1em;
  --mNw-reveal-blurFrom: 12px;
  --mNw-reveal-wipe: currentColor;
  --mNw-reveal-highlight: rgba(255,255,0,.45);

  /* Inverted radius */
  --mNw-inv-r: 1rem;
  --mNw-inv-fill: var(--mNw-surface-1);
  
  /* ---------- Buttons ---------- */
  --mNw-btn-radius: 999px;
  --mNw-btn-pad-y: 0.85em;
  --mNw-btn-pad-x: 1.20em;
  --mNw-btn-gap: 0.55em;

  --mNw-btn-font: var(--mNw-text-s);
  --mNw-btn-lh: var(--mNw-lh-ui);
  --mNw-btn-weight: 600;

  --mNw-btn-dur: var(--mNw-dur-med);
  --mNw-btn-ease: var(--mNw-ease-out);

    /* Secondary / outlines */
  --mNw-border: rgba(0,0,0,.12);

  /* Focus ring */
  --mNw-focus: rgba(0,0,0,.45);

  /* ---------- Section spacing ---------- */
  /* baseline section padding (fluid) */
  --mNw-sec-y: clamp(3rem, 2.2rem + 2.6vw, 6rem);
  --mNw-sec-y-tight: clamp(2rem, 1.5rem + 1.8vw, 4rem);
  --mNw-sec-y-loose: clamp(4rem, 3rem + 3.5vw, 8rem);

  /* horizontal padding for boxed layouts */
  --mNw-sec-x: clamp(1rem, 0.6rem + 1.2vw, 2rem);

  /* max width for “container” feel */
  --mNw-container: 1200px;
}

/* Global baseline (optional) */
:where(body){
  font-family: var(--mNw-font-sans);
  font-size: var(--mNw-text-m);
  line-height: var(--mNw-lh-body);
  color: var(--mNw-text-1);
  background: var(--mNw-surface-1);
}

/* ---------------------------------------------------------
   3) Utilities
   --------------------------------------------------------- */
.mNw-text-xs{ font-size: var(--mNw-text-xs); }
.mNw-text-s { font-size: var(--mNw-text-s); }
.mNw-text-m { font-size: var(--mNw-text-m); }
.mNw-text-l { font-size: var(--mNw-text-l); }
.mNw-h-s{ font-size: var(--mNw-h-s); line-height: var(--mNw-lh-ui); }
.mNw-h-m{ font-size: var(--mNw-h-m); line-height: var(--mNw-lh-tight); }
.mNw-h-l{ font-size: var(--mNw-h-l); line-height: var(--mNw-lh-tight); }
.mNw-h-xl{ font-size: var(--mNw-h-xl); line-height: var(--mNw-lh-tight); }

.mNw-surface-1{ background: var(--mNw-surface-1); }
.mNw-surface-2{ background: var(--mNw-surface-2); }
.mNw-shadow-s{ box-shadow: var(--mNw-shadow-s); }
.mNw-shadow-m{ box-shadow: var(--mNw-shadow-m); }
.mNw-radius-s{ border-radius: var(--mNw-radius-s); }
.mNw-radius-m{ border-radius: var(--mNw-radius-m); }
.mNw-radius-l{ border-radius: var(--mNw-radius-l); }

/* Regular corners: progressive enhancement */
.mNw-cornerShape{ border-radius: var(--mNw-radius-m); }
@supports (corner-shape: squircle){
  .mNw-cornerShape{ corner-shape: squircle; }
}

/* ---------------------------------------------------------
   4) Components
   --------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
    text-wrap: balance;
}

p {
    text-wrap: pretty;
}

/* 4.1 Header system */
.mNw-header{
  z-index: var(--mNw-header-z);
  will-change: transform;
  /* JS sets this variable; default visible */
  --mNw-header-y: 0px;
  transform: translateY(var(--mNw-header-y));
  transition: transform var(--mNw-header-dur) var(--mNw-header-ease);
  --mNw-header-pad-y: var(--mNw-space-5);
  --mNw-header-pad-x: var(--mNw-space-5);
  /* padding: var(--mNw-header-pad-y) var(--mNw-header-pad-x);*/
}

/* Optional class API (if you still want class toggles somewhere) */
.mNw-header.is-hidden{ --mNw-header-y: var(--mNw-header-hide-y); }
.mNw-header.is-visible{ --mNw-header-y: 0px; }

/* Reveal after threshold */
.mNw-header--reveal{
  position: fixed;
  top: 0; left: 0; right: 0;
  transform: translateY(var(--mNw-header-hide-y));
  opacity: 0;
  pointer-events: none;
  transition:
    transform var(--mNw-header-dur) var(--mNw-header-ease),
    opacity var(--mNw-header-dur) var(--mNw-header-ease);
  will-change: transform, opacity;
}
.mNw-header--reveal.is-visible{
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

/* Shrink on sticky (Elementor adds elementor-sticky--effects to the sticky element) */
.mNw-header.mNw-header--shrink{
  transition:
    transform var(--mNw-header-dur) var(--mNw-header-ease),
    background-color var(--mNw-header-dur) var(--mNw-header-ease),
    box-shadow var(--mNw-header-dur) var(--mNw-header-ease),
    padding var(--mNw-header-dur) var(--mNw-header-ease);
}

/* Sticky background: force solid surface on sticky state */
.mNw-header.elementor-sticky--effects{
  background: white !important;
  --mNw-header-pad-y: 0px;
  --mNw-header-pad-x: 0px;
}

/* Elementor containers vary; cover common cases */
.mNw-header.elementor-sticky--effects > .e-con-inner,
.mNw-header.elementor-sticky--effects > .elementor-container,
.mNw-header.elementor-sticky--effects > .elementor-element,
.mNw-header.elementor-sticky--effects .e-con-inner{
  background: inherit !important;
}

/* Hide pseudo inverted shapes while sticky is active */
.mNw-header.elementor-sticky--effects .mNw-invMask{
  /* turn off mask-based cutouts */
  -webkit-mask: none !important;
          mask: none !important;
}

/* and also disable fallback pseudos if running */
.mNw-header.elementor-sticky--effects .mNw-invMask::before,
.mNw-header.elementor-sticky--effects .mNw-invMask::after{
  content: none !important;
}

/* Logo sizing */
.mNw-header__logo img{
  height: var(--mNw-logo-h-normal);
  width: auto;
  transition: height var(--mNw-header-dur) var(--mNw-header-ease);
}

.mNw-header.mNw-header--shrink.elementor-sticky--effects .mNw-header__logo img{
  height: var(--mNw-logo-h-sticky);
}

/* Glass inner container */
.mNw-header__glass{
  background: var(--mNw-glass-bg);
  border: 1px solid var(--mNw-glass-border);
  box-shadow: var(--mNw-glass-shadow);
  backdrop-filter: var(--mNw-glass-blur);
  -webkit-backdrop-filter: var(--mNw-glass-blur);
}

/* Underline links (correct layers, modern + simple) */
.mNw-underline a{
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0 2px;
  transition: background-size 300ms var(--mNw-ease-out);
}
.mNw-underline a:hover{
  background-size: 100% 2px;
}

/* 4.3 Master reveal system */
.mNw-reveal :is(.elementor-heading-title,.elementor-widget-container){
  display: inline-block;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .mNw-reveal :is(.elementor-heading-title,.elementor-widget-container){
    animation: none !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
  }
  .mNw-reveal :is(.elementor-heading-title,.elementor-widget-container)::before{
    content: none !important;
  }
  .mNw-header,
  .mNw-header--reveal,
  .mNw-header__logo img{
    transition: none !important;
  }
}

/* Dark mode tokens + per-section theme overrides */
@media (prefers-color-scheme: dark){
  :root{
    --mNw-surface-1: #0b0c0f;
    --mNw-surface-2: #12141a;
    --mNw-text-1: #f4f5f7;
    --mNw-text-2: rgba(244,245,247,.72);

    --mNw-border: rgba(255,255,255,.14);
    --mNw-focus: rgba(255,255,255,.50);

    /* Glass in dark */
    --mNw-glass-bg: rgba(18,20,26,.70);
    --mNw-glass-border: rgba(255,255,255,.12);

    /* Brand defaults (you’ll override per project) */
    --mNw-brand: #f4f5f7;
    --mNw-brand-contrast: #0b0c0f;
  }
}

/* Keyframes */
@keyframes mNw_fadeUp{ to { opacity: 1; transform: translateY(0); } }
@keyframes mNw_blurReveal{ to { opacity: 1; transform: translateY(0); filter: blur(0px); } }
@keyframes mNw_wipeX{
  0% { transform: translateX(-101%); }
  45% { transform: translateX(0%); }
  100% { transform: translateX(101%); }
}
@keyframes mNw_skewWipe{
  0% { transform: translateX(-120%) skewX(-18deg); }
  45% { transform: translateX(0%) skewX(-18deg); }
  100% { transform: translateX(120%) skewX(-18deg); }
}
@keyframes mNw_highlight{ to { background-size: 100% 0.9em; } }

/* Modifiers */
.mNw-reveal--wipe :is(.elementor-heading-title,.elementor-widget-container){
  position: relative; overflow: hidden; vertical-align: bottom;
}
.mNw-reveal--wipe :is(.elementor-heading-title,.elementor-widget-container)::before{
  content:""; position:absolute; inset:0;
  background: var(--mNw-reveal-wipe);
  transform: translateX(-101%);
  animation: mNw_wipeX var(--mNw-reveal-dur) var(--mNw-reveal-ease) var(--mNw-reveal-delay) forwards;
}

.mNw-reveal--skew :is(.elementor-heading-title,.elementor-widget-container){
  position: relative; overflow: hidden; vertical-align: bottom;
}
.mNw-reveal--skew :is(.elementor-heading-title,.elementor-widget-container)::before{
  content:""; position:absolute; inset:-30% -10%;
  background: var(--mNw-reveal-wipe);
  transform: translateX(-120%) skewX(-18deg);
  animation: mNw_skewWipe var(--mNw-reveal-dur) var(--mNw-reveal-ease) var(--mNw-reveal-delay) forwards;
}

.mNw-reveal--blur :is(.elementor-heading-title,.elementor-widget-container){
  opacity: 0;
  filter: blur(var(--mNw-reveal-blurFrom));
  transform: translateY(var(--mNw-reveal-y));
  will-change: transform, opacity, filter;
  animation: mNw_blurReveal var(--mNw-reveal-dur) var(--mNw-reveal-ease) var(--mNw-reveal-delay) forwards;
}

.mNw-reveal--fade :is(.elementor-heading-title,.elementor-widget-container){
  opacity: 0;
  transform: translateY(calc(var(--mNw-reveal-y) * .45));
  will-change: transform, opacity;
  animation: mNw_fadeUp var(--mNw-reveal-dur) var(--mNw-reveal-ease) var(--mNw-reveal-delay) forwards;
}

.mNw-reveal--highlight :is(.elementor-heading-title,.elementor-widget-container){
  display: inline;
  background-image: linear-gradient(to right, var(--mNw-reveal-highlight), var(--mNw-reveal-highlight));
  background-repeat: no-repeat;
  background-size: 0% 0.9em;
  background-position: 0 85%;
  animation: mNw_highlight var(--mNw-reveal-dur) var(--mNw-reveal-ease) var(--mNw-reveal-delay) forwards;
}

/* Scroll blur (progressive enhancement) */
.mNw-reveal--scroll-blur :is(.elementor-heading-title,.elementor-widget-container){
  opacity: 0;
  filter: blur(var(--mNw-reveal-blurFrom));
  transform: translateY(var(--mNw-reveal-y));
  will-change: transform, opacity, filter;
}
@supports (animation-timeline: view()){
  .mNw-reveal--scroll-blur :is(.elementor-heading-title,.elementor-widget-container){
    animation: mNw_blurReveal linear both;
    animation-timeline: view();
    animation-range: entry 10% cover 35%;
  }
}
@supports not (animation-timeline: view()){
  .mNw-reveal--scroll-blur :is(.elementor-heading-title,.elementor-widget-container){
    animation: mNw_blurReveal var(--mNw-reveal-dur) var(--mNw-reveal-ease) var(--mNw-reveal-delay) forwards;
  }
}

/* =========================================================
   4.3b Scroll Reveal Suite (Append)
   Uses view() timelines when available, fallback otherwise.
   Classes to add in Elementor:
     - mNw-reveal--scroll-fade
     - mNw-reveal--scroll-up
     - mNw-reveal--scroll-scale
     - mNw-reveal--scroll-wipe
   (You already have: mNw-reveal--scroll-blur)
   ========================================================= */

/* Shared base: keep targeting consistent with your boilerplate */
.mNw-reveal--scroll-fade :is(.elementor-heading-title,.elementor-widget-container),
.mNw-reveal--scroll-up :is(.elementor-heading-title,.elementor-widget-container),
.mNw-reveal--scroll-scale :is(.elementor-heading-title,.elementor-widget-container),
.mNw-reveal--scroll-wipe :is(.elementor-heading-title,.elementor-widget-container){
  will-change: transform, opacity, filter;
}

/* Keyframes (new ones only) */
@keyframes mNw_fadeIn { to { opacity: 1; } }
@keyframes mNw_scaleIn { to { opacity: 1; transform: scale(1); } }

/* -----------------------------------------
   Scroll Fade (opacity only)
   ----------------------------------------- */
.mNw-reveal--scroll-fade :is(.elementor-heading-title,.elementor-widget-container){
  opacity: 0;
}

@supports (animation-timeline: view()){
  .mNw-reveal--scroll-fade :is(.elementor-heading-title,.elementor-widget-container){
    animation: mNw_fadeIn linear both;
    animation-timeline: view();
    animation-range: entry 15% cover 35%;
  }
}
@supports not (animation-timeline: view()){
  .mNw-reveal--scroll-fade :is(.elementor-heading-title,.elementor-widget-container){
    animation: mNw_fadeIn var(--mNw-reveal-dur) var(--mNw-reveal-ease) var(--mNw-reveal-delay) forwards;
  }
}

/* -----------------------------------------
   Scroll Up (fade + translateY) using your mNw_fadeUp
   ----------------------------------------- */
.mNw-reveal--scroll-up :is(.elementor-heading-title,.elementor-widget-container){
  opacity: 0;
  transform: translateY(var(--mNw-reveal-y));
}

@supports (animation-timeline: view()){
  .mNw-reveal--scroll-up :is(.elementor-heading-title,.elementor-widget-container){
    animation: mNw_fadeUp linear both;
    animation-timeline: view();
    animation-range: entry 10% cover 35%;
  }
}
@supports not (animation-timeline: view()){
  .mNw-reveal--scroll-up :is(.elementor-heading-title,.elementor-widget-container){
    animation: mNw_fadeUp var(--mNw-reveal-dur) var(--mNw-reveal-ease) var(--mNw-reveal-delay) forwards;
  }
}

/* -----------------------------------------
   Scroll Scale (fade + subtle scale)
   ----------------------------------------- */
.mNw-reveal--scroll-scale :is(.elementor-heading-title,.elementor-widget-container){
  opacity: 0;
  transform: scale(.96);
}

@supports (animation-timeline: view()){
  .mNw-reveal--scroll-scale :is(.elementor-heading-title,.elementor-widget-container){
    animation: mNw_scaleIn linear both;
    animation-timeline: view();
    animation-range: entry 12% cover 35%;
  }
}
@supports not (animation-timeline: view()){
  .mNw-reveal--scroll-scale :is(.elementor-heading-title,.elementor-widget-container){
    animation: mNw_scaleIn var(--mNw-reveal-dur) var(--mNw-reveal-ease) var(--mNw-reveal-delay) forwards;
  }
}

/* -----------------------------------------
   Scroll Wipe (cover wipe) using your mNw_wipeX
   Notes:
     - This animates the ::before overlay only.
     - Keeps your existing non-scroll mNw-reveal--wipe intact.
   ----------------------------------------- */
.mNw-reveal--scroll-wipe :is(.elementor-heading-title,.elementor-widget-container){
  position: relative;
  overflow: hidden;
  display: inline-block;
  vertical-align: bottom;
}

.mNw-reveal--scroll-wipe :is(.elementor-heading-title,.elementor-widget-container)::before{
  content:"";
  position:absolute;
  inset:0;
  background: var(--mNw-reveal-wipe);
  transform: translateX(-101%);
}

@supports (animation-timeline: view()){
  .mNw-reveal--scroll-wipe :is(.elementor-heading-title,.elementor-widget-container)::before{
    animation: mNw_wipeX linear both;
    animation-timeline: view();
    animation-range: entry 15% cover 30%;
  }
}
@supports not (animation-timeline: view()){
  .mNw-reveal--scroll-wipe :is(.elementor-heading-title,.elementor-widget-container)::before{
    animation: mNw_wipeX var(--mNw-reveal-dur) var(--mNw-reveal-ease) var(--mNw-reveal-delay) forwards;
  }
}

/* -----------------------------------------
   Reduced motion safety (covers ALL scroll reveals)
   ----------------------------------------- */
@media (prefers-reduced-motion: reduce){
  .mNw-reveal--scroll-fade :is(.elementor-heading-title,.elementor-widget-container),
  .mNw-reveal--scroll-up :is(.elementor-heading-title,.elementor-widget-container),
  .mNw-reveal--scroll-scale :is(.elementor-heading-title,.elementor-widget-container),
  .mNw-reveal--scroll-wipe :is(.elementor-heading-title,.elementor-widget-container),
  .mNw-reveal--scroll-blur :is(.elementor-heading-title,.elementor-widget-container){
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }

  .mNw-reveal--scroll-wipe :is(.elementor-heading-title,.elementor-widget-container)::before{
    content: none !important;
  }
}


/* Presets */
.mNw-inv-sm{ --mNw-inv-r: 12px; }
.mNw-inv-md{ --mNw-inv-r: 20px; }
.mNw-inv-lg{ --mNw-inv-r: 32px; }

/* Inverted Border */
.mNw-invMask::before,
.mNw-invMask::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: calc(var(--mNw-inv-r) * 2); 
  height: calc(var(--mNw-inv-r) * 2);
  background-color: transparent;
}

/*  ELEMENT TOP LEFT  */
.mNw-invMask--tl::before,
.mNw-invMask--tl::after,
.mNw-invMask-heading--tl::before,
.mNw-invMask-heading--tl::after
{
  border-top-left-radius: var(--mNw-inv-r);
  box-shadow: 0 calc(var(--mNw-inv-r) * -1) 0 0 #FFF;
}

.mNw-invMask--tl::before {
  top: 100%;
  left: 0;
}

.mNw-invMask--tl::after {
  top: 0;
  left: 100%;
}

.mNw-invMask-heading--tl::before {
  top: 100%;
  left: 1rem;
}

.mNw-invMask-heading--tl::after {
  top: 1rem;
  left: 100%;
}

/*  ELEMENT CENETER RIGHT  */
.mNw-invMask--cr::before {
  border-bottom-right-radius: var(--mNw-inv-r);
  box-shadow: var(--mNw-inv-r) var(--mNw-inv-r) 0 0 white;
}

.mNw-invMask--cr::after {
  border-top-right-radius: var(--mNw-inv-r);
  box-shadow: 0 calc(var(--mNw-inv-r) * -1) 0 0 white;
}

.mNw-invMask--cr::before {
  top: calc(calc(2 * var(--mNw-inv-r)) * -1);
  left: calc(100% - (2 * var(--mNw-inv-r)));
}

.mNw-invMask--cr::after {
  top: 100%;
  right: 0;
}


/* =========================================================
   mNw Section Spacing System
   Apply to Elementor section/container:
     mNw-sec (default)
     mNw-sec mNw-sec--tight
     mNw-sec mNw-sec--loose
   Optional:
     mNw-boxed -> keep inner content max width centered
   ========================================================= */

.mNw-sec{
  padding-block: var(--mNw-sec-y);
  padding-inline: var(--mNw-sec-x);
}

.mNw-sec--tight{ padding-block: var(--mNw-sec-y-tight); }
.mNw-sec--loose{ padding-block: var(--mNw-sec-y-loose); }

/* Boxed inner layout helper:
   Put mNw-boxed on the SAME container that wraps content,
   or on an inner container if you use nested containers.
*/
.mNw-boxed{
  max-width: var(--mNw-container);
  margin-inline: auto;
}

/* Optional: section separators */
.mNw-sec--borderTop{ border-top: 1px solid var(--mNw-border); }
.mNw-sec--borderBottom{ border-bottom: 1px solid var(--mNw-border); }


/* Force a light theme zone */
.mNw-theme--light{
  --mNw-surface-1: #ffffff;
  --mNw-surface-2: #f6f7f9;
  --mNw-text-1: #111111;
  --mNw-text-2: rgba(17,17,17,.72);
  --mNw-border: rgba(0,0,0,.12);
  --mNw-focus: rgba(0,0,0,.45);
  --mNw-glass-bg: rgba(255,255,255,.80);
  --mNw-glass-border: rgba(0,0,0,.08);
}

/* Force a dark theme zone */
.mNw-theme--dark{
  --mNw-surface-1: #0b0c0f;
  --mNw-surface-2: #12141a;
  --mNw-text-1: #f4f5f7;
  --mNw-text-2: rgba(244,245,247,.72);
  --mNw-border: rgba(255,255,255,.14);
  --mNw-focus: rgba(255,255,255,.50);
  --mNw-glass-bg: rgba(18,20,26,.70);
  --mNw-glass-border: rgba(255,255,255,.12);
}

/* =========================================================
   mNw Button System (Elementor-safe)
   Apply to Elementor Button widget:
     Advanced → CSS Classes: mNw-btn mNw-btn--primary
   Variants:
     --primary, --secondary, --ghost
   Sizes:
     --sm, --md (default), --lg
   ========================================================= */

/* Target ONLY the Elementor button element to avoid styling random wrappers */
.mNw-btn .elementor-button{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--mNw-btn-gap);

  border-radius: var(--mNw-btn-radius);
  padding: var(--mNw-btn-pad-y) var(--mNw-btn-pad-x);

  font-size: var(--mNw-btn-font);
  line-height: var(--mNw-btn-lh);
  font-weight: var(--mNw-btn-weight);
  text-decoration: none;

  cursor: pointer;
  user-select: none;

  transition:
    transform var(--mNw-btn-dur) var(--mNw-btn-ease),
    background-color var(--mNw-btn-dur) var(--mNw-btn-ease),
    color var(--mNw-btn-dur) var(--mNw-btn-ease),
    border-color var(--mNw-btn-dur) var(--mNw-btn-ease),
    box-shadow var(--mNw-btn-dur) var(--mNw-btn-ease);
}

/* Focus ring (applies when keyboard focusing the actual <a> / <button>) */
.mNw-btn .elementor-button:focus-visible{
  outline: 2px solid var(--mNw-focus);
  outline-offset: 3px;
}

/* PRIMARY */
.mNw-btn--primary .elementor-button{
  background: var(--mNw-brand);
  color: var(--mNw-brand-contrast);
  border: 1px solid transparent;
  box-shadow: var(--mNw-shadow-s);
}
.mNw-btn--primary .elementor-button:hover{
  box-shadow: var(--mNw-shadow-m);
}

/* SECONDARY */
.mNw-btn--secondary .elementor-button{
  background: var(--mNw-surface-1);
  color: var(--mNw-text-1);
  border: 1px solid var(--mNw-border);
  box-shadow: none;
}
.mNw-btn--secondary .elementor-button:hover{
  background: var(--mNw-surface-2);
}

/* GHOST */
.mNw-btn--ghost .elementor-button{
  background: transparent;
  color: var(--mNw-text-1);
  border: 1px solid transparent;
  box-shadow: none;
}
.mNw-btn--ghost .elementor-button:hover{
  background: color-mix(in srgb, var(--mNw-text-1) 8%, transparent);
  border-color: color-mix(in srgb, var(--mNw-text-1) 14%, transparent);
}

/* Sizes */
.mNw-btn--sm .elementor-button{
  --mNw-btn-pad-y: 0.65em;
  --mNw-btn-pad-x: 0.95em;
  --mNw-btn-font: var(--mNw-text-xs);
}
.mNw-btn--lg .elementor-button{
  --mNw-btn-pad-y: 1.05em;
  --mNw-btn-pad-x: 1.45em;
  --mNw-btn-font: var(--mNw-text-m);
}

/* Icon sizing inside Elementor button */
.mNw-btn .elementor-button-icon svg{
  width: 1em;
  height: 1em;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .mNw-btn .elementor-button{
    transition: none !important;
    transform: none !important;
  }
}

.mNw-smooth-slider .swiper-wrapper {
  -webkit-transition-timing-function: linear !important;
  transition-timing-function: linear !important;
}

/* =========================================================
   FIX: Mobile portrait header top padding (non-sticky only)
   Reason: prevents inv-radius cutouts from appearing above header
   ========================================================= */

@media (max-width: 767px) and (orientation: portrait){

  /* When NOT sticky */
  .mNw-header:not(.elementor-sticky--effects){
    padding-top: 0 !important;

    /* Optional: keep notch safe-area if you prefer (uncomment)
    padding-top: env(safe-area-inset-top) !important;
    */
  }

}/* End custom CSS */