/* NextJobPortal responsive overrides - layout only, no content or functionality changes. Loaded after the main stylesheet. Desktop widths above 992px are untouched except for global no-overflow safeguards. */
html,body{max-width:100%;overflow-x:hidden;overflow-x:clip;}
body{min-width:0;}
img,video,iframe,svg{max-width:100%;height:auto;}
table{max-width:100%;}
h1,h2,h3,h4,h5,h6,p,a,li,span,td,th{overflow-wrap:break-word;word-break:break-word;}
.container,.container-fluid{max-width:100%;}
.row{margin-left:0;margin-right:0;}
.row>*{min-width:0;}
input,select,textarea,button{max-width:100%;min-width:0;}
form{max-width:100%;}
.btn,.page-link{min-height:48px;display:inline-flex;align-items:center;justify-content:center;}



.pagination{flex-wrap:wrap;gap:4px;}
.pagination .page-item{flex:0 0 auto;}
@media (max-width:1024px){
.display-1{font-size:clamp(2rem,6vw,3.5rem);}
.display-2{font-size:clamp(1.9rem,5.5vw,3rem);}
.display-3{font-size:clamp(1.7rem,5vw,2.6rem);}
.display-4{font-size:clamp(1.6rem,4.5vw,2.4rem);}
section{padding-left:1rem;padding-right:1rem;}
}
@media (max-width:991.98px){
.container{padding-left:1rem;padding-right:1rem;}





main .row>[class*='col-']{flex:0 0 100%;max-width:100%;}
.card{width:100%;}
.card-body{padding:1rem;}
.d-flex,.flex-row{flex-wrap:wrap;}
form .row>[class*='col-']{margin-bottom:.5rem;}
.form-control,.form-select{font-size:1rem;min-height:44px;}
.btn{white-space:normal;text-align:center;}
.pagination .page-link{padding:.375rem .6rem;font-size:.9rem;}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;}
table{display:block;overflow-x:auto;}
footer .row>[class*='col-']{margin-bottom:1rem;} html body nav.navbar~main section.home-hero{padding-top:40px !important;padding-bottom:40px !important;} html body nav.navbar{padding-top:8px!important;padding-bottom:8px!important;} html body nav.navbar .navbar-brand img{height:56px!important;max-height:56px!important;} html body nav.navbar~main section.home-hero h1.home-hero__title{font-size:28px!important;line-height:1.25!important;} html body nav.navbar~main section.home-hero .home-hero__search-btn{padding-top:9px!important;padding-bottom:9px!important;} html body nav.navbar~main section.home-hero.home-hero .home-hero__pills{gap:14px!important;} html body nav.navbar~main section.home-hero.home-hero .home-pill{padding:9px 16px!important;} html body nav.navbar~main section.home-hero.home-hero .home-hero__popular-label{margin:16px 0 14px!important;}
}
@media (max-width:767.98px){
body{font-size:14px;}


h2{font-size:clamp(1.6rem,6.5vw,2rem);}
h3{font-size:clamp(1.35rem,5.5vw,1.6rem);}
section{padding-top:1.5rem!important;padding-bottom:1.5rem!important;}
.row>.col-6{flex:0 0 50%;max-width:50%;}
form{width:100%;}
form input,form select,form textarea{width:100%;}
form .btn,form button[type='submit']{width:100%;min-height:40px;}html body nav.navbar .navbar-brand img{height:48px!important;max-height:48px!important;}html body nav.navbar .navbar-toggler{min-height:38px!important;min-width:38px!important;padding:6px 8px!important;margin-left:auto!important;flex-shrink:0!important;}html body nav.navbar,html body nav.navbar>.container{flex-wrap:wrap!important;}html body nav.navbar .navbar-collapse{position:static!important;left:auto!important;transform:none!important;width:100%!important;flex-basis:100%!important;text-align:left!important;}html body nav.navbar .navbar-nav{flex-direction:column!important;flex-wrap:wrap!important;justify-content:flex-start!important;align-items:stretch!important;width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;text-align:left!important;}html body nav.navbar .navbar-brand .navbar-brand__name{font-size:17px!important;max-width:calc(100vw - 190px)!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}html body nav.navbar{padding-top:6px!important;padding-bottom:6px!important;} html body nav.navbar .navbar-nav .header-btn{display:block!important;height:auto!important;padding:.5rem .75rem!important;border:0!important;border-radius:0!important;background:transparent!important;color:#0C2D63!important;font-size:16px!important;font-weight:400!important;text-align:left!important;} 
.input-group{flex-wrap:wrap;}
.input-group>*{flex:1 1 100%;border-radius:.375rem!important;margin-bottom:.5rem;}
.btn{padding:.65rem 1rem;font-size:1rem;}
.card-title{font-size:1.2rem;line-height:1.4;}
.pagination{justify-content:center;}
.alert{word-break:break-word;}
footer .d-flex{flex-direction:column;align-items:flex-start!important;}
}
@media (max-width:400px){

.container{padding-left:.75rem;padding-right:.75rem;}
.row>.col-6{flex:0 0 100%;max-width:100%;}
.btn,.page-link{min-height:40px;}
.pagination .page-link{padding:.3rem .45rem;font-size:.85rem;}
}
@media (min-width:1400px){
img,video,iframe{max-width:100%;}
}
/* End of responsive overrides. */ @media(min-width:1200px){main .container,footer .container{max-width:1320px;margin-left:auto;margin-right:auto;}}
/* Blog article body tightening: line-height 1.48, margin-bottom 0.6rem. Headings, font family and font sizes unchanged. */
main article p{line-height:1.48;margin-bottom:.6rem;}
main article p:empty{margin-bottom:0;}
main article p{line-height:1.48 !important;margin-bottom:.6rem !important;}main article p:not(.no-tighten){line-height:1.48;margin-bottom:.6rem;}main article p:has(>br:only-child){margin-bottom:0;line-height:0;}

/* === NextJobPortal Navy/Cyan Theme (official logo colours) - CSS only, no layout or content changes === */
:root{--njp-navy:#0C2D63;--njp-cyan:#1A9FD6;}
h1,h2,h3{color:#0C2D63;}
header h1,header h2,header h3,footer h1,footer h2,footer h3,.site-header h1,.site-header h2,.site-header h3,.site-footer h1,.site-footer h2,.site-footer h3{color:#0C2D63;}
a:hover,a:focus{color:#0C2D63;}
.btn-primary,.btn.btn-primary,button.btn-primary,input[type="submit"].btn-primary,.search-btn,button[type="submit"].btn-primary,form button[type="submit"],.btn-search{ background-color:#1A9FD6!important;border-color:#1A9FD6!important;color:#ffffff!important;}
.btn-primary:hover,.btn.btn-primary:hover,button.btn-primary:hover,.search-btn:hover{ background-color:#0C2D63!important;border-color:#0C2D63!important;color:#ffffff!important;}
.text-primary,.highlight,.accent{color:#1A9FD6!important;}
/* === End Navy/Cyan Theme === */


/* === Navy/Cyan Theme - search and primary button gradient override === */
button[type="submit"],input[type="submit"],.btn-primary,.btn.btn-primary,.search-btn,.btn-search{ background:#1A9FD6!important;background-image:none!important;border-color:#1A9FD6!important;color:#ffffff!important;}
/* === End gradient override === */


/* === Header logo alignment - remove the logo link's one-off left padding so the header uses only the standard container's equal left/right padding === */
header .navbar-brand, nav .navbar-brand, .navbar-brand { padding-left: 0 !important; }
/* === End header logo alignment === */


.home-hero__lead {
      text-align: center !important;
        margin-left: auto !important;
          margin-right: auto !important;
}        
      
/* MOBILE HERO ORDER FIX */
@media (max-width:767.98px){.home-hero .row{display:flex;flex-direction:column;}.home-hero .row>[class*=col-]{flex:0 0 auto;}.home-hero .container .row>.col-lg-10{order:1;}.home-hero .container .row>.col-12{order:2;}}
/* === HERO H1 CONTRAST FIX (2026-11-02) - hero H1 must stay WHITE on the dark hero background, accent span stays cyan === */
.home-hero h1,
.home-hero__title,
h1.home-hero__title {
  color: #ffffff !important;
}
.home-hero h1 span,
.home-hero__title span,
h1.home-hero__title span {
  color: #1A9FD6 !important;
}
/* === End HERO H1 CONTRAST FIX === */

/* === HERO H1 ACCENT - specific .accent selector, same cyan/teal as above === */
.home-hero h1 .accent,
.home-hero__title .accent,
h1.home-hero__title .accent {
  color: #1A9FD6 !important;
}
/* === End HERO H1 ACCENT === */

/* === HERO H1 ACCENT - highest specificity === */
html body main section.home-hero h1.home-hero__title span.accent,
html body section.home-hero h1.home-hero__title span.accent {
  color: #1A9FD6 !important;
}
/* === End HERO H1 ACCENT - highest specificity === */

/*TALENT-SEARCH-WIDTH-FIX*/
html body .home-hero .col-12{width:75%;max-width:900px;margin-left:auto;margin-right:auto;position:static;margin-top:1.25rem;flex:0 1 75%}
html body .home-hero form{width:100%;max-width:900px;margin-left:auto;margin-right:auto;position:static;box-sizing:border-box}
html body .home-hero form input{flex:1 1 auto;min-width:0;width:auto;box-sizing:border-box}
html body .home-hero form button{flex:0 0 auto;width:auto;max-width:45%;position:static;white-space:nowrap;box-sizing:border-box}
@media(max-width:767.98px){html body .home-hero .col-12{width:92%;flex:0 1 92%;margin-top:1.25rem;position:static}html body .home-hero form{width:100%;display:flex;flex-wrap:nowrap;align-items:center;gap:8px}};
/* === UNIFIED FONT COLOUR THEME (2026-11-02) - one scheme site-wide === */
/* Headings on light backgrounds: deep navy. Body: dark readable grey. */
/* Links and accents: cyan/teal. Primary buttons: solid cyan (S3), white text, no gradient. */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color: #0C2D63 !important; background-image: none !important; -webkit-text-fill-color: #0C2D63 !important; }
p, li, td, th, label, small, .text-muted, .text-secondary, .text-gray, .text-grey { color: #1F2937 !important; }
.accent, .text-accent, .text-primary, .eyebrow, .kicker, .section-label, .section-eyebrow { color: #1A9FD6 !important; background-image: none !important; -webkit-text-fill-color: #1A9FD6 !important; }
h1 span[class*="gradient"], h2 span[class*="gradient"], h3 span[class*="gradient"], span[class*="gradient-text"], .gradient-text { color: #1A9FD6 !important; background-image: none !important; -webkit-text-fill-color: #1A9FD6 !important; }
.text-success, .badge-success, .badge, .category-pill { color: #0C2D63 !important; background-color: #EAF4FB !important; background-image: none !important; border-color: #1A9FD6 !important; }
.avatar { background-color: #0C2D63 !important; background-image: none !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
.btn-primary, a.btn-primary, button.btn-primary, .btn-search, .search-btn, button[type="submit"], input[type="submit"], .home-hero button, section[class*="hero"] button, div[class*="hero"] button { background-color: #1A9FD6 !important; background-image: none !important; background: #1A9FD6 !important; border-color: #1A9FD6 !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
.btn-primary:hover, a.btn-primary:hover, button.btn-primary:hover, .btn-search:hover, button[type="submit"]:hover, input[type="submit"]:hover, .home-hero button:hover, section[class*="hero"] button:hover { background-color: #0C2D63 !important; background-image: none !important; background: #0C2D63 !important; border-color: #0C2D63 !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
.btn-outline, .btn-outline-primary, a.btn-outline, a.btn-outline-primary { background-color: #ffffff !important; background-image: none !important; border-color: #1A9FD6 !important; color: #1A9FD6 !important; -webkit-text-fill-color: #1A9FD6 !important; }
/* Dark hero exception: white H1 with cyan accent, light subtext. */
.home-hero h1, section[class*="hero"] h1, div[class*="hero"] h1, .hero h1, .site-newsletter h2, .site-newsletter .site-newsletter__title, .site-newsletter p, .site-newsletter .site-newsletter__subtitle { color: #ffffff !important; background-image: none !important; -webkit-text-fill-color: #ffffff !important; }
.home-hero h1 span, section[class*="hero"] h1 span, div[class*="hero"] h1 span, .hero h1 span, .home-hero h1 .accent, section[class*="hero"] h1 .accent { color: #1A9FD6 !important; background-image: none !important; -webkit-text-fill-color: #1A9FD6 !important; }
.home-hero p, section[class*="hero"] p, div[class*="hero"] p, .hero p, .home-hero__lead { color: #EAF6FD !important; }
/* Dark footer exception: white headings, light body text, cyan links. */
footer h1, footer h2, footer h3, footer h4, footer h5, footer h6, .footer h1, .footer h2, .footer h3, .footer h4, .footer h5, .footer h6, .site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4, .site-footer h5, .site-footer h6 { color: #ffffff !important; background-image: none !important; -webkit-text-fill-color: #ffffff !important; font-size: 0.9rem !important; margin-bottom: 0.5rem !important; }
footer p, footer li, footer small, footer .text-muted, .footer p, .footer li, .footer small, .site-footer p, .site-footer li { color: #EAF6FD !important; }
footer a, footer a:link, footer a:visited, .footer a, .site-footer a { color: #1A9FD6 !important; }
/* === End UNIFIED FONT COLOUR THEME === */

/* === UNIFIED THEME FIX 2 - class-based stray colours === */
[class*="category"], [class*="pill"], [class*="tag"], [class*="badge"] { color: #0C2D63 !important; background-color: #EAF4FB !important; background-image: none !important; border-color: #1A9FD6 !important; -webkit-text-fill-color: #0C2D63 !important; }
[class*="avatar"] { background-color: #0C2D63 !important; background-image: none !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
[class*="footer"] h1, [class*="footer"] h2, [class*="footer"] h3, [class*="footer"] h4, [class*="footer"] h5, [class*="footer"] h6, [class*="footer-title"], [class*="footer-heading"] { color: #ffffff !important; background-image: none !important; -webkit-text-fill-color: #ffffff !important; }
nav a, .navbar a, .nav-link, header a { color: #1A9FD6 !important; }
dt, [class*="label"] { color: #1F2937 !important; }
/* === End UNIFIED THEME FIX 2 === */

.home-hero,.hero,.hero-section{border-radius:0!important;border-bottom:0!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;clip-path:none!important;}
.home-hero::after,.home-hero::before,.hero::after,.hero::before{display:none!important;border:0!important;}
.home-hero__wave,.hero-wave,.hero-shape,.hero-divider,.shape-divider,.hero-bottom{display:none!important;border:0!important;}
.home-hero__pills,.home-hero__badges,.home-hero__features{background:transparent!important;background-color:transparent!important;box-shadow:none!important;}
[class*="pills"]{background:transparent!important;background-color:transparent!important;box-shadow:none!important;}
.hero-curve,.hero-slant,.hero-section::after,.hero-section::before{display:none!important;}
[class*="pill"]:has([class*="pill"]){background:transparent!important;background-color:transparent!important;box-shadow:none!important;}
.home-hero .bg-light,.home-hero .bg-white{background:transparent!important;background-color:transparent!important;box-shadow:none!important;}
.home-hero div:has(.badge){background:transparent!important;background-color:transparent!important;box-shadow:none!important;}
section.home-hero ul.home-hero__pills,.home-hero ul.home-hero__pills,ul.home-hero__pills{background:transparent!important;background-color:transparent!important;box-shadow:none!important;border:none!important;}
.home-hero .bg-light,.home-hero .bg-white{background:transparent!important;background-color:transparent!important;box-shadow:none!important;border:none!important;}
/* === UNIFY THEME A-Z (2026-11-02) - one font, one palette, one rhythm, in responsive.css only === */
body, h1, h2, h3, h4, h5, h6, p, a, li, span, div, label, small, button, input, select, textarea, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: Arial, Helvetica, sans-serif !important; font-style: normal !important; }
body { font-size: 16px !important; line-height: 1.6 !important; color: #1F2937 !important; }
h1, .h1 { font-size: 32px !important; font-weight: 700 !important; line-height: 1.2 !important; margin: 0 0 12px !important; }
h2, .h2 { font-size: 24px !important; font-weight: 700 !important; line-height: 1.3 !important; margin: 0 0 12px !important; }
h3, .h3 { font-size: 20px !important; font-weight: 700 !important; line-height: 1.35 !important; margin: 0 0 10px !important; }
h4, .h4 { font-size: 18px !important; font-weight: 700 !important; line-height: 1.4 !important; margin: 0 0 10px !important; }
h5, .h5, h6, .h6 { font-size: 16px !important; font-weight: 700 !important; line-height: 1.4 !important; margin: 0 0 8px !important; }
p, li { margin: 0 0 16px !important; } section[aria-label="Browse jobs"] li { margin: 0 0 10px !important; }html body main section.contact-hero p.contact-hero__subtitle{margin-left:auto!important;margin-right:auto!important;}
section, .section, main section { padding-top: 32px !important; padding-bottom: 32px !important; } section[aria-label="Browse jobs"] { padding-top: 24px !important; padding-bottom: 24px !important; }
.card, .job-card, .blog-card, article.card, .listing-card { padding: 24px !important; }
button:not(.dropdown-item):not(.njp-password-toggle), .btn:not(.dropdown-item), a.btn, input[type="submit"], input[type="button"] { padding: 12px 24px !important; border-radius: 8px !important; font-size: 16px !important; font-weight: 700 !important; line-height: 1.4 !important; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { color: #0C2D63 !important; background-image: none !important; -webkit-text-fill-color: #0C2D63 !important; }
p, li, td, th, label, small, .text-muted, .text-secondary, .text-gray, .text-grey, [class*="meta"], [class*="date"], time, .job-meta, .job-location, .post-meta, .blog-meta { color: #1F2937 !important; }
a, a:link, a:visited { color: #1A9FD6 !important; }
header a, header .nav-link, header nav a, .navbar a, .nav-link, .header a, [class*="header"] nav a, [class*="header"] .nav-link { color: #0C2D63 !important; font-weight: 700 !important; }
section[aria-label="Browse jobs"] a { color: #0C2D63 !important; font-weight: 700 !important; }
header a:hover, header .nav-link:hover, .navbar a:hover, .nav-link:hover, section[aria-label="Browse jobs"] a:hover { color: #1A9FD6 !important; }
.btn-primary, a.btn-primary, button.btn-primary, .btn-search, .search-btn, button[type="submit"], input[type="submit"], .home-hero button, section[class*="hero"] button, div[class*="hero"] button, .hero button, .btn-apply, a.btn-apply, .apply-btn, [class*="apply"] button { background: #1A9FD6 !important; background-color: #1A9FD6 !important; background-image: none !important; border-color: #1A9FD6 !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
.btn-primary:hover, a.btn-primary:hover, button.btn-primary:hover, button[type="submit"]:hover, input[type="submit"]:hover, .btn-apply:hover { background: #0C2D63 !important; background-color: #0C2D63 !important; background-image: none !important; border-color: #0C2D63 !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
.category-pill, [class*="category"], [class*="pill"], [class*="tag"], [class*="badge"], .badge-success, .text-success, .job-category, .category { color: #0C2D63 !important; background: #EAF4FB !important; background-color: #EAF4FB !important; background-image: none !important; border-color: #1A9FD6 !important; -webkit-text-fill-color: #0C2D63 !important; }
dt, [class*="label"], .sidebar dt, .job-sidebar dt, [class*="sidebar"] dt, [class*="glance"] dt, [class*="glance"] [class*="label"], [class*="glance"] span, .at-a-glance dt, .at-a-glance [class*="label"] { color: #0C2D63 !important; font-weight: 700 !important; }
.avatar, [class*="avatar"], .author-avatar, [class*="author"] img, [class*="author"] [class*="avatar"], .post-author img, .blog-author img { background: #0C2D63 !important; background-color: #0C2D63 !important; background-image: none !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
.avatar::before, .avatar::after, [class*="avatar"]::before, [class*="avatar"]::after, .author-avatar::before, .author-avatar::after { background: none !important; background-image: none !important; }
.home-hero h1, section[class*="hero"] h1, div[class*="hero"] h1, .hero h1 { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
.home-hero h1 span, section[class*="hero"] h1 span, div[class*="hero"] h1 span, .hero h1 span, .home-hero h1 .accent, section[class*="hero"] h1 .accent { color: #1A9FD6 !important; -webkit-text-fill-color: #1A9FD6 !important; }
.home-hero p, section[class*="hero"] p, div[class*="hero"] p, .hero p { color: #EAF6FD !important; }
footer h1, footer h2, footer h3, footer h4, footer h5, footer h6, [class*="footer"] h1, [class*="footer"] h2, [class*="footer"] h3 { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
footer p, footer li, footer small, [class*="footer"] p, [class*="footer"] li { color: #EAF6FD !important; }
footer a, [class*="footer"] a { color: #1A9FD6 !important; }
/* === End UNIFY THEME A-Z === */

/* === OWNER-APPROVED FIX: WHITE PAGE BACKGROUND === */
body { background:#FFFFFF !important; background-color:#FFFFFF !important; }
main { background:#FFFFFF !important; background-color:#FFFFFF !important; }
.main-content, .content, .page-content, main .content { background:#FFFFFF !important; background-color:#FFFFFF !important; }
.home-hero, .hero, .hero-section, section[class*="hero"], div[class*="hero"], .home-hero.bg-light, .home-hero.bg-white { background:#0C2D63 !important; background-color:#0C2D63 !important; }
footer, [class*="footer"] { background:#0C2D63 !important; background-color:#0C2D63 !important; }
/* === END WHITE PAGE BACKGROUND FIX === */
/* === FINAL HERO SOLID NAVY OVERRIDE === */
html body main section.home-hero.home-hero, html body section.home-hero.home-hero, html body .home-hero.home-hero, html body section[class*="hero"][class*="hero"], html body div[class*="hero"][class*="hero"] { background: #0C2D63 !important; background-color: #0C2D63 !important; background-image: none !important; }
html body section.home-hero.home-hero::before, html body section.home-hero.home-hero::after, html body .home-hero.home-hero::before, html body .home-hero.home-hero::after, html body section[class*="hero"]::before, html body section[class*="hero"]::after, html body div[class*="hero"]::before, html body div[class*="hero"]::after { background: none !important; background-color: transparent !important; background-image: none !important; display: none !important; opacity: 0 !important; }
html body .home-hero.home-hero *, html body section[class*="hero"] *, html body div[class*="hero"] * { background-image: none !important; }
html body .home-hero.home-hero *::before, html body .home-hero.home-hero *::after, html body section[class*="hero"] *::before, html body section[class*="hero"] *::after, html body div[class*="hero"] *::before, html body div[class*="hero"] *::after { background: none !important; background-image: none !important; }
html body .home-hero.home-hero h1, html body section[class*="hero"] h1, html body div[class*="hero"] h1 { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
html body .home-hero.home-hero h1 span, html body section[class*="hero"] h1 span, html body div[class*="hero"] h1 span, html body .home-hero.home-hero h1 .accent, html body .home-hero.home-hero h1 .text-primary { color: #1A9FD6 !important; -webkit-text-fill-color: #1A9FD6 !important; }
html body .home-hero.home-hero button, html body .home-hero.home-hero .btn-search, html body .home-hero.home-hero button[type="submit"], html body section[class*="hero"] button, html body section[class*="hero"] .btn-search, html body div[class*="hero"] button { background: #1A9FD6 !important; background-color: #1A9FD6 !important; background-image: none !important; border-color: #1A9FD6 !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
html body .home-hero.home-hero [class*="pill"], html body .home-hero.home-hero [class*="badge"], html body section[class*="hero"] [class*="pill"], html body section[class*="hero"] [class*="badge"], html body div[class*="hero"] [class*="pill"] { background: transparent !important; background-color: transparent !important; background-image: none !important; border: 1px solid #ffffff !important; border-color: #ffffff !important; box-shadow: none !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
/* === END FINAL HERO SOLID NAVY OVERRIDE === */

/* === STRUCTURAL HERO OVERRIDE: first section in main, containing H1 and search === */
html body main section:first-of-type, html body main > section:first-child, html body main section:has(h1), html body main section:has(h1):has(form) { background: #0C2D63 !important; background-color: #0C2D63 !important; background-image: none !important; }
html body main section:first-of-type::before, html body main section:first-of-type::after, html body main section:has(h1)::before, html body main section:has(h1)::after { background: none !important; background-image: none !important; display: none !important; opacity: 0 !important; }
html body main section:first-of-type *, html body main section:has(h1) * { background-image: none !important; }
html body main section:first-of-type *::before, html body main section:first-of-type *::after, html body main section:has(h1) *::before, html body main section:has(h1) *::after { background: none !important; background-image: none !important; }
html body main section:first-of-type h1, html body main section:has(h1) h1 { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
html body main section:first-of-type h1 span, html body main section:has(h1) h1 span { color: #1A9FD6 !important; -webkit-text-fill-color: #1A9FD6 !important; }
html body main section:first-of-type button, html body main section:has(h1) button, html body main section:first-of-type button[type="submit"], html body main section:has(h1) button[type="submit"] { background: #1A9FD6 !important; background-color: #1A9FD6 !important; background-image: none !important; border-color: #1A9FD6 !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
html body main section:first-of-type [class*="pill"], html body main section:has(h1) [class*="pill"], html body main section:first-of-type [class*="badge"], html body main section:has(h1) [class*="badge"] { background: transparent !important; background-color: transparent !important; background-image: none !important; border: 1px solid #ffffff !important; border-color: #ffffff !important; box-shadow: none !important; color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
/* === END STRUCTURAL HERO OVERRIDE === */

/* === HERO-POLISH 2026-11-03: true hero is section.home-hero from home.blade.php === */
html body main section.home-hero, html body section.home-hero { background:#0C2D63 !important; background-color:#0C2D63 !important; background-image:none !important; box-sizing:border-box !important; max-width:100% !important; overflow:hidden !important; width:100% !important; }
html body main section.home-hero::before, html body main section.home-hero::after, html body section.home-hero::before, html body section.home-hero::after, html body main section.home-hero .home-hero__grid, html body section.home-hero .home-hero__grid, html body main section.home-hero .home-hero__glow, html body section.home-hero .home-hero__glow, html body main section.home-hero .home-hero__wave, html body section.home-hero .home-hero__wave { display:none !important; visibility:hidden !important; opacity:0 !important; background:none !important; background-color:transparent !important; background-image:none !important; }
html body main section.home-hero .home-hero__inner, html body section.home-hero .home-hero__inner, html body main section.home-hero .home-hero__panel, html body section.home-hero .home-hero__panel { background:transparent !important; background-color:transparent !important; background-image:none !important; box-sizing:border-box !important; max-width:100% !important; }
html body main section.home-hero h1.home-hero__title, html body section.home-hero h1.home-hero__title { color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; box-sizing:border-box !important; max-width:100% !important; }
html body main section.home-hero h1.home-hero__title .accent, html body section.home-hero h1.home-hero__title .accent, html body main section.home-hero h1.home-hero__title span.accent, html body section.home-hero h1.home-hero__title span.accent { color:#1A9FD6 !important; -webkit-text-fill-color:#1A9FD6 !important; }
html body main section.home-hero .home-hero__lead, html body section.home-hero .home-hero__lead { color:#EAF6FD !important; -webkit-text-fill-color:#EAF6FD !important; box-sizing:border-box !important; max-width:100% !important; }
html body main section.home-hero .home-hero__search-row, html body section.home-hero .home-hero__search-row { display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center !important; gap:8px !important; width:100% !important; max-width:100% !important; box-sizing:border-box !important; border-radius:999px !important; background:#ffffff !important; background-color:#ffffff !important; padding:0 !important; overflow:hidden !important; }
html body main section.home-hero .home-hero__search-input, html body section.home-hero .home-hero__search-input { flex:1 1 0 !important; width:auto !important; min-width:0 !important; max-width:none !important; box-sizing:border-box !important; border:0 !important; background:transparent !important; background-color:transparent !important; background-image:none !important; padding:0 12px !important; }
html body main section.home-hero .home-hero__search-btn, html body section.home-hero .home-hero__search-btn, html body main section.home-hero button.home-hero__search-btn, html body section.home-hero button.home-hero__search-btn { flex:0 0 auto !important; width:170px !important; max-width:50% !important; box-sizing:border-box !important; padding:11px 16px !important; border-radius:999px !important; background:#1A9FD6 !important; background-color:#1A9FD6 !important; background-image:none !important; border:1px solid #1A9FD6 !important; border-color:#1A9FD6 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; white-space:nowrap !important; text-align:center !important; }
html body main section.home-hero .home-hero__pills, html body section.home-hero .home-hero__pills { display:flex !important; flex-wrap:wrap !important; gap:20px !important; box-sizing:border-box !important; max-width:100% !important; background:transparent !important; background-color:transparent !important; background-image:none !important; }
/* Popular-search pills: kill the global <li> bottom margin so the pill gap is the only spacing. */
html body main section.home-hero .home-hero__pills li, html body section.home-hero .home-hero__pills li { margin-bottom:0 !important; }
/* Popular searches: mobile list is hidden on desktop/tablet; the <=767.98px block below shows it and hides the desktop list. */
html body nav.navbar~main section.home-hero.home-hero .home-hero__pills--mobile { display:none !important; }
/* Search divider: thin line between the two hero fields (desktop/tablet only; the mobile input rule below re-asserts a uniform border). */
html body main section.home-hero .home-hero__search-input + .home-hero__search-input, html body section.home-hero .home-hero__search-input + .home-hero__search-input { border-left:1px solid #DCE6F2 !important; }
/* Popular-searches label: space above (from the search pill) and below (to the pills), design p17. */
html body main section.home-hero .home-hero__popular-label, html body section.home-hero .home-hero__popular-label { color:#ffffff !important; font-size:14px !important; line-height:1.4 !important; text-align:center !important; margin:24px 0 16px !important; }
html body main section.home-hero .home-hero__pill, html body section.home-hero .home-hero__pill { background:transparent !important; background-color:transparent !important; background-image:none !important; border:1px solid #ffffff !important; border-color:#ffffff !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; box-shadow:none !important; box-sizing:border-box !important; max-width:100% !important; }
body, h1, h2, h3, h4, h5, h6, button, input, select, textarea { font-family:Arial, Helvetica, sans-serif !important; }
@media (max-width:767.98px) { html body nav.navbar~main section.home-hero { padding-top:28px !important; padding-bottom:28px !important; padding-left:16px !important; padding-right:16px !important; } html body nav.navbar~main section.home-hero h1.home-hero__title { font-size:24px !important; line-height:1.25 !important; } html body main section.home-hero .home-hero__lead, html body section.home-hero .home-hero__lead { font-size:16px !important; line-height:1.5 !important; } html body main section.home-hero .home-hero__search-row, html body section.home-hero .home-hero__search-row { display:flex !important; flex-direction:column !important; flex-wrap:nowrap !important; gap:10px !important; background:transparent !important; box-shadow:none !important; border:0 !important; border-radius:0 !important; padding:0 !important; height:auto !important; overflow:visible !important; } html body nav.navbar~main section.home-hero .home-hero__search-input { width:100% !important; max-width:100% !important; flex:1 1 auto !important; background:#ffffff !important; border:1px solid #DCE6F2 !important; border-radius:12px !important; padding:14px 14px 14px 44px !important; height:48px !important; box-sizing:border-box !important; } html body nav.navbar~main section.home-hero .home-hero__search-btn, html body nav.navbar~main section.home-hero button.home-hero__search-btn { width:100% !important; max-width:100% !important; flex:0 0 auto !important; border-radius:12px !important; padding:14px !important; margin-top:0 !important; height:48px !important; } html body nav.navbar~main section.home-hero.home-hero .home-hero__pills { display:flex !important; flex-wrap:wrap !important; justify-content:center !important; gap:12px !important; } html body nav.navbar~main section.home-hero.home-hero .home-hero__pill { max-width:100% !important; white-space:normal !important; text-align:center !important; padding:7px 14px !important; } html body nav.navbar~main section.home-hero.home-hero .home-hero__pills--desktop { display:none !important; } html body nav.navbar~main section.home-hero.home-hero .home-hero__pills--mobile { display:flex !important; } html body nav.navbar~main section.home-hero.home-hero .home-hero__popular-label { margin:12px 0 12px !important; } }
/* === END HERO-POLISH 2026-11-03 === */



/* === HEADER TIDY 2026-11-03 === */
/* HEADER — ONE CLEAN ORDERED SET: 1 slim row, 2 brand lockup, 3 header actions (Sign Up / Sign In / Post a Job), 4 toggler. No other header rules remain in this file. */
/* 1 SLIM SINGLE ROW, EQUAL SIDE PADDING, NO GAP BELOW */ nav.navbar{flex-wrap:nowrap!important;padding-top:8px!important;padding-bottom:8px!important;margin-bottom:0!important;} nav.navbar>.container{max-width:none!important;width:100%!important;padding-left:24px!important;padding-right:24px!important;margin-left:0!important;margin-right:0!important;} nav.navbar+main,nav.navbar~main{margin-top:0!important;padding-top:0!important;} nav.navbar+main>:first-child,nav.navbar~main>:first-child{margin-top:0!important;}
/* 2 BRAND LOCKUP: 64PX LOGO + NAME RIGHT OF IT, ONE LINE. The layout carries classes only - no inline styles. */ nav.navbar .navbar-brand{padding:0!important;margin:0!important;align-items:center!important;flex:0 0 auto!important;} nav.navbar .navbar-brand img{height:64px!important;max-height:64px!important;width:auto!important;max-width:none!important;display:block!important;} nav.navbar .navbar-brand span{color:#0C2D63!important;} nav.navbar .navbar-brand .navbar-brand__lockup{display:inline-flex!important;align-items:center!important;gap:8px!important;} nav.navbar .navbar-brand .navbar-brand__logo{mix-blend-mode:multiply!important;} nav.navbar .navbar-brand .navbar-brand__name{color:#0C2D63!important;font-weight:800!important;font-size:22px!important;line-height:1.1!important;white-space:nowrap!important;}
/* 3 NAV RIGHT ON DESKTOP */ nav.navbar .navbar-nav{flex-wrap:nowrap!important;flex-direction:row!important;justify-content:flex-end!important;margin-left:auto!important;margin-right:0!important;width:auto!important;} nav.navbar .navbar-nav .nav-link{padding:.5rem .75rem!important;color:#0C2D63!important;white-space:nowrap!important;} @media(min-width:1200px){nav.navbar{position:relative!important;}nav.navbar .navbar-collapse{position:static!important;left:auto!important;transform:none!important;width:auto!important;}} @media(min-width:768px) and (max-width:1199px){nav.navbar .navbar-collapse{justify-content:flex-end!important;}} /* 3 HEADER ACTIONS: the three buttons, right. Outline = white/navy, solid = cyan. Desktop only as buttons; the max-width:767.98px block turns them into plain stacked links. !important is used here only because the global nav-link colour rules carry !important. */ nav.navbar .navbar-nav.header-actions{gap:8px!important;} nav.navbar .navbar-nav .header-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;height:44px!important;padding:0 20px!important;border-radius:999px!important;font-size:16px!important;font-weight:700!important;line-height:1!important;white-space:nowrap!important;text-decoration:none!important;} nav.navbar .navbar-nav .header-btn--outline{background:#FFFFFF!important;color:#0C2D63!important;border:1.5px solid #0C2D63!important;} nav.navbar .navbar-nav .header-btn--solid{background:#1A9FD6!important;color:#FFFFFF!important;border:1.5px solid #1A9FD6!important;}
/* HEADER NAV LINKS (desktop): plain text links left of the action buttons.
   The logo is the Home link. Active page is cyan. */
nav.navbar .navbar-nav.header-nav{gap:4px!important;}
nav.navbar .navbar-nav .header-nav-link{padding:.5rem .75rem!important;color:#0C2D63!important;font-size:16px!important;font-weight:600!important;white-space:nowrap!important;text-decoration:none!important;border-radius:8px!important;}
nav.navbar .navbar-nav .header-nav-link:hover{color:#1A9FD6!important;background:#F4F7FB!important;}
/* Blog link next to the logo (left). Kept away from the action buttons so
   the right side stays buttons-only. */
nav.navbar .header-nav-link--left{margin-left:24px!important;align-self:center!important;}
nav.navbar .navbar-nav .header-nav-link.active{color:#1A9FD6!important;}
/* STICKY HEADER (owner 2026-11-14 23:35): stays visible while scrolling
   down. Solid white background so page content never shows through. */
nav.navbar.navbar-premium{position:sticky!important;top:0!important;z-index:1030!important;background:#FFFFFF!important;}
/* HEADER USER DROPDOWN (S26): match the auth card — radius 12, border, shadow.
   The Log out <button> must not pick up the generic button padding. */
nav.navbar .dropdown-menu{border-radius:12px!important;border:1px solid #DCE6F2!important;box-shadow:0 8px 24px rgba(12,45,99,.12)!important;padding:8px!important;min-width:200px!important;}
nav.navbar .dropdown-item{font-size:16px!important;color:#0C2D63!important;padding:12px 16px!important;border-radius:8px!important;}
nav.navbar .dropdown-item:hover,nav.navbar .dropdown-item:focus{background:#F4F7FB!important;color:#1A9FD6!important;}
nav.navbar .dropdown-menu button.dropdown-item{padding:12px 16px!important;min-height:0!important;}
/* Log out hover (2026-11-15, owner: text invisible on hover): the Log out
   <button type="submit"> picks up the global submit-button rules, which
   force white text via -webkit-text-fill-color even on hover — while the
   hover background turns light, so the white text vanishes. On hover, make
   the background white and the text cyan (same as the other dropdown items). */
nav.navbar .dropdown-menu button.dropdown-item[type="submit"]:hover,nav.navbar .dropdown-menu button.dropdown-item[type="submit"]:focus{background:#FFFFFF!important;background-color:#FFFFFF!important;color:#1A9FD6!important;-webkit-text-fill-color:#1A9FD6!important;}
/* Header buttons sat ~8px high: the old `p, li { margin: 0 0 16px !important; }` rule gives every
   nav-item a 16px bottom margin. Zero it on desktop so the navbar's own centering gives equal
   space above and below the buttons. (Mobile stacked links keep their margin.) */
@media (min-width:768px) { nav.navbar .navbar-nav .nav-item { margin:0 !important; } }

/* 4 TOGGLER: 44px touch target. (The old Home-pill rule was removed with the Home link in Step 1 - the header has no nav link with an active state any more.) */ nav.navbar .navbar-toggler{min-height:44px!important;min-width:44px!important;}
/* === END HEADER TIDY 2026-11-03 === */


/* === SECTIONS WIDTH + FILTERS APPLY BELOW (2026-11-03) - responsive.css only, no Blade changes === */

@media (max-width:767.98px) {
  html body main section#faq, html body main section#latest-jobs, html body main section:has(#jobs-filter-form),
  html body main section.home-steps,
  html body main section.site-newsletter,
  html body main section.home-blog,
  html body main section[class*="blog"] {
    max-width:100% !important;
    padding-left:1rem !important;
    padding-right:1rem !important;
  }
}


/* === DROPDOWN ARROWS UNIFY 2026-11-03 === */
#jobs-filter-form button[aria-label="Show options"] {
  color: #475569 !important;
  font-size: 10px !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
#jobs-filter-form select {
  -webkit-appearance: none !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%228%22 viewBox=%220 0 12 8%22%3E%3Cpath d=%22M1 1l5 5 5-5%22 fill=%22none%22 stroke=%22%23475569%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-size: 12px 8px !important;
  background-position: right 14px center !important;
  padding-right: 36px !important;
}

/* === JOB DETAIL DISPLAY FIX 2026-11-03 === */
.job-detail-title{color:#0C2D63;}
.job-detail-summary__row{display:flex;gap:.75rem;align-items:flex-start;}
.job-detail-summary__label{flex:0 1 6.5rem;min-width:0;white-space:normal;word-break:normal;overflow-wrap:break-word;}
.job-detail-summary__value{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:break-word;}


/* === STAGING HERO - CLEAN SET 2026-11-03 === */
html body nav.navbar~main .home-hero{margin-top:0!important;padding-top:56px!important;padding-bottom:56px!important;}
.home-hero__title{color:#fff!important;}
.home-hero__lead{color:#EAF6FD!important;}
html body section.home-hero.home-hero .home-hero__pills{width:800px!important;max-width:calc(100% - 32px)!important;margin:0 auto!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;display:flex!important;flex-wrap:wrap!important;justify-content:center!important;gap:20px!important;list-style:none!important;}
.home-pill{text-decoration:none!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.55)!important;color:#fff!important;border-radius:999px!important;padding:10px 18px!important;}
html body section.home-hero.home-hero .home-hero__panel{width:800px!important;max-width:calc(100% - 32px)!important;margin:0 auto!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;}
html body section.home-hero.home-hero .home-hero__search-form{width:100%!important;background:#fff!important;border-radius:999px!important;box-shadow:0 10px 30px rgba(0,0,0,.25)!important;padding:6px 6px 6px 18px!important;}
.home-hero__search-input{flex:1 1 auto!important;min-width:0!important;background:transparent!important;border:0!important;box-shadow:none!important;}
@media (max-width:767.98px){
.home-hero__pills,html body section.home-hero.home-hero .home-hero__panel{width:100%!important;max-width:none!important;}
html body nav.navbar~main .home-hero .home-hero__search-form{display:block!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0!important;}
html body nav.navbar~main .home-hero .home-hero__search-row{width:100%!important;gap:10px!important;background:transparent!important;border-radius:0!important;padding:0!important;overflow:visible!important;flex-wrap:wrap!important;flex-direction:column!important;align-items:stretch!important;position:relative!important;}
html body main section.home-hero .home-hero__search-input, html body section.home-hero .home-hero__search-input{width:100%!important;padding-left:44px!important;} html body nav.navbar~main .home-hero .home-hero__search-icon{position:absolute!important;left:16px!important;top:16px!important;display:flex!important;align-items:center!important;justify-content:center!important;width:20px!important;height:20px!important;}
.home-hero__search-btn{width:100%!important;max-width:100%!important;flex:0 0 auto!important;align-self:stretch!important;box-sizing:border-box!important;padding:14px!important;margin-left:0!important;margin-right:0!important;text-align:center!important;}
}
/* === SINGLE DESKTOP CONTAINER 2026-11-05: one 1320px container for all pages, desktop only === */
@media (min-width:1200px){
.container{width:1320px !important;max-width:1320px !important;margin-left:auto !important;margin-right:auto !important;padding-left:0 !important;padding-right:0 !important;box-sizing:border-box !important;}
nav.navbar > .container{width:1320px !important;max-width:1320px !important;margin-left:auto !important;margin-right:auto !important;padding-left:0 !important;padding-right:0 !important;box-sizing:border-box !important;}
html body section.home-hero.home-hero .home-hero__pills,html body section.home-hero.home-hero .home-hero__panel{width:800px !important;max-width:800px !important;margin-left:auto !important;margin-right:auto !important;box-sizing:border-box !important;}

}

/* ==========================================================================
   REDESIGN - HOMEPAGE FULL BUILD (2026-11-12, final design PDF)
   One standard set, used on every page. 8px spacing scale (8/16/24/32/48/64).
   Colours: navy #0C2D63 + cyan #1A9FD6 only, white background, #F4F7FB bands,
   #DCE6F2 borders. Font: Arial/Helvetica (site standard; the PDF names none).
   Breakpoints: desktop >=992px, tablet 768-991.98px, mobile <=767.98px.
   Rules here are scoped to the new .home-* classes, except the footer and
   Browse-jobs rules (shared layout). !important appears only where an
   existing !important rule in this file must be beaten - each use says why.
   ========================================================================== */

/* --- Shared: section rhythm -------------------------------------------- */
/* Homepage sections: 32/24/16px vertical padding (design p17). The hero
   keeps its own 56/40/28px padding from the step-1 build. */
.home-board, .home-browse, .home-alerts, .home-steps, .home-people, .home-faq { padding-top:32px; padding-bottom:32px; }
@media (min-width:768px) and (max-width:991.98px) {
  .home-board, .home-browse, .home-alerts, .home-steps, .home-people, .home-faq { padding-top:24px; padding-bottom:24px; }
}
@media (max-width:767.98px) {
  .home-board, .home-browse, .home-alerts, .home-steps, .home-people, .home-faq { padding-top:16px; padding-bottom:16px; }
}
/* Section titles: H2 24/22/20px, navy, left-aligned. */
.home-browse__title, .home-steps__title, .home-people__title, .home-faq__title { color:#0C2D63; font-size:24px; line-height:1.3; font-weight:700; margin:0 0 16px; }
@media (min-width:768px) and (max-width:991.98px) {
  .home-browse__title, .home-steps__title, .home-people__title, .home-faq__title { font-size:22px; }
}
@media (max-width:767.98px) {
  .home-browse__title, .home-steps__title, .home-people__title, .home-faq__title { font-size:20px; margin-bottom:12px; }
}

/* --- Hero H1 desktop size (design p17: 32px) ---------------------------- */
/* The file's old general h1 rule is a clamp up to 40px, which would make
   the hero H1 40px on desktop and in the 992-1024px range. This scoped
   rule pins it to 32px on desktop (tablet 28px / mobile 24px are set in
   the older HERO blocks). No !important needed: a class selector beats
   the bare h1 rule. */
.home-hero__title { font-size:32px; line-height:1.25; }

/* --- Mobile hero: search below the navy band (design p8) ---------------- */
/* On mobile the search block sits on the white page background, not on
   navy: the wrap goes full-bleed white (negative margins escape the
   container padding and the section's bottom padding), the pills and the
   label turn navy, and the search form itself goes transparent (the wrap
   is the white background now). Desktop/tablet are untouched. */
@media (max-width:767.98px) {
  .home-hero__search-wrap { background:#ffffff; margin-left:-12px; margin-right:-12px; margin-bottom:-28px; padding:16px 12px 28px; }
  .home-hero__search-wrap .home-hero__popular-label { color:#0C2D63 !important; }
  .home-hero__search-wrap .home-pill { background:#ffffff !important; border-color:#DCE6F2 !important; color:#0C2D63 !important; }
}

/* --- Filter row (design p2) --------------------------------------------- */
/* One fixed order everywhere: All Jobs, Remote, Full-time, Category,
   Country, State, Date Posted. Desktop: all 7 in one row. Tablet/mobile:
   row 1 = All Jobs + Remote + Full-time, row 2 = the four fields. */
.home-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:24px; }
.home-filter { flex:0 0 auto; min-width:0; }
.home-filter--all { height:48px; padding:0 16px; border-radius:999px; border:1px solid #DCE6F2; background:#ffffff; color:#0C2D63; font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap; }
.home-filter--all.is-active { background:#0C2D63; border-color:#0C2D63; color:#ffffff; }
/* Toggle switches: a visual on/off switch, never "{on}" text. The switch
   is the ::after knob on the track; aria-checked drives its position. */
.home-filter--toggle { display:inline-flex; align-items:center; gap:8px; flex-shrink:0; height:48px; padding:0 16px 0 12px; border-radius:999px; border:1px solid #DCE6F2; background:#ffffff; color:#0C2D63; font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap; }
.home-filter__switch { position:relative; flex:0 0 auto; width:44px; height:24px; border-radius:999px; background:#DCE6F2; }
.home-filter__switch::after { content:""; position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:50%; background:#ffffff; box-shadow:0 1px 3px rgba(12,45,99,.3); }
.home-filter--toggle[aria-checked="true"] .home-filter__switch { background:#1A9FD6; }
.home-filter--toggle[aria-checked="true"] .home-filter__switch::after { left:22px; }
/* Field pills: the input/select itself is the pill (value shown, label
   when unchosen). The dropdown widget (script-added) sits inside. */
.home-filter--field { flex:1 1 160px; }
.home-filter__input { width:100%; height:48px; padding:0 26px 0 16px; border-radius:999px; border:1px solid #DCE6F2; background:#ffffff; color:#0C2D63; font-size:14px; }
.home-filter__input::placeholder { color:#64748B; }
.home-filter__input:disabled { background:#F4F7FB; color:#64748B; }
/* Selects keep the small dropdown arrow from the DROPDOWN ARROWS rule. */
@media (min-width:768px) and (max-width:991.98px) {
  .home-filters { gap:10px; margin-bottom:16px; }
  .home-filter--all, .home-filter--toggle { height:44px; padding:0 14px; }
  .home-filter__switch { width:40px; height:22px; }
  .home-filter__switch::after { width:18px; height:18px; }
  .home-filter--toggle[aria-checked="true"] .home-filter__switch::after { left:20px; }
  .home-filter__input { height:44px; }
}
@media (max-width:767.98px) {
  .home-filters { gap:8px; margin-bottom:12px; }
  .home-filter--all, .home-filter--toggle { height:40px; padding:0 12px; font-size:13px; }
  .home-filter__switch { width:36px; height:20px; }
  .home-filter__switch::after { width:16px; height:16px; }
  .home-filter--toggle[aria-checked="true"] .home-filter__switch::after { left:18px; }
  .home-filter--field { flex:1 1 calc(50% - 4px); }
  .home-filter__input { height:40px; font-size:13px; }
}

/* --- Two-pane board (design p2/p4) -------------------------------------- */
/* Desktop: list 55% + detail pane 45%. Tablet: 2-column list, pane below
   the list. Mobile: 1-column list, pane hidden (View Job opens the job
   page instead). */
.home-board__panes { display:flex; gap:24px; align-items:flex-start; }
.home-board__list { flex:0 0 55%; min-width:0; }
/* The shared grid partial renders 3 columns on desktop; the homepage list
   is 1 column, so force a single column here only. The partial's g-4 gap
   (24px) is already the desktop board gap, so no gutter override here. */
.home-board__list .row > [class*="col-"] { flex:0 0 100%; max-width:100%; }
.home-board__pane { flex:1 1 45%; min-width:0; position:sticky; top:24px; }
@media (min-width:768px) and (max-width:991.98px) {
  .home-board__panes { flex-direction:column; gap:16px; }
  .home-board__list { flex:0 0 100%; width:100%; }
  /* Tablet list is 2 columns (the partial's col-md-6); board gap 16px. */
  .home-board__list .row { --bs-gutter-x:16px; --bs-gutter-y:16px; }
  .home-board__list .row > [class*="col-"] { flex:0 0 50%; max-width:50%; }
  .home-board__pane { flex:0 0 100%; width:100%; position:static; }
}
@media (max-width:767.98px) {
  .home-board__panes { flex-direction:column; gap:12px; }
  .home-board__list { flex:0 0 100%; width:100%; }
  .home-board__list .row { --bs-gutter-x:12px; --bs-gutter-y:12px; }
  .home-board__list .row > [class*="col-"] { flex:0 0 100%; max-width:100%; }
  .home-board__pane { display:none; }
}

/* --- Job card (design 3.3: one pattern on every page) -------------------- */
.home-job-card { position:relative; background:#ffffff; border:1px solid #DCE6F2; border-left:4px solid #1A9FD6; border-radius:12px; padding:16px; display:flex; flex-direction:column; }
.home-job-card.is-selected { background:#EAF4FB; }
.home-job-card__save { position:absolute; top:10px; right:12px; border:0; background:transparent; color:#0C2D63; font-size:20px; line-height:1; cursor:pointer; padding:4px; }
.home-job-card__save[aria-pressed="true"] { color:#1A9FD6; }
.home-job-card__title { font-size:16px; font-weight:700; line-height:1.35; padding-right:44px; margin:0 0 4px; }
.home-job-card__title a { color:#0C2D63; text-decoration:none; }
.home-job-card__title a:hover { color:#1A9FD6; text-decoration:underline; }
/* Saved jobs: empty state when no job is saved yet. */
.home-saved-empty { padding:32px 16px; text-align:center; color:#0C2D63; font-size:16px; }
.home-saved-empty p { margin:0; }
.home-job-card__new { display:inline-block; vertical-align:middle; margin-left:8px; padding:2px 6px; border-radius:4px; background:#1A9FD6; color:#ffffff; font-size:11px; font-weight:700; line-height:1.4; letter-spacing:.04em; }
.home-job-card__company, .home-job-card__meta { color:#475569; font-size:14px; line-height:1.45; margin:0 0 4px; }
.home-job-card__meta { margin-bottom:8px; }
.home-job-card__salary { display:inline-block; align-self:flex-start; padding:6px 12px; border-radius:999px; background:#EAF4FB; color:#0C2D63; font-size:14px; font-weight:700; line-height:1.2; margin:0 0 8px; }
.home-job-card__tags { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:8px; list-style:none; margin:0 0 12px; padding:8px 0; }
.home-job-card__tags li { padding:6px 12px; border-radius:999px; border:1px solid #DCE6F2; background:#F4F7FB; color:#0C2D63; font-size:13px; line-height:1.2; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; margin:0 !important; }
.home-job-card__actions { margin-top:auto; }
.home-job-card__view { display:inline-flex; align-items:center; justify-content:center; width:210px; max-width:100%; height:48px; border-radius:8px; background:#1A9FD6; color:#ffffff; font-size:15px; font-weight:700; line-height:1; text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.home-job-card__view:hover { color:#ffffff; background:#0C2D63; }
.home-job-card__closed { color:#64748B; font-size:14px; }
@media (min-width:768px) and (max-width:991.98px) {
  .home-job-card { border-radius:10px; padding:16px; }
  .home-job-card__view { width:190px; height:44px; }
}
@media (max-width:767.98px) {
  .home-job-card { border-radius:8px; padding:16px; }
  .home-job-card__view { width:100%; height:40px; }
}

/* --- Detail pane (design p2/p4) ----------------------------------------- */
.home-pane { background:#ffffff; border:1px solid #DCE6F2; border-left:4px solid #1A9FD6; border-radius:12px; padding:24px; }
.home-pane__title { color:#0C2D63; font-size:20px; font-weight:700; line-height:1.35; margin:0 0 4px; }
.home-pane__company, .home-pane__meta { color:#475569; font-size:14px; line-height:1.45; margin:0 0 4px; }
.home-pane__meta { margin-bottom:12px; }
.home-pane__salary { display:inline-block; padding:6px 12px; border-radius:999px; background:#EAF4FB; color:#0C2D63; font-size:14px; font-weight:700; line-height:1.2; margin:0 0 12px; }
.home-pane__tags { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0 0 12px; padding:8px 0; }
.home-pane__tags li { padding:6px 12px; border-radius:999px; border:1px solid #DCE6F2; background:#F4F7FB; color:#0C2D63; font-size:13px; line-height:1.2; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; margin:0 !important; }
.home-pane__excerpt { color:#1F2937; font-size:15px; line-height:1.6; margin:0 0 16px; }
.home-pane__full { display:inline-flex; align-items:center; justify-content:center; height:48px; padding:0 24px; border-radius:8px; background:#1A9FD6; color:#ffffff; font-size:15px; font-weight:700; line-height:1; text-decoration:none; white-space:nowrap; }
.home-pane__full:hover { color:#ffffff; background:#0C2D63; }
@media (min-width:768px) and (max-width:991.98px) {
  .home-pane { border-radius:10px; padding:16px; }
  .home-pane__title { font-size:18px; }
}

/* --- Browse jobs (design p2/p5) ------------------------------------------ */
/* Light grey band. Desktop 2 columns, tablet 2, mobile 1. Links cyan bold,
   one per line. (Canada / UK & Australia columns are not built: those
   pages do not exist yet, and the design never links to a 404.) */
.home-browse { background:#F4F7FB; }
.home-browse__cols { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.home-browse__col-title { color:#0C2D63; font-size:16px; font-weight:700; line-height:1.3; margin:0 0 12px; }
.home-browse__links { list-style:none; margin:0; padding:0; }
.home-browse__links li { margin:0 0 8px; }
.home-browse__links a { color:#1A9FD6; font-weight:700; font-size:15px; line-height:1.4; text-decoration:none; }
/* 2026-11-13: browse links must be CYAN bold (design spec) — old 'a' global was forcing them navy, so everything looked the same. */
html body section.home-browse .home-browse__links a { color:#1A9FD6 !important; -webkit-text-fill-color:#1A9FD6 !important; font-weight:700 !important; }
html body section.home-browse .home-browse__links a:hover { color:#0C2D63 !important; -webkit-text-fill-color:#0C2D63 !important; }
.home-browse__links a:hover { text-decoration:underline; }
@media (min-width:768px) and (max-width:991.98px) {
  .home-browse__cols { gap:16px; }
}
@media (max-width:767.98px) {
  .home-browse__cols { grid-template-columns:1fr; gap:12px; }
}

/* --- Job alerts band (design p2/p3) -------------------------------------- */
/* Navy band, centred. The form itself is unchanged (same id/route/CSRF). */
.home-alerts { background:#0C2D63; color:#ffffff; }
.home-alerts__inner { max-width:800px; margin:0 auto; text-align:center; }
.home-alerts__title { color:#ffffff; font-size:24px; font-weight:700; line-height:1.3; margin:0 0 8px; }
.home-alerts__text { color:#EAF6FD; font-size:16px; line-height:1.5; margin:0 0 16px; }
.home-alerts__input-group { display:flex; gap:8px; max-width:560px; margin:0 auto; }
.home-alerts__input { flex:1 1 auto; min-width:0; height:48px; padding:0 16px; border-radius:999px; border:1px solid #ffffff; background:#ffffff; color:#1F2937; font-size:15px; }
.home-alerts__btn { flex:0 0 auto; height:48px; padding:0 24px; border-radius:999px; border:1.5px solid #ffffff; background:transparent; color:#ffffff; font-size:15px; font-weight:700; line-height:1; white-space:nowrap; cursor:pointer; }
.home-alerts__btn:hover { background:#ffffff; border-color:#ffffff; color:#0C2D63; }
@media (min-width:768px) and (max-width:991.98px) {
  .home-alerts__title { font-size:22px; }
  .home-alerts__input, .home-alerts__btn { height:44px; }
}
@media (max-width:767.98px) {
  .home-alerts__title { font-size:20px; }
  .home-alerts__input-group { flex-direction:column; }
  .home-alerts__input, .home-alerts__btn { width:100%; height:40px; }
}

/* --- How it works (design p2/p3) ---------------------------------------- */
.home-steps__grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.home-step { text-align:center; }
.home-step__num { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; background:#0C2D63; color:#ffffff; font-size:20px; font-weight:700; line-height:1; margin:0 0 12px; }
.home-step__title { color:#0C2D63; font-size:18px; font-weight:700; line-height:1.3; margin:0 0 8px; }
.home-step__text { color:#475569; font-size:15px; line-height:1.5; margin:0; }
@media (min-width:768px) and (max-width:991.98px) {
  .home-steps__grid { gap:16px; }
  .home-step__num { width:44px; height:44px; font-size:18px; }
}
@media (max-width:767.98px) {
  .home-steps__grid { grid-template-columns:1fr; gap:12px; }
  .home-step__num { width:40px; height:40px; font-size:16px; }
}

/* --- People also searched (design p2) ------------------------------------ */
.home-people__list { display:flex; flex-wrap:wrap; gap:12px; list-style:none; margin:0; padding:0; }
.home-people__list a { display:inline-block; padding:8px 16px; border-radius:999px; border:1px solid #DCE6F2; background:#ffffff; color:#0C2D63; font-size:14px; line-height:1.2; text-decoration:none; white-space:nowrap; }
.home-people__list a:hover { border-color:#1A9FD6; color:#1A9FD6; }
@media (max-width:767.98px) {
  .home-people__list { gap:8px; }
  .home-people__list a { padding:6px 12px; font-size:13px; }
}

/* --- FAQ accordion (design p2/p3) ---------------------------------------- */
/* 800px measure, left-aligned from the container edge. One open at a time;
   the first question is open by default (class is-open in the markup). */
.home-faq__inner { max-width:800px; }
.home-faq__item { border-bottom:1px solid #DCE6F2; }
.home-faq__q { display:flex; justify-content:space-between; align-items:center; gap:16px; width:100%; padding:16px 0; border:0; background:transparent; color:#0C2D63; font-size:16px; font-weight:700; line-height:1.4; text-align:left; cursor:pointer; }
.home-faq__q::after { content:"+"; flex:0 0 auto; align-self:center; color:#1A9FD6; font-size:20px; font-weight:700; line-height:1; }
.home-faq__item.is-open .home-faq__q::after { content:"\2212"; }
.home-faq__a { display:none; padding:0 0 16px; }
.home-faq__item.is-open .home-faq__a { display:block; }
.home-faq__a p { color:#475569; font-size:15px; line-height:1.6; margin:0; }
@media (max-width:767.98px) {
  .home-faq__q { font-size:15px; padding:12px 0; }
  .home-faq__a { padding-bottom:12px; }
}

/* --- Footer (final design PDF p2/p5): 6 columns -------------------------- */
/* Order: Brand, Contact, Explore, Company, Legal, Socials. Headings white
   bold, uppercase (via CSS). Socials are icons only, never text. The old
   decorative accent/mesh divs are hidden: the footer is a clean navy band. */
.site-footer__accent, .site-footer__mesh { display:none; }
.site-footer__brand-link { color:#ffffff; font-size:20px; font-weight:800; line-height:1.2; }
.site-footer__brand-link:hover { color:#ffffff; }
.site-footer__scope { color:#EAF6FD; font-size:14px; line-height:1.45; margin:0; }
.site-footer__heading { color:#ffffff; font-size:14px; font-weight:700; line-height:1.3; text-transform:uppercase; letter-spacing:.04em; margin:0 0 12px; white-space:nowrap; }
.site-footer__list a { color:#EAF6FD; font-size:14px; line-height:1.45; text-decoration:none; white-space:nowrap; }
.site-footer__list a:hover { color:#ffffff; text-decoration:underline; }
.site-footer__list li { margin:0 0 8px; }
.site-footer__legal { border-top:1px solid rgba(255,255,255,.2); margin-top:24px; padding-top:16px; text-align:center; color:#EAF6FD; font-size:13px; line-height:1.5; }
.site-footer__legal a { color:#EAF6FD; }
@media (max-width:767.98px) {
  .site-footer__legal { margin-top:16px; }
}

/* --- Colour overrides: old !important rules ---------------------------- */
/* The older part of this file forces every link cyan (a{color:#1A9FD6!important}),
   every heading navy (h1..h6{color:#0C2D63!important}) and every paragraph dark
   grey (p{color:#1F2937!important}). Those beat the plain declarations above,
   which made the View Job / View Full Job buttons blank cyan-on-cyan, the
   alerts heading invisible on the navy band, the alerts button a navy block
   on navy, and the footer headings navy-on-navy. The redesign's own colours
   are re-asserted here with !important. Link selectors use the a.<class> form
   so they tie the old a:link rule (0,1,1) and win by coming later in the file;
   the alerts button uses button.<class> for the same reason against the old
   button[type="submit"] rule. Headings also need -webkit-text-fill-color,
   which the old heading rule sets separately from color. */
a.home-job-card__view, a.home-pane__full { background:#1A9FD6 !important; background-color:#1A9FD6 !important; color:#ffffff !important; }
a.home-job-card__view:hover, a.home-pane__full:hover { background:#0C2D63 !important; background-color:#0C2D63 !important; color:#ffffff !important; }
.home-job-card__title a { color:#0C2D63 !important; }
.home-alerts__title { color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; }
.home-alerts__text { color:#EAF6FD !important; }
html body form button.home-alerts__btn { background:transparent !important; background-color:transparent !important; border:1.5px solid #ffffff !important; border-color:#ffffff !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; }
html body form button.home-alerts__btn:hover { background:#ffffff !important; background-color:#ffffff !important; border-color:#ffffff !important; color:#0C2D63 !important; -webkit-text-fill-color:#0C2D63 !important; }
a.site-footer__brand-link, a.site-footer__brand-link:hover { color:#ffffff !important; }
.site-footer__scope { color:#EAF6FD !important; }
.site-footer__heading { color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; }
.site-footer__list a { color:#EAF6FD !important; }
.site-footer__list a:hover { color:#ffffff !important; }
.home-people__list a { color:#0C2D63 !important; }
.home-people__list a:hover { color:#1A9FD6 !important; }
.home-job-card__company, .home-job-card__meta, .home-pane__company, .home-pane__meta, .home-pane__excerpt, .home-step__text, .home-faq__a p { color:#475569 !important; }
.home-job-card__tags li, .home-pane__tags li { color:#0C2D63 !important; }

/* === END REDESIGN - HOMEPAGE FULL BUILD (2026-11-12) === */

/* === REDESIGN — REMAINING PAGES + ACCOUNTS (2026-11-12) === */
/* Full-website build: the four parts below were written separately and merged
   here as ONE section by the coordinator, in part order. Each part keeps its
   own BEM prefix (.job-detail*, .tpl-*, .page-*/.blog-*, .njp-*); no selector
   is defined by more than one part. Edit a rule in place; do not add a second
   block for the same element. CSS version in the layout is ah. */

/* --- Part 1 — Job detail page --- */
/* ==========================================================================
   JOB DETAIL PAGE — REDESIGN ADDITIONS (2026-11-12, final design PDF p11)
   Part 1 of the full-website build. DO NOT paste this over responsive.css:
   the coordinator merges it at the END of the REDESIGN section in
   responsive.css (after the "Colour overrides" block), and bumps the CSS
   version in the layout so browsers do not serve the cached file.

   Colours: navy #0C2D63 + cyan #1A9FD6 only, white background, #F4F7FB
   bands, #DCE6F2 borders. Font: Arial/Helvetica (site standard).
   8px spacing scale (8/16/24/32/48/64). Breakpoints match the homepage
   build: desktop >=992px, tablet 768-991.98px, mobile <=767.98px.
   Section padding 32/24/16, H1 32/28/24, H2 24/22/20, body 16/15/14.

   !important appears ONLY where an older !important rule in responsive.css
   must be beaten — each use says why in its comment. The two traps that
   matter most on this page:
   (a) the STRUCTURAL HERO OVERRIDE targets "main section:first-of-type"
       and "main section:has(h1)" — this page's section is both, so it
       would paint the whole detail page navy with a white H1 and cyan
       buttons. The "Structural override defence" rules below beat it.
       They MUST stay after that old block in the merged file (merging at
       the end of responsive.css guarantees this).
   (b) the old global rules force every link cyan (a{color:#1A9FD6!important}),
       every heading navy (h1..h6{color:#0C2D63!important}) and every
       paragraph dark grey (p{color:#1F2937!important}).
   ========================================================================== */

/* --- Page + two-column layout (PDF p11) --------------------------------- */
/* Section padding 32/24/16. The old global "section{padding:40px!important}"
   rule forces 40px, so !important is needed here (and in the tablet/mobile
   rules below, where the old 767px section rule forces 24px). */
.job-detail { padding-top:32px !important; padding-bottom:32px !important; }
.job-detail__layout { display:flex; gap:24px; align-items:flex-start; }
.job-detail__main { flex:1 1 auto; min-width:0; }
.job-detail__aside { flex:0 0 360px; min-width:0; }
/* Sidebar blocks are spaced 24px apart; the sidebar itself is sticky on
   desktop only. */
.job-detail__aside > * + * { margin-top:24px; }
@media (min-width:992px) {
  .job-detail__aside { position:sticky; top:24px; }
}
@media (min-width:768px) and (max-width:991.98px) {
  .job-detail { padding-top:24px !important; padding-bottom:24px !important; }
  /* Tablet/mobile: the sidebar sits DIRECTLY below the job, with no gap
     (PDF p11) — the layout gap is 0 and the aside takes no top margin. */
  .job-detail__layout { flex-direction:column; gap:0; }
  .job-detail__main, .job-detail__aside { flex:0 0 100%; width:100%; }
  .job-detail__aside { margin-top:0; }
  .job-detail__aside > * + * { margin-top:16px; }
}
@media (max-width:767.98px) {
  .job-detail { padding-top:16px !important; padding-bottom:16px !important; }
  .job-detail__layout { flex-direction:column; gap:0; }
  .job-detail__main, .job-detail__aside { flex:0 0 100%; width:100%; }
  .job-detail__aside { margin-top:0; }
  .job-detail__aside > * + * { margin-top:16px; }
}

/* --- Breadcrumb ---------------------------------------------------------- */
.job-detail__breadcrumbs { margin:0 0 16px; }
.job-detail__crumbs { display:flex; flex-wrap:wrap; gap:4px 8px; list-style:none; margin:0 !important; padding:0; font-size:14px; line-height:1.4; }
/* The old "p,li{margin:0 0 16px!important}" rule would put a 16px gap under
   every crumb; the crumbs take no margin. */
.job-detail__crumbs li { margin:0 !important; }
.job-detail__crumbs li + li::before { content:"/"; margin-right:8px; color:#64748B; }
.job-detail__crumbs a { text-decoration:none; }
.job-detail__crumbs a:hover { text-decoration:underline; }

/* --- Job card ------------------------------------------------------------ */
.job-detail__card { position:relative; background:#ffffff; border:1px solid #DCE6F2; border-radius:12px; padding:24px; }
/* H1 32/28/24. The old UNIFY rule sets "h1{font-size:32px!important}", so
   the tablet/mobile sizes below need !important too. The title keeps a
   48px right padding so it never runs under the save heart. Margin 8px:
   the old "h1{margin:0 0 12px!important}" rule forces 12px, hence
   !important here. */
.job-detail__title { font-size:32px; line-height:1.25; font-weight:700; margin:0 0 8px !important; padding-right:48px; }
/* Company - place, bold navy. The old "p{color:#1F2937!important}" rule
   forces dark grey on every paragraph, so the navy colour is re-asserted
   with !important (see "Colour overrides" at the end of this file). */
.job-detail__company { font-size:16px; line-height:1.5; font-weight:700; margin:0 0 8px !important; }
.job-detail__meta { font-size:15px; line-height:1.5; margin:0 0 16px !important; }
.job-detail__salary { font-size:16px; line-height:1.5; margin:0 0 24px !important; }
.job-detail__salary strong { font-weight:700; }

/* Save heart, top-right of the job header (same pattern as the homepage
   card hearts). The old "button{padding:12px 24px!important;
   font-size:16px!important}" rule forces button padding/size, so the
   heart's own padding and size need !important. The STRUCTURAL HERO
   OVERRIDE also paints every button in this section cyan — the
   high-specificity defence rule at the end of this file keeps the heart
   transparent. */
.job-detail__save { position:absolute; top:16px; right:16px; width:40px; height:40px; display:flex; align-items:center; justify-content:center; border:0; background:transparent; color:#0C2D63; font-size:20px !important; line-height:1; cursor:pointer; padding:4px !important; }
.job-detail__save[aria-pressed="true"] { color:#1A9FD6; }

/* --- Apply row ----------------------------------------------------------- */
/* Apply Now appears here ONLY, once, directly under the salary line.
   "More jobs" sits beside it (wraps below on narrow screens). */
.job-detail__apply { display:flex; flex-direction:column; gap:12px; align-items:flex-start; margin-bottom:24px; }
.job-detail__apply-row { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.job-detail__apply-btn { display:inline-flex; align-items:center; justify-content:center; height:48px; padding:0 32px; border-radius:8px; background:#1A9FD6; border:1px solid #1A9FD6; color:#ffffff; font-size:16px; font-weight:700; line-height:1; white-space:nowrap; text-decoration:none; cursor:pointer; }
.job-detail__apply-btn:hover { background:#0C2D63; border-color:#0C2D63; color:#ffffff; }
.job-detail__apply-hint { font-size:14px; line-height:1.5; max-width:28rem; margin:0 !important; }
.job-detail__more { display:inline-flex; align-items:center; justify-content:center; height:48px; padding:0 24px; border-radius:8px; background:#ffffff; border:1.5px solid #0C2D63; color:#0C2D63; font-size:16px; font-weight:700; line-height:1; white-space:nowrap; text-decoration:none; cursor:pointer; }
.job-detail__more:hover { border-color:#1A9FD6; color:#1A9FD6; }
.job-detail__unavailable { font-size:15px; line-height:1.5; margin:0 !important; align-self:center; }

/* --- Share row ----------------------------------------------------------- */
.job-detail__share { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:24px; }
.job-detail__share-label { font-size:14px; font-weight:700; line-height:1.4; margin-right:8px; }
.job-detail__share-btn { display:inline-flex; align-items:center; justify-content:center; min-width:88px; height:40px; padding:8px 16px; border-radius:999px; border:1px solid #DCE6F2; background:#ffffff; color:#0C2D63; font-size:14px; font-weight:700; line-height:1; white-space:nowrap; text-decoration:none; cursor:pointer; }
.job-detail__share-btn:hover { border-color:#1A9FD6; color:#1A9FD6; }
/* The copy button is a <button>: the old "button{padding:12px 24px!important;
   font-size:16px!important}" rule forces its padding and size, so the pill
   padding and size need !important. The <a> share buttons take their navy
   colour from the "Colour overrides" block at the end of this file. */
button.job-detail__share-btn { padding:8px 16px !important; font-size:14px !important; }

/* --- About the role + benefit tags --------------------------------------- */
/* H2 24/22/20. The old UNIFY rule sets "h2{font-size:24px!important}", so
   the tablet/mobile sizes below need !important too; its margin rule
   ("h2{margin:0 0 12px!important}") forces 12px, hence !important here. */
.job-detail__heading { font-size:24px; line-height:1.3; font-weight:700; margin:0 0 16px !important; }
.job-detail__body { font-size:16px; line-height:1.6; margin-bottom:24px; }
/* The feed body is raw listing HTML; its own paragraphs keep the site's
   article tightening (line-height 1.48) from the older part of
   responsive.css, which is fine for reading. */
.job-detail__body p:last-child { margin-bottom:0; }
/* Feed body lists: the global "p, li { margin: 0 0 16px !important; }" rule
   gives every bullet a 16px bottom margin (~40px per single-line bullet
   with line-height). Tighten list spacing inside the job description. */
.job-detail__body ul, .job-detail__body ol { margin: 0 0 16px; padding-left: 20px; }
.job-detail__body li { margin-bottom: 6px !important; line-height: 1.5; }
.job-detail__body li:last-child { margin-bottom: 0 !important; }
/* Feed section headings are <b> elements directly before a <ul> — render
   them as real headings instead of inline bold text. (Modern browsers
   only; older browsers simply keep the bold inline, no harm.) */
.job-detail__body b:has(+ ul) { display: block; font-size: 18px; line-height: 1.3; font-weight: 700; margin: 24px 0 12px; }
.job-detail__body b:has(+ ul):first-child { margin-top: 0; }
/* Plain-text feed descriptions are rebuilt as h3 + p by the blade
   formatter — style those headings like the blog body h3. The global
   h3 rule pins margin with !important, so this needs it too. */
.job-detail__body h3 { font-size: 20px; line-height: 1.35; font-weight: 700; margin: 24px 0 8px !important; color: #0C2D63; }
.job-detail__body h3:first-child { margin-top: 0 !important; }
.job-detail__body h3.job-detail__body-disclaimer { font-size: 14px !important; color: #64748B !important; }
.job-detail__body p.job-detail__body-disclaimer { font-size: 14px !important; color: #64748B !important; }
/* Benefit tags, centred like the cards (owner decision, 2026-11-12).
   The old '[class*="tag"]' rule matches this <ul> (its class contains
   "tag") and would paint the whole list pale blue — the override in the
   "Colour overrides" block below keeps the list itself transparent. */
.job-detail__tags { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:8px; list-style:none; margin:0 0 24px !important; padding:8px 0; }
.job-detail__tags li { padding:6px 12px; border-radius:999px; border:1px solid #DCE6F2; background:#F4F7FB; font-size:13px; line-height:1.2; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; margin:0 !important; }

/* --- Reference line + SEO section ---------------------------------------- */
.job-detail__ref { font-size:14px; line-height:1.5; margin:0 !important; }
.job-detail__seo { margin-top:24px; padding:0 24px; }
.job-detail__seo-text { font-size:14px; line-height:1.5; margin:0 !important; }

/* --- Sidebar: At a glance ------------------------------------------------ */
.job-detail__glance { background:#ffffff; border:1px solid #DCE6F2; border-radius:12px; padding:24px; }
.job-detail__glance-title { font-size:24px; line-height:1.3; font-weight:700; margin:0 0 16px !important; }
.job-detail__glance-row { display:flex; gap:12px; align-items:flex-start; margin-bottom:12px; }
.job-detail__glance-row:last-child { margin-bottom:0; }
.job-detail__glance-label { flex:0 1 6.5rem; min-width:0; white-space:normal; overflow-wrap:break-word; font-size:15px; line-height:1.5; }
.job-detail__glance-value { flex:1 1 auto; min-width:0; font-size:15px; line-height:1.5; overflow-wrap:break-word; }

/* --- Sidebar: Similar Jobs ----------------------------------------------- */
.job-detail__similar { background:#ffffff; border:1px solid #DCE6F2; border-radius:12px; padding:24px; }
.job-detail__similar-title { font-size:24px; line-height:1.3; font-weight:700; margin:0 0 16px !important; }
.job-detail__similar-card { border:1px solid #DCE6F2; border-radius:12px; padding:16px; margin-bottom:16px; }
.job-detail__similar-card:last-child { margin-bottom:0; }
.job-detail__similar-card-title { font-size:16px; line-height:1.4; font-weight:700; margin-bottom:8px; }
.job-detail__similar-card-title a { text-decoration:none; }
.job-detail__similar-card-title a:hover { text-decoration:underline; }
.job-detail__similar-company { font-size:14px; line-height:1.5; margin:0 0 12px !important; }
.job-detail__similar-view { display:inline-flex; align-items:center; justify-content:center; height:40px; padding:0 20px; border-radius:8px; background:#1A9FD6; border:1px solid #1A9FD6; color:#ffffff; font-size:14px; font-weight:700; line-height:1; white-space:nowrap; text-decoration:none; cursor:pointer; }
.job-detail__similar-view:hover { background:#0C2D63; border-color:#0C2D63; color:#ffffff; }

/* --- Sidebar: alerts box -------------------------------------------------- */
/* Stacked (narrow 360px sidebar): email field on top, button below, both
   full width — the one-line homepage band layout does not fit here. */
.job-detail__alerts { background:#ffffff; border:1px solid #DCE6F2; border-radius:12px; padding:24px; }
.job-detail__alerts-title { font-size:24px; line-height:1.3; font-weight:700; margin:0 0 8px !important; }
.job-detail__alerts-text { font-size:15px; line-height:1.5; margin:0 0 16px !important; }
.job-detail__alerts-group { display:flex; flex-direction:column; gap:8px; }
.job-detail__alerts-input { width:100%; height:48px; padding:0 16px; border-radius:999px; border:1px solid #DCE6F2; background:#ffffff; color:#1F2937; font-size:15px; }
.job-detail__alerts-input::placeholder { color:#64748B; }
/* The alerts submit is a <button type="submit">: the old
   'button[type="submit"]{background:#0C2D63!important}' rule forces navy,
   so the cyan background is re-asserted with the button.<class> form in
   the "Colour overrides" block below. The old "button{padding:12px 24px!important}"
   rule also forces its padding, hence !important here. */
.job-detail__alerts-btn { width:100%; height:48px; padding:0 24px !important; border-radius:999px; border:1px solid #1A9FD6; background:#1A9FD6; color:#ffffff; font-size:15px; font-weight:700; line-height:1; white-space:nowrap; cursor:pointer; }
.job-detail__alerts-btn:hover { background:#0C2D63; border-color:#0C2D63; }

/* --- Tablet / mobile sizes ------------------------------------------------ */
/* Body text steps down 16/15/14 and small text 14/13/12. The old
   "body{font-size:16px!important}" rule pins the inherited size, so the
   stepped sizes below need !important. */
@media (min-width:768px) and (max-width:991.98px) {
  .job-detail__title { font-size:28px !important; }
  .job-detail__heading, .job-detail__glance-title, .job-detail__similar-title, .job-detail__alerts-title { font-size:22px !important; }
  .job-detail__company, .job-detail__salary, .job-detail__body { font-size:15px !important; }
  .job-detail__meta, .job-detail__glance-label, .job-detail__glance-value, .job-detail__alerts-text, .job-detail__unavailable { font-size:14px !important; }
  .job-detail__crumbs, .job-detail__share-label, .job-detail__apply-hint, .job-detail__similar-company, .job-detail__ref, .job-detail__seo-text { font-size:13px !important; }
  .job-detail__card, .job-detail__glance, .job-detail__similar, .job-detail__alerts { padding:16px; }
  .job-detail__apply-btn, .job-detail__more { height:44px; }
  .job-detail__alerts-input, .job-detail__alerts-btn { height:44px; }
}
@media (max-width:767.98px) {
  .job-detail__title { font-size:24px !important; }
  .job-detail__heading, .job-detail__glance-title, .job-detail__similar-title, .job-detail__alerts-title { font-size:20px !important; }
  .job-detail__company, .job-detail__salary, .job-detail__body { font-size:14px !important; }
  .job-detail__meta, .job-detail__glance-label, .job-detail__glance-value, .job-detail__alerts-text, .job-detail__unavailable { font-size:13px !important; }
  .job-detail__crumbs, .job-detail__share-label, .job-detail__apply-hint, .job-detail__similar-company, .job-detail__ref, .job-detail__seo-text { font-size:12px !important; }
  .job-detail__card, .job-detail__glance, .job-detail__similar, .job-detail__alerts { padding:16px; }
  .job-detail__apply-btn, .job-detail__more { height:40px; }
  .job-detail__apply { flex-direction:column; }
  .job-detail__apply-btn, .job-detail__more { width:100%; }
  .job-detail__alerts-input, .job-detail__alerts-btn { height:40px; }
}

/* --- Structural override defence ------------------------------------------ */
/* The older STRUCTURAL HERO OVERRIDE in responsive.css targets
   "main section:first-of-type" and "main section:has(h1)" — this page's
   section is both, so without these rules the whole detail page would
   render on a navy background with a white H1 and cyan buttons. These
   selectors tie or beat the old ones on specificity and win by coming
   later in the merged file (this file is appended at the end). */
html body main section.job-detail { background:#ffffff !important; background-color:#ffffff !important; background-image:none !important; }
html body main section.job-detail h1.job-detail__title { color:#0C2D63 !important; -webkit-text-fill-color:#0C2D63 !important; }
html body main section.job-detail button.job-detail__save { background:transparent !important; background-color:transparent !important; background-image:none !important; border:0 !important; color:#0C2D63 !important; -webkit-text-fill-color:#0C2D63 !important; }
html body main section.job-detail button.job-detail__save[aria-pressed="true"] { color:#1A9FD6 !important; -webkit-text-fill-color:#1A9FD6 !important; }
html body main section.job-detail button.job-detail__share-btn--copy { background:#ffffff !important; background-color:#ffffff !important; background-image:none !important; border:1px solid #DCE6F2 !important; color:#0C2D63 !important; -webkit-text-fill-color:#0C2D63 !important; }

/* --- Colour overrides: old !important rules -------------------------------- */
/* The older part of responsive.css forces every link cyan
   (a{color:#1A9FD6!important}), every heading navy
   (h1..h6{color:#0C2D63!important}) and every paragraph dark grey
   (p{color:#1F2937!important}). The redesign's own colours are re-asserted
   here with !important. Link selectors use the a.<class> form so they tie
   the old a:link rule and win by coming later; the alerts button uses the
   button.<class> form for the same reason against the old
   button[type="submit"] rule. Headings also set -webkit-text-fill-color,
   which the old heading rule sets separately from color. */
a.job-detail__apply-btn { background:#1A9FD6 !important; background-color:#1A9FD6 !important; color:#ffffff !important; }
a.job-detail__apply-btn:hover { background:#0C2D63 !important; background-color:#0C2D63 !important; color:#ffffff !important; }
a.job-detail__more { background:#ffffff !important; background-color:#ffffff !important; color:#0C2D63 !important; }
a.job-detail__more:hover { color:#1A9FD6 !important; }
a.job-detail__share-btn { background:#ffffff !important; background-color:#ffffff !important; color:#0C2D63 !important; }
a.job-detail__share-btn:hover { color:#1A9FD6 !important; }
.job-detail__similar-card-title a { color:#0C2D63 !important; }
a.job-detail__similar-view { background:#1A9FD6 !important; background-color:#1A9FD6 !important; color:#ffffff !important; }
a.job-detail__similar-view:hover { background:#0C2D63 !important; background-color:#0C2D63 !important; color:#ffffff !important; }
button.job-detail__alerts-btn { background:#1A9FD6 !important; background-color:#1A9FD6 !important; border-color:#1A9FD6 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; }
button.job-detail__alerts-btn:hover { background:#0C2D63 !important; background-color:#0C2D63 !important; border-color:#0C2D63 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; }
/* 2026-11-13: sidebar alerts button hover was not visibly changing (owner + browser both confirmed). Strong selector + transition so cyan -> navy is unmistakable. */
html body form button.job-detail__alerts-btn:hover { background:#0C2D63 !important; background-color:#0C2D63 !important; border-color:#0C2D63 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; }
button.job-detail__alerts-btn { transition:background-color .2s ease, border-color .2s ease; }
/* 2026-11-13: contact hero + about values left-aligned (owner); blog lead gets breathing room. */
html body main section.contact-hero, html body main section.contact-hero .contact-hero__title, html body main section.contact-hero p.contact-hero__subtitle { text-align:left !important; }
html body main section.contact-hero p.contact-hero__subtitle { margin-left:0 !important; margin-right:0 !important; }
html body main section.about-values .about-values__heading, html body main section.about-values .about-values__lead { text-align:left !important; margin-left:0 !important; margin-right:0 !important; }
html body main section.page--blog { padding-top:32px !important; }
/* 2026-11-13: vision gets its own visible band (owner: it was hidden inside the mission text). */
html body main section.about-section .about-vision { background:#ffffff !important; border:1px solid #DCE6F2 !important; border-left:4px solid #1A9FD6 !important; border-radius:12px !important; padding:32px !important; margin-top:24px !important; text-align:left !important; box-shadow:0 4px 20px rgba(12,45,99,0.06) !important; }
html body main section.about-section .about-vision__heading { color:#0C2D63 !important; font-size:24px !important; line-height:1.3 !important; font-weight:700 !important; margin:0 0 12px !important; text-align:left !important; }
html body main section.about-section .about-vision__text { color:#1F2937 !important; font-size:16px !important; line-height:1.6 !important; margin:0 !important; text-align:left !important; }
/* 2026-11-13: About cards unified to homepage job-card style (white + cyan left border); green ($brand-teal) removed — brand is navy + cyan only. */
html body main section.about-section .about-block--highlight { border-left:4px solid #1A9FD6 !important; }
html body main section.about-values .about-value-card { background:#ffffff !important; border:1px solid #DCE6F2 !important; border-radius:12px !important; text-align:center !important; }
html body main section.about-values .about-value-card__num { display:inline-flex !important; align-items:center !important; justify-content:center !important; width:48px !important; height:48px !important; border-radius:50% !important; background:#0C2D63 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; font-size:20px !important; font-weight:700 !important; line-height:1 !important; letter-spacing:0 !important; margin:0 0 12px !important; }
html body main section.about-values .about-value-card__title { color:#0C2D63 !important; font-size:18px !important; }
html body main section.about-values .about-value-card__text { color:#475569 !important; font-size:15px !important; text-align:center !important; }
/* 2026-11-13: footer brand white + tagline cyan (owner chose); Terms contact card green edge -> cyan (brand is navy + cyan only). */
html body footer.site-footer a.site-footer__brand-link, html body footer.site-footer a.site-footer__brand-link:hover { color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; }
html body footer.site-footer p.site-footer__scope { color:#1A9FD6 !important; -webkit-text-fill-color:#1A9FD6 !important; }
/* 2026-11-13: FAQ heading stays navy, questions cyan (owner: "heading navy, sawal cyan"). */
html body section.home-faq .home-faq__q { color:#1A9FD6 !important; -webkit-text-fill-color:#1A9FD6 !important; }
html body section.home-faq .home-faq__title { color:#0C2D63 !important; }
html body main section.legal-body .legal-contact { border-left:4px solid #1A9FD6 !important; }
html body main section.about-section .about-pillar { background:#ffffff !important; border:1px solid #DCE6F2 !important; border-left:4px solid #1A9FD6 !important; box-shadow:0 4px 20px rgba(12,45,99,0.06) !important; }
html body main section.about-section .about-pillar__title { background:transparent !important; background-color:transparent !important; }
html body main section.about-section .about-pillar__list, html body main section.about-section .about-pillar__list li { background:transparent !important; }
html body main section.page--blog .page__title { margin-bottom:20px !important; }
html body main section.page--blog .page__lead { margin-bottom:48px !important; }
.job-detail__company { color:#0C2D63 !important; }
.job-detail__meta, .job-detail__similar-company, .job-detail__alerts-text, .job-detail__unavailable { color:#475569 !important; }
.job-detail__ref, .job-detail__seo-text { color:#64748B !important; }
/* The old '[class*="tag"]' rule matches ul.job-detail__tags (its class
   contains "tag") and would paint the whole list pale blue with a cyan
   border. The list itself stays transparent; the <li> pills keep the
   card-tag look. */
ul.job-detail__tags { background:transparent !important; background-color:transparent !important; background-image:none !important; border:0 !important; }
/* 2026-11-13: old line-242 rule paints every first <section> navy — these
   sections must stay light. Doubled class beats it. */
.visually-hidden { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0, 0, 0, 0) !important; white-space:nowrap !important; border:0 !important; }
html body main section.job-detail__seo.job-detail__seo { background:transparent !important; background-color:transparent !important; background-image:none !important; }
html body main section.job-detail__similar.job-detail__similar { background:#ffffff !important; background-color:#ffffff !important; background-image:none !important; }
/* 2026-11-13: page heads keep the navy band (owner) — intro/lead text light so it reads on navy. */
html body main section.tpl-page.tpl-page .tpl-page__intro { color:#EAF6FD !important; -webkit-text-fill-color:#EAF6FD !important; }
html body main section.page--blog.page--blog .page__lead, html body main section.page--post.page--post .page__lead { color:#EAF6FD !important; -webkit-text-fill-color:#EAF6FD !important; }
.job-detail__tags li { color:#0C2D63 !important; }

/* === END JOB DETAIL — REDESIGN ADDITIONS (2026-11-12) === */

/* --- Part 2 — Template pages (category / city / remote) --- */
/* ==========================================================================
   TEMPLATE PAGES — CSS additions (Part 2 of the full-website build)
   --------------------------------------------------------------------------
   For the category / city / remote pattern blades. DO NOT edit
   redesign-homepage-full/responsive.css — the coordinator merges this
   file into it (append at the end, after the REDESIGN section).

   Design standard: navy #0C2D63 + cyan #1A9FD6 on white, light grey
   #F4F7FB bands, #DCE6F2 borders; Arial/Helvetica (site standard);
   8px system; section padding 32/24/16; H1 32/28/24; H2 24/22/20;
   body 16/15/14. All rules BEM, scoped to .tpl-* classes. The filter
   row, board section padding and FAQ reuse the proven .home-* classes
   from responsive.css — no rules for those are duplicated here.

   !important is used in exactly ONE place below (the intro colour),
   to beat the documented old rule p{color:#1F2937!important}; the
   reason is stated on the rule.
   ========================================================================== */

/* --- Page head: H1 + intro (one H1 per page; intro 800px, left) ------- */
.tpl-page { padding-top:32px; padding-bottom:0; }
.tpl-page__title { color:#0C2D63; font-size:32px; line-height:1.25; font-weight:700; margin:0 0 16px; }
/* Intro colour: the older part of responsive.css forces every paragraph
   dark grey (p{color:#1F2937!important}), which would beat this plain
   rule. The redesign's body-copy grey is re-asserted with !important,
   the same pattern as the homepage "Colour overrides" block. */
.tpl-page__intro { max-width:800px; color:#475569 !important; font-size:16px; line-height:1.6; margin:0; }

/* Popular roles list (2026-11-15): sits on the navy page-head band, so
   the text must be LIGHT like the intro — without this the role titles
   and descriptions render dark-on-navy and are unreadable. */
.tpl-roles { margin:24px 0 0; }
.tpl-roles__title { color:#FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important; font-size:20px; line-height:1.3; font-weight:700; margin:0 0 12px; }
.tpl-roles__list { list-style:none; margin:0; padding:0; }
.tpl-roles__list li { color:#EAF6FD !important; -webkit-text-fill-color:#EAF6FD !important; font-size:15px; line-height:1.6; margin:0 0 10px; padding-left:18px; position:relative; }
.tpl-roles__list li::before { content:"•"; position:absolute; left:0; top:0; color:#1A9FD6; }
.tpl-roles__list li strong { color:#FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important; font-weight:700; }

/* --- Chosen-value filter pills -------------------------------------------
   The pill shows "Label: value" (PDF 3.1: "Category: Healthcare",
   "Country: USA", "State: Illinois"). The label is a visible span;
   the input/select value itself stays the plain filter value, so
   filtering is untouched. The field div becomes the pill (border,
   radius, background, height) and the inner control goes borderless,
   so the label and the control read as one pill. The dropdown-widget
   wrapper the board script adds around text inputs is flexed the same
   way; its option panel is absolutely positioned, so no overflow
   clipping is set on the field (overflow:hidden would cut the panel). */
.tpl-filter__field { display:flex; align-items:center; height:48px; border:1px solid #DCE6F2; border-radius:999px; background:#ffffff; }
.tpl-filter__prefix { flex:0 0 auto; padding-left:16px; color:#0C2D63; font-size:14px; font-weight:700; line-height:1; white-space:nowrap; }
.tpl-filter__field .home-filter__input { flex:1 1 auto; min-width:0; height:100%; padding:0 16px 0 8px; border:0; border-radius:0; background:transparent; }
.tpl-filter__field .njp-widget-wrap { flex:1 1 auto; min-width:0; display:flex; height:100%; }
.tpl-filter__field .njp-widget-wrap .home-filter__input { flex:1 1 auto; min-width:0; height:100%; }

/* --- Card grid gutters (PDF 10: board gap 24/16/12) ----------------------
   The shared jobs-grid partial renders .row.g-4 (24px at every size);
   these rules step the gutters down on tablet and mobile. Specificity
   (0,2,0) beats Bootstrap's .g-4 (0,1,0). Covers the main grid and the
   fallback grid below it. */
.tpl-board .row, .tpl-fallback .row { --bs-gutter-x:24px; --bs-gutter-y:24px; }

/* --- Empty-board fallback -------------------------------------------------
   Only rendered when the page's own board is empty and the controller
   passed fallback jobs + label. The label is the H2; the grid follows. */
.tpl-fallback { margin-top:32px; }
.tpl-fallback__title { color:#0C2D63; font-size:24px; line-height:1.3; font-weight:700; margin:0 0 16px; }

@media (min-width:768px) and (max-width:991.98px) {
  .tpl-page { padding-top:24px; }
  .tpl-page__title { font-size:28px; margin-bottom:12px; }
  .tpl-page__intro { font-size:15px; }
  .tpl-filter__field { height:44px; }
  .tpl-board .row, .tpl-fallback .row { --bs-gutter-x:16px; --bs-gutter-y:16px; }
  .tpl-fallback { margin-top:24px; }
  .tpl-fallback__title { font-size:22px; margin-bottom:12px; }
}

@media (max-width:767.98px) {
  .tpl-page { padding-top:16px; }
  .tpl-page__title { font-size:24px; margin-bottom:12px; }
  .tpl-page__intro { font-size:14px; }
  .tpl-filter__field { height:40px; }
  .tpl-filter__prefix { padding-left:12px; font-size:13px; }
  .tpl-filter__field .home-filter__input { padding:0 12px 0 8px; font-size:13px; }
  .tpl-board .row, .tpl-fallback .row { --bs-gutter-x:12px; --bs-gutter-y:12px; }
  .tpl-fallback { margin-top:16px; }
  .tpl-fallback__title { font-size:20px; margin-bottom:12px; }
}

/* --- Part 3 — Static + blog pages --- */
/* ==========================================================================
   STATIC + BLOG PAGES — CSS ADDITIONS (2026-11-12, Part 3 of the
   full-website build; final design PDF sections 10, 11, 13.5, 13.6)
   For the coordinator to MERGE into responsive.css (append at the END of
   the file, after the REDESIGN section). Do NOT edit
   redesign-homepage-full/responsive.css directly from this file.
   MERGE ORDER MATTERS: these rules must come AFTER the older rules in
   responsive.css, because several old rules carry !important and the
   overrides below win only by tying their specificity and coming later
   (same pattern as the homepage "Colour overrides" block).
   Conventions: BEM, scoped to .page-* / .blog-* classes. 8px spacing
   scale (8/16/24/32). Colours: navy #0C2D63 + cyan #1A9FD6 on white,
   #F4F7FB bands, #DCE6F2 borders. Font: Arial/Helvetica (site standard).
   Type scale: H1 32/28/24, H2 24/22/20, body 16/15/14.
   !important is used ONLY where a documented old !important rule must be
   beaten — each use says why in its comment.
   ========================================================================== */

/* --- Page shell: section rhythm + 800px readable width, left-aligned -- */
/* The old UNIFY block forces every section to 40px padding with
   !important, so this scoped rule also needs !important to step it down
   to the design's 32/24/16px. */
.page { padding-top:32px !important; padding-bottom:32px !important; }
.page__inner { max-width:800px; }
.page__lead--wide { max-width:800px; }
.page__title { color:#0C2D63; font-size:32px; line-height:1.25; font-weight:700; margin:0 0 16px; }
.page__subtitle { color:#0C2D63; font-size:24px; line-height:1.3; font-weight:700; margin:32px 0 16px; }
.page__subtitle:first-child { margin-top:0; }
.page__lead { color:#1F2937; font-size:16px; line-height:1.6; margin:0 0 16px; }
.page__text { color:#1F2937; font-size:16px; line-height:1.6; margin:0 0 16px; }
/* Old rule forces every link cyan with !important; page body links stay
   cyan (that matches the design), so no override needed here. */
@media (min-width:768px) and (max-width:991.98px) {
  .page { padding-top:24px !important; padding-bottom:24px !important; }
  .page__title { font-size:28px; }
  .page__subtitle { font-size:22px; margin-top:24px; }
  .page__lead, .page__text { font-size:15px; }
}
@media (max-width:767.98px) {
  .page { padding-top:16px !important; padding-bottom:16px !important; }
  .page__title { font-size:24px; }
  .page__subtitle { font-size:20px; margin-top:24px; }
  .page__lead, .page__text { font-size:14px; }
}

/* --- Buttons: one cyan primary, one navy variant, one outline ---------- */
/* Heights follow the one button standard: 48/44/40px. The old
   button[type="submit"] rule forces navy with !important, and the old
   a{color:#1A9FD6!important} rule forces link text cyan — so both the
   primary link-button and the navy 410 button need !important to show
   their own background AND white text. */
.page-btn { display:inline-flex; align-items:center; justify-content:center; height:48px; padding:0 24px; border-radius:8px; font-size:16px; font-weight:700; line-height:1; white-space:nowrap; text-decoration:none; cursor:pointer; }
.page-btn--primary { background:#1A9FD6 !important; background-color:#1A9FD6 !important; border:1px solid #1A9FD6 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; }
.page-btn--primary:hover { background:#0C2D63 !important; background-color:#0C2D63 !important; border-color:#0C2D63 !important; color:#ffffff !important; }
@media (min-width:768px) and (max-width:991.98px) {
  .page-btn { height:44px; padding:0 20px; }
}
@media (max-width:767.98px) {
  .page-btn { height:40px; padding:0 16px; }
}

/* --- 410 page: actions + newest-jobs block ------------------------------ */
/* "Browse current jobs" is NAVY on this page only — the ONE exception to
   the cyan primary rule (PDF section 12, #21). Do not "fix" it to cyan.
   The a{color:#1A9FD6!important} old rule would paint the label cyan on
   navy, so the navy button re-asserts white text with !important. */
.page-410__actions { display:flex; flex-wrap:wrap; gap:16px; margin:24px 0 32px; }
.page-410__btn { display:inline-flex; align-items:center; justify-content:center; height:48px; padding:0 24px; border-radius:8px; font-size:16px; font-weight:700; line-height:1; white-space:nowrap; text-decoration:none; cursor:pointer; }
.page-410__btn--navy { background:#0C2D63 !important; background-color:#0C2D63 !important; border:1px solid #0C2D63 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; }
.page-410__btn--navy:hover { background:#1A9FD6 !important; background-color:#1A9FD6 !important; border-color:#1A9FD6 !important; color:#ffffff !important; }
.page-410__btn--outline { background:#ffffff !important; background-color:#ffffff !important; border:1.5px solid #0C2D63 !important; color:#0C2D63 !important; -webkit-text-fill-color:#0C2D63 !important; }
.page-410__btn--outline:hover { border-color:#1A9FD6 !important; color:#1A9FD6 !important; }
.page-410__jobs { margin-top:32px; padding-top:32px; border-top:1px solid #DCE6F2; }
@media (min-width:768px) and (max-width:991.98px) {
  .page-410__btn { height:44px; padding:0 20px; }
  .page-410__actions { gap:12px; margin:16px 0 24px; }
}
@media (max-width:767.98px) {
  .page-410__actions { flex-direction:column; align-items:stretch; gap:8px; margin:16px 0 24px; }
  .page-410__btn { height:40px; width:100%; padding:0 16px; }
  .page-410__jobs { margin-top:24px; padding-top:24px; }
}

/* --- Contact form -------------------------------------------------------- */
/* Same error pattern as the homepage alerts form (inline alert-danger +
   per-field @error). The submit button is the cyan primary: the old
   button[type="submit"] navy !important rule must be beaten, same as
   button.home-alerts__btn in the homepage overrides. */
.page-form { margin-top:32px; }
.page-form__field { margin-bottom:16px; }
.page-form__label { display:block; color:#0C2D63 !important; font-size:16px; font-weight:700; line-height:1.4; margin-bottom:8px; }
.page-form__input { width:100%; min-height:48px; padding:12px 16px; border:1px solid #DCE6F2; border-radius:8px; background:#ffffff; color:#1F2937; font-size:16px; line-height:1.5; }
.page-form__input:focus { outline:none; border-color:#1A9FD6; box-shadow: 0 0 0 3px rgba(26,159,214,.15); }
.home-filter__input:focus, .tpl-filter__field:focus, .job-detail__alerts-input:focus, .home-alerts__input:focus { outline:none; border-color:#1A9FD6 !important; box-shadow: 0 0 0 3px rgba(26,159,214,.15); }
.page-form__textarea { min-height:144px; resize:vertical; }
.page-form__input.is-invalid { border-color:#B42318; }
.page-form__error { color:#B42318; font-size:14px; line-height:1.4; margin-top:8px; }
.page-form__submit { display:inline-flex; align-items:center; justify-content:center; height:48px; padding:0 24px; border-radius:8px; background:#1A9FD6 !important; background-color:#1A9FD6 !important; border:1px solid #1A9FD6 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important; font-size:16px; font-weight:700; line-height:1; white-space:nowrap; cursor:pointer; }
.page-form__submit:hover { background:#0C2D63 !important; background-color:#0C2D63 !important; border-color:#0C2D63 !important; color:#ffffff !important; }
@media (min-width:768px) and (max-width:991.98px) {
  .page-form { margin-top:24px; }
  .page-form__label { font-size:15px; }
  .page-form__input { min-height:44px; font-size:15px; }
  .page-form__submit { height:44px; padding:0 20px; }
}
@media (max-width:767.98px) {
  .page-form { margin-top:16px; }
  .page-form__label { font-size:14px; }
  .page-form__input { min-height:44px; font-size:14px; }
  .page-form__submit { height:40px; width:100%; padding:0 16px; }
}

/* --- Blog index: card grid ---------------------------------------------- */
/* 3 columns desktop / 2 tablet / 1 mobile; card radius 12/10/8px,
   1px #DCE6F2 border, padding 14/12/10px (design section 10). The old
   a{color:#1A9FD6!important} rule would paint card titles cyan, so the
   title link re-asserts navy with !important; the "Read Article" link
   stays cyan, matching the design's link colour. */
.blog-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; margin-top:32px; }
.blog-card { display:flex; flex-direction:column; border:1px solid #DCE6F2; border-radius:12px; background:#ffffff; overflow:hidden; }
.blog-card__cover-link { display:block; }
.blog-card__cover { display:block; width:100%; aspect-ratio:16 / 9; object-fit:cover; }
.blog-card__body { display:flex; flex-direction:column; padding:16px; }
.blog-card__date { color:#64748B; font-size:14px; line-height:1.4; margin:0 0 8px; }
.blog-card__title { color:#0C2D63; font-size:20px; line-height:1.35; font-weight:700; margin:0 0 8px; }
.blog-card__title a { color:#0C2D63 !important; text-decoration:none; }
.blog-card__title a:hover { color:#1A9FD6 !important; }
.blog-card__excerpt { color:#1F2937; font-size:16px; line-height:1.6; margin:0 0 16px; }
.blog-card__read { color:#1A9FD6; font-size:16px; font-weight:700; line-height:1.4; margin-top:auto; }
.blog-pagination { margin-top:32px; }
@media (min-width:768px) and (max-width:991.98px) {
  .blog-grid { grid-template-columns:repeat(2, 1fr); gap:16px; margin-top:24px; }
  .blog-card { border-radius:10px; }
  .blog-card__body { padding:12px; }
  .blog-card__title { font-size:18px; }
  .blog-card__excerpt, .blog-card__read { font-size:15px; }
  .blog-pagination { margin-top:24px; }
}
@media (max-width:767.98px) {
  .blog-grid { grid-template-columns:1fr; gap:12px; margin-top:16px; }
  .blog-card { border-radius:8px; }
  .blog-card__body { padding:12px; }
  .blog-card__date { font-size:13px; }
  .blog-card__title { font-size:18px; }
  .blog-card__excerpt, .blog-card__read { font-size:14px; }
  .blog-pagination { margin-top:16px; }
}

/* --- Blog article -------------------------------------------------------- */
/* 800px readable width, left-aligned (design section 10). Body renders
   the stored HTML as-is. Lead-in labels (bold + colon, inline with
   their text, e.g. "Your state: ...") are a CONTENT rule for the post
   author — see blog-post.blade.php; no CSS enforces it. */
.blog-post { max-width:800px; }
.blog-post__date { color:#64748B; font-size:14px; line-height:1.4; margin:0 0 16px; }
.blog-post__cover { display:block; width:100%; border-radius:12px; margin:0 0 24px; }
.blog-post__body { color:#1F2937; font-size:16px; line-height:1.6; }
.blog-post__body h2 { color:#0C2D63; font-size:24px; line-height:1.3; font-weight:700; margin:32px 0 16px; }
.blog-post__body h3 { color:#0C2D63; font-size:20px; line-height:1.35; font-weight:700; margin:24px 0 8px; }
.blog-post__body p { margin:0 0 16px; }
.blog-post__body ul, .blog-post__body ol { margin:0 0 16px; padding-left:24px; }
.blog-post__body li { margin-bottom:8px; }
.blog-post__body strong { color:#0C2D63; }
.blog-post__faq { margin-top:32px; padding-top:32px; border-top:1px solid #DCE6F2; }
.blog-post__faq-item { margin-bottom:16px; }
.blog-post__faq-q { color:#0C2D63; font-size:20px; line-height:1.35; font-weight:700; margin:0 0 8px; }
.blog-post__faq-a { color:#1F2937; font-size:16px; line-height:1.6; margin:0; }
.blog-post__cta { margin-top:32px; padding:24px; background:#F4F7FB; border:1px solid #DCE6F2; border-radius:12px; }
.blog-post__cta .page__subtitle { margin-top:0; }
@media (min-width:768px) and (max-width:991.98px) {
  .blog-post__body { font-size:15px; }
  .blog-post__body h2 { font-size:22px; margin-top:24px; }
  .blog-post__body h3 { font-size:18px; }
  .blog-post__faq, .blog-post__cta { margin-top:24px; }
  .blog-post__cta { padding:24px; }
  .blog-post__faq-q { font-size:18px; }
  .blog-post__faq-a { font-size:15px; }
}
@media (max-width:767.98px) {
  .blog-post__date { font-size:13px; }
  .blog-post__cover { border-radius:8px; margin-bottom:16px; }
  .blog-post__body { font-size:14px; }
  .blog-post__body h2 { font-size:20px; margin-top:24px; }
  .blog-post__body h3 { font-size:16px; }
  .blog-post__faq, .blog-post__cta { margin-top:16px; padding-top:16px; }
  .blog-post__cta { padding:16px; }
  .blog-post__faq-q { font-size:16px; }
  .blog-post__faq-a { font-size:14px; }
}

/* === END STATIC + BLOG PAGES — CSS ADDITIONS (2026-11-12) === */

/* --- Part 4 — Sign Up / Sign In + Post a Job (accounts) --- */
/* =====================================================================
   PART 4 — Sign Up / Sign In + Post a Job (2026-11-12)
   ALL new CSS for the auth / employer / account pages. BEM, scoped to
   .njp-account / .njp-form / .njp-list / .njp-badge / .njp-btn.
   The coordinator merges this file into responsive.css — do NOT edit
   responsive.css here.
   Design standard: navy #0C2D63, cyan #1A9FD6, white, light grey
   #F4F7FB bands, #DCE6F2 borders; Arial/Helvetica; container 1320px;
   8px system; H1 32/28/24, H2 24/22/20, body 16/15/14.
   !important is used ONLY below the "Colour overrides" comment, to beat
   the documented old !important rules (a{color:#1A9FD6!important},
   h1..h6{color:#0C2D63!important}, p{color:#1F2937!important}).
   ===================================================================== */

/* Page shell: 800px readable width, centred (PDF §10 readable width). */
.njp-account {
    padding: 32px 24px;
    background: #FFFFFF;
}

.njp-account__wrap {
    max-width: 800px;
    margin: 0 auto;
}

.njp-account__wrap--wide {
    max-width: 960px;
}

.njp-account__title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 32px;
    line-height: 1.25;
    color: #0C2D63;
    margin: 0 0 16px;
}

.njp-account__heading {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 24px;
    line-height: 1.3;
    color: #0C2D63;
    /* NOTE 2026-11-13: the global h2{margin:0 0 12px!important} (line ~195)
       was forcing 0 top margin, so section headings sat tight against the
       button/form above (e.g. "Your resume" under Save Preferences).
       !important restores the intended gap. */
    margin: 32px 0 16px !important;
}

.njp-account__intro,
.njp-account__meta {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #1F2937;
    margin: 0 0 16px;
}

.njp-account__crumb {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    margin: 0 0 16px;
}

.njp-account__crumb a {
    color: #1A9FD6;
}

.njp-account__status {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #0C2D63;
    background: #F4F7FB;
    border: 1px solid #DCE6F2;
    border-radius: 8px;
    padding: 16px;
    margin: 0 0 24px;
}

.njp-account__empty {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #1F2937;
    margin: 0 0 16px;
}

.njp-account__actions {
    margin: 24px 0;
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
}

.njp-account__body {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #1F2937;
    margin: 0 0 24px;
    white-space: pre-wrap;
}

/* Forms */
.njp-form {
    margin: 0;
}

.njp-form__field {
    margin: 0 0 24px;
    flex: 1 1 0;
    min-width: 0;
}

.njp-form__row {
    display: flex;
    gap: 16px;
}

.njp-form__label {
    display: block;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #0C2D63;
    margin: 0 0 8px;
}

.njp-form__input {
    display: block;
    width: 100%;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #1F2937;
    background: #FFFFFF;
    border: 1px solid #DCE6F2;
    border-radius: 8px;
    padding: 12px 16px;
}

.njp-form__textarea {
    resize: vertical;
    min-height: 160px;
}

.njp-form__hint {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #64748B;
    margin: 8px 0 0;
}

.njp-form__error {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #B42318;
    margin: 8px 0 0;
}

.njp-form__note {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #1F2937;
    margin: 16px 0 0 !important;
}

.njp-form__note a {
    color: #1A9FD6;
}

.njp-form__field--check {
    margin-bottom: 16px;
}

.njp-form__check {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    color: #1F2937;
}

.njp-form__radios {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.njp-form__radio {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    color: #1F2937;
}

/* Buttons: one primary (cyan) + one outline (navy), 48/44/40px. */
.njp-btn {
    display: inline-block;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    border-radius: 8px;
    padding: 16px 24px;
    min-height: 48px;
    cursor: pointer;
    border: 1.5px solid transparent;
    transition: background-color .2s, border-color .2s, color .2s;
}
.njp-btn--primary:hover { background: #0C2D63; border-color: #0C2D63; }
.njp-btn--outline:hover { background: #F4F7FB; border-color: #1A9FD6; color: #1A9FD6; }

.njp-btn--primary {
    background: #1A9FD6;
    color: #FFFFFF;
    border-color: #1A9FD6;
}

.njp-btn--outline {
    background: #FFFFFF;
    color: #0C2D63;
    border-color: #0C2D63;
}

.njp-btn--small {
    padding: 12px 16px;
    min-height: 40px;
    font-size: 14px;
}

/* Lists (my jobs, saved jobs, account, admin review) */
.njp-list {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
}

.njp-list__item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    background: #FFFFFF;
    border: 1px solid #DCE6F2;
    border-left: 4px solid #1A9FD6;
    border-radius: 12px;
    padding: 16px;
    margin: 0 0 16px;
}

.njp-list__main {
    flex: 1 1 320px;
    min-width: 0;
}

.njp-list__title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: #0C2D63;
    text-decoration: none;
}

.njp-list__meta {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #475569;
    margin: 8px 0 0;
}

.njp-list__meta a {
    color: #1A9FD6;
}

.njp-list__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* Status badges */
.njp-badge {
    display: inline-block;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    border-radius: 8px;
    padding: 8px 16px;
    white-space: nowrap;
}

.njp-badge--pending {
    background: #F4F7FB;
    color: #0C2D63;
    border: 1px solid #DCE6F2;
}

.njp-badge--approved {
    background: #1A9FD6;
    color: #FFFFFF;
}

.njp-badge--rejected {
    background: #FFFFFF;
    color: #B42318;
    border: 1px solid #B42318;
}

.njp-pagination {
    margin: 24px 0 0;
}

/* Colour overrides — !important ONLY here, to beat the documented old
   !important rules in responsive.css (a{color:#1A9FD6!important},
   h1..h6{color:#0C2D63!important}, p{color:#1F2937!important}) which
   would otherwise make the primary button text cyan-on-cyan and the
   outline button text navy-on-white unreadable. */
a.njp-btn--primary {
    color: #FFFFFF !important;
}

a.njp-btn--outline {
    color: #0C2D63 !important;
}

button.njp-btn--primary {
    color: #FFFFFF !important;
}

button.njp-btn--outline {
    color: #0C2D63 !important;
}

h1.njp-account__title {
    color: #0C2D63 !important;
}

h2.njp-account__heading {
    color: #0C2D63 !important;
}

/* Tablet: 28px H1, 22px H2, 15px body. */
@media (max-width: 991px) {
    .njp-account {
        padding: 24px 16px;
    }

    .njp-account__title {
        font-size: 28px;
    }

    .njp-account__heading {
        font-size: 22px;
    }

    .njp-account__intro,
    .njp-account__meta,
    .njp-account__empty,
    .njp-account__body,
    .njp-form__label,
    .njp-form__input,
    .njp-form__check,
    .njp-form__radio {
        font-size: 15px;
    }

    .njp-btn {
        min-height: 44px;
        padding: 14px 20px;
    }

    .njp-form__row {
        flex-wrap: wrap;
    }
}

/* Mobile: 24px H1, 20px H2, 14px body; form rows stack. */
@media (max-width: 767px) {
    .njp-account {
        padding: 16px 12px;
    }

    .njp-account__title {
        font-size: 24px;
    }

    .njp-account__heading {
        font-size: 20px;
    }

    .njp-account__intro,
    .njp-account__meta,
    .njp-account__empty,
    .njp-account__body,
    .njp-form__label,
    .njp-form__input,
    .njp-form__check,
    .njp-form__radio {
        font-size: 14px;
    }

    .njp-btn {
        min-height: 40px;
        padding: 12px 16px;
        width: 100%;
    }

    .njp-form__row {
        flex-direction: column;
        gap: 0;
    }

    .njp-list__item {
        padding: 16px;
    }
}

/* === END REDESIGN — REMAINING PAGES + ACCOUNTS (2026-11-12) === */

/* Popups (modals): body text starts from the LEFT and wraps normally. */
.modal { white-space: normal !important; }
.modal-body { text-align: left !important; white-space: normal !important; }

/* --- Filter dropdown panel width (2026-11-14, owner: dropdown cut off) ---
   The board script (makeWidget) builds the Category/State option panel as
   an absolutely-positioned div with inline left:0; right:0, which pins it
   to the narrow filter-input width — long names ("Administration",
   "Transportation & Logistics") were truncated. A min-width lets the
   panel extend past the input so every option shows in full. The option
   buttons wrap normally (no ellipsis). */
.njp-widget-wrap > div {
    min-width: 280px !important;
    max-width: calc(100vw - 32px) !important;
}
.njp-widget-wrap > div button {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
}

/* --- Category pill width (2026-11-14, owner: "IT & Softwar" cut off) ---
   The Category pill is one of seven filters in the row, so its input was
   too narrow to show the selected value in full. Give the Category field
   (and its input) a floor so "IT & Software" fits after the "Category:"
   prefix. */
.home-filters > .tpl-filter__field:nth-child(4) {
    flex: 1 1 260px !important;
    min-width: 260px !important;
}
#publicClassificationFilter {
    min-width: 150px !important;
    flex-basis: 150px !important;
}

/* --- Filter-row dropdown arrows aligned (2026-11-14, owner: "koi agy koi pechy") ---
   Category/State use the widget toggle (a text triangle at right:10px);
   Country/Date Posted are native selects (browser arrow, different size and
   spot). The row looked uneven. Give the native selects the same chevron
   at the same spot (right 14px, colour #475569 to match the toggle) and
   move the widget toggle to the same 14px spot. */
/* --- Native filter selects: beat the #jobs-filter-form select rule ---
   That earlier rule (specificity 1,0,1) draws a 6x4 SOLID triangle, which
   beat this 12x8 stroked chevron (specificity 1,0,0) — that is why Country
   and Date Posted showed a tiny solid triangle while Category/State showed
   the 12x8 chevron. Two IDs (2,0,0) win, and the size is pinned to 12x8. */
#jobs-filter-form #publicCountryFilter, #jobs-filter-form #publicDatePostedFilter {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%228%22 viewBox=%220 0 12 8%22%3E%3Cpath d=%22M1 1l5 5 5-5%22 fill=%22none%22 stroke=%22%23475569%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-size: 12px 8px !important;
    background-position: right 14px center !important;
    padding-right: 36px !important;
}
.njp-widget-wrap > button {
    right: 14px !important;
}

/* --- Form selects: native arrow glued to the border (2026-11-14, owner
   screenshot of the Company Profile Industry dropdown) ---
   The browser's built-in arrow cannot be moved with padding (same lesson
   as the popup). Draw the chevron at a fixed 14px from the border.
   Covers Industry + Designation on Company Profile, Work type on Sign Up,
   and any other select.njp-form__input. */
select.njp-form__input {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%228%22 viewBox=%220 0 12 8%22%3E%3Cpath d=%22M1 1l5 5 5-5%22 fill=%22none%22 stroke=%22%23475569%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    padding-right: 36px !important;
}

/* --- Auth card (Sign In / Sign Up), GigBlow-style centred card (2026-11-14) ---
   The auth forms were a wide (800px) plain block. GigBlow shows a narrow
   centred card; this does the same in our navy/cyan brand (no green).
   Only the auth pages get the card (modifier class), other account pages
   keep the wide layout. */
.njp-account__wrap--auth {
    max-width: 480px;
    background: #FFFFFF;
    border: 1px solid #DCE6F2;
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(12, 45, 99, 0.08);
    padding: 32px;
}
.njp-account__wrap--auth .njp-account__title {
    font-size: 28px;
    margin-bottom: 8px;
}
.njp-form__input:focus {
    border-color: #1A9FD6 !important;
    outline: none;
    box-shadow: 0 0 0 3px rgba(26, 159, 214, 0.15);
}
.njp-form__input::placeholder, .page-form__input::placeholder { color: #64748B; }
input[type="checkbox"], input[type="radio"] { accent-color: #1A9FD6; }

/* HERO SEARCH ICON REMOVED (owner 2026-11-14 23:47): the magnifier sat
   flush against the left border and looked bad. Hide it at every width
   and give the input back its left padding. */
.home-hero__search-icon { display: none !important; }
html body section.home-hero.home-hero .home-hero__search-form { padding: 6px !important; }
@media (max-width:767.98px){
    html body nav.navbar~main .home-hero .home-hero__search-input { padding-left: 16px !important; }
}

/* --- Filter selects: empty value shows the placeholder grey (2026-11-14,
   owner: Category colour/font check) ---
   Category/State are text inputs whose placeholder renders #64748B, but
   Country/Date Posted are native selects — their "Country"/"Date Posted"
   option renders in the navy input colour, so the four pills did not
   match. Grey the select text while its empty option is selected. */
/* (removed 2026-11-14 23:58: owner wants filter text NAVY, not grey —
   the grey :has() rule that greyed the empty selects is gone; selects
   fall back to the navy .home-filter__input colour) */

/* --- Homepage Category pill width (2026-11-14, owner: "Transportation &"
   cut off; 2026-11-15, owner: box too big; one-row redesign) ---
   STANDARD (Indeed / LinkedIn): pills are sized to their content, not
   stretched equal. Category is the widest pill because it holds the
   longest names ("Transportation & Logistics" ~190px + chevron). 220px
   fits it fully without dwarfing the other pills. flex-grow: 0.
   One row now: Category is the 1st field (nth-child 1). */
.home-filters > .home-filter--field:nth-child(1) {
    flex: 0 1 220px !important;
    min-width: 220px !important;
    max-width: none !important;
}
#publicClassificationFilter {
    min-width: 200px !important;
    flex-basis: 200px !important;
}

/* --- Filter row: tighter gap so Saved stays on the same line (2026-11-14,
   owner: Saved must be on the same line) --- */
.home-filters { gap: 8px !important; }

/* --- Widget toggle chevron = same SVG as native selects (2026-11-14,
   owner: arrows still different) ---
   The makeWidget toggle used a text triangle glyph (16px font) while
   Country/Date Posted use a 12x8px SVG chevron — different size and spot.
   Hide the glyph and draw the same SVG chevron, centred in a 24px button
   whose right edge sits 8px from the field edge, so the chevron spans the
   same 14-26px band as the native selects.
   PADDING (owner 2026-11-15 18:46): the widget inputs (Category/State)
   had padding-right 38px (JS inline) vs 36px on the native selects, so
   the text ended at a different distance from the arrow. Force 36px
   on the filter-form inputs too, so every arrow and every text edge
   sit at exactly the same spot. */
#jobs-filter-form input.home-filter__input {
    padding-right: 36px !important;
}
.njp-widget-wrap > button {
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    width: 24px !important;
    height: 24px !important;
    padding: 0 !important;
    right: 8px !important;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%228%22 viewBox=%220 0 12 8%22%3E%3Cpath d=%22M1 1l5 5 5-5%22 fill=%22none%22 stroke=%22%23475569%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-size: 12px 8px !important;
    background-position: center !important;
}

/* --- Filter pill sizing (2026-11-15, owner: boxes unbalanced, row 2
   stuck on the left; one-row redesign) ---
   STANDARD (Indeed / LinkedIn / Glassdoor): every pill is sized to its
   own content (flex-grow: 0), all the same height, 12px gaps, centred.
   No pill is stretched to match another. 150px fits every short label
   (Job Type, Work Mode, Country, Date Posted) with its chevron and
   padding. Category is nth-child(1), so the others are :not(1). */
.home-filters > .home-filter--field:not(:nth-child(1)) {
    flex: 0 1 150px !important;
    min-width: 150px !important;
    max-width: none !important;
}
.home-filters > .home-filter--field { min-width: 0 !important; }
.home-filters .home-filter__input { min-width: 0 !important; }

/* --- Filter text NAVY (2026-11-14, owner: grey barely visible) ---
   The Category/State placeholders were grey #64748B — too faint to read.
   Make all filter text navy #0C2D63 so every pill reads clearly. */
.home-filter__input::placeholder { color: #0C2D63 !important; }

/* --- Position filter field (2026-11-15, owner: need a Position field) ---
   The Position filter was a hidden input; it is now a visible pill after
   Category. Give it room for a job title (160px) and tighten the row gap
   to 6px so all nine controls still fit on one line at desktop width. */
.home-filters { gap: 16px !important; justify-content: center !important; }
.home-filters > .home-filter--field { flex-grow: 0 !important; max-width: none !important; }
/* One-row redesign (2026-11-15, owner): Position + State are hidden
   inputs now (kept in the form so URL values and the hero place search
   still work), so there is no visible Position pill to size. */
/* Saved: small heart button at the end of the row (one-row redesign). */
.home-filter--saved { height: 48px; min-width: 48px; padding: 0 12px; border-radius: 999px; border: 1px solid #DCE6F2; background: #ffffff; color: #0C2D63; font-size: 16px; cursor: pointer; white-space: nowrap; }
.home-filter--saved.is-active { background: #0C2D63; border-color: #0C2D63; color: #ffffff; }
/* Clear: plain text link that resets every filter (replaces All Jobs). */
.home-filter--clear { background: transparent; border: 0; color: #0C2D63; font-size: 14px; font-weight: 700; cursor: pointer; padding: 0 4px; white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
/* Position is a plain text input (no chevron) — less right padding so the
   job title fits in the narrower pill. */
#publicPositionFilter { padding-right: 12px !important; }

/* ==========================================================================
   CSS STANDARDISATION (S3-S30, 2026-11-15, staging) — appended, never
   reordered above the rules it must beat. One primary (cyan #1A9FD6),
   section padding 32/24/16, H1 32/28/24, body 16/15/14, button heights
   48/44/40, radius 8px / pills 999px, palette consolidated (see S22).
   Filter-row, chevron, one-row filter bar and hero rules above are
   untouched by this block.
   ========================================================================== */

/* --- S10: H1 standard 32/28/24 (dead clamps removed above) --- */
@media (min-width:768px) and (max-width:991.98px) {
  h1, .h1 { font-size:28px !important; }
}
@media (max-width:767.98px) {
  h1, .h1 { font-size:24px !important; }
  /* --- S11: body text at the mobile breakpoint is 14px --- */
  body { font-size:14px !important; }
}

/* --- S8: auth card mobile padding (was 32px at all sizes) --- */
@media (max-width:991px) {
  .njp-account__wrap--auth { padding:24px; }
}
@media (max-width:767px) {
  .njp-account__wrap--auth { padding:20px 16px; }
  /* --- S10: auth title 28px -> 24px on mobile --- */
  .njp-account__wrap--auth .njp-account__title { font-size:24px; }
}

/* --- S13/S14: generic buttons — radius 8px, height scale 48/44/40 --- */
.btn { border-radius:8px !important; }
@media (min-width:768px) and (max-width:991.98px) {
  .btn, .page-link { min-height:44px; }
}

/* --- S15: outline borders standardised to 1.5px --- */
.btn-outline, .btn-outline-primary, .njp-btn--outline { border-width:1.5px; }

/* --- S7: large cards 24px desktop / 16px mobile --- */
@media (max-width:767.98px) {
  .home-pane { padding:16px; }
}

/* --- S17: same 3px cyan focus ring on popup/modal inputs (all other
   inputs already have it: .njp-form__input, .page-form__input,
   .home-filter__input, .tpl-filter__field, .job-detail__alerts-input,
   .home-alerts__input) --- */
.modal input[type="email"]:focus, .modal input[type="text"]:focus,
.modal textarea:focus, .modal select:focus,
[class*="popup"] input[type="email"]:focus, [class*="popup"] input[type="text"]:focus,
[class*="popup"] textarea:focus, [class*="popup"] select:focus,
.njp-popup__input:focus {
  outline:none; border-color:#1A9FD6 !important;
  box-shadow:0 0 0 3px rgba(26,159,214,.15);
}

/* --- S19: checkbox/radio size + accent; dedicated file-input style --- */
input[type="checkbox"], input[type="radio"] { width:18px; height:18px; accent-color:#1A9FD6; }
input[type="file"].njp-form__input { padding:12px 16px; cursor:pointer; }
.njp-form__file-input { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.njp-form__file-label { display:inline-flex; align-items:center; gap:8px; padding:12px 16px; border:1.5px solid #0C2D63; border-radius:8px; background:#FFFFFF; color:#0C2D63; font-size:16px; font-weight:700; line-height:1.4; cursor:pointer; }
.njp-form__file-label:hover { border-color:#1A9FD6; color:#1A9FD6; }

/* --- S24: browse-jobs grid is 3 columns at >=768px (moved out of the
   blade inline <style>; mobile stays 1 column) --- */
@media (min-width:768px) {
  .home-browse__cols { grid-template-columns:1fr 1fr 1fr; }
}

/* --- S26: ellipsis-cap the header username in the user dropdown --- */
nav.navbar .dropdown-toggle { max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* --- S28: cap remaining tag-style pills (people-search pills) --- */
.home-people__list a { max-width:100%; overflow:hidden; text-overflow:ellipsis; }

/* --- S30: same 0.2s transition as .job-detail__alerts-btn --- */
.page-btn, .home-job-card__view, nav.navbar .navbar-nav .header-btn {
  transition:background-color .2s ease, border-color .2s ease, color .2s ease;
}

/* --- S27: Google sign-in button (replaces the inline style) --- */
.njp-btn--google {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  width:100%; min-height:48px; padding:16px 24px; border-radius:8px;
  background:#FFFFFF; border:1.5px solid #CBD5E1; color:#0C2D63;
  font-size:16px; font-weight:700; line-height:1; cursor:pointer; text-decoration:none;
}
.njp-btn--google:hover { border-color:#0C2D63; background:#F4F7FB; color:#0C2D63; }

/* --- S27: divider — two 1px #DCE6F2 lines, centred #64748B text --- */
.njp-divider { display:flex; align-items:center; gap:12px; color:#64748B; font-size:14px; line-height:1.4; text-align:center; margin:18px 0; }
.njp-divider span:first-child, .njp-divider span:last-child { flex:1 1 auto; height:1px; background:#DCE6F2; }

/* --- S27: password visibility toggle (inline SVG eye, no emoji) --- */
.njp-password-toggle {
  position:absolute; right:0.5rem; top:50%; transform:translateY(-50%);
  display:inline-flex !important; align-items:center; justify-content:center;
  background:transparent !important; border:0 !important; padding:8px !important;
  min-height:0 !important; color:#0C2D63 !important; cursor:pointer; line-height:1;
}
.njp-password-toggle:hover { color:#1A9FD6 !important; }
.njp-password-toggle svg { width:20px; height:20px; display:block; fill:none; stroke:currentColor; }

/* --- S21: Step 2 salary row wraps instead of squeezing --- */
.njp-form__salary-row { display:flex; flex-wrap:wrap; gap:.5rem; }
.njp-form__salary-row > * { min-width:0; }

/* --- S16: modal matches the auth card --- */
.modal-content { border-radius:12px; padding:24px; border:1px solid #DCE6F2; background:#FFFFFF; box-shadow:0 4px 24px rgba(12,45,99,.08); }
/* === END CSS STANDARDISATION (S3-S30, 2026-11-15) === */

/* ================================================================
   MOBILE UI FIXES — 2026-11-15 (owner phone review, mobile only)
   Every rule below sits inside @media (max-width:767.98px), so it
   touches PHONES only. Tablet (768px+) and desktop are NOT changed.
   (Owner has not checked tablet yet; these rules leave it alone.)
   Fixes:
   1. First job card blue (.is-selected) — the desktop detail pane
      is hidden on mobile, so the blue highlight is meaningless.
      All cards stay white on mobile.
   2. Filters equal width — Category was 220px, the rest 150px.
      Now every field is full-width; Date Posted shares its row
      with the Saved heart; Clear is a full-width centred link.
   3. Popular searches — more room above the label, and the pills
      in a 2-column grid (2x2) instead of one stacked column.
   4. NEW badge — keep it attached to the title (flex) so it does
      not float mid-text when a long title wraps.
   5. People also searched — pills in 2 columns, tighter gaps.
   6. Footer — tighter gaps between the stacked sections.
   ================================================================ */
@media (max-width:767.98px) {
  /* 1. First card: no blue highlight on mobile. */
  .home-job-card.is-selected { background:#ffffff !important; }

  /* 2. Filters: every field full-width, stacked. */
  .home-filters { gap:10px !important; }
  .home-filters > .home-filter--field:nth-child(1),
  .home-filters > .home-filter--field:not(:nth-child(1)) {
    flex:1 1 100% !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
  }
  #publicClassificationFilter { min-width:0 !important; flex-basis:auto !important; }
  /* Date Posted (5th field) shares its row with the Saved heart.
     flex-basis 0 + grow (not calc) so the two always fit one row
     without rounding pushing the heart onto its own line. */
  .home-filters > .home-filter--field:nth-child(5) {
    flex:1 1 0 !important;
    width:auto !important;
    min-width:0 !important;
  }
  .home-filter--saved { flex:0 0 auto !important; min-width:48px !important; height:48px !important; }
  /* Clear: sits in the Date Posted row next to the Saved heart (was a
     full-width line of its own, wasting vertical space). */
  .home-filter--clear { flex:0 0 auto !important; text-align:center !important; height:48px !important; padding:0 14px !important; }

  /* 3. Popular searches: breathing room + 2-column pills.
     Pills in one row share the same height (tallest one wins) so
     a 2-line pill no longer stands taller than its 1-line neighbour. */
  html body nav.navbar~main section.home-hero.home-hero .home-hero__popular-label { margin:20px 0 12px !important; }
  .home-hero__pills--mobile > li { flex:1 1 calc(50% - 6px) !important; max-width:calc(50% - 6px) !important; display:flex !important; }
  .home-hero__pills--mobile .home-pill { display:flex !important; flex:1 1 auto !important; align-items:center !important; justify-content:center !important; text-align:center !important; white-space:normal !important; }

  /* 4. NEW badge attached to the title. */
  .home-job-card__title { display:flex !important; flex-wrap:wrap !important; align-items:center !important; }
  .home-job-card__title a { flex:1 1 auto !important; min-width:0 !important; }
  .home-job-card__new { flex:0 0 auto !important; }

  /* 5. People also searched: 2-column pills, tighter gaps, even heights. */
  .home-people__list > li { flex:1 1 calc(50% - 4px) !important; max-width:calc(50% - 4px) !important; display:flex !important; }
  .home-people__list a { display:flex !important; flex:1 1 auto !important; align-items:center !important; justify-content:center !important; text-align:center !important; white-space:normal !important; }

  /* 6. Footer: tighter stacked sections. */
  footer.site-footer { padding-top:24px !important; padding-bottom:16px !important; }
  footer .row > [class*='col-'] { margin-bottom:0.25rem !important; }
  .site-footer__heading { margin:0 0 8px !important; }
  .site-footer__list li { margin:0 0 6px !important; }
  .site-footer__brand-link { margin-bottom:4px !important; }
  .site-footer__legal { margin-top:12px !important; padding-top:12px !important; }

  /* 7. Job detail share buttons: label on its own line, buttons smaller
     so they flow in two even rows instead of three ragged ones. */
  .job-detail__share-label { flex:1 1 100% !important; margin-right:0 !important; margin-bottom:4px !important; }
  .job-detail__share-btn { min-width:80px !important; padding:8px 12px !important; font-size:13px !important; }
}
