/* ==========================================================================
   KOBIL — Inside KOBIL — Section: Pre-footer CTA
   Figma: desktop 6019:107781 (1440x644, copy column 608 at x=80, vertically
   centred) · mobile 6100:68260 (393x572, copy 321 at x=24/y=69).

   Same photo band as /technologies/ai-trust/: on desktop a white wash from the left
   carries navy copy; the phone frame drops the wash entirely and sets the copy
   in white on the photo, so the two breakpoints invert the palette.
   ========================================================================== */

.sec-ik-cta {
  position: relative;
  isolation: isolate;
  overflow: clip;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: var(--w644);
  padding: var(--w48) var(--w80);
}

/* Figma stretches the photo to 100% x 105.7% of the band and anchors it 5.64%
   above the top edge — `fill`, not `cover`, so the crop matches the design. */
.ik-cta__photo {
  position: absolute;
  top: -5.64%;
  left: 0;
  z-index: -2;
  width: 100%;
  height: 105.7%;
  max-width: none;
  object-fit: fill;
}

.ik-cta__photo--mobile { display: none; }

/* Rectangle 161124252: a 644x688 white 0.9 → transparent gradient rotated
   -90° at 80% opacity, i.e. a 688-wide 0.72 → 0 fade from the left edge. */
.ik-cta__scrim {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  width: var(--w688);
  max-width: 100%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0) 100%);
}

.ik-cta__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--w48);
  width: 100%;
  max-width: var(--w608);
}

.ik-cta__copy {
  display: flex;
  flex-direction: column;
  gap: var(--w12);
  width: 100%;
  color: var(--navy);
}

.ik-cta__eyebrow {
  font-family: var(--font-mono);
  font-size: var(--w14);
  font-weight: 500;
  line-height: var(--w32);
  text-transform: uppercase;
}

.ik-cta__title {
  font-family: var(--font-serif);
  font-size: var(--w56);
  font-weight: 400;
  line-height: 1.2;
}

/* Figma sets the headline on two lines; the spans keep that break without
   hard-coding a width the German copy would not survive. */
.ik-cta__title span { display: block; }

/* Outlined pill (Figma: 1px System/100% border, no fill) */
.ik-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--w8);
  height: var(--w56);
  padding: var(--w8) var(--w20) var(--w8) var(--w24);
  border: 1px solid var(--navy);
  border-radius: var(--w32);
  background: transparent;
  font-family: var(--font-ui);
  font-size: var(--w16);
  font-weight: 600;
  line-height: var(--w20);
  color: var(--navy);
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}

.ik-cta__btn:hover {
  background: var(--navy);
  color: var(--white);
}

.ik-cta__btn-icon {
  flex: none;
  width: var(--w18);
  height: var(--w18);
  transition: transform var(--dur) var(--ease), filter var(--dur) var(--ease);
}

.ik-cta__btn:hover .ik-cta__btn-icon {
  transform: translateX(3px);
  filter: brightness(0) invert(1);
}

@media (max-width: 768px) {
  .sec-ik-cta {
    align-items: flex-start;
    min-height: var(--m572);
    padding: var(--m69) var(--m24);
  }

  .ik-cta__photo--desktop { display: none; }

  /* The phone crop is a 592x862 window of the same source, which is exactly
     393:572 — `cover` therefore lands it pixel-for-pixel. */
  .ik-cta__photo--mobile {
    display: block;
    top: 0;
    height: 100%;
    object-fit: cover;
  }

  /* No wash on the phone frame: the copy goes white on the photo instead. */
  .ik-cta__scrim { display: none; }

  .ik-cta__content {
    gap: var(--m32);
    max-width: var(--m321);
  }

  .ik-cta__copy {
    gap: var(--m8);
    color: var(--white);
  }

  .ik-cta__eyebrow {
    font-size: var(--m12);
    line-height: var(--m32);
  }

  .ik-cta__title {
    font-size: var(--m28);
    line-height: var(--m36);
  }

  /* Two desktop lines wrap on their own at 321 — keeping them as blocks would
     leave a ragged single word on line two. */
  .ik-cta__title span { display: inline; }

  .ik-cta__btn {
    height: var(--m40);
    padding: var(--m4) var(--m12) var(--m4) var(--m16);
    border-radius: var(--m32);
    border-color: var(--white);
    font-size: var(--m14);
    line-height: var(--m18);
    color: var(--white);
  }

  .ik-cta__btn:hover {
    background: var(--white);
    color: var(--navy);
  }

  .ik-cta__btn-icon {
    width: var(--m18);
    height: var(--m18);
    /* The arrow ships navy for the desktop pill; invert it for the white one. */
    filter: brightness(0) invert(1);
  }

  .ik-cta__btn:hover .ik-cta__btn-icon { filter: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ik-cta__btn,
  .ik-cta__btn-icon { transition: none; }
}
