/* Interior pages follow the approved homepage; all rules are scoped to them. */
.not-found {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center;
  gap:clamp(40px,7vw,112px);
  min-height:780px;
  min-height:90svh;
  padding:190px var(--space) 90px;
  background:var(--yellow)
}
.not-found-art {
  position:relative;
  padding:45px 0 70px;
  text-align:center
}
.not-found-number {
  display:block;
  font:400 clamp(160px,24vw,360px)/1 Chewy,Arial,sans-serif;
  letter-spacing:-.045em;
  transform:rotate(-7deg)
}
.not-found-spark {
  position:absolute;
  top:-25px;
  right:3%;
  font:100px/1 Arial,sans-serif;
  transform:rotate(12deg)
}
.not-found-sticker {
  position:relative;
  display:inline-block;
  margin-top:-6px;
  padding:13px 25px;
  background:var(--ink);
  color:var(--yellow);
  font:400 clamp(20px,2.1vw,30px)/1.2 Chewy,Arial,sans-serif;
  transform:rotate(-7deg)
}
.not-found-label {
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:24px
}
.not-found h1 {
  font-size:clamp(44px,5.1vw,76px);
  line-height:1.06;
  margin-bottom:24px
}
.not-found-copy>p:not(.not-found-label) {
  max-width:440px;
  line-height:1.65
}
.not-found-actions {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:24px;
  margin-top:32px
}
.not-found-actions .button {
  background:var(--ink);
  color:var(--yellow);
  border:2px solid var(--ink)
}
.not-found-actions .button:hover {
  background:var(--paper);
  color:var(--ink)
}
.not-found-actions .text-link {
  font-size:15px;
  gap:12px
}
.not-found-copy .not-found-help {
  margin-top:40px;
  font-size:13px
}
.not-found-help a {
  text-decoration:underline;
  text-underline-offset:4px
}
.not-found a:focus-visible {
  outline-color:var(--ink)
}
@media(max-width:700px) {
  .not-found {
    grid-template-columns:1fr;
    gap:20px;
    min-height:auto;
    padding-top:140px;
    padding-bottom:64px
  }
  .not-found-art {
    width:min(100%,360px);
    margin:auto;
    padding:12px 0 24px
  }
  .not-found-number {
    font-size:clamp(150px,48vw,230px)
  }
  .not-found-spark {
    top:-8px;
    font-size:58px
  }
  .not-found-label {
    margin-bottom:16px
  }
  .not-found h1 {
    font-size:clamp(40px,9vw,60px)
  }
  .not-found-actions {
    gap:22px
  }
}
.inner-page .section {
  padding-top:64px;
  padding-bottom:64px
}
.inner-page .page-intro {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(32px,5vw,80px);
  align-items:center;
  padding:148px var(--space) 56px;
  border:0;
  background:var(--yellow)
}
.inner-page .inner-intro-copy {
  min-width:0
}
.inner-page .page-intro h1 {
  font-size:clamp(42px,4.7vw,72px);
  line-height:1.06;
  margin:18px 0 24px;
  letter-spacing:-.015em;
  overflow-wrap:normal
}
.inner-page .page-intro .eyebrow:before {
  content:none
}
.inner-page .inner-intro-copy>p:not(.eyebrow) {
  max-width:580px;
  font-size:17px;
  line-height:1.6;
  color:#383522
}
.inner-page .inner-intro-copy>.button {
  margin-top:26px
}
.inner-page .inner-intro-photo {
  height:clamp(320px,31vw,470px);
  overflow:hidden
}
.inner-page .inner-intro-photo img {
  width:100%;
  height:100%;
  object-fit:cover
}
.inner-page h2 {
  font-size:clamp(34px,3.5vw,52px);
  line-height:1.1
}
.inner-page .capabilities {
  grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
  gap:clamp(36px,6vw,96px)
}
.inner-page .capabilities-intro h2 {
  margin:0 0 20px
}
.inner-page .capabilities-intro>p {
  max-width:360px
}
.inner-page .inner-service-list article {
  border-top:1px solid #10100e50;
  padding:24px 0;
  scroll-margin-top:125px
}
.inner-page .inner-service-list article:last-child {
  border-bottom:1px solid #10100e50
}
.inner-page .inner-service-list h3 {
  font-size:30px;
  margin:0 0 12px;
  line-height:1.15
}
.inner-page .inner-service-list h3 a:hover {
  text-decoration:underline;
  text-underline-offset:5px
}
.inner-page .inner-service-list p {
  color:#48483f;
  line-height:1.6
}
.inner-page .inner-service-list .tags {
  font-size:12px;
  margin-top:14px;
  color:#62625a
}
.inner-page .process-grid {
  margin-top:32px;
  gap:28px
}
.inner-page .process-grid li>span {
  font:26px/1 Chewy,Arial,sans-serif
}
.inner-page .process-grid h3 {
  font-size:30px;
  margin:22px 0 14px
}
.inner-page .process-grid p {
  max-width:none;
  font-size:15px
}
.inner-page .regional {
  background:var(--yellow);
  border:0;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
  gap:16px 48px;
  align-items:center
}
.inner-page .regional>.eyebrow {
  grid-column:1/-1
}
.inner-page .regional h2 {
  grid-row:2/4;
  margin:0
}
.inner-page .regional>p:not(.eyebrow) {
  margin:0
}
.inner-page .regional>.button {
  justify-self:start;
  margin-top:8px
}
.inner-page .portfolio {
  padding-left:var(--space);
  padding-right:var(--space);
  background:#f4f0e3
}
.inner-page .portfolio>.archive-note {
  margin:0 0 28px;
  max-width:680px
}
.inner-page .project-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:40px 28px
}
.inner-page .project-card {
  margin:0;
  min-width:0
}
.inner-page .project-card:first-child {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  gap:36px;
  align-items:center
}
.inner-page .project-card .project-image {
  height:340px;
  min-height:0;
  max-height:none
}
.inner-page .project-card:first-child .project-image {
  height:450px
}
.inner-page .project-info {
  margin:0;
  padding:18px 0 0;
  border-top:1px solid #10100e50;
  gap:16px
}
.inner-page .project-card:first-child .project-info {
  padding:24px 0
}
.inner-page .project-info h2 {
  font-size:clamp(30px,3vw,44px);
  margin-top:12px
}
.inner-page .project-number,.inner-page .asset-label {
  display:none
}
.inner-page .intro {
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(32px,6vw,96px)
}
.inner-page .intro .large-copy {
  font-size:21px;
  line-height:1.5;
  margin-top:24px
}
.inner-page .intro p:not(.eyebrow) {
  max-width:680px
}
.inner-page .audience-grid {
  gap:32px;
  margin-top:28px
}
.inner-page .audience h2 {
  font-size:32px
}
.inner-page .audience article {
  border-top:1px solid #10100e55;
  padding-top:22px
}
.inner-page .audience p {
  margin-top:18px;
  font-size:16px
}
.inner-page .service-content {
  padding-top:64px;
  grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  gap:clamp(32px,6vw,96px)
}
.inner-page .service-articles article {
  border-top:1px solid #10100e40;
  padding-top:24px;
  margin-bottom:32px
}
.inner-page .service-content h2 {
  font-size:clamp(28px,3vw,40px);
  margin-bottom:16px
}
.inner-page .service-content p {
  line-height:1.65
}
.inner-page .service-related {
  background:var(--yellow);
  padding:30px
}
.inner-page .service-related ul {
  list-style:none;
  padding:0
}
.inner-page .service-related li {
  margin:0;
  border-bottom:1px solid #10100e40;
  padding:14px 0
}
.inner-page .service-faq summary {
  padding:0;
  font-size:16px;
  gap:18px
}
.inner-page .service-faq summary:after {
  content:'+';
  margin-left:auto;
  font-size:24px
}
.inner-page .service-faq details[open] summary:after {
  content:'−'
}
.inner-page .contact-layout {
  padding:150px var(--space) 64px;
  grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
  gap:clamp(32px,6vw,96px);
  align-items:start;
  background:var(--yellow)
}
.inner-page .contact-layout h1 {
  font-size:clamp(50px,5.6vw,82px);
  line-height:1.05;
  margin:18px 0 24px
}
.inner-page .contact-layout>div>p {
  max-width:460px
}
.inner-page .contact-layout form {
  background:var(--paper);
  border-radius:0;
  padding:32px
}
.inner-page .contact-layout .form-head h2 {
  font-size:34px
}
.inner-page .contact-direct {
  border-top:1px solid #10100e55;
  padding-top:24px;
  margin-top:32px
}
.inner-page .contact-direct a {
  font-size:clamp(16px,1.6vw,22px);
  overflow-wrap:anywhere
}
.inner-page .form-grid {
  gap:18px
}
.inner-page .form-grid input,.inner-page .form-grid select,.inner-page .form-grid textarea {
  background:transparent;
  border:1px solid #10100e50;
  border-radius:0
}
.inner-page .case-intro {
  padding:145px var(--space) 48px
}
.inner-page .case-intro h1 {
  font-size:clamp(44px,5vw,76px);
  max-width:1000px;
  line-height:1.08;
  margin:20px 0
}
.inner-page .case-intro .archive-note {
  max-width:640px
}
.inner-page .case-image {
  padding:32px var(--space) 0;
  background:var(--paper)
}
.inner-page .case-image img {
  max-height:750px;
  object-fit:contain;
  background:#efeee5
}
.inner-page .case-details {
  gap:48px;
  grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)
}
.inner-page .case-details article {
  margin-bottom:24px;
  border-top:1px solid #10100e40;
  padding-top:20px
}
.inner-page .case-details h2 {
  font-size:30px;
  margin-bottom:12px
}
@media(max-width:900px) {
 .inner-page .page-intro {
    gap:28px
  }
  .inner-page .page-intro h1 {
    font-size:42px
  }
 .inner-page .inner-intro-photo {
    height:350px
  }
 .inner-page .process-grid {
    grid-template-columns:repeat(2,1fr)
  }
 .inner-page .contact-layout {
    gap:28px;
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)
  }
 .inner-page .contact-layout form {
    padding:24px
  }
  .inner-page .form-grid {
    grid-template-columns:1fr
  }
}
@media(max-width:700px) {
 .inner-page .section {
    padding-top:40px;
    padding-bottom:40px
  }
 .inner-page .page-intro {
    grid-template-columns:1fr;
    padding-top:120px;
    padding-bottom:32px;
    gap:28px
  }
 .inner-page .page-intro h1 {
    font-size:42px;
    margin:14px 0 20px
  }
 .inner-page .inner-intro-photo {
    height:280px
  }
 .inner-page .inner-intro-copy>p:not(.eyebrow) {
    font-size:16px
  }
 .inner-page .capabilities,.inner-page .intro,.inner-page .service-content,.inner-page .case-details {
    grid-template-columns:1fr;
    gap:28px
  }
 .inner-page .inner-service-list h3 {
    font-size:27px
  }
 .inner-page .regional {
    grid-template-columns:1fr;
    gap:20px
  }
 .inner-page .regional h2 {
    grid-row:auto
  }
  .inner-page .regional>.eyebrow {
    grid-column:auto
  }
 .inner-page .project-grid {
    grid-template-columns:1fr;
    gap:32px
  }
 .inner-page .project-card:first-child {
    display:block;
    grid-column:auto
  }
 .inner-page .project-card .project-image,.inner-page .project-card:first-child .project-image {
    height:330px
  }
 .inner-page .project-info,.inner-page .project-card:first-child .project-info {
    padding-top:18px
  }
 .inner-page .audience-grid {
    grid-template-columns:1fr;
    gap:28px
  }
 .inner-page .audience h2 br {
    display:none
  }
 .inner-page .service-related {
    padding:24px
  }
 .inner-page .contact-layout {
    grid-template-columns:1fr;
    padding-top:120px;
    padding-bottom:40px;
    gap:32px
  }
 .inner-page .contact-layout h1 {
    font-size:52px
  }
  .inner-page .contact-layout form {
    padding:24px 20px
  }
 .inner-page .case-intro {
    padding-top:120px
  }
  .inner-page .case-intro h1 {
    font-size:42px
  }
 .inner-page .case-image {
    padding-top:24px
  }
}
@media(max-width:380px) {
  .inner-page .process-grid {
    grid-template-columns:1fr
  }
  .inner-page .page-intro h1 {
    font-size:37px
  }
}
.inner-page .about-intro-heading h2 {
  margin-top:18px
}
.inner-page .intro .large-copy {
  margin-top:0
}
/* Work uses the same photographic magazine spreads as the homepage. */
.inner-page .work-page-editorial {
  padding-top:150px;
  padding-bottom:64px
}
.work-page-editorial .home-work-heading {
  gap:32px;
  padding-bottom:36px
}
.work-page-editorial .home-work-heading>div {
  max-width:850px
}
.work-page-editorial h1 {
  font-size:clamp(44px,5.5vw,80px);
  line-height:1.04;
  letter-spacing:-.02em;
  margin:16px 0 0
}
.work-page-editorial .work-page-summary {
  max-width:360px;
  font-size:16px;
  line-height:1.6;
  margin:0
}
@media(max-width:900px) {
  .work-page-editorial .home-work-heading {
    align-items:start;
    flex-direction:column
  }
  .work-page-editorial .work-page-summary {
    max-width:580px
  }
}
@media(max-width:700px) {
  .inner-page .work-page-editorial {
    padding-top:120px;
    padding-bottom:40px
  }
  .work-page-editorial .home-work-heading {
    gap:20px
  }
  .work-page-editorial h1 {
    font-size:44px
  }
}
/* Two identical logo groups make one continuous, seamless loop. */
.trusted-by {
  position:relative;
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  align-items:center;
  gap:40px;
  padding:42px var(--space);
  background:var(--yellow);
  color:var(--ink)
}
.trusted-by-heading {
  margin:0;
  transform:rotate(-3deg)
}
.inner-page .trusted-by h2 {
  font:400 44px/1.05 Chewy,Arial,sans-serif;
  letter-spacing:-.02em;
  margin:0 0 10px
}
.trusted-by-heading p {
  font-size:11px;
  color:#51451e;
  margin:0
}
.client-logo-window {
  overflow:hidden;
  mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)
}
.client-logo-track {
  display:flex;
  width:max-content;
  animation:client-logo-scroll 30s linear infinite
}
.client-logo-group {
  display:flex;
  align-items:center;
  justify-content:space-around;
  gap:58px;
  flex-shrink:0;
  min-width:calc(100vw - 2 * var(--space) - 260px);
  list-style:none;
  margin:0;
  padding:0 32px
}
.client-logo-placeholder {
  display:flex;
  align-items:center;
  gap:12px;
  white-space:nowrap;
  color:var(--ink);
  height:76px
}
.client-logo-placeholder>span {
  font:44px/1 Georgia,serif
}
.client-logo-placeholder>strong {
  font:800 18px/1 Arial,sans-serif;
  letter-spacing:-.035em
}
.client-logo-placeholder:nth-child(even)>strong {
  font-family:Georgia,serif;
  font-style:italic;
  letter-spacing:-.035em;
  font-size:24px
}
.client-logo-window:hover .client-logo-track {
  animation-play-state:paused
}
@keyframes client-logo-scroll {
  to {
    transform:translateX(-50%)
  }
}
@media(max-width:700px) {
  .trusted-by {
    grid-template-columns:minmax(0,1fr);
    gap:24px;
    padding-top:30px;
    padding-bottom:30px
  }
  .trusted-by-heading {
    transform:none
  }
  .inner-page .trusted-by h2 {
    font-size:36px;
    margin-bottom:6px
  }
  .client-logo-group {
    gap:38px;
    padding-inline:19px;
    min-width:0
  }
  .client-logo-placeholder {
    height:58px
  }
  .client-logo-placeholder>strong {
    font-size:16px
  }
  .client-logo-placeholder>span {
    font-size:36px
  }
}
@media(prefers-reduced-motion:reduce) {
  .client-logo-track {
    animation:none
  }
  .client-logo-window {
    overflow-x:auto;
    mask-image:none
  }
  .client-logo-group[aria-hidden] {
    display:none
  }
}
/* Taller Work spreads retain the homepage's horizontal loop and edge bleed. */
.work-page-editorial .gallery-spread {
  height:clamp(620px,100svh,1080px)
}
@media(max-width:700px) {
  .work-page-editorial .gallery-spread {
    height:clamp(460px,130vw,620px)
  }
}
/* Approved client artwork retains its original brand colours. */
.client-logo {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 170px;
  width:170px;
  height:100px;
  overflow:hidden
}
.client-logo img {
  display:block;
  width:100%;
  height:86px;
  object-fit:contain
}
.client-logo--campari img {
  height:52px;
  object-fit:cover
}
.client-logo--lucozade {
  padding:10px 20px
}
.client-logo--lucozade img {
  height:80px;
  filter:brightness(0)
}
.client-logo--world-brands-services img {
  height:100px
}
@media(max-width:700px) {
  .client-logo {
    flex-basis:140px;
    width:140px;
    height:90px
  }
  .client-logo img {
    height:76px
  }
  .client-logo--campari img {
    height:44px
  }
  .client-logo--world-brands-services img {
    height:90px
  }
  .client-logo--lucozade img {
    height:70px
  }
}
/* Reveal project context with the site's yellow service labels. */
.work-page-editorial .gallery-item {
  position:relative;
  isolation:isolate
}
.work-page-editorial .gallery-caption {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  gap:12px;
  padding:24px;
  background:linear-gradient(transparent 30%,#000b);
  opacity:0;
  transition:opacity .2s ease;
  pointer-events:none
}
.work-page-editorial .gallery-service {
  display:inline-block;
  max-width:100%;
  background:var(--yellow);
  color:var(--ink);
  padding:8px 12px;
  font:400 clamp(17px,1.7vw,25px)/1.1 Chewy,Arial,sans-serif;
  transform:rotate(-2deg)
}
.work-page-editorial .gallery-company {
  color:#fff;
  font:400 clamp(22px,2.2vw,34px)/1.12 Chewy,Arial,sans-serif;
  text-shadow:0 2px 8px #0008;
  overflow-wrap:break-word
}
.work-page-editorial .gallery-item:hover .gallery-caption,.work-page-editorial .gallery-item:focus-visible .gallery-caption {
  opacity:1
}
.work-page-editorial .gallery-track.is-dragging .gallery-caption {
  opacity:0
}
@media(max-width:700px) {
  .work-page-editorial .gallery-caption {
    padding:12px;
    gap:8px
  }
  .work-page-editorial .gallery-service {
    font-size:16px;
    padding:6px 9px
  }
  .work-page-editorial .gallery-company {
    font-size:20px
  }
}
@media(hover:none) {
  .work-page-editorial .gallery-caption {
    opacity:1
  }
}
.client-logo--j-wray-and-nephew img {
  filter:brightness(0)
}
/* Work layout coordinates come from reusable, image-aware magazine templates. */
@media(min-width:701px) {
 .work-page-editorial .gallery-spread {
    grid-template-rows:repeat(3,minmax(0,1fr))
  }
 .work-page-editorial .gallery-track .gallery-spread[data-count] .gallery-item:nth-child(n) {
    grid-column:var(--work-column);
    grid-row:var(--work-row)
  }
}
/* Services carries the warm, closely spaced photographic direction from Home and Work. */
.services-editorial {
  background:#f4f0e3
}
.inner-page .services-opening {
  padding-top:150px;
  padding-bottom:44px
}
.services-heading {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:center;
  margin-bottom:36px
}
.services-heading h1 {
  font-size:clamp(52px,6vw,88px);
  line-height:1.04;
  margin:0;
  letter-spacing:-.02em
}
.services-heading>div>p:first-child {
  font:400 clamp(25px,2.5vw,36px)/1.15 Chewy,Arial,sans-serif;
  margin:0 0 12px
}
.services-heading>div>p:last-child {
  font-size:16px;
  line-height:1.6;
  max-width:560px;
  margin:0
}
.service-stories {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:32px 18px
}
.service-story {
  grid-column:span 2;
  min-width:0;
  scroll-margin-top:115px
}
.service-story:nth-child(-n+2) {
  grid-column:span 3
}
.service-story>a {
  display:block;
  height:100%;
  color:inherit;
  text-decoration:none
}
.service-story-photo {
  position:relative;
  overflow:hidden;
  aspect-ratio:4/3;
  background:#ded9cd
}
.service-story:nth-child(-n+2) .service-story-photo {
  aspect-ratio:16/9
}
.service-story-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s ease
}
.service-story-label {
  position:absolute;
  left:18px;
  bottom:16px;
  padding:7px 12px;
  background:var(--yellow);
  font:26px/1 Chewy,Arial,sans-serif;
  transform:rotate(-3deg)
}
.service-story-copy {
  padding:20px 6px 0
}
.inner-page .service-story h2 {
  font-size:clamp(27px,2.5vw,38px);
  line-height:1.12;
  margin:0 0 12px
}
.service-story-copy>p {
  font-size:15px;
  line-height:1.6;
  margin:0;
  color:#48483f;
  max-width:62ch
}
.service-story-tags {
  display:flex;
  flex-wrap:wrap;
  gap:7px 12px;
  list-style:none;
  padding:0;
  margin:16px 0 0;
  font-size:11px;
  line-height:1.5;
  color:#555147
}
.service-story-tags li {
  margin:0;
  padding:0
}
.service-story-tags li:not(:last-child):after {
  content:' /';
  padding-left:10px;
  color:#8d8676
}
.service-story>a:hover h2 {
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:5px
}
.service-story>a:hover img {
  transform:scale(1.025)
}
.service-story>a:focus-visible {
  outline:3px solid var(--ink);
  outline-offset:5px
}
.services-work-link {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-top:36px
}
.services-work-link p {
  font-size:16px;
  margin:0
}
.services-delivery {
  background:var(--yellow);
  color:var(--ink)
}
.inner-page .services-delivery .process,.services-delivery .process .eyebrow,.services-delivery .process h2,.services-delivery .process h3 {
  color:var(--ink)
}
.services-delivery .process-grid p {
  color:#383522
}
.inner-page .services-delivery .process {
  background:transparent;
  border:0;
  padding-top:44px;
  padding-bottom:36px
}
.services-delivery .section-heading {
  margin:0;
  border:0;
  padding:0
}
.services-delivery .process h2 br {
  display:none
}
.services-delivery .process-grid li {
  border:0;
  padding-top:0
}
.services-delivery .process-grid li>span {
  display:inline-grid;
  place-items:center;
  width:40px;
  height:40px;
  background:var(--ink);
  color:var(--yellow);
  border-radius:50%;
  font-size:23px
}
.services-delivery .process-grid h3 {
  margin-top:16px
}
.services-regional {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px 40px;
  padding:12px var(--space) 44px
}
.inner-page .services-regional h2 {
  font-size:28px;
  margin:0
}
.services-regional p {
  font-size:15px;
  line-height:1.6;
  margin:0;
  max-width:660px;
  grid-column:1
}
.services-regional>a {
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  white-space:nowrap
}
@media(max-width:1000px) {
  .service-stories {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .service-story,.service-story:nth-child(-n+2) {
    grid-column:span 1
  }
  .service-story:last-child {
    grid-column:1/-1
  }
  .service-story:last-child>a {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    align-items:center
  }
  .service-story:last-child .service-story-copy {
    padding:0
  }
  .services-regional {
    grid-template-columns:1fr 1fr
  }
  .services-regional>a {
    grid-column:2
  }
  .service-story-photo,.service-story:nth-child(-n+2) .service-story-photo {
    aspect-ratio:4/3
  }
}
@media(max-width:700px) {
  .inner-page .services-opening {
    padding-top:120px;
    padding-bottom:32px
  }
  .services-heading {
    grid-template-columns:1fr;
    gap:20px;
    margin-bottom:28px
  }
  .services-heading h1 {
    font-size:52px
  }
  .services-heading>div>p:first-child {
    font-size:27px
  }
  .service-stories {
    grid-template-columns:1fr;
    gap:30px
  }
  .service-story:last-child>a {
    display:block
  }
  .service-story:last-child .service-story-copy,.service-story-copy {
    padding:16px 0 0
  }
  .inner-page .service-story h2 {
    font-size:30px
  }
  .service-story-photo,.service-story:nth-child(-n+2) .service-story-photo {
    aspect-ratio:4/3
  }
  .services-work-link {
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
    margin-top:28px
  }
  .inner-page .services-delivery .process {
    padding-top:32px;
    padding-bottom:30px
  }
  .services-regional {
    grid-template-columns:1fr;
    gap:14px;
    padding-bottom:32px
  }
  .services-regional>a {
    grid-column:auto;
    grid-row:auto;
    justify-self:start
  }
  .services-delivery .process-grid {
    gap:24px 20px
  }
  .services-delivery .process-grid h3 {
    font-size:27px
  }
}
@media(prefers-reduced-motion:reduce) {
  .service-story-photo img {
    transition:none
  }
}
/* Native details keep FAQs usable with keyboard input and without JavaScript. */
.inner-page .services-faq {
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(28px,6vw,80px);
  background:#f4f0e3;
  color:var(--ink);
  padding-top:48px;
  padding-bottom:48px
}
.services-faq h2 {
  margin:0 0 16px
}
.services-faq>div>p {
  font-size:16px;
  line-height:1.6;
  color:#48483f
}
.services-faq-list {
  min-width:0
}
.services-faq-list details {
  border-bottom:1px solid #10100e26
}
.services-faq-list details:first-child {
  border-top:1px solid #10100e26
}
.services-faq-list summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:20px 0;
  list-style:none;
  cursor:pointer;
  font-size:17px;
  font-weight:600;
  line-height:1.45
}
.services-faq-list summary::-webkit-details-marker {
  display:none
}
.services-faq-list summary:after {
  content:none
}
.faq-toggle {
  display:grid;
  place-items:center;
  flex:0 0 30px;
  height:30px;
  border-radius:50%;
  background:var(--yellow);
  font-size:23px;
  font-weight:400
}
.faq-toggle:before {
  content:'+'
}
.services-faq-list details[open] .faq-toggle:before {
  content:'−'
}
.services-faq-list details>p {
  margin:0;
  padding:0 50px 20px 0;
  font-size:15px;
  line-height:1.65;
  color:#48483f
}
.services-faq-list summary:hover {
  color:#655000
}
@media(max-width:700px) {
  .inner-page .services-faq {
    grid-template-columns:1fr;
    padding-top:32px;
    padding-bottom:32px;
    gap:24px
  }
  .services-faq h2 br {
    display:none
  }
  .services-faq-list summary {
    font-size:16px;
    padding:18px 0
  }
  .services-faq-list details>p {
    padding-right:0
  }
}
.services-faq .faq-contact-link {
  text-decoration:underline;
  text-underline-offset:4px
}
/* About carries the warm, compact photographic direction across the company story. */
.about-editorial {
  background:#f4f0e3;
  color:var(--ink)
}
.inner-page .about-opening {
  padding-top:150px;
  padding-bottom:0
}
.about-heading {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:clamp(28px,5vw,80px);
  align-items:center;
  margin-bottom:36px
}
.about-heading h1 {
  font-size:clamp(52px,6.4vw,94px);
  line-height:1.02;
  letter-spacing:-.02em;
  margin:0
}
.about-editorial p {
  font-size:16px;
  line-height:1.65;
  color:#48483f
}
.about-editorial .about-lead {
  font:400 clamp(25px,2.6vw,36px)/1.2 Chewy,Arial,sans-serif;
  color:var(--ink);
  margin:0 0 18px
}
.about-heading .text-link {
  margin-top:20px
}
.about-photo-spread {
  display:grid;
  grid-template-columns:1.05fr 1.65fr;
  grid-template-rows:1fr 1fr;
  gap:12px;
  height:clamp(400px,44vw,650px);
  margin-inline:calc(-1 * var(--space))
}
.about-photo-spread>div {
  min-width:0;
  min-height:0;
  overflow:hidden
}
.about-photo-spread>div:first-child {
  grid-row:1/3
}
.about-photo-spread img {
  width:100%;
  height:100%;
  object-fit:cover
}
.about-photo-spread>div:nth-child(2) img {
  object-position:50% 42%
}
.about-photo-spread>div:nth-child(3) img {
  object-position:50% 55%
}
.inner-page .about-story {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:clamp(28px,6vw,90px);
  padding-top:48px;
  padding-bottom:40px
}
.about-editorial h2 {
  margin:0;
  font-size:clamp(36px,4.2vw,60px);
  line-height:1.08
}
.about-story p+p {
  margin-top:16px
}
.about-facts {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  padding:28px var(--space) 38px
}
.about-facts p {
  margin:0!important
}
.about-facts strong {
  display:block;
  font:400 clamp(46px,6vw,84px)/1.1 Chewy,Arial,sans-serif;
  color:var(--ink)
}
.about-facts span {
  display:block;
  margin-top:8px;
  font-size:14px
}
.inner-page .about-values {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:clamp(28px,6vw,90px);
  background:var(--yellow);
  padding-top:48px;
  padding-bottom:48px
}
.about-values-heading p {
  max-width:350px;
  margin-top:22px;
  color:#383522
}
.about-value-list {
  display:grid;
  gap:28px
}
.about-value-list article {
  display:flex;
  gap:20px;
  align-items:flex-start
}
.about-value-list article>span {
  display:grid;
  place-items:center;
  flex:0 0 38px;
  height:38px;
  border-radius:50%;
  background:var(--ink);
  color:var(--yellow);
  font:22px/1 Chewy,Arial,sans-serif
}
.about-value-list h3,.about-people h3 {
  font-size:30px;
  line-height:1.15;
  margin:0 0 10px
}
.about-value-list p {
  margin:0;
  color:#383522
}
.about-people-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:24px;
  margin-bottom:32px
}
.about-people-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:36px
}
.about-people-grid p {
  margin:0
}
@media(max-width:900px) {
  .about-heading {
    grid-template-columns:1fr 1fr
  }
  .about-heading h1 {
    font-size:60px
  }
  .about-people-grid {
    gap:24px
  }
  .about-people h3 {
    font-size:27px
  }
}
@media(max-width:700px) {
  .inner-page .about-opening {
    padding-top:120px;
    padding-bottom:0
  }
  .about-heading {
    grid-template-columns:1fr;
    gap:24px;
    margin-bottom:28px
  }
  .about-heading h1 {
    font-size:52px
  }
  .about-heading .text-link {
    margin-top:16px
  }
  .about-photo-spread {
    height:430px;
    grid-template-columns:1fr 1fr;
    grid-template-rows:1.15fr 1fr;
    gap:8px
  }
  .about-photo-spread>div:first-child {
    grid-column:1;
    grid-row:1/3
  }
  .about-photo-spread>div:nth-child(2) img {
    object-position:42% 50%
  }
  .inner-page .about-story,.inner-page .about-values {
    grid-template-columns:1fr;
    gap:24px;
    padding-top:32px;
    padding-bottom:32px
  }
  .about-facts {
    gap:12px;
    padding-top:0;
    padding-bottom:32px
  }
  .about-facts strong {
    font-size:44px
  }
  .about-facts span {
    font-size:12px
  }
  .about-values-heading p {
    margin-top:16px;
    max-width:none
  }
  .about-value-list {
    gap:24px
  }
  .about-value-list article {
    gap:14px
  }
  .about-value-list h3 {
    font-size:27px
  }
  .about-people-heading {
    align-items:start;
    flex-direction:column;
    gap:18px;
    margin-bottom:28px
  }
  .about-people-grid {
    grid-template-columns:1fr;
    gap:24px
  }
  .about-editorial h2 {
    font-size:38px
  }
}
@media(max-width:360px) {
  .about-heading h1 {
    font-size:46px
  }
  .about-facts strong {
    font-size:38px
  }
  .about-photo-spread {
    height:360px
  }
}
/* Stronger yellow rhythm from the opening through the company story. */
.inner-page .about-opening {
  background:var(--yellow)
}
.about-opening p {
  color:#383522
}
.about-facts {
  background:var(--yellow);
  padding-top:34px
}
.about-people h3 {
  background:var(--yellow);
  width:fit-content;
  padding:7px 12px;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone
}
@media(max-width:700px) {
  .about-facts {
    padding-top:28px
  }
}
.about-editorial .about-story h2 {
  font-size:clamp(48px,6.2vw,88px);
  line-height:1.04
}
@media(max-width:700px) {
  .about-editorial .about-story h2 {
    font-size:clamp(44px,11vw,60px)
  }
}
.about-facts .counter-value {
  display:inline;
  font:inherit;
  margin:0;
  font-variant-numeric:tabular-nums
}
.about-story .about-facts {
  grid-column:1/-1;
  width:100%;
  max-width:960px;
  justify-self:center;
  text-align:center;
  background:transparent;
  padding:0;
  gap:24px
}
.inner-page .about-story {
  row-gap:36px
}
@media(max-width:700px) {
  .about-story .about-facts {
    gap:12px
  }
  .inner-page .about-story {
    row-gap:28px
  }
}
/* Reusable project stories: warm editorial layouts and full-size archive photography. */
.case-study {
  background:#f4f0e3;
  color:var(--ink)
}
.case-study section[id] {
  scroll-margin-top:125px
}
.case-opening {
  background:var(--yellow);
  padding:150px var(--space) 32px
}
.case-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) 240px;
  gap:48px;
  align-items:center;
  margin:36px 0 42px
}
.case-heading h1 {
  font-size:clamp(52px,7.5vw,110px);
  line-height:1.01;
  max-width:950px;
  margin:16px 0 0;
  letter-spacing:-.025em
}
.case-opening-note {
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:28px
}
.case-opening-note>span {
  font:clamp(32px,3.3vw,48px)/1.05 Chewy,Arial,sans-serif;
  transform:rotate(-6deg)
}
.case-facts {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  border-top:1px solid #10100e40;
  padding-top:22px;
  margin:0
}
.case-facts dt {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:8px;
  font-weight:700
}
.case-facts dd {
  font-size:15px;
  line-height:1.5;
  margin:0
}
.case-hero-photo {
  margin:0;
  position:relative;
  background:#24251e
}
.case-hero-photo img {
  width:100%;
  height:clamp(420px,60vw,820px);
  object-fit:cover;
  object-position:center 50%;
  display:block
}
.case-hero-photo figcaption {
  position:absolute;
  bottom:20px;
  left:var(--space);
  background:var(--yellow);
  padding:8px 13px;
  color:var(--ink);
  font-size:12px;
  transform:rotate(-2deg)
}
.case-jump {
  display:flex;
  flex-wrap:wrap;
  gap:16px 36px;
  padding:24px var(--space);
  border-bottom:1px solid #10100e26
}
.case-jump a {
  font-size:14px;
  line-height:1.5;
  text-underline-offset:5px
}
.case-jump a:hover {
  text-decoration:underline
}
.inner-page .case-study h2 {
  font-size:clamp(38px,4.5vw,66px);
  line-height:1.06;
  margin:12px 0 0
}
.case-study p {
  line-height:1.65
}
.case-study .eyebrow {
  font-size:11px;
  line-height:1.4;
  margin:0
}
.case-story,.case-contribution,.case-outcome {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(32px,7vw,100px)
}
.case-study .case-lead {
  font-size:clamp(22px,2vw,28px);
  line-height:1.45;
  margin:0 0 18px
}
.case-story>div>p:last-child,.case-outcome>div>p:last-child {
  color:#555147;
  max-width:60ch;
  margin-bottom:0
}
.case-contribution {
  background:var(--yellow)
}
.case-scope {
  list-style:none;
  padding:0;
  margin:0
}
.case-scope li {
  display:flex;
  gap:18px;
  padding:16px 0;
  border-bottom:1px solid #10100e30;
  font-size:19px;
  line-height:1.5
}
.case-scope li:first-child {
  padding-top:0
}
.case-scope li span {
  font-size:24px
}
.case-pending {
  font-size:22px;
  margin-top:0
}
.case-partners {
  font-size:14px;
  margin:24px 0 0;
  color:#51451e
}
.case-section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:28px;
  margin-bottom:32px
}
.case-section-heading>p {
  font-size:14px;
  color:#555147;
  margin:0;
  max-width:320px
}
.case-gallery-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px 20px
}
.case-gallery-grid figure,.case-comparison figure {
  margin:0;
  min-width:0
}
.case-gallery-grid figure:only-child {
  grid-column:1/-1
}
.case-gallery-grid figure:nth-child(3n) {
  grid-column:1/-1
}
.case-gallery-grid .case-photo-trigger {
  position:relative;
  display:block;
  background:#e4dece
}
.case-gallery-grid img {
  display:block;
  width:100%;
  height:clamp(320px,40vw,610px);
  object-fit:contain
}
.case-enlarge {
  position:absolute;
  right:16px;
  bottom:16px;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--yellow);
  font-size:25px
}
.case-study figcaption {
  font-size:13px;
  line-height:1.5;
  margin-top:12px;
  color:#555147
}
.case-study .case-hero-photo figcaption {
  margin-top:0;
  color:var(--ink)
}
.case-study .case-transformation {
  padding-top:0
}
.case-comparison {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.case-comparison-photo {
  position:relative;
  background:#e4dece;
  aspect-ratio:4/3;
  overflow:hidden
}
.case-comparison-photo img {
  width:100%;
  height:100%;
  object-fit:contain
}
.case-photo-label {
  position:absolute;
  top:18px;
  left:18px;
  background:var(--yellow);
  padding:8px 16px;
  font:24px/1 Chewy,Arial,sans-serif;
  transform:rotate(-3deg)
}
.case-photo-empty {
  height:100%;
  min-height:240px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:70px 24px 32px;
  text-align:center;
  background:repeating-linear-gradient(-45deg,transparent,transparent 16px,#10100e04 16px,#10100e04 17px);
  border:1px dashed #10100e35
}
.case-photo-empty>span {
  font:clamp(26px,3vw,40px)/1.1 Chewy,Arial,sans-serif
}
.case-photo-empty p {
  font-size:13px;
  color:#555147;
  max-width:250px;
  margin:14px 0 0
}
.case-outcome {
  border-top:1px solid #10100e26
}
.case-testimonial {
  position:relative;
  text-align:center;
  background:var(--yellow)
}
.case-quote-mark {
  font:110px/1 Georgia,serif;
  display:block;
  height:85px;
  margin-top:24px
}
.case-testimonial blockquote {
  margin:0 auto;
  max-width:900px
}
.case-testimonial blockquote>p {
  font:clamp(28px,3.7vw,52px)/1.25 Chewy,Arial,sans-serif;
  margin:0 0 28px
}
.case-testimonial blockquote footer {
  font-size:15px;
  font-weight:700
}
.case-testimonial blockquote footer span {
  display:block;
  font-size:13px;
  font-weight:400;
  margin-top:6px
}
.case-quote-pending h3 {
  font-size:clamp(32px,4vw,52px);
  margin:0 0 16px
}
.case-quote-pending p {
  font-size:15px;
  margin:0
}
.case-next {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  padding:44px var(--space)
}
.case-next>span {
  font-size:60px
}
.inner-page .case-next h2 {
  font-size:clamp(30px,3.4vw,48px)
}
.case-next:hover h2 {
  text-decoration:underline;
  text-underline-offset:7px
}
.case-study a:focus-visible {
  outline:3px solid var(--ink);
  outline-offset:5px
}
@media(max-width:700px) {
 .case-opening {
    padding-top:118px;
    padding-bottom:26px
  }
  .case-heading {
    grid-template-columns:1fr;
    gap:26px;
    margin:28px 0
  }
  .case-heading h1 {
    font-size:clamp(46px,12vw,70px)
  }
  .case-opening-note {
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:20px
  }
  .case-opening-note>span {
    font-size:30px
  }
  .case-opening-note .text-link {
    font-size:13px;
    max-width:145px
  }
  .case-facts {
    grid-template-columns:1fr 1fr;
    gap:20px
  }
  .case-facts dd {
    font-size:14px
  }
  .case-hero-photo img {
    height:480px;
    max-height:75svh
  }
  .case-jump {
    gap:14px 22px;
    padding-top:20px;
    padding-bottom:20px
  }
  .case-jump a {
    font-size:13px
  }
  .case-story,.case-contribution,.case-outcome {
    grid-template-columns:1fr;
    gap:26px
  }
  .inner-page .case-study .section {
    padding-top:36px;
    padding-bottom:36px
  }
  .case-section-heading {
    align-items:start;
    flex-direction:column;
    gap:18px;
    margin-bottom:24px
  }
  .case-gallery-grid {
    grid-template-columns:1fr;
    gap:26px
  }
  .case-gallery-grid figure:nth-child(n) {
    grid-column:auto
  }
  .case-gallery-grid img {
    height:auto;
    max-height:650px
  }
  .case-comparison {
    grid-template-columns:1fr;
    gap:24px
  }
  .inner-page .case-study .case-transformation {
    padding-top:0
  }
  .case-study section[id] {
    scroll-margin-top:100px
  }
  .case-next {
    padding-top:32px;
    padding-bottom:32px
  }
  .case-next>span {
    font-size:42px
  }
  .case-quote-mark {
    font-size:90px;
    height:65px
  }
  .case-study .case-hero-photo figcaption {
    bottom:16px;
    font-size:11px
  }
}
/* Keep section navigation independent of the global mobile header menu. */
.case-study .case-jump {
  position:static;
  flex-direction:row;
  align-items:center;
  background:transparent;
  z-index:auto
}
.case-study .case-jump>a {
  padding:0
}
/* Native modal keeps the enlarged photograph on the current project page. */
.case-gallery-grid .case-photo-trigger {
  width:100%;
  padding:0;
  border:0;
  color:inherit;
  font:inherit;
  text-align:inherit;
  cursor:zoom-in
}
.case-photo-trigger:focus-visible {
  outline:3px solid var(--ink);
  outline-offset:5px
}
html.case-photo-open {
  overflow:hidden
}
.case-photo-modal {
  width:min(1440px,94vw);
  max-width:94vw;
  max-height:94dvh;
  margin:auto;
  padding:60px 24px 20px;
  border:0;
  background:#171714;
  color:#fff;
  overflow:auto;
  box-sizing:border-box
}
.case-photo-modal::backdrop {
  background:#000d
}
.case-photo-modal figure {
  margin:0
}
.case-photo-modal figure img {
  display:block;
  width:100%;
  height:calc(90dvh - 130px);
  object-fit:contain
}
.case-photo-modal figcaption {
  font-size:14px;
  line-height:1.5;
  text-align:center;
  margin:16px 0 0;
  color:#eee;
  overflow-wrap:anywhere
}
.case-photo-close {
  position:absolute;
  top:12px;
  right:16px;
  display:flex;
  align-items:center;
  gap:16px;
  min-height:40px;
  padding:8px 16px;
  border:0;
  border-radius:999px;
  background:var(--yellow);
  color:#171714;
  font:600 14px/1 Arial,sans-serif;
  cursor:pointer
}
.case-photo-close span {
  font-size:24px
}
.case-photo-close:focus-visible {
  outline:2px solid white;
  outline-offset:3px
}
@media(max-width:700px) {
  .case-photo-modal {
    width:96vw;
    max-width:96vw;
    padding:60px 12px 16px
  }
  .case-photo-modal figure img {
    height:calc(88dvh - 130px)
  }
  .case-photo-modal figcaption {
    font-size:13px
  }
}
/* One photograph per frame, with native touch scrolling and snap alignment. */
.case-gallery .case-gallery-grid {
  display:flex;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  overscroll-behavior-x:contain
}
.case-gallery .case-gallery-grid::-webkit-scrollbar {
  display:none
}
.case-gallery .case-gallery-grid>figure {
  flex:0 0 100%;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  min-width:0
}
.case-gallery .case-gallery-grid img {
  height:clamp(320px,48vw,680px);
  object-fit:contain
}
.case-gallery-controls {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  margin-top:22px
}
.case-gallery-controls[hidden] {
  display:none
}
.case-gallery-controls button {
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border:1px solid var(--ink);
  border-radius:50%;
  background:var(--yellow);
  color:var(--ink);
  font-size:26px;
  cursor:pointer
}
.case-gallery-controls button:disabled {
  opacity:.3;
  cursor:default
}
.case-gallery-count {
  font-size:14px;
  font-variant-numeric:tabular-nums;
  min-width:48px;
  text-align:center
}
.case-gallery-controls button:focus-visible,.case-gallery-grid:focus-visible {
  outline:3px solid var(--ink);
  outline-offset:3px
}
.case-gallery .case-photo-trigger:focus-visible {
  outline-offset:-4px
}
@media(max-width:700px) {
  .case-gallery .case-gallery-grid img {
    height:clamp(300px,110vw,560px)
  }
}
.work-page-editorial .gallery-track { min-height:clamp(620px,100svh,1080px); }
@media(max-width:700px) {
  .work-page-editorial .gallery-track { min-height:clamp(460px,130vw,620px); }
}
