/* Photographs and copy occupy separate, intrinsically sized layout tracks. */
.agency-scene { overflow: hidden; aspect-ratio: auto; }
.agency-scene > img,
.agency-scene--bold > .agency-product-capture img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
.agency-scene figcaption {
  position: static;
  max-width: none;
  margin: 0;
  padding: .9rem 1rem;
  border-left: 2px solid #b9f44a;
  background: #11151b;
  color: #d3d6dc;
  font-size: .8rem;
  line-height: 1.5;
  letter-spacing: 0;
  backdrop-filter: none;
}
.agency-product-capture { display: block; }
.agency-product-capture:focus-visible { outline: 3px solid #b9f44a; outline-offset: -3px; }

/* Give a process heading its own row instead of a narrow collision-prone rail. */
.service-process .service-section-grid,
.capability-method .capability-section-grid,
.career-process .career-process-grid { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
.zyel-visual-language .service-process h2,
.zyel-visual-language .capability-method h2,
.zyel-visual-language .career-process-heading h2 {
  max-width: 21ch;
  font-size: clamp(2.25rem, 4.5vw, 4rem);
  line-height: 1.05;
  overflow-wrap: anywhere;
}
.zyel-visual-language .service-process li,
.zyel-visual-language .capability-method li,
.zyel-visual-language .career-process li {
  min-height: 0;
  grid-template-columns: 2.5rem minmax(0, .5fr) minmax(0, 1fr);
  gap: 1rem 1.5rem;
  align-items: start;
}
.zyel-visual-language .service-process li::before,
.zyel-visual-language .capability-method li::before,
.zyel-visual-language .career-process li::before { display: none; }
.zyel-visual-language .service-process li > .zyel-visual-glyph,
.zyel-visual-language .capability-method li > .zyel-visual-glyph,
.zyel-visual-language .career-process li > .zyel-visual-glyph { display: none; }
.zyel-visual-language .service-process li > span:not(.zyel-visual-glyph),
.zyel-visual-language .capability-method li > span:not(.zyel-visual-glyph),
.zyel-visual-language .career-process li > span:not(.zyel-visual-glyph) {
  position: static;
  grid-column: 1;
  grid-row: 1;
  padding-top: .35rem;
}
.zyel-visual-language .service-process li > h3 { grid-column: 2; grid-row: 1; }
.zyel-visual-language .service-process li > p { grid-column: 3; grid-row: 1; }
.zyel-visual-language .capability-method li > div,
.zyel-visual-language .career-process li > div { grid-column: 2 / -1; grid-row: 1; min-width: 0; }

/* Constrain the image box itself, not only its clipping parent. */
.case-related-media { grid-template-rows: minmax(0, 1fr); min-width: 0; }
.case-related-media img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.work-evidence-media { grid-template-rows: minmax(0, 1fr); min-width: 0; }
.work-evidence-media img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.article-hero-image .article-screen-badge { position: static; display: flex; align-items: center; gap: .75rem; width: auto; max-width: none; margin: 0; padding: .85rem 1rem; transform: none; background: #11151b; }
.article-hero-image .article-screen-badge img { width: 3rem; height: auto; }
.case-related-copy { flex: 1; min-height: 0; }
.case-related-copy b { display: flex; min-height: 44px; align-items: end; }
.case-related-story { min-width: 0; }
.showcase-proof-card img { min-height: 0; object-fit: contain; }

/* The homepage method image remains a photograph, with copy beside/below it. */
.approach .approach-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  min-height: 0;
  padding: clamp(1.25rem, 3vw, 3rem);
  overflow: visible;
}
.approach .approach-stage::after { display: none; }
.approach .approach-photo {
  position: static;
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  opacity: 1;
  filter: none;
}
.approach .approach-heading { position: static; grid-column: 2; grid-row: 1; width: auto; max-width: none; padding: 0; }
.approach .approach-heading h2 { font-size: clamp(2rem, 3.5vw, 3.5rem); line-height: 1.07; }
.approach .approach-list { position: static; grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: auto; max-width: none; margin: 0; padding: 0; }
.approach .approach-list::before { display: none; }
.approach .approach-list li,
.approach .approach-list li:nth-child(2),
.approach .approach-list li:nth-child(4) {
  display: grid;
  grid-template-columns: 3.5rem minmax(0,1fr);
  gap: 1rem;
  min-height: 0;
  padding: 1.5rem 1rem;
}
.approach .approach-list > li > .approach-step-mark { margin: 0; }
.approach .approach-step-number { display: grid; place-items: center; width: 3rem; height: 3rem; margin: 0; border: 1px solid #68737a; border-radius: 50%; color: #b9f44a; font-size: .85rem; }
.approach .approach-list li > div { min-width: 0; }
.approach .approach-stage { height: auto; }
.approach .approach-list { height: auto; inset: auto; transform: none; }
.approach .approach-list li { height: auto; inset: auto; transform: none; }
.history-hero { background: #090c12; }
.history-sources { padding: clamp(3rem,6vw,6rem) 0; }
.history-sources h2 { font-size: clamp(2rem,4vw,3.25rem); line-height: 1.1; }
.project-collaboration { max-width: 72ch; padding: 1.25rem 1.5rem; margin: 2rem 0; border-left: 3px solid #92c73e; background: #edf1e6; color: #242b25; font-size: 1rem; line-height: 1.6; }
.project-collaboration strong { font-weight: 750; }
body[data-image-review-case] .hero-aside { padding: 1.25rem; background: #11151b; border: 1px solid #343b45; }
body[data-image-review-case] .case-hero-separated { background: #090c12 !important; background-image: none !important; }
.case-hero-separated .hero-inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); grid-template-rows: auto auto; grid-template-areas: "copy image" "copy evidence"; align-items: start; gap: 1.5rem clamp(1.5rem,4vw,4rem); min-height: 0; }
.case-hero-separated .hero-inner > div:first-child { grid-area: copy; min-width: 0; }
.case-hero-separated .case-hero-image { grid-area: image; min-width: 0; width: 100%; margin: 0; background: #11151b; }
.case-hero-image > img { display: block; width: 100%; height: auto; object-fit: contain; }
.case-hero-image > figcaption { padding: .8rem 1rem; color: #bbc2ca; font-size: .8rem; line-height: 1.5; }
.case-hero-separated .hero-aside { grid-area: evidence; position: static; width: auto; max-width: none; min-width: 0; margin: 0; transform: none; }
@media(max-width: 850px) {
  .case-hero-separated .hero-inner { grid-template-columns: minmax(0,1fr); grid-template-areas: "copy" "image" "evidence"; }
}
body[data-image-review-case] .hero h1 { max-width: 18ch; font-size: clamp(2.15rem, 5.4vw, 5rem); line-height: 1.05; overflow-wrap: anywhere; }
body[data-image-review-case] .hero-inner > div { min-width: 0; }
.showcase-body .story-copy h2 { max-width: 24ch; font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.08; overflow-wrap: anywhere; }
.services .service-grid { align-items: stretch; }
.services .service-card { display: flex; flex-direction: column; min-width: 0; }
.services .service-card > .text-link { margin-top: auto; padding-top: 1.5rem; min-height: 44px; display: flex; align-items: end; }
.services .service-card > a:last-child { margin-top: auto; padding-top: 1.5rem; min-height: 44px; display: flex; align-items: end; }
.zyel-visual-language .zyel-project-card > strong:last-child { margin-top: auto; min-height: 44px; display: flex; align-items: end; }
.work-evidence > div { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.work-evidence > div > b:last-child { margin-top: auto; min-height: 44px; display: flex; align-items: end; }
.work-evidence-grid { grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: none; grid-auto-rows: auto; min-height: 0; height: auto; align-items: stretch; }
.work-evidence-grid .work-evidence { display: flex; flex-direction: column; align-self: stretch; grid-row: auto; grid-column: auto; }
.work-evidence-grid .work-evidence-media { flex: none; width: 100%; height: auto; min-height: 0; margin: 0; aspect-ratio: 16 / 10; }
.work-evidence-grid .work-evidence > div > strong { font-size: clamp(1.3rem,2vw,1.9rem); line-height: 1.15; }
main h1, main h2, main h3 { overflow-wrap: anywhere; }
.contact .contact-intro h2, .contact h2 { font-size: clamp(2.25rem, 4.2vw, 4.5rem); line-height: 1.05; }
.proof .case-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.proof .case-tile { display: flex; flex-direction: column; grid-column: auto; grid-row: auto; min-width: 0; min-height: 0; padding: 0; background: #11151b; }
.proof .case-tile::before, .proof .case-tile::after { display: none; }
.proof .case-media { position: static; height: auto; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; }
.proof .case-media img { position: static; display: block; width: 100%; height: 100%; object-fit: contain; transform: none; filter: none; }
.proof .case-topline { position: static; display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding: 1.25rem 1.25rem 0; }
.proof .case-copy { position: static; display: flex; flex-direction: column; flex: 1; padding: 1.25rem; }
.proof .case-copy h3 { font-size: clamp(1.4rem, 2.1vw, 2rem); line-height: 1.1; }
.proof .case-copy .case-link { display: flex; align-items: end; min-height: 44px; margin-top: auto; padding-top: 1.5rem; }
.case-bold-news .stats-grid .zyel-visual-glyph,
.case-bold-news .stat-card .zyel-visual-glyph { display: none; }
.case-bold-news .zyel-visual-glyph--small { display: none; }
.zyel-technology-next-paths > a { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 1rem; min-height: 0 !important; }
.zyel-technology-next-paths > a > .zyel-visual-glyph { position: static; flex: none; margin: 0; transform: none; }
.zyel-technology-next-paths .zyel-next-path-copy { position: static; width: 100%; min-width: 0; }
.zyel-technology-next-paths { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: auto; align-items: stretch; }
.zyel-technology-next-paths > a { grid-column: auto; grid-row: auto; align-self: stretch; height: auto; }
.zyel-technology-next-paths .zyel-next-path-copy { display: flex; flex-direction: column; flex: 1; }
.zyel-technology-next-paths .zyel-next-path-copy > b { margin-top: auto; padding-top: 1.25rem; }
.zyel-visual-language .zyel-technology-next-paths { grid-template-rows: none; }
.zyel-visual-language .zyel-technology-next-paths > a.zyel-article-path { display: flex; flex-direction: column; justify-content: flex-start; align-items: stretch; min-height: 0 !important; padding: 1.5rem; }
.zyel-visual-language .zyel-article-path .zyel-next-path-copy { display: flex; flex: 1; flex-direction: column; align-items: stretch; gap: 1rem; }
.zyel-visual-language .zyel-article-path .zyel-next-path-copy strong { max-width: none; margin: 0; font-size: clamp(1.5rem,2.5vw,2.25rem); line-height: 1.1; }
.zyel-visual-language .zyel-article-path .zyel-next-path-copy em { min-height: 0; margin: 0; font-style: normal; line-height: 1.55; }
@media (max-width: 850px) {
  .proof .case-grid { grid-template-columns: minmax(0,1fr); }
  .product-stage .device-laptop > .device-phone { display: none; }
  .work-evidence-grid, .zyel-technology-next-paths { grid-template-columns: minmax(0,1fr); }
}

.service-overview-grid > a,
.case-related-story,
.zyel-visual-language .service-proof-list > a,
.zyel-visual-language .capability-proof-grid > a { min-width: 0; }
.service-overview-grid .service-overview-copy { display: flex; flex-direction: column; flex: 1; }
.service-overview-grid .service-overview-copy > a:last-child { margin-top: auto; }
.zyel-dot-field { display: none !important; }

@media (max-width: 800px) {
  .approach .approach-stage { grid-template-columns: minmax(0,1fr); }
  .approach .approach-photo { grid-column: 1; grid-row: 2; }
  .approach .approach-heading { grid-column: 1; grid-row: 1; }
  .approach .approach-list { grid-column: 1; }
  .zyel-visual-language .service-process li { grid-template-columns: 2.5rem minmax(0, 1fr); }
  .zyel-visual-language .service-process li > p { grid-column: 2; grid-row: 2; }
}
@media (max-width: 560px) {
  .approach .approach-list { grid-template-columns: minmax(0,1fr); }
  .zyel-visual-language .service-process li,
  .zyel-visual-language .capability-method li,
  .zyel-visual-language .career-process li { gap: .75rem; }
}
