.cmn-flow figure:has(figcaption) figcaption,
.cmn-flow figure:has(figcaption) .caption,
.cmn-flow .with-caption figcaption,
.cmn-flow .with-caption .caption,
.cmn-flow .cmn-with-caption .caption {
  font-feature-settings: "palt";
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.1em;
  background: var(--color-white);
  padding: 2.6666666667vw;
  flex: 1;
}

.cmn-flow figure:has(figcaption) figcaption:not(:has(.cmn-text_m)),
.cmn-flow figure:has(figcaption) .caption:not(:has(.cmn-text_m)),
.cmn-flow .with-caption figcaption:not(:has(.cmn-text_m)),
.cmn-flow .with-caption .caption:not(:has(.cmn-text_m)),
.cmn-flow .cmn-with-caption .caption:not(:has(.cmn-text_m)) {
  margin-block: calc((1em - 1lh) / 2);
}

main {
  background: url("../img/common/pattern_body.webp") 0 0/100vmax 100vmax repeat;
}

main:has(.profile .text-area) {
  overflow-x: hidden;
}

.cmn-header-l2 {
  background-image: url(../img/lineup/bg@sp.webp);
}

.cmn-header-l3::before {
  background-position: center center;
  background-image: url(../img/lineup/bg@sp.webp);
}

.cmn-img-1col.img-w600 {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.outline dl > div {
  --dt_width: 30.8vw;
  position: relative;
  display: flex;
}

.outline dl > div::before,
.outline dl > div::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  height: 2px;
}

.outline dl > div::before {
  width: 100%;
  background: rgba(var(--color-blue2-rgb), 0.4);
}

.outline dl > div::after {
  width: var(--dt_width);
  background: var(--color-blue2);
}

.outline dl > div:first-child dt,
.outline dl > div:first-child dd {
  padding-top: 0;
}

.outline dl dt {
  position: relative;
  width: var(--dt_width);
  padding: 18px 0;
}

.outline dl dd {
  position: relative;
  flex: 1;
  padding: 18px 0 18px 30px;
}

.benefits {
  border: 2px solid var(--color-blue2);
  padding: 2.4vw;
}

.shop_list ul {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
}

.shop_list li {
  position: relative;
  display: flex;
}

.shop_list li::before,
.shop_list li::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  height: 2px;
}

.shop_list li::before {
  width: 100%;
  background: rgba(var(--color-blue2-rgb), 0.4);
}

.shop_list li::after {
  width: var(--dt_width);
  background: var(--color-blue2);
}

.shop_list li:first-child dt,
.shop_list li:first-child dd {
  padding-top: 0;
}

.shop_list li a,
.shop_list li span {
  padding: 12px 0;
}

.shop_list li a {
  display: flex;
  align-items: center;
}

.shop_list li a::after {
  font-family: "icon" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\e903";
  color: var(--color-blue2);
  display: inline-block;
  vertical-align: middle;
  font-size: 0.7em;
  margin-left: 0.2em;
}

.sec-250722_01_01 .button_v2 {
  width: 85.7333333333vw;
  height: auto;
  margin: 0 auto;
}

.sec-250722_01_01 .button_v2 .button-text {
  font-size: 16px;
  padding: 4vw 8vw;
}

.sec-250722_01_02 ul.cmn-text_s:has(.cmn-textlink),
.sec-250722_03_01 ul.cmn-text_s:has(.cmn-textlink),
.sec-250722_04_01 ul.cmn-text_s:has(.cmn-textlink),
.sec-receive_01 ul.cmn-text_s:has(.cmn-textlink) {
  line-height: 1.3;
}

.sec-250722_01_02 .cmn-textlink,
.sec-250722_03_01 .cmn-textlink,
.sec-250722_04_01 .cmn-textlink,
.sec-receive_01 .cmn-textlink {
  overflow-wrap: break-word;
}

.sec-250722_01_02 .cmn-textlink[target=_blank]::after,
.sec-250722_03_01 .cmn-textlink[target=_blank]::after,
.sec-250722_04_01 .cmn-textlink[target=_blank]::after,
.sec-receive_01 .cmn-textlink[target=_blank]::after {
  margin-left: 1em;
}

.sec-250722_05_01 .cmn-card-l2 .cards.is-benefits,
.sec-250722_06_01 .cmn-card-l2 .cards.is-benefits,
.sec-250722_07_01 .cmn-card-l2 .cards.is-benefits {
  --aspect: 1024 / 768;
  --bg_position_l: top left;
  --bg_position_r: top right;
  grid-template-columns: 1fr;
}

.sec-250722_05_01 .cmn-card-l2 .cards.is-benefits .cmn-text_m_b .cmn-text_s,
.sec-250722_06_01 .cmn-card-l2 .cards.is-benefits .cmn-text_m_b .cmn-text_s,
.sec-250722_07_01 .cmn-card-l2 .cards.is-benefits .cmn-text_m_b .cmn-text_s {
  display: block;
  line-height: 1.25;
  margin: 0;
}

.cmn-flow {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6.9333333333vw;
}

.cmn-flow:not(:last-child) {
  margin-bottom: 4vw;
}

.cmn-flow picture img,
.cmn-flow figure img {
  width: 100%;
}

.cmn-flow figure:has(figcaption),
.cmn-flow .with-caption {
  display: flex;
  flex-direction: column;
}

.cmn-flow figure:has(figcaption) img {
  margin-bottom: calc(1.6vw + var(--leading-trim));
}

.cmn-flow .with-caption figure {
  margin-bottom: calc(1.6vw + var(--leading-trim));
}

.cmn-flow .cmn-with-caption {
  display: flex;
  flex-direction: column;
}

.cmn-flow .cmn-with-caption picture,
.cmn-flow .cmn-with-caption figure {
  margin-bottom: calc(1.6vw + var(--leading-trim));
}

.cmn-flow .cmn-with-caption picture img,
.cmn-flow .cmn-with-caption figure img {
  margin-bottom: 0;
}

.cmn-flow.with-arrow figure:not(:first-child),
.cmn-flow.with-arrow .with-caption:not(:first-child) {
  position: relative;
}

.cmn-flow.with-arrow figure:not(:first-child)::before,
.cmn-flow.with-arrow .with-caption:not(:first-child)::before {
  content: "";
  aspect-ratio: 31/60;
  background: url(../img/common/ic_flow.svg) no-repeat;
  background-size: contain;
  position: absolute;
  width: 4vw;
  left: 50%;
  transform: translateX(-50%) rotate(90deg);
  top: -7.3333333333vw;
}

.receive-anchor {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2vw;
}

.receive-anchor .button_v2 {
  width: 100%;
  height: auto !important;
}

.receive-anchor .button_v2 .button-text {
  font-size: 16px;
  padding: 2.8vw 6vw 2.8vw 4vw;
}

.receive-anchor .button_v2 .button-icon {
  transform: rotate(90deg);
  right: min(22.5px, 4vw);
}

@media screen and (min-width: 768px) {
  .cmn-flow figure:has(figcaption) figcaption.cmn-caption-1col,
  .cmn-flow figure:has(figcaption) .cmn-caption-1col.caption,
  .cmn-flow .with-caption figcaption.cmn-caption-1col,
  .cmn-flow .with-caption .cmn-caption-1col.caption,
  .cmn-flow .cmn-with-caption .cmn-caption-1col.caption {
    margin-left: calc(-100% - var(--gap));
  }

  .cmn-flow figure:has(figcaption) figcaption,
  .cmn-flow figure:has(figcaption) .caption,
  .cmn-flow .with-caption figcaption,
  .cmn-flow .with-caption .caption,
  .cmn-flow .cmn-with-caption .caption {
    line-height: 1.25;
    letter-spacing: 0.15em;
    font-size: 12px;
    padding: 20px;
  }

  .cmn-header-l2 {
    background-image: url(../img/lineup/bg@pc.webp);
  }

  .cmn-header-l3::before {
    background-image: url(../img/lineup/bg@pc.webp);
  }

  .cmn-img-1col.img-w600 {
    width: 600px;
  }

  .outline dl > div {
    --dt_width: 258px;
  }

  .benefits {
    padding: 18px;
  }

  .shop_list ul {
    grid-template-columns: 1fr 1fr;
    column-gap: 30px;
  }

  .sec-250722_01_01 .button_v2 {
    width: 544px;
  }

  .sec-250722_01_01 .button_v2 .button-text {
    padding: 21px 45px 21px 30px;
  }

  .sec-250722_03_01 .cmn-sec-l3-box2 {
    --padding1: 90px;
  }

  .sec-250722_03_01 .cmn-sec-l3-box2:has(.image) .type dl {
    padding-bottom: 60px;
  }

  .sec-250722_03_01 .cmn-sec-l3-box2:has(.image) .image {
    position: relative;
    z-index: 1;
    width: 48.2%;
    margin-top: -30px;
  }

  .sec-250722_03_01 .cmn-sec-l3-box2.type-even .ill {
    transform: translate(-40px, calc(-50% - 60px));
  }

  .sec-250722_05_01 .cmn-card-l2 .cards.is-benefits,
  .sec-250722_06_01 .cmn-card-l2 .cards.is-benefits,
  .sec-250722_07_01 .cmn-card-l2 .cards.is-benefits {
    grid-template-columns: 1fr 1fr;
  }

  .cmn-flow:not(:last-child) {
    margin-bottom: 30px;
  }

  .cmn-flow {
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
  }

  .cmn-flow figure:has(figcaption) img {
    margin-bottom: calc(12px + var(--leading-trim));
  }

  .cmn-flow .with-caption figure {
    margin-bottom: calc(12px + var(--leading-trim));
  }

  .cmn-flow .cmn-with-caption picture,
  .cmn-flow .cmn-with-caption figure {
    margin-bottom: calc(12px + var(--leading-trim));
  }

  .cmn-flow.with-arrow figure:not(:first-child)::before,
  .cmn-flow.with-arrow .with-caption:not(:first-child)::before {
    width: 20px;
    top: min(45px, 8vw);
    left: -25px;
    transform: none;
  }

  .receive-anchor {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }

  .receive-anchor .button_v2 .button-text {
    padding: 9px 30px 9px 15px;
  }

  .receive-anchor .button_v2 .button-icon {
    right: 15px;
  }
}

@media screen and (min-width: 768px) and (min-width: 1024px) {
  .cmn-flow.with-arrow figure:not(:first-child)::before,
  .cmn-flow.with-arrow .with-caption:not(:first-child)::before {
    top: 60px;
  }
}

@media screen and (max-width: 767.8px) {
  .cmn-container:has(.cmn-sec-l3) {
    width: auto;
  }
}