/* ==========================================================================
   NCFS Design System — global stylesheet
   Every color/font reads Elementor's Site Settings variables first (--e-global-*),
   then falls back to the NCFS defaults. Change colors in ONE place:
   Elementor → Site Settings → Global Colors / Global Fonts (synced by the plugin).
   ========================================================================== */

@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/inter-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/inter-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/inter-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/inter-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/inter-latin-800-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Metric-matched fallback to avoid layout shift while Inter loads */
@font-face{font-family:"Inter Fallback";src:local("Arial");ascent-override:90.2%;descent-override:22.48%;line-gap-override:0%;size-adjust:107.4%}

:root{
  /* --- Colors (Elementor system colors override the first four) --- */
  --ncfs-navy:        var(--e-global-color-primary,   #0F2D52);
  --ncfs-orange:      var(--e-global-color-secondary, #E8702A);
  --ncfs-ink:         var(--e-global-color-text,      #0F1B2D);
  --ncfs-orange-dark: var(--e-global-color-accent,    #B5531A);
  --ncfs-navy-deep:   #0A1F3A;
  --ncfs-orange-light:#FFB27A;
  --ncfs-orange-tint: #FDF0E7;
  --ncfs-surface:     #FFFFFF;
  --ncfs-surface-alt: #F4F6FA;
  --ncfs-border:      #E3E8EF;
  --ncfs-field-border:#D5DCE6;
  --ncfs-muted:       #4A5568;
  --ncfs-muted-2:     #5A6576;
  --ncfs-body:        #3D4A5C;
  --ncfs-on-dark:     #C9D4E3;
  --ncfs-success-bg:  #E8F6EE; --ncfs-success: #14532D;
  --ncfs-warn-bg:     #FFF4EC; --ncfs-warn: #7A3510; --ncfs-warn-border:#F6CDAF;

  /* --- Type --- */
  --ncfs-font: var(--e-global-typography-text-font-family, "Inter"), "Inter Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ncfs-fs-h1: clamp(36px, 4.6vw + 8px, 64px);
  --ncfs-fs-h2: clamp(28px, 3vw + 6px, 46px);
  --ncfs-fs-h3: clamp(19px, 1vw + 12px, 22px);
  --ncfs-fs-lead: clamp(17px, 0.5vw + 14px, 19px);
  --ncfs-fs-body: 17px;
  --ncfs-fs-small: 14px;

  /* --- Shape & space --- */
  --ncfs-r-btn: 12px; --ncfs-r-card: 20px; --ncfs-r-lg: 24px; --ncfs-r-panel: 32px; --ncfs-r-pill: 999px;
  --ncfs-container: 1300px;
  --ncfs-gutter: clamp(16px, 4vw, 32px);
  --ncfs-section-y: clamp(64px, 8vw, 112px);
  --ncfs-shadow-card: 0 24px 48px rgba(15,45,82,.14);
  --ncfs-shadow-pop: 0 20px 44px rgba(10,31,58,.30);
  --ncfs-ease: cubic-bezier(.2,.7,.2,1);
}

/* --- Base (scoped lightly so it does not fight Elementor widgets) --- */
html{scroll-behavior:smooth}
body{font-family:var(--ncfs-font);color:var(--ncfs-ink);font-size:var(--ncfs-fs-body);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
a{color:var(--ncfs-navy)}
a:hover{color:var(--ncfs-orange-dark)}
:where(h1,h2,h3,h4,h5,h6){font-family:var(--ncfs-font);color:var(--ncfs-navy);text-wrap:balance}
:where(p,li){text-wrap:pretty}
:focus-visible{outline:3px solid var(--ncfs-orange);outline-offset:3px;border-radius:6px}
img{max-width:100%;height:auto}
.ncfs-sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ncfs-skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ncfs-navy);color:#fff;padding:12px 18px;border-radius:var(--ncfs-r-btn)}
.ncfs-skip:focus{left:8px;color:#fff}

/* --- Icons (local SVG masks, colored by currentColor) --- */
.ncfs-ico{display:inline-block;flex:none;width:var(--s,20px);height:var(--s,20px);background:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.ncfs-tile{display:inline-flex;align-items:center;justify-content:center;flex:none;width:56px;height:56px;border-radius:16px;background:var(--ncfs-orange-tint);color:var(--ncfs-orange);transition:background .3s,color .3s}
.ncfs-tile--sm{width:44px;height:44px;border-radius:12px}
.ncfs-tile--navy{background:var(--ncfs-navy);color:#fff}
.ncfs-tile--orange{background:var(--ncfs-orange);color:#fff}

/* --- Layout --- */
.ncfs-container{width:100%;max-width:var(--ncfs-container);margin-inline:auto;padding-inline:var(--ncfs-gutter);box-sizing:border-box}
.ncfs-section{padding-block:var(--ncfs-section-y);background:var(--ncfs-surface)}
.ncfs-section--alt{background:var(--ncfs-surface-alt)}
.ncfs-section--navy,.ncfs-dark{background:var(--ncfs-navy-deep);color:#fff;position:relative;overflow:hidden}
.ncfs-dots::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:28px 28px;pointer-events:none}
.ncfs-dark :where(h1,h2,h3){color:#fff}
.ncfs-dark p{color:var(--ncfs-on-dark)}
.ncfs-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}
.ncfs-grid--sm{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px}
@media (min-width:760px){.ncfs-span-2{grid-column:span 2}}
.ncfs-split{display:grid;gap:clamp(40px,6vw,96px);grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:center}
.ncfs-head{display:flex;flex-wrap:wrap;gap:24px 64px;justify-content:space-between;align-items:flex-end;margin-bottom:48px}
.ncfs-head__text{max-width:680px;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.ncfs-stack{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.ncfs-row{display:flex;flex-wrap:wrap;gap:12px}

/* --- Type helpers --- */
.ncfs-h1{margin:0;font-size:var(--ncfs-fs-h1);line-height:1.05;font-weight:800;letter-spacing:-.035em}
.ncfs-h2{margin:0;font-size:var(--ncfs-fs-h2);line-height:1.1;font-weight:800;letter-spacing:-.03em}
.ncfs-h3{margin:0;font-size:var(--ncfs-fs-h3);line-height:1.3;font-weight:700;letter-spacing:-.015em}
.ncfs-lead{margin:0;font-size:var(--ncfs-fs-lead);color:var(--ncfs-muted);max-width:62ch}
.ncfs-dark .ncfs-lead{color:var(--ncfs-on-dark)}
.ncfs-hl{color:var(--ncfs-orange-light)}
.ncfs-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--ncfs-r-pill);background:var(--ncfs-orange-tint);color:var(--ncfs-orange-dark);font-size:13px;font-weight:700;line-height:1.4}
.ncfs-dark .ncfs-eyebrow{background:rgba(232,112,42,.18);color:var(--ncfs-orange-light)}

/* --- Buttons (also styles Elementor buttons so both match) --- */
.ncfs-btn,.elementor-button{
  --bg:var(--ncfs-navy);--fg:#fff;--sweep:var(--ncfs-orange);--fg-h:#fff;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 28px;box-sizing:border-box;
  border:0;border-radius:var(--ncfs-r-btn);font-family:var(--ncfs-font);font-size:16px;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;
  color:var(--fg);background-color:var(--bg);background-image:linear-gradient(90deg,var(--sweep) 50%,transparent 50%);background-size:202% 100%;background-position:100% 0;
  transition:background-position .4s var(--ncfs-ease),color .3s ease,transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.ncfs-btn:hover,.ncfs-btn:focus-visible,.elementor-button:hover,.elementor-button:focus-visible{background-position:0 0;color:var(--fg-h);transform:translateY(-2px);box-shadow:0 14px 30px rgba(232,112,42,.35)}
.ncfs-btn:active,.elementor-button:active{transform:translateY(0);box-shadow:none}
.ncfs-btn--accent{--bg:var(--ncfs-orange);--sweep:var(--ncfs-navy)}
.ncfs-btn--light{--bg:var(--ncfs-orange);--sweep:#fff;--fg-h:var(--ncfs-navy-deep);font-weight:700}
.ncfs-btn--outline{--bg:transparent;--fg:var(--ncfs-navy);--sweep:var(--ncfs-navy);box-shadow:inset 0 0 0 1px var(--ncfs-navy)}
.ncfs-btn--outline:hover{box-shadow:inset 0 0 0 1px var(--ncfs-navy),0 10px 24px rgba(15,45,82,.18)}
.ncfs-btn--outline-light{--bg:rgba(255,255,255,.04);--fg:#fff;--sweep:#fff;--fg-h:var(--ncfs-navy-deep);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.ncfs-btn--ink-outline{--bg:transparent;--fg:var(--ncfs-navy-deep);--sweep:var(--ncfs-navy-deep);box-shadow:inset 0 0 0 2px var(--ncfs-navy-deep)}
.ncfs-btn--ink{--bg:var(--ncfs-navy-deep);--sweep:#fff;--fg-h:var(--ncfs-navy-deep)}
.ncfs-btn--ghost{--bg:#fff;--fg:var(--ncfs-navy);--sweep:var(--ncfs-navy);box-shadow:inset 0 0 0 1px var(--ncfs-border);min-height:48px;padding:0 22px}
.ncfs-btn--sm{min-height:46px;padding:0 20px;font-size:15px}
.ncfs-btn[aria-pressed="true"],.ncfs-btn[aria-selected="true"]{--bg:var(--ncfs-navy);--fg:#fff;--sweep:var(--ncfs-navy);box-shadow:none}
[role="tablist"]{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
[role="tablist"] .ncfs-btn{flex:none}
.ncfs-link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ncfs-navy);text-decoration:none;transition:gap .3s,color .2s}
.ncfs-link-arrow .ncfs-ico{color:var(--ncfs-orange)}
.ncfs-link-arrow:hover{gap:14px;color:var(--ncfs-orange-dark)}

/* --- Cards --- */
.ncfs-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:16px;padding:32px;background:#fff;border:1px solid var(--ncfs-border);border-radius:var(--ncfs-r-card);color:var(--ncfs-ink);text-decoration:none;transition:border-color .3s,box-shadow .3s,transform .3s var(--ncfs-ease)}
.ncfs-card p{margin:0;color:var(--ncfs-muted);font-size:15px}
.ncfs-card::before{content:"";position:absolute;left:0;top:0;height:4px;width:0;background:var(--ncfs-orange);transition:width .45s var(--ncfs-ease)}
a.ncfs-card:hover,.ncfs-card--hover:hover{border-color:#fff;box-shadow:var(--ncfs-shadow-card);transform:translateY(-6px);color:var(--ncfs-ink)}
a.ncfs-card:hover::before{width:100%}
a.ncfs-card:hover .ncfs-tile{background:var(--ncfs-orange);color:#fff}
a.ncfs-card:hover .ncfs-link-arrow{gap:14px}
.ncfs-card--feature{background:var(--ncfs-navy);color:#fff;border:0;border-radius:var(--ncfs-r-lg);min-height:280px;justify-content:space-between}
.ncfs-card--feature :where(h3){color:#fff}.ncfs-card--feature p{color:var(--ncfs-on-dark);font-size:17px}

/* --- Chips & lists --- */
.ncfs-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.ncfs-chips li,.ncfs-chip{display:inline-flex;align-items:flex-start;gap:10px;padding:10px 16px 10px 10px;border-radius:14px;background:#fff;border:1px solid var(--ncfs-border);font-size:15px;font-weight:500;line-height:1.45;transition:border-color .2s,transform .2s,box-shadow .2s}
.ncfs-chips li::before{content:"";flex:none;width:20px;height:20px;margin-top:1px;background:var(--ncfs-orange);-webkit-mask:url("../icons/circle-check.svg") center/contain no-repeat;mask:url("../icons/circle-check.svg") center/contain no-repeat}
.ncfs-chips li:hover{border-color:var(--ncfs-orange);transform:translateY(-2px);box-shadow:0 8px 18px rgba(15,45,82,.08)}
.ncfs-chips--panel{padding:clamp(14px,2.4vw,24px);border-radius:var(--ncfs-r-card);background:var(--ncfs-surface-alt)}
.ncfs-checklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:8px 20px}
.ncfs-checklist li{display:flex;gap:10px;padding:8px 0;line-height:1.45}
.ncfs-checklist li::before{content:"";flex:none;width:18px;height:18px;margin-top:2px;background:var(--ncfs-orange);-webkit-mask:url("../icons/circle-check.svg") center/contain no-repeat;mask:url("../icons/circle-check.svg") center/contain no-repeat}
.ncfs-pill{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px 0 14px;border-radius:var(--ncfs-r-pill);background:var(--ncfs-surface-alt);border:1px solid var(--ncfs-border);color:var(--ncfs-ink);font-weight:500;font-size:15px;text-decoration:none;transition:background .25s,color .25s,border-color .25s,transform .25s}
.ncfs-pill .ncfs-ico{color:var(--ncfs-orange);--s:16px}
.ncfs-pill:hover{background:var(--ncfs-navy);border-color:var(--ncfs-navy);color:#fff;transform:translateY(-2px)}

/* --- FAQ accordion (native <details>, enhanced by JS) --- */
.ncfs-faq{display:flex;flex-direction:column;gap:12px}
.ncfs-faq details{background:rgba(255,255,255,.6);border:1px solid var(--ncfs-border);border-radius:18px;transition:background .3s,box-shadow .3s,border-color .3s}
.ncfs-section:not(.ncfs-section--alt) .ncfs-faq details{background:var(--ncfs-surface-alt);border-color:var(--ncfs-surface-alt)}
.ncfs-faq details[open]{background:#fff;border-color:#fff;box-shadow:0 18px 40px rgba(15,45,82,.10)}
.ncfs-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:68px;padding:18px clamp(20px,3vw,28px);font-size:17px;font-weight:600;color:var(--ncfs-navy)}
.ncfs-faq summary::-webkit-details-marker{display:none}
.ncfs-faq summary::after{content:"";flex:none;width:36px;height:36px;border-radius:50%;background:#fff url("../icons/plus.svg") center/18px no-repeat;box-shadow:inset 0 0 0 1px var(--ncfs-border);transition:transform .35s var(--ncfs-ease),background-color .3s}
.ncfs-faq details[open] summary::after{transform:rotate(45deg);background-color:var(--ncfs-orange-tint)}
.ncfs-faq .ncfs-faq__a{padding:0 clamp(20px,3vw,28px) 24px;color:var(--ncfs-muted);max-width:68ch}
.ncfs-faq .ncfs-faq__a p{margin:0}

/* --- Steps --- */
.ncfs-steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.ncfs-steps li{counter-increment:s;background:var(--ncfs-surface-alt);border-radius:var(--ncfs-r-lg);padding:32px;display:flex;flex-direction:column;gap:10px;transition:background .3s,box-shadow .3s,transform .3s}
.ncfs-steps li::before{content:counter(s);width:44px;height:44px;border-radius:50%;background:var(--ncfs-navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.ncfs-steps li:hover{background:#fff;box-shadow:var(--ncfs-shadow-card);transform:translateY(-4px)}
.ncfs-steps h3{margin:6px 0 0;font-size:19px}.ncfs-steps p{margin:0;color:var(--ncfs-muted);font-size:15px}

/* --- Panels / CTA --- */
.ncfs-panel{position:relative;overflow:hidden;border-radius:var(--ncfs-r-panel);padding:clamp(40px,6vw,80px) clamp(24px,5vw,72px)}
.ncfs-panel--navy{background:var(--ncfs-navy-deep);color:#fff}
.ncfs-panel--orange{background:var(--ncfs-orange);color:var(--ncfs-navy-deep)}
.ncfs-panel--orange :where(h2,p){color:var(--ncfs-navy-deep)}
.ncfs-panel--orange::after{content:"";position:absolute;right:-120px;top:-160px;width:420px;height:420px;border-radius:50%;border:64px solid rgba(255,255,255,.14);pointer-events:none}
.ncfs-panel > *{position:relative}
.ncfs-callout{display:flex;gap:12px;align-items:flex-start;padding:18px 22px;border-radius:16px;background:var(--ncfs-orange-tint);font-size:15px}
.ncfs-callout--warn{background:var(--ncfs-warn-bg);border:1px solid var(--ncfs-warn-border);color:var(--ncfs-warn)}

/* --- Hero --- */
.ncfs-hero{background:var(--ncfs-navy-deep);color:#fff;position:relative;overflow:hidden}
.ncfs-hero::after{content:"";position:absolute;width:720px;height:720px;right:-220px;top:-260px;border-radius:50%;background:radial-gradient(circle,rgba(232,112,42,.22),rgba(232,112,42,0) 65%);pointer-events:none}
.ncfs-hero__inner{position:relative;z-index:1;padding-block:clamp(48px,8vw,112px)}
.ncfs-hero__media{position:relative;border-radius:var(--ncfs-r-lg);overflow:hidden;aspect-ratio:4/3.6;box-shadow:0 40px 80px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.12)}
.ncfs-hero__media img{width:100%;height:100%;object-fit:cover;display:block}
.ncfs-float{position:absolute;background:#fff;color:var(--ncfs-ink);border-radius:16px;box-shadow:var(--ncfs-shadow-pop);padding:14px 18px;display:flex;gap:12px;align-items:center;animation:ncfs-float 6s ease-in-out infinite}
@keyframes ncfs-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.ncfs-hero--light{background:var(--ncfs-surface-alt);color:var(--ncfs-ink);border-bottom:1px solid var(--ncfs-border)}
.ncfs-hero--light::after{border:70px solid rgba(232,112,42,.10);background:none;width:460px;height:460px;right:-140px;top:-180px}
.ncfs-hero--light :where(h1){color:var(--ncfs-navy)}
.ncfs-breadcrumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px}
.ncfs-breadcrumb li{display:flex;align-items:center;gap:8px;color:#9FB0C6}
.ncfs-breadcrumb li+li::before{content:"";width:14px;height:14px;background:currentColor;opacity:.6;-webkit-mask:url("../icons/chevron-right.svg") center/contain no-repeat;mask:url("../icons/chevron-right.svg") center/contain no-repeat}
.ncfs-breadcrumb a{color:var(--ncfs-on-dark);text-decoration:none}
.ncfs-breadcrumb [aria-current]{color:var(--ncfs-orange-light);font-weight:600}
.ncfs-hero--light .ncfs-breadcrumb li{color:var(--ncfs-muted-2)}
.ncfs-hero--light .ncfs-breadcrumb a{color:var(--ncfs-muted)}
.ncfs-hero--light .ncfs-breadcrumb [aria-current]{color:var(--ncfs-orange-dark)}

/* --- Content (service / location / static pages) --- */
.ncfs-layout{display:flex;flex-wrap:wrap;gap:clamp(32px,4vw,56px);align-items:flex-start;padding-block:clamp(48px,6vw,88px)}
.ncfs-main{flex:7 1 600px;min-width:0}
.ncfs-aside{flex:3 1 300px;min-width:0;display:flex;flex-direction:column;gap:16px}
@media (min-width:1000px){.ncfs-aside{position:sticky;top:112px}}
.ncfs-prose{display:flex;flex-direction:column;gap:clamp(48px,6vw,72px)}
.ncfs-prose section{display:flex;flex-direction:column;gap:18px;scroll-margin-top:120px}
.ncfs-prose h2{margin:0;font-size:clamp(24px,2.6vw,34px);line-height:1.15;font-weight:800;letter-spacing:-.025em}
.ncfs-prose h3{margin:8px 0 0;font-size:20px;line-height:1.35}
.ncfs-prose p{margin:0;font-size:17px;color:var(--ncfs-body);max-width:72ch}
.ncfs-prose .ncfs-num{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:28px;padding:0 10px;border-radius:var(--ncfs-r-pill);background:var(--ncfs-orange-tint);color:var(--ncfs-orange-dark);font-size:13px;font-weight:800;align-self:flex-start}
.ncfs-sidecard{position:relative;overflow:hidden;background:var(--ncfs-navy);color:#fff;border-radius:var(--ncfs-r-lg);padding:28px;display:flex;flex-direction:column;gap:14px}
.ncfs-sidecard::after{content:"";position:absolute;right:-50px;top:-50px;width:160px;height:160px;border-radius:50%;border:30px solid rgba(232,112,42,.22);pointer-events:none}
.ncfs-sidecard > *{position:relative}
.ncfs-sidecard h2{margin:0;font-size:22px;color:#fff}.ncfs-sidecard p{margin:0;color:var(--ncfs-on-dark);font-size:15px}
.ncfs-sidenav{background:#fff;border:1px solid var(--ncfs-border);border-radius:var(--ncfs-r-lg);padding:20px;display:flex;flex-direction:column;gap:4px}
.ncfs-sidenav h2{margin:4px 8px 10px;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ncfs-muted-2)}
.ncfs-sidenav a{display:flex;align-items:center;gap:12px;padding:10px;min-height:48px;box-sizing:border-box;border-radius:14px;color:var(--ncfs-ink);text-decoration:none;font-size:14px;font-weight:600;transition:background .2s,transform .2s}
.ncfs-sidenav a:hover{background:var(--ncfs-surface-alt);transform:translateX(3px)}
.ncfs-sidenav a[aria-current="page"]{background:var(--ncfs-navy);color:#fff}
.ncfs-sidenav a .ncfs-tile{width:32px;height:32px;border-radius:9px}
.ncfs-sidenav a[aria-current="page"] .ncfs-tile{background:var(--ncfs-orange);color:#fff}

/* --- Forms --- */
.ncfs-form{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.ncfs-form .ncfs-full{grid-column:1/-1}
.ncfs-form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.ncfs-form :where(input,select,textarea){font:inherit;font-weight:400;min-height:52px;padding:0 16px;border-radius:var(--ncfs-r-btn);border:1px solid var(--ncfs-field-border);background:#fff;color:var(--ncfs-ink);box-sizing:border-box;width:100%;transition:border-color .2s,box-shadow .2s}
.ncfs-form textarea{padding:14px 16px;min-height:140px;resize:vertical}
.ncfs-form :where(input,select,textarea):focus{outline:none;border-color:var(--ncfs-orange);box-shadow:0 0 0 4px rgba(232,112,42,.15)}
.ncfs-form .ncfs-hp{position:absolute;left:-9999px}
.ncfs-notice{padding:16px 18px;border-radius:14px;font-weight:600}
.ncfs-notice--ok{background:var(--ncfs-success-bg);color:var(--ncfs-success)}
.ncfs-notice--err{background:var(--ncfs-warn-bg);color:var(--ncfs-warn)}
mark.ncfs-ph{background:#FFF4D6;color:#7A3510;padding:0 4px;border-radius:4px}

/* --- Header --- */
.ncfs-utility{background:var(--ncfs-navy-deep);color:var(--ncfs-on-dark);font-size:13px}
.ncfs-utility .ncfs-container{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;justify-content:space-between;padding-block:6px}
.ncfs-utility span,.ncfs-utility a{display:inline-flex;align-items:center;gap:8px;min-height:32px}
.ncfs-utility .ncfs-ico{--s:14px;color:var(--ncfs-orange-light)}
.ncfs-utility a{color:#fff;text-decoration:none;font-weight:600}.ncfs-utility a:hover{color:var(--ncfs-orange-light)}
.ncfs-header{position:sticky;top:0;z-index:50}
.admin-bar .ncfs-header{top:32px}
.ncfs-bar{background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);box-shadow:0 1px 0 var(--ncfs-border);transition:box-shadow .3s}
.ncfs-bar .ncfs-container{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:16px;transition:padding .3s}
.ncfs-header.is-scrolled .ncfs-bar{box-shadow:0 8px 30px rgba(15,45,82,.10)}
.ncfs-header.is-scrolled .ncfs-bar .ncfs-container{padding-block:10px}
.ncfs-logo{display:flex;align-items:center;gap:12px;text-decoration:none;min-height:44px}
.ncfs-logo__mark{width:42px;height:42px;border-radius:12px;background:var(--ncfs-navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}
.ncfs-logo img{max-height:48px;width:auto}
.ncfs-logo__text{display:flex;flex-direction:column;line-height:1.15}
.ncfs-logo__text b{font-size:18px;font-weight:800;color:var(--ncfs-navy);letter-spacing:-.02em}
.ncfs-logo__text small{font-size:11px;font-weight:600;color:var(--ncfs-orange-dark);letter-spacing:.12em;text-transform:uppercase}
.ncfs-nav>ul{list-style:none;margin:0;display:flex;align-items:center;gap:2px;padding:4px;border-radius:var(--ncfs-r-pill);background:var(--ncfs-surface-alt);border:1px solid var(--ncfs-border)}
.ncfs-nav li{position:relative}
.ncfs-nav>ul>li>a{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border-radius:var(--ncfs-r-pill);color:var(--ncfs-ink);font-size:15px;font-weight:500;text-decoration:none;transition:background .2s,color .2s,box-shadow .2s}
.ncfs-nav>ul>li>a:hover,.ncfs-nav>ul>li.current-menu-item>a,.ncfs-nav>ul>li.current-menu-ancestor>a{background:#fff;color:var(--ncfs-navy);box-shadow:0 2px 8px rgba(15,45,82,.10)}
.ncfs-nav .menu-item-has-children>a::after{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("../icons/chevron-down.svg") center/contain no-repeat;mask:url("../icons/chevron-down.svg") center/contain no-repeat;transition:transform .25s}
.ncfs-nav .sub-menu{list-style:none;margin:0;position:absolute;top:100%;left:-8px;margin-top:12px;width:min(520px,90vw);display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:10px;background:#fff;border:1px solid var(--ncfs-border);border-radius:var(--ncfs-r-card);box-shadow:0 24px 60px rgba(15,45,82,.16);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s}
.ncfs-nav .sub-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.ncfs-nav li:hover>.sub-menu,.ncfs-nav li:focus-within>.sub-menu,.ncfs-nav li.is-open>.sub-menu{opacity:1;visibility:visible;transform:none}
.ncfs-nav li:hover>a::after,.ncfs-nav li.is-open>a::after{transform:rotate(180deg)}
.ncfs-nav .sub-menu a{display:flex;align-items:center;padding:12px 14px;border-radius:14px;color:var(--ncfs-ink);font-size:14px;font-weight:600;text-decoration:none;line-height:1.35}
.ncfs-nav .sub-menu a:hover{background:var(--ncfs-surface-alt);color:var(--ncfs-navy)}
.ncfs-burger{display:none;width:46px;height:46px;border:1px solid var(--ncfs-border);background:#fff;border-radius:var(--ncfs-r-btn);align-items:center;justify-content:center;cursor:pointer;color:var(--ncfs-navy);padding:0}
.ncfs-drawer{display:none;border-top:1px solid var(--ncfs-border);background:#fff;max-height:75vh;overflow:auto}
.ncfs-drawer ul{list-style:none;margin:0;padding:12px var(--ncfs-gutter) 24px;display:flex;flex-direction:column;gap:2px}
.ncfs-drawer a{display:flex;align-items:center;min-height:48px;padding:0 8px;border-radius:12px;color:var(--ncfs-ink);font-size:16px;font-weight:600;text-decoration:none}
.ncfs-drawer .sub-menu{padding:0 0 0 12px}
.ncfs-drawer .sub-menu a{font-weight:500;font-size:15px}
.ncfs-mobilebar{display:none}
@media (max-width:1119px){
  .ncfs-nav{display:none}
  .ncfs-burger{display:inline-flex}
  .ncfs-header.is-open .ncfs-drawer{display:block}
}
@media (max-width:767px){ .ncfs-utility__extra{display:none!important} }
@media (max-width:559px){
  .ncfs-bar .ncfs-btn{display:none}
  .ncfs-mobilebar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:70;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -8px 24px rgba(15,45,82,.12)}
  .ncfs-mobilebar .ncfs-btn{flex:1;min-height:50px;padding:0 12px;font-size:15px}
  body{padding-bottom:74px}
  .ncfs-totop{bottom:86px!important}
}

/* --- Footer --- */
.ncfs-footer{background:var(--ncfs-navy-deep);color:var(--ncfs-on-dark);font-size:15px;position:relative;overflow:hidden}
.ncfs-footer__grid{position:relative;display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));padding-block:clamp(56px,7vw,88px) 40px}
.ncfs-footer h2{margin:0 0 12px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff}
.ncfs-footer ul{list-style:none;margin:0;padding:0}
.ncfs-footer li a{display:flex;align-items:center;min-height:44px;color:var(--ncfs-on-dark);text-decoration:none;transition:color .2s,padding-left .25s}
.ncfs-footer li a:hover{color:#fff;padding-left:6px}
.ncfs-footer .ncfs-logo__mark{background:var(--ncfs-orange)}
.ncfs-footer .ncfs-logo__text b{color:#fff}.ncfs-footer .ncfs-logo__text small{color:var(--ncfs-orange-light)}
.ncfs-footer__contact{display:flex;flex-direction:column;gap:10px;color:#fff;font-style:normal}
.ncfs-footer__contact a{color:#fff;text-decoration:none;display:flex;gap:10px;align-items:center}
.ncfs-footer__contact .ncfs-ico{--s:16px;color:var(--ncfs-orange-light)}
.ncfs-footer__bottom{position:relative;border-top:1px solid rgba(255,255,255,.1)}
.ncfs-footer__bottom .ncfs-container{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;padding-block:22px;font-size:13px}
.ncfs-footer__bottom ul{display:flex;flex-wrap:wrap;gap:4px 20px}
.ncfs-footer__bottom li a{min-height:32px}

/* --- Back to top --- */
.ncfs-totop{position:fixed;right:18px;bottom:18px;z-index:60;width:48px;height:48px;border-radius:50%;border:0;background:var(--ncfs-navy);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 24px rgba(15,45,82,.25);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .3s,transform .3s,visibility .3s,background .2s}
.ncfs-totop.is-visible{opacity:1;visibility:visible;transform:none}
.ncfs-totop:hover{background:var(--ncfs-orange)}

/* --- Theme wrapper reset: let NCFS sections go full-bleed inside Hello Elementor / most themes --- */
.site-main:has(.ncfs-page),.page-content:has(.ncfs-page),.entry-content:has(.ncfs-page){max-width:none!important;width:100%!important;padding:0!important;margin:0!important}
.ncfs-page > .ncfs-section:first-child{margin-top:0}

/* --- Scroll reveal: hidden ONLY when JS is running and NOT in Elementor editor --- */
.js body:not(.elementor-editor-active) [data-ncfs-reveal]:not(.is-in){opacity:0;transform:translateY(28px)}
.js [data-ncfs-reveal]{transition:opacity .7s ease,transform .7s var(--ncfs-ease)}

@media (prefers-reduced-motion:reduce){
  /* Hover / fade transitions are small and stay on; only large travel and looping motion are removed. */
  html{scroll-behavior:auto}
  .ncfs-float{animation:none!important}
  .js body:not(.elementor-editor-active) [data-ncfs-reveal]:not(.is-in){transform:none}
  .js [data-ncfs-reveal]{transition:opacity .5s ease}
  .ncfs-card:hover,.ncfs-steps li:hover,.ncfs-chips li:hover,.ncfs-pill:hover{transform:none}
  /* Elementor ships "html * { transition-duration:0s !important }" for reduced-motion users; re-enable short transitions
     on the site's own interactive elements (specificity beats html *). */
  .ncfs-btn,.elementor-button,.ncfs-card,.ncfs-pill,.ncfs-chips li,.ncfs-steps li,.ncfs-tile,.ncfs-link-arrow,.ncfs-link-arrow .ncfs-ico,
  .ncfs-nav a,.ncfs-nav .sub-menu,.ncfs-nav .sub-menu a,.ncfs-sidenav a,.ncfs-footer a,.ncfs-footer li a,.ncfs-utility a,.ncfs-breadcrumb a,
  .ncfs-faq details,.ncfs-faq summary,.ncfs-burger,.ncfs-totop,.ncfs-bar,.ncfs-logo,.ncfs-header .ncfs-btn{transition-duration:.3s!important}
  .ncfs-btn,.elementor-button{transition-duration:.4s!important}
  .js [data-ncfs-reveal]{transition-duration:.6s!important}
}
@media print{.ncfs-header,.ncfs-footer,.ncfs-mobilebar,.ncfs-totop{display:none!important}}

/* No underlines on text links (site-wide) */
html body a,html body a:hover,html body a:focus,html body a:visited,html body .ncfs-prose a,html body .ncfs-page a,html body .ncfs-card,html body .ncfs-card *,html body .ncfs-pill,html body .elementor a,html body .entry-content a{text-decoration:none!important;text-decoration-line:none!important;border-bottom:0}

/* Elementor section blocks / Theme Builder templates: wrappers add no spacing, design stays identical */
.e-con.ncfs-el-block{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--margin-top:0px;--margin-bottom:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--container-max-width:none;max-width:none;width:100%}
.ncfs-el-block>.elementor-widget-html{width:100%;margin:0}
.ncfs-el-block .elementor-widget-container{display:block}
.elementor-location-header{position:sticky;top:0;z-index:100}
.elementor-location-footer .elementor-widget:not(:last-child),.elementor-location-header .elementor-widget:not(:last-child){margin-bottom:0}

/* ===== Fixes: dark hero text, guaranteed button colours, hover polish ===== */
.ncfs-hero:not(.ncfs-hero--light) :where(h1,h2,h3){color:#fff}
.ncfs-hero:not(.ncfs-hero--light) .ncfs-lead,.ncfs-hero:not(.ncfs-hero--light) .ncfs-stack > p,.ncfs-hero:not(.ncfs-hero--light) .ncfs-hero__inner p{color:var(--ncfs-on-dark)}
.ncfs-hero:not(.ncfs-hero--light) .ncfs-hl{color:var(--ncfs-orange-light)}
/* Button text colour can never be overridden by link/kit/Elementor rules (default white on filled buttons) */
html body a.ncfs-btn,html body button.ncfs-btn,html body .ncfs-btn{color:var(--fg);text-decoration:none}
html body a.ncfs-btn:hover,html body a.ncfs-btn:focus-visible,html body button.ncfs-btn:hover,html body .ncfs-btn:hover,html body .ncfs-btn:focus-visible{color:var(--fg-h)}
html body .ncfs-btn[aria-pressed="true"]{color:#fff}
/* Hover transitions everywhere */
.ncfs-faq summary{transition:color .2s ease,background-color .2s ease}
.ncfs-faq summary:hover{color:var(--ncfs-orange-dark)}
.ncfs-breadcrumb a{transition:color .2s ease}
.ncfs-breadcrumb a:hover{color:var(--ncfs-orange-light)}
.ncfs-link-arrow .ncfs-ico{transition:transform .3s var(--ncfs-ease)}
.ncfs-link-arrow:hover .ncfs-ico{transform:translateX(3px)}
.ncfs-card .ncfs-link-arrow{transition:gap .3s,color .2s}
.ncfs-sidecard .ncfs-btn,.ncfs-panel .ncfs-btn,.ncfs-hero .ncfs-btn{will-change:transform}
.ncfs-nav .sub-menu a{transition:background-color .2s ease,color .2s ease,transform .2s ease}
.ncfs-nav .sub-menu a:hover{transform:translateX(3px)}
.ncfs-footer a{transition:color .2s ease,padding-left .25s ease}
.ncfs-burger{transition:background-color .2s ease,transform .2s ease}
.ncfs-burger:hover{transform:scale(1.06)}
.ncfs-totop{transition:opacity .3s ease,transform .3s var(--ncfs-ease),background-color .2s ease}

/* Sticky header: Elementor header wrapper sticks too, and clears the WP admin bar when logged in */
.admin-bar .elementor-location-header{top:32px}
@media (max-width:782px){.admin-bar .elementor-location-header{top:46px}.admin-bar .ncfs-header{top:0}}
.elementor-location-header{background:#fff}
/* ===== CTA + outline buttons (Elementor's ".elementor a{box-shadow:none}" removed the inset borders) ===== */
html body .ncfs-btn--outline{box-shadow:inset 0 0 0 1px var(--ncfs-navy)}
html body .ncfs-btn--outline-light{box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
html body .ncfs-btn--ink-outline{box-shadow:inset 0 0 0 2px var(--ncfs-navy-deep)}
html body .ncfs-btn--ghost{box-shadow:inset 0 0 0 1px var(--ncfs-border)}
html body .ncfs-btn:hover,html body .ncfs-btn:focus-visible{box-shadow:0 14px 30px rgba(232,112,42,.35)}
html body .ncfs-btn--outline:hover{box-shadow:inset 0 0 0 1px var(--ncfs-navy),0 10px 24px rgba(15,45,82,.18)}
html body .ncfs-btn--ink-outline:hover{box-shadow:inset 0 0 0 2px var(--ncfs-navy-deep),0 10px 24px rgba(10,31,58,.25)}
html body .ncfs-btn:active,html body .ncfs-btn[aria-pressed="true"],html body .ncfs-btn[aria-selected="true"]{box-shadow:none}

/* Closing CTA: top gap whenever the section above has its own background; buttons stay on one line on desktop */
.ncfs-cta-section{padding-top:0}
.ncfs-section--alt + .ncfs-cta-section,
.ncfs-section--navy + .ncfs-cta-section,
.ncfs-el-block:has(.ncfs-section--alt,.ncfs-section--navy,.ncfs-dark,.ncfs-hero) + .ncfs-el-block .ncfs-cta-section{padding-top:var(--ncfs-section-y)}
.ncfs-panel--orange .ncfs-link-arrow .ncfs-ico{color:var(--ncfs-navy-deep)}
@media (min-width:1100px){
  .ncfs-panel--orange.ncfs-split{grid-template-columns:minmax(300px,1fr) auto}
  .ncfs-panel--orange.ncfs-split > .ncfs-row{flex-wrap:nowrap;align-items:center;gap:14px}
  .ncfs-panel--orange.ncfs-split > .ncfs-row > *{white-space:nowrap}
}
.ncfs-cta--gap{padding-top:var(--ncfs-section-y)}

/* ===== Sticky sidebar: long "On this page" lists scroll inside the panel instead of running off-screen ===== */
.ncfs-sidenav{scrollbar-width:thin;scrollbar-color:#C3CBD6 transparent}
.ncfs-sidenav::-webkit-scrollbar{width:6px}
.ncfs-sidenav::-webkit-scrollbar-thumb{background:#C3CBD6;border-radius:6px}
.ncfs-sidenav::-webkit-scrollbar-track{background:transparent}
.ncfs-sidenav > h2{position:sticky;top:-20px;z-index:1;background:#fff;margin:-20px -20px 6px;padding:20px 28px 10px}
@media (min-width:1000px){
  .ncfs-aside{max-height:calc(100vh - 136px)}
  .admin-bar .ncfs-aside{top:144px;max-height:calc(100vh - 168px)}
  .ncfs-aside > .ncfs-sidenav{flex:1 1 auto;min-height:120px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .ncfs-aside > :not(.ncfs-sidenav){flex:none}
}
@media (max-width:999px){
  .ncfs-sidenav{max-height:min(60vh,420px);overflow-y:auto;overscroll-behavior:contain}
}
@media (min-width:1000px){
  .ncfs-aside{top:140px;max-height:calc(100vh - 160px)}
  .admin-bar .ncfs-aside{top:172px;max-height:calc(100vh - 192px)}
}

/* ===== Page heroes with a photo (light hero): text left, photo right ===== */
.ncfs-hero__inner:has(> .ncfs-hero__media):not(.ncfs-split){display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);column-gap:clamp(32px,5vw,80px);row-gap:20px;align-items:center;align-content:center}
.ncfs-hero__inner:has(> .ncfs-hero__media):not(.ncfs-split) > :not(.ncfs-hero__media){grid-column:1;justify-self:start}
.ncfs-hero__inner:has(> .ncfs-hero__media):not(.ncfs-split) > .ncfs-hero__media{grid-column:2;grid-row:1 / span 8;justify-self:stretch}
.ncfs-hero--light .ncfs-hero__media{box-shadow:0 30px 60px rgba(15,45,82,.18);border:1px solid var(--ncfs-border)}
.ncfs-hero__media img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:899px){
  .ncfs-hero__inner:has(> .ncfs-hero__media):not(.ncfs-split){display:flex}
  .ncfs-hero__inner:has(> .ncfs-hero__media):not(.ncfs-split) > .ncfs-hero__media{align-self:stretch;max-width:560px}
}

/* Image logo in the header */
.ncfs-logo img{display:block;height:48px;width:auto;max-width:min(240px,60vw)}
@media (max-width:640px){.ncfs-logo img{height:40px}}
