/* Page-specific presentation for the supplied Commercial Building boards. */
html.iakob-building-i-snap
  .ZRRuDw
  section.iakob-commercial-building-page
  > div:not(.iakob-commercial-building-sheet-frame) {
  align-items: center !important;
  display: flex !important;
  height: 100% !important;
  inset: 0 !important;
  justify-content: center !important;
  position: absolute !important;
  scale: 1 !important;
  transform: none !important;
  translate: none !important;
  width: 100% !important;
}

html.iakob-building-i-snap .iakob-commercial-building-page-image {
  display: block !important;
  height: auto !important;
  max-height: calc(100% - 16px) !important;
  max-width: min(calc(100% - 80px), 1280px) !important;
  object-fit: contain !important;
  width: auto !important;
}

/* Snaps 6.4, 6.5 and 6.7 are fitted from measured visible drawing bounds.
   The source PNG stays intact; only its white canvas extends beyond the hidden
   grid frame. */
html.iakob-building-i-snap
  .iakob-commercial-building-grid-fitted-image {
  height: var(--iakob-drawing-image-height) !important;
  left: var(--iakob-drawing-image-left) !important;
  max-height: none !important;
  max-width: none !important;
  position: absolute !important;
  top: var(--iakob-drawing-image-top) !important;
  width: var(--iakob-drawing-image-width) !important;
}

/* Snaps 6.1, 6.3 and 6.6 are independent viewport compositions. Their size is
   installed from the available screen area by commercial-building.js; the
   measured raster relationship then scales with the invisible container. */
html.iakob-building-i-snap .iakob-commercial-building-independent-group {
  aspect-ratio: var(--iakob-independent-frame-aspect);
  flex: none;
  overflow: visible;
  position: absolute;
  transform: translate(-50%, -50%);
}

html.iakob-building-i-snap
  .iakob-commercial-building-independent-image {
  height: auto !important;
  left: var(--iakob-independent-image-left) !important;
  max-height: none !important;
  max-width: none !important;
  object-fit: fill !important;
  position: absolute !important;
  top: var(--iakob-independent-image-top) !important;
  width: var(--iakob-independent-image-width) !important;
}

html.iakob-building-i-snap
  .iakob-commercial-building-independent-frame {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}

/* Permanent drawing-sheet boundaries. Geometry is installed independently by
   commercial-building.js from the established 48 x 32 composition grid. */
html.iakob-building-i-snap .iakob-commercial-building-sheet-frame {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
  pointer-events: none;
  position: absolute;
  scale: 1 !important;
  transform: none !important;
  translate: none !important;
  z-index: 2;
}

html.iakob-building-i-snap.iakob-debug-frames-enabled
  .iakob-commercial-building-sheet-frame {
  outline: 1px solid rgba(48, 66, 84, 0.82);
  outline-offset: -1px;
}
/* Mobile slides are the responsive 48 x 32 grid surface. The percentages below
   are exact cell fractions, never measurements of the raster image. */
#iakob-mobile-root .iakob-mobile-slide[data-detail="Apartment Floor Plan"]::after,
#iakob-mobile-root .iakob-mobile-slide[data-detail="Commercial Floor Plan"]::after,
#iakob-mobile-root .iakob-mobile-slide[data-detail="Building Elevations"]::after {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
  content: "";
  left: var(--iakob-sheet-frame-left);
  pointer-events: none;
  position: absolute;
  top: var(--iakob-sheet-frame-top);
  height: var(--iakob-sheet-frame-height);
  width: var(--iakob-sheet-frame-width);
  z-index: 2;
}

html.iakob-mobile-debug-frames-enabled
  #iakob-mobile-root
  .iakob-mobile-slide:is(
    [data-detail="Apartment Floor Plan"],
    [data-detail="Commercial Floor Plan"],
    [data-detail="Building Elevations"]
  )::after {
  outline: 1px solid rgba(48, 66, 84, 0.82);
  outline-offset: -1px;
}

#iakob-mobile-root .iakob-mobile-slide[data-detail="Apartment Floor Plan"] {
  --iakob-sheet-frame-left: 16.666667%;
  --iakob-sheet-frame-top: 9.375%;
  --iakob-sheet-frame-width: 58.333333%;
  --iakob-sheet-frame-height: 81.25%;
}

#iakob-mobile-root .iakob-mobile-slide[data-detail="Commercial Floor Plan"] {
  --iakob-sheet-frame-left: 18.75%;
  --iakob-sheet-frame-top: 9.375%;
  --iakob-sheet-frame-width: 64.583333%;
  --iakob-sheet-frame-height: 87.5%;
}

#iakob-mobile-root .iakob-mobile-slide[data-detail="Building Elevations"] {
  --iakob-sheet-frame-left: 4.166667%;
  --iakob-sheet-frame-top: 6.25%;
  --iakob-sheet-frame-width: 91.666667%;
  --iakob-sheet-frame-height: 87.5%;
}

/* The temporary mobile frame is the same 48 x 32 geometry as desktop. It is
   hidden in presentation; the measured drawing content is installed inside. */
#iakob-mobile-root
  .iakob-mobile-slide:is(
    [data-detail="Apartment Floor Plan"],
    [data-detail="Commercial Floor Plan"],
    [data-detail="Building Elevations"]
  )
  .iakob-commercial-building-mobile-grid-frame {
  align-items: initial;
  display: block;
  height: var(--iakob-sheet-frame-height);
  left: var(--iakob-sheet-frame-left);
  max-height: none;
  overflow: hidden;
  position: absolute;
  top: var(--iakob-sheet-frame-top);
  width: var(--iakob-sheet-frame-width);
}

#iakob-mobile-root
  .iakob-commercial-building-mobile-grid-frame
  .iakob-commercial-building-mobile-grid-image {
  height: var(--iakob-drawing-image-height) !important;
  left: var(--iakob-drawing-image-left) !important;
  max-height: none !important;
  max-width: none !important;
  position: absolute !important;
  top: var(--iakob-drawing-image-top) !important;
  width: var(--iakob-drawing-image-width) !important;
}

/* The mobile adapter extracts the raster from the desktop group. Rebuild that
   same rigid frame/image relationship inside its responsive image container. */
#iakob-mobile-root
  .iakob-mobile-slide:is(
    [data-detail="Elevation"],
    [data-detail="Typical Floor Plan"],
    [data-detail="Courtyard Elevation"]
  )
  .iakob-mobile-legacy-image-frame {
  aspect-ratio: var(--iakob-independent-frame-aspect);
  display: block;
  flex: none;
  height: auto;
  margin: auto;
  max-height: none;
  max-width: none;
  overflow: visible;
  position: relative;
  width: min(
    calc(100vw - 60px),
    calc(
      (
          100dvh - var(--iakob-mobile-safe-top) -
            var(--iakob-mobile-safe-bottom) - 60px
        ) * var(--iakob-independent-frame-aspect)
    )
  );
}

#iakob-mobile-root
  .iakob-mobile-slide:is(
    [data-detail="Elevation"],
    [data-detail="Typical Floor Plan"],
    [data-detail="Courtyard Elevation"]
  )
  .iakob-mobile-legacy-image-frame::after {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 2;
}

#iakob-mobile-root
  .iakob-mobile-slide:is(
    [data-detail="Elevation"],
    [data-detail="Typical Floor Plan"],
    [data-detail="Courtyard Elevation"]
  )
  .iakob-mobile-legacy-image {
  height: auto;
  left: var(--iakob-independent-image-left);
  max-height: none;
  max-width: none;
  object-fit: fill;
  position: absolute;
  top: var(--iakob-independent-image-top);
  width: var(--iakob-independent-image-width);
}

#iakob-mobile-root .iakob-mobile-slide[data-detail="Elevation"] {
  --iakob-independent-frame-aspect: 2.823529;
  --iakob-independent-image-left: 1.190476%;
  --iakob-independent-image-top: -44.691877%;
  --iakob-independent-image-width: 97.619048%;
}

#iakob-mobile-root .iakob-mobile-slide[data-detail="Typical Floor Plan"] {
  --iakob-independent-frame-aspect: 2.823529;
  --iakob-independent-image-left: 1.463294%;
  --iakob-independent-image-top: -43.823529%;
  --iakob-independent-image-width: 97.619048%;
}

#iakob-mobile-root .iakob-mobile-slide[data-detail="Courtyard Elevation"] {
  --iakob-independent-frame-aspect: 2.823529;
  --iakob-independent-image-left: 1.190476%;
  --iakob-independent-image-top: -41.960784%;
  --iakob-independent-image-width: 97.619048%;
}

/* Semantic replacements for the text-only boards on Snap Screens 6.12-6.14. */
html.iakob-building-i-snap .iakob-commercial-building-text-frame {
  flex: 0 0 auto;
  height: 853.333333px;
  overflow: hidden;
  position: relative;
  width: 1280px;
}

html.iakob-building-i-snap .iakob-commercial-building-text-board {
  background: #fff;
  box-sizing: border-box;
  color: #292929;
  height: 853.333333px;
  left: 0;
  position: absolute;
  top: 0;
  transform-origin: left top;
  width: 1280px;
}

html.iakob-building-i-snap .iakob-commercial-building-text-primary {
  color: #010101;
  font-family: var(--iakob-font-heading) !important;
  font-size: var(
    --iakob-commercial-building-primary-authored-size,
    15px
  ) !important;
  font-weight: 400;
  letter-spacing: var(
    --iakob-commercial-building-heading-authored-spacing,
    var(--iakob-heading-letter-spacing)
  );
  line-height: 1;
  margin: 0;
  padding: 0;
  text-transform: uppercase;
  white-space: nowrap;
}

html.iakob-building-i-snap .iakob-commercial-building-text-secondary {
  color: #242424;
  font-family: var(--iakob-font-supporting) !important;
  font-size: var(
    --iakob-commercial-building-secondary-authored-size,
    12px
  ) !important;
  font-weight: 400;
  letter-spacing: var(--iakob-supporting-letter-spacing);
  line-height: 1.5;
}

html.iakob-building-i-snap .iakob-commercial-building-text-block {
  left: 280px;
  position: absolute;
  width: 720px;
}

html.iakob-building-i-snap .iakob-commercial-building-text-block-intro {
  top: 168px;
}

html.iakob-building-i-snap .iakob-commercial-building-text-block-massing {
  top: 304px;
}

html.iakob-building-i-snap .iakob-commercial-building-text-block-living {
  top: 496px;
}

html.iakob-building-i-snap .iakob-commercial-building-text-block p {
  margin: calc(
      var(--iakob-project-description-heading-gap) -
        var(--iakob-commercial-building-primary-authored-size)
    )
    0 0;
}

html.iakob-building-i-snap .iakob-commercial-building-data-column {
  position: absolute;
  top: 184px;
}

html.iakob-building-i-snap .iakob-commercial-building-data-column-left {
  left: 136px;
  width: 360px;
}

html.iakob-building-i-snap .iakob-commercial-building-data-column-right {
  left: 576px;
  width: 570px;
}

html.iakob-building-i-snap .iakob-commercial-building-data-list {
  margin: calc(
      var(--iakob-project-description-heading-gap) -
        var(--iakob-commercial-building-primary-authored-size)
    )
    0 0;
}

html.iakob-building-i-snap .iakob-commercial-building-data-list > div {
  display: grid;
  margin-bottom: 15px;
}

html.iakob-building-i-snap
  .iakob-commercial-building-data-column-left
  .iakob-commercial-building-data-list
  > div {
  grid-template-columns: 160px 1fr;
}

html.iakob-building-i-snap
  .iakob-commercial-building-data-column-right
  .iakob-commercial-building-data-list
  > div {
  grid-template-columns: 170px 1fr;
}

html.iakob-building-i-snap .iakob-commercial-building-data-list dt,
html.iakob-building-i-snap .iakob-commercial-building-data-list dd {
  margin: 0;
}

html.iakob-building-i-snap .iakob-commercial-building-scope-title {
  position: absolute;
  top: calc(185px + var(--iakob-project-description-heading-gap));
}

html.iakob-building-i-snap .iakob-commercial-building-scope-title-left {
  left: 136px;
}

html.iakob-building-i-snap .iakob-commercial-building-scope-title-right {
  left: 672px;
}

html.iakob-building-i-snap .iakob-commercial-building-scope-list {
  left: 136px;
  position: absolute;
  top: calc(185px + var(--iakob-project-description-heading-gap));
}

html.iakob-building-i-snap .iakob-commercial-building-scope-description {
  left: 672px;
  margin: 0;
  position: absolute;
  top: calc(185px + var(--iakob-project-description-heading-gap));
}

/* The mobile adapter normally scales a cloned 1366px legacy canvas. Text-only
   boards opt out of that raster-oriented transform so 15px/12px remain the
   final visible sizes rather than being scaled twice. */
#iakob-mobile-root
  .iakob-mobile-slide:has(.iakob-commercial-building-text-board)
  .iakob-mobile-visual,
#iakob-mobile-root
  .iakob-mobile-slide:has(.iakob-commercial-building-text-board)
  .iakob-mobile-legacy-canvas,
#iakob-mobile-root
  .iakob-mobile-slide:has(.iakob-commercial-building-text-board)
  .iakob-mobile-legacy-source,
#iakob-mobile-root
  .iakob-mobile-slide:has(.iakob-commercial-building-text-board)
  .iakob-mobile-legacy-source
  > div,
#iakob-mobile-root .iakob-commercial-building-text-frame,
#iakob-mobile-root .iakob-commercial-building-text-board {
  height: 100% !important;
  inset: auto !important;
  max-height: none !important;
  max-width: none !important;
  position: relative !important;
  transform: none !important;
  width: 100% !important;
}

#iakob-mobile-root
  .iakob-mobile-slide:has(.iakob-commercial-building-text-board)
  .iakob-mobile-legacy-canvas {
  aspect-ratio: auto !important;
  overflow: visible !important;
}

#iakob-mobile-root .iakob-commercial-building-text-board {
  --iakob-commercial-building-primary-authored-size: 15px !important;
  --iakob-commercial-building-secondary-authored-size: 12px !important;
  --iakob-commercial-building-heading-authored-spacing: var(
    --iakob-heading-letter-spacing
  ) !important;
  box-sizing: border-box;
}

#iakob-mobile-root .iakob-commercial-building-text-block,
#iakob-mobile-root .iakob-commercial-building-data-column,
#iakob-mobile-root .iakob-commercial-building-scope-title,
#iakob-mobile-root .iakob-commercial-building-scope-list,
#iakob-mobile-root .iakob-commercial-building-scope-description {
  left: auto;
  position: relative;
  top: auto !important;
  width: auto;
}

#iakob-mobile-root .iakob-commercial-building-text-block p {
  margin-top: 8px;
}

#iakob-mobile-root .iakob-commercial-building-text-board-12 {
  display: flex;
  flex-direction: column;
  gap: 22px;
  justify-content: center;
  padding: 10px 4px;
}

#iakob-mobile-root .iakob-commercial-building-text-board-12 br {
  display: none;
}

#iakob-mobile-root .iakob-commercial-building-text-board-13 {
  display: grid;
  gap: 28px;
  grid-template-columns: 1fr;
  overflow: visible;
  padding: 14px 4px;
}

#iakob-mobile-root .iakob-commercial-building-data-column {
  width: 100%;
}

#iakob-mobile-root .iakob-commercial-building-data-list {
  margin-top: 14px;
}

#iakob-mobile-root .iakob-commercial-building-data-list > div,
#iakob-mobile-root
  .iakob-commercial-building-data-column-left
  .iakob-commercial-building-data-list
  > div,
#iakob-mobile-root
  .iakob-commercial-building-data-column-right
  .iakob-commercial-building-data-list
  > div {
  grid-template-columns: minmax(125px, 42%) 1fr;
  margin-bottom: 7px;
}

#iakob-mobile-root .iakob-commercial-building-text-board-14 {
  display: grid;
  gap: 22px;
  grid-template-columns: 1fr;
  padding: 18px 4px;
}

#iakob-mobile-root .iakob-commercial-building-scope-description {
  margin: 0;
}

#iakob-mobile-root .iakob-commercial-building-scope-description br {
  display: none;
}

@media (orientation: landscape) and (max-height: 600px) {
  #iakob-mobile-root .iakob-commercial-building-text-board-12 {
    gap: 12px;
    padding: 6px 12px;
  }

  #iakob-mobile-root .iakob-commercial-building-text-block p {
    margin-top: 4px;
  }

  #iakob-mobile-root .iakob-commercial-building-text-board-13 {
    align-content: center;
    gap: 28px;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.35fr);
    padding: 4px 12px;
  }

  #iakob-mobile-root .iakob-commercial-building-data-list {
    margin-top: 8px;
  }

  #iakob-mobile-root
    .iakob-commercial-building-data-column
    .iakob-commercial-building-data-list
    > div {
    margin-bottom: 0;
  }

  #iakob-mobile-root .iakob-commercial-building-text-board-14 {
    align-content: center;
    column-gap: 48px;
    grid-template-columns: 1fr 1fr;
    padding: 8px 42px;
    row-gap: 0;
  }

  #iakob-mobile-root .iakob-commercial-building-scope-title {
    grid-column: auto;
  }

  #iakob-mobile-root .iakob-commercial-building-scope-title-left {
    grid-column: 1;
    grid-row: 1;
  }

  #iakob-mobile-root .iakob-commercial-building-scope-list {
    grid-column: 1;
    grid-row: 2;
  }

  #iakob-mobile-root .iakob-commercial-building-scope-title-right {
    grid-column: 2;
    grid-row: 1;
  }

  #iakob-mobile-root .iakob-commercial-building-scope-description {
    grid-column: 2;
    grid-row: 2;
  }
}

/*
 * Snap 6.3 is the unchanged contrast master. These page-specific filters
 * normalize lighter source boards while preserving their white point.
 */
html.iakob-building-i-snap
  img[src*="commercial-building-page-6-1.png"] {
  filter: brightness(0.704) contrast(2.468) !important;
}

html.iakob-building-i-snap
  img[src*="commercial-building-page-6-4.png"] {
  filter: brightness(0.734) contrast(2.145) !important;
}

html.iakob-building-i-snap
  img[src*="commercial-building-page-6-5.png"] {
  filter: brightness(0.728) contrast(2.199) !important;
}

html.iakob-building-i-snap
  img[src*="commercial-building-page-6-6.png"] {
  filter: brightness(0.672) contrast(2.93) !important;
}

html.iakob-building-i-snap
  img[src*="commercial-building-page-6-7.png"] {
  filter: brightness(0.674) contrast(2.891) !important;
}
