.elementor-7533 .elementor-element.elementor-element-2e32e2a1{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-7533 .elementor-element.elementor-element-1b045ca8{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:rgba(11,23,40,0.1);--border-color:rgba(11,23,40,0.1);--padding-top:160px;--padding-bottom:80px;--padding-left:48px;--padding-right:48px;}.elementor-7533 .elementor-element.elementor-element-425fbb64{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7533 .elementor-element.elementor-element-5774863c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-7533 .elementor-element.elementor-element-26cb6509{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:112px;--padding-bottom:112px;--padding-left:48px;--padding-right:48px;}.elementor-7533 .elementor-element.elementor-element-3db5870c{--grid-columns:2;--grid-column-gap:32px;--grid-row-gap:64px;}.elementor-7533 .elementor-element.elementor-element-5ceb38b7{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;border-style:solid;--border-style:solid;border-width:1px 0px 0px 0px;--border-top-width:1px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:rgba(11,23,40,0.1);--border-color:rgba(11,23,40,0.1);--padding-top:112px;--padding-bottom:112px;--padding-left:48px;--padding-right:48px;}.elementor-7533 .elementor-element.elementor-element-5ceb38b7:not(.elementor-motion-effects-element-type-background), .elementor-7533 .elementor-element.elementor-element-5ceb38b7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#ffffff;}.elementor-7533 .elementor-element.elementor-element-c4d9fdd{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-7533 .elementor-element.elementor-element-4b602d2d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-7533 .elementor-element.elementor-element-216e8a7e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-7533 .elementor-element.elementor-element-228bb3e8{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:rgba(11,23,40,.1);--border-color:rgba(11,23,40,.1);--border-radius:16px 16px 16px 16px;--padding-top:36px;--padding-bottom:36px;--padding-left:36px;--padding-right:36px;}.elementor-7533 .elementor-element.elementor-element-228bb3e8:not(.elementor-motion-effects-element-type-background), .elementor-7533 .elementor-element.elementor-element-228bb3e8 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#fbfbfc;}.elementor-7533 .elementor-element.elementor-element-17025ae7{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:rgba(11,23,40,.1);--border-color:rgba(11,23,40,.1);--border-radius:16px 16px 16px 16px;--padding-top:36px;--padding-bottom:36px;--padding-left:36px;--padding-right:36px;}.elementor-7533 .elementor-element.elementor-element-17025ae7:not(.elementor-motion-effects-element-type-background), .elementor-7533 .elementor-element.elementor-element-17025ae7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#fbfbfc;}.elementor-7533 .elementor-element.elementor-element-33b99a94{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:128px;--padding-bottom:128px;--padding-left:48px;--padding-right:48px;}.elementor-7533 .elementor-element.elementor-element-33b99a94:not(.elementor-motion-effects-element-type-background), .elementor-7533 .elementor-element.elementor-element-33b99a94 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#002d47;}.elementor-7533 .elementor-element.elementor-element-25fe4b7e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-7533 .elementor-element.elementor-element-291e233e{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--gap:12px 12px;--row-gap:12px;--column-gap:12px;}.elementor-7533 .elementor-element.elementor-element-fb409a0{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:16px 16px;--row-gap:16px;--column-gap:16px;--flex-wrap:wrap;}@media(min-width:768px){.elementor-7533 .elementor-element.elementor-element-33b99a94{--content-width:832px;}}@media(max-width:1024px){.elementor-7533 .elementor-element.elementor-element-1b045ca8{--padding-top:160px;--padding-bottom:80px;--padding-left:32px;--padding-right:32px;}.elementor-7533 .elementor-element.elementor-element-5774863c{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-7533 .elementor-element.elementor-element-26cb6509{--padding-top:96px;--padding-bottom:96px;--padding-left:32px;--padding-right:32px;}.elementor-7533 .elementor-element.elementor-element-3db5870c{--grid-columns:2;}.elementor-7533 .elementor-element.elementor-element-5ceb38b7{--padding-top:96px;--padding-bottom:96px;--padding-left:32px;--padding-right:32px;}.elementor-7533 .elementor-element.elementor-element-4b602d2d{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-7533 .elementor-element.elementor-element-33b99a94{--padding-top:112px;--padding-bottom:112px;--padding-left:32px;--padding-right:32px;}.elementor-7533 .elementor-element.elementor-element-25fe4b7e{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}}@media(max-width:767px){.elementor-7533 .elementor-element.elementor-element-1b045ca8{--padding-top:120px;--padding-bottom:56px;--padding-left:20px;--padding-right:20px;}.elementor-7533 .elementor-element.elementor-element-5774863c{--gap:20px 20px;--row-gap:20px;--column-gap:20px;}.elementor-7533 .elementor-element.elementor-element-26cb6509{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-7533 .elementor-element.elementor-element-3db5870c{--grid-columns:1;--grid-row-gap:48px;}.elementor-7533 .elementor-element.elementor-element-5ceb38b7{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-7533 .elementor-element.elementor-element-4b602d2d{--gap:20px 20px;--row-gap:20px;--column-gap:20px;}.elementor-7533 .elementor-element.elementor-element-228bb3e8{--padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-7533 .elementor-element.elementor-element-17025ae7{--padding-top:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-7533 .elementor-element.elementor-element-33b99a94{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-7533 .elementor-element.elementor-element-25fe4b7e{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-7533 .elementor-element.elementor-element-291e233e{--flex-wrap:nowrap;}.elementor-7533 .elementor-element.elementor-element-fb409a0{--flex-wrap:nowrap;}}/* Start custom CSS for container, class: .elementor-element-216e8a7e */.elementor-7533 .elementor-element.elementor-element-216e8a7e{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
@media(max-width:1023.98px){.elementor-7533 .elementor-element.elementor-element-216e8a7e{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media(max-width:767px){.elementor-7533 .elementor-element.elementor-element-216e8a7e{grid-template-columns:repeat(1,minmax(0,1fr));gap:16px}}
.elementor-7533 .elementor-element.elementor-element-216e8a7e{margin-top:48px}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-291e233e */@media(max-width:639px){.elementor-7533 .elementor-element.elementor-element-291e233e{flex-direction:column;align-items:stretch;width:fit-content;margin-inline:auto}.elementor-7533 .elementor-element.elementor-element-291e233e .elementor-button{width:100%}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-2e32e2a1 *//* Nipuna - CSS shared by EVERY page: the closing CTA band (FinalCTA.tsx).

   It is prepended to each page's wrapper Custom CSS at build time rather
   than living in Site Settings, so no page depends on a Site Settings edit
   and the header/footer stay untouched. One source of truth here; the cost
   is a couple of KB repeated per page template, which nobody sees.

   Values resolved from dist/assets/index-*.css via tw_lookup.py. */

/* ---------- 14. Final CTA (sections/FinalCTA.tsx) ---------- */
.np-ctr,.np-ctr p,.np-ctr .elementor-heading-title{text-align:center}
.np-ctr .np-eyebrow{justify-content:center}
.np-cta-lead p{max-width:44ch;color:rgba(220,239,250,.8);margin-inline:auto}
/* Site Settings sets `.elementor-kit-N a{color:#006AA8}` at 0,1,1, which
   beats a bare .np-x at 0,1,0 -- these links were rendering blue-700 on the
   navy band instead of blue-100. The tag .elementor-7533 .elementor-element.elementor-element-2e32e2a1 matches that specificity
   and this file loads later. */
a.np-cta-link{font-size:15px;color:var(--blue-100);text-decoration:none;
  opacity:.8;transition:opacity .3s,color .3s}
a.np-cta-link:hover{opacity:1;color:#fff}
.np-dot{color:rgba(255,255,255,.3)}
/* the node-and-line motif from the Nipuna mark, entering from each edge */
.np-ov-node-l,.np-ov-node-r{position:absolute;top:50%;width:9%;
  transform:translateY(-50%);display:none;align-items:center;pointer-events:none}
@media(min-width:768px){.np-ov-node-l,.np-ov-node-r{display:flex}}
.np-ov-node-l{left:0}
.np-ov-node-r{right:0}
.np-ov-node-l::before,.np-ov-node-r::after{content:"";height:1px;flex:1;
  background:rgba(255,255,255,.15)}
.np-ov-node-l::after,.np-ov-node-r::before{content:"";width:10px;height:10px;
  border-radius:50%;background:var(--signal);
  box-shadow:0 0 0 4px var(--blue-950)}


/* Nipuna - CSS for the shared inner-page opener (sections/PageHero.tsx).

   Prepended to the wrapper Custom CSS of every page that opens with a
   PageHero. The home page does not, so it does not carry these rules and
   the audit's dead-.elementor-7533 .elementor-element.elementor-element-2e32e2a1 check stays meaningful there.

   Values resolved from dist/assets/index-*.css via tw_lookup.py. */

/* absolute inset-x-0 top-0 h-[28rem]
   bg-[radial-gradient(50%_60%_at_80%_0%,rgba(0,130,202,0.10),transparent_70%)] */
.np-ov-phero{inset:0 0 auto 0;height:448px;
  background:radial-gradient(50% 60% at 80% 0%,rgba(0,130,202,.10),transparent 70%)}
/* the same bg-grid as everywhere else, but PageHero asks for opacity-50 and
   the Site Settings rule is the .6 the homepage hero uses */
.np-ov-grid.np-ov-phero-grid{opacity:.5}


/* Nipuna - WORK PAGE styles. Travels inside nipuna-work.json as the wrapper
   container's Custom CSS, so importing the page brings its styling and Site
   Settings is not touched. Preceded at build time by common.css (the closing
   CTA band) and pagehero.css (the opener).

   Layout is real container settings -- the grids, the card surfaces, the
   figure's aspect ratio and tint. What is left here is typography, the
   decorative dot field and the hover states that reach inside a card.

   Values resolved from dist/assets/index-*.css via tw_lookup.py. */

/* ---------- 0. The Elementor defaults this page has to undo ---------- */
/* Identical to solutions.css and industries.css section 0. It is per-page
   rather than shared because every rule is scoped to `.elementor-7533 .elementor-element.elementor-element-2e32e2a1` -- this
   page's wrapper -- which is what keeps the reset off the hand-edited header
   and footer. */
/* The kit sets line-height:1.65em on <body>. In `em` it resolves there
   (16 x 1.65 = 26.4px) and inherits as a FIXED length, so an 11px label gets
   a 26.4px line box. Tailwind pins an unitless 1.5 on <html>, which inherits
   as a ratio; this restores that for the page. */
.elementor-7533 .elementor-element.elementor-element-2e32e2a1{line-height:1.5}
/* The kit's p{margin-block-end:50px} is scoped `.elementor-kit-N p` at 0,1,1,
   so a bare .np-x{margin:0} at 0,1,0 loses to it. Matched here without
   hard-coding the kit id, and placed FIRST so the per-element rules below
   still win on order. */
[class*="elementor-kit-"] p{margin-block-end:0}
/* Elementor falls back to 10px of container padding wherever the kit does not
   say otherwise, and this kit only zeroes it below 767px -- so from 768px up
   every container would gain 10px on all four sides. */
.elementor-7533 .elementor-element.elementor-element-2e32e2a1 .e-con{--container-default-padding-top:0px;
  --container-default-padding-right:0px;
  --container-default-padding-bottom:0px;
  --container-default-padding-left:0px}
/* Site Settings stretches EVERY button below 640px; this page has buttons
   only in the CTA band, which sets its own full width through a 0,4,0 rule. */
@media(max-width:639px){.np-btn,.np-btn .elementor-button{width:auto}}
/* container-site is px-5 sm:px-8 lg:px-12. Elementor has no 640 breakpoint,
   so its mobile padding covers 0-767 and the 640-767 band would sit at 20px
   instead of 32. Sections are the wrapper's own children, so they can be
   corrected here without a class (containers lose theirs on import). */
@media(min-width:640px) and (max-width:767px){
  .elementor-7533 .elementor-element.elementor-element-2e32e2a1 > .e-con{--padding-right:32px;--padding-left:32px}}

/* ---------- 1. The portfolio grid ---------- */
/* The cards are a separate document -- see portfolioitem.css. A Loop
   Grid renders a loop template, not markup this page owns, and the
   columns and gaps are the widget's own settings rather than rules.
   What is left here is the line Elementor prints in place of the
   cards when the portfolio type is empty. */
.np-pf-grid .e-loop-nothing-found-message{margin:0;padding:40px 0;
  color:var(--ink-500)}

/* ---------- 2. Products (data/solutions.ts) ---------- */
/* Same card as the one on the Solutions page apart from two swapped
   backgrounds -- paper card with white chips here, white card with paper
   chips there -- so the rules are repeated rather than shared. The card
   surface itself is a real container setting either way. */
/* text-eyebrow text-ink-400 */
/* The design's eyebrow is an inline <span> sharing the card's own line box.
   Blockifying it here would drop the 16px strut and lift the heading 2px. */
.np-prod-cat{font-family:var(--mono);font-size:12px;line-height:1;
  letter-spacing:.14em;text-transform:uppercase;font-weight:500;
  color:var(--ink-400)}
.np-prod-name .elementor-heading-title{margin-top:16px}          /* mt-4 */
.np-prod-desc p{margin-top:12px}                                 /* mt-3 */
/* mt-6 flex flex-wrap gap-2; chips rounded-sm border hairline bg-white
   px-2.5 py-1 font-mono text-[0.72rem] text-ink-600.
   margin:0 on the <li> is load-bearing: the doob theme sets
   `ul li,ol li{margin:10px 0}`, which would put 20px between chip rows. */
.np-stack{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;
  list-style:none}
.np-stack li{margin:0;border:1px solid var(--line);border-radius:6px;
  background:#fff;padding:4px 10px;font-family:var(--mono);font-size:11.52px;
  line-height:1.5;color:var(--ink-600)}/* End custom CSS */