/* Job Postings — editorial poster gallery, same fonts/header/footer as the magazine. */
.dh-jobs{color:#1b252d;background:#fff}
.dh-jobs a{color:inherit}
.dh-jobs a:focus-visible,.dh-jobs button:focus-visible{outline:3px solid #bf4332;outline-offset:4px}
.dh-jobs .dh-eyebrow{font:750 11px/1.4 var(--bw-font,"Inter",Arial,sans-serif);letter-spacing:.17em;color:var(--dh-accent);text-transform:uppercase;margin:0 0 17px}
.dh-jobs-hero{background:#f7f5f1;overflow:hidden}
.dh-jobs-hero-layout{display:grid;grid-template-columns:46% 54%;min-height:520px;align-items:stretch}
.dh-jobs-hero-copy{padding:clamp(48px,5vw,84px) 12% 30px 0;display:flex;align-items:flex-start;flex-direction:column;justify-content:center;min-width:0}
.dh-jobs-hero h1{font-size:clamp(64px,7vw,112px);line-height:.93;margin:0 0 25px;letter-spacing:-.075em;color:#19222a;max-width:760px}
.dh-jobs-hero h1 span{color:var(--dh-accent)}
.dh-jobs-hero-description{max-width:490px;color:#535f64;font-size:clamp(14px,1.14vw,16px);line-height:1.85;margin:0 0 25px}
.dh-jobs-hero-image{background-color:#dadbda;background-position:center;background-size:cover;min-width:0;position:relative;min-height:370px}
/* Match the Subscribe Now photo caption: text over the photo, without a label background or arrow. */
.dh-jobs-hero-image::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(19,34,36,.56),transparent 47%)}
.dh-jobs-hero-photo-label{position:absolute;z-index:1;left:clamp(18px,2vw,33px);bottom:clamp(20px,2vw,33px);right:auto;display:block;max-width:calc(100% - 36px);padding:0;border:0;background:transparent;box-shadow:none;color:#fff;font:750 10px/1.6 var(--bw-font,"Inter",Arial,sans-serif);letter-spacing:.16em;text-transform:uppercase;overflow-wrap:break-word}
.dh-jobs-directory{padding:clamp(56px,6.5vw,94px) 0 74px}
.dh-jobs-directory-head{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;margin-bottom:32px;text-align:center}
.dh-jobs-directory-head>div{width:100%;min-width:0}
.dh-jobs-directory-head .dh-eyebrow{text-align:center}
.dh-jobs-directory-head h2{font-size:clamp(46px,5vw,74px);line-height:1.04;margin:0 auto;max-width:100%;text-align:center}
.dh-jobs-category-nav{display:flex;align-items:center;justify-content:center;gap:10px 13px;flex-wrap:wrap;padding:20px 0 21px;border-top:1px solid #e8e7e3;border-bottom:1px solid #e8e7e3;text-align:center}
.dh-jobs-category-nav a{display:inline-flex;align-items:center;justify-content:center;gap:11px;padding:12px 16px;border:1px solid #dedfda;background:#fff;color:#253039;font:650 12px var(--bw-font,"Inter",Arial,sans-serif);text-decoration:none;transition:background .18s,border-color .18s}
.dh-jobs-category-nav a:hover{background:#1f3038;color:#fff;border-color:#1f3038}
.dh-jobs-category-nav a span{color:#a45a4e;font-size:11px}
.dh-jobs-category{padding:65px 0 45px;scroll-margin-top:110px;border-bottom:1px solid #e9e8e4}
.dh-jobs-category-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:29px}
.dh-jobs-category h3{font-size:clamp(39px,3.7vw,59px);line-height:1.05;letter-spacing:-.065em;margin:0}
.dh-jobs-category-heading>p{font-size:12px;color:#70787c;margin:0 0 6px;white-space:nowrap}
.dh-jobs-mini-rule{display:inline-block;width:16px;height:1px;background:#b3b6b5;vertical-align:middle;margin:0 5px}
.dh-jobs-poster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px;align-items:start}
.dh-jobs-poster{min-width:0;background:#fff;border:1px solid #eae8e4;box-shadow:0 8px 24px rgba(24,33,35,.045);transition:box-shadow .2s,transform .2s}
.dh-jobs-poster:hover{box-shadow:0 14px 32px rgba(24,33,35,.095);transform:translateY(-3px)}
.dh-jobs-poster[hidden]{display:none!important}
.dh-jobs-poster-open{border:0;padding:0;display:block;width:100%;background:#fff;text-align:left;cursor:zoom-in;color:inherit}
.dh-jobs-poster-image{display:flex;align-items:center;justify-content:center;position:relative;height:clamp(255px,30vw,395px);padding:17px;background:#f5f5f2;overflow:hidden}
.dh-jobs-poster-image img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .2s}
.dh-jobs-poster:hover .dh-jobs-poster-image img{transform:scale(1.025)}
.dh-jobs-poster-fallback{display:none;text-align:center;color:#566068;font-size:15px;font-weight:700;padding:20px}
.dh-jobs-poster-fallback small{display:block;font-size:12px;font-weight:400;line-height:1.7;margin-top:8px}
.dh-jobs-poster.is-image-error .dh-jobs-poster-image img{display:none}
.dh-jobs-poster.is-image-error .dh-jobs-poster-fallback{display:block}
.dh-jobs-poster.is-image-error .dh-jobs-poster-open{cursor:default}
.dh-jobs-poster-bottom{display:flex;justify-content:space-between;align-items:center;padding:17px 19px;gap:12px;border-top:1px solid #ebebe8}
.dh-jobs-poster-bottom>span:first-child{font:700 12px/1.45 var(--bw-font,"Inter",Arial,sans-serif);min-width:0;overflow-wrap:anywhere}
.dh-jobs-poster-arrow{font-size:18px;color:var(--dh-accent)}
.dh-jobs-poster-note{font-size:12px;color:#616d76;margin:0;padding:0 19px 20px;line-height:1.65}
.dh-jobs-load-wrap{text-align:center;padding:31px 0 0}
.dh-jobs-load{display:inline-flex;align-items:center;gap:25px;background:transparent;border:1px solid #2e3840;padding:13px 20px;color:#252f36;font:700 12px var(--bw-font,"Inter",Arial,sans-serif);cursor:pointer;transition:background .18s,color .18s}
.dh-jobs-load:hover{background:#202f37;color:#fff}
.dh-jobs-load[hidden]{display:none!important}
.dh-jobs-load span{color:var(--dh-accent);font-size:16px}
.dh-jobs-empty{background:#f7f5f1;padding:40px}
.dh-jobs-empty h3{font-size:32px;margin:0 0 12px}.dh-jobs-empty p{color:#5a6570}
.dh-jobs-note-section{background:#f6f4f0;padding:65px 0}
.dh-jobs-note-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(30px,7vw,110px);align-items:start}
.dh-jobs-note-layout h2{font-size:clamp(42px,4vw,62px);margin:0;line-height:1.08}
.dh-jobs-note-text{font-size:16px;line-height:1.9;color:#5e676e}
.dh-jobs-note-text p{margin:0 0 14px}
.dh-jobs-note-text ul{padding-left:25px}
.dh-jobs-contact{background:#172630;color:#fff;padding:clamp(54px,6vw,86px) 0}
.dh-jobs-contact-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:clamp(40px,7vw,110px);align-items:center}
.dh-jobs-contact h2{font-size:clamp(45px,5vw,73px);line-height:1.02;color:#fff;margin:0 0 18px}
.dh-jobs-contact p:not(.dh-eyebrow){max-width:600px;color:#d6dfe2;font-size:14px;line-height:1.85;margin:0}
.dh-jobs-contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:17px}
.dh-jobs-contact-links>a{font-size:14px;color:#fff;overflow-wrap:anywhere}
.dh-jobs-contact-links>a:not(.dh-jobs-contact-button):hover{color:#ea9284}
.dh-jobs-contact-links .dh-jobs-contact-button{display:flex;gap:38px;justify-content:space-between;align-items:center;min-width:210px;background:#c04936;color:#fff;padding:16px 21px;font-weight:650;margin-bottom:8px}
.dh-jobs-contact-button:hover{background:#a93529;color:#fff!important}
.dh-jobs-contact-button span{font-size:19px}
.dh-jobs-lightbox{border:0;padding:0;margin:auto;max-width:min(96vw,1060px);width:100%;max-height:95vh;background:#15242b;color:#fff;box-shadow:0 25px 100px #0008}
.dh-jobs-lightbox::backdrop{background:rgba(4,11,15,.88)}
.dh-jobs-lightbox-inner{padding:15px 18px}
.dh-jobs-lightbox-top,.dh-jobs-lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;font:650 13px/1.6 var(--bw-font,"Inter",Arial,sans-serif)}
.dh-jobs-lightbox-top{padding:0 0 12px}
.dh-jobs-lightbox-close{border:1px solid #56636c;background:transparent;color:#fff;font-size:28px;line-height:1;cursor:pointer;width:36px;height:36px}
.dh-jobs-lightbox-stage{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;gap:6px;align-items:center;justify-items:center;max-height:calc(95vh - 132px);min-height:120px}
.dh-jobs-lightbox-stage img{display:block;width:auto;height:auto;max-height:calc(95vh - 145px);max-width:100%;object-fit:contain;min-width:0}
.dh-jobs-lightbox-stage>button{border:1px solid #56636c;background:#26383f;color:#fff;font-size:34px;line-height:1;cursor:pointer;height:54px;width:38px}
.dh-jobs-lightbox-stage>button:hover,.dh-jobs-lightbox-close:hover{background:#bd4533}
.dh-jobs-lightbox-bottom{border-top:1px solid #3b4c54;margin-top:10px;padding:13px 4px 0;flex-wrap:wrap;font-size:11px;font-weight:400;color:#b9c2c7}
.dh-jobs-lightbox-bottom a{color:#fff;text-decoration:underline;font-weight:700}
@media(max-width:1060px){.dh-jobs-hero h1{font-size:clamp(54px,6.8vw,82px)}.dh-jobs-hero-copy{padding-right:7%}.dh-jobs-poster-grid{gap:18px}}
@media(max-width:800px){.dh-jobs-hero-layout{grid-template-columns:1fr 1fr;min-height:450px}.dh-jobs-hero-copy{padding-right:6%}.dh-jobs-hero h1{font-size:clamp(47px,7vw,64px)}.dh-jobs-poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dh-jobs-poster-image{height:320px}.dh-jobs-directory-head{display:block}.dh-jobs-note-layout{gap:30px}}
@media(max-width:640px){.dh-jobs-hero-layout{display:flex;flex-direction:column-reverse}.dh-jobs-hero-image{width:calc(100vw);margin-left:calc((100% - 100vw) / 2);min-height:260px}.dh-jobs-hero-copy{padding:36px 0 28px}.dh-jobs-hero h1{font-size:clamp(51px,13vw,75px);margin-bottom:18px}.dh-jobs-hero-description{font-size:14px;line-height:1.72}.dh-jobs-directory{padding:50px 0}.dh-jobs-directory-head h2{font-size:47px}.dh-jobs-category-nav{justify-content:center;flex-wrap:wrap;overflow:visible;padding:16px 0}.dh-jobs-category-nav a{white-space:nowrap;flex:0 0 auto}.dh-jobs-category{padding:44px 0 36px;scroll-margin-top:85px}.dh-jobs-category-heading{display:block}.dh-jobs-category h3{font-size:43px}.dh-jobs-category-heading>p{white-space:normal;margin-top:12px}.dh-jobs-poster-grid{grid-template-columns:1fr;gap:20px}.dh-jobs-poster-image{height:auto;min-height:280px;max-height:550px;aspect-ratio:4/5}.dh-jobs-note-layout,.dh-jobs-contact-layout{grid-template-columns:1fr}.dh-jobs-note-section{padding:48px 0}.dh-jobs-contact{padding:56px 0}.dh-jobs-lightbox{max-width:100vw;width:100%;max-height:100vh}.dh-jobs-lightbox-inner{padding:11px}.dh-jobs-lightbox-stage{grid-template-columns:27px minmax(0,1fr) 27px;gap:3px;max-height:calc(100vh - 135px)}.dh-jobs-lightbox-stage img{max-height:calc(100vh - 150px)}.dh-jobs-lightbox-stage>button{width:26px;height:45px;font-size:22px}}
@media(prefers-reduced-motion:reduce){.dh-jobs-poster,.dh-jobs-poster-image img,.dh-jobs a,.dh-jobs button{transition:none!important}}


/* v1.2.39 — Job Postings mobile masthead follows Daily News mobile placement.
   At tablet/mobile widths, text precedes the image in a single column, with
   the same container gutters, vertical rhythm and image heights as Daily News.
   Desktop (above 790px) remains unchanged. */
@media (max-width:790px) {
  .dh-jobs-hero {
    padding:45px 0 52px;
  }
  .dh-jobs-hero-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:25px;
    min-height:0;
    align-items:start;
  }
  .dh-jobs-hero-copy {
    padding:0;
    display:block;
    min-width:0;
  }
  .dh-jobs .dh-jobs-hero-copy .dh-eyebrow {
    margin:0 0 23px;
  }
  .dh-jobs-hero h1 {
    font-size:clamp(66px,8vw,93px);
    margin:0 0 29px;
    overflow-wrap:break-word;
  }
  .dh-jobs-hero-description {
    font-size:14px;
    line-height:1.8;
    max-width:510px;
    margin:0 0 28px;
  }
  .dh-jobs-hero-image {
    width:100%;
    margin-left:0;
    min-height:350px;
    background-position:center;
  }
  .dh-jobs-hero-photo-label {
    left:27px;
    bottom:25px;
    max-width:calc(100% - 54px);
  }
}
@media (max-width:550px) {
  .dh-jobs-hero {
    padding:32px 0 39px;
  }
  .dh-jobs-hero h1 {
    font-size:clamp(60px,14vw,82px);
    margin:0 0 20px;
  }
  .dh-jobs-hero-description {
    font-size:14px;
    margin:0 0 20px;
  }
  .dh-jobs-hero-image {
    min-height:250px;
  }
}

/* v1.2.49: All remaining job cards navigate to individual published Pages. */
.dh-jobs .dh-jobs-poster a.dh-jobs-poster-open{cursor:pointer;text-decoration:none;color:inherit}
.dh-jobs .dh-jobs-poster a.dh-jobs-poster-open:focus-visible{outline:3px solid var(--dh-accent,#c04936);outline-offset:3px}
.dh-jobs .bw-page-linked-job .dh-jobs-poster-image .dh-jobs-page-image-placeholder{padding:25px;font-weight:700;font-size:clamp(18px,2vw,28px);line-height:1.35;text-align:center;color:#323b41;overflow-wrap:anywhere}
