/*
 * 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","Plus Jakarta Sans",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","Plus Jakarta Sans",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","Plus Jakarta Sans",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","Plus Jakarta Sans",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","Plus Jakarta Sans",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","Plus Jakarta Sans",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","Plus Jakarta Sans",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","Plus Jakarta Sans",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;}
}

/* ----------------------------------------------------------
   COPY REFRESH v1.3.0: preserve visible spacing around accent spans
   ---------------------------------------------------------- */
.hero-h1 .accent-text,
.bhero-h1 .accent-text,
.sec-head .accent-text,
.cta-grid h2 .accent-text,
.careers-body h2 .accent-text,
.about-statement > .accent-text{
  display:inline-block;
  margin-left:.08em;
  margin-right:.08em;
}

.bhero-h1 br + .accent-text,
.sec-head br + .accent-text,
.hero-h1 br + .accent-text{
  margin-left:0;
}

.intro-statement .accent-text,
p .accent-text,
.svc .accent-text{
  display:inline;
  margin-left:0;
  margin-right:0;
}

/* Keep huge display headings readable when words are split into dashboard fields. */
.hero-h1,
.bhero-h1,
.sec-head,
.cta-grid h2,
.careers-body h2{
  overflow-wrap:normal;
  word-break:normal;
}

@media (max-width:640px){
  .hero-h1 .accent-text,
  .bhero-h1 .accent-text,
  .sec-head .accent-text,
  .cta-grid h2 .accent-text,
  .careers-body h2 .accent-text{
    margin-left:.06em;
    margin-right:.06em;
  }
}
