.gfp-jobs,.gfp-job-single,.gfp-map-frame{--gfp-teal:#509e96;--gfp-orange:#e4932b;--gfp-ink:#233638;font-family:inherit;color:var(--gfp-ink)}.gfp-jobs *,.gfp-job-single *{box-sizing:border-box}.gfp-jobs-grid{display:grid;gap:26px;grid-template-columns:repeat(3,minmax(0,1fr))}.gfp-cols-1{grid-template-columns:1fr}.gfp-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gfp-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.gfp-job-card{border-radius:16px;overflow:hidden;background:#fff;border:1px solid #e2ebea;box-shadow:0 8px 25px rgba(24,60,58,.07);display:flex;flex-direction:column}.gfp-job-image{display:block;aspect-ratio:16/10;overflow:hidden;background:#eef5f4}.gfp-job-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}.gfp-job-image:hover img{transform:scale(1.025)}.gfp-img-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:55px;color:var(--gfp-teal)}.gfp-job-body{padding:23px;display:flex;flex-direction:column;flex:1}.gfp-job-meta{display:flex;gap:8px 18px;flex-wrap:wrap;color:#58716f;font-size:.85em;margin-bottom:12px}.gfp-job-meta span:first-child{color:var(--gfp-teal);font-weight:700}.gfp-job-body h3{font-size:1.24em;line-height:1.35;margin:0 0 12px}.gfp-job-body h3 a{color:#21393a;text-decoration:none}.gfp-job-body h3 a:hover{color:var(--gfp-teal)}.gfp-job-body p{color:#516363;line-height:1.65;margin:0 0 20px}.gfp-readmore{color:var(--gfp-orange)!important;font-weight:700;text-decoration:none!important;margin-top:auto}.gfp-pagination{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin:35px 0}.gfp-pagination a{min-width:39px;padding:8px 12px;text-align:center;border:1px solid #b9d5d0;border-radius:7px;text-decoration:none;color:#235b55}.gfp-pagination a[aria-current=page]{background:var(--gfp-teal);color:#fff}.gfp-interactive-map{width:100%;z-index:1;border-radius:16px;overflow:hidden;border:1px solid #d8e4e2}.gfp-map-frame{position:relative}.gfp-map-empty{font-size:.88em;color:#6a7877}.gfp-map-popup{max-width:240px}.gfp-map-popup img{width:100%;max-height:130px;object-fit:cover;border-radius:7px;margin-bottom:8px}.gfp-map-popup strong{display:block;font-size:15px;margin-bottom:4px}.gfp-map-popup small{display:block;margin:4px 0 8px;color:#5b6c6b}.gfp-map-popup p{margin:6px 0}.gfp-map-popup a{color:#277b70;font-weight:700}.gfp-map-pin{background:#e4932b;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #509e96,0 2px 8px #3336}.gfp-job-single .gfp-job-meta{margin-bottom:24px}.gfp-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:18px}.gfp-gallery a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:12px}.gfp-gallery img{height:100%;width:100%;object-fit:cover;display:block}.gfp-job-single h2{margin-top:34px}@media(max-width:980px){.gfp-jobs-grid,.gfp-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.gfp-jobs-grid,.gfp-cols-2,.gfp-cols-4,.gfp-gallery{grid-template-columns:1fr}.gfp-job-body{padding:19px}.gfp-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gfp-interactive-map{border-radius:10px}}@media(prefers-reduced-motion:reduce){.gfp-job-image img{transition:none}}

/* Multi-photo job listing slideshow */
.gfp-photo-slider{position:relative;aspect-ratio:16/10;overflow:hidden;background:#eef5f4}
.gfp-photo-slide{position:absolute;inset:0;display:block}
.gfp-photo-slide[hidden]{display:none!important}
.gfp-photo-slide img{width:100%;height:100%;object-fit:cover;display:block}
.gfp-photo-slider button{position:absolute;top:50%;transform:translateY(-50%);border:0;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;background:rgba(255,255,255,.91);color:#205e57;font-size:27px;line-height:1;cursor:pointer;z-index:2;box-shadow:0 2px 10px #0002}
.gfp-photo-slider button:hover,.gfp-photo-slider button:focus-visible{background:#509e96;color:white}
.gfp-slide-prev{left:10px}.gfp-slide-next{right:10px}
.gfp-slide-count{position:absolute;bottom:10px;right:10px;background:rgba(23,44,43,.79);color:white;border-radius:20px;padding:4px 10px;font-size:12px;z-index:2}

/* Main photo with thumbnail gallery */
.gfp-photo-gallery{width:100%;min-width:0}
.gfp-gallery-main{display:block;aspect-ratio:16/10;overflow:hidden;background:#eef5f4;border-radius:12px 12px 0 0}
.gfp-gallery-main-image{display:block;width:100%;height:100%;object-fit:cover}
.gfp-gallery-thumbnails{display:flex;gap:8px;padding:9px;overflow-x:auto;background:#f1f7f6;scrollbar-width:thin}
.gfp-gallery-thumb{flex:0 0 64px;width:64px;height:53px;padding:0!important;border:3px solid transparent!important;background:#fff!important;border-radius:8px!important;overflow:hidden;cursor:pointer;box-shadow:none!important;min-height:0!important;line-height:0!important}
.gfp-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.gfp-gallery-thumb.is-active{border-color:#e4932b!important}
.gfp-gallery-thumb:focus-visible{outline:3px solid #509e96;outline-offset:2px}
.gfp-photo-gallery--single .gfp-gallery-main{aspect-ratio:16/9;border-radius:14px 14px 0 0}
.gfp-photo-gallery--single .gfp-gallery-thumb{flex-basis:100px;width:100px;height:78px}
.gfp-photo-gallery--single .gfp-gallery-thumbnails{gap:12px;padding:14px;border-radius:0 0 14px 14px}
@media(max-width:650px){.gfp-gallery-thumb{flex-basis:56px;width:56px;height:48px}.gfp-photo-gallery--single .gfp-gallery-thumb{flex-basis:78px;width:78px;height:64px}}

/* 1.4: full job cards, photo-first layout, map above listing */
.gfp-jobs-map-heading{margin:0 0 18px}.gfp-jobs-map-heading h2,.gfp-list-heading{color:#234441;font-size:clamp(23px,3vw,33px);margin:0 0 8px}.gfp-jobs-map-heading p{color:#586e6b;margin:0 0 20px}.gfp-map-frame{margin-bottom:42px}.gfp-list-heading{margin-bottom:22px}.gfp-job-description{color:#435957;line-height:1.75;overflow-wrap:anywhere}.gfp-job-description p{margin:0 0 14px}.gfp-job-description p:last-child{margin-bottom:0}.gfp-gallery-empty{min-height:220px;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;background:#edf5f4;color:#52716d;font-size:14px;text-align:center;padding:24px}.gfp-gallery-empty>span:first-child{font-size:52px;line-height:1;color:#509e96}.gfp-jobs .gfp-photo-gallery .gfp-gallery-main{border-radius:12px 12px 0 0}.gfp-jobs .gfp-jobs-grid{align-items:start}.gfp-jobs .gfp-job-body h3{font-size:1.35rem}.gfp-map-frame .leaflet-container{z-index:1}.gfp-jobs-grid.gfp-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:740px){.gfp-jobs-grid.gfp-cols-2{grid-template-columns:1fr}.gfp-map-frame{margin-bottom:30px}}

/* v1.5 city-map hover preview */
.gfp-map-frame .leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 10px 34px rgba(20,65,60,.2)}
.gfp-map-frame .leaflet-popup-content{margin:12px 14px;min-width:160px;max-width:230px}
.gfp-map-frame .gfp-map-popup img{width:100%;height:110px;object-fit:cover;margin-bottom:7px}
.gfp-map-frame .gfp-map-popup strong{color:#285e59}
.gfp-map-frame .gfp-map-popup p{font-size:12px;line-height:1.45}

/* v1.6: individual map inside each job card; dedicated city maps remain full width */
.gfp-card-map-wrap{margin:0 20px 20px;padding:13px;background:#f2f8f7;border:1px solid #dae9e6;border-radius:12px}
.gfp-card-map-label{font-size:13px;font-weight:750;color:#2f716a;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.gfp-card-map-label span{font-size:11px;font-weight:400;color:#718a86}
.gfp-card-map-wrap .gfp-map-frame{margin:0!important}
.gfp-card-map-wrap .gfp-interactive-map{border-radius:9px;height:185px;background:#e7eeec}
.gfp-card-map-wrap .leaflet-control-attribution{font-size:9px}
.gfp-card-map-wrap .leaflet-popup-content img{max-height:70px}
@media(max-width:650px){.gfp-card-map-wrap{margin:0 16px 16px}}

/* 1.6.1: accessible pagination below Elementor shortcode job listings */
.gfp-jobs .gfp-pagination{clear:both;display:flex!important;visibility:visible!important;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;margin:32px 0 12px;padding:10px 0}
.gfp-jobs .gfp-pagination a{display:inline-flex!important;align-items:center;justify-content:center;min-width:42px;min-height:42px;padding:9px 14px;background:#fff;border:1px solid #509e96;border-radius:8px;color:#275b55;font-weight:600;text-decoration:none}
.gfp-jobs .gfp-pagination a:hover,.gfp-jobs .gfp-pagination a[aria-current="page"]{background:#509e96;color:#fff}
.gfp-jobs .gfp-page-ellipsis{display:inline-flex;align-items:center;padding:0 4px;color:#6b7a79}
