/* Exact project media; scoped to the four reconciled case studies. */
.case-study-media{background:#fbfaf7;color:#18394b}
.case-study-media .case-media-hero{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);background:#102d40;color:#fff;min-height:520px}
.case-media-copy{padding:64px clamp(24px,4vw,64px);align-self:center}
.case-media-copy h1{font-size:clamp(38px,4.3vw,66px);letter-spacing:-.04em;line-height:1.04;margin:14px 0 22px;color:#fff;overflow-wrap:break-word}
.case-media-copy>p:not(.eyebrow){font-size:17px;line-height:1.65;color:#d9e4eb;max-width:580px}
.case-media-copy .actions{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}
.case-media-copy .case-location{font-size:14px!important;color:#ffb744!important;font-weight:800}
.case-feature-photo{margin:0;background:#0a2030;position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-width:0}
.case-feature-photo button{width:100%;padding:0;background:none;border:0;cursor:zoom-in;display:block}
.case-feature-photo img{display:block;width:100%;height:auto;max-height:620px;object-fit:contain}
.case-feature-photo figcaption{padding:16px 24px;color:#dce7ed;font-size:13px;line-height:1.5;border-top:1px solid #355367}
.case-feature-photo figcaption span{display:block;margin-top:5px;font-size:11px;color:#abc2d0}
.case-facts{max-width:1280px;margin:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#dce4e8;padding:1px}
.case-facts div{background:#fff;padding:22px 26px;min-width:0}
.case-facts dt{color:#6b7c86;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}
.case-facts dd{margin:0;color:#18394b;font-size:14px;font-weight:800;line-height:1.45}
.case-media-section{max-width:1280px;margin:auto;padding:68px 32px}
.case-media-intro{display:grid;grid-template-columns:1fr .8fr;gap:32px;align-items:end;margin-bottom:30px}
.case-media-intro h2{font-size:clamp(32px,3.5vw,49px);line-height:1.08;letter-spacing:-.03em;margin:8px 0;color:#17384b}
.case-media-intro>p{color:#60737e;line-height:1.65;margin:0}
.case-stage-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 26px}
.case-stage-tabs a{border:1px solid #ccd8de;border-radius:999px;padding:9px 17px;color:#17394c;font-size:13px;font-weight:800;background:#fff;text-decoration:none}
.case-stage-tabs a:hover{background:#17394c;color:#fff}
.case-stage-group{scroll-margin-top:100px;margin-top:38px}
.case-stage-heading{display:flex;align-items:center;gap:12px;font-size:22px;margin:0 0 20px;color:#17394c}
.case-stage-heading span{display:inline-grid;place-items:center;background:#e99a28;color:#122f41;width:34px;height:34px;border-radius:50%;font-size:12px;flex-shrink:0}
.case-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.case-gallery-photo{margin:0;background:#fff;border:1px solid #dce4e7;border-radius:15px;overflow:hidden;box-shadow:0 12px 32px #102d4008;min-width:0}
.case-gallery-photo button{display:block;width:100%;padding:0;background:#e8edf0;border:0;cursor:zoom-in;position:relative}
.case-gallery-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#e8edf0}
.case-gallery-photo button::after{content:'EXPAND PHOTO';position:absolute;right:14px;bottom:14px;background:#102d40da;color:#fff;border:1px solid #ffffff50;border-radius:999px;font-size:9px;letter-spacing:.09em;padding:8px 11px;pointer-events:none}
.case-gallery-photo figcaption{padding:19px 22px;line-height:1.55;font-size:13px;color:#61747e}
.case-gallery-photo figcaption strong{display:block;color:#17394c;font-size:15px;margin-bottom:6px}
.case-stage-note{color:#687b86;font-size:12px;line-height:1.6;margin:24px 0 0}
.case-context{border-top:1px solid #dce4e8;background:#f1f5f6}
.case-context-inner{max-width:1280px;margin:auto;padding:56px 32px;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.case-context h2{font-size:clamp(27px,3vw,40px);line-height:1.1;letter-spacing:-.025em;color:#17394c}
.case-context p{color:#60737e;line-height:1.7}
.case-engineering-reference{margin:0;max-width:100%;background:#fff;border:1px solid #d5e0e5;border-radius:12px;overflow:hidden}
.case-engineering-reference button{padding:12px;background:#fff;border:0;width:100%;cursor:zoom-in}
.case-engineering-reference img{width:100%;height:280px;display:block;object-fit:contain}
.case-engineering-reference figcaption{background:#102d40;padding:16px 20px;font-size:12px;line-height:1.55;color:#fff}
.case-record-note{max-width:1280px;margin:0 auto;padding:28px 32px;color:#5c707d;font-size:13px}
.case-record-note summary{cursor:pointer;font-weight:800;color:#1e4054}
.case-record-note p{max-width:960px;line-height:1.65}
.case-study-media button:focus-visible,.case-study-media a:focus-visible{outline:3px solid #f7ac39;outline-offset:4px}
@media(max-width:1000px){.case-study-media .case-media-hero{grid-template-columns:1fr}.case-media-copy{padding:44px 28px 34px}.case-feature-photo{padding:0 20px 0}.case-feature-photo img{max-height:620px}.case-facts{grid-template-columns:1fr 1fr}.case-media-intro{grid-template-columns:1fr;gap:14px}}
@media(max-width:620px){.case-media-copy{padding:34px 20px 26px}.case-media-copy h1{font-size:clamp(34px,9.5vw,48px)}.case-media-copy>p:not(.eyebrow){font-size:16px}.case-feature-photo{padding:0}.case-feature-photo figcaption{padding:15px 20px}.case-facts div{padding:18px 16px}.case-media-section{padding:44px 18px}.case-gallery-grid{grid-template-columns:1fr;gap:18px}.case-context-inner{grid-template-columns:1fr;padding:42px 20px;gap:20px}.case-engineering-reference img{height:230px}.case-gallery-photo figcaption{padding:17px 18px}.case-record-note{padding:24px 20px}}


/* HOTFIX_20261004_CASE_CTA_LINK_VISIBILITY
   Prevent white-on-white related project pills inside dark CTA bands. */
.case-study-media .cta .related-links a{
  color:#17394c!important;
  background:#fff!important;
  border-color:#d8e0e5!important;
  text-decoration:none;
}
.case-study-media .cta .related-links a:hover,
.case-study-media .cta .related-links a:focus-visible{
  color:#fff!important;
  background:#17394c!important;
  border-color:#17394c!important;
}
