/*
 * IMG production corrections v1.2.6
 * Loaded after the page-specific stylesheet.
 */

/* ----------------------------------------------------------
   HERO MEDIA: always fill the intended frame without stretching
   ---------------------------------------------------------- */
.bhero,
.hero,
.cs-hero,
.job-role-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

.bhero-bg,
.hero-bg,
.cs-hero-bg,
.job-role-hero-bg{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  overflow:hidden!important;
  pointer-events:none;
}

.bhero-bg{z-index:-1!important;}
.hero-bg{z-index:0!important;}
.cs-hero-bg,
.job-role-hero-bg{z-index:0!important;}

.bhero-bg > img,
.bhero-bg .replace-img-tag,
.hero-bg > img,
.hero-bg .replace-img-tag,
.cs-hero-bg > img,
.cs-hero-bg .replace-img-tag,
.job-role-hero-bg > img,
.job-role-hero-bg .replace-img-tag,
.bhero > img:only-child,
.bhero > p:only-child > img:only-child,
.bhero > figure:only-child img,
.hero > img:only-child,
.hero > p:only-child > img:only-child,
.hero > figure:only-child img{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center!important;
}

.cs-hero-bg::after,
.job-role-hero-bg::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(to bottom,rgba(5,5,5,.42),rgba(5,5,5,.28) 42%,rgba(5,5,5,.88) 100%);
}

.cs-hero > .wrap,
.job-role-hero-inner{
  position:relative;
  z-index:2;
}

/* Keep case-study breadcrumbs and headings on the same left grid line as the header logo.
   The hero is a flex container, so an auto-width child would otherwise shrink-wrap
   around the title and appear centred. */
.cs-hero > .wrap{
  width:100%;
}

/* Remove the temporary stock-image instruction even when it remains in saved HTML. */
.bg-careers .bhero-cap,
.page-template-template-careers .bhero-cap{
  display:none!important;
}

/* ----------------------------------------------------------
   SUBSIDIARY / ILA CASE CARDS
   ---------------------------------------------------------- */
.work .work-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:start!important;
  grid-auto-rows:auto!important;
  gap:clamp(16px,2vw,28px)!important;
}

.work .wcard{
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:4 / 5!important;
  align-self:start!important;
  overflow:hidden!important;
}

.work .wcard .placeholder-art{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  overflow:hidden!important;
  z-index:0!important;
}

.work .wcard .placeholder-art img,
.work .wcard img.replace-img-tag{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
}

.work .wcard::after{z-index:1!important;}
.work .wcard > .w-sector,
.work .wcard > .w-client,
.work .wcard > .w-title,
.work .wcard > .w-roi{z-index:2!important;}

@media (max-width:980px){
  .work .work-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:620px){
  .work .work-grid{grid-template-columns:1fr!important;}
  .work .wcard{aspect-ratio:4 / 4.6!important;}
}

/* ----------------------------------------------------------
   CASE-STUDY / THE HUB ARCHIVE
   ---------------------------------------------------------- */
.img-hub-archive .wrap{overflow:visible;}
.hub-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(16px,2vw,28px);
  align-items:start;
  margin-top:clamp(34px,4vw,58px);
}

.hub-card{
  min-width:0;
  align-self:start;
  background:var(--bg,#050505);
  border:1px solid var(--line,rgba(255,255,255,.09));
  overflow:hidden;
  transition:transform .35s ease,border-color .35s ease;
}
.hub-card:hover{
  transform:translateY(-4px);
  border-color:var(--line-2,rgba(255,255,255,.2));
}
.hub-card-media{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  overflow:hidden;
  background:
    linear-gradient(135deg,rgba(255,107,0,.08),transparent 52%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 1px,transparent 1px 14px),
    var(--panel,#111);
}
.hub-card-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(5,5,5,.4),transparent 55%);
  pointer-events:none;
}
.hub-card-media img{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
}
.hub-card-placeholder{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(255,255,255,.08);
  font-family:"Graphik",Arial,sans-serif;
  font-size:clamp(3rem,7vw,6rem);
  font-weight:700;
  letter-spacing:-.06em;
}
.hub-card-body{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:clamp(22px,2.5vw,32px);
}
.hub-card-sector{
  color:var(--accent,#ff6b00);
  font-family:"Graphik",Arial,sans-serif;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.hub-card-client{
  color:var(--mute,#8d877c);
  font-size:.82rem;
  letter-spacing:.04em;
}
.hub-card-title{
  margin:0;
  font-size:clamp(1.35rem,2vw,1.9rem);
  line-height:1.08;
  letter-spacing:-.025em;
}
.hub-card-title a{color:var(--bone,#f6f1e8);}
.hub-card-excerpt{
  margin:0;
  color:var(--bone-2,#c9c2b6);
  line-height:1.6;
}
.hub-card-result{
  padding-top:12px;
  border-top:1px solid var(--line,rgba(255,255,255,.09));
  color:var(--accent-bright,#ff8f40);
  font-size:.86rem;
}
.hub-card-link{
  margin-top:4px;
  color:var(--bone,#f6f1e8);
  font-size:.9rem;
}

/* Legacy archive markup fallback, should an old cached template still render. */
.img-archive-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:start!important;
  gap:clamp(16px,2vw,28px)!important;
  background:transparent!important;
  border:0!important;
}
.img-archive-card{
  align-self:start!important;
  height:auto!important;
  min-height:0!important;
  border:1px solid var(--line,rgba(255,255,255,.09));
  padding:0!important;
  overflow:hidden;
}
.img-archive-card > a:first-child{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  overflow:hidden;
}
.img-archive-card > a:first-child img,
.img-archive-card img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  object-position:center!important;
}
.img-archive-card > :not(a:first-child){margin-inline:24px;}
.img-archive-card > :last-child{margin-bottom:24px;}

@media (max-width:980px){
  .hub-grid,.img-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:620px){
  .hub-grid,.img-archive-grid{grid-template-columns:1fr!important;}
}

/* ----------------------------------------------------------
   CASE-STUDY DETAIL MEDIA
   ---------------------------------------------------------- */
.cs-img img,
.cs-gal img,
.img-case-gallery-item img,
.cstage-bg img,
#vault .cstage-bg img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
}
.img-case-gallery-item,
.cs-img,
.cs-gal{overflow:hidden!important;}

/* ----------------------------------------------------------
   LEADERSHIP CARDS
   ---------------------------------------------------------- */
.member-portrait{cursor:default!important;}
.member-portrait img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:top center!important;
}
.member-linkedin{
  flex:0 0 auto;
}
.member-linkedin svg{
  display:block;
  width:18px;
  height:18px;
  fill:currentColor;
}

/* ----------------------------------------------------------
   JOB ROLE DESCRIPTION TEMPLATE
   ---------------------------------------------------------- */
.job-role-hero{
  min-height:clamp(520px,72vh,760px);
  display:flex;
  align-items:flex-end;
  padding:clamp(150px,16vw,220px) 0 clamp(62px,8vw,110px);
  background:var(--bg-2,#080808);
}
.job-role-hero-bg img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
}
.job-role-title{
  max-width:18ch;
  margin-top:clamp(24px,3vw,42px);
  font-size:clamp(2.8rem,7vw,7rem);
  line-height:.96;
  letter-spacing:-.045em;
}
.job-role-summary{
  max-width:64ch;
  margin-top:clamp(22px,3vw,36px);
  color:var(--bone-2,#c9c2b6);
  font-size:clamp(1rem,1.4vw,1.25rem);
  line-height:1.65;
}
.job-role-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:clamp(26px,3vw,40px);
}
.job-role-meta span{
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(5,5,5,.4);
  color:var(--bone,#f6f1e8);
  font-size:.76rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.job-role-layout{
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(300px,.72fr);
  gap:clamp(48px,7vw,110px);
  align-items:start;
}
.job-role-content{min-width:0;}
.job-role-section{
  padding:0 0 clamp(42px,5vw,72px);
  margin-bottom:clamp(42px,5vw,72px);
  border-bottom:1px solid var(--line,rgba(255,255,255,.09));
}
.job-role-section:last-child{margin-bottom:0;}
.job-role-section h2{
  margin:0 0 24px;
  font-family:"Graphik",Arial,sans-serif;
  font-size:clamp(1.8rem,3vw,3rem);
  line-height:1.05;
  letter-spacing:-.03em;
}
.job-role-section .entry-content{
  color:var(--bone-2,#c9c2b6);
  font-size:1.05rem;
  line-height:1.75;
}
.job-role-section .entry-content > * + *{margin-top:1em;}
.job-role-section .entry-content ul,
.job-role-section .entry-content ol{padding-left:1.25em;}
.job-role-aside{min-width:0;}
.job-role-apply-card{
  position:sticky;
  top:110px;
  padding:clamp(24px,3vw,38px);
  border:1px solid var(--line,rgba(255,255,255,.09));
  background:var(--panel,#111);
}
.job-role-apply-card > h2{
  margin:0 0 24px;
  font-size:clamp(1.5rem,2.3vw,2.2rem);
  line-height:1.08;
}
.job-role-facts{
  display:grid;
  gap:0;
  margin:0 0 28px;
}
.job-role-facts > div{
  display:grid;
  grid-template-columns:100px minmax(0,1fr);
  gap:16px;
  padding:13px 0;
  border-bottom:1px solid var(--line,rgba(255,255,255,.09));
}
.job-role-facts dt{
  color:var(--mute,#8d877c);
  font-size:.74rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.job-role-facts dd{margin:0;color:var(--bone,#f6f1e8);}
.job-role-external{width:100%;justify-content:center;margin-bottom:22px;}
.job-role-form{margin-top:22px;}

@media (max-width:900px){
  .job-role-layout{grid-template-columns:1fr;}
  .job-role-apply-card{position:static;}
}
@media (max-width:560px){
  .job-role-hero{min-height:560px;}
  .job-role-title{font-size:clamp(2.5rem,13vw,4.4rem);}
  .job-role-facts > div{grid-template-columns:1fr;gap:5px;}
}

/* ----------------------------------------------------------
   SUBSIDIARY FEATURED-IMAGE HEROES
   ---------------------------------------------------------- */
.bhero.has-featured-hero{
  background-image:
    linear-gradient(to bottom,rgba(5,5,5,.58) 0%,rgba(5,5,5,.22) 32%,rgba(5,5,5,.84) 76%,rgba(5,5,5,.98) 100%),
    var(--img-featured-hero)!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
.bhero.has-featured-hero .bhero-bg{
  display:none!important;
}

/* ----------------------------------------------------------
   HOMEPAGE CLIENT LOGOS
   ---------------------------------------------------------- */
.logo-cell > a{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
}
.logo-cell > a img{
  max-width:100%;
  max-height:100%;
}

/* ----------------------------------------------------------
   SUBSIDIARY VIDEOS: three visible cards + lightbox
   ---------------------------------------------------------- */
.sub-vid-track{
  --img-video-gap:clamp(14px,1.8vw,22px);
  justify-content:flex-start!important;
  gap:var(--img-video-gap)!important;
  align-items:flex-start;
}
.sub-vid-slide{
  flex:0 0 calc((100% - (var(--img-video-gap) * 2)) / 3)!important;
  min-width:0!important;
  max-width:none!important;
  scroll-snap-align:start!important;
}
.sub-vid-open{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  border:0;
  background:none;
  color:inherit;
  text-align:left;
  cursor:pointer;
  font:inherit;
}
.sub-vid-frame{
  display:block;
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  border:1px solid var(--line);
  background:
    radial-gradient(circle at 50% 45%,rgba(255,107,0,.16),transparent 34%),
    var(--panel);
}
.sub-vid-frame > img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
  transition:transform .55s var(--ease, ease),filter .4s ease;
}
.sub-vid-frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(5,5,5,.5),rgba(5,5,5,.04) 62%);
}
.sub-vid-open:hover .sub-vid-frame > img{
  transform:scale(1.035);
  filter:brightness(.86);
}
.sub-vid-play{
  position:absolute;
  z-index:2;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sub-vid-play > span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(52px,5vw,72px);
  height:clamp(52px,5vw,72px);
  padding-left:4px;
  border:1px solid rgba(255,255,255,.55);
  border-radius:50%;
  background:rgba(5,5,5,.62);
  color:#fff;
  font-size:clamp(1rem,1.6vw,1.35rem);
  backdrop-filter:blur(8px);
  transition:transform .3s ease,background .3s ease;
}
.sub-vid-open:hover .sub-vid-play > span{
  transform:scale(1.08);
  background:var(--accent,#ff6b00);
}
.sub-vid-title{
  display:block;
  margin-top:14px;
  color:var(--bone,#f1eee8);
  font-size:clamp(.94rem,1.1vw,1.08rem);
  line-height:1.45;
}

.img-video-lightbox{
  position:fixed;
  z-index:1500;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(18px,4vw,60px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
}
.img-video-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.img-video-lightbox-backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:rgba(0,0,0,.9);
  backdrop-filter:blur(10px);
  cursor:pointer;
}
.img-video-lightbox-dialog{
  position:relative;
  z-index:1;
  width:min(1180px,94vw);
  background:#050505;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 30px 90px rgba(0,0,0,.65);
}
.img-video-lightbox-content{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  background:#000;
}
.img-video-lightbox-content iframe,
.img-video-lightbox-content video{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  border:0;
}
.img-video-lightbox-close{
  position:absolute;
  z-index:3;
  top:-46px;
  right:0;
  width:40px;
  height:40px;
  padding:0;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:rgba(0,0,0,.7);
  color:#fff;
  font-size:1.8rem;
  line-height:1;
  cursor:pointer;
}
body.img-video-lightbox-open{
  overflow:hidden!important;
}

@media (max-width:980px){
  .sub-vid-slide{
    flex-basis:calc((100% - var(--img-video-gap)) / 2)!important;
  }
}
@media (max-width:640px){
  .sub-vid-slide{
    flex-basis:100%!important;
  }
  .img-video-lightbox{
    padding:16px;
  }
  .img-video-lightbox-close{
    top:-44px;
  }
}

/* ----------------------------------------------------------
   SUBSIDIARY-SPECIFIC CASE-STUDY CONTENT
   ---------------------------------------------------------- */
.cs-case-pair-section{
  border-top:1px solid var(--line);
  background:var(--bg-2);
}
.cs-case-pair{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  margin-top:clamp(34px,4vw,60px);
  border:1px solid var(--line);
  background:var(--line);
}
.cs-case-panel{
  min-width:0;
  padding:clamp(30px,4vw,64px);
  background:var(--bg);
}
.cs-case-panel-title{
  margin:0 0 clamp(24px,3vw,38px);
  font-size:clamp(2.15rem,4.5vw,4rem);
  line-height:1;
  letter-spacing:-.035em;
}
.cs-case-panel-title .dot{color:var(--accent);}
.cs-case-panel .cs-copy p:first-child{margin-top:0;}
.cs-case-panel .cs-copy > :last-child{margin-bottom:0;}
.cs-outcome-copy{
  max-width:900px;
  margin-top:32px;
}

/* ----------------------------------------------------------
   IMPACT — PROGRAMMES / NEWS
   ---------------------------------------------------------- */
.impact-news{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--bg-2);
}
.impact-news-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin-top:clamp(34px,4vw,60px);
  border:1px solid var(--line);
  background:var(--line);
}
.impact-news-card{
  min-height:clamp(250px,25vw,360px);
  padding:clamp(26px,3vw,44px);
  display:flex;
  flex-direction:column;
  background:var(--bg);
  transition:background .35s var(--ease),transform .35s var(--ease);
}
.impact-news-card:hover{
  background:var(--panel-2);
}
.impact-news-partner{
  color:var(--accent);
  font-family:"Graphik",sans-serif;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.11em;
  line-height:1.35;
  text-transform:uppercase;
}
.impact-news-card h3{
  max-width:16ch;
  margin-top:clamp(32px,4vw,58px);
  font-family:"Graphik",sans-serif;
  font-size:clamp(1.45rem,2.35vw,2.35rem);
  font-weight:500;
  letter-spacing:-.025em;
  line-height:1.08;
}
.impact-news-result{
  margin-top:auto;
  padding-top:30px;
  color:var(--bone-2);
  font-family:"Graphik",sans-serif;
  font-size:clamp(1.05rem,1.55vw,1.35rem);
  font-weight:500;
  letter-spacing:-.01em;
}

@media (max-width:900px){
  .impact-news-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
  .cs-case-pair,
  .impact-news-grid{grid-template-columns:1fr;}
  .impact-news-card{min-height:240px;}
}

/* ----------------------------------------------------------
   CASE STUDY — RELATED WORK GRID
   ---------------------------------------------------------- */
.cs-related-work .cs-next-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.cs-related-work .cs-nc .placeholder-art img,
.cs-related-work .cs-nc img.replace-img-tag{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
}
.cs-related-work .cs-nc .nc-client{
  position:relative;
  z-index:2;
  margin-top:8px;
  color:var(--bone-2);
  font-family:"Graphik",sans-serif;
  font-size:.78rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.cs-related-work .cs-related-all{
  margin-top:clamp(28px,3vw,44px);
}

@media (max-width:900px){
  .cs-related-work .cs-next-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
  .cs-related-work .cs-next-grid{grid-template-columns:1fr;}
}


/* ----------------------------------------------------------
   ILA / OUTDOOR CASE STUDIES: compact, uniform three-card grid
   ---------------------------------------------------------- */
.work-compact .work-grid,
.work-grid--compact{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  grid-auto-rows:auto!important;
  align-items:stretch!important;
  gap:clamp(16px,2vw,28px)!important;
}
.work-compact .wcard,
.work-grid--compact .wcard,
.work-grid--compact .wcard--compact{
  width:100%!important;
  height:auto!important;
  min-height:clamp(260px,24vw,380px)!important;
  aspect-ratio:16 / 10!important;
  align-self:stretch!important;
  margin:0!important;
  transform:none;
}
.work-compact .wcard:hover,
.work-grid--compact .wcard:hover{
  transform:translateY(-4px)!important;
}
.work-grid--compact .wcard .w-title{
  max-width:24ch;
}
@media (max-width:980px){
  .work-compact .work-grid,
  .work-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media (max-width:620px){
  .work-compact .work-grid,
  .work-grid--compact{grid-template-columns:1fr!important;}
  .work-compact .wcard,
  .work-grid--compact .wcard,
  .work-grid--compact .wcard--compact{
    min-height:300px!important;
    aspect-ratio:4 / 3!important;
  }
}

/* ----------------------------------------------------------
   CASE-STUDY IMAGE GALLERY LIGHTBOX
   ---------------------------------------------------------- */
.img-case-gallery-link{
  position:absolute;
  inset:0;
  display:block;
  overflow:hidden;
  color:inherit;
  cursor:zoom-in;
}
.img-case-gallery-link img{
  transition:transform .45s var(--ease,ease),filter .35s ease;
}
.img-case-gallery-prompt{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:24px;
  background:rgba(0,0,0,.62);
  color:#fff;
  font-size:clamp(.78rem,1vw,.92rem);
  font-weight:600;
  letter-spacing:.04em;
  text-align:center;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  transition:opacity .3s ease,transform .3s ease;
}
.img-case-gallery-prompt-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  flex:0 0 34px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:50%;
  font-size:1.1rem;
  line-height:1;
}
.img-case-gallery-link:hover img,
.img-case-gallery-link:focus-visible img{
  transform:scale(1.035);
  filter:brightness(.72);
}
.img-case-gallery-link:hover .img-case-gallery-prompt,
.img-case-gallery-link:focus-visible .img-case-gallery-prompt{
  opacity:1;
  transform:translateY(0);
}
.img-case-gallery-link:focus-visible{
  outline:2px solid var(--accent,#ff6b00);
  outline-offset:3px;
}

.img-gallery-lightbox{
  position:fixed;
  z-index:2400;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(18px,3vw,48px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease,visibility .25s ease;
}
.img-gallery-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.img-gallery-lightbox-backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:rgba(0,0,0,.94);
  backdrop-filter:blur(10px);
  cursor:zoom-out;
}
.img-gallery-lightbox-dialog{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(1500px,96vw);
  height:min(900px,90vh);
  padding:clamp(38px,5vw,68px) clamp(48px,6vw,86px) clamp(48px,5vw,70px);
  background:#050505;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 32px 100px rgba(0,0,0,.72);
}
.img-gallery-lightbox-figure{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  margin:0;
  min-width:0;
  min-height:0;
}
.img-gallery-lightbox-image{
  display:block;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:calc(90vh - 150px)!important;
  object-fit:contain!important;
  object-position:center!important;
}
.img-gallery-lightbox-caption{
  width:min(900px,100%);
  margin-top:14px;
  color:rgba(255,255,255,.78);
  font-size:.9rem;
  line-height:1.5;
  text-align:center;
}
.img-gallery-lightbox-close,
.img-gallery-lightbox-nav{
  position:absolute;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:rgba(0,0,0,.65);
  color:#fff;
  cursor:pointer;
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
}
.img-gallery-lightbox-close:hover,
.img-gallery-lightbox-close:focus-visible,
.img-gallery-lightbox-nav:hover,
.img-gallery-lightbox-nav:focus-visible{
  background:var(--accent,#ff6b00);
  border-color:var(--accent,#ff6b00);
  color:#050505;
  outline:none;
  transform:scale(1.05);
}
.img-gallery-lightbox-close{
  top:16px;
  right:16px;
  width:42px;
  height:42px;
  font-size:1.8rem;
  line-height:1;
}
.img-gallery-lightbox-nav{
  top:50%;
  width:48px;
  height:48px;
  font-size:2.2rem;
  line-height:1;
  transform:translateY(-50%);
}
.img-gallery-lightbox-nav:hover,
.img-gallery-lightbox-nav:focus-visible{
  transform:translateY(-50%) scale(1.05);
}
.img-gallery-lightbox-prev{left:18px;}
.img-gallery-lightbox-next{right:18px;}
.img-gallery-lightbox-counter{
  position:absolute;
  left:50%;
  bottom:17px;
  transform:translateX(-50%);
  color:rgba(255,255,255,.72);
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
body.img-gallery-lightbox-open{
  overflow:hidden!important;
}

@media (hover:none){
  .img-case-gallery-prompt{
    inset:auto 12px 12px 12px;
    justify-content:flex-start;
    width:auto;
    padding:10px 12px;
    background:rgba(0,0,0,.78);
    border:1px solid rgba(255,255,255,.2);
    opacity:1;
    transform:none;
    text-align:left;
  }
  .img-case-gallery-prompt-icon{
    width:28px;
    height:28px;
    flex-basis:28px;
    font-size:.95rem;
  }
}
@media (max-width:700px){
  .img-gallery-lightbox{
    padding:10px;
  }
  .img-gallery-lightbox-dialog{
    width:100%;
    height:calc(100vh - 20px);
    padding:58px 12px 62px;
  }
  .img-gallery-lightbox-image{
    max-height:calc(100vh - 165px)!important;
  }
  .img-gallery-lightbox-close{
    top:10px;
    right:10px;
  }
  .img-gallery-lightbox-nav{
    top:auto;
    bottom:10px;
    width:42px;
    height:42px;
    transform:none;
  }
  .img-gallery-lightbox-nav:hover,
  .img-gallery-lightbox-nav:focus-visible{
    transform:scale(1.05);
  }
  .img-gallery-lightbox-prev{left:10px;}
  .img-gallery-lightbox-next{right:10px;}
  .img-gallery-lightbox-counter{bottom:22px;}
}

/* ----------------------------------------------------------
   SINGLE CASE STUDY VIDEOS: up to three dashboard videos
   ---------------------------------------------------------- */
.cs-videos-after-gallery{
  background:var(--bg-2);
}
.cs-case-video-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));
  gap:clamp(18px,2vw,28px);
  align-items:start;
  margin-top:clamp(34px,4vw,58px);
}
.cs-case-video-card{
  min-width:0;
}
.cs-case-video-frame{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--panel);
}
.cs-case-video-frame iframe,
.cs-case-video-frame video{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  border:0;
  object-fit:cover;
}
.cs-case-video-title{
  margin:14px 0 0;
  color:var(--bone,#f1eee8);
  font-family:"Graphik",sans-serif;
  font-size:clamp(.96rem,1.15vw,1.12rem);
  font-weight:500;
  line-height:1.4;
}
@media (max-width:920px){
  .cs-case-video-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .cs-case-video-grid[data-video-count="1"]{grid-template-columns:1fr;}
}
@media (max-width:620px){
  .cs-case-video-grid{grid-template-columns:1fr;}
}

/* ----------------------------------------------------------
   IMPACT STANDALONE NAVIGATION
   Makes the Impact subsidiary header available on archives and single case studies.
   ---------------------------------------------------------- */
.sub-nav{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:900;
  background:#000;
  border-bottom:1px solid var(--line,rgba(255,255,255,.09));
}
.sub-nav-inner{
  max-width:var(--maxw,1440px);
  margin:0 auto;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:20px;
  padding:20px clamp(20px,4.4vw,72px);
}
.sub-logo{display:flex;align-items:center;gap:12px;flex:none;text-decoration:none;}
.sub-logo img{height:52px;width:auto;object-fit:contain;display:block;}
.sub-nav-links{display:flex;align-items:center;justify-content:center;gap:clamp(16px,2.2vw,32px);flex-wrap:nowrap;}
.sub-nav-links a{font-family:"Graphik",Arial,sans-serif;font-size:.84rem;font-weight:500;color:var(--bone-2,#c9c2b6);white-space:nowrap;position:relative;padding:4px 0;transition:color .3s var(--ease,ease);}
.sub-nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--accent,#ff6b00);transition:width .35s var(--ease,ease);}
.sub-nav-links a:hover{color:var(--bone,#f6f1e8);}
.sub-nav-links a:hover::after,.sub-nav-links a.cur::after{width:100%;}
.sub-nav-right{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:none;}
.sub-nav-back{font-family:"Graphik",Arial,sans-serif;font-weight:600;font-size:.84rem;color:var(--bone-2,#c9c2b6);white-space:nowrap;display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid var(--line-2,rgba(255,255,255,.18));transition:color .3s var(--ease,ease),border-color .3s var(--ease,ease);}
.sub-nav-back:hover{color:var(--bone,#f6f1e8);border-color:var(--accent,#ff6b00);}
@media(max-width:1080px){.sub-nav-inner{grid-template-columns:auto auto;justify-content:space-between}.sub-nav-links{display:none}.nav-toggle{display:inline-flex;}}
@media(max-width:600px){.sub-logo img{height:40px}.sub-nav .btn{display:none}}

/* Add space before highlighted words */
.intro-statement .accent-text::before,
.steps .sec-head .accent-text::before {
    content: "\00a0";
}

/* ----------------------------------------------------------
   IMPACT PAGE: dedicated Impact brief form
   ---------------------------------------------------------- */
.impact-brief{border-top:1px solid var(--line,rgba(255,255,255,.09));background:var(--bg-2,#070707);} 
.impact-brief .brief-head{max-width:68ch;margin-bottom:clamp(34px,5vw,62px);} 
.impact-brief .brief-head h2{font-family:"Graphik",Arial,sans-serif;font-weight:600;font-size:clamp(2rem,4.6vw,3.7rem);letter-spacing:-.028em;line-height:1.02;color:var(--bone,#f6f1e8);} 
.impact-brief .brief-head p{color:var(--mute,#8d877c);font-size:clamp(1rem,1.1vw,1.12rem);line-height:1.55;margin-top:18px;} 
.impact-brief-form{font-family:"Graphik",Arial,sans-serif;font-weight:500;letter-spacing:-.015em;font-size:clamp(1.35rem,3.2vw,2.75rem);line-height:1.55;color:var(--bone,#f6f1e8);max-width:1180px;} 
.impact-brief-form .soft{color:var(--mute-2,#5f5a52);} 
.impact-brief-form .fill{display:inline-flex;align-items:baseline;position:relative;background:var(--panel-2,rgba(255,255,255,.045));border:1px solid var(--line-2,rgba(255,255,255,.16));padding:.06em .5em;margin:.12em .12em;vertical-align:baseline;transition:border-color .35s var(--ease,ease),background .35s var(--ease,ease);} 
.impact-brief-form .fill:focus-within{border-color:var(--accent,#ff6b00);background:var(--panel-3,rgba(255,255,255,.08));} 
.impact-brief-form input,.impact-brief-form select{background:transparent;border:0;outline:0;color:var(--bone,#f6f1e8);font:inherit;letter-spacing:inherit;line-height:1.15;padding:0;max-width:100%;} 
.impact-brief-form input::placeholder{color:var(--mute-2,#5f5a52);} 
.impact-brief-form select{padding-right:1.25em;-webkit-appearance:none;appearance:none;} 
.impact-brief-form select option{background:#0b0b0b;color:var(--bone,#f6f1e8);font-size:1rem;} 
.impact-brief-form .sel::after{content:"";position:absolute;right:.55em;top:50%;width:7px;height:7px;border-right:2px solid var(--accent,#ff6b00);border-bottom:2px solid var(--accent,#ff6b00);transform:translateY(-65%) rotate(45deg);pointer-events:none;} 
.impact-brief-form .fill-name{min-width:7ch}.impact-brief-form .fill-org{min-width:9ch}.impact-brief-form .fill-email{min-width:13ch} 
.impact-brief-actions{display:flex;align-items:center;gap:22px;margin-top:clamp(38px,5vw,64px);flex-wrap:wrap;} 
.impact-brief .btn-send{display:inline-flex;align-items:center;justify-content:center;gap:14px;background:var(--bone,#f6f1e8);color:#050505;border:0;font-family:"Graphik",Arial,sans-serif;font-weight:600;font-size:1.02rem;line-height:1;padding:20px 34px;border-radius:999px;min-height:58px;transition:transform .4s var(--ease,ease),background .4s var(--ease,ease);} 
.impact-brief .btn-send:hover,.impact-brief .btn-send:focus-visible{background:var(--accent-bright,#ff8f40);transform:translateY(-3px);} 
.impact-brief .btn-send svg{flex:none;transition:transform .4s var(--ease,ease);} 
.impact-brief .btn-send:hover svg,.impact-brief .btn-send:focus-visible svg{transform:translate(4px,-4px);} 
.impact-brief .brief-note{font-family:"Graphik",Arial,sans-serif;font-size:1rem;color:var(--mute,#8d877c);letter-spacing:.01em;line-height:1.5;max-width:38ch;} 
.impact-brief .brief-note b{color:var(--accent-bright,#ff8f40);font-weight:600;} 
.impact-brief .brief-confirm{font-family:"Graphik",Arial,sans-serif;font-size:1rem;color:var(--accent-bright,#ff8f40);letter-spacing:.01em;opacity:0;transform:translateY(6px);transition:opacity .5s var(--ease,ease),transform .5s var(--ease,ease);} 
.impact-brief .brief-confirm.show{opacity:1;transform:translateY(0);} 
@media(max-width:760px){.impact-brief-form{line-height:1.75}.impact-brief-form .fill{width:100%;margin:.18em 0}.impact-brief-form input,.impact-brief-form select{width:100%}.impact-brief-actions{align-items:flex-start;flex-direction:column}.impact-brief .btn-send{width:100%;}}

/* Conventional contact-form layout for Let’s create Change. */
.impact-contact-form{max-width:1100px;}
.impact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;}
.impact-form-grid p{margin:0;}
.impact-form-grid label{display:block;margin-bottom:9px;color:var(--bone-2,#c9c2b6);font-family:"Graphik",Arial,sans-serif;font-size:.82rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;}
.impact-form-grid input,.impact-form-grid select,.impact-form-grid textarea{box-sizing:border-box;width:100%;border:1px solid var(--line-2,rgba(255,255,255,.16));border-radius:0;background:var(--panel-2,rgba(255,255,255,.045));color:var(--bone,#f6f1e8);font:inherit;font-size:1rem;line-height:1.5;padding:15px 17px;outline:0;transition:border-color .3s ease,background .3s ease;}
.impact-form-grid input:focus,.impact-form-grid select:focus,.impact-form-grid textarea:focus{border-color:var(--accent,#ff6b00);background:var(--panel-3,rgba(255,255,255,.08));}
.impact-form-grid select option{background:#0b0b0b;color:var(--bone,#f6f1e8);}
.impact-form-grid textarea{min-height:170px;resize:vertical;}
.impact-form-message{grid-column:1/-1;}
.impact-contact-form .btn-send:disabled{cursor:wait;opacity:.6;transform:none;}
@media(max-width:760px){.impact-form-grid{grid-template-columns:1fr}.impact-form-message{grid-column:auto}}
