.season-content {
    /* 商品 */
  .season-product {
    /* 大枠余白 */

    /* コンテンツ準備前 */
    &.has-loading-product-content:not(.is-ready),
    .has-loading-product-content:not(.is-ready) {
      padding-top: 40px;
      padding-bottom: 96px;
    }

    .season-product-dep-block,
    .product-ovs-hotel,
    .product-ovs-op,
    .product-dom-hotel,
    .product-dom-op {
      /* 内大枠コンテンツ準備前 */
      &:not(:has(.has-product, .is-content-ready)) {
        padding-top: 40px;
        padding-bottom: 96px;
        .product-wrap,
        .product-parent-block {
          &:has(+ .product-wrap, + .product-parent-block) {
            margin-bottom: 96px;
          }
        }
        .product-parent-block {
          .product-wrap {
            &:has(+ .button.button--type-round, .grid-row) {
              margin-bottom: 40px;
            }
          }
        }
      }

      /* 内大枠コンテンツ準備後 */
      &:has(.has-product) {
        padding-top: 40px;
        padding-bottom: 96px;
      }
    }
    
    .heading--title {
      display: flex;
      flex-direction: column;
      align-items: center;
      & > span {
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-bottom: 64px;
        font-size: 36px;

        @media(width <= 767px) {
          font-size: 28px;
        }
        &::before {
          content: "";
          display: block;
          margin-bottom: 4px;
          width: 90px;
          height: 44px;
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center center;
          background-image: url(/season/common/assets/images/heading_en_plan.svg);
        }
        &::after {
          content: "";
          display: block;
          width: 160px;
          height: 8px;
          background-image: url("/season/common/assets/images/heading_decoration_underline.svg");
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
          margin: 8px auto 0;
        }
      }

      & > em {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        min-width: 308px;
        min-height: 60px;
        padding: 4px 72px;
        text-align: center;
        font-style: normal;
        font-size: 26px;
        pointer-events: none;

        &:not(:last-child) {
          margin-bottom: 40px;
        }

        &::before,
        &::after {
          content: "";
          display: block;
          width: 243px;
          height: 57px;
          position: absolute;
          background-repeat: no-repeat;
          background-size: contain;
          background-position: center;
        }
        &::before {
          top: 0;
          left: 0;
          background-image: url("/season/common/assets/images/heading_decoration_frame_left.svg");
        }
        &::after {
          bottom: 0;
          right: 0;
          background-image: url("/season/common/assets/images/heading_decoration_frame_right.svg");
        }
        @media(width <= 767px) {
          padding: 4px 24px;
          font-size: 18px;
        }
      }
    }

    h3 {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 10px;
      margin-bottom: 40px;
      font-size: 26px;
      &::before,
      &::after {
        content: "";
        display: block;
        width: 30px;
        height: 1px;
        background-color: var(--color-season-base-black);
      }
    }

    /* 後続の要素による↓余白の調整 */
    .product-wrap {
      &.has-product:not(:last-child) {
        margin-bottom: 40px;
      }
      &:nth-last-child(1 of .has-product) {
        margin-bottom: 0;
      }
      &:nth-last-child(1 of .has-product):has(~ .related-product),
      &:nth-last-child(1 of .has-product):has(~ .related-product-parent) {
        margin-bottom: 40px;
      }
      &:nth-last-child(1 of .has-product):has(~ .related-product.flow),
      &:nth-last-child(1 of .has-product):has(~ .related-product-parent.flow) {
        margin-bottom: 20px;
      }
      &.has-product:has(~ .product-wrap.has-product) {
        margin-bottom: 96px;
      }
    }

    .product-parent-block {
      &.has-product:not(:last-child) {
        margin-bottom: 40px;
      }
      &:nth-last-child(1 of .has-product) {
        margin-bottom: 0;
      }
      &:nth-last-child(1 of .has-product):has(~ .related-product-parent) {
        margin-bottom: 40px;
      }
      &:nth-last-child(1 of .has-product):has(~ .related-product-parent.flow) {
        margin-bottom: 20px;
      }
      &.has-product:has(~ .product-wrap.has-product) {
        margin-bottom: 96px;
      }
    }

    .slideCardList__container {
      &:not(:last-child) {
        margin-bottom: 40px;
      }
    }

    .season-slider-slide {
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      justify-content: stretch;
      height: auto;
    }

    .card {
      display: flex;
      flex-direction: column;
      height: 100%;
      padding-bottom: 16px;
      overflow: hidden;
      text-decoration: none;
      color: var(--color-season-base-black);
      border-radius: 8px;
      background: var(--color-season-base-white);
      box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.3);
      transition: box-shadow var(--season-base-animate-interaction);
      .card__imgContainer {
        position: relative;
        overflow: hidden;
        margin-bottom: 16px;
        order: 1;

        img {
          width: 100%;
          /* 基本的に全ての商材個別で比率は上書き */
          aspect-ratio: 4 /3;
          object-fit: contain !important;
          transition: transform var(--season-base-animate-interaction);
        }

        .card__imgTag,
        .card__imgTag2 {
          padding: 2px 8px;
          font-size: 12px;
          font-weight: bold;
          color: var(--color-season-base-white);
          background-color: var(--color-season-base-navy2);
        }

        .card__imgTag {
          position: absolute;
          top: 0;
          right: 0;
          &:empty {
            display: none;
          }
        }
        .card__imgTag2 {
          display: block;

          /* .card hover時に画像拡大したとき、画像の下にならないように */
          position: relative;
        }
      }

      .tagList,
      .card__inner,
      .card__bottomItem {
        padding-left: 16px;
        padding-right: 16px;

        &:not(:last-child) {
          margin-bottom: 8px;
        }
      }

      .tagList {
        order: 3;
        display: flex;
        flex-wrap: wrap;
        gap: 4px;

        .tagList__text {
          padding: 4px 8px;
          border-radius: 4px;
          font-size: 12px;
          line-height: 1.3;
          font-weight: bold;
          color: var(--color-season-base-navy2);
          background-color: var(--color-season-base-navy-light);
        }
      }

      .card__inner {
        order: 2;
        .card__heading {
          font-size: 20px;
          font-weight: bold;
          line-height: 1.3;
          margin-bottom: 4px;
        }
        .card__text,
        .card__note {
          font-size: 14px;
          margin-bottom: 4px;
          &:last-child {
            margin-bottom: 0;
          }
        }
      }
      .card__bottomItem {
        order: 4;
        margin-top: auto;
      }

      .card__price--compact,
      .card__calender,
      .product__list--notes {
        text-align: right;
      }
      .card__price--compact {
        display: block;
        font-size: 20px;
        color: var(--color-season-base-red);
        font-weight: bold;
        word-break: auto-phrase;
      }

      .card__calender,
      .product__list--notes {
        font-size: 12px;
        color: var(--color-season-base-navy2);
      }

      .card__info {
        display: flex;
        flex-wrap: wrap;
        font-size: 12px;
        box-sizing: border-box;
        .card__infoHeading {
          width: 35%;
          padding: 4px 8px;
          color: #fff;
          border-right: 1px solid #fff;
          border-bottom: 1px solid #fff;
          background: var(--color-season-base-navy2);
        }

        .card__infoData {
          width: 65%;
          padding: 4px 8px;
          margin-left: 0;
          border-bottom: 1px solid #fff;
          background: var(--color-season-base-navy-light);
        }
      }

      &:hover {
        box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.5);

        img {
          transform: scale(1.1);
        }
      }
    }

    /* 海外Air + Hotel */
    .season-product-ovs-air-hotel {
      .card__inner {
        flex-grow: 1;
        display: flex;
        flex-direction: column;
        .card__price {
          margin-top: auto;
          margin-bottom: 4px;
        }
      }
    }

    /* サムネイル画像比率 */
    /* 海外ツアー */
    .product-ovs-tour {
      .card .card__imgContainer img {
        aspect-ratio: 236 / 157 !important;
      }
    }
    /* 海外航空券 + ホテル */
    .product-ovs-air-hotel {
      .card .card__imgContainer {
        img {
          aspect-ratio: 236 / 157 !important;
        }
      }
    }
    /* 海外航空券 */
    .product-ovs-air {
      .card .card__imgContainer img {
        aspect-ratio: 236 / 157 !important;
      }
    }
    /* 海外ホテル */
    .product-ovs-hotel {
      .card .card__imgContainer img {
        aspect-ratio: 236 / 157 !important;
      }
    }
    /* 海外OP */
    .product-ovs-op {
      .card .card__imgContainer img {
        aspect-ratio: 236 / 157 !important;
      }
    }
    /* 国内ツアー */
    .product-dom-tour {
      .card .card__imgContainer img {
        aspect-ratio: 11 / 8 !important;
      }
    }
    /* 国内バスツアー */
    .product-dom-bus-tour {
      .card .card__imgContainer img {
        aspect-ratio: 11 / 8 !important;
      }
    }
    /* 国内航空券 + ホテル */
    .product-dom-air-hotel {
      .card .card__imgContainer img {
        aspect-ratio: 11 / 8 !important;
      }
    }
    /* 国内航空券 */
    .product-dom-air {
      .card .card__imgContainer img {
        aspect-ratio: 11 / 8 !important;
      }
    }
    /* 国内ホテル */
    .product-dom-hotel {
      .card .card__imgContainer img {
        aspect-ratio: 11 / 8 !important;
      }
    }
    /* 国内OP */
    .product-dom-op {
      .card .card__imgContainer img {
        aspect-ratio: 11 / 8 !important;
      }
    }

    /* ボタン */
    a.button.button--type-round {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 4px;
      width: 80%;
      min-width: 256px;
      padding: 12px 40px;
      margin: 0 auto;
      text-align: center;
      line-height: 1.3;
      font-weight: bold;
      text-decoration: none;
      color: var(--color-season-base-white);
      border-radius: 100px;
      transition: opacity  var(--season-base-animate-interaction);

      &:hover {
        opacity: 0.5;
      }
      @media(width <= 767px) {
        padding: 12px 16px;
      }
    }

    /* 多重構造の子階層の中にあるボタンは見た目が異なる */
    .product-parent-block {
      .product-wrap {
        a.button.button--type-round {
          --arrow-height: 8px;
          position: relative;
          padding: 12px 26px 12px 16px;
          background-color: transparent;
          border-style: solid;
          border-width: 1px;
          &::after {
            content: "";
            position: absolute;
            top: calc(50% - (var(--arrow-height) / 2));
            right: 16px;
            display: block;
            width: 6px;
            height: 8px;
            background-repeat: no-repeat;
            background-position: center;
            background-size: contain;
          }
        }
      }
    }

    &.season-product-ovs {
      a.button.button--type-round {
        background-color: var(--color-season-ovs-primary);
      }

      .product-parent-block {
        .product-wrap {
          a.button.button--type-round {
            color: var(--color-season-ovs-primary);
            border-color: var(--color-season-ovs-primary);
            &::after {
              background-image: url("/season/common/assets/images/arrow_lineal_blue_right.svg");
            }
          }
        }
      }
    }

    &.season-product-dom {
      a.button.button--type-round {
        background-color: var(--color-season-dom-primary);
      }

      .product-parent-block {
        .product-wrap {
          a.button.button--type-round {
            color: var(--color-season-dom-primary);
            border-color: var(--color-season-dom-primary);
            &::after {
              background-image: url("/season/common/assets/images/arrow_lineal_green_right.svg");
            }
          }
        }
      }
    }

    .product-wrap,
    .product-parent-block {
      > .button.button--type-round {
        width: fit-content;
        max-width: none;
        @media(width <= 767px) {
          width: 100%;
          max-width: calc(100% - 40px);
        }
      }      
    }
    .product-parent-block {
      .product-wrap {
        @media(width <= 767px) {
          .button.button--type-round {
            width: 100%;
          }
        }
      }
    }
    /* ボタンレイアウト */
    .grid-row:has(.button.button--type-round) {
      --item-gap: 16px;
      display: flex;
      flex-wrap: wrap;
      gap: 16px;
      .button.button--type-round {
        min-width: auto;
      }
      .grid-col2 {
        width: calc((100% - var(--item-gap) * 1) / 2);
      }
      .grid-col4 {
        width: calc((100% - var(--item-gap) * 3) / 4);
      }
      .grid-col6 {
        width: calc((100% - var(--item-gap) * 5) / 6);
      }
      .grid-col8 {
        width: calc((100% - var(--item-gap) * 7) / 8);
      }

      @media(width <= 767px) {
        .grid-col2,
        .grid-col4 {
          width: 100%;
        }
        .grid-col6,
        .grid-col8 {
          width: calc((100% - var(--item-gap) * 1) / 2);
        }
      }
    }

    /* タグの表示非表示 */
    .tour-recommended .tagList .tagList__text {
      display: none;
    }
    .tour-recommended .tagList .tagList__text.trf,
    .tour-recommended .tagList .tagList__text.car,
    .tour-recommended .tagList .tagList__text.meal,
    .tour-recommended .tagList .tagList__text.imp,
    .tour-recommended .tagList .tagList__text.imp2,
    .tour-recommended .tagList .tagList__text.line,
    .tour-recommended .tagList .tagList__text.youtube,
    .tour-recommended .tagList .tagList__text.np {
      display: block;
    }

    .season-product-slider-container {
      --slider-pagination-margin: 56px;
      --slider-button-size: 44px;
      --slider-button-margin: 24px;
      --slider-button-offset-x: calc((var(--slider-button-size) + var(--slider-button-margin)) * -1);

      position: relative;
      max-width: calc(var(--season-ui-section-max-width) + (var(--slider-button-size) + var(--slider-button-margin)) * 2);
      margin: 0 auto;
      padding: 0 calc(var(--slider-button-size) + var(--slider-button-margin));

      &:not(:last-child) {
        margin-bottom: 48px;
      }

      .season-product-slider {
        /*
          swiperがoverflow: hiddenをかけていて、
          子要素のbox-shadowが活きないためpaddingとネガティブマージンで調整
        */
        padding: 8px;
        margin: 0 -8px -8px;
      }

      .season-slider-button-prev,
      .season-slider-button-next {
        position: absolute;
        top: calc(50% - (var(--season-slider-bullet-size) / 2) - var(--slider-pagination-margin));

        &:hover {
          background-color: revert;
          opacity: 0.5;
        }
        &.swiper-button-disabled {
          display: none;
        }
      }

      .season-slider-button-prev {
        left: 0;
      }

      .season-slider-button-next {
        right: 0;
      }

      .season-slider-pagination {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        margin-top: var(--slider-pagination-margin);
        gap: 4px;
        &.swiper-pagination-lock {
          display: none;
        }

        .swiper-pagination-bullet {
          margin: 0;
          width: var(--season-slider-bullet-size);
          height: var(--season-slider-bullet-size);
          background-color: var(--color-season-base-navy3);
          opacity: 1;
          &.swiper-pagination-bullet-active {
            background-color: var(--color-season-base-navy4);
          }
        }
      }
    }

    @media(width <= 767px) {
      .season-product-slider-container {
        padding: 0 var(--season-ui-static-sp-padding-x);

        .season-slider-button-prev,
        .season-slider-button-next {
          display: none;
        }
      }
    }

    .related-product,
    .related-product-parent {
      &:is(.flow, .heading--title, .grid-row, .text--subtitle) {
        max-width: var(--season-ui-section-max-width);
        margin: 0 auto;
        &:not(:last-child) {
          margin-bottom: 40px;
        }
        @media(width <= 767px) {
          padding-left: var(--season-ui-static-sp-padding-x);
          padding-right: var(--season-ui-static-sp-padding-x);
        }
      }
      &:is(.text--subtitle) {
        font-weight: bold;
        &:not(:last-child) {
          margin-bottom: 20px;
        }
      }
      /* ボタンの後ろに商品ブロックが隣接している場合アリ */
      &.button.button--type-round:has(+ .product-wrap.has-product) {
        margin-bottom: 96px;
      }
    }
    
  }

  /*
    親セレクタとして全発地に表示する商品も設定
    海外ホテル、海外OP、国内ホテル、国内OP
  */
  .season-product-dep-block,
  .season-product-ovs-hotel,
  .season-product-ovs-op,
  .season-product-dom-hotel,
  .season-product-dom-op {
    /* スライダーを設定しない商品リスト */
    &.disable-product-slider {
      .slideCardList__container {
        &:not(.season-product-slider) {
          max-width: var(--season-ui-section-max-width);
          margin: 0 auto;
          &:not(:last-child) {
            margin-bottom: 40px;
          }
          @media(width < 1104px) {
            padding: 0 20px;
          }
          .slideCardList--col4 {
            display: grid;
            gap: 20px;
            grid-template-columns: repeat(4, 1fr);

            @media(width <= 767px) {
              grid-template-columns: repeat(1, 1fr);
            }
          }
        }
      }
    }
    &:not(.disable-product-slider) {
      .slideCardList__container {
        /* スライダー前の商品リスト */

        /* スライダーのためのhtml整形前の中央寄せ */
        &:not(.season-product-slider) {
          margin-left: auto;
          margin-right: auto;
        }

        /*
          スライダー設定前の表示調整
          1行目しか出ないように
        */
        &:not(.season-slider-initialized) {
          /*
            スライダーセット後のpaddingに合わせて幅を調整
            左右8px * 2
          */
          max-width: calc(var(--season-ui-section-max-width) + 16px);
          overflow: hidden;
          @media(width < 1104px) {
            padding: 0 20px;
          }
          .slideCardList--col4 {
            display: flex;
            overflow: hidden;
            gap: 20px;
            .slideCardList__item--col4 {
              width: calc((100% - 60px) / 4);
              flex-shrink: 0;
              &:last-child {
                margin-right: 0;
              }
              @media(width <= 767px) {
                width: 100%;
              }
            }
          }
        }
      }    
    }
  }
  
  
  /* 
    商品部分のスピナー
  */
  .product-parent-block {
    &,
    &.section__container {
      &:not(.has-product) {
        .product-wrap.is-content-ready {
          padding: 0;
        }
        .related-product-parent {
          /* display: none; */
        }
      }
    }
  }

  /* // 商品無いときの商品関連要素非表示 */
  /*
    表示する発地が確定して発地によって変わるエリアが表示されるまでは
    商品要素大枠の疑似要素でインジケーター表示
  */
  .has-loading-product-content {
    --loading-background-color: rgba(255,255,255,0.5);
    --loading-background-width: 100%;
    --loading-background-height: 100%;
    --loading-spinner-width: 64px;
    --loading-spinner-height: 64px;
    --loading-spinner-pos-top: calc(50% - 32px);
    --loading-spinner-pos-left: calc(50% - 32px);
    --loading-spinner-border: 8px solid var(--color-season-base-blue);
    --loading-spinner-border-top: 8px solid transparent;
    --loading-spinner-border-radius: 50%;
    --loading-spinner-animation: loading-rotate 2s infinite linear;

    position: relative;
    min-height: 450px;

    &::before {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: var(--loading-background-width);
      height: var(--loading-background-height);
      background-color: var(--loading-background-color);
      z-index: var(--z-index-season-product-loading);
    }
    &::after {
      content: "";
      position: absolute;
      width: var(--loading-spinner-width);
      height: var(--loading-spinner-height);
      top: var(--loading-spinner-pos-top);
      left: var(--loading-spinner-pos-left);
      border: var(--loading-spinner-border);
      border-top: var(--loading-spinner-border-top);
      border-radius: var(--loading-spinner-border-radius);
      z-index: var(--z-index-season-product-loading);
      animation: var(--loading-spinner-animation);
    }

    @media(width <= 767px) {
      min-height: 300px;
    }

    .slideCardList__container.related-product {
      min-height: 160px;
    }
    
    /*
      表示する発地が確定して発地によって変わるエリアが表示されたとき（最初は全て非表示）と、
      商品要素が挿入された後でインジケーター非表示にする
    */
    &.is-confirmed-display-area,
    &.is-ready {
      min-height: auto;
      &::before,
      &::after {
        content: none;
      }
    }
    /* すべての商品要素が挿入されたあと */
    &.is-ready {
      .slideCardList__container.related-product {
        min-height: auto;
      }
    }

    /*
      表示する発地が確定して発地によって変わるエリアが表示された後は
      各エリアの商品ブロック内でインジケーターを表示。
      各エリアごとにjsonを読み込んでhtmlを差し込むので、
      htmlが挿入されたブロックは直ぐにインジケーターを非表示にしたい。
      大枠のインジケーターのままだと全てのエリアのjson読み込み・html挿入を待たないといけない。
    */
    .product-wrap {
      position: relative;
        &::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: var(--loading-background-width);
        height: var(--loading-background-height);
        background-color: var(--loading-background-color);
        z-index: var(--z-index-season-product-loading);
      }
    &::after {
      content: "";
      position: absolute;
      width: var(--loading-spinner-width);
      height: var(--loading-spinner-height);
      top: var(--loading-spinner-pos-top);
      left: var(--loading-spinner-pos-left);
      border: var(--loading-spinner-border);
      border-top: var(--loading-spinner-border-top);
      border-radius: var(--loading-spinner-border-radius);
      z-index: var(--z-index-season-product-loading);
      animation: var(--loading-spinner-animation);
    }


      /* 商品のa要素が挿入されている場合 */
      &:has(ul[class*="slideCardList"] li a),
      /* json全て読み込んで全て商品要素挿入したあと */
      &.is-content-ready {
        &::before,
        &::after {
          content: none;
        }
      }

      &,
      &.section__container {
        /* json全て読み込んで全て商品要素挿入したあとで、商品要素を持たない場合 */
        &.is-content-ready {
          &:not(.has-product) {
            padding: 0 16px;
            .season-product-slider-container {
              margin-bottom: 0;
            }
            .related-product {
              display: none;
            }
          }
          .product-item {
            &:not(.has-content) {
              display: none;
            }
          }
        }
        .product-item {
          /* has-contentクラスを付与する前でもa持たないものは非表示 */
          &:not(:has(a)) {
            display: none;
          }
        }  
      }
    }

    /* 親子関係がある商品ブロック */
    .product-parent-block {
      position: relative;

      &::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: var(--loading-background-width);
        height: var(--loading-background-height);
        background-color: var(--loading-background-color);
        z-index: var(--z-index-season-product-loading);
      }
      &::after {
        content: "";
        position: absolute;
        width: var(--loading-spinner-width);
        height: var(--loading-spinner-height);
        top: var(--loading-spinner-pos-top);
        left: var(--loading-spinner-pos-left);
        border: var(--loading-spinner-border);
        border-top: var(--loading-spinner-border-top);
        border-radius: var(--loading-spinner-border-radius);
        z-index: var(--z-index-season-product-loading);
        animation: var(--loading-spinner-animation);
      }
      /* 高さ確保のため最初の要素だけ高さ設定 */
      > :nth-child(1 of .product-wrap) {
        min-height: 160px;
      }
      /* 子要素のインジケーターは不要 */
      .product-wrap {
        &::before,
        &::after {
          content: none;
        }
        /* 子要素のスライダの最低高さも不要 */
        .slideCardList__container.related-product {
          min-height: 0;
        }

        /* 子要素の関連要素は、子要素いずれかに商品a要素が入るまで全て非表示 */
        &:not(:has(ul[class*="slideCardList"] li a)) {
          .related-product {
            display: none;
          }
        }
      }


      &.is-content-ready {
        &:not(.has-product) {
          .related-product-parent {
            display: none;
          }
        }
      }

      /* 商品のa要素が挿入されている場合 */
      &:has(ul[class*="slideCardList"] li a),
      /* json全て読み込んで全て商品要素挿入したあと */
      &.is-content-ready {
        &::before,
        &::after {
          content: none;
        }

        > :nth-child(1 of .product-wrap) {
          min-height: auto;
        }

        .product-wrap {
          .slideCardList__container.related-product {
            min-height: auto;
          }
        }
      }
    }
  }

  /* 商品表示前の見出しと商品ブロックとの余白調整 */
  .season-heading-primary {
    &.pre-product-section.no-margin {
      &:has(+ .has-loading-product-content) {
        margin-bottom: 40px;
      }
      &:has(+ .has-loading-product-content .has-product) {
        margin-bottom: 0;
      }
    }
    &.no-product {
      display: none;
    }
  }
}