/* Components — chrome, controls, evidence primitives, forms, footer */

.i{width:1.15em;height:1.15em;flex:none;stroke:currentColor}

/* ---------- Topbar ---------- */
.nfi-topbar{background:var(--nfi-navy);color:var(--on-navy);font-size:var(--fs-label);line-height:1.35}
.nfi-topbar .wrap{display:flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--topbar-h);padding-block:var(--s-2);text-align:center}
.nfi-topbar .i{color:var(--nfi-light-blue);width:15px;height:15px}

/* ---------- Header ---------- */
.nfi-header{position:sticky;top:0;z-index:var(--z-header);background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px);border-bottom:var(--bw) solid var(--nfi-line);transition:box-shadow var(--dur-2) var(--ease)}
.nfi-header.is-scrolled{box-shadow:0 6px 24px -14px rgba(11,31,58,.25)}
.nfi-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);min-height:var(--header-h)}
.nfi-brand{display:flex;align-items:center;gap:var(--s-4);flex:none}
.nfi-brand__mark{height:38px;width:auto}
.nfi-brand__div{width:1px;height:28px;background:var(--nfi-line-2)}
.nfi-brand__sub{font-size:var(--fs-micro);line-height:1.25;letter-spacing:.07em;color:var(--nfi-blue-ink);font-weight:600;max-width:11ch;text-transform:uppercase}
.nfi-nav{margin-inline:auto}
.nfi-nav__list{display:flex;align-items:center;gap:var(--s-1);list-style:none;margin:0;padding:0}
.nfi-nav__link,.nfi-nav__trigger{position:relative;display:inline-flex;align-items:center;gap:6px;padding:10px 14px;background:none;border:0;font-size:.96875rem;font-weight:500;color:var(--nfi-text);border-radius:var(--r-2)}
.nfi-nav__link::after,.nfi-nav__trigger>span::after{content:"";position:absolute;left:14px;right:14px;bottom:5px;height:1px;background:var(--nfi-blue);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-2) var(--ease)}
.nfi-nav__trigger>span{position:relative}
.nfi-nav__trigger>span::after{left:0;right:0;bottom:-4px}
.nfi-nav__link:hover::after,.nfi-nav__group:hover .nfi-nav__trigger>span::after,.nfi-nav__trigger[aria-expanded="true"]>span::after,.nfi-nav__link[aria-current="page"]::after{transform:scaleX(1)}
.nfi-nav__chev{width:14px;height:14px;transition:transform var(--dur-2) var(--ease);color:var(--nfi-muted)}
.nfi-nav__trigger[aria-expanded="true"] .nfi-nav__chev{transform:rotate(180deg)}
.nfi-nav__group{position:relative}
.nfi-nav__panel{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%,6px);min-width:340px;padding:var(--s-2);background:#fff;border:var(--bw) solid var(--nfi-line);border-radius:var(--r-3);box-shadow:var(--sh-3);opacity:0;visibility:hidden;transition:opacity var(--dur-1) var(--ease),transform var(--dur-2) var(--ease),visibility 0s linear var(--dur-1)}
.nfi-nav__panel::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.nfi-nav__panel ul{list-style:none;margin:0;padding:0}
.nfi-nav__panel a{display:block;padding:var(--s-3) var(--s-4);border-radius:var(--r-2);transition:background var(--dur-1)}
.nfi-nav__panel a:hover,.nfi-nav__panel a:focus-visible{background:var(--nfi-ice)}
.nfi-nav__t{display:block;font-weight:600;font-size:.96875rem;color:var(--nfi-ink)}
.nfi-nav__d{display:block;font-size:var(--fs-label);color:var(--nfi-muted);margin-top:2px}
.nfi-nav__group.is-open .nfi-nav__panel{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}
@media (hover:hover){.nfi-nav__group:hover .nfi-nav__panel{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}}
.nfi-header__actions{display:flex;align-items:center;gap:var(--s-3);flex:none}
.nfi-menubtn{display:none;width:44px;height:44px;align-items:center;justify-content:center;border:var(--bw) solid var(--nfi-line-2);background:#fff;border-radius:var(--r-2);color:var(--nfi-ink)}
.nfi-menubtn .i{width:22px;height:22px}
.nfi-menubtn__close{display:none}
.nfi-menubtn[aria-expanded="true"] .nfi-menubtn__open{display:none}
.nfi-menubtn[aria-expanded="true"] .nfi-menubtn__close{display:block}

/* language switcher */
.nfi-lang{display:inline-flex;border:var(--bw) solid var(--nfi-line-2);border-radius:var(--r-2);overflow:hidden;background:#fff}
.nfi-lang button{border:0;background:none;padding:8px 11px;font:600 var(--fs-micro)/1 var(--font-mono);letter-spacing:.04em;color:var(--nfi-muted);min-width:40px;min-height:36px;transition:background var(--dur-1),color var(--dur-1)}
.nfi-lang button+button{border-left:var(--bw) solid var(--nfi-line)}
.nfi-lang button[aria-pressed="true"]{background:var(--nfi-navy);color:#fff}
.nfi-lang button:not([aria-pressed="true"]):hover{background:var(--nfi-ice);color:var(--nfi-ink)}

/* mobile sheet */
.nfi-sheet{position:fixed;inset:calc(var(--header-h) + var(--topbar-h)) 0 0 0;background:#fff;z-index:var(--z-menu);overflow-y:auto;overscroll-behavior:contain;padding-block:var(--s-5) var(--s-8);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--dur-2) var(--ease),transform var(--dur-2) var(--ease),visibility 0s linear var(--dur-2);display:none}
.nfi-sheet.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.nfi-sheet__inner{display:grid;gap:var(--s-5)}
.nfi-sheet__group h2{font:600 var(--fs-micro)/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--nfi-blue-ink);margin:0 0 var(--s-2)}
.nfi-sheet__group ul{list-style:none;margin:0;padding:0;border-top:var(--bw) solid var(--nfi-line)}
.nfi-sheet__group li a{display:flex;align-items:center;justify-content:space-between;min-height:52px;font-size:1.125rem;font-weight:500;color:var(--nfi-ink);border-bottom:var(--bw) solid var(--nfi-line)}
.nfi-sheet__group li a .i{color:var(--nfi-muted);width:18px}
.nfi-sheet__foot{display:flex;flex-direction:column;gap:var(--s-4);align-items:stretch}
.nfi-sheet__foot .nfi-btn{width:100%}
.nfi-sheet__foot .nfi-lang{align-self:flex-start}
@media (max-width:1140px){
  .nfi-nav{display:none}
  .nfi-menubtn{display:inline-flex}
  .nfi-header__actions .nfi-lang,.nfi-header__actions [data-cta]{display:none}
  .nfi-header__inner{justify-content:space-between}
  .nfi-sheet{display:block}
}
@media (max-width:480px){
  .nfi-brand__mark{height:32px}
  .nfi-brand{gap:var(--s-3)}
  .nfi-brand__sub{font-size:.6875rem;max-width:9ch}
}
@media (max-width:340px){.nfi-brand__div,.nfi-brand__sub{display:none}}
body.is-locked{overflow:hidden}

/* ---------- Buttons & links ---------- */
.nfi-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-3);min-height:48px;padding:12px 22px;border-radius:var(--r-2);border:var(--bw) solid transparent;font-weight:600;font-size:.96875rem;line-height:1.2;text-align:center;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}
.nfi-btn__arrow{width:1.05em;height:1.05em;transition:transform var(--dur-2) var(--ease)}
.nfi-btn:hover .nfi-btn__arrow,.nfi-textlink:hover .nfi-btn__arrow{transform:translateX(4px)}
.nfi-btn--primary{background:var(--nfi-blue);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 8px 20px -10px rgba(11,99,246,.7)}
.nfi-btn--primary:hover{background:#0A55D6;box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 12px 26px -10px rgba(11,99,246,.8)}
.nfi-btn--secondary{background:#fff;color:var(--nfi-ink);border-color:var(--nfi-line-2)}
.nfi-btn--secondary:hover{border-color:var(--nfi-blue);color:var(--nfi-blue-ink)}
.nfi-btn--ghost{color:var(--nfi-blue-ink);padding-inline:0;min-height:auto}
.nfi-btn--light{background:#fff;color:var(--nfi-navy)}
.nfi-btn--light:hover{background:var(--nfi-pale-blue)}
.nfi-btn--outline-light{color:#fff;border-color:rgba(255,255,255,.35)}
.nfi-btn--outline-light:hover{border-color:#fff;background:rgba(255,255,255,.07)}
.nfi-btn[disabled],.nfi-btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
.nfi-header .nfi-btn{min-height:42px;padding:9px 18px}
.nfi-actions{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;margin-top:var(--s-6)}
.nfi-textlink{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:600;color:var(--nfi-blue-ink);font-size:.96875rem}
.nfi-textlink:hover{color:var(--nfi-blue)}

/* ---------- State & evidence primitives ---------- */
.nfi-state{display:inline-flex;align-items:center;gap:7px;padding:3px 10px 3px 8px;border-radius:var(--r-1);border:var(--bw) solid transparent;font-size:.8125rem;font-weight:600;line-height:1.35;white-space:nowrap}
.nfi-state i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none;position:relative}
.nfi-state--ok{background:var(--nfi-success-bg);color:var(--nfi-success-ink);border-color:#BFE3CF}
.nfi-state--info{background:var(--nfi-info-bg);color:var(--nfi-blue-ink);border-color:#BDD6F7}
.nfi-state--warn{background:var(--nfi-warning-bg);color:var(--nfi-warning-ink);border-color:#EBD6A6}
.nfi-state--bad{background:var(--nfi-danger-bg);color:var(--nfi-danger);border-color:#EFC4C0}
.nfi-state--neutral{background:var(--nfi-ice);color:var(--nfi-text-2);border-color:var(--nfi-line)}
.nfi-state.is-live i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid currentColor;opacity:0;animation:nfi-pulse 2.4s var(--ease) infinite}
@keyframes nfi-pulse{0%{transform:scale(.5);opacity:.7}100%{transform:scale(1.7);opacity:0}}

.nfi-basis{display:inline-block;font:500 var(--fs-micro)/1.4 var(--font-mono);letter-spacing:.03em;padding:2px 8px;border-radius:var(--r-1);border:1px solid var(--nfi-line-2);color:var(--nfi-text-2);background:#fff;cursor:help}
.nfi-basis--fact{background:var(--nfi-navy);border-color:var(--nfi-navy);color:#fff}
.nfi-basis--claim{border-color:var(--nfi-blue);color:var(--nfi-blue-ink)}
.nfi-basis--inference{border-style:dashed;border-color:var(--nfi-blue-2);color:var(--nfi-blue-ink)}
.nfi-basis--unverified{border-style:dotted;color:var(--nfi-muted)}
.nfi-access{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:600}
.nfi-access .i{width:14px;height:14px}
.nfi-access--ok{color:var(--nfi-success-ink)}
.nfi-access--info{color:var(--nfi-blue-ink)}
.nfi-access--warn{color:var(--nfi-warning-ink)}
.nfi-access--bad{color:var(--nfi-danger)}
.nfi-role{display:inline-block;text-transform:uppercase;font:600 var(--fs-micro)/1 var(--font-mono);letter-spacing:.09em;padding:5px 8px;border:1px solid var(--nfi-navy);color:var(--nfi-navy);border-radius:var(--r-1)}
.nfi-role--trader,.nfi-role--distributor{border-color:var(--nfi-muted);color:var(--nfi-text-2)}
.nfi-role--private_label,.nfi-role--exporter{border-color:var(--nfi-blue-2);color:var(--nfi-blue-ink)}
.nfi-chip{display:inline-block;font:500 var(--fs-micro)/1.5 var(--font-mono);letter-spacing:.02em;padding:2px 8px;background:var(--nfi-ice);border:1px solid var(--nfi-line);border-radius:var(--r-1);color:var(--nfi-text-2)}
.nfi-mono{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.02em}

/* evidence completeness */
.nfi-segbar{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}
.nfi-segbar__track{display:flex;gap:3px;list-style:none;margin:0;padding:0;flex:1 1 120px;min-width:100px;max-width:220px}
.nfi-segbar__seg{flex:1;height:6px;border-radius:1px;background:var(--nfi-line)}
.nfi-segbar__seg.is-verified{background:var(--nfi-success)}
.nfi-segbar__seg.is-received{background:var(--nfi-blue)}
.nfi-segbar__seg.is-reviewing{background:repeating-linear-gradient(135deg,var(--nfi-warning) 0 3px,#E7C77E 3px 6px)}
.nfi-segbar__seg.is-missing,.nfi-segbar__seg.is-expired{background:#E9B9B5}
.nfi-segbar__count{font-size:var(--fs-label);color:var(--nfi-text-2);white-space:nowrap}
.nfi-segbar__count b{font:600 .9375rem var(--font-mono);color:var(--nfi-ink)}
.nfi-segbar--compact .nfi-segbar__track{max-width:150px}

.nfi-layers{list-style:none;margin:0;padding:0;border:var(--bw) solid var(--nfi-line);border-radius:var(--r-3);background:#fff;overflow:hidden}
.nfi-layers__row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) var(--s-5);border-bottom:var(--bw) solid var(--nfi-line)}
.nfi-layers__row:last-child{border-bottom:0}
.nfi-layers__name{display:inline-flex;align-items:center;gap:var(--s-3);font-weight:600;color:var(--nfi-ink)}
.nfi-layers__name .i{color:var(--nfi-blue);width:20px;height:20px}

/* ---------- Notices, alerts, empty states ---------- */
.nfi-notice{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-4) var(--s-5);background:var(--nfi-ice);border:var(--bw) solid var(--nfi-line);border-left:3px solid var(--nfi-blue);border-radius:var(--r-2);color:var(--nfi-text-2);font-size:var(--fs-small);line-height:1.55}
.nfi-notice .i{color:var(--nfi-blue);margin-top:2px;width:20px;height:20px}
.nfi-notice strong{color:var(--nfi-ink)}
.nfi-notice--warn{background:var(--nfi-warning-bg);border-left-color:var(--nfi-warning);border-color:#EBD6A6}
.nfi-notice--warn .i{color:var(--nfi-warning)}
.nfi-alert{display:flex;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-2);border:var(--bw) solid;font-size:var(--fs-small);margin-bottom:var(--s-5)}
.nfi-alert .i{margin-top:2px;width:20px;height:20px}
.nfi-alert--ok{background:var(--nfi-success-bg);border-color:#BFE3CF;color:var(--nfi-success-ink)}
.nfi-alert--bad{background:var(--nfi-danger-bg);border-color:#EFC4C0;color:#7C241F}
.nfi-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s-3);padding:var(--s-8) var(--s-5);border:var(--bw) dashed var(--nfi-line-2);border-radius:var(--r-3);background:linear-gradient(180deg,var(--nfi-ice),#fff)}
.nfi-empty>.i{width:36px;height:36px;color:var(--nfi-blue-2);stroke-width:1.2}
.nfi-empty h3{margin:0}
.nfi-empty p{margin:0 0 var(--s-3);max-width:46ch;color:var(--nfi-text-2)}

/* ---------- Cards ---------- */
.nfi-card{position:relative;display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-6);background:#fff;border:var(--bw) solid var(--nfi-line);border-radius:var(--r-3);transition:border-color var(--dur-2) var(--ease),transform var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}
a.nfi-card:hover,.nfi-card--hover:hover{border-color:var(--nfi-blue-2);transform:translateY(-3px);box-shadow:var(--sh-2)}
.nfi-card h3{margin:0}
.nfi-card p{margin:0;color:var(--nfi-text-2);font-size:var(--fs-small)}
.nfi-card__num{font:500 var(--fs-micro)/1 var(--font-mono);letter-spacing:.08em;color:var(--nfi-blue-ink)}
.nfi-card__icon{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-2);background:var(--nfi-pale-blue);color:var(--nfi-blue)}
.nfi-card .nfi-textlink{margin-top:auto;padding-top:var(--s-2)}
.nfi-card--flat{background:var(--nfi-ice);border-color:transparent}

/* material card (catalogue) */
.nfi-mcard{display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-6);background:#fff;border:var(--bw) solid var(--nfi-line);border-radius:var(--r-3);transition:border-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}
.nfi-mcard:hover{border-color:var(--nfi-blue-2);box-shadow:var(--sh-2);transform:translateY(-3px)}
.nfi-mcard.is-hidden{display:none}
.nfi-mcard__top{display:flex;justify-content:space-between;gap:var(--s-3);align-items:center;flex-wrap:wrap}
.nfi-mcard__class{font:500 var(--fs-micro)/1.3 var(--font-mono);letter-spacing:.04em;color:var(--nfi-text-2);text-transform:uppercase}
.nfi-mcard__title{margin:0;font:400 clamp(1.7rem,1.4rem + 1vw,2.2rem)/1.05 var(--font-display);letter-spacing:.02em}
.nfi-mcard__title a:hover{color:var(--nfi-blue-ink)}
.nfi-mcard__data{display:grid;margin:0}
.nfi-mcard__data>div{display:grid;grid-template-columns:minmax(110px,32%) 1fr;gap:var(--s-3);align-items:center;padding:var(--s-3) 0;border-top:var(--bw) solid var(--nfi-line);font-size:var(--fs-small)}
.nfi-mcard__data dt{font-size:var(--fs-label);color:var(--nfi-muted);font-weight:500}
.nfi-mcard__data dd{margin:0;color:var(--nfi-ink);font-weight:500}
.nfi-mcard__sub{display:block;font-size:var(--fs-label);color:var(--nfi-muted);font-weight:400;margin-top:2px}
.nfi-mcard__foot{margin-top:auto;padding-top:var(--s-2)}

/* ---------- Data lists & tables ---------- */
.nfi-dl{display:grid;margin:0;border:var(--bw) solid var(--nfi-line);border-radius:var(--r-3);background:#fff;overflow:hidden}
.nfi-dl>div{display:grid;grid-template-columns:minmax(140px,34%) 1fr;gap:var(--s-4);padding:var(--s-4) var(--s-5);border-bottom:var(--bw) solid var(--nfi-line);align-items:start}
.nfi-dl>div:last-child{border-bottom:0}
.nfi-dl dt{font-size:var(--fs-label);font-weight:500;color:var(--nfi-muted)}
.nfi-dl dd{margin:0;color:var(--nfi-ink);display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-3);align-items:center;overflow-wrap:anywhere}
.nfi-table{width:100%;border-collapse:collapse;font-size:var(--fs-small)}
.nfi-table th{font:600 var(--fs-micro)/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--nfi-muted);text-align:left;padding:var(--s-3) var(--s-4);border-bottom:var(--bw) solid var(--nfi-line-2)}
.nfi-table td{padding:var(--s-4);border-bottom:var(--bw) solid var(--nfi-line);vertical-align:top}

/* ---------- Chain / pipeline ---------- */
.nfi-chain{list-style:none;margin:0;padding:0;counter-reset:none}
.nfi-chain__step{position:relative;display:flex;gap:var(--s-5)}
.nfi-chain__node{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;border:var(--bw) solid var(--nfi-blue);color:var(--nfi-blue-ink);font:500 .8125rem var(--font-mono);position:relative;z-index:1}
.nfi-chain__body h3{margin:0 0 var(--s-1);font-size:1.125rem}
.nfi-chain__body p{margin:0;color:var(--nfi-text-2);font-size:var(--fs-small);max-width:52ch}
.nfi-chain--v .nfi-chain__step{padding-bottom:var(--s-6)}
.nfi-chain--v .nfi-chain__step:last-child{padding-bottom:0}
.nfi-chain--v .nfi-chain__step::before{content:"";position:absolute;left:22px;top:44px;bottom:0;width:1px;background:linear-gradient(var(--nfi-blue),var(--nfi-line-2))}
.nfi-chain--v .nfi-chain__step:last-child::before{display:none}
.nfi-chain--h{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--s-5)}
.nfi-chain--h .nfi-chain__step{flex-direction:column;gap:var(--s-4)}
.nfi-chain--h .nfi-chain__step::before{content:"";position:absolute;top:22px;left:44px;right:calc(var(--s-5)*-1);height:1px;background:linear-gradient(90deg,var(--nfi-blue),var(--nfi-line-2))}
.nfi-chain--h .nfi-chain__step:last-child::before{display:none}
@media (max-width:900px){
  .nfi-chain--h{display:block}
  .nfi-chain--h .nfi-chain__step{flex-direction:row;padding-bottom:var(--s-6)}
  .nfi-chain--h .nfi-chain__step::before{top:44px;bottom:0;left:22px;right:auto;width:1px;height:auto;background:linear-gradient(var(--nfi-blue),var(--nfi-line-2))}
}

/* ---------- Forms ---------- */
.nfi-form{display:grid;gap:var(--s-5)}
.nfi-formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5)}
.nfi-field{display:flex;flex-direction:column;gap:var(--s-2);min-width:0}
.nfi-field.full{grid-column:1/-1}
.nfi-field label,.nfi-choice legend{font-size:.9375rem;font-weight:600;color:var(--nfi-ink)}
.nfi-req{color:var(--nfi-blue)}
.nfi-field input[type=text],.nfi-field input[type=email],.nfi-field input[type=url],.nfi-field input[type=search],.nfi-field select,.nfi-field textarea,.nfi-input{width:100%;min-height:50px;padding:12px 14px;background:#fff;color:var(--nfi-ink);border:var(--bw) solid var(--nfi-line-2);border-radius:var(--r-2);transition:border-color var(--dur-1),box-shadow var(--dur-1);appearance:none}
.nfi-field select{background-image:linear-gradient(45deg,transparent 50%,var(--nfi-muted) 50%),linear-gradient(135deg,var(--nfi-muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:38px}
.nfi-field textarea{min-height:140px;resize:vertical;line-height:1.5}
.nfi-field input:hover,.nfi-field select:hover,.nfi-field textarea:hover{border-color:var(--nfi-light-blue)}
.nfi-field input:focus,.nfi-field select:focus,.nfi-field textarea:focus,.nfi-input:focus{outline:0;border-color:var(--nfi-blue);box-shadow:var(--ring)}
.nfi-field.has-error input,.nfi-field.has-error select,.nfi-field.has-error textarea{border-color:var(--nfi-danger)}
.nfi-field__help{margin:0;font-size:var(--fs-label);color:var(--nfi-muted)}
.nfi-field__error{margin:0;font-size:var(--fs-label);color:var(--nfi-danger);font-weight:500}
.nfi-check{display:flex;gap:var(--s-3);align-items:flex-start;font-weight:400;font-size:var(--fs-small);color:var(--nfi-text-2);cursor:pointer}
.nfi-check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--nfi-blue)}
.nfi-choice{border:0;padding:0;margin:0;min-width:0}
.nfi-choice legend{padding:0;margin-bottom:var(--s-3)}
.nfi-choice__grid{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.nfi-choice__item{position:relative}
.nfi-choice__item input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.nfi-choice__item span{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 16px;border:var(--bw) solid var(--nfi-line-2);border-radius:var(--r-2);font-size:var(--fs-small);font-weight:500;background:#fff;color:var(--nfi-text);transition:all var(--dur-1) var(--ease)}
.nfi-choice__item span::before{content:"";width:14px;height:14px;border:1.5px solid var(--nfi-line-2);border-radius:3px;flex:none;transition:all var(--dur-1) var(--ease)}
.nfi-choice__item:hover span{border-color:var(--nfi-light-blue)}
.nfi-choice__item input:checked+span{background:var(--nfi-pale-blue);border-color:var(--nfi-blue);color:var(--nfi-blue-ink)}
.nfi-choice__item input:checked+span::before{background:var(--nfi-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%23fff' stroke-width='2.2'%3E%3Cpath d='M3 7.5l2.6 2.6L11 4.5'/%3E%3C/svg%3E") center/100% no-repeat;border-color:var(--nfi-blue)}
.nfi-choice__item input:focus-visible+span{outline:2px solid var(--nfi-blue);outline-offset:2px}
.nfi-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.nfi-form__live:empty{display:none}
.nfi-form__actions{display:flex;gap:var(--s-3);flex-wrap:wrap;align-items:center;justify-content:space-between}
.nfi-form__fine{font-size:var(--fs-label);color:var(--nfi-muted);margin:0;max-width:56ch}
.nfi-form.is-sending .nfi-btn--primary{opacity:.7;pointer-events:none}
@media (max-width:700px){.nfi-formgrid{grid-template-columns:1fr}}

/* ---------- Filters toolbar ---------- */
.nfi-toolbar{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(4,minmax(150px,1fr));gap:var(--s-3);align-items:end;padding:var(--s-5);background:var(--nfi-ice);border:var(--bw) solid var(--nfi-line);border-radius:var(--r-3)}
.nfi-toolbar .nfi-field label{font-size:var(--fs-label);color:var(--nfi-text-2);font-weight:500}
.nfi-toolbar .nfi-field input,.nfi-toolbar .nfi-field select{min-height:46px}
.nfi-search{position:relative}
.nfi-search .i{position:absolute;left:14px;bottom:15px;color:var(--nfi-muted);width:18px;height:18px;pointer-events:none}
.nfi-search input{padding-left:42px!important}
.nfi-resultbar{display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);margin:var(--s-5) 0;font-size:var(--fs-label);color:var(--nfi-text-2);flex-wrap:wrap}
.nfi-resultbar button{border:0;background:none;color:var(--nfi-blue-ink);font-weight:600;padding:var(--s-2) 0}
@media (max-width:1100px){.nfi-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.nfi-toolbar .nfi-search{grid-column:1/-1}}
@media (max-width:560px){.nfi-toolbar{grid-template-columns:1fr}}

/* ---------- Page hero ---------- */
.nfi-pagehero{position:relative;overflow:hidden;padding-block:clamp(3rem,2rem + 5vw,6.5rem) clamp(2.5rem,2rem + 3vw,4.5rem);background:linear-gradient(180deg,#fff 0%,var(--nfi-ice) 100%);border-bottom:var(--bw) solid var(--nfi-line)}
.nfi-pagehero__bg{position:absolute;inset:0;pointer-events:none;color:var(--nfi-blue);background-image:linear-gradient(var(--nfi-line) 1px,transparent 1px),linear-gradient(90deg,var(--nfi-line) 1px,transparent 1px);background-size:64px 64px;background-position:-1px -1px;-webkit-mask-image:radial-gradient(ellipse 60% 90% at 90% 0%,#000,transparent 70%);mask-image:radial-gradient(ellipse 60% 90% at 90% 0%,#000,transparent 70%);opacity:.75}
.nfi-pagehero__mol{position:absolute;right:-60px;top:-30px;width:min(560px,60vw);opacity:.35;color:var(--nfi-blue-2)}
.nfi-pagehero__inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-7);align-items:center}
.nfi-pagehero__inner:has(.nfi-pagehero__aside){grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.nfi-pagehero h1{max-width:16ch;margin-bottom:var(--s-4)}
.nfi-pagehero .t-lead{margin:0}
.nfi-pagehero__meta{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-5);align-items:center}
@media (max-width:900px){.nfi-pagehero__inner:has(.nfi-pagehero__aside){grid-template-columns:1fr}}

/* ---------- CTA band ---------- */
.nfi-ctaband{overflow:hidden}
.nfi-ctaband__bg{position:absolute;inset:0;pointer-events:none}
.nfi-ctaband__mol{position:absolute;right:-40px;bottom:-60px;width:min(520px,70vw);color:var(--nfi-light-blue);opacity:.18}
.nfi-ctaband__inner{position:relative;display:flex;justify-content:space-between;align-items:center;gap:var(--s-7);flex-wrap:wrap}
.nfi-ctaband h2{max-width:20ch;margin-bottom:var(--s-3)}
.nfi-ctaband p{margin:0;max-width:52ch;color:var(--on-navy)}
.nfi-ctaband .nfi-actions{margin:0}

/* ---------- Footer ---------- */
.nfi-footer{background:var(--nfi-navy);color:var(--on-navy-2);padding-top:var(--s-9);font-size:var(--fs-small);position:relative;overflow:hidden}
.nfi-footer::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(132,184,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(132,184,255,.07) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 60%);mask-image:linear-gradient(180deg,#000,transparent 60%);pointer-events:none}
.nfi-footer__top{position:relative;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,3fr);gap:var(--s-8);padding-bottom:var(--s-8)}
.nfi-footer__logo img{width:230px;height:auto}
.nfi-footer__tag{margin:var(--s-5) 0 var(--s-2);font:italic 400 1.5rem/1.2 var(--font-display);color:#fff}
.nfi-footer__pos{margin:0 0 var(--s-4);max-width:36ch}
.nfi-footer__path{display:flex;gap:var(--s-2);flex-wrap:wrap;color:var(--nfi-light-blue)}
.nfi-footer__cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s-6)}
.nfi-footer__col h2{font:600 var(--fs-micro)/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#fff;margin:0 0 var(--s-4)}
.nfi-footer__col ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}
.nfi-footer a{transition:color var(--dur-1)}
.nfi-footer__col a:hover,.nfi-footer__links a:hover{color:#fff}
.nfi-ext{width:12px;height:12px;display:inline-block;margin-left:5px;vertical-align:-1px}
.nfi-footer__legal{position:relative;border-top:var(--bw) solid var(--line-on-navy);padding-block:var(--s-6) var(--s-7)}
.nfi-footer__disclaimer{max-width:96ch;margin:0 0 var(--s-5);font-size:var(--fs-label);line-height:1.6}
.nfi-footer__bar{display:flex;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;align-items:center}
.nfi-footer__bar .meta{color:var(--on-navy-2)}
.nfi-footer__links{display:flex;gap:var(--s-5);flex-wrap:wrap;list-style:none;margin:0;padding:0}
@media (max-width:1100px){.nfi-footer__top{grid-template-columns:1fr}.nfi-footer__cols{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:600px){.nfi-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* keyboard: opening the trigger by focus reveals its panel */
.nfi-nav__group:focus-within .nfi-nav__panel{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}

/* long-label safety (Spanish / future languages) */
.nfi-nav__link,.nfi-nav__trigger{white-space:nowrap}
.nfi-brand__sub{max-width:17ch}

/* medium desktops: keep the full lockup + nav + CTA on one line, even in longer languages */
@media (min-width:1141px) and (max-width:1360px){
  .nfi-nav__link,.nfi-nav__trigger{padding:10px 8px;font-size:.9375rem}
  .nfi-nav__link::after{left:8px;right:8px}
  .nfi-header__inner{gap:var(--s-3)}
  .nfi-brand{gap:var(--s-3)}
  .nfi-brand__mark{height:34px}
  .nfi-brand__sub{font-size:.6875rem}
  .nfi-header .nfi-btn{padding:9px 14px}
}
