/**
 * Platform landing pages — proportional desktop scale from the 1920px frame.
 *
 * Mobile sections already use their 390px formulas. Between 1024px and 1920px
 * every desktop value below follows the same viewport ratio instead of freezing
 * at a clamp() minimum while its surrounding grid keeps shrinking.
 */

@media (min-width: 1024px) {
  .page-platform {
    --platform-frame: min(100vw, 1920px);
    --layout-width: calc(var(--platform-frame) * 1800 / 1920);
    --v2-grid-col-1: calc(var(--platform-frame) * 663 / 1920);
    --v2-grid-col-2: calc(var(--platform-frame) * 662 / 1920);
    --v2-grid-col-3: calc(var(--platform-frame) * 435 / 1920);
    --v2-grid-gap: calc(var(--platform-frame) * 20 / 1920);
    --v2-grid-main-start: calc(var(--v2-grid-col-1) + var(--v2-grid-gap));
    --v2-grid-side-start: calc(var(--v2-grid-main-start) + var(--v2-grid-col-2) + var(--v2-grid-gap));
    --v2-grid-main-width: calc(var(--v2-grid-col-2) + var(--v2-grid-gap) + var(--v2-grid-col-3));
  }

  /* Shared platform CTAs. */
  .page-platform .v2-btn--primary,
  .page-platform .v2-btn--dark,
  .page-platform .v2-btn--glass {
    --cta-size: calc(var(--platform-frame) * 80 / 1920);
  }

  .page-platform .v2-btn--primary .v2-btn__text,
  .page-platform .v2-btn--dark .v2-btn__text,
  .page-platform .v2-btn--glass .v2-btn__text {
    min-width: calc(var(--platform-frame) * 173 / 1920);
    padding: calc(var(--platform-frame) * 19 / 1920) calc(var(--platform-frame) * 40 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-btn__icon-img {
    width: calc(var(--platform-frame) * 21 / 1920);
    height: calc(var(--platform-frame) * 21 / 1920);
  }

  /* Hero. */
  .page-platform .v2-section--meta-hero {
    --v2-meta-header-overlap: calc(var(--platform-frame) * 72 / 1920);
  }

  .page-platform .v2-meta-hero {
    gap: calc(var(--platform-frame) * 32 / 1920);
    padding-top: calc(var(--v2-meta-header-overlap) + var(--platform-frame) * 24 / 1920);
    padding-bottom: calc(var(--platform-frame) * 60 / 1920);
  }

  .page-platform .v2-section--meta-hero .v2-breadcrumbs__list,
  .page-platform .v2-section--meta-hero .v2-breadcrumbs__item {
    gap: calc(var(--platform-frame) * 12 / 1920);
  }

  .page-platform .v2-section--meta-hero .v2-breadcrumbs__link,
  .page-platform .v2-section--meta-hero .v2-breadcrumbs__current {
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-section--meta-hero .v2-breadcrumbs__sep {
    width: calc(var(--platform-frame) * 7 / 1920);
  }

  .page-platform .v2-meta-hero__title-visual {
    width: calc(var(--platform-frame) * 1544 / 1920);
  }

  .page-platform .v2-meta-hero__title {
    gap: calc(var(--platform-frame) * 280 / 1920);
    font-size: calc(var(--platform-frame) * 107 / 1920);
  }

  .page-platform .v2-meta-hero__bottom {
    gap: calc(var(--platform-frame) * 40 / 1920);
    padding-top: calc(var(--platform-frame) * 28 / 1920);
  }

  .page-platform .v2-meta-hero__intro {
    gap: calc(var(--platform-frame) * 40 / 1920);
  }

  .page-platform .v2-meta-hero__cta .v2-btn--primary .v2-btn__text {
    min-width: calc(var(--platform-frame) * 188 / 1920);
  }

  /* Infrastructure system. */
  .page-platform .v2-section--system {
    padding-top: calc(var(--platform-frame) * 120 / 1920);
  }

  .page-platform .v2-system__header .v2-descriptor {
    gap: calc(var(--platform-frame) * 13 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-system__header .v2-descriptor__dot {
    width: calc(var(--platform-frame) * 10 / 1920);
    height: calc(var(--platform-frame) * 10 / 1920);
  }

  .page-platform .v2-system__heading {
    font-size: calc(var(--platform-frame) * 90 / 1920);
  }

  .page-platform .v2-system__stage {
    padding-bottom: calc(var(--platform-frame) * 120 / 1920);
  }

  .page-platform .v2-system__video-grid,
  .page-platform .v2-system__layout {
    grid-template-columns:
      minmax(0, calc(var(--platform-frame) * 662 / 1920))
      minmax(0, 1fr)
      minmax(0, calc(var(--platform-frame) * 662 / 1920));
    column-gap: calc(var(--platform-frame) * 60 / 1920);
    padding-top: calc(var(--platform-frame) * 80 / 1920);
  }

  .page-platform .v2-system__video-sticky {
    width: calc(var(--platform-frame) * 520 / 1920);
  }

  .page-platform .v2-system__card {
    gap: calc(var(--platform-frame) * 20 / 1920);
  }

  /* Without / With comparison. */
  .page-platform .v2-section--meta-compare {
    padding-block: calc(var(--platform-frame) * 80 / 1920);
  }

  .page-platform .v2-meta-compare__grid {
    grid-template-columns: repeat(2, minmax(0, calc(var(--platform-frame) * 890 / 1920)));
    gap: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-meta-compare__card {
    min-height: calc(var(--platform-frame) * 820 / 1920);
    padding: calc(var(--platform-frame) * 40 / 1920) calc(var(--platform-frame) * 40 / 1920) calc(var(--platform-frame) * 32 / 1920);
    border-radius: calc(var(--platform-frame) * 10 / 1920);
  }

  .page-platform .v2-meta-compare__card-head {
    margin-bottom: calc(var(--platform-frame) * 40 / 1920);
  }

  .page-platform .v2-meta-compare__card-title {
    max-width: calc(var(--platform-frame) * 490 / 1920);
    font-size: calc(var(--platform-frame) * 70 / 1920);
  }

  .is-lang-uk .page-platform .v2-meta-compare__card-title {
    font-size: calc(var(--platform-frame) * 61 / 1920);
  }

  .page-platform .v2-meta-compare__badge {
    width: calc(var(--platform-frame) * 60 / 1920);
    height: calc(var(--platform-frame) * 60 / 1920);
    font-size: calc(var(--platform-frame) * 24 / 1920);
  }

  .page-platform .v2-meta-compare__row {
    gap: calc(var(--platform-frame) * 16 / 1920);
    min-height: calc(var(--platform-frame) * 84 / 1920);
    padding-block: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-meta-compare__row-key,
  .page-platform .v2-meta-compare__row-text {
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-meta-compare__row-dot {
    width: calc(var(--platform-frame) * 10 / 1920);
    height: calc(var(--platform-frame) * 10 / 1920);
  }

  /* TechHub full-screen block. */
  .page-platform .v2-techhub__stage {
    padding-block: calc(var(--platform-frame) * 50 / 1920);
    padding-inline: calc(var(--platform-frame) * 60 / 1920);
  }

  .page-platform .v2-techhub__top .v2-descriptor,
  .page-platform .v2-techhub__top .v2-descriptor__text {
    gap: calc(var(--platform-frame) * 15 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-techhub__top .v2-descriptor__dot {
    width: calc(var(--platform-frame) * 10 / 1920);
    height: calc(var(--platform-frame) * 10 / 1920);
  }

  .page-platform .v2-techhub__heading,
  .page-platform .v2-techhub__heading-line {
    max-width: calc(var(--platform-frame) * 860 / 1920);
    font-size: calc(var(--platform-frame) * 90 / 1920);
  }

  .page-platform .v2-techhub__text {
    max-width: calc(var(--platform-frame) * 1160 / 1920);
    font-size: calc(var(--platform-frame) * 18 / 1920);
  }

  /* Advertiser challenges. */
  .page-platform .v2-section--meta-challenges {
    padding-block: calc(var(--platform-frame) * 100 / 1920);
  }

  .page-platform.page-platform--snapchat .v2-section--meta-challenges {
    padding-top: calc(var(--platform-frame) * 128 / 1920);
    padding-bottom: calc(var(--platform-frame) * 100 / 1920);
  }

  .page-platform .v2-meta-challenges__head {
    gap: calc(var(--platform-frame) * 40 / 1920);
    margin-bottom: calc(var(--platform-frame) * 100 / 1920);
  }

  .page-platform.page-platform--snapchat .v2-meta-challenges__head {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    justify-content: stretch;
    gap: clamp(20px, calc(var(--platform-frame) * 30 / 1920), 30px);
  }

  .page-platform .v2-meta-challenges__head-main {
    gap: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform.page-platform--snapchat .v2-meta-challenges__head-main {
    gap: calc(var(--platform-frame) * 60 / 1920);
  }

  .page-platform .v2-section--meta-challenges .v2-descriptor {
    gap: calc(var(--platform-frame) * 10 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-section--meta-challenges .v2-descriptor__dot {
    width: calc(var(--platform-frame) * 10 / 1920);
    height: calc(var(--platform-frame) * 10 / 1920);
  }

  .page-platform .v2-meta-challenges__heading {
    max-width: calc(var(--platform-frame) * 1057 / 1920);
    font-size: calc(var(--platform-frame) * 90 / 1920);
  }

  .page-platform.page-platform--snapchat .v2-meta-challenges__heading {
    max-width: 100%;
    font-size: calc(var(--platform-frame) * 85 / 1920);
  }

  .page-platform .v2-meta-challenges__lead {
    max-width: calc(var(--platform-frame) * 384 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform.page-platform--snapchat .v2-meta-challenges__lead {
    justify-self: start;
    max-width: 100%;
    font-size: clamp(14px, calc(var(--platform-frame) * 20 / 1920), 20px);
  }

  .page-platform .v2-meta-challenges__grid {
    grid-template-columns: repeat(4, minmax(0, calc(var(--platform-frame) * 435 / 1920)));
    gap: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-meta-challenges__card {
    min-height: calc(var(--platform-frame) * 442 / 1920);
    padding: calc(var(--platform-frame) * 30 / 1920);
    border-radius: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-meta-challenges__card-top {
    margin-bottom: calc(var(--platform-frame) * 30 / 1920);
  }

  .page-platform .v2-meta-challenges__icon {
    width: calc(var(--platform-frame) * 80 / 1920);
    height: calc(var(--platform-frame) * 80 / 1920);
    border-radius: calc(var(--platform-frame) * 10 / 1920);
  }

  .page-platform .v2-meta-challenges__icon img {
    width: calc(var(--platform-frame) * 37 / 1920);
    height: calc(var(--platform-frame) * 35 / 1920);
  }

  .page-platform .v2-meta-challenges__index {
    font-size: calc(var(--platform-frame) * 16 / 1920);
  }

  .page-platform .v2-meta-challenges__card-title {
    margin-bottom: calc(var(--platform-frame) * 20 / 1920);
    font-size: calc(var(--platform-frame) * 32 / 1920);
  }

  .page-platform .v2-meta-challenges__card-line {
    margin-bottom: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-meta-challenges__card-text {
    font-size: calc(var(--platform-frame) * 18 / 1920);
  }

  /* Google-only expansion path. */
  .page-platform .v2-section--google-expansion-path {
    padding-block: calc(var(--platform-frame) * 100 / 1920);
  }

  .page-platform .v2-google-expansion-path__layout {
    grid-template-columns: calc(var(--platform-frame) * 60 / 1920) minmax(0, 1fr);
    column-gap: calc(var(--platform-frame) * 395 / 1920);
  }

  .page-platform .v2-google-expansion-path__badge {
    width: calc(var(--platform-frame) * 60 / 1920);
    height: calc(var(--platform-frame) * 60 / 1920);
    margin-top: calc(var(--platform-frame) * 5 / 1920);
    font-size: calc(var(--platform-frame) * 24 / 1920);
  }

  .page-platform .v2-google-expansion-path__head {
    margin-bottom: calc(var(--platform-frame) * 60 / 1920);
  }

  .page-platform .v2-google-expansion-path__heading {
    font-size: calc(var(--platform-frame) * 70 / 1920);
  }

  .page-platform .v2-google-expansion-path__row {
    grid-template-columns: calc(var(--platform-frame) * 45 / 1920) minmax(calc(var(--platform-frame) * 180 / 1920), calc(var(--platform-frame) * 290 / 1920)) minmax(0, 1fr);
    column-gap: calc(var(--platform-frame) * 40 / 1920);
    padding-block: calc(var(--platform-frame) * 52 / 1920);
  }

  .page-platform .v2-google-expansion-path__index {
    font-size: calc(var(--platform-frame) * 16 / 1920);
  }

  .page-platform .v2-google-expansion-path__title {
    font-size: calc(var(--platform-frame) * 32 / 1920);
  }

  .page-platform .v2-google-expansion-path__text {
    font-size: calc(var(--platform-frame) * 18 / 1920);
  }

  /* How it works. */
  .page-platform .v2-section--how {
    padding-block: calc(var(--platform-frame) * 120 / 1920);
  }

  .page-platform .v2-how__grid {
    grid-template-columns: calc(var(--platform-frame) * 890 / 1920) minmax(0, 1fr);
    column-gap: calc(var(--platform-frame) * 40 / 1920);
  }

  .page-platform .v2-how__visual {
    border-radius: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-how__header .v2-descriptor {
    gap: calc(var(--platform-frame) * 13 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-how__header .v2-descriptor__dot {
    width: calc(var(--platform-frame) * 10 / 1920);
    height: calc(var(--platform-frame) * 10 / 1920);
  }

  .page-platform .v2-how__heading {
    font-size: calc(var(--platform-frame) * 90 / 1920);
  }

  .page-platform .v2-how__step {
    column-gap: calc(var(--platform-frame) * 30 / 1920);
    row-gap: calc(var(--platform-frame) * 10 / 1920);
  }

  .page-platform .v2-how__step-icon img {
    width: calc(var(--platform-frame) * 90 / 1920);
    height: calc(var(--platform-frame) * 90 / 1920);
  }

  .page-platform .v2-how__step-title {
    margin-bottom: calc(var(--platform-frame) * 10 / 1920);
    font-size: calc(var(--platform-frame) * 38 / 1920);
  }

  .page-platform .v2-how__step-text {
    font-size: calc(var(--platform-frame) * 18 / 1920);
  }

  /* Rewards CTA block. */
  .page-platform .v2-meta-rewards__content {
    padding-top: calc(var(--platform-frame) * 50 / 1920);
    padding-bottom: calc(var(--platform-frame) * 65 / 1920);
  }

  .page-platform .v2-meta-rewards__layout {
    min-height: calc(100dvh - var(--platform-frame) * 115 / 1920);
  }

  .page-platform .v2-meta-rewards__panel {
    gap: calc(var(--platform-frame) * 40 / 1920);
  }

  .page-platform .v2-meta-rewards__copy {
    gap: calc(var(--platform-frame) * 30 / 1920);
  }

  .page-platform .v2-section--meta-rewards .v2-descriptor {
    gap: calc(var(--platform-frame) * 10 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-section--meta-rewards .v2-descriptor__dot {
    width: calc(var(--platform-frame) * 10 / 1920);
    height: calc(var(--platform-frame) * 10 / 1920);
  }

  .page-platform .v2-meta-rewards__heading {
    font-size: calc(var(--platform-frame) * 90 / 1920);
  }

  .is-lang-uk .page-platform .v2-meta-rewards__heading {
    font-size: calc(var(--platform-frame) * 65 / 1920);
  }

  .page-platform .v2-meta-rewards__lead {
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-section--meta-rewards .v2-btn--primary .v2-btn__text {
    min-width: calc(var(--platform-frame) * 188 / 1920);
  }

  .page-platform .v2-section--meta-audience {
    padding-bottom: calc(var(--platform-frame) * 120 / 1920);
  }

  .page-platform .v2-section--client-impact {
    padding-top: calc(var(--platform-frame) * 160 / 1920);
  }

  /* FAQ. */
  .page-platform .v2-section--faq {
    padding-block: calc(var(--platform-frame) * 120 / 1920);
  }

  .page-platform .v2-faq__head {
    top: calc(var(--platform-frame) * 90 / 1920);
    padding-bottom: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-faq__head .v2-descriptor {
    gap: calc(var(--platform-frame) * 15 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-faq__head .v2-descriptor__dot {
    width: calc(var(--platform-frame) * 10 / 1920);
    height: calc(var(--platform-frame) * 10 / 1920);
  }

  .page-platform .v2-faq__heading {
    font-size: calc(var(--platform-frame) * 82 / 1920);
  }

  .page-platform .v2-faq__foot {
    gap: calc(var(--platform-frame) * 30 / 1920);
  }

  .page-platform .v2-faq__quote {
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-faq__trigger {
    gap: calc(var(--platform-frame) * 40 / 1920);
    padding-block: calc(var(--platform-frame) * 40 / 1920);
  }

  .page-platform .v2-faq__question {
    font-size: calc(var(--platform-frame) * 32 / 1920);
  }

  .page-platform .v2-faq__toggle {
    width: calc(var(--platform-frame) * 60 / 1920);
    height: calc(var(--platform-frame) * 60 / 1920);
  }

  .page-platform .v2-faq__toggle img {
    width: calc(var(--platform-frame) * 22 / 1920);
    height: calc(var(--platform-frame) * 22 / 1920);
  }

  .page-platform .v2-faq__answer {
    max-width: calc(var(--platform-frame) * 498 / 1920);
    padding-top: calc(var(--platform-frame) * 30 / 1920);
    padding-bottom: calc(var(--platform-frame) * 40 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-section--meta-faq .v2-faq__group + .v2-faq__group {
    margin-top: calc(var(--platform-frame) * 40 / 1920);
  }

  .page-platform .v2-section--meta-faq .v2-faq__group-label {
    padding-block: calc(var(--platform-frame) * 20 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  /* Contact form. */
  .page-platform .v2-section--contact {
    padding-block: calc(var(--platform-frame) * 120 / 1920);
  }

  .page-platform .v2-contact__head {
    margin-bottom: calc(var(--platform-frame) * 40 / 1920);
  }

  .page-platform .v2-contact__head .v2-descriptor {
    gap: calc(var(--platform-frame) * 15 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-contact__head .v2-descriptor__dot {
    width: calc(var(--platform-frame) * 10 / 1920);
    height: calc(var(--platform-frame) * 10 / 1920);
  }

  .page-platform .v2-contact__heading {
    font-size: calc(var(--platform-frame) * 90 / 1920);
  }

  .page-platform .v2-contact__intro-row {
    gap: calc(var(--platform-frame) * 40 / 1920);
  }

  .page-platform .v2-contact__intro,
  .page-platform .v2-contact__note,
  .page-platform .v2-contact__label {
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-contact__form {
    gap: calc(var(--platform-frame) * 40 / 1920);
  }

  .page-platform .v2-contact__fields {
    gap: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-contact__field {
    gap: calc(var(--platform-frame) * 20 / 1920);
    padding-bottom: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-contact__input {
    font-size: calc(var(--platform-frame) * 38 / 1920);
  }

  .page-platform .v2-contact__choices,
  .page-platform .v2-contact__submit-wrap {
    padding-top: calc(var(--platform-frame) * 30 / 1920);
  }

  .page-platform .v2-contact__choice .v2-contact__label {
    margin-bottom: calc(var(--platform-frame) * 40 / 1920);
  }

  .page-platform .v2-contact__chip,
  .page-platform .v2-contact__chip.v2-form__chip {
    min-height: calc(var(--platform-frame) * 60 / 1920);
    padding: calc(var(--platform-frame) * 18 / 1920) calc(var(--platform-frame) * 72 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }

  .page-platform .v2-contact__submit {
    height: calc(var(--platform-frame) * 80 / 1920);
    padding: calc(var(--platform-frame) * 19 / 1920) calc(var(--platform-frame) * 40 / 1920);
    font-size: calc(var(--platform-frame) * 20 / 1920);
  }
}
