@charset "UTF-8";
.accordion-flag {
  display: none;
}

.l-content {
  /* アコーディオン表示制御フラグがOFFのときのアコーディオン表示エリア */
  /* アコーディオン表示制御フラグがONのときのアコーディオン表示エリア */
  /* アコーディオン表示切替スイッチ */
}

.l-content h3,
.l-content h4 {
  padding: 0;
  margin: 0;
}

.l-content .bg-dark,
.l-content .bg-light {
  padding: 0;
  position: relative !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}

.l-content .bg-dark .ttl-group,
.l-content .bg-light .ttl-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.l-content .bg-dark .ttl-group sub,
.l-content .bg-light .ttl-group sub {
  font-size: 16px !important;
  font-style: normal;
  font-weight: 900;
  line-height: 110% !important;
  text-transform: uppercase;
  text-align: center;
}

.l-content .bg-dark .ttl-group h2,
.l-content .bg-light .ttl-group h2 {
  text-align: center;
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: 140%;
}

.l-content .bg-dark .summary-group,
.l-content .bg-light .summary-group {
  display: flex;
  padding: 0px 24px;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  align-self: stretch;
}

.l-content .bg-dark .summary-group h3,
.l-content .bg-light .summary-group h3 {
  text-align: center;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  margin: 0;
}

.l-content .bg-dark .summary-group p,
.l-content .bg-light .summary-group p {
  text-align: center;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 20px;
}

.l-content .bg-dark .summary-group a,
.l-content .bg-light .summary-group a {
  text-align: center;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 24px;
  text-decoration-line: underline;
}

.l-content .bg-dark {
  background: #020717;
}

.l-content .bg-light {
  background: #fff;
}

.l-content .bg-dark .bg-dark-txt {
  color: rgba(255, 255, 255, 0.05);
  font-size: 81px;
  font-style: normal;
  font-weight: 900;
  line-height: 100%;
  text-transform: uppercase;
  white-space: nowrap;
  position: absolute;
}

.l-content .bg-dark > .bg-dark-txt {
  top: -16px;
  left: 0;
}

.l-content .bg-dark .ttl-group sub {
  color: #f53a3a;
}

.l-content .bg-dark .ttl-group h2 {
  color: #fff;
}

.l-content .bg-dark .summary-group h3,
.l-content .bg-dark .summary-group p {
  color: #fff;
}

.l-content .bg-dark .summary-group a {
  color: #f53a3a;
}

.l-content .bg-light .bg-light-txt {
  color: rgba(0, 0, 0, 0.03);
  font-size: 81px;
  font-style: normal;
  font-weight: 900;
  line-height: 100%;
  text-transform: uppercase;
  white-space: nowrap;
  position: absolute;
}

.l-content .bg-light > .bg-light-txt {
  top: -16px;
  left: 0;
}

.l-content .bg-light .ttl-group sub {
  color: #d80000;
}

.l-content .bg-light .ttl-group h2 {
  color: #000;
}

.l-content .bg-light .summary-group h3,
.l-content .bg-light .summary-group p {
  color: #000;
}

.l-content .bg-light .summary-group a {
  color: #d80000;
}

.l-content .btn-dark-secondary,
.l-content .btn-light-secondary {
  width: -moz-fit-content;
  width: fit-content;
  display: flex;
  padding: 16px 24px;
  justify-content: center;
  align-items: center;
  border-radius: 72px;
  text-align: center;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 140%;
}

.l-content .btn-dark-secondary {
  border: 1px solid #f53a3a;
  color: #f53a3a;
}

.l-content .btn-light-secondary {
  border: 1px solid #d80000;
  color: #d80000;
}

.l-content .btn-default-light a,
.l-content .btn-default-dark a,
.l-content .btn-secondaly-light a,
.l-content .btn-secondaly-dark a {
  display: flex;
  padding: 16px 24px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  align-self: stretch;
  border-radius: 72px;
  text-align: center;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 140%;
}

.l-content .btn-default-light a {
  background: #d80000;
  color: white;
}

.l-content .btn-default-dark a {
  background: #f53a3a;
  color: #020717;
}

.l-content .btn-secondaly-light a {
  border: 1px solid #d80000;
  color: #d80000;
}

.l-content .btn-secondaly-dark a {
  border: 1px solid #f53a3a;
  color: #f53a3a;
}

.l-content .step-overview ul {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  align-self: stretch;
}

.l-content .step-overview ul li {
  display: flex;
  width: 120px;
  padding: 16px;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  align-self: stretch;
  border-radius: 8px;
  background: #fff;
}

.l-content .step-overview ul li p.step-overview-number {
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 20px;
}

.l-content .step-overview ul li p.txt {
  color: #000;
  text-align: center;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 20px;
}

.l-content #top-section-price {
  padding: 48px 0px 0;
}

.l-content .multi-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: stretch;
  border-radius: 16px;
  overflow: hidden;
  margin: 0 24px;
}

.l-content .multi-step > h3 {
  display: flex;
  padding: 12px 8px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  align-self: stretch;
  background: gray;
}

.l-content .multi-step .multi-step-content {
  display: flex;
  padding: 24px;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  align-self: stretch;
  background: #fff;
}

.l-content .multi-step .multi-step-content p.lead {
  color: #000;
  text-align: center;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 20px;
}

.l-content .trial-group {
  display: flex;
  width: 327px;
  padding: 24px 32px;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  border-radius: 32px;
  background: #f7f7f7;
}

.l-content .trial-group .trial-txt-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.l-content .trial-group .trial-txt-group p {
  color: #000;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

.l-content .trial-group .trial-txt-group p strong {
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.l-content .trial-group .btn-apply > a {
  display: flex;
  padding: 16px 24px;
  justify-content: center;
  align-items: center;
  align-self: stretch;
  border-radius: 72px;
  background: #d80000;
  color: #fff;
  text-align: center;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 24px;
}

.l-content .appdl-group {
  display: flex;
  width: 327px;
  padding: 24px;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  border-radius: 32px;
}

.l-content .appdl-group p {
  text-align: center;
}

.l-content .appdl-group a.iap-store-link {
  display: flex;
  padding: 16px 24px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  align-self: stretch;
  border-radius: 72px;
  background: #d80000;
  color: #fff;
  text-align: center;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 24px;
}

.l-content .plan-monthly-group,
.l-content .plan-yearly-group {
  display: flex;
  padding: 32px 24px;
  flex-direction: column;
  align-items: stretch;
  gap: 32px;
  align-self: stretch;
  background: #f7f7f7;
}

.l-content .plan-monthly-group .ttl-group,
.l-content .plan-yearly-group .ttl-group {
  display: flex;
  justify-content: space-between;
  align-items: center;
  align-self: stretch;
  flex-direction: row;
  padding-bottom: 16px;
  border-bottom: 1px solid #d1d1d1;
}

.l-content .plan-monthly-group .ttl-group h2,
.l-content .plan-yearly-group .ttl-group h2 {
  color: #000;
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.l-content .plan-monthly-group .ttl-group .caption,
.l-content .plan-yearly-group .ttl-group .caption {
  color: #686868;
  font-size: 10px;
  font-style: normal;
  font-weight: 400;
  line-height: 12px;
}

.l-content .plan-monthly-group .plan-group-outer,
.l-content .plan-yearly-group .plan-group-outer {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.l-content .plan-monthly-group .plan-yearly-ttl-group,
.l-content .plan-yearly-group .plan-yearly-ttl-group {
  display: flex;
  justify-content: space-between;
  align-items: center;
  align-self: stretch;
}

.l-content .plan-monthly-group .plan-yearly-ttl-group p,
.l-content .plan-yearly-group .plan-yearly-ttl-group p {
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 140%;
}

.l-content .plan-monthly-group .plan-yearly-ttl-group p span.difference,
.l-content .plan-yearly-group .plan-yearly-ttl-group p span.difference {
  font-size: 20px;
}

.l-content .plan-monthly-group .plan-group,
.l-content .plan-yearly-group .plan-group {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
}

.l-content .plan-monthly-group .plan-group h3,
.l-content .plan-yearly-group .plan-group h3 {
  color: #686868;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  margin: 0;
}

.l-content .plan-monthly-group .plan-group .plan-item-group,
.l-content .plan-yearly-group .plan-group .plan-item-group {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}

.l-content .plan-monthly-group .plan-item,
.l-content .plan-yearly-group .plan-item {
  display: flex;
  align-items: center;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
  color: initial !important;
  height: 80px;
}

.l-content .plan-monthly-group .plan-item .plan-item-txt-group,
.l-content .plan-yearly-group .plan-item .plan-item-txt-group {
  display: flex;
  padding: 8px 0 8px 16px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 4px;
  flex: 1 0 0;
  align-self: stretch;
}

.l-content .plan-monthly-group .plan-item .plan-item-txt-group .new,
.l-content .plan-yearly-group .plan-item .plan-item-txt-group .new {
  text-align: center;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  line-height: 120%;
}

.l-content .plan-monthly-group .plan-item .plan-item-txt-group .plan-name,
.l-content .plan-yearly-group .plan-item .plan-item-txt-group .plan-name {
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 140%;
}

.l-content .plan-monthly-group .plan-item .plan-item-txt-group .caption,
.l-content .plan-yearly-group .plan-item .plan-item-txt-group .caption {
  color: #686868;
  text-align: center;
  font-size: 10px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

.l-content .plan-monthly-group .plan-item .plan-item-yearly-price-group,
.l-content .plan-yearly-group .plan-item .plan-item-yearly-price-group {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 12px;
  font-weight: 700;
  gap: 4px;
}

.l-content .plan-monthly-group .plan-item .plan-item-price,
.l-content .plan-yearly-group .plan-item .plan-item-price {
  color: #000;
  font-size: 36px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  display: flex;
  justify-content: center;
  align-items: baseline;
}

.l-content .plan-monthly-group .plan-item .plan-item-price.free,
.l-content .plan-yearly-group .plan-item .plan-item-price.free {
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.l-content .plan-monthly-group .plan-item .plan-item-price .yearly-to-monthly,
.l-content .plan-yearly-group .plan-item .plan-item-price .yearly-to-monthly {
  font-size: 12px;
  font-weight: 700;
  color: #000;
}

.l-content .plan-monthly-group .plan-item .plan-item-price span.yen,
.l-content .plan-yearly-group .plan-item .plan-item-price span.yen {
  font-size: 24px;
  font-weight: 700;
}

.l-content .plan-monthly-group .plan-item .view-more,
.l-content .plan-yearly-group .plan-item .view-more {
  display: flex;
  align-self: stretch;
  align-items: center;
  padding: 0 2px;
}

.l-content .plan-monthly-group .plan-item .plan-price-container,
.l-content .plan-yearly-group .plan-item .plan-price-container {
  padding: 4px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: end;
  gap: 4px;
}

/* 詳しく見るボタン */
.l-content .plan-monthly-group .plan-item .plan-price-container .detail-btn,
.l-content .plan-yearly-group .plan-item .plan-price-container .detail-btn {
  padding: 0 16px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
  border-radius: 40px;
  color: white;
  text-align: center;
  font-size: 14px;
}

.l-content .plan-monthly-group .plan-item.standard .plan-price-container .detail-btn {
  background: #d80000;
}

.l-content .plan-monthly-group .plan-item.cardmobile .plan-price-container .detail-btn {
  background: #ef0aa1;
}

.l-content .plan-monthly-group .plan-item.student .plan-price-container .detail-btn {
  background: #f59600;
}

.l-content .plan-monthly-group .plan-item.lite .plan-price-container .detail-btn {
  background: #00b900;
}

.l-content .plan-yearly-group .plan-item.yearly .plan-price-container .detail-btn {
  background: #9b00ec;
}

.l-content .plan-monthly-group .plan-item.standard,
.l-content .plan-yearly-group .plan-item.standard {
  border-color: #d80000;
  border-left: 8px solid #d80000;
}

.l-content .plan-monthly-group .plan-item.standard .plan-name,
.l-content .plan-yearly-group .plan-item.standard .plan-name {
  color: #8c0000;
}

.l-content .plan-monthly-group .plan-item.standard .view-more,
.l-content .plan-yearly-group .plan-item.standard .view-more {
  background: #d80000;
}

.l-content .plan-monthly-group .plan-item.cardmobile,
.l-content .plan-yearly-group .plan-item.cardmobile {
  border-color: #ef0aa1;
  border-left: 8px solid #ef0aa1;
}

.l-content .plan-monthly-group .plan-item.cardmobile .new,
.l-content .plan-yearly-group .plan-item.cardmobile .new {
  color: #ef0aa1;
}

.l-content .plan-monthly-group .plan-item.cardmobile .plan-name,
.l-content .plan-yearly-group .plan-item.cardmobile .plan-name {
  color: #830056;
}

.l-content .plan-monthly-group .plan-item.cardmobile .view-more,
.l-content .plan-yearly-group .plan-item.cardmobile .view-more {
  background: #ef0aa1;
}

.l-content .plan-monthly-group .plan-item.student,
.l-content .plan-yearly-group .plan-item.student {
  border-color: #f59600;
  border-left: 8px solid #f59600;
}

.l-content .plan-monthly-group .plan-item.student .plan-name,
.l-content .plan-yearly-group .plan-item.student .plan-name {
  color: #7b4b00;
}

.l-content .plan-monthly-group .plan-item.student .view-more,
.l-content .plan-yearly-group .plan-item.student .view-more {
  background: #f59600;
}

.l-content .plan-monthly-group .plan-item.lite,
.l-content .plan-yearly-group .plan-item.lite {
  border-color: #00b900;
  border-left: 8px solid #00b900;
}

.l-content .plan-monthly-group .plan-item.lite .plan-name,
.l-content .plan-yearly-group .plan-item.lite .plan-name {
  color: #005300;
}

.l-content .plan-monthly-group .plan-item.lite .view-more,
.l-content .plan-yearly-group .plan-item.lite .view-more {
  background: #00b900;
}

.l-content .plan-monthly-group .plan-item.yearly,
.l-content .plan-yearly-group .plan-item.yearly {
  border-color: #9b00ec;
  border-left: 8px solid #9b00ec;
}

.l-content .plan-monthly-group .plan-item.yearly .plan-name,
.l-content .plan-yearly-group .plan-item.yearly .plan-name {
  color: #4b0071;
}

.l-content .plan-monthly-group .plan-item.yearly .view-more,
.l-content .plan-yearly-group .plan-item.yearly .view-more {
  background: #9b00ec;
}

.l-content .price-caption {
  display: flex;
  padding: 32px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 8px;
  align-self: stretch;
  background: #f7f7f7;
}

.l-content .price-caption p {
  text-align: justify;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 16px;
}

.l-content .price-caption p.red {
  color: #d80000;
}

.l-content .price-caption p.bold {
  font-weight: 700;
}

.l-content .price-caption p a {
  color: #d80000;
  text-decoration-line: underline;
}

.l-content .price-caption p svg {
  vertical-align: text-bottom;
}

.l-content .caption-table {
  display: flex;
  padding: 32px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 8px;
  align-self: stretch;
  background: #f7f7f7;
}

.l-content .caption-table p {
  text-align: justify;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 16px;
}

.l-content .caption-table p.red {
  color: #d80000;
}

.l-content .caption-table p.bold {
  font-weight: 700;
}

.l-content .caption-table p a {
  color: #d80000;
  text-decoration-line: underline;
}

.l-content .caption-table p svg {
  vertical-align: text-bottom;
}

.l-content .pricing-comparison > h3 {
  color: #000;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  margin: 0 auto 32px;
  text-align: center;
}

.l-content .pricing-comparison ul.pricing-comparison-list {
  display: flex;
  min-width: 327px;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin: 0 auto;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  align-self: stretch;
  background: #f7f7f7;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li div.service-name {
  display: flex;
  width: 136px;
  padding: 24px 16px 16px 16px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
  align-self: stretch;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li p {
  text-align: center;
  font-style: normal;
  font-weight: 400;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li p.compatitor-name {
  color: #000;
  font-size: 14px;
  line-height: 140%;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li p.plan-name {
  color: #686868;
  font-size: 10px;
  line-height: normal;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li p.number-of-songs {
  color: #000;
  font-size: 16px;
  line-height: 140%;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li div.plan-price {
  display: flex;
  width: 125px;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li div.plan-price div.plan-price--price {
  color: #000;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li div.plan-price div.plan-price--price span {
  font-size: 32px;
  font-weight: 700;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li div.plan-price div.month {
  color: #686868;
  text-align: center;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li.our-service {
  border-radius: 8px;
  border: 2px solid #d80000;
  background: #fff;
  padding-right: 20px;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li.our-service div.service-name {
  background: #bf0000;
  width: 130px;
  gap: 16px;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li.our-service div.service-name > img {
  width: 77px;
  height: 40px;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li.our-service p.plan-name {
  color: #fff;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li.our-service div.plan-price {
  width: -moz-fit-content;
  width: fit-content;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li.our-service div.plan-price div.plan-price--price {
  font-size: 24px;
}

.l-content .pricing-comparison ul.pricing-comparison-list > li.our-service div.plan-price div.plan-price--price span {
  font-size: 36px;
  color: #d80000;
}

.l-content .faq-item {
  display: flex;
  padding: 24px 0 0;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 16px;
  align-self: center;
  border-radius: 16px;
  width: 327px;
}

#page .bg-dark .faq-item {
  background: #212331;
}

#page.l-content .bg-light .faq-item {
  background: #f7f7f7;
}

.l-content .faq-item .faq-question,
.l-content .faq-item .faq-answer {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 16px;
  align-self: stretch;
  padding: 0 24px;
}

.l-content .faq-item .faq-question p,
.l-content .faq-item .faq-answer p {
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 20px;
}

.l-content .bg-dark .faq-question p,
.l-content .bg-dark .faq-answer p {
  color: white;
}

.l-content .bg-light .faq-question p,
.l-content .bg-light .faq-answer p {
  color: black;
}

.l-content .faq-item .faq-question p strong,
.l-content .faq-item .faq-answer p strong {
  font-size: 32px;
  font-style: normal;
  font-weight: 900;
  line-height: 110%;
}

.l-content .bg-light .faq-question p strong,
.l-content .bg-light .faq-answer p strong {
  color: black;
}

.l-content .bg-dark .faq-question p strong,
.l-content .bg-dark .faq-answer p strong {
  color: white;
}

.l-content .faq-item .faq-question p a,
.l-content .faq-item .faq-answer p a {
  text-decoration: underline;
  color: #f53a3a;
}

.l-content .faq-item .faq-answer p strong {
  color: #f53a3a;
}

#page .l-content .faq-item .accordion-flag:checked + .accordion-area {
  padding: 0 24px;
}

#page .l-content .faq-item .accordion-switch {
  display: flex;
  justify-content: flex-end !important;
  align-items: center;
  gap: 16px;
  align-self: stretch;
  background: none;
  padding: 0 24px 24px;
  margin: 0;
}

#page .l-content .accordion-area {
  height: 0px;
  margin: 0px;
  opacity: 0;
  overflow: hidden;
  transition: padding 0.5s linear, opacity 0.5s linear 0s;
}

#page .l-content .accordion-flag:checked + .accordion-area {
  height: auto;
  opacity: 1;
  padding: 0;
}

#page .l-content .accordion-flag:checked + .accordion-area + .accordion-switch i {
  transform: rotate(180deg);
}

#page .l-content .accordion-switch {
  cursor: pointer;
  display: flex !important;
  padding: 16px 0px;
  justify-content: center !important;
  align-items: center !important;
  gap: 16px;
  color: #fff;
  text-align: center;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

#page .l-content .accordion-switch i {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.5s ease-in;
}

/* 注釈アコーディオン設定 */
#page .annotation-area {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  align-self: stretch;
}

#page .annotation-area .red {
  color: #bf0000;
  font-size: 12px;
  padding: 8px 0;
}

#page .notification-txt {
  display: flex;
  padding: 12px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  align-self: stretch;
  font-size: 12px;
}

#page .notification-txt .title {
  color: #bf0000;
  font-weight: 700;
  font-size: 14px;
}

#page .accordion-004 {
  width: 100%;
  max-width: 950px;
  border-bottom: 1px solid #d0d0d0;
}

#page .accordion-004 summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  padding: 12px 2em;
  color: #333333;
  font-weight: 600;
  cursor: pointer;
  font-size: 12px;
}

#page .accordion-004 summary::-webkit-details-marker {
  display: none;
}

#page .accordion-004 summary::after {
  transform: translateY(-25%) rotate(45deg);
  width: 7px;
  height: 7px;
  margin-left: 10px;
  border-bottom: 3px solid rgba(51, 51, 51, 0.7019607843);
  border-right: 3px solid rgba(51, 51, 51, 0.7019607843);
  content: "";
  transition: transform 0.3s;
}

#page .accordion-004[open] summary::after {
  transform: rotate(225deg);
}

#page .accordion-004 p {
  transform: translateY(-10px);
  opacity: 0;
  margin: 0;
  padding: 0.3em 2em 1.5em;
  color: #333333;
  transition: transform 0.5s, opacity 0.5s;
  font-size: 12px;
}

#page .accordion-004[open] p {
  transform: none;
  opacity: 1;
}

/* デザイン変更v1 */
.l-content .plan-yearly-group .plan-item.yearly {
  height: auto;
  padding: 4px 0;
}

/* -----------------------PC setting--------------------------------- */
.pc .l-content .btn-dark-secondary,
.pc .l-content .btn-light-secondary {
  transition: all 0.2s ease-in;
  font-size: 16px;
}

.pc .l-content .btn-dark-secondary:hover {
  background: #f53a3a;
  color: #020717;
}

.pc .l-content .btn-light-secondary:hover {
  background: #d80000;
  color: white;
}

.pc .l-content .btn-default-light a,
.pc .l-content .btn-default-dark a,
.pc .l-content .btn-secondaly-light a,
.pc .l-content .btn-secondaly-dark a {
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 140%;
  transition: all 0.2s ease-in;
}

.pc .l-content .btn-default-light a:hover {
  background: #ec0606;
}

.pc .l-content .btn-default-dark a:hover {
  background: #d80000;
}

.pc .l-content .btn-secondaly-light a:hover {
  background: #d80000;
  color: white;
}

.pc .l-content .btn-secondaly-dark a:hover {
  background: #f53a3a;
  color: #020717;
}

.pc .l-content .multi-step {
  border-radius: 32px;
  width: 950px;
  margin: 0 auto;
}

.pc .l-content .multi-step > h3 {
  padding: 24px;
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  line-height: 44px;
}

.pc .l-content .multi-step .multi-step-content {
  padding: 32px;
  gap: 32px;
}

.pc .l-content .multi-step .multi-step-content p.lead {
  font-size: 20px;
  font-style: normal;
  font-weight: 400;
  line-height: 28px;
}

.pc .l-content .step-overview ul {
  gap: 16px;
}

.pc .l-content .step-overview ul li {
  width: 150px;
  padding: 16px;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.pc .l-content .step-overview ul li p.step-overview-number {
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 24px;
}

.pc .l-content .step-overview ul li p.txt {
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 24px;
}

.pc .l-content .bg-dark,
.pc .l-content .bg-light {
  padding: 0;
}

.pc .l-content .bg-dark .ttl-group h2,
.pc .l-content .bg-light .ttl-group h2 {
  font-size: 48px;
}

.pc .l-content .bg-dark .ttl-group sub,
.pc .l-content .bg-light .ttl-group sub {
  font-size: 20px !important;
}

.pc .l-content .bg-dark .summary-group h3,
.pc .l-content .bg-light .summary-group h3 {
  font-size: 32px;
}

.pc .l-content .bg-dark .summary-group p,
.pc .l-content .bg-light .summary-group p {
  font-size: 16px;
}

.pc .l-content .bg-dark .summary-group a,
.pc .l-content .bg-light .summary-group a {
  font-size: 16px;
}

.pc .l-content .bg-dark .summary-group a:hover,
.pc .l-content .bg-light .summary-group a:hover {
  text-decoration: none;
}

.pc .l-content .bg-dark .bg-dark-txt {
  font-size: 192px;
  top: -44px;
}

.pc .l-content .bg-light .bg-light-txt {
  font-size: 192px;
  top: -44px;
}

.pc .l-content .trial-group {
  width: 950px;
  padding: 64px;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}

.pc .l-content .trial-group .trial-txt-group {
  align-items: flex-start;
}

.pc .l-content .trial-group .trial-txt-group p {
  font-size: 20px;
}

.pc .l-content .trial-group .trial-txt-group p strong {
  font-size: 32px;
}

.pc .l-content .trial-group .btn-apply > a.trial-btn {
  font-size: 24px;
  line-height: 32px;
  transition: all 0.2s ease-in;
}

.pc .l-content .trial-group .btn-apply > a.trial-btn:hover {
  background: #ec0606;
}

.pc .l-content .price-caption {
  align-items: center;
}

.pc .l-content .price-caption p {
  width: 886px;
}

.pc .l-content .price-caption p a:hover {
  text-decoration: none;
}

.pc .l-content .plan-monthly-group,
.pc .l-content .plan-yearly-group {
  padding: 64px 0;
  align-items: center;
}

.pc .l-content .plan-monthly-group > div,
.pc .l-content .plan-yearly-group > div {
  width: 822px;
  margin: 0 auto;
}

.pc .l-content .plan-monthly-group .ttl-group,
.pc .l-content .plan-yearly-group .ttl-group {
  padding-bottom: 32px;
}

.pc .l-content .plan-monthly-group .ttl-group h2,
.pc .l-content .plan-yearly-group .ttl-group h2 {
  font-size: 32px;
}

.pc .l-content .plan-monthly-group .ttl-group p.caption,
.pc .l-content .plan-yearly-group .ttl-group p.caption {
  font-size: 12px;
  line-height: 16px;
}

.pc .l-content .plan-monthly-group .plan-group-outer,
.pc .l-content .plan-yearly-group .plan-group-outer {
  flex-direction: row;
  justify-content: space-between;
}

.pc .l-content .plan-monthly-group .plan-group,
.pc .l-content .plan-yearly-group .plan-group {
  gap: 16px;
  align-items: center;
}

.pc .l-content .plan-monthly-group .plan-group h3,
.pc .l-content .plan-yearly-group .plan-group h3 {
  height: 62px;
  display: flex;
  align-items: center;
  text-align: center;
  flex-direction: column;
  gap: 4px;
  flex: none;
}

.pc .l-content .plan-monthly-group .plan-group h3 span.cap,
.pc .l-content .plan-yearly-group .plan-group h3 span.cap {
  text-align: center;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.pc .l-content .plan-monthly-group .plan-group .plan-item-group,
.pc .l-content .plan-yearly-group .plan-group .plan-item-group {
  flex-direction: row;
  gap: 16px;
}

.pc .l-content .plan-monthly-group .plan-item,
.pc .l-content .plan-yearly-group .plan-item {
  border-left: 0;
  border-top: 8px solid;
  width: 148px;
  height: 100%;
  flex-direction: column;
  gap: 16px;
  padding-bottom: 16px;
}

.pc .l-content .plan-monthly-group .plan-item:hover .view-more,
.pc .l-content .plan-yearly-group .plan-item:hover .view-more {
  box-shadow: 0px 4px 24px 0px rgba(0, 0, 0, 0.25);
}

.pc .l-content .plan-monthly-group .plan-item .plan-item-txt-group,
.pc .l-content .plan-yearly-group .plan-item .plan-item-txt-group {
  padding: 16px 0 0;
  align-items: center;
  height: 62px;
  flex: none;
}

.pc .l-content .plan-monthly-group .plan-item .plan-item-txt-group .plan-name,
.pc .l-content .plan-yearly-group .plan-item .plan-item-txt-group .plan-name {
  font-size: 16px;
  line-height: 140%;
  text-align: center;
}

.pc .l-content .plan-monthly-group .plan-item .plan-item-yearly-price-group,
.pc .l-content .plan-yearly-group .plan-item .plan-item-yearly-price-group {
  flex-direction: column;
  align-items: center;
}

.pc .l-content .plan-monthly-group .plan-item .plan-item-price,
.pc .l-content .plan-yearly-group .plan-item .plan-item-price {
  padding: 0;
  height: 48px;
  display: flex;
  align-items: center;
}

.pc .l-content .plan-monthly-group .plan-item .plan-item-price .yearly-to-monthly,
.pc .l-content .plan-yearly-group .plan-item .plan-item-price .yearly-to-monthly {
  font-size: 24px;
  font-weight: 700;
}

.pc .l-content .plan-monthly-group .plan-item.standard,
.pc .l-content .plan-yearly-group .plan-item.standard {
  border-right: none;
}

.pc .l-content .plan-monthly-group .plan-item .view-more,
.pc .l-content .plan-yearly-group .plan-item .view-more {
  transition: all 0.2s ease-in;
  display: flex;
  padding: 8px 16px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  color: #fff;
  text-align: center;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
  line-height: 120%;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  border-radius: 24px;
}

.pc .l-content .plan-monthly-group .plan-yearly-ttl-group,
.pc .l-content .plan-yearly-group .plan-yearly-ttl-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.pc .l-content .plan-yearly-group .plan-group-outer {
  justify-content: flex-start;
}

.pc .l-content .caption-table {
  align-items: center;
}

.pc .l-content .caption-table p {
  width: 886px;
}

.pc .l-content .caption-table p a:hover {
  text-decoration: none;
}

.pc .l-content .pricing-comparison > h3 {
  font-size: 24px;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list {
  flex-direction: row;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list > li {
  width: 160px;
  flex-direction: column;
  padding: 0 0 24px;
  gap: 16px;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list > li div.service-name {
  width: 100%;
  height: 114px;
  padding: 24px 0px 16px 0px;
  gap: 16px;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list > li div.service-name p.plan-name {
  height: 34px;
  display: flex;
  align-items: center;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list > li p.compatitor-name {
  font-size: 16px;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list > li p.plan-name {
  font-size: 12px;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list > li div.plan-price div.plan-price--price {
  font-size: 24px;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list > li div.plan-price div.plan-price--price span {
  font-size: 36px;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list > li.our-service {
  width: 180px;
  padding-right: 0;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list > li.our-service div.service-name {
  width: 100%;
}

.pc .l-content .pricing-comparison ul.pricing-comparison-list > li.our-service div.service-name > img {
  width: 136px;
  height: 24px;
}

.pc .l-content .faq-item {
  width: 886px;
}

.pc .l-content .faq-item .faq-question,
.pc .l-content .faq-item .faq-answer {
  align-items: center;
}

.pc .l-content .faq-item .faq-question p,
.pc .l-content .faq-item .faq-answer p {
  font-size: 16px;
  line-height: 140%;
}

.pc .l-content .faq-item .faq-question p a:hover,
.pc .l-content .faq-item .faq-answer p a:hover {
  text-decoration: none;
}

.pc #page .l-content .faq-item .accordion-flag:checked + .accordion-area + .accordion-switch {
  transition: all 0.2s ease-in;
  padding-top: 24px;
}

.pc .l-content .plan-monthly-group .plan-item.standard {
  border-left: 0px;
  padding-top: 4px;
}

.pc .l-content .plan-monthly-group .plan-item.cardmobile,
.pc .l-content .plan-yearly-group .plan-item.cardmobile {
  border-left: 0px;
}

.pc .l-content .plan-monthly-group .plan-item.student,
.pc .l-content .plan-yearly-group .plan-item.student {
  border-left: 0px;
  padding-top: 4px;
}

.pc .l-content .plan-monthly-group .plan-item.lite,
.pc .l-content .plan-yearly-group .plan-item.lite {
  border-left: 0px;
}

.pc .l-content .plan-monthly-group .plan-item.yearly,
.pc .l-content .plan-yearly-group .plan-item.yearly {
  border-left: 0px;
}

/* デザイン変更v1 */
.pc .l-content .plan-yearly-group .plan-item.yearly {
  width: 148px;
  height: 100%;
  padding: 0 0 16px 0;
}

.pc .l-content .plan-monthly-group .plan-item.lite,
.pc .l-content .plan-monthly-group .plan-item.cardmobile {
  padding-top: 4px;
}

/* 本番CDN(music.r10s.jp)側の app.css は text-align: left のため、ここで上書きしてセンター揃えにする */
#page .campaign-detail__title {
  text-align: center;
}

.l-content .features-list-group {
  display: flex;
  width: 327px;
  padding: 16px 0 0;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  border-radius: 32px;
  background: #212331;
  margin: 0;
  overflow: hidden;
}

.l-content .features-list-group .features-list {
  display: flex;
  padding: 0;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

.l-content .features-list-group .item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 32px;
}

.l-content .features-list-group .item i img {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
}

.l-content .features-list-group .item .features-txt-group {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  flex-shrink: 0;
}

.l-content .features-list-group .item .features-txt-group p {
  color: white;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 16px;
}

.l-content .features-list-group .item .features-txt-group p b {
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 20px;
}

.features-list-group {
  width: 950px;
  padding: 64px;
  gap: 32px;
}

.features-list-group .features-list {
  height: auto;
  opacity: 1;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 32px;
  justify-content: center;
}

.features-list-group .item {
  width: 300px;
  padding: 0;
}

.features-list-group .item > i img {
  width: 32px;
  height: 32px;
}

.features-list-group .item .features-txt-group p b {
  font-size: 16px;
  line-height: 24px;
}

#page .new-card-area {
  position: relative;
}

#page .icon-new {
  position: absolute;
  top: -10px;
  right: -15px;
  width: 30px;
  height: 30px;
}

#page .overview-title {
  font-size: 20px;
  font-weight: 700;
  color: #ff008c;
}

#page .overview-desc {
  font-size: 14px;
  font-weight: 0;
}

.pc .l-content .features-list-group {
  width: 950px;
  padding: 64px;
  gap: 32px;
}

.pc .l-content .features-list-group .features-list {
  height: auto;
  opacity: 1;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 32px;
  justify-content: center;
}

.pc .l-content .features-list-group .item {
  width: 300px;
  padding: 0;
}

.pc .l-content .features-list-group .item > i img {
  width: 32px;
  height: 32px;
}

.pc .l-content .features-list-group .item .features-txt-group p b {
  font-size: 16px;
  line-height: 24px;
}

.pc #page .icon-new {
  position: absolute;
  top: -35px;
  right: -30px;
  width: 60px;
  height: 60px;
}

.pc #page .overview-title {
  font-size: 24px;
}

.pc #page .overview-desc {
  font-size: 18px;
}

/* INTRODUCTION / FEATURES：PCでは「すべての機能を見る」は不要（全機能を最初から表示）。
   FAQ の「回答を見る」も .accordion-switch を使うため、対象を導入・機能の枠だけに限定する。 */
.pc #page .l-content #top-section-introduction .accordion-switch,
.pc #page .l-content #top-section-feature .accordion-switch {
  display: none !important;
}

/* INTRODUCTION：SPでも枠の下に余白（48px）を入れる。全ページ共通。PCは従来どおり 64px。 */
.sp #page .l-content #top-section-introduction.bg-dark {
  padding-bottom: 48px !important;
}

/* FEATURES：SPでは枠の下の余白は不要（次の枠にそのままつなぐ）。PCは従来どおり。 */
.sp #page .l-content #top-section-feature.bg-dark {
  padding-bottom: 0 !important;
}

/* REWARD枠（共通パーツ）：注釈 p.point-caption は全ページ必ず左揃え。
   ページごとのCSSで中央揃えに上書きされないよう !important で固定する。 */
#page .l-content #stack-section-reward p.point-caption,
#page #stack-section-reward p.point-caption {
  text-align: left !important;
}

/* 料金プラン枠（共通パーツ）：SPの月額・年額グループは上の余白が空きすぎなので、上を0にする（padding: 0 24px 32px）。
   「月額プラン」「年額プラン」の見出しの上が詰まる。全ページ共通。 */
.sp #page .l-content .plan-monthly-group,
.sp #page .l-content .plan-yearly-group {
  padding: 0 24px 32px;
}

/* 2つ目の一覧「楽天グループのおすすめ特集」の見出しの上の空き。
   `#page .heading--m` の padding-top（SP 24px / PC 40px）が、`#page section .heading { padding-top: 0 }` に
   上書きされて詰まっていたため、2つ目の一覧の見出しだけ元の値に戻す。全ページ共通。 */
#page .s-campaign-list + .s-campaign-list .heading--m {
  padding-top: 24px;
}

.sp #page .s-campaign-list + .s-campaign-list .heading--m {
  padding-top: 40px !important;
}

.pc #page .s-campaign-list + .s-campaign-list .heading--m {
  padding-top: 40px;
}

/* ===== ジャケ写カルーセル（旧 common/css/stack-jsya-scroll.css をここへ統合。C5本番の同名ファイルとは別管理） ===== */
#page .jsha-carousel {
  overflow: hidden;
}

/* Slick初期化前（.slick-initializedが付く前）は、img{width:100%}のせいで
   正方形画像がコンテナ幅まで拡大され、26枚(26,000px超)縦に並んで一瞬表示されてしまう。
   これがページ読み込み直後にスクロールした際、ドキュメント高さが激しく変動して
   スクロール位置が強制的に引き戻される（クランプされる）主要因だったため、
   初期化が終わるまで高さ0で隠す。 */
#page .jsha-carousel:not(.slick-initialized) {
  height: 0;
}

#page .jsha-carousel + .btn-app-dl-wrapper {
  padding: 24px;
}

/* デバイス切り替え（wp_is_mobile()によるbodyクラス）。ウィンドウ幅のリサイズには追従しない */
.pc #page .jsha-carousel img {
  width: 64px;
  height: 64px;
}

.pc #page .jsha-carousel + .btn-app-dl-wrapper {
  width: 400px;
  margin: 0 auto;
  padding: 24px 0;
}

/* ===== コスパ最強バナー（旧 common/css/saikyo-cost-performance-banner.css をここへ統合） ===== */
#page .stack-cospa-saikyo-bnr {
  text-align: center;
}

#page .stack-cospa-saikyo-bnr img {
  width: 100%;
}

.pc #page .stack-cospa-saikyo-bnr {
  background: #d80000;
}

.pc #page .stack-cospa-saikyo-bnr img {
  width: 950px;
}
