/* owner 2026-10-16: every job shows a picture (the post's own photo, or a realistic illustration of the role) plus the company logo when it was found reliably. */
.job-card.has-visual{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto 1fr;min-height:0}
.job-card.has-visual>.job-visual{background:#efeafd}
.job-visual{position:relative;aspect-ratio:16/10;overflow:hidden;background:#efeafd}
.job-visual>img:first-child{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 28%;transition:transform .45s ease}
.job-card:hover .job-visual>img:first-child,.featured-role-card:hover .job-visual>img:first-child{transform:scale(1.035)}
.job-visual.is-flyer>img:first-child{object-fit:contain;background:#f3f0ff}
.job-visual.image-fallback,.job-card.has-visual>.job-visual.image-fallback{background:linear-gradient(145deg,#211b52,#6850ca 65%,#baaaff)}
.job-visual-tag{position:absolute;top:10px;right:10px;padding:3px 8px;border-radius:999px;background:rgba(14,19,48,.55);color:#fff;font-size:.6rem;font-weight:800;letter-spacing:.05em;backdrop-filter:blur(4px)}
.job-logo{position:absolute;left:12px;bottom:12px;box-sizing:border-box;width:auto;min-width:44px;max-width:132px;height:44px;padding:5px 7px;border-radius:11px;background:#fff;object-fit:contain;box-shadow:0 4px 14px rgba(10,14,40,.22)}
.job-card.has-visual .job-body{padding-top:14px}
.featured-role-card.has-visual{display:flex;flex-direction:column;padding:0}
.featured-role-card.has-visual .job-visual{aspect-ratio:4/3}
.featured-role-card.has-visual .featured-role-body{display:flex;flex:1;flex-direction:column;padding:16px 20px 20px}
.featured-role-card.has-visual .featured-role-body>p{margin:0 0 8px;color:#7159c9;font-size:.68rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.featured-role-card.has-visual .featured-role-body>a{margin-top:auto;padding-top:12px}

/* Job page: the picture tops the application panel; square photos scale to fit, flyers show whole. */
.job-panel-visual{position:relative;margin:-26px -26px 20px;overflow:hidden;border-radius:20px 20px 0 0;aspect-ratio:4/3;background:#efeafd}
.job-panel-visual>img:first-child{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.job-panel-visual.is-flyer{aspect-ratio:auto}
.job-panel-visual.is-flyer>img:first-child{height:auto;max-height:560px;object-fit:contain;background:#f3f0ff}
.job-panel-visual .job-logo{max-width:160px;height:54px;left:14px;bottom:14px;border-radius:13px}
@media(max-width:800px){.job-panel-visual{margin:-21px -21px 18px;aspect-ratio:1/1}}
.tracker-sign-in{display:inline-block}.application-tracker+.back-to-jobs,.application-tracker~.back-to-jobs{display:inline-block;margin-top:16px}
/* Jobs list as shop tiles, like hs.mt products: square photo, title, company, pay, quick Apply. */
.job-list.tile-grid{grid-template-columns:repeat(auto-fill,minmax(178px,1fr))!important;gap:14px!important}
.job-tile{position:relative;display:flex!important;flex-direction:column;border-radius:14px!important}
.job-tile .job-visual{aspect-ratio:1/1}
.job-tile-link{position:absolute;inset:0;z-index:2;border-radius:inherit}
.job-tile-link:focus-visible{outline:3px solid #7356dd;outline-offset:2px}
.job-tile-apply{position:absolute;top:8px;right:8px;z-index:3;padding:7px 11px;border-radius:9px;background:#151c45;color:#fff;font-size:.74rem;font-weight:850;text-decoration:none;box-shadow:0 4px 12px rgba(10,14,40,.25)}
.job-tile-apply:hover{background:#6047c6}
.job-tile .job-visual-tag{top:9px;left:8px;right:auto;font-size:.56rem;padding:3px 7px}
.job-tile .job-logo{left:8px;bottom:8px;height:36px;max-width:104px;padding:4px 6px;border-radius:9px}
.job-tile .job-body{gap:2px;padding:10px 11px 12px!important}
.job-tile h3{margin:0 0 2px!important;font-size:.9rem!important;line-height:1.25!important}
.job-tile-company,.job-tile-where{margin:0!important;font-size:.76rem!important}
.job-tile-where{color:#7a8299!important}
.job-tile-pay{margin:6px 0 0!important;color:#4a33b3!important;font-size:.78rem!important;font-weight:850;white-space:normal!important}
@media(max-width:560px){.job-list.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.job-tile .job-body{padding:9px 9px 11px!important}.job-tile h3{font-size:.84rem!important}.job-tile-apply{top:6px;right:6px;padding:6px 9px;font-size:.7rem}}
body[data-theme="dark"] .job-visual,body[data-theme="dark"] .job-panel-visual{background:#1b2858}body[data-theme="dark"] .job-tile-where{color:#9aa4c8!important}body[data-theme="dark"] .job-tile-pay{color:#cbbfff!important}
/* Employer call-out tile in the jobs grid: the yellow "we're hiring" flyer look. */
.job-card.employer-tile{position:relative;display:flex!important;align-items:stretch;min-height:0;background:#ffd84d!important;border-color:#f0c419!important;border-radius:14px!important}
.employer-tile-body{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:18px 14px}
.employer-tile strong{font-size:1.7rem;line-height:1;font-weight:900;letter-spacing:-.03em;color:#141a3a}
.employer-tile p{margin:0;color:#2b2a1f!important;font-size:.92rem!important;line-height:1.35;white-space:normal!important}
.employer-tile-cta{align-self:flex-start;margin-top:4px;padding:8px 12px;border-radius:9px;background:#141a3a;color:#fff;font-size:.82rem;font-weight:850}
