.elementor-7907 .elementor-element.elementor-element-28f9eadf{--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-7907 .elementor-element.elementor-element-20d2e173{--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:64px;--padding-left:48px;--padding-right:48px;}.elementor-7907 .elementor-element.elementor-element-4dd1622a{--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-7907 .elementor-element.elementor-element-6d544d9b{--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;--align-items:center;--gap:8px 8px;--row-gap:8px;--column-gap:8px;--flex-wrap:wrap;}.elementor-7907 .elementor-element.elementor-element-2aaadf6f{width:auto;max-width:auto;}.elementor-7907 .elementor-element.elementor-element-5f893f0e{width:auto;max-width:auto;}.elementor-7907 .elementor-element.elementor-element-66cadb53{--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:96px;--padding-bottom:96px;--padding-left:48px;--padding-right:48px;}.elementor-7907 .elementor-element.elementor-element-1d0fa9e1{--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-7907 .elementor-element.elementor-element-7fccd208{--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-7907 .elementor-element.elementor-element-75637a59{--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-7907 .elementor-element.elementor-element-51802720{--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-7907 .elementor-element.elementor-element-5ca0b626{--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-7907 .elementor-element.elementor-element-60d4752c{--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-7907 .elementor-element.elementor-element-529a9fba{--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:28px;--padding-bottom:28px;--padding-left:28px;--padding-right:28px;}.elementor-7907 .elementor-element.elementor-element-529a9fba:not(.elementor-motion-effects-element-type-background), .elementor-7907 .elementor-element.elementor-element-529a9fba > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#ffffff;}.elementor-7907 .elementor-element.elementor-element-77f9496{--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:16px 16px;--row-gap:16px;--column-gap:16px;}.elementor-7907 .elementor-element.elementor-element-7ed8d426{--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-7907 .elementor-element.elementor-element-7ed8d426:not(.elementor-motion-effects-element-type-background), .elementor-7907 .elementor-element.elementor-element-7ed8d426 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#ffffff;}.elementor-7907 .elementor-element.elementor-element-116945f8{--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-7907 .elementor-element.elementor-element-731f5987{--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:space-between;--align-items:flex-end;--gap:32px 32px;--row-gap:32px;--column-gap:32px;}.elementor-7907 .elementor-element.elementor-element-65ff56e7{--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-7907 .elementor-element.elementor-element-2f43929b{--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-7907 .elementor-element.elementor-element-220ee44a{--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-7907 .elementor-element.elementor-element-4039c2b2{--grid-row-gap:0px;--grid-column-gap:0px;}.elementor-7907 .elementor-element.elementor-element-462bbfc7{--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-7907 .elementor-element.elementor-element-462bbfc7:not(.elementor-motion-effects-element-type-background), .elementor-7907 .elementor-element.elementor-element-462bbfc7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#002d47;}.elementor-7907 .elementor-element.elementor-element-123bf584{--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-7907 .elementor-element.elementor-element-571f04eb{--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-7907 .elementor-element.elementor-element-670cce25{--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-7907 .elementor-element.elementor-element-462bbfc7{--content-width:832px;}}@media(max-width:1024px){.elementor-7907 .elementor-element.elementor-element-20d2e173{--padding-top:160px;--padding-bottom:64px;--padding-left:32px;--padding-right:32px;}.elementor-7907 .elementor-element.elementor-element-66cadb53{--padding-top:80px;--padding-bottom:80px;--padding-left:32px;--padding-right:32px;}.elementor-7907 .elementor-element.elementor-element-7fccd208{--padding-top:96px;--padding-bottom:96px;--padding-left:32px;--padding-right:32px;}.elementor-7907 .elementor-element.elementor-element-7ed8d426{--padding-top:96px;--padding-bottom:96px;--padding-left:32px;--padding-right:32px;}.elementor-7907 .elementor-element.elementor-element-65ff56e7{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-7907 .elementor-element.elementor-element-462bbfc7{--padding-top:112px;--padding-bottom:112px;--padding-left:32px;--padding-right:32px;}.elementor-7907 .elementor-element.elementor-element-123bf584{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}}@media(max-width:767px){.elementor-7907 .elementor-element.elementor-element-20d2e173{--padding-top:120px;--padding-bottom:48px;--padding-left:20px;--padding-right:20px;}.elementor-7907 .elementor-element.elementor-element-6d544d9b{--flex-wrap:nowrap;}.elementor-7907 .elementor-element.elementor-element-66cadb53{--padding-top:56px;--padding-bottom:56px;--padding-left:20px;--padding-right:20px;}.elementor-7907 .elementor-element.elementor-element-7fccd208{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-7907 .elementor-element.elementor-element-529a9fba{--padding-top:24px;--padding-bottom:24px;--padding-left:24px;--padding-right:24px;}.elementor-7907 .elementor-element.elementor-element-7ed8d426{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-7907 .elementor-element.elementor-element-731f5987{--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:stretch;}.elementor-7907 .elementor-element.elementor-element-65ff56e7{--gap:20px 20px;--row-gap:20px;--column-gap:20px;}.elementor-7907 .elementor-element.elementor-element-4039c2b2{--grid-row-gap:0px;}.elementor-7907 .elementor-element.elementor-element-462bbfc7{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-7907 .elementor-element.elementor-element-123bf584{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-7907 .elementor-element.elementor-element-571f04eb{--flex-wrap:nowrap;}.elementor-7907 .elementor-element.elementor-element-670cce25{--flex-wrap:nowrap;}}/* Start custom CSS for container, class: .elementor-element-6d544d9b */.elementor-7907 .elementor-element.elementor-element-6d544d9b{margin-top:20px}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1d0fa9e1 */.elementor-7907 .elementor-element.elementor-element-1d0fa9e1{overflow:hidden;border-radius:16px;border:1px solid var(--line);background:#f4f6f9}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-51802720 */@media(min-width:1024px){.elementor-7907 .elementor-element.elementor-element-51802720{grid-column:span 8/span 8}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-60d4752c */@media(min-width:1024px){.elementor-7907 .elementor-element.elementor-element-60d4752c{grid-column:span 4/span 4;align-self:start}}
@media(min-width:1024px){.elementor-7907 .elementor-element.elementor-element-60d4752c{position:sticky;top:112px}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-75637a59 */.elementor-7907 .elementor-element.elementor-element-75637a59{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px}
@media(max-width:1023.98px){.elementor-7907 .elementor-element.elementor-element-75637a59{grid-template-columns:repeat(1,minmax(0,1fr));gap:48px}}
@media(max-width:767px){.elementor-7907 .elementor-element.elementor-element-75637a59{grid-template-columns:repeat(1,minmax(0,1fr));gap:40px}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-65ff56e7 */.elementor-7907 .elementor-element.elementor-element-65ff56e7{width:auto;flex:0 1 auto}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-2f43929b */.elementor-7907 .elementor-element.elementor-element-2f43929b{width:auto;flex:0 0 auto}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-220ee44a */.elementor-7907 .elementor-element.elementor-element-220ee44a{margin-top:40px}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-571f04eb */@media(max-width:639px){.elementor-7907 .elementor-element.elementor-element-571f04eb{flex-direction:column;align-items:stretch;width:fit-content;margin-inline:auto}.elementor-7907 .elementor-element.elementor-element-571f04eb .elementor-button{width:100%}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-28f9eadf *//* 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-7907 .elementor-element.elementor-element-28f9eadf 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 - SINGLE BLOG POST styles. Travels inside nipuna-blog-single.json
   as the wrapper container's Custom CSS, so importing the template brings its
   styling.

   Preceded at build time by common.css (the closing band) and pagehero.css
   (the opener's grid).

   Section 4 is the article body, and nearly all of it is undoing the doob
   theme rather than writing anything new. Everything an editor can produce
   from the WordPress toolbar is a bare tag, and the theme styles bare tags:
   `h1..h6,p,ol,ul,table{margin-bottom:20px}`, `ul li,ol li{margin:10px 0}`,
   a large blue quote glyph on blockquote::before, and italics on the quote
   itself. The rules are the ones proved against the real thing on the single
   job page; what changed is the class they hang off. */

/* ---------- 0. The Elementor defaults this page has to undo ---------- */
/* Identical to the other inner pages' section 0, scoped to `.elementor-7907 .elementor-element.elementor-element-28f9eadf` --
   this page's wrapper -- which keeps the reset off the header and footer. */
.elementor-7907 .elementor-element.elementor-element-28f9eadf{line-height:1.5}
[class*="elementor-kit-"] p{margin-block-end:0}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .e-con{--container-default-padding-top:0px;
  --container-default-padding-right:0px;
  --container-default-padding-bottom:0px;
  --container-default-padding-left:0px}
@media(max-width:639px){.np-btn,.np-btn .elementor-button{width:auto}}
@media(min-width:640px) and (max-width:767px){
  .elementor-7907 .elementor-element.elementor-element-28f9eadf > .e-con{--padding-right:32px;--padding-left:32px}}

/* ---------- 1. The opener ---------- */
/* bg-grid at opacity-50. The opener has the grid but not PageHero's glow, as
   the case study pages do, so pagehero.css is not loaded and its one rule
   that this page can use is repeated here instead -- carrying the whole file
   would bring .np-ov-phero with it, dead. */
.np-ov-grid.np-ov-phero-grid{opacity:.5}
/* the back link, same as the case study page's. Tag .elementor-7907 .elementor-element.elementor-element-28f9eadf for 0,1,1:
   Site Settings' `.elementor-kit-N a{color:#006AA8}` beats a bare class. */
a.np-bp-back{display:inline-flex;align-items:center;gap:6px;font-size:14px;
  line-height:1.5;font-weight:500;color:var(--ink-500);text-decoration:none;
  transition:color .3s var(--ease)}
a.np-bp-back:hover{color:var(--ink-900)}
a.np-bp-back svg{display:block;transition:transform .3s var(--ease)}
a.np-bp-back:hover svg{transform:translateX(-2px)}
/* .e-con carries this to 0,3,0. Elementor zeroes widget spacing inside a
   container with `.e-con .elementor-widget.elementor-widget` at 0,3,0, so a
   two-class rule loses the tie and the gap never appears. */
.e-con .np-bp-back-host.elementor-widget{margin-block-end:24px}
/* the headline carries .np-h1 from Site Settings. A post title is a sentence
   rather than a label, so it gets a measure -- without one a short title
   still stretches to 1216px and the line breaks land badly. */
.np-bp-title .elementor-heading-title{max-width:22ch}

/* the mono meta strip: category, then the date */
.np-bp-meta .elementor-heading-title{margin:0;font-family:var(--mono);
  font-size:11.52px;line-height:1.5;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-400)}
/* post-terms renders each term as a link to its archive; the kit would make
   those blue */
.np-bp-meta .elementor-heading-title a{color:inherit;text-decoration:none}
.np-bp-cat .elementor-heading-title,
.np-bp-cat .elementor-heading-title a{color:var(--blue-700)}
.np-bp-sep .elementor-heading-title::before{content:"\00b7";margin-right:8px;
  color:var(--ink-300)}

/* ---------- 2. The image band ---------- */
/* A photograph, not a product screenshot, so it fills the frame instead of
   sitting inset the way a case study shot does. */
.np-bp-shot img{display:block;width:100%;max-height:440px;object-fit:cover}

/* ---------- 3. The card beside the article ---------- */
.np-bp-aside-copy p{font-size:15px;line-height:1.6;color:var(--ink-600)}
.np-bp-aside-cta .elementor-button{width:100%}

/* ---------- 4. The article body ---------- */
/* A measure. The column is eight of twelve, which is 790px at 1536 -- wide
   enough to run about 95 characters to the line, and long-form text stops
   being readable well before that. 600px is a measured 74 characters at the
   17px below, which is inside the 60-75 the rest of this design keeps to
   (`max-w-[60ch]` on every lead paragraph in the React source).

   It sits on the whole body rather than on the paragraphs so the headings,
   lists, code blocks and tables line up with the text instead of overhanging
   it.

   width:100% is not redundant with it. The body is a flex item, so with an
   auto width it sizes to its widest CHILD -- and the <pre> below is
   white-space:pre, whose widest child is one unbroken code line. Measured at
   560px: the column is 502 and the body came out 858, clipped rather than
   scrolled, so a third of every paragraph was cut off the right of the page.
   Pinning the width to the column makes the code line overflow the <pre>,
   which has overflow-x:auto and scrolls, and nothing else moves. */
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body{width:100%;max-width:600px}

/* `.elementor-7907 .elementor-element.elementor-element-28f9eadf` prefixes throughout. The kit reaches these tags at 0,1,1
   (`.elementor-kit-5 p`), the theme at 0,0,1 but LATER in the cascade, and
   bootstrap is loaded on every page of this site -- prefixing takes each
   rule to 0,3,0 or better, which is what the single job page needed against
   the same three. */
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body p{margin:0 0 20px;font-size:17px;line-height:1.7;
  color:var(--ink-700)}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body h2,
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body h3,
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body h4{font-family:"Manrope",sans-serif;
  letter-spacing:-.015em;font-weight:600;color:var(--ink-900);
  margin:40px 0 14px}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body h2{font-size:clamp(24px,20px + .7vw,30px);
  line-height:1.2}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body h3{font-size:clamp(19px,17px + .35vw,22px);
  line-height:1.3}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body h4{font-size:17px;line-height:1.4}
/* an unordered list gets the design's small dot rather than a disc bullet */
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body ul{margin:0 0 20px;padding:0;list-style:none}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body ul li{position:relative;margin:0 0 10px;padding-left:22px;
  font-size:17px;line-height:1.7;color:var(--ink-700)}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body ul li::before{content:"";position:absolute;left:4px;
  top:12px;width:5px;height:5px;border-radius:50%;background:var(--ink-300)}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body ol{margin:0 0 20px;padding-left:20px}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body ol li{margin:0 0 10px;font-size:17px;line-height:1.7;
  color:var(--ink-700)}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body a{color:var(--blue-700);text-decoration:underline;
  text-underline-offset:2px}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body strong,
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body b{font-weight:600;color:var(--ink-900)}
/* the doob theme draws a large blue quote glyph as blockquote::before and
   italicises the text -- the glyph lands on top of the first word, and
   nothing else on this site is set in italic */
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body blockquote{position:relative;margin:28px 0;
  padding:0 0 0 22px;border-left:2px solid var(--blue-600);background:none;
  font-family:inherit;font-size:19px;line-height:1.6;font-style:normal;
  color:var(--ink-800)}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body blockquote::before,
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body blockquote::after{content:none}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body blockquote p{margin:0;font-size:inherit;color:inherit;
  font-style:normal}
/* an editor can drop in a full-size photograph; without this it runs out of
   the column */
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body img{max-width:100%;height:auto;border-radius:10px}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body figure{margin:28px 0}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body figcaption{margin-top:10px;font-family:var(--mono);
  font-size:11.52px;line-height:1.5;letter-spacing:.08em;color:var(--ink-400)}
/* code from the toolbar's Preformatted and Code blocks. Two of the five live
   posts are Magento and WordPress walkthroughs, so this is not speculative.

   Every declaration here carries !important, and that is not defensive
   habit -- the doob theme ships

       pre,pre.wp-block-code{font-family:"Courier 10 Pitch"!important;
         font-size:15px!important;margin:40px 0!important;
         padding:20px!important;white-space:pre-wrap!important;
         word-wrap:break-word!important;color:var(--color-body)!important}

   so a rule without it matched the element, passed every check, and was
   dead on the page: Courier at 15px on a grey-on-grey background with the
   lines folded. Only the declarations the theme marks are matched; the
   background, border and radius win on specificity and are left alone.

   white-space:pre rather than the theme's pre-wrap because folding a code
   line moves its indentation, which is the one thing a code block exists to
   preserve. The box scrolls sideways; the page does not. */
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body pre{white-space:pre!important;overflow-x:auto;
  margin:0 0 20px!important;padding:18px 20px!important;
  border:1px solid var(--line);border-radius:12px;background:var(--paper);
  font-family:var(--mono)!important;font-size:13.5px!important;
  line-height:1.6!important;color:var(--ink-800)!important}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body code{font-family:var(--mono);font-size:.9em;
  color:var(--ink-800)}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body :not(pre) > code{padding:2px 6px;border-radius:6px;
  background:var(--paper);border:1px solid var(--line)}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body pre code{padding:0;border:0;background:none}
/* `table,.wp-block-calendar{font-size:16px!important}` is the theme again --
   only the size, so only the size is matched here. */
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body table{width:100%;margin:0 0 20px;border-collapse:collapse;
  font-size:15px!important;line-height:1.6}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body th,
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body td{padding:10px 12px;border:1px solid var(--line);
  text-align:left;color:var(--ink-700)}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body th{font-weight:600;color:var(--ink-900);
  background:var(--paper)}
.elementor-7907 .elementor-element.elementor-element-28f9eadf .np-bp-body > *:last-child{margin-bottom:0}

/* ---------- 5. More from the team ---------- */
/* The rows come from the loop item, which carries its own stylesheet, and
   the rule above the first one is a container setting rather than a rule.
   What is left is the line Elementor prints in place of the rows when a post
   has nothing related to it -- the first post published on a new category
   will see it. */
/* The rule above the first row, as on the listing: each row draws its own
   hairline underneath, so the opening one belongs to the grid. */
.np-bp-more .elementor-loop-container{border-top:1px solid var(--line)}

.np-bp-more .e-loop-nothing-found-message{margin:0;padding:40px 0;
  color:var(--ink-500)}/* End custom CSS */