// Узкая мобильная версия включается на всех экранах до 490px включительно.
$hero-mq-narrow: 490px;

.hero {
  background-color: var(--clr-bg);
  color: var(--clr-text);
  font-family: var(--font-manrope);
  min-height: clamp(720px, 56.25vw, 1080px);
  overflow: hidden;
  position: relative;

  @media (width <= #{$bp-md}) {
    min-height: unset;
  }

  &__bg {
    background: linear-gradient(
      to right,
      var(--clr-bg) 0%,
      var(--clr-bg) 50%,
      var(--clr-bg-tint-pink) 50%,
      var(--clr-bg-tint-pink) 100%
    );
    height: 120%;
    left: 50%;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: rotate(-2deg);
    transform-origin: center center;
    translate: -50% -50%;
    width: 120%;
    z-index: 1;
  }

  &__content {
    display: grid;
    font-family: inherit;
    grid-template-columns: 1fr 1fr;
    min-height: clamp(720px, 56.25vw, 1080px);
    position: relative;
    transform: none;
    width: 100%;
    z-index: 2;

    @media (width <= #{$bp-md}) {
      grid-template-columns: 1fr;
      min-height: unset;
    }
  }

  @media (width <= #{$bp-md}) {
    &__panel {
      order: -1;
    }
  }

  /* Крупный кадр с продуктом держим в нужной зоне через размер и позицию фона. */
  &__media {
    align-self: stretch;
    background-color: var(--clr-bg-tint-pink);
    background-image: url('/images/fermenkol/hero-showcase.jpg');
    background-image: image-set(
      url('/images/fermenkol/hero-showcase.avif') 1x,
      url('/images/fermenkol/hero-showcase.webp') 1x,
      url('/images/fermenkol/hero-showcase.jpg') 1x
    );
    background-position: 50% 65%;
    background-repeat: no-repeat;
    background-size: clamp(145%, calc(111% + 3vw), 170%);
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    position: relative;

    @media (width <= #{$bp-md}) {
      aspect-ratio: 960 / 1080;
      background-position: 50% 65%;
      background-size: 170%;
      height: auto;
      max-height: 70vh;
      min-height: unset;
    }

    @media (width <= #{$hero-mq-narrow}) {
      max-height: 87vh;
      width: 100%;
    }
  }

  /* Декор вынесен в псевдоэлементы, чтобы не мешать фону и контенту панели. */
  &__panel {
    --hero-boobler-tl-rotate: 125deg;
    --hero-boobler-tl-scale: 1.58;
    --hero-boobler-tl-flip-x: -1;
    --hero-boobler-tl-flip-y: 1;
    --hero-boobler-tl-width: clamp(180px, 34vw, 300px);
    --hero-boobler-tl-height: clamp(180px, 34vw, 300px);
    --hero-boobler-tl-left: -9.7%;
    --hero-boobler-tl-top: -3.2%;
    --hero-boobler-tl-bg-size: contain;
    --hero-boobler-tl-bg-pos: center top;
    --hero-boobler-tl-origin: 50% 35%;

    --hero-boobler-br-rotate: 64deg;
    --hero-boobler-br-scale: 1.2;
    --hero-boobler-br-flip-x: -1;
    --hero-boobler-br-flip-y: 1;
    --hero-boobler-br-width: clamp(220px, 42vw, 380px);
    --hero-boobler-br-height: clamp(220px, 42vw, 380px);
    --hero-boobler-br-right: -4.23%;
    --hero-boobler-br-bottom: -7%;
    --hero-boobler-br-bg-size: contain;
    --hero-boobler-br-bg-pos: center bottom;
    --hero-boobler-br-origin: 58% 62%;

    align-items: center;
    background-color: var(--clr-bg);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    isolation: isolate;
    overflow: hidden;
    padding-block-start: clamp(40px, 3.75vw, 72px);
    padding-inline: 44px;
    position: relative;

    @media (max-width: $bp-1600) {
      padding-inline: 36px;
    }

    @media (max-width: $bp-1440) {
      padding-inline: 28px;
    }

    @media (max-width: $bp-1280) {
      padding-inline: 22px;
    }

    &::before,
    &::after {
      background-image: url('/images/fermenkol/boobler.png');
      background-image: image-set(
        url('/images/fermenkol/boobler.avif') 1x,
        url('/images/fermenkol/boobler.webp') 1x,
        url('/images/fermenkol/boobler.png') 1x
      );
      background-repeat: no-repeat;
      content: '';
      pointer-events: none;
      position: absolute;
      z-index: 0;
    }

    &::before {
      background-position: var(--hero-boobler-tl-bg-pos);
      background-size: var(--hero-boobler-tl-bg-size);
      height: var(--hero-boobler-tl-height);
      left: var(--hero-boobler-tl-left);
      top: var(--hero-boobler-tl-top);
      transform: rotate(var(--hero-boobler-tl-rotate))
        scale(
          calc(var(--hero-boobler-tl-flip-x) * var(--hero-boobler-tl-scale)),
          calc(var(--hero-boobler-tl-flip-y) * var(--hero-boobler-tl-scale))
        );
      transform-origin: var(--hero-boobler-tl-origin);
      width: var(--hero-boobler-tl-width);
    }

    &::after {
      background-position: var(--hero-boobler-br-bg-pos);
      background-size: var(--hero-boobler-br-bg-size);
      bottom: var(--hero-boobler-br-bottom);
      height: var(--hero-boobler-br-height);
      right: var(--hero-boobler-br-right);
      transform: rotate(var(--hero-boobler-br-rotate))
        scale(
          calc(var(--hero-boobler-br-flip-x) * var(--hero-boobler-br-scale)),
          calc(var(--hero-boobler-br-flip-y) * var(--hero-boobler-br-scale))
        );
      transform-origin: var(--hero-boobler-br-origin);
      width: var(--hero-boobler-br-width);
    }

    @media (width <= #{$bp-md}) {
      --hero-boobler-tl-width: clamp(140px, 52vw, 220px);
      --hero-boobler-tl-height: clamp(140px, 52vw, 220px);
      --hero-boobler-tl-left: -10%;
      --hero-boobler-tl-top: -12%;

      --hero-boobler-br-width: clamp(170px, 60vw, 250px);
      --hero-boobler-br-height: clamp(170px, 60vw, 250px);
      --hero-boobler-br-right: -18%;
      --hero-boobler-br-bottom: -10%;

      padding-block: 2rem 2.5rem;
      padding-inline: 1.25rem;
    }

    /* Средние мобильные экраны получают компактный верх панели. */
    @media (width > #{$hero-mq-narrow}) and (width <= #{$bp-md}) {
      padding-top: 21px;
    }

    /* Правила для узких экранов идут ниже, чтобы не спорить с общим мобильным слоем. */
    @media (width <= #{$hero-mq-narrow}) {
      padding-bottom: 16px;
      padding-top: 55px;
    }
  }

  &__inner {
    align-items: center;
    display: flex;
    flex-direction: column;
    margin-inline: auto;
    max-width: var(--layout-panel-content-max);
    position: relative;
    text-align: center;
    transform: none;
    width: 100%;
    z-index: 1;
  }

  &__date {
    color: var(--clr-text);
    line-height: var(--leading-date);
    margin-bottom: var(--layout-space-xl);
    transform: none;
    width: 100%;

    @media (width <= #{$bp-md}) {
      line-height: 1;
      margin-bottom: clamp(1.25rem, 5vw, 2.5rem);
      text-align: center;
    }

    @media (width <= #{$hero-mq-narrow}) {
      margin-bottom: 73px;
    }
  }

  &__date-line {
    display: block;
    font-size: var(--font-size-58);
    font-weight: var(--font-weight-medium);
    line-height: var(--leading-date);
    margin: 0;

    @media (width <= #{$bp-md}) {
      font-size: 32px;
      line-height: 32px;
    }
  }

  &__date-time {
    font-size: var(--font-size-58);
    font-weight: var(--font-weight-light);
    line-height: var(--leading-date);

    @media (width <= #{$bp-md}) {
      font-size: 32px;
      line-height: 32px;
    }
  }

  &__date-suffix {
    font-size: var(--font-size-24);
    font-weight: var(--font-weight-semibold);
    line-height: var(--leading-date);

    @media (width <= #{$bp-md}) {
      font-size: 16px;
      line-height: 32px;
    }
  }

  /* Подложка повернута отдельно, текст остается горизонтальным. */
  &__badge {
    align-self: center;
    display: inline-flex;
    justify-content: center;
    margin-bottom: clamp(12px, 1.05vw, 20px);
    max-width: 100%;
    position: relative;
    transform: none;
    width: max-content;

    @media (width <= #{$hero-mq-narrow}) {
      margin-bottom: 48px;
    }
  }

  &__badge-text {
    color: var(--clr-text-inverse);
    display: block;
    font-size: var(--font-size-59);
    font-weight: var(--font-weight-semibold);
    letter-spacing: var(--track-title-59);
    line-height: var(--leading-none);
    margin: 0;
    max-width: 100%;
    padding: clamp(4px, 0.42vw, 8px) clamp(18px, 1.2vw, 24px);
    pointer-events: none;
    position: relative;
    text-align: center;
    white-space: nowrap;
    z-index: 0;

    &::before {
      background-color: var(--clr-primary);
      content: '';
      inset: 0;
      position: absolute;
      transform: translate(11px, 1px) rotate(1.5deg);
      width: 829px;
      z-index: -1;
    }

    @media (max-width: $bp-1600) {
      &::before {
        width: 720px;
      }
    }

    @media (max-width: $bp-1440) {
      &::before {
        width: 620px;
      }
    }

    @media (max-width: $bp-1280) {
      &::before {
        width: 540px;
      }
    }

    /* Сначала общая мобильная версия, ниже — уточнения для самых узких экранов. */
    @media (width <= #{$bp-md}) {
      max-width: min(100%, 18rem);
      white-space: normal;
      width: auto;

      /* На средних мобильных экранах у бейджа одна общая подложка. */
      @media (width > #{$hero-mq-narrow}) {
        font-size: var(--font-size-59);
        letter-spacing: -0.025em;
        padding: 0.25rem 0.75rem;

        &::before {
          display: block;
          transform: translate(4px, 1px) rotate(1.5deg);
          width: 100%;
        }
      }
    }

    @media (width <= #{$hero-mq-narrow}) {
      align-items: center;
      display: flex;
      flex-direction: column;
      font-size: unset;
      font-weight: unset;
      letter-spacing: unset;
      line-height: unset;
      max-width: min(100%, 18rem);
      padding: 0.25rem 0;
      text-align: center;
      white-space: normal;
      width: auto;

      &::before {
        content: none;
      }
    }
  }

  &__badge-part {
    & + & {
      margin-inline-start: 0.25em;
    }

    @media (width > #{$bp-md}) {
      color: var(--clr-text-inverse);
    }

    @media (width <= #{$bp-md}) {
      @media (width > #{$hero-mq-narrow}) {
        color: var(--clr-text-inverse);
      }
    }

    @media (width <= #{$hero-mq-narrow}) {
      & + & {
        margin-inline-start: 0;
      }

      font-family: var(--font-manrope);
      font-size: 32px;
      font-style: normal;
      font-weight: var(--font-weight-semibold);
      letter-spacing: -0.8px;
      line-height: 100%;
      text-align: center;

      /* Подрезка текста поддерживается не во всех браузерах, поэтому идет как улучшение. */
      /* stylelint-disable order/properties-alphabetical-order, property-no-unknown */
      font-feature-settings: 'liga' off, 'clig' off;
      leading-trim: both;
      text-edge: cap;
      /* stylelint-enable order/properties-alphabetical-order, property-no-unknown */

      &--a {
        color: var(--clr-text-primary);
        margin-left: -7px;
      }

      &--b {
        color: var(--clr-text-inverse);
        display: inline-block;
        position: relative;
        z-index: 0;

        /* На узких экранах выделяем только вторую строку бейджа. */
        &::before {
          background-color: var(--clr-primary);
          content: '';
          inset: 0;
          position: absolute;
          transform: translate(4px, 1px) rotate(1.5deg);
          width: 100%;
          z-index: -1;
        }
      }
    }
  }

  &__title {
    color: var(--clr-text);
    font-size: var(--font-size-48);
    font-weight: var(--font-weight-regular);
    letter-spacing: var(--track-title-48);
    line-height: var(--leading-none);
    margin: 0 0 clamp(24px, 2.45vw, 47px);
    max-width: clamp(720px, 48vw, 1040px);
    text-align: center;
    text-transform: none;
    transform: none;

    @media (width <= #{$bp-md}) {
      font-size: var(--font-size-48);
      letter-spacing: -0.025em;
      margin-bottom: 1.25rem;
      max-width: min(100%, 22rem);
    }

    @media (width <= #{$hero-mq-narrow}) {
      font-size: unset;
      letter-spacing: unset;
      line-height: unset;
      margin-bottom: 53px;
      margin-left: 6px;
      max-width: min(100%, 22rem);
    }
  }

  /* Перенос «2026:» нужен только на самых узких экранах. */
  &__title-br-490 {
    display: none;

    @media (width <= #{$hero-mq-narrow}) {
      display: block;
    }
  }

  &__title-line {
    display: block;
    line-height: var(--leading-none);

    &--emphasis {
      font-weight: var(--font-weight-semibold);
      line-height: 1;
      text-transform: uppercase;
    }

    @media (width <= #{$hero-mq-narrow}) {
      color: var(--clr-text-primary);
      font-family: var(--font-manrope);
      font-size: 32px;
      font-style: normal;
      font-weight: var(--font-weight-regular);
      letter-spacing: -0.8px;
      line-height: 100%;
      text-align: center;

      /* stylelint-disable order/properties-alphabetical-order, property-no-unknown */
      font-feature-settings: 'liga' off, 'clig' off;
      leading-trim: both;
      text-edge: cap;
      /* stylelint-enable order/properties-alphabetical-order, property-no-unknown */

      &--emphasis {
        font-weight: var(--font-weight-semibold);
        text-transform: uppercase;
      }
    }
  }

  &__lead {
    color: var(--clr-text);
    font-size: var(--font-size-24);
    font-weight: var(--font-weight-regular);
    line-height: var(--leading-tight-12);
    margin: 0 0 clamp(24px, 2.71vw, 52px);
    max-width: clamp(460px, 27.55vw, 620px);
    text-align: center;
    transform: none;

    @media (width <= #{$bp-md}) {
      font-size: var(--font-size-24);
      margin-bottom: 1.5rem;
      max-width: min(100%, 33rem);
    }

    @media (width <= #{$hero-mq-narrow}) {
      margin-bottom: 64px;
    }
  }

  &__cta {
    align-items: center;
    -webkit-backdrop-filter: blur(var(--blur-backdrop));
    backdrop-filter: blur(var(--blur-backdrop));
    background-color: var(--clr-primary);
    border: 1px solid var(--clr-border-light);
    border-radius: var(--radius-btn);
    color: var(--clr-text-inverse);
    display: inline-flex;
    font-family: var(--font-manrope);
    font-size: var(--font-size-24);
    font-style: normal;
    font-weight: var(--font-weight-bold);
    justify-content: center;
    letter-spacing: var(--track-btn);
    line-height: 100%;
    padding-block: clamp(18px, 1.35vw, 26px);
    padding-inline: var(--pad-btn-x);
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transform: none;
    white-space: nowrap;

    /* Подрезка текста поддерживается не во всех браузерах, поэтому идет как улучшение. */
    /* stylelint-disable order/properties-alphabetical-order, property-no-unknown */
    font-feature-settings: 'liga' off, 'clig' off;
    leading-trim: both;
    text-edge: cap;
    /* stylelint-enable order/properties-alphabetical-order, property-no-unknown */

    @media (width <= #{$bp-md}) {
      box-sizing: border-box;
      font-size: var(--font-size-24);
      max-width: 100%;
      padding: clamp(0.875rem, 3vw, 1.25rem) clamp(1rem, 4vw, 1.75rem);
      white-space: normal;
    }

    /* На самых узких экранах держим кнопку крупнее общей мобильной типографики. */
    @media (width <= #{$hero-mq-narrow}) {
      font-size: var(--font-size-hero-cta-narrow);
      padding: 26px 30px;
    }
  }

  &__brand {
    display: block;
    height: auto;
    margin-top: clamp(56px, 6.2vw, 119px);
    width: 125px;

    @media (max-width: 1920px) {
      margin-top: clamp(28px, 3.1vw, 59.5px);
    }

    @media (max-width: 1140px) {
      margin-top: clamp(40px, 4vw, 56px);
    }

    @media (width <= #{$bp-md}) {
      margin-top: 3.5rem;
      width: 110px;
    }

    @media (width <= #{$hero-mq-narrow}) {
      margin-top: 53px;
      width: 76px;
    }
  }
}
