@layer pages {

  /* .sec-top-mv
  ------------------------------------------------ */
  .header-top-logo-sp {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 144px;
    padding: 20px;

    @media (min-width: 1021px) {
      display: none;
    }

    >img {
      display: block;
      width: 205px;
      height: auto;
      margin: 0 auto;
    }
  }

  /* .sec-top
  ------------------------------------------------ */
  .sec-top {
    position: relative;
  }

  /* .sec-top-mv
  ------------------------------------------------ */
  .sec-top-mv {
    --mv-progress: 0;
    --mv-shift: min(380px, calc(380 / 1920 * 100vw));

    position: relative;

    @media (min-width: 1021px) {
      height: calc(100vh + var(--mv-scroll-range, 100vh));
      overflow: clip;
    }

    .box-mv {
      position: relative;

      @media (min-width: 1021px) {
        position: sticky;
        top: 0;
        height: 100vh;
        overflow: hidden;
      }
    }

    .box-mv>.logo {
      position: absolute;
      top: min(320px, calc(320 / 1920 * 100vw));
      right: min(160px, calc(160 / 1920 * 100vw));
      z-index: 1;
      display: block;
      width: min(407px, calc(407 / 1920 * 100vw));

      @media (max-width: 1020px) {
        display: none;
      }
    }

    .box-mv>.logo>img {
      width: 100%;
      height: auto;
    }

    .box-mv>.image>img {
      width: 100%;
      height: auto;

      @media (min-width: 1021px) {
        height: 100%;
        -o-object-fit: cover;
        object-fit: cover;
      }
    }

    .box-content {
      width: 100%;

      @media (min-width: 1021px) {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: flex-end;
        max-width: 1920px;
        margin-inline: auto;
        pointer-events: none;
      }
    }

    >.box-content>.inner {
      padding: min(100px, calc(100 / 1920 * 100vw)) min(140px, calc(140 / 1920 * 100vw)) min(100px, calc(100 / 1920 * 100vw)) min(194px, calc(194 / 1920 * 100vw));
      background-color: var(--color-basic-offwhite);

      @media (min-width: 1021px) {
        display: flex;
        align-items: center;
        max-width: 1033px;
        height: 100vh;
        pointer-events: auto;
        transform: translateY(calc((1 - var(--mv-progress)) * var(--mv-shift)));
      }

      @media (max-width: 1020px) {
        padding: 105px 20px 108px;
        font-size: 0.875rem;
      }
    }

    >.box-content>.inner>.box {
      margin-inline: auto;

      @media (min-width: 1021px) {
        max-width: 625px;
      }

      @media (max-width: 1020px) {
        max-width: 277px;
      }
    }

    >.box-content>.inner>.box>.title {
      font-family: var(--font-family-noto-serif);
      font-size: 2rem;
      font-weight: 500;
      line-height: 1.6;
      color: var(--color-basic-brown);

      @media (max-width: 1020px) {
        font-size: 1.25rem;
      }
    }

    >.box-content>.inner>.box>.text {
      padding: min(64px, calc(64 / 1920 * 100vw)) 0 0 min(150px, calc(150 / 1920 * 100vw));
      font-size: 1.125rem;
      line-height: 2;
      color: var(--color-basic-brown);

      @media (max-width: 1020px) {
        padding: 0;
        font-size: 0.875rem;
      }
    }

    >.box-content>.inner>.box>*+.text {
      @media (max-width: 1020px) {
        margin-top: 31px;
      }
    }

    >.box-content>.inner>.box>.text>p+p {
      margin-top: 35px;

      @media (max-width: 1020px) {
        margin-top: 28px;
      }
    }

    .box-mv>.text {
      position: absolute;
      right: 0;
      bottom: 0;
      padding: 4px 8px;
      font-size: 0.75rem;
      color: var(--color-bg-pale-gray);

      @media (max-width: 1020px) {
        background: rgb(88 84 81 / 75%);
      }
    }
  }

  /* .sec-top-discover
  ------------------------------------------------ */
  .sec-top-discover {
    position: relative;

    >.inner {
      display: grid;
      grid-template-columns: clamp(200px, calc(324 / 1920 * 100vw), 324px) 1fr;
      gap: min(104px, calc(104 / 1920 * 100vw));
      padding: min(270px, calc(270 / 1920 * 100vw)) 0 min(274px, calc(274 / 1920 * 100vw)) min(194px, calc(194 / 1920 * 100vw));

      @media (min-width: 1021px) {
        position: sticky;
        top: 0;
      }

      @media (max-width: 1020px) {
        grid-template-columns: 100%;
        gap: 0;
        padding: 100px 0 0;
      }

      >.panel {
        display: flex;
        flex-direction: column;
        height: 100%;
        padding-bottom: min(64px, calc(64 / 1920 * 100vw));

        @media (max-width: 1020px) {
          justify-content: flex-start;
          padding: 0 20px 52px;
        }
      }

      >.panel>.heading {
        display: flex;
        flex-direction: column;

        @media (max-width: 1020px) {
          gap: 4px;
        }
      }

      >.panel>.heading>.title {
        font-family: var(--font-family-instrument-serif);
        font-size: min(5rem, calc(80 / 1440 * 100vw));
        font-weight: 400;
        line-height: 1;
        color: var(--color-basic-brown);

        @media (max-width: 1020px) {
          font-size: 2.5rem;
        }
      }

      >.panel>.heading>.sub {
        font-family: var(--font-family-noto-serif);
        font-size: min(1.125rem, calc(18 / 1440 * 100vw));
        font-weight: 500;
        line-height: 1;
        color: var(--color-basic-brown);

        @media (max-width: 1020px) {
          font-size: 0.875rem;
        }
      }

      >.panel>.inner {
        margin-top: 106px;

        @media (max-width: 1020px) {
          margin-top: 32px;
        }
      }

      >.panel>.inner>.text {
        font-size: min(1.125rem, calc(18 / 1440 * 100vw));
        font-weight: 400;
        line-height: 2;
        color: var(--color-basic-brown);
        letter-spacing: -0.06em;

        @media (max-width: 1020px) {
          font-size: 0.875rem;
          letter-spacing: 0.03em;
        }
      }

      >.panel>.inner>.text+.text {
        margin-top: 36px;

        @media (max-width: 1020px) {
          margin-top: 15px;
        }
      }

      >.panel>.btn-link-01 {
        margin-top: 78px;

        @media (max-width: 1020px) {
          margin-top: 30px;
        }
      }

      >.content {
        position: relative;

        @media (max-width: 1020px) {
          height: auto;
        }
      }
    }

    >.spacer {
      @media (min-width: 1021px) {
        height: calc((var(--discover-count, 1) - 1) * 100vh);
      }
    }
  }

  /* .box-top-discover
  ------------------------------------------------ */
  .box-top-discover {
    position: relative;
    max-width: min(1533px, calc(1533 / 1920 * 100vw));
    margin: 0 auto min(324px, calc(324 / 1920 * 100vw));

    @media (max-width: 1020px) {
      max-width: 100%;
      margin: 0 auto 30px;
    }

    >.top-discover-core {
      position: relative;
      width: min(483px, calc(483 / 1920 * 100vw));
      height: min(484px, calc(484 / 1920 * 100vw));
      margin: min(193px, calc(193 / 1920 * 100vw)) auto 0;

      @media (max-width: 1020px) {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: inherit;
        height: inherit;
        margin: 0;
      }

      &::before {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
        content: "";
        background: url("/images/renoalpha/top/bg-discover-pc.svg") 0 0 no-repeat;
        background-size: cover;

        @media (max-width: 1020px) {
          content: none;
        }
      }

      >.top-discover-main {
        position: relative;
        z-index: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;

        @media (max-width: 1020px) {
          display: flex;
          flex-direction: column;
          align-items: center;
          width: inherit;
          height: inherit;
          margin: 0 0 22px;
        }

        >.inner {
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          width: 100%;
          height: 100%;

          @media (max-width: 1020px) {
            position: relative;
            width: 355px;
            height: 340px;
            padding-top: 10px;
            margin-left: 10px;
          }

          &::before {
            @media (max-width: 1020px) {
              position: absolute;
              top: 0;
              left: 0;
              width: 100%;
              height: 100%;
              pointer-events: none;
              content: "";
              background: url("/images/renoalpha/top/bg-discover-sp.svg") 0 0 no-repeat;
              background-size: contain;
            }
          }
        }
      }

      >.top-discover-main>.inner>.top-discover-title {
        font-family: var(--font-family-instrument-serif);
        font-size: min(1.125rem, calc(18 / 1920 * 100vw));
        color: var(--color-basic-brown);
        text-transform: uppercase;

        @media (max-width: 1020px) {
          font-size: 0.875rem;
        }
      }

      >.top-discover-main>.inner>.top-discover-heading {
        margin-top: min(12px, calc(12 / 1920 * 100vw));
        font-family: var(--font-family-noto-serif);
        font-size: min(3rem, calc(48 / 1920 * 100vw));
        font-weight: 500;
        line-height: 1.2;
        color: var(--color-basic-brown);

        @media (max-width: 1020px) {
          margin-top: 6px;
          font-size: 1.25rem;
        }
      }

      >.top-discover-main>.inner>.top-discover-text {
        margin-top: min(30px, calc(30 / 1920 * 100vw));
        font-size: min(1rem, calc(16 / 1920 * 100vw));
        line-height: 2;
        color: var(--color-basic-brown);

        @media (max-width: 1020px) {
          margin-top: 15px;
          font-size: 0.8125rem;
        }
      }

      >.top-discover-main>.inner>.top-discover-circle-text {
        position: absolute;
        top: min(101px, calc(101 / 1920 * 100vw));
        left: min(101px, calc(101 / 1920 * 100vw));

        @media (max-width: 1020px) {
          top: 0;
          right: 0;
          left: 0;
          width: 100%;
          height: 100%;
        }
      }

      >.top-discover-main>.inner>.top-discover-circle-text>.item {
        position: absolute;
        display: inline-block;
        font-family: var(--font-family-instrument-serif);
        font-size: 0.875rem;

        @media (min-width: 1021px) {
          display: none;
        }
      }

      >.top-discover-main>.inner>.top-discover-circle-text>.item:nth-of-type(1) {
        top: 7px;
        right: 10px;
        text-transform: uppercase;
      }

      >.top-discover-main>.inner>.top-discover-circle-text>.item:nth-of-type(2) {
        top: 318px;
        right: 58px;
        text-transform: uppercase;
      }

      >.top-discover-main>.inner>.top-discover-circle-text>.item:nth-of-type(3) {
        top: 83px;
        left: 6px;
        text-transform: uppercase;
      }

      >.top-discover-main>.top-discover-list {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        z-index: 1;
        width: 100%;
        height: 100%;

        @media (max-width: 1020px) {
          position: static;
          display: grid;
          gap: 45px;
          width: 100%;
          margin-top: 44px;
          transform: none;
        }
      }

      >.top-discover-main>.top-discover-list>.item {
        position: absolute;
        display: flex;
        flex-direction: column;
        gap: min(10px, calc(10 / 1920 * 100vw));
        width: min(326px, calc(326 / 1920 * 100vw));

        @media (max-width: 1020px) {
          position: static;
          top: auto;
          left: auto;
          width: 100%;
          max-width: 100%;
          padding: 0 20px;
        }
      }

      >.top-discover-main>.top-discover-list>.item:nth-of-type(1) {
        top: min(-29px, calc(-29 / 1920 * 100vw));
        left: 100%;
        margin-left: min(32px, calc(32 / 1920 * 100vw));

        @media (max-width: 1020px) {
          margin-left: 0;
        }
      }

      >.top-discover-main>.top-discover-list>.item:nth-of-type(2) {
        bottom: min(-156px, calc(-156 / 1920 * 100vw));
        left: 100%;
        margin-left: min(-38px, calc(-38 / 1920 * 100vw));

        @media (max-width: 1020px) {
          margin-left: 0;
        }
      }

      >.top-discover-main>.top-discover-list>.item:nth-of-type(3) {
        top: min(157px, calc(157 / 1920 * 100vw));
        right: 100%;
        margin-right: min(87px, calc(87 / 1920 * 100vw));

        @media (max-width: 1020px) {
          margin-right: 0;
        }
      }

      >.top-discover-main>.top-discover-list>.item:nth-of-type(3)>.title {
        text-align: right;

        @media (max-width: 1020px) {
          text-align: left;
        }
      }

      >.top-discover-main>.top-discover-list>.item:nth-of-type(3)>.heading {
        text-align: right;

        @media (max-width: 1020px) {
          text-align: left;
        }
      }

      >.top-discover-main>.top-discover-list>.item>.title {
        font-family: var(--font-family-instrument-serif);
        font-size: min(1.125rem, calc(18 / 1920 * 100vw));
        color: var(--color-basic-brown);
        text-transform: uppercase;

        @media (max-width: 1020px) {
          font-size: 0.875rem;
        }
      }

      >.top-discover-main>.top-discover-list>.item>.heading {
        font-family: var(--font-family-noto-serif);
        font-size: min(2rem, calc(32 / 1920 * 100vw));
        font-weight: 500;
        line-height: 1.2;
        color: var(--color-basic-brown);

        @media (max-width: 1020px) {
          margin-top: 5px;
          font-size: 1.25rem;
        }
      }

      >.top-discover-main>.top-discover-list>.item>.text {
        margin-top: min(14px, calc(14 / 1920 * 100vw));
        font-size: min(1rem, calc(16 / 1920 * 100vw));
        line-height: 2;
        color: var(--color-basic-brown);

        @media (max-width: 1020px) {
          margin-top: 10px;
          font-size: 0.8125rem;
        }
      }
    }
  }

  .box-top-discover-card {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    padding-right: calc(48 / 1920 * 100vw);

    @media (max-width: 1020px) {
      grid-template-columns: repeat(1, 1fr);
      gap: 2px;
      padding-right: 0;
    }

    >.top-discover-card-item {
      position: relative;
    }

    >.top-discover-card-item>.top-discover-card-image>picture>img {
      display: block;
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover;

      @media (max-width: 1020px) {
        height: auto;
        -o-object-fit: contain;
        object-fit: contain;
      }
    }

    >.top-discover-card-item>.top-discover-card-caption {
      position: absolute;
      right: 9px;
      bottom: 5px;
      font-size: 0.75rem;
      font-weight: 400;
      color: var(--color-white);
      letter-spacing: 0.08em;
      text-shadow: 0 0 4px rgb(0 0 0 / 50%);

      @media (max-width: 1020px) {
        right: 7px;
        bottom: 4px;
        font-size: 0.625rem;
      }
    }

    >.top-discover-card-item>.top-discover-card-link {
      position: absolute;
      top: 50%;
      left: 50%;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      width: min(395px, calc(395 / 1920 * 100vw));
      min-height: min(475px, calc(475 / 1920 * 100vw));
      padding: min(38px, calc(38 / 1920 * 100vw)) min(45px, calc(45 / 1920 * 100vw)) min(62px, calc(62 / 1920 * 100vw));
      background-color: var(--color-basic-brown);
      transform: translate(-50%, -50%);
      transition: background-color 0.3s ease-in-out;

      &:focus-visible {
        outline: 2px solid var(--color-basic-brown);
        outline-offset: 2px;
        box-shadow: 0 0 0 4px var(--color-white);
      }

      @media (max-width: 1020px) {
        left: 50%;
        width: calc(277 / 375 * 100vw);
        padding: 34px 24px 52px;
      }

      &:hover {
        @media (min-width: 1021px) {
          background-color: var(--color-basic-black);
        }
      }

      &::after {
        position: absolute;
        right: min(16px, calc(16 / 1920 * 100vw));
        bottom: min(16px, calc(16 / 1920 * 100vw));
        display: block;
        width: min(30px, calc(30 / 1920 * 100vw));
        height: min(16px, calc(16 / 1920 * 100vw));
        content: "";
        background: url("/images/renoalpha/top/icon-arrow-right-01-pc.svg") bottom right no-repeat;
        background-size: contain;

        @media (max-width: 1020px) {
          right: 8px;
          bottom: 8px;
          width: 22px;
          height: 12px;
          background-image: url("/images/renoalpha/top/icon-arrow-right-01-sp.svg");
        }
      }

      >.title {
        font-family: var(--font-family-noto-serif);
        font-size: min(2rem, calc(32 / 1920 * 100vw));
        font-weight: 500;
        line-height: 1.2;
        color: var(--color-basic-offwhite);
        letter-spacing: -0.04em;

        @media (max-width: 1020px) {
          font-size: 1.25rem;
          text-align: center;
        }
      }

      >.box {
        padding-top: min(22px, calc(22 / 1920 * 100vw));
        margin-top: min(52px, calc(52 / 1920 * 100vw));
        border-top: 1px solid var(--color-basic-breadcrumb-hover);

        @media (max-width: 1020px) {
          padding-top: 11px;
          margin-top: 21px;
        }
      }

      >.box>.text {
        font-size: min(1rem, calc(16 / 1920 * 100vw));
        font-weight: 400;
        line-height: 2;
        color: var(--color-basic-offwhite);
        letter-spacing: 0.04em;

        @media (max-width: 1020px) {
          font-size: 0.8125rem;
        }
      }
    }
  }

  /* .sec-top-journey
  ------------------------------------------------ */
  .sec-top-journey {
    display: flex;
    flex-direction: row-reverse;
    gap: min(40px, calc(40 / 1920 * 100vw));
    align-items: flex-start;
    justify-content: space-between;
    max-width: 1920px;
    padding: 272px 72px 0 min(242px, calc(242 / 1920 * 100vw));
    margin-inline: auto;

    @media (min-width: 1021px) {
      align-items: stretch;
    }

    @media (max-width: 1020px) {
      flex-direction: column;
      gap: 53px;
      padding: 104px 0 0;
    }

    >.content {
      position: relative;
      width: 100%;

      @media (min-width: 1021px) {
        display: flex;
        align-items: center;
        min-height: min(750px, calc(750 / 1920 * 100vw));
      }
    }

    >.content>.image {
      position: absolute;
      top: 0;
      left: 0;
      display: block;
      width: 100%;
      height: 100%;

      @media (min-width: 1021px) {
        max-width: 1108px;
      }
    }

    >.content>.image>img {
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
      object-fit: cover;
    }

    >.content>.list-journey {
      position: relative;
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: min(8px, calc(8 / 1920 * 100vw));
      width: 100%;
      padding: min(80px, calc(80 / 1920 * 100vw));

      @media (min-width: 1021px) {
        max-width: 1108px;
      }

      @media (max-width: 1020px) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 4px;
        padding: 40px 20px;
      }
    }

    >.content>.list-journey>li {
      display: flex;
      flex-direction: column;
      gap: min(18px, calc(18 / 1920 * 100vw));
      align-items: center;
      justify-content: center;
      min-height: min(183px, calc(183 / 1920 * 100vw));
      padding: min(10px, calc(10 / 1920 * 100vw)) min(10px, calc(10 / 1920 * 100vw)) min(22px, calc(22 / 1920 * 100vw));
      text-align: center;
      background: color-mix(in srgb, var(--color-basic-black) 30%, transparent);
      border: 1px solid var(--color-basic-offwhite);

      @media (max-width: 1020px) {
        min-height: 0;
        padding: 16px 10px 18px;
      }
    }

    >.content>.list-journey>li>.number {
      font-family: var(--font-family-instrument-serif);
      font-size: min(1.5rem, calc(24 / 1920 * 100vw));
      line-height: 1;
      color: var(--color-basic-offwhite);
      letter-spacing: 0.08em;

      @media (max-width: 1020px) {
        font-size: 1rem;
      }
    }

    >.content>.list-journey>li>p {
      font-family: var(--font-family-noto-serif);
      font-size: min(1.25rem, calc(20 / 1920 * 100vw));
      line-height: 1.6;
      color: var(--color-basic-offwhite);

      @media (max-width: 1020px) {
        font-size: 0.9375rem;
      }
    }

    >.panel {
      display: flex;
      flex-direction: column;

      @media (min-width: 1021px) {
        flex: 1 0 auto;
        width: min(395px, calc(395 / 1400 * 100vw));
      }

      @media (max-width: 1020px) {
        width: 100%;
        padding-inline: 20px;
      }
    }

    >.content>.list-journey>li>.step-num-sr {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      white-space: nowrap;
      border: 0;
      clip-path: inset(100%);
    }

    >.panel>.heading-page-01 {
      margin-bottom: 0;
    }

    >.panel>.heading-page-01+* {
      margin-top: min(161px, calc(161 / 1920 * 100vw));

      @media (max-width: 1020px) {
        margin-top: 33px;
      }
    }

    >.panel>.heading-page-01>h2 {
      @media (max-width: 1020px) {
        gap: 0;
      }
    }

    >.panel>.lead {
      font-family: var(--font-family-noto-serif);
      font-size: 2rem;
      font-weight: 500;
      line-height: 1.6;
      color: var(--color-basic-brown);

      @media (max-width: 1020px) {
        font-size: 1.25rem;
        letter-spacing: 0.08em;
      }
    }

    >.panel>.description {
      font-size: 1.125rem;
      line-height: 2;
      color: var(--color-basic-brown);

      @media (max-width: 1020px) {
        font-size: 0.875rem;
      }
    }

    >.panel>*+.description {
      margin-top: min(41px, calc(41 / 1920 * 100vw));

      @media (max-width: 1020px) {
        margin-top: 19px;
      }
    }

    >.panel>*+.btn-link-01 {
      margin-top: min(102px, calc(102 / 1920 * 100vw));

      @media (max-width: 1020px) {
        margin-top: 16px;
      }
    }
  }

  /* .sec-top-news
  ------------------------------------------------ */
  .sec-top-news {
    display: flex;
    gap: min(40px, calc(40 / 1920 * 100vw));
    align-items: flex-start;
    justify-content: space-between;
    max-width: 1920px;
    padding: 271px 48px 0 min(194px, calc(194 / 1920 * 100vw));
    margin-inline: auto;

    @media (max-width: 1020px) {
      flex-direction: column;
      gap: 32px;
      padding: 104px 20px 0;
    }

    >.panel {
      display: flex;
      flex-direction: column;

      @media (min-width: 1021px) {
        flex: 1 0 auto;
        width: min(260px, calc(260 / 1400 * 100vw));
        max-width: min(260px, calc(260 / 1400 * 100vw));
      }

      @media (max-width: 1020px) {
        width: 100%;
      }
    }

    >.panel>.heading-page-01 {
      margin-bottom: 0;
    }

    >.panel>.heading-page-01>h1,
    >.panel>.heading-page-01>h2 {
      gap: 0;
    }

    >.content {
      width: 100%;

      @media (min-width: 1021px) {
        max-width: 1250px;
      }
    }

    >.content>.list-news>li {
      border-top: 1px solid var(--color-basic-breadcrumb-hover);
      border-left: 1px solid var(--color-basic-breadcrumb-hover);
    }

    >.content>.list-news>li>.card {
      display: flex;
      gap: min(40px, calc(40 / 1920 * 100vw));
      align-items: center;
      padding: min(40px, calc(40 / 1920 * 100vw)) 0 min(40px, calc(40 / 1920 * 100vw)) min(40px, calc(40 / 1920 * 100vw));

      @media (max-width: 1020px) {
        flex-direction: column;
        gap: 15px;
        align-items: flex-start;
        padding: 20px 0 21px 20px;
      }

      &:is(a) {
        &:focus-visible {
          outline: 2px solid var(--color-basic-brown);
          outline-offset: 2px;
          box-shadow: 0 0 0 4px var(--color-white);
        }

        >.content>.title {
          padding-right: 40px;
        }

        >.content>.title::after {
          position: absolute;
          top: 50%;
          right: 0;
          display: block;
          width: 30px;
          height: 16px;
          padding: 4px 8px;
          content: "";
          background-color: var(--color-basic-brown);
          background-image: url("/images/renoalpha/common/icon-arrow-right-offwhite-02.svg");
          background-repeat: no-repeat;
          background-position: center;
          background-size: 14px 8px;
          border-radius: 2px;
          transform: translateY(-50%);
          transition: background-color 0.2s ease-out;

          @media (max-width: 1020px) {
            width: 22px;
            height: 12px;
          }
        }

        @media (hover: hover) {
          &:hover {

            >.content>.date,
            >.content>.title {
              color: var(--color-basic-black);
            }

            >.content>.title::after {
              background-color: var(--color-basic-black);
            }
          }
        }
      }
    }

    >.content>.list-news>li>.card>.image {
      display: block;
      width: 164px;
      height: auto;
      background-color: var(--color-white);

      @media (min-width: 1021px) {
        flex: 1 0 auto;
      }

      @media (max-width: 1020px) {
        width: 96px;
      }
    }

    >.content>.list-news>li>.card>.content {
      display: grid;
      grid-template-columns: 140px 1fr;
      gap: min(40px, calc(40 / 1920 * 100vw));
      align-items: center;
      width: 100%;

      @media (max-width: 1020px) {
        grid-template-columns: 100%;
        gap: 8px;
      }
    }

    >.content>.list-news>li>.card>.content>.date {
      font-size: 1rem;
      line-height: 1.6;
      color: var(--color-basic-brown);
      transition: color 0.2s ease-out;

      @media (max-width: 1020px) {
        font-size: 0.8125rem;
      }
    }

    >.content>.list-news>li>.card>.content>.title {
      position: relative;
      font-family: var(--font-family-noto-serif);
      font-size: 1.125rem;
      font-weight: 500;
      line-height: 1.6;
      color: var(--color-basic-brown);
      letter-spacing: 0.08em;
      transition: color 0.2s ease-out;

      @media (max-width: 1020px) {
        font-size: 0.875rem;
      }
    }

    >.content>.list-news>li>.card:is(a)>.content>.title {
      padding-right: 46px;

      @media (max-width: 1020px) {
        padding-right: 34px;
      }
    }
  }

  /* .sec-top-new-listing
  ------------------------------------------------ */
  .sec-top-new-listing {
    padding: min(272px, calc(272 / 1920 * 100vw)) calc(48 / 1920 * 100vw) 0 min(194px, calc(194 / 1920 * 100vw));

    @media (max-width: 1020px) {
      padding: 100px 20px 0;
    }

    >.heading {
      display: flex;
      flex-direction: column;
      margin-bottom: 104px;

      @media (max-width: 1020px) {
        gap: 8px;
        margin-bottom: 52px;
      }
    }

    >.heading>.title {
      font-family: var(--font-family-instrument-serif);
      font-size: min(5rem, calc(80 / 1440 * 100vw));
      font-weight: 400;
      line-height: 1;
      color: var(--color-basic-brown);

      @media (max-width: 1020px) {
        font-size: 2.5rem;
      }
    }

    >.heading>.sub {
      font-family: var(--font-family-noto-serif);
      font-size: min(1.125rem, calc(18 / 1440 * 100vw));
      font-weight: 500;
      line-height: 1;
      color: var(--color-basic-brown);

      @media (max-width: 1020px) {
        font-size: 0.875rem;
      }
    }

    >.inner {
      position: relative;
      display: grid;
      grid-template-columns: clamp(200px, calc(324 / 1920 * 100vw), 324px) 1fr;
      gap: min(104px, calc(104 / 1920 * 100vw));

      @media (max-width: 1020px) {
        display: flex;
        flex-direction: column-reverse;
        gap: 0;
      }
    }

    >.inner>.panel {
      display: flex;
      flex-direction: column;
      gap: 16px;

      @media (max-width: 1020px) {
        gap: 19px;
        padding-top: 50px;
      }
    }

    >.inner>.panel .box-search {
      >.container {
        display: flex;
        align-items: center;
        min-height: 64px;
        padding: 16px clamp(12px, calc(24 / 1920 * 100vw), 24px);
        background-color: var(--color-white);
        border-radius: 999px;
        transition: box-shadow 0.2s ease-in-out;

        @media (max-width: 1020px) {
          min-height: 48px;
          padding: 8px 12px;
        }
      }

      >.container:has(:focus-visible) {
        outline: 2px solid var(--color-basic-brown);
        outline-offset: 2px;
        box-shadow: 0 0 0 4px var(--color-white);
      }

      >.container>.search-btn {
        width: 32px;
        min-width: 32px;
        height: 32px;
        padding: 0;
        margin-right: clamp(12px, calc(24 / 1920 * 100vw), 24px);
        cursor: pointer;
        outline: none;
        background-color: transparent;
        background-image: url("/images/renoalpha/common/icon-search-brown.svg");
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        border: none;

        @media (max-width: 1020px) {
          margin-right: 12px;
        }
      }

      >.container>.search-input {
        flex-grow: 1;
        font-family: var(--font-family-noto-serif);
        font-size: clamp(0.75rem, calc(18 / 1920 * 100vw), 1.125rem);
        font-weight: 500;
        font-feature-settings: "palt" on;
        line-height: 1.6;
        color: var(--color-basic-brown);
        letter-spacing: 0.08em;
        outline: none;
        background: transparent;
        border: none;

        @media (max-width: 1020px) {
          font-size: 0.875rem;
        }
      }
    }

    >.inner>.panel>.box-tag {
      >.heading {
        margin-bottom: 16px;
        font-size: 0.875rem;
        font-weight: 500;
        line-height: 1.2;

        @media (max-width: 1020px) {
          margin-bottom: 16px;
          font-size: 0.75rem;
        }
      }

      >.list-tag {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 4px;

        @media (max-width: 1020px) {
          gap: 4px 2px;
        }
      }

      >.list-tag>.tag {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 27px;
        padding: 4px 16px;
        font-size: 1rem;
        font-weight: 500;
        line-height: 1.2;
        color: var(--color-basic-brown);
        background-color: var(--color-white);
        border-radius: 999px;
        transition: opacity 0.2s ease-out;

        @media (max-width: 1020px) {
          min-height: 20px;
          padding: 2px 8px;
          font-size: 0.8125rem;
        }

        &:focus-visible {
          outline: 2px solid var(--color-basic-brown);
          outline-offset: 2px;
          box-shadow: 0 0 0 4px var(--color-white);
        }

        &:is(a) {
          @media (hover: hover) {
            &:hover {
              opacity: 0.7;
            }
          }
        }
      }
    }

    >.inner>.panel>.btn-link-01 {
      @media (min-width: 1021px) {
        margin-top: auto;
      }

      @media (max-width: 1020px) {
        margin-top: 16px;
      }
    }

    >.inner>.content {
      @media (max-width: 1020px) {
        width: calc(100% + 20px);
        margin-right: -20px;
      }
    }

    >.inner>.content>.card-listing {
      overflow: visible;

      @media (max-width: 1020px) {
        padding: 1px;
        overflow: hidden;
      }

      >.swiper {
        @media (min-width: 1021px) {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: clamp(10px, calc(32 / 1920 * 100vw), 32px);
          overflow: visible;
        }

        @media (max-width: 1020px) {
          overflow: visible;
        }
      }

      >.swiper>.swiper-wrapper {
        @media (min-width: 1021px) {
          display: contents;
        }

        @media (max-width: 1020px) {
          align-items: stretch;
        }
      }

      >.swiper>.swiper-wrapper>.swiper-slide {
        @media (min-width: 1021px) {
          width: auto;
        }

        @media (max-width: 1020px) {
          display: flex;
          flex-shrink: 0;
          width: 286px;
          height: auto;
        }
      }

      >.swiper>.swiper-wrapper>.swiper-slide>.card-estate {
        height: 100%;
      }
    }
  }

  /* .sec-top-gallery
  ------------------------------------------------ */
  .sec-top-gallery {
    position: relative;
    z-index: 1;
    min-height: calc(var(--gallery-scroll-steps, 1) * 100dvh);

    @media (width >=1500px) {
      min-height: calc(var(--gallery-scroll-steps, 1) * 100dvh + 15dvh);
    }

    @media (max-width: 1020px) {
      margin-top: 82px;
    }

    >.bg-upper {
      position: sticky;
      top: 0;
      left: 0;
      width: 100%;
      height: 100dvh;
      background: url("/images/renoalpha/top/img-gallery-bg-pc.jpg") 0 0 no-repeat;
      background-size: cover;

      @media (width >=1500px) {
        height: calc(100dvh + 15dvh);
      }

      @media (max-width: 1020px) {
        position: relative;
        aspect-ratio: 375 / 538;
        background: url("/images/renoalpha/top/img-gallery-bg-sp.jpg") 0 0 no-repeat;
        background-size: cover;
      }
    }

    >.bg-upper>.upper {
      position: absolute;
      top: 4px;
      right: 6px;
      font-size: 0.75rem;
      color: var(--color-bg-pale-gray);
      letter-spacing: 0.08em;

      @media (max-width: 1020px) {
        display: none;
      }
    }

    >.bg-upper>.heading {
      position: absolute;
      top: 18%;
      left: 10%;
      z-index: 1;

      @media (max-width: 1020px) {
        top: 10%;
        left: 5%;
      }
    }

    >.bg-upper>.heading>.title {
      font-family: var(--font-family-instrument-serif);
      font-size: clamp(2rem, calc(80 / 1920 * 100vw), 5rem);
      line-height: 1;
      color: var(--color-basic-offwhite);

      @media (max-width: 1020px) {
        font-size: 2.5rem;
      }
    }

    >.bg-upper>.heading>.sub {
      padding-left: 5%;
      font-family: var(--font-family-noto-serif);
      font-size: clamp(0.875rem, calc(18 / 1920 * 100vw), 1.125rem);
      line-height: 1;
      color: var(--color-basic-offwhite);

      @media (max-width: 1020px) {
        margin-top: 3px;
        font-size: 0.875rem;
      }
    }

    >.bg-upper>.caption {
      position: absolute;
      top: 56%;
      left: 10%;
      z-index: 1;
      font-family: var(--font-family-noto-serif);
      font-size: clamp(1.125rem, calc(32 / 1920 * 100vw), 2rem);
      line-height: 1.6;
      color: var(--color-basic-offwhite);
      letter-spacing: 0.08em;

      @media (max-width: 1020px) {
        top: 23.625%;
        left: 6%;
        font-size: 1.25rem;
      }
    }

    >.bg-upper>.box-description {
      position: absolute;
      top: 61%;
      right: 2.6%;
      z-index: 1;
      width: calc(774 / 1920 * 100vw);

      @media (max-width: 1020px) {
        top: 37%;
        right: 0;
        left: 0;
        width: 100%;
        padding: 0 20px;
      }
    }

    >.bg-upper>.box-description>.inner>.text {
      font-family: var(--font-family-base);
      font-size: clamp(0.875rem, calc(18 / 1920 * 100vw), 1.125rem);
      line-height: 2;
      color: var(--color-basic-offwhite);
      letter-spacing: 0.04em;

      @media (max-width: 1020px) {
        font-size: 0.875rem;
        line-height: 2;
      }
    }

    >.bg-upper>.box-description>.inner>.text+.text {
      margin-top: 34px;

      @media (max-width: 1020px) {
        margin-top: 27px;
      }
    }

    >.bg-upper>.box-description>.note {
      margin-top: 32px;
      font-size: 0.75rem;
      line-height: 2;
      color: var(--color-basic-offwhite);

      @media (max-width: 1020px) {
        margin-top: 8px;
        font-size: 0.625rem;
      }
    }

    >.case-group {
      position: relative;
      z-index: 1;
      margin: 0 calc(38 / 1920 * 100vw) 0 calc(194 / 1920 * 100vw);

      @media (min-width: 1021px) {
        position: sticky;
        top: 0;
        height: 100dvh;
      }

      @media (width >=1500px) {
        height: calc(100dvh + 3dvh);
      }

      @media (max-width: 1020px) {
        margin: 0 20px;
      }
    }

    >.case-group>.case-item {
      --case-progress: 0;

      position: absolute;
      top: var(--case-top, 20dvh);
      left: 0;
      width: 100%;
      padding-bottom: calc(120 / 1920 * 100vw);
      background-color: var(--color-basic-offwhite);
      will-change: transform;

      @media (max-width: 1020px) {
        position: relative;
        top: auto;
        padding-bottom: 54px;
        transform: none;
      }
    }

    >.case-group>.case-item::after {
      position: absolute;
      top: 0;
      right: 0;
      left: 0;
      display: block;
      width: calc(100% - calc(84 / 1920 * 100vw));
      height: 1px;
      margin: 0 auto;
      content: "";
      background-color: var(--color-basic-gray);

      @media (max-width: 1020px) {
        width: 100%;
      }
    }

    >.case-group>.case-item:first-child::after {
      content: none;
    }

    >.case-group>.case-item>.heading {
      display: flex;
      justify-content: space-between;
      padding: calc(30 / 1920 * 100vw) calc(42 / 1920 * 100vw);

      @media (max-width: 1020px) {
        flex-direction: column;
        padding: 15px 0 0;
      }
    }

    >.case-group>.case-item>.heading>.title {
      font-family: var(--font-family-instrument-serif);
      font-size: calc(20 / 1920 * 100vw);
      color: var(--color-basic-black);

      @media (max-width: 1020px) {
        font-size: 0.9375rem;
      }
    }

    >.case-group>.case-item>.heading>.detail>span {
      font-size: calc(16 / 1920 * 100vw);
      color: var(--color-basic-brown);
      letter-spacing: 0.08em;

      @media (max-width: 1020px) {
        font-size: 0.8125rem;
      }
    }

    >.case-group>.case-item>.heading>.detail>span:not(:first-child)::before {
      margin: 0 8px;
      font-family: var(--font-family-base);
      content: "／";

      @media (max-width: 1020px) {
        margin: 0 2px;
      }
    }

    >.case-group>.case-item>.content {
      padding: 0 calc(40 / 1920 * 100vw);

      @media (max-width: 1020px) {
        padding: 0;
      }
    }

    >.case-group>.case-item>.content>.inner {
      position: relative;
      display: flex;
      gap: calc(40 / 1920 * 100vw);
      align-items: flex-end;

      @media (max-width: 1020px) {
        flex-direction: column;
        gap: 12px;
        align-items: flex-start;
      }
    }

    >.case-group>.case-item>.content>.inner>.head {
      flex: 0 0 auto;
      width: 34.8%;
      font-family: var(--font-family-noto-serif);
      font-size: calc(24 / 1920 * 100vw);
      line-height: 1.7;
      letter-spacing: 0.02em;

      @media (max-width: 1020px) {
        width: 100%;
        font-size: 1rem;
      }
    }

    >.case-group>.case-item>.content>.inner>.head>.link {
      position: relative;
      display: inline-block;
      padding-bottom: 30px;

      @media (hover: hover) {
        &:hover {
          color: var(--color-basic-black);
        }

        &:hover::before {
          background-color: var(--color-basic-black);
        }
      }
    }

    >.case-group>.case-item>.content>.inner>.head>.link::before {
      position: absolute;
      bottom: 0;
      left: 0;
      display: block;
      width: min(30px, calc(30 / 1920 * 100vw));
      height: min(16px, calc(16 / 1920 * 100vw));
      padding: 4px 8px;
      content: "";
      background-color: var(--color-basic-brown);
      background-image: url("/images/renoalpha/common/icon-arrow-right-offwhite-02.svg");
      background-repeat: no-repeat;
      background-position: center;
      background-size: 14px 8px;
      border-radius: 2px;
      transform: translateY(-50%);
      transition: background-color 0.2s ease-out;

      @media (max-width: 1020px) {
        width: 22px;
        height: 12px;
      }
    }

    >.case-group>.case-item>.content>.inner>.image-group {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 4px;
    }

    >.case-group>.case-item>.content>.inner>.image-group>.image-item>img {
      width: 100%;
      height: auto;
    }

    >.case-group>.case-item>.content>.inner>.wrap-link>.link {
      position: relative;
      display: inline-block;
      padding-block: min(11px, calc(11 / 1920 * 100vw));
      padding-right: min(40px, calc(40 / 1920 * 100vw));
      font-family: var(--font-family-noto-serif);
      font-size: calc(18 / 1920 * 100vw);
      font-weight: 500;
      font-feature-settings: "palt" on;
      line-height: 1.5;
      color: var(--color-basic-brown);
      letter-spacing: 0.08em;
      transition: color 0.2s ease-out;

      @media (max-width: 1020px) {
        padding-block: 11px;
        padding-right: 30px;
        font-size: 0.875rem;
      }
    }

    >.case-group>.case-item:nth-child(3) {
      @media (min-width: 1021px) {
        padding-bottom: 2vw;
      }

      @media (max-width: 1020px) {
        padding-bottom: 10px;
      }
    }

    >.case-group>.case-item:not(:first-child) {
      --case-progress: 0;
    }

    .link-bottom {
      display: flex;
      justify-content: flex-end;
      margin: calc(63 / 1920 * 100vw) calc(40 / 1920 * 100vw) 0 0;
      background-color: var(--color-basic-offwhite);

      @media (max-width: 1020px) {
        display: block;
        margin: 60px 0 0;
      }
    }

    .link-bottom>.link {
      position: relative;
      display: inline-block;
      padding-block: 11px;
      padding-right: min(40px, calc(40 / 1920 * 100vw));
      font-family: var(--font-family-noto-serif);
      font-size: calc(18 / 1920 * 100vw);
      font-weight: 500;
      font-feature-settings: "palt" on;
      line-height: 1.6;
      color: var(--color-basic-brown);
      letter-spacing: 0.08em;
      transition: color 0.2s ease-out;

      &:focus-visible {
        outline: 2px solid var(--color-basic-brown);
        outline-offset: 2px;
        box-shadow: 0 0 0 4px var(--color-white);
      }

      @media (max-width: 1020px) {
        display: block;
        padding-right: 30px;
        font-size: 0.875rem;
      }
    }

    .link-bottom>.link::before {
      position: absolute;
      bottom: 0;
      left: 0;
      display: block;
      width: 100%;
      height: 1px;
      content: "";
      background-color: var(--color-basic-brown);
      opacity: 1;
      transition: opacity 0.2s ease-out;
    }

    .link-bottom>.link::after {
      position: absolute;
      top: 50%;
      right: 0;
      display: block;
      width: min(30px, calc(30 / 1920 * 100vw));
      height: min(16px, calc(16 / 1920 * 100vw));
      padding: 4px 8px;
      content: "";
      background-color: var(--color-basic-brown);
      background-image: url("/images/renoalpha/common/icon-arrow-right-offwhite-02.svg");
      background-repeat: no-repeat;
      background-position: center;
      background-size: 14px 8px;
      border-radius: 2px;
      transform: translateY(-50%);
      transition: background-color 0.2s ease-out;

      @media (max-width: 1020px) {
        right: 0;
        width: 22px;
        height: 12px;
      }
    }

    @media (hover: hover) {
      .link-bottom>.link:hover {
        color: var(--color-basic-black);
        border: 0;
      }

      .link-bottom>.link:hover::before {
        opacity: 0;
      }

      .link-bottom>.link:hover::after {
        background-color: var(--color-basic-black);
      }
    }
  }
}