.elementor-7698 .elementor-element.elementor-element-60b78bd{--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-7698 .elementor-element.elementor-element-35b89c5b{--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-7698 .elementor-element.elementor-element-5ffab57f{--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-7698 .elementor-element.elementor-element-61319648{--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-7698 .elementor-element.elementor-element-56b32456{width:auto;max-width:auto;}.elementor-7698 .elementor-element.elementor-element-30c5f4cb{width:auto;max-width:auto;}.elementor-7698 .elementor-element.elementor-element-3f30b65b{width:auto;max-width:auto;}.elementor-7698 .elementor-element.elementor-element-1c2aac7{--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;--gap:12px 12px;--row-gap:12px;--column-gap:12px;}.elementor-7698 .elementor-element.elementor-element-5450fb1b{--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-7698 .elementor-element.elementor-element-d0059de{--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-7698 .elementor-element.elementor-element-7d4dfea3{--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-7698 .elementor-element.elementor-element-41e43514{--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-7698 .elementor-element.elementor-element-2ff6ac28{--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-7698 .elementor-element.elementor-element-83072e{--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-7698 .elementor-element.elementor-element-83072e:not(.elementor-motion-effects-element-type-background), .elementor-7698 .elementor-element.elementor-element-83072e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#fbfbfc;}.elementor-7698 .elementor-element.elementor-element-3f06cb1a{--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:20px 20px;--row-gap:20px;--column-gap:20px;}.elementor-7698 .elementor-element.elementor-element-17392d76{--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-7698 .elementor-element.elementor-element-701c4070{--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-7698 .elementor-element.elementor-element-31b56b64{--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-7698 .elementor-element.elementor-element-3fc4d4fd{--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-7698 .elementor-element.elementor-element-3fc4d4fd:not(.elementor-motion-effects-element-type-background), .elementor-7698 .elementor-element.elementor-element-3fc4d4fd > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#002d47;}.elementor-7698 .elementor-element.elementor-element-652f7254{--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-7698 .elementor-element.elementor-element-32cfd2a5{--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-7698 .elementor-element.elementor-element-58375c50{--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-7698 .elementor-element.elementor-element-3fc4d4fd{--content-width:832px;}}@media(max-width:1024px){.elementor-7698 .elementor-element.elementor-element-35b89c5b{--padding-top:160px;--padding-bottom:80px;--padding-left:32px;--padding-right:32px;}.elementor-7698 .elementor-element.elementor-element-5450fb1b{--padding-top:96px;--padding-bottom:96px;--padding-left:32px;--padding-right:32px;}.elementor-7698 .elementor-element.elementor-element-3fc4d4fd{--padding-top:112px;--padding-bottom:112px;--padding-left:32px;--padding-right:32px;}.elementor-7698 .elementor-element.elementor-element-652f7254{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}}@media(max-width:767px){.elementor-7698 .elementor-element.elementor-element-35b89c5b{--padding-top:120px;--padding-bottom:56px;--padding-left:20px;--padding-right:20px;}.elementor-7698 .elementor-element.elementor-element-61319648{--flex-wrap:nowrap;}.elementor-7698 .elementor-element.elementor-element-1c2aac7{--flex-wrap:nowrap;}.elementor-7698 .elementor-element.elementor-element-5450fb1b{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-7698 .elementor-element.elementor-element-83072e{--padding-top:24px;--padding-bottom:24px;--padding-left:24px;--padding-right:24px;}.elementor-7698 .elementor-element.elementor-element-3fc4d4fd{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-7698 .elementor-element.elementor-element-652f7254{--gap:24px 24px;--row-gap:24px;--column-gap:24px;}.elementor-7698 .elementor-element.elementor-element-32cfd2a5{--flex-wrap:nowrap;}.elementor-7698 .elementor-element.elementor-element-58375c50{--flex-wrap:nowrap;}}/* Start custom CSS for container, class: .elementor-element-61319648 */.elementor-7698 .elementor-element.elementor-element-61319648{margin-top:20px}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1c2aac7 */.elementor-7698 .elementor-element.elementor-element-1c2aac7{margin-top:32px;flex-direction:column}
@media(min-width:640px){.elementor-7698 .elementor-element.elementor-element-1c2aac7{flex-direction:row;align-items:center}}
@media(max-width:639px){.elementor-7698 .elementor-element.elementor-element-1c2aac7 .elementor-button{width:100%}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7d4dfea3 */@media(min-width:1024px){.elementor-7698 .elementor-element.elementor-element-7d4dfea3{grid-column:span 7/span 7}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-2ff6ac28 */@media(min-width:1024px){.elementor-7698 .elementor-element.elementor-element-2ff6ac28{grid-column:span 5/span 5;align-self:start}}
@media(min-width:1024px){.elementor-7698 .elementor-element.elementor-element-2ff6ac28{position:sticky;top:112px}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-d0059de */.elementor-7698 .elementor-element.elementor-element-d0059de{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px}
@media(max-width:1023.98px){.elementor-7698 .elementor-element.elementor-element-d0059de{grid-template-columns:repeat(1,minmax(0,1fr));gap:48px}}
@media(max-width:767px){.elementor-7698 .elementor-element.elementor-element-d0059de{grid-template-columns:repeat(1,minmax(0,1fr));gap:40px}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-32cfd2a5 */@media(max-width:639px){.elementor-7698 .elementor-element.elementor-element-32cfd2a5{flex-direction:column;align-items:stretch;width:fit-content;margin-inline:auto}.elementor-7698 .elementor-element.elementor-element-32cfd2a5 .elementor-button{width:100%}}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-60b78bd *//* 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-7698 .elementor-element.elementor-element-60b78bd 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-7698 .elementor-element.elementor-element-60b78bd 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 - SINGLE JOB PAGE styles. Travels inside nipuna-job-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 glow and grid).

   Almost everything from section 3 down is undoing Simple Job Board and the
   doob theme rather than writing anything new. The plugin emits the role
   description and the application form as one block of its own markup --
   bootstrap float grid, .form-control inputs and all -- and the theme styles
   the bare tags an editor can type into a job post. sjb-form.fixture.html is
   that block captured off the live site, and preview.py renders it, so every
   rule here was measured against what the plugin really produces. */

/* ---------- 0. The Elementor defaults this page has to undo ---------- */
/* Identical to the other inner pages' section 0, scoped to `.elementor-7698 .elementor-element.elementor-element-60b78bd` --
   this page's wrapper -- which keeps the reset off the header and footer. */
.elementor-7698 .elementor-element.elementor-element-60b78bd{line-height:1.5}
[class*="elementor-kit-"] p{margin-block-end:0}
.elementor-7698 .elementor-element.elementor-element-60b78bd .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-7698 .elementor-element.elementor-element-60b78bd > .e-con{--padding-right:32px;--padding-left:32px}}

/* ---------- 1. The opener ---------- */
/* bg-grid at opacity-50, as the case study opener has it: .np-ov-grid in Site
   Settings is the .6 the homepage hero uses. */
.np-ov-grid.np-ov-phero-grid{opacity:.5}
/* the back link, same as the case study page's. Tag .elementor-7698 .elementor-element.elementor-element-60b78bd for 0,1,1:
   Site Settings' `.elementor-kit-N a{color:#006AA8}` beats a bare class. */
a.np-jb-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-jb-back:hover{color:var(--ink-900)}
a.np-jb-back svg{display:block;transition:transform .3s var(--ease)}
a.np-jb-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 appeared. */
.e-con .np-jb-back-host.elementor-widget{margin-block-end:24px}
/* the post title carries .np-h1 from Site Settings; only the measure is here,
   because a job title is short and should not stretch the full column */
.np-jb-title .elementor-heading-title{max-width:20ch}

/* the mono meta strip: employment, location, posted */
.np-jb-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-jb-meta .elementor-heading-title a{color:inherit;text-decoration:none}
.np-jb-sep .elementor-heading-title::before{content:"\00b7";margin-right:8px;
  color:var(--ink-300)}

/* ---------- 2. The heading and the At a glance card ---------- */
/* .np-rowlabel is the mono label from Site Settings */
.np-jb-h .elementor-heading-title{font-size:clamp(24px,20px + .7vw,32px)}
.np-jb-fact .elementor-heading-title{margin-top:6px;
  font-family:"Manrope",sans-serif;font-size:15px;line-height:1.5;
  font-weight:600;color:var(--ink-900)}
.np-jb-fact .elementor-heading-title a{color:inherit;text-decoration:none}
.np-jb-card-cta{margin-top:4px}
.np-jb-card-cta .elementor-button{width:100%}

/* ---------- 3. The plugin block: what to throw away ---------- */
/* Simple Job Board filters the_content, so the Post Content widget returns
   the plugin's whole job detail block: the title again, the type/location/
   date again with Font Awesome icons this design does not use, the
   description, and an empty features table. Only the description and the
   form are wanted -- the hero and the At a glance card already say the rest
   in the page's own type.

   .v2 is the plugin's layout version and this site is on it. It ships a .v1
   too; a rule for that would sit here dead, which audit.py reports, so if the
   layout is ever switched in the plugin's settings add .v1 here rather than
   carrying it speculatively. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .v2 > header,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .v2 > .job-features,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .v2 > .clearfix{display:none}

/* What is left is still wrapped in the plugin's own panel: .sjb-page carries
   20px of padding, .sjb-detail 30px of vertical margin, and .v2 is a
   white-backgrounded float. On a listing page that panel is the card; here it
   is a box inside a box, and its inset pushed the description 20px out of
   line with the "About the role" heading above it. Flattened to nothing so
   the plugin's content sits in the page's own column. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .sjb-page,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .sjb-detail,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .list-data,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .v2,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .jobpost-form{margin:0;padding:0;float:none;width:auto;
  background:none;border:0;box-shadow:none}

/* ---------- 4. The role description ---------- */
/* Everything below is a tag an editor can produce from the WordPress
   toolbar, and every one of them is styled by the doob theme otherwise --
   `h1..h6,p,ol,ul,table{margin-bottom:20px}` and `ul li,ol li{margin:10px 0}`
   both reach in here. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description{margin-top:24px}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description p{margin:0 0 20px;font-size:16px;
  line-height:1.65;color:var(--ink-600)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description h2,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description h3,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description h4{font-family:"Manrope",sans-serif;
  letter-spacing:-.012em;font-weight:600;color:var(--ink-900);
  margin:32px 0 12px}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description h2{font-size:22px;line-height:1.25}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description h3{font-size:18px;line-height:1.35}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description h4{font-size:16px;line-height:1.4}
/* an unordered list gets the design's small dot rather than a disc bullet */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description ul{margin:0 0 20px;padding:0;list-style:none}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description ul li{position:relative;margin:0 0 10px;
  padding-left:22px;font-size:16px;line-height:1.65;color:var(--ink-600)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description ul li::before{content:"";position:absolute;
  left:4px;top:11px;width:5px;height:5px;border-radius:50%;
  background:var(--ink-300)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description ol{margin:0 0 20px;padding-left:20px}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description ol li{margin:0 0 10px;font-size:16px;
  line-height:1.65;color:var(--ink-600)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description a{color:var(--blue-700);
  text-decoration:underline;text-underline-offset:2px}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description strong,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description 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 landed on top of the first word, and
   nothing else on this site is set in italic */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description blockquote{position:relative;margin:24px 0;
  padding:0 0 0 20px;border-left:2px solid var(--blue-600);background:none;
  font-family:inherit;font-size:16px;line-height:1.65;font-style:normal;
  color:var(--ink-700)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description blockquote::before,
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description blockquote::after{content:none}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description blockquote p{margin:0;color:inherit;
  font-style:normal}
/* an editor can drop in a full-size photograph; without this it runs out of
   the column */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description img{max-width:100%;height:auto;
  border-radius:10px}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .job-description > *:last-child{margin-bottom:0}

/* ---------- 5. The application form ---------- */
/* The form follows the description in the same column, so it gets a rule
   above it and a heading -- the plugin's own <h3>Apply For This Job</h3>,
   restyled rather than hidden. Hiding it and adding ours would put a second
   heading on the page that an editor cannot find in the panel. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail #sjb-application-form{margin-top:48px;padding-top:40px;
  border-top:1px solid var(--line)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail #sjb-application-form > h3{margin:0 0 20px;
  font-family:"Manrope",sans-serif;font-size:clamp(24px,20px + .7vw,32px);
  line-height:1.15;letter-spacing:-.02em;font-weight:600;color:var(--ink-900)}

/* The plugin lays each field out as TWO sibling bootstrap columns -- a
   .col-md-3 holding the label and a .col-md-9 holding the input -- with a
   .clearfix between pairs. They are siblings, not nested, so there is no way
   to put a label above its own field in a two-column form without addressing
   them by position; and their position moves the moment an admin adds or
   removes a field in the plugin's settings.

   So the form is one column: every cell full width, in source order, which is
   label, field, label, field. It survives the field list changing, which an
   nth-child layout would not. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .row{display:flex;flex-direction:column;margin:0;width:100%}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .row > div{width:100%;max-width:none;float:none;padding:0;
  flex:0 0 auto}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .row .clearfix{display:none}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .form-group{margin:0 0 20px}

/* Field: label above, the same 14px/600 the contact form uses. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail label{display:block;margin:0 0 8px;font-size:14px;
  line-height:1.5;font-weight:600;color:var(--ink-800)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail label .required{margin-left:3px;color:var(--signal);
  font-weight:400}

/* `.elementor-7698 .elementor-element.elementor-element-60b78bd` is load-bearing, exactly as on the contact page. Site Settings >
   Theme Style > Form Fields compiles to a .elementor-7698 .elementor-element.elementor-element-60b78bd list including

       .elementor-kit-5 input:not([type="button"]):not([type="submit"])

   which is 0,3,1 -- each :not() contributes its argument's specificity. And
   bootstrap's own .form-control is in scope here too. Prefixing with
   `.elementor-7698 .elementor-element.elementor-element-60b78bd` takes these to 0,5,0, which beats both. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .form-control{width:100%;height:auto;border-radius:10px;
  border:1px solid var(--line);background:#fff;padding:12px 16px;
  box-shadow:none;font-family:"Manrope",sans-serif;font-size:15px;
  line-height:1.5;color:var(--ink-900);
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .form-control::placeholder{color:var(--ink-400);
  opacity:1}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .form-control:focus{border-color:var(--blue-600);
  outline:none;box-shadow:0 0 0 4px rgba(0,130,202,.15)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail textarea.form-control{resize:vertical;min-height:132px}

/* The resume field. A file input cannot be restyled, only its button can --
   so the input keeps the field's box and the button inside it is made to
   look like the design's small secondary button. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail input[type="file"].form-control{padding:10px 12px;
  font-size:14px;color:var(--ink-500);cursor:pointer}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail input[type="file"]::file-.elementor-7698 .elementor-element.elementor-element-60b78bd-button{margin-right:12px;
  border:1px solid var(--line);border-radius:8px;background:var(--paper);
  padding:7px 14px;font-family:"Manrope",sans-serif;font-size:13px;
  font-weight:600;color:var(--ink-900);cursor:pointer;
  transition:background .3s var(--ease),border-color .3s var(--ease)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail input[type="file"]::file-.elementor-7698 .elementor-element.elementor-element-60b78bd-button:hover{background:#fff;
  border-color:var(--line-strong)}

/* The plugin's inline validation messages. It hides them in its own CSS at
   0,6,0 and reveals them from JavaScript, so `display` is deliberately not
   set here -- setting it would show every one of them on page load. Only the
   appearance is ours. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .validity-note{margin-top:6px;font-size:13px;line-height:1.5;
  font-style:normal;color:var(--signal)}

/* Submit. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail #sjb-form-padding-button{margin:8px 0 0}
/* the plugin's own `button.btn.btn-app-modal-close{display:block}` is 0,2,1,
   so a two-class rule loses to it. It does hide this itself on a single job
   page via a body class -- this is the belt to that braces, and it is a modal
   control with no modal here. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail button.btn.btn-app-modal-close{display:none}
/* the plugin floats the submit right and gives it its own margins, from a
   0,6,0 .elementor-7698 .elementor-element.elementor-element-60b78bd -- matched here, and later in the cascade, so both are
   undone */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .btn.app-submit{display:inline-flex;align-items:center;
  justify-content:center;float:none;margin:0;
  border:1px solid var(--ink-900);border-radius:999px;
  background:var(--ink-900);padding:14px 26px;
  font-family:"Manrope",sans-serif;font-size:15px;line-height:1;
  font-weight:600;letter-spacing:-.01em;color:#fff;box-shadow:none;
  transition:background .3s var(--ease),border-color .3s var(--ease)}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .btn.app-submit:hover{background:var(--blue-700);
  border-color:var(--blue-700);color:#fff}
@media(max-width:639px){
  .elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .btn.app-submit{width:100%}}

/* ---------- 6. The phone field ---------- */
/* Simple Job Board runs intl-tel-input over the phone input, and bundles that
   library's CSS inside its own stylesheet. The library absolutely positions a
   country flag over the left of the field and compensates with

       .iti--allow-dropdown input{padding-left:52px}

   which is 0,1,1 -- and the field rule above is 0,5,0, so it won the padding
   and the flag ended up sitting on top of the number. Restored at a
   specificity that survives, on the phone field alone.

   The flag box is given the field's own left corner radius and centred: the
   library sets `padding:16px 6px 0 8px` on it, which assumes a field height
   this design does not use. */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .iti--allow-dropdown input.form-control{
  padding-left:52px}
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail .iti__selected-flag{align-items:center;padding:0 8px;
  border-radius:10px 0 0 10px}

/* where the plugin writes "Application submitted" or an error */
.elementor-7698 .elementor-element.elementor-element-60b78bd .np-jb-detail #jobpost_form_status{margin-top:16px}/* End custom CSS */