/* ===================================================================
   Joint Construction Staffing — brand + WP Job Manager styling
   Brand: red #E2231A, charcoal #1A1A1A->#4D4D4D, steel, Manrope.
   =================================================================== */
:root{
  --jcs-red:#E2231A; --jcs-red-h:#b91b13; --jcs-red-d:#9c160f;
  --jcs-ink:#1A1A1A; --jcs-ink-2:#262626; --jcs-ink-3:#333;
  --jcs-body:#222; --jcs-muted:#5f6063; --jcs-faint:#8a8c8f;
  --jcs-line:#e5e5e7; --jcs-line-2:#ededf0; --jcs-paper:#f6f6f7;
  --jcs-br:8px; --jcs-br-lg:14px;
  --jcs-sh-sm:0 1px 4px rgba(0,0,0,.07); --jcs-sh-md:0 6px 22px rgba(0,0,0,.09);
  --jcs-charcoal:linear-gradient(135deg,#1A1A1A 0%,#3a3a3a 60%,#4D4D4D 100%);
  --jcs-ease:cubic-bezier(.16,1,.3,1);
}
body{font-family:'Manrope',system-ui,-apple-system,sans-serif;color:var(--jcs-body);}

/* keyboard focus visibility (a11y) */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(226,35,26,.55);outline-offset:2px;border-radius:4px;}

/* ---- WP Job Manager: filter bar ---- */
.job_listings .job_filters{background:#fff;border:1px solid var(--jcs-line);border-radius:var(--jcs-br-lg);padding:20px;box-shadow:var(--jcs-sh-sm);margin-bottom:28px;}
.job_listings .search_jobs{display:grid;grid-template-columns:2fr 1.2fr auto;gap:14px;align-items:end;}
.job_listings .search_jobs > div{margin:0;}
.job_filters input,.job_filters select{width:100%;padding:13px 15px;font:inherit;font-size:15px;color:var(--jcs-ink);border:1.5px solid var(--jcs-line);border-radius:var(--jcs-br);background:#fff;}
.job_filters input:focus,.job_filters select:focus{border-color:var(--jcs-ink);box-shadow:0 0 0 3px rgba(0,0,0,.06);outline:none;}
.job_filters .job_types{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;padding-top:14px;border-top:1px solid var(--jcs-line-2);list-style:none;}
.job_filters .job_types li{font-size:13.5px;font-weight:600;}

/* ---- Job list as cards ---- */
ul.job_listings{border:0!important;display:grid;grid-template-columns:repeat(2,1fr);gap:20px;list-style:none;margin:0;padding:0;}
ul.job_listings li.job_listing{background:#fff;border:1px solid var(--jcs-line)!important;border-radius:var(--jcs-br-lg);padding:0;transition:all .26s var(--jcs-ease);box-shadow:var(--jcs-sh-sm);overflow:hidden;}
ul.job_listings li.job_listing:hover{box-shadow:var(--jcs-sh-md);transform:translateY(-3px);border-color:#d8d8dc!important;}
ul.job_listings li.job_listing a{display:flex;flex-direction:column;gap:12px;padding:24px 26px;}
ul.job_listings li.job_listing .position{display:flex;flex-direction:column;gap:6px;}
ul.job_listings li.job_listing .position h3{font-size:21px;font-weight:800;color:var(--jcs-ink);letter-spacing:-.015em;line-height:1.15;margin:0;}
ul.job_listings li.job_listing .position .company{color:var(--jcs-red);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
ul.job_listings li.job_listing .location{font-size:13.5px;font-weight:600;color:var(--jcs-muted);}
ul.job_listings li.job_listing .meta{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;}
ul.job_listings li.job_listing .meta li{font-size:12.5px;font-weight:700;color:var(--jcs-ink-3);background:var(--jcs-paper);border:1px solid var(--jcs-line);padding:5px 10px;border-radius:6px;}
ul.job_listings li.job_listing .meta li.date{display:none;}

/* ---- Load more / pagination ---- */
#load_more_jobs,.job_listings .load_more_jobs{display:inline-flex;align-items:center;justify-content:center;font-weight:800;background:var(--jcs-ink);color:#fff;border:2px solid var(--jcs-ink);border-radius:var(--jcs-br);padding:14px 28px;margin-top:28px;transition:all .25s var(--jcs-ease);}
#load_more_jobs:hover{background:var(--jcs-red);border-color:var(--jcs-red);transform:translateY(-2px);}

/* ---- No results ---- */
.job_listings li.no_job_listings_found{grid-column:1/-1;text-align:center;padding:60px 20px;background:#fff;border:1px solid var(--jcs-line)!important;border-radius:var(--jcs-br-lg);color:var(--jcs-muted);}

/* =================================================================
   Single job template (theme override: /job_manager/content-single-job_listing.php)
   ================================================================= */
.jcs-single{max-width:1140px;margin:0 auto;padding:0 24px;}
.jcs-jobhead{position:relative;background:var(--jcs-ink);color:#fff;border-radius:0;overflow:hidden;padding:56px 0;background-image:var(--jcs-charcoal);}
.jcs-jobhead .jcs-wrap{max-width:1140px;margin:0 auto;padding:0 24px;}
.jcs-jobhead h1{font-size:clamp(30px,4.4vw,46px);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin:0 0 16px;color:#fff;}
.jcs-jobhead .jcs-tags{display:flex;gap:10px;flex-wrap:wrap;}
.jcs-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:6px 12px;border-radius:6px;background:rgba(255,255,255,.12);color:#fff;}
.jcs-tag.red{background:rgba(226,35,26,.18);color:#fff;}
.jcs-jobgrid{display:grid;grid-template-columns:1fr 400px;gap:40px;align-items:start;padding:56px 24px;max-width:1140px;margin:0 auto;}
.jcs-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--jcs-line);border:1px solid var(--jcs-line);border-radius:var(--jcs-br-lg);overflow:hidden;margin-bottom:32px;}
.jcs-fact{background:#fff;padding:18px 22px;}
.jcs-fact span{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--jcs-faint);display:block;margin-bottom:5px;}
.jcs-fact b{font-size:17px;font-weight:800;color:var(--jcs-ink);}
.jcs-main h2{font-size:24px;font-weight:800;color:var(--jcs-ink);letter-spacing:-.02em;margin:32px 0 16px;}
.jcs-main h2:first-child{margin-top:0;}
.jcs-main p{font-size:15.5px;line-height:1.75;color:var(--jcs-body);margin:0 0 14px;}
.jcs-list{list-style:none;display:flex;flex-direction:column;gap:11px;margin:0 0 8px;padding:0;}
.jcs-list li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.55;color:var(--jcs-body);}
.jcs-list li svg{width:20px;height:20px;color:var(--jcs-red);flex-shrink:0;margin-top:2px;}
.jcs-benefits{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.jcs-benefit{display:flex;gap:13px;align-items:flex-start;background:var(--jcs-paper);border:1px solid var(--jcs-line);border-radius:10px;padding:16px 18px;}
.jcs-benefit svg{width:22px;height:22px;color:var(--jcs-red);flex-shrink:0;}
.jcs-benefit b{display:block;font-size:14.5px;font-weight:800;color:var(--jcs-ink);margin-bottom:2px;}
.jcs-benefit span{font-size:13px;color:var(--jcs-muted);line-height:1.45;}
.jcs-rail{position:sticky;top:100px;background:#fff;border:1px solid var(--jcs-line);border-radius:var(--jcs-br-lg);box-shadow:var(--jcs-sh-md);overflow:hidden;}
.jcs-rail .jcs-rail-head{background:var(--jcs-ink);color:#fff;padding:22px 26px;}
.jcs-rail .jcs-rail-head h3{margin:0;font-size:20px;font-weight:800;}
.jcs-rail .jcs-rail-head p{margin:4px 0 0;font-size:13px;color:rgba(255,255,255,.65);}
.jcs-rail .jcs-rail-body{padding:22px 26px;background:#F6F6F7;}

@media(max-width:1024px){.jcs-jobgrid{grid-template-columns:1fr;}.jcs-rail{position:relative;top:0;}}
@media(max-width:781px){ul.job_listings{grid-template-columns:1fr;}.job_listings .search_jobs{grid-template-columns:1fr;}.jcs-facts,.jcs-benefits{grid-template-columns:1fr;}}
/* ===================== HEADER ===================== */
.jcs-header{position:sticky;top:0;z-index:999;}
.jcs-header-inner{width:100%;}
.jcs-brand{cursor:pointer;text-decoration:none;flex:0 0 auto;}
.jcs-logo img{height:42px!important;width:auto!important;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4));}
.jcs-brandtext{justify-content:center;}
.jcs-b1 .elementor-heading-title{font-family:'Manrope',sans-serif;font-weight:800;font-size:21px;color:#fff;line-height:1;letter-spacing:.01em;}
.jcs-b2 .elementor-heading-title{font-size:9.5px;font-weight:700;letter-spacing:.26em;color:#8d8f92;text-transform:uppercase;line-height:1;margin-top:3px;}
.jcs-nav{margin-left:auto;flex:0 0 auto;}
.jcs-nav .elementor-item{font-weight:700!important;letter-spacing:.04em;}
.jcs-actions{flex:0 0 auto;}
.jcs-phone .elementor-button{background:transparent!important;border:none!important;color:#fff!important;font-weight:800!important;box-shadow:none!important;padding:6px 4px;}
.jcs-phone .elementor-button:hover{transform:none!important;}
.jcs-phone .elementor-button-icon{color:var(--jcs-red);}
.jcs-apply .elementor-button{white-space:nowrap;}
@media(max-width:880px){.jcs-phone{display:none;}}

/* ===================== FOOTER ===================== */
.jcs-footer{color:rgba(255,255,255,.7);}
.jcs-footer-inner,.jcs-footer-top,.jcs-footer-bottom{width:100%;}
.jcs-fcol{flex:1 1 170px;min-width:150px;}
.jcs-fbrand{flex:1.5 1 260px;max-width:330px;}
.jcs-flogo img{height:74px!important;width:auto!important;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5));}
.jcs-ftext p{font-size:14px;line-height:1.7;color:rgba(255,255,255,.6);margin:0;}
.jcs-flic p{margin:0;font-size:12px;font-weight:700;letter-spacing:.05em;color:var(--jcs-red);text-transform:uppercase;}
.jcs-fhead .elementor-heading-title{font-family:'Manrope',sans-serif;font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#fff;}
.jcs-flinks .elementor-icon-list-items,.jcs-fcontact-list .elementor-icon-list-items{display:flex;flex-direction:column;gap:11px;}
.jcs-flinks .elementor-icon-list-icon{display:none!important;}
.jcs-flinks .elementor-icon-list-text{font-size:14px;color:rgba(255,255,255,.65);transition:color .2s;}
.jcs-flinks a:hover .elementor-icon-list-text{color:#fff;}
.jcs-fcontact-list .elementor-icon-list-icon{width:20px;}
.jcs-fcontact-list .elementor-icon-list-icon i,.jcs-fcontact-list .elementor-icon-list-icon svg{color:var(--jcs-red);fill:var(--jcs-red);}
.jcs-fcontact-list .elementor-icon-list-item > .elementor-icon-list-text,.jcs-fcontact-list .elementor-icon-list-item > a{font-size:14px!important;line-height:1.6!important;color:rgba(255,255,255,.7);}
/* phone/email text sits in a span INSIDE the <a> (default #5f6063 muted) — match the address */
.jcs-fcontact-list .elementor-icon-list-text{color:rgba(255,255,255,.7)!important;}
.jcs-fcontact-list a:hover .elementor-icon-list-text{color:#fff!important;}
.jcs-fsocial .elementor-social-icon{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.14);transition:all .2s;}
.jcs-fsocial .elementor-social-icon:hover{background:var(--jcs-red)!important;border-color:var(--jcs-red)!important;transform:translateY(-2px);}
.jcs-fsocial .elementor-social-icon i,.jcs-fsocial .elementor-social-icon svg{color:#fff;fill:#fff;}
.jcs-copy p{margin:0;font-size:13px;color:rgba(255,255,255,.5);}
.jcs-fbottom-links .elementor-icon-list-icon{display:none!important;}
.jcs-fbottom-links .elementor-icon-list-text{font-size:13px;color:rgba(255,255,255,.55);}
.jcs-fbottom-links a:hover .elementor-icon-list-text{color:#fff;}
/* ===================== GRAVITY FORMS (brand) ===================== */
.gform_wrapper .gfield_label{font-family:'Manrope',sans-serif;font-weight:800!important;font-size:13px!important;color:var(--jcs-ink)!important;letter-spacing:.02em;margin-bottom:7px;}
.gform_wrapper .gfield_required{color:var(--jcs-red)!important;}
.gform_wrapper input[type=text],.gform_wrapper input[type=email],.gform_wrapper input[type=tel],.gform_wrapper input[type=number],.gform_wrapper select,.gform_wrapper textarea{width:100%!important;padding:12px 14px!important;font-family:'Manrope',sans-serif!important;font-size:15px!important;color:var(--jcs-ink)!important;border:1.5px solid var(--jcs-line)!important;border-radius:var(--jcs-br)!important;background:#fff!important;box-shadow:none!important;}
.gform_wrapper input:focus,.gform_wrapper select:focus,.gform_wrapper textarea:focus{border-color:var(--jcs-ink)!important;box-shadow:0 0 0 3px rgba(0,0,0,.06)!important;outline:none;}
.gform_wrapper textarea{min-height:110px;line-height:1.6;}
.gform_wrapper .gfield_description{font-size:12.5px;color:var(--jcs-faint);}
.gform_wrapper .gform_footer input[type=submit],.gform_wrapper .gform_footer button,.gform_wrapper .gform-button{background:var(--jcs-red)!important;color:#fff!important;font-family:'Manrope',sans-serif!important;font-weight:800!important;font-size:15px!important;border:none!important;border-radius:var(--jcs-br)!important;padding:15px 28px!important;cursor:pointer;transition:all .25s var(--jcs-ease);box-shadow:0 4px 14px rgba(226,35,26,.28);}
.gform_wrapper .gform_footer input[type=submit]:hover,.gform_wrapper .gform_footer button:hover{background:var(--jcs-red-h)!important;transform:translateY(-2px);}
/* full-width submit inside the apply rail */
.jcs-rail .gform_wrapper .gform_footer input[type=submit],.jcs-rail .gform_wrapper .gform_footer button{width:100%!important;}
.gform_wrapper .gform_validation_errors{border-radius:var(--jcs-br);}
.gform_wrapper .gfield_error input,.gform_wrapper .gfield_error textarea,.gform_wrapper .gfield_error select{border-color:var(--jcs-red)!important;}
/* ===================== PAGE SECTIONS ===================== */
.jcs-eyebrow .elementor-heading-title{color:var(--jcs-red);font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;}
.jcs-eyebrow.on-dark .elementor-heading-title{color:#fff;}
.jcs-h2 .elementor-heading-title{font-size:clamp(30px,4vw,46px);font-weight:800;letter-spacing:-.025em;line-height:1.07;color:var(--jcs-ink);}
.jcs-h2.on-dark .elementor-heading-title{color:#fff;}
.jcs-sub .elementor-widget-container{font-size:17px;color:var(--jcs-muted);line-height:1.7;}
.jcs-sub.on-dark .elementor-widget-container{color:rgba(255,255,255,.72);}
.jcs-lead .elementor-widget-container{font-size:18px;line-height:1.8;color:var(--jcs-body);}
.jcs-body .elementor-widget-container{color:var(--jcs-muted);line-height:1.7;}

/* ===================== HERO ===================== */
.jcs-hero{background:var(--jcs-charcoal);position:relative;overflow:hidden;}
.jcs-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(120% 90% at 80% -10%,rgba(226,35,26,.16),transparent 55%);pointer-events:none;}
.jcs-hero::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:46px 46px;opacity:.6;pointer-events:none;}
.jcs-hero > .e-con-inner,.jcs-hero > .elementor-container{position:relative;z-index:2;}
.jcs-hero-eyebrow .elementor-heading-title{color:#fff;font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;}
.jcs-hero-h1 .elementor-heading-title{font-size:clamp(40px,5.4vw,70px);font-weight:800;line-height:1;letter-spacing:-.035em;color:#fff;}
.jcs-hero-h1 .elementor-heading-title em,.jcs-hero-h1 .elementor-heading-title b{color:var(--jcs-red);font-style:normal;}
.jcs-hero-sub .elementor-widget-container{color:rgba(255,255,255,.8);font-size:19px;line-height:1.6;}

/* ===================== PAGE HEAD (interior) ===================== */
.jcs-pagehead{background:var(--jcs-charcoal);position:relative;overflow:hidden;}
.jcs-pagehead::before{content:'';position:absolute;inset:0;background:radial-gradient(100% 120% at 90% 0,rgba(226,35,26,.14),transparent 50%);pointer-events:none;}
.jcs-pagehead > .e-con-inner{position:relative;z-index:2;}
.jcs-pagehead .jcs-h1 .elementor-heading-title{color:#fff;font-size:clamp(34px,4.6vw,52px);font-weight:800;letter-spacing:-.03em;line-height:1.04;}
.jcs-pagehead .jcs-sub .elementor-widget-container{color:rgba(255,255,255,.74);}

/* ===================== CARDS (icon-box) ===================== */
.jcs-cards .elementor-widget-icon-box .elementor-icon-box-wrapper{text-align:left;}
.jcs-cards .elementor-widget-icon-box{height:100%;}
.jcs-cards .elementor-widget-icon-box .elementor-widget-container{background:#fff;border:1px solid var(--jcs-line);border-radius:14px;padding:30px 26px;height:100%;transition:transform .28s var(--jcs-ease),box-shadow .28s var(--jcs-ease),border-color .28s;}
.jcs-cards .elementor-widget-icon-box:hover .elementor-widget-container{transform:translateY(-4px);box-shadow:var(--jcs-sh-md);border-color:#dcdce0;}
.jcs-cards .elementor-icon-box-icon{margin-bottom:18px;}
.jcs-cards .elementor-icon{background:var(--jcs-paper);border:1px solid var(--jcs-line);border-radius:12px;width:54px;height:54px;display:flex;align-items:center;justify-content:center;color:var(--jcs-red);font-size:26px;}
.jcs-cards .elementor-icon svg{width:28px;height:28px;fill:var(--jcs-red);}
.jcs-cards .elementor-icon-box-title{font-family:'Manrope';font-size:18.5px;font-weight:800;color:var(--jcs-ink);margin-bottom:9px;}
.jcs-cards .elementor-icon-box-description{font-size:14.5px;color:var(--jcs-muted);line-height:1.62;}

/* trust bar variant: icon left */
.jcs-trust .elementor-widget-icon-box .elementor-icon-box-wrapper{display:flex;gap:16px;align-items:flex-start;}
.jcs-trust .elementor-icon{background:rgba(226,35,26,.09);border:none;border-radius:10px;width:46px;height:46px;}
.jcs-trust .elementor-icon-box-icon{margin-bottom:0;}

/* trades tiles */
.jcs-trades .elementor-widget-icon-box .elementor-widget-container{text-align:center;padding:22px 12px;}
.jcs-trades .elementor-icon-box-wrapper{text-align:center;}
.jcs-trades .elementor-icon{margin:0 auto;border-radius:50%;background:var(--jcs-paper);color:var(--jcs-ink);}
.jcs-trades .elementor-icon svg{fill:var(--jcs-ink);}
.jcs-trades .elementor-widget-icon-box:hover .elementor-icon{background:var(--jcs-red);}
.jcs-trades .elementor-widget-icon-box:hover .elementor-icon svg{fill:#fff;}
.jcs-trades .elementor-icon-box-title{font-size:13.5px;font-weight:700;margin:0;}
.jcs-trades .elementor-icon-box-description{display:none;}

/* ===================== TIMELINE (services) ===================== */
.jcs-step .elementor-icon{background:#fff;border:2px solid var(--jcs-red);color:var(--jcs-red);width:54px;height:54px;border-radius:50%;font-weight:800;}

/* ===================== CTA BAND ===================== */
.jcs-cta{background:var(--jcs-charcoal);border-radius:14px;overflow:hidden;position:relative;}
.jcs-cta.red{background:linear-gradient(135deg,var(--jcs-red),var(--jcs-red-d));}
.jcs-cta .jcs-cta-title .elementor-heading-title{color:#fff;font-size:clamp(26px,3.4vw,38px);font-weight:800;letter-spacing:-.025em;line-height:1.1;}
.jcs-cta .jcs-cta-text .elementor-widget-container{color:rgba(255,255,255,.85);font-size:16px;}

/* ===================== VALUE / TEAM ===================== */
.jcs-value .elementor-widget-icon-box .elementor-widget-container{background:#fff;border:1px solid var(--jcs-line);border-radius:14px;padding:28px;height:100%;}
.jcs-value .elementor-icon{background:var(--jcs-ink);border-radius:12px;width:50px;height:50px;color:var(--jcs-red);}
.jcs-value .elementor-icon svg{fill:var(--jcs-red);}
.jcs-value .elementor-icon-box-title{font-size:19px;font-weight:800;color:var(--jcs-ink);}
.jcs-value .elementor-icon-box-description{font-size:14.5px;color:var(--jcs-muted);line-height:1.62;}

/* ===================== CONTACT ===================== */
.jcs-infocard{background:#fff;border:1px solid var(--jcs-line);border-radius:14px;padding:30px;box-shadow:var(--jcs-sh-sm);}
.jcs-infocard .elementor-icon-list-icon i,.jcs-infocard .elementor-icon-list-icon svg{color:var(--jcs-red);fill:var(--jcs-red);}
.jcs-map{min-height:320px;height:320px;border-radius:14px;border:1px solid var(--jcs-line);overflow:hidden;position:relative;background:#eef1ee;}
.jcs-map .elementor-heading-title{color:var(--jcs-ink);font-weight:800;}

/* ===================== SUCCESS / THANK YOU ===================== */
.jcs-success{text-align:center;}
.jcs-success .jcs-check .elementor-icon{background:rgba(226,35,26,.1);color:var(--jcs-red);width:96px;height:96px;border-radius:50%;margin:0 auto;}
.jcs-success .jcs-check .elementor-icon svg{fill:var(--jcs-red);width:46px;height:46px;}

/* WPJM latest-jobs on home: hide filters cleanly when show_filters=false */
.jcs-latest .job_filters{display:none;}
/* ===================== PAGE UTILITIES ===================== */
.jcs-charcoal-bg{background:var(--jcs-charcoal);}
.jcs-btn-ghostwhite .elementor-button{background:transparent!important;border:2px solid rgba(255,255,255,.45)!important;color:#fff!important;box-shadow:none!important;}
.jcs-btn-ghostwhite .elementor-button:hover{background:rgba(255,255,255,.12)!important;border-color:#fff!important;}
.jcs-btn-dark .elementor-button{background:var(--jcs-ink)!important;border-color:var(--jcs-ink)!important;color:#fff!important;}
.jcs-btn-dark .elementor-button:hover{background:var(--jcs-red)!important;border-color:var(--jcs-red)!important;}
.jcs-btn-outline .elementor-button{background:transparent!important;border:2px solid var(--jcs-ink)!important;color:var(--jcs-ink)!important;box-shadow:none!important;}
.jcs-btn-outline .elementor-button:hover{background:var(--jcs-ink)!important;color:#fff!important;}
.jcs-cta-inner{padding:56px 52px;}
@media(max-width:781px){.jcs-cta-inner{padding:40px 28px;}}
.jcs-section-head{margin-bottom:8px;}
.jcs-btnrow{margin-top:8px;}
/* icon-box link should not underline the title */
.jcs-cards .elementor-icon-box-title a,.jcs-trades .elementor-icon-box-title a{color:inherit;}
/* center helper */
.jcs-center{text-align:center;}
.jcs-center .elementor-icon-box-wrapper{text-align:center;}
/* ===================== HERO PHOTO + SEARCH ===================== */
.jcs-hero-photo{position:relative;background-color:#1a1a1a;background-size:cover;background-position:center 35%;overflow:hidden;}
.jcs-hero-photo::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 80% -10%,rgba(226,35,26,.22),transparent 55%),linear-gradient(180deg,rgba(15,15,15,.78),rgba(15,15,15,.62) 45%,rgba(15,15,15,.9));}
.jcs-hero-photo > .e-con,.jcs-hero-photo > .e-con-inner{position:relative;z-index:2;}
.jcs-hero-browse .elementor-button{background:transparent!important;border:none!important;color:#fff!important;font-weight:700!important;box-shadow:none!important;padding:6px 0;}
.jcs-hero-browse .elementor-button:hover{color:var(--jcs-red)!important;transform:none!important;}
.jcs-herosearch{background:#fff;border-radius:14px;padding:20px;box-shadow:0 18px 50px rgba(0,0,0,.28);display:grid;grid-template-columns:1.7fr 1.05fr 1.05fr auto;gap:16px;align-items:end;width:100%;max-width:940px;margin:6px auto 0;text-align:left;}
.jcs-herosearch label{display:block;font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--jcs-muted);margin-bottom:7px;}
.jcs-herosearch .hs-input{position:relative;}
.jcs-herosearch .hs-input svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--jcs-faint);pointer-events:none;}
.jcs-herosearch .hs-input input{padding-left:42px;}
.jcs-herosearch input,.jcs-herosearch select{width:100%;height:48px;padding:0 14px;font-family:'Manrope',sans-serif;font-size:15px;color:var(--jcs-ink);border:1.5px solid var(--jcs-line);border-radius:8px;background:#fff;}
.jcs-herosearch select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6063' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;}
.jcs-herosearch input:focus,.jcs-herosearch select:focus{border-color:var(--jcs-ink);outline:none;box-shadow:0 0 0 3px rgba(0,0,0,.06);}
.jcs-herosearch .hs-btn{height:48px;display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;background:var(--jcs-red);color:#fff;font-weight:800;font-size:15px;border:none;border-radius:8px;padding:0 26px;cursor:pointer;transition:all .25s var(--jcs-ease);box-shadow:0 4px 14px rgba(226,35,26,.28);}
.jcs-herosearch .hs-btn:hover{background:var(--jcs-red-h);transform:translateY(-2px);}
.jcs-herosearch .hs-btn svg{width:18px;height:18px;}
@media(max-width:880px){.jcs-herosearch{grid-template-columns:1fr;}}

/* ===================== JOB CARDS (board + latest) ===================== */
ul.job_listings li.job_listing{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;transform:none!important;overflow:visible!important;}
ul.job_listings li.job_listing:hover{transform:none!important;box-shadow:none!important;}
.jcs-jobcard{display:flex;flex-direction:column;gap:14px;height:100%;background:#fff;border:1px solid var(--jcs-line);border-radius:14px;padding:24px 26px;transition:transform .26s var(--jcs-ease),box-shadow .26s var(--jcs-ease),border-color .26s;color:var(--jcs-body);}
.jcs-jobcard:hover{transform:translateY(-3px);box-shadow:var(--jcs-sh-md);border-color:#d8d8dc;}
/* WPJM job-listings.css sets `.job_listings li.job_listing a{border:0}` (2 classes) which
   outranks `.jcs-jobcard` (1 class) and removed the card border. Restore it with a
   higher-specificity selector (home .jcs-latest + board both use ul.job_listings). */
ul.job_listings li.job_listing a.jcs-jobcard{border:1px solid var(--jcs-line)!important;box-shadow:var(--jcs-sh-sm);}
ul.job_listings li.job_listing a.jcs-jobcard:hover{border-color:#d8d8dc!important;box-shadow:var(--jcs-sh-md);}
.jcs-jc-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;}
.jcs-jc-trade{display:block;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--jcs-red);margin-bottom:6px;}
.jcs-jc-title{font-family:'Manrope',sans-serif;font-size:20px;font-weight:800;color:var(--jcs-ink);letter-spacing:-.015em;line-height:1.15;margin:0;}
.jcs-jc-pay{text-align:right;flex-shrink:0;white-space:nowrap;}
.jcs-jc-pay b{font-family:'Manrope',sans-serif;font-size:18px;font-weight:800;color:var(--jcs-ink);}
.jcs-jc-pay span{display:block;font-size:11.5px;color:var(--jcs-faint);font-weight:600;}
.jcs-jc-meta{display:flex;flex-wrap:wrap;gap:8px;}
.jcs-chip{font-size:12.5px;font-weight:700;color:var(--jcs-ink-3);background:var(--jcs-paper);border:1px solid var(--jcs-line);padding:5px 10px;border-radius:6px;}
.jcs-jc-summary{font-size:14.5px;color:var(--jcs-muted);line-height:1.6;margin:0;}
.jcs-jc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;border-top:1px solid var(--jcs-line-2);margin-top:auto;}
.jcs-jc-loc{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--jcs-muted);}
.jcs-jc-loc svg{width:16px;height:16px;color:var(--jcs-faint);flex-shrink:0;}
.jcs-jc-apply{display:inline-flex;align-items:center;background:var(--jcs-red);color:#fff;font-weight:800;font-size:13px;padding:9px 18px;border-radius:8px;transition:background .2s;flex-shrink:0;}
.jcs-jobcard:hover .jcs-jc-apply{background:var(--jcs-red-h);}
.jcs-latest ul.job_listings{grid-template-columns:repeat(3,1fr);}
@media(max-width:1024px){.jcs-latest ul.job_listings{grid-template-columns:repeat(2,1fr);}}
@media(max-width:680px){.jcs-latest ul.job_listings{grid-template-columns:1fr;}}
/* ===================== MATCH DESIGN: trust bar = connected bordered panel ===================== */
.jcs-cards.jcs-trust{gap:0!important;grid-template-columns:repeat(4,1fr)!important;border:1px solid var(--jcs-line);border-radius:14px;overflow:hidden;background:#fff;}
.jcs-trust .elementor-widget-icon-box .elementor-widget-container{background:transparent;border:0;border-right:1px solid var(--jcs-line);border-radius:0;padding:34px 30px;height:100%;box-shadow:none;transition:none;}
.jcs-trust .elementor-widget-icon-box:hover .elementor-widget-container{transform:none;box-shadow:none;border-color:var(--jcs-line);}
.jcs-trust .elementor-widget-icon-box:last-child .elementor-widget-container{border-right:0;}
@media(max-width:1024px){
  .jcs-cards.jcs-trust{grid-template-columns:repeat(2,1fr)!important;}
  .jcs-trust .elementor-widget-icon-box:nth-child(2n) .elementor-widget-container{border-right:0;}
  .jcs-trust .elementor-widget-icon-box:nth-child(-n+2) .elementor-widget-container{border-bottom:1px solid var(--jcs-line);}
}
@media(max-width:600px){
  .jcs-cards.jcs-trust{grid-template-columns:1fr!important;}
  .jcs-trust .elementor-widget-icon-box .elementor-widget-container{border-right:0;border-bottom:1px solid var(--jcs-line);}
  .jcs-trust .elementor-widget-icon-box:last-child .elementor-widget-container{border-bottom:0;}
}

/* ===================== MATCH DESIGN: services card red top-accent on hover ===================== */
.jcs-cards:not(.jcs-trust):not(.jcs-trades) .elementor-widget-icon-box .elementor-widget-container{position:relative;overflow:hidden;}
.jcs-cards:not(.jcs-trust):not(.jcs-trades) .elementor-widget-icon-box .elementor-widget-container::after{content:'';position:absolute;left:0;top:0;height:4px;width:0;background:var(--jcs-red);transition:width .3s var(--jcs-ease);}
.jcs-cards:not(.jcs-trust):not(.jcs-trades) .elementor-widget-icon-box:hover .elementor-widget-container::after{width:100%;}
/* ===================== MATCH SPEC: eyebrow red dash ===================== */
.jcs-eyebrow .elementor-heading-title,.jcs-hero-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:11px;}
.jcs-eyebrow .elementor-heading-title::before,.jcs-hero-eyebrow .elementor-heading-title::before,.jcs-eyebrow .elementor-heading-title::after,.jcs-hero-eyebrow .elementor-heading-title::after{content:'';width:26px;height:3px;background:var(--jcs-red);border-radius:2px;flex:0 0 auto;}

/* ===================== MATCH SPEC: CTA band diagonal stripe ===================== */
.jcs-cta::after{content:'';position:absolute;top:0;bottom:0;right:0;width:30%;background:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 16px,transparent 16px 32px);pointer-events:none;z-index:0;}
.jcs-cta > *{position:relative;z-index:1;}
/* Services "Contact Our…" CTA: replace the diagonal stripes with a construction photo
   on the right that fades into the charcoal toward the copy (right -> left fade). */
.jcs-cta-photo::after{
  width:50%;
  background:
    var(--cta-overlay, linear-gradient(to right, rgba(26,26,26,.92) 0%, rgba(26,26,26,.55) 50%, rgba(26,26,26,.20) 100%)),
    var(--cta-img) center right / cover no-repeat;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, #000 48%);
  mask-image:linear-gradient(to right, transparent 0%, #000 48%);
}
/* per-CTA photo; red CTAs also override --cta-overlay so the photo melts into the red band */
.jcs-cta-img-services{--cta-img:url("https://staging.webstix.net/JCS/wp/wp-content/uploads/2026/06/jcs-cta-worker-1536x1024.jpg");}
.jcs-cta-img-employment{--cta-img:url("https://staging.webstix.net/JCS/wp/wp-content/uploads/2026/06/jcs-cta-mason-1536x1024.jpg");}
.jcs-cta-img-home{--cta-img:url("https://staging.webstix.net/JCS/wp/wp-content/uploads/2026/06/b11-3840x2560-1-1536x1024.jpg");--cta-overlay:linear-gradient(to right, rgba(124,17,11,.94) 0%, rgba(226,35,26,.50) 50%, rgba(226,35,26,.16) 100%);}
.jcs-cta-img-about{--cta-img:url("https://staging.webstix.net/JCS/wp/wp-content/uploads/2026/06/b3-1920x1280-1-1536x1024.jpg");--cta-overlay:linear-gradient(to right, rgba(124,17,11,.94) 0%, rgba(226,35,26,.50) 50%, rgba(226,35,26,.16) 100%);}
@media(max-width:781px){
  /* on mobile the copy is full-width — keep the band clean, drop the photo */
  .jcs-cta-photo::after{display:none;}
}
/* ===================== JOB BOARD FILTER BAR (match design) ===================== */
.jcs-jobfilter{background:#F6F6F7;border:1px solid var(--jcs-line);border-radius:14px;padding:20px;box-shadow:var(--jcs-sh-sm);display:grid;grid-template-columns:1.9fr 1.1fr 1.1fr 1fr;gap:14px;align-items:end;}
.jcs-jobfilter label{display:block;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--jcs-muted);margin-bottom:7px;}
.jcs-jobfilter .jf-input{position:relative;}
.jcs-jobfilter .jf-input svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--jcs-faint);pointer-events:none;}
.jcs-jobfilter .jf-input input{padding-left:42px;}
.jcs-jobfilter input,.jcs-jobfilter select{width:100%;height:48px;padding:0 14px;font-family:'Manrope',sans-serif;font-size:15px;color:var(--jcs-ink);border:1.5px solid var(--jcs-line);border-radius:8px;background:#fff;}
.jcs-jobfilter select{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6063' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;}
.jcs-jobfilter input:focus,.jcs-jobfilter select:focus{border-color:var(--jcs-ink);outline:none;box-shadow:0 0 0 3px rgba(0,0,0,.06);}
@media(max-width:880px){.jcs-jobfilter{grid-template-columns:1fr;}}
.jcs-results-meta{margin:26px 0 22px;font-size:14.5px;color:var(--jcs-muted);}
.jcs-results-meta b{color:var(--jcs-ink);font-weight:800;}

/* ===================== JOB BOARD PAGINATION (match design) ===================== */
.job-manager-pagination{margin-top:38px;text-align:center;}
.job-manager-pagination ul,.job-manager-pagination .page-numbers{list-style:none;margin:0;padding:0;}
.job-manager-pagination ul{display:inline-flex;gap:8px;}
.job-manager-pagination .page-numbers{min-width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--jcs-line);background:#fff;border-radius:8px;font-weight:800;font-size:14px;color:var(--jcs-ink);padding:0 12px;transition:all .2s;}
.job-manager-pagination a.page-numbers:hover{border-color:var(--jcs-ink);}
.job-manager-pagination .page-numbers.current{background:var(--jcs-red);border-color:var(--jcs-red);color:#fff;}
.job_listings .load_more_jobs{margin-top:30px;}
/* ===================== SVG ICON COLORS (stroke, not fill) ===================== */
.jcs-cards .elementor-icon svg,.jcs-value .elementor-icon svg,.jcs-trades .elementor-icon svg{fill:none!important;stroke:currentColor!important;width:28px!important;height:28px!important;}
.jcs-cards .elementor-icon,.jcs-value .elementor-icon{color:var(--jcs-red)!important;}
.jcs-trades .elementor-icon{color:var(--jcs-ink)!important;}
.jcs-trades .elementor-widget-icon-box:hover .elementor-icon{color:#fff!important;}
.jcs-value .elementor-icon{color:var(--jcs-red)!important;}
.jcs-value .elementor-icon{background:var(--jcs-ink)!important;}
.jcs-value .elementor-icon svg{stroke:var(--jcs-red)!important;}

/* ===================== HEADER HEIGHT ===================== */
.jcs-header-inner{padding-top:19px!important;padding-bottom:19px!important;}
.jcs-logo img{height:46px!important;}
.jcs-b1 .elementor-heading-title{font-size:22px;}

/* ===================== MOBILE MENU ===================== */
.jcs-nav .elementor-menu-toggle{color:#fff!important;padding:6px;}
.jcs-nav .elementor-menu-toggle svg{width:30px;height:30px;}
.jcs-nav .elementor-nav-menu--dropdown{background:#1A1A1A!important;border-top:2px solid var(--jcs-red);box-shadow:0 18px 40px rgba(0,0,0,.4);border-radius:0 0 8px 8px;margin-top:19px;}
.jcs-nav .elementor-nav-menu--dropdown a{color:rgba(255,255,255,.85)!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.05em;font-size:14px;padding:16px 22px!important;border-bottom:1px solid rgba(255,255,255,.08)!important;}
.jcs-nav .elementor-nav-menu--dropdown a:hover,.jcs-nav .elementor-nav-menu--dropdown a.elementor-item-active{background:rgba(255,255,255,.06)!important;color:var(--jcs-red)!important;}
@media(max-width:1024px){.jcs-nav{margin-left:auto;}}

/* ===================== BREADCRUMB ===================== */
.jcs-breadcrumb .rank-math-breadcrumb p,.jcs-breadcrumb p{margin:0;font-size:13px;font-weight:600;color:rgba(255,255,255,.6);display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.jcs-breadcrumb a{color:rgba(255,255,255,.78);}
.jcs-breadcrumb a:hover{color:#fff;}
.jcs-breadcrumb .separator{color:rgba(255,255,255,.4);}

/* ===================== NUMBERED STEPS ===================== */
.jcs-steps{align-items:start;}
.jcs-steps > .elementor-element{position:relative;}
.jcs-step{align-items:flex-start;text-align:left;padding:0 8px;}
.jcs-step-num .elementor-heading-title{display:flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;background:#fff;border:2px solid var(--jcs-red);color:var(--jcs-red);font-size:22px;font-weight:800;position:relative;z-index:2;}
.jcs-step-title .elementor-heading-title{font-size:18px;font-weight:800;color:var(--jcs-ink);}
.jcs-step-desc .elementor-widget-container{font-size:14px;color:var(--jcs-muted);line-height:1.6;}
.jcs-steps > .elementor-element:not(:last-child) .jcs-step::after{content:'';position:absolute;top:27px;left:62px;width:calc(100% - 16px);height:2px;background:var(--jcs-line);z-index:1;}
@media(max-width:880px){.jcs-step::after{display:none!important;}}

/* ===================== TEAM AVATARS ===================== */
.jcs-team-card{background:#fff;border:1px solid var(--jcs-line);border-radius:14px;overflow:hidden;text-align:center;transition:all .26s var(--jcs-ease);}
.jcs-team-card:hover{box-shadow:var(--jcs-sh-md);transform:translateY(-3px);}
.jcs-team-av{background:var(--jcs-charcoal)!important;}
.jcs-team-letter .elementor-heading-title{font-size:42px;font-weight:800;color:#fff;}
.jcs-team-name .elementor-heading-title{font-size:18px;font-weight:800;color:var(--jcs-ink);}
.jcs-team-role .elementor-widget-container{font-size:13px;font-weight:700;color:var(--jcs-red);letter-spacing:.04em;text-transform:uppercase;}
.jcs-team-role .elementor-widget-container p{margin:0;}
.jcs-team-desc .elementor-widget-container{font-size:13.5px;color:var(--jcs-muted);line-height:1.55;margin-top:8px;}
.jcs-team-desc .elementor-widget-container p{margin:0;}

/* ===================== CONTACT (form card + info card) ===================== */
.jcs-formcard{background:#fff;border:1px solid var(--jcs-line);border-radius:14px;padding:32px;box-shadow:var(--jcs-sh-sm);align-self:start;}
/* Contact form card: shrink the section title so it suits the card (the global .jcs-h2 clamp 30-46 is sized for full-width section headers). */
.jcs-formcard .jcs-h2 .elementor-heading-title{font-size:clamp(26px,2.4vw,34px);}
/* Uniform field height so text inputs and the <select> line up (GF renders selects ~12px taller than text inputs by default). */
.gform_wrapper input[type=text],.gform_wrapper input[type=email],.gform_wrapper input[type=tel],.gform_wrapper input[type=number],.gform_wrapper input[type=url],.gform_wrapper select{height:48px!important;min-height:48px!important;}
.jcs-irow{display:flex;gap:15px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--jcs-line-2);}
.jcs-irow:first-child{padding-top:0;}
.jcs-irow:last-child{border-bottom:none;padding-bottom:0;}
.jcs-iico{width:44px;height:44px;flex-shrink:0;border-radius:10px;background:rgba(226,35,26,.09);display:flex;align-items:center;justify-content:center;}
.jcs-iico svg{width:21px;height:21px;color:var(--jcs-red);stroke:var(--jcs-red);}
.jcs-ibody span{display:block;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--jcs-faint);margin-bottom:3px;}
.jcs-ibody b{font-size:16px;font-weight:800;color:var(--jcs-ink);font-family:'Manrope',sans-serif;}
.jcs-ibody b a{color:var(--jcs-ink);}
.jcs-ibody p{font-size:14.5px;color:var(--jcs-body);line-height:1.5;margin:4px 0 0;}
.jcs-hours p{display:flex;justify-content:space-between;gap:16px;margin:3px 0;}
.jcs-hours p span{font-size:14px;color:var(--jcs-body);text-transform:none;letter-spacing:0;font-weight:400;display:inline;margin:0;}
.jcs-hours b{font-size:14px;font-weight:700;color:var(--jcs-ink);}
.jcs-map{margin-top:20px;position:relative;min-height:320px;height:320px;border-radius:14px;border:1px solid var(--jcs-line);overflow:hidden;background:#eef1ee;display:block;padding:0;}
.jcs-map > .elementor-widget-html{position:absolute;inset:0;width:100%;height:100%;margin:0;max-width:none;z-index:1;}
.jcs-map > .elementor-widget-html iframe,.jcs-map iframe{width:100%;height:100%;min-height:320px;border:0;border-radius:0;display:block;}
.jcs-map > .jcs-map-card{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:2;width:auto;max-width:calc(100% - 32px);margin:0;pointer-events:none;}
.jcs-map-pin{width:30px;height:30px;background:var(--jcs-red);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 6px 16px rgba(226,35,26,.4);border:3px solid #fff;}
.jcs-map-card{background:#fff;border-radius:10px;box-shadow:var(--jcs-sh-md);padding:10px 16px;text-align:center;}
.jcs-map-card b{display:block;font-size:14px;font-weight:800;color:var(--jcs-ink);}
.jcs-map-card span{font-size:12.5px;color:var(--jcs-muted);}
.jcs-lic-center{margin-top:14px;text-align:center;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--jcs-red-d);}
/* Contact info card rebuilt with native Elementor widgets (Heading/Text/HTML) — these adapt the original span/b/p styling to Elementor's widget markup so the look is unchanged while the text is editable in Elementor. */
.jcs-irow>.elementor-element{margin:0;}
.jcs-irow>.elementor-widget-html{flex:0 0 auto;width:auto;}
.jcs-irow>.jcs-ibody{flex:1 1 auto;min-width:0;}
.jcs-ibody>.elementor-element{width:100%;}
.jcs-ic-label .elementor-heading-title{font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--jcs-faint);margin-bottom:3px;line-height:1.2;}
.jcs-ic-val .elementor-heading-title{font-size:16px;font-weight:800;color:var(--jcs-ink);font-family:'Manrope',sans-serif;line-height:1.3;}
.jcs-ic-val .elementor-heading-title a{color:var(--jcs-ink);}
.jcs-ic-sub .elementor-widget-container{font-size:14.5px;color:var(--jcs-body);line-height:1.5;margin-top:4px;}
.jcs-ic-sub .elementor-widget-container p{margin:0;font-size:inherit;color:inherit;line-height:inherit;}
.jcs-ic-sub a,.jcs-ic-val .elementor-heading-title a{color:inherit;text-decoration:none;}
.jcs-ic-sub a:hover,.jcs-ic-val .elementor-heading-title a:hover{color:var(--jcs-red);}
.jcs-hours-list{margin-top:2px;}
.jcs-hours-row{display:flex;justify-content:space-between;gap:16px;margin:3px 0;}
.jcs-hours-list>.elementor-element{width:100%;}
.jcs-hours-row{width:100%;}
.jcs-hours-row .elementor-element{margin:0;width:auto;}
/* Hours: day in a fixed-width column, times left-aligned in a consistent column (not justified to the card edge). */
.jcs-infocard .jcs-hours-row{justify-content:flex-start!important;}
.jcs-infocard .jcs-hours-row .jcs-hr-day{flex:0 0 118px;}
.jcs-hours-row .jcs-hr-day .elementor-heading-title{font-size:14px;font-weight:400;color:var(--jcs-body);}
.jcs-hours-row .jcs-hr-time .elementor-heading-title{font-size:14px;font-weight:700;color:var(--jcs-ink);}
.jcs-map-card .elementor-heading-title{font-size:14px;font-weight:800;color:var(--jcs-ink);}
.jcs-map-card .jcs-map-loc .elementor-heading-title{font-size:12.5px;font-weight:400;color:var(--jcs-muted);}
.jcs-lic-center .elementor-heading-title{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--jcs-red-d);}
.jcs-infocard>.jcs-irow{padding:16px 0!important;border-bottom:1px solid var(--jcs-line-2)!important;}
.jcs-infocard>.jcs-irow:first-child{padding-top:0!important;}
.jcs-infocard>.jcs-irow:last-child{border-bottom:none!important;padding-bottom:0!important;}
.jcs-infocard{display:flex;flex-direction:column;}
.jcs-map-pin{display:block;}
/* single job head breadcrumb + benefit icons */
.jcs-breadcrumb-dark .rank-math-breadcrumb p{color:rgba(255,255,255,.6);}
.jcs-benefit svg{width:22px;height:22px;color:var(--jcs-red);stroke:var(--jcs-red);fill:none;flex-shrink:0;}
.jcs-list li svg{stroke:var(--jcs-red);fill:none;}
/* ===================== HEADER PHONE BLOCK ===================== */
.jcs-phone-block{text-decoration:none;cursor:pointer;}
.jcs-phone-ico .elementor-icon{color:var(--jcs-red);}
.jcs-phone-ico svg{width:18px;height:18px;stroke:var(--jcs-red)!important;fill:none!important;}
.jcs-phone-ico .elementor-widget-container{display:flex;align-items:center;}
.jcs-phone-label .elementor-heading-title{font-size:9.5px;font-weight:700;letter-spacing:.14em;color:#8d8f92;text-transform:uppercase;line-height:1;margin-bottom:3px;}
.jcs-phone-num .elementor-heading-title{font-size:15px;font-weight:800;color:#fff;line-height:1;}
@media(max-width:880px){.jcs-phone-block{display:none;}}

/* ===================== JOB DETAIL: width + sticky rail ===================== */
.jcs-jobhead .jcs-wrap{max-width:1200px;margin:0 auto;padding:0 32px;}
.jcs-jobgrid{max-width:1200px;margin:0 auto;padding:56px 32px;gap:48px;align-items:start;}
.jcs-rail{position:sticky;top:94px;align-self:start;}
@media(max-width:1024px){.jcs-rail{position:static;top:0;}.jcs-jobgrid{padding:48px 24px;}}

/* ===================== BACK TO ALL JOBS (outline button) ===================== */
.jcs-backbtn{display:inline-flex;align-items:center;gap:9px;margin-top:34px;font-family:'Manrope',sans-serif;font-weight:800;font-size:14.5px;color:var(--jcs-ink);background:#fff;border:1.5px solid var(--jcs-line);border-radius:8px;padding:13px 24px;transition:all .25s var(--jcs-ease);text-decoration:none;}
.jcs-backbtn:hover{border-color:var(--jcs-ink);transform:translateY(-2px);box-shadow:var(--jcs-sh-sm);}

/* ===================== APPLY FORM polish ===================== */
.jcs-apply-terms{font-size:12.5px;color:var(--jcs-faint);text-align:center;line-height:1.5;margin:16px 0 0;}
.jcs-apply-terms a{color:var(--jcs-red);font-weight:700;}
.jcs-rail .gform_wrapper .gform_fields{grid-row-gap:18px;}
.gform_wrapper .ginput_container_fileupload{border:1.5px dashed var(--jcs-line);border-radius:8px;background:var(--jcs-paper);padding:20px;text-align:center;transition:all .2s;}
.gform_wrapper .ginput_container_fileupload:hover{border-color:var(--jcs-red);background:rgba(226,35,26,.03);}
.gform_wrapper .ginput_container_fileupload input[type=file]{margin:0 auto;max-width:100%;}
.gform_wrapper .gfield--type-fileupload .gform_fileupload_rules{display:block;text-align:center;font-size:12.5px;color:var(--jcs-faint);margin-top:6px;}

/* ===================== GLOBAL BUTTON STYLES (shadow + lift, site-wide) ===================== */
.elementor-widget-button .elementor-button{transition:all .25s var(--jcs-ease);box-shadow:0 4px 14px rgba(226,35,26,.28);}
.elementor-widget-button .elementor-button:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(226,35,26,.33);}
.jcs-btn-ghostwhite .elementor-button,.jcs-btn-outline .elementor-button,.jcs-phone-block .elementor-button{box-shadow:none!important;}
.jcs-btn-dark .elementor-button{box-shadow:0 4px 14px rgba(0,0,0,.18)!important;}
.jcs-btn-dark .elementor-button:hover{box-shadow:0 8px 26px rgba(226,35,26,.3)!important;}
.gform_wrapper .gform_footer input[type=submit],.gform_wrapper .gform_footer button{box-shadow:0 4px 14px rgba(226,35,26,.28)!important;transition:all .25s var(--jcs-ease);}
.gform_wrapper .gform_footer input[type=submit]:hover,.gform_wrapper .gform_footer button:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(226,35,26,.36)!important;}
/* ===================== SINGLE JOB: full-width + header height ===================== */
.jcs-single-main{width:100%;}
.jcs-single-main .jcs-jobhead{width:100%;}
.jcs-header-inner{padding-top:14px!important;padding-bottom:14px!important;}
.jcs-logo img{height:42px!important;}
.jcs-phone-block{display:flex!important;align-items:center;}
.jcs-phone-ico .elementor-icon{width:auto;height:auto;}
.jcs-phone-ico svg{width:17px!important;height:17px!important;}
/* ============================================================
   FINAL FIXES (authoritative) — job detail + header + form
   ============================================================ */
/* --- Header: compact + phone block forced visible --- */
.jcs-header-inner{padding-top:12px!important;padding-bottom:12px!important;}
.jcs-logo img{height:40px!important;}
.jcs-b1 .elementor-heading-title{font-size:21px!important;}
.jcs-phone-block{display:flex!important;align-items:center;gap:10px;text-decoration:none;}
@media(max-width:980px){.jcs-phone-block{display:none!important;}}
.jcs-phone-ico .elementor-icon{display:inline-flex!important;align-items:center;justify-content:center;color:var(--jcs-red)!important;width:auto!important;height:auto!important;background:transparent!important;border:0!important;}
.jcs-phone-ico .elementor-widget-container{margin:0!important;}
.jcs-phone-ico svg{width:18px!important;height:18px!important;stroke:var(--jcs-red)!important;fill:none!important;}
.jcs-phone-text{display:flex!important;flex-direction:column;line-height:1;}
.jcs-phone-label .elementor-heading-title{color:#8d8f92!important;font-size:9.5px!important;font-weight:700!important;letter-spacing:.14em!important;text-transform:uppercase!important;line-height:1!important;margin:0 0 3px!important;}
.jcs-phone-num .elementor-heading-title{color:#ffffff!important;font-size:15px!important;font-weight:800!important;line-height:1!important;margin:0!important;}

/* --- Job detail: align content with the logo (1200 inner, 32 gutter) --- */
.jcs-jobgrid{max-width:1264px!important;padding-left:32px!important;padding-right:32px!important;}
.jcs-jobhead .jcs-wrap{max-width:1264px!important;padding-left:32px!important;padding-right:32px!important;}
@media(max-width:1024px){.jcs-jobgrid{padding-left:24px!important;padding-right:24px!important;}.jcs-jobhead .jcs-wrap{padding-left:24px!important;padding-right:24px!important;}}

/* --- Back to all jobs: real outline button --- */
.jcs-backbtn{color:var(--jcs-ink)!important;background:#fff!important;border:1.5px solid var(--jcs-line)!important;text-decoration:none!important;border-radius:8px!important;}
.jcs-backbtn:hover{border-color:var(--jcs-ink)!important;color:var(--jcs-ink)!important;transform:translateY(-2px);box-shadow:var(--jcs-sh-sm);}

/* --- Gravity Forms selects: no clipping + chevron --- */
.gform_wrapper select{height:48px!important;min-height:48px!important;line-height:1.3!important;padding:0 42px 0 14px!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235f6063' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:18px!important;text-overflow:ellipsis;}
/* --- Header: tighter height --- */
.jcs-header-inner{padding-top:8px!important;padding-bottom:8px!important;}
.jcs-logo img{height:38px!important;}
.jcs-phone-num .elementor-heading-title{font-size:14.5px!important;}
/* --- Header: exact 77px (74px row + 3px red border) --- */
.jcs-header-inner{min-height:74px!important;padding-top:0!important;padding-bottom:0!important;align-items:center;}
.jcs-logo img{height:38px!important;}
/* ============================================================
   HOME tweaks (match prototype)
   ============================================================ */
/* cards: drop the inflating height:100% — CSS-grid stretch already gives equal height */
.jcs-cards .elementor-widget-icon-box{height:100%!important;}
.jcs-cards .elementor-widget-icon-box .elementor-widget-container{height:100%!important;}
/* home Latest Jobs: hide WPJM load-more (we use the centered "View all jobs" button) */
.jcs-latest .load_more_jobs,.jcs-latest #load_more_jobs,.jcs-latest .job-manager-pagination{display:none!important;}
/* trade tiles: center icon + label */
.jcs-trades .elementor-widget-icon-box .elementor-widget-container,.jcs-trades .elementor-icon-box-wrapper{text-align:center!important;}
.jcs-trades .elementor-icon-box-icon{display:flex;justify-content:center;}
/* secondary buttons: medium size (prototype btn-md) */
.jcs-btn-outline .elementor-button{font-size:14.5px!important;padding:13px 26px!important;}
/* hero H1: constrain width + force Manrope (match prototype wrap/size) */
.jcs-hero-h1 .elementor-heading-title{font-family:'Manrope',sans-serif!important;max-width:820px;margin-left:auto;margin-right:auto;}
/* FIX: kill the reserved empty grid row (grid-template-rows:repeat(2,1fr)) that inflated card height */
.jcs-cards,.jcs-team,.jcs-steps{grid-template-rows:none!important;grid-auto-rows:auto!important;}
/* Trades: remove the icon circle border (keep the soft circle bg) */
.jcs-trades .elementor-icon{border:none!important;}
/* ===================== RELATED JOBS (single) ===================== */
.jcs-related{background:var(--jcs-paper);padding:72px 0;border-top:1px solid var(--jcs-line);}
.jcs-related-wrap{max-width:1264px;margin:0 auto;padding:0 32px;}
.jcs-related-head{margin-bottom:30px;}
.jcs-related-eyebrow{display:inline-flex;align-items:center;gap:11px;color:var(--jcs-red);font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px;}
.jcs-related-eyebrow::before,.jcs-related-eyebrow::after{content:'';width:26px;height:3px;background:var(--jcs-red);border-radius:2px;}
.jcs-related-title{font-family:'Manrope',sans-serif;font-size:clamp(26px,3.4vw,36px);font-weight:800;letter-spacing:-.025em;color:var(--jcs-ink);margin:0;line-height:1.1;}
.jcs-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:980px){.jcs-related-grid{grid-template-columns:1fr;}}
/* ===================== BOARD: infinite-scroll load-more ===================== */
.jcs-board #load_more_jobs,.jcs-board .load_more_jobs{opacity:0!important;height:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;overflow:hidden!important;pointer-events:none!important;}
.jcs-board #load_more_jobs.loading{opacity:.6;}
/* ===================== STICKY FILTER + ACTIVE PILLS ===================== */
.jcs-jobfilter-wrap{position:sticky;top:77px;z-index:40;background:#fff;padding:16px 0 14px;box-shadow:0 10px 18px -12px rgba(0,0,0,.12);}
.jcs-active-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px;}
.jcs-af-label{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--jcs-faint);}
.jcs-filter-pill{display:inline-flex;align-items:center;gap:8px;background:var(--jcs-paper);border:1px solid var(--jcs-line);border-radius:999px;padding:7px 9px 7px 14px;font-size:13px;font-weight:700;color:var(--jcs-ink);text-decoration:none;transition:all .2s;}
.jcs-filter-pill:hover{border-color:var(--jcs-red);color:var(--jcs-red);}
.jcs-pill-x{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:rgba(0,0,0,.08);font-size:15px;line-height:1;}
.jcs-filter-pill:hover .jcs-pill-x{background:var(--jcs-red);color:#fff;}
.jcs-filter-clear{font-size:13px;font-weight:800;color:var(--jcs-red);text-decoration:none;margin-left:4px;}
.jcs-filter-clear:hover{text-decoration:underline;}

/* ===================== BACK TO TOP ===================== */
.jcs-totop{position:fixed;right:24px;bottom:24px;width:48px;height:48px;border-radius:50%;background:var(--jcs-red);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(226,35,26,.4);opacity:0;visibility:hidden;transform:translateY(10px);transition:all .3s var(--jcs-ease);z-index:990;}
.jcs-totop.show{opacity:1;visibility:visible;transform:translateY(0);}
.jcs-totop:hover{background:var(--jcs-red-h);transform:translateY(-3px);box-shadow:0 10px 28px rgba(226,35,26,.5);}
.jcs-totop svg{width:22px;height:22px;}
@media(max-width:600px){.jcs-totop{right:16px;bottom:16px;width:44px;height:44px;}}
/* board filter: account for WP admin bar so it sits below the sticky header */
.admin-bar .jcs-jobfilter-wrap{top:109px;}
@media screen and (max-width:782px){.admin-bar .jcs-jobfilter-wrap{top:123px;}}
/* Apply Now: prominent red glow (header + job cards) */
.jcs-apply .elementor-button{box-shadow:0 6px 20px rgba(226,35,26,.45)!important;}
.jcs-apply .elementor-button:hover{box-shadow:0 10px 30px rgba(226,35,26,.55)!important;transform:translateY(-2px);}
.jcs-jc-apply{box-shadow:0 4px 14px rgba(226,35,26,.32);}
.jcs-jobcard:hover .jcs-jc-apply{box-shadow:0 7px 20px rgba(226,35,26,.42);}
/* end-of-results message */
.jcs-jobs-end{display:none;text-align:center;padding:30px 16px 4px;margin-top:26px;color:var(--jcs-muted);font-size:14.5px;font-weight:600;border-top:1px solid var(--jcs-line);}
/* ===================== THANK-YOU next steps ===================== */
.jcs-nextsteps{grid-template-rows:none!important;text-align:left;margin:10px 0;width:100%;}
.jcs-nextstep{background:#fff;border:1px solid var(--jcs-line);border-radius:14px;padding:26px;box-shadow:var(--jcs-sh-sm);}
.jcs-ns-num .elementor-heading-title{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--jcs-red);color:#fff;font-size:17px;font-weight:800;margin-bottom:14px;}
.jcs-ns-title .elementor-heading-title{font-size:17px;font-weight:800;color:var(--jcs-ink);}
.jcs-ns-desc .elementor-widget-container{font-size:14px;color:var(--jcs-muted);line-height:1.6;}
/* ===== Sticky filter: tuck under header + mask the gap above ===== */
.jcs-jobfilter-wrap{top:74px!important;position:sticky;z-index:60;background:#fff;}
.admin-bar .jcs-jobfilter-wrap{top:106px!important;}
@media screen and (max-width:782px){.admin-bar .jcs-jobfilter-wrap{top:120px!important;}}
.jcs-jobfilter-wrap::before{content:'';position:absolute;left:0;right:0;bottom:100%;height:60px;background:#fff;z-index:-1;}
/* ===== Sticky filter: clean (remove mask bar + wrap shadow) ===== */
.jcs-jobfilter-wrap::before{display:none!important;content:none!important;}
.jcs-jobfilter-wrap{position:sticky;top:74px!important;z-index:60;background:#fff;box-shadow:none!important;padding-top:14px!important;padding-bottom:14px!important;}
.admin-bar .jcs-jobfilter-wrap{top:106px!important;}
/* Mobile: the job-board filter is NOT sticky (scrolls with the page). */
@media(max-width:768px){.jcs-jobfilter-wrap,.admin-bar .jcs-jobfilter-wrap{position:static!important;top:auto!important;}}
@media screen and (max-width:782px){.admin-bar .jcs-jobfilter-wrap{top:120px!important;}}
/* ===================== FOOTER bottom: copyright + links + webstix ===================== */
.jcs-footer-bottom{justify-content:center!important;}
.jcs-copy p{margin:0;font-size:13px;color:rgba(255,255,255,.55);}
.jcs-copy a{color:rgba(255,255,255,.72);text-decoration:none;}
.jcs-copy a:hover{color:#fff;}
.jcs-copy .sep{color:rgba(255,255,255,.3);margin:0 7px;}
.jcs-webstix{display:none!important;}
.jcs-webstix p{margin:0;font-size:13px;color:rgba(255,255,255,.55);}
.jcs-webstix a{color:var(--jcs-red);font-weight:800;text-decoration:none;}
.jcs-webstix a:hover{text-decoration:underline;}
/* Home (front page): show webstix on the right, spread the bar */
.jcs-front .jcs-footer-bottom{justify-content:space-between!important;}
.jcs-front .jcs-webstix{display:block!important;}

/* ===================== SITEMAP page ===================== */
.jcs-sitemap{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;}
@media(max-width:860px){.jcs-sitemap{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.jcs-sitemap{grid-template-columns:1fr;}}
.jcs-sm-group h2{font-family:'Manrope',sans-serif;font-size:18px;font-weight:800;color:var(--jcs-ink);margin:0 0 14px;padding-bottom:10px;border-bottom:2px solid var(--jcs-red);}
.jcs-sm-group ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.jcs-sm-group a{color:var(--jcs-muted);font-size:15px;font-weight:600;text-decoration:none;transition:color .2s;}
.jcs-sm-group a:hover{color:var(--jcs-red);}

/* ===================== 404 page ===================== */
.jcs-404{background:var(--jcs-charcoal);min-height:62vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:80px 24px;}
.jcs-404::before{content:'';position:absolute;inset:0;background:radial-gradient(120% 90% at 80% -10%,rgba(226,35,26,.18),transparent 55%);}
.jcs-404-inner{position:relative;z-index:2;text-align:center;max-width:620px;}
.jcs-404-code{font-family:'Manrope',sans-serif;font-size:clamp(90px,18vw,180px);font-weight:800;line-height:1;color:#fff;letter-spacing:-.04em;}
.jcs-404-code span{color:var(--jcs-red);}
.jcs-404-eyebrow{display:inline-block;color:var(--jcs-red);font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin:14px 0 8px;}
.jcs-404 h1{font-family:'Manrope',sans-serif;font-size:clamp(28px,4vw,40px);font-weight:800;color:#fff;letter-spacing:-.02em;margin:0 0 14px;}
.jcs-404 p{color:rgba(255,255,255,.7);font-size:16px;line-height:1.6;margin:0 auto 28px;max-width:480px;}
.jcs-404-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.jcs-404-btn{display:inline-flex;align-items:center;font-family:'Manrope',sans-serif;font-weight:800;font-size:15px;padding:14px 26px;border-radius:8px;text-decoration:none;border:2px solid rgba(255,255,255,.4);color:#fff;transition:all .25s var(--jcs-ease);}
.jcs-404-btn:hover{background:rgba(255,255,255,.1);border-color:#fff;}
.jcs-404-btn.primary{background:var(--jcs-red);border-color:var(--jcs-red);box-shadow:0 6px 20px rgba(226,35,26,.4);}
.jcs-404-btn.primary:hover{background:var(--jcs-red-h);border-color:var(--jcs-red-h);transform:translateY(-2px);}
/* Keep 404 button labels white — beats Elementor kit's `.elementor-kit-7 a{color:red}` (0,1,1) which otherwise rendered the text red (and red-on-red invisible on the primary button). */
.jcs-404 .jcs-404-btn,.jcs-404 .jcs-404-btn:hover,.jcs-404 .jcs-404-btn:focus{color:#fff;}
/* ===================== Custom sitemap ([jcs_sitemap] shortcode) ===================== */
.jcs-sitemap-page{max-width:1080px;margin:0 auto;padding:64px 24px 90px;display:flex;flex-direction:column;gap:46px;}
.jcs-sitemap-page .jcs-sm-group ul{display:block;margin:0;padding:0;list-style:none;}
.jcs-sitemap-page .jcs-sm-group li{margin:0 0 11px;break-inside:avoid;}
.jcs-sitemap-page .jcs-sm-group a{display:inline-block;}
.jcs-sitemap-page .jcs-sm-cols{columns:3 16em;column-gap:40px;}
@media(max-width:560px){.jcs-sitemap-page{padding:44px 20px 64px;}.jcs-sitemap-page .jcs-sm-cols{columns:1;}}
/* 404 search + sitemap block (injected below the themed 404 hero) */
.jcs-404-extra{background:#F6F6F7;border-top:1px solid var(--jcs-line);}
.jcs-404-extra-inner{max-width:1080px;margin:0 auto;padding:64px 24px 84px;}
.jcs-404-extra .jcs-sitemap-page{padding:42px 0 0;max-width:none;}
.jcs-404-search-wrap{max-width:640px;margin:0 auto;text-align:center;}
.jcs-sm-eyebrow{display:inline-block;color:var(--jcs-red);font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px;}
.jcs-404-search{display:flex;gap:10px;}
.jcs-404-search-input{flex:1 1 auto;min-width:0;height:54px;padding:0 18px;border:1px solid var(--jcs-line);border-radius:8px;font-size:16px;font-family:inherit;background:#fff;color:var(--jcs-ink);}
.jcs-404-search-input:focus{outline:none;border-color:var(--jcs-red);box-shadow:0 0 0 3px rgba(226,35,26,.15);}
.jcs-404-search-btn{flex:0 0 auto;height:54px;padding:0 28px;border:none;border-radius:8px;background:var(--jcs-red);color:#fff;font-family:'Manrope',sans-serif;font-weight:800;font-size:15px;cursor:pointer;transition:background .25s var(--jcs-ease);}
.jcs-404-search-btn:hover{background:var(--jcs-red-h);}
@media(max-width:480px){.jcs-404-search{flex-direction:column;}.jcs-404-search-btn{height:50px;}}
/* ===================== Native (non-Elementor) pages & posts ===================== */
/* Hello renders default-template pages/posts via template-parts/single.php
   (main.site-main > .page-header > .page-content) with NO clearance for the
   fixed header and no content styling. Scoped to .jcs-native (set in the
   sandbox body_class filter) so Elementor-canvas pages stay untouched. */
.jcs-native main.site-main{padding-top:118px;}
.jcs-native .site-main .page-header{padding:40px 24px 0;}
.jcs-native .site-main .page-header .entry-title{font-family:'Manrope',sans-serif;font-weight:800;font-size:clamp(30px,4.5vw,46px);line-height:1.12;letter-spacing:-.02em;color:var(--jcs-ink);margin:0;}
.jcs-native .site-main .page-content{padding:26px 24px 84px;color:var(--jcs-ink);font-size:17px;line-height:1.7;}
.jcs-native .site-main .page-content > *:first-child{margin-top:0;}
.jcs-native .site-main .page-content h2{font-family:'Manrope',sans-serif;font-weight:800;font-size:28px;letter-spacing:-.01em;margin:1.6em 0 .5em;color:var(--jcs-ink);}
.jcs-native .site-main .page-content h3{font-family:'Manrope',sans-serif;font-weight:700;font-size:22px;margin:1.4em 0 .4em;color:var(--jcs-ink);}
.jcs-native .site-main .page-content p{margin:0 0 1.1em;}
.jcs-native .site-main .page-content a{color:var(--jcs-red);text-decoration:underline;}
.jcs-native .site-main .page-content ul,.jcs-native .site-main .page-content ol{margin:0 0 1.1em;padding-left:1.3em;}
.jcs-native .site-main .page-content li{margin:0 0 .5em;}
.jcs-native .site-main .page-content img{max-width:100%;height:auto;border-radius:8px;}
.jcs-native .site-main .page-content > *:last-child{margin-bottom:0;}
/* Band enabled on a native page: drop the theme's duplicate <h1> and let the band
   go full-bleed (override Hello's body:not([class*=elementor-page-]) .site-main
   max-width:1140 cap). The band's own padding-top:144 clears the fixed header. */
body.jcs-native-band main.site-main{max-width:none;padding-top:0;}
body.jcs-native-band .site-main > .page-header{display:none;}
body.jcs-native-band main.site-main .page-content{padding:0 0 84px;}
body.jcs-native-band .site-main .page-content > *:not(.jcs-pagehead){max-width:1264px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px;box-sizing:border-box;}
body.jcs-native-band .site-main .page-content > .jcs-pagehead + *{margin-top:56px;}
@media(max-width:1024px){.jcs-native main.site-main{padding-top:92px;}.jcs-native .site-main .page-header{padding-top:28px;}}
/* ===================== HEADER: transparent integrated + solid-on-scroll ===================== */
.elementor-location-header{position:fixed;left:0;right:0;top:0;z-index:999;}
.admin-bar .elementor-location-header{top:32px;}
@media screen and (max-width:782px){.admin-bar .elementor-location-header{top:46px;}}
/* default = solid compact (inside pages + scrolled state) */
.jcs-header{background-color:#1A1A1A!important;border-bottom:3px solid var(--jcs-red)!important;box-shadow:0 4px 18px rgba(0,0,0,.22);transition:background-color .35s ease,box-shadow .35s ease,border-color .35s ease;}
.jcs-header .jcs-header-inner{min-height:74px!important;transition:min-height .35s ease;}
.jcs-header .jcs-logo img{height:40px!important;transition:height .35s ease;}
/* HOME (front page) at top = transparent, larger, integrated over hero */
.jcs-front .jcs-header{background-color:transparent!important;border-bottom-color:transparent!important;box-shadow:none!important;}
.jcs-front .jcs-header .jcs-header-inner{min-height:104px!important;}
.jcs-front .jcs-header .jcs-logo img{height:56px!important;}
/* HOME scrolled = solid compact */
.jcs-front .jcs-header.jcs-header-solid{background-color:#1A1A1A!important;border-bottom:3px solid var(--jcs-red)!important;box-shadow:0 6px 24px rgba(0,0,0,.28);}
.jcs-front .jcs-header.jcs-header-solid .jcs-header-inner{min-height:70px!important;}
.jcs-front .jcs-header.jcs-header-solid .jcs-logo img{height:40px!important;}
/* clear the fixed header on each page's first block */
.jcs-hero-photo{padding-top:170px!important;}
.jcs-pagehead{padding-top:128px!important;}
.jcs-jobhead{padding-top:120px!important;}
.jcs-404{padding-top:120px!important;}
.jcs-success{padding-top:128px!important;}
/* ===================== HOME design-match batch ===================== */
/* #2 hero browse: red arrow */
.jcs-hero-browse .elementor-button-text::after{content:"  \2192";color:var(--jcs-red);font-weight:800;}
/* #2/#3/#7 arrow on outline buttons (View all jobs / Explore all services) */
.jcs-arrow .elementor-button-text::after{content:"  \2192";font-weight:800;}
/* #4 Latest Jobs: even card height (clamp summary to 2 lines) */
.jcs-latest .jcs-jc-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
/* #6 “What we do” cards: remove icon border, keep even height */
.jcs-cards .elementor-icon{border:none!important;}
/* #8 trust: space between title and the box */
.jcs-cards.jcs-trust{margin-top:20px!important;}
/* #9 Trades sub-title wraps to two lines */
.jcs-center .jcs-sub .elementor-widget-container{max-width:620px;margin-left:auto;margin-right:auto;}
/* #10 CTA banner height = 320px (home) */
.jcs-front .jcs-cta.red{min-height:320px;}
/* ===================== FOOTER #11 logo left + #12 icons ===================== */
.jcs-fbrand{align-items:flex-start!important;text-align:left;}
.jcs-flogo{align-self:flex-start!important;}
.jcs-flogo .elementor-widget-container{text-align:left!important;}
.jcs-flogo img{margin-left:0!important;margin-right:auto!important;}
.jcs-fcontact-list .elementor-icon-list-icon svg{stroke:var(--jcs-red)!important;fill:none!important;width:18px;height:18px;}
.jcs-fsocial .elementor-social-icon{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.14)!important;}
.jcs-fsocial .elementor-social-icon svg{stroke:#fff!important;fill:none!important;width:17px;height:17px;}
.jcs-fsocial .elementor-social-icon:hover{background:var(--jcs-red)!important;border-color:var(--jcs-red)!important;}
/* footer Get In Touch: align the pin icon to the top of the multi-line address */
.jcs-fcontact-list .elementor-icon-list-item:first-child{align-items:flex-start!important;}
.jcs-fcontact-list .elementor-icon-list-item:first-child .elementor-icon-list-icon{margin-top:3px;}
/* footer credit: vertically centre the Webstix logo with the "Website Design by" text */
.jcs-webstix p{display:inline-flex;align-items:center;gap:7px;}
.jcs-webstix img{vertical-align:middle;display:block;}
.jcs-webstix a{display:inline-flex;align-items:center;}
/* ===================== HEADER: transparent integrated on every (dark-top) page ===================== */
.jcs-header{background-color:transparent!important;border-bottom-color:transparent!important;box-shadow:none!important;}
.jcs-header .jcs-header-inner{min-height:104px!important;}
.jcs-header .jcs-logo img{height:56px!important;}
.jcs-header.jcs-header-solid{background-color:#1A1A1A!important;border-bottom:3px solid var(--jcs-red)!important;box-shadow:0 6px 24px rgba(0,0,0,.28);}
.jcs-header.jcs-header-solid .jcs-header-inner{min-height:70px!important;}
.jcs-header.jcs-header-solid .jcs-logo img{height:40px!important;}
/* white-top pages (thank-you): keep header solid always */
.jcs-lighttop .jcs-header{background-color:#1A1A1A!important;border-bottom:3px solid var(--jcs-red)!important;}
.jcs-lighttop .jcs-header .jcs-header-inner{min-height:74px!important;}
.jcs-lighttop .jcs-header .jcs-logo img{height:40px!important;}
/* clearance for the larger transparent header */
.jcs-pagehead{padding-top:144px!important;}
.jcs-jobhead{padding-top:140px!important;}
.jcs-404{padding-top:140px!important;}
/* thank-you (white-top) clearance under the solid header */
.jcs-success{padding-top:130px!important;}

/* ===================== RESPONSIVE HEADER (tablet + mobile, <=1024px) =====================
   One source of truth for the small-screen header: a compact sticky bar with the
   logo on the left and the phone number + hamburger grouped on the right, and a
   full-width dropdown menu anchored directly under the bar. Overrides the older,
   conflicting header rules above (appended last so it wins on source order). */
@media(max-width:1024px){
  .jcs-header{padding-left:18px!important;padding-right:18px!important;}
  /* compact bar height in every state (default / transparent-home / scrolled-solid) */
  .jcs-header .jcs-header-inner,
  .jcs-front .jcs-header .jcs-header-inner,
  .jcs-front .jcs-header.jcs-header-solid .jcs-header-inner,
  .jcs-lighttop .jcs-header .jcs-header-inner{
    min-height:58px!important;padding-top:8px!important;padding-bottom:8px!important;
  }
  /* the boxed inner wrapper is the actual flex row holding logo / nav / phone */
  .jcs-header-inner > .e-con-inner{
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;
    justify-content:flex-start!important;gap:14px!important;position:relative!important;width:100%!important;
  }
  .jcs-header .jcs-logo img,
  .jcs-front .jcs-header .jcs-logo img,
  .jcs-front .jcs-header.jcs-header-solid .jcs-logo img,
  .jcs-lighttop .jcs-header .jcs-logo img{height:34px!important;}

  /* visual order: logo (pushes the rest right) | phone | hamburger */
  .jcs-header-inner > .e-con-inner > :nth-child(1){margin-right:auto!important;width:auto!important;flex:0 0 auto!important;}
  .jcs-header-inner > .e-con-inner > :nth-child(3){order:2!important;width:auto!important;flex:0 0 auto!important;}
  .jcs-header-inner > .e-con-inner > :nth-child(2){order:3!important;width:auto!important;flex:0 0 auto!important;position:static!important;}

  /* phone: always visible at the top, inline icon + number, tap to call */
  .jcs-actions{display:flex!important;}
  .jcs-phone-block{display:flex!important;align-items:center!important;}
  .jcs-phone-block .jcs-phone-text{flex-direction:row!important;align-items:center!important;}
  .jcs-phone-num .elementor-heading-title{font-size:15px!important;white-space:nowrap;}

  /* hamburger sits at the far right */
  .jcs-nav{margin-left:0!important;position:static!important;}
  .jcs-nav .elementor-widget-container{position:static!important;}

  /* dropdown spans the full width of the bar, just beneath it */
  .jcs-nav .elementor-nav-menu--dropdown{
    position:absolute!important;left:0!important;right:0!important;top:100%!important;
    width:auto!important;max-width:none!important;margin-top:8px!important;z-index:1000!important;
    border-radius:0 0 8px 8px;
  }

  /* shrink the page-top clearance to match the now-compact header */
  .jcs-hero-photo{padding-top:100px!important;}
  .jcs-pagehead{padding-top:96px!important;}
  .jcs-jobhead{padding-top:92px!important;}
  .jcs-404{padding-top:92px!important;}
  .jcs-success{padding-top:92px!important;}
}
/* narrow phones (<=520px): keep the header on ONE row — shrink the logo + spacing
   so logo, phone number and hamburger never wrap to a second line. */
@media(max-width:520px){
  .jcs-header{padding-left:14px!important;padding-right:14px!important;}
  .jcs-header-inner > .e-con-inner{gap:9px!important;}
  .jcs-header .jcs-logo img,
  .jcs-front .jcs-header .jcs-logo img,
  .jcs-front .jcs-header.jcs-header-solid .jcs-logo img,
  .jcs-lighttop .jcs-header .jcs-logo img{height:auto!important;max-height:30px!important;max-width:100%!important;width:auto!important;}
  .jcs-header-inner > .e-con-inner > :nth-child(1){flex:0 1 auto!important;min-width:0!important;}  /* logo may scale down */
  .jcs-header-inner > .e-con-inner > :nth-child(3){flex:0 0 auto!important;}                  /* phone keeps its size */
  .jcs-phone-num .elementor-heading-title{font-size:14px!important;white-space:nowrap;}
  .jcs-nav .elementor-menu-toggle{padding:4px!important;}
  .jcs-nav .elementor-menu-toggle svg{width:26px!important;height:26px!important;}
}
/* ultra-narrow (<=340px): drop the phone number, keep the tappable icon */
@media(max-width:340px){
  .jcs-phone-num{display:none!important;}
}
/* ===================== WHY / TWO-COLUMN (employment) ===================== */
.jcs-why{background:var(--jcs-paper);border-top:1px solid var(--jcs-line);}
.jcs-why-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;width:100%;align-items:stretch;}
.jcs-why-card{background:#fff;border:1px solid var(--jcs-line);border-radius:var(--jcs-br-lg);padding:30px;box-shadow:var(--jcs-sh-sm);display:flex;flex-direction:column;gap:18px;height:100%;}
.jcs-why-card .elementor-heading-title{font-size:clamp(18px,1.7vw,21px);font-weight:800;color:var(--jcs-ink);letter-spacing:-.025em;line-height:1.2;}
@media(min-width:1100px){.jcs-why-card .elementor-heading-title{white-space:nowrap;}}
.jcs-why-card .elementor-widget-image,.jcs-why-card .elementor-widget-image .elementor-widget-container{margin:0;}
.jcs-why-card .elementor-widget-image img{border-radius:10px;width:100%;height:240px;object-fit:cover;display:block;}
.jcs-why-list .elementor-icon-list-items{display:flex;flex-direction:column;gap:11px;}
.jcs-why-list .elementor-icon-list-item{align-items:flex-start;}
.jcs-why-list .elementor-icon-list-icon{padding-top:2px;}
.jcs-why-list .elementor-icon-list-icon svg,.jcs-why-list .elementor-icon-list-icon i{color:var(--jcs-red);fill:var(--jcs-red);width:20px;height:20px;}
.jcs-why-list .elementor-icon-list-text{font-size:15px;line-height:1.55;color:var(--jcs-body);font-weight:600;}
@media(max-width:767px){.jcs-why-grid{grid-template-columns:1fr;gap:20px;}.jcs-why-card img{height:200px;}}

/* why-section heading + card footer link */
.jcs-why-head{text-align:center;max-width:760px;margin:0 auto 34px;}
.jcs-why-head .elementor-heading-title{font-size:clamp(26px,3.2vw,38px);font-weight:800;color:var(--jcs-ink);letter-spacing:-.025em;line-height:1.12;}
.jcs-why-sub .elementor-widget-container{color:var(--jcs-muted);font-size:16px;line-height:1.6;margin-top:12px;}
.jcs-why-foot{margin-top:auto;border-top:1px solid var(--jcs-line);padding-top:18px;width:100%;}
.jcs-why-link .elementor-button{background:transparent;border:0;padding:0;color:var(--jcs-red);font-weight:800;font-size:15px;letter-spacing:.01em;display:inline-flex;align-items:center;gap:8px;box-shadow:none;}
.jcs-why-link .elementor-button:hover{background:transparent;color:var(--jcs-red-d);}
.jcs-why-link .elementor-button .elementor-button-icon{transition:transform .2s var(--jcs-ease);}
.jcs-why-link .elementor-button:hover .elementor-button-icon{transform:translateX(4px);}

/* ===================== SEARCH RESULTS PAGE ===================== */
.jcs-search-wrap{max-width:1264px;margin:0 auto;padding:56px 32px 88px;box-sizing:border-box;}
.jcs-search-list{display:flex;flex-direction:column;gap:20px;}
.jcs-search-card{background:#fff;border:1px solid var(--jcs-line);border-radius:var(--jcs-br-lg);padding:28px 30px;transition:transform .26s var(--jcs-ease),box-shadow .26s var(--jcs-ease),border-color .26s;}
.jcs-search-card:hover{transform:translateY(-2px);box-shadow:var(--jcs-sh-md);border-color:#d8d8dc;}
.jcs-search-kind{display:inline-block;color:var(--jcs-red);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px;}
.jcs-search-title{font-family:'Manrope',sans-serif;font-size:21px;font-weight:800;letter-spacing:-.02em;color:var(--jcs-ink);margin:0 0 10px;line-height:1.3;}
.jcs-search-title a{color:inherit;text-decoration:none;}
.jcs-search-title a:hover{color:var(--jcs-red);}
.jcs-search-excerpt{color:var(--jcs-muted);font-size:15.5px;line-height:1.7;margin:0 0 18px;}
.jcs-search-more{display:inline-flex;align-items:center;gap:6px;background:var(--jcs-red);color:#fff!important;font-weight:800;font-size:13.5px;padding:10px 20px;border-radius:8px;text-decoration:none;transition:background .2s,transform .2s;}
.jcs-search-more:hover{background:var(--jcs-red-h);transform:translateX(2px);}
.jcs-search-pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:36px;}
.jcs-search-pagination .page-numbers{display:inline-flex;align-items:center;padding:10px 18px;border-radius:8px;border:1px solid var(--jcs-line);color:var(--jcs-ink)!important;font-weight:700;font-size:14px;text-decoration:none;transition:all .2s;}
.jcs-search-pagination .page-numbers:hover{border-color:var(--jcs-red);color:var(--jcs-red)!important;}
.jcs-search-pagination .page-numbers.current{background:var(--jcs-red);border-color:var(--jcs-red);color:#fff!important;}
.jcs-search-empty{text-align:center;padding:40px 0 8px;}
.jcs-search-empty p{color:var(--jcs-muted);font-size:16px;margin:0 0 28px;max-width:560px;margin-left:auto;margin-right:auto;}
.jcs-search-empty-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.jcs-search-btn{display:inline-flex;align-items:center;font-family:'Manrope',sans-serif;font-weight:800;font-size:15px;padding:14px 26px;border-radius:8px;text-decoration:none;transition:all .25s var(--jcs-ease);}
.jcs-search-btn.primary{background:var(--jcs-red);color:#fff!important;border:2px solid var(--jcs-red);box-shadow:0 6px 20px rgba(226,35,26,.32);}
.jcs-search-btn.primary:hover{background:var(--jcs-red-h);border-color:var(--jcs-red-h);transform:translateY(-2px);}
.jcs-search-btn.outline{background:transparent;color:var(--jcs-ink)!important;border:2px solid var(--jcs-line);}
.jcs-search-btn.outline:hover{border-color:var(--jcs-ink);background:var(--jcs-ink);color:#fff!important;}
@media(max-width:640px){.jcs-search-card{padding:22px 20px;}.jcs-search-title{font-size:19px;}.jcs-search-wrap{padding:40px 20px 64px;}}
