@keyframes loading-rotate {
  from { transform: rotateZ(0deg); }
  to { transform: rotateZ(360deg); }
}

.season-content {
  /* 検索モジュールcssでmain要素に定義されているstyle打消し */
  padding: 0;
  background-color: transparent;
  .is-sp-inline {
    display: none;
  }
  @media(width <= 767px) {
    .is-sp-inline {
      display: inline;
    }

    .is-pc-inline {
      display: none;
    }
  }

  
  a {
    /* 検索モジュール配下は除外 */
    &:not(.search-mod-content a) {
      color: var(--color-season-base-black);
    }
  }
  

  .season-button-plane {
    /* button ブラウザのスタイルをリセット */
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    color: inherit;
    text-align: left;
    outline: none;
    -webkit-tap-highlight-color: transparent;
  }

  .season-heading-primary {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 40px;
    .subtitle {
      display: block;
      font-size: 20px;
      font-weight: 700;
      margin-bottom: 4px;
    }
    &::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;
    }
    &.no-margin {
      margin-bottom: 0;
    }
  }
  .season-heading-primary {
    &:is(
      .en-schedule,
      .en-keyword,
      .en-ranking,
      .en-theme,
      .en-article,
      .en-movie,
      .en-other,
      .en-faq,
      .en-plan
    ) {
      &::before {
        content: "";
        display: block;
        margin-bottom: 4px;
        height: 44px;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
      }
    }
    &.en-schedule {
      &::before {
        width: 129px;
        background-image: url("/season/common/assets/images/heading_en_schedule.svg");
      }
    }
    &.en-keyword {
      &::before {
        width: 127px;
        background-image: url("/season/common/assets/images/heading_en_keyword.svg");
      }
    }
    &.en-ranking {
      &::before {
        width: 144px;
        background-image: url("/season/common/assets/images/heading_en_ranking.svg");
      }
    }
    &.en-theme {
      &::before {
        width: 96px;
        background-image: url("/season/common/assets/images/heading_en_theme.svg");
      }
    }
    &.en-article {
      &::before {
        width: 119px;
        background-image: url("/season/common/assets/images/heading_en_article.svg");
      }
    }
    &.en-movie {
      &::before {
        width: 98px;
        background-image: url("/season/common/assets/images/heading_en_movie.svg");
      }
    }
    &.en-other {
      &::before {
        width: 104px;
        background-image: url("/season/common/assets/images/heading_en_other.svg");
      }
    }
    &.en-faq {
      &::before {
        width: 103px;
        background-image: url("/season/common/assets/images/heading_en_faq.svg");
      }
    }
    &.en-plan {
      &::before {
        width: 90px;
        background-image: url("/season/common/assets/images/heading_en_plan.svg");
      }
    }
  }

  .base-button-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
  }

  .season-base-button {
    transition: opacity var(--season-base-animate-interaction);
    &:is(.to-kaigai, .to-kokunai) {
      font-size: 26px;
      font-weight: bold;
      line-height: 1.3;
      min-width: 490px;
      min-height: 84px;
      height: auto;
      padding: 12px 8px;
      border: none;

      transition: opacity var(--season-base-animate-interaction);

      &, &:hover {
        color: var(--color-season-base-white);
      }
      &:hover {
        opacity: 0.5;
      }

      @media(width <= 767px) {
        min-width: 300px;
        min-height: 64px;
        font-size: 16px;
        padding: 12px 16px;
        font-weight: normal;
      }
    }

    &.button-medium {
      font-weight: normal;
      padding: 8px 16px;
      min-width: 256px;
      min-height: 44px;
      &, &:hover {
        color: var(--color-season-base-black);
        background-color: var(--color-season-base-white);
        border-color: var(--color-season-base-navy4);
      }
      &:hover {
        opacity: 0.5;
      }
    }

    &.to-kaigai {
      &, &:hover {
        background-color: var(--color-season-ovs-primary);
      }
    }

    &.to-kokunai {
      &, &:hover {
        background-color: var(--color-season-dom-primary);
      }
    }

    &.button-clear {
      
      font-weight: normal;
      
      
      &, &:hover {
        color: var(--color-season-base-white);
        border-color: var(--color-season-base-navy-light);
        background-color: rgba(255, 255, 255, 0.20);
      }
      &:hover {
        opacity: 0.5;
      }
    }
  }

  .season-page-links {
    background: var(--color-season-base-black);

    .ui-static-section-wrapper {
      padding: 0;
    }

    .link-list {
      display: flex;
      padding: 8px 40px;
      justify-content: center;

      @media(width <= 767px) {
        padding: 8px 4px;
      }

      li {
        display: flex;
        align-items: center;

        &,
        a {
          color: var(--color-season-base-white);
        }

        &:not(:last-child)::after {
          content: "|";
          color: var(--color-season-base-navy);
        }

        a {
          padding: 0 16px;
          text-decoration: none;
          font-size: 14px;
          transition: color var(--season-base-animate-interaction);

          &:hover {
            color: var(--color-season-base-navy);
          }

          @media(width <= 767px) {
            padding: 0 12px;
          }
        }
      }
    }
  }

  /* MV上強調文言 背景色はページ個別に設定 */
  .band-shaped-catchphrase {
    padding: 8px 40px;
    p {
      font-size: 20px;
      text-align: center;
      color: var(--color-season-base-white);
      line-height: 1.3;
    }
    @media(width <= 767px) {
      padding: 8px;
      p {
        font-size: 18px;
      }
    }
  }

  .season-mv {
    width: 100%;
    aspect-ratio: 320 / 121;
    position: relative;

    @media(width <= 767px) {
      aspect-ratio: 375 / 484;
    }

    img {
      object-fit: cover;
      width: 100%;
      height: 100%;
    }

    .mv-links {
      position: absolute;
      right: 24px;
      bottom: 24px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      .to-top,
      .to-kaigai,
      .to-kokunai {
        min-width: 160px;
      }
      .to-kaigai,
      .to-kokunai {
        min-height: 44px;
        padding: 8px 16px;
        font-size: 16px;
      }
      .to-top {
        gap: 10px;
        min-height: 30px;
        padding: 10px 28px 10px 20px;
        border: none;
        &::before {
          content: "";
          display: block;
          width: 5px;
          height: 8px;
          background-image: url("/season/common/assets/images/arrow_lineal_right.svg");
          background-repeat: no-repeat;
          background-position: center;
          background-size: contain;
        }
      }
      @media(width <= 767px) {
        right: 16px;
      }
    }
  }

  .season-nav-block {
    --menu-box-shadow: 0 1px 4px 1px rgba(0, 0, 0, 0.15);

    position: sticky;
    top: 0;
    z-index: var(--z-index-season-season-nav);
    width: 100%;
    background-color: var(--color-season-base-navy-light);
    box-shadow: var(--menu-box-shadow);

    .season-nav-block-inner {
      padding: 16px 40px;
      position: relative;

      @media(width <= 767px) {
        padding: 0;
      }

      .nav-wrapper {
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 0;

        @media(width <= 767px) {
          height: 53px;
          align-items: stretch;
        }

        .dep-selector {
          position: relative;
          .dep-select-button {
            padding: 9px 18px;
            gap: 4px;
            font-size: 12px;
            font-weight: 700;
            border: none;
            background-color: var(--color-season-base-blue);
            &, .dep-icon {
              color: var(--color-season-base-white);
            }
            .dep-icon {
              position: static;
              transform: none;
              
            }
          }

          .dep-selector-content-list {
            .ui-static-pulldown-selector-link {
              padding: 8px 12px;
              &.selected {
                &::before {
                  content: none;
                }
              }
            }
          }

          @media(width <= 767px) {
            flex-shrink: 0;
            .dep-select-button {
              height: 100%;
              border-radius: 0;
            }
            .dep-selector-content {
              left: 0;
              top: 100%;
              .dep-selector-content-list {
                top: 0;
              }
            }
          }
        }
        .to-search-section-anchor {
          position: absolute;
          top: 146px;
          right: 0;
          display: inline-flex;
          padding: 18px 16px;
          gap: 10px;
          border-radius: 8px 0 0 8px;
          color: var(--color-season-base-white);
          background-color: var(--color-season-base-blue);
          cursor: pointer;
          transition: background-color var(--season-base-animate-interaction);
          text-decoration: none;
          .search-text {
            display: flex;
            align-items: center;
            gap: 4px;
            writing-mode: vertical-rl;
            text-orientation: upright;
            text-align: center;
            line-height: 1;
            font-size: 18px;
            font-weight: 700;
            i {
              font-size: 18px;
            }
          }
          &:hover {
            background-color: var(--ui-static-unleash-blue-70);
          }

          @media(width <= 767px) {
            position: static;
            padding: 4px 16px 4px 16px;
            flex-shrink: 0;
            border-radius: 0;
            background-color: var(--ui-static-cyan-70);
            .search-text {
              flex-shrink: 0;
              font-size: 14px;
              font-weight: normal;
              writing-mode: horizontal-tb;

              i {
                font-size: 16px;
              }
            }
          }
        }
        .season-menu-pc {
          @media(width <= 767px) {
            display: none;
          }
          .season-menu-list {
            display: flex;
            padding: 0 40px;
            align-items: center;
            justify-content: center;
            li {
              a {
                padding: 0 16px;
                text-decoration: none;
                font-size: 14px;
                font-weight: 700;
                color: var(--color-season-base-black);
                transition: color var(--season-base-animate-interaction);
                &:hover {
                  color: var(--ui-static-unleash-blue-100);
                  text-decoration: underline;
                }
              }
              &:not(:last-child)::after {
                content: "|";
                color: var(--color-season-base-navy);
                font-weight: 100;
              }
            }
          }
        }

        .season-menu-sp {
          display: none;

          --menu-height: 53px;
          @media(width <= 767px) {
            display: block;
            width: 100%;
            flex-shrink: 1;
            position: relative;
          }
          .season-menu-list-button {
            justify-content: space-between;
            width: 100%;
            height: 100%;
            min-width: auto;
            padding: 16px 20px;
            border: none;
            border-radius: 0;
            background-color: var(--color-season-base-white);

            &::after {
              content: "";
              display: block;
              width: 8px;
              height: 6px;
              background-image: url("/season/common/assets/images/arrow_lineal_down.svg");
              background-repeat: no-repeat;
              background-position: center;
              background-size: contain;
            }

            &.is-active {
              &::after {
                transform: rotate(180deg);
              }
            }
          }

          .menu-panel {
            position: absolute;
            top: 100%;
            right: 0;
            width: 100vw;
            background-color: var(--color-season-base-white);
            box-shadow: var(--menu-box-shadow);

            /* 最大でメニュー以外を占有する高さに */
            /* 古いブラウザ用 */
            max-height: calc(100vh - var(--menu-height));
            /* アドレスバーの伸縮対応でdvh */
            max-height: calc(100dvh - var(--menu-height));
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;

            .menu-main-list {
              /* 全層のリンク・ボタン共通の設定 */
              :is(a, button) {
                display: block;
                width: 100%;
                color: var(--color-season-base-black);
                text-decoration: none;

                /* 中の開閉ボタン */
                &.menu-trigger {
                  display: flex;
                  justify-content: space-between;
                  align-items: center;

                  &::after {
                    content: "";
                    display: block;
                    width: 8px;
                    height: 6px;
                    background-image: url("/season/common/assets/images/arrow_lineal_down.svg");
                    background-repeat: no-repeat;
                    background-position: center;
                    background-size: contain;
                  }

                  &.is-active {
                    &::after {
                      transform: rotate(180deg);
                    }
                  }
                }
              }

              & > li {
                border-top: 1px solid var(--color-season-base-navy);
                background-color: var(--color-season-base-navy-light);
                & > button {
                  cursor: pointer;
                }
                & > :is(a, button) {
                  font-weight: bold;
                  padding: 16px 20px;
                }

                .menu-sub-list {
                  background-color: var(--color-season-base-white);
                  & > li {
                    & > :is(a, button) {
                      padding: 12px 40px;
                      font-size: 14px;
                    }
                    &.no-product {
                      display: none;
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }

  .season-introduction {
    .introduction-primary,
    .introduction-secondary {
      text-align: center;
    }
    .introduction-primary {
      font-size: 32px;
      font-weight: 700;
      margin-bottom: 40px;
      @media(width <= 767px) {
        font-size: 24px;
      }
    }
    .introduction-secondary {
      margin-bottom: 40px;
      &:last-child {
        margin-bottom: 0;
      }
    }
    .to-detail-links {
      --parent-box-gap: 24px;

      display: flex;
      justify-content: center;
      align-items: flex-start;
      gap: var(--parent-box-gap);
      align-self: stretch;
      .to-detail-link {
        position: relative;
        padding: 24px 44px 24px 24px;
        width: 320px;
        max-width: calc(100% - var(--parent-box-gap));
        border-radius: 8px;
        background: var(--color-season-base-white);
        text-decoration: none;
        transition: opacity var(--season-base-animate-interaction);

        .to-detail-link-inner {
          text-align: center;
          .heading-text {
            font-size: 20px;
            font-style: normal;
            font-weight: 700;
          }
          .note-text {
            color: var(--color-season-base-black);
            font-size: 14px;
          }
        }
        .icon-arrow-right {
          --icon-height: 8px;

          position: absolute;
          top: calc(50% - var(--icon-height)/2);
          right: 30px;
          &::before {
            content: "";
            display: block;
            width: 5px;
            height: var(--icon-height);
            background-image: url("/season/common/assets/images/arrow_lineal_right.svg");
            background-repeat: no-repeat;
            background-position: center;
            background-size: contain;
          }
        }
        &.item-ovs {
          border: 1px solid var(--color-season-ovs-primary);
          .to-detail-link-inner {
            .heading-text {
              color: var(--color-season-ovs-primary);
            }
          }
        }
        &.item-dom {
          border: 1px solid var(--color-season-dom-primary);
          .to-detail-link-inner {
            .heading-text {
              color: var(--color-season-dom-primary);
            }
          }
        }
        &:hover {
          opacity: 0.5;
        }
      }

      @media(width <= 767px) {
        flex-wrap: wrap;

        .to-detail-link {
          width: 100%;
          max-width: none;
        }
      }
    }
  }

  .season-search-by-date {
    position: relative;
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
    background-attachment: fixed;
    /* background-attachment:fixedが重いので空要素&疑似要素で代替 */
    .search-by-date-fixed-bg {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      clip-path: inset(0);
      z-index: var(--z-index-season-fixed-bg-eml);
      &::before {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        display: block;
        width: 100vw;
        height: 100vh;
        background-size: cover;
        background-position: center;
      }
    }
    .ovs-dom-switcher {
      max-width: 700px;
      margin: 0 auto 24px;

      .ui-static-tab-button {
        background-color: var(--color-season-base-white);
        &.is-active {
          &, &::before {
            background-color: var(--color-season-base-blue);
          }
        }
      }
    }

    .calendar-tab-container {
      /* 固定表示は無し */
      /* position: sticky;
      z-index: var(--z-index-season-calendar-tab); */
    }

    .date-wrap {
      --popup-hover-offset: 6px;

      max-width: var(--season-ui-section-max-width);
      margin: 0 auto 16px;
      padding: 24px 40px;
      border-radius: 8px;
      background: var(--color-season-base-white);

      @media(width < 1104px) {
        padding: 24px 20px;
        margin-left: calc(var(--season-ui-static-sp-padding-x) * -1);
        margin-right: calc(var(--season-ui-static-sp-padding-x) * -1);
      }

      &:has(+ .base-button-wrap) {
        margin-bottom: 40px;        
      }

      &:last-child {
        margin-bottom: 0;
      }

      .date-note-wrap {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 4px;
        margin-bottom: 24px;
        &::before,
        &::after {
          flex-shrink: 0;
        }
        &::before {
          content: '＼ ';
        }
        &::after {
          content: ' ／';
        }
        &,
        .date-note {
          font-size: 26px;
          @media(width <= 767px) {
            font-size: 18px;
          }
        }
        .date-note {
          text-align: center;
        }
      }
      .date-list-container {
        padding: 0 32px;
        @media(width < 1104px) {
          max-width: 492px;
          margin: 0 auto;
          padding: 0;
        }
        @media(width <= 767px) {
          max-width: 332px;
        }
        .date-list {
          display: grid;
          /* 変数 --date-list-columns-pc, --column-sp はhtmlのstyle属性に定義 */
          /* --date-list-columns-pcがhtmlのstyle属性に無かったら10カラムにする */
          grid-template-columns: repeat(var(--date-list-columns-pc, 10), minmax(0, 1fr));
          margin-left: auto;
          margin-right: auto;
          max-width: calc(var(--date-list-columns-pc, 10) * 10%);

          gap: 24px 8px;

          @media(width < 1104px) {
            /* --date-list-columns-spがhtmlのstyle属性に無かったら5カラムにする */
            grid-template-columns: repeat(var(--date-list-columns-sp, 5), minmax(0, 1fr));
            gap: 16px 4px;
            max-width: calc(var(--date-list-columns-sp, 5) * 2 * 10%);
          }

          .date-box {
            --date-gray: #dcdee1;
            --date-blue: var(--ui-static-unleash-blue-70);
            --date-red: var(--ui-static-vermilion-70);

            position: relative;
            border-radius: 50%;
            aspect-ratio: 1/1;
            /*
              曜日・祝日名をあえてはみ出させるために、
              中身の要素によって縦に伸びないように最低高さを0に。
              aspect-ratio: 1/1は維持される。
            */
            min-height: 0;
            background-color: var(--date-gray);
            cursor: pointer;

            .pickup-badge {
              position: absolute;
              /* 位置調整 */
              top: -10px;
              width: 20px;
              left: 50%;
              transform: translateX(-50%);

              @media(width <= 767px) {
                top: -8px;
                width: 16px;
              }
            }
            /*
              paint-order: stroke fill;が実用できるようになったら、
              -webkit-text-stroke-width, -webkit-text-stroke-color
              を使う。
              現状ではテキストの内側に淵がつくのでtext-shadowで代用。
            */
            .date-weekday {
              padding: 4px 0;
              margin-top: auto;
              font-size: 14px;
              font-weight: 700;
              line-height: 1;
              text-align: center;
              text-shadow:
                1px 1px 0 var(--date-gray),
                -1px -1px 0 var(--date-gray),
                -1px 1px 0 var(--date-gray),
                1px -1px 0 var(--date-gray),
                0px 1px 0 var(--date-gray),
                0 -1px 0 var(--date-gray),
                -1px 0 0 var(--date-gray),
                1px 0 0 var(--date-gray);

              @media(width <= 767px) {
                font-size: 12px;
                line-height: 1.2;
                padding: 0 0 4px;
              }
            }
            &:is(.color-blue, .color-red) {
              color: var(--color-season-base-white);
            }
            &.color-blue {
              background-color: var(--date-blue);
              .date-weekday {
                text-shadow:
                  1px 1px 0 var(--date-blue),
                  -1px -1px 0 var(--date-blue),
                  -1px 1px 0 var(--date-blue),
                  1px -1px 0 var(--date-blue),
                  0px 1px 0 var(--date-blue),
                  0 -1px 0 var(--date-blue),
                  -1px 0 0 var(--date-blue),
                  1px 0 0 var(--date-blue);
              }
            }
            &.color-red {
              background-color: var(--date-red);
              .date-weekday {
                text-shadow:
                  1px 1px 0 var(--date-red),
                  -1px -1px 0 var(--date-red),
                  -1px 1px 0 var(--date-red),
                  1px -1px 0 var(--date-red),
                  0px 1px 0 var(--date-red),
                  0 -1px 0 var(--date-red),
                  -1px 0 0 var(--date-red),
                  1px 0 0 var(--date-red);
              }
            }

            &::before {
              --side-length: 16px;
              content: '';
              display: block;
              position: absolute;
              background-color: var(--color-season-base-white);
              left: calc(50% - var(--side-length) / 2);
              bottom: calc((var(--side-length) * -1 + var(--popup-hover-offset)));
              z-index: var(--z-index-season-calendar-popup-part);
              display: block;
              width: var(--side-length);
              height: var(--side-length);
              opacity: 0;
              pointer-events: none;
              transform: rotate(45deg);
            }

            .month-day-wrap {
              display: flex;
              justify-content: center;
              align-items: center;
              padding: 18px 4px 4px;
              @media(width <= 767px) {
                padding: 12px 4px 4px;
              }
              .date-month,
              .date-day {
                font-weight: bold;
              }
              .date-month {
                font-size: 14px;
                line-height: 1.5;
              }

              .date-day {
                font-size: 32px;
                line-height: 1;
              }

              @media(width < 767px) {
                .date-day {
                  font-size: 24px;
                }
              }
            }

            .product-link-nav {
              --elm-width: 165px;
              width: var(--elm-width);
              opacity: 0;
              pointer-events: none;
              position: absolute;
              top: 100%;
              left: calc(50% - var(--elm-width) / 2);
              z-index: var(--z-index-season-calendar-popup);
              background-color: var(--color-season-base-white);
              border-radius: 8px;
              box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.20);
              @media(width < 1104px) {
                --elm-sp-width: 200px;
                width: var(--elm-sp-width);
                left: calc(50% - var(--elm-sp-width) / 2);
              }
              .link-list {
                display: flex;
                flex-direction: column;
                gap: 16px;
                padding: 24px 16px;
                position: relative;
                li {
                  a {
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    font-size: 14px;
                    font-style: normal;
                    font-weight: 400;
                    line-height: 1.5;
                    color: var(--color-season-base-black);
                    text-decoration: none;
                    &::after {
                      content: "";
                      display: block;
                      width: 8px;
                      height: 8px;
                      background-image: url("/season/common/assets/images/arrow_lineal_right.svg");
                      background-repeat: no-repeat;
                      background-size: contain;
                      background-position: center;
                    }
                    &:hover {
                      font-weight: 700;
                      color: var(--ui-static-unleash-blue-100);
                    }
                  }
                }
              }
              
            }

            &.tooltip-top {
              &::before {
                top: calc((var(--side-length) * -1 + var(--popup-hover-offset)));
                bottom: auto;
              }
              .product-link-nav {
                top: auto;
                bottom: 100%;
              }
            }

            &.is-tooltip-active {
              &::before {
                opacity: 1;
              }
              .product-link-nav {
                opacity: 1;
                pointer-events: auto;
                position: absolute;
              }
            }

            /*
              SPのとき両端にある場合
              両端用html class はコンポーネント側で設定
            */
            @media(width < 767px) {
              &.sp-row-first {
                .product-link-nav {
                  left: 0;
                }
              }
              &.sp-row-last {
                .product-link-nav {
                  left: auto;
                  right: 0;
                }
              }
            }
          }
        }

        .date-list-visual {
          &.pos-top {
            margin-bottom: 8px;
          }
          &.pos-bottom {
            margin-top: 24px;
          }
          &.is-pc-layout-hidden {
            display: none;
            @media(width < 1104px) {
              display: block;
            }
          }
          &.is-sp-layout-hidden {
            @media(width < 1104px) {
              display: none;
            }
          }

          .date-list-visual-inner {
            display: grid;
            grid-template-columns: repeat(var(--image-grid-columns-pc, 10), minmax(0, 1fr));
            @media(width < 1104px) {
              grid-template-columns: repeat(var(--image-grid-columns-sp, 5), minmax(0, 1fr));
            }

            .date-list-visual-img-wrap {
              grid-column: var(--image-grid-start-pc, 1) / span var(--image-grid-span-pc, 10);
              @media(width < 1104px) {
                grid-column: var(--image-grid-start-sp, 1) / span var(--image-grid-span-sp, 5);
              }
              img {
                display: block;
                width: 100%;
              }
            }            
          }
        }
      }
    }

    /* PCでカレンダー左右分割する場合の親要素 */
    .calendar-split {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
      .date-wrap {
        margin: 0;
        .date-list-container {
          padding: 0;
          .date-list {
            /* 左右分割した場合は最大幅は2倍 */
            max-width: calc(var(--date-list-columns-pc, 10) * 2 * 10%);
          }
        }
      }

      @media(width < 1104px) {
        grid-template-columns: repeat(1, minmax(0, 1fr));
        gap: 16px;
        .date-wrap {
          margin-left: calc(var(--season-ui-static-sp-padding-x) * -1);
          margin-right: calc(var(--season-ui-static-sp-padding-x) * -1);
          .date-list-container {
            .date-list {
              max-width: calc(var(--date-list-columns-sp, 5) * 2 * 10%);
            }
          }
        }
      }
    }
  }

  .season-keyword-links {
    .link-list {
      display: flex;
      justify-content: center;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px;
      li {
        a {
          display: block;
          padding: 8px 16px;
          font-size: 14px;
          color: var(--color-season-base-black);
          border-radius: 24px;
          border: 1px solid var(--color-season-base-navy4);
          transition: opacity var(--season-base-animate-interaction);
          text-decoration: none;
          &::before {
            content: "# ";
          }
          &:hover {
            opacity: 0.5;
          }
        }
      }
    }
    @media(width <= 767px) {
      .link-list {
        justify-content: flex-start;
        li {
          a {
            font-size: 12px;
            padding: 6px 12px; 
          }
        }
      }
    }
  }

  .season-banner-content {
    --bnr-margin: 16px;

    .bnrList {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: var(--bnr-margin);

      & > li {
        width: calc((100% - var(--bnr-margin)) / 2);
        a {
          display: block;
          img {
            width: 100%;
          }
        }
      }

      @media(width <= 767px) {
        & > li {
          width: 100%;
        }
      }
    }

    /* 現在表示でa要素が無い場合は余白無し */
    .ui-static-section-wrapper {
      &:not(:has(.is-active a)) {
        padding: 0;
      }
    }
  }

  .season-kaigai-content,
  .season-kokunai-content,
  .season-other-related-content {
    background-repeat: repeat;
    background-size: 70%;
  }

  .season-kaigai-content {
    background-image: url("/season/common/assets/images/kaigai_bg.webp");
  }
  .season-kokunai-content {
    background-image: url("/season/common/assets/images/kokunai_bg.webp");
  }
  .season-other-related-content {
    background-image: url("/season/common/assets/images/other_related_bg.webp");
  }

  .ranking-list .ranking-list-item, 
  .recommend-movie-list .recommend-movie-list-item,
  :is(
    .theme-list,
    .who-to-go-with-list,
    .recommend-article-list,
    .other-recommend-list
  ) > li a {
    .item-heading {
      font-size: 20px;
      font-weight: bold;
      line-height: 1.3;
    }

    .lead-text {
      font-size: 14px;
    }
  }


  .ranking-list,
  .recommend-movie-list {
    display: grid;

    .ranking-list-item,
    .recommend-movie-list-item {
      display: grid;
      grid-template-rows: subgrid;
      row-gap: 16px;

      .item-link-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        background-color: var(--color-season-base-white);

        li a {
          font-size: 14px;
          display: flex;
          align-items: center;
          justify-content: space-between;
          text-decoration: none;
          color: var(--color-season-base-black);
          transition:
            color var(--season-base-animate-interaction),
            font-weight var(--season-base-animate-interaction);

          &::after {
            content: "";
            display: block;
            width: 5px;
            height: 7px;
            background-image: url("/season/common/assets/images/arrow_lineal_right.svg");
            background-repeat: no-repeat;
            background-size: contain;
            background-position: center;
          }

          &:hover {
            font-weight: bold;
            color: var(--ui-static-unleash-blue-100);

            &::after {
              background-image: url("/season/common/assets/images/arrow_bold_lineal_navy_right.svg");
            }
          }
        }
      }
    }
  }

  
  .ranking-list {
    grid-template-columns: repeat(6, 1fr);
    gap: 40px 24px;

    .ranking-list-item {
      grid-column: span 2;
      
      grid-row: span 4;

      @media(width <= 767px) {
        grid-column: span 6;
        /* 1列なのでsubgridが不要になるのでflexで縦積みに */
        display: flex;
        flex-direction: column;
      }

      &:is(:nth-child(1), :nth-child(2)) {
        grid-column: span 3;

        @media(width <= 767px) {
          grid-column: span 6;
        }
      }

      .item-img-wrap {
        aspect-ratio: 3 / 2;
        position: relative;

        img:not(.icon-image) {
          height: 100%;
          width: 100%;
          object-fit: contain;
        }

        .icon-image {
          position: absolute;
          top: 0;
          left: 0;
        }
      }

      .item-link-list {
        padding: 24px;
      }

      &:is(:nth-child(1), :nth-child(2)) {
        .item-link-list {
          grid-template-columns: repeat(3, 1fr);

          @media(width <= 767px) {
            grid-template-columns: repeat(2, 1fr);
          }
        }
      }
    }
  }

  .recommend-movie-list {
    grid-template-columns: repeat(4, 1fr);
    gap: 40px 24px;

    @media(width <= 767px) {
      grid-template-columns: repeat(2, 1fr);
    }

    .recommend-movie-list-item {
      grid-column: span 1;
      
      grid-row: span 3;

      .item-movie-wrap {
        iframe {
          display: block;
          width: 100%;
        }
      }

      .item-link-list {
        padding: 16px;
      }

      .button-medium {
        width: 100%;
        min-width: auto;
        text-align: center;
      }
      @media(width <= 767px) {
        .item-heading {
          font-weight: normal;
          font-size: 14px;
        }
      }
    }
  }

  .theme-list,
  .who-to-go-with-list,
  .recommend-article-list,
  .other-recommend-list {
    display: grid;
    &:not(:last-child) {
      margin-bottom: 40px;
    }
    > li {
      /*
        a要素内の子要素に.who-to-go-with-listのグリッドを適用させるので、
        li と a要素にsubgrid設定してa要素に継承させる
      */
      &,
      a {
        display: grid;
        grid-template-rows: subgrid; 
        grid-row: span 3;
      }

      a {
        row-gap: 16px;

        text-decoration: none;
        color: var(--color-season-base-black);

        transition: opacity var(--season-base-animate-interaction);

        .item-img-wrap {
          aspect-ratio: 3 / 2;
          overflow: hidden;
          background-color: var(--color-season-base-white);
          img {
            height: 100%;
            width: 100%;
            object-fit: contain;

            transition: transform var(--season-base-animate-interaction);
          }
        }

        &:hover {
          opacity: 0.5;

          .item-img-wrap {
            img {
              transform: scale(1.1);
            }
          }
        }
      }
    }
  }


  .theme-list,
  .who-to-go-with-list {
    grid-template-columns: repeat(6, 1fr);
    gap: 40px 24px;
    > li {
      grid-column: span 2;
      @media(width <= 767px) {
        grid-column: span 6;

        a {
          /* 1列なのでsubgridが不要になるのでflexで縦積みに */
          display: flex;
          flex-direction: column;
        }
      }
    }

    /*
      display: noneになっているものを除いた要素数がn+2のとき、最後の2つは占有幅を3/6にする
    */
    &:has(> li:last-child:nth-child(3n + 2 of :not([style*="display: none"]))) 
    > li:nth-last-child(-n+2 of :not([style*="display: none"])) {
      grid-column: span 3;
      @media(width <= 767px) {
        grid-column: span 6;
      }
    }
  }

  .recommend-article-list,
  .other-recommend-list {
    grid-template-columns: repeat(4, 1fr);
    gap: 40px 24px;

    @media(width <= 767px) {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  .faq-content {
    .ui-static-faq-answer {
      background-color: var(--color-season-base-white);
      border-radius: 0;
    }
  }

  .to-lower-content {
    .note-text {
      display: block;
      font-size: 26px;
      line-height: 1.3;
      text-align: center;
      font-style: normal;
      margin-bottom: 16px;
    }

    .base-button-wrap {
      gap: 16px 40px;

      & + .base-button-wrap {
        margin-top: 40px;
      }
    }
  }

  .season-page-banner-links {
    .season-page-banner-slider {
      > ul > li > a > img {
        width: 100%;
      }

      /* スライダー初期化前設定 */
      &:not(.season-slider-initialized) {
        overflow: hidden;

        .season-slider-wrapper {
          display: flex;
        }

        .season-slider-slide {
          width: 44%; 
          flex-shrink: 0;
          margin-right: 16px; /* spaceBetweenの代わり */
        }
      }

      &,
      &:not(.season-slider-initialized) {
        /* PC用 スライダー無効化時のレイアウト */
        @media(width > 767px) {
          .season-slider-wrapper {
            --item-gap: 24px;
            display: flex;
            flex-wrap: wrap;
            gap: var(--item-gap);
          }

          .season-slider-slide {
            /* Swiperのインラインスタイルに対して !important */
            width: calc((100% - (var(--item-gap)) * 4) / 5) !important; 
            flex-shrink: 0;
            margin-right: 0;
          }
        }
      }
    }

    .season-page-banner-slider-pagination {
      display: flex;
      justify-content: center;
      align-items: center;
      flex-wrap: wrap;
      margin-top: 16px;
      gap: 4px;
      .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);
        }
      }
    } 
  }

  .search-mod-content {
    background-repeat: no-repeat;
    background-size: cover;
    background-image: url("/season/autumn/common/assets/images/search_mod_bg_pc.webp");

    /* 検索モジュールstyle追加 */
    .rn-searchMod__formSection {
      max-width: 100%;
    }

    @media(width <= 767px) {
      background-image: url("/season/autumn/common/assets/images/search_mod_bg_sp.webp");
      #searchModSection {
        margin-left: calc(var(--season-ui-static-sp-padding-x) * -1);
        margin-right: calc(var(--season-ui-static-sp-padding-x) * -1);
      }
    }
  }
}