/*
 * Bimmate concept v5.16 — quiet unification layer.
 *
 * This file intentionally sits after the established v5.x styles. It turns
 * the many exploratory shapes into one restrained system: calm rectangular
 * media, a cream/ink chapter rhythm, and blue/rose/gold as accents only.
 */

.v516-page {
  --footer-curve-height: clamp(108px, 10vw, 164px);
  /*
   * Keep the panel edge outside the existing fluid .shell. On wide screens
   * this resolves to 48px; around the shell breakpoint it settles at 24px
   * so headings never sit on the cream gutter.
   */
  --v516-panel-gutter: clamp(24px, calc((100vw - 1236px) / 2), 48px);
  --v516-panel-radius: 24px;
  --v516-panel-gap: 24px;
  --v516-panel-shadow: 0 30px 90px rgba(8, 8, 14, .28);
  --v516-blue: #e7ebf2;
  --v516-neutral: #f1f0ee;
  --v516-ink: #1c1c26;
  --v516-ink-raised: #22222c;
  --v516-cream: #f2ece6;
  --v516-cream-deep: #f2ece6;
  --v516-rose: #8d6064;
  --v516-gold: #bba464;
  --v516-rule: rgba(28, 28, 38, .13);
  --v516-rule-light: rgba(255, 250, 246, .16);
  background: var(--v516-cream);
}

/* One transition language: technical dividers inside, one brand curve at the footer. */
.v516-page .curve-in::before,
.v516-page .curve-in::after,
.v516-page .detail-hero__lines,
.v516-page .detail-hero__visual::before,
.v516-page .detail-intro__aside::after {
  display: none !important;
}

.v516-page .fade-to-cream,
.v516-page .fade-to-cream-deep,
.v516-page .fade-to-ink,
.v516-page .fade-to-neutral,
.v516-page .fade-to-blue {
  position: relative;
  isolation: isolate;
}

.v516-page .fade-to-cream { background: var(--v516-cream); --v516-fade-color: 242, 236, 230; }
.v516-page .fade-to-cream-deep { background: var(--v516-cream-deep); --v516-fade-color: 242, 236, 230; }
.v516-page .fade-to-ink { background: var(--v516-ink); --v516-fade-color: 28, 28, 38; }
.v516-page .fade-to-neutral { background: var(--v516-cream); --v516-fade-color: 242, 236, 230; }
.v516-page .fade-to-blue { background: var(--v516-cream-deep); --v516-fade-color: 242, 236, 230; }

.v516-page .fade-to-cream > .shell,
.v516-page .fade-to-cream-deep > .shell,
.v516-page .fade-to-ink > .shell,
.v516-page .fade-to-neutral > .shell,
.v516-page .fade-to-blue > .shell {
  position: relative;
  z-index: 1;
}

.v516-page .tech-divider {
  --tech-divider-from: var(--v516-cream);
  --tech-divider-to: var(--v516-ink);
  position: relative;
  z-index: 5;
  height: clamp(38px, 3.6vw, 56px);
  overflow: hidden;
  pointer-events: none;
  background: linear-gradient(
    to bottom,
    var(--tech-divider-from) 0 49.8%,
    var(--tech-divider-to) 50.2% 100%
  );
  display: none;
}

.v516-page .tech-divider::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url('/assets/images/bimmate-technical-divider.svg') center / 100% 100% no-repeat;
  opacity: .9;
}

.v516-page .tech-divider--cream-to-ink {
  --tech-divider-from: var(--v516-cream);
  --tech-divider-to: var(--v516-ink);
}

.v516-page .tech-divider--cream-deep-to-ink {
  --tech-divider-from: var(--v516-cream-deep);
  --tech-divider-to: var(--v516-ink);
}

.v516-page .tech-divider--ink-to-cream {
  --tech-divider-from: var(--v516-ink);
  --tech-divider-to: var(--v516-cream);
}

.v516-page .detail-hero--cream,
.v516-page .detail-hero--blue,
.v516-page .detail-hero--rose,
.v516-page .portfolio-section--rose {
  background: var(--v516-cream-deep);
}

.v516-page .footer {
  position: relative;
  z-index: 6;
  isolation: isolate;
  overflow: visible;
  margin-top: var(--footer-curve-height);
  border-top: 0;
  border-radius: 0;
  background: var(--v516-ink);
}

.v516-page .footer::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  right: 0;
  bottom: calc(100% - 1px);
  left: 0;
  height: var(--footer-curve-height);
  background: url('/assets/images/bimmate-footer-curve.svg') center / 100% 100% no-repeat;
  pointer-events: none;
}

.v516-page .footer > .shell {
  position: relative;
  z-index: 1;
}

.v516-page main > :last-child {
  margin-bottom: var(--v516-panel-gap);
}

.v516-page .legal-contact { background: var(--v516-ink); }

/* Typography and spacing: one promise, three proofs, one next step. */
.v516-page .page-section {
  padding: clamp(92px, 9vw, 148px) 0;
  background: var(--v516-cream);
}

.v516-page .page-section--ink {
  color: var(--v516-cream);
  background: var(--v516-ink);
}

.v516-page .page-section--neutral { background: var(--v516-cream); }

.v516-page .compact-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .58fr);
  align-items: end;
  gap: clamp(52px, 8vw, 126px);
  margin-bottom: clamp(54px, 6vw, 86px);
}

.v516-page .compact-heading h2 {
  max-width: 850px;
  margin-top: 22px;
  font-size: clamp(44px, 5.3vw, 76px);
  line-height: .98;
}

.v516-page .compact-heading h2 em,
.v516-page .contact-hero h1 em,
.v516-page .page-cta__grid--light h2 em {
  color: var(--rose);
}

.v516-page .compact-heading > p,
.v516-page .compact-heading > div + p {
  max-width: 500px;
  margin: 0 0 7px;
  color: rgba(28, 28, 38, .63);
  font-size: clamp(16px, 1.22vw, 19px);
  line-height: 1.72;
}

.v516-page .compact-heading--light h2 em,
.v516-page .page-section--ink h2 em,
.v516-page .page-cta h2 em {
  color: #d2bd77;
}

.v516-page .compact-heading--light > p,
.v516-page .page-section--ink .compact-heading > p {
  color: rgba(255, 250, 246, .62);
}

.v516-page .nav { position: relative; }

/* Homepage: keep the expressive opening, calm everything underneath it. */
.v516-home .hero {
  min-height: min(820px, calc(100svh - 34px));
  padding-bottom: 146px;
  background-color: var(--v516-cream-deep);
}

.v516-home .motion-bim3d-stage {
  position: absolute;
  z-index: 2;
  inset: -7% -9% -9%;
  opacity: 0;
  pointer-events: none;
  filter: drop-shadow(0 24px 28px rgba(28, 28, 38, .09));
  transition: opacity .9s ease;
}

.v516-home .motion-bim3d-stage canvas {
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

html[data-motion-model="ready"] .v516-home .hero-imprint.is-motion-bim3d-ready .motion-bim3d-stage {
  opacity: .92;
}

.v516-home .hero-service-line { background: rgba(242, 236, 230, .74); }

.button--product {
  border: 1px solid rgba(187, 164, 100, .72);
  box-shadow: 0 0 0 0 rgba(187, 164, 100, 0);
  animation: v516-product-breathe 4.8s ease-in-out infinite;
  transform-origin: center;
}

@keyframes v516-product-breathe {
  0%, 100% { box-shadow: 0 0 0 0 rgba(187, 164, 100, 0); transform: scale(1); }
  50% { box-shadow: 0 0 0 7px rgba(187, 164, 100, .11); transform: scale(1.018); }
}

.v516-home .scroll-story { min-height: 540vh; }

.v516-home .story-backdrop img,
.v516-home .story-backdrop--bim img,
.v516-home .story-backdrop--scan img,
.v516-home .story-backdrop--vabi img,
.v516-home .story-backdrop--addin img {
  top: 14%;
  right: 5%;
  width: min(58vw, 980px);
  height: 72%;
  opacity: .76;
  -webkit-mask-image: radial-gradient(ellipse 68% 67% at 60% 50%, #000 30%, rgba(0, 0, 0, .9) 59%, transparent 94%);
  mask-image: radial-gradient(ellipse 68% 67% at 60% 50%, #000 30%, rgba(0, 0, 0, .9) 59%, transparent 94%);
}

.v516-home .story-backdrop--scan img { opacity: .77; filter: saturate(.55) contrast(.98) brightness(.73); }
.v516-home .story-backdrop--addin img { width: min(56vw, 940px); opacity: .72; }

.v516-home .story-shade {
  background: linear-gradient(90deg, rgba(18, 18, 25, .985) 0%, rgba(18, 18, 25, .9) 32%, rgba(18, 18, 25, .42) 61%, rgba(18, 18, 25, .6) 100%);
}

.v516-home .story-step { min-height: 135vh; }

.v516-home .home-services .service-image {
  background: var(--v516-ink);
  border-color: var(--v516-ink);
}

.v516-home .home-services .service-image img {
  filter: saturate(.58) contrast(.92) brightness(.72);
}

.v516-home .home-services .service-image--bim img {
  opacity: .88;
  mix-blend-mode: normal;
}

.v516-home .home-services .service-image--scan img { filter: saturate(.5) contrast(.98) brightness(.7); }

.home-tool-index { border-top: 1px solid var(--v516-rule); }

.home-tool-index > section {
  position: relative;
  display: grid;
  grid-template-columns: minmax(140px, .38fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 60px);
  padding: 28px 16px 28px 34px;
  border-bottom: 1px solid var(--v516-rule);
  transition: background-color .3s ease, padding-left .3s ease;
}

.home-tool-index > section::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 34px;
  width: 10px;
  height: 10px;
  border: 1px solid var(--blue);
  transform: rotate(0deg);
  transition: transform .36s cubic-bezier(.2, .75, .25, 1), border-color .3s ease;
}

.home-tool-index > section:hover {
  padding-left: 40px;
  background: rgba(255, 250, 246, .64);
}

.home-tool-index > section:hover::before { border-color: var(--gold); transform: rotate(45deg) scale(.82); }

.home-tool-index span {
  padding-top: 4px;
  color: var(--rose);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.home-tool-index h3 {
  margin: 0;
  font-size: clamp(20px, 1.8vw, 27px);
  font-weight: 500;
  line-height: 1.35;
}

/* Detail-page heroes: no arches or passe-partout, only faded media. */
.v516-page .detail-hero {
  min-height: 660px;
  padding: clamp(88px, 8vw, 124px) 0 clamp(106px, 9vw, 142px);
}

.v516-page .detail-hero__grid {
  grid-template-columns: minmax(0, .94fr) minmax(430px, 1.06fr);
  gap: clamp(56px, 8vw, 118px);
}

.v516-page .detail-hero__visual {
  min-height: 470px;
  display: grid;
  place-items: center;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.v516-page .detail-hero__visual img {
  width: 100%;
  height: 470px;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.v516-page .detail-hero__visual--blend img {
  opacity: .61;
  filter: saturate(.52) contrast(.82) brightness(.98);
  mix-blend-mode: multiply;
  -webkit-mask-image: radial-gradient(ellipse 72% 68% at 50% 50%, #000 30%, rgba(0, 0, 0, .72) 56%, transparent 82%);
  mask-image: radial-gradient(ellipse 72% 68% at 50% 50%, #000 30%, rgba(0, 0, 0, .72) 56%, transparent 82%);
}

.v516-page .detail-hero__visual--schema img {
  width: 116%;
  max-width: none;
  opacity: .94;
  filter: saturate(.82) contrast(1.12) brightness(.98);
  mix-blend-mode: multiply;
  transform: translateX(-4%);
  -webkit-mask-image: radial-gradient(ellipse 82% 76% at 50% 50%, #000 46%, rgba(0, 0, 0, .86) 68%, transparent 95%);
  mask-image: radial-gradient(ellipse 82% 76% at 50% 50%, #000 46%, rgba(0, 0, 0, .86) 68%, transparent 95%);
}

.v516-page .detail-hero__visual--vabi img {
  opacity: .62;
  filter: saturate(.48) contrast(.82) brightness(.94);
  -webkit-mask-image: radial-gradient(ellipse 70% 66% at 50% 50%, #000 28%, rgba(0, 0, 0, .7) 54%, transparent 80%);
  mask-image: radial-gradient(ellipse 70% 66% at 50% 50%, #000 28%, rgba(0, 0, 0, .7) 54%, transparent 80%);
}

.v516-page .detail-hero__visual--photo {
  min-height: 470px;
  overflow: hidden;
  background: #09090d;
}

.v516-page .detail-hero__visual--photo img {
  height: 470px;
  object-fit: cover;
  object-position: center;
  filter: saturate(.62) contrast(.98) brightness(.82);
}

.v516-page .detail-hero__visual--portrait-flat {
  min-height: 500px;
  overflow: hidden;
  background: var(--v516-cream-deep);
}

.v516-page .detail-hero__visual--portrait-flat img {
  height: 500px;
  object-fit: cover;
  object-position: center 30%;
  filter: saturate(.68) contrast(.96);
}

.v516-page .detail-hero__visual--product-flat {
  min-height: 132px;
  display: grid;
  grid-template-columns: clamp(58px, 6.5vw, 76px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(18px, 2vw, 26px);
  overflow: visible;
  border: 0;
  background: transparent;
}

.v516-page .product-ribbon-frame {
  display: grid;
  place-items: center;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(255, 250, 246, .14);
  background: var(--media-addin-ribbon);
}

.v516-page .product-ribbon-frame > img {
  width: 110%;
  max-width: none;
  height: auto;
  min-height: 0;
  padding: 0;
  object-fit: contain;
  filter: saturate(.78) contrast(.97) brightness(.9);
}

.v516-page .detail-hero__visual--product-flat .product-platform-mark {
  width: clamp(58px, 6.5vw, 76px);
  max-width: 76px;
  height: auto;
  min-height: 0;
  padding: 0;
  object-fit: contain;
  opacity: .9;
  filter: saturate(.7) brightness(.94);
}

/* Reusable page components. */
.service-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(48px, 6vw, 86px) clamp(28px, 5vw, 72px);
}

.service-summary {
  position: relative;
  min-width: 0;
  padding-right: 30px;
}

.service-summary > span,
.work-card > span,
.product-media-card > span {
  display: block;
  margin-top: 18px;
  color: var(--blue);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.service-summary h3,
.work-card h3 {
  margin-top: 8px;
  font-size: clamp(28px, 3vw, 43px);
  line-height: 1.08;
}

.service-summary p {
  max-width: 510px;
  margin: 15px 0 0;
  color: rgba(28, 28, 38, .62);
}

.service-summary > i {
  position: absolute;
  right: 3px;
  bottom: 8px;
  color: var(--rose);
  font-style: normal;
  transition: transform .28s ease;
}

.service-summary:hover > i { transform: translate(4px, 4px); }

.media-surface,
.work-card figure,
.product-media-card figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--v516-rule);
  border-radius: 0 !important;
}

.media-surface {
  aspect-ratio: 1.45;
  display: grid;
  place-items: center;
}
.media-surface img,
.work-card figure img,
.product-media-card figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform .52s cubic-bezier(.2, .75, .25, 1), filter .36s ease;
}

.media-surface--schema { background: #fff; }
.media-surface--schema img {
  padding: 0;
  object-fit: cover;
  object-position: left center;
  opacity: .9;
  filter: saturate(.72) contrast(1.03);
}
.media-surface--revit { background: var(--media-revit-source); }
.media-surface--revit img {
  padding: 0;
  opacity: .86;
  filter: saturate(.66) contrast(.94);
}
.media-surface--matterport { background: #050509; }
.media-surface--matterport img { object-fit: cover; filter: saturate(.65) brightness(.82); }
.media-surface--vabi { background: #f0f0f0; }
.media-surface--vabi img {
  padding: 0;
  opacity: .9;
  filter: saturate(.66) contrast(.95);
}
.service-summary:hover .media-surface img { transform: scale(1.025); }

.capability-grid { display: grid; gap: 0; border-top: 1px solid var(--v516-rule); border-bottom: 1px solid var(--v516-rule); }
.capability-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.capability-card {
  min-width: 0;
  padding: clamp(34px, 4vw, 54px) clamp(26px, 3.5vw, 48px);
  border-right: 1px solid var(--v516-rule);
}

.capability-card:first-child { padding-left: 0; }
.capability-card:last-child { padding-right: 0; border-right: 0; }
.capability-card > span { color: var(--blue); font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.capability-card h3 { margin-top: 30px; font-size: clamp(28px, 3vw, 42px); line-height: 1.08; }
.capability-card p { max-width: 390px; margin: 18px 0 0; color: rgba(28, 28, 38, .62); }

.split-proof {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(300px, .62fr);
  align-items: end;
  gap: clamp(58px, 10vw, 150px);
}

.split-proof h2 { max-width: 850px; margin-top: 23px; font-size: clamp(46px, 5.3vw, 76px); line-height: .98; }
.split-proof__copy p { margin: 0 0 28px; color: rgba(255, 250, 246, .64); font-size: clamp(16px, 1.2vw, 19px); line-height: 1.72; }
.page-section--ink .text-link { color: var(--v516-cream); }

.platform-proof {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  gap: 24px;
}

.platform-proof img { width: 72px; height: 72px; object-fit: contain; filter: saturate(.72); }
.platform-proof p { margin: 0; color: rgba(28, 28, 38, .62); line-height: 1.65; }

.page-cta {
  padding: clamp(96px, 9vw, 144px) 0;
  color: var(--v516-cream);
  background: var(--v516-ink);
}

.page-cta__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(300px, .62fr);
  align-items: end;
  gap: clamp(58px, 9vw, 140px);
}

.page-cta h2 { max-width: 820px; margin-top: 22px; font-size: clamp(42px, 5vw, 70px); line-height: 1.02; }
.page-cta__grid > div:last-child > p { margin: 0 0 28px; color: rgba(255, 250, 246, .64); line-height: 1.72; }

.page-cta__grid--light { color: var(--v516-ink); }
.page-cta:has(.page-cta__grid--light) { background: var(--v516-cream); }
.page-cta__grid--light > div:last-child > p { color: rgba(28, 28, 38, .64); }

.button-row { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; }

.work-grid { display: grid; gap: clamp(34px, 4.5vw, 64px) clamp(20px, 2.5vw, 34px); }
.work-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.work-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.work-card { min-width: 0; }
.work-card figure { aspect-ratio: 1.2; background: var(--v516-cream-deep); }
.work-card figure img { padding: 4%; filter: saturate(.72) contrast(.94); }
.work-card--matterport figure { border-color: rgba(255, 250, 246, .18); background: #050509; }
.work-card--matterport figure img { padding: 0; object-fit: contain; filter: saturate(.64) brightness(.86); }
.work-card--vabi figure { background: var(--v516-neutral); }
.work-card--vabi figure img { opacity: .87; filter: saturate(.62) contrast(.92); }
.work-card:hover figure img { transform: scale(1.025); }
.page-section--ink .work-card h3 { color: var(--v516-cream); }

/* Matterport remains a central, full-width interaction. */
.matterport-showcase,
.project-matterport { margin-top: clamp(76px, 8vw, 126px); }

.matterport-showcase { padding: clamp(80px, 8vw, 124px) 0; color: var(--v516-cream); background: var(--v516-ink); }

.matterport-shell,
.matterport-shell--project {
  overflow: hidden;
  border: 1px solid rgba(255, 250, 246, .16);
  border-radius: 0 !important;
  background: #050509;
}

.matterport-gate { min-height: clamp(430px, 58vw, 720px); }
.matterport-gate > img { width: 100%; height: 100%; min-height: inherit; object-fit: cover; filter: saturate(.62) brightness(.7); }
.matterport-shell__footer { background: #050509; }

.project-matterport {
  display: grid;
  grid-template-columns: minmax(320px, .62fr) minmax(0, 1.38fr);
  align-items: start;
  gap: clamp(44px, 6vw, 88px);
  padding-top: clamp(72px, 8vw, 118px);
  border-top: 1px solid var(--v516-rule-light);
}

.project-matterport__intro {
  min-width: 0;
  max-width: 420px;
  margin: 0;
  text-align: left;
}

.project-matterport__intro .eyebrow { justify-content: flex-start; }
.project-matterport__intro h3 { max-width: 100%; margin-top: 20px; font-size: clamp(36px, 3.8vw, 56px); line-height: 1; }
.project-matterport__intro h3 em { color: #d2bd77; }
.project-matterport__intro > p:not(.eyebrow) { max-width: 38ch; color: rgba(255, 250, 246, .62); }

.project-matterport .matterport-shell--project {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 46px 0 0;
}

.project-matterport .matterport-gate { min-height: 0; }

.scan-video-section {
  padding: clamp(92px, 9vw, 142px) 0;
  color: var(--v516-ink);
  background: var(--v516-cream);
}
.scan-video-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 54px); }
.scan-video-card { overflow: hidden; border: 1px solid var(--v516-rule); background: var(--v516-ink); }
.scan-video-card video { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #000; }
.scan-video-card h3 { padding: 0 24px; color: var(--v516-cream); }
.scan-video-card p { padding: 0 24px 24px; color: rgba(255, 250, 246, .58); }

/* BIM-MATE: one scalable, honest image system for every current tool. */
.v516-product .product-showcase--flat { background: var(--v516-cream); }

.tool-visual-groups {
  display: grid;
  gap: clamp(62px, 7vw, 104px);
}

.tool-visual-group { min-width: 0; }

.tool-visual-group__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 26px;
  padding-top: 20px;
  border-top: 1px solid var(--v516-rule);
}

.tool-visual-group__head > div {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: clamp(18px, 2.4vw, 34px);
}

.tool-visual-group__head span,
.tool-visual-group__head small {
  flex: 0 0 auto;
  color: var(--blue);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tool-visual-group__head h3 {
  margin: 0;
  font-size: clamp(24px, 2.7vw, 38px);
  line-height: 1.08;
}

.tool-visual-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(38px, 4vw, 60px) clamp(18px, 2.3vw, 30px);
}

.tool-visual-card { min-width: 0; }

.tool-visual-card__media {
  position: relative;
  display: grid;
  width: 100%;
  aspect-ratio: 16 / 10;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(60, 68, 84, .34);
  background: var(--media-addin-ribbon);
}

.tool-visual-card--ready .tool-visual-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 2.5%;
  filter: saturate(.82) contrast(.97) brightness(.92);
  transition: transform .5s cubic-bezier(.2, .75, .25, 1), filter .35s ease;
}

.tool-visual-card--ready:hover .tool-visual-card__media img {
  transform: scale(1.025);
  filter: saturate(.9) contrast(.99) brightness(.95);
}

.tool-visual-card > span {
  display: block;
  margin-top: 16px;
  overflow-wrap: anywhere;
  color: var(--blue);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .105em;
  line-height: 1.45;
  text-transform: uppercase;
}

.tool-visual-card h4 {
  margin: 7px 0 0;
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.08;
}

.tool-visual-placeholder {
  position: relative;
  isolation: isolate;
  display: grid;
  width: 100%;
  height: 100%;
  place-content: center;
  place-items: center;
  gap: 14px;
  overflow: hidden;
  color: rgba(255, 250, 246, .62);
  text-align: center;
}

.tool-visual-placeholder::before {
  position: absolute;
  z-index: -2;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 49.85%, rgba(255, 250, 246, .08) 50%, transparent 50.15%),
    linear-gradient(0deg, transparent 49.85%, rgba(255, 250, 246, .08) 50%, transparent 50.15%);
  content: "";
}

.tool-visual-placeholder::after {
  position: absolute;
  z-index: -1;
  width: 54%;
  aspect-ratio: 1;
  border: 1px solid rgba(183, 198, 224, .16);
  border-radius: 50%;
  content: "";
}

.tool-visual-placeholder i {
  display: block;
  width: 42px;
  height: 42px;
  background: url('/assets/images/bimmate-mark.svg') center / contain no-repeat;
  filter: invert(1);
  opacity: .38;
}

.tool-visual-placeholder span {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.tool-growth-note {
  display: grid;
  grid-template-columns: minmax(170px, .32fr) minmax(0, 1fr);
  gap: clamp(34px, 6vw, 92px);
  margin-top: clamp(76px, 9vw, 132px);
  padding: clamp(32px, 4vw, 54px) 0;
  border-top: 1px solid var(--v516-rule);
  border-bottom: 1px solid var(--v516-rule);
}

.tool-growth-note > span {
  color: var(--rose);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tool-growth-note h3 {
  max-width: 820px;
  margin: 0;
  font-size: clamp(30px, 3.8vw, 54px);
  line-height: 1.04;
}

.tool-growth-note p {
  max-width: 760px;
  margin: 20px 0 0;
  color: rgba(28, 28, 38, .62);
  line-height: 1.72;
}

.product-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--v516-rule);
  border-bottom: 1px solid var(--v516-rule);
}

.product-facts > div { padding: 38px clamp(22px, 3vw, 42px); border-right: 1px solid var(--v516-rule); }
.product-facts > div:first-child { padding-left: 0; }
.product-facts > div:last-child { padding-right: 0; border-right: 0; }
.product-facts strong { display: block; font-size: clamp(34px, 4vw, 56px); line-height: 1; }
.product-facts span { display: block; margin-top: 10px; color: rgba(28, 28, 38, .58); }

.product-breadth { background: var(--v516-neutral); }

.product-journey { border-top: 1px solid var(--v516-rule); }

.product-journey article {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) minmax(230px, .68fr);
  align-items: start;
  gap: clamp(22px, 3.5vw, 54px);
  padding: clamp(28px, 3.5vw, 46px) 0;
  border-bottom: 1px solid var(--v516-rule);
}

.product-journey article > span {
  color: var(--v516-rose);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
}

.product-journey h3 { margin: 0 0 12px; font-size: clamp(27px, 2.8vw, 42px); }
.product-journey p { max-width: 720px; margin: 0; color: rgba(28, 28, 38, .66); line-height: 1.68; }
.product-journey small { color: rgba(28, 28, 38, .5); font-size: 12px; line-height: 1.65; }

.product-group-nav {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-bottom: clamp(54px, 6vw, 84px);
  border-top: 1px solid var(--v516-rule-light);
  border-bottom: 1px solid var(--v516-rule-light);
}

.product-group-nav a {
  min-width: 0;
  padding: 22px 18px;
  border-right: 1px solid var(--v516-rule-light);
  color: rgba(255, 250, 246, .78);
  font-size: 12px;
  text-decoration: none;
  transition: color .25s ease, background-color .25s ease;
}

.product-group-nav a:last-child { border-right: 0; }
.product-group-nav a:hover,
.product-group-nav a:focus-visible { color: var(--v516-cream); background: rgba(255, 250, 246, .07); }
.product-group-nav a:focus-visible { outline: 2px solid var(--v516-gold); outline-offset: -2px; }
.product-group-nav span { display: block; margin-bottom: 9px; color: var(--v516-gold); font-size: 9px; font-weight: 700; letter-spacing: .12em; }

.tool-catalog__groups { border-top: 1px solid var(--v516-rule-light); }
.tool-catalog__group {
  display: grid;
  grid-template-columns: minmax(200px, .48fr) minmax(0, 1fr);
  gap: clamp(36px, 6vw, 94px);
  padding: clamp(34px, 4vw, 54px) 0;
  border-bottom: 1px solid var(--v516-rule-light);
  scroll-margin-top: 118px;
}
.tool-catalog__group h3 { font-size: clamp(28px, 3vw, 44px); }
.tool-catalog__group header > span { color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.tool-catalog__group header > p { max-width: 360px; margin: 18px 0 0; color: rgba(255, 250, 246, .5); line-height: 1.65; }
.tool-catalog__group dl { margin: 0; border-top: 1px solid var(--v516-rule-light); }
.tool-catalog__group dl > div { display: grid; grid-template-columns: minmax(190px, .38fr) minmax(0, 1fr); gap: clamp(24px, 3vw, 44px); padding: 26px 0; border-bottom: 1px solid var(--v516-rule-light); }
.tool-catalog__group dt {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: start;
  gap: 13px;
  color: var(--v516-cream);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.4;
}
.tool-catalog__icon {
  width: 28px;
  height: 28px;
  margin-top: -2px;
  color: rgba(255, 250, 246, .82);
  overflow: visible;
}
.tool-catalog__group dd { margin: 0; color: rgba(255, 250, 246, .62); }
.tool-catalog__group dd strong { display: block; color: rgba(255, 250, 246, .88); font-weight: 600; line-height: 1.5; }
.tool-catalog__group dd p { max-width: 760px; margin: 8px 0 0; color: rgba(255, 250, 246, .56); line-height: 1.68; }

.product-foundation {
  display: grid;
  grid-template-columns: minmax(170px, .34fr) minmax(0, 1fr);
  gap: clamp(32px, 6vw, 90px);
  margin-top: clamp(56px, 7vw, 96px);
  padding: clamp(34px, 4vw, 54px) 0;
  border-top: 1px solid var(--v516-rule-light);
  border-bottom: 1px solid var(--v516-rule-light);
}

.product-foundation > span { color: var(--v516-gold); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.product-foundation h3 { margin: 0 0 13px; color: var(--v516-cream); font-size: clamp(27px, 3vw, 42px); }
.product-foundation p { max-width: 780px; margin: 0; color: rgba(255, 250, 246, .58); line-height: 1.7; }

/* Projects: one list/image browser switches between BIM, VABI and 3D scans. */
.v516-projects .project-list-proof-browser {
  --project-list-page: var(--v516-cream-deep);
  --project-list-ink: var(--v516-ink);
  --project-list-rule: rgba(28, 28, 38, .13);
  --project-list-active: rgba(255, 250, 246, .68);
  --project-viewer-surface: var(--v516-cream-deep);
  --v516-fade-color: 242, 236, 230;
  padding-top: clamp(96px, 9vw, 148px);
  color: var(--v516-ink);
  background: var(--v516-cream-deep);
}

.v516-projects .project-list-proof-browser[data-project-category="calculations"] {
  --project-list-page: var(--v516-cream-deep);
  --project-list-active: rgba(255, 250, 246, .58);
  --project-viewer-surface: var(--v516-cream-deep);
  --v516-fade-color: 242, 236, 230;
  background: var(--v516-cream-deep);
}

.v516-projects .project-list-proof-browser[data-project-category="scans"] {
  --project-list-page: var(--v516-cream-deep);
  --project-list-ink: var(--v516-ink);
  --project-list-rule: rgba(28, 28, 38, .12);
  --project-list-active: rgba(255, 250, 246, .58);
  --project-viewer-surface: var(--v516-cream-deep);
  --v516-fade-color: 242, 236, 230;
  color: var(--v516-ink);
  background: var(--v516-cream-deep);
}

.v516-projects .project-list-proof-browser::before {
  background: radial-gradient(circle at 78% 32%, rgba(255, 250, 246, .72), transparent 32%);
}

.v516-projects .project-list-proof-browser[data-project-category="calculations"]::before {
  background: radial-gradient(circle at 78% 32%, rgba(255, 250, 246, .46), transparent 34%);
}

.v516-projects .project-list-proof-browser[data-project-category="scans"]::before {
  background: radial-gradient(circle at 78% 32%, rgba(255, 250, 246, .46), transparent 34%);
}

.v516-projects .project-list-proof-stage { background: var(--project-list-page); }
.v516-projects .project-list-proof-layer { opacity: 0; }
.v516-projects .project-list-proof-layer.is-active { opacity: .75; }
.v516-projects [data-project-kind="calculations"] .project-list-proof-layer {
  mix-blend-mode: multiply;
  filter: saturate(.58) contrast(.9) brightness(1.03);
}
.v516-projects [data-project-kind="calculations"] .project-list-proof-layer.is-active { opacity: .72; }
.v516-projects [data-project-kind="scans"] .project-list-proof-layer {
  mix-blend-mode: normal;
  filter: saturate(.66) contrast(.94) brightness(.86);
}
.v516-projects [data-project-kind="scans"] .project-list-proof-layer.is-active { opacity: .92; }

.v516-projects .project-list-proof-item:hover,
.v516-projects .project-list-proof-item:focus-visible,
.v516-projects .project-list-proof-item.is-active { color: inherit; background: var(--project-list-active); }
.v516-projects .project-list-proof-caption h3 { font-size: clamp(34px, 3.7vw, 62px); }

.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-category-tab:hover { background: rgba(255, 250, 246, .42); }
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-category-tab.is-active {
  color: var(--v516-cream);
  background: var(--v516-ink);
}
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-list-proof-browser__heading > p,
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-list-proof-item__copy small,
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-list-proof-viewer__topline {
  color: rgba(28, 28, 38, .58);
}
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-list-proof-caption [data-viewer-meta],
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-list-proof-item__number { color: var(--blue); }
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-category-switcher > .eyebrow,
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-list-proof-browser__heading h2 { color: var(--v516-ink); }
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-category-switcher > .eyebrow > span { background: var(--rose); }
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-list-proof-browser__heading h2 em { color: var(--rose); }
.v516-projects .project-list-proof-browser[data-project-category="scans"] .project-list-proof-status {
  color: var(--v516-cream);
  background: rgba(28, 28, 38, .92);
}

.v516-projects .project-matterport--standalone { margin-top: 0; padding-top: 0; border-top: 0; }
.v516-projects .project-matterport__intro h2 {
  max-width: 100%;
  margin-top: 20px;
  font-size: clamp(36px, 3.8vw, 56px);
  line-height: 1;
}
.v516-projects .project-matterport__intro h2 em { color: #d2bd77; font-style: normal; }

/* Contact: two routes, no intake questionnaire. */
.contact-hero {
  padding: clamp(110px, 11vw, 176px) 0 clamp(100px, 10vw, 152px);
  background: var(--v516-cream-deep);
}

.contact-hero__inner { max-width: 1020px; }
.contact-hero h1 { max-width: 1000px; margin-top: 30px; font-size: clamp(54px, 7vw, 104px); line-height: .93; }
.contact-hero__inner > p:last-child { max-width: 660px; margin: 34px 0 0; color: rgba(28, 28, 38, .67); font-size: clamp(17px, 1.45vw, 21px); }

.contact-options { padding: clamp(94px, 9vw, 144px) 0; }
.contact-options__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--v516-rule); border-bottom: 1px solid var(--v516-rule); }
.contact-option { position: relative; min-width: 0; padding: clamp(36px, 5vw, 68px); border-right: 1px solid var(--v516-rule); }
.contact-option:first-child { padding-left: 0; }
.contact-option:last-child { padding-right: 0; border-right: 0; }
.contact-option > span { color: var(--blue); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-option h2 { margin-top: 34px; font-size: clamp(29px, 3.4vw, 48px); word-break: break-word; }
.contact-option p { max-width: 440px; color: rgba(28, 28, 38, .62); }
.contact-option > i { position: absolute; right: 6px; bottom: 42px; color: var(--rose); font-style: normal; transition: transform .28s ease; }
.contact-option:hover > i { transform: translate(4px, 4px); }
.contact-services { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 42px; padding: 0; list-style: none; }
.contact-services li { padding: 8px 11px; border: 1px solid var(--v516-rule); color: rgba(28, 28, 38, .58); font-size: 10px; }

.v516-redirect { min-height: 100svh; display: grid; place-items: center; padding: 40px; background: var(--v516-cream-deep); }
.v516-redirect > div { max-width: 720px; text-align: center; }

@media (max-width: 1120px) {
  .v516-page .detail-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(380px, .82fr); gap: 50px; }
  .v516-page .detail-hero__visual,
  .v516-page .detail-hero__visual img { min-height: 410px; height: 410px; }
  .v516-page .detail-hero__visual--product-flat { min-height: 126px; height: 126px; }
  .v516-page .detail-hero__visual--product-flat img { min-height: 0; height: auto; }
  .work-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tool-visual-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .v516-page .detail-hero__grid,
  .v516-page .compact-heading,
  .v516-page .split-proof,
  .v516-page .page-cta__grid,
  .project-matterport {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .v516-page .detail-hero__copy { order: 1; }
  .v516-page .detail-hero__visual { order: 2; min-height: 320px; }
  .v516-page .detail-hero__visual img { height: 320px; min-height: 320px; }
  .v516-page .detail-hero__visual--product-flat { min-height: 120px; height: 120px; }
  .v516-page .detail-hero__visual--product-flat img { min-height: 0; height: auto; }
  .v516-page .detail-hero__visual--portrait-flat,
  .v516-page .detail-hero__visual--portrait-flat img { height: 440px; min-height: 440px; }
  .service-summary-grid { grid-template-columns: 1fr; }
  .capability-grid--three { grid-template-columns: 1fr; }
  .capability-card { padding-inline: 0; border-right: 0; border-bottom: 1px solid var(--v516-rule); }
  .capability-card:last-child { border-bottom: 0; }
  .work-grid--three { grid-template-columns: 1fr; }
  .scan-video-grid { grid-template-columns: 1fr; }
  .product-journey article { grid-template-columns: 42px minmax(0, 1fr); }
  .product-journey small { grid-column: 2; }
  .product-group-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-group-nav a { border-bottom: 1px solid var(--v516-rule-light); }
  .product-group-nav a:nth-child(2n) { border-right: 0; }
  .product-group-nav a:last-child { border-bottom: 0; }
  .project-matterport__intro { max-width: 580px; }
  .v516-home .story-step { width: 64%; }
}

@media (max-width: 640px) {
  .v516-page { --footer-curve-height: 76px; }

  .v516-page .tech-divider::before {
    left: -28%;
    right: -28%;
  }

  .v516-home .hero { min-height: auto; padding-bottom: 110px; }
  .v516-home .story-step { width: 100%; min-height: 118vh; padding-right: 22px; }
  .home-tool-index > section { grid-template-columns: 1fr; gap: 10px; }
  .v516-page .detail-hero { min-height: 0; padding-top: 72px; }
  .v516-page .detail-hero__visual { min-height: 240px; }
  .v516-page .detail-hero__visual img { height: 240px; min-height: 240px; }
  .v516-page .detail-hero__visual--product-flat { min-height: 116px; height: 116px; }
  .v516-page .detail-hero__visual--product-flat img { min-height: 0; height: auto; }
  .v516-page .detail-hero__visual--portrait-flat,
  .v516-page .detail-hero__visual--portrait-flat img { height: 370px; min-height: 370px; }
  .work-grid--four { grid-template-columns: 1fr; }
  .product-facts { grid-template-columns: 1fr; }
  .product-facts > div { padding-inline: 0; border-right: 0; border-bottom: 1px solid var(--v516-rule); }
  .product-facts > div:last-child { border-bottom: 0; }
  .product-journey article { grid-template-columns: 1fr; gap: 10px; }
  .product-journey small { grid-column: 1; margin-top: 8px; }
  .product-group-nav { grid-template-columns: 1fr; }
  .product-group-nav a,
  .product-group-nav a:nth-child(2n) { border-right: 0; border-bottom: 1px solid var(--v516-rule-light); }
  .tool-catalog__group { grid-template-columns: 1fr; gap: 18px; }
  .tool-catalog__group dl > div { grid-template-columns: 1fr; gap: 9px; padding: 24px 0; }
  .product-foundation { grid-template-columns: 1fr; gap: 18px; }
  .tool-visual-grid { grid-template-columns: 1fr; gap: 42px; }
  .tool-visual-group__head { align-items: flex-start; }
  .tool-visual-group__head > div { align-items: flex-start; }
  .tool-growth-note { grid-template-columns: 1fr; gap: 18px; }
  .contact-options__grid { grid-template-columns: 1fr; }
  .contact-option { padding-inline: 0; border-right: 0; border-bottom: 1px solid var(--v516-rule); }
  .contact-option:last-child { border-bottom: 0; }
  .contact-option > i { right: 4px; bottom: 28px; }
}

@media (max-width: 840px) {
  .v516-home .hero-imprint {
    display: none;
    min-height: 0;
  }

  .v516-home .motion-bim3d-stage {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .button--product { animation: none; }
  .v516-home .motion-bim3d-stage { display: none; transition: none; }
  .tool-visual-card--ready .tool-visual-card__media img { transition: none; }
  .tool-visual-card--ready:hover .tool-visual-card__media img { transform: none; }
}

/* v5.17 — dark chapters are inset panels on one continuous cream page. */
.v516-page main {
  background: var(--v516-cream);
}

.v516-page :is(
  .scroll-story,
  .home-services,
  .scan-story,
  .detail-hero--ink,
  .editorial-section--ink,
  .portfolio-section--ink,
  .matterport-detail,
  .matterport-showcase,
  .detail-cta--ink,
  .legal-contact,
  .page-section--ink,
  .page-cta:not(:has(.page-cta__grid--light))
) {
  position: relative;
  isolation: isolate;
  margin-block: var(--v516-panel-gap);
  background: transparent !important;
}

.v516-page :is(
  .scroll-story,
  .home-services,
  .scan-story,
  .detail-hero--ink,
  .editorial-section--ink,
  .portfolio-section--ink,
  .matterport-detail,
  .matterport-showcase,
  .detail-cta--ink,
  .legal-contact,
  .page-section--ink,
  .page-cta:not(:has(.page-cta__grid--light))
)::before {
  content: "";
  display: block !important;
  position: absolute;
  z-index: -1;
  inset: 0 var(--v516-panel-gutter);
  border-radius: var(--v516-panel-radius);
  background: var(--v516-ink);
  pointer-events: none;
}

/* The cinematic layer follows the same inset without changing its content grid. */
.v516-home .scroll-story__sticky {
  width: auto;
  margin-inline: var(--v516-panel-gutter);
  border-radius: var(--v516-panel-radius);
}

/* Keep the shared example visually contained by its own dark chapter. */
.v516-projects .project-walkthrough-section {
  overflow: visible !important;
}

@media (min-width: 861px) {
  .v516-projects .project-walkthrough-section .matterport-shell--project {
    position: relative;
    z-index: 3;
    margin-top: 0;
    margin-bottom: 0;
    box-shadow: var(--v516-panel-shadow);
  }
}

@media (max-width: 1120px) {
  .v516-page {
    /*
     * The legacy mobile shell used a 16–22px edge. Give every cream and dark
     * chapter the same 32px content grid so the 24px panel gutter always
     * remains behind the copy.
     */
    --shell: calc(100% - 64px);
  }
}

@media (max-width: 860px) {
  .v516-page {
    --v516-panel-radius: 16px;
    --v516-panel-gutter: 24px;
  }

  .v516-home .scroll-story__sticky {
    margin-inline: var(--v516-panel-gutter);
    border-radius: var(--v516-panel-radius);
  }

  .v516-projects .project-walkthrough-section .project-matterport {
    gap: 0;
  }

  .v516-projects .project-walkthrough-section .matterport-shell--project {
    position: relative;
    z-index: 3;
    margin-top: 32px;
    margin-bottom: 0;
    box-shadow: 0 22px 58px rgba(8, 8, 14, .22);
  }
}
