.why-special__layout {
  display: none;
  width: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: 27px;
  padding-bottom: var(--section-spacing);
  padding-inline: var(--section-padding-x);
}

.why-special__layout--desktop { display: flex; }
.why-special__layout--mobile { display: none; }
@media (max-width: 988px) {
  .why-special__layout {
    padding-inline: var(--section-padding-x-mobile);
  }
  .why-special__layout--desktop { display: none; }
  .why-special__layout--mobile { display: flex; }
}

.why-special__title { width: 100%; }

.why-special__action-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;

  gap: clamp(10px, calc(0.541px + 1.35135vw), 20px);
}
.why-special__layout--mobile .why-special__action-row { gap: 10px; }

.why-special__stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;

  gap: clamp(10px, calc(0.541px + 1.35135vw), 20px);
}
.why-special__layout--mobile .why-special__stack { gap: 10px; }

.why-special__intro {
  display: flex;

  align-items: center;
  width: 100%;

  gap: clamp(20px, calc(-57.568px + 11.0811vw), 102px);

  padding-left: clamp(30px, calc(1.622px + 4.05405vw), 60px);
  /* The 68.6px that Figma's 503-wide photo box letterboxes around the
     portrait image at 1440, pulled out so the row can compress; 30 is
     the mobile card's own padding. Recompute if the photo ramp changes. */
  padding-right: clamp(30px, calc(-6.514px + 5.2162vw), 68.6px);
  background: var(--color-cards-bg);
  border-radius: var(--radius-medium);
}
/* Row until text (288) + gap + photo + paddings stop fitting at their
   floors; recompute if any of those change. */
@media (max-width: 697.98px) {
  .why-special__layout--mobile .why-special__intro {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 0 30px;
  }
}

.why-special__intro-content {
  display: flex;
  flex-direction: column;

  gap: clamp(30px, calc(20.541px + 1.35135vw), 40px);

  padding-block: clamp(30px, calc(1.622px + 4.05405vw), 60px);

  flex: 1 1 0px;

  min-width: 288px;
}
@media (max-width: 697.98px) {
  .why-special__layout--mobile .why-special__intro-content {
    flex: none;
    min-width: 0;
    width: 100%;
    gap: 30px;
    padding-top: 30px;
    padding-bottom: 0;
  }
}

.why-special__intro-text {
  display: flex;
  flex-direction: column;
  gap: 17px;
}
.why-special__intro-title {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-primary);
  font-weight: 500;
  font-size: var(--font-size-h3-card-l);
  line-height: 1.2;

  max-width: clamp(25rem, calc(172.973px + 32.4324vw), 40rem);
}
.why-special__intro-body {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-primary);
  font-weight: 400;
  font-size: var(--font-size-body-card-l);
  line-height: 1.4;

  max-width: clamp(25rem, calc(172.973px + 32.4324vw), 40rem);
}

.why-special__intro-photo {
  flex: 0 0 auto;
  height: clamp(362px, calc(286.324px + 10.8108vw), 442px);
  width: auto;
  /* The image file's own ratio; Figma's 503/453 box is this plus the
     letterbox now carried by the card's padding-right. */
  aspect-ratio: 820 / 1024;
  border-radius: var(--radius-medium);
  overflow: hidden;
}
@media (max-width: 697.98px) {
  .why-special__layout--mobile .why-special__intro-photo {
    flex: none;
    min-width: 0;
    width: 100%;
    aspect-ratio: auto;
    height: 362px;
  }
  /* Right-aligned while the box is wider than the 290px image; at the
     mobile frame the box is exactly that wide, so it reads as centred. */
  .why-special__layout--mobile .why-special__intro-photo img {
    object-position: right center;
  }
}
.why-special__intro-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain; /* never cover — these illustrations must not be cropped */
}

.why-special__cards {
  display: flex;
  width: 100%;

  gap: clamp(10px, calc(0.541px + 1.35135vw), 20px);
}
.why-special__cards--carousel {
  gap: 10px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;

  position: relative;
  left: calc(-1 * var(--section-padding-x-mobile));
  width: calc(100% + 2 * var(--section-padding-x-mobile));
  scroll-padding-inline: var(--section-padding-x-mobile);
}
.why-special__cards--carousel .why-special__card--mobile:first-child {
  margin-left: var(--section-padding-x-mobile);
}
.why-special__cards--carousel .why-special__card--mobile:last-child {
  margin-right: var(--section-padding-x-mobile);
}
.why-special__cards--carousel::-webkit-scrollbar { display: none; }

.why-special__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 0%;

  min-width: 220px;
  gap: 9px;

  padding:
    clamp(21.9px, calc(5.07px + 1.870vw), 32px)
    clamp(20.6px, calc(4.93px + 1.741vw), 30px)
    clamp(32.9px, calc(7.73px + 2.796vw), 48px);
  background: var(--color-cards-bg);
  border-radius: var(--radius-medium);
  text-align: center;
}

.why-special__card-badge {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 1;
  display: none;
  align-items: center;
  justify-content: center;
  height: 23px;
  padding: 0 10.5px;
  border-radius: 999px;
  background: var(--color-bg);
  color: #0f0f10;
  font-family: var(--font-primary);
  font-weight: 400;
  font-size: 14px;
}
@media (max-width: 899.98px) {
  .why-special__card--mobile {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: none;
    /* 450 where the strip starts (899, PROPOSED: two cards, the second's
       right edge just cut) down to the mobile frame's 280 at 390; below
       that the frame's 280-of-350 share. % is the bleeding track, i.e.
       the viewport; recompute if the strip's start or the cap changes. */
    width: min(
      calc(149.74px + 33.399%),
      calc(0.8 * (100% - 2 * var(--section-padding-x-mobile))),
      450px
    );
    min-width: 0;
    height: 506px;
    padding: 0;
    border-radius: var(--radius-medium-mobile);
    overflow: hidden;
    scroll-snap-align: start;
  }
  .why-special__card-badge {
    display: inline-flex;
  }
}

.why-special__card-illustration {
  width: 100%;
  max-width: 300px;
  aspect-ratio: 300 / 377;

  min-height: 0;
}
@media (max-width: 899.98px) {
  .why-special__card--mobile .why-special__card-illustration {
    box-sizing: border-box;
    width: 100%;
    aspect-ratio: auto;
    height: 336px;
    padding: 10px;
  }
}
.why-special__card-illustration img {
  display: block;
  width: 100%;
  height: 100%;

  object-fit: contain; /* never cover — these illustrations must not be cropped */
  border-radius: inherit;
}

.why-special__card-text {
  display: flex;
  flex-direction: column;
  gap: 17px;
  width: 100%;
}
@media (max-width: 899.98px) {
  .why-special__card--mobile .why-special__card-text {
    flex: none;
    gap: 5px;
    width: 206px;

    padding-bottom: 48px;
  }
}
.why-special__card-title {
  margin: 0 auto;
  color: var(--color-text);
  font-family: var(--font-primary);
  font-weight: 500;
  font-size: var(--font-size-h3-card-m);
  line-height: 1.05;

  max-width: 10.7em;
}
.why-special__card-body {
  margin: 0 auto;
  color: var(--color-text);
  font-family: var(--font-primary);
  font-weight: 400;
  font-size: var(--font-size-body-card-s);
  line-height: 1.3;

  max-width: 18.125em;
}

