@import url(/css/lib/swiper-bundle.min.css);
/* ------------------------------------------------
 cpn_plans
------------------------------------------------ */
#cpn_plans .sheader .title .logo {
  margin-left: 0.35em;
  width: 5.75em;
  display: inline-block;
  vertical-align: -0.25em;
}
#cpn_plans .sbody {
  margin-top: 6em;
}
@media screen and (max-width: 640px) {
  #cpn_plans > .inner {
    width: 23em !important;
  }
}

/* ----------------------------
 .cpn_plan
------------------------------*/
#cpn_plans .cpn_plan {
  margin-top: 5.5em;
}
#cpn_plans .cpn_plan > .inner {
  color: #fff;
  background-color: var(--plan-color1);
  padding: 5em 5em;
}
#cpn_plans .cpn_plan .plan_header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
#cpn_plans .cpn_plan .plan_header .catch .copy {
  font-size: 2.4em;
  line-height: 1.7;
}
#cpn_plans .cpn_plan .plan_header .catch .name {
  font-size: 4.2em;
  font-weight: 600;
  margin: 0.1666666667em 0 0;
}
#cpn_plans .cpn_plan .plan_header .tags {
  display: grid;
  grid-template-columns: repeat(2, 18em);
  grid-template-rows: repeat(2, 4.2em);
  gap: 1.8em 3.2em;
}
#cpn_plans .cpn_plan .plan_header .tags li {
  color: var(--color-base);
  font-size: 1.7em;
  text-align: center;
  border-radius: 100px;
  background-color: #fff;
  align-content: center;
  white-space: nowrap;
}
#cpn_plans .cpn_plan .plan_kv {
  margin-top: 4em;
  display: grid;
  grid-template-columns: repeat(2, 53em);
  justify-content: space-between;
}
#cpn_plans .cpn_plan .plan_hotel {
  margin-top: 4em;
  display: grid;
  grid-template-columns: repeat(2, 53em);
  justify-content: space-between;
}
#cpn_plans .cpn_plan .plan_hotel > * {
  display: flex;
  flex-direction: column;
}
#cpn_plans .cpn_plan .plan_hotel > * p {
  font-size: 1.7em;
}
#cpn_plans .cpn_plan .plan_hotel .profile {
  line-height: 1;
  row-gap: 2.6em;
}
#cpn_plans .cpn_plan .plan_hotel .profile .copy {
  font-size: 2.6em;
}
#cpn_plans .cpn_plan .plan_hotel .profile .name {
  font-size: 3.5em;
}
#cpn_plans .cpn_plan .plan_hotel .profile .url a {
  text-decoration: underline;
  text-underline-offset: 0.3em;
  transition: opacity 0.6s ease, text-decoration-color 0.6s ease;
}
#cpn_plans .cpn_plan .plan_hotel .profile .url a:hover {
  text-decoration-color: transparent;
}
#cpn_plans .cpn_plan .plan_hotel .access .label {
  margin-bottom: 0.8em;
}
#cpn_plans .cpn_plan .plan_hotel .access .note {
  margin-top: 0.1666666667em;
}
#cpn_plans .cpn_plan .plan_body {
  color: var(--color-base);
  background-color: #fff;
  padding: 6.5em 4.5em 10em;
  position: relative;
}
#cpn_plans .cpn_plan .note.top {
  font-size: 1.4em;
  position: absolute;
  right: 5em;
  top: 2.8571428571em;
  z-index: 1;
}
#cpn_plans .cpn_plan .photos {
  position: absolute;
}
#cpn_plans .cpn_plan .timeline {
  position: relative;
}
#cpn_plans .cpn_plan .timeline::before {
  content: "";
  background-color: var(--color-base);
  position: absolute;
  left: 3em;
  top: 14.5em;
  width: 1px;
}
#cpn_plans .cpn_plan .timeline .day_title {
  font-size: 5.6em;
  margin: 0;
  margin-bottom: 0.5357142857em;
}
#cpn_plans .cpn_plan .timeline .item + .day_title {
  margin: 0.7142857143em 0 0.3214285714em 0.8928571429em;
}
#cpn_plans .cpn_plan .timeline .item {
  line-height: 1.7;
  padding-left: 9em;
  position: relative;
  min-height: 16.6em;
}
#cpn_plans .cpn_plan .timeline .item + .item {
  margin-top: 2.5em;
}
#cpn_plans .cpn_plan .timeline .item::before {
  content: "";
  background-color: var(--color-base);
  border-radius: 50%;
  width: 2em;
  aspect-ratio: 1/1;
  position: absolute;
  left: 2em;
  top: 2.4em;
}
#cpn_plans .cpn_plan .timeline .item .heading {
  font-size: 2.1em;
}
#cpn_plans .cpn_plan .timeline .item .heading strong {
  position: relative;
  z-index: 0;
}
#cpn_plans .cpn_plan .timeline .item .heading strong::before {
  content: "";
  background-color: var(--plan-color1);
  width: calc(100% + 0.4em);
  height: 100%;
  position: absolute;
  left: -0.2em;
  top: 0;
  opacity: 0.5;
  z-index: -1;
}
#cpn_plans .cpn_plan .timeline .item .detail {
  font-size: 1.7em;
  margin-top: 0.7058823529em;
}
#cpn_plans .cpn_plan .timeline .item .ph {
  width: 24.8em;
  position: absolute;
  top: 0.5em;
  right: 0;
}
#cpn_plans .cpn_plan .timeline .item .ph.l {
  width: 42.5em;
}
#cpn_plans .cpn_plan .timeline .item .ph.bottom {
  top: unset;
  bottom: 0;
}
#cpn_plans .cpn_plan .timeline .item .balloon {
  color: #fff;
  border-radius: 2em;
  background-color: var(--plan-color1);
  margin-top: 4.5em;
  padding: 2em 3em 1.5em;
  width: -moz-fit-content;
  width: fit-content;
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 0.5em 2.2em;
  position: relative;
  z-index: 1;
}
#cpn_plans .cpn_plan .timeline .item .balloon::before {
  content: "";
  border-radius: 1em;
  background-color: var(--plan-color1);
  width: 5.4em;
  aspect-ratio: 1/1;
  position: absolute;
  left: 25em;
  top: -2em;
  transform: skewY(45deg);
  z-index: -1;
}
#cpn_plans .cpn_plan .timeline .item .balloon .heading {
  font-size: 2.1em;
  letter-spacing: normal;
  line-height: 1;
  grid-column: 1/span 2;
  display: flex;
  align-items: center;
  justify-content: center;
  -moz-column-gap: 0.5714285714em;
       column-gap: 0.5714285714em;
}
#cpn_plans .cpn_plan .timeline .item .balloon .heading .logo.melt {
  background-color: #fff;
  width: 2.6666666667em;
  margin-right: 0.1em;
  display: inline-block;
  vertical-align: 0;
}
#cpn_plans .cpn_plan .timeline .item .balloon .heading::before, #cpn_plans .cpn_plan .timeline .item .balloon .heading::after {
  content: "";
  background: url(../../images/topics/mustbuycampaign2607/plan_travelset_star.svg) 0/contain no-repeat;
  width: 1.0476190476em;
  aspect-ratio: 1/1;
  display: inline-block;
}
#cpn_plans .cpn_plan .timeline .item .balloon .heading .s {
  font-size: 0.6666666667em;
}
#cpn_plans .cpn_plan .timeline .item .balloon .summary {
  font-size: 1.5em;
  line-height: 1.7;
  grid-row: 2/span 1;
  grid-column: 2/span 1;
  align-self: center;
}
#cpn_plans .cpn_plan .timeline .item .balloon .img {
  width: 9.6em;
  grid-row: 2/span 1;
  grid-column: 1/span 1;
}
#cpn_plans .cpn_plan .timeline .item:first-of-type {
  padding-bottom: 3em;
}
#cpn_plans .cpn_plan .timeline .item:first-of-type .ph {
  top: unset;
  bottom: 0;
}
#cpn_plans .cpn_plan .timeline .item:last-of-type {
  min-height: unset;
}

/* ----------------------------
 .plan_detail
------------------------------*/
#cpn_plans .cpn_plan .plan_detail {
  color: var(--color-base);
  background-color: var(--plan-color1);
  margin: 4.6em -4.5em -10em;
  padding: 4em 4.5em 3em;
}
#cpn_plans .cpn_plan .plan_detail .ttl {
  color: #fff;
  font-size: 1.8em;
  font-weight: 600;
  margin-bottom: 1em;
}
#cpn_plans .cpn_plan .plan_detail .scrollbar {
  width: 100%;
  padding-bottom: 1.4em;
}
@media screen and (min-width: 640.1px) {
  #cpn_plans .cpn_plan .plan_detail .ttl {
    margin-left: -2.5em;
  }
  #cpn_plans .cpn_plan .plan_detail .scrollbar {
    width: calc(100% + 9em);
    margin-left: -4.5em;
  }
}
#cpn_plans .cpn_plan .plan_detail .scrollbar .simplebar-track.simplebar-horizontal {
  height: 0.6em;
  background-color: var(--plan-detail-track);
  border-radius: 1em;
  left: 0;
  right: 0;
}
#cpn_plans .cpn_plan .plan_detail .scrollbar .simplebar-track.simplebar-horizontal .simplebar-scrollbar {
  top: 0;
  height: 100%;
}
#cpn_plans .cpn_plan .plan_detail .scrollbar .simplebar-scrollbar::before {
  background-color: var(--plan-color1);
  border-radius: 1em;
  opacity: 1;
  top: 0;
  bottom: 0;
  height: auto;
}
@media screen and (max-width: 640px) {
  #cpn_plans .cpn_plan .plan_detail .scrollbar .simplebar-scrollbar::before {
    top: 0.2em;
    bottom: 0.2em;
  }
}
#cpn_plans .cpn_plan .plan_detail .detail_table {
  display: grid;
  grid-template-columns: 18.7em auto;
  align-items: center;
  width: 110em;
  background-color: #fff;
  border-top: 1px solid var(--plan-color1);
}
#cpn_plans .cpn_plan .plan_detail .detail_table dt {
  color: var(--color-base);
  background-color: var(--plan-detail-label-bg);
  text-align: center;
  font-size: 1.6em;
  font-weight: 600;
  padding: 1.5em 1em;
  border-bottom: 1px solid var(--plan-color1);
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
}
#cpn_plans .cpn_plan .plan_detail .detail_table dd {
  background-color: #fff;
  font-size: 1.6em;
  line-height: 1.8;
  padding: 1.5em 2.5em;
  border-bottom: 1px solid var(--plan-color1);
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#cpn_plans .cpn_plan .plan_detail .detail_table dd .note {
  display: block;
  font-size: 0.75em;
  margin-top: 0.5em;
  opacity: 0.85;
}
#cpn_plans .cpn_plan .plan_detail .detail_table dd .note.note_inline {
  display: inline;
  margin-top: 0;
  margin-left: 0.5em;
}
@media screen and (max-width: 640px) {
  #cpn_plans .cpn_plan .plan_detail {
    margin: 2.6666666667em -1.9333333333em -1.9333333333em;
    padding: 2em 1.9333333333em 1.3333333333em;
  }
  #cpn_plans .cpn_plan .plan_detail .ttl {
    font-size: 0.9333333333em;
    margin-left: -2.0714285714em;
    margin-bottom: 0.8em;
  }
  #cpn_plans .cpn_plan .plan_detail .scrollbar {
    width: calc(100% + 3.8666666667em);
    margin-left: -1.9333333333em;
  }
  #cpn_plans .cpn_plan .plan_detail .detail_table {
    font-size: 0.5em;
    width: max-content;
  }
}
@media screen and (max-width: 640px) {
  #cpn_plans .cpn_plan {
    margin-top: 1.6666666667em;
  }
  #cpn_plans .cpn_plan > .inner {
    padding: 3.3333333333em 1.3333333333em 2.3333333333em;
  }
  #cpn_plans .cpn_plan .plan_header {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 1.6666666667em;
  }
  #cpn_plans .cpn_plan .plan_header .catch {
    text-align: center;
  }
  #cpn_plans .cpn_plan .plan_header .catch .copy {
    font-size: 0.8666666667em;
  }
  #cpn_plans .cpn_plan .plan_header .catch .name {
    font-size: 1.5333333333em;
    margin-top: 0.4347826087em;
  }
  #cpn_plans .cpn_plan .plan_header .tags {
    grid-template-columns: repeat(2, 7.6666666667em);
    grid-template-rows: repeat(2, 2em);
    gap: 0.4em;
  }
  #cpn_plans .cpn_plan .plan_header .tags li {
    font-size: 0.6666666667em;
  }
  #cpn_plans .cpn_plan .plan_kv {
    margin-top: 2em;
    grid-template-columns: 1fr;
    row-gap: 1.1666666667em;
  }
  #cpn_plans .cpn_plan .plan_hotel {
    margin-top: 2em;
    grid-template-columns: 1fr;
    gap: 1.6666666667em;
  }
  #cpn_plans .cpn_plan .plan_hotel > * {
    display: flex;
    flex-direction: column;
  }
  #cpn_plans .cpn_plan .plan_hotel > * p {
    font-size: 0.5666666667em;
  }
  #cpn_plans .cpn_plan .plan_hotel .profile {
    row-gap: 1em;
  }
  #cpn_plans .cpn_plan .plan_hotel .profile .copy {
    font-size: 0.8666666667em;
  }
  #cpn_plans .cpn_plan .plan_hotel .profile .name {
    font-size: 1.2666666667em;
  }
  #cpn_plans .cpn_plan .note.top {
    color: #fff;
    font-size: 0.6em;
    position: absolute;
    right: 0;
    top: calc(100% + 1em);
  }
  #cpn_plans .cpn_plan .plan_body {
    padding: 1.9333333333em 1.9333333333em 1.9333333333em;
    position: relative;
  }
  #cpn_plans .cpn_plan .timeline {
    position: relative;
  }
  #cpn_plans .cpn_plan .timeline::before {
    left: 0;
    top: 4.3333333333em;
    width: 1px;
  }
  #cpn_plans .cpn_plan .timeline .day_title {
    font-size: 1.2666666667em;
    margin-left: -0.3947368421em;
    margin-bottom: 0.7894736842em;
  }
  #cpn_plans .cpn_plan .timeline .item + .day_title {
    margin: 1.0526315789em 0 0.4736842105em 1.3157894737em;
  }
  #cpn_plans .cpn_plan .timeline .item {
    padding-left: 1.6666666667em;
    min-height: unset;
  }
  #cpn_plans .cpn_plan .timeline .item + .item {
    margin-top: 2.1333333333em;
  }
  #cpn_plans .cpn_plan .timeline .item::before {
    width: 0.6666666667em;
    left: -0.3333333333em;
    top: 1.1333333333em;
  }
  #cpn_plans .cpn_plan .timeline .item .heading {
    font-size: 0.9333333333em;
    margin-right: -1em;
  }
  #cpn_plans .cpn_plan .timeline .item .detail {
    font-size: 0.6666666667em;
    margin-top: 0.5em;
    margin-right: -1em;
    letter-spacing: normal;
  }
  #cpn_plans .cpn_plan .timeline .item .ph {
    margin-top: 1em;
    width: 8.2666666667em;
    width: 100%;
    position: static;
  }
  #cpn_plans .cpn_plan .timeline .item .ph.l {
    width: 100%;
  }
  #cpn_plans .cpn_plan .timeline .item .balloon {
    border-radius: 0.6666666667em;
    margin-top: 1em;
    padding: 0.6666666667em 0.8333333333em;
    gap: 0.5333333333em 0.6em;
  }
  #cpn_plans .cpn_plan .timeline .item .balloon::before {
    border-radius: 0.1666666667em;
    width: 1.1333333333em;
    left: 1.6666666667em;
    top: -0.3333333333em;
  }
  #cpn_plans .cpn_plan .timeline .item .balloon .heading {
    font-size: 0.8em;
    letter-spacing: normal;
    margin-right: 0;
    text-align: center;
    line-height: 1.4;
    display: inline-flex;
    gap: 0;
  }
  #cpn_plans .cpn_plan .timeline .item .balloon .heading .logo.melt {
    width: 2.8333333333em;
  }
  #cpn_plans .cpn_plan .timeline .item .balloon .heading::before, #cpn_plans .cpn_plan .timeline .item .balloon .heading::after {
    width: 1.0833333333em;
  }
  #cpn_plans .cpn_plan .timeline .item .balloon .heading > p {
    flex: 1;
    width: -moz-fit-content;
    width: fit-content;
    flex-shrink: 1;
  }
  #cpn_plans .cpn_plan .timeline .item .balloon .heading .s {
    font-size: 0.5833333333em;
    display: inline-block;
  }
  #cpn_plans .cpn_plan .timeline .item .balloon .summary {
    font-size: 0.6em;
    letter-spacing: normal;
  }
  #cpn_plans .cpn_plan .timeline .item .balloon .img {
    width: 3.8666666667em;
  }
  #cpn_plans .cpn_plan .timeline .item:first-of-type {
    padding-bottom: 1em;
    padding-bottom: 0;
  }
  #cpn_plans .cpn_plan .timeline .item:first-of-type .ph {
    top: unset;
    bottom: 0;
  }
  #cpn_plans .cpn_plan .timeline .item:last-of-type {
    min-height: unset;
  }
}

/* ----------------------------
 open/close
------------------------------*/
#cpn_plans .cpn_plan .plan_ctrl {
  text-align: center;
  margin-top: 3.5em;
  margin-bottom: 3.5em;
}
#cpn_plans .cpn_plan .plan_ctrl .btn {
  color: #fff !important;
  border-color: #fff;
}
#cpn_plans .cpn_plan .plan_ctrl .btn::before, #cpn_plans .cpn_plan .plan_ctrl .btn::after {
  content: "";
  -webkit-mask: none;
          mask: none;
  border-radius: 1px;
  background-color: #fff !important;
  width: 1.4em;
  height: 1px;
  aspect-ratio: unset;
  position: absolute;
  right: 2em;
  top: 50%;
  transition: transform 0.4s ease;
}
#cpn_plans .cpn_plan .plan_ctrl .btn::before {
  transform: rotate(-90deg);
}
#cpn_plans .cpn_plan .plan_ctrl .btn.open::before {
  transform: rotate(0deg);
}
#cpn_plans .cpn_plan .plan_body {
  display: none;
}
#cpn_plans .cpn_plan.open .btn::before {
  transform: rotate(0deg);
}
@media screen and (max-width: 640px) {
  #cpn_plans .cpn_plan .plan_ctrl {
    margin-top: 2em;
    margin-bottom: 1.6666666667em;
  }
  #cpn_plans .cpn_plan .plan_ctrl .btn::before, #cpn_plans .cpn_plan .plan_ctrl .btn::after {
    width: 0.6666666667em;
    right: 0.6666666667em;
  }
}

/* ----------------------------
 plan_nature
------------------------------*/
#plan_nature {
  --plan-color1: var(--color-nature1);
  --plan-color2: var(--color-nature2);
  --plan-detail-label-bg: #FDEEEE;
  --plan-detail-track: #F3D9D6;
}
@media screen and (min-width: 768.1px) {
  #plan_nature .timeline::before {
    height: calc(100% - 21.5em);
  }
}
@media screen and (max-width: 640px) {
  #plan_nature .timeline::before {
    height: calc(100% - 20em);
  }
}

/* ----------------------------
 plan_sauna
------------------------------*/
#cpn_plans #plan_sauna {
  --plan-color1: var(--color-sauna1);
  --plan-color2: var(--color-sauna2);
  --plan-detail-label-bg: #F1EFF6;
  --plan-detail-track: #DDD9EB;
}
@media screen and (min-width: 768.1px) {
  #cpn_plans #plan_sauna .timeline::before {
    height: calc(100% - 24.5em);
  }
  #cpn_plans #plan_sauna .timeline .item:nth-of-type(3) {
    min-height: 20.2em;
  }
}
@media screen and (max-width: 640px) {
  #cpn_plans #plan_sauna .timeline::before {
    height: calc(100% - 20em);
  }
}

/* ----------------------------
 plan_esthetic
------------------------------*/
#cpn_plans #plan_esthetic {
  --plan-color1: var(--color-esthetic1);
  --plan-color2: var(--color-esthetic2);
  --plan-detail-label-bg: #FDEFD3;
  --plan-detail-track: #FBD997;
}
@media screen and (min-width: 768.1px) {
  #cpn_plans #plan_esthetic .timeline::before {
    height: calc(100% - 22.5em);
  }
  #cpn_plans #plan_esthetic .timeline .item + .day_title {
    margin-top: 0;
  }
  #cpn_plans #plan_esthetic .timeline .item:nth-of-type(1) {
    padding-bottom: 0;
    min-height: unset;
  }
  #cpn_plans #plan_esthetic .timeline .item:nth-of-type(2) {
    margin-top: 10em;
    min-height: 20em;
  }
  #cpn_plans #plan_esthetic .timeline .item:nth-of-type(2) .ph {
    margin-top: -8em;
  }
  #cpn_plans #plan_esthetic .timeline .item:nth-of-type(4) {
    margin-top: 6em;
    min-height: 45em;
  }
  #cpn_plans #plan_esthetic .timeline .item:nth-of-type(4) .ph:first-of-type {
    top: -2.5em;
  }
}
@media screen and (max-width: 640px) {
  #cpn_plans #plan_esthetic .timeline::before {
    height: calc(100% - 20em);
  }
}

/*----- topics_mustbuycampaign2607 -----*/
/* ------------------------------------------------
 base
------------------------------------------------ */
#article {
  --color-base: #876B71;
  --color-nature1: #f3aca9;
  --color-nature2: #e89195;
  --color-sauna1: #b4aad2;
  --color-sauna2: #9384bc;
  --color-esthetic1: #f5aa18;
  --color-esthetic2: #ef8200;
  font-weight: 600;
}
#article .inner {
  padding: 0;
  width: auto;
}
#article > .inner {
  width: 100em;
}
@media screen and (min-width: 768.1px) {
  #article .section.wide {
    margin-left: -10em;
    margin-right: -10em;
  }
  #article .btn_back {
    margin-top: 10em;
    margin-bottom: 10em;
  }
}
@media screen and (max-width: 640px) {
  #article > .inner {
    width: auto;
    width: 23em;
  }
  #article .btn_back {
    margin-top: 3.3333333333em;
    margin-bottom: 3.3333333333em;
  }
}

/* ----------------------------
 section common
------------------------------*/
.section > .inner {
  padding: 0;
  width: auto;
}
.section .logo.melt {
  background-color: var(--color-base);
  width: 11.6em;
  aspect-ratio: 188/66;
  display: block;
  -webkit-mask: url(../../images/common/header_logo.svg) center no-repeat;
          mask: url(../../images/common/header_logo.svg) center no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
}
.section .link_more a, .section .link_more .btn {
  color: var(--color-base) !important;
  font-size: 1em;
  font-family: inherit;
  background-color: transparent;
  padding: 0;
  min-width: 31.5em;
  height: 5.5em;
  align-content: center;
}
.section .link_more a::after, .section .link_more .btn::after {
  -webkit-mask-image: url(../../images/common/link_arrow_round.svg);
          mask-image: url(../../images/common/link_arrow_round.svg);
  width: 1em;
  aspect-ratio: 10/14;
  background-color: var(--color-base) !important;
  top: calc(50% - 0.7em);
}
.section .link_more a > .txt, .section .link_more .btn > .txt {
  color: inherit !important;
  font-size: 2em !important;
}
@media screen and (any-hover: hover) {
  .section .link_more a:hover, .section .link_more .btn:hover {
    background-color: rgba(255, 255, 255, 0.2) !important;
    opacity: 0.8;
  }
}
.section .link_more a.primary, .section .link_more .btn.primary {
  background-color: var(--color-base) !important;
  color: #fff !important;
}
.section .link_more a.primary::after, .section .link_more .btn.primary::after {
  background-color: #fff !important;
}
@media screen and (max-width: 640px) {
  .section .link_more a, .section .link_more .btn {
    min-width: 14.3333333333em;
    height: 2.6666666667em;
  }
  .section .link_more a::after, .section .link_more .btn::after {
    width: 0.4666666667em;
    top: calc(50% - 0.2666666667em);
  }
  .section .link_more a > .txt, .section .link_more .btn > .txt {
    font-size: 0.9333333333em !important;
  }
  .section .note {
    font-size: 0.6em;
  }
}

/* ------------------------------------------------
 basic_style
------------------------------------------------ */
#article .section.basic_style {
  margin-top: 14em;
}
#article .section.basic_style .sheader {
  text-align: center;
}
#article .section.basic_style .sheader .title {
  font-size: 4em;
  font-weight: 600;
}
#article .section.basic_style .sbody {
  margin-top: 6em;
}
#article .section.basic_style .sbody .notes {
  width: 84em;
}
@media screen and (min-width: 640.1px) {
  #article #cpn_receipt .notes,
  #article #cpn_winner .notes {
    width: auto;
  }
}
#article .section.basic_style .sbody .notes li {
  font-size: 1.8em;
  line-height: 1.7;
  text-indent: -1em;
  padding-left: 1em;
}
#article .section.basic_style .sbody .notes li + li {
  margin-top: 0.1666666667em;
}
@media screen and (max-width: 640px) {
  #article .section.basic_style {
    margin-top: 4.6666666667em;
  }
  #article .section.basic_style > .inner {
    width: 20.3333333333em;
  }
  #article .section.basic_style .sheader {
    margin-bottom: 0.6666666667em;
  }
  #article .section.basic_style .sheader .title {
    font-size: 1.3333333333em;
  }
  #article .section.basic_style .sbody {
    margin-top: 1.6666666667em;
  }
  #article .section.basic_style .sbody .notes {
    width: auto;
  }
  #article .section.basic_style .sbody .notes li {
    font-size: 0.6666666667em;
  }
  #article .section.basic_style .sbody .notes li + li {
    margin-top: 0.2em;
  }
}

/* ------------------------------------------------
 article
------------------------------------------------ */
#article {
  color: var(--color-base);
}
#article h1 {
  font-size: 3.8em;
  text-align: center;
  line-height: 1.7;
  margin-bottom: 1.6842105263em;
}
#article h1 .logo {
  margin: 0 auto;
  margin-bottom: 1.3157894737em;
  width: 12.8421052632em;
  display: block;
}
@media screen and (min-width: 768.1px) {
  #article h1 {
    padding-top: 1.0526315789em;
  }
  #article h1 .logo img {
    display: block;
    width: 100%;
  }
}
#article h2 {
  margin: 0;
}
#article .txt {
  font-size: 1em;
}
@media screen and (max-width: 640px) {
  #article h1 {
    font-size: 1.2em;
    margin-bottom: 1.7777777778em;
    padding-top: 2.0833333333em;
  }
  #article h1 .logo {
    margin: 0 auto;
    margin-bottom: 1.3888888889em;
    width: 13.5555555556em;
    display: block;
  }
  #article #kv {
    margin-left: -1em;
    margin-right: -1em;
  }
}

/* ------------------------------------------------
cpn_detail
------------------------------------------------ */
#cpn_detail {
  background-color: #F9DEDD;
  margin-top: 8em;
}
#cpn_detail > .inner {
  padding: 3.5em 0 4.5em;
}
#cpn_detail .sheader .title {
  font-size: 1em;
  width: 61.9em;
  margin: 0 auto;
}
#cpn_detail .sbody {
  margin: 2em auto 0;
  width: 60em;
}
#cpn_detail .sbody .info_table {
  display: grid;
  grid-template-columns: 13.5em auto;
  align-items: start;
  gap: 1.8em;
}
#cpn_detail .sbody .info_table dt {
  font-size: 1.45em;
  font-weight: 600;
  text-align: center;
  white-space: nowrap;
  border: 1px solid currentColor;
  border-radius: 100px;
  padding: 0.3em 1.2em;
  padding: 0.3em 0;
}
#cpn_detail .sbody .info_table dd {
  font-size: 2.1em;
  font-weight: 600;
  line-height: 1.7;
}
@media screen and (min-width: 640.1px) {
  #cpn_detail .sbody .info_table dd.nowrap {
    white-space: nowrap;
  }
}
#cpn_detail .sbody .info_table .item_img {
  grid-column: 1/-1;
  text-align: center;
  margin-top: 1em;
  margin-bottom: 0.1714285714em;
}
#cpn_detail .sbody .info_table .item_img img {
  width: 40.5%;
  height: auto;
  display: inline-block;
  vertical-align: bottom;
}
#cpn_detail .sbody .info_table .note {
  grid-column: 1/-1;
}
#cpn_detail .sbody .note {
  font-size: 1.5em;
  text-align: left;
  margin-top: 1em;
}
#cpn_detail .sbody .note li + li {
  margin-top: 0.3em;
}
#cpn_detail aside {
  margin-top: 2.5em;
}
#cpn_detail aside .link_more {
  display: flex;
  justify-content: center;
  -moz-column-gap: 2em;
       column-gap: 2em;
}
@media screen and (max-width: 640px) {
  #cpn_detail {
    margin-top: 3.6666666667em;
  }
  #cpn_detail > .inner {
    padding: 1.5em 0 2em;
  }
  #cpn_detail .sheader .title {
    width: 17.5em;
  }
  #cpn_detail .sbody {
    margin-top: 1.6666666667em;
    width: auto;
  }
  #cpn_detail .sbody .info_table {
    text-align: center;
    display: block;
  }
  #cpn_detail .sbody .info_table dt {
    font-size: 0.9333333333em;
    padding: 0;
    margin: 0 auto;
    width: 10.7142857143em;
    height: 2.1428571429em;
    align-content: center;
  }
  #cpn_detail .sbody .info_table dt + dd {
    margin-top: 0.7142857143em;
  }
  #cpn_detail .sbody .info_table dd {
    font-size: 0.9333333333em;
  }
  #cpn_detail .sbody .info_table dd + dt,
  #cpn_detail .sbody .info_table .note + dt {
    margin-top: 1.0714285714em;
  }
  #cpn_detail .sbody .info_table .item_img {
    margin-top: 1em;
    margin-bottom: 4.8vw;
  }
  #cpn_detail .sbody .info_table .item_img img {
    width: 43.68vw;
  }
  #cpn_detail .sbody .info_table .note {
    font-size: 0.6em;
    text-align: center;
    margin-top: 0;
  }
  #cpn_detail .sbody .note {
    font-size: 0.6em;
    text-align: center;
    margin-top: 1.9444444445em;
  }
  #cpn_detail aside {
    margin-top: 2em;
  }
  #cpn_detail aside .link_more {
    flex-direction: column;
    align-items: center;
    row-gap: 0.8em;
  }
}

/* ------------------------------------------------
 letter
------------------------------------------------ */
#letter {
  margin-top: 12.5em;
}
#letter .sbody {
  position: relative;
}
#letter .sbody .img {
  margin: 0 -13.9em;
  margin: 0 auto;
  width: 81.88em;
}
#letter .sbody .txt {
  text-align: center;
  padding-top: 8em;
  width: 100%;
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  box-sizing: border-box;
  opacity: 0;
  transition: opacity 2.4s ease;
}
#letter .sbody .txt.is-show {
  opacity: 1;
}
#letter .sbody .txt .logo.travel {
  margin: 0 auto 5.5em;
  width: 30.96em;
}
#letter .sbody .txt .logo.melt {
  margin: 5.5em auto 0;
  width: 17.4em;
  display: block;
}
@media (prefers-reduced-motion: reduce) {
  #letter .sbody .txt {
    transition: none;
  }
}
#letter .sbody .txt p {
  font-size: 1.8em;
  line-height: 2;
  letter-spacing: 0.2em;
}
@media screen and (max-width: 640px) {
  #letter {
    margin-top: 5.3333333333em;
  }
  #letter .sbody .img {
    margin: 0 auto;
  }
  #letter .sbody .img {
    margin: 0 -0.1666666667em;
    width: 23.3333333333em;
  }
  #letter .sbody .txt {
    padding-top: 1.6666666667em;
    padding-bottom: 2.8333333333em;
  }
  #letter .sbody .txt .logo.travel {
    margin-bottom: 1em;
    width: 7.1333333333em;
  }
  #letter .sbody .txt .logo.melt {
    margin-top: 1em;
    width: 3.9333333333em;
  }
  #letter .sbody .txt p {
    font-size: 0.6666666667em;
    line-height: 1.8;
    letter-spacing: normal;
  }
}

/* ------------------------------------------------
 cpn_menu
------------------------------------------------ */
#cpn_menu .sbody .plan_list {
  display: flex;
  justify-content: center;
  -moz-column-gap: 1.7em;
       column-gap: 1.7em;
}
#cpn_menu .sbody .plan_list .plan {
  width: 38.5em;
}
#cpn_menu .sbody .plan_list .plan .flame {
  margin: 0 auto;
  width: 38.5em;
  position: relative;
  overflow: hidden;
}
#cpn_menu .sbody .plan_list .plan .flame::before, #cpn_menu .sbody .plan_list .plan .flame::after,
#cpn_menu .sbody .plan_list .plan .flame .inner::before, #cpn_menu .sbody .plan_list .plan .flame .inner::after {
  content: "";
  border-radius: 50%;
  border: 1px solid var(--plan-border-color);
  background-color: #f9e6df;
  width: 4em;
  aspect-ratio: 1/1;
  position: absolute;
  z-index: 1;
  box-sizing: border-box;
}
#cpn_menu .sbody .plan_list .plan .flame::before {
  left: -2em;
  top: -2em;
}
#cpn_menu .sbody .plan_list .plan .flame::after {
  right: -2em;
  top: -2em;
}
#cpn_menu .sbody .plan_list .plan .inner {
  border: 1px solid var(--plan-border-color);
  background-color: #fff;
  padding-top: 3em;
  display: block;
  box-sizing: border-box;
}
#cpn_menu .sbody .plan_list .plan .inner::before {
  left: -2em;
  bottom: -2em;
}
#cpn_menu .sbody .plan_list .plan .inner::after {
  right: -2em;
  bottom: -2em;
}
@media screen and (any-hover: hover) {
  #cpn_menu .sbody .plan_list .plan .inner img {
    transition: transform 0.4s ease;
  }
  #cpn_menu .sbody .plan_list .plan .inner:hover {
    text-decoration: none;
  }
  #cpn_menu .sbody .plan_list .plan .inner:hover img {
    transform: scale(1.1);
  }
}
#cpn_menu .sbody .plan_list .plan .desc {
  font-size: 2.4em;
  font-weight: 600;
  text-align: center;
  line-height: 1.7;
}
#cpn_menu .sbody .plan_list .plan .img {
  margin: 2em auto 0;
  width: 33.4em;
  aspect-ratio: 334/204;
  overflow: hidden;
}
#cpn_menu .sbody .plan_list .plan .note {
  font-size: 0.7em;
  text-align: right;
  margin: 0.5714285714em auto 0;
  width: 47.7142857143em;
  display: block;
}
#cpn_menu .sbody .plan_list .plan .label {
  font-size: 2.8em;
  font-weight: 600;
  color: #fff;
  text-align: center;
  padding: 0.5714285714em 0;
  margin-top: 0.5em;
}
#cpn_menu .sbody .plan_list .plan.nature {
  --plan-border-color: var(--color-nature2);
}
#cpn_menu .sbody .plan_list .plan.nature .label {
  background-color: var(--color-nature1);
}
#cpn_menu .sbody .plan_list .plan.sauna {
  --plan-border-color: var(--color-sauna2);
}
#cpn_menu .sbody .plan_list .plan.sauna .label {
  background-color: var(--color-sauna1);
}
#cpn_menu .sbody .plan_list .plan.esthetic {
  --plan-border-color: var(--color-esthetic2);
}
#cpn_menu .sbody .plan_list .plan.esthetic .label {
  background-color: var(--color-esthetic1);
}
@media screen and (min-width: 768.1px) {
  #cpn_menu .plan_list li:nth-child(n+4) {
    display: none;
  }
}
@media screen and (max-width: 640px) {
  #cpn_menu > .inner {
    width: 25em !important;
    margin-left: -1em;
    margin-right: -1em;
  }
  #cpn_menu .sheader .title {
    letter-spacing: 0.1em;
  }
  #cpn_menu .sbody .plan_list {
    display: block;
    justify-content: unset;
    column-gap: 0;
  }
  #cpn_menu .sbody .plan_list li.plan {
    width: 81.3333333333vw;
    margin: 0 auto;
  }
  #cpn_menu .sbody .plan_list li.plan + li {
    margin-top: 4vw;
  }
  #cpn_menu .sbody .plan_list li.plan .flame {
    width: 100%;
    height: 31.3333333333vw;
    margin: 0;
  }
  #cpn_menu .sbody .plan_list li.plan .flame::before, #cpn_menu .sbody .plan_list li.plan .flame::after,
  #cpn_menu .sbody .plan_list li.plan .flame .inner::before, #cpn_menu .sbody .plan_list li.plan .flame .inner::after {
    width: 5.3333333333vw;
  }
  #cpn_menu .sbody .plan_list li.plan .flame::before {
    left: -2.6666666667vw;
    top: -2.6666666667vw;
  }
  #cpn_menu .sbody .plan_list li.plan .flame::after {
    right: -2.6666666667vw;
    top: -2.6666666667vw;
  }
  #cpn_menu .sbody .plan_list li.plan .inner {
    height: 100%;
    position: relative;
    padding: 0;
  }
  #cpn_menu .sbody .plan_list li.plan .inner::before {
    left: -2.6666666667vw;
    bottom: -2.6666666667vw;
  }
  #cpn_menu .sbody .plan_list li.plan .inner::after {
    right: -2.6666666667vw;
    bottom: -2.6666666667vw;
  }
  #cpn_menu .sbody .plan_list li.plan .desc {
    position: absolute;
    left: 6.4vw;
    top: 7.2vw;
    margin: 0;
    font-size: 2.9333333333vw;
    line-height: 1.6;
    letter-spacing: 0.1em;
    text-align: left;
  }
  #cpn_menu .sbody .plan_list li.plan .label {
    position: absolute;
    left: 5.8666666667vw;
    top: 18.2666666667vw;
    margin: 0;
    padding: 0;
    font-size: 4.8vw;
    line-height: 1;
    letter-spacing: 0.1em;
    text-align: left;
    background-color: transparent;
  }
  #cpn_menu .sbody .plan_list li.plan .img {
    position: absolute;
    left: 40.6666666667vw;
    top: 5.8666666667vw;
    margin: 0;
    width: 33.3333333333vw;
    height: 19.6vw;
    aspect-ratio: auto;
  }
  #cpn_menu .sbody .plan_list li.plan .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  #cpn_menu .sbody .plan_list li.plan .note {
    position: absolute;
    left: 58.9333333333vw;
    top: 26.5333333333vw;
    margin: 0;
    width: auto;
    font-size: 2.1333333333vw;
    letter-spacing: 0.1em;
    text-align: left;
  }
  #cpn_menu .sbody .plan_list li.plan.nature .label {
    color: #f2a4a0;
    background-color: transparent;
  }
  #cpn_menu .sbody .plan_list li.plan.sauna .label {
    color: #ada1d0;
    background-color: transparent;
  }
  #cpn_menu .sbody .plan_list li.plan.esthetic .label {
    color: #f5aa18;
    background-color: transparent;
  }
}

/* ----------------------------
 cpn_menu（カルーセル廃止：3枚を静的表示）
------------------------------*/
#cpn_menu .swiper {
  overflow: visible;
}
#cpn_menu .plan_list li.plan {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
#cpn_menu .plan_list li.plan.is-show {
  opacity: 1;
  transform: translateY(0);
}
#cpn_menu .plan_list li.plan:nth-child(2).is-show {
  transition-delay: 0.2s;
}
#cpn_menu .plan_list li.plan:nth-child(3).is-show {
  transition-delay: 0.4s;
}
@media (prefers-reduced-motion: reduce) {
  #cpn_menu .plan_list li.plan {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ------------------------------------------------
 reports
------------------------------------------------ */
#reports .sbody {
  margin-left: auto;
  margin-right: auto;
  width: 63em;
}
#reports .link_more {
  margin-top: 4em;
  display: flex;
  justify-content: space-between;
}
#reports .link_more .basic_btn {
  min-width: 30em;
}
#reports .coming_soon {
  margin-top: 0.6666666667em;
  text-align: center;
  font-size: 3.8em;
  letter-spacing: 0.08em;
  color: var(--color-base);
}
@media screen and (max-width: 640px) {
  #reports .sbody {
    width: auto;
  }
  #reports .link_more {
    margin-top: 1.5em;
    flex-direction: column;
    row-gap: 0.8333333333em;
    align-items: center;
  }
  #reports .link_more .basic_btn {
    min-width: 14.3333333333em;
  }
  #reports .coming_soon {
    margin-top: 0.75em;
    font-size: 1.4666666667em;
  }
}

/* ------------------------------------------------
 travelset
------------------------------------------------ */
#travelset > .inner {
  background-color: rgba(255, 255, 255, 0.5);
  padding: 8em 7.5em;
}
#travelset .sheader .title .logo {
  margin-right: 0.1em;
  width: 2.5em;
  display: inline-block;
}
#travelset .sbody .img {
  margin: 0 auto;
  width: 69.8em;
  position: relative;
}
#travelset .sbody .img .badge {
  width: 11em;
  position: absolute;
  right: -2.2em;
  top: -2.4em;
}
#travelset .sbody .txt .summary {
  font-size: 2.2em;
  letter-spacing: 0.1em;
  line-height: 1.8;
  margin-top: 2em;
}
#travelset .sbody .txt .note {
  font-size: 1.4em;
  margin-top: 1.4285714286em;
}
#travelset .sbody .campaign {
  text-align: center;
  margin-top: 5em;
}
#travelset .sbody .campaign .heading {
  font-size: 3.8em;
}
#travelset .sbody .campaign .heading .logo.melt {
  display: inline-block;
  width: 2.85em;
  vertical-align: baseline;
  margin: 0 0.05em;
}
#travelset .sbody .campaign .detail {
  font-size: 2.2em;
  line-height: 1.75;
  margin-top: 1.3636363636em;
}
#travelset .link_more {
  margin-top: 4em;
  display: flex;
  justify-content: space-between;
}
#travelset .link_more .basic_btn {
  min-width: 30em;
}
@media screen and (max-width: 640px) {
  #travelset > .inner {
    padding: 2.3333333333em 1.6666666667em;
  }
  #travelset .sheader .title {
    font-size: 1.2em;
  }
  #travelset .sheader .title .logo {
    margin-right: 0.1111111111em;
    width: 3em;
  }
  #travelset .sbody .img {
    width: 100%;
  }
  #travelset .sbody .img .badge {
    width: 2.6666666667em;
    position: absolute;
    right: -0.7333333333em;
    top: -0.8em;
  }
  #travelset .sbody .txt .summary {
    font-size: 0.8em;
    margin-top: 1.8333333333em;
  }
  #travelset .sbody .txt .note {
    font-size: 0.6em;
    margin-top: 1.6666666667em;
  }
  #travelset .sbody .campaign {
    text-align: center;
    margin-top: 2.3333333333em;
  }
  #travelset .sbody .campaign .heading {
    font-size: 1em;
    font-weight: bold;
    line-height: 1.6;
  }
  #travelset .sbody .campaign .detail {
    font-size: 0.8em;
    margin-top: 0.8333333333em;
  }
  #travelset .link_more {
    margin-top: 1.3333333333em;
    display: flex;
    justify-content: space-between;
  }
  #travelset .link_more .basic_btn {
    min-width: 10em;
  }
}

/* ------------------------------------------------
 cpn_items
------------------------------------------------ */
#cpn_items .link_more {
  margin-top: 4em;
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 2em;
}
#cpn_items .link_more .basic_btn {
  min-width: 22em;
}
#cpn_items .store_btns .basic_btn:first-child .txt {
  position: relative;
  left: -0.4em;
}
@media screen and (min-width: 768.1px) {
  #cpn_items .sbody {
    margin-top: 7em;
  }
  #cpn_items .sbody .note {
    font-size: 1.8em;
    text-align: center;
    margin-top: 2.7777777778em;
  }
}
@media screen and (max-width: 640px) {
  #cpn_items .sbody {
    margin-left: auto;
    margin-right: auto;
    width: 20.2em;
  }
  #cpn_items .sbody .note {
    text-indent: -1em;
    padding-left: 1em;
    margin-top: 2.7777777778em;
  }
  #cpn_items .link_more {
    flex-direction: column;
    align-items: center;
    row-gap: 0.8333333333em;
    margin-top: 2em;
  }
  #cpn_items .link_more .basic_btn {
    min-width: 14.3333333333em;
  }
  #cpn_items .store_btns .basic_btn:first-child .txt {
    left: 0;
  }
}

/* ------------------------------------------------
 cpn_howto
------------------------------------------------ */
#cpn_howto .sbody {
  margin-left: 6em;
}
#cpn_howto .step_list {
  display: flex;
  flex-direction: column;
  gap: 7.5em;
}
#cpn_howto .step {
  display: flex;
  align-items: flex-start;
  align-items: center;
  gap: 7em;
}
#cpn_howto .step .img {
  width: 12.7em;
  flex-shrink: 0;
}
#cpn_howto .step .label {
  color: #bb9799;
  font-size: 2.9em;
}
#cpn_howto .step .label .num {
  font-size: 1.3em;
}
#cpn_howto .step .detail {
  font-size: 2.4em;
  line-height: 1.7;
  margin-top: 0.625em;
}
#cpn_howto aside {
  margin-top: 5em;
}
#cpn_howto aside .link_more {
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 640px) {
  #cpn_howto .sbody {
    margin-left: auto;
  }
  #cpn_howto .step_list {
    gap: 2.3333333333em;
  }
  #cpn_howto .step {
    gap: 1.3333333333em;
    align-items: start;
  }
  #cpn_howto .step .img {
    margin-bottom: -3em;
    width: 5.8333333333em;
    position: relative;
  }
  #cpn_howto .step .img::before {
    content: "";
    background-color: #fff;
    background: linear-gradient(0deg, #f9e6df 80%, rgba(249, 230, 223, 0) 100%);
    width: calc(100% + 2em);
    height: 3em;
    position: absolute;
    left: -1em;
    bottom: -1px;
  }
  #cpn_howto .step .txt {
    margin-top: -0.6em;
  }
  #cpn_howto .step .label {
    font-size: 1em;
  }
  #cpn_howto .step .detail {
    font-size: 0.8em;
    letter-spacing: 0.05em;
    margin-top: 0.4166666667em;
    margin-right: 0.5em;
  }
  #cpn_howto aside {
    margin-top: 2em;
  }
}

/* ------------------------------------------------
 cpn_receipt
------------------------------------------------ */
#cpn_receipt .sbody {
  margin-top: 6em;
}
#cpn_receipt .receipt_guide {
  margin-left: -1.2em;
  display: flex;
  align-items: flex-start;
  gap: 7em;
}
#cpn_receipt .receipt_guide .img {
  width: 35.2em;
  flex-shrink: 0;
}
#cpn_receipt .receipt_guide .lead {
  font-size: 2.4em;
  line-height: 1.7;
}
#cpn_receipt .receipt_guide .list {
  list-style: none;
  padding: 0;
  margin-top: 8em;
  counter-reset: receipt-step;
  display: flex;
  flex-direction: column;
  gap: 3em;
}
#cpn_receipt .receipt_guide .list li {
  font-size: 2.4em;
  display: flex;
  align-items: center;
  gap: 1.25em;
}
#cpn_receipt .receipt_guide .list li::before {
  content: counter(receipt-step);
  counter-increment: receipt-step;
  color: #f9e6df;
  font-family: var(--ff-en);
  line-height: 1;
  background-color: #BB9799;
  width: 1.6666666667em;
  aspect-ratio: 1/1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  vertical-align: 0;
}
#cpn_receipt .notes {
  margin-top: 6em;
  margin-left: 1.2em;
}
@media screen and (max-width: 640px) {
  #cpn_receipt .sbody {
    margin-top: 2em;
  }
  #cpn_receipt .receipt_guide {
    margin-left: -0.4em;
    gap: 0.8333333333em;
  }
  #cpn_receipt .receipt_guide .img {
    width: 10.6666666667em;
  }
  #cpn_receipt .receipt_guide .lead {
    font-size: 0.8em;
  }
  #cpn_receipt .receipt_guide .list {
    list-style: none;
    padding: 0;
    margin-top: 1.3333333333em;
    gap: 0.6666666667em;
  }
  #cpn_receipt .receipt_guide .list li {
    font-size: 0.8em;
    gap: 0.8333333333em;
  }
  #cpn_receipt .receipt_guide .list li::before {
    font-size: 0.9166666667em;
    width: 1.6363636364em;
  }
  #cpn_receipt .notes {
    margin-top: 1.3333333333em;
    margin-left: 0.4em;
  }
}

/* ------------------------------------------------
 cpn_winner
------------------------------------------------ */
#cpn_winner .sbody .txt .line {
  display: block;
  text-indent: -1em;
  padding-left: 1em;
}
@media screen and (min-width: 768.1px) {
  #cpn_winner .sbody .txt {
    font-size: 2.4em;
  }
  #cpn_winner .sbody .notes {
    margin-top: 5em;
  }
}
@media screen and (max-width: 640px) {
  #cpn_winner .sbody .notes {
    margin-top: 1.3333333333em;
  }
}

/* ------------------------------------------------
 cpn_attention / cpn_faq
------------------------------------------------ */
#cpn_attention .sbody > *,
#cpn_faq .sbody > * {
  font-size: 2.4em;
  line-height: 1.7;
}
#cpn_attention .sbody h4,
#cpn_faq .sbody h4 {
  margin-top: 0;
  margin-bottom: 0.1666666667em;
}
#cpn_attention .sbody * + h4,
#cpn_faq .sbody * + h4 {
  margin-top: 2.0833333333em;
}
#cpn_attention .sbody h5,
#cpn_faq .sbody h5 {
  margin-top: 0;
  margin-bottom: 0.1666666667em;
  font-size: 2.4em;
  font-weight: inherit;
}
#cpn_attention .sbody * + h5,
#cpn_faq .sbody * + h5 {
  margin-top: 1.25em;
}
#cpn_attention .sbody a,
#cpn_faq .sbody a {
  text-decoration: underline;
  text-underline-offset: 0.3em;
  white-space: nowrap;
  transition: opacity 0.6s ease, text-decoration-color 0.6s ease;
}
#cpn_attention .sbody a:hover,
#cpn_faq .sbody a:hover {
  text-decoration-color: transparent;
}
#cpn_attention .sbody .list li,
#cpn_faq .sbody .list li {
  text-indent: -1em;
  padding-left: 1em;
}
#cpn_attention .sbody .list li + li,
#cpn_faq .sbody .list li + li {
  margin-top: 0.1666666667em;
}
#cpn_attention .sbody .note li,
#cpn_faq .sbody .note li {
  text-indent: -1em;
  padding-left: 1em;
}
#cpn_attention .sbody .list + .note,
#cpn_attention .sbody .note + .list,
#cpn_attention .sbody p + .note,
#cpn_attention .sbody p + .list,
#cpn_faq .sbody .list + .note,
#cpn_faq .sbody .note + .list,
#cpn_faq .sbody p + .note,
#cpn_faq .sbody p + .list {
  margin-top: 0.5em;
}
#cpn_attention .sbody .qa + .qa,
#cpn_faq .sbody .qa + .qa {
  margin-top: 1.7em;
}
#cpn_attention .sbody .qa strong,
#cpn_faq .sbody .qa strong {
  font-weight: 700;
}
/* FAQ アコーディオン */
#cpn_faq .sbody .accordion {
  border-bottom: 1px solid #E3D2D2;
}
#cpn_faq .sbody .accordion:first-of-type {
  border-top: 1px solid #E3D2D2;
}
#cpn_faq .sbody .accordion .btn {
  margin: 0;
  text-align: left;
}
#cpn_faq .sbody .accordion .btn a {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5em;
  width: 100%;
  box-sizing: border-box;
  padding: 0.8em 0.5em;
  border: none;
  border-radius: 0;
  font-size: 1em;
  font-weight: 700;
  line-height: 1.7;
  text-align: left;
  text-decoration: none;
  color: var(--color-base);
  -webkit-tap-highlight-color: transparent;
}
@media (hover: hover) {
  #cpn_faq .sbody .accordion .btn a:hover {
    opacity: 0.6;
  }
}
#cpn_faq .sbody .accordion .btn a .q {
  flex: 1;
  padding-left: 1.75em;
  text-indent: -1.75em;
}
#cpn_faq .sbody .accordion .btn a .arrow {
  flex-shrink: 0;
  position: relative;
  width: 0.6666666667em;
  height: 0.6666666667em;
  margin-top: 0.52em;
  transform: none;
}
#cpn_faq .sbody .accordion .btn a .arrow::before,
#cpn_faq .sbody .accordion .btn a .arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 0.5px);
  left: 0;
  width: 100%;
  height: 1px;
  background-color: var(--color-base);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
#cpn_faq .sbody .accordion .btn a .arrow::after {
  transform: rotate(90deg);
}
#cpn_faq .sbody .accordion .btn.show a .arrow::after {
  opacity: 0;
}
#cpn_faq .sbody .accordion .abody {
  display: none;
  border: none;
  padding: 0 0.5em 1.2em 2.8125em;
  text-indent: -2.1875em;
  font-size: 0.8em;
  font-weight: 600;
  line-height: 1.7;
  color: #876B71;
}
#cpn_faq .sbody .accordion .abody .a_mark {
  font-size: 1.25em;
}
@media screen and (max-width: 640px) {
  #cpn_attention .sbody > *,
  #cpn_faq .sbody > * {
    font-size: 0.8666666667em;
  }
  #cpn_faq .sbody .accordion .btn a {
    align-items: center;
    gap: 0.75em;
    padding: 0.9em 0.2em;
  }
  #cpn_faq .sbody .accordion .btn a .arrow {
    margin-top: 0;
  }
  #cpn_faq .sbody .accordion .abody {
    padding: 0 0.2em 1em 2.3875em;
  }
  #cpn_attention .sbody a,
  #cpn_faq .sbody a {
    word-break: break-all;
    white-space: pre-wrap;
  }
  #cpn_attention .sbody h4,
  #cpn_faq .sbody h4 {
    margin-bottom: 0.2em;
  }
  #cpn_attention .sbody * + h4,
  #cpn_faq .sbody * + h4 {
    margin-top: 2.5em;
  }
  #cpn_attention .sbody h5,
  #cpn_faq .sbody h5 {
    margin-bottom: 0.2em;
    font-size: 0.8666666667em;
  }
  #cpn_attention .sbody * + h5,
  #cpn_faq .sbody * + h5 {
    margin-top: 1.5em;
  }
  #cpn_attention .sbody .note,
  #cpn_faq .sbody .note {
    font-size: 0.6666666667em;
  }
  #cpn_attention .sbody .list li,
  #cpn_faq .sbody .list li {
    text-indent: -1em;
    padding-left: 1em;
  }
  #cpn_attention .sbody .list li + li,
  #cpn_faq .sbody .list li + li {
    margin-top: 0.2em;
  }
  #cpn_attention .sbody .list + .note,
  #cpn_attention .sbody .note + .list,
  #cpn_attention .sbody p + .note,
  #cpn_attention .sbody p + .list,
  #cpn_faq .sbody .list + .note,
  #cpn_faq .sbody .note + .list,
  #cpn_faq .sbody p + .note,
  #cpn_faq .sbody p + .list {
    margin-top: 0.6em;
  }
}

/* ------------------------------------------------
 プレゼント応募規約：長文のためスクロールボックス化
 （枠線あり・背景#fcf3ef、細い角丸バー／上下右にマージン・PCの▲▼ボタン非表示）
------------------------------------------------ */
#cpn_attention .sbody {
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", YuGothic, Meiryo, sans-serif;
  font-weight: 400;
  max-height: 60em;
  overflow-y: auto;
  padding: 3.5em 4em;
  border: 1px solid #cbb3b5;
  border-radius: 0.8em;
  background-color: #fcf3ef;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}
#cpn_attention .sbody > * {
  letter-spacing: 0.04em;
}
#cpn_attention .sbody::-webkit-scrollbar {
  width: 1.4em;
}
#cpn_attention .sbody::-webkit-scrollbar-button {
  display: none;
  width: 0;
  height: 0;
}
#cpn_attention .sbody::-webkit-scrollbar-track {
  background: transparent;
  margin: 0.6em 0;
}
#cpn_attention .sbody::-webkit-scrollbar-thumb {
  background: #bc989a;
  background-clip: padding-box;
  border: 0.3em solid transparent;
  border-radius: 2em;
}
@media screen and (max-width: 640px) {
  #cpn_attention .sbody {
    max-height: 26em;
    padding: 1.1666666667em 1.1666666667em;
    border-radius: 0.4em;
  }
  #cpn_attention .sbody::-webkit-scrollbar {
    width: 0.4666666667em;
  }
  #cpn_attention .sbody::-webkit-scrollbar-track {
    margin: 0.2em 0;
  }
  #cpn_attention .sbody::-webkit-scrollbar-thumb {
    border-width: 0.1em;
    border-radius: 0.6666666667em;
  }
}
@media screen and (min-width: 640.1px) {
  #cpn_attention .sbody > * {
    font-size: 1.8em;
  }
  #cpn_attention .sbody h5 {
    font-size: 1.8em;
  }
  #cpn_attention .sbody .note {
    font-size: 1.3em;
  }
}

/* ------------------------------------------------
 テキストリンク（本文中のインラインリンク）
 リンクと分かるよう #B78791 で統一（PCホバーで薄く）
------------------------------------------------ */
.txt_link {
  color: #b78791;
  text-decoration: none;
}
@media screen and (min-width: 641px) {
  .txt_link {
    transition: opacity 0.6s ease;
  }
  .txt_link:hover {
    opacity: 0.6;
  }
}

/* ------------------------------------------------
 btn_pagetop（追従TOPボタン）
------------------------------------------------ */
.btn_pagetop {
  position: fixed;
  z-index: 100;
  right: 40px;
  bottom: 40px;
  width: 87px;
  height: 87px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: #BC989A;
  color: #fff;
  font-family: var(--ff-base);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.btn_pagetop.is-show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.btn_pagetop .arrow {
  width: 18px;
  height: auto;
  display: block;
}
.btn_pagetop .txt {
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0.08em;
  font-weight: 400;
}
@media screen and (any-hover: hover) {
  .btn_pagetop:hover {
    opacity: 0.8;
  }
}
@media screen and (max-width: 640px) {
  .btn_pagetop {
    right: 5.3333333333vw;
    bottom: 5.3333333333vw;
    width: 14.6666666667vw;
    height: 14.6666666667vw;
    gap: 1.2vw;
  }
  .btn_pagetop .arrow {
    width: 3.0666666667vw;
  }
  .btn_pagetop .txt {
    font-size: 3.0666666667vw;
  }
}
/* ------------------------------------------------
 stage幅（このページ専用 .v2）
 既定では 1920px以上で font-size:0.5208vw（ビューポート比）となり、
 ウィンドウを広げるほどコンテンツが無限に拡大してしまう。
 1920px以上は font-size を固定(10px)してコンテンツ幅(=1000px)で上限をかける。
------------------------------------------------ */
@media screen and (min-width: 1920px) {
  #stage.v2 {
    font-size: 10px;
  }
}
