/** Shopify CDN: Minification failed

Line 5039:5 Cannot use type selector "_bg" directly after nesting selector "&"

**/
:root {
  --c-primary: #005d8e;
  --c-text: #2f333a;
  /* ▼ 薄い背景色 — 変更時はここを差し替えるだけ */
  --c-bg-light: #f4f6f8;
  --c-bg-dark: #111010;
}

.en {
  font-family: "Mont", "noto sans jp", sans-serif;
}

@font-face {
  font-family: "Mont";
  src: url("/cdn/shop/files/MontForAnker-Regular.woff2?v=1736241676")
    format("woff2");
  font-style: normal;
  font-weight: 400;
}

@font-face {
  font-family: "Mont";
  font-weight: 600;
  src:
    url("/cdn/shop/files/MontForAnker-SemiBold.woff2?v=1736241329")
      format("woff2"),
    url("/cdn/shop/files/MontForAnker-SemiBold.woff?v=1736241329")
      format("woff");
}

.main-badge-share {
  background-color: var(--c-primary);
  border-radius: 17.31px;
  padding: 26px 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8.66px;
  align-items: center;
  display: none;
  @media screen and (min-width: 1080px) {
    padding: 20px;
    width: 280px;
    margin-top: auto;
    display: flex;
  }
  .main-badge-share__image {
    width: 100%;
    height: auto;
    & img {
      width: 100%;
      height: auto;
      object-fit: contain;
    }
  }
  .main-badge-share__text {
    font-size: 8px;
    color: #fff;
    text-align: left;
    line-height: 1.3;
    margin: 0;
    @media screen and (min-width: 1080px) {
      font-size: 10px;
    }
  }
}

.m-caption {
  margin-top: 20px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 10px;
  line-height: 1.4;
}
ol.m-caption {
  & li {
    counter-increment: captionNum;
    text-indent: -1em;
    padding-left: 1em;
    &::before {
      content: "※" counter(captionNum);
      padding-right: 0.4em;
    }
  }
}
ul.m-caption {
  & li {
    text-indent: -1em;
    padding-left: 1em;
    &::before {
      content: "※";
    }
  }
}

.lp-embed-instagram-gallery {
  @media screen and (min-width: 1080px) {
    max-width: 1200px !important;
  }
}

@keyframes m-fadeInB {
  0% {
    opacity: 0;
    transform: translateY(8px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}

@media screen and (min-width: 1080px) {
  .itemfade {
    opacity: 0;
    transition:
      opacity 0.8s ease,
      transform 0.8s ease;
  }
  .itemfade.up {
    opacity: 1;
    transform: translateY(0);
  }
}

.product-price-v2-discount-rate,
.product-price-v2-coupon-label {
  @media screen and (min-width: 1080px) {
    margin-top: 0 !important;
  }
}

.product-price-v2-discount-rate-wrap {
  margin-bottom: 0 !important;
}

.product-price-v2-unit {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row !important;
  gap: 5px;
  @media screen and (min-width: 1080px) {
    gap: 0;
    justify-content: flex-start;
  }
}

.lp-hd-second-inr {
  display: grid;
  grid-auto-flow: column;
  align-items: center;
  justify-content: space-between;
  grid-template-columns: 33% 1fr auto auto;
  width: 100%;
  padding: 0 20px;
  padding: 0 clamp(10px, 20px, 4vw);
  gap: 4px;
  @media screen and (min-width: 1080px) {
    grid-template-columns: auto 1fr auto auto;
  }

  .product-price-v2-unit {
    align-items: center !important;
    display: none;
    @media screen and (min-width: 1080px) {
      display: flex;
    }
  }
}

.product-price-v2-unit {
  align-items: center !important;
  flex-wrap: nowrap!important;

}



.product-price-v2-unit {
  align-items: center !important;
  flex-wrap: wrap;
  justify-content: center;
  flex-direction: row;
}

.product-price-v2-discount-rate,
.product-price-v2-coupon-label {
  background: #cd3752;
  padding: 4px;
  color: #fff;
  order: 1;
  font-size: 10px !important;
  max-width: 100%;
  display: inline;
  margin-bottom: 0;
  margin-top: 0 !important;
  max-width: 100%;
  text-align: center;
  line-height: 1;
  @media screen and (min-width: 1080px) {
    margin-left: 5px;
    font-size: 12px !important;
  }
}
/* -------------------------
 - animation
------------------------- */
@keyframes fadeUp {
  100% {
    opacity: 1;
    transform: none;
  }
}

.anime-fadeUp {
  &.js-observer {
    opacity: 0;
    transform: translateY(20px);
  }
  &.is-active {
    animation: fadeUp 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
  }
}

/* -------------------------
 - page-eufy-products
------------------------- */
.page-eufy-products {
  font-family: "Mont", "Noto Sans JP", sans-serif;
  letter-spacing: 0.05em;
  line-height: 1.3;
  font-weight: 400;
  background: #fff;
  .l-inr-lg {
    --inr-spacing: clamp(15px, 4vw, 30px);
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--inr-spacing);
    box-sizing: border-box;
  }
  .maile-cp {
    letter-spacing: 0.08em;
    line-height: 1.35;
    text-align: center;
    flex-wrap: wrap;
    align-items: flex-start;
    display: flex;
    justify-content: flex-start;
    margin: 15px 0;
    .maile {
      width: 30px !important;
      margin: 0 8px 0 0 !important;
      height: auto !important;
      object-fit: contain;
    }
    @media screen and (min-width: 1080px) {
      text-align: left;
    }
    & p {
      font-size: 11.5px;
      width: auto;
      color: #00a9e0;
      justify-content: flex-start;
      text-align: left;
      width: 87%;
      @media screen and (min-width: 1080px) {
        font-size: 16px;
        justify-content: center;
      }
    }
    .m-ex {
      font-size: 10px;
      width: 100%;
      font-weight: 500;
      letter-spacing: 0.01em;
      margin-top: 3px;
      opacity: 0.6;
      display: block;
      text-align: left;
      @media screen and (min-width: 1080px) {
        font-size: 12px;
      }
    }
  }
  .E20 {
    .e20-maile {
      justify-content: center;
      width: auto;
      margin-top: 30px;
      align-items: flex-start;
      @media screen and (min-width: 1080px) {
        margin-bottom: -17px;
        justify-content: flex-start;
      }
    }
  }
  .l-inr-lg {
    max-width: 1200px;
    margin: 0 auto;
  }
}

.lp-hd-second{
  z-index: 50;
}

.Bf-top {
  background: #111010;
  padding: 0 !important;
  &.Bf-top-nebula {
    .main {
      @media screen and (min-width: 1080px) {
        gap: 40px !important;
      }
    }
    .award img {
      margin-top: 15px;
      width: 100% !important;
      @media screen and (min-width: 1080px) {
        margin-top: 0;
        margin-bottom: 10px;
      }
    }
  }
  &.Bf-top-soundcore {
    .main {
      @media screen and (min-width: 1080px) {
        padding: 80px 0 !important;
      }
    }
  }
  .extxt {
    font-size: 10px;
    line-height: 1.3;
    opacity: 0.6;
    color: #fff;
    display: block;
  }
  .Bf-kv {
    position: relative;
    padding: 20px 0 !important;
    .bg-gold {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 0;
      object-fit: contain;
    }
    .container {
      position: relative;
      z-index: 1;
      width: min(1080px, 95%);
      display: flex;
      justify-content: space-between;
      margin: 0 auto;
      flex-wrap: wrap;
      gap: 20px;
      padding: 0 15px;
      @media screen and (min-width: 1080px) {
        gap: 30px;
        flex-direction: row;
      }
    }
    .on-item {
      position: absolute;
    }
    .item-a {
      left: 0;
      width: 35%;
      top: -5%;
      @media screen and (min-width: 1080px) {
        width: 70%;
        top: 5%;
      }
    }
    .item-b {
      width: 62%;
      top: 38%;
      right: 0;
    }
    .item-c {
      width: 50%;
      bottom: 50%;
      left: -10%;
    }
    .item-d {
      width: 50%;
      right: 0;
      bottom: -35%;
      @media screen and (min-width: 1080px) {
        width: 80%;
        bottom: 3%;
      }
    }
    .item-e {
      right: -8%;
      width: 60%;
      top: 2%;
    }
    .item-f {
      width: 100%;
      top: 20%;
      left: -10%;
    }
    .item-g {
      width: 50%;
      top: 20%;
      left: -15%;
    }
    .item-h {
      width: 130%;
      object-fit: contain;
      bottom: 6%;
      scale: 1.5;
      right: 6%;
    }
    .item-r {
      width: 55%;
      top: 16%;
      left: 0;
    }
    .item-j {
      right: -5%;
      width: 42%;
      top: 8%;
    }
    .item-k {
      width: 47%;
      top: 20%;
      left: -8%;
    }
    .item-l {
      width: 100%;
      bottom: 0%;
      right: 6%;
    }
    .image-a {
      position: relative;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      order: 4;
      width: 100%;
      @media screen and (min-width: 1080px) {
        order: 0;
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        width: 28%;
      }
      .award {
        & img {
          width: 70%;
          margin-bottom: 5px;
          @media screen and (min-width: 1080px) {
            margin-bottom: 10px;
            width: 90%;
          }
        }
      }
    }
    .image-b {
      width: 100%;
      padding-top: 10px;
      display: flex;
      position: relative;
      flex-direction: column;
      order: 3;
      @media screen and (min-width: 1080px) {
        order: 3;
        width: 28%;
      }
      .priceoff {
        width: 44%;
        right: 0;
        top: 0;
        z-index: -1;
        position: absolute;
        @media screen and (min-width: 1080px) {
          position: static;
          margin: 0 0 0 auto;
          width: 80%;
        }
      }
    }
    .main {
      width: 100%;
      display: grid;
      padding: 30px 0 0;
      place-items: center;
      margin: 0 auto;
      gap: 15px;
      order: 0;
      @media screen and (min-width: 1080px) {
        padding: 50px 0;
        width: 33%;
        gap: 50px;
        order: 2;
      }
      .oncopy {
        text-align: center;
        color: #fff;
        display: grid;
        place-items: center;
        gap: 2px;
        line-height: 1.5;
        font-weight: 500;
        font-size: 20px;
        & img {
          margin-top: 10px;
          padding: 0 15px;
          @media screen and (min-width: 1080px) {
            padding: 0;
          }
        }
        @media screen and (min-width: 1080px) {
          gap: 5px;
          font-size: 24px;
        }
        & span {
          display: block;
          font-size: 12px;
          @media screen and (min-width: 1080px) {
            font-size: 18px;
          }
        }
      }
      & img {
        object-fit: contain;
        @media screen and (min-width: 1080px) {
          width: 100%;
        }
      }
    }
  }
}


.lp-btn-amazon {
  background: #fff;
  color: var(--txt-black);
  &:hover {
    background: var(--clr-amazon);
    color: #fff;
  }
}

.Reviews-instagram {
  margin-top: 50px;
}
.Reviews-instagram .feature-tabs__title {
  margin-bottom: 20px;
  margin-top: 60px;
  text-align: left;
  padding-left: max(16px, calc((100% - 1200px) / 2));
  @media screen and (min-width: 1080px) {
    margin-bottom: 30px;
    margin-top: 80px;
    padding-left: max(40px, calc((100% - 1200px) / 2));
  }
}


/* --------------------
- Common
--------------------*/
/* -- Organisms */
.m-ruby {
  & rt {
    font-size: 8px;
    font-weight: normal;
    letter-spacing: 0.3em;
    text-align: center;
    transform: translateY(-0.1em);
    @media screen and (min-width: 1080px) {
      transform: translateY(-0.3em);
    }
  }
}

/* Safari専用のruby要素スタイル */
@supports (-webkit-appearance: none) {
  ruby {
    & rt {
      position: relative;
      z-index: 1;
      background: transparent;
      line-height: 1.2;

      /* Safariでのrt要素の位置調整 */
      transform: translateY(-0.1em);
      @media screen and (min-width: 1080px) {
        transform: translateY(-0.3em);
      }
    }

    /* SVG要素のz-indexを下げてrt要素の下に配置 */
    & svg {
      position: relative;
      z-index: 0;
    }
  }
}

/* より確実なSafari対応（WebKitベースのブラウザ） */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  ruby {
    display: inline-flex;
    flex-direction: column-reverse;
    align-items: center;
    & rt {
      position: static;
      z-index: auto;
      margin-bottom: -0.5em;
      font-size: 8px;
      font-weight: normal;
      letter-spacing: 0.3em;
      text-align: center;
      @media screen and (min-width: 1080px) {
        margin-bottom: -0.8em;
        font-size: 8px;
      }
    }
    & svg {
      position: static;
      z-index: auto;
    }
  }
}

.heading {
  margin: 0 0 20px;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0;
  @media screen and (min-width: 1080px) {
    margin: 0 0 40px;
    font-size: 32px;
  }
  &.-center {
    display: grid;
    place-content: center;
  }
}

#diagnosis-wrap {
  background: var(--c-bg-light);
  padding: 60px 0;
  @media screen and (min-width: 1080px) {
    padding: 80px 0 80px;
  }
}

/* -------------------------
 - Products
------------------------- */
.Products {
  padding: 60px 0 0;
  .heading {
    text-align: center;
    @media screen and (min-width: 1080px) {
      margin-bottom: 60px;
    }
  }
  @media screen and (min-width: 1080px) {
    padding: 120px 0 0;
    .l-inr-lg {

      .sec-heading:first-of-type {
        width: 100%;
        margin-bottom: 30px;
      }
      display: flex;
      flex-wrap: wrap;
      gap: 30px;
      align-items: flex-start;
      .head-list {
        order: 2;
      }
      .products-content {
        order: 3;
        flex: 1;
        min-width: 0;
      }
    }
  }
  #Product-x10 {
    .block-thum {
      padding: 0;
    }
  }
  #Product-c10 {
    .block-thum {
      padding: 0;
      @media screen and (min-width: 1080px) {
        padding: 0;
      }
    }
  }
  #Product-E25 {
    .block-thum {
      @media screen and (min-width: 1080px) {
        padding: 0;
      }
    }
  }
  #Product-e20 {
    .block-thum {
      @media screen and (min-width: 1080px) {
        padding: 0;
      }
    }
  }
  .head-list {
    display: flex;
    gap: 5px;
    padding: 0;
    position: sticky;
    top: 60px;
    z-index: 100;

    @media screen and (min-width: 1080px) {
      flex-direction: column;
      background: #fff;
      border-bottom: none;
      flex-shrink: 0;
      width: 240px;
      position: sticky;
      border-top: none;
      border-left: none;
      border-right: none;
      border-bottom: none;
      top: 100px;
      align-self: flex-start;
      gap: 0;
    }
  }
  .maile-cp {
    margin: 0;
    align-items: center;
    @media screen and (min-width: 1080px) {
      align-items: center;
    }
    & p {
      font-size: 10px;
      letter-spacing: 0;
      @media screen and (min-width: 1080px) {
        font-size: 12px;
      }
    }
  }
  .head-item {
    flex: 1;
    list-style: none;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 6px;
    background: #fff;
    @media screen and (min-width: 1080px) {
      border: none;
      border-radius: 0;
      flex: none;
    }
    &.is-active {
      .head-link {
        color:white;
        background: var(--c-primary);
        border-radius: 6px;
        @media screen and (min-width: 1080px) {
          color: var(--c-primary);
          border-radius: 0;
          background: none;
          border-bottom: none ;
        }
        .head-copy {
          color: white!important;
          @media screen and (min-width: 1080px) {
            color: var(--c-primary)!important;
          }
        }
      }
    }
  }
  .head-link {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 12px 8px 10px;
    text-decoration: none;
    color: #666;
    transition: all 0.2s ease;
    @media screen and (min-width: 1080px) {
      padding: 16px 20px;
      border-bottom: none;
      border-left: 2px solid transparent;
      justify-content: flex-start;
      &:hover {
        color: var(--c-primary);
        border-left-color: rgba(0, 93, 142, 0.3);
      }
    }
    .head-item.is-active & {
      color: var(--c-primary);
      border-bottom-color: var(--c-primary);
      @media screen and (min-width: 1080px) {
        border-bottom-color: transparent;
        border-left-color: var(--c-primary);
      }
      .head-copy {
        color: var(--c-primary);
        font-weight: 600;
      }
    }
  }
  .list-wrap {
    display: flex;
    flex-direction: column;
    width: 100%;
    @media screen and (min-width: 1080px) {
      width: 100%;
    }
    & li {
      display: flex;
      font-size: 12px;
      align-items: center;
      border-bottom: 1px solid rgba(0 0 0 / 0.1);
      padding: 10px 0;
      justify-content: space-between;
      &:last-child {
        border-bottom: none;
      }
      .lp-btns {
        justify-content: flex-end;
        & li {
          display: flex;
          border-bottom: none;
          padding: 0;
        }
      }
    }
  }
  .m-txtLink {
    margin-top: 20px;
    display: inline-flex;
    align-items: center;
    color: var(--clr-theme);
    font-size: 12px;
    letter-spacing: 0.05em;
    line-height: 1.1;
    &::after {
      content: "";
      display: inline-block;
      width: 0.4em;
      height: 0.4em;
      margin: 0 0 0 0.4em;
      line-height: 1;
      border-top: solid 1px var(--clr-theme);
      border-right: solid 1px var(--clr-theme);
      transform: translateY(0.1em) rotate(45deg);
      transition: all 0.3s;
    }
    @media (hover: hover) and (pointer: fine) {
      &:hover {
        color: var(--clr-theme);
        opacity: 1;
        filter: brightness(0.8);
        &::after {
          transform: translateX(4px) translateY(0.1em) rotate(45deg);
        }
      }
    }
    &.-inactive {
      color: var(--txt-Black);
      pointer-events: none;
      &::after {
        display: none;
      }
    }
  }
  .product-price-v2-discount-rate,
  .product-price-v2-coupon-label {
    white-space: nowrap;
  }
  .head-thum {
    display: none;
    @media screen and (min-width: 1080px) {
      display: flex;
      gap: -4px;
      margin: 0 auto;
    }
  }
  .head-copy {
    font-size: 11px;
    line-height: 1.25;
    letter-spacing: 0.05em;
    text-align: center;
    margin: 0;
    transition: color 0.2s ease;
    @media screen and (min-width: 1080px) {
      font-size: 15px;
      line-height: 1.5;
      letter-spacing: 0.05em;
      text-align: left;
    }
  }
  .head-tit {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-grow: 1;
    font-size: 14px;
    font-weight: 700;
    line-height: 125%;
    letter-spacing: 0;
    text-align: center;
    @media screen and (min-width: 1080px) {
      font-weight: 400;
      font-size: 24px;
    }
  }
  .products-content {
    padding-top: 30px;
    @media screen and (min-width: 1080px) {
      padding-top: 0px;
    }
    /* block要素の間のスペース */
    .block {
      &:not(:first-of-type) {
        margin-top: 25px;
        @media screen and (min-width: 1080px) {
          margin-top: 30px;
        }
      }
    }

    /* 製品詳細へボタン */
    .product-detail-btn {
      margin-top: 0;
      text-align: center;
      @media screen and (min-width: 1080px) {
        margin-top: 10px;
      }
      .lp-btns {
        & li {
          width: 48.5%;
        }
      }
      .btn-product-detail {
        width: 100%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 12px 24px;
        background: var(--clr-theme);
        color: #fff;
        border: 1px solid var(--clr-theme);
        border-radius: 999px;
        font-size: 14px;
        font-weight: 600;
        text-decoration: none;
        transition: all 0.3s;
        @media screen and (min-width: 1080px) {
          &:hover {
            background: #fff;
            color: var(--clr-theme);
          }
        }
      }
    }
    @media screen and (min-width: 1080px) {
      flex: 1;
      min-width: 0;
    }
  }
  .sec {
    padding-bottom: 50px;
  }
  .sec-heading {
    padding-bottom: 10px;
    color: var(--c-primary);
    border-bottom: solid 1px #005d8e;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: 0;
    margin-bottom: 20px;
    text-align: center;
    @media screen and (min-width: 1080px) {
      padding-bottom: 20px;
      font-size: 26px;
      text-align: left;
    }
  }
  .product-price-v2 {
    width: 100% !important;
    @media screen and (min-width: 1080px) {
      width: auto !important;
    }
  }
  .product-price-v2-unit {
    align-items: center !important;
    justify-content: center;
  }
  .product-price-v2 {
    align-items: flex-end !important;
    justify-content: center !important;
  }
  .block {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 20px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 16px;
    padding: 14px;
    background: #fff;
    @media screen and (min-width: 1080px) {
      gap: 25px;
      grid-template-columns: 3.5fr 5fr;
      padding: 20px;
      border-radius: 20px;
    }
    &:not(:first-of-type) {
      margin: 20px 0 0 0;
      @media screen and (min-width: 1080px) {
        margin: 24px 0 0 0;
      }
    }
    transition: border-color 0.2s ease;
    &:hover {
      border-color: var(--c-primary);
    }
  }
  .block-head {
    background-color: var(--c-bg-light);
    border-radius: 12px;
    position: relative;
    z-index: 1;
    display: flex;
    gap: 20px;
    padding: 25px 15px;
    align-items: center;
    justify-content: center;
    @media screen and (min-width: 1080px) {
      flex-direction: column;
      padding-inline: 0;
      padding-block: 40px;
    }
    & img {
      height: 100%;
      object-fit: contain;
    }
    .new {
      position: absolute;
      width: 45px;
      color: var(--c-primary);
      z-index: 5;
      height: 45px;
      font-weight: 700;
      font-size: 12px;
      display: flex;
      justify-content: center;
      align-items: center;
      left: 5%;
      border: 1px solid #005d8e;
      border-radius: 100%;
      top: 5%;
    }
    @media screen and (min-width: 1080px) {
      height: auto;
    }
  }
  .present-banner {
    width: 30%;
    margin-top: 15px;
    @media screen and (min-width: 1080px) {
      width: 85%;
      margin-top: 0;
    }
    .present-banner__content {
      @media screen and (min-width: 1080px) {
        padding: 10px;
        flex-direction: row;
        gap: 0;
      }
    }
    .present-banner__icon {
      @media screen and (min-width: 1080px) {
        top: -15px;
        transform: translateX(-100%);
        left: 55%;
      }
    }
  }
  .product-price-v2-tax {
    font-size: 10px;
    line-height: 1.25;
    opacity: 0.6;
  }
  .block-thum {
    height: 100%;
    height: 150px;
    @media screen and (min-width: 1080px) {
      width: 80%;
      height: 140px;
    }
  }
  .block-btn-movie {
    position: absolute;
    z-index: inherit;
    bottom: 3%;
    right: 3%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    padding: 12px 8px 11px;
    font-size: 11.5px;
    justify-content: center;
    align-items: center;
    gap: 5px;
    border-radius: 99999px;
    line-height: 1.2;
    border: solid 1px var(--clr-theme);
    background: #fff;
    cursor: pointer;
    @media screen and (min-width: 1080px) {
      width: 130px;
      bottom: 40px;
      left: calc(50% - 65px);
      right: auto;
      font-size: 14px;
      &:hover {
        &::after {
          transform: translateX(4px);
        }
      }
    }
    &::after {
      content: "";
      display: inline-block;
      width: 1em;
      height: 1em;
      content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  line-height: 1;
  background: var(--txt-black);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  mask-image: url("/cdn/shop/files/ico-arrow-right.svg");
      background: var(--clr-theme);
      transition: all 0.3s;
    }
  }
  .block-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
    @media screen and (min-width: 1080px) {
      padding-block: 20px;
      gap: 15px;
    }
    .sale {
      width: calc(min(450px, 100%));
    }
    .lp-txtLink {
      width: 100%;
    }
    .ex {
      font-size: 10px;
      opacity: 0.6;
      margin-top: -15px;
      display: block;
      text-align: left;
      line-height: 1.3;
      @media screen and (min-width: 1080px) {
        margin-top: 15px;
      }
    }
    .lp-btns {
      justify-content: space-between;
      @media screen and (min-width: 1080px) {
        width: 100%;
      }
      & li {
        width: 48%;
        &:nth-child(3) {
          width: 100% !important;
        }
        .lp-btn-amazon,
        .lp-btn {
          height: 45px;
          font-size: 12px;
          width: 100%;
          @media screen and (min-width: 1080px) {
            height: 48px;
            font-size: 12px;
          }
        }
      }
    }
  }
  .product-rating {
    display: none;
  }
  .block-content > div:first-child {
    display: flex;
    flex-direction: column;
    gap: 6px;
    @media screen and (min-width: 1080px) {
      gap: 8px;
    }
  }
  .block-name {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    letter-spacing: 0em;
    font-family: 'Mont', 'Noto Sans JP', sans-serif;
    @media screen and (min-width: 1080px) {
      font-size: 20px;
      text-align: left;
    }
  }
  .block-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    font-size: 18px;
    text-align: center;
    @media screen and (min-width: 1080px) {
      justify-content: flex-start;
      font-size: 24px;
      text-align: left;
    }
  }
  .block-disc {
    width: 100%;
    margin: 0 auto;
    font-size: 12px;
    line-height: 1.5;
    opacity: 0.6;
    text-align: center;
    @media screen and (min-width: 1080px) {
      text-align: left;
      width: 100%;
      margin: 0;
      font-size: 14px;
    }
  }
  .block-fns {
    display: grid;
    max-width: 100%;
    gap: 4px;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 1fr;
    @media screen and (min-width: 1080px) {
      gap: 5px;
      grid-template-columns: repeat(6, 1fr);
      grid-auto-rows: auto;
    }
    & li {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      padding: 6px;
      border-radius: 5px;
      border: 1px solid rgba(0, 0, 0, 0.08);
      background: #fff;
      line-height: 1.15;
      letter-spacing: -0.03em;
      font-size: 10px;
      text-align: left;
      opacity: 0.7;
      flex-direction: row;
      position: relative;
      overflow: hidden;
      gap: 4px;
      @media screen and (min-width: 1080px) {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        letter-spacing: 0;
        padding: 5px;
        gap: 8px;
        font-size: 10px;
      }

      /* アイコン用の疑似要素 */
      &::before {
        content: "";
        display: block;
        width: 22px;
        height: 22px;
        flex-shrink: 0;
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        @media screen and (min-width: 1080px) {
          width: 35px;
          height: 30px;
        }
      }

      /* ローラーモップ項目（1番目）の特別なスタイル */
      &.icon-roller-mop {
        &::before {
          width: 22px;
          height: 22px;
        }
        @media screen and (min-width: 1080px) {
          padding-top: 40%;
          justify-content: flex-end;
        }
        &::before {
          @media screen and (min-width: 1080px) {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 40%;
            background-size: contain;
            background-position: center;
            background-repeat: no-repeat;
            top: 0;
            left: 0;
            width: 100%;
            height: 40%;
            background-size: contain;
            background-position: center;
            background-repeat: no-repeat;
          }
        }
      }

      /* 各機能に対応するアイコン（必要に応じて追加） */
      &.icon-nomal::before {
        background-image: url("/cdn/shop/files/eufy-lineup-icon-i-v2.svg");
      }

      /* クラスベースのアイコン指定 */
      &.icon-suction::before {
        /* 吸引力 */
        background-image: url("/cdn/shop/files/eufy-lineup-icon-d-v2.svg?v=1763358364");
      }
      &.icon-auto-empty::before {
        /* 自動ゴミ収集 */
        background-image: url("/cdn/shop/files/eufy-lineup-icon-e-v2.svg");
      }
      &.icon-mop-wash::before {
        /* モップ洗浄 */
        background-image: url("/cdn/shop/files/eufy-lineup-icon-a-v2.svg?v=1763358363");
      }
      &.icon-mop-wash-b::before {
        /* モップ洗浄 */
        background-image: url("/cdn/shop/files/eufy-lineup-icon-a-v3.svg?v=1763451078");
      }
      &.icon-ozone::before {
        /* オゾン */
        background-image: url("/cdn/shop/files/eufy-lineup-icon-f-v2.svg");
      }
      &.icon-obstacle::before {
        /* 障害物 */
        background-image: url("/cdn/shop/files/eufy-lineup-icon-b-v2.svg");
      }
      &.icon-hair-removal::before {
        /* 毛がらみ除去 */
        background-image: url("/cdn/shop/files/eufy-lineup-icon-c-v2.svg");
      }
      &.icon-hair-removal-b::before {
        /* 毛がらみ除去 */
        background-image: url("/cdn/shop/files/eufy-lineup-icon-g-v2.svg");
      }
      &.icon-duospiral::before {
        /* DuoSpiral™ ブラシ */
        background-image: url("/cdn/shop/files/eufy-lineup-icon-c-v2.svg?v=1763358364");
      }
      &.icon-stick-handy::before {
        /* stick-handy */
        background-image: url("/cdn/shop/files/eufy-lineup-icon-h-v2.svg?v=1763360736");
      }
      &.is-active {
        opacity: 1;
        border-color: rgba(0, 0, 0, 0.1);
      }
    }
  }

  /* S1製品のローラーモップ */
  #Product-s1 .block-fns li.icon-roller-mop::before {
    background-image: url("/cdn/shop/files/rollermop-s10.webp?v=1763357637");
  }

  /* E25製品のローラーモップ */
  #Product-E25 .block-fns li.icon-roller-mop::before {
    background-image: url("/cdn/shop/files/rollermop-e25.webp?v=1763357637");
  }
  #Product-C28 .block-fns li.icon-roller-mop::before {
    background-image: url("/cdn/shop/files/eufy-robotcleaner-C28-mop.webp?v=1770689440");
  }

  /* C28 block: product-intro__cta（上部Info--c28と同デザイン） */
  #Product-C28 .block-content .product-intro__cta {
    display: flex;
    gap: 14px;
    justify-content: space-between;
    align-items: center;
    margin-top: 7px;
    padding-top: 20px;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    @media screen and (min-width: 1080px) {
      gap: 20px;
    }
  }
  #Product-C28 .block-content .product-intro__cta-text p {
    font-size: 10px;
    color: var(--c-text);
    line-height: 1.5;
    letter-spacing: 1.12px;
    @media screen and (min-width: 1080px) {
      font-size: 12px;
    }
  }
  #Product-C28 .block-content .product-intro__cta-btn {
    background-color: var(--c-primary);
    color: #fff;
    border: 2px solid #005d8e;
    border-radius: 99999px;
    padding: 16px 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-decoration: none;
    transition: all 0.3s ease;
    white-space: nowrap;
    width: 80%;
    @media screen and (min-width: 1080px) {
      padding: 15px 33px;
      height: 48px;
      width: fit-content;
    }
    &:hover {
      background-color: #fff;
      color: var(--c-primary);
    }
    & svg {
      width: 24px;
      height: 18px;
      flex-shrink: 0;
    }
    & span {
      font-size: 13px;
      @media screen and (min-width: 1080px) {
        font-size: 14px;
      }
    }
  }
  #Product-C28 .block-content .product-intro__cta-note {
    font-size: 10px;
    color: #666;
  }

  /* X10製品のローラーモップ */
  #Product-x10 .block-fns li.icon-roller-mop::before {
    background-image: url("/cdn/shop/files/rollermop-x10.webp?v=1763357637");
  }

  /* C20製品のローラーモップ（クラスベース） */
  #Product-c20 .block-fns li.icon-roller-mop::before {
    background-image: url("/cdn/shop/files/rollermop-c10.webp?v=1763357637");
  }
  .lp-btns {
    margin-top: 10px;
    row-gap: 0;
    @media screen and (min-width: 1080px) {
      margin-top: 0;
      row-gap: 4px;
      justify-content: flex-start;
      .is-more {
        text-align: left;
        justify-content: flex-end;
      }
    }
  }
  .lp-item {
    .lp-btns {
      max-width: 200px;
      row-gap: 0;
      @media screen and (min-width: 1080px) {
        max-width: 100%;
        column-gap: 8px;
        justify-content: flex-end;
        .is-more {
          text-align: right;
        }
      }
    }
  }
  .lp-item-name {
    font-weight: 700;
  }
  .lp-caption {
    @media screen and (min-width: 1080px) {
      margin-top: -20px;
    }
  }
  .lp-btn-amazon {
    background: #fff;
    @media screen and (min-width: 1080px) {
      &:hover {
        background: var(--clr-amazon);
      }
    }
  }
}

/* -------------------------
 - Functions
------------------------- */
.Functions {
  padding: 60px 0 48px 0;
  @media screen and (min-width: 1080px) {
    padding: 120px 0 60px 0;
  }
  .heading {
    margin: 0 0 20px;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: 0;
    text-align: center;
    @media screen and (min-width: 1080px) {
      margin: 0 0 40px;
      font-size: 32px;
    }
  }
  .cards-wrap {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    padding-left: max(16px, calc((100vw - 1200px) / 2));
    padding-right: max(16px, calc((100vw - 1200px) / 2));
    box-sizing: border-box;
    @media screen and (min-width: 1080px) {
      padding-left: max(40px, calc((100vw - 1200px) / 2));
      padding-right: max(40px, calc((100vw - 1200px) / 2));
    }
    .splide__track {
      overflow: visible;
    }
  }
  /* Splide矢印 */
  .splide__arrow {
    width: 32px;
    height: 32px;
    background: rgba(255, 255, 255, 0.7);
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.1);
    border: none;
    opacity: 1;
    transition: background 0.2s ease;
    &:hover {
      background: rgba(255, 255, 255, 0.95);
    }
    & svg {
      display: none;
    }
    &::after {
      content: '';
      display: block;
      width: 10px;
      height: 10px;
      border-right: 1.5px solid #333;
      border-bottom: 1.5px solid #333;
    }
    @media screen and (min-width: 1080px) {
      width: 44px;
      height: 44px;
      &::after {
        width: 12px;
        height: 12px;
      }
    }
  }
  .splide__arrow--prev {
    left: 6px;
    @media screen and (min-width: 1080px) {
      left: max(12px, calc((100vw - 1200px) / 2 - 56px));
    }
    &::after {
      transform: rotate(135deg);
      margin-left: 3px;
    }
  }
  .splide__arrow--next {
    right: 6px;
    @media screen and (min-width: 1080px) {
      right: max(12px, calc((100vw - 1200px) / 2 - 56px));
    }
    &::after {
      transform: rotate(-45deg);
      margin-right: 3px;
    }
  }
  /* Splideページネーション */
  .splide__pagination {
    position: absolute;
    bottom: -36px;
    left: 50vw;
    transform: translateX(-50%);
    margin-left: calc(-50vw + 50%);
    gap: 6px;
    width: auto;
    @media screen and (min-width: 1080px) {
      bottom: -44px;
      gap: 8px;
    }
  }
  .splide__pagination__page {
    width: 6px;
    height: 6px;
    background: rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    border: none;
    margin: 0;
    opacity: 1;
    transition: all 0.3s ease;
    &.is-active {
      background: #333;
      width: 20px;
      border-radius: 3px;
    }
    @media screen and (min-width: 1080px) {
      width: 7px;
      height: 7px;
      &.is-active {
        width: 24px;
        border-radius: 4px;
      }
    }
  }
  /* カード */
  .splide__slide:not(.is-visible) {
    opacity: 0.4;
    transition: opacity 0.3s ease;
  }
  .card {

    border-radius: 12px;
    overflow: hidden;
    background: #f4f6f8;
  }
  .card-thum {
    position: relative;
    display: block;
    & img {
      width: 100%;
      height: auto;
      display: block;
    }
    &::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 40%;
      background: linear-gradient(to top, #f4f6f8 0%, rgba(244, 246, 248, 0) 100%);
      pointer-events: none;
    }
  }
  .card-content {
    display: flex;
    padding: 0 20px 24px;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    margin-top: -16px;
    position: relative;
    z-index: 1;
    @media screen and (min-width: 1080px) {
      padding: 0 24px 28px;
    }
  }
  .card-tit {
    font-size: 18px;
    font-weight: 450;
    line-height: 1.3;
    letter-spacing: 0.02em;
    @media screen and (min-width: 1080px) {
      font-size: 22px;
      font-weight: 500;
    }
  }
  .card-txt {
    font-size: 13px;
    line-height: 1.6;
    color: #555;
    @media screen and (min-width: 1080px) {
      font-size: 14px;
    }
  }
}

/* -------------------------
 - Ugc
------------------------- */
.Ugc {
  padding: 90px 0 0 0;
  @media screen and (min-width: 1080px) {
    padding: 120px 0 0 0;
  }
  .heading {
    margin: 0 0 20px;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: 0;
    @media screen and (min-width: 1080px) {
      margin: 0 0 40px;
      font-size: 32px;
    }
  }
  .tabBtns {
    display: grid;
    grid-template-columns: repeat(8, minmax(110px, 1fr));
    margin: 0 0 20px;
    overflow-x: scroll;
    scroll-snap-type: x mandatory;
    scrollbar-color: var(--clr-theme) transparent;
    scrollbar-width: thin;
    @media screen and (min-width: 1080px) {
      grid-template-columns: repeat(8, 1fr);
      overflow-x: hidden;
      padding: 0 0 20px;
    }
    &::-webkit-scrollbar {
      height: 4px;
    }
    &::-webkit-scrollbar-track {
      background: transparent;
    }
    &::-webkit-scrollbar-thumb {
      background: var(--clr-theme);
      border-radius: 4px;
    }
    &::-webkit-scrollbar-thumb:hover {
      background: var(--clr-theme);
    }
  }
  .tabBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 4px;
    font-size: 12px;
    line-height: 1.25;
    text-align: center;
    border-bottom: solid 2px white;
    cursor: pointer;
    @media screen and (min-width: 1080px) {
      padding: 30px 10px;
    }
    &.is-active {
      font-weight: 700;
      @media screen and (min-width: 1080px) {
        border-color: var(--clr-theme);
      }
    }
    @media screen and (min-width: 1080px) {
      font-size: 16px;
      &:hover {
        border-color: var(--clr-theme);
      }
    }
  }
  .js-tabArea {
    display: none;
    &.is-show {
      display: block;
    }
  }
  .items {
    --bg-item: #f7f9fa;
    display: flex;
    gap: 10px;
    padding-bottom: 30px;
    @media screen and (min-width: 1080px) {
      display: grid;
      gap: 20px;
      grid-template-columns: repeat(4, 1fr);
    }
    overflow-x: scroll;
    scroll-snap-type: x mandatory;
    scrollbar-color: var(--clr-theme) transparent;
    scrollbar-width: thin;
    cursor: grab;
    &:active {
      cursor: grabbing;
    }
    &::-webkit-scrollbar {
      height: 8px;
    }
    &::-webkit-scrollbar-track {
      background: transparent;
    }
    &::-webkit-scrollbar-thumb {
      background: var(--clr-theme);
      border-radius: 4px;
    }
    &::-webkit-scrollbar-thumb:hover {
      background: var(--clr-theme);
    }
  }
  .item {
    flex-shrink: 0;
    background: var(--bg-item);
    & iframe {
      aspect-ratio: 16/9;
      width: 100%;
      height: auto;
      display: block;
    }
    &.-youtube {
      width: 310px;
      @media screen and (min-width: 1080px) {
        width: 580px;
      }
    }
    &.-tiktok {
      width: 180px;
      @media screen and (min-width: 1080px) {
        width: 240px;
      }
      & video {
        width: 100%;
      }
      .item-content {
        padding: 8px 10px 10px;
        @media screen and (min-width: 1080px) {
          padding: 16px 20px 20px;
        }
      }
    }
  }
  .item-link {
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  .item-content {
    flex-grow: 1;
    display: flex;
    flex-wrap: wrap;
    padding: 20px;
    @media screen and (min-width: 1080px) {
      padding: 30px;
    }
  }
  .item-tit {
    width: 100%;
    margin: 0 0 20px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.16px;
    @media screen and (min-width: 1080px) {
      font-size: 18px;
    }
  }
  .item-author {
    margin-top: auto;
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 12px;
    line-height: 1.5;
    letter-spacing: 0.12px;
    & img {
      display: block;
      width: 40px;
      height: 40px;
      border-radius: 50%;
      overflow: hidden;
    }
  }
}

/* -------------------------
 - KV Top Slider
------------------------- */
/* ヒーローカルーセル */
/* ▼ ヒーロー背景色 — 変更時はここを差し替えるだけ */
.eufy-hero-carousel {
  position: relative;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  overflow: hidden;
  padding: 15px 0px 32px;
  padding-bottom: 32px;
  background: transparent;
  z-index: 1;
  @media (min-width: 1080px) {
    padding-bottom: 45px;
  }
}
.eufy-hero-carousel__viewport {
  overflow: visible;
}
.eufy-hero-carousel__slide {
  position: relative;
  &::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    border-radius: inherit;
    transition: opacity 0.4s ease;
    opacity: 1;
    pointer-events: none;
  }
  &.is-active::after {
    opacity: 0;
  }
}
/* JS実行前の初期表示：1枚目を中央に */
/* JS実行前：3枚を中央寄せ、アクティブスライドが中央 */
.eufy-hero-carousel__track:not(.is-ready) {
  transform: translateX(calc(-1 * (calc(100vw - 64px) + 12px) + (100vw - calc(100vw - 64px)) / 2));
  @media (min-width: 1080px) {
    transform: translateX(calc(-1 * (min(1200px, calc(100vw - 120px)) + 16px) + (100vw - min(1200px, calc(100vw - 120px))) / 2));
  }
}
.eufy-hero-carousel__track {
  display: flex;
  gap: 12px;
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  &.is-dragging {
    cursor: grabbing;
  }
  &.is-animated {
    transition: transform 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);
  }
  @media (min-width: 1080px) {
    gap: 16px;
  }
}
.eufy-hero-carousel__slide {
  flex: 0 0 calc(100vw - 64px);
  overflow: hidden;
  pointer-events: none;
  border-radius: 6px;
  aspect-ratio: 1 / 1;
  &.is-active {
    pointer-events: auto;
  }
  & img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  @media (min-width: 1080px) {
    border-radius: 8px;
    aspect-ratio: 16 / 7.1;
    flex: 0 0 min(1200px, calc(100vw - 120px));
  }
}
.eufy-hero-carousel__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(calc(-50% - 24px));
  z-index: 2;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.7);
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #333;
  transition: background 0.2s ease;
  & svg {
    width: 18px;
    height: 18px;
  }
  &:hover {
    background: rgba(255, 255, 255, 0.95);
  }
  @media (min-width: 1080px) {
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    & svg {
      width: 22px;
      height: 22px;
    }
    &:hover {
      background: #fff;
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    }
  }
}
.eufy-hero-carousel__arrow--prev {
  left: 6px;
  @media (min-width: 1080px) {
    left: max(30px, calc((100vw - min(1200px, calc(100vw - 120px))) / 2 - 100px));
  }
}
.eufy-hero-carousel__arrow--next {
  right: 6px;
  @media (min-width: 1080px) {
    right: max(30px, calc((100vw - min(1200px, calc(100vw - 120px))) / 2 - 100px));
  }
}
.eufy-hero-carousel__dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin-top: 16px;
  @media (min-width: 1080px) {
    margin-top: 20px;
    gap: 8px;
  }
}
.eufy-hero-carousel__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.35);
  cursor: pointer;
  padding: 0;
  transition: all 0.3s ease;
  &.is-active {
    background: #fff;
    width: 20px;
    border-radius: 3px;
  }
  @media (min-width: 1080px) {
    width: 7px;
    height: 7px;
    &.is-active {
      width: 24px;
      border-radius: 4px;
    }
  }
}

/* Sale-Kv 背景エフェクト */
.sale-kv__bg-fx {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}
.sale-kv__blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  animation: sale-kv-blob 200s infinite ease-in-out alternate;
}
/* ▼ blob色・位置 — 変更時はここを差し替え */
.sale-kv__blob--1 {
  background: rgba(255, 255, 255, 0.45);
  width: 60vw;
  height: 55vh;
  top: -15%;
  left: 0%;
  animation-delay: 0s;
}
.sale-kv__blob--2 {
  background: rgba(140, 200, 240, 0.35);
  width: 55vw;
  height: 50vh;
  top: 30%;
  left: 50%;
  animation-delay: -15s;
}
.sale-kv__blob--3 {
  background: rgba(255, 255, 255, 0.3);
  width: 50vw;
  height: 55vh;
  top: 55%;
  left: 15%;
  animation-delay: -40s;
}
@keyframes sale-kv-blob {
  0% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(40vw, -15vh) scale(1.15); }
  50% { transform: translate(-25vw, 25vh) scale(0.9); }
  75% { transform: translate(35vw, -30vh) scale(1.1); }
  100% { transform: translate(0, 0) scale(1); }
}
.sale-kv__noise {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("/cdn/shop/files/sleep_lp_noise.jpg?v=1757499602");
  background-repeat: repeat;
  background-size: 200px;
  opacity: 0.04;
  z-index: 1;
}

/* TVCMセクション（Sale-Kv内） */
.eufy-tvcm {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 16px 0;
  text-align: center;
  position: relative;
  z-index: 1;
  display: grid;
  gap: 60px;
  grid-template-areas:
    "cm"
    "promo";
  @media (min-width: 1080px) {
    padding: 32px 0px;
    gap: 80px;
  }
}
/* catch + video のセット */
.eufy-tvcm__cm {
  grid-area: cm;
  display: grid;
  gap: 12px;
  @media (min-width: 1080px) {
    gap: 16px;
  }
}
.eufy-tvcm__catch {
  font-size: 13px;
  color: rgba(255, 255, 255, 1);
  margin: 0;
  line-height: 1.3;
  @media (min-width: 1080px) {
    font-size: 14px;
  }
}
.eufy-tvcm__video-wrap {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  border-radius: 6px;
  overflow: hidden;
  background: #1a1a1a;
  aspect-ratio: 16 / 9;
  @media (min-width: 1080px) {
    border-radius: 8px;
  }
}
.eufy-tvcm__video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
/* クーポン + バナーのセット */
.eufy-tvcm__coupon {
  font-size: 14px;
  line-height: 1.6;
  color: #fff;
  margin: 0;
  & strong {
    font-weight: 700;
  }
  @media (min-width: 1080px) {
    font-size: 16px;
  }
}
.eufy-tvcm__banners {
  margin: 0;
  padding: 0 ;

  .c28-banners_nner {
    display: flex;
    flex-direction: column;
    gap: 12px;
    @media (min-width: 1080px) {
      gap: 16px;
    }
  }
  .c28-banner {
    display: block;
    width: 100%;
    line-height: 0;
    border-radius: 8px;
    overflow: hidden;
    & img {
      width: 100%;
      height: auto;
      display: block;
    }
  }
}
/* coupon + banners をpromoエリアにまとめる */
.eufy-tvcm__promo {
  grid-area: promo;
  display: grid;
  gap: 16px;
  @media (min-width: 1080px) {
    gap: 20px;
  }
}

/* primedayキービジュアル */
/* ▼ KV背景色 — 変更時はここの2色を差し替えるだけ */
.Sale-Kv {
  --kv-color-bottom: #33495C;
  --kv-color-top: #A3B6BF;
  padding: 0;
  background: linear-gradient(to top, var(--kv-color-bottom), var(--kv-color-top));
  position: relative;
  overflow: hidden;
  .v2-top-slider {
    .splide__slide {
      & img {
        vertical-align: bottom;
        width: 100%;
      }
    }
    .v2-top-slider-anc {
      display: block;
      & img {
        width: 100%;
        height: auto;
      }
    }
  }
  .kv-first-slide {
    position: relative;
    overflow: hidden;
    & picture {
      display: block;
      & img {
        width: 100%;
        height: auto;
        vertical-align: bottom;
      }
    }
  }
  /*
  background-color: hsla(194.7945205479452, 100%, 42%, 1);
  background: linear-gradient(
    242deg,
    #076895 11.91%,
    #065275 44.14%,
    #043e58 88.96%
  );
  */
  background-blend-mode: normal, normal, normal, normal;
  .m-sp {
    display: block !important;
    @media screen and (min-width: 1080px) {
      display: none !important;
    }
  }
  .m-pc {
    display: none !important;
    @media screen and (min-width: 1080px) {
      display: block !important;
    }
  }
  .sale-oncopy {
    display: grid;
    gap: 12px;
    position: absolute;
    max-width: 1200px;
    width: 100%;
    left: 0;
    top: 30px;
    z-index: 5;
    pointer-events: none;
    color: #fff;
    place-items: center;
    opacity: 0;
    animation: m-fadeInB 0.4s 1.5s linear forwards;
    transition: color 0.5s ease;
    @media screen and (min-width: 1080px) {
      transform: translateX(-50%) !important;
      place-items: flex-start;
      gap: 20px;
      height: 85%;
      top: 50px;
      left: 50%;
    }
    .sale-oncopy__badge {
      position: absolute;
      top: 130px;
      left: 15px;
      z-index: 10;
      width: 130px;
      height: auto;
      opacity: 0;
      animation: m-fadeInB 0.6s 1.8s ease-out forwards;
      @media screen and (min-width: 1080px) {
        top: 0;
        right: 0;
        left: auto;
        width: 180px;
      }
      & img {
        width: 100%;
        height: auto;
        display: block;
      }
    }
    .lead {
      font-size: 3vw;
      display: flex;
      gap: 15px;
      align-items: center;
      font-weight: normal;
      padding-bottom: 20px;
      justify-content: center;
      margin-bottom: 15px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.2);
      @media screen and (min-width: 1080px) {
        font-size: 16px;
        justify-content: flex-start;
        gap: 20px;
        margin-bottom: 20px;
        padding-bottom: 25px;
      }
      & svg {
        height: 30px;
        width: auto;
        @media screen and (min-width: 1080px) {
          height: auto;
        }
        & path {
          transition: fill 0.5s ease;
        }
      }
    }
    .dp {
      display: grid;
      gap: 5px;
      place-items: center;
      font-weight: normal;
      color: inherit;
      font-weight: 500;
      font-size: 6.5vw;
      line-height: 1.3;
      text-align: center;
      @media screen and (min-width: 1080px) {
        gap: 10px;
        font-size: 46px;
        text-align: left;
        place-items: flex-start;
      }
      & span {
        font-size: 3.8vw;
        text-align: left;
        display: block;
        font-weight: 400;
        @media screen and (min-width: 1080px) {
          font-size: 22px;
        }
      }
    }
  }

  /* 明るい画像の場合、テキストを黒に (1枚目スライド内) */
  .kv-first-slide {
    .sale-oncopy {
      color: #000;
      .lead {
        border-bottom-color: rgba(0, 0, 0, 0.2);
        & svg path {
          fill: #000;
        }
      }
    }
  }
  .extxt {
    display: block;
    font-size: 10px;
    color: #fff;
    opacity: 0.8;
    width: 100%;
    line-height: 1.3;
    @media screen and (min-width: 1080px) {
      margin-top: 15px;
    }
  }
  .image {
    display: grid;
    gap: 30px;
    place-items: center;
    @media screen and (min-width: 1080px) {
      gap: 30px;
    }
    .v2-top-slider {
      width: 100%;
      .js-kv-splide {
        .splide__slide {
          & img {
            vertical-align: bottom;
            width: 100%;
          }
        }
        .splide__arrows {
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
          width: 100%;
          max-width: 1200px;
          height: 0;
          pointer-events: none;
          z-index: 20;
        }
        .splide__arrow {
          position: absolute;
          top: 0;
          transform: translateY(-50%);
          pointer-events: auto;
          background: rgba(0, 0, 0, 0.4);
          border: none;
          width: 40px;
          height: 40px;
          border-radius: 50%;
          cursor: pointer;
          display: flex;
          align-items: center;
          justify-content: center;
          transition: background 0.3s;
          z-index: 20;
          @media screen and (min-width: 1080px) {
            width: 50px;
            height: 50px;
          }
          &:hover {
            background: rgba(0, 0, 0, 0.7);
          }
          & svg {
            fill: #fff;
            width: 16px;
            height: 16px;
            @media screen and (min-width: 1080px) {
              width: 20px;
              height: 20px;
            }
          }
          .splide__arrow--prev {
            left: 5px;
            @media screen and (min-width: 1080px) {
              left: -60px;
            }
          }
          .splide__arrow--next {
            right: 5px;
            @media screen and (min-width: 1080px) {
              right: -60px;
            }
          }
        }
        .splide__pagination {
          bottom: 20px;
          z-index: 10;
          .splide__pagination__page {
            background: rgba(255, 255, 255, 0.5);
            width: 10px;
            height: 10px;
            &.is-active {
              background: #fff;
            }
          }
        }
      }
      .ontxt {
        position: absolute;
        right: 15px;
        left: 15px;
        bottom: 15px;
        text-align: right;
      }
      .main {
        text-align: left;
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: bottom;
        @media screen and (min-width: 1080px) {
          text-align: center;
          object-fit: cover;
          object-position: center;
          width: auto;
          height: 100%;
        }
      }
      .oncopy {
        display: grid;
        position: absolute;
        font-size: 18px;
        top: 35px;
        text-align: center;
        left: 50%;
        transform: translateX(-50%);
        font-weight: 600;
        @media screen and (min-width: 1080px) {
          top: 15%;
          font-size: 26px;
          transform: translate(50%, -50%);
        }
        & span {
          display: block;
          font-size: 12px;
          text-align: center;
          @media screen and (min-width: 1080px) {
            text-align: left;
            font-size: 16px;
          }
        }
      }
      .onaward {
        position: absolute;
        bottom: 60px;
        left: 25px;
        width: 70%;
        object-fit: contain;
        left: 50%;
        transform: translateX(-50%);
        @media screen and (min-width: 1080px) {
          position: absolute;
          bottom: 20px;
          left: 25px;
          width: 380px;
          object-fit: contain;
          transform: none;
        }
      }
      .onlogo {
        position: absolute;
        top: 0;
        left: 0;
        width: 80px;
        object-fit: contain;
        @media screen and (min-width: 1080px) {
          width: 140px;
        }
      }
      .main-badge {
        position: absolute;
        bottom: 15px;
        right: 15px;
        background-color: var(--c-primary);
        border-radius: 17.31px;
        padding: 26px 28px;
        display: flex;
        flex-direction: column;
        gap: 8.66px;
        align-items: center;
        width: 200px;
        z-index: 10;
        @media screen and (min-width: 1080px) {
          width: 278px;
          bottom: 20px;
          right: 20px;
          padding: 26px 28px;
        }
      }
    }
    .saleimage {
      display: none;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: 20px;
      width: 100%;
      @media screen and (min-width: 1080px) {
        width: min(1080px, 90%);
        gap: 30px;
        align-items: flex-end;
        flex-direction: row;
      }
      .item-a {
        width: 100%;
        order: 0;
        @media screen and (min-width: 1080px) {
          padding-bottom: 0;
          order: 0;
          width: 50%;
          border-bottom: none;
        }
      }
      .item-b {
        width: 95%;
        @media screen and (min-width: 1080px) {
          width: 38%;
          padding-left: 30px;
          border-left: 1px solid rgba(255 255 255 /0.2);
        }
      }
      & img {
        width: 100%;
        object-fit: contain;
      }
    }
  }

  /* KV下のバナーセクション（SPのみ） */
  .kv-banner-sp {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 12px;
    padding: 30px 15px;
    background-color: var(--c-primary);
    @media screen and (min-width: 1080px) {
      display: none;
    }
    .kv-banner-sp__image {
      width: 95%;
      & img {
        width: 100%;
        height: auto;
        object-fit: contain;
      }
    }
    .kv-banner-sp__text {
      font-size: 8px;
      color: #fff;
      line-height: 1.3;
      margin: 0;
      text-align: left;
    }
  }
}

/* -------------------------
 - Kv
------------------------- */
.Kv {
  width: 100%;
  background-position: bottom;
  background-size: cover;
  background-repeat: no-repeat;
  background-color: #0000;
  background-image: url("/cdn/shop/files/eufy-lineup-kv-v6_sp.webp?v=1753243225");
  background-color: #c5ccd1;
  position: relative;
  height: 130vw;
  & rt {
    font-size: 10px;
  }
  & svg {
    width: 72px;
    @media screen and (min-width: 1080px) {
      width: 80px;
    }
  }
  .bf-sale {
    position: absolute;
    left: 5%;
    width: 28vw;
    top: 53vw;
    z-index: 5;
    opacity: 0;
    animation: m-fadeInB 0.455s 2s linear forwards;
    @media screen and (min-width: 1080px) {
      bottom: 10%;
      top: auto;
      width: 260px;
    }
  }
  @media screen and (min-width: 1080px) {
    height: calc(125vw + 466px);
    max-height: 1580px;
    max-height: 100%;
    min-height: 860px;
    height: 50vw;
    background-size: cover;
    background-position: bottom;
    background-image: url("/cdn/shop/files/eufy-lineup-kv-v6_pc.webp?v=1753243225");
    padding-top: 0;
  }
  .layout {
    display: grid;
    place-items: baseline;
    justify-content: center;
    height: 100%;
    top: 6vw;
    position: absolute;
    @media screen and (min-width: 1080px) {
      position: static;
      top: 0;
      padding-bottom: 450px;
    }
    .logo-dp {
      width: 73vw;
      height: auto;
      @media screen and (min-width: 1080px) {
        width: 500px;
      }
    }
    @media screen and (min-width: 1080px) {
      place-items: center;
      justify-content: left;
    }
  }
  .content {
    display: grid;
    gap: 15px;
    position: relative;
    z-index: 5;
    place-items: center;
    opacity: 0;
    animation: m-fadeInB 0.4s 1.5s linear forwards;
    @media screen and (min-width: 1080px) {
      place-items: flex-start;
      gap: 30px;
      padding-left: 30px;
    }
    .lead {
      font-size: 3.3vw;
      display: flex;
      gap: 15px;
      align-items: center;
      color: #fff;
      font-weight: normal;
      line-height: 1.8;
      padding-bottom: 2vw;
      border-bottom: 1px solid #fff;
      @media screen and (min-width: 1080px) {
        font-size: 18px;
        gap: 20px;
        padding-bottom: 15px;
      }
    }
    .dp {
      display: grid;
      gap: 5px;
      place-items: center;
      font-weight: normal;
      background: #fff;
      background-clip: text;
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      font-size: 6.5vw;
      font-weight: bold;
      line-height: 1.3;
      text-align: center;
      @media screen and (min-width: 1080px) {
        gap: 10px;
        font-size: 42px;
        text-align: left;
        place-items: flex-start;
      }
      & span {
        font-size: 5vw;
        text-align: left;
        display: block;
        font-weight: 400;
        @media screen and (min-width: 1080px) {
          font-size: 28px;
        }
      }
    }
  }
  .kv-box {
    margin: calc(40vw + 466px) 0 0 0;
    margin: 80vw 0 0 0;
    padding: 16px 30px 30px 30px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.4);
    @media screen and (min-width: 1080px) {
      margin: 40px 0 0 0;
      padding: 40px 30px;
    }
  }
  .bf-sp {
    & img {
      width: 236px;
      display: flex;
      margin: 0 auto 20px;
      justify-content: center;
      @media screen and (min-width: 1080px) {
        display: none !important;
      }
    }
  }
  .boxAward-txt {
    font-size: 15px;
    letter-spacing: 0;
    text-align: center;
  }
  .boxAward-tit {
    margin: 0 auto;
    font-size: 26px;
    letter-spacing: 0;
    line-height: 1.2;
    text-align: center;
    .num {
      display: inline-block;
      padding: 0 0.05em;
      color: var(--clr-theme);
      font-size: 60px;
      line-height: 1;
      transform: translateY(2px);
      font-family: din-2014-narrow, sans-serif;
    }
  }
  .boxAward-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    width: calc((334 / 375) * 100vw);
    max-width: 480px;
    margin: 20px auto 0;
    @media screen and (min-width: 1080px) {
      gap: 8px;
      width: auto;
      max-width: 100%;
    }
  }
  .boxGlobal {
    margin: 24px 0 0 0;
    padding: 30px 0 0 0;
    border-top: solid 1px rgba(0, 0, 0, 0.1);
    text-align: center;
  }
  .boxGlobal-content {
    position: relative;
    z-index: 1;

    /* 背景 */
    &::before {
      content: "";
      display: inline-block;
      position: absolute;
      z-index: -1;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      mask-repeat: no-repeat;
      mask-position: center;
      mask-size: contain;
      mask-image: url("/cdn/shop/files/illust-worldMap.svg");
      background: #989b9e;
      opacity: 0.2;
    }
  }
  .boxGlobal-txt {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 1.2;
    letter-spacing: 0;
  }
  .boxGlobal-worldNum {
    color: var(--clr-theme);
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
  }
  .boxGlobal-salesNum {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    color: var(--clr-theme);
    .num {
      font-size: 77px;
      letter-spacing: -0.05em;
      font-family: din-2014-narrow, sans-serif;
      font-weight: 400;
      line-height: 1;
    }
    .txt {
      font-size: 28px;
      line-height: 1;
      letter-spacing: 0;
      font-weight: 700;
    }
  }
  .lp-caption {
    text-align: center;
  }
}

.c28-maile-cp {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  letter-spacing: 0;
  line-height: 1.35;
  color: #00a9e0;
  @media screen and (min-width: 1080px) {
    justify-content: center;
  }
  & p {
    font-size: 10px;
    @media screen and (min-width: 1080px) {
      font-size: 12px;
    }
  }
}

/* -------------------------
 - Info
------------------------- */
.Info {
  border-radius: 20px;
  margin: 0em 1em 1em;
  overflow: hidden;
  @media screen and (min-width: 1080px) {
    margin:0 1em 1em;
  }
  .list-wrap {
    display: flex;
    flex-direction: column;
    width: 100%;
    & li {
      display: flex;
      font-size: 12px;
      align-items: center;
      border-bottom: 1px solid rgba(0 0 0 / 0.1);
      padding: 10px 0;
      justify-content: space-between;

      &:first-child {
        padding:0 0 10px;
      }
      &:last-child {
        border-bottom: none;
      }
      .lp-btns {
        & li {
          display: flex;
          border-bottom: none;
          padding: 0;
        }
      }
    }
  }
  .maile-cp {
    @media screen and (min-width: 1080px) {
      align-items: center;
    }
    & p {
      font-size: 12px;
      @media screen and (min-width: 1080px) {
        font-size: 14px;
      }
    }
  }
  .c-variation {
    margin-top: 0;
  }
  .lp-btns {
    width: 100%;
    justify-content: space-between !important;
    @media screen and (min-width: 1080px) {
      width: 100%;
      flex-wrap: wrap;
    }
    &.lplinkwrap {
      width: auto !important;
      .lp-txtLink {
        color: #fff;
        width: 100%;
        background: #00a9e0;
        border: 1px solid #00a9e0;
        border-radius: 100px;
        padding: 20px 15px;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
        margin-top: 30px;
        margin-bottom: 50px;
        &.lplink {
          border: 1px solid #00a9e0 !important;
          width: auto !important;
          font-size: 14px !important;
          @media screen and (min-width: 1080px) {
            margin: 0 40px 60px;
            padding: 20px 15px;
            font-size: 16px !important;
          }
          & svg {
            fill: white;
          }
        }
        @media screen and (min-width: 1080px) {
          border: none;
        }
        &:hover,
        &:focus {
          color: #00a9e0;
          opacity: 1;
        }
        & svg {
          fill: #00a9e0;
        }
      }
    }
    .lp-btns {
      width: 100%;
    }
    & li {
      width: 48.5%;
      &.is-more {
        width: 100% !important;
      }
    }
    .lp-btn,
    .lp-btn-amazon,
    .lp-btn-rakuten {
      --btn-inactive-clr: #999;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      height: 30px;
      width: 100%;
      padding: 18px 12px;
      border-radius: 100px;
      line-height: 1.2;
      letter-spacing: 0;
      font-size: 12px;
      font-weight: 400;
      transition: all 0.3s;
      cursor: pointer;
      @media screen and (min-width: 1080px) {
        padding: 20px 12px;
        height: 35px;
      }
    }
  }
  & rt {
    font-size: 10px;
    font-weight: 400;
    line-height: 160%;
    letter-spacing: 0.617px;
    text-align: center;
    padding-bottom: 5px;
  }
  .product-price-v2-default {
    font-size: 22px;
    font-weight: 700;
    @media screen and (min-width: 1080px) {
      font-size: 24px;
    }
  }
  .l-inr-lg {
    background: #010101;
    position: relative;
    overflow: hidden;
    color: #fff;
    background-position: top right 30%;
    background-size: 130vw;
    @media screen and (min-width: 1080px) {
      border-radius: 30px;
      margin-inline: auto;
      background-size: 1000px;
      background-position: top right;
    }
    .badge20off {
      position: absolute;
      top: 20px;
      z-index: 5;
      left: 5%;
      width: 25%;
      @media screen and (min-width: 1080px) {
        top: 20px;
        left: 50px;
        width: 150px !important;
      }
    }
    .img-background {
      position: absolute;
      left: 0;
      width: 100%;
      z-index: 1;
      height: 300px;
      @media screen and (min-width: 1080px) {
        top: 0px;
        height: 410px;
      }
      &::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
        background: linear-gradient(to bottom, #010101 0%, transparent 20%);
      }
      & img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: bottom;
        @media screen and (min-width: 1080px) {
          object-fit: contain;
          object-position: right;
        }
      }
      .background-video {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center center;
      }
    }
  }
  .tag {
    align-self: flex-start;
    padding: 8px 20px 7px;
    color: #fff;
    font-family: "Mont", "Noto Sans JP", sans-serif !important;
    font-size: 12px;
    font-weight: 400;
    line-height: 160%;
    letter-spacing: 0.617px;
    text-align: center;
    padding-bottom: 5px;
    background: var(--c-primary);
    @media screen and (min-width: 1080px) {
      font-size: 14px;
    }
  }
  .maile-cp {
    margin: 0;
  }
  .header {
    position: relative;
    z-index: 8;
    margin-inline: 0;
    @media screen and (min-width: 1080px) {
      margin-inline: 80px;
    }
    .head {
      display: flex;
      flex-direction: column;
      gap: 15px;
    }
    .text {
      display: flex;
      flex-direction: column;
      color: #a8adb2;
      font-size: 12px;
      line-height: 200%;
      @media screen and (min-width: 1080px) {
        font-size: 14px;
      }
      .strong {
        color: #fff;
        font-size: 14px;
      }
    }
    .product {
      display: flex;
      flex-direction: column;
      gap: 10px;
      padding: 266px 0 40px;
      @media screen and (min-width: 1080px) {
        padding: 60px 0 30px;
        max-width: 450px;
        margin: 0 0 0 auto;
      }
      .c-variation-new {
        display: none !important;
      }
      .product-detail-btn {
        margin-top: 0;
        text-align: center;
        @media screen and (min-width: 1080px) {
          margin-top: 10px;
        }
        .lp-btns {
          & li {
            width: 48.5%;
          }
        }
        .btn-product-detail {
          width: 100%;
          display: inline-flex;
          align-items: center;
          justify-content: center;
          padding: 12px 24px;
          background: var(--clr-theme);
          color: #fff;
          border: 1px solid var(--clr-theme);
          border-radius: 999px;
          font-size: 14px;
          font-weight: 600;
          text-decoration: none;
          transition: all 0.3s;
          @media screen and (min-width: 1080px) {
            &:hover {
              background: #fff;
              color: var(--clr-theme) !important;
            }
          }
        }
      }
      .is-more {
        .lp-txtLink {
          font-size: 12px;
          @media screen and (min-width: 1080px) {
            font-size: 14px;
          }
        }
      }
      .itemImage {
        width: 100%;
        margin-bottom: 15px;
        @media screen and (min-width: 1080px) {
          width: 200px;
          margin-bottom: 0;
        }
      }
      .subTitle {
        text-shadow: 0 0 10.117px rgba(0, 0, 0, 0.05);
        font-size: 14px;
        font-weight: 300;
        line-height: 150%; /* 27px */
        letter-spacing: 0.9px;
        margin-top: 24px;
        @media screen and (min-width: 1080px) {
          font-size: 18px;
        }
      }
      .infoTitle {
        text-shadow: 0 0 10.117px rgba(0, 0, 0, 0.05);
        font-family: "Mont", "Noto Sans JP", sans-serif !important;
        font-size: calc(min(36px, 18vw));
        font-weight: 500;
        line-height: 1;
        @media screen and (min-width: 1080px) {
          font-size: 52px;
        }
        & span {
          font-size: 140%;
        }
      }
      .lp-btn-amazon {
        background: #fff;
        color: var(--txt-black);
        &:hover {
          background: var(--clr-amazon);
          color: #fff;
        }
      }
      .product-price-v2-unit,
      .lp-btns {
        justify-content: start;
      }
      .lp-btns li.is-more {
        text-align: center;
        @media screen and (min-width: 1080px) {
          text-align: left;
        }
      }
    }
  }
  .limited {
    position: relative;
    z-index: 9;
    .wrapper {
      display: flex;
      flex-direction: column;
      gap: 8px;
      justify-content: center;
      align-items: center;
      padding: 20px 0 20px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.15);
      @media screen and (min-width: 1080px) {
        flex-direction: row;
        gap: 30px;
        justify-content: center;
        align-items: flex-end;
        padding: 10px 0 20px;
      }
      & img {
        width: 50px;
        @media screen and (min-width: 1080px) {
          width: 62px;
        }
      }
    }
    .text {
      display: flex;
      gap: 0;
      flex-direction: column;
      justify-content: center;
      text-align: center;
      & p:not([class]) {
        font-size: 18px;
      }
      & span {
        font-size: 140%;
      }
      .min {
        font-size: 10px;
      }
    }
    .m-caption {
      margin-top: 0;
    }
  }
  .info-list {
    display: flex;
    gap: 10px;
    margin-inline: 0;
    padding-bottom: 60px;
    @media screen and (min-width: 1080px) {
      margin-inline: 40px;
      padding-bottom: 50px;
    }
    .info-item {
      border-radius: 10px;
      overflow: hidden;
    }
  }
  .splide {
    --swiper-navigation-size: 12px;
    --swiper-navigation-color: var(--txt-black);
    padding-bottom: 60px;
    position: relative;
    z-index: 5;
    margin-inline: calc(50% - 50vw);
    @media screen and (min-width: 1080px) {
      margin-inline: 0;
      padding-inline: 40px;
      padding-bottom: 50px;
    }
    .splide__track {
      padding: 0 40px !important;
      @media screen and (min-width: 1080px) {
        padding: 0 !important;
      }
    }
    .splide__arrow {
      background: #525252;
      & svg {
        width: 0.7em;
        height: 0.7em;
      }
    }
    .splide__slide {
      background: #252627;
      border-radius: 10px;
      overflow: hidden;
      @media screen and (min-width: 1080px) {
        border-radius: 15px;
      }
      &.imgcover {
        & img {
          width: 100%;
          height: 100%;
        }
      }
      .imgwrap {
        position: relative;
        & video {
          width: 100%;
        }
      }
      .textbox {
        position: relative;
        display: flex;
        flex-direction: column;
        gap: 16px;
        margin-top: -10px;
        padding: 0 25px 30px;
        z-index: 9;
        @media screen and (min-width: 1080px) {
          margin-top: 0;
        }
      }
      .tag {
        padding: 4px 8px 3px;
      }
      .title {
        font-size: 16px;
      }
      .text {
        font-size: 12px;
        color: rgba(255, 255, 255, 0.6);
      }
    }
    .splide__pagination {
      position: absolute;
      bottom: 25px;
      @media screen and (min-width: 1080px) {
        bottom: 20px;
      }
      .is-active {
        background: var(--c-primary);
      }
    }
    .splide__slide {
      max-width: 640px;
    }
    .swiper-slide {
      opacity: 0.4;
      transition: opacity 0.3s ease;
      position: relative;
      @media screen and (min-width: 1080px) {
        opacity: 0;
      }
      &:not(:last-child)::after {
        content: "";
        position: absolute;
        right: -8px;
        top: 50%;
        transform: translateY(-50%);
        width: 16px;
        height: 16px;
        border: none;
        border-width: 0 2px 2px 0;
        transform: rotate(-45deg);
        opacity: 0.3;
      }
      &.swiper-slide-active {
        opacity: 1;
      }
      @media screen and (min-width: 1080px) {
        &.swiper-slide-active,
        &.swiper-slide-next,
        &.swiper-slide-next + .swiper-slide {
          opacity: 1;
        }
      }
      & img {
        border-radius: 15px;
      }
      .imgwrap {
        position: relative;
        .on {
          position: absolute;
          width: 18%;
          border-radius: 0;
          bottom: 10px;
          left: 10px;
          @media screen and (min-width: 1080px) {
            width: 60px;
            border-radius: 0;
            bottom: 15px;
            left: 15px;
          }
        }
        .on-b {
          position: absolute;
          width: 18%;
          border-radius: 0;
          bottom: 10px;
          left: 22%;
          @media screen and (min-width: 1080px) {
            width: 60px;
            border-radius: 0;
            bottom: 15px;
            left: 88px;
          }
        }
      }
      .title {
        text-shadow: 0 0 10.284px rgba(0, 0, 0, 0.05);
        font-size: 18px;
        font-weight: 400;
        line-height: 130%; /* 23.4px */
        letter-spacing: 0.9px;
        text-align: left;
        margin-top: 20px;
      }
      .text {
        text-align: left;
        color: rgba(255, 255, 255, 0.6);
        text-shadow: 0 0 4.28px rgba(0, 0, 0, 0.05);
        font-size: 12px;
        font-weight: 600;
        line-height: 130%; /* 15.6px */
        letter-spacing: 0.6px;
        margin-top: 10px;
        @media screen and (min-width: 1080px) {
          margin-top: 16px;
        }
        .Small {
          margin-top: 5px;
          display: block;
        }
      }
    }
  }
}

.t-title {
  color: #fff;
  font-size: 28px;
  text-align: center;
  font-weight: 500;
  margin-bottom: 30px;
  position: relative;
  z-index: 10;
  @media screen and (min-width: 1080px) {
    margin-bottom: 40px;
    font-size: 32px;
  }
  & span:not([class]) {
    display: block;
    font-size: 18px;
    margin-bottom: 10px;
    font-weight: 600;
    @media screen and (min-width: 1080px) {
      font-size: 22px;
      font-weight: 600;
    }
  }
}

.c28-white-note {
  font-size: 12px;
  margin-top: 5px;
}

.info-cta .product-intro__cta {
  display: flex;
  gap: 14px;
  justify-content: space-between;
  align-items: center;
  @media screen and (min-width: 1080px) {
    gap: 20px;
  }
}

.info-cta .product-intro__cta-text p {
  font-size: 12px;
  color: var(--c-text);
  line-height: 1.5;
  letter-spacing: 1.12px;
  @media screen and (min-width: 1080px) {
    font-size: 14px;
  }
}

.info-cta .product-intro__cta-btn {
  background-color: var(--c-primary);
  color: #fff;
  border: 2px solid #005d8e;
  border-radius: 99999px;
  padding: 12px 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-decoration: none;
  transition: all 0.3s ease;
  white-space: nowrap;
  flex-shrink: 0;
  @media screen and (min-width: 1080px) {
    padding: 14px 28px;
  }
  &:hover {
    background-color: #fff;
    color: var(--c-primary);
  }
  & svg {
    width: 20px;
    height: 15px;
    flex-shrink: 0;
  }
  & span {
    font-size: 13px;
    font-weight: 600;
    @media screen and (min-width: 1080px) {
      font-size: 14px;
    }
  }
}

/* ===== Info--c28: product-intro__content 構成（c28.liquid準拠） ===== */
.Info--c28 {
  .l-inr-lg {
    background: #f7f7f9;
    color: #111;
    border-radius: 20px;
    overflow: hidden;
    @media screen and (min-width: 1080px) {
      background: #f7f7f9;
    }
    .img-background {
      &::before {
        background: linear-gradient(to top, #f7f7f9 0%, transparent 30%);
      }
    }
  }
  .header {
    .product.product-intro__content {
      display: flex;
      flex-direction: column;
      gap: 14px;
      align-items: flex-start;
      width: 100%;
      margin-top: -35px;
      @media screen and (min-width: 1080px) {
        margin: 0px auto -1.5% 0;
        gap: 16px;
        max-width: 550px;
      }
    }
    .product-intro__badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 1px solid #005d8e;
      padding: 6px 10px 3px;
      width: fit-content;
      margin-bottom: 5px;
      & span {
        font-family: var(--font-en, "Mont", sans-serif);
        font-weight: 500;
        font-size: 11px;
        color: var(--c-primary);
        letter-spacing: 0.84px;
        line-height: 1.5;
        @media screen and (min-width: 1080px) {
          font-size: 12px;
        }
      }
    }
    .product-intro__title-group {
      display: grid;
      gap: 10px;
      letter-spacing: 0;

      @media screen and (min-width: 1080px) {
        gap: 15px; 
      }
    }
    .product-intro__title {
    
      font-family: var(--font-en, "Mont", sans-serif);
      font-size: 28px;
      font-weight: 500;
      letter-spacing: 0;
      line-height: 1;
      color: var(--c-text);
      @media screen and (min-width: 1080px) {
        font-size: 38px;
      }
    }
    .product-intro__title-small {
      font-family: var(--font-en, "Mont", sans-serif);
      font-size: 16px;
      line-height: 1;
      color: var(--c-text);
      @media screen and (min-width: 1080px) {
        font-size: 18px;
      }
    }
    .product-intro__title-large {
      font-family: var(--font-en, "Mont", sans-serif);
      font-size: 34px;
      font-weight: 500;
      line-height: 1;
      color: var(--c-text);
      @media screen and (min-width: 1080px) {
        font-size: 42px;
      }
    }

    .product-intro__title-group-inner{
      display: grid;
      gap: 6px;
    }
    .product-intro__tagline {
      font-size: 14px;
      color: var(--c-text);
      @media screen and (min-width: 1080px) {
        font-size: 16px;
      }
    }
    .product-intro__desc {
      font-size: 12px;
      color: var(--c-text);
      opacity: 0.6;
      margin: 0;
      @media screen and (min-width: 1080px) {
      }
    }

    .list-wrap{
      border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    }
    .product-intro__price {
      display: flex;
      align-items: flex-end;
      gap: 2px;
    }
    .product-intro__price-main {
      font-size: 12px;
      color: #1a1a1a;
    }
    .product-intro__price-tax {
      font-size: 7px;
      color: #666;
    }
    .product-intro__divider {
      height: 1px;
      width: 100%;
      background-color: rgba(25, 25, 25, 0.1);
      display: none;
    }
    .product-intro__cta {
      display: flex;
      gap: 14px;
      justify-content: space-between;
      align-items: center;
      margin-top: 7px;
      @media screen and (min-width: 1080px) {
        gap: 20px;
      }
    }
    .product-intro__cta-text p {
      font-size: 10px;
      color: var(--c-text);
      line-height: 1.5;
      letter-spacing: 1.12px;
      @media screen and (min-width: 1080px) {
        font-size: 12px;
      }
    }
    .product-intro__cta-btn {
      background-color: var(--c-primary);
      color: #fff;
      border: 2px solid #005d8e;
      border-radius: 99999px;
      padding: 16px 28px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      text-decoration: none;
      transition: all 0.3s ease;
      white-space: nowrap;
      width: 80%;
      @media screen and (min-width: 1080px) {
        padding: 15px 33px;
        width: fit-content;
      }
      &:hover {
        background-color: #fff;
        color: var(--c-primary);
      }
      & svg {
        width: 24px;
        height: 18px;
        flex-shrink: 0;
      }
      & span {
        font-size: 13px;
        @media screen and (min-width: 1080px) {
          font-size: 14px;
        }
      }
    }
    .product-intro__cta-note {
      font-size: 10px;
      color: #666;
    }
  }
  .info-summary {
    position: relative;
    z-index: 5;
    
    @media screen and (min-width: 1080px) {
      padding: 40px 40px 50px;
    }
    .info-summary__grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      grid-auto-rows: 1fr;
      align-items: stretch;
      gap: 8px;
      @media screen and (min-width: 1080px) {
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: 1fr;
        gap: 10px;
      }
    }
    .info-summary__card {
      position: relative;
      border-radius: 12px;
      overflow: hidden;
      background-color: #333;
      @media screen and (min-width: 1080px) {
        border-radius: 16px;
      }
    }
    .info-summary__card-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .info-summary__card--dark {
      background-color: #000;
      .info-summary__card-img {
        opacity: 0.6;
      }
    }
    .info-summary__card-overlay {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.35) 0%,
        rgba(0, 0, 0, 0) 40%
      );
      padding: 12px;
      color: #fff;
      @media screen and (min-width: 1080px) {
        padding: 20px 16px;
      }
    }
    .info-summary__card-sub {
      display: block;
      font-size: 10px;
      font-weight: 500;
      opacity: 0.9;
      line-height: 1.3;
      margin-bottom: 4px;
      @media screen and (min-width: 1080px) {
        font-size: 14px;
        margin-bottom: 5px;
      }
    }
    .info-summary__card-title {
      font-size: 14px;
      font-weight: 500;
      line-height: 1.3;
      margin: 0;
      @media screen and (min-width: 1080px) {
        font-size: clamp(16px, 2vw, 18px);
      }
    }
    .info-summary__stack {
      display: flex;
      flex-direction: column;
      gap: 8px;
      @media screen and (min-width: 1080px) {
        flex-direction: column;
        gap: 10px;
      }
      .info-summary__card {
        flex: 1;
        aspect-ratio: auto;
      }
    }
  }
  .lp-btns.lplinkwrap .lp-txtLink {
    background: var(--c-primary);
    border-color: var(--c-primary);
    &.lplink {
      border-color: var(--c-primary) !important;
      @media screen and (min-width: 1080px) {
        height: 85px;
        width: min(80%, 724px)!important; 
        margin: 0 auto 60px;
      }
    }
    &:hover {
      color: var(--c-primary);
      background: #fff;
      & svg {
        fill: #005d8e;
      }
    }
  }
}

/* -------------------------
 - Intro
------------------------- */

.Intro {
  text-align: center;
  padding: 40px 0 80px;
  @media screen and (min-width: 1080px) {
    padding: 80px 0;
  }
  .intro-txt-box {
    display: grid;
    & p {
      font-size: 18px;
      @media screen and (min-width: 1080px) {
        font-size: 28px;
      }
    }
    & h2 {
      & svg {
        width: 280px;
        height: auto;
        @media screen and (min-width: 1080px) {
          width: 680px;
        }
      }
    }
  }
  .layout {
    display: grid;
    gap: 40px;
    place-items: center;
    margin-top: 40px;
    @media screen and (min-width: 1080px) {
      grid-auto-flow: column;
      grid-template-columns: 1fr 1fr;
    }
    & p {
      text-align: left;
      font-size: 16px;
      line-height: 2.4;
    }
    & img {
      border-radius: 12px;
    }
  }
}

/* -------------------------
 - Picup
------------------------- */

.Pickup {
  .product-price-v2-discount-rate-wrap {
    display: flex;
    gap: 4px;
    margin-bottom: 0 !important;
  }
  .maile-cp {
    letter-spacing: 0.08em;
    line-height: 1.35;
    text-align: center;
    flex-wrap: wrap;
    display: flex;
    color: #fff;
    align-items: flex-start;
    justify-content: space-between;
    margin: 15px 0;
    .maile {
      width: 8% !important;
      margin: 0 5px 0 0 !important;
      height: auto !important;
      object-fit: contain;
    }
    @media screen and (min-width: 1080px) {
      text-align: left;
    }
    & p {
      font-size: 12px;
      width: auto;
      color: #fff;
      text-align: left;
      width: 87.5%;
      @media screen and (min-width: 1080px) {
        font-size: 11px;
        font-weight: 700;
        justify-content: center;
      }
    }
    .m-ex {
      font-size: 10px;
      width: 100%;
      text-align: left;
      font-weight: 500;
      letter-spacing: 0.01em;
      margin-top: 3px;
      opacity: 0.6;
      display: block;
    }
  }
  .sec-heading {
    padding: 70px 0 20px;
    border-top: solid 1px;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: 0;
    @media screen and (min-width: 1080px) {
      padding: 70px 0 20px;
      font-size: 32px;
    }
  }
  .splide {
    margin-inline: calc(50% - 50vw);
    @media screen and (min-width: 1080px) {
      margin-inline: 0;
    }
  }
  .splide__track {
    padding: 0 40px !important;
    @media screen and (min-width: 1080px) {
      padding: 0 !important;
    }
  }
  .splide__slide {
    transition: all 0.3s ease;
    &:not(.is-active) {
      opacity: 0.4;
      @media screen and (min-width: 1080px) {
        opacity: inherit;
      }
    }
  }
  .splide__arrow {
    background: #043e58;
    & svg {
      width: 0.7em;
      height: 0.7em;
    }
  }
  .card-wrap {
    .card {
      display: flex;
      align-items: center;
      flex-direction: column;
      justify-content: flex-start;
      height: 100%;
      color: #fff;
      text-align: center;
      position: relative;
      & a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 100%;
      }
      .new {
        background-color: var(--c-primary);
        display: inline-block;
        position: absolute;
        top: 0;
        left: 0;
        font-size: 12px;
        padding: 2px 10px;
        z-index: 5;
      }
      .pop {
        background: linear-gradient(180deg, #41b0e2 0%, #1db7fe 100%);
        display: inline-block;
        position: absolute;
        top: 0;
        left: 0;
        font-size: 12px;
        z-index: 5;
        padding: 2px 10px;
      }
      .txt {
        font-size: 22px;
        line-height: 1.3;
        @media screen and (min-width: 1080px) {
          height: 33px;
        }
        &.head {
          flex-grow: 1;
          @media screen and (min-width: 1080px) {
            height: 56px;
          }
        }
        & span {
          width: 100%;
          font-size: 12px;
          margin-bottom: 5px;
          display: block;
        }
      }
      .under {
        flex-grow: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 0 20px 35px;
        margin-top: -25px;
        position: relative;
      }
      .product-price-v2-discount-rate,
      .product-price-v2-coupon-label {
        margin-left: 0;
        margin-top: 0;
      }
      .product-price-v2-unit {
        margin: 15px 0;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: initial;
      }
      .img {
        width: 100%;
        position: relative;
        & img {
          width: 100%;
          object-fit: contain;
        }
      }
      .btn {
        margin: 0 auto;
        padding: 10px;
        padding: 15px 20px;
        line-height: 1.3;
        font-size: 12px;
        width: 100%;
        font-weight: 400;
        border-radius: 100px;
        text-align: center;
        background: rgba(0, 0, 0, 0);
        border: 1px solid rgba(255, 255, 255, 0.4);
      }
      &.-a {
        background-color: #19191b;
        .img {
          &:after {
            content: "";
            position: absolute;
            left: 0;
            bottom: 0;
            width: 100%;
            height: 10%;
            background: linear-gradient(to top, #19191b 10%, transparent 90%);
          }
        }
      }
      &.-b {
        background-color: #191919;
        .img {
          &:after {
            content: "";
            position: absolute;
            left: 0;
            bottom: 0;
            width: 100%;
            height: 10%;
            background: linear-gradient(to top, #191919 10%, transparent 90%);
          }
        }
      }
      &.-c {
        background-color: #19191b;
        .img {
          &:after {
            content: "";
            position: absolute;
            left: 0;
            bottom: 0;
            width: 100%;
            height: 10%;
            background: linear-gradient(to top, #19191b 10%, transparent 90%);
          }
        }
      }
      &.-d {
        background-color: #755847;
        .img {
          &:after {
            content: "";
            position: absolute;
            left: 0;
            bottom: 0;
            width: 100%;
            height: 10%;
            background: linear-gradient(to top, #755847 10%, transparent 90%);
          }
        }
      }
    }
  }
}

/* プレゼントバナーのスタイル */
.present-banner {
  display: flex;
  position: relative;
  width: 33%;
  background: #ffffff;
  border: 1px solid #005d8e;
  border-radius: 5px;
  flex-shrink: 0;
  flex-direction: column;
  @media screen and (min-width: 1080px) {
    width: 137px;
  }
  .present-banner__header {
    background: var(--c-primary);
    padding: 15px 0 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .present-banner__label {
    font-size: 9px;
    line-height: 1.3;
    color: #fff;
    text-align: center;
    margin: 0;
    padding: 0 8px;
    letter-spacing: 0;
    @media screen and (min-width: 1080px) {
      font-size: 10px;
    }
  }
  .present-banner__title {
    font-size: 14px;
    font-weight: 600;
    color: #fff;
    text-align: center;
    margin: 0;
  }
  .present-banner__content {
    padding: 7% 3% 5%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    height: 100%;
    align-items: center;
  }
  .present-banner__image {
    width: 90%;
    height: 55px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    & img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }
  }
  .present-banner__text {
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--c-primary);
    text-align: center;
    margin: 0;
    width: 100%;
  }
  .present-banner__icon {
    position: absolute;
    left: -15.57px;
    bottom: 89px;
    width: 26.86px;
    height: 26.86px;
    background: var(--c-primary);
    border: 1.34px solid #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    & span {
      font-size: 14px;
      color: #fff;
      font-weight: 600;
      line-height: 1;
    }
  }
}

.product-detail-btn {
  margin-top: 0;
  text-align: center;
  @media screen and (min-width: 1080px) {
    margin-top: 10px;
  }
  .btn-product-detail {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    background: var(--clr-theme);
    color: #fff;
    border: 1px solid var(--clr-theme);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s;
    @media screen and (min-width: 1080px) {
      &:hover {
        background: #fff;
        color: var(--clr-theme) !important;
      }
    }
  }
}

/* -------------------------
 - Recommend
------------------------- */

.Recommend {
  position: relative;
  padding: 60px 0;
  @media screen and (min-width: 1080px) {
    padding: 80px 0 100px;
    gap: 15px;
  }
  .bg-gold {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 0;
    object-fit: contain;
    transform: scaleY(-1);
  }
  .m-ex {
    font-size: 10px;
    width: 100%;
    font-weight: 500;
    letter-spacing: 0.01em;
    margin-top: 15px;
    opacity: 0.6;
    display: block;
    text-align: left;
    @media screen and (min-width: 1080px) {
      font-size: 12px;
    }
  }
  .btn-buy {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    width: min(80%, 724px);
    height: 85px;
    border: 1px solid #ffffff;
    border-radius: 99999px;
    margin: 40px auto 0;
    cursor: pointer;
    transition: all 0.3s ease;
    background-color: transparent;
    text-decoration: none;
    position: relative;
    z-index: 5;
    @media (hover: hover) and (pointer: fine) {
      &:hover {
        background-color: #fff;
        .btn-buy__text {
          color: #000;
        }
        .btn-buy__arrow {
          & path {
            stroke: #000;
          }
        }
      }
    }
    .btn-buy__text {
      color: #fff;
      font-size: 16px;
      font-weight: 500;
      line-height: 1;
      transition: color 0.3s ease;
    }
    .btn-buy__arrow {
      flex-shrink: 0;
      transition: all 0.3s ease;
      & path {
        transition: stroke 0.3s ease;
      }
    }
  }
  .Recommend-image {
    display: flex;
    gap: 20px;
    align-items: center;
    @media screen and (min-width: 1080px) {
      height: 215px;
    }
    .Recommend-image__main {
      width: 100%;
      height: 195px;
      flex: 1;
      @media screen and (min-width: 1080px) {
        height: 100%;  
      }
      & img {
        width: 100%;
        object-fit: contain;
        height: 100%;
        display: block;
      }
    }
    .Recommend-image__present {
      display: flex;
    }
  }
  .is-more {
    margin-top: -5px;
    @media screen and (min-width: 1080px) {
      margin-top: 0;
    }
  }
  .c-variation-btn {
    justify-content: center;
  }
  .l-inr-lg {
    position: relative;
    z-index: 1;

    @media screen and (min-width: 1080px) {
      padding: 0;
    }
    .product-price-v2-discount-rate-wrap {
      display: flex;
      gap: 4px;
      margin-bottom: 0 !important;
    }
    .detbox {
      margin-top: 15px;
      width: 100%;
      @media screen and (min-width: 1080px) {
        margin-top: 0;
        height: auto;
      }
    }
    .product-intro__cta {
      display: flex;
      gap: 14px;
      justify-content: space-between;
      align-items: center;
      margin-top: 12px;
      padding-top: 20px;
      border-top: 1px solid rgba(0, 0, 0, 0.1);
      @media screen and (min-width: 1080px) {
        gap: 20px;
      }
    }
    .product-intro__cta-text p {
      font-size: 10px;
      color: var(--c-text);
      line-height: 1.5;
      letter-spacing: 0.05em;
      margin: 0;
      @media screen and (min-width: 1080px) {
        font-size: 12px;
      }
    }
    .product-intro__cta-btn {
      background-color: var(--c-primary);
      color: #fff;
      border: 2px solid #005d8e;
      border-radius: 99999px;
      padding: 10px 28px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 5px;
      text-decoration: none;
      transition: all 0.3s ease;
      white-space: nowrap;
      width: 60%;
      flex-shrink: 0;
      @media screen and (min-width: 1080px) {
        padding: 15px 33px;
        height: 48px;
        width: fit-content;
      }
      &:hover {
        background-color: #fff;
        color: var(--c-primary);
      }
      & svg {
        width: 20px;
        height: 14px;
        flex-shrink: 0;
        @media screen and (min-width: 1080px) {
          width: 24px;
          height: 18px;
        }
      }
      & span {
        font-size: 12px;
        @media screen and (min-width: 1080px) {
          font-size: 14px;
        }
      }
    }
    .product-intro__cta-note {
      font-size: 10px;
      color: #666;
      margin-top: 8px;
      margin-bottom: 0;
    }
    .c-variation-new {
      display: none !important;
    }
    .product-detail-btn {
      margin-top: 0;
      text-align: center;
      @media screen and (min-width: 1080px) {
        margin-top: 10px;
      }
      .btn-product-detail {
        width: 100%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 12px 24px;
        background: var(--clr-theme);
        color: #fff;
        border: 1px solid var(--clr-theme);
        border-radius: 999px;
        font-size: 14px;
        font-weight: 600;
        text-decoration: none;
        transition: all 0.3s;
        @media screen and (min-width: 1080px) {
          &:hover {
            background: #fff;
            color: var(--clr-theme);
          }
        }
      }
    }
    .c-variation-item {
      border-bottom: 1px solid rgba(0, 0, 0, 0.3);
      &:last-child {
        border-bottom: none;
        margin-bottom: 0;
        padding-bottom: 0;
      }
    }
    .c-variation-label {
      font-size: 12px;
      font-weight: 500;
      color: #1a1a1a;
      min-width: 50px;
    }
    .c-variation-buttons {
      display: flex;
      gap: 10px;
      flex: 1;
    }
    .lp-btns {
      width: 100%;
      gap: 10px;
      @media screen and (min-width: 1080px) {
        gap: 15px;
        justify-content: flex-start;
      }
      & li {
        width: 48%;
        &.is-more {
          width: 100%;
        }
      }
      .lp-btn {
        width: 100% !important;
        padding: 20px 10px;
        @media screen and (min-width: 1080px) {
          padding: 20px 10px;
          font-size: 12px;
        }
      }
      & a {
        width: 100% !important;
        padding: 20px 10px;
        @media screen and (min-width: 1080px) {
          font-size: 12px;
          padding: 20px 10px;
        }
        &.lp-txtLink {
          width: 100%;
          padding: 0;
          font-size: 12px;
          justify-content: center;
        }
      }
    }
    .product-price-v2-unit {
      display: flex;
      align-items: center;
      flex-direction: initial;
    }
    .maile-cp {
      letter-spacing: 0.08em;
      line-height: 1.35;
      text-align: center;
      flex-wrap: wrap;
      align-items: flex-start;
      display: flex;
      justify-content: flex-start;
      margin: 15px 0;
      .maile {
        width: 15px !important;
        margin: 0 5px 0 0 !important;
        height: auto !important;
        object-fit: contain;
      }
      @media screen and (min-width: 1080px) {
        text-align: left;
        justify-content: center;
      }
      & p {
        font-size: 11px;
        width: auto;
        color: #00a9e0;
        justify-content: flex-start;
        text-align: left;
        width: 87%;
        @media screen and (min-width: 1080px) {
          font-size: calc(min(12px, 1.1vw));
          justify-content: center;
        }
      }
      .m-ex {
        font-size: 10px;
        width: 100%;
        font-weight: 500;
        text-align: left;
        letter-spacing: 0.01em;
        margin-top: 3px;
        opacity: 0.6;
        display: block;
        @media screen and (min-width: 1080px) {
          font-size: calc(min(10px, 0.85vw));
        }
      }
    }
    .lp-btns {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 8px 5px;
    }
    .copy {
      font-size: 14px;
      line-height: 1.3;
      color: #9bbac8;
      letter-spacing: 0.05em;
      text-align: left;
      margin: 20px 0 40px;
      padding: 0 20px;
      @media screen and (min-width: 1080px) {
        font-size: 18px;
        padding: 0;
        margin: 20px 0 50px;
        text-align: center;
      }
      .bold {
        color: #fff;
        display: inline-block;
      }
    }
    /* ▼ アイテムカード背景色 — 変更時はここの2色を差し替えるだけ */
    --card-color-from: #DEE3E7;
    --card-color-to: #EAF0F5;
    .item {
      position: relative;
      background: linear-gradient(180deg, var(--card-color-to) 0%, var(--card-color-from) 100%);
      border-radius: 10px;
      padding: 35px 15px 30px;
      display: flex;
      width: 100%;
      flex-direction: column;
      justify-content: flex-start;
      align-items: center;
      @media screen and (min-width: 1080px) {
        border-radius: 20px;
        padding: 40px 30px 30px;
      }
      & > img {
        height: 120px;
        object-fit: contain;
        margin: 20px 0;
        width: auto;
        @media screen and (min-width: 1080px) {
          height: 160px;
        }
      }
      .sale {
        width: 100% !important;
        height: auto !important;
        border-radius: 10px;
        margin-bottom: 0 !important;
        margin-top: 15px;
        border: 1px solid rgba(0 0 0 / 0.1);
      }
      .tag {
        position: absolute;
        top: 0;
        left: 0;
        padding: 5px 10px;
        background-color: var(--c-primary);
        color: #fff;
        font-size: 12px;
        font-weight: 600;
        z-index: 9;
        border-radius: 10px 0 10px 0;
        &.blue {
          background-color: #00a9e0;
        }
      }
      .seal {
        position: absolute;
        top: 20px;
        left: 20px;
        width: 45px;
        z-index: 9;
        @media screen and (min-width: 1080px) {
          width: 45px;
        }
        & img {
          width: 100%;
        }
      }
      .new-badge {
        position: absolute;
        top: 20px;
        left: 20px;
        width: 45px;
        height: 45px;
        background-color: transparent;
        border: 1.5px solid var(--c-primary);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 9;
        @media screen and (min-width: 1080px) {
          width: 60px;
          padding-top: 3px;
          height: 60px;
        }
        & span {
          color: var(--c-primary);
          font-size: 10px;
          font-weight: 600;
          letter-spacing: 0.05em;
          @media screen and (min-width: 1080px) {
            font-size: 12px;
          }
        }
      }
      .top {
        color: var(--c-primary);
        width: 100%;
        text-align: center;
        font-size: 16px;
        line-height: 1.3;
        display: block;
        font-weight: bold;
        margin-bottom: 20px;
        @media screen and (min-width: 1080px) {
          font-size: calc(min(16px, 1.2vw));
        }
      }
    }
    & h3 {
      font-size: 32px;
      text-align: center;
      line-height: 1.2;
      font-weight: 400;
      margin-bottom: 20px;
      @media screen and (min-width: 1080px) {
        font-size: 40px;
      }
      & span:not([class]) {
        display: block;
        opacity: 0.6;
        font-weight: 400;
        font-size: 12px;
      }
      .min {
        font-size: 80%;
      }
    }
  }
  .layout {
    display: grid;
    gap: 15px;
    flex-direction: column;
    @media screen and (min-width: 1080px) {
      grid-template-columns: repeat(2, 1fr);
      flex-direction: row;
    }
    .list-wrap {
      display: flex;
      flex-direction: column;
      width: 100%;
      & li {
        display: flex;
        font-size: 12px;
        align-items: center;
        border-bottom: 1px solid rgba(0 0 0 / 0.1);
        padding: 10px 0;
        justify-content: space-between;
        .lp-btns {
          & li {
            display: flex;
            border-bottom: none;
            padding: 0;
          }
        }
      }
    }
    .m-txtLink {
      margin-top: 20px;
      display: inline-flex;
      align-items: center;
      color: var(--clr-theme);
      font-size: 12px;
      letter-spacing: 0.05em;
      line-height: 1.1;
      &::after {
        content: "";
        display: inline-block;
        width: 0.4em;
        height: 0.4em;
        margin: 0 0 0 0.4em;
        line-height: 1;
        border-top: solid 1px var(--clr-theme);
        border-right: solid 1px var(--clr-theme);
        transform: translateY(0.1em) rotate(45deg);
        transition: all 0.3s;
      }
      @media (hover: hover) and (pointer: fine) {
        &:hover {
          color: var(--clr-theme);
          opacity: 1;
          filter: brightness(0.8);
          &::after {
            transform: translateX(4px) translateY(0.1em) rotate(45deg);
          }
        }
      }
      &.-inactive {
        color: var(--txt-Black);
        pointer-events: none;
        &::after {
          display: none;
        }
      }
    }
    .product-price-v2-unit {
      justify-content: center;
    }
    .reco-item {
      background: #eef8fd;
      display: grid;
      padding: 60px 20px;
      gap: 20px;
      place-items: center;
      border-radius: 24px;
      text-align: center;
      @media screen and (min-width: 1080px) {
        padding: 60px 40px;
      }
      &.-s1 {
        .img {
          position: relative;
          .bestbuy {
            position: absolute;
            width: 65px;
            top: -8px;
            left: -50px;
            height: auto;
          }
        }
        .reco-ttl {
          background: var(
            --Linear,
            linear-gradient(180deg, #1389bf 9.38%, #18a8ea 100%)
          );
          font-family: "Mont";
          background-clip: text;
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent;
        }
      }
      &.-x10 {
        .img {
          position: relative;
          &.-height {
            height: 230px;
            display: flex;
            justify-content: center;
            align-items: center;
            & img {
              height: auto;
              max-width: 80%;
              object-fit: contain;
            }
          }
          .bestbuy {
            position: absolute;
            width: 40px;
            top: -8px;
            left: 10px;
            height: auto;
            @media screen and (min-width: 1080px) {
              width: 55px;
              left: 0;
            }
          }
        }
        .reco-ttl {
          background: var(
            --Linear,
            linear-gradient(180deg, #1389bf 9.38%, #18a8ea 100%)
          );
          font-family: "Mont";
          background-clip: text;
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent;
        }
      }
    }
    .reco-wrap {
      display: grid;
      gap: 16px;
    }
    .reco-product {
      max-width: 180px;
    }
    .reco-copy {
      font-weight: bold;
      font-size: 20px;
      line-height: 1.25;
    }
    .reco-ttl {
      font-size: 48px;
      line-height: 1.25;
    }
  }
  .reco-min {
    position: relative;
    width: 100%;
    margin-top: 30px;
    border-radius: 15px;
    overflow: hidden;
    background-color: #191919;
    .textbox {
      display: flex;
      flex-direction: column;
      gap: 12px;
      align-items: center;
      justify-content: center;
      position: relative;
      width: 100%;
      padding: 0 20px 320px;
      color: #fff;
      font-weight: bold;
      text-align: center;
      z-index: 9;
      @media screen and (min-width: 1080px) {
        gap: 16px;
        width: 360px;
        margin-left: min(calc(240 / 1400 * 100%), 240px);
        padding: 40px 0;
      }
      .border {
        width: 100%;
        padding-bottom: 10px;
        font-size: 14px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        @media screen and (min-width: 1080px) {
          font-size: 18px;
        }
      }
      .title {
        font-size: 25px;
        font-weight: 400;
        line-height: 120%;
      }
      .text {
        color: rgba(255, 255, 255, 0.6);
        font-size: 12px;
      }
      .lp-btns {
        & li:not([class]) {
          & a {
            width: 130px;
            height: 40px;
          }
        }
      }
    }
    &_bg {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 0;
      & img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: bottom center;
        @media screen and (min-width: 1080px) {
          object-fit: cover;
          object-position: center;
        }
      }
    }
    .seal {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 88px;
      height: 88px;
      z-index: 9;
      background: linear-gradient(
        to -45deg,
        rgba(25, 25, 25, 0.5),
        transparent
      );
      @media screen and (min-width: 1080px) {
        top: 0;
        bottom: unset;
        width: 124px;
        height: 124px;
      }
    }
  }
}

/* -------------------------
 - Cleaning
------------------------- */

.Cleaning {
  margin-bottom: 80px;
  .catch {
    font-size: 14px;
    line-height: 1.3;
    display: inline-block;
    font-weight: 400;
    margin-bottom: 20px;
    background: linear-gradient(transparent 70%, #d0edf7 70%);
    text-align: center;
    margin: 0 auto;
    @media screen and (min-width: 1080px) {
      margin-bottom: 10px;
      font-size: 20px;
    }
  }
  .l-inr-lg {
    padding: 40px 15px 30px;
    @media screen and (min-width: 1080px) {
      padding: 40px 30px 30px;
    }
    & h2 {
      text-align: center;
      margin: 20px 0 30px;
      .catch {
        font-size: 14px;
        display: inline-block;
        font-weight: 400;
        margin-bottom: 10px;
        background: linear-gradient(transparent 70%, #d0edf7 70%);
        @media screen and (min-width: 1080px) {
          font-size: 20px;
        }
      }
      font-size: 24px;
      .bold {
        font-size: 46px;
        background: var(
          --Linear,
          linear-gradient(99deg, #076895 16.4%, #043e58 99.99%)
        );
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
      }
    }
    .c-list {
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 1%;
      padding: 0 0 50px;
      border-bottom: 1px solid #abcada;
      @media screen and (min-width: 1080px) {
        padding: 0 50px 50px;
      }
      & li {
        background-color: #fff;
        width: 32.6%;
        padding: 25px 15px 20px;
        border-radius: 10px;
        @media screen and (min-width: 1080px) {
          padding: 27px 30px 25px;
        }
        & p {
          font-size: 12px;
          line-height: 1.3;
          .ex {
            display: block;
            margin-top: 10px;
            font-size: 10px;
            opacity: 0.6;
          }
        }
        & h3 {
          display: flex;
          font-size: 18px;
          justify-content: center;
          margin-bottom: 10px;
          flex-direction: column;
          color: var(--c-primary);
          text-align: center;
          @media screen and (min-width: 1080px) {
            font-size: 26px;
            margin-bottom: 15px;
            flex-direction: row;
          }
          & img {
            height: 35px;
            margin-bottom: 15px;
            width: auto;
            @media screen and (min-width: 1080px) {
              margin-bottom: 0;
              margin-right: 5px;
            }
          }
        }
        &:nth-child(1) {
          width: 49.5%;
          margin-bottom: 5px;
          @media screen and (min-width: 1080px) {
            margin-bottom: 10px;
          }
        }
        &:nth-child(2) {
          width: 49.5%;
          margin-bottom: 5px;
          @media screen and (min-width: 1080px) {
            margin-bottom: 10px;
          }
        }
      }
    }
  }
}

/* -------------------------
 - IntroBtn
------------------------- */
.IntroBtn {
  padding: 40px 0 60px;
  @media screen and (min-width: 1080px) {
    padding: 80px 0;
  }
  .btn-more {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 80px;
    padding: 24px 0;
    background: var(--clr-theme);
    border-radius: 2px;
    color: #fff;
    font-size: 16px;
    font-size: clamp(10px, 14px, 3.5vw);
    font-weight: bold;
    line-height: 1.25;
    text-align: center;
    transition: all 0.3s;
    letter-spacing: 0.05em;
    @media screen and (min-width: 1080px) {
      width: 674px;
      margin: 0 auto;
      max-width: 100%;
      min-height: 130px;
      font-size: 20px;
    }
    @media (hover: hover) and (pointer: fine) {
      &:hover {
        opacity: 1;
        filter: brightness(1.05);
        color: #fff !important;
        &::after {
          bottom: 16px;
        }
      }
    }

    /* アイコン */
    &::after {
      content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  line-height: 1;
  background: var(--txt-black);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  mask-image: url("/cdn/shop/files/ico-arrow-btm.svg");
      content: "";
      display: inline-block;
      position: absolute;
      z-index: inherit;
      left: 50%;
      bottom: 14px;
      transform: translateX(-50%);
      width: 12px;
      height: 6px;
      background: #fff;
      transition: all 0.3s;
      @media screen and (min-width: 1080px) {
        bottom: 20px;
      }
    }
  }
}

/* -------------------------
 - DP
------------------------- */

.DP {
  --clr-dark: #1f1f21;
  .catch {
    margin-bottom: 15px;
  }
  .dp-title {
    margin-top: 50px;
    text-align: center;
  }
  .l-inr-lg {
    background: var(--clr-dark);
  }
  .clr {
    background: var(
      --Linear,
      linear-gradient(180deg, #41b0e2 0%, #1db7fe 100%)
    );
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  .heading {
    display: flex;
    gap: 10px;
    justify-content: center;
    align-items: center;
  }
  .dp-tab {
    display: flex;
    flex-wrap: wrap;
    gap: 0 10px;
    .num {
      background-color: var(--c-primary);
      color: #fff;
      font-size: 14px;
      font-weight: bold;
      line-height: 1;
      padding: 4px 8px;
      border-radius: 999px;
      width: fit-content;
      margin: auto;
    }
  }
  & label:has(:checked) .num {
    background-color: #fff;
    color: var(--c-primary);
  }
  & label:has(:checked) .dp-tab-ttl {
    background-color: var(--clr-dark);
    color: #fff;
  }
  .dp-tab-ttl {
    background-color: #fff;
    padding: 20px 0;
    display: grid;
    gap: 8px;
    color: var(--clr-dark);
    height: 100%;
    line-height: 1.25;
    @media screen and (min-width: 1080px) {
      padding: 30px;
    }
  }
  .dp-tab > label {
    flex: 1 1;
    order: -1;
    background-color: var(--clr-dark);
    text-align: center;
    cursor: pointer;
    & span {
      font-weight: bold;
      line-height: 1;
      @media screen and (min-width: 1080px) {
        font-size: 28px;
      }
    }
  }
  .dp-tab > label:hover {
    opacity: 0.8;
  }
  .dp-tab input {
    display: none;
  }
  .dp-tab > div {
    display: none;
    width: 100%;
  }
  .dp-tab label:has(:checked) {
    opacity: 1;
  }
  .dp-tab label:has(:checked) + div {
    display: block;
  }
  .dp-content {
    display: grid;
    gap: 40px;
    padding: 40px 0;
    counter-reset: listnum 0;
    background: var(--clr-dark);
    color: #fff;
    @media screen and (min-width: 1080px) {
      padding: 80px 0;
    }
    .dp-ttl {
      border: 1px solid rgba(255, 255, 255, 0.2);
      border-radius: 12px;
      display: grid;
      place-items: center;
      gap: 20px;
      padding: 40px 20px;
      margin-bottom: 40px;
      & h2 {
        font-size: 24px;
        @media screen and (min-width: 1080px) {
          font-size: 40px;
        }
      }
      & p {
        font-size: 16px;
        font-weight: bold;
      }
    }
    .dp-list {
      display: grid;
      gap: 40px;
      @media screen and (min-width: 1080px) {
        gap: 80px;
      }
    }

    /* Splide使用時のスタイル調整 */
    .dp-list-splide {
      position: relative;
      overflow: visible;
      padding-bottom: 60px;
      @media screen and (min-width: 1080px) {
        padding-bottom: 80px;
      }
      .splide__track {
        overflow: visible;
      }
      .splide__list.dp-list {
        display: flex !important;
        align-items: center;
        justify-content: flex-start;
      }
      .splide__slide.dp-detail {
        display: grid;
        gap: 20px;
        flex-shrink: 0;
        width: 100%;
        box-sizing: border-box;
        height: auto;
        align-self: center;
        margin: 0;
        @media screen and (min-width: 1080px) {
          grid-auto-flow: column;
          grid-template-columns: 640px 1fr;
          gap: 40px;
          place-items: center;
          align-items: center;
          width: 1080px;
          min-width: 1080px;
          max-width: 1080px;
          margin: 0 auto;
        }
        .dp-content-txt {
          align-self: center;
          justify-self: center;
          width: 100%;
          display: flex;
          flex-direction: column;
          justify-content: center;
        }
        .dp-content-image {
          align-self: center;
        }
      }

      /* ページネーションのスタイル */
      .dp-list-pagination {
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        gap: 20px;
        justify-content: center;
        align-items: center;
        list-style: none;
        padding: 0;
        margin: 0;
        z-index: 10;
        @media screen and (min-width: 1080px) {
          gap: 30px;
        }
        .splide__pagination__page {
          width: 60px;
          height: 2px;
          background: rgba(255, 255, 255, 0.3);
          border: none;
          border-radius: 0;
          padding: 0;
          margin: 0;
          cursor: pointer;
          transition: all 0.3s ease;
          opacity: 1;
          @media screen and (min-width: 1080px) {
            width: 80px;
            height: 3px;
          }
          &.is-active {
            background: rgba(255, 255, 255, 1);
            height: 3px;
            @media screen and (min-width: 1080px) {
              height: 4px;
            }
          }
          &:hover {
            background: rgba(255, 255, 255, 0.6);
          }
        }
      }
    }
    .dp-detail {
      display: grid;
      gap: 20px;
      @media screen and (min-width: 1080px) {
        grid-auto-flow: column;
        grid-template-columns: 640px 1fr;
        gap: 40px;
        place-items: center;
      }
    }
  }

  /* 新規タブセクションのスタイル */
  .new-tabs-section {
    /* スコープを明確にするため、セクション内のみに適用 */
    .new-tabs-nav {
      display: flex;
      gap: 30px;
      margin-bottom: 40px;
      @media screen and (min-width: 1080px) {
        margin-bottom: 60px;
      }
    }
    .new-tabs-nav-item {
      flex: 1;
      cursor: pointer;
      display: block;

      /* ラジオボタンは非表示（セクション内のみに適用） */
      > input[type="radio"] {
        display: none;
      }
      .new-tabs-nav-content {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 20px 15px;
        border-radius: 10000px;
        background-color: var(--c-bg-light);
        transition: all 0.3s ease;
        min-height: 80px;
        gap: 10px;
        @media screen and (min-width: 1080px) {
          padding: 30px;
          min-height: 104px;
          gap: 16px;
        }
      }
      .new-tabs-nav-text {
        display: flex;
        flex-direction: column;
        gap: 8px;
        flex: 1;
        @media screen and (min-width: 1080px) {
          gap: 16px;
        }
      }
      .new-tabs-nav-line1 {
        font-size: 9px;
        line-height: 1;
        color: #1f1f21;
        @media screen and (min-width: 1080px) {
          font-size: 10px;
        }
      }
      .new-tabs-nav-line2 {
        font-size: 14px;
        line-height: 1.2;
        color: #1f1f21;
        font-weight: 500;
        @media screen and (min-width: 1080px) {
          font-size: 18px;
        }
      }
      .new-tabs-nav-badge {
        width: 32px;
        height: 32px;
        border-radius: 32px;
        background-color: var(--c-primary);
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        @media screen and (min-width: 1080px) {
          width: 40px;
          height: 40px;
          border-radius: 40px;
        }
      }
      .new-tabs-nav-num {
        font-size: 10px;
        line-height: 1;
        color: #fff;
        font-weight: bold;
        @media screen and (min-width: 1080px) {
          font-size: 11px;
        }
      }

      /* アクティブなタブのスタイル */
      &:has(input[type="radio"]:checked) .new-tabs-nav-content {
        background-color: var(--c-primary);
        .new-tabs-nav-line1,
        .new-tabs-nav-line2 {
          color: #fff;
        }
        .new-tabs-nav-badge {
          background-color: #fff;
          .new-tabs-nav-num {
            color: var(--c-primary);
          }
        }
      }
    }
    .new-tabs-content-wrapper {
      position: relative;
    }
    .new-tabs-content-item {
      display: none;

      /* JavaScriptで制御されるため、初期状態は非表示 */
      &.active {
        display: block;
      }
    }
    .new-tabs-splide {
      position: relative;
      overflow: visible;
      padding-bottom: 60px;
      @media screen and (min-width: 1080px) {
        padding-bottom: 80px;
      }
      .splide__track {
        overflow: visible;
      }
      .splide__list.new-tabs-list {
        display: flex !important;
        align-items: center;
      }
      .splide__slide.new-tabs-detail {
        display: grid;
        gap: 20px;
        flex-shrink: 0;
        width: 80%;
        box-sizing: border-box;
        height: auto;
        align-self: center;
        margin: 0;
        @media screen and (min-width: 1080px) {
          grid-auto-flow: column;
          grid-template-columns: 640px 1fr;
          gap: 40px;
          place-items: center;
          align-items: center;
          width: 1080px;
          min-width: 1080px;
          max-width: 1080px;
        }
        .new-tabs-content-image {
          align-self: center;
          border-radius: 8px;
          max-width: 100%;
          @media screen and (min-width: 1080px) {
            width: 100%;
            height: auto;
          }
        }
        & video.new-tabs-content-image {
          object-fit: cover;
          height: 210px;
          @media screen and (min-width: 1080px) {
            height: 100%;
          }
        }
        .new-tabs-content-txt {
          align-self: center;
          justify-self: center;
          width: 100%;
          display: grid;
          gap: 20px;
          @media screen and (min-width: 1080px) {
            padding: 20px 0;
            display: flex;
            flex-direction: column;
            justify-content: center;
          }
        }
        .new-tabs-content-copy {
          font-size: 16px;
          line-height: 1.5;
          color: #fff;
          @media screen and (min-width: 1080px) {
            font-size: 18px;
          }
        }
        .new-tabs-content-ttl {
          font-size: 24px;
          font-weight: bold;
          line-height: 1.25;
          color: #fff;
          @media screen and (min-width: 1080px) {
            font-size: 40px;
          }
          .clr {
            background: linear-gradient(180deg, #41b0e2 0%, #1db7fe 100%);
            background-clip: text;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
          }
        }
        .new-tabs-content-description {
          font-size: 14px;
          line-height: 1.6;
          opacity: 0.7;
          color: #fff;
          @media screen and (min-width: 1080px) {
            font-size: 16px;
          }
        }
        .new-tabs-model {
          display: flex;
          flex-wrap: wrap;
          white-space: nowrap;
          gap: 10px;
          align-items: center;
          margin-top: 10px;
          & dt {
            font-size: 14px;
            color: #fff;
            opacity: 0.7;
            @media screen and (min-width: 1080px) {
              font-size: 16px;
            }
          }
          & dd {
            display: flex;
            padding: 10px 20px;
            align-items: flex-end;
            line-height: 1;
            gap: 10px;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.1);
            background: rgba(255, 255, 255, 0.05);
            color: #fff;
            font-size: 14px;
            @media screen and (min-width: 1080px) {
              font-size: 16px;
              padding: 12px 24px;
            }
          }
        }
      }

      /* ページネーションのスタイル */
      .splide__pagination {
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        gap: 20px;
        justify-content: center;
        align-items: center;
        list-style: none;
        padding: 0;
        margin: 0;
        z-index: 10;
        @media screen and (min-width: 1080px) {
          gap: 30px;
        }
        .splide__pagination__page {
          width: 60px;
          height: 2px;
          background: rgba(255, 255, 255, 0.3);
          border: none;
          border-radius: 0;
          padding: 0;
          margin: 0;
          cursor: pointer;
          transition: all 0.3s ease;
          opacity: 1;
          @media screen and (min-width: 1080px) {
            width: 80px;
            height: 3px;
          }
          &.is-active {
            background: rgba(255, 255, 255, 1);
            height: 3px;
            @media screen and (min-width: 1080px) {
              height: 4px;
            }
          }
          &:hover {
            background: rgba(255, 255, 255, 0.6);
          }
        }
      }

      /* 矢印のスタイル */
      .splide__arrow {
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid rgba(255, 255, 255, 0.3);
        width: 50px;
        height: 50px;
        border-radius: 50%;
        transition: all 0.3s ease;
        @media screen and (min-width: 1080px) {
          width: 60px;
          height: 60px;
        }
        & svg {
          fill: #ffffff;
          width: 20px;
          height: 20px;
        }
        &:hover {
          background: rgba(255, 255, 255, 0.2);
          border-color: rgba(255, 255, 255, 0.5);
        }
        .splide__arrow--prev {
          left: 20px;
          @media screen and (min-width: 1080px) {
            left: calc((100% - 1080px) / 2 - 80px);
          }
        }
        .splide__arrow--next {
          right: 20px;
          @media screen and (min-width: 1080px) {
            right: calc((100% - 1080px) / 2 - 80px);
          }
        }
      }
    }
    .new-tabs-detail {
      display: grid;
      gap: 20px;
      @media screen and (min-width: 1080px) {
        grid-auto-flow: column;
        grid-template-columns: 640px 1fr;
        gap: 40px;
        place-items: center;
      }
      & video {
        object-fit: cover;
        height: 210px;
        @media screen and (min-width: 1080px) {
          height: 100%;
        }
      }
    }
  }
}

/* -------------------------
 - Point
------------------------- */
.Point {
  padding: 60px 0;
  margin-bottom: 70px;
  background: #f7f9fa;
  @media screen and (min-width: 1080px) {
    padding: 80px 0;
  }
  .head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    text-align: center;
    @media screen and (min-width: 1080px) {
      flex-direction: row;
      justify-content: space-between;
      text-align: left;
    }
  }
  .head-heading {
    font-size: 24px;
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: 0;
    @media screen and (min-width: 1080px) {
      font-size: 32px;
    }
  }
  .cards {
    display: grid;
    grid-template-columns: repeat(6, 275px);
    gap: 10px;
    /* スクロールバー */
    margin: 0 calc(((100vw - 100%) / 2) * -1);
    padding: 40px 0 20px;
    overflow-x: scroll;
    scroll-snap-type: x mandatory;
    scrollbar-color: var(--clr-theme) transparent;
    scrollbar-width: thin;
    &::-webkit-scrollbar {
      height: 8px;
    }
    &::-webkit-scrollbar-track {
      background: transparent;
    }
    &::-webkit-scrollbar-thumb {
      background: var(--clr-theme);
      border-radius: 4px;
    }
    &::-webkit-scrollbar-thumb:hover {
      background: var(--clr-theme);
    }
    @media screen and (min-width: 1080px) {
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      margin: 40px 0 0 0;
      padding: 0;
      overflow: visible;
    }
  }
  .card {
    display: flex;
    padding: 30px 20px;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 8px 8px 16px 0 rgba(0, 0, 0, 0.18);
    counter-increment: PointNum;
    @media screen and (min-width: 1080px) {
      gap: 10px;
      padding: 40px 30px;
      box-shadow: none;
      border-radius: 12px;
      transition: all 0.3s;
      &:hover {
        border-radius: 12px;
        box-shadow: 8px 8px 30px 0 rgba(0, 0, 0, 0.15);
      }
    }
    &:first-of-type {
      margin-left: 30px;
      @media screen and (min-width: 1080px) {
        margin: 0;
      }
    }
  }
  .card-tit {
    position: relative;
    z-index: 1;
    padding-top: 16px;
    font-size: 20px;
    letter-spacing: 1px;
    line-height: 1.5;
    @media screen and (min-width: 1080px) {
      font-size: 24px;
      letter-spacing: 1.2px;
    }
    &::before {
      content: counter(PointNum, decimal-leading-zero);
      position: absolute;
      z-index: inherit;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      font-size: 12px;
      font-family: din-2014-narrow, sans-serif;
      font-weight: 700;
      line-height: 1.5;
      letter-spacing: 0.6px;
    }
  }
  .card-thum {
    width: 80px;
    margin: 0 auto;
    @media screen and (min-width: 1080px) {
      width: 100px;
      margin: 4px auto 16px;
    }
  }
  .card-txt {
    font-size: 12px;
    line-height: 1.5;
    letter-spacing: 0.6px;
    @media screen and (min-width: 1080px) {
      font-size: 13px;
      letter-spacing: 0.65px;
    }
  }
}

/* -------------------------
 - lp-series-eufy
------------------------- */
.lp-series-eufy {
  padding: 70px 0;
  background: #fff;
  @media screen and (min-width: 1080px) {
    padding: 120px 0;
  }
}

/* -------------------------
 - lp-hosyo
------------------------- */
.lp-hosyo {
  --space-sec: 80px;
  --bg-inr: #f7f9fa;
  --bg-block: white;
  --radius-block: 8px;
  padding: 10px 0 30px !important;
  @media screen and (min-width: 1080px) {
    margin-top: 0 !important;
    padding: 0 0 0 !important;
  }
  @media screen and (min-width: 1080px) {
    .lp-hosyo-inr {
      padding: 0 clamp(40px, 100px, 10vw) 60px;
      @media screen and (min-width: 1080px) {
        padding: 0 clamp(40px, 100px, 10vw) 100px;
      }
    }
  }
  position: relative;
  z-index: 2;
}

.Award {
  position: relative;
  padding-top: 40px;
  margin: 80px auto 0;
  background: #f7f9fa;
  @media screen and (min-width: 1080px) {
    background: transparent;
  }
  .award-inr {
    background: #f7f9fa;
    padding-top: 30px !important;
    @media screen and (min-width: 1080px) {
      padding-top: 100px !important;
      padding: 0 clamp(40px, 100px, 10vw) 10px;
    }
    .content {
      background-color: #fff;
      border-radius: 12px;
      padding: 60px 40px 70px;
    }
  }
  .text {
    font-size: 15px;
    letter-spacing: 0;
    text-align: center;
    @media screen and (min-width: 1080px) {
      font-size: 18px;
    }
  }
  .title {
    margin: 0 auto;
    font-size: 28px;
    letter-spacing: 0;
    line-height: 1.2;
    text-align: center;
    .num {
      display: inline-block;
      padding: 0 0.05em;
      color: var(--clr-theme);
      font-size: 60px;
      line-height: 1;
      transform: translateY(2px);
      font-family: din-2014-narrow, sans-serif;
      @media screen and (min-width: 1080px) {
        font-size: 72px;
      }
    }
  }
  .list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    width: vwsp(334);
    max-width: 480px;
    margin: 16px auto 0;
    .item {
      display: flex;
      justify-content: center;
    }
    @media screen and (min-width: 1080px) {
      gap: 8px;
      width: 400px;
      max-width: 100%;
    }
    & img {
      @media screen and (min-width: 1080px) {
        width: 100%;
      }
    }
  }
}

.Popup {
  position: fixed;
  z-index: 1000;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 0;
  background: rgba(0, 0, 0, 0.7);
  transform: translateZ(1px);
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s;
  &.is-active {
    height: auto;
    visibility: visible;
    opacity: 1;
    .inr {
      display: block !important;
      opacity: 0;
      animation: fadeUp 0.8s 0.8s cubic-bezier(0.33, 1, 0.68, 1) 1 forwards;
    }
  }
  .inr {
    position: relative;
    z-index: 1;
    width: 60%;
    max-width: 100%;
    background: var(--bg-Thanks);
    color: #fff;
    text-align: center;
    display: none;
    @media screen and (min-width: 1080px) {
      width: 700px;
      margin: 0 auto;
      & img {
        width: 100%;
      }
      & picture {
        width: 100%;
      }
    }
  }
  .close {
    position: absolute;
    z-index: inherit;
    width: 124px;
    top: -36px;
    right: 20px;
    fill: white;
    width: 20px;
    height: 20px;
    cursor: pointer;
    @media screen and (min-width: 1080px) {
      right: 0;
    }
  }
  .ico-close {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  .bnr-link {
    display: block;
  }
}

.bnrArea2 {
  @media screen and (min-width: 1080px) {
    padding: 120px 0 0 0;
    text-align: center;
    width: 100%;
    & img {
      margin-top: 30px;
      vertical-align: bottom;
      width: 100%;
    }
  }
  .bnr-link {
    display: block;
    width: 100%;
    @media screen and (min-width: 1080px) {
      width: 892px;
      margin: 0 auto;
    }
  }
}

.second-header-green {
  color: #21d2c5;
}

.bf {
  & img {
    width: 236px;
    display: flex;
    margin: 0 auto 20px;
    justify-content: center;
    @media screen and (max-width: 1080px) {
      display: none;
    }
    @media screen and (min-width: 1080px) {
      width: 800px;
      margin: 0 auto 40px;
    }
  }
}

.lp-youtube {
  min-width: 280px;
  @media screen and (min-width: 1080px) {
    min-width: 480px;
  }
}

.c-badge {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 30px;
  flex-direction: column;
  align-items: center;
  @media screen and (min-width: 1080px) {
    margin-top: 10px;
    gap: 25px;
    align-items: flex-end;
    flex-direction: row;
  }
  .badge {
    @media screen and (min-width: 1080px) {
      width: 35%;
    }
  }
  .continuous {
    display: flex;
    gap: 3px;
    justify-content: center;
    align-items: center;
    width: 100%;
    @media screen and (min-width: 1080px) {
      justify-content: flex-start;
      align-items: flex-end;
      width: auto;
    }
    .en {
      font-size: 120px;
      line-height: 0.6;
      color: var(--clr-theme);
      @media screen and (min-width: 1080px) {
        font-size: 14vw;
      }
    }
    .sub {
      font-size: 25px;
      white-space: nowrap;
      line-height: 1.3;
    }
  }
}

/* -------------------------
 - Aside
------------------------- */
.S1pro {
  margin: 20px auto 40px;
  padding: 0 20px;
  text-align: center;
  .img {
    position: relative;
    margin: 0 auto;
    @media screen and (min-width: 1080px) {
      width: 1080px;
    }
    .product-price-v2-unit {
      display: flex;
      align-items: baseline;
      margin-top: 15px;
      font-size: 16px;
      justify-content: center;
      flex-direction: initial;
      @media screen and (min-width: 1080px) {
        margin-top: 30px;
        font-size: 20px;
      }
    }
    .lp-btns {
      margin-top: 15px;
      @media screen and (min-width: 1080px) {
        margin-top: 20px;
      }
    }
    & img {
      width: 100%;
      object-fit: contain;
    }
    .sale {
      max-width: 400px;
      margin-top: 10px;
    }
    .pc-bg {
      height: 600px;
      object-fit: cover;
      object-position: right;
    }
    .txt {
      position: absolute;
      color: #fff;
      text-align: center;
      display: flex;
      justify-content: center;
      align-items: center;
      flex-direction: column;
      bottom: 30px;
      left: 50%;
      width: 100%;
      transform: translate(-50%, -0%);
      @media screen and (min-width: 1080px) {
        top: 52%;
        bottom: auto;
        left: 30%;
        right: auto;
        transform: translate(-50%, -50%);
      }
      .txtsvg {
        width: 50vw;
        @media screen and (min-width: 1080px) {
          width: 350px;
        }
        & img {
          width: 100%;
        }
      }
      & h1 {
        letter-spacing: 12.6px;
      }
      h1,
      & h2 {
        font-weight: 200 !important;
      }
    }
  }
  @media screen and (min-width: 1080px) {
    margin: 60px auto 80px;
  }
  & a {
    &:hover {
      opacity: 0.9;
      transition: all 0.2s ease;
    }
  }
  & img {
    border-radius: 12px;
  }
}

.E20 {
  margin: 20px auto 40px;
  padding: 0 20px;
  text-align: center;
  .lp-btns {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 8px;
    @media screen and (min-width: 1080px) {
      justify-content: flex-start;
    }
  }
  .lp-btns li.is-more {
    width: 100%;
    text-align: center;
    @media screen and (min-width: 1080px) {
      text-align: left;
    }
  }
  .img {
    position: relative;
    margin: 0 auto;
    @media screen and (min-width: 1080px) {
      width: 1080px;
    }
    .product-price-v2-unit {
      display: flex;
      align-items: baseline;
      margin-top: 5px;
      font-size: 16px;
      justify-content: center;
      flex-direction: initial;
      @media screen and (min-width: 1080px) {
        margin-top: 30px;
        font-size: 20px;
      }
    }
    .lp-btns {
      margin-top: 10px;
      position: relative;
      z-index: 5;
      @media screen and (min-width: 1080px) {
        margin-top: 20px;
      }
    }
    & img {
      width: 100%;
      object-fit: contain;
    }
    .sale {
      max-width: 400px;
      margin-top: 10px;
    }
    .pc-bg {
      width: 100%;
      object-fit: contain;
    }
    .txt {
      position: static;
      color: #fff;
      background-color: black;
      text-align: center;
      display: flex;
      justify-content: flex-start;
      align-items: center;
      flex-direction: column;
      bottom: 30px;
      left: 50%;
      gap: 2px;
      top: 7.5%;
      width: 100%;
      padding: 40px 30px 0;
      margin-bottom: -30px;
      @media screen and (min-width: 1080px) {
        position: absolute;
        background-color: transparent;
        top: 52%;
        padding: 0;
        bottom: auto;
        align-items: flex-start;
        left: 21%;
        right: auto;
        width: 350px;
        transform: translate(-50%, -50%);
      }
      .txtsvg {
        width: calc(min(400px, 100%));
        @media screen and (min-width: 1080px) {
          width: 350px;
        }
        & img {
          width: 100%;
        }
      }
      & h1 {
        letter-spacing: 12.6px;
      }
      h1,
      & h2 {
        font-weight: 200 !important;
      }
    }
  }
  @media screen and (min-width: 1080px) {
    margin: 60px auto 80px;
  }
  & a {
    &:hover {
      opacity: 0.9;
      transition: all 0.2s ease;
    }
  }
}

/* --------------------
- Benefits Section
--------------------*/
.benefits-section {
  width: 100%;
  padding: 15px 0 18px;
  border-top: 1px solid rgba(0, 93, 142, 0.3);
  border-bottom: 1px solid rgba(0, 93, 142, 0.3);
  border-radius: 0;
  background: transparent;
  display: grid;
  gap: 5px;
  @media screen and (min-width: 1080px) {
    padding: 15px 0 0;
    border-bottom: none;
  }
  .benefits-header {
    margin-bottom: 5px;
  }
  .benefits-header__text {
    font-size: 14px;
    color: var(--c-primary);
    font-weight: var(--font-weight-medium);
    line-height: 1.3;
    margin: 0;
    text-align: center;
    @media screen and (min-width: 1080px) {
      text-align: left;
    }
  }
  .benefits-list {
    display: flex;
    flex-direction: column;
    gap: 2.5px;
  }
  .benefit-item {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    padding: 0;
  }
  .benefit-item__icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
  }
  .benefit-item__text {
    font-size: 12px;
    color: #000;
    font-weight: 400;
    line-height: 1.4;
    margin: 0;
    flex: 1;
    text-align: left;
  }
  @media screen and (min-width: 1080px) {
    .benefits-section {
      max-width: 400px;
    }
    .benefits-header__text {
      font-size: 16px;
    }
    .benefit-item__text {
      font-size: 14px;
    }
  }
}

/* Sale-cp Section */
.Sale-cp {
  margin: 0 auto 50px;
  position: relative;
  z-index: 2;
  flex-direction: column;
  @media screen and (min-width: 1080px) {
    padding-inline: 40px;
    margin: 0 auto 50px;
  }
  .sale-cp__description {
    font-size: 10px;
    display: block;
    opacity: 0.6;
    margin-top: -3px;
  }
  /* ▼ アイテム背景色 — 変更時はここの2色を差し替えるだけ */
  --item-color-from: #DEE3E7;
  --item-color-to: #EAF0F5;
  .sale-cp__container {
    background: linear-gradient(135deg, var(--item-color-from) 0%, var(--item-color-to) 100%);
    margin: 0 auto;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 30px 15px 15px;
    @media screen and (min-width: 1080px) {
      gap: 0;
      justify-content: space-between;
      flex-direction: row;
      align-items: center;
      padding: 20px;
    }
  }
  .sale-cp__header {
    text-align: center;
    @media screen and (min-width: 1080px) {
      width: 30%;
      margin-bottom: 0;
    }
  }
  .sale-cp__title {
    font-size: 26px;
    font-weight: var(--font-weight-medium);
    color: var(--c-primary);
    margin-bottom: 10px;
    letter-spacing: var(--letter-spacing-medium);
    @media screen and (min-width: 1080px) {
      font-size: 36px;
    }
  }
  .sale-cp__subtitle {
    font-size: 12px;
    color: var(--c-primary);
    font-weight: var(--font-weight-regular);
  }
  .sale-cp__date {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 3px;
    margin-top: 18px;
  }
  .sale-cp__date-line {
    width: 100%;
    height: 1px;
    background-color: var(--c-primary);
    margin-bottom: 10px;
    @media screen and (min-width: 1080px) {
      width: 300px;
      margin-bottom: 18px;
    }
  }
  .sale-cp__date-content {
    display: flex;
    align-items: center;
    gap: 3px;
  }
  .sale-cp__date-number {
    font-size: 35px;
    font-weight: var(--font-weight-medium);
    color: var(--c-primary);
    line-height: 1;
    font-family: "Mont For Anker", sans-serif;
    margin-bottom: 2px;
  }
  .sale-cp__date-circle {
    width: 19px;
    height: 19px;
    background-color: var(--c-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .sale-cp__date-text {
    font-size: 10px;
    color: #fff;
    font-weight: var(--font-weight-regular);
  }
  .sale-cp__date-label {
    font-size: 12px;
    color: var(--c-primary);
    font-weight: var(--font-weight-regular);
  }
  .sale-cp__content {
    display: flex;
    gap: 5px;
    flex-direction: column;
    @media screen and (min-width: 1080px) {
      flex-direction: row;
      width: 68%;
      gap: 7px;
    }
  }
  .sale-cp__coupon-section {
    flex: 1;
    background: #fff;
    border-radius: 15px;
    padding: 15px;
    display: grid;
    @media screen and (min-width: 1080px) {
      width: 48%;
      padding: 20px;
    }
  }
  .sale-cp__coupon-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 5px;
    @media screen and (min-width: 1080px) {
      margin-bottom: 10px;
    }
  }
  .sale-cp__coupon-badge {
    background: var(--c-primary);
    color: #fff;
    padding: 2px 11px 2.5px;
    border-radius: 100px;
    font-size: 10px;
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
    @media screen and (min-width: 1080px) {
      padding: 5px 11px 6.5px;
    }
  }
  .sale-cp__coupon-description {
    font-size: 16px;
    color: var(--c-primary);
    font-weight: var(--font-weight-medium);
  }
  .sale-cp__coupon-main {
    text-align: center;
    margin-bottom: 5px;
  }
  .sale-cp__coupon-percentage {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 6px;
    margin-bottom: -45px;
  }
  .sale-cp__coupon-number {
    font-size: 45px;
    font-weight: var(--font-weight-bold);
    color: var(--c-primary);
    font-family: "Mont For Anker", sans-serif;
    letter-spacing: -0.05em;
    line-height: 1;
    @media screen and (min-width: 1080px) {
      font-size: 92px;
    }
  }
  .sale-cp__coupon-symbol {
    font-size: 62px;
    font-weight: var(--font-weight-bold);
    color: var(--c-primary);
    line-height: 1;
    font-family: "Mont For Anker", sans-serif;
  }
  .sale-cp__coupon-text {
    font-size: 35px;
    color: var(--c-primary);
    font-weight: var(--font-weight-medium);
    margin-bottom: 20px;
  }
  .sale-cp__coupon-label {
    font-size: 22px;
    color: var(--c-primary);
    font-weight: var(--font-weight-medium);
    @media screen and (min-width: 1080px) {
      font-size: 34px;
    }
  }
  .sale-cp__coupon-amount {
    font-size: 12px;
    color: var(--c-primary);
    font-weight: var(--font-weight-regular);
    text-align: center;
    margin-top: -10px;
    @media screen and (min-width: 1080px) {
      margin-top: -15px;
    }
  }
  .sale-cp__gift-section {
    flex: 1;
    background: #fff;
    border-radius: 15px;
    padding: 15px;
    display: grid;
    @media screen and (min-width: 1080px) {
      width: 48%;
      padding: 20px;
    }
  }
  .sale-cp__gift-title {
    font-size: min(6vw, 24px);
    color: var(--c-primary);
    font-weight: var(--font-weight-medium);
    text-align: center;
    margin-bottom: 15px;
    line-height: 1.2;
    @media screen and (min-width: 1080px) {
      font-size: 24px;
    }
  }
  .sale-cp__gift-items {
    display: flex;
    gap: 6px;
    justify-content: center;
    @media screen and (min-width: 1080px) {
      gap: 6px;
    }
  }
  .sale-cp__gift-item {
    background: #eaf8fe;
    border-radius: 8px;
    padding: 15px 10px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
    width: 48%;
  }
  .sale-cp__gift-images {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
  }
  .sale-cp__gift-image {
    width: auto;
    height: 40px;
    object-fit: cover;
    border-radius: 4px;
    @media screen and (min-width: 1080px) {
      height: 45px;
    }
  }
  .sale-cp__gift-price {
    font-size: 10px;
    color: var(--c-primary);
    font-weight: var(--font-weight-regular);
    text-align: center;
    letter-spacing: 0;
    @media screen and (min-width: 1080px) {
      letter-spacing: 0.01em;
    }
  }
  .sale-cp__footer {
    text-align: center;
    margin-top: 20px;
  }
  .sale-cp__footer-text {
    font-size: 10px;
    color: #fff;
    text-align: left;
    font-weight: var(--font-weight-regular);
    line-height: 1.4;
  }
}

/* --------------------
- variation component
--------------------*/
.c-variation {
  margin-top: 15px;
  .c-variation-btn {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin-bottom: 0;
    @media screen and (min-width: 1080px) {
      justify-content: flex-start;
    }
    .c-variation-btn-item {
      position: relative;
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 0;
      margin-bottom: 5px;
      border-radius: 6px;
      cursor: pointer;
      transition: all 0.3s ease;
      font-size: 12px;
      & input[type="radio"] {
        position: absolute;
        opacity: 0;
        pointer-events: none;
      }

      /* カスタムチェックボタン */
      &::before {
        content: "";
        display: flex;
        align-items: center;
        justify-content: center;
        width: 16px;
        height: 16px;
        border: 2px solid #ccc;
        border-radius: 50%;
        background: #fff;
        transition: all 0.3s ease;
        flex-shrink: 0;
      }
      .c-variation-btn-item-text {
        font-size: 12px;
        font-weight: 500;
        color: #333;
        transition: color 0.3s ease;
      }
      &:hover {
        &::before {
          border-color: var(--clr-theme);
        }
      }
      & input[type="radio"]:checked + .c-variation-btn-item-text {
        color: var(--clr-theme);
        font-weight: 600;
      }
      &:has(input[type="radio"]:checked) {
        &::before {
          border-color: var(--clr-theme);
          background: var(--clr-theme);
          position: relative;
        }
        &::after {
          content: "";
          position: absolute;
          left: 6px;
          top: 50%;
          transform: translateY(-50%);
          width: 4px;
          height: 4px;
          background: #fff;
          border-radius: 50%;
        }
      }
    }
  }
  .c-variation-content {
    display: none;
    &.active {
      display: block;
    }
  }
}

/* --------------------
- 新しいバリエーション表示スタイル
--------------------*/
.c-variation-new {
  margin: 20px 0;
}

.c-variation-row {
  display: grid;
  align-items: center;
  margin-bottom: 5px;
}

.c-variation-item {
  display: grid;
  grid-template-columns: auto 80%;
  gap: 15px;
  flex: 1;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding-bottom: 15px;
  margin-bottom: 15px;
  &:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
  }
}

.c-variation-label {
  font-size: 12px;
  font-weight: 500;
  color: #fff;
  min-width: 80px;
}

.c-variation-buttons {
  display: flex;
  gap: 10px;
  flex: 1;
}

/* Feature Tabs */
.feature-tabs {
  padding: 60px 0;
  width: 100%;
  @media screen and (min-width: 1080px) {
    padding: 80px 0 30px;
  }

  
  .feature-tabs__title {
    text-align: center;
    margin-bottom: 30px;
    @media screen and (min-width: 1080px) {
      margin-bottom: 40px;
    }
    .bold {
      color: var(--c-primary);
    }
    .heading {
      font-size: 24px;
      margin: 0 0 10px 0;
      line-height: 1.4;
      @media screen and (min-width: 1080px) {
        font-size: 32px;
      }
      .bold {
        font-weight: 600;
      }
    }
    & p {
      font-size: 14px;
      margin: 0;
      opacity: 0.8;
      @media screen and (min-width: 1080px) {
        font-size: 16px;
      }
    }
  }
  .feature-tabs__buttons {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    flex-wrap: wrap;
    gap: 5px;
    justify-content: center;
    margin-bottom: 15px;
    @media screen and (min-width: 1080px) {
      gap: 16px;
      margin-bottom: 30px;
    }
  }
  .feature-tabs__button {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 4px;
    aspect-ratio: 1 / 1;
    background-color: var(--c-bg-light);
    border: 1px solid #eeeff0;
    border-radius: 8px;
    color: #000;
    font-size: 10px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    width: auto;
    @media screen and (min-width: 1080px) {
      aspect-ratio: 1;
      padding: 25px 20px;
      font-size: 16px;
      gap: 10px;
    }
    & img {
      width: 28px;
      height: 28px;
      object-fit: contain;
      transition: filter 0.3s ease;
      @media screen and (min-width: 1080px) {
        width: 50px;
        height: 50px;
      }
    }
    &:hover {
      background-color: var(--c-primary);
      border-color: var(--c-primary);
      color: #fff;
      & img {
        filter: brightness(0) invert(1);
      }
      .feature-tabs__icon {
        background-color: #fff;
        & svg path {
          stroke: #005d8e;
        }
        .icon-plus path {
          stroke: #005d8e;
        }
        .icon-minus path {
          stroke: #005d8e;
        }
      }
    }
    &.active {
      background-color: var(--c-primary);
      border-color: var(--c-primary);
      color: #fff;
      & img {
        filter: brightness(0) invert(1);
      }
      .feature-tabs__icon {
        background-color: #fff;
        .icon-plus {
          opacity: 0;
        }
        .icon-minus {
          opacity: 1;
        }
        & svg path {
          stroke: #005d8e;
        }
        .icon-plus path {
          stroke: #005d8e;
        }
        .icon-minus path {
          stroke: #005d8e;
        }
      }
    }
  }
  .feature-tabs__icon {
    bottom: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    display: none;
    @media screen and (min-width: 1080px) {
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: var(--c-primary);
      border-radius: 50%;
      transition: background-color 0.3s ease;
      position: absolute;
      bottom: 10px;
      right: 10px;
      width: 28px;
      height: 28px;
    }
    & svg {
      position: absolute;
      width: 12px;
      height: 12px;
      transition: opacity 0.3s ease;
      @media screen and (min-width: 1080px) {
        width: 14px;
        height: 14px;
      }
      & path {
        transition: stroke 0.3s ease;
        stroke: #ffffff;
      }
    }
    .icon-plus {
      opacity: 1;
      & path {
        stroke: #ffffff;
      }
    }
    .icon-minus {
      opacity: 0;
      & path {
        stroke: #ffffff;
      }
    }
  }
  .feature-tabs__contents {
    position: relative;
    min-height: 219px;
  }
  .feature-tabs__content {
    display: none;
    animation: fadeIn 0.3s ease;
    &.active {
      display: block;
    }
    .feature-tabs__content-inner {
      display: flex;
      flex-direction: column;
      gap: 20px;
      padding: 30px 20px;
      border: 1px solid rgba(0, 0, 0, 0.15);
      border-radius: 8px;
      @media screen and (min-width: 1080px) {
        flex-direction: row;
        align-items: center;
        gap: 13px;
        padding: 40px 30px;
      }
    }
    .feature-tabs__content-header {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 15px;
      flex-shrink: 0;
      @media screen and (min-width: 1080px) {
        min-width: 250px;
      }
      & img {
        width: 46.7px;
        height: 43.1px;
        object-fit: contain;
      }
      & h3 {
        margin: 0;
        font-size: 18px;
        font-weight: 500;
        color: var(--c-primary);
        line-height: 1.2;
        @media screen and (min-width: 1080px) {
          font-size: 20px;
        }
      }
    }
    .feature-tabs__content-divider {
      width: 100%;
      height: 1px;
      background-color: rgba(0, 91, 142, 0.15);
      flex-shrink: 0;
      @media screen and (min-width: 1080px) {
        width: 1px;
        height: 75px;
      }
    }
    .feature-tabs__content-text {
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 10px;
      padding-left: 0;
      @media screen and (min-width: 1080px) {
        gap: 15px;
        padding-left: 50px;
      }
      & p {
        margin: 0;
        font-size: 14px;
        line-height: 1.8;
        color: #000;
        @media screen and (min-width: 1080px) {
          font-size: 16px;
        }
      }
      .ex {
        display: block;
        font-size: 10px;
        line-height: 1.4;
        color: #000;
        opacity: 1;
        @media screen and (min-width: 1080px) {
          font-size: 12px;
        }
      }
      & sup {
        font-size: 0.7em;
      }
    }
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Diagnosis Buy Button */
.diagnosis-btn-buy {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  width: 100%;
  max-width: 568px;
  margin: 40px auto 0;
  text-decoration: none;
  transition: all 0.3s ease;
  @media screen and (min-width: 1080px) {
    margin: 60px auto 0;
  }
  .diagnosis-btn-buy__text {
    color: var(--c-primary);
    font-size: 14px;
    font-weight: 550;
    line-height: 1;
    transition: color 0.3s ease;
  }
  .diagnosis-btn-buy__arrow {
    flex-shrink: 0;
    transition: transform 0.3s ease;
  }
  @media (hover: hover) and (pointer: fine) {
    &:hover {
      .diagnosis-btn-buy__text {
        opacity: 0.8;
      }
      .diagnosis-btn-buy__arrow {
        transform: translateY(3px);
      }
    }
  }
}

.DeepCleaning {
  position: relative;
  overflow: hidden;
  padding: 90px 0 80px;
  background-color: #1f1f21;
  &::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
      to bottom left,
      #0e5c80 0%,
      #0e5c80 0%,
      #202022 30%,
      #202022 100%
    );
    pointer-events: none;
    z-index: 0;
  }
  > * {
    position: relative;
    z-index: 1;
  }
  .deep-cleaning-title {
    text-align: center;
    margin-bottom: 40px;
    @media screen and (min-width: 1080px) {
      margin-bottom: 60px;
    }
    .deep-cleaning-catch {
      display: block;
      margin-bottom: 15px;
      font-size: 14px;
      @media screen and (min-width: 1080px) {
        font-size: 16px;
      }
    }
    .deep-cleaning-heading {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      color: #fff;
      font-size: 28px;
      font-weight: 500;
      line-height: 1.4;
      gap: 10px;
      @media screen and (min-width: 1080px) {
        font-size: 38px;
      }
      .deep-cleaning-heading-sub {
        font-size: 16px;
        font-weight: 500;
        @media screen and (min-width: 1080px) {
          font-size: 20px;
        }
      }
    }
  }
  .deep-cleaning-tab {
    .deep-cleaning-tab-nav {
      display: flex;
      flex-wrap: wrap;
      gap: 0 5px;
      width: min(1080px, 95%);
      margin: 0 auto;
      > label {
        flex: 1 1;
        background-color: var(--clr-dark);
        text-align: center;
        cursor: pointer;
        > input[type="radio"] {
          display: none;
        }
      }
      & label:has(:checked) {
        opacity: 1;
      }

	  @media screen and (min-width: 1080px) {
		gap: 0 10px;
	  }
    }
    .deep-cleaning-content-wrapper {
      width: 100%;
    }
    .deep-cleaning-content {
      display: none;
      width: 100%;
    }
  }
  .deep-cleaning-tab-ttl {
    background-color: var(--c-bg-light);
    padding: 28px 0 15px;
    display: grid;
    gap: 8px;
    letter-spacing: 0;
    color: var(--clr-dark);
    height: 100%;
    line-height: 1.25;
    position: relative;
    border-radius: 8px;
    font-size: 10px;
    @media screen and (min-width: 1080px) {
      padding: 20px 0;
	  border-radius: 15px;
      padding: 30px;
      font-size: 16px;
    }
    .deep-cleaning-num {
      position: absolute;
      left: 50%;
      top: -18px;
      transform: translateX(-50%);
      border: 1px solid white;
      background-color: var(--c-primary);
      color: #fff;
      font-size: 14px;
      font-weight: bold;
      line-height: 1;
      padding: 4px 8px;
      border-radius: 999px;
      width: 36px;
      height: 36px;
      display: flex;
      align-items: center;
      justify-content: center;
      @media screen and (min-width: 1080px) {
        left: 10px;
        top: 10px;
        transform: none;
        font-size: 16px;
      }
    }
    .deep-cleaning-clr {
      color: #010101;
      font-size: 14px;
      font-weight: 500;
      @media screen and (min-width: 1080px) {
        font-size: 24px;
      }
    }
  }
  & label:has(:checked) .presentation {
    background-color: #fff;
    color: var(--c-primary);
  }
  & label:has(:checked) .deep-cleaning-tab-ttl {
    background-color: var(--c-primary);
    color: #fff;
  }
  .deep-cleaning-clr {
    color: #fff;
  }
  & label:has(:checked) .deep-cleaning-clr {
    color: #fff;
  }
  .deep-cleaning-content {
    display: grid;
    gap: 40px;
    padding: 15px 0;
    background: var(--clr-dark);
    color: #fff;
  }
  .deep-cleaning-splide {
    position: relative;
    overflow: visible;
    padding-bottom: 20px;
    @media screen and (min-width: 1080px) {
      padding-bottom: 40px;
    }
    .splide__track {
      overflow: visible;
    }
    .splide__list.deep-cleaning-list {
      display: flex !important;
      align-items: stretch;
      height: 100%;
    }
    .splide__slide.deep-cleaning-detail {
      display: grid;
      border-radius: 20px;
      gap: 20px;
      flex-shrink: 0;
      width: 80%; /* Mobile width */
      box-sizing: border-box;
      height: 100%;
      align-self: stretch;
      margin: 0;
      padding: 15px 20px;
      @media screen and (min-width: 1080px) {
        grid-auto-flow: column;
        grid-template-columns: 600px 1fr;
        gap: 30px;
        padding: 30px;
        place-items: stretch;
        align-items: stretch;
        width: 1080px; /* PC width */
        min-width: 1080px;
        max-width: 1080px;
        height: 450px;
      }
      .deep-cleaning-content-image {
        align-self: center;
        border-radius: 8px;
        max-width: 100%;
        height: 175px;
        object-fit: cover;
        @media screen and (min-width: 1080px) {
          width: 100%;
          height: 100%;
          align-self: stretch;
        }
      }
      & video.deep-cleaning-content-image {
        object-fit: cover;
        height: 175px;
        width: 100%;
        @media screen and (min-width: 1080px) {
          height: 100%;
          align-self: stretch;
        }
      }
      .deep-cleaning-content-txt {
        align-self: center;
        justify-self: center;
        width: 100%;
        display: grid;
        gap: 20px;
        @media screen and (min-width: 1080px) {
          padding: 20px 0;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-self: stretch;
        }
      }
      .deep-cleaning-content-copy {
        font-size: 11px;
        line-height: 1.5;
        color: #fff;
        @media screen and (min-width: 1080px) {
          font-size: 13px;
        }
      }
      .deep-cleaning-content-ttl {
        font-size: 22px;
        font-weight: 500;
        line-height: 1.25;
        color: #fff;
        @media screen and (min-width: 1080px) {
          font-size: 26px;
        }
        .deep-cleaning-clr {
          background: linear-gradient(180deg, #41b0e2 0%, #1db7fe 100%);
          background-clip: text;
          -webkit-background-clip: text;
          -webkit-text-fill-color: transparent;
        }
      }
      .deep-cleaning-content-description {
        font-size: 14px;
        line-height: 1.6;
        opacity: 0.7;
        color: #fff;
        @media screen and (min-width: 1080px) {
          font-size: 16px;
        }
      }
      .deep-cleaning-model {
        display: flex;
        flex-wrap: wrap;
        white-space: nowrap;
        gap: 10px;
        align-items: center;
        & dt {
          font-size: 12px;
          color: #fff;
          opacity: 0.7;
          @media screen and (min-width: 1080px) {
            font-size: 16px;
          }
        }
        & dd {
          display: flex;
          padding: 10px 20px;
          align-items: flex-end;
          line-height: 1;
          gap: 10px;
          border-radius: 999px;
          border: 1px solid rgba(255, 255, 255, 0.1);
          background: rgba(255, 255, 255, 0.05);
          color: #fff;
          font-size: 14px;
          @media screen and (min-width: 1080px) {
            font-size: 16px;
            padding: 10px 20px 12px;
          }
        }
      }
    }

    /* ページネーションのスタイル */
    .splide__pagination {
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      gap: 6px;
      justify-content: center;
      align-items: center;
      list-style: none;
      padding: 0;
      margin: 0;
      z-index: 10;
      width: auto;
      @media screen and (min-width: 1080px) {
        gap: 8px;
      }
      .splide__pagination__page {
        width: 6px;
        height: 6px;
        background: rgba(255, 255, 255, 0.35);
        border: none;
        border-radius: 50%;
        padding: 0;
        margin: 0;
        cursor: pointer;
        transition: all 0.3s ease;
        opacity: 1;
        @media screen and (min-width: 1080px) {
          width: 7px;
          height: 7px;
        }
        &.is-active {
          background: #fff;
          width: 20px;
          border-radius: 3px;
          @media screen and (min-width: 1080px) {
            width: 24px;
            border-radius: 4px;
          }
        }
        &:hover {
          background: rgba(255, 255, 255, 0.6);
        }
      }
    }

    /* 矢印のスタイル */
    .splide__arrow {
      background: rgba(255, 255, 255, 0.1);
      border: 1px solid rgba(255, 255, 255, 0.3);
      width: 40px;
      height: 40px;
      border-radius: 50%;
      transition: all 0.3s ease;
      top: 30%;
      @media screen and (min-width: 1080px) {
        top: 50%;
        width: 60px;
        height: 60px;
      }
      & svg {
        fill: #ffffff;
        width: 20px;
        height: 20px;
      }
      &:hover {
        background: rgba(255, 255, 255, 0.2);
        border-color: rgba(255, 255, 255, 0.5);
      }
      .splide__arrow--prev {
        left: 5px;
        @media screen and (min-width: 1080px) {
          left: calc((100% - 1080px) / 2 - 80px);
        }
      }
      .splide__arrow--next {
        right: 5px;
        @media screen and (min-width: 1080px) {
          right: calc((100% - 1080px) / 2 - 80px);
        }
      }
    }
  }
}

.products-notes {
  padding: 30px 0;
  text-align: center;
  @media screen and (min-width: 1080px) {
    padding: 40px 0;
  }
  & p {
    font-size: 10px;
    color: rgba(26, 26, 26, 0.7);
    line-height: 1.6;
    text-align: left;
    @media screen and (min-width: 1080px) {
      font-size: 12px;
    }
  }
}

.c28-banners {
  padding: 40px 15px 40px;
  @media screen and (min-width: 1080px) {
    padding: 60px 0 60px;
  }
  .c28-banners__inner {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 1200px;
    margin: 0 auto;
    @media screen and (min-width: 1080px) {
      gap: 16px;
    }
  }
  .c28-banner {
    display: block;
    width: 100%;
    line-height: 0;
    border-radius: 8px;
    overflow: hidden;
    & img {
      width: 100%;
      height: auto;
      display: block;
    }
  }
}

/* C28 ローンチ済み：購入ボタン固定表示 */
[data-c28-launch] {
  display: revert !important;
  width: 100%;
}
[data-c28-pre] {
  display: none !important;
}

.product-price-v2-sale{
  font-size: 0.8em; 
}

/* セール時の割引後価格を赤表示 */
.product-price-v2-sale-wrap .product-price-v2-default {
  color: #cd3752;  
  font-weight: 700;
  font-size: 22px;
    @media screen and (min-width: 1080px) {
      font-size: 24px;
    }
  
}

/* eufy-products セールバナーヘッダー */
.eufy-products-sale-header {
  background: linear-gradient(90deg, #005D8E, #4297C4);
  color: #fff;
  text-align: center;
  padding: 10px 16px;
  position: relative;
  overflow: hidden;
  .eufy-products-sale-header__deco-left,
  .eufy-products-sale-header__deco-right {
    position: absolute;
    pointer-events: none;
    width: 60px;
    @media screen and (min-width: 1080px) {
      width: 100px;
    }
    & img {
      width: 100%;
      height: auto;
      display: block;
    }
  }
  .eufy-products-sale-header__deco-left {
    left: 0;
    bottom: -20%;
    @media screen and (min-width: 1080px) {
      left: calc(50% - 370px);
      bottom: -70%;
    }
  }
  .eufy-products-sale-header__deco-right {
    right: 0;
    top: -20%;
    @media screen and (min-width: 1080px) {
      right: calc(50% - 370px);
      top: -120%;
      width: 130px;
    }
  }
  @media screen and (min-width: 1080px) {
    padding: 12px 20px;
  }
  & p {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1px 6px;
    flex-wrap: wrap;
    margin: 0;
    font-size: 13px;
    line-height: 1.4;
    @media screen and (min-width: 1080px) {
      font-size: 16px;
      gap: 12px;
    }
  }
  .eufy-products-sale-header__category {
    font-size: 12px;
    font-weight: 500;
    padding-top: 2px;
    @media screen and (min-width: 1080px) {
      font-size: 14px;
    }
  }
  .eufy-products-sale-header__title {
    font-weight: 500;
    font-size: 18px;
    letter-spacing: 0.05em;
    @media screen and (min-width: 1080px) {
      font-size: 24px;
    }
  }
  .eufy-products-sale-header__deadline {
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    line-height: 1;
    @media screen and (min-width: 1080px) {
      font-size: 15px;
    }
    .small {
      font-size: 0.65em;
      background: #fff;
      width: 16px;
      height: 16px;
      line-height: 18px;
      padding-top: 1px;
      text-align: center;
      border-radius: 50%;
      color: #005D8E;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      @media screen and (min-width: 1080px) {
        font-size: 0.7em;
        width: 18px;
        height: 18px;
      }
    }
    .deadline__num {
      font-family: "Mont", "Noto Sans JP", sans-serif !important;
      font-size: 1.4em;
      font-weight: 400;
      margin-bottom: -0.2em;
    }
    .deadline__jp {
      font-size: 0.7em;
    }
  }
}

/* eufy-products インラインスライダー：セールバッジ（左下） */
.eufy-products-first-slide {
  position: relative;
}

.eufy-products-sale-badge {
  position: absolute;
  bottom: 85px;
  right: 15px;
  z-index: 10;
  width: 94px;
  pointer-events: none;
  @media screen and (min-width: 1080px) {
    bottom: 30px;
    right: 30px;
    left: auto;
    width: 160px;
  }
  & img {
    width: 100%;
    height: auto;
    display: block;
  }
}

/* バリエーション行の統一スタイル（Info + Products共通） */
.list-wrap .sep-left {
  display: flex;
  align-items: center;
  border-bottom: none;
  padding: 0;
  gap: 2px;
  font-size: 10px;
  flex-direction: column;
  @media screen and (min-width: 1080px) {
    flex-direction: row;
    gap: 3px;
    font-size: 12px;
  }
}
.list-wrap .sep-right {
  width: 80%;
  .lp-btns {
    width: 100%;
    flex-wrap: nowrap;
    gap: 6px;
    & li {
      flex: 1;
      min-width: 0;
    }
    .lp-btn,
    .lp-btn-amazon {
      width: 100%;
      flex-shrink: 1;
      min-width: 0;
      padding: 20px 8px;
      font-size: 11px;
      white-space: nowrap;
    }
  }
  @media screen and (min-width: 1080px) {
    width: 70%;
    .lp-btns .lp-btn,
    .lp-btns .lp-btn-amazon {
      font-size: 12px;

                  height: 45px;
            padding: 2px 12px 0;

    }
  }
}

/* -------------------------
 - coupon-banner
------------------------- */
.block-content > div:has(.coupon-banner),
.detbox__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.coupon-banner {
  display: flex;
  align-items: center;
  background: rgba(232, 232, 232, 0.7);
  mix-blend-mode: multiply;
  justify-content: space-between;
  border-radius: 6px;
  padding: 12px 14px;
  gap: 14px;
  @media screen and (min-width: 1080px) {
    padding: 16px 20px;
    gap: 20px;
    border-radius: 8px;
  }

  .coupon-banner__left {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    @media screen and (min-width: 1080px) {
      gap: 12px;
    }
  }

  .coupon-banner__icon {
    flex-shrink: 0;
    img {
      width: 28px;
      height: auto;
      display: block;
      @media screen and (min-width: 1080px) {
        width: 36px;
      }
    }
  }

  .coupon-banner__amount {
    display: flex;
    flex-direction: column;
    white-space: nowrap;
    text-align: center;
  }

  .coupon-banner__price {
    font-size: 20px;
    font-weight: 700;
    color: rgb(205, 55, 82);
    line-height: 1.1;
    @media screen and (min-width: 1080px) {
      font-size: 21px;
    }
  }

  .coupon-banner__price-unit {
    font-size: 10px;
    font-weight: 500;
    @media screen and (min-width: 1080px) {
      font-size: 12px;
      margin-left: 2px;
    }
  }

  .coupon-banner__deadline {
    font-size: 11px;
    color: rgb(205, 55, 82);
    line-height: 1;

    @media screen and (min-width: 1080px) {
      font-size: 12px; 
    }

 
  }

  .coupon-banner__right {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    padding-top: 2px;
    gap: 1.5px;
    @media screen and (min-width: 1080px) {
      gap: 2px;
    }
  }

  .coupon-banner__title {
    font-size: 13px;
    font-weight: 500;
    color: #1a1a1a;
    line-height: 1.4;

    @media screen and (min-width: 1080px) {
      font-size: 14px; 
    }
  }

  .coupon-banner__desc {
    font-size: 11px;
    color: #666;
    line-height: 1.3;
    @media screen and (min-width: 1080px) {
      font-size: 12px; 
    }
    sup {
      font-size: 70%;
    }
  }
}
.Recommend .item[data-href] {
  cursor: pointer;
}

/* ===== キャンペーンバナー（eufy-tvcm 直下） ===== */
.eufy-cp-banner {
  width: min(1200px, 90%);
  margin: 0 auto 50px;
  position: relative;
  z-index: 5;
  @media screen and (min-width: 1080px) {
    margin: 0 auto;
  }
}
@media screen and (min-width: 1080px) {
  .eufy-cp-banner {
    padding: 0 0 80px;
  }
}
.eufy-cp-banner .eufy-cp-banner__img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
}

/* ===== Info--c28 header 内 img-background 管理 ===== */
.Info--c28 .l-inr-lg .header {
  position: relative;
  overflow: hidden;
  margin-inline: calc(-1 * var(--inr-spacing)) !important;
}
.Info--c28 .l-inr-lg .header .img-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.Info--c28 .l-inr-lg .header .img-background img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: right center;
}
.Info--c28 .l-inr-lg .header .product {
  position: relative;
  z-index: 2;
  padding-left: var(--inr-spacing);
  padding-right: var(--inr-spacing);
}
@media screen and (min-width: 1080px) {
  .Info--c28 .l-inr-lg .header .product {
    padding-left: 80px;
    padding-right: 80px;
  }
}
@media (max-width: 1079px) {
  .Info--c28 .l-inr-lg .header .img-background {
    position: static;
    width: 100%;
    height: auto;
    text-align: center;
  }
  .Info--c28 .l-inr-lg .header .img-background img {
    width: auto;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    display: inline-block;
    margin: 0 auto;
  }
  .Info--c28 .l-inr-lg .header .product {
    padding-top: 20px !important;
  }
}


