/* Shared final refinements. Loaded immediately after the base stylesheet. */
/* Carry the homepage section shape into the About team section. */
.about-fig .about-fig__team {
  position: relative;
  z-index: 1;
  background: var(--fig-dark);
  overflow: hidden;
}

.about-fig .about-fig__team::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: clamp(52px, 7vw, 120px) clamp(52px, 7vw, 120px) 0 0;
  background: var(--off-white, #F9F9F5);
  pointer-events: none;
}

.about-fig .about-fig__team > .fig-wrap {
  position: relative;
  z-index: 1;
}

@media (max-width: 820px) {
  .about-fig .about-fig__team::before {
    border-radius: 42px 42px 0 0;
  }

  .about-fig .about-fig__team > .fig-wrap {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}

/* White cards on the About page's off-white sections. */
.about-fig .about-fig__team-grid article,
.about-fig .about-fig__values article {
  background-color: #fff;
}

/* About introduction spacing. */
.about-fig__intro .about-fig__intro-copy {
  width: min(1200px, 100%);
  margin: 120px auto 120px;
}

/* About: stronger culture labels, blue eyebrow pills and dark values cards. */
.about-fig .about-fig__culture-grid p > strong { font-weight: 600; }
.about-fig .fig-kicker {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 8px 15px;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
}
.about-fig .about-fig__impact-link {
  gap: 12px;
  padding: 14px 22px;
  border: 1px solid var(--blue);
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  transition: background-color .2s ease, border-color .2s ease;
}
.about-fig .about-fig__impact-link:hover { background: #1640dd; border-color: #1640dd; }
.about-fig .about-fig__impact-link:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.about-fig .about-fig__values-grid article { background: var(--fig-dark, #05060f); border-color: var(--fig-dark, #05060f); }
.about-fig .about-fig__values-grid article h3,
.about-fig .about-fig__values-grid article p { color: #fff; }

/* About eyebrows are section labels, not controls. */
.about-fig .fig-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  margin: 0 0 22px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--blue);
}
.about-fig .fig-kicker::before {
  content: '';
  display: block;
  width: 28px;
  height: 2px;
  flex: 0 0 28px;
  background: currentColor;
}

/* Medium weight for About section eyebrows only. */
.about-fig .fig-kicker { font-weight: 500; }

/* Shared section eyebrow treatment across all public page templates. */
body :is(main, #main-content) :is(.fig-kicker, .section__kicker, .section-kicker, .home-logos-kicker, .contact-fig__eyebrow, .legal-kicker, .approach-eyebrow, .studio-eyebrow):not(.case-tags *) {
  display: flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--blue);
  font-family: inherit;
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0;
  text-transform: none;
}
body :is(main, #main-content) :is(.fig-kicker, .section__kicker, .section-kicker, .home-logos-kicker, .contact-fig__eyebrow, .legal-kicker, .approach-eyebrow, .studio-eyebrow):not(.case-tags *)::before {
  content: '';
  position: static;
  display: block;
  width: 28px;
  height: 2px;
  flex: 0 0 28px;
  border: 0;
  background: currentColor;
  transform: none;
}

/* Values cards: Blink blue marks and a quiet atmospheric surface. */
.about-fig .about-fig__values-grid article {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(26px, 3vw, 44px);
  border: 1px solid #ffffff12;
  border-radius: 22px;
  background: var(--fig-dark);
  transition: border-color .3s ease, box-shadow .3s ease;
}
.about-fig__values-grid article::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(ellipse at 100% 0%, rgba(47,94,255,.2), transparent 65%);
  opacity: .7; transition: opacity .4s ease;
}
.about-fig__values-grid article:nth-child(even)::before { background: radial-gradient(ellipse at 100% 0%, rgba(26,135,134,.18), transparent 65%); }
.about-fig__values-grid .about-value-mark { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; }
.about-value-mark > span { color: #879dff; font-size: .8rem; font-weight: 500; letter-spacing: .08em; }
.about-value-mark svg { width: 48px; height: 48px; stroke: #6285ff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.about-fig .about-fig__values-grid article h3 { max-width: 24ch; margin: 0 0 16px; font-size: clamp(1.5rem, 2vw, 2rem); line-height: 1.15; letter-spacing: 0; font-weight: 500; }
.about-fig .about-fig__values-grid article p { max-width: 54ch; margin: 0; color: #e1e3ed; line-height: 1.6; }
@media (hover: hover) {
  .about-fig .about-fig__values-grid article:hover { border-color: #5278ff65; box-shadow: 0 10px 30px #05060f12; }
  .about-fig__values-grid article:hover::before { opacity: 1; }
}
@media (max-width: 767px) {
  .about-fig .about-fig__values { padding-bottom: 56px; }
  .about-fig__values-grid { grid-template-columns: 1fr; gap: 16px; }
  .about-fig .about-fig__values-grid article { border-radius: 18px; }
  .about-fig__values-grid .about-value-mark { margin-bottom: 24px; }
  .about-value-mark svg { width: 40px; height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .about-fig .about-fig__values-grid article, .about-fig__values-grid article::before { transition: none; }
}

/* FAQ: remove stacked top spacing and let answers fill their panels. */
.c-home-faq.seo-fig__dark-long { padding-top: clamp(48px, 6vw, 88px); }
.c-home-faq .seo-fig__faq-block { margin-top: clamp(48px, 5vw, 80px); }
.c-home-faq .seo-fig__faq-block:first-child { margin-top: 0; }
.c-home-faq .seo-fig__faq-list details p { width: 100%; max-width: none; margin-right: 0; }

/* Shared CTA alignment and FAQ spacing across page templates. */
.footer-cta,
.footer-cta > p,
.service-cta,
.service-cta .section__header,
.service-cta__body { text-align: center; }
.service-cta .section__header,
.service-cta .section__kicker { margin-inline: auto; }
.footer-cta__actions { justify-content: center; }
.seo-fig__faq-block { margin-top: clamp(48px, 5vw, 80px); }
.seo-fig__faq-block:first-child { margin-top: 0; }
.section.service-faq { padding-top: clamp(48px, 6vw, 88px); }
.seo-fig__faq-list details p,
.service-faq__answer,
.service-faq__answer p,
.fi-a,
.fi-a p { width: 100%; max-width: none; box-sizing: border-box; }
.seo-fig__faq-list details p { margin-right: 0; }

/* Testimonials retain consistent top-down spacing regardless of quote length. */
.seo-fig__reviews .seo-fig__review-card { justify-content: flex-start; }

/* Keep Google attribution at the bottom of each testimonial card. */
.seo-fig__reviews .seo-fig__review-source { margin-top: auto; }

/* Approach: shared Blink palette and more defined active states. */
#approach .blink-anim { --blink-blue: var(--blue); --blink-coral: var(--blue); }
#approach .blink-anim rect[fill="rgba(255,138,76,0.08)"] { fill: rgba(31,79,255,.06); }
#approach .approach-card-figure {
  background: #fff;
}
#approach .approach-media-card { border-radius: 28px; }
#approach .approach-media-card.is-active {
  border-color: rgba(31,79,255,.22);
  box-shadow: none;
}
#approach .approach-tabs { border: 0; gap: 8px; }
#approach .approach-tab {
  border: 1px solid rgba(5,6,15,.12);
  border-radius: 14px;
  background: rgba(255,255,255,.45);
}
#approach .approach-tab:last-child { border-right: 1px solid rgba(5,6,15,.12); }
#approach .approach-tab::after { content: none; }
#approach .approach-tab.is-active {
  background: var(--fig-dark);
  border-color: var(--fig-dark);
  color: #fff;
}
#approach .approach-tab:not(.is-active):hover { background: #fff; border-color: rgba(5,6,15,.4); color: var(--fig-dark); }
#approach .approach-tab:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
#approach .approach-body > p { padding-left: 16px; border-left: 2px solid rgba(31,79,255,.25); }
@media (max-width: 767px) {
  #approach .approach-media-card { border-radius: 20px; }
  #approach .approach-tab { border-radius: 12px; }
}

/* Service hero: complete titles, complete logos and the shared curved image edge. */
.seo-fig__hero h1 {
  max-width: 1240px;
  font-size: clamp(2rem, 4.2vw, 4.75rem);
  text-wrap: balance;
}
.seo-fig__hero-logos {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: clamp(16px, 3vw, 48px);
  overflow: visible;
  flex-wrap: wrap;
}
.seo-fig__hero-logos li {
  width: 100%;
  min-width: 0;
  overflow: visible;
}
.seo-fig__hero-logos img {
  width: 100%;
  max-width: 170px;
  height: 52px;
  object-fit: contain;
  object-position: center;
  filter: brightness(0);
  mix-blend-mode: normal;
}
.seo-fig__image-band {
  border-radius: clamp(40px, 9vw, 160px) clamp(40px, 9vw, 160px) 0 0;
  isolation: isolate;
}
@media (max-width: 760px) {
  .seo-fig__hero h1 {
    font-size: clamp(1.125rem, 5vw, 2.375rem);
    max-width: 100%;
  }
  .seo-fig__hero-logos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px 20px;
  }
  .seo-fig__hero-logos li { width: 100%; height: 42px; }
  .seo-fig__hero-logos li:nth-child(n + 7) { display: none; }
  .seo-fig__hero-logos img { height: 42px; max-width: 130px; }
}

/* Open line illustrations: circle-led marks, without a tile or container. */
.about-value-mark .blink-icon {
  width: 60px;
  height: 60px;
  flex: 0 0 60px;
  --blink-blue: #2F5EFF;
  stroke: none;
}
@media (max-width: 760px) {
  .about-value-mark .blink-icon { width: 48px; height: 48px; flex-basis: 48px; }
}

.about-value-mark .blink-values [class$="-ring"] {
  stroke: #879dff;
  stroke-width: 1.7px;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

/* Service hero copy stays within a centred 80% content area. */
.seo-fig__hero .seo-fig__hero-inner {
  width: 80%;
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}
.seo-fig__hero .seo-fig__hero-logos {
  margin-top: clamp(72px, 6vw, 104px);
}
@media (max-width: 760px) {
  .seo-fig__hero .seo-fig__hero-inner {
    width: calc(100% - 32px);
  }
  .seo-fig__hero .seo-fig__hero-logos { margin-top: 56px; }

  .seo-fig__seen {
    position: relative;
    z-index: 1;
    overflow: visible;
  }

  .seo-fig__seen + .seo-fig__services--rounded {
    position: relative;
    z-index: 2;
    margin-top: -96px;
    background: transparent;
  }

  .seo-fig__seen + .seo-fig__services--rounded > .fig-wrap,
  .seo-fig__seen + .seo-fig__services--rounded.is-rounded > .fig-wrap {
    border-radius: 40px 40px 0 0;
  }
}

/* Shared breadcrumb sizing across every page template. */
body :is(.fig-breadcrumb, .insights-breadcrumb, .single-insight__breadcrumb, .contact-fig__breadcrumb, .legal-breadcrumb),
body :is(.fig-breadcrumb, .insights-breadcrumb, .single-insight__breadcrumb, .contact-fig__breadcrumb, .legal-breadcrumb) :is(a, span, strong) {
  font-size: .9375rem !important;
  font-weight: 400 !important;
}

/* Breadcrumbs are quiet navigation, with the heading carrying the emphasis. */
body :is(.fig-breadcrumb, .insights-breadcrumb, .single-insight__breadcrumb, .contact-fig__breadcrumb, .legal-breadcrumb) {
  color: #06070f !important;
}
body :is(.fig-breadcrumb, .insights-breadcrumb, .single-insight__breadcrumb, .contact-fig__breadcrumb, .legal-breadcrumb) :is(a, span, strong) {
  color: inherit !important;
}
/* This modifier denotes breadcrumbs on a dark hero background. */
body .fig-breadcrumb--dark { color: #d7d8df !important; }

/* Compact rating lockup in service heroes. */
.seo-fig__hero .seo-fig__hero-rating .rating-source {
  display: none;
}

.seo-fig__hero .seo-fig__hero-actions {
  margin-top: clamp(28px, 2.5vw, 40px);
}

/* Work previews without published case studies are not interactive links. */
.is-preview-only { cursor:default; }

/* Service pills remain independently clickable above the row link. */
.cap-pills { position: relative; z-index: 5; pointer-events: none; }
.cap-pills .cp { pointer-events: auto; text-decoration: none; }
.cap-pills a.cp:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.cap-pills .cp--label { cursor: default; }

/* Compact social marks and circular contact icon holders. */
.fsocial .fsocial__link--linkedin { width:36px; height:36px; border:1px solid rgba(255,255,255,.15); border-radius:50%; }
.about-fig__team-grid article .about-fig__linkedin-logo { display:block; width:88px; height:auto; max-width:88px; aspect-ratio:auto; object-fit:contain; }
.contact-fig__route-icon, .contact-fig__visit-detail > .contact-fig__visit-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; border:1px solid rgba(255,255,255,.24); border-radius:50%; }
.contact-fig__route-icon svg, .contact-fig__visit-icon svg { display:block; width:22px; height:22px; }
.contact-fig__visit-detail { grid-template-columns:44px minmax(0,1fr); align-items:center; }

.contact-fig__visit-detail--address { align-items: start; }

/* Contact review proof sits on the same dark canvas as the surrounding content. */
.contact-fig .contact-fig__review-proof { background: transparent; color: #fff; }
.contact-fig .contact-fig__review-rating { margin: 0; }
.contact-fig .contact-fig__review-rating, .contact-fig .contact-fig__review-rating .rating-source, .contact-fig .contact-fig__review-rating .rating-text, .contact-fig .contact-fig__review-rating .rating-tail { color: #fff; }

/* One continuous contact canvas prevents section-boundary gradient seams. */
.contact-fig {
  background: radial-gradient(ellipse 65% 45% at 48% 8%, rgba(47,94,255,.12), transparent 75%),
    radial-gradient(ellipse 50% 42% at 100% 38%, rgba(19,104,89,.19), transparent 78%), #05060f;
}
.contact-fig .contact-fig__hero,
.contact-fig .contact-fig__visit { background: transparent; }
.contact-fig .contact-fig__glow { background: none; }

.global-industries__logos a.global-industries__logo-card { text-decoration:none; color:inherit; }
.global-industries__logos a.global-industries__logo-card:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }

/* Larger accreditation marks with a tighter gap to the introduction. */
.about-fig__intro .fig-logo-rail.about-accreditations { width:min(960px,100%); margin-bottom:0; }
.about-fig__intro .fig-logo-rail.about-accreditations img,
.about-fig__intro .fig-logo-rail.about-accreditations .fig-logo-rail__impact img { height:76px; max-height:76px; max-width:150px; width:auto; }
.about-fig__intro .about-fig__intro-copy { margin-top:48px; }
@media(max-width:600px) {
.about-fig__intro .fig-logo-rail.about-accreditations img,
.about-fig__intro .fig-logo-rail.about-accreditations .fig-logo-rail__impact img { height:60px; max-height:60px; max-width:120px; }
.about-fig__intro .about-fig__intro-copy { margin-top:32px; }
}

body .work-fig .fig-breadcrumb, body .work-fig .fig-breadcrumb :is(a, span, strong) { color:#06070f !important; opacity:1; }

body :is(.fig-breadcrumb, .insights-breadcrumb, .single-insight__breadcrumb, .contact-fig__breadcrumb, .legal-breadcrumb) :is(a, span, strong) { opacity: 1; }

/* Service logo rails: complete artwork in consistent, responsive slots. */
.seo-fig__cred-logos:focus-visible { outline: 3px solid var(--blue); outline-offset: 6px; }
.seo-fig__cred-logos li { min-width:0; overflow:visible; }
.seo-fig__cred-logos img { width:180px; height:64px; max-width:100%; max-height:none; object-fit:contain; object-position:center; }
.seo-fig__hero .fig-logo-rail img { object-fit:contain; object-position:center; max-width:100%; }
@media(max-width:600px) {
.seo-fig__cred-logos img { width:150px; height:54px; max-width:100%; }
}

/* Supplied client SVGs share a balanced canvas; preserve their actual colours. */
body img[src*="/client-logos/"] { object-fit: contain; }
body .seo-fig__hero-logos img { filter: none; }
body .seo-fig__hero-logos { justify-content: center; }
body .seo-fig__hero-logos img[src*="/client-logos/"],
body .home-logos-img[src*="/client-logos/"],
body .logos-row img[src*="/client-logos/"] { filter: none; width: 100%; height: 76px; max-width: 190px; }
body .work-fig__card-brand img[src*="/client-logos/"],
body .c-home-works .case-inner .home-work__card-brand img[src*="/client-logos/"] { filter: none; width: 210px; height: 84px; max-width: 100%; max-height: none; margin-top: 0; }
@media (max-width: 600px) {
  body .seo-fig__hero-logos img[src*="/client-logos/"],
  body .home-logos-img[src*="/client-logos/"],
  body .logos-row img[src*="/client-logos/"] { height: 60px; max-width: 150px; }
  body .work-fig__card-brand img[src*="/client-logos/"],
  body .c-home-works .case-inner .home-work__card-brand img[src*="/client-logos/"] { width: 160px; height: 64px; }
}

/* Centre short service selections and give balanced SVG canvases real layout space. */
body .seo-fig__hero-logos { display: flex; justify-content: center; align-items: center; gap: clamp(16px, 2vw, 28px); }
body .seo-fig__hero-logos li { flex: 1 1 0; max-width: 190px; height: 76px; display: flex; align-items: center; justify-content: center; }
@media (max-width: 760px) {
  body .seo-fig__hero-logos { flex-wrap: wrap; gap: 0 16px; }
  body .seo-fig__hero-logos li { flex: 0 1 calc((100% - 32px) / 3); height: 60px; }
  body .seo-fig__hero-logos li:nth-child(n + 7) { display: flex; }
}

/* Align card artwork with its text; white SVG canvases also start at the left edge. */
body .work-fig__card-brand, body .home-work__card-brand { justify-content: flex-start; text-align: left; }
body .work-fig__card-brand img, body .home-work__card-brand img { object-position: left center; }

/* Five desktop columns with large, contained client artwork. */
body .global-industries__logos { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 24px); align-items: stretch; width: 100%; }
body .global-industries__logo-card { display: flex; width: 100%; min-height: 0; align-items: center; justify-content: center; border-radius: 10px; background: #fff; overflow: hidden; height: clamp(130px, 12vw, 180px); padding: 20px; }
body .global-industries__logo-card img { display: block; object-fit: contain; filter: brightness(0); width: 220px; height: 78px; max-width: 78%; max-height: 78px; }
body .global-industries__logo-card img[src*="/client-logos/"] { filter: none; width: 100%; height: auto; max-width: 290px; max-height: 116px; }
@media (max-width: 900px) {
  body .global-industries__logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  body .global-industries__logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .global-industries__logo-card { height: 110px; padding: 10px; }
  body .global-industries__logo-card img { max-width: 85%; max-height: 52px; }
  body .global-industries__logo-card img[src*="/client-logos/"] { max-width: 100%; max-height: 80px; }
  body .global-industries__logo-card:last-child:nth-child(odd) { grid-column: 1 / -1; width: calc((100% - 12px) / 2); justify-self: center; }
}

/* Native card links preserve the card treatment and browser link behaviour. */
a.work-fig__supporting-card, a.ws-card { color: inherit; text-decoration: none; }
a.work-fig__supporting-card:focus-visible, a.ws-card:focus-visible { outline: 3px solid #315eff; outline-offset: 3px; }
.work-strip-controls { display: flex; justify-content: flex-end; padding: 8px clamp(16px, 4vw, 64px) 0; }
.work-strip-pause { font: inherit; font-size: .875rem; color: #05060f; background: transparent; border: 1px solid #909198; border-radius: 999px; padding: 6px 12px; cursor: pointer; }
.work-strip-pause:focus-visible { outline: 3px solid #315eff; outline-offset: 3px; }
.work-strip-pause[hidden] { display: none; }

/* Unpublished projects retain their place without implying a working link. */
.work-fig__availability {
  position: absolute; top: 28px; right: 28px; z-index: 6;
  display: inline-flex; align-items: center; margin: 0; padding: 7px 12px;
  color: #fff; background: rgba(5, 6, 15, .64);
  border: 1px solid rgba(255, 255, 255, .24); border-radius: 999px;
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  font-size: .75rem; font-weight: 500; line-height: 1.25; white-space: nowrap;
  pointer-events: none;
}
@media (max-width: 700px) {
  .work-fig__availability { top: 20px; right: 20px; padding: 6px 10px; font-size: .6875rem; }
}
.case-card.is-preview-only:hover { transform: none; }
.case-card.is-preview-only:hover .case-inner :is(img, video) { transform: none; }

/* A video loading poster keeps the same hover treatment as its player. */
.ws-card:hover .portfolio-video-poster { transform: none; }

/* Mobile service heroes: compact introduction and a separate rating/CTA group. */
@media (max-width: 760px) {
  .seo-fig__hero:has(#seo-title) .fig-breadcrumb { margin-bottom: 12px; }
  .seo-fig__hero #seo-title + p { margin-top: 12px; }
  .seo-fig__hero:has(#seo-title) .seo-fig__hero-actions {
    margin-top: 28px;
    gap: 10px;
  }
  .seo-fig__hero:has(#seo-title) .seo-fig__hero-rating { margin: 0; }
}

/* Avoid stacking desktop row gaps on top of mobile copy padding. */
@media (max-width: 700px) {
  .seo-fig__foundation-stack { gap: 0; }
  .seo-fig__foundation .seo-fig__split-grid > div,
  .seo-fig__search .seo-fig__split-grid > div {
    padding-top: 24px;
    padding-bottom: 24px;
  }
}

/* Reuse the homepage testimonial design without a fixed-height carousel. */
.project-review.testi { color: #f9f9f5; }
.project-review .testi-shell { position: relative; z-index: 1; }
.project-review blockquote { max-width: 980px; }
.project-review blockquote p.t-quote { color: rgba(249,249,244,.96); }
.project-review blockquote p.t-quote:not(:last-child) { margin-bottom: 1em; }
.project-review .t-cite > span { display: block; margin-top: 6px; }
.project-review figcaption a { color: #8da1ff; text-underline-offset: 4px; font-size: 16px; }
.project-review a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

/* No empty button allowance when a case study has no external website. */
.case-study-hero.case-study-hero--no-website { min-height: 0; }
.case-study-hero--no-website .case-study-hero__inner > p:last-child { margin-bottom: 0; }

/* Separate reviews from the preceding service content and case-study results. */
.seo-fig > .c-home-testimonial,
.case-study-page > .project-review {
  margin-top: clamp(48px, 6vw, 96px);
}

/* Contrasting decorative panels in service copy sections. */
.seo-fig .service-body-panel {
  display: block;
  width: 100%;
  aspect-ratio: 670 / 560;
  border-radius: 4px;
  background: var(--fig-dark, #05060F);
}
.seo-fig .service-body-panel--light {
  background: var(--off-white, #F9F9F5);
}
@media (max-width: 700px) {
  .seo-fig .service-body-panel {
    height: 280px;
    min-height: 0;
    aspect-ratio: auto;
    border-radius: 0;
  }
  .seo-fig__split-grid > .service-body-panel {
    order: -1;
  }
}

/* Static brand artwork for service body panels. */
.seo-fig .service-body-panel {
  display: flex;
  align-items: center;
  justify-content: center;
}
.seo-fig .service-body-panel > .service-body-panel__logo {
  display: block;
  width: 42%;
  max-width: 280px;
  height: auto;
  min-height: 0;
  aspect-ratio: 122 / 37;
  object-fit: contain;
  border-radius: 0;
  margin: 0;
}

.case-study-wide-image .case-study-hero-video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1800 / 599;
  object-fit: cover;
}
@media (max-width: 900px) {
  .case-study-wide-image .case-study-hero-video { height: 360px; }
}

/* GB Hockey supplied showcase layout. */
.gb-showcase { margin-block: clamp(28px, 4vw, 72px); }
.gb-showcase img { display: block; width: 100%; height: auto; border-radius: 12px; }
.gb-showcase-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 90px); align-items: center; }
.gb-showcase-split h2 { font-size: clamp(1.6rem, 2.5vw, 2.5rem); line-height: 1.12; margin-bottom: 24px; }
.gb-showcase-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 700px) { .gb-showcase-split, .gb-showcase-grid { grid-template-columns: 1fr; } }

/* Let case-study introductions fit their content instead of reserving empty height. */
.case-study-page .case-study-hero { min-height: 0; padding-bottom: clamp(32px, 4vw, 56px); }

/* Centre the gallery while clipping one third of each outside card. */
.gb-showcase-bleed { width: 100%; overflow: hidden; }
.gb-showcase-bleed .gb-showcase-grid {
  --gb-gap: 24px;
  --gb-card: calc((100vw - 2 * var(--gb-gap)) * 3 / 7);
  width: calc(3 * var(--gb-card) + 2 * var(--gb-gap));
  max-width: none;
  margin-left: calc(-1 * var(--gb-card) / 3);
  margin-right: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gb-gap);
}

.supplied-case-showcase { margin-block: clamp(28px, 4vw, 72px); }
.supplied-case-showcase img { display: block; width: 100%; height: auto; border-radius: 12px; }
.supplied-case-showcase--grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: center; }
@media (max-width: 700px) { .supplied-case-showcase--grid { grid-template-columns: 1fr; } }

/* Supplied three-image rows share the GB Hockey edge clipping at every width. */
.gb-showcase-bleed .supplied-case-showcase--grid {
  padding-inline: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.supplied-case-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.supplied-case-copy h2 { font-size:clamp(1.6rem,2.5vw,2.5rem); line-height:1.12; margin-bottom:24px; }
.supplied-case-copy p { max-width:900px; }

/* Shared case-study content width; heroes and edge-clipped galleries retain their layouts. */
.case-study-page .case-study-wrap:not(.case-study-hero__inner):not(.gb-showcase-grid) {
  width: 81%;
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
  box-sizing: border-box;
}
.case-study-page .case-study-wide-image .case-study-wrap:not(.case-study-hero__inner):not(.gb-showcase-grid) {
  width: 100%;
}
.case-study-page .project-review > .testi-shell {
  width: 81%;
  max-width: none;
  margin-inline: auto;
  box-sizing: border-box;
}

/* Regatta artwork includes 156px blank gutters on either side of its 1800px export. */
.supplied-case-showcase img.regatta-showcase-trim {
  aspect-ratio: 1488 / 839;
  object-fit: cover;
  object-position: center;
}

/* Keep comparison layers aligned inside supplied showcase sections. */
.supplied-case-showcase .case-study-comparison { aspect-ratio: 1488 / 839; }
.supplied-case-showcase .case-study-comparison__image { height: 100%; border-radius: 0; transform: none; }

/* Short project summaries reveal without shifting the homepage carousel. */
.hero .ws-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(0deg, rgba(5, 6, 15, .86), rgba(5, 6, 15, .42) 65%, rgba(5, 6, 15, .06));
  opacity: 0;
  transition: opacity 350ms ease;
}
.hero .ws-card__summary {
  position: absolute;
  right: 24px;
  bottom: 64px;
  left: 20px;
  z-index: 2;
  max-width: 32ch;
  margin: 0;
  color: #fff;
  font-size: clamp(1.125rem, 1.65vw, 1.5rem);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -.015em;
  text-wrap: pretty;
  pointer-events: none;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 300ms ease, transform 350ms ease;
}
.hero .ws-chip { z-index: 3; }
.hero .ws-card:focus-visible::before,
.hero .ws-card:focus-visible .ws-card__summary { opacity: 1; }
.hero .ws-card:focus-visible .ws-card__summary { transform: translateY(0); }
@media (hover: hover) and (pointer: fine) {
  .hero .ws-card:hover::before,
  .hero .ws-card:hover .ws-card__summary { opacity: 1; }
  .hero .ws-card:hover .ws-card__summary { transform: translateY(0); }
}
.hero .work-strip.is-dragging .ws-card::before,
.hero .work-strip.is-dragging .ws-card__summary { opacity: 0; }
@media (max-width: 980px) {
  .hero .ws-card__summary {
    right: 14px;
    bottom: 16px;
    left: 14px;
    font-size: 1rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero .ws-card::before,
  .hero .ws-card__summary { transition: none; transform: none; }
  .hero .ws-card:is(:hover, :focus-visible) > img { transform: none; }
}

/* Soft media blur on linked portfolio cards; labels and device artwork stay crisp. */
@media (hover: hover) and (pointer: fine) {
  .work-fig__feature-card .work-fig__feature-bg,
  .work-fig__supporting-card .case-inner > .case-img,
  a.ws-card > :is(img, video) {
    transition: filter 450ms ease, scale 600ms cubic-bezier(.2,.7,.2,1);
  }
  .work-fig__feature-card:is(:hover, :focus-visible) .work-fig__feature-bg,
  .work-fig__supporting-card:is(:hover, :focus-visible) .case-inner > .case-img,
  a.ws-card:is(:hover, :focus-visible) > :is(img, video) {
    filter: blur(6px);
    scale: 1.025;
  }
}
@media (prefers-reduced-motion: reduce) {
  .work-fig__feature-card:is(:hover, :focus-visible) .work-fig__feature-bg,
  .work-fig__supporting-card:is(:hover, :focus-visible) .case-inner > .case-img,
  a.ws-card:is(:hover, :focus-visible) > :is(img, video) {
    transition: none;
    filter: none;
    scale: 1;
  }
}

.seo-fig__image-band .service-hero-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Tighter spacing below the service tools/platforms logo row. */
.seo-fig .seo-fig__search {
  padding-bottom: 64px;
}
.seo-fig .seo-fig__search .seo-fig__cred-logos {
  margin-bottom: 0;
}
@media (max-width: 700px) {
  .seo-fig .seo-fig__search { padding-bottom: 32px; }
  .seo-fig .seo-fig__search .seo-fig__cred-logos { padding-bottom: 0; }
}

.service-website-final-showcase { margin-bottom: 64px; }
.service-website-final-showcase .service-body-project-image {
  position: static; display: block; width: 100%; height: auto; border-radius: 12px;
}

/* Website mockups keep their complete artwork instead of filling a cropped panel. */
.seo-fig.service-websites-page .service-body-panel {
  height: auto; min-height: 0; aspect-ratio: auto; background: transparent;
  align-self: center;
}
.seo-fig.service-websites-page .service-body-project-image {
  position: static; display: block; width: 100%; height: auto;
  object-fit: contain; border-radius: 12px;
}
.service-websites-page .service-website-final-showcase { margin: 0; min-width: 0; }

.seo-fig.service-websites-page .service-body-panel {
  display: block; overflow: hidden; min-width: 0; padding: 0;
}
.seo-fig.service-websites-page .service-body-panel .service-body-project-image {
  max-width: 100%; min-width: 0; margin: 0;
}

/* Preserve complete artwork and extend its blurred edges to fill the original panels. */
.seo-fig .service-body-panel,
.seo-fig.service-websites-page .service-body-panel {
  display: block; position: relative; height: auto; min-height: 0;
  aspect-ratio: 670 / 560; overflow: hidden; border-radius: 12px; background: transparent;
}
.service-artwork { display: block; position: relative; width: 100%; height: 100%; isolation: isolate; overflow: hidden; }
.service-artwork::before {
  content: ''; position: absolute; inset: -24px; z-index: -1;
  background-image: var(--service-artwork); background-size: cover; background-position: center;
  filter: blur(22px);
}
.seo-fig .service-body-panel .service-artwork .service-body-project-image {
  position: relative; inset: auto; display: block; width: 100%; height: 100%;
  max-width: 100%; min-height: 0; margin: 0; object-fit: contain; border-radius: 0;
}

/* Feather the artwork into its extended background instead of exposing a hard join. */
.seo-fig .service-body-panel .service-artwork .service-body-project-image {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: auto;
  transform: translateY(-50%);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 9%, #000 91%, transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 9%, #000 91%, transparent);
}

/* Prepared service artwork already contains its intended background and spacing. */
.seo-fig .service-body-panel:has(.service-prepared-artwork) {
  display: block; height: auto; aspect-ratio: auto; background: transparent; min-height: 0;
}
.service-prepared-artwork { display: block; width: 100%; }
.seo-fig .service-body-panel .service-prepared-artwork .service-body-project-image {
  position: static; display: block; width: 100%; height: auto; margin: 0;
  transform: none; mask-image: none; -webkit-mask-image: none;
  object-fit: contain; border-radius: 12px;
}

/* Clip prepared service artwork to the same curved frame at every screen size. */
.seo-fig .service-body-panel:has(.service-prepared-artwork),
.seo-fig .service-prepared-artwork {
  border-radius: 24px;
  overflow: hidden;
}
.seo-fig .service-body-panel .service-prepared-artwork .service-body-project-image {
  border-radius: 24px;
}

/* Enforce the rounded outline on the artwork itself as well as its wrapper. */
.seo-fig .service-prepared-artwork,
.seo-fig .service-prepared-artwork .service-body-project-image {
  border-radius: 24px;
  clip-path: inset(0 round 24px);
}

/* Shared corner treatment for every service body image, prepared or extended. */
.seo-fig .service-body-panel,
.seo-fig.service-websites-page .service-body-panel,
.seo-fig .service-body-panel > .service-artwork,
.seo-fig .service-body-panel > .service-prepared-artwork {
  border-radius: 24px;
  overflow: hidden;
  clip-path: inset(0 round 24px);
}
.seo-fig .service-body-panel img.service-body-project-image {
  border-radius: 24px;
}

/* Reset inherited panel geometry so the rounded frame follows the visible image. */
.seo-fig .service-body-panel:has(.service-prepared-artwork),
.seo-fig .service-body-panel .service-prepared-artwork,
.seo-fig .service-body-panel .service-prepared-artwork img.service-body-project-image {
  aspect-ratio: auto !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0;
  border-radius: 24px;
  clip-path: inset(0 round 24px);
}

/* One consistent frame for service body artwork. */
.seo-fig .service-body-panel,
.seo-fig.service-websites-page .service-body-panel,
.seo-fig .service-body-panel:has(.service-prepared-artwork) {
  width: 100%; height: auto !important; min-height: 0 !important;
  aspect-ratio: 688 / 450 !important;
  border-radius: 24px; overflow: hidden; clip-path: inset(0 round 24px);
}
.seo-fig .service-body-panel .service-prepared-artwork {
  display: block; width: 100%; height: 100% !important;
  aspect-ratio: 688 / 450 !important;
}
.seo-fig .service-body-panel .service-prepared-artwork img.service-body-project-image {
  width: 100%; height: 100% !important; aspect-ratio: 688 / 450 !important;
  object-fit: cover; object-position: center; border-radius: 24px;
}
@media (min-width: 901px) {
  .seo-fig .seo-fig__seen-grid,
  .seo-fig .seo-fig__split-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 100px; }
}

/* Hide the uneven export edge on the ProGARM product showcase. */
.supplied-case-showcase img.progarm-showcase-top-trim { clip-path: inset(4px 0 0 round 12px); }

/* Clip the dark baked-in corner pixels at every rendered image size. */
.supplied-case-showcase img.elite-bridal-showcase-corners { border-radius: 2% / 3.55%; clip-path: inset(0 round 2% / 3.55%); }

/* Consistent corners for case-study showcase artwork. */
.supplied-case-showcase img,
.gb-showcase img,
.supplied-case-showcase img.elite-bridal-showcase-corners {
  border-radius: 18px;
  clip-path: inset(0 round 18px);
}
.supplied-case-showcase img.progarm-showcase-top-trim {
  clip-path: inset(4px 0 0 round 18px);
}

/* Service copy uses the blue dot from the Blink identity. */
.seo-fig__split-grid p.seo-fig__check-copy::before {
  content: "";
  width: 20px;
  height: 20px;
  top: .5lh;
  left: 0;
  border-radius: 50%;
  background: var(--blue, #315aff);
  transform: translateY(-50%);
}

.seo-fig__split-grid p.seo-fig__check-copy strong {
  color: #FF8A4C;
  text-decoration-color: #FF8A4C;
}

/* Position the dot using the copy's line box, not the former icon metrics. */
.seo-fig__split-grid p.seo-fig__check-copy::before {
  font-size: inherit;
  line-height: inherit;
  top: .5lh;
}

/* Black bullet badge with the Blink-blue dot at its centre. */
.seo-fig__split-grid p.seo-fig__check-copy::before {
  background: radial-gradient(circle at center, var(--blue, #315aff) 0 4px, #05060f 4px);
}

/* Blink-blue geometric check in the black service bullet badge. */
.seo-fig__split-grid p.seo-fig__check-copy::before {
  background: #05060f;
}
.seo-fig__split-grid p.seo-fig__check-copy::after {
  content: "";
  position: absolute;
  left: 6px;
  top: .5lh;
  width: 5px;
  height: 9px;
  box-sizing: border-box;
  border: solid var(--blue, #315aff);
  border-width: 0 2px 2px 0;
  transform: translateY(-60%) rotate(45deg);
  pointer-events: none;
}

.seo-fig__split-grid p.seo-fig__check-copy::after {
  border-color: #fff;
}

@media (max-width: 700px) {
  .t-quote,
  .c-home-testimonial .t-quote,
  .case-study-testimonial .t-quote {
    font-size: 1.6rem;
    line-height: 1.4em !important;
  }
}

/* Match the homepage's 14px phone gutter after desktop layout overrides. */
@media (max-width: 767px) {
  .seo-fig .fig-wrap.seo-fig__hero-inner {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: var(--mobile-page-gutter, 14px);
    box-sizing: border-box;
  }
  .case-study-page .case-study-wrap:not(.case-study-hero__inner):not(.gb-showcase-grid) {
    width: calc(100% - 28px);
    max-width: none;
    margin-inline: auto;
    padding-inline: 0;
  }
  .case-study-page .case-study-wide-image .case-study-wrap:not(.case-study-hero__inner):not(.gb-showcase-grid),
  .case-study-page .case-study-gallery-row .case-study-wrap:not(.gb-showcase-grid),
  .case-study-page .case-study-figma-visual .case-study-wrap:not(.gb-showcase-grid) {
    width: 100%;
    padding-inline: 0;
  }
  .case-study-page .project-review > .testi-shell {
    width: calc(100% - 28px);
    padding-inline: 0;
  }
}

.case-gallery-clone { display: none !important; }
@media (max-width: 767px) {
  .gb-showcase-bleed .gb-showcase-grid.case-gallery-loop {
    --gb-card: calc((100vw - 48px) * 6 / 7);
    display: flex;
    width: max-content;
    margin-left: 0;
    gap: 24px;
    animation: case-gallery-drift 30s linear infinite;
  }
  .gb-showcase-bleed .case-gallery-loop > * {
    flex: 0 0 var(--gb-card);
    width: var(--gb-card);
    max-width: none;
  }
  .gb-showcase-bleed .case-gallery-loop > .case-gallery-clone { display: block !important; }
  @keyframes case-gallery-drift {
    from { transform: translateX(0); }
    to { transform: translateX(calc(-3 * (var(--gb-card) + 24px))); }
  }
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .gb-showcase-bleed:has(.case-gallery-loop) { overflow-x: auto; }
  .gb-showcase-bleed .gb-showcase-grid.case-gallery-loop { animation: none; }
  .gb-showcase-bleed .case-gallery-loop > .case-gallery-clone { display: none !important; }
}

@media (max-width: 767px) {
  .case-study-page > section:last-child {
    padding-bottom: 0;
  }
}

@media (max-width: 767px) {
  .testi,
  .case-study-testimonial .testi {
    padding-inline: 14px;
  }
  .testi .testi-shell,
  .case-study-page .project-review > .testi-shell {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
    box-sizing: border-box;
  }
}

@media (max-width: 767px) {
  .case-study-intro {
    padding: 40px 0 0;
  }
}

@media (max-width: 767px) {
  .case-study-hero .fig-nav-spacer {
    flex-basis: 88px;
    height: 88px;
  }
}

@media (max-width: 767px) {
  .seo-fig .fig-nav-spacer {
    height: 56px;
  }
  .seo-fig__hero .seo-fig__hero-inner {
    padding-top: calc(44px * 2 / 3);
  }
}

@media (max-width: 767px) {
  .seo-fig__hero {
    min-height: auto;
    padding-bottom: 30px;
  }
  .seo-fig__hero .seo-fig__hero-logos {
    margin-top: 40px;
  }
}

@media (max-width: 767px) {
  .seo-fig__projects .fig-section-head {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 14px;
    box-sizing: border-box;
  }
}

@media (max-width: 767px) {
  .seo-fig__project-stack > .work-fig__feature-card {
    height: auto;
    min-height: 0;
    aspect-ratio: 1;
  }
}

@media (max-width: 767px) {
  .seo-fig .service-body-panel,
  .seo-fig.service-websites-page .service-body-panel,
  .seo-fig .service-body-panel:has(.service-prepared-artwork) {
    width: calc(100% - 28px);
    margin-inline: auto;
    padding-inline: 0;
    box-sizing: border-box;
  }
}

@media (max-width: 767px) {
  .seo-fig__seen {
    padding-bottom: 32px;
  }
  .seo-fig__services--rounded,
  .seo-fig__seen + .seo-fig__services--rounded {
    margin-top: 0;
  }
}

@media (max-width: 767px) {
  #main-content > .seo-fig__foundation > .seo-fig__foundation-stack > .seo-fig__split-grid:first-child > .service-body-panel {
    margin-top: 32px;
  }
}

@media (max-width: 767px) {
  .contact-fig__hero { padding-top: 88px; padding-bottom: 8px; }
  .contact-fig__routes a { justify-content: flex-start; gap: 16px; text-align: left; }
  .contact-fig__routes strong { text-align: left; }
  .contact-fig__visit { padding: 0 14px; }
  .contact-fig__office-image { clip-path: inset(0 round 18px); border-radius: 18px; }
  .contact-fig .contact-fig__review-proof { display: block; }
  .contact-fig__review-proof .contact-fig__section-inner { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
  .contact-fig .contact-fig__review-rating { display: flex !important; flex-wrap: wrap; white-space: normal; width: 100%; }
  .contact-fig__review-rating .rating-tail { display: block; white-space: normal; }
  .contact-fig__review-button { max-width: 100%; white-space: normal; }
}

@media (max-width: 767px) {
  #nav .nav-menu-toggle {
    border: 1px solid rgba(255, 255, 255, .4);
  }
}

@media (max-width: 767px) {
  .contact-fig .contact-fig__form {
    width: calc(100% + 28px);
    max-width: none;
    margin-inline: -14px;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    padding-inline: 14px;
    box-sizing: border-box;
  }
}

@media (max-width: 767px) {
  .contact-fig .contact-fig__review-proof,
  .contact-fig__review-proof .contact-fig__section-inner {
    padding-inline: 0;
  }
}

.mnav .mnav__conversation {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  margin-top: 24px;
  padding: 14px 20px;
  border: 0;
  border-radius: 999px;
  background: var(--blue, #315aff);
  color: #fff;
  font-size: 1rem;
  line-height: 1.4;
  box-sizing: border-box;
}

@media (max-width: 767px) {
  #site-footer.site-footer {
    padding-inline: 14px;
  }
  #site-footer .footer-inner {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 0;
    box-sizing: border-box;
  }
  #site-footer .footer-brand {
    padding-inline: 0;
  }
}

@media (max-width: 767px) {
  .about-fig .about-fig__hero .fig-nav-spacer {
    height: 56px;
  }
  .about-fig .about-fig__hero-inner {
    padding-top: calc(44px * 2 / 3);
  }
}

.mnav .mnav__conversation {
  margin-top: auto;
  margin-bottom: 20px;
}
.mnav .mnav__conversation + .mnav__divider {
  margin-top: 0;
}

#navMobile:focus { outline: none; }

/* Centre the complete label/value/caption group within every stats card. */
.about-fig__stats article,
.case-study-stats article {
  justify-content: center;
  padding-top: 32px;
  padding-bottom: 32px;
}
.about-fig__stats article > :first-child,
.case-study-stats article > :first-child { margin-top: 0; }
.about-fig__stats article > :last-child,
.case-study-stats article > :last-child { margin-bottom: 0; }

.case-study-page img.case-image-ease {
  opacity: 0;
  transition: opacity .65s ease-out;
}
.case-study-page img.case-image-ease.case-image-ready { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .case-study-page img.case-image-ease { opacity: 1; transition: none; }
}

.mnav__service-link {
  color: rgba(255, 255, 255, .9);
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: none;
}
.mnav__services-group-title {
  color: rgba(255, 255, 255, .48);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

/* Contact routes: aligned icons, readable details and the full studio address. */
.contact-fig__routes a {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  justify-content: start;
  gap: 18px;
  width: 100%;
  text-align: left;
  color: #fff;
}
.contact-fig__routes a strong {
  color: #fff;
  text-align: left;
  line-height: 1.3;
  font-weight: 400;
}
.contact-fig__routes .contact-fig__route-icon {
  margin: 0;
  align-self: center;
  width: 44px;
  height: 44px;
  box-sizing: border-box;
}

.contact-fig__visit { padding-top: 0; }
.contact-fig__visit-details > .btn-blue { justify-self: start; }

.contact-fig__office-image {
  border-radius: 18px;
  clip-path: inset(0 round 18px);
  overflow: hidden;
}

.contact-fig__routes a[href="#visit-blink"] .contact-fig__route-icon {
  align-self: start;
}

.contact-fig .contact-fig__review-button:is(:hover, :focus-visible),
.contact-fig .contact-fig__visit-details > .btn-blue:is(:hover, :focus-visible) {
  background: #fff;
  border-color: #fff;
  color: #05060f;
}

@media (max-width: 767px) {
  .contact-fig__visit-grid > .contact-fig__office-image {
    order: -1;
  }
}

@media (max-width: 767px) {
  .contact-fig__visit {
    padding-bottom: 40px;
  }
}

/* Mobile work cards: larger, consistent logo canvases across all card layouts. */
@media (max-width: 767px) {
  body .work-fig__card-brand,
  body .work-fig__supporting-card .work-fig__card-brand,
  body .c-home-works .home-work__card-brand {
    width: 200px;
    max-width: calc(100% - 56px);
    height: 80px;
    align-items: center;
  }
  body .work-fig__card-brand img,
  body .work-fig__card-brand img[src*="/client-logos/"],
  body .c-home-works .case-inner .home-work__card-brand img,
  body .c-home-works .case-inner .home-work__card-brand img[src*="/client-logos/"] {
    display: block;
    width: 200px;
    height: 80px;
    max-width: 100%;
    max-height: none;
    margin-top: 0;
    object-fit: contain;
    object-position: left center;
  }
}
@media (max-width: 767px) {
  /* Legacy compact marks have no shared SVG canvas: scale their 42px height by 25%. */
  body .work-fig .work-fig__card-brand img:not([src*="/client-logos/"]),
  body .work-fig__feature-card .work-fig__card-brand img:not([src*="/client-logos/"]),
  body .work-fig__supporting-card .work-fig__card-brand img:not([src*="/client-logos/"]) {
    width: auto;
    height: 52.5px;
    max-height: 52.5px;
    max-width: 200px;
  }
}

/* Service artwork follows its source ratio, without synthetic edge bands.
   Include the prepared image selector so the old fixed ratio cannot letterbox
   the artwork inside its rounded clipping frame. */
  body .seo-fig .service-body-panel,
  body .seo-fig.service-websites-page .service-body-panel,
  body .seo-fig .service-body-panel:has(.service-prepared-artwork),
  body .seo-fig .service-body-panel > .service-artwork,
  body .seo-fig .service-body-panel > .service-prepared-artwork,
  body .seo-fig .service-body-panel .service-body-project-image,
  body .seo-fig .service-body-panel .service-prepared-artwork img.service-body-project-image {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
  }
  body .seo-fig .service-body-panel .service-artwork::before { content: none; }
  body .seo-fig .service-body-panel .service-artwork .service-body-project-image,
  body .seo-fig .service-body-panel .service-prepared-artwork .service-body-project-image {
    position: static;
    display: block;
    width: 100%;
    margin: 0;
    transform: none;
    object-fit: contain;
    -webkit-mask-image: none;
    mask-image: none;
  }


/* Crop the thin white export edges from the SEO site-plan artwork. */
body .seo-fig .seo-fig__seen-media .service-prepared-artwork img.service-body-project-image:is(
  [src*="/seo-04-"],
  [src$="/seo-04.webp"]
) {
  object-fit: cover;
  transform: scale(1.02);
}

/* The Jones Supply ecommerce export includes narrow white top/bottom borders. */
body .seo-fig .service-body-panel .service-prepared-artwork img.service-body-project-image:is(
  [src*="/ecommerce-03-"],
  [src$="/ecommerce-03.webp"]
) {
  transform: scale(1.04);
}

/* Separate consecutive paragraphs in case-study editorial sections. */
.case-study-page .gb-showcase-split > div > p + p {
  margin-top: 1em;
}

/* Keep the editorial break only when both parts fit on one line each. */
#case-study-title > span { display: inline; }
#case-study-title.case-study-title--two-lines > span { display: block; }

/* A temporary, hidden copy measures both lines without changing the live layout. */
.case-study-hero h1.case-study-title-measure {
  position: fixed;
  inset: 0 auto auto 0;
  width: max-content;
  max-width: none;
  margin: 0;
  visibility: hidden;
  pointer-events: none;
  white-space: nowrap;
}
.case-study-hero h1.case-study-title-measure > span { display: block; }

/* Wrap whole pills onto a new row, never the text inside them. */
.case-study-tags > :is(span, a),
.case-tags > :is(span, a),
.work-fig__feature-tags > span,
.cap-pills > .cp {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Let the sector label set its width instead of squeezing it into a fixed column. */
.case-study-meta-groups {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}
.case-study-meta-groups > div:first-child { flex: 0 0 auto; }
.case-study-meta-groups > div:last-child {
  flex: 1 1 180px;
  min-width: 0;
}
@media (max-width: 900px) {
  .case-study-meta-groups { flex-direction: column; align-items: stretch; }
  .case-study-meta-groups > div:last-child { flex: 0 1 auto; }
}

/* Keep multi-paragraph case-study copy readable in full-width sections too. */
.case-study-page .supplied-case-copy > div > p + p { margin-top: 1em; }

/* Peter Ward approach uses the full content column. */
.case-study-page .supplied-case-copy--full p { max-width: none; }

/* Desktop case-study card logos: 20% larger without changing mobile sizing. */
@media (min-width: 901px) {
  body .work-fig__card-brand img,
  body .work-fig__card-brand > span,
  body .c-home-works .home-work__card-brand img,
  body .c-home-works .home-work__card-brand > span {
    scale: 1.2;
    transform-origin: left center;
  }
}

/* Align desktop case-study content with the hero copy. */
@media (min-width: 901px) {
  .case-study-page .case-study-wrap:not(.case-study-hero__inner):not(.gb-showcase-grid),
  .case-study-page .project-review > .testi-shell {
    width: min(1320px, calc(100% - 96px));
    max-width: 1320px;
    margin-inline: auto;
    padding-inline: 0;
  }
  .case-study-page .case-study-wide-image .case-study-wrap:not(.case-study-hero__inner):not(.gb-showcase-grid),
  .case-study-page .case-study-gallery-row .case-study-wrap {
    width: 100%;
    max-width: none;
  }
}

/* Case-study audit invitation. */
.case-study-page > section.case-audit {
  padding: 100px 0; margin-top: 64px; color: #fff; text-align: center;
  background: radial-gradient(ellipse at 18% 48%, rgba(143,64,154,.75), transparent 55%), radial-gradient(ellipse at 56% 40%, rgba(70,140,191,.8), transparent 58%), radial-gradient(ellipse at 92% 42%, rgba(19,139,111,.65), transparent 52%), #05060f;
}
.case-audit h2 { color:#fff; font-size:clamp(2rem,3.5vw,3.5rem); line-height:1.2; margin:0 0 24px; }
.case-audit h2 + p { max-width:640px; margin:0 auto 38px; color:rgba(255,255,255,.8); line-height:1.7; }
.case-audit__form { display:flex; gap:8px; max-width:800px; margin:auto; padding:8px; background:#faf8f3; border-radius:10px; }
.case-audit__form input { flex:1; min-width:0; border:0; background:transparent; padding:16px 24px; color:#05060f; font:inherit; }
.case-audit__form button { border:0; border-bottom:3px solid #2f53ff; border-radius:5px; background:#10111c; color:#fff; padding:20px 28px; font:inherit; font-weight:700; cursor:pointer; }
.case-audit__form button span { margin-left:16px; }
.case-audit__form button:hover { background:#fff; color:#05060f; }
.case-audit__form :focus-visible { outline:3px solid #2f53ff; outline-offset:3px; }
.case-audit .case-audit__next { margin:16px 0 0; font-size:.875rem; color:rgba(255,255,255,.7); }
.case-audit__benefits { display:flex; justify-content:center; gap:28px; flex-wrap:wrap; list-style:none; padding:0; margin:24px 0 0; color:rgba(255,255,255,.75); }
.case-audit__benefits li::before { content:'✓'; color:#3bd6a3; margin-right:8px; }
@media(max-width:767px) {
 .case-study-page > section.case-audit { padding:60px 0; margin-top:32px; }
 .case-audit__form { flex-direction:column; }
 .case-audit__form input { padding:16px 12px; }
 .case-audit__form button { width:100%; }
 .case-audit__benefits { gap:12px 20px; font-size:.875rem; }
}

/* Bring the case-study invitation into Blink's shared visual language. */
.case-study-page > section.case-audit {
  background: radial-gradient(ellipse at 50% 0%, rgba(47,83,255,.18), transparent 65%), #05060f;
  padding: clamp(64px,7vw,112px) 0;
  border-top: 1px solid rgba(255,255,255,.12);
  border-bottom: 1px solid rgba(255,255,255,.4);
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
/* Mirror the industries glow at the shared edge, including its texture. */
.case-study-page > section.case-audit::before,
.case-study-page > section.case-audit::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: auto;
  bottom: 0;
  width: 100%;
  height: 319px;
  pointer-events: none;
}
.case-study-page > section.case-audit::before {
  left: 50%;
  min-width: 1798px;
  background: url("media/top-glow.svg?v=2") top center / 100% auto no-repeat;
  transform: translateX(-50%) scaleY(-1);
}
.case-study-page > section.case-audit::after {
  left: 0;
  background: url("media/static-noise.png") top center / 240px 240px repeat;
  opacity: .34;
  mix-blend-mode: screen;
  transform: scaleY(-1);
}
.case-study-page > section.case-audit > .case-study-wrap {
  position: relative;
  z-index: 1;
}
@media (max-width: 900px) {
  .case-study-page > section.case-audit::before {
    height: 260px;
    min-width: 900px;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 64%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 64%, transparent 100%);
  }
}
.case-audit h2 { font-size:clamp(2.5rem,3.7vw,3.875rem); font-weight:400; line-height:1.1; letter-spacing:0; }
.case-audit h2 strong { font-weight:700; }
.case-audit h2 + p { font-size:1.125rem; line-height:1.6; color:rgba(255,255,255,.72); }
.case-audit__form { max-width:760px; padding:0; gap:14px; background:transparent; border-radius:0; align-items:stretch; }
.case-audit__form input { border:1px solid rgba(255,255,255,.3); border-radius:100px; color:#fff; background:rgba(255,255,255,.04); padding:17px 24px; }
.case-audit__form input::placeholder { color:rgba(255,255,255,.5); opacity:1; }
.case-audit__form button.btn-blue { display:inline-flex; align-items:center; justify-content:center; align-self:stretch; padding:17px 28px; border:0; border-radius:100px; background:var(--blue); color:#fff; font-size:1rem; font-weight:400; white-space:nowrap; }
.case-audit__form button.btn-blue:hover,
.case-audit__form button.btn-blue:focus-visible { background:#fff; color:#05060f; }
.case-audit__benefits { color:rgba(255,255,255,.7); font-size:.9375rem; }
.case-audit__benefits li::before { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; background:var(--blue); color:#fff; font-size:12px; }
@media(max-width:767px) {
 .case-audit__form { gap:12px; }
 .case-audit h2 { font-size:2.25rem; }
 .case-audit h2 + p { font-size:1rem; }
}

.search-platforms-title { margin:64px 14px 32px; text-align:center; font-size:.85rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#777777; }
.search-platforms { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:center; gap:24px; max-width:1320px; margin:0 auto; padding:0 24px; list-style:none; }
.search-platforms li { display:flex; align-items:center; justify-content:center; gap:14px; min-width:0; color:#4b4850; font-size:clamp(1rem,1.6vw,1.5rem); font-weight:600; }
.search-platforms img { display:block; width:48px; height:48px; flex:0 0 48px; object-fit:contain; }
@media(max-width:1000px) { .search-platforms { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; } }
@media(max-width:600px) {
 .search-platforms-title { margin-top:40px; font-size:.75rem; }
 .search-platforms { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 14px; gap:28px 20px; }
 .search-platforms li { justify-content:flex-start; font-size:1.1rem; gap:12px; }
 .search-platforms img { width:36px; height:36px; flex-basis:36px; }
}

/* Search platform row in Blink's monochrome palette and type. */
.search-platforms-title {
  color:var(--dark, #05060f);
  font-family:inherit;
  font-size:1rem;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
}
.search-platforms li {
  color:var(--dark, #05060f);
  font-family:inherit;
  font-weight:500;
  letter-spacing:0;
}
.search-platforms img { filter:none; }

/* Give the platform strip breathing room below the service content. */
.seo-fig .seo-fig__search .search-platforms-title {
  margin:112px 14px 48px;
}
@media (max-width:767px) {
  .seo-fig .seo-fig__search .search-platforms-title {
    margin:64px 14px 32px;
  }
}

/* Consistent platform strips across the other service pages. */
.seo-fig .seo-fig__search .seo-fig__cred-logos {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  width:100%;
  max-width:1320px;
  margin:0 auto;
  padding:0 24px;
  gap:24px;
  overflow:visible;
}
.seo-fig .seo-fig__search .seo-fig__cred-logos img {
  width:180px;
  height:64px;
  max-width:100%;
  max-height:none;
  object-fit:contain;
  filter:brightness(0) saturate(100%) invert(2%) sepia(13%) saturate(4200%) hue-rotate(205deg);
  opacity:1;
}
@media(max-width:767px) {
  .seo-fig .seo-fig__search .seo-fig__cred-logos {
    grid-template-columns:repeat(2,minmax(0,1fr));
    padding:0 14px;
    gap:28px 20px;
  }
  .seo-fig .seo-fig__search .seo-fig__cred-logos img {
    width:150px;
    height:54px;
  }
}

/* A consistent directional cue for linked case study cards. */
.case-card-arrow {
  position:absolute;
  right:44px;
  bottom:44px;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:50%;
  background:rgba(5,6,15,.35);
  color:#fff;
  pointer-events:none;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
a:is(.work-fig__feature-card,.work-fig__supporting-card) :is(.work-fig__feature-tags,.case-tags) { padding-right:60px; min-height:44px; }
/* Keep service pills compact instead of stretching to the card arrow's height. */
:is(.work-fig__feature-card, .work-fig__supporting-card) :is(.work-fig__feature-tags, .case-tags) {
  align-items: center;
}
.work-fig__supporting-card .case-tags > .cto {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border-radius: 999px;
  line-height: 1.2;
}

a:is(.work-fig__feature-card,.work-fig__supporting-card):is(:hover,:focus-visible) .case-card-arrow { background:#fff; color:#05060f; border-color:#fff; }
@media(max-width:767px) {
  .case-card-arrow { right:24px; bottom:24px; }
}

/* Preferred Sources stays compact in the Insights introduction. */
.insights-hero .single-insight__preferred-source { max-width:440px; margin:28px 0; text-align:left; }
@media(prefers-reduced-motion:reduce) {
  .single-insight__preferred-source,
  .single-insight__preferred-source-arrow { transition:none; }
  .single-insight__preferred-source:hover,
  .single-insight__preferred-source:hover .single-insight__preferred-source-arrow { transform:none; }
}

/* Compact Preferred Sources button beneath the article date. */
.single-insight__preferred-source {
  display:inline-grid;
  width:fit-content;
  max-width:100%;
}
.single-insight__article > .single-insight__preferred-source {
  margin:0 0 28px;
}

.wwd-copy a { color:inherit; text-decoration:none; }
.wwd-copy a:hover { color:var(--blue, #2454ff); }
.wwd-copy a:focus-visible { outline:2px solid var(--blue, #2454ff); outline-offset:4px; }

@media (min-width:901px) {
  #services-title.seo-services-title-desktop-break > span { display:block; }
}

/* Shared service bullet: a centred white SVG tick in a 20px black badge. */
.seo-fig__service-grid li::before,
.seo-fig__split-grid p.seo-fig__check-copy::before {
  content: "";
  width: 20px;
  height: 20px;
  top: .5lh;
  left: 0;
  font-size: inherit;
  line-height: inherit;
  border-radius: 50%;
  transform: translateY(-50%);
  background: #05060f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10l3 3 5-6' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px 20px no-repeat;
}
.seo-fig__split-grid p.seo-fig__check-copy::after { content:none; }

/* Linked service labels retain their established orange treatment. */
.seo-fig__split-grid p.seo-fig__check-copy strong a { color:inherit; text-decoration:underline; transition:color 160ms ease; }
.seo-fig__split-grid p.seo-fig__check-copy strong a:hover { color:#e9783d; }
.seo-fig__split-grid p.seo-fig__check-copy strong a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }

/* White breadcrumbs on individual blog pages. */
body .single-insight__hero .single-insight__breadcrumb,
body .single-insight__hero .single-insight__breadcrumb :is(a, span, strong) {
  color: #fff !important;
  opacity: 1;
}

body .single-insight__hero .single-insight__breadcrumb a:hover,
body .single-insight__hero .single-insight__breadcrumb a:focus-visible {
  color: var(--blue) !important;
}

/* Contextual links sit within the existing service and case-study copy. */
.seo-fig__seen p a, .seo-fig__split-grid p a,
.case-study-intro p a, .supplied-case-copy p a, .gb-showcase-split p a {
 color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.18em;
 transition:text-decoration-color .16s ease;
}
.seo-fig__seen p a:hover, .seo-fig__split-grid p a:hover,
.case-study-intro p a:hover, .supplied-case-copy p a:hover, .gb-showcase-split p a:hover { text-decoration-color:#FF8A4C; }

/* Process introductions match the paragraphs in the service columns. */
.seo-fig__services .seo-fig__services-head p {
  font-size: 1.125rem;
  line-height: 1.4;
}
@media (max-width: 700px) {
  .seo-fig__services .seo-fig__services-head p { line-height: 1.5; }
}

/* FAQ answers match the surrounding paragraph typography. */
.seo-fig__faq-list details p {
  font-size: 1.125rem;
  line-height: 1.4;
}

/* FAQ links use the surrounding text colour with a simple underline. */
.seo-fig__faq-list details p a,
.seo-fig__faq-list details p a:visited {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
  text-decoration-color: currentColor;
  transition: opacity .16s ease;
}
.seo-fig__faq-list details p a:hover {
  color: inherit;
  opacity: .72;
}
.seo-fig__faq-list details p a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}

/* Linked logos retain their layout, with restrained interaction and keyboard focus. */
:is(.seo-fig__hero-logos, .seo-fig__cred-logos) > li > .logo-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-width: 0;
}
.about-accreditations > li > .logo-link { display: inline-flex; align-items: center; justify-content: center; }
.search-platforms .logo-link {
  display: flex;
  align-items: center;
  justify-content: inherit;
  gap: inherit;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
a.logo-link { transition: opacity .18s ease; }
a.logo-link img { transition: transform .18s ease; }
a.logo-link:focus-visible { outline: 2px solid var(--blue); outline-offset: 6px; border-radius: 4px; }
body a.global-industries__logo-card { transition: transform .18s ease, box-shadow .18s ease; }
@media (hover: hover) and (pointer: fine) {
  a.logo-link:not(.global-industries__logo-card):hover { opacity: .82; }
  a.logo-link:hover img { transform: translateY(-2px) scale(1.025); }
  body a.global-industries__logo-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .14);
  }
}
@media (prefers-reduced-motion: reduce) {
  a.logo-link, a.logo-link img, body a.global-industries__logo-card { transition: none; }
  a.logo-link:hover img, body a.global-industries__logo-card:hover { transform: none; }
}

/* Give the alternating service sections 50% more breathing room. */
@media (min-width: 701px) {
  .seo-fig__foundation-stack { row-gap: 90px; }
}

/* These assets are already monochrome; retain their white internal artwork. */
.seo-fig .seo-fig__search .seo-fig__cred-logos img:is(
  [src*="acf.svg"],
  [src*="shopify.svg"],
  [src*="adobe-illustrator.svg"],
  [src*="adobe-photoshop.svg"],
  [src*="adobe-indesign.svg"],
  [src*="adobe-after-effects.svg"]
) {
  filter: none;
}

/* Homepage section title links to the full portfolio. */
.c-home-works .works-title a { color:inherit; text-decoration:none; transition:color .16s ease; }
.c-home-works .works-title a:hover { color:var(--blue, #1F4FFF); }
.c-home-works .works-title a:focus-visible { outline:2px solid var(--blue, #1F4FFF); outline-offset:6px; }

/* Footer links: a quiet underline fade without changing the layout. */
.site-footer :is(.flinks, .footer-contact, .flegal) a {
  text-decoration-line: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
  transition: opacity .18s ease, text-decoration-color .18s ease;
}
.site-footer :is(.flinks, .footer-contact, .flegal) a:is(:hover, :focus-visible) {
  opacity: .8;
  text-decoration-color: currentColor;
}
.site-footer .footer-logo {
  transition: opacity .18s ease;
}
.site-footer .fsocial a {
  transition: opacity .18s ease, border-color .18s ease, transform .18s ease;
}
.site-footer :is(.footer-logo, .fsocial a):is(:hover, :focus-visible) {
  opacity: .8;
}
.site-footer :is(.flinks a, .footer-contact a, .flegal a, .footer-logo, .fsocial a):focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
  .site-footer :is(.flinks a, .footer-contact a, .flegal a, .footer-logo, .fsocial a) {
    transition: none;
  }
  .site-footer .fsocial a:is(:hover, :focus-visible) {
    transform: none;
  }
}


/* Services overview: balanced hero, a centred CTA and readable service groups. */
.services-overview { background: var(--fig-dark, #05060f); }
.services-overview .services-overview__hero { grid-template-rows: auto auto auto; }
.services-overview .services-overview__hero .about-fig__hero-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 1040px;
  padding-block: clamp(32px, 4vw, 56px) clamp(48px, 5vw, 72px);
}
.services-overview .services-overview__hero .fig-breadcrumb { margin: 0 0 24px; }
.services-overview .services-overview__hero h1 {
  max-width: 980px;
  font-size: clamp(2rem, 4.6vw, 4.625rem);
  line-height: 1.1;
  text-wrap: balance;
}
.services-overview .services-overview__hero p.services-overview__intro {
  max-width: 760px;
  margin: 24px auto 0;
  font-size: clamp(1.125rem, 1.5vw, 1.375rem);
  line-height: 1.6;
}
.services-overview .services-overview__hero .btn-blue {
  align-self: center;
  margin-top: 28px;
}
/* Reuse the service-page process layout and type scale, with a dark surface. */
.services-overview .services-overview__services > .fig-wrap {
  padding-top: clamp(40px, 5.6vw, 80px);
  background: var(--fig-dark, #05060f);
  color: #fff;
}
.services-overview .services-overview__services :is(h2, h3, p, li) { color: #fff; }
.services-overview__services-head h2 > span { display: block; }
.services-overview__service { min-width: 0; }
.services-overview__service-links li::before {
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10l3 3 5-6' fill='none' stroke='%2305060f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.services-overview .services-overview__service-links a,
.services-overview .services-overview__service-links a:visited {
  color: #fff;
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: rgba(255, 255, 255, .4);
  text-underline-offset: .2em;
  transition: opacity .2s ease, text-decoration-color .2s ease;
}
.services-overview .services-overview__service-links a:hover {
  opacity: .75;
  text-decoration-color: currentColor;
}
.services-overview .services-overview__service-links a:focus-visible {
  outline: 2px solid var(--fig-blue, #1f4fff);
  outline-offset: 5px;
  border-radius: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .services-overview .services-overview__service-links a { transition: none; }
}

/* Blink's circular service symbols draw in once, then respond gently to interaction. */
.services-overview__service-icon { --blink-blue: #2f5eff; }
.services-overview__service-icon > svg { display: block; width: 100%; height: 100%; }
.services-overview__service-icon :is(.overview-icon__orbit, .overview-icon__core, .overview-icon__star) {
  transform-box: view-box;
  transform-origin: 50% 50%;
  transition: transform .65s cubic-bezier(.22, 1, .36, 1);
}
.services-overview__service:is(:hover, :focus-within) .overview-icon__orbit {
  transform: rotate(35deg);
}
.services-overview__service:is(:hover, :focus-within) .overview-icon__core {
  transform: scale(1.08);
}
.services-overview__service:is(:hover, :focus-within) .overview-icon__star {
  transform: rotate(90deg);
}
@media (prefers-reduced-motion: reduce) {
  .services-overview__service-icon :is(.overview-icon__orbit, .overview-icon__core, .overview-icon__star) {
    transition: none;
    transform: none !important;
  }
}

/* Services: the complete client set as white artwork on the dark hero. */
.services-overview .client-logo-marquee {
  --logo-width: 160px;
  --logo-height: 48px;
  --logo-gap: 64px;
  position: relative;
  z-index: 1;
  min-width: 0;
  width: 100%;
  padding: 28px 0;
  color: #fff;
}
.client-logo-marquee__viewport {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  scrollbar-color: #ffffff50 transparent;
}
.client-logo-marquee__track { display: flex; width: max-content; }
.client-logo-marquee__group {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--logo-gap);
  width: max-content;
  margin: 0;
  padding: 12px calc(var(--logo-gap) / 2);
  list-style: none;
}
.client-logo-marquee__item { flex: 0 0 auto; }
.client-logo-marquee__item .logo-link { display: flex; align-items: center; justify-content: center; width: 100%; }
.client-logo-marquee__image {
  display: block;
  width: auto;
  max-width: var(--logo-width);
  height: var(--logo-height);
  object-fit: contain;
  border-radius: 0;
}
.client-logo-marquee__item[data-client="pph-commercial"] { --logo-width: 108px; }
.client-logo-marquee__image--invert { filter: brightness(0) invert(1); }
.client-logo-marquee__duplicate { display: none; }
.client-logo-marquee__viewport:focus-visible { outline: 2px solid #fff; outline-offset: -3px; }
@media (prefers-reduced-motion: no-preference) {
  .client-logo-marquee.is-enhanced:not(.is-browsing) .client-logo-marquee__viewport {
    overflow: hidden;
    mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
  }
  .client-logo-marquee.is-enhanced .client-logo-marquee__duplicate { display: flex; }
  .client-logo-marquee.is-enhanced:not(.is-browsing) .client-logo-marquee__track {
    animation: blink-client-logos var(--logo-duration, 330s) linear infinite;
  }
  .client-logo-marquee:is(:focus-within, .is-offscreen) .client-logo-marquee__track {
    animation-play-state: paused !important;
  }
}
@keyframes blink-client-logos { to { transform: translateX(-50%); } }
@media (max-width: 900px) {
  .services-overview .client-logo-marquee { --logo-width: 140px; --logo-height: 44px; --logo-gap: 48px; }
}
@media (max-width: 600px) {
  .services-overview .client-logo-marquee { --logo-width: 120px; --logo-height: 40px; --logo-gap: 36px; padding: 20px 0; }
}

/* Centre the homepage approach button label on mobile. */
@media (max-width: 900px) {
  .home .approach-cta { justify-content: center; text-align: center; }
}
