@charset "UTF-8";
/* =============================================================
    Components
============================================================= */
/**
 * #c-userNav-title
 */
.c-userNav-title {
  display: flex;
  align-items: center;
  gap: 1rem;
}

@media screen and (min-width: 992px) {
  .c-userNav-title {
    gap: 0.8rem;
  }
}

.c-userNav-title__text {
  font-weight: 600;
  font-size: 1.6rem;
  line-height: 1.3;
}

@media screen and (min-width: 992px) {
  .c-userNav-title__text {
    font-size: 1.5rem;
  }
}

.c-userNav-title__iconWrap {
  width: 2.3rem;
}

.c-userNav-title__icon {
  margin: 0 auto;
}

/**
 * #c-userNav-link
 */
.c-userNav-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.6rem;
  padding: 1rem 1.4rem 1rem 1.7rem;
  line-height: 1.2;
  font-size: 1.4rem;
}

@media screen and (min-width: 992px) {
  .c-userNav-link {
    padding: 0.9rem 1.6rem 0.8rem 1.6rem;
    line-height: 1.5;
    font-size: 1.3rem;
  }
}

.c-userNav-link--active {
  font-weight: 600;
}

@media screen and (min-width: 992px) {
  .c-userNav-link:hover {
    background-color: var(--color-gray-light);
  }
}

.c-userNav-link::after {
  content: "";
  display: block;
  width: 0.636rem;
  aspect-ratio: 1/1.778;
  background: url(../img/common/icon/icon-arrow-userNav.svg) center/100% no-repeat;
}

@media screen and (min-width: 992px) {
  .c-userNav-link::after {
    content: none;
  }
}

/**
 * #c-userSectHeading
 */
.c-userSectHeading__title {
  margin-bottom: 1.3rem;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3;
}

@media screen and (min-width: 768px) {
  .c-userSectHeading__title {
    margin-bottom: 1.4rem;
  }
}

.c-userSectHeading__title-primary {
  color: var(--color-primary);
}

.c-userSectHeading__title-red {
  color: var(--color-red);
}

.c-userSectHeading__lead {
  font-size: 1.4rem;
  line-height: 1.6;
}

.c-userSectHeading__link {
  text-decoration: underline;
}

.c-userSectHeading__link:hover {
  text-decoration: underline;
}

.c-userSectHeading__ownerNotice {
  font-size: 1.4rem;
}

  .c-userSectHeading__ownerNotice a {
    color: var(--color-blue-heavy);
    text-decoration: underline;
  }

/**
 * #c-userSect-info
 */
@media screen and (min-width: 768px) {
  .c-userSect-info {
    display: flex;
    gap: 1rem;
  }
}

.c-userSect-info:not(:first-child) {
  margin-top: 0.7rem;
}

@media screen and (min-width: 768px) {
  .c-userSect-info:not(:first-child) {
    margin-top: 0.7rem;
  }
}

.c-userSect-info__title {
  display: inline;
  font-size: 1.4rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .c-userSect-info__title {
    display: inline-block;
    flex-shrink: 0;
    width: 22%;
  }
}

.c-userSect-info__title::after {
  content: "：";
}

.c-userSect-info__text {
  display: inline;
  font-size: 1.4rem;
  line-height: 1.6;
  white-space: pre-wrap;
}

@media screen and (min-width: 768px) {
  .c-userSect-info__text {
    display: inline-block;
  }
}

.c-userSect-info__text--red {
  font-weight: 600;
  color: var(--color-red);
}

.c-userSectCol-infoInline {
  font-size: 1.4rem;
  line-height: 1.6;
}

  .c-userSectCol-infoInline:not(:first-child) {
    margin-top: 0.7rem;
  }

@media screen and (min-width: 768px) {
  .c-userSectCol-infoInline:not(:first-child) {
    margin-top: 0.7rem;
  }
}

.c-userSectCol-infoInline__title {
  display: inline;
}

  .c-userSectCol-infoInline__title::after {
    content: "：";
  }

.c-userSectCol-infoInline__text {
  display: inline;
}

.c-userSectCol-infoInline__text--bold {
  font-weight: 600;
}

.c-userSectCol-infoInline__text--red {
  font-weight: 600;
  color: var(--color-red);
}

.c-userSectCol-infoInline__text--sIcon {
  font-size: 1.2rem;
}

/**
 * #c-userSect-infoList
 */
.c-userSect-infoList__annotation {
  margin-top: 1.3rem;
  font-size: 1.2rem;
  line-height: 1.6;
  color: var(--color-dark);
}

/**
 * #c-userSect-entry
 */
.c-userSect-entry {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

  .c-userSect-entry:not(:first-child) {
    margin-top: 2rem;
  }

@media screen and (min-width: 768px) {
  .c-userSect-entry {
    flex-direction: row;
    justify-content: space-between;
    gap: 3%;
    padding: 2rem 2.5rem;
    border-top: 1px solid var(--color-gray);
  }

    .c-userSect-entry:not(:first-child) {
      margin-top: 0;
    }
}

.c-userSect-entry__title {
  display: flex;
  align-items: center;
  align-content: flex-start;
  font-size: 1.4rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .c-userSect-entry__title {
    align-items: flex-start;
    width: 36.5%;
    margin-top: 0.9rem;
    line-height: 1.3;
  }
}

@media screen and (min-width: 768px) {
  .c-userSect-entry__title--top-md-gap-short {
    margin-top: 0.2rem;
  }
}

.c-userSect-entry__title .c-required-icon {
  flex-shrink: 0;
  margin-left: 0.8rem;
}

@media screen and (min-width: 768px) {
  .c-userSect-entry__form {
    width: 60.5%;
  }
}

/* 楽天クレカ用のCSS */
@media screen and ((min-width: 658px) and (max-width: 674px)), ((min-width: 736px) and (max-width: 768px)) {
  .c-userSect-entry--rakuten {
    flex-direction: row;
    justify-content: space-between;
    gap: 3%;
    padding: 2rem 2.5rem;
    border-top: 1px solid var(--color-gray);
  }

    .c-userSect-entry--rakuten:not(:first-child) {
      margin-top: 0;
    }

  .c-userSect-entry__title--rakuten {
    align-items: flex-start;
    width: 36.5%;
    margin-top: 0.9rem;
    line-height: 1.3;
  }

  .c-userSect-entry__title--top-md-gap-short--rakuten {
    margin-top: 0.2rem;
  }

  .c-userSect-entry__form--rakuten {
    width: 60.5%;
  }
}

/**
 * #c-userSectCol-info
 */
.c-userSectCol-infoTitle {
  font-size: 1.4rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .c-userSectCol-infoTitle {
    margin-bottom: 1.6rem;
  }
}

/**
 * #c-userSectCol-info
 */
.c-userSectCol-info {
  font-size: 1.4rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .c-userSectCol-info {
    display: flex;
    gap: 2rem;
  }
}

.c-userSectCol-info:not(:first-child) {
  margin-top: 0.7rem;
}

@media screen and (min-width: 768px) {
  .c-userSectCol-info:not(:first-child) {
    margin-top: 0.7rem;
  }
}

.c-userSectCol-info__title {
  display: inline;
  font-size: 1.4rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .c-userSectCol-info__title {
    display: inline-block;
    flex-shrink: 0;
    width: 22%;
  }
}

.c-userSectCol-info__title::after {
  content: "：";
  letter-spacing: -0.4rem;
}

.c-userSectCol-info__text {
  display: inline;
  font-size: 1.4rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .c-userSectCol-info__text {
    display: inline-block;
  }
}

.c-userSectCol-info__text--bold {
  font-weight: 600;
}

/**
 * #c-userSectCol-check
 */
.c-userSectCol-check {
  display: flex;
  align-items: center;
  margin-bottom: 1.2rem;
}

@media screen and (min-width: 768px) {
  .c-userSectCol-check {
    margin-bottom: 1.7rem;
  }
}

.c-userSectCol-check__checkbox {
  flex-shrink: 0;
}

.c-userSectCol-check__label {
  width: 100%;
}

/**
 * #c-userSectCol-radioItem
 */
.c-userSectCol-radioItem {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
}

.c-userSectCol-radioItem__select {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

  .c-userSectCol-radioItem__select input {
    flex-shrink: 0;
  }

.c-userSectCol-radioItem__selectName {
  margin-top: 0.3rem;
}

.c-userSectCol-radioItem__price {
  flex-shrink: 0;
  margin-top: 0.3rem;
}

/**
 * #c-userSectCol-annotation
 */
.c-userSectCol-annotation {
  margin-top: 1.5rem;
}

@media screen and (min-width: 768px) {
  .c-userSectCol-annotation {
    margin-top: 2rem;
  }
}

.c-userSectCol-annotation__text {
  font-size: 1.2rem;
  color: var(--color-dark);
}

  .c-userSectCol-annotation__text:not(:first-child) {
    margin-top: 0.6rem;
  }

@media screen and (min-width: 768px) {
  .c-userSectCol-annotation__text:not(:first-child) {
    margin-top: 0.6rem;
  }
}

.c-userSectCol-annotation__text--warning {
  color: var(--color-red);
}

/**
 * #c-userSectForm-annotation
 */
.c-userSectForm-annotation {
  margin-top: 1.3rem;
}

@media screen and (min-width: 768px) {
  .c-userSectForm-annotation {
    margin-top: 0;
    padding: 0 2.5rem 1.6rem;
  }
}

.c-userSectForm-annotation__text {
  font-size: 1.2rem;
  color: var(--color-dark);
}

  .c-userSectForm-annotation__text:not(:first-child) {
    margin-top: 0.6rem;
  }

@media screen and (min-width: 768px) {
  .c-userSectForm-annotation__text:not(:first-child) {
    margin-top: 0.6rem;
  }
}

.c-userSectForm-annotation__text--warning {
  color: var(--color-red);
}

.c-userSectForm-annotation__link {
  text-decoration: underline;
}

/**
 * #c-addressUpdate
 */
.c-addressUpdateBox-confirm {
  margin-top: 2.2rem;
  padding: 1.5rem;
  text-align: left;
  border: 0.1rem solid var(--color-gray);
  border-radius: 0.5rem;
  vertical-align: middle;
}

.c-addressUpdateBox-form {
  margin: 2.2rem 0 2.1rem;
  padding: 1.5rem;
  text-align: center;
  border: 0.1rem solid var(--color-gray);
  border-radius: 0.5rem;
}

.c-addressUpdateBox-form-content {
  display: inline-flex;
  flex-direction: column;
  gap: 0.25rem;
  text-align: left;
}

.c-addressUpdateList__item {
  padding: 1rem 0 0.2rem;
  border-top: solid 0.1rem var(--color-gray);
}

.c-addressUpdateList__item--content {
  display: flex;
  width: 100%;
  margin: 0;
  align-items: baseline;
}

.addressUpdateList__title {
  width: 30%;
}

.addressUpdateList__text {
  width: 70%;
  margin: 0;
}

/* =============================================================
    Module
============================================================= */
/**
 * #m-userSect
 */
.m-userSect-wrap {
  padding-top: 2.2rem;
  padding-bottom: 2.3rem;
  border-bottom: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userSect-wrap {
    padding-top: 2.7rem;
    padding-bottom: 2.4rem;
  }
}

.m-userSect-wrap:first-child {
  border-top: solid 1px var(--color-gray);
}

.m-userSect-wrap--top:first-child {
  padding-top: 0;
  border-top: none;
}

@media screen and (min-width: 768px) {
  .m-userSect-wrap--top:first-child {
    padding-top: 0.6rem;
  }
}

.m-userSect-wrap--gray {
  padding: 2.2rem 1.6rem 2rem;
  border-radius: 0.5rem;
  border: none !important;
  background-color: var(--color-gray-light);
}

@media screen and (min-width: 768px) {
  .m-userSect-wrap--gray {
    padding: 2.8rem 2.5rem 2.4rem;
    border-radius: 1rem;
  }
}

.m-userSect-wrap--border {
  padding: 2.2rem 1.6rem 2rem;
  border-radius: 0.5rem;
  border: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userSect-wrap--border {
    padding: 2.8rem 2.5rem 2.4rem;
    border-radius: 1rem;
  }
}

.m-userSect-wrap--confirm {
  padding: 0;
  border-top: none;
  border-bottom: none;
}

@media screen and (min-width: 768px) {
  .m-userSect-wrap--confirm {
    padding: 2.8rem 2.5rem 2.4rem;
    border-radius: 1rem;
    border: none;
    background-color: var(--color-gray-light);
  }
}

.m-userSect-wrap--confirm:first-child {
  border-top: none;
}

.m-userSect-wrap--confirm .m-userSect:not(:last-of-type) {
  padding-bottom: 1.9rem;
  margin-bottom: 2.1rem;
  border-bottom: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userSect-wrap--confirm .m-userSect:not(:last-of-type) {
    padding-bottom: 0;
    margin-bottom: 3.4rem;
    border-bottom: none;
  }
}

.m-userSect:not(:last-of-type) {
  margin-bottom: 3.4rem;
}

@media screen and (min-width: 768px) {
  .m-userSect:not(:last-of-type) {
    margin-bottom: 3.3rem;
  }
}

.m-userSect--typeSep {
  display: flex;
  flex-direction: column;
  gap: 2.15rem;
}

@media screen and (min-width: 768px) {
  .m-userSect--typeSep {
    flex-direction: row;
    justify-content: space-between;
    gap: 4rem;
  }
}

.m-userSect--products {
  margin-bottom: 2.45rem;
}

@media screen and (min-width: 768px) {
  .m-userSect--products {
    margin-bottom: 2.7rem;
  }
}

.m-userSect--products:not(:last-of-type) {
  margin-bottom: 2.45rem;
}

@media screen and (min-width: 768px) {
  .m-userSect--products:not(:last-of-type) {
    margin-bottom: 2.7rem;
  }
}

.m-userSect__info {
  width: 100%;
}

.m-userSect__button-wrap {
  text-align: center;
}

@media screen and (min-width: 768px) {
  .m-userSect__button-wrap {
    flex-shrink: 0;
    width: 15%;
  }
}

.m-userSect-button {
  width: 80%;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .m-userSect-button {
    width: 100%;
  }
}

.m-userSect-button:not(:first-child) {
  margin-top: 1rem;
}

.m-userSect-body {
  margin-top: 1.4rem;
}

@media screen and (min-width: 768px) {
  .m-userSect-body {
    margin-top: 1.2rem;
  }
}

/**
 * #m-userSectFrom
 */
.m-userSectForm-wrap {
  padding: 0;
}

@media screen and (min-width: 768px) {
  .m-userSectForm-wrap {
    padding: 2.8rem 0 1rem;
    background-color: var(--color-gray-light);
    border-radius: 1rem;
  }
}

.m-userSectForm-wrap--noneTitle {
  padding-top: 0;
}

@media screen and (min-width: 768px) {
  .m-userSectForm-wrap--noneTitle {
    padding-top: 1rem;
  }
}

.m-userSectForm-wrap--noneTitle .m-userSectForm-body {
  margin-top: 0;
}

.m-userSectForm-wrap--noneTitle .c-userSect-entry:first-child {
  border-top: none;
}

@media screen and (min-width: 768px) {
  .m-userSectForm .c-userSectHeading {
    padding: 0 2.5rem;
  }
}

.m-userSectForm-body {
  margin-top: 1.2rem;
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body {
    margin-top: 1.6rem;
  }
}

.m-userSectForm-body--wide {
  margin-top: 1.3rem;
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body--wide .c-userSect-entry {
    padding: 2rem 2.7rem;
    justify-content: flex-start;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body--wide .c-userSect-entry__title {
    width: 30%;
  }
}

@media screen and (min-width: 992px) {
  .m-userSectForm-body--wide .c-userSect-entry__title {
    width: 23.8%;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body--wide .c-userSect-entry__form {
    width: 60%;
  }
}

@media screen and (min-width: 992px) {
  .m-userSectForm-body--wide .c-userSect-entry__form {
    width: 42.2%;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body--wide .c-userSect-entry__form--wide {
    width: 67%;
  }
}

@media screen and (min-width: 992px) {
  .m-userSectForm-body--wide .c-userSect-entry__form--wide {
    width: 74%;
  }
}

.m-userSectForm-body-contents {
  padding: 2.1rem 0 0;
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body-contents {
    padding: 2rem 0;
    border-top: 1px solid var(--color-gray);
  }
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body-contents__info {
    padding: 0 2.5rem;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body-contents__info--shipping .c-userSect-info__title {
    width: 13%;
  }
}

.m-userSectForm-body-contents__info--creditCard {
  padding-top: 2.1rem;
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body-contents__info--creditCard {
    padding-top: 0;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body-contents__info--creditCard .c-userSect-info__title {
    width: 15%;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body-contents .c-userSect-entry:first-child {
    padding-top: 0;
    border-top: none;
  }
}

.m-userSectForm-body-payment-selector {
  padding: 2.4rem 0 0;
}

@media screen and (min-width: 768px) {
  .m-userSectForm-body-payment-selector .c-userSect-info__title {
    width: 15%;
  }
}

.m-userSectForm-body .consent-to-personal-info-usage {
  display: flex;
  justify-content: center;
}

  .m-userSectForm-body .consent-to-personal-info-usage > .c-btn {
    margin: 1.5rem auto 2.5rem;
    width: 60%;
  }

/**
 * #m-userSectCol
 */
.m-userSectCol {
  display: flex;
  flex-direction: column;
  gap: 1.3rem;
  padding: 2.2rem 0 1.8rem;
  border-top: 1px solid var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userSectCol {
    flex-direction: row;
    justify-content: space-between;
    gap: 3%;
    padding: 2.7rem 0 2.7rem 1.6rem;
  }
}

.m-userSectCol:last-child {
  border-bottom: 1px solid var(--color-gray);
}

.m-userSectCol--border-none {
  border: none;
}

  .m-userSectCol--border-none:last-child {
    border: none;
  }

@media screen and (min-width: 768px) {
  .m-userSectCol-head {
    width: 22%;
  }
}

.m-userSectCol-head__title {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3;
}

@media screen and (min-width: 768px) {
  .m-userSectCol-head__title {
    margin-top: 0.2rem;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectCol-body {
    width: 78%;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectCol-body__inner {
    max-width: 55%;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectCol-typeText {
    padding-right: 1.6rem;
  }
}

.m-userSectCol-typeSep {
  display: flex;
  flex-direction: column;
  gap: 2.05rem;
}

@media screen and (min-width: 768px) {
  .m-userSectCol-typeSep {
    flex-direction: row;
    justify-content: space-between;
    gap: 2rem;
  }
}

.m-userSectCol-typeSep__button-wrap {
  text-align: center;
}

@media screen and (min-width: 768px) {
  .m-userSectCol-typeSep__button-wrap {
    flex: 0 0 43.5%;
  }
}

.m-userSectCol-typeSep-button {
  width: 80%;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .m-userSectCol-typeSep-button {
    width: 100%;
  }
}

.m-userSectCol-typeSep-button:not(:first-child) {
  margin-top: 1rem;
}

.m-userSectCol-typeRadio {
  padding-bottom: 1.8rem;
  border-bottom: solid 1px var(--color-gray);
}

  .m-userSectCol-typeRadio:not(:first-child) {
    margin-top: 1.4rem;
  }

@media screen and (min-width: 768px) {
  .m-userSectCol-typeRadio:not(:first-child) {
    margin-top: 2.6rem;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectCol-typeRadio__item:first-child .c-userSectCol-radioItem {
    padding-top: 0;
    border-top: none;
  }
}

.m-userSectCol-typeRadio__item:last-child .c-userSectCol-radioItem {
  padding-bottom: 0;
}

.m-userSectCol-typeRadio__item:last-child .m-userSectCol-entryFormWrap {
  padding-bottom: 2.2rem;
  margin-top: 1.8rem;
}

@media screen and (min-width: 768px) {
  .m-userSectCol-typeRadio__item .c-userSectCol-radioItem__price {
    padding-right: 1.3rem;
  }
}

.m-userSectCol-typeRadio .c-userSectCol-radioItem {
  padding: 1.4rem 0 1.8rem;
  border-top: 1px solid var(--color-gray);
}

.m-userSectCol-entryFormWrap {
  padding: 2rem 0 4rem;
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userSectCol-entryFormWrap {
    padding: 1.8rem 0 4.2rem;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectCol-entryForm {
    padding: 3rem 3rem 2.8rem;
    border-radius: 1rem;
    background-color: var(--color-gray-light);
  }
}

.m-userSectCol-entryForm__title {
  margin-bottom: 0.9rem;
}

@media screen and (min-width: 768px) {
  .m-userSectCol-entryForm .m-formInputArea-item {
    max-width: 87%;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectCol-entryForm .m-formInputArea-item--fluid {
    max-width: none;
  }
}

.m-userSectCol-entry__button {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  margin: 2.6rem auto 0.4rem;
  width: 80%;
}

@media screen and (min-width: 768px) {
  .m-userSectCol-entry__button {
    flex-direction: row-reverse;
    gap: 2rem;
    margin: 2rem auto 1.2rem;
    width: 90.5%;
  }
}

.m-userSectCol-entry__buttonItem {
  width: 100%;
}

.m-userSectCol-entryFormAdd {
  margin-top: 2.2rem;
}

/**
* #m-userSectTitleCol
*/

.m-userSectTitleCol {
  padding: 1rem 0 1rem;
  background: var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userSectTitleCol {
    padding: 1rem 0 1rem 0.5rem;
  }
}

@media screen and (min-width: 768px) {
  .m-userSectTitleCol-title {
    width: 22%;
  }
}

.m-userSectTitleCol-title__title {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3;
  padding: 0.5rem 0 0.5rem 1rem;
}

@media screen and (min-width: 768px) {
  .m-userSectTitleCol-title_title {
    padding: 0;
    margin-top: 0.2rem;
  }
}

/**
* #m-userPriceSummary
*/
@media screen and (min-width: 768px) {
  .m-userPriceSummary {
    padding: 2.4rem 3rem 2.4rem;
    border: 1px solid var(--color-gray);
    border-radius: 1rem;
  }
}

.m-userPriceSummary-list {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  padding: 1.9rem 0 0;
  border-top: 1px solid var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userPriceSummary-list {
    gap: 0.7rem;
    padding: 0;
    border-top: none;
  }
}

.m-userPriceSummary-item {
  display: flex;
  justify-content: space-between;
  gap: 2.1rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--color-gray);
  font-size: 1.5rem;
  line-height: 1.6;
  border-bottom: 1px solid var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userPriceSummary-item {
    gap: 1.5rem;
    padding-bottom: 0.6rem;
  }
}

.m-userPriceSummary-item--discount {
  color: var(--color-red);
}

.m-userPriceSummary-item__price {
  flex: 0 0 11.7rem;
  text-align: right;
}

@media screen and (min-width: 768px) {
  .m-userPriceSummary-item__price {
    flex: 0 0 20.6rem;
  }
}

.m-userPriceSummary-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2%;
  padding: 1.7rem 0 0;
}

@media screen and (min-width: 768px) {
  .m-userPriceSummary-total {
    gap: 4rem;
    padding: 1.8rem 0 0;
  }
}

.m-userPriceSummary-total__title {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.3;
}

.m-userPriceSummary-total__title--tax {
  font-size: 1.2rem;
  font-weight: 300;
  line-height: 2.16;
}

.m-userPriceSummary-total__price {
  flex: 0 0 58%;
  font-size: 2rem;
  text-align: right;
  font-weight: 600;
  line-height: 1.3;
}

/**
 * #m-userProductSectLine
 */
.m-userProductSectLine__title {
  margin-bottom: 1.3rem;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3;
}

@media screen and (min-width: 768px) {
  .m-userProductSectLine__title {
    margin-bottom: 1.7rem;
  }
}

.m-userProductSectLine__info {
  margin-bottom: 1.1rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectLine__info {
    margin-bottom: 1.6rem;
  }
}

.m-userProductSectLine__info-title {
  margin-bottom: 0.9rem;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3;
}

@media screen and (min-width: 768px) {
  .m-userProductSectLine__info-title {
    margin-bottom: 1.3rem;
  }
}

.m-userProductSectLine__info-text {
  font-size: 1.4rem;
  line-height: 1.6;
}

.m-userProductSectLine__info-annotation {
  margin-top: 1rem;
  font-size: 1.2rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .m-userProductSectLine__info-annotation {
    margin-top: 1.3rem;
  }
}

.m-userProductSectWrapLine {
  padding: 2.2rem 1.6rem 1.9rem;
  border-radius: 1rem;
  background-color: var(--color-gray-light);
}

@media screen and (min-width: 768px) {
  .m-userProductSectWrapLine {
    padding: 2.7rem 2.5rem 2.5rem;
  }
}

.m-userProductSectWrapLine__title {
  margin-bottom: 1.3rem;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3;
}

@media screen and (min-width: 768px) {
  .m-userProductSectWrapLine__title {
    margin-bottom: 1.7rem;
  }
}

.m-userProductSectWrapLine__info {
  margin-bottom: 1.1rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectWrapLine__info {
    margin-bottom: 1.6rem;
  }
}

.m-userProductSectWrapLine__info-title {
  margin-bottom: 0.9rem;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3;
}

@media screen and (min-width: 768px) {
  .m-userProductSectWrapLine__info-title {
    margin-bottom: 1.3rem;
  }
}

.m-userProductSectWrapLine__info-text {
  font-size: 1.4rem;
  line-height: 1.6;
}

.m-userProductSectWrapLine__info-annotation {
  margin-top: 1rem;
  font-size: 1.2rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .m-userProductSectWrapLine__info-annotation {
    margin-top: 1.3rem;
  }
}

@media screen and (min-width: 768px) {
  .m-userProductSectWrapLine .m-productLineUser-col3-md6__item .c-productUser-favorite {
    width: 5.2rem;
    height: 5.2rem;
  }
}

@media screen and (min-width: 768px) {
  .m-userProductSectWrapLine .m-productLineUser-col3-md6__item .c-productUser-favorite__icon {
    margin-top: 0;
    width: 2rem;
  }
}

/**
 * #m-userProductSectCol
 */
.m-userProductSectCol-item {
  padding: 2.4rem 0;
  border-bottom: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-item {
    padding: 3rem 0;
  }
}

.m-userProductSectCol-item:first-child {
  border-top: solid 1px var(--color-gray);
}

.m-userProductSectCol-item__inner {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  gap: 2rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-item__inner {
    flex-direction: row;
    align-items: center;
  }
}

.m-userProductSectCol-item__button-wrap {
  flex-shrink: 0;
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-item__button-wrap {
    width: 26.6%;
  }
}

.m-userProductSectCol-product {
  display: flex;
  align-items: flex-start;
  gap: 1.6rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-product {
    align-items: center;
    gap: 3rem;
  }
}

.m-userProductSectCol-product__pictureWrap {
  flex: 0 0 11.2rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-product__pictureWrap {
    flex: 0 0 13.33%;
    margin-left: 0;
  }
}

.m-userProductSectCol-product__picture {
  min-width: 12.8rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-product__picture:hover {
    opacity: var(--hover-opacity);
    transition: opacity var(--transition-default);
  }
}

.m-userProductSectCol-productDetail {
  width: 100%;
}

.m-userProductSectCol-productDetail__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  margin-top: 0;
  margin-bottom: 0.5rem;
  line-height: 1;
  font-size: 1.2rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-productDetail__title {
    -webkit-line-clamp: 2;
    max-width: 28rem;
    margin-bottom: 0.3rem;
    line-height: 1.6;
    font-size: 1.4rem;
    font-weight: 600;
  }
}

.m-userProductSectCol-productDetailInfo {
  font-size: 1.2rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-productDetailInfo {
    font-size: 1.3rem;
  }
}

.m-userProductSectCol-productDetailInfo:not(:last-child) {
  margin-bottom: 0.2rem;
}

.m-userProductSectCol-productDetailInfo__text {
  display: inline;
}

.m-userProductSectCol-productDetailInfo__title {
  display: inline;
}

  .m-userProductSectCol-productDetailInfo__title::after {
    content: "：";
    letter-spacing: -0.4rem;
  }

.m-orderProductSect-productPrice {
  display: flex;
  align-items: center;
  margin-top: 0.4rem;
  gap: 0.2rem;
}


@media screen and (min-width: 768px) {
  .m-orderProductSect-productPrice {
    margin-top: 0.6rem;
    gap: 0.2rem;
  }
}

.m-orderProductSect-productPrice__price {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
}

.m-orderProductSect-productPrice__price--discount {
  color: var(--color-red);
}

.m-orderProductSect-productPrice__icon {
  flex-shrink: 0;
  display: inline-grid;
  place-items: center;
  height: 1.6rem;
  padding: 0 0.6rem;
  font-size: 1rem;
  color: var(--color-white);
  background-color: var(--color-red);
}

.m-userProductSectCol-button {
  width: 80%;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-button {
    width: 100%;
  }
}

.m-userProductSectCol-buttonList {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 0;
  justify-content: space-between;
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-buttonList {
    flex-direction: column;
    justify-content: center;
    gap: 1rem;
  }
}

.m-userProductSectCol-buttonList__item {
  width: calc(50% - 0.5rem);
}

@media screen and (min-width: 768px) {
  .m-userProductSectCol-buttonList__item {
    width: 100%;
  }
}

/**
 * #m-userProductSect
 */
.m-userProductSect-title {
  display: none;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-title {
    display: flex;
    padding: 0.9rem 0 0.7rem 2.5%;
    font-size: 1.2rem;
    color: var(--color-gray-middle);
    border-bottom: solid 1px var(--color-gray);
  }
}

@media screen and (min-width: 768px) {
  .m-userProductSect-title__info {
    flex: 0 0 72%;
  }
}

@media screen and (min-width: 768px) {
  .m-userProductSect-title__price {
    flex: 0 0 19.5%;
  }
}

@media screen and (min-width: 768px) {
  .m-userProductSect-title__quantity {
    flex: 0 0 8.5%;
  }
}

.m-userProductSect-item {
  position: relative;
  padding: 2rem 0 2rem;
  border-bottom: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userProductSect-item {
    padding: 2rem 0 2rem 2.5%;
  }
}

.m-userProductSect-item:first-child {
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userProductSect-item:first-child {
    border-top: none;
  }
}

.m-userProductSect-item__inner {
  position: relative;
  display: flex;
  justify-content: flex-start;
  gap: 1.6rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-item__inner {
    justify-content: space-between;
    gap: 4.5%;
  }
}

.m-userProductSect-item__pictureWrap {
  flex: 0 0 11.2rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-item__pictureWrap {
    flex: 0 0 19.5%;
    margin-left: 0;
  }
}

.m-userProductSect-item__picture {
  min-width: 11.2rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-item__picture:hover {
    opacity: var(--hover-opacity);
    transition: opacity var(--transition-default);
  }
}

.m-userProductSect-item__info {
  position: relative;
  width: 100%;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-item__info {
    position: static;
    flex: 0 0 76%;
    display: flex;
    align-items: center;
    gap: 5.4%;
    padding-right: 0;
  }
}

.m-userProductSect-item__annotation {
  width: 100%;
  margin-top: 1.4rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-item__annotation {
    margin-top: 1.6rem;
  }
}

.m-userProductSect-item__annotation + .m-userProductSect-item__alert {
  margin-top: 0.4rem;
}

.m-userProductSect-item__annotation-text {
  font-size: 1.2rem;
  line-height: 1.6;
}

.m-userProductSect-item__annotation-text--warning {
  color: var(--color-red);
}

.m-userProductSect-item__alert {
  display: none;
  width: 100%;
  margin-top: 1.4rem;
  font-size: 1.2rem;
  line-height: 1.6;
  white-space: pre-wrap;
  color: var(--color-red);
}

@media screen and (min-width: 768px) {
  .m-userProductSect-item__alert {
    margin-top: 1.6rem;
  }
}

.m-userProductSect-item__alert--active {
  display: block;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-itemDetail {
    flex: 0 0 58%;
  }
}

.m-userProductSect-itemDetail__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  font-size: 1.2rem;
  line-height: 1;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-itemDetail__title {
    -webkit-line-clamp: 2;
    margin-top: 0;
    line-height: 1.6;
    font-size: 1.4rem;
    font-weight: 600;
  }
}

.m-userProductSect-itemDetail__info {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  font-size: 1.2rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-itemDetail__info {
    gap: 0.4rem;
    font-size: 1.3rem;
    line-height: 1.5;
  }
}

.m-userProductSect-itemDetail__info:not(:first-child) {
  margin-top: 0.5rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-itemDetail__info:not(:first-child) {
    margin-top: 0.4rem;
  }
}

.m-userProductSect-itemDetailInfo__title, .m-userProductSect-itemDetailInfo__text {
  display: inline;
}

.m-userProductSect-itemDetailInfo__title::after {
    content: "：";
}

.m-userProductSect-itemDetailInfo__text-red {
  color: var(--color-red);
}

.m-userProductSect-itemPrice {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.5rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-itemPrice {
    flex: 0 0 20.5%;
    align-items: flex-start;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0;
  }
}

.m-userProductSect-itemPrice__price {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
}

.m-userProductSect-itemPrice__price--discount {
  color: var(--color-red);
}

.m-userProductSect-itemPrice__icon {
  flex-shrink: 0;
  display: inline-grid;
  place-items: center;
  height: 1.6rem;
  padding: 0 0.6rem;
  font-size: 1rem;
  color: var(--color-white);
  background-color: var(--color-red);
}

.m-userProductSect-itemQuantity-num {
  margin-top: 0.8rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-itemQuantity-num {
    flex: 0 0 10.7%;
    margin-top: 0;
  }
}

.m-userProductSect-itemQuantity-num__text-wrap {
  font-size: 1.2rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-itemQuantity-num__text-wrap {
    font-size: 1.5rem;
    letter-spacing: 0;
  }

    .m-userProductSect-itemQuantity-num__text-wrap::before {
      content: "×";
    }
}

@media screen and (min-width: 768px) {
  .m-userProductSect-itemQuantity-num__title {
    display: none;
  }
}

.m-userProductSect-itemQuantity-num__title::after {
  content: "：";
}

.m-userProductSect-selectVariation {
  margin-top: 2.05rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-selectVariation {
    margin-top: 0.5rem;
  }
}

.m-userProductSect-selectVariation__button {
  width: 80%;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-selectVariation__button {
    width: 33.2%;
    margin-right: 0;
  }
}

@media screen and (min-width: 992px) {
  .m-userProductSect-selectVariation__button {
    max-width: 21.6rem;
  }
}

.m-userProductSect-selectProductOption {
  margin-top: 2.05rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-selectProductOption {
    margin-top: 0.5rem;
  }
}

.m-userProductSect-selectProductOption__button {
  width: 80%;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .m-userProductSect-selectProductOption__button {
    width: 33.2%;
    margin-right: 0;
  }
}

@media screen and (min-width: 992px) {
  .m-userProductSect-selectProductOption__button {
    max-width: 21.6rem;
  }
}

.m-userProductSect-info {
  margin-top: 1.5rem;
}

.m-userProductSect-info__text--warning {
  color: var(--color-red);
}

/**
 * #m-userProductSectBox
 */
.m-userProductSectBox {
  padding: 2.4rem 1.6rem;
  background-color: var(--color-gray-light);
  border-radius: 1rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectBox {
    padding: 3rem 2.5rem;
  }
}

.m-userProductSectBox--noWrap {
  padding: 0;
  background-color: transparent;
}

.m-userProductSectBox-item:not(:last-child) {
  margin-bottom: 1.2rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectBox-item:not(:last-child) {
    margin-bottom: 1.5rem;
  }
}

.m-userProductSectBox-item__inner {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1.6rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectBox-item__inner {
    gap: 3%;
  }
}

.m-userProductSectBox-item__pictureWrap {
  flex: 0 0 8.05rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectBox-item__pictureWrap {
    flex: 0 0 9.2rem;
    margin-left: 0;
  }
}

.m-userProductSectBox-item__picture {
  min-width: 8.05rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectBox-item__picture:hover {
    opacity: var(--hover-opacity);
    transition: opacity var(--transition-default);
  }
}

.m-userProductSectBox-item__annotation {
  width: 100%;
  margin-top: 1.4rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectBox-item__annotation {
    margin-top: 1.6rem;
  }
}

.m-userProductSectBox-item__annotation-text {
  font-size: 1.2rem;
  line-height: 1.6;
}

.m-userProductSectBox-item__annotation-text--warning {
  color: var(--color-red);
}

.m-userProductSectBox-itemDetail {
  width: 100%;
}

.m-userProductSectBox-itemDetail__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  font-size: 1.2rem;
  line-height: 1;
}

@media screen and (min-width: 768px) {
  .m-userProductSectBox-itemDetail__title {
    -webkit-line-clamp: 2;
    margin-top: 0;
    line-height: 1.6;
    font-size: 1.4rem;
  }
}

.m-userProductSectBox-itemDetail__info {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  font-size: 1.2rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .m-userProductSectBox-itemDetail__info {
    gap: 0.4rem;
    font-size: 1.3rem;
    line-height: 1.5;
  }
}

.m-userProductSectBox-itemDetail__info:not(:first-child) {
  margin-top: 0.5rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSectBox-itemDetail__info:not(:first-child) {
    margin-top: 0.4rem;
  }
}

.m-userProductSectBox-itemDetailInfo__title, .m-userProductSectBox-itemDetailInfo__text {
  display: inline;
}

  .m-userProductSectBox-itemDetailInfo__title::after {
    content: "：";
    letter-spacing: -0.4rem;
  }

/**
 * #m-userProductSelectVariation
 */
.m-userProductSelectVariation-wrap {
  margin-inline: auto;
  padding: 2rem 1.7rem 3rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSelectVariation-wrap {
    padding: 3rem 5rem;
  }
}

.m-userProductSelectVariation {
  display: flex;
  gap: 1.5rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSelectVariation {
    gap: 3rem;
  }
}

.m-userProductSelectVariation__pictureWrap {
  flex-shrink: 0;
  width: 9rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSelectVariation__pictureWrap {
    width: 13.1rem;
  }
}

.m-userProductSelectVariation__info-name {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  overflow: hidden;
  margin-top: -0.4rem;
  font-size: 1.4rem;
  font-weight: 600;
}

@media screen and (min-width: 768px) {
  .m-userProductSelectVariation__info-name {
    margin-top: -0.5rem;
    font-size: 1.8rem;
  }
}

.m-userProductSelectVariation-price {
  margin-top: 0.5rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSelectVariation-price {
    margin-top: 0.3rem;
  }
}

.m-userProductSelectVariation-price__tax {
  font-size: 1rem;
  font-weight: 300;
}

.m-userProductSelectVariation-price .c-userSectCol-infoInline {
  font-size: 1.2rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSelectVariation-price .c-userSectCol-infoInline {
    font-size: 1.4rem;
  }
}

.m-userProductSelectVariation-price .c-userSectCol-infoInline__text {
  font-weight: 600;
}

.m-userProductSelectVariation-choice {
  margin-top: 0.8rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSelectVariation-choice {
    margin-top: 1.6rem;
  }
}

.m-userProductSelectVariation-choice__lead {
  font-size: 1rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSelectVariation-choice__lead {
    font-size: 1.4rem;
  }
}

.m-userProductSelectVariation-choice__select {
  margin-top: 0.9rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSelectVariation-choice__select {
    margin-top: 0.6rem;
  }
}

.m-userProductSelectVariation-choice__selectItem {
  padding-top: 1.2rem;
  padding-bottom: 1.2rem;
}

@media screen and (min-width: 768px) {
  .m-userProductSelectVariation-choice__selectItem {
    padding-top: 1.2rem;
    padding-bottom: 1.1rem;
    font-size: 1.3rem;
    max-width: 31.8rem;
  }
}

/**
 * #m-userNav
 */
.m-userNav {
  padding: 0;
}

.m-userNav__title {
  padding: 1.3rem 1.9rem 1.4rem;
  text-align: center;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.5;
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  color: var(--color-white);
  background-color: var(--color-gray-middle);
}

@media screen and (min-width: 992px) {
  .m-userNav__title {
    padding: 1.2rem 1.9rem 1.2rem;
    text-align: left;
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1.5;
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
    color: var(--color-black);
    background-color: var(--color-gray-light-little);
  }
}

.m-userNav__sections {
  border-left: solid 1px var(--color-gray-middle);
  border-right: solid 1px var(--color-gray-middle);
  border-bottom: solid 1px var(--color-gray-middle);
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
}

@media screen and (min-width: 768px) {
  .m-userNav__sections {
    border-left: solid 1px var(--color-gray-light-little);
    border-right: solid 1px var(--color-gray-light-little);
    border-bottom: solid 1px var(--color-gray-light-little);
  }
}

.m-userNav-section:first-child .m-userNav-section__title {
  padding-top: 1.9rem;
}

.m-userNav-section:last-child .m-userNav-section__menu {
  padding-bottom: 1rem;
}

@media screen and (min-width: 768px) {
  .m-userNav-section:last-child .m-userNav-section__menu {
    padding-bottom: 1.8rem;
  }
}

.m-userNav-section__title {
  padding: 0 1.6rem 1.6rem;
  border-bottom: solid 1px var(--color-gray-middle);
}

@media screen and (min-width: 992px) {
  .m-userNav-section__title {
    padding: 0 1.6rem 1.7rem;
    margin-bottom: 1.2rem;
    border-bottom: solid 1px var(--color-gray-light-little);
  }
}

.m-userNav-section__menu {
  padding-bottom: 2.2rem;
  margin-top: 1.3rem;
}

@media screen and (min-width: 992px) {
  .m-userNav-section__menu {
    padding-bottom: 2.7rem;
    margin-top: 1.2rem;
  }
}

/**
 * #m-userUseCoupon
 */
.m-userUseCoupon {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0 2rem;
  width: 100%;
  padding: 2rem 0;
  margin-top: 0.4rem;
  border-top: solid 1px var(--color-gray);
  border-bottom: solid 1px var(--color-gray);
}

.m-userUseCoupon__title {
  width: calc(100% - 13.3rem);
  font-size: 1.6rem;
  text-align: left;
  font-weight: 700;
}

.m-userUseCoupon__input {
  width: 100%;
}

.m-userUseCoupon + .m-userUseCoupon {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px dashed var(--color-light);
}

.m-userUseCoupon-inputSelect {
  display: block;
}

.m-userUseCoupon-inputSelect__select {
  display: flex;
  flex-shrink: 0;
  font-size: 1.5rem;
  line-height: 1.3;
}

.m-userUseCoupon-inputSelect .c-formInput-item__alert--active {
  margin-top: 1rem;
}

.m-userUseCoupon-selectBox {
  grid-area: gridC;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: space-between;
  margin-top: 1.5rem;
  line-height: 1;
}

.m-userUseCoupon-selectBox__select {
  display: block;
  width: calc(100% - 10.2rem);
  vertical-align: middle;
}

.m-userUseCoupon-selectBox__couponBox {
  display: block;
  width: 9.2rem;
  vertical-align: middle;
  text-align: right;
}

.m-userUseCoupon-inputBox {
  grid-area: gridC;
  display: block;
  margin-top: 1.5rem;
}

  .m-userUseCoupon-selectBox + .m-userUseCoupon-inputSelect__select, .m-userUseCoupon-inputBox + .m-userUseCoupon-inputSelect__select {
    padding-top: 2rem;
    margin-top: 2rem;
    border-top: 1px solid var(--color-gray);
  }

.m-userUseCoupon__canUsePoint {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 1.4rem;
}

.m-userUseCoupon__canUsePoint--strong {
  font-weight: 400;
  color: var(--color-red);
}

.m-userUseCoupon__canUsePoint > a {
  color: var(--color-blue);
}

@media screen and (min-width: 768px) {
  .m-userUseCoupon {
    display: block;
    padding: 0;
    margin-top: 0;
    border-top: none;
    border-bottom: none;
  }

  .m-userUseCoupon__title {
    width: 100%;
    font-size: 1.6rem;
    margin-bottom: 1rem;
    text-align: left;
    font-weight: 700;
  }

  .m-userUseCoupon__input {
    display: block;
  }

  .m-userUseCoupon + .m-userUseCoupon {
    margin-top: 3rem;
    padding-top: 0;
    border-top: none;
  }

  .m-userUseCoupon-inputSelect {
    display: grid;
    grid-template-columns: 44% 56%;
    grid-template-areas: "gridA gridB" "gridC gridC";
  }

  .m-userUseCoupon-inputSelect__select {
    display: flex;
    flex-shrink: 0;
    font-size: 1.5rem;
    line-height: 1.3;
  }

    .m-userUseCoupon-inputSelect__select:nth-of-type(1) {
      grid-area: gridA;
    }

    .m-userUseCoupon-inputSelect__select:nth-of-type(2) {
      grid-area: gridB;
    }

  .m-userUseCoupon-selectBox {
    grid-area: gridC;
  }

  .m-userUseCoupon-inputBox {
    grid-area: gridC;
  }

    .m-userUseCoupon-selectBox + .m-userUseCoupon-inputSelect__select, .m-userUseCoupon-inputBox + .m-userUseCoupon-inputSelect__select {
      padding-top: 0;
      margin-top: 0;
      border: none;
    }

  .m-userUseCoupon__canUsePoint--strong {
    color: var(--color-black);
  }

  .m-userUseCoupon__canUsePoint > a:hover {
    opacity: var(--hover-opacity);
    transition: opacity var(--transition-default);
  }
}

/**
 * #m-userUseMergeCoupon
 */
.m-userUseMergeCoupon {
  display: flex;
  flex-direction: column;
}

.m-userUseMergeCouponTitle {
  margin-bottom: 1.5rem;
  font-size: 1.4rem;
  font-weight: 600;
}

@media screen and (min-width: 992px) {
  .m-userUseMergeCouponTitle {
    font-size: 1.6rem;
  }
}

.m-userUseMergeCouponInfoBox + .m-userUseMergeCouponUseBox {
  padding-top: 2.7rem;
  margin-top: 3rem;
  border-top: solid 1px var(--color-gray);
}

.m-userUseMergeCouponInfo {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media screen and (min-width: 768px) {
  .m-userUseMergeCouponInfo {
    flex-direction: row;
    align-items: center;
  }
}

@media screen and (min-width: 768px) {
  .m-userUseMergeCouponInfo__name {
    flex: 1 1 auto;
    max-width: 32rem;
  }
}

@media screen and (min-width: 768px) {
  .m-userUseMergeCouponInfo__button {
    flex: 0 0 17rem;
  }
}

.m-userUseMergeCouponUseBox {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.m-userUseMergeCouponUseBox__couponBox .c-couponBox {
  padding: 0;
}

.m-userUseMergeCouponUseBox__couponBox .c-couponBox-item {
  padding-top: 2rem;
  padding-bottom: 2rem;
  border-bottom: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userUseMergeCouponUseBox__couponBox .c-couponBox-item {
    border-top: none;
  }
}

.m-userUseMergeCouponUseBox__couponBox .c-couponBox-item:first-child {
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .m-userUseMergeCouponUseBox__couponBox .c-couponBox-item:first-child {
    border-top: none;
  }
}

.m-userUseMergeCouponUseBox__couponBox .c-couponBox-item + .c-couponBox-item {
  margin-top: 0;
}

.m-userUseMergeCouponInput {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media screen and (min-width: 768px) {
  .m-userUseMergeCouponInput {
    flex-direction: row;
  }
}

@media screen and (min-width: 768px) {
  .m-userUseMergeCouponInput__form {
    flex: 1 1 auto;
    max-width: 32rem;
  }
}

.m-userUseMergeCouponInput__form input[type=text] {
  height: 100%;
}

@media screen and (min-width: 768px) {
  .m-userUseMergeCouponInput__button {
    flex: 0 0 17rem;
  }
}

.m-userUseMergeCouponInput-alert {
  display: none;
  margin-top: 0.8rem;
  font-size: 1.2rem;
  white-space: pre-wrap;
  color: var(--color-red);
}

.m-userUseMergeCouponInput-alert--active {
  display: block;
}

/**
 * #m-socialLogin
 */
.m-socialLogin {
  padding: 3.4rem 1.6rem 3rem;
  background-color: var(--color-gray-light);
  border-radius: 1rem;
}

@media screen and (min-width: 992px) {
  .m-socialLogin {
    padding: 3rem;
  }
}

.m-socialLogin__title {
  margin-bottom: 2.4rem;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.6;
  text-align: center;
}

@media screen and (min-width: 992px) {
  .m-socialLogin__title {
    margin-bottom: 1.3rem;
    font-size: 1.6rem;
  }
}

.m-socialLogin__list {
  display: flex;
  flex-wrap: wrap;
  row-gap: 1.2rem;
}

@media screen and (min-width: 768px) {
  .m-socialLogin__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    column-gap: 0;
    row-gap: 1.6rem;
  }
}

.m-socialLogin__item {
  width: 100%;
  overflow: hidden;
}

@media screen and (min-width: 768px) {
  .m-socialLogin__item {
    width: calc((100% - 2rem) / 2);
  }
}

@media screen and (min-width: 992px) {
  .m-socialLogin__item {
    width: 100%;
  }
}

/**
 * #m-paymentDescription
 */
.m-paymentDescription__text-link {
  text-decoration: underline;
}

.m-paymentDescription__text-link-for-atone,
.m-paymentDescription__text-link-for-atone:visited {
  color: var(--color-atone);
}

.m-paymentDescription__text-link-for-atone:hover {
  color: var(--color-atone);
  text-decoration: underline;
}

/* =============================================================
    Site
============================================================= */
/* myPage Common
------------------------------------------------------------- */
.s-myPageContent-head {
  padding-left: 1.6rem;
  padding-bottom: 2.1rem;
  padding-right: 1.6rem;
}

@media screen and (min-width: 768px) {
  .s-myPageContent-head {
    padding-left: 0;
    padding-bottom: 4.05rem;
    padding-right: 0;
  }
}

@media screen and (min-width: 992px) {
  .s-myPageContent-body {
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
  }
}

.s-myPageContent-infoWrap {
  padding-left: 1.6rem;
  padding-right: 1.6rem;
}

@media screen and (min-width: 992px) {
  .s-myPageContent-infoWrap {
    padding-top: 0.2rem;
    padding-left: 0;
    padding-right: 0;
  }
  .s-myPageContent-infoWrap {
    width: 70.2%;
  }
}
@media screen and (max-width: 767px) {
  .s-myPageContent-infoWrap {
    padding-left: 0;
    padding-right: 0;
  }
}

.s-myPageContent-infoWrap__title {
  padding-bottom: 2.1rem;
}

.s-myPageContent-progress {
  padding-top: 3rem;
}

@media screen and (min-width: 768px) {
  .s-myPageContent-progress {
    padding-top: 5rem;
  }
}

.s-myPageContent-progress--top-short {
  padding-top: 2.7rem;
}

@media screen and (min-width: 768px) {
  .s-myPageContent-progress--top-short {
    padding-top: 4.6rem;
  }
}

.s-myPageContent-navWrap {
  padding: 0 1.6rem;
  margin-top: 5.7rem;
}

@media screen and (min-width: 992px) {
  .s-myPageContent-navWrap {
    width: 24.8%;
    padding: 0;
    margin-top: 0;
  }
}

.s-myPageContent-pager {
  margin-top: 4rem;
}

@media screen and (min-width: 768px) {
  .s-myPageContent-pager {
    margin-top: 4rem;
  }
}

.s-medicalQuestionnaireContent-infoWrap {
  padding-left: 1.6rem;
  padding-right: 1.6rem;
}

@media screen and (min-width: 992px) {
  .s-medicalQuestionnaireContent-infoWrap {
    padding-top: 0.2rem;
    padding-left: 0;
    padding-right: 0;
  }
}

@media screen and (min-width: 992px) {
  .s-medicalQuestionnaireContent-infoWrap {
    width: 70.2%;
  }
}

.s-medicalQuestionnaireHeading-title {
  text-align: center;
  padding-bottom: 1.3rem;
}

@media screen and (min-width: 768px) {
  .s-medicalQuestionnaireHeading-title {
    margin-bottom: 0.4rem;
  }
}

/* form Content
------------------------------------------------------------- */
.s-formContent-head {
  padding-bottom: 2.1rem;
}

@media screen and (min-width: 768px) {
  .s-formContent-head {
    padding-bottom: 2.6rem;
  }
}

.s-formContent-progress {
  padding-top: 3rem;
}

@media screen and (min-width: 768px) {
  .s-formContent-progress {
    padding-top: 5rem;
  }
}

.s-formContent-progress--top-short {
  padding-top: 2.7rem;
}

@media screen and (min-width: 768px) {
  .s-formContent-progress--top-short {
    padding-top: 4.6rem;
  }
}

/* =============================================================
    Page
============================================================= */
/* registRegulation
------------------------------------------------------------- */
.p-regulation-terms {
  padding: 2.8rem 1rem 2.6rem 1.5rem;
  border-radius: 1rem;
  background-color: var(--color-gray-light);
}

@media screen and (min-width: 768px) {
  .p-regulation-terms {
    padding: 2.8rem 1.6rem 3rem 2.5rem;
  }
}

.p-regulation-terms__title {
  margin-bottom: 0.8rem;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.3;
}

@media screen and (min-width: 768px) {
  .p-regulation-terms__title {
    margin-bottom: 0.9rem;
  }
}

.p-regulation-terms__lead {
  height: 36.2rem;
  padding-right: 1.6rem;
  overflow-y: scroll;
  font-size: 1.2rem;
}

@media screen and (min-width: 768px) {
  .p-regulation-terms__lead {
    height: 44rem;
    padding-right: 3.4rem;
    font-size: 1.3rem;
    line-height: 1.5;
  }
}

/* registInput
------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  .p-page-registInput .p-userinfo__input-area > div:not(:last-of-type) {
    margin-bottom: 2.4rem;
    padding-bottom: 2.4rem;
    border-bottom: solid 1px var(--color-light);
  }
}

@media screen and (min-width: 768px) {
  .p-page-registInput .p-userinfo__input-area > div:not(:last-of-type) {
    margin-bottom: 3rem;
  }
}

.p-page-registInput .m-userSectForm-body > dl:first-of-type {
  border-top: none;
}

.p-registForm__social {
  padding: 2.5rem 1.6rem 3rem;
  margin-bottom: 2.4rem;
  border-top: solid 1px var(--color-light);
  border-bottom: solid 1px var(--color-light);
}

@media screen and (min-width: 768px) {
  .p-registForm__social {
    padding: 2.5rem 0 0;
    margin-bottom: 4.6rem;
    border-bottom: none;
  }
}

.p-registForm__social .m-socialLogin {
  padding: 0;
  background-color: transparent;
  border-radius: 0;
}

.p-registForm__social .m-socialLogin__title {
  margin-bottom: 1.4rem;
  font-size: 1.6rem;
}

@media screen and (min-width: 768px) {
  .p-registForm__social .m-socialLogin__title {
    margin-bottom: 1rem;
    text-align: left;
  }
}

@media screen and (min-width: 768px) {
  .p-registForm__social .m-socialLogin__title-br {
    display: none;
  }
}

@media screen and (min-width: 992px) {
  .p-registForm__social .m-socialLogin__list {
    justify-content: flex-start;
    column-gap: 2%;
  }
}

@media screen and (min-width: 992px) {
  .p-registForm__social .m-socialLogin__item {
    width: 32%;
  }
}

/* /entry経由の会員登録入力：選択済みの会員区分（ラベル表示）を、ラジオボタン表示時と同じ高さにして項目名と縦位置を揃える */
/* 会員情報変更：変更できない氏名・ふりがな・生年月日（ラベル表示）も同様に揃える */
.p-registForm__memberKindLabel,
.p-registForm__lockedValue {
  display: flex;
  align-items: center;
  min-height: 3rem;
}

/* /entry経由の会員登録確認：利用規約・個人情報の取り扱い（見出し・規約リンク・同意ボタン・案内文を1つの枠にまとめる） */
:root {
  --regist-policy-title-bg: var(--entry-panel-bg);
  --regist-policy-external-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 1h10v10H5z M1 5h2v8h8v2H1z' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/svg%3E");
}

.p-registConfirm__policyBox {
  padding: 2rem 1.6rem;
  border: 1px solid var(--regist-box-line);
  background: var(--regist-panel-bg);
}

.p-registConfirm__policyTitle {
  margin: 0 0 1.6rem;
  padding: 0.8rem 1.2rem;
  background: var(--regist-policy-title-bg);
  font-size: 1.4rem;
  font-weight: 700;
}

/* 規約リンク：「▶「XXX」を見る（別ウィンドウアイコン）」の形で縦に並べる */
.p-registConfirm__policyLinks {
  margin: 0 0 2.4rem;
  font-size: 1.4rem;
}

.p-registConfirm__policyLinks-item + .p-registConfirm__policyLinks-item {
  margin-top: 1.2rem;
}

.p-registConfirm__policyLinks-item::before {
  content: "";
  display: inline-block;
  margin-right: 0.6rem;
  border-top: 0.4rem solid transparent;
  border-bottom: 0.4rem solid transparent;
  border-left: 0.6rem solid var(--regist-theme);
  vertical-align: 0.1rem;
}

.p-registConfirm__policyLinks-link {
  text-decoration: underline;
}

.p-registConfirm__policyLinks-link::after {
  content: "";
  display: inline-block;
  width: 1.2rem;
  height: 1.2rem;
  margin-left: 0.4rem;
  background-color: var(--regist-theme);
  -webkit-mask: var(--regist-policy-external-icon) no-repeat center / contain;
  mask: var(--regist-policy-external-icon) no-repeat center / contain;
  vertical-align: -0.1rem;
}

/* 同意ボタンの下に置く案内文 */
.p-registConfirm__policyText {
  margin: 2rem 0 0;
  font-size: 1.3rem;
  line-height: 1.8;
}

@media (min-width: 768px) {
  .p-registConfirm__policyBox {
    padding: 2.4rem 3.2rem;
  }
}

/* registConfirm
------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  .p-page-registConfirm .m-formHeading-head__stepBar {
    margin-bottom: 3.7rem;
  }
}

@media screen and (max-width: 767px) {
  .p-page-registConfirm .s-formContent-head {
    padding-bottom: 2.2rem;
  }
}

/* registComplete
------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  .p-page-registComplete .m-formHeading-head__stepBar {
    margin-bottom: 3.6rem;
  }
}

@media screen and (min-width: 768px) {
  .p-page-registComplete .m-formHeading-head--onlyTitle {
    padding-bottom: 0;
    border-bottom: none;
  }
}

@media screen and (max-width: 767px) {
  .p-page-registComplete .m-formHeading-head__title {
    border-bottom: none;
    padding-bottom: 0;
  }
}

.p-page-registComplete .s-formContent-head {
  padding-bottom: 1rem;
}

/* /entry経由の会員登録は完了画面を表示せずカートへ自動転送するため、
   自動転送が不要と判定されるまで内容を表示しない */
.js-registComplete-hidden {
  display: none;
}

/* easyRegistInput
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-page-easyRegistInput .m-formHeading-head__title {
    margin-bottom: 1.1rem;
  }
}

@media screen and (max-width: 767px) {
  .p-page-easyRegistInput .p-userinfo__input-area-content {
    margin-bottom: 2.4rem;
    padding-bottom: 2.4rem;
    border-bottom: solid 1px var(--color-light);
  }
}

@media screen and (min-width: 768px) {
  .p-page-easyRegistInput .p-userinfo__input-area-content {
    margin-bottom: 3rem;
  }
}

.p-page-easyRegistInput .p-userinfo__input-area > div:last-of-type {
  padding-bottom: 0;
  border-bottom: none;
}

@media screen and (min-width: 768px) {
  .p-page-easyRegistInput .m-userSectForm-body > dl:first-of-type {
    border-top: none;
  }
}

/* inquiryInput
------------------------------------------------------------- */
/* inquiryConfirm
------------------------------------------------------------- */
.p-inquiry-recaptcha {
  width: 28.6rem;
  margin-top: 3rem;
  margin-right: auto;
  margin-left: auto;
}

@media screen and (min-width: 768px) {
  .p-inquiry-confirmArea .m-userSect--inquiryInfo .c-userSect-info__title {
    width: 15.5%;
  }
}

/* inquiryComplete
------------------------------------------------------------- */
.p-inqruiry-customerSupport {
  padding: 2.2rem 2.1rem 2.4rem;
  margin-top: 2.6rem;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  border-radius: 1rem;
  background-color: var(--color-gray-light);
}

@media screen and (min-width: 768px) {
  .p-inqruiry-customerSupport {
    padding: 2.8rem 2.5rem 2.8rem;
    margin-top: 3.6rem;
    width: 72.8%;
    text-align: center;
  }
}

.p-inqruiry-customerSupport__title {
  margin-bottom: 1.1rem;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.5;
}

@media screen and (min-width: 768px) {
  .p-inqruiry-customerSupport__title {
    margin-bottom: 0.9rem;
    font-size: 1.8rem;
  }
}

.p-inqruiry-customerSupport__info:not(:first-child) {
  margin-top: 0.7rem;
}

@media screen and (min-width: 768px) {
  .p-inqruiry-customerSupport__info:not(:first-child) {
    margin-top: 0.9rem;
  }
}

.p-inqruiry-customerSupport__info--annotation {
  font-size: 1.2rem;
}

@media screen and (min-width: 768px) {
  .p-inqruiry-customerSupport__info--annotation {
    font-size: unset;
  }
}

.p-inqruiry-customerSupport__inquiry {
  display: block;
  margin-top: 2rem;
  margin-right: auto;
  margin-left: auto;
  width: 100%;
  max-width: 29.3rem;
}

@media screen and (min-width: 768px) {
  .p-inqruiry-customerSupport__inquiry {
    margin-top: 2.5rem;
    max-width: 34.5rem;
  }
}

/* login
------------------------------------------------------------- */
.p-login-body {
  display: flex;
  flex-direction: column;
  margin-top: 1.3rem;
}

@media screen and (min-width: 992px) {
  .p-login-body {
    display: grid;
    grid-template-columns: 49.5% auto;
    justify-content: space-between;
    column-gap: 4%;
    margin-top: 2.7rem;
  }
}

@media screen and (min-width: 992px) {
  .p-login-body__login {
    grid-column: 1/2;
    grid-row: 1/2;
  }
}

.p-login-body__social {
  order: 3;
  margin-top: 5rem;
}

@media screen and (min-width: 992px) {
  .p-login-body__social {
    grid-column: 2/3;
    grid-row: 1/3;
    order: 0;
    max-width: 38.8rem;
    margin-top: 0;
  }
}

.p-login-body__social + .p-login-body__entry {
  padding-top: 2rem;
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 992px) {
  .p-login-body__social + .p-login-body__entry {
    grid-column: 1/2;
    grid-row: 2/3;
    padding-top: 2.8rem;
  }
}

.p-login-body__entry {
  padding-top: 2rem;
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 992px) {
  .p-login-body__entry {
    grid-column: 2/3;
    grid-row: 1/2;
    padding: 0;
    border: none;
  }
}

.p-login-body__entry .p-login-form:last-child {
  padding-bottom: 0;
}

.p-login-form {
  display: flex;
  flex-direction: column;
  gap: 1.3rem;
  padding: 0 0 3rem;
}

@media screen and (min-width: 768px) {
  .p-login-form {
    flex-direction: row;
    justify-content: space-between;
    gap: 3%;
    padding: 0 0 3rem 1.1rem;
  }
}

.p-login-form:nth-child(n+2) {
  padding-top: 2rem;
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .p-login-form:nth-child(n+2) {
    padding-top: 2.8rem;
  }
}

@media screen and (min-width: 768px) {
  .p-login-form__head {
    width: 28%;
  }
}

.p-login-form__title {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.5;
}

@media screen and (min-width: 768px) {
  .p-login-form__title {
    margin-top: -0.2rem;
  }
}

@media screen and (min-width: 768px) {
  .p-login-form__body {
    width: 69%;
  }
}

.p-login-form__body .c-formInput-item__annotation,
.p-login-form__body .c-formInput-item__alert {
  margin-top: 0.9rem;
}

  .p-login-form__body .c-formInput-item__annotation + .c-formInput-item__alert {
    margin-top: 0;
  }

.p-login-form__body-button {
  margin-top: 2.6rem;
}

@media screen and (min-width: 768px) {
  .p-login-form__body-button {
    margin-top: 3rem;
  }
}

.p-login-form__body-button-desc {
  display: block;
  margin-top: 0.7rem;
  width: 100%;
  font-size: 1.2rem;
  font-weight: 300;
  line-height: 1.6;
  color: var(--color-black);
}

@media screen and (min-width: 768px) {
  .p-login-form__body-button-desc {
    margin-top: 0.7rem;
    font-size: 1.3rem;
    font-weight: 300;
  }
}

.p-login-form__body-button-desc::after {
  content: "";
  display: block;
  margin-top: -0.4rem;
}

@media screen and (min-width: 768px) {
  .p-login-form__body-button-desc::after {
    margin-top: -0.3rem;
  }
}

.p-login-form__body-button-entry {
  margin-top: 2.5rem;
}

  .p-login-form__body-button-entry:nth-of-type(n + 2) {
    margin-top: 1.2rem;
  }

@media screen and (min-width: 768px) {
  .p-login-form__body-button-entry:nth-of-type(n + 2) {
    margin-top: 1rem;
  }
}

.p-login-form__body-button-guest {
  margin-top: 1.8rem;
}

@media screen and (min-width: 768px) {
  .p-login-form__body-button-guest {
    margin-top: 1.6rem;
  }
}

.p-login-form__body-additional {
  margin-top: 1rem;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .p-login-form__body-additional {
    margin-top: 1.2rem;
    text-align: center;
  }
}

.p-login-form__body-link {
  display: block;
  padding: 2.1rem 1rem;
  width: 100%;
  background-color: var(--color-gray);
  border: 1px solid var(--color-gray);
  border-radius: 0.8rem;
  color: var(--color-gray-dark) !important;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1;
}

@media screen and (min-width: 768px) {
  .p-login-form__body-link {
    padding: 0;
    border: none;
    background: none;
    color: var(--color-black) !important;
    font-size: 1.4rem;
    font-weight: 300;
    line-height: 1.6;
    text-decoration: underline;
  }

    .p-login-form__body-link:hover {
      text-decoration: underline;
    }
}

.p-login-foot {
  padding-top: 3.7rem;
  margin-top: 4rem;
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .p-login-foot {
    padding-top: 3.7rem;
    margin-top: 10rem;
  }
}

/* =============================================================
    ログイン（260911 デザイン反映。Figma「ログイン」PC・SP）
    カート画面（cart_select_account）も p-login-* を使うため、
    ログインページだけに付けた .l-container-wrap--login の中に限定する
    PC（992px〜）：ログイン・新規会員登録の 2 列（各 475px。見出し ＋ 入力欄 320px）
    パスワード再設定（260913。デザインなし＝ログインに合わせた）も同じ .l-container-wrap--login と p-login-* で組む
============================================================= */
:root {
  --login-theme: var(--entry-theme);
  --login-text: var(--entry-text);
  --login-line: var(--color-gray);
  --login-input-border: var(--color-gray-middle);
  --login-page-bg: var(--mypage-page-bg);
}

/* 全体（背景・余白） */
.l-container-wrap--login {
  background: var(--login-page-bg);
  color: var(--login-text);
}
.l-container-wrap--login .l-container-wrap__body {
  padding-top: 2.7rem;
  padding-bottom: 2.7rem;
}
.l-container-wrap--login .l-container-sm {
  padding-left: 2rem;
  padding-right: 2rem;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--login .l-container-wrap__body {
    padding-top: 2.6rem;
    padding-bottom: 9.8rem;
  }
}

/* 見出し */
.l-container-wrap--login .m-formHeading-title {
  margin-bottom: 0;
  padding-bottom: 3rem;
  border-bottom-color: var(--login-line);
}
.l-container-wrap--login .c-form-title {
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--login .m-formHeading-title__lead {
  margin-top: 1rem;
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--login .c-form-title {
    font-size: 3.2rem;
  }
}

/* 2 列 */
.l-container-wrap--login .p-login-body {
  margin-top: 3rem;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--login .p-login-body {
    margin-top: 4rem;
  }
}

@media screen and (min-width: 992px) {
  .l-container-wrap--login .p-login-body {
    grid-template-columns: 1fr 1fr;
    column-gap: 1rem;
  }
}

/* 新規会員登録（スマホは上の線を画面の端まで） */
.l-container-wrap--login .p-login-body__entry {
  margin: 4rem -2rem 0;
  padding: 3rem 2rem 0;
  border-top-color: var(--login-line);
}

@media screen and (min-width: 768px) {
  .l-container-wrap--login .p-login-body__entry {
    margin: 4rem 0 0;
    padding: 4rem 0 0;
  }
}

@media screen and (min-width: 992px) {
  .l-container-wrap--login .p-login-body__entry {
    margin: 0;
    padding: 0;
  }
}

/* 見出し ＋ 本文（本文は PC 320px） */
.l-container-wrap--login .p-login-form {
  gap: 2rem;
  padding: 0;
}
.l-container-wrap--login .p-login-form__title {
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--login .p-login-form {
    justify-content: flex-start;
    gap: 6rem;
    padding-left: 1rem;
  }
  .l-container-wrap--login .p-login-body__entry .p-login-form {
    gap: 4rem;
  }
  .l-container-wrap--login .p-login-form__head {
    flex-shrink: 0;
    width: auto;
  }
  .l-container-wrap--login .p-login-form__title {
    margin-top: 0;
  }
  .l-container-wrap--login .p-login-form__body {
    width: 32rem;
  }
}

/* 入力欄 */
.l-container-wrap--login .p-login-form .m-formInputArea-item {
  margin-bottom: 2rem;
}
.l-container-wrap--login .p-login-form .m-formInputArea-item:last-child {
  margin-bottom: 0;
}
.l-container-wrap--login .p-login-form .c-formInput-itemTitle {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--login .p-login-form .c-formInput-item:not(:last-of-type) {
  margin-bottom: 1rem;
}
/* メールアドレスを記憶する */
.l-container-wrap--login .p-login-form .c-formInput-item__block-item {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.l-container-wrap--login .p-login-form .c-formInput-item__block-button {
  width: 2rem;
  height: 2rem;
  margin-right: 1rem;
}
.l-container-wrap--login .p-login-form .c-formInput-item__block-button:checked {
  border-color: var(--login-theme);
  background-color: var(--login-theme);
}
.l-container-wrap--login .p-login-form .c-formInput-item__block-text {
  margin-top: 0;
}

/* ボタン（W2 の .c-btn-progress は文字色に !important があるため、上書きも !important） */
.l-container-wrap--login .c-btn-progress {
  padding: 2rem 4rem;
  border-color: var(--login-theme);
  border-radius: 5rem;
  background-color: var(--login-theme);
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.l-container-wrap--login .c-btn-progress--border {
  background-color: var(--color-white);
  color: var(--login-theme) !important;
}
.l-container-wrap--login .p-login-form__body-button {
  margin-top: 3rem;
}

/* パスワードを忘れた方はこちら（スマホは枠線のボタン、PC は下線の文字） */
.l-container-wrap--login .p-login-form__body-additional {
  margin-top: 2rem;
}
.l-container-wrap--login .p-login-form__body-link {
  padding: 2rem 4rem;
  border-color: var(--login-input-border);
  border-radius: 5rem;
  background-color: var(--color-white);
  color: var(--login-input-border) !important;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--login .p-login-form__body-additional {
    margin-top: 1rem;
  }
  .l-container-wrap--login .p-login-form__body-link {
    padding: 0;
    background: none;
    color: var(--login-text) !important;
    font-weight: 500;
    letter-spacing: 0.05em;
  }
}

/* 新規会員登録の説明・ボタン */
.l-container-wrap--login .p-login-form__body-lead {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--login .p-login-form__body-button-entry {
  margin-top: 2rem;
}
.l-container-wrap--login .p-login-form__body-button-entry:nth-of-type(n + 2) {
  margin-top: 2rem;
}
.l-container-wrap--login .p-login-form__body-button-desc {
  margin-top: 0.5rem;
  color: var(--login-text);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}
.l-container-wrap--login .p-login-form__body-button-desc::after {
  content: none;
}

/* パスワード再設定の入力（1 列で中央揃え。入力欄は PC 480px） */
@media screen and (min-width: 768px) {
  .l-container-wrap--login .p-login-body--reminder .p-login-form {
    justify-content: center;
    padding-left: 0;
  }
  .l-container-wrap--login .p-login-body--reminder .p-login-form__body {
    width: 48rem;
  }
}

@media screen and (min-width: 992px) {
  .l-container-wrap--login .p-login-body--reminder {
    display: flex;
    justify-content: center;
  }
}

/* パスワード再設定の注意書き（ログイン時に利用するメールアドレスを〜） */
.l-container-wrap--login .p-login-form .c-formInput-item__annotation {
  margin-top: 1rem;
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--login .p-login-form .c-formInput-item__annotation {
    font-size: 1.4rem;
  }
}

/* パスワード再設定の完了（白いカードに文、ボタンは青。会員登録の完了と同じ扱い） */
.l-container-wrap--login .p-passwordReminder-completeArea {
  margin-top: 3rem;
  padding: 3rem 2rem;
  border-radius: 1rem;
  background-color: var(--color-white);
}
.l-container-wrap--login .p-passwordReminder-completeArea__text {
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--login .p-passwordReminder-completeArea {
    margin-top: 4rem;
    padding: 4rem 3rem;
  }
  .l-container-wrap--login .p-passwordReminder-completeArea__text {
    font-size: 1.6rem;
  }
}

/* =============================================================
    会員登録 入力・確認・完了（260911 デザイン反映。Figma「会員登録」PC・SP。確認・完了はデザインなし＝入力に合わせた）
    入力フォームのパーツは会員情報の変更（account_edit）でも使うため、
    会員登録の 3 ページだけに付けた .l-container-wrap--regist の中に限定する
    PC（768px〜）：見出しの右にステップ、区分ごとに白いカード（幅 960px。項目名 320px ＋ 入力欄 530px）
    スマホ：ステップ → 線 → 見出し、区分をまとめて 1 枚の白いカード（項目名の下に入力欄）
    入力欄そのものは全ページ共通の見た目（common.css）のまま
============================================================= */
:root {
  --regist-theme: var(--entry-theme);
  --regist-text: var(--entry-text);
  --regist-page-bg: var(--mypage-page-bg);
  --regist-panel-bg: var(--color-white);
  --regist-line: var(--color-gray);
  --regist-row-line: #e2e2e2;
  --regist-input-border: var(--color-gray-middle);
  --regist-required: #fb3d53;
  --regist-required-bg: rgba(251, 61, 83, 0.1);
  --regist-step: #adadad;
  --regist-step-line: #d9d9d9;
  --regist-box-line: #c9c9c9;
}

/* 全体（背景・余白。スマホはパンくずがフッターの上に来る） */
.l-container-wrap--regist {
  background: var(--regist-page-bg);
  color: var(--regist-text);
}
.l-container-wrap--regist .l-container-wrap__body {
  padding-top: 2.7rem;
  padding-bottom: 6rem;
}
.l-container-wrap--regist .l-container-sm,
.l-container-wrap--regist .l-container-fluid-md {
  padding-left: 2rem;
  padding-right: 2rem;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .l-container-wrap__body {
    padding-top: 2.6rem;
    padding-bottom: 10rem;
  }
}

/* 見出し（スマホ：ステップ → 線 → 見出し・説明、PC：見出しの右にステップ） */
.l-container-wrap--regist .s-formContent-head {
  padding-bottom: 3rem;
}
.l-container-wrap--regist .m-formHeading-head__stepBar {
  padding-bottom: 3rem;
  margin-bottom: 3rem;
  border-bottom-color: var(--regist-line);
}
.l-container-wrap--regist .m-formHeading-head__stepBar-inner {
  width: auto;
}
.l-container-wrap--regist .m-formHeading-head__title {
  margin: 0 0 1rem;
  padding: 0;
  border-bottom: none;
}
.l-container-wrap--regist .m-formHeading-head--onlyTitle .m-formHeading-head__title {
  margin-bottom: 0;
}
.l-container-wrap--regist .c-form-title {
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--regist .m-formHeading-body {
  margin: 0;
}
.l-container-wrap--regist .m-formHeading-body__lead {
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .s-formContent-head {
    padding-bottom: 5rem;
  }
  .l-container-wrap--regist .m-formHeading-head {
    margin-bottom: 1rem;
  }
  .l-container-wrap--regist .m-formHeading-head__stepBar {
    flex-shrink: 0;
    padding-bottom: 0;
    margin-bottom: 0;
  }
  .l-container-wrap--regist .m-formHeading-head__title {
    margin: 0;
    padding-right: 2rem;
  }
  .l-container-wrap--regist .c-form-title {
    font-size: 3.2rem;
  }
  .l-container-wrap--regist .m-formHeading-body__lead {
    width: auto;
    max-width: 60rem;
  }
}

/* ステップ（文字 14px・間隔 8px、丸 15px：済・未＝グレー、今＝青。3 段のステップ（お問合せ）も同じ） */
.l-container-wrap--regist .c-stepbar-four,
.l-container-wrap--regist .c-stepbar-three {
  justify-content: center;
  gap: 0.8rem;
  width: auto;
  min-width: 0;
  max-width: none;
  margin: 0;
}
.l-container-wrap--regist .c-stepbar-four__item,
.l-container-wrap--regist .c-stepbar-four__item:first-child,
.l-container-wrap--regist .c-stepbar-four__item:last-child,
.l-container-wrap--regist .c-stepbar-three__item,
.l-container-wrap--regist .c-stepbar-three__item:first-child,
.l-container-wrap--regist .c-stepbar-three__item:last-child {
  width: 7.3rem;
  color: var(--regist-text);
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}
.l-container-wrap--regist .c-stepbar-four__item--active,
.l-container-wrap--regist .c-stepbar-four__item--active:first-child,
.l-container-wrap--regist .c-stepbar-four__item--active:last-child,
.l-container-wrap--regist .c-stepbar-three__item--active,
.l-container-wrap--regist .c-stepbar-three__item--active:first-child,
.l-container-wrap--regist .c-stepbar-three__item--active:last-child {
  color: var(--regist-theme);
}
.l-container-wrap--regist .c-stepbar-four__item:after,
.l-container-wrap--regist .c-stepbar-four__item:first-child:after,
.l-container-wrap--regist .c-stepbar-three__item:after,
.l-container-wrap--regist .c-stepbar-three__item:first-child:after {
  left: 50%;
  bottom: 0.7rem;
  width: calc(100% + 0.8rem);
  background-color: var(--regist-step-line);
}
.l-container-wrap--regist .c-stepbar-four__text,
.l-container-wrap--regist .c-stepbar-three__text {
  padding-bottom: 2.3rem;
}
.l-container-wrap--regist .c-stepbar-four__text:before,
.l-container-wrap--regist .c-stepbar-three__text:before {
  border: none;
  background-color: var(--regist-step);
}
.l-container-wrap--regist .c-stepbar-four__text--active:before,
.l-container-wrap--regist .c-stepbar-three__text--active:before {
  background-color: var(--regist-theme);
}

/* 入力：カード（スマホは区分をまとめて 1 枚、PC は区分ごと） */
.l-container-wrap--regist form .s-formContent-head:empty {
  display: none;
}
.l-container-wrap--regist .p-userinfo__input-area {
  border-radius: 1rem;
  background-color: var(--regist-panel-bg);
}
.l-container-wrap--regist .p-userinfo__input-area > div:not(:last-of-type) {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.l-container-wrap--regist .p-userinfo__input-area-content + .p-userinfo__input-area-content {
  border-top: 1px solid var(--regist-line);
}
.l-container-wrap--regist .m-userSectForm-wrap {
  padding: 2rem 1rem 1rem;
}
.l-container-wrap--regist .p-userinfo__input-area-content:first-child .m-userSectForm-wrap {
  padding-top: 4rem;
}
.l-container-wrap--regist .p-userinfo__input-area-content:last-child .m-userSectForm-wrap {
  padding-bottom: 2rem;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .p-userinfo__input-area {
    border-radius: 0;
    background-color: transparent;
  }
  .l-container-wrap--regist .p-userinfo__input-area > div:not(:last-of-type) {
    margin-bottom: 3rem;
  }
  .l-container-wrap--regist .p-userinfo__input-area-content + .p-userinfo__input-area-content {
    border-top: none;
  }
  .l-container-wrap--regist .m-userSectForm-wrap,
  .l-container-wrap--regist .p-userinfo__input-area-content:first-child .m-userSectForm-wrap,
  .l-container-wrap--regist .p-userinfo__input-area-content:last-child .m-userSectForm-wrap {
    padding: 2rem 0;
    border-radius: 1rem;
    background-color: var(--regist-panel-bg);
  }
}

/* 区分の見出し（お客様情報・ログイン情報など） */
.l-container-wrap--regist .c-userSectHeading__title {
  margin-bottom: 0;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.l-container-wrap--regist .m-userSectForm-body,
.l-container-wrap--regist .m-userSect-body {
  margin-top: 0;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .m-userSectForm .c-userSectHeading,
  .l-container-wrap--regist .m-userSect .c-userSectHeading {
    padding: 2rem 3rem 0;
  }
}

/* 入力：1 項目（スマホは項目名の下に入力欄、PC は項目名 320px ＋ 入力欄 530px） */
.l-container-wrap--regist .c-userSect-entry,
.l-container-wrap--regist .m-userSectForm-body--wide .c-userSect-entry {
  gap: 1rem;
  margin-top: 0;
  padding: 2rem 0;
  border-top: none;
  border-bottom: 1px solid var(--regist-row-line);
}
.l-container-wrap--regist .c-userSect-entry:last-child,
.l-container-wrap--regist .m-userSectForm-body--wide .c-userSect-entry:last-child {
  padding-bottom: 2rem;
  border-bottom: none;
}
.l-container-wrap--regist .c-userSect-entry__title,
.l-container-wrap--regist .m-userSectForm-body--wide .c-userSect-entry__title {
  align-items: center;
  width: auto;
  margin-top: 0;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.l-container-wrap--regist .c-required-icon {
  flex-shrink: 0;
  width: 4rem;
  margin-left: 1rem;
  padding: 0.3rem 0.5rem;
  border: none;
  border-radius: 0.3rem;
  background-color: var(--regist-required-bg) !important;
  color: var(--regist-required);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 0;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .c-userSect-entry,
  .l-container-wrap--regist .m-userSectForm-body--wide .c-userSect-entry {
    justify-content: flex-start;
    align-items: flex-start;
    gap: 5rem;
    padding: 2rem 3rem 2rem 0;
  }
  .l-container-wrap--regist .c-userSect-entry:last-child,
  .l-container-wrap--regist .m-userSectForm-body--wide .c-userSect-entry:last-child {
    padding-bottom: 1rem;
  }
  /* 項目名は入力欄（高さ 50px）の中央にそろえる。ラジオ・チェックの行は上に詰める */
  .l-container-wrap--regist .c-userSect-entry__title,
  .l-container-wrap--regist .m-userSectForm-body--wide .c-userSect-entry__title {
    flex-shrink: 0;
    width: 32rem;
    margin-top: 1.1rem;
    padding-left: 3rem;
  }
  .l-container-wrap--regist .c-userSect-entry__title--top-md-gap-short,
  .l-container-wrap--regist .m-userSectForm-body--wide .c-userSect-entry__title--top-md-gap-short,
  .l-container-wrap--regist .p-userinfo__input-area-content:first-child .c-userSect-entry:first-child .c-userSect-entry__title {
    margin-top: 0.1rem;
  }
  .l-container-wrap--regist .c-userSect-entry__form,
  .l-container-wrap--regist .m-userSectForm-body--wide .c-userSect-entry__form {
    flex: 1 1 auto;
    width: auto;
    max-width: 53rem;
    min-width: 0;
  }
  /* 項目名のない行（配送先・請求先の「会員情報と同じ」）は項目名の位置から */
  .l-container-wrap--regist .c-userSect-entry__form:first-child,
  .l-container-wrap--regist .m-userSectForm-body--wide .c-userSect-entry__form:first-child {
    max-width: none;
    padding-left: 3rem;
  }
}

/* 入力欄のまわり（縦の間隔 15px・注意書き） */
.l-container-wrap--regist .c-formInput-item:not(:last-of-type) {
  margin-bottom: 1.5rem;
}
.l-container-wrap--regist .c-formInput-item__annotation {
  margin-top: 1rem;
  font-size: 1.2rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.l-container-wrap--regist .c-formInput-item__annotation + .c-formInput-item__annotation {
  margin-top: 0;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .c-formInput-item__annotation {
    margin-top: 1.5rem;
    font-size: 1.4rem;
  }
}

/* 姓・名（スマホは 2 等分・間隔 10px、PC は各 200px・間隔 20px） */
.l-container-wrap--regist .c-formInput-item__col2 {
  justify-content: flex-start;
  gap: 1rem;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .c-formInput-item__col2 {
    gap: 2rem;
  }
  .l-container-wrap--regist .c-formInput-item__col2 input {
    width: 20rem;
    min-width: 0;
  }
}

/* 生年月日（セレクトの高さを入力欄（44px）にそろえる。PC は各 113px） */
.l-container-wrap--regist .c-formInput-item__birthday {
  justify-content: flex-start;
  gap: 0.5rem;
}
.l-container-wrap--regist .c-formInput-item__birthday select {
  flex: 1 1 0;
  min-width: 0;
  padding-left: 1rem;
  padding-right: 2.6rem;
  background-position: calc(100% - 0.8rem) center;
}
.l-container-wrap--regist .c-formInput-item__birthday-text {
  flex-shrink: 0;
  font-size: 1.6rem;
  line-height: 1.6;
}
/* 入力欄（デザイン：高さ 50px・角丸 3px・文字 16px。テキストは薄い青の地、セレクトは白地） */
.l-container-wrap--regist input[type=text],
.l-container-wrap--regist input[type=password],
.l-container-wrap--regist input[type=tel],
.l-container-wrap--regist input[type=email],
.l-container-wrap--regist input[type=number] {
  height: 5rem;
  padding: 0 1.5rem;
  border-color: var(--regist-input-border);
  border-radius: 0.3rem;
  background-color: var(--regist-page-bg);
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.013em;
}
.l-container-wrap--regist input[type=text]::placeholder,
.l-container-wrap--regist input[type=password]::placeholder,
.l-container-wrap--regist input[type=tel]::placeholder,
.l-container-wrap--regist input[type=email]::placeholder,
.l-container-wrap--regist input[type=number]::placeholder {
  color: #b1b2b2;
}
.l-container-wrap--regist select {
  height: 5rem;
  padding-top: 0;
  padding-bottom: 0;
  border-color: var(--regist-input-border);
  border-radius: 0.3rem;
  background-color: var(--regist-panel-bg);
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.013em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist input[type=text],
  .l-container-wrap--regist input[type=password],
  .l-container-wrap--regist input[type=tel],
  .l-container-wrap--regist input[type=email],
  .l-container-wrap--regist input[type=number] {
    padding: 0 2rem;
  }
  .l-container-wrap--regist select {
    padding-left: 2rem;
  }
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .c-formInput-item__birthday select {
    flex: 0 1 11.3rem;
  }
}

/* ラジオ（30px。スマホは間隔 10px、PC は 30px） */
.l-container-wrap--regist .c-formInput-item__inline {
  column-gap: 1rem;
  row-gap: 1rem;
}
.l-container-wrap--regist .c-formInput-item__inline > span {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
}
.l-container-wrap--regist .c-formInput-item__inline label {
  margin: 0;
  font-size: 1.6rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  cursor: pointer;
}
.l-container-wrap--regist input[type=radio] {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  border-color: var(--regist-input-border);
}
.l-container-wrap--regist input[type=radio]:checked {
  border-color: var(--regist-theme);
}
.l-container-wrap--regist input[type=radio]:checked:after {
  width: 1.4rem;
  height: 1.4rem;
  background-color: var(--regist-theme);
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .c-formInput-item__inline {
    column-gap: 3rem;
  }
}

/* チェックボックス（お知らせメール配信・会員情報と同じ。20px） */
.l-container-wrap--regist .c-formInput-item__block-item {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  cursor: pointer;
}
.l-container-wrap--regist .c-formInput-item__block-button {
  width: 2rem;
  height: 2rem;
  margin-right: 1rem;
  border-color: var(--regist-input-border);
}
.l-container-wrap--regist .c-formInput-item__block-button:checked {
  border-color: var(--regist-theme);
  background-color: var(--regist-theme);
}
.l-container-wrap--regist .c-formInput-item__block-text {
  margin-top: 0;
}

/* 郵便番号 ＋ 住所検索（スマホは 2 等分、PC は各 239px。間隔 20px） */
.l-container-wrap--regist .c-formInput-item__zipcode {
  justify-content: flex-start;
  gap: 2rem;
}
.l-container-wrap--regist .c-formInput-item__zipcode input {
  flex: 1 1 0;
  min-width: 0;
}
.l-container-wrap--regist .c-formInput-item__zipcode .c-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  min-width: 0;
  padding: 0 1rem;
  border-color: var(--regist-input-border);
  border-radius: 10rem;
  background-color: var(--regist-input-border);
  font-size: 1.6rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .c-formInput-item__zipcode input,
  .l-container-wrap--regist .c-formInput-item__zipcode .c-btn {
    flex: 0 1 23.9rem;
  }
}

/* ボタン（スマホ：確認する → 戻る の縦並び、PC：戻る｜確認する。各 330px） */
.l-container-wrap--regist .s-formContent-progress {
  padding-top: 4.4rem;
}
.l-container-wrap--regist .m-progress-button-wrap__group {
  gap: 2rem;
}
.l-container-wrap--regist .m-progress-button-wrap__item {
  max-width: 33rem;
}
/* W2 の .c-btn-progress は文字色に !important があるため、上書きも !important */
.l-container-wrap--regist .c-btn-progress {
  padding: 2rem 4rem;
  border-color: var(--regist-theme);
  border-radius: 5rem;
  background-color: var(--regist-theme);
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.l-container-wrap--regist .c-btn-progress--white {
  border-color: var(--regist-input-border);
  background-color: var(--color-white);
  color: var(--regist-input-border) !important;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .s-formContent-progress {
    padding-top: 6rem;
  }
}

/* 会員規約（260914 デザインなし＝入力・確認に合わせた。白いカードに見出しと規約の文、文はカードの中でスクロール） */
.l-container-wrap--regist .p-regulation-terms {
  padding: 4rem 1rem 2rem 2rem;
  border-radius: 1rem;
  background-color: var(--regist-panel-bg);
}
.l-container-wrap--regist .p-regulation-terms__title {
  margin-bottom: 1.5rem;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.l-container-wrap--regist .p-regulation-terms__lead {
  height: 40rem;
  padding-right: 1rem;
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  /* 会員規約の説明は 2 行とも長いため、幅の上限（600px）を外して 1 行ずつに */
  .l-container-wrap--regist .p-page-registRegulation .m-formHeading-body__lead {
    max-width: none;
  }
  .l-container-wrap--regist .p-regulation-terms {
    padding: 4rem 2rem 3rem 3rem;
  }
  .l-container-wrap--regist .p-regulation-terms__lead {
    height: 48rem;
    padding-right: 2rem;
  }
}

/* 会員登録の個人情報保護方針（https://www.fujizakurameisui.jp/privacypolicy/ の見た目に合わせる）
   段落ごとの余白・行間 2、「Cookieの利用について」は青の見出し、利用目的はグレーの箱に黒丸の箇条書き */
:root {
  --privacy-policy-text: #353535;
  --privacy-policy-heading: #029fe4;
  /* 枠の背景（#fafafa）との差を元のページ（白地に #f5f5f5）と同程度にする */
  --privacy-policy-list-bg: #efefef;
}
.p-privacyPolicy {
  color: var(--privacy-policy-text);
  line-height: 2;
}
.p-privacyPolicy p,
.p-privacyPolicy__list {
  margin-bottom: 2.4rem;
}
.p-privacyPolicy p:last-child {
  margin-bottom: 0;
}
.p-privacyPolicy a {
  color: inherit;
  text-decoration: underline;
  word-break: break-all;
}
.p-privacyPolicy__heading {
  margin: 4rem 0 1.6rem;
  color: var(--privacy-policy-heading);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
}
.p-privacyPolicy__list {
  padding: 1.6rem 1.6rem 1.6rem 3.2rem;
  border-radius: 0.8rem;
  background-color: var(--privacy-policy-list-bg);
}
.p-privacyPolicy__list li {
  list-style: disc;
}
.p-privacyPolicy__list li + li {
  margin-top: 0.8rem;
}

@media (min-width: 768px) {
  .p-privacyPolicy__heading {
    margin-top: 5.6rem;
    font-size: 2.6rem;
  }
  .p-privacyPolicy__list {
    padding: 2.4rem 2.4rem 2.4rem 4rem;
  }
}

/* 確認（260914 Figma「会員登録-確認」PC。スマホはデザインなし＝PC に合わせた）
   区分をまとめて 1 枚の白いカード、行の区切り線なし（行の上 20px）、2 つ目以降の区分の見出しの上 40px */
.l-container-wrap--regist .m-userSect-wrap--confirm {
  padding: 0 1rem 3rem;
  border-radius: 1rem;
  background-color: var(--regist-panel-bg);
}
.l-container-wrap--regist .m-userSect-wrap--confirm .m-userSect,
.l-container-wrap--regist .m-userSect-wrap--confirm .m-userSect:not(:last-of-type) {
  margin-bottom: 0;
  padding: 0;
  border-bottom: none;
}
.l-container-wrap--regist .m-userSect-wrap--confirm .c-userSectHeading {
  padding-top: 4rem;
}
.l-container-wrap--regist .m-userSect-wrap--confirm .m-userSect + .m-userSect {
  margin-top: 3rem;
  border-top: 1px solid var(--regist-line);
}
.l-container-wrap--regist .m-userSect-wrap--confirm .m-userSect + .m-userSect .c-userSectHeading {
  padding-top: 2rem;
}
.l-container-wrap--regist .c-userSect-info,
.l-container-wrap--regist .c-userSect-info:not(:first-child) {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0;
  padding: 2rem 0 0;
  border-bottom: none;
}
.l-container-wrap--regist .c-userSect-info__title,
.l-container-wrap--regist .c-userSect-info__title.u-hidden-md-down {
  display: block !important;
  width: auto;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.l-container-wrap--regist .c-userSect-info__title::after {
  content: none;
}
.l-container-wrap--regist .c-userSect-info__text {
  display: block;
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  word-break: break-all;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .m-userSect-wrap--confirm {
    padding: 0 0 4rem;
  }
  .l-container-wrap--regist .m-userSect-wrap--confirm .m-userSect + .m-userSect {
    margin-top: 0;
    border-top: none;
  }
  .l-container-wrap--regist .m-userSect-wrap--confirm .m-userSect + .m-userSect .c-userSectHeading {
    padding-top: 4rem;
  }
  .l-container-wrap--regist .c-userSect-info,
  .l-container-wrap--regist .c-userSect-info:not(:first-child) {
    flex-direction: row;
    align-items: center;
    gap: 5rem;
    padding: 2rem 3rem 0 0;
  }
  .l-container-wrap--regist .c-userSect-info__title,
  .l-container-wrap--regist .c-userSect-info__title.u-hidden-md-down {
    flex-shrink: 0;
    width: 32rem;
    padding-left: 3rem;
  }
  .l-container-wrap--regist .c-userSect-info__text {
    flex: 1 1 auto;
    min-width: 0;
  }
  /* 項目名のない行（配送先・請求先の「会員情報と同じ」）は項目名の位置から */
  .l-container-wrap--regist .c-userSect-info__text:first-child {
    padding-left: 3rem;
  }
}

/* 完了（260914 Figma「会員登録-完了」PC。スマホはデザインなし＝PC に合わせた）
   白いカードに中央そろえ：お礼の文（1 行目は青・下に線）→ 注意書き → お問合せ窓口の枠。ボタンは青 */
.l-container-wrap--regist .p-regist-completeArea {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  padding: 3rem 2rem;
  border-radius: 1rem;
  background-color: var(--regist-panel-bg);
  text-align: center;
}
.l-container-wrap--regist .p-regist-completeArea__lead {
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--regist-box-line);
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.l-container-wrap--regist .p-regist-completeArea__lead-thanks {
  color: var(--regist-theme);
}
.l-container-wrap--regist .p-regist-completeArea__text {
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
/* お問合せ窓口は W2 の設定値（1 つの文章）のため、1 行目（窓口名）だけ太字にする */
.l-container-wrap--regist .p-regist-completeArea__contact {
  padding: 1.5rem 2rem;
  border: 1px solid var(--regist-box-line);
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  text-align: left;
}
.l-container-wrap--regist .p-regist-completeArea__contact::first-line {
  font-weight: bold;
}
.l-container-wrap--regist .p-page-registComplete .c-btn-progress--white {
  border-color: var(--regist-theme);
  background-color: var(--regist-theme);
  color: var(--color-white) !important;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--regist .p-regist-completeArea {
    gap: 3rem;
    padding: 5rem 3rem;
  }
  .l-container-wrap--regist .p-regist-completeArea__lead {
    padding-bottom: 3rem;
    font-size: 2rem;
  }
  .l-container-wrap--regist .p-regist-completeArea__text {
    font-size: 1.6rem;
  }
  .l-container-wrap--regist .p-regist-completeArea__contact {
    padding: 2rem 3rem;
    font-size: 1.6rem;
  }
}

/* =============================================================
    お問合せ 入力・確認・完了（260914 デザインなし＝会員登録に合わせた）
    3 ページに .l-container-wrap--regist（会員登録の見た目を使う）と .l-container-wrap--inquiry を付け、
    会員登録と違うところだけをここで指定する
============================================================= */
/* 入力：区分の見出しがないため、白いカードは項目のまとまりにそのまま付ける（スマホも PC も 1 枚） */
.l-container-wrap--inquiry .m-userSectForm-wrap {
  padding: 2rem 1rem;
  border-radius: 1rem;
  background-color: var(--regist-panel-bg);
}

@media screen and (min-width: 768px) {
  .l-container-wrap--inquiry .m-userSectForm-wrap {
    padding: 2rem 0;
  }
}

/* お問い合わせ内容（テキストエリア）：入力欄と同じ見た目、高さ 200px */
.l-container-wrap--inquiry textarea {
  min-height: 20rem;
  padding: 1.5rem;
  border-color: var(--regist-input-border);
  border-radius: 0.3rem;
  background-color: var(--regist-page-bg);
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.013em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--inquiry textarea {
    padding: 1.5rem 2rem;
  }
}

/* 確認：お問い合わせ内容は入力した改行のまま表示し、PC は項目名を上にそろえる */
.l-container-wrap--inquiry .m-userSect--inquiryInfo .c-userSect-info:last-child .c-userSect-info__text {
  white-space: pre-wrap;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--inquiry .m-userSect--inquiryInfo .c-userSect-info:last-child {
    align-items: flex-start;
  }
}

/* 完了：見出しだけ（ステップは出す・線なし）。白いカードに中央そろえ：お礼の文（1 行目は青・下に線）→ お問合せ窓口の枠。下のボタンは青 */
.l-container-wrap--inquiry .m-formHeading-head--onlyTitle {
  padding-bottom: 0;
  border-bottom: none;
}
.l-container-wrap--inquiry .p-inquiry-completeArea {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  padding: 3rem 2rem;
  border-radius: 1rem;
  background-color: var(--regist-panel-bg);
  text-align: center;
}
.l-container-wrap--inquiry .p-inquiry-completeArea__text {
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--regist-box-line);
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.l-container-wrap--inquiry .p-inquiry-completeArea__text-thanks {
  color: var(--regist-theme);
}
.l-container-wrap--inquiry .p-inqruiry-customerSupport {
  width: 100%;
  margin: 0;
  padding: 1.5rem 2rem;
  border: 1px solid var(--regist-box-line);
  border-radius: 0;
  background-color: transparent;
  text-align: left;
}
.l-container-wrap--inquiry .p-inqruiry-customerSupport__title {
  margin-bottom: 0.5rem;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.l-container-wrap--inquiry .p-inqruiry-customerSupport__info {
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.l-container-wrap--inquiry .p-inqruiry-customerSupport__inquiry {
  max-width: 33rem;
  margin-top: 2rem;
}
/* 窓口の枠の中の「お問い合わせページはこちら」は枠線のボタン（下の「トップページへ戻る」と区別する） */
.l-container-wrap--inquiry .p-inqruiry-customerSupport .c-btn-progress {
  padding: 1.2rem 2rem;
  background-color: var(--color-white);
  color: var(--regist-theme) !important;
  font-size: 1.4rem;
}
.l-container-wrap--inquiry .p-page-inquiryComplete .s-formContent-progress .c-btn-progress--white {
  border-color: var(--regist-theme);
  background-color: var(--regist-theme);
  color: var(--color-white) !important;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--inquiry .p-inquiry-completeArea {
    gap: 3rem;
    padding: 5rem 3rem;
  }
  .l-container-wrap--inquiry .p-inquiry-completeArea__text {
    padding-bottom: 3rem;
    font-size: 2rem;
  }
  .l-container-wrap--inquiry .p-inqruiry-customerSupport {
    width: auto;
    padding: 2rem 3rem;
  }
  .l-container-wrap--inquiry .p-inqruiry-customerSupport__title,
  .l-container-wrap--inquiry .p-inqruiry-customerSupport__info {
    font-size: 1.6rem;
  }
}

/* mailMagazineRegistInput
------------------------------------------------------------- */
.p-mailMagazineRegistInput-inputArea {
  margin-bottom: 2.7rem;
}

@media screen and (min-width: 768px) {
  .p-mailMagazineRegistInput-inputArea {
    margin-bottom: 3rem;
  }
}

.p-mailMagazineRegistInput-foot {
  padding-top: 2rem;
  margin-top: 5rem;
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .p-mailMagazineRegistInput-foot {
    padding: 2.8rem 2.5rem 2.4rem;
    margin-top: 5rem;
    border: none;
    border-radius: 1rem;
    background-color: var(--color-gray-light);
  }
}

/* mailMagazineRegistConfirm
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-mailMagazineRegist-confirmArea .m-userSect--mailMagazineRegistInfo .c-userSect-info__title {
    width: 15.5%;
  }
}

/* mailMagazineRegistComplete
------------------------------------------------------------- */
/* mailMagazineCancelInput
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-mailMagazineCancel-inputArea .c-userSect-entry__title {
    width: 23%;
  }
}

/* mailMagazineCancelComplete
------------------------------------------------------------- */
/* passwordReminderInput
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-passwordReminder-inputArea .c-userSect-entry__title {
    width: 23%;
  }
}

/* passwordReminderComplete
------------------------------------------------------------- */
/* passwordModifyInput
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-passwordModify-inputArea .c-userSect-entry__title {
    width: 23%;
  }
}

/* passwordModifyComplete
------------------------------------------------------------- */
/* serialKeyAuthInput
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-serialKeyAuth-inputArea .c-userSect-entry__title {
    width: 23%;
  }
}

/* serialKeyAuthComplete
------------------------------------------------------------- */
/* myPage Top
------------------------------------------------------------- */
.p-myPage-body {
  display: flex;
  flex-direction: column;
}

@media screen and (min-width: 992px) {
  .p-myPage-body {
    display: flow-root;
    overflow: hidden;
  }
}

.p-myPage-infoWrap {
  order: 1;
  padding: 0 1.6rem;
  margin-bottom: 3.6rem;
}

@media screen and (min-width: 992px) {
  .p-myPage-infoWrap {
    float: right;
    width: 70.2%;
    padding: 0;
    margin-bottom: 3.8rem;
  }
}

.p-myPage-infoWrap__title {
  padding-bottom: 2.1rem;
}

@media screen and (min-width: 768px) {
  .p-myPage-infoWrap__title {
    padding-bottom: 2.4rem;
  }
}

.p-myPage-navWrap {
  order: 2;
  padding: 0 1.6rem;
  margin-bottom: 5rem;
}

@media screen and (min-width: 992px) {
  .p-myPage-navWrap {
    float: left;
    width: 23%;
    padding: 0;
    margin-bottom: 0;
  }
}

@media screen and (min-width: 768px) {
  .p-myPage-info {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    border-radius: 1rem;
    background-color: var(--color-gray-light);
  }
}

.p-myPage-pointInfo__point {
  font-size: 2rem;
  font-weight: 600;
  color: var(--color-primary);
}

.p-myPage-pointInfo__expire {
  font-size: 1.2rem;
  color: var(--color-gray-middle);
}

@media screen and (min-width: 768px) {
  .p-myPage-pointInfo__expire {
    font-size: unset;
    color: unset;
  }
}

@media screen and (min-width: 768px) {
  .p-myPage-pointInfo__expire::before {
    content: "（";
  }
}

@media screen and (min-width: 768px) {
  .p-myPage-pointInfo__expire::after {
    content: "）";
  }
}

.p-myPage-pointInfo .m-userSect-wrap {
  padding-bottom: 0;
  border-bottom: none;
  border-radius: 0;
  background-color: transparent;
}

.p-myPage-pointInfo > .barcode {
  width: 100%;
}

@media screen and (min-width: 768px) {
  .p-myPage-pointInfo .m-userSect-wrap {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 2.4rem;
  }
}

@media screen and (min-width: 768px) {
  .p-myPage-pointInfo .c-userSect-info__title {
    width: 13.8rem;
  }
}

.p-myPage-pointInfo + .p-myPage-userRankInfo {
  margin-top: 2rem;
  padding-top: 2.3rem;
  border-top: solid 1px var(--color-gray-light-little);
}

@media screen and (min-width: 768px) {
  .p-myPage-pointInfo + .p-myPage-userRankInfo {
    margin-top: 0;
    padding-top: 2.8rem;
  }
}

@media screen and (min-width: 768px) {
  .p-myPage-userRankInfo {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    padding: 2.8rem 0 2.4rem;
  }
}

@media screen and (min-width: 768px) {
  .p-myPage-userRankInfo__info {
    flex-grow: 1;
  }
}

.p-myPage-userRankInfo__info-rank {
  font-size: 2rem;
}

.p-myPage-userRankInfo__button {
  max-width: 80%;
  margin-top: 2.1rem;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-myPage-userRankInfo__button {
    flex-shrink: 0;
    max-width: none;
    margin-top: 0;
  }
}

@media screen and (min-width: 768px) {
  .p-myPage-userRankInfo .c-userSect-info__title {
    width: 13.8rem;
  }
}

.p-myPageRankUpInfo-list {
  display: flex;
  flex-direction: column;
  gap: 2.15rem;
  padding: 2rem 1.6rem 2rem;
}

@media screen and (min-width: 768px) {
  .p-myPageRankUpInfo-list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 2.5rem 2.5rem;
    padding: 4.4rem 4.9rem;
  }
}

@media screen and (min-width: 768px) {
  .p-myPageRankUpInfo-list__item {
    width: calc(50% - 1.25rem);
  }
}

@media screen and (min-width: 992px) {
  .p-myPageRankUpInfo-list__item {
    width: calc(33.3333% - 1.6666666667rem);
  }
}

.p-myPageRankUpInfo-Item__head {
  padding: 1rem 1rem 0.7rem;
  text-align: center;
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  font-size: 1.6rem;
  font-weight: 600;
  background-color: var(--color-gray);
}

@media screen and (min-width: 768px) {
  .p-myPageRankUpInfo-Item__head {
    padding-bottom: 0.9rem;
    font-size: 1.4rem;
  }
}

.p-myPageRankUpInfo-Item__body {
  padding: 1.6rem 1.5rem 1.5rem;
  border: solid 1px var(--color-gray);
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
}

@media screen and (min-width: 768px) {
  .p-myPageRankUpInfo-Item__body {
    padding: 1.7rem 1.5rem 1.5rem;
  }
}

@media screen and (min-width: 768px) {
  .p-myPageRankUpInfo-ItemNext {
    min-height: 11rem;
  }
}

.p-myPageRankUpInfo-ItemNext__or {
  display: flex;
  justify-content: center;
  margin: 0.9rem 0;
  align-items: center;
  text-align: center;
  font-size: 1.4rem;
  line-height: 1;
  color: var(--color-gray-dark);
}

@media screen and (min-width: 768px) {
  .p-myPageRankUpInfo-ItemNext__or {
    font-size: 1.2rem;
  }
}

.p-myPageRankUpInfo-ItemNext__or::before, .p-myPageRankUpInfo-ItemNext__or::after {
  content: "";
  display: block;
  flex-grow: 1;
  height: 1px;
  flex-grow: 1;
  background-color: var(--color-gray);
}

.p-myPageRankUpInfo-ItemNext__or::before {
  margin-right: 1rem;
}

.p-myPageRankUpInfo-ItemNext__or::after {
  margin-left: 1rem;
}

.p-myPageRankUpInfo-ItemNext__terms {
  font-size: 1.5rem;
}

@media screen and (min-width: 768px) {
  .p-myPageRankUpInfo-ItemNext__terms {
    font-size: 1.3rem;
  }
}

.p-myPageRankUpInfo-ItemNext__termsPrice-em {
  font-weight: 600;
}

.p-myPageRankUpInfo-ItemDetail {
  border-top: solid 1px var(--color-gray);
  margin-top: 1.4rem;
  padding-top: 1.7rem;
  font-size: 1.2rem;
  color: var(--color-gray-dark);
}

@media screen and (min-width: 768px) {
  .p-myPageRankUpInfo-ItemDetail {
    margin-top: 2rem;
    padding-top: 1.7rem;
  }
}

.p-myPageRankUpInfo-ItemDetail__item:nth-child(n+2) {
  margin-top: 0.5rem;
}

@media screen and (min-width: 768px) {
  .p-myPageRankUpInfo-ItemDetail__item:nth-child(n+2) {
    margin-top: 0.4rem;
  }
}

.p-myPageRankUpInfo-ItemDetail__item-title::after {
  content: "：";
}

.p-myPage-recommendWrap {
  order: 3;
  padding-top: 2.7rem;
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 992px) {
  .p-myPage-recommendWrap {
    float: right;
    padding-top: 0;
    width: 70.2%;
    border: none;
  }
}

.p-myPage-recommendWrap__inner {
  display: flex;
  flex-direction: column;
  row-gap: 3.5rem;
  padding: 0 1.6rem;
}

@media screen and (min-width: 992px) {
  .p-myPage-recommendWrap__inner {
    row-gap: 3.2rem;
    padding: 0;
  }
}

/* 折り返しなしにする場合はコメントを外す
@media screen and (min-width: 768px) {
  .p-myPage-recommendWrap__item .m-productLineUser-col3-md4__item:nth-child(n+5) {
    display: none;
  }
}
*/

/* modifyInput
------------------------------------------------------------- */
.p-modifyInput-input-area:not(:last-child) {
  padding-bottom: 2.1rem;
  margin-bottom: 2.2rem;
  border-bottom: 1px solid var(--color-gray);
}

@media screen and (min-width: 768px) {
  .p-modifyInput-input-area:not(:last-child) {
    padding-bottom: 0;
    margin-bottom: 3rem;
    border-bottom: none;
  }
}

.p-modifyInput-input-area .c-formInput-item__inline {
  column-gap: 2rem;
  margin: 1rem 0;
}

@media screen and (min-width: 768px) {
  .p-modifyInput-input-area .c-formInput-item__inline {
    margin: 0.5rem 0;
  }
}

.p-modifyInput-input-area .c-formInput-item__block {
  row-gap: 0.9rem;
}

@media screen and (min-width: 768px) {
  .p-modifyInput-input-area .c-userSect-entry:first-child {
    padding-top: 1rem;
    border-top: 0;
  }
}

/* modifyConfirm
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-modifyConfirm-info .m-userSect--customer-info .c-userSect-info__title {
    width: 19.5%;
  }
}

@media screen and (min-width: 768px) {
  .p-modifyConfirm-info .m-userSect--useradvanced-info .c-userSect-info__title {
    width: 22%;
  }
}

@media screen and (min-width: 768px) {
  .p-modifyConfirm-info .m-userSect--login-info .c-userSect-info__title {
    width: 15.5%;
  }
}

/* modifyComplete
------------------------------------------------------------- */
/* shippingList
------------------------------------------------------------- */
.p-shippingList-info__head {
  margin-top: 3rem;
  padding-top: 0.9rem;
  padding-bottom: 3rem;
}

@media screen and (min-width: 768px) {
  .p-shippingList-info__head {
    display: flex;
    justify-content: flex-end;
    padding-top: 0.5rem;
  }
}

.p-shippingList-info__progress {
  width: 100%;
}

@media screen and (min-width: 768px) {
  .p-shippingList-info__progress {
    max-width: 32.775rem;
  }
}

.p-shippingList-info__body .m-userSect-wrap:first-child {
  border-top: none;
}

@media screen and (min-width: 768px) {
  .p-shippingList-info__body .m-userSect .c-userSect-info__title {
    width: 13%;
  }
}

.p-shippingList-info__body .c-userSectHeading__title {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2rem;
}

@media screen and (min-width: 768px) {
  .p-shippingList-info__body .c-userSectHeading__title {
    justify-content: flex-start;
    gap: 4rem;
  }
}

.p-shippingList-info__body .c-userSectHeading__title .c-btn-fluid {
  transform: translateY(-0.2rem);
  flex-shrink: 0;
  width: max-content;
  height: 2.6rem;
  margin: 0;
  padding: 0 1rem;
}

.p-shippingList-info__body .c-userSectHeading__title .c-btn-fluid--gray-border {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
}

  .p-shippingList-info__body .c-userSectHeading__title .c-btn-fluid--gray-border:hover {
    cursor: default;
    opacity: 1;
  }

  .p-shippingList-info__body .c-userSectHeading__title .c-btn-fluid--gray-border::before {
    content: "";
    display: block;
    width: 1.2rem;
    aspect-ratio: 4/3;
    background: url(../img/user/icon-check.svg) center/100% no-repeat;
  }

/**
 * #for Noitem
 */
.c-noItem-message + .p-shippingList-info > .p-shippingList-info__head {
  padding: 0;
}

.c-noItem-message-wrap {
    padding-top: 2.2rem;
    padding-bottom: 2.3rem;
}

@media screen and (min-width: 768px) {
  .c-noItem-message-wrap {
    padding-top: 2.7rem;
    padding-bottom: 2.4rem;
  }
}

/* shippingInput
------------------------------------------------------------- */
/* shippingConfirm
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-shippingConfirm-info .m-userSect--shipping-info .c-userSect-info__title {
    width: 13%;
  }
}

/* creditCardInput
------------------------------------------------------------- */
.p-creditcard-recaptcha {
  width: 28.6rem;
  margin-top: 3rem;
  margin-right: auto;
  margin-left: auto;
}
/* creditCardConfirm
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-creditCardConfirm-info .m-userSect--creditCard-info .c-userSect-info__title {
    width: 18%;
  }
}

/* paymentList
------------------------------------------------------------- */
.p-paymentList-info__section:not(:first-child) {
  margin-top: 4rem;
}

.p-paymentList-info__section--others .c-userSectHeading__title {
  margin-bottom: 0;
}

@media screen and (min-width: 768px) {
  .p-paymentList-info__section:not(:first-child) {
    margin-top: 5rem;
  }
}

.p-paymentList-info__heading {
  padding-bottom: 1.4rem;
  font-size: 1.8rem;
  font-weight: 600;
  border-bottom: 1px solid var(--color-light);
}

@media screen and (min-width: 768px) {
  .p-paymentList-info__heading {
    padding-bottom: 1.2rem;
    font-size: 2.4rem;
  }
}

.p-paymentList-info__unregistered {
  margin-bottom: 1.7rem;
  font-size: 1.8rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .p-paymentList-info__unregistered {
    margin-bottom: 3.1rem;
    font-size: 2.4rem;
    line-height: 1.36;
  }
}

.p-paymentList-info__unregistered + .p-paymentList-info__head {
  padding-bottom: 0;
}

.p-paymentList-info__progress {
  width: 100%;
  margin-top: 3rem;
}

@media screen and (min-width: 768px) {
  .p-paymentList-info__progress {
    max-width: 32.775rem;
    margin-left: auto;
  }
}

.p-paymentList-info__nopaidy {
  margin-top: 2rem;
  font-size: 1.8rem;
}

@media screen and (min-width: 768px) {
  .p-paymentList-info__nopaidy {
    margin-top: 3rem;
    font-size: 2.4rem;
  }
}

@media screen and (min-width: 768px) {
  .p-paymentList-info__body .m-userSect .c-userSect-info__title {
    width: 17.8%;
  }
}

.p-paymentList-info__body .m-userSect-wrap:first-child {
  border-top: none;
}

.p-paymentList-info__body .c-userSectHeading__title {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2rem;
}

.p-paymentList-info__body .c-userSectHeading__description {
  margin: 1rem;
}

@media screen and (min-width: 768px) {
  .p-paymentList-info__body .c-userSectHeading__title {
    justify-content: flex-start;
    gap: 4rem;
  }
}

.p-paymentList-info__body .c-userSectHeading__title .c-btn-fluid {
  transform: translateY(-0.2rem);
  flex-shrink: 0;
  width: max-content;
  height: 2.6rem;
  margin: 0;
  padding: 0 1rem;
}

.p-paymentList-info__body .c-userSectHeading__title .c-btn-fluid--gray-border {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
}

  .p-paymentList-info__body .c-userSectHeading__title .c-btn-fluid--gray-border:hover {
    cursor: default;
    opacity: 1;
  }

  .p-paymentList-info__body .c-userSectHeading__title .c-btn-fluid--gray-border::before {
    content: "";
    display: block;
    width: 1.2rem;
    aspect-ratio: 4/3;
    background: url(../img/user/icon-check.svg) center/100% no-repeat;
  }

.p-paymentList-info__body > .c-noItem-message {
  margin-top: 2rem;
}

@media screen and (min-width: 768px) {
  .p-paymentList-info__body > .c-noItem-message {
    margin-top: 3rem;
  }
}

/* withdrawalInput
------------------------------------------------------------- */
/* withdrawalComplete
------------------------------------------------------------- */
/* clickPoint
------------------------------------------------------------- */
.p-clickPointInfo {
  font-size: 1.6rem;
}

@media screen and (min-width: 768px) {
  .p-clickPointInfo {
    padding-top: 2.9rem;
    text-align: center;
  }
}

.p-clickPointInfo__primary {
  font-size: 1.8rem;
  font-weight: bold;
  color: var(--color-primary);
}

/* favoriteList
------------------------------------------------------------- */
/* pointHistoryList
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-pointList-content__user .c-userSect-info__title {
    width: 13.7rem;
  }
}

.p-pointList-content__list {
  margin-top: 3rem;
}

@media screen and (min-width: 768px) {
  .p-pointList-content__list {
    margin-top: 4rem;
  }
}

@media screen and (min-width: 768px) {
  .p-pointList-content__list .c-userSect-info__title {
    width: 20.8%;
  }
}

/* couponBox
------------------------------------------------------------- */
.p-couponBox-content__list .m-userSect-wrap:first-child {
  border-top: none;
  padding-top: 0;
}

@media screen and (min-width: 768px) {
  .p-couponBox-content__list .c-userSect-info__title {
    width: 19.8%;
  }
}

/* orderHistoryList
------------------------------------------------------------- */
.p-orderHistoryList-content__list .m-userSect-wrap:first-child {
  border-top: none;
}

.p-orderHistoryList-content__list .m-userProductSectCol-item:first-child {
  border-top: none;
}

@media screen and (min-width: 768px) {
  .p-orderHistoryList-content__list .c-userSect-info__title {
    width: 18%;
  }
}

.p-historyListChange {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  width: 100vw;
  margin-left: -1.6rem;
  margin-bottom: 0.7rem;
  border-bottom: solid 1px var(--color-gray);
  font-size: 1.4rem;
}

@media screen and (min-width: 768px) {
  .p-historyListChange {
    gap: 1.03rem;
    width: 100%;
    margin-left: 0;
    margin-bottom: 0;
    font-size: 1.6rem;
  }
}

.p-historyListChange__item {
  position: relative;
  width: calc(50% - 0.425rem);
}

@media screen and (min-width: 768px) {
  .p-historyListChange__item {
    width: 15.1rem;
  }
}

.p-historyListChange__button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 5.9rem;
  text-align: center;
  border: solid 1px;
  border-bottom: none;
  border-color: var(--color-gray-light);
  border-radius: 0.4rem 0.4rem 0 0;
  background-color: var(--color-gray-light);
}

.p-historyListChange__button--current {
  pointer-events: none;
  border-color: var(--color-gray);
  background: var(--color-white);
  font-weight: 600;
}

  .p-historyListChange__button--current::before {
    content: "";
    display: block;
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 1px;
    border-left: solid 1px;
    border-right: solid 1px;
    border-color: var(--color-gray);
    background-color: var(--color-white);
  }

/* orderHistoryDetail
------------------------------------------------------------- */
.p-orderHistoryDetail-content__info .m-userSectCol:first-child {
  border-top: none;
  padding-top: 0;
}

@media screen and (min-width: 768px) {
  .p-orderHistoryDetail-content__price {
    margin-top: 5rem;
  }
}

/* recieveMailList
------------------------------------------------------------- */
.p-recieveMailList-content__list .m-userSect-wrap:first-child {
  padding-top: 0.1rem;
  border-top: none;
}

@media screen and (min-width: 768px) {
  .p-recieveMailList-content__list .m-userSect-wrap:first-child {
    padding-top: 0.5rem;
  }
}

@media screen and (min-width: 768px) {
  .p-recieveMailList-content__list .c-userSect-info__title {
    width: 21%;
  }
}

/* recieveMailDetail
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-recieveMailDetail-content__overview .c-userSect-info__title {
    width: 24.8%;
  }
}

.p-recieveMailDetail-content__body {
  padding-top: 2.4rem;
  padding-bottom: 2.4rem;
  border-bottom: 1px solid var(--color-gray);
  font-size: 1.4rem;
}

@media screen and (min-width: 768px) {
  .p-recieveMailDetail-content__body {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}

/* fixedPurchaseList
------------------------------------------------------------- */
.p-fixedPurchaseList-content__list .m-userSect-wrap:first-child {
  border-top: none;
  padding-top: 0;
}

@media screen and (min-width: 768px) {
  .p-fixedPurchaseList-content__list .c-userSect-info__title {
    width: 31.5%;
  }
}

/* fixedPurchaseDetail
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-fixedPurchaseDetail-content {
    margin-top: 0.4rem;
  }
}

@media screen and (min-width: 768px) {
  .p-fixedPurchaseDetail-content__products {
    border-top: solid 1px var(--color-gray);
  }
}

@media screen and (min-width: 768px) {
  .p-fixedPurchaseDetail-content__price {
    margin-top: 5rem;
  }
}

.p-fixedPurchaseDetail-content .m-userSectCol:first-child {
  border-top: none;
}

@media screen and (min-width: 768px) {
  .p-fixedPurchaseDetail-content .m-userUseCoupon-selectBox {
    max-width: 96%;
  }
}

@media screen and (min-width: 768px) {
  .p-fixedPurchaseDetail-content .m-userUseCoupon-inputBox {
    max-width: 87%;
  }
}

/* fixedPurchaseCancelInput
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-fixedPurchaseCancelInput-content {
    margin-top: 0.4rem;
  }
}

.p-fixedPurchaseCancelInput-content__entry {
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .p-fixedPurchaseCancelInput-content__products {
    border-top: solid 1px var(--color-gray);
  }
}

.p-fixedPurchaseCancelInput-content .m-userSectCol:first-child {
  border-top: none;
}

/* fixedPurchaseCancelConfirm
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-fixedPurchaseCancelConfirm-content {
    margin-top: 0.4rem;
  }
}

.p-fixedPurchaseCancelConfirm-content__entry {
  border-top: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .p-fixedPurchaseCancelConfirm-content__products {
    border-top: solid 1px var(--color-gray);
  }
}

.p-fixedPurchaseCancelConfirm-content .m-userSectCol:first-child {
  border-top: none;
}

/* fixedPurchaseCancelComplete
------------------------------------------------------------- */
/* socialLoginCooperation
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-socialLogin-content__list {
    border-bottom: solid 1px var(--color-gray);
  }
}

.p-socialLogin-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3%;
  width: 100%;
  flex-wrap: wrap;
}

@media screen and (min-width: 768px) {
  .p-socialLogin-item {
    gap: 3%;
    padding: 2rem 0;
    border-top: solid 1px var(--color-gray);
  }
}

.p-socialLogin-item:nth-child(n+2) {
  padding: 1.6rem 0 0;
}

@media screen and (min-width: 768px) {
  .p-socialLogin-item:nth-child(n+2) {
    padding: 2rem 0;
  }
}

.p-socialLogin-item__media {
  width: 70.5%;
}

@media screen and (min-width: 768px) {
  .p-socialLogin-item__media {
    width: 36%;
  }
}

.p-socialLogin-item__media .c-btn-socialLogin__button--image > img {
  margin: 0;
}

.p-socialLogin-item__status {
  display: none;
}

@media screen and (min-width: 768px) {
  .p-socialLogin-item__status {
    display: block;
    width: 37%;
    font-size: 1.4rem;
  }
}

.p-socialLogin-item__button {
  width: 26.5%;
}

@media screen and (min-width: 768px) {
  .p-socialLogin-item__button {
    width: 21%;
  }
}

.p-socialLogin-item__message {
  width: 100%;
  margin-top: 1rem;
  font-size: 1.2rem;
}

@media screen and (min-width: 768px) {
  .p-socialLogin-item__message {
    width: 21%;
  }
}

.p-socialLogin-item__status-title::after {
  content: "：";
  letter-spacing: -0.4rem;
}

/* invoiceList
------------------------------------------------------------- */
.p-invoiceList-info__head {
  padding-top: 0.9rem;
  padding-bottom: 3rem;
}

@media screen and (min-width: 768px) {
  .p-invoiceList-info__head {
    display: flex;
    justify-content: flex-end;
    padding-top: 0.5rem;
  }
}

.p-invoiceList-info__progress {
  width: 100%;
}

@media screen and (min-width: 768px) {
  .p-invoiceList-info__progress {
    max-width: 32.775rem;
  }
}

@media screen and (min-width: 768px) {
  .p-invoiceList-info__body .m-userSect .c-userSect-info__title {
    width: 21%;
  }
}

.m-userSectCol-subscriptionPaymentDescription > div {
    padding-bottom: 1.8rem;
}

/* invoiceInput
------------------------------------------------------------- */
/* invoiceConfirm
------------------------------------------------------------- */
@media screen and (min-width: 768px) {
  .p-invoiceConfirm-info .m-userSect .c-userSect-info__title {
    width: 18%;
  }
}

/* productArrivalMailList
------------------------------------------------------------- */
.p-productArrivalMailList-info {
  padding-top: 0.3rem;
}

@media screen and (min-width: 768px) {
  .p-productArrivalMailList-info {
    padding-top: 0.9rem;
  }
}

.p-productArrivalMailList-item {
  display: grid;
  grid-template-columns: 21.5% 1fr;
  grid-template-rows: auto 1.7rem auto 2.6rem auto;
  column-gap: 1.63rem;
  align-items: center;
  padding-bottom: 2.4rem;
  border-bottom: solid 1px var(--color-gray);
}

@media screen and (min-width: 768px) {
  .p-productArrivalMailList-item {
    grid-template-columns: 14% 3% 1fr 5.84% 15.09%;
    grid-template-rows: auto auto;
    column-gap: 0;
    padding-bottom: 3rem;
  }
}

@media screen and (min-width: 992px) {
  .p-productArrivalMailList-item {
    grid-template-columns: 18.94% 4.58% 1fr 5.84% 15.09%;
  }
}

.p-productArrivalMailList-item:not(:first-child) {
  padding-top: 2.4rem;
}

@media screen and (min-width: 768px) {
  .p-productArrivalMailList-item:not(:first-child) {
    padding-top: 3rem;
  }
}

.p-productArrivalMailList-item__pictureWrap {
  grid-area: 1/1/2/2;
}

@media screen and (min-width: 768px) {
  .p-productArrivalMailList-item__pictureWrap {
    grid-area: 1/1/3/2;
  }
}

.p-productArrivalMailList-item__title {
  grid-area: 1/2/2/3;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 1.2rem;
}

@media screen and (min-width: 768px) {
  .p-productArrivalMailList-item__title {
    grid-area: 1/3/2/4;
    -webkit-line-clamp: 1;
    margin-top: 0.6rem;
    font-size: 1.6rem;
    font-weight: 600;
  }
}

.p-productArrivalMailList-item__info {
  grid-area: 3/1/4/3;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

@media screen and (min-width: 768px) {
  .p-productArrivalMailList-item__info {
    grid-area: 2/3/3/4;
    gap: 0.9rem;
    align-self: start;
    margin-top: 0.3rem;
  }
}

.p-productArrivalMailList-item__button {
  grid-area: 5/1/6/3;
  text-align: center;
}

  .p-productArrivalMailList-item__button .c-btn-fluid {
    width: 80%;
    font-weight: 600;
  }

@media screen and (min-width: 768px) {
  .p-productArrivalMailList-item__button {
    grid-area: 1/5/3/6;
  }

    .p-productArrivalMailList-item__button .c-btn-fluid {
      width: 100%;
    }
}

.p-productArrivalMailList-itemInfo {
  font-size: 1.4rem;
  line-height: 1.6;
}

.p-productArrivalMailList-itemInfo__title {
  display: inline-block;
}

  .p-productArrivalMailList-itemInfo__title::after {
    content: "：";
    letter-spacing: -0.4rem;
  }

.p-productArrivalMailList-itemInfo__text {
  display: inline-block;
}

.p-productArrivalMailList-itemInfo__form {
  display: inline-block;
}

.p-productArrivalMailList-itemInfo__limit {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
}

.p-productArrivalMailList-itemInfo__limit-selectbox {
  width: 9.1rem;
}

@media screen and (min-width: 768px) {
  .p-productArrivalMailList-itemInfo__limit-selectbox {
    width: 10.2rem;
  }
}

@media screen and (min-width: 768px) {
  .m-userSect__referralUrlCopy-button-wrap {
    flex-shrink: 0;
    width: 23.5%;
  }
}

/* receiptDownload
------------------------------------------------------------- */

/* entry（新規お申込み）
    260913 デザイン反映（Figma「商品選択_design」PC・SP）
    スマホを先に書き、768px〜で PC に切り替え。本文の幅 902px（白い枠 1100px）は 1200px〜
    このページのヘッダーは電話番号・ログイン・カート（マイページ・ログアウト）を出さない
    （スマホのハンバーガーメニューは残す）
------------------------------------------------------------- */
:root {
  --entry-theme: #029fe4;
  --entry-theme-dark: #155a87;
  --entry-panel-bg: #f0f8fe;
  --entry-panel-border: #cde8f8;
  --entry-badge-required: #e53935;
  --entry-badge-optional: #9e9e9e;
  --entry-text-muted: #666;
  --entry-text-subtle: #888;
  --entry-text: #333;
  --entry-text-secondary: #555;
  --entry-border: #ccc;
  --entry-border-panel: #ddd;
  --entry-divider: #eee;
  --entry-placeholder-bg: #e4e4e4;
  --entry-placeholder-color: #aaa;
  --entry-option-selected-bg: #e8f3fb;
  --entry-price-bg: #f0f7ff;
  --entry-price-border: #b3d4f5;
  --entry-cta: #fb3d53;
  --entry-cta-bg: rgba(251, 61, 83, 0.1);
  --entry-line: #c9c9c9;
  --entry-note: #676767;
  --entry-support: #adadad;
  --entry-radio-bg: #f3f3f3;
  --entry-selected-bg: #def3fc;
  --entry-type-selected-bg: rgba(34, 171, 231, 0.15);
  --entry-description-bg: #f5fbfe;
  --entry-guidance-bg: #d6f6fb;
  --entry-shipping-bg: #f9f9f9;
  --entry-shipping-label-bg: #d9d9d9;
  --entry-marker: rgba(255, 238, 0, 0.5);
  --entry-compare-popup-max-width: 74rem;
  --entry-compare-popup-outer-space: 2rem;
  --entry-compare-popup-outer-space-pc: 4rem;
  --entry-compare-popup-inner-space: 2.4rem 1.6rem;
  --entry-compare-popup-inner-space-pc: 3.2rem;
  --entry-compare-header-bg: #1c4f82;
  --entry-compare-row-label-bg: #eef5fb;
  --entry-compare-border: #cfe0ee;
  --entry-compare-accent: #e2569c;
}

/* ヘッダー（このページだけ電話番号・ログイン・カートを出さない） */
body:has(.l-container-wrap--entry) .s-header-tel,
body:has(.l-container-wrap--entry) .s-header-utilityList__item--link {
  display: none;
}

/* 全体（青い背景・白い枠） */
.l-container-wrap--entry {
  padding: 2rem 0 3rem;
  background: var(--entry-theme);
  color: var(--entry-text);
}
.l-container-wrap--entry .l-container {
  max-width: 114rem;
  padding-left: 2rem;
  padding-right: 2rem;
}
.p-entry {
  max-width: none;
  margin: 0 auto;
  padding: 2rem 2rem 6rem;
  border-radius: 2.4rem;
  background: var(--color-white);
}

@media screen and (min-width: 768px) {
  .l-container-wrap--entry {
    padding: 4.7rem 0 12.3rem;
  }
  .p-entry {
    padding: 4.6rem 4rem 9.8rem;
  }
}

@media screen and (min-width: 1200px) {
  .p-entry {
    padding-left: 9.9rem;
    padding-right: 9.9rem;
  }
}

/* 見出し・ステップ（カート〜完了） */
.p-entry__head {
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-start;
  gap: 3rem;
  margin-bottom: 4rem;
}
.p-entry__heading {
  margin: 0;
  color: var(--entry-theme);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: left;
}
.p-entry-flow {
  position: relative;
  display: flex;
  gap: 0.5rem;
  align-self: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-entry-flow::before {
  content: '';
  position: absolute;
  z-index: 0;
  left: 2.9rem;
  right: 2.9rem;
  bottom: 0.75rem;
  height: 1px;
  background: var(--entry-line);
}
.p-entry-flow__item {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
  width: 5.8rem;
  color: var(--entry-text);
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  white-space: nowrap;
}
.p-entry-flow__item::after {
  content: '';
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: var(--entry-support);
}
.p-entry-flow__item--current {
  color: var(--entry-theme);
}
.p-entry-flow__item--current::after {
  background: var(--entry-theme);
}

@media screen and (min-width: 768px) {
  .p-entry__head {
    flex-direction: row;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 10rem;
  }
  .p-entry__heading {
    font-size: 3.2rem;
  }
  .p-entry-flow {
    gap: 0.8rem;
    align-self: flex-start;
  }
  .p-entry-flow::before {
    left: 3.65rem;
    right: 3.65rem;
  }
  .p-entry-flow__item {
    width: 7.3rem;
    font-size: 1.4rem;
  }
}

/* セクション・見出し（しずくのマーク。先頭のセクションだけ濃く） */
.entry-step {
  margin-bottom: 5rem;
}
.entry-step__title {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 1rem;
  margin: 0 0 1rem;
  color: var(--entry-theme);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-step__title::before {
  content: '';
  flex-shrink: 0;
  width: 1.8rem;
  height: 2.3rem;
  background: url(../img/user/entry/icon_entry_heading.svg) no-repeat center / contain;
  opacity: 0.2;
}
.entry-step:first-child .entry-step__title::before {
  opacity: 1;
}
.entry-badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  padding: 0.3rem 0.5rem;
  border-radius: 0.3rem;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 0;
}
.entry-badge--required {
  background: var(--entry-cta-bg);
  color: var(--entry-cta);
}
.entry-badge--optional {
  background: var(--entry-radio-bg);
  color: var(--entry-note);
}

@media screen and (min-width: 768px) {
  .entry-step {
    margin-bottom: 8rem;
  }
  .entry-step__title {
    margin-bottom: 2rem;
    font-size: 2.4rem;
  }
  .entry-step__title::before {
    width: 2.2rem;
    height: 2.8rem;
  }
}

/* ラジオボタン（丸 20px。選ぶと内側に 10px の点・文字が青） */
.entry-radio {
  display: inline-flex;
  align-items: center;
  gap: 1.5rem;
  margin: 0;
  color: var(--entry-text);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  cursor: pointer;
}
.entry-radio input[type=radio],
.entry-tab__radio {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  margin: 0;
  border: 1px solid var(--entry-line);
  border-radius: 50%;
  background: var(--entry-radio-bg);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
}
.entry-radio input[type=radio]:checked,
.entry-tab--selected .entry-tab__radio {
  border-color: var(--entry-theme);
  background: radial-gradient(circle, var(--entry-theme) 0 0.5rem, var(--entry-radio-bg) 0.5rem);
}
.entry-radio input[type=radio]:disabled {
  cursor: not-allowed;
}
.entry-radio:has(input[type=radio]:checked) {
  color: var(--entry-theme);
}

/* お客様区分（個人／法人） */
/* 個人・法人のカードは、画面が狭くても 2 枚を横に並べる（260925 ユーザー指示。335px 以下で段落ちしていた） */
.entry-icon-cards {
  display: flex;
  flex-wrap: nowrap;
  gap: 2rem;
}
.entry-icon-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  flex: 1 1 calc(50% - 1rem);
  min-width: 0;
  max-width: 21rem;
  height: 13.6rem;
  padding: 1.9rem 1rem 0.9rem;
  border: 1px solid var(--entry-line);
  border-radius: 1.2rem;
  background: var(--color-white);
  text-align: center;
  cursor: pointer;
}
.entry-icon-card:hover,
.entry-icon-card--selected {
  border-color: var(--entry-theme);
}
.entry-icon-card--selected {
  background: var(--entry-type-selected-bg);
}
.entry-icon-card--disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.entry-icon-card--disabled:hover {
  border-color: var(--entry-line);
}
.entry-icon-card--disabled.entry-icon-card--selected:hover {
  border-color: var(--entry-theme);
}
.entry-icon-card__img {
  width: 100%;
  max-width: 9.6rem;
  height: 6.4rem;
}
.entry-icon-card__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media screen and (min-width: 768px) {
  .entry-icon-card {
    flex-basis: 21rem;
    height: 15rem;
    padding: 2.2rem 1rem 1.6rem;
  }
}

/* プラン・キャンペーンの選択（横並びのボタン。スマホは縦積み） */
.entry-tabs {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 3rem;
}
.entry-tab {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  height: 5rem;
  padding: 0.5rem 2rem;
  border: 1px solid var(--entry-line);
  border-radius: 1.2rem;
  background: var(--color-white);
  color: var(--entry-text);
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: left;
  cursor: pointer;
}
.entry-tab:hover {
  border-color: var(--entry-theme);
}
.entry-tab--selected {
  border-color: var(--entry-theme);
  background: var(--entry-selected-bg);
  color: var(--entry-theme);
}
/* URLパラメータでプランが固定されている場合（お客様区分の固定と同じ見た目） */
.entry-tab--disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.entry-tab--disabled:hover {
  border-color: var(--entry-line);
}
.entry-tab--disabled.entry-tab--selected:hover {
  border-color: var(--entry-theme);
}

@media screen and (min-width: 768px) {
  .entry-tabs {
    flex-direction: row;
    gap: 2rem;
  }
  .entry-tab {
    flex: 1 1 0;
    min-width: 0;
  }
}

/* プラン・キャンペーンの説明（薄い青の枠。見出しの左に白いラベル） */
.entry-detail-panel {
  padding: 3rem 2rem;
  border-radius: 2.4rem;
  background: var(--entry-description-bg);
}
.entry-detail-panel--campaign {
  padding: 3rem;
}
.entry-detail-panel__title {
  margin: 0 0 3rem;
  color: var(--entry-theme);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}
.entry-detail-list {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}
.entry-detail-panel--campaign .entry-detail-list {
  gap: 2rem;
}
.entry-detail-item {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.entry-detail-item__label {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1.2rem;
  border-radius: 1.2rem;
  background: var(--color-white);
  color: var(--entry-theme);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}
.entry-detail-item__value {
  color: var(--entry-text);
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  white-space: pre-wrap;
}
/* 1 行目（料金・契約期間など）を太字に */
.entry-detail-item__value::first-line {
  font-weight: 700;
}
/* キャンペーン：1 つ目（特典）は青の太字、2 つ目以降（注意事項など）は小さく */
.entry-detail-panel--campaign .entry-detail-item:first-child .entry-detail-item__value {
  color: var(--entry-theme);
  font-weight: 700;
}
.entry-detail-panel--campaign .entry-detail-item:not(:first-child) .entry-detail-item__value {
  font-size: 1.2rem;
}
.entry-detail-panel--campaign .entry-detail-item:not(:first-child) .entry-detail-item__value::first-line {
  font-weight: 400;
}
.entry-campaign-notes {
  margin: 2rem 0 0;
  color: var(--entry-note);
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  white-space: pre-wrap;
}

/* プランの説明（基本・3年割・子育て。デザインの文をテンプレートに記載） */
.entry-plan-text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  color: var(--entry-text);
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-plan-text p {
  margin: 0;
}
.entry-plan-text strong {
  font-weight: 700;
}
.entry-plan-text--term {
  gap: 0.5rem;
}
.entry-plan-text__lead {
  font-size: 1.6rem;
  font-weight: 700;
}
.entry-plan-text__link {
  align-self: flex-start;
  color: var(--entry-theme);
  font-size: 1.2rem;
  font-weight: 500;
  text-decoration: underline;
}
.entry-plan-text__link:hover {
  text-decoration: none;
}
/* 子育てプランの特典（黄色の枠） */
.entry-plan-present {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 3rem;
  padding: 1.8rem 2rem;
  border: 3px solid var(--mypage-welcome-marker);
  border-radius: 1.2rem;
  background: var(--color-white);
}
.entry-plan-present__icon {
  flex-shrink: 0;
  width: 3rem;
  height: auto;
}
.entry-plan-present__text {
  flex: 1 1 auto;
  margin: 0;
  color: var(--entry-theme);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-plan-present__text em {
  color: var(--entry-cta);
  font-style: normal;
}

@media screen and (min-width: 768px) {
  .entry-plan-text {
    flex: 1 1 auto;
    max-width: 48.3rem;
  }
  .entry-plan-present {
    justify-content: center;
    gap: 1.6rem;
    width: 53.4rem;
    max-width: 100%;
    margin: 3.2rem auto 0;
    padding: 1.4rem 2rem;
  }
  .entry-plan-present__text {
    flex: 0 1 auto;
  }
}

/* キャンペーンの説明（3ヶ月お試し・プレゼント・乗り換え。デザインの文をテンプレートに記載） */
.entry-campaign-intro {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 3rem;
}
.entry-campaign-intro__lead {
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--entry-theme);
  border-radius: 1rem;
  color: var(--entry-theme);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}
.entry-campaign-intro__text {
  margin: 0;
  color: var(--entry-text);
  font-size: 1.6rem;
  line-height: 1.6;
  text-align: center;
}
.entry-campaign-list {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}
.entry-campaign-list li {
  position: relative;
  line-height: 1.6;
}
.entry-campaign-list li::before {
  content: '';
  position: absolute;
  left: 0;
  border-radius: 50%;
  background: currentColor;
}
.entry-campaign-list--benefit {
  gap: 1rem;
  color: var(--entry-theme);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.entry-campaign-list--benefit li {
  padding-left: 2.1rem;
}
.entry-campaign-list--benefit li::before {
  top: 0.95rem;
  left: 0.6rem;
  width: 0.5rem;
  height: 0.5rem;
}
.entry-campaign-list--notice {
  gap: 0.5rem;
  color: var(--entry-text);
  font-size: 1.2rem;
  letter-spacing: 0.05em;
}
.entry-campaign-list--notice li {
  padding-left: 1.8rem;
}
.entry-campaign-list--notice li::before {
  top: 0.8rem;
  left: 0.5rem;
  width: 0.4rem;
  height: 0.4rem;
}
.entry-campaign-notice__link {
  display: inline-block;
  margin: 1rem 0 0 1.6rem;
}

@media screen and (min-width: 768px) {
  .entry-campaign-intro {
    margin-bottom: 3rem;
    padding-bottom: 1rem;
  }
  .entry-campaign-list,
  .entry-campaign-notice {
    flex: 1 1 auto;
    max-width: 48.3rem;
  }
}

@media screen and (min-width: 768px) {
  .entry-detail-panel,
  .entry-detail-panel--campaign {
    padding: 4rem;
  }
  .entry-detail-panel__title {
    margin-bottom: 3.2rem;
  }
  .entry-detail-list,
  .entry-detail-panel--campaign .entry-detail-list {
    gap: 2rem;
  }
  .entry-detail-item {
    flex-direction: row;
    align-items: center;
  }
  .entry-detail-item__label {
    flex: 0 0 20rem;
    align-self: stretch;
  }
  .entry-detail-item__value {
    flex: 1 1 auto;
    max-width: 48.3rem;
  }
  .entry-campaign-notes {
    padding-left: 22rem;
  }
}

@media screen and (min-width: 1200px) {
  .entry-detail-panel,
  .entry-detail-panel--campaign {
    padding: 4rem 8rem;
  }
}

/* ウォーターサーバー（PC は 4 列。スマホは画像を左に置いた横長のカード） */
.entry-server-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
.entry-server-card {
  position: relative;
  display: grid;
  grid-template-columns: 10.5rem 1fr;
  grid-template-areas:
    "img info"
    "img radio";
  align-items: center;
  padding: 1.9rem 1rem 1rem 0;
  border: 1px solid var(--entry-line);
  border-radius: 1.2rem;
  background: var(--entry-description-bg);
  text-align: center;
  cursor: pointer;
}
.entry-server-card:hover,
.entry-server-card--selected {
  border-color: var(--entry-theme);
}
.entry-server-card--selected {
  background: var(--entry-selected-bg);
}
.entry-server-card__img {
  position: relative;
  grid-area: img;
  align-self: start;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 13.2rem;
}
.entry-server-card__img::before {
  content: '';
  position: absolute;
  top: 3.6rem;
  left: 50%;
  width: 7.8rem;
  height: 7.8rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transform: translateX(-50%);
}
.entry-server-card__img img {
  position: relative;
  display: block;
  width: auto;
  max-width: 100%;
  height: 12rem;
  object-fit: contain;
}
.entry-server-card__info {
  grid-area: info;
}
.entry-server-card__name {
  padding-bottom: 1.2rem;
  border-bottom: 1px solid var(--entry-line);
  color: var(--entry-text);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0;
  white-space: pre-line;
}
.entry-server-card__price {
  margin-top: 1rem;
}
.entry-server-card__priceText {
  /* スマホは幅が足りないと折り返すので、行ごとに黄色い帯が付くようにする */
  display: inline;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  background: linear-gradient(transparent 62%, var(--entry-marker) 62%, var(--entry-marker) 92%, transparent 92%);
  color: var(--entry-theme);
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0;
}
.entry-server-card__priceText > span {
  /* 折り返すときに語の途中で切れないようにする */
  white-space: nowrap;
}
.entry-server-card__priceText em {
  font-size: 1.8rem;
  font-style: normal;
}
.entry-server-card__priceNote {
  margin: 0.4rem 0 0;
  color: var(--entry-text);
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0;
  text-align: right;
}
.entry-server-card__radio {
  grid-area: radio;
  justify-content: center;
  margin-top: 1.2rem;
}
.entry-server-note {
  margin: 1.2rem 0 0;
  color: var(--entry-note);
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-compare-wrap {
  text-align: center;
  margin-top: 1.6rem;
}
.entry-compare-link {
  /* スマホは幅が足りず折り返すので、字を詰めて 1 行に収める（PC はデザインどおり 16px） */
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 1rem;
  border: 1px dashed var(--entry-theme);
  border-radius: 1.2rem;
  color: var(--entry-theme);
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  white-space: nowrap;
  text-decoration: none;
  background: none;
  cursor: pointer;
}
.entry-compare-link::before {
  content: '＋';
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 50%;
  background: var(--entry-theme);
  color: var(--color-white);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
/* Compare dialog（ウォーターサーバー比較ポップアップ） */
.entry-compare-popup {
  z-index: 1200;
  padding: var(--entry-compare-popup-outer-space);
}
.entry-compare-popup.m-dialogBox--open .entry-compare-popup__inner {
  position: relative;
  width: 100%;
  max-width: var(--entry-compare-popup-max-width);
  margin: auto;
  padding: var(--entry-compare-popup-inner-space);
  border-radius: 0.6rem;
  background: var(--color-white);
}
@media (min-width: 768px) {
  .entry-compare-popup {
    padding: var(--entry-compare-popup-outer-space-pc);
  }
  .entry-compare-popup.m-dialogBox--open .entry-compare-popup__inner {
    padding: var(--entry-compare-popup-inner-space-pc);
  }
}
.entry-compare-popup__close {
  position: absolute;
  top: -1.2rem;
  right: -1.2rem;
  width: 3.2rem;
  height: 3.2rem;
  border: none;
  border-radius: 50%;
  background: var(--entry-text);
  color: var(--color-white);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.entry-compare-table-wrap {
  overflow-x: auto;
}
.entry-compare-table {
  width: 100%;
  min-width: 46rem;
  border-collapse: collapse;
  font-size: 1.1rem;
}
.entry-compare-table th,
.entry-compare-table td {
  border: 1px solid var(--entry-compare-border);
  padding: 1rem 1.2rem;
  text-align: center;
  vertical-align: middle;
  line-height: 1.6;
}
.entry-compare-table thead th {
  background: var(--entry-compare-header-bg);
  color: var(--color-white);
  font-size: 1.15rem;
}
.entry-compare-table thead th:first-child {
  background: var(--color-white);
}
.entry-compare-table tbody th {
  width: 14rem;
  background: var(--entry-compare-row-label-bg);
  color: var(--entry-text);
  font-weight: bold;
}
.entry-compare-table__note {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.95rem;
  color: var(--entry-text-muted);
}
.entry-compare-table__accent {
  color: var(--entry-compare-accent);
  font-weight: bold;
}

@media screen and (min-width: 768px) {
  .entry-server-grid {
    grid-template-columns: repeat(auto-fill, minmax(21rem, 1fr));
  }
  .entry-server-card {
    grid-template-columns: 1fr;
    grid-template-areas:
      "img"
      "info"
      "radio";
    align-items: start;
    padding: 1.8rem 1.4rem 1.9rem;
  }
  .entry-server-card__name {
    letter-spacing: 0.05em;
  }
  .entry-server-card__img {
    height: 18.9rem;
    margin-bottom: 1.2rem;
  }
  .entry-server-card__img::before {
    top: 5.1rem;
    width: 11.2rem;
    height: 11.2rem;
  }
  .entry-server-card__img img {
    height: auto;
    max-height: 17.1rem;
  }
  /* PC はデザインどおり、カード幅いっぱいの帯を 1 行に敷く */
  .entry-server-card__priceText {
    display: block;
    background: linear-gradient(
      transparent calc(100% - 1.2rem),
      var(--entry-marker) calc(100% - 1.2rem),
      var(--entry-marker) calc(100% - 0.2rem),
      transparent calc(100% - 0.2rem)
    );
    font-size: 1.2rem;
    letter-spacing: 0.05em;
    white-space: nowrap;
  }
  .entry-server-card__priceText em {
    font-size: 2.2rem;
  }
  .entry-server-card__priceNote {
    font-size: 1.2rem;
    letter-spacing: 0.05em;
  }
  .entry-server-card__radio {
    margin-top: 1.6rem;
  }
  .entry-compare-link {
    gap: 1rem;
    padding: 1rem 2rem;
    font-size: 1.6rem;
  }
  .entry-compare-link::before {
    width: 1.6rem;
    height: 1.6rem;
    font-size: 1rem;
  }
}

/* オプションの追加（有料設置サービス） */
.entry-option-row {
  display: flex;
}
.entry-option-card {
  flex: 1 1 auto;
  max-width: 67rem;
  padding: 2.8rem 2rem 3rem;
  border: 1px solid var(--entry-line);
  border-radius: 2.4rem;
  background: var(--color-white);
  cursor: pointer;
}
.entry-option-card:hover,
.entry-option-card--selected {
  border-color: var(--entry-theme);
}
.entry-option-card--selected {
  background: var(--entry-description-bg);
}
.entry-option-card__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.4rem;
}
.entry-option-card__check {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--entry-line);
  border-radius: 50%;
  background: var(--entry-radio-bg);
}
.entry-option-card--selected .entry-option-card__check {
  border-color: var(--entry-theme);
  background: radial-gradient(circle, var(--entry-theme) 0 0.5rem, var(--entry-radio-bg) 0.5rem);
}
.entry-option-card__name {
  color: var(--entry-text);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-option-card--selected .entry-option-card__name {
  color: var(--entry-theme);
}
.entry-option-card__price {
  margin-left: auto;
  color: var(--entry-theme);
  font-size: 1.4rem;
  font-weight: 700;
}
.entry-option-card__desc {
  margin: 0 0 1.4rem;
  color: var(--entry-theme);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  white-space: pre-wrap;
}
.entry-option-card__notes {
  margin: 0;
  color: var(--entry-note);
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  white-space: pre-wrap;
}
.entry-option-card__notes::before {
  content: '※';
}

@media screen and (min-width: 768px) {
  .entry-option-card {
    padding: 2.8rem 4rem 3.2rem 2.9rem;
  }
  .entry-option-card__desc,
  .entry-option-card__notes {
    padding-left: 3.5rem;
  }
}

/* お水を選ぶ（お水のカード・配送数量・1配送あたりの金額） */
.entry-water-cards {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.entry-water-card {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 1.5rem 2rem;
  border: 1px solid var(--entry-line);
  border-radius: 1.2rem;
  background: var(--color-white);
  cursor: pointer;
}
.entry-water-card:hover,
.entry-water-card--selected {
  border-color: var(--entry-theme);
}
.entry-water-card--selected {
  background: var(--entry-selected-bg);
}
.entry-water-card__img {
  flex-shrink: 0;
  width: 6.6rem;
  height: 6.6rem;
}
.entry-water-card__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.entry-water-detail {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-top: 2rem;
}
.entry-qty-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.2rem;
}
.entry-qty-row__label {
  flex: 0 0 100%;
  color: var(--entry-text);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-form .entry-qty-row .entry-select {
  flex: 0 1 calc(100% - 7rem);
  min-width: 0;
  max-width: 21.7rem;
}
.entry-qty-row__unit {
  flex-shrink: 0;
  color: var(--entry-text);
  white-space: nowrap;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
/* 選択肢が1つだけの場合のラジオボタン非表示（選択状態の文字色は維持する） */
.entry-radio--no-input input[type=radio] {
  display: none;
}
/* 選択肢が1つだけの場合の注記（「※お試しキャンペーンは11.5Lのみ対象です。」など） */
.entry-water-note {
  margin: 1rem 0 0;
  color: var(--entry-note);
  font-size: 1.3rem;
  line-height: 1.6;
}
/* お試しキャンペーン選択時のガイダンス（初回配送セット数が固定） */
.entry-qty-fixed {
  display: flex;
  align-items: stretch;
  width: 100%;
  margin: 0;
  border-radius: 0.8rem;
  overflow: hidden;
  background: var(--entry-description-bg);
}
.entry-qty-fixed__icon {
  flex: 0 0 6rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.entry-qty-fixed__icon-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  background: var(--entry-theme);
  color: var(--color-white);
  font-family: serif;
  font-size: 1.5rem;
  font-weight: 700;
}
.entry-qty-fixed__text {
  flex: 1 1 auto;
  margin: 0;
  padding: 1.2rem 1.6rem;
  color: var(--entry-theme-dark);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.8;
}
.entry-price-big {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.6rem 2rem 1.4rem;
  border-radius: 2.4rem;
  background: var(--entry-description-bg);
}
.entry-price-big__label {
  color: var(--entry-theme);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-price-big__value {
  color: var(--entry-theme);
  font-family: var(--font-en);
  font-size: min(5rem, 11vw);
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.entry-price-big__unit {
  margin-left: 0.6rem;
  white-space: nowrap;
  color: var(--entry-text);
  font-family: var(--font-ja);
  font-size: 1.8rem;
  letter-spacing: 0.05em;
}
.entry-price-big__unit small {
  font-size: 1.4rem;
}

@media screen and (min-width: 768px) {
  .entry-water-cards {
    flex-direction: row;
  }
  .entry-water-card {
    flex: 1 1 0;
    min-width: 0;
    gap: 2.4rem;
  }
  /* 選択肢が1つだけの場合はカードを横いっぱいに広げない */
  .entry-water-card:only-child {
    flex: 0 1 calc(50% - 1rem);
  }
  .entry-water-detail {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 4rem;
    margin-top: 4rem;
  }
  .entry-qty-fixed {
    flex: 0 0 100%;
  }
  .entry-qty-row {
    flex-wrap: nowrap;
    gap: 2rem;
  }
  .entry-qty-col {
    flex: 1 1 auto;
  }
  .entry-qty-row__label {
    flex: 0 0 auto;
    white-space: nowrap;
  }
  .entry-form .entry-qty-row .entry-select {
    flex: 0 0 21rem;
    max-width: none;
  }
  .entry-price-big {
    flex: 0 0 auto;
    min-width: 34rem;
    align-items: stretch;
    padding: 2.2rem 2.4rem 1.6rem;
  }
  .entry-price-big__label {
    font-size: 1.8rem;
  }
  .entry-price-big__value {
    font-size: 6rem;
    text-align: right;
  }
}

/* 入力欄（セレクト・日付。高さ 40px・角丸 6px・矢印は青） */
.entry-form .entry-select {
  width: 100%;
  height: 4rem;
  min-height: 4rem;
  padding: 0 1.3rem;
  border: 1px solid var(--entry-line);
  border-radius: 0.6rem;
  background-color: var(--color-white);
  color: var(--entry-text);
  font-size: 1.5rem;
  line-height: 1.2;
  letter-spacing: 0.05em;
}
.entry-form select.entry-select {
  padding-right: 3.5rem;
  background-image: url(../img/user/entry/icon_entry_select.svg);
  background-repeat: no-repeat;
  background-size: 1.1rem 0.7rem;
  background-position: right 1.2rem center;
}
.entry-form .entry-select:disabled {
  border-color: var(--entry-line);
  background-color: var(--entry-radio-bg);
  color: var(--entry-support);
  cursor: not-allowed;
}

/* 初回お届け日（スマホは項目名を入力欄の上に） */
.entry-first-delivery {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.entry-first-delivery-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}
.entry-first-delivery-row__label {
  color: var(--entry-text);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-radio-inline {
  margin-top: 1rem;
  white-space: nowrap;
}

@media screen and (min-width: 768px) {
  .entry-first-delivery-row {
    flex-direction: row;
    align-items: center;
    gap: 1.5rem;
  }
  .entry-first-delivery-row__label {
    flex: 0 0 10.5rem;
  }
  .entry-form .entry-first-delivery-row__input {
    width: 21rem;
  }
  .entry-radio-inline {
    margin: 0 0 0 5rem;
  }
}

/* 2回目以降のお届け日設定（週間隔・曜日指定／月間隔・週・曜日指定） */
.entry-cycle-type-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
.entry-cycle-type-card__header {
  gap: 1rem;
  margin-bottom: 1.6rem;
}
.entry-cycle-type-card__row {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
.entry-cycle-type-card__row:last-child {
  margin-bottom: 0;
}
.entry-form .entry-cycle-type-card__row .entry-select {
  flex: 0 0 19.6rem;
  width: 19.6rem;
}
.entry-cycle-type-card__row span {
  color: var(--entry-text);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .entry-cycle-type-grid {
    grid-template-columns: repeat(2, max-content);
    gap: 7.2rem;
  }
  .entry-cycle-type-card__header {
    gap: 1.5rem;
    margin-bottom: 1.8rem;
  }
  .entry-cycle-type-card__row {
    gap: 2rem;
    margin-bottom: 2rem;
  }
  .entry-form .entry-cycle-type-card__row .entry-select {
    flex-basis: 21rem;
    width: 21rem;
  }
}

/* 配送予定日 */
.entry-delivery-schedule {
  margin-top: 3rem;
  padding: 2rem;
  border-radius: 2.4rem;
  background: var(--entry-description-bg);
}
.entry-delivery-schedule__title {
  margin: 0 0 1rem;
  color: var(--entry-theme);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-delivery-schedule__row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem 0;
  border-bottom: 1px solid var(--entry-line);
  font-size: 1.4rem;
  line-height: 1.6;
}
.entry-delivery-schedule__note {
  margin: 1rem 0 0;
  color: var(--entry-note);
  font-size: 1.2rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .entry-delivery-schedule {
    max-width: 67rem;
    padding: 2.4rem 3rem;
  }
  .entry-delivery-schedule__title {
    font-size: 1.8rem;
  }
}

/* 配送料について（スマホは地域を縦に並べる） */
.entry-shipping {
  padding: 3rem 2rem;
  border: 1px solid var(--entry-line);
  border-radius: 2.4rem;
  background: var(--entry-shipping-bg);
}
.entry-shipping__title {
  margin: 0 0 1rem;
  color: var(--entry-theme);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}
.entry-shipping__lead {
  margin: 0;
  color: var(--entry-text);
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}
.entry-shipping__block {
  margin-top: 4rem;
}
.entry-shipping__subTitle {
  margin: 0 0 1rem;
  color: var(--entry-theme);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-shipping__note {
  margin: -0.6rem 0 1.2rem;
  color: var(--entry-note);
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-shipping-table {
  display: flex;
  flex-direction: column;
}
.entry-shipping-table__col {
  display: flex;
  border-bottom: 1px solid var(--entry-shipping-bg);
}
.entry-shipping-table__area,
.entry-shipping-table__fee {
  display: flex;
  flex: 1 1 50%;
  align-items: center;
  justify-content: center;
  min-height: 3.5rem;
  padding: 0.5rem 1rem;
  font-size: 1.4rem;
  line-height: 1.8;
  text-align: center;
}
.entry-shipping-table__area {
  background: var(--entry-theme);
  color: var(--color-white);
  font-weight: 500;
}
.entry-shipping-table__fee {
  background: var(--color-white);
  color: var(--entry-text);
  letter-spacing: 0.05em;
}
.entry-shipping-table__col--head .entry-shipping-table__area {
  background: var(--entry-selected-bg);
  color: var(--entry-text);
}
.entry-shipping-table__col--head .entry-shipping-table__fee {
  background: var(--entry-shipping-label-bg);
  font-weight: 500;
  letter-spacing: 0;
}
.entry-shipping-table__fee small {
  font-size: 1rem;
}

@media screen and (min-width: 768px) {
  .entry-shipping {
    padding: 3.8rem 4rem 5rem;
  }
  .entry-shipping__lead {
    margin-top: 0;
  }
  .entry-shipping__block {
    max-width: 76.8rem;
    margin: 4rem auto 0;
  }
  .entry-shipping__subTitle {
    font-size: 1.8rem;
  }
  .entry-shipping-table {
    flex-direction: row;
  }
  .entry-shipping-table__col {
    flex: 100 1 0;
    flex-direction: column;
    min-width: 0;
    border-bottom: 0;
    border-left: 1px solid var(--entry-shipping-bg);
  }
  .entry-shipping-table__col--head {
    flex-grow: 98;
    border-left: 0;
  }
  .entry-shipping-table__col--w120 {
    flex-grow: 120;
  }
  .entry-shipping-table__col--w200 {
    flex-grow: 200;
  }
  .entry-shipping-table__col--w250 {
    flex-grow: 250;
  }
  .entry-shipping-table__area,
  .entry-shipping-table__fee {
    flex: 0 0 auto;
    padding: 0.5rem;
  }
  .entry-shipping-table__area {
    min-height: 3rem;
  }
  .entry-shipping-table__fee {
    min-height: 4rem;
  }
}

/* お客様情報の入力に進む */
.entry-submit-wrap {
  margin-top: 5rem;
  text-align: center;
}
.entry-submit {
  width: 30rem;
  max-width: 100%;
  padding: 2rem 4rem;
  border-color: var(--entry-theme);
  border-radius: 5rem;
  background-color: var(--entry-theme);
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.entry-submit:hover {
  border-color: var(--entry-theme-dark);
  background-color: var(--entry-theme-dark);
  opacity: 1;
}

@media screen and (min-width: 768px) {
  .entry-submit-wrap {
    margin-top: 8rem;
  }
  .entry-submit {
    padding: 2.5rem 4rem;
  }
}

/* =============================================================
    MyPage（マイページ）
============================================================= */
:root {
  --mypage-theme: var(--entry-theme);
  --mypage-panel-bg: var(--entry-panel-bg);
  --mypage-border: var(--entry-border-panel);
  --mypage-divider: var(--entry-divider);
  --mypage-text: var(--entry-text);
  --mypage-text-muted: var(--entry-text-muted);
  --mypage-placeholder-bg: var(--entry-placeholder-bg);
  --mypage-cancelled: #9e9e9e;
  --mypage-error: var(--entry-badge-required);
  --mypage-info: var(--mypage-theme);
  --mypage-page-bg: #f5fbfe;
  --mypage-band-bg: #def3fc;
  --mypage-label-bg: #f3f3f3;
  --mypage-welcome-marker: #fdff00;
  --mypage-line: #c9c9c9;
  --mypage-note-text: #676767;
  --mypage-line-bg: #f0ece3;
  --mypage-line-green: #06c655;
  --mypage-card-radius: 2.4rem;
  --mypage-image-size: 16rem;
  --mypage-card-detail-width: 4rem;
  --mypage-dialog-max-width: 48rem;
  --mypage-dialog-wide-max-width: 64rem;
  --mypage-history-max-height: 50vh;
  --mypage-dialog-outer-space: 2rem;
  --mypage-dialog-outer-space-pc: 4rem;
  --mypage-dialog-inner-space: 2.4rem 2rem;
  --mypage-dialog-inner-space-pc: 3.2rem;
}

.p-mypage {
  max-width: 86rem;
  margin: 0 auto;
  padding: 0 1.6rem 6rem;
}
.p-mypage__heading {
  font-size: 2.25rem;
  font-weight: bold;
  margin: 2.8rem 0 0.6rem;
  text-align: center;
  color: var(--mypage-theme);
}
.p-mypage__subtitle {
  font-size: 1.32rem;
  color: var(--mypage-text-muted);
  text-align: center;
  margin-bottom: 3.6rem;
}
.p-mypage__back {
  font-size: 1.3rem;
  margin-bottom: 2rem;
}

@media screen and (max-width: 767px) {
  .p-mypage {
    max-width: unset;
    padding: 0;
  }
}



.mypage-message {
  font-size: 1.4rem;
  color: var(--mypage-text-muted);
  text-align: center;
  padding: 3rem 0;
}

.mypage-badge {
  display: inline-block;
  font-size: 1.1rem;
  font-weight: bold;
  padding: 0.2rem 0.8rem;
  border-radius: 0.4rem;
  border: 1px solid;
}
.mypage-badge--cancelled {
  color: var(--mypage-cancelled);
  border-color: var(--mypage-cancelled);
}

/* 契約詳細（ご契約内容の詳細ページと共通の部品） */
.mypage-detail__noimage {
  font-size: 1.2rem;
  color: var(--mypage-text-muted);
}
.mypage-detail__list {
  flex: 1;
  font-size: 1.3rem;
  color: var(--mypage-text);
}
.mypage-detail__row {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--mypage-divider);
}
.mypage-detail__row dt {
  font-weight: bold;
  color: var(--mypage-text-muted);
}
.mypage-detail__row dd {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
}
.mypage-contract-card__zip,
.mypage-detail__zip {
  font-family: var(--font-en);
}
.mypage-detail__row dd.mypage-detail__shipping,
.mypage-detail__row dd.mypage-detail__receipt,
.mypage-detail__row dd.mypage-detail__amount {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
}

/* =============================================================
    マイページTOP（260911 デザイン反映。Figma「マイページTOP_design」PC・SP）
    PC の幅：サイドメニュー 250px ＋ 間 70px ＋ 本文 880px ＝ 1200px
============================================================= */
/* 全体（背景・幅・2 列） */
.l-container-wrap--mypage {
  background: var(--mypage-page-bg);
}
.l-container-wrap--mypage .l-container {
  max-width: 1200px;
  padding-left: 0;
  padding-right: 0;
  width: 100%;
}
.l-container-wrap--mypage .p-mypage {
  max-width: none;
  padding: 2rem 0 8rem;
}
.l-container-wrap--mypage .s-myPageContent-navWrap {
  margin-top: 5rem;
  padding: 0;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypage .p-mypage {
    padding-top: 4.4rem;
  }
}

@media screen and (min-width: 992px) {
  .l-container-wrap--mypage .s-myPageContent-body {
    gap: 7rem;
  }
  .l-container-wrap--mypage .s-myPageContent-infoWrap {
    flex: 1;
    width: auto;
    min-width: 0;
    padding-top: 0;
  }
  .l-container-wrap--mypage .s-myPageContent-navWrap {
    flex-shrink: 0;
    width: 25rem;
    margin-top: 0;
  }
}
@media screen and (max-width: calc(767px)) {
   .l-container-wrap--mypage .l-container {
 padding-left: 20px;
  padding-right: 20px;
}
}

/* ようこそ */
.mypage-welcome {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  margin: 0 0 2rem;
  padding: 2rem;
  border-radius: var(--mypage-card-radius);
  background: #fff;
}
.mypage-welcome__lead {
  padding: 0.5rem 1.6rem;
  border-radius: 1.2rem;
  background: var(--mypage-welcome-marker);
  color: var(--mypage-theme);
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  white-space: nowrap;
}
.mypage-welcome__name {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
  color: var(--mypage-text);
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-welcome__user-name {
  font-size: 1.8rem;
}
.mypage-welcome__honorific {
  font-size: 1.4rem;
}
.mypage-welcome__user-id {
  font-size: 1.2rem;
}

@media screen and (min-width: 768px) {
  .mypage-welcome {
    margin-bottom: 3rem;
    padding: 3rem;
  }
  .mypage-welcome__name {
    flex-direction: row;
    align-items: center;
    gap: 3rem;
  }
  .mypage-welcome__user-name {
    font-size: 2rem;
  }
}

/* 見出し ＋ もっと見る */
.mypage-section-head {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1rem;
  margin-bottom: 2rem;
}
.mypage-section-title {
  margin-bottom: 2rem;
  color: var(--mypage-text);
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-section-head .mypage-section-title {
  align-self: stretch;
  margin-bottom: 0;
}

@media screen and (min-width: 768px) {
  .mypage-section-head {
    flex-direction: row;
    justify-content: space-between;
    margin-bottom: 2.6rem;
  }
  .mypage-section-title {
    font-size: 2.4rem;
  }
  .mypage-section-head .mypage-section-title {
    align-self: auto;
  }
}

/* ボタン（.mypage-btn はご契約内容の詳細ページと共通） */
.mypage-btn {
  border-radius: 0.4rem;
  padding: 0.8rem 1.8rem;
  font-size: 1.3rem;
  font-weight: bold;
  background-color: var(--mypage-theme);
  border: 1px solid var(--mypage-theme);
}
.mypage-btn:disabled {
  background-color: var(--mypage-cancelled);
  border-color: var(--mypage-cancelled);
  cursor: default;
  opacity: 1;
}
/* 丸ボタン（マイページTOP） */
.mypage-btn--pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-width: 0;
  padding: 0.9rem 2rem;
  border-radius: 5rem;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-btn__icon {
  width: 2rem;
  height: 2rem;
}

/* 項目名ラベル・値 */
.mypage-label {
  display: block;
  flex-shrink: 0;
  width: 100%;
  padding: 0.5rem 1rem;
  border-radius: 0.6rem;
  background: var(--mypage-label-bg);
  color: var(--mypage-text);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  white-space: nowrap;
}
.mypage-contract-card__summary .mypage-label {
  background: #fff;
  font-weight: bold;
}
.mypage-value {
  color: var(--mypage-theme);
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-value--cancelled {
  color: var(--mypage-cancelled);
}

@media screen and (min-width: 768px) {
  .mypage-label {
    width: 14rem;
  }
}

/* 契約カード */
.mypage-contract-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-bottom: 3.2rem;
  padding: 3rem 4rem 3rem 2rem;
  border-radius: var(--mypage-card-radius);
  background: #fff;
  overflow: hidden;
}
.mypage-contract-card__summary {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 2rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 1.2rem;
  background: var(--mypage-band-bg);
}
.mypage-contract-card__summary-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}
.mypage-contract-card__shipping-row {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding-bottom: 3rem;
  border-bottom: 1px dashed var(--mypage-line);
}
.mypage-contract-card__shipping {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  color: var(--mypage-text);
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-contract-card__shipping .mypage-contract-card__zip {
  font-family: inherit;
  font-weight: 500;
}
.mypage-contract-card__dates {
  display: flex;
  gap: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid var(--mypage-line);
}
.mypage-contract-card__date {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
  min-width: 0;
  color: var(--mypage-text);
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
/* 日付が 1 つだけ（前回注文日）のときは横並び */
.mypage-contract-card__date:only-child {
  flex-direction: row;
  align-items: center;
}
.mypage-contract-card__date .mypage-label {
  padding-left: 0;
  padding-right: 0;
}
.mypage-contract-card__date:only-child .mypage-label {
  width: 14rem;
}
.mypage-contract-card__actions {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.mypage-contract-card__actions .mypage-btn--pill {
  width: 100%;
}
.mypage-contract-card__notes {
  color: var(--mypage-note-text);
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-contract-card__notes li::before {
  content: '・';
}
/* 右の三角（ご契約内容の詳細へ） */
.mypage-contract-card__detail {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: var(--mypage-card-detail-width);
}
.mypage-contract-card__detail::before {
  content: '';
  position: absolute;
  top: 36.2rem;
  right: 1.1rem;
  width: 1.4rem;
  height: 2.1rem;
  background: url(../img/user/mypage/icon_mypage_arrow_card.svg) center / contain no-repeat;
}

@media screen and (min-width: 768px) {
  .mypage-contract-card {
    gap: 3rem;
    margin-bottom: 4rem;
    padding: 5rem 5.5rem;
  }
  .mypage-contract-card__summary {
    flex-direction: row;
    gap: 3rem;
    padding: 3rem;
  }
  .mypage-contract-card__summary-item,
  .mypage-contract-card__date {
    flex-direction: row;
    align-items: center;
    gap: 2rem;
  }
  .mypage-contract-card__summary-item {
    flex: 1;
    min-width: 0;
  }
  .mypage-contract-card__shipping-row {
    flex-direction: row;
    align-items: flex-start;
  }
  .mypage-contract-card__shipping {
    flex: 1;
    min-width: 0;
  }
  .mypage-contract-card__actions {
    flex-direction: row;
    justify-content: center;
    gap: 3rem;
  }
  .mypage-contract-card__actions .mypage-btn--pill {
    flex: 0 1 40rem;
    width: auto;
  }
  .mypage-contract-card__notes {
    align-self: flex-end;
  }
  .mypage-contract-card__detail {
    width: 5.5rem;
  }
  .mypage-contract-card__detail::before {
    top: 25.2rem;
    right: 2.1rem;
  }
}

/* 契約をすべて表示する「もっと見る」（W2 の既存のまま・カンプには無い） */
.mypage-more {
  margin: 3.2rem 0;
  text-align: center;
}
.mypage-more__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  min-width: 18rem;
  padding: 0.8rem 2.4rem;
  border: 1px solid var(--mypage-theme);
  border-radius: 2rem;
  background: #fff;
  color: var(--mypage-theme) !important;
  font-size: 1.3rem;
  font-weight: bold;
}
.mypage-more__btn .mypage-btn__icon {
  width: 1.6em;
  height: 1.6em;
}

/* お知らせ */
.mypage-news {
  margin-top: 5rem;
}
/* 最新 20 件を入れ、高さを固定して枠の中でスクロール（スマホ 300px・PC 500px） */
.mypage-news__list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  height: 30rem;
  padding: 3rem 2rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-radius: var(--mypage-card-radius);
  background: #fff;
  scrollbar-color: #d9d9d9 transparent;
}
.mypage-news__list::-webkit-scrollbar {
  width: 1rem;
}
.mypage-news__list::-webkit-scrollbar-track {
  background: transparent;
}
.mypage-news__list::-webkit-scrollbar-thumb {
  background: #d9d9d9;
}
.mypage-news__item {
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  gap: 1rem;
  padding-bottom: 2rem;
  border-bottom: 1px dashed var(--mypage-line);
}
.mypage-news__date {
  flex-shrink: 0;
  color: var(--mypage-theme);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.mypage-news__texts {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  min-width: 0;
}
.mypage-news__item-title,
.mypage-news__item-body {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: var(--mypage-text);
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-news__item-title {
  -webkit-line-clamp: 2;
  font-size: 1.6rem;
  font-weight: 500;
}
.mypage-news__item-body {
  -webkit-line-clamp: 3;
  font-size: 1.4rem;
}

@media screen and (min-width: 768px) {
  .mypage-news {
    margin-top: 8rem;
  }
  .mypage-news__list {
    gap: 3rem;
    height: 50rem;
    padding: 5rem 5.5rem;
  }
  .mypage-news__item {
    flex-direction: row;
    align-items: flex-start;
    gap: 2rem;
    padding-bottom: 3rem;
  }
  .mypage-news__texts {
    flex: 1;
  }
}

/* よくあるご質問 */
/* マイページTOP：ウォーターサーバーの追加設置（新規お申込み画面へのリンク） */
.mypage-add-server {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.2rem;
  margin-bottom: 4.3rem;
  padding: 1.2rem 1.6rem;
  border-radius: 1.6rem;
  background: var(--mypage-band-bg);
}
.mypage-add-server__icon {
  flex-shrink: 0;
  width: 3.2rem;
  height: 3.2rem;
}
.mypage-add-server__body {
  flex: 1 1 0;
  min-width: 0;
}
.mypage-add-server__title {
  margin: 0;
  color: var(--mypage-text);
  font-size: 1.3rem;
  font-weight: bold;
  line-height: 1.6;
}
/* SPでは控えめに表示するため説明文を出さない */
.mypage-add-server__text {
  display: none;
  margin: 0.4rem 0 0;
  color: var(--mypage-note-text);
  font-size: 1.2rem;
  line-height: 1.6;
}
.mypage-add-server__button {
  display: inline-flex;
  flex: 0 0 100%;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 0.5rem 2rem;
  border: 1px solid var(--mypage-theme);
  border-radius: 5rem;
  background: #fff;
  color: var(--mypage-theme);
  font-size: 1.3rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-decoration: none;
}
.mypage-add-server__button::after {
  content: "";
  width: 0.7rem;
  height: 0.7rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}
.mypage-add-server__button:hover {
  background: var(--mypage-theme);
  color: #fff;
}
@media screen and (min-width: 768px) {
  .mypage-add-server {
    flex-wrap: nowrap;
    gap: 2.4rem;
    margin-bottom: 8.2rem;
    padding: 2rem 3rem;
  }
  .mypage-add-server__icon {
    width: 4.8rem;
    height: 4.8rem;
  }
  .mypage-add-server__body {
    padding-left: 2.4rem;
    border-left: 1px solid var(--mypage-line);
  }
  .mypage-add-server__title {
    font-size: 1.5rem;
  }
  .mypage-add-server__text {
    display: block;
  }
  .mypage-add-server__button {
    flex: 0 0 auto;
    padding: 0.9rem 2.4rem;
    font-size: 1.4rem;
  }
}

.mypage-faq {
  margin-top: 5rem;
}
.mypage-faq__list {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  padding: 3rem 2rem;
  border-radius: var(--mypage-card-radius);
  background: #fff;
}
.mypage-faq__item {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 2rem;
  border-radius: 1.2rem;
  background: var(--mypage-page-bg);
}
.mypage-faq__question {
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--mypage-theme);
  color: var(--mypage-theme);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-faq__answer,
.mypage-faq__link {
  color: var(--mypage-text);
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-faq__link {
  margin-top: -0.5rem;
}
.mypage-faq__mark {
  color: var(--mypage-theme);
}
.mypage-faq__link a {
  color: var(--mypage-theme);
  text-decoration: underline;
  word-break: break-all;
}

@media screen and (min-width: 768px) {
  .mypage-faq {
    margin-top: 8rem;
  }
  .mypage-faq__list {
    padding: 5rem 5.5rem;
  }
  .mypage-faq__item {
    padding: 3rem;
  }
}

/* サイドメニュー（パーツ「マイページメニュー」。マイページ系のページ共通） */
.s-myPageContent-navWrap .m-userNav {
  max-width: 29.7rem;
  margin: 0 auto;
  padding-bottom: 1rem;
  border-radius: var(--mypage-card-radius);
  background: #fff;
  overflow: hidden;
}
.s-myPageContent-navWrap .m-userNav__title {
  position: relative;
  height: 5rem;
  padding: 1.9rem 1rem 0;
  border-radius: 0;
  background: var(--mypage-theme);
  color: #fff;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}
/* 見出しの下の波 */
.s-myPageContent-navWrap .m-userNav__title::after {
  content: '';
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
  width: 100%;
  height: calc(1.8rem + 1px);
  background: url(../img/user/mypage/mypage_nav_wave.svg) 50.6% 0 / 297.6% 100% no-repeat;
}
.s-myPageContent-navWrap .m-userNav__sections {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  padding: 7rem 0 0 2rem;
  border: 0;
  border-radius: 0;
}
.s-myPageContent-navWrap .m-userNav-section .m-userNav-section__title {
  margin: 0 0 1.5rem;
  padding: 0;
  border: 0;
}
.s-myPageContent-navWrap .m-userNav-section .m-userNav-section__menu {
  margin: 0;
  padding: 0 0 0 2.5rem;
}
.s-myPageContent-navWrap .c-userNav-title {
  gap: 1rem;
}
.s-myPageContent-navWrap .c-userNav-title__iconWrap {
  width: 1.6rem;
}
.s-myPageContent-navWrap .c-userNav-title__icon {
  display: block;
  width: 1.6rem;
  height: 2rem;
}
.s-myPageContent-navWrap .c-userNav-title__text {
  color: var(--mypage-theme);
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.s-myPageContent-navWrap .c-userNav-link {
  gap: 1rem;
  padding: 0.65rem 1.5rem 0.65rem 0;
  border-radius: 0.6rem 0 0 0.6rem;
  color: var(--mypage-text);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.s-myPageContent-navWrap .c-userNav-link::after {
  content: none;
}
.s-myPageContent-navWrap .c-userNav-link:hover {
  background-color: transparent;
  color: var(--mypage-theme);
}
.s-myPageContent-navWrap .c-userNav-link--active,
.s-myPageContent-navWrap .c-userNav-link--active:hover {
  padding-left: 1.5rem;
  background-color: var(--mypage-band-bg);
  color: var(--mypage-theme);
  font-weight: bold;
}
.s-myPageContent-navWrap .c-userNav-link--active::after {
  content: '';
  flex-shrink: 0;
  width: 0.7rem;
  height: 1.1rem;
  aspect-ratio: auto;
  background: url(../img/user/mypage/icon_mypage_arrow_nav.svg) center / contain no-repeat;
}
/* LINE 連携の案内 */
.m-userNav-line {
  display: block;
  margin: 4rem 1rem 0;
  padding: 1.9rem 2rem 2rem;
  border-radius: 1.2rem;
  background: var(--mypage-line-bg);
  color: var(--mypage-text) !important;
  text-decoration: none;
}
.m-userNav-line__lead {
  margin-bottom: 1.7rem;
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: center;
}
.m-userNav-line__lead-small {
  display: block;
  font-size: 1.4rem;
}
.m-userNav-line__list {
  border-radius: 0.6rem;
  background: #fff;
  overflow: hidden;
}
.m-userNav-line__item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.7rem 0.8rem;
}
.m-userNav-line__item + .m-userNav-line__item {
  padding-top: 0.6rem;
  padding-bottom: 0.6rem;
  border-top: 1px dashed var(--mypage-line-bg);
}
.m-userNav-line__num {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  background: var(--mypage-line-green);
  color: #fff;
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1;
}
.m-userNav-line__texts {
  display: flex;
  flex-direction: column;
  min-width: 0;
  font-weight: bold;
  line-height: 1.6;
}
.m-userNav-line__sub {
  font-size: 1rem;
  white-space: nowrap;
}
.m-userNav-line__main {
  font-size: 1.6rem;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 992px) {
  .s-myPageContent-navWrap .m-userNav {
    max-width: none;
  }
  .s-myPageContent-navWrap .m-userNav__sections {
    padding-top: 4rem;
  }
  .m-userNav-line {
    margin-top: 7rem;
  }
  .m-userNav-line__item {
    gap: 0.5rem;
  }
}
@media (hover: hover) {
  .m-userNav-line {
    transition: opacity 0.15s ease-in-out;
  }
  .m-userNav-line:hover {
    opacity: 0.8;
  }
}

/* 契約詳細 */
.mypage-detail__head {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.2rem;
  margin-bottom: 1.6rem;
}
.mypage-detail__block {
  border: 1px solid var(--mypage-border);
  border-radius: 0.4rem;
  padding: 1.6rem;
  margin-bottom: 2.4rem;
  background: #fff;
}
.mypage-detail__title {
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 1.2rem;
  color: var(--mypage-theme);
}
.mypage-detail__product {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.mypage-detail__image {
  width: var(--mypage-image-size);
  min-height: var(--mypage-image-size);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--mypage-divider);
  background: var(--mypage-placeholder-bg);
  flex-shrink: 0;
}
.mypage-detail__image img {
  max-width: 100%;
}

@media (min-width: 768px) {
  .mypage-detail__product {
    flex-direction: row;
  }
  .mypage-detail__row {
    flex-direction: row;
    gap: 1.6rem;
  }
  .mypage-detail__row dt {
    width: 14rem;
    flex-shrink: 0;
  }
}

/* =============================================================
    ご契約内容の詳細（ページ 86 /mypage/contract/<契約ID>）
    見た目は定期購入情報詳細（ページ 38 .p-page-fixedPurchaseDetail）に合わせる。
    項目（決済方法変更・配送サイクル変更・数量変更など）は W2 のパーツ 167 のまま
============================================================= */
.p-page-contractDetail {
  --contract-detail-line: #e3e3e3;
  --contract-detail-note: #777;
  color: var(--mypage-text);
}

/* 見出し（スマホ 24px・PC 32px） */
.p-page-contractDetail .s-myPageContent-infoWrap__title {
  padding-bottom: 2rem;
}
.p-page-contractDetail .p-contractDetail__title {
  color: var(--mypage-text);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

/* 白いカード */
.p-page-contractDetail .mypage-detail__block {
  margin-bottom: 2rem;
  padding: 2rem;
  border: 0;
  border-radius: var(--mypage-card-radius);
  background: #fff;
}
.p-page-contractDetail .mypage-detail__title {
  margin-bottom: 0;
  color: var(--mypage-theme);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

/* 項目の行（スマホ：項目名の下に内容。行の下に線） */
.p-page-contractDetail .mypage-detail__list {
  font-size: 1.4rem;
}
.p-page-contractDetail .mypage-detail__row {
  gap: 1rem;
  margin-top: 2rem;
  padding: 0 0 2rem;
  border-bottom: 1px solid var(--contract-detail-line);
}
.p-page-contractDetail .mypage-detail__row dt {
  color: var(--mypage-text);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.p-page-contractDetail .mypage-detail__row dd {
  gap: 1rem;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.05em;
}

/* 商品（お水・サーバ） */
.p-page-contractDetail .mypage-detail__product {
  gap: 2rem;
  margin-top: 2rem;
}
.p-page-contractDetail .mypage-detail__image {
  width: 100%;
  max-width: 20rem;
  min-height: 20rem;
  border: 0;
  background: #f7f7f7;
}
.p-page-contractDetail .mypage-detail__noimage {
  color: var(--subscription-detail-noimage, #d9d9d9);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}

/* ボタン（丸ボタン。スマホは横いっぱい、PC は 237px） */
.p-page-contractDetail .mypage-detail__list .mypage-btn,
.p-page-contractDetail .mypage-detail__head .mypage-btn {
  width: 100%;
  padding: 1.2rem 2rem;
  border-radius: 5rem;
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.p-page-contractDetail .mypage-detail__head {
  gap: 1rem;
  margin-bottom: 2rem;
}
.p-page-contractDetail .mypage-btn--back {
  border-color: #7c7c7c;
  background-color: #fff;
  color: #7c7c7c !important;
}

/* 注意書き */
.p-page-contractDetail .mypage-detail__note,
.p-page-contractDetail .mypage-change__note {
  color: var(--contract-detail-note);
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
/* 値・ボタンの下の行に表示する注意書き */
.p-page-contractDetail .mypage-detail__note--block {
  flex-basis: 100%;
}
.p-page-contractDetail .mypage-detail__note a {
  color: var(--mypage-theme);
  text-decoration: underline;
}

@media screen and (min-width: 768px) {
  .p-page-contractDetail .s-myPageContent-infoWrap__title {
    padding-bottom: 3rem;
  }
  .p-page-contractDetail .p-contractDetail__title {
    font-size: 3.2rem;
  }
  .p-page-contractDetail .mypage-detail__block {
    margin-bottom: 3rem;
    padding: 3rem;
  }
  /* PC：項目名 200px ＋ 内容（ボタンは内容の右） */
  .p-page-contractDetail .mypage-detail__row {
    flex-direction: row;
    align-items: flex-start;
    gap: 2rem;
  }
  .p-page-contractDetail .mypage-detail__row dt {
    flex: 0 0 20rem;
    width: 20rem;
  }
  .p-page-contractDetail .mypage-detail__row dd {
    flex: 1;
    min-width: 0;
  }
  .p-page-contractDetail .mypage-detail__list .mypage-btn,
  .p-page-contractDetail .mypage-detail__head .mypage-btn {
    width: 23.7rem;
  }
}

/* 注文内容の詳細ダイアログ（ご契約・ご注文一覧の過去の注文・ご契約内容の詳細の注文履歴）
   ご契約・ご注文一覧でも、ご契約内容の詳細の注文履歴と同じ行の余白・文字の大きさにそろえる */
.mypage-dialog--change.mypage-dialog--wide .mypage-detail__row {
  margin-top: 2rem;
}
.mypage-dialog--change.mypage-dialog--wide .mypage-detail__row dt {
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-dialog--change.mypage-dialog--wide .mypage-detail__row dd {
  gap: 1rem;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.05em;
}
.mypage-dialog--change.mypage-dialog--wide .mypage-detail__note {
  color: var(--contract-detail-note, #777);
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
@media (min-width: 768px) {
  .mypage-dialog--change.mypage-dialog--wide .mypage-detail__row dt {
    flex: 0 0 20rem;
    width: 20rem;
  }
}

/* MyPage 契約内容変更（入力→確認→完了） */
.mypage-change {
  border: 1px solid var(--mypage-border);
  border-radius: 0.4rem;
  padding: 1.6rem;
  background: #fff;
}
.mypage-change__errors {
  border: 1px solid var(--mypage-error);
  color: var(--mypage-error);
  border-radius: 0.4rem;
  padding: 1rem 1.2rem;
  margin-bottom: 1.6rem;
  font-size: 1.3rem;
}
.mypage-change__input {
  border: 1px solid var(--mypage-border);
  border-radius: 0.4rem;
  padding: 0.6rem 0.8rem;
  font-size: 1.4rem;
  min-width: 16rem;
}
.mypage-change__candidate {
  font-size: 1.2rem;
  padding: 0.6rem 1rem;
  margin: 0 0.4rem 0.4rem 0;
}
/* 入力欄を横並びにするグループ（氏名の姓名、郵便番号＋自動入力ボタン） */
.mypage-change__inputGroup {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  width: 100%;
}
.mypage-change__inputGroup .mypage-change__input {
  flex: 1 1 0;
  min-width: 0;
}
.mypage-change__inputGroupBtn {
  flex: 0 0 auto;
  white-space: nowrap;
}
.mypage-change__radio {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  width: 100%;
  font-size: 1.3rem;
}
.mypage-change__note {
  font-size: 1.2rem;
  color: var(--mypage-text-muted);
  margin-top: 1.6rem;
}
.mypage-change__note--attention {
  color: var(--mypage-error);
  font-size: 1.4rem;
  font-weight: bold;
  margin-top: 0;
}
.mypage-change__complete {
  font-size: 1.5rem;
  font-weight: bold;
  text-align: center;
  padding: 2.4rem 0;
}
.mypage-change__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.8rem;
  margin-top: 2.4rem;
}
.mypage-btn--back {
  background-color: #fff;
  border-color: var(--mypage-border);
  color: var(--mypage-text) !important;
}
/* MyPage 変更ダイアログ（common.css の m-dialogBox を利用） */
/* ダイアログとウィンドウの四辺の間に余白を確保する（基底の下方向のみ広い余白を上書き） */
.mypage-dialog {
  z-index: 1200;
  padding: var(--mypage-dialog-outer-space);
}
/* 基底の .m-dialogBox--open .m-dialogBox__inner（padding: 0）を上書きするため詳細度を上げる */
.mypage-dialog.m-dialogBox--open .mypage-dialog__inner {
  width: 100%;
  max-width: var(--mypage-dialog-max-width);
  margin: auto;
  padding: var(--mypage-dialog-inner-space);
  border-radius: 0.6rem;
  background: #fff;
}
.mypage-dialog--wide.m-dialogBox--open .mypage-dialog__inner {
  max-width: var(--mypage-dialog-wide-max-width);
}
/* 注文履歴一覧（1行1注文。件数が多くなるため簡潔に表示する） */
.mypage-history {
  max-height: var(--mypage-history-max-height);
  overflow-y: auto;
  border: 1px solid var(--mypage-border);
  border-radius: 0.4rem;
}
.mypage-history__item {
  position: relative;
  padding: 1rem 6rem 1rem 1.2rem;
  border-bottom: 1px solid var(--mypage-divider);
  cursor: pointer;
  font-size: 1.3rem;
}
.mypage-history__item:last-child {
  border-bottom: none;
}
.mypage-history__item:hover {
  background: var(--mypage-panel-bg);
}
.mypage-history__main {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-weight: bold;
}
.mypage-history__date {
  font-family: var(--font-en);
}
.mypage-history__status {
  font-size: 1.1rem;
  color: var(--mypage-theme);
}
.mypage-history__sub {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  margin-top: 0.4rem;
  color: var(--mypage-text-muted);
  font-size: 1.2rem;
}
.mypage-history__products {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.mypage-history__price {
  flex-shrink: 0;
  font-family: var(--font-en);
}
.mypage-history__detailLink {
  position: absolute;
  top: 50%;
  right: 1.2rem;
  transform: translateY(-50%);
  font-size: 1.2rem;
  color: var(--mypage-theme);
}
.mypage-history__pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  margin-top: 1.2rem;
}
.mypage-history__pagerText {
  font-size: 1.2rem;
  color: var(--mypage-text-muted);
}
.mypage-history__productList {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.mypage-dialog__title {
  font-size: 1.6rem;
  font-weight: bold;
  color: var(--mypage-theme);
  text-align: center;
  margin-bottom: 1.6rem;
}
.mypage-dialog .mypage-detail__row:last-child {
  border-bottom: none;
}
.mypage-dialog .mypage-change__note {
  margin-top: 0.8rem;
  width: 100%;
}
.mypage-dialog .mypage-change__note--attention {
  margin-top: 0;
  margin-bottom: 1.6rem;
}

@media (min-width: 768px) {
  .mypage-dialog {
    padding: var(--mypage-dialog-outer-space-pc);
  }
  .mypage-dialog.m-dialogBox--open .mypage-dialog__inner {
    padding: var(--mypage-dialog-inner-space-pc);
  }
}

/* MyPage 契約一覧の変更ダイアログ（次回配送予定日の変更・スキップ。Figma「次回配送予定日の変更」PC・SP。スキップはデザインなしのため同じ見た目） */
.mypage-dialog--change {
  --mypage-dialog-change-text: #7c7c7c;
  --mypage-dialog-change-line: #e3e3e3;
  --mypage-dialog-change-input-bg: #f5fbfe;
  padding: 3rem;
}
.mypage-dialog--change.m-dialogBox--open .mypage-dialog__inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  max-width: 66.5rem;
  padding: 3rem;
  border-radius: 1rem;
}
.mypage-dialog--change .mypage-dialog__title {
  margin-bottom: 0;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-dialog--change .mypage-change__errors {
  margin-bottom: 0;
}
.mypage-dialog--change .mypage-detail__list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--mypage-dialog-change-text);
}
.mypage-dialog--change .mypage-detail__row {
  gap: 0;
  padding: 0 0 1rem;
  border-bottom-color: var(--mypage-dialog-change-line);
}
.mypage-dialog--change .mypage-detail__row:last-child {
  padding-bottom: 0;
}
.mypage-dialog--change .mypage-detail__row dt {
  font-weight: 500;
  color: var(--mypage-dialog-change-text);
}
.mypage-dialog--change .mypage-detail__row dd {
  color: var(--mypage-text);
}
.mypage-dialog--change .mypage-change__input[type=date] {
  width: 100%;
  min-width: 0;
  min-height: 0;
  margin-top: 1rem;
  padding: 0.5rem 1.5rem;
  border: 1px solid var(--mypage-dialog-change-text);
  border-radius: 0.6rem;
  background-color: var(--mypage-dialog-change-input-bg);
  color: var(--mypage-text);
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-dialog--change .mypage-change__input[type=date]::-webkit-calendar-picker-indicator {
  width: 2.4rem;
  height: 2.4rem;
  margin-left: 1rem;
  padding: 0;
  background: url(../img/user/mypage/icon_mypage_calendar_input.svg) no-repeat center / contain;
  opacity: 1;
  cursor: pointer;
}
.mypage-dialog--change .mypage-change__note {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--mypage-dialog-change-text);
}
.mypage-dialog--change .mypage-change__note--attention {
  font-weight: bold;
  color: var(--mypage-error);
}
.mypage-dialog--change .mypage-change__complete {
  padding: 1rem 0;
}
.mypage-dialog--change .mypage-change__actions {
  gap: 1rem;
  margin-top: 0;
}
.mypage-dialog--change .mypage-change__actions .mypage-btn {
  padding: 0.5rem 1.6rem;
  border-radius: 5rem;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.mypage-dialog--change .mypage-change__actions .mypage-btn--back {
  border-color: var(--mypage-dialog-change-text);
  color: var(--mypage-dialog-change-text) !important;
}
/* ポップアップの入力欄・選択欄・補助ボタン（定期購入情報詳細のポップアップと同じ。260925 ユーザー指示）
   高さ 41px・角丸 3px・薄い青の地・グレーの枠・16px。郵便番号の横のボタンはグレーの丸ボタン */
.mypage-dialog--change .mypage-change__input:not([type=date]),
.mypage-dialog--change select.mypage-change__input,
.mypage-dialog--change .mypage-dialog__inner select,
.mypage-dialog--change .mypage-dialog__inner input[type=text],
.mypage-dialog--change .mypage-dialog__inner input[type=tel],
.mypage-dialog--change .mypage-dialog__inner input[type=number] {
  width: 100%;
  min-height: 4.1rem;
  padding: 0.2rem 1.9rem;
  border: 1px solid var(--mypage-dialog-change-text);
  border-radius: 0.3rem;
  background-color: var(--mypage-dialog-change-input-bg);
  color: var(--mypage-text);
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.013em;
}
.mypage-dialog--change .mypage-change__inputGroup {
  align-items: center;
  gap: 1rem;
}
.mypage-dialog--change .mypage-change__inputGroupBtn {
  flex-shrink: 0;
  min-height: 4.1rem;
  padding: 0.3rem 2rem;
  border-color: var(--mypage-dialog-change-text);
  border-radius: 10rem;
  background-color: var(--mypage-dialog-change-text);
  color: var(--mypage-dialog-change-input-bg) !important;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
/* ラジオ（配送サイクルの種類など）・入力欄の下の説明 */
.mypage-dialog--change .mypage-change__radio {
  gap: 1rem;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.013em;
  color: var(--mypage-text);
}
.mypage-dialog--change .mypage-change__candidate {
  color: var(--mypage-dialog-change-text);
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.013em;
}

/* 注文履歴のポップアップの中身（ほかのポップアップに合わせた見た目。260925 ユーザー指示・デザインなし） */
.mypage-dialog--change .mypage-history {
  max-height: var(--mypage-history-max-height);
  border: 0;
  border-radius: 0;
  border-top: 1px solid var(--mypage-dialog-change-line);
}
.mypage-dialog--change .mypage-history__item {
  padding: 1.5rem 8rem 1.5rem 0;
  border-bottom: 1px solid var(--mypage-dialog-change-line);
  font-size: 1.4rem;
}
.mypage-dialog--change .mypage-history__item:last-child {
  border-bottom: 1px solid var(--mypage-dialog-change-line);
}
.mypage-dialog--change .mypage-history__item:hover {
  background: var(--mypage-dialog-change-input-bg);
}
.mypage-dialog--change .mypage-history__main {
  gap: 1rem;
  color: var(--mypage-text);
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-dialog--change .mypage-history__status {
  color: var(--mypage-theme);
  font-size: 1.4rem;
  font-weight: 500;
}
.mypage-dialog--change .mypage-history__sub {
  margin-top: 0.5rem;
  color: var(--mypage-dialog-change-text);
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-dialog--change .mypage-history__price {
  color: var(--mypage-text);
  font-weight: bold;
}
.mypage-dialog--change .mypage-history__detailLink {
  right: 0;
  padding: 0.3rem 1.6rem;
  border: 1px solid var(--mypage-theme);
  border-radius: 10rem;
  color: var(--mypage-theme);
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-dialog--change .mypage-history__pager {
  gap: 1.5rem;
  margin-top: 0;
}
.mypage-dialog--change .mypage-history__pagerText {
  color: var(--mypage-dialog-change-text);
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.mypage-dialog--change .mypage-history__pager .mypage-btn {
  min-width: 10rem;
  padding: 0.5rem 2rem;
  border-radius: 5rem;
  font-size: 1.4rem;
  line-height: 1.6;
}
.mypage-dialog--change .mypage-history__productList {
  gap: 0.5rem;
}

/* ポップアップのボタン（全ポップアップ共通。スマホは青いボタンを上・キャンセル等を下の 2 段にし、幅 240px で固定（画面が狭いときだけ縮む）。PC は横並び） */
.mypage-dialog .mypage-change__actions {
  display: grid;
  grid-template-columns: minmax(0, 24rem);
  justify-content: center;
}
.mypage-dialog .mypage-change__actions .mypage-btn--back {
  order: 1;
}

@media (min-width: 768px) {
  .mypage-dialog .mypage-change__actions {
    display: flex;
  }
  .mypage-dialog .mypage-change__actions .mypage-btn--back {
    order: 0;
  }
  .mypage-dialog--change {
    padding: var(--mypage-dialog-outer-space-pc);
  }
  .mypage-dialog--change .mypage-detail__row {
    gap: 1rem;
  }
  .mypage-dialog--change .mypage-detail__row dt {
    width: 21rem;
    white-space: nowrap;
  }
  .mypage-dialog--change .mypage-detail__row dd {
    color: var(--mypage-dialog-change-text);
  }
  .mypage-dialog--change .mypage-change__input[type=date] {
    width: auto;
    margin-top: 0;
  }
  .mypage-dialog--change .mypage-change__actions .mypage-btn {
    min-width: 16.6rem;
    padding: 0.5rem 4rem;
  }
}




/* MyPage W2 標準のダイアログ（window.utDialog。定期購入情報詳細の「定期購入情報に問題が発生しました。」など）を、ほかのポップアップ（次回配送予定日の変更）に合わせる（260915 デザインなし）
   ダイアログは #rootTemplate の中で本文の後ろにあるため、マイページ系のページ（l-container-wrap--mypage）の後ろにあるものだけに限定する */
.l-container-wrap--mypage ~ .m-dialogBox {
  padding: 3rem;
}
.l-container-wrap--mypage ~ .m-dialogBox.m-dialogBox--open .m-dialogBox__inner {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  width: 100%;
  min-width: 0;
  max-width: 66.5rem;
  padding: 3rem;
  border: none;
  border-radius: 1rem;
  background: #fff;
}
.l-container-wrap--mypage ~ .m-dialogBox .m-dialogBoxHeding {
  padding: 0;
  border-radius: 0;
  background: none;
}
.l-container-wrap--mypage ~ .m-dialogBox .m-dialogBoxHeding__title {
  color: var(--mypage-theme);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypage ~ .m-dialogBox .m-dialogBoxBody {
  padding: 0;
}
.l-container-wrap--mypage ~ .m-dialogBox .m-dialogBoxBody__caption {
  color: #7c7c7c;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
/* ボタン（ほかのポップアップと同じ。スマホは青いボタンを上・キャンセルを下の 2 段で幅 240px、PC は横並び） */
.l-container-wrap--mypage ~ .m-dialogBox .m-dialogBoxBody__button {
  display: grid;
  grid-template-columns: minmax(0, 24rem);
  justify-content: center;
  gap: 1rem;
  padding-top: 2rem;
}
.l-container-wrap--mypage ~ .m-dialogBox .m-dialogBoxBody__button > .c-btn-fluid {
  max-width: none;
  padding: 0.5rem 1.6rem;
  border-color: var(--mypage-theme);
  border-radius: 5rem;
  background-color: var(--mypage-theme);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypage ~ .m-dialogBox .m-dialogBoxBody__button > .js-dialogCancel {
  order: 1;
  border-color: #7c7c7c;
  background-color: #fff;
  color: #7c7c7c !important;
}

@media (min-width: 768px) {
  .l-container-wrap--mypage ~ .m-dialogBox {
    padding: var(--mypage-dialog-outer-space-pc);
  }
  .l-container-wrap--mypage ~ .m-dialogBox .m-dialogBoxBody__button {
    display: flex;
  }
  .l-container-wrap--mypage ~ .m-dialogBox .m-dialogBoxBody__button > .c-btn-fluid {
    width: auto;
    min-width: 16.6rem;
    margin: 0;
    padding: 0.5rem 4rem;
  }
  .l-container-wrap--mypage ~ .m-dialogBox .m-dialogBoxBody__button > .js-dialogCancel {
    order: 0;
  }
}



/* =============================================================
    定期購入情報詳細（260914 Figma「定期購入情報詳細」PC。スマホはデザインなし＝W2 の縦並びのまま文字・ボタンだけ合わせた）
    W2 標準のパーツ「マイページ 定期詳細」の見た目を上書きする。全体の背景・2 列はマイページTOPと同じ l-container-wrap--mypage
============================================================= */
.p-page-fixedPurchaseDetail {
  --subscription-detail-text: #333;
  --subscription-detail-line: #e3e3e3;
  --subscription-detail-button: #7c7c7c;
  --subscription-detail-note: #777;
  --subscription-detail-checkbox: #676767;
  --subscription-detail-noimage: #d9d9d9;
  color: var(--subscription-detail-text);
}

/* 見出し ＋ 説明（PC：見出し 32px・説明 14px、カードとの間 30px） */
.p-page-fixedPurchaseDetail .s-myPageContent-infoWrap__title {
  padding-bottom: 2rem;
}
.p-page-fixedPurchaseDetail .c-form-title {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.p-page-fixedPurchaseDetail .m-formHeading-title__lead {
  margin-top: 0.5rem;
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

/* 白いカード（PC：内側の余白 30px） */
.p-page-fixedPurchaseDetail .p-fixedPurchaseDetail-content {
  margin-top: 0;
  padding: 2rem;
  border-radius: var(--mypage-card-radius);
  background: #fff;
}

/* 商品（見出しの行・商品の行） */
.p-page-fixedPurchaseDetail .p-fixedPurchaseDetail-content__products {
  border-top: none;
}
.p-page-fixedPurchaseDetail .m-userProductSect-item {
  border-bottom-color: var(--subscription-detail-line);
}
.p-page-fixedPurchaseDetail .m-userProductSect-item:first-child {
  border-top-color: var(--subscription-detail-line);
}
.p-page-fixedPurchaseDetail .m-userProductSect-item__picture {
  display: block;
  background: var(--subscription-detail-noimage);
}
.p-page-fixedPurchaseDetail .m-userProductSect-itemDetail__title {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.p-page-fixedPurchaseDetail .m-userProductSect-itemDetail__info {
  margin-top: 0;
  gap: 0;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.p-page-fixedPurchaseDetail .m-userProductSect-itemPrice__price,
.p-page-fixedPurchaseDetail .m-userProductSect-itemQuantity-num__text-wrap {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

/* 項目の行（定期購入情報〜配送指定。PC：項目名 200px ＋ 内容 ＋ ボタン 237px、行の下に線） */
.p-page-fixedPurchaseDetail .m-userSectCol {
  gap: 1rem;
  margin-top: 2rem;
  padding: 0 0 2rem;
  border-top: none;
  border-bottom: 1px solid var(--subscription-detail-line);
}
.p-page-fixedPurchaseDetail .m-userSectCol:last-child {
  border-bottom-color: var(--subscription-detail-line);
}
.p-page-fixedPurchaseDetail .m-userSectCol-head__title {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.p-page-fixedPurchaseDetail .m-userSectCol-typeSep {
  gap: 1.5rem;
}
.p-page-fixedPurchaseDetail .c-userSectCol-infoInline,
.p-page-fixedPurchaseDetail .c-userSectCol-info {
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.05em;
}
.p-page-fixedPurchaseDetail .c-userSectCol-infoInline:not(:first-child),
.p-page-fixedPurchaseDetail .c-userSectCol-info:not(:first-child) {
  margin-top: 0;
}
.p-page-fixedPurchaseDetail .c-userSectCol-infoInline__text--bold {
  font-weight: 400;
}

/* ボタン（丸・グレー。今すぐ注文だけ W2 の青のまま） */
.p-page-fixedPurchaseDetail .m-userSectCol-typeSep__button-wrap {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.p-page-fixedPurchaseDetail .m-userSectCol-typeSep-button {
  width: 100%;
}
.p-page-fixedPurchaseDetail .m-userSectCol-typeSep-button:not(:first-child) {
  margin-top: 0;
}
.p-page-fixedPurchaseDetail .m-userSectCol .c-btn-fluid {
  padding: 1rem;
  border-radius: 5rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.p-page-fixedPurchaseDetail .m-userSectCol .c-btn-fluid--gray {
  border-color: var(--subscription-detail-button);
  background-color: var(--subscription-detail-button);
}

/* 注意書き（12px・グレー） */
.p-page-fixedPurchaseDetail .c-userSectCol-annotation {
  margin-top: 2rem;
}
.p-page-fixedPurchaseDetail .c-userSectCol-annotation__text {
  color: var(--subscription-detail-note);
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.p-page-fixedPurchaseDetail .c-userSectCol-annotation__text:not(:first-child) {
  margin-top: 0;
}

/* 今すぐ注文：次回発送日を更新する（チェックボックス 20px） */
.p-page-fixedPurchaseDetail .c-formInput-item__block-item {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  cursor: pointer;
}
.p-page-fixedPurchaseDetail .c-formInput-item__block-button {
  width: 2rem;
  height: 2rem;
  margin-right: 1rem;
  border-color: var(--subscription-detail-checkbox);
}

/* 戻る（白・グレーの枠の丸ボタン。W2 の .c-btn-progress は文字色に !important があるため、上書きも !important） */
.p-page-fixedPurchaseDetail .s-myPageContent-progress {
  padding-top: 3rem;
}
.p-page-fixedPurchaseDetail .c-btn-progress--white {
  padding: 2rem 4rem;
  border-color: var(--subscription-detail-button);
  border-radius: 5rem;
  color: var(--subscription-detail-button) !important;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .p-page-fixedPurchaseDetail .s-myPageContent-infoWrap__title {
    padding-bottom: 3rem;
  }
  .p-page-fixedPurchaseDetail .c-form-title {
    font-size: 3.2rem;
  }
  .p-page-fixedPurchaseDetail .p-fixedPurchaseDetail-content {
    padding: 3rem;
  }

  /* 商品：見出しの行は高さ 50px・上下に線、列は 商品情報｜商品価格｜注文数 */
  .p-page-fixedPurchaseDetail .m-userProductSect-title {
    padding: 1.45rem 0 1.45rem 1.6rem;
    border-top: 1px solid var(--subscription-detail-line);
    border-bottom-color: var(--subscription-detail-line);
    color: var(--subscription-detail-button);
    line-height: 1.6;
    letter-spacing: 0.05em;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-title__info {
    flex: 0 0 69.9%;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-title__price {
    flex: 0 0 20.4%;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-title__quantity {
    flex: 1 1 auto;
  }
  /* 商品の行：画像 136×177px ＋ 間 30px ＋ 商品名 ＋ 価格 177px ＋ 注文数 */
  .p-page-fixedPurchaseDetail .m-userProductSect-item {
    margin-top: 2rem;
    padding: 0 0 4rem 1.6rem;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-item__inner {
    justify-content: flex-start;
    align-items: center;
    gap: 3rem;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-item__pictureWrap {
    flex: 0 0 13.6rem;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-item__picture img {
    width: 100%;
    height: 17.7rem;
    object-fit: cover;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-item__info {
    flex: 1 1 auto;
    gap: 0;
    min-width: 0;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-itemDetail {
    flex: 1 1 auto;
    min-width: 0;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-itemDetail__title {
    font-size: 1.6rem;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-itemDetail__info {
    font-size: 1.4rem;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-itemPrice {
    flex: 0 0 17.7rem;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-itemQuantity-num {
    flex: 0 0 auto;
  }
  .p-page-fixedPurchaseDetail .m-userProductSect-itemPrice__price,
  .p-page-fixedPurchaseDetail .m-userProductSect-itemQuantity-num__text-wrap {
    font-size: 1.6rem;
  }

  /* 項目の行 */
  .p-page-fixedPurchaseDetail .m-userSectCol {
    justify-content: flex-start;
    padding: 0 0 2rem 1.6rem;
  }
  .p-page-fixedPurchaseDetail .m-userSectCol-head {
    flex: 0 0 20rem;
    width: auto;
  }
  .p-page-fixedPurchaseDetail .m-userSectCol-head__title {
    margin-top: 0;
  }
  .p-page-fixedPurchaseDetail .m-userSectCol-body {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
  }
  .p-page-fixedPurchaseDetail .m-userSectCol-typeSep {
    justify-content: flex-start;
    gap: 1rem;
  }
  .p-page-fixedPurchaseDetail .m-userSectCol-typeSep__info {
    flex: 1 1 auto;
    min-width: 0;
  }
  .p-page-fixedPurchaseDetail .m-userSectCol-typeSep__button-wrap {
    flex: 0 0 23.7rem;
  }
  .p-page-fixedPurchaseDetail .c-userSectCol-infoInline,
  .p-page-fixedPurchaseDetail .c-userSectCol-info {
    font-size: 1.6rem;
  }

  /* 戻る（幅 330px） */
  .p-page-fixedPurchaseDetail .m-progress-button-wrap__item {
    max-width: 33rem;
  }
}


/* 定期購入情報詳細のポップアップ（W2 の m-modalBox。配送サイクル・次回配送日・お支払い方法・領収書・お届け先・配送時間帯の変更）
   260915 Figma「マイページ-定期購入情報詳細 - 配送先変更（ポップアップ）」PC。ほかのポップアップはデザインなし＝同じ見た目に合わせた。スマホはデザインなし＝項目名の下に入力欄 */
.p-page-fixedPurchaseDetail .m-modalBox {
  --subscription-modal-text: #333;
  --subscription-modal-sub: #7c7c7c;
  --subscription-modal-line: #e2e2e2;
  --subscription-modal-input-bg: #f5fbfe;
  padding: 2rem;
}
.p-page-fixedPurchaseDetail .m-modalBox__outer {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  width: 100%;
  max-width: 66.5rem;
  padding: 2.4rem 2rem;
  border-radius: 1rem;
  background: #fff;
  color: var(--subscription-modal-text);
}

/* 見出し（背景なし・青 18px。閉じるはキャンセルがあるため出さない） */
.p-page-fixedPurchaseDetail .m-modalBoxHeding {
  padding: 0;
  border-radius: 0;
  background: none;
}
.p-page-fixedPurchaseDetail .m-modalBoxHeding__closeBtn {
  display: none;
}
.p-page-fixedPurchaseDetail .m-modalBoxHeding__title {
  color: var(--mypage-theme);
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

/* 本文（W2 の灰色の入力エリアの背景・余白・幅の上限を外す） */
.p-page-fixedPurchaseDetail .m-modalInSetChange {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  max-width: none;
  padding: 0;
}
.p-page-fixedPurchaseDetail .m-modalBox .m-userSectCol-entryFormWrap {
  padding: 0;
}
.p-page-fixedPurchaseDetail .m-modalBox .m-userSectCol-entryForm {
  padding: 0;
  border-radius: 0;
  background: none;
}
.p-page-fixedPurchaseDetail .m-modalBox .m-userSectCol-entryForm .m-formInputArea-item {
  max-width: none;
}

/* 項目の行（スマホ：項目名の下に入力欄、PC：項目名 170px ＋ 入力欄。行の下に線） */
.p-page-fixedPurchaseDetail .m-modalBox .m-formInputArea-item {
  margin: 0;
  padding: 1rem 0;
  border-bottom: 1px solid var(--subscription-modal-line);
}
.p-page-fixedPurchaseDetail .m-modalBox .m-formInputArea-item .m-formInputArea-item {
  padding: 0;
  border-bottom: none;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-itemTitle {
  margin-bottom: 0.8rem;
  color: var(--subscription-modal-text);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-itemTitle + .c-formInput-item {
  margin-top: 0;
}
/* 必須の印はデザインにないため出さない（入力チェックはそのまま動く） */
.p-page-fixedPurchaseDetail .m-modalBox .c-required-icon {
  display: none;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item:not(:last-of-type) {
  margin-bottom: 1rem;
}

/* 入力欄（高さ 41px・角丸 3px・薄い青の地・グレーの枠・16px） */
.p-page-fixedPurchaseDetail .m-modalBox input[type=text],
.p-page-fixedPurchaseDetail .m-modalBox input[type=tel],
.p-page-fixedPurchaseDetail .m-modalBox input[type=password],
.p-page-fixedPurchaseDetail .m-modalBox select {
  min-height: 4.1rem;
  padding-top: 0.2rem;
  padding-bottom: 0.2rem;
  padding-left: 1.9rem;
  border: 1px solid var(--subscription-modal-sub);
  border-radius: 0.3rem;
  background-color: var(--subscription-modal-input-bg);
  color: var(--subscription-modal-text);
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.013em;
}
.p-page-fixedPurchaseDetail .m-modalBox input[type=text],
.p-page-fixedPurchaseDetail .m-modalBox input[type=tel],
.p-page-fixedPurchaseDetail .m-modalBox input[type=password] {
  padding-right: 1.9rem;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item__col2 {
  gap: 1rem;
}

/* 郵便番号 ＋ 住所を自動入力（グレーの丸ボタン） */
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item__zipcode {
  align-items: center;
  gap: 1rem;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item__zipcode .c-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 4.1rem;
  padding: 0.3rem 1rem;
  border-color: var(--subscription-modal-sub);
  border-radius: 10rem;
  background-color: var(--subscription-modal-sub);
  color: var(--subscription-modal-input-bg) !important;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

/* 入力欄の下の説明・エラー */
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item__annotation {
  margin-top: 0.5rem;
  color: var(--subscription-modal-sub);
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.013em;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item__alert--active:empty {
  display: none;
}

/* ラジオ（配送サイクル・お支払い方法）・選んだお届け先の表示 */
.p-page-fixedPurchaseDetail .m-modalBox .m-userSectCol-typeRadio {
  padding-bottom: 1rem;
  border-bottom-color: var(--subscription-modal-line);
}
.p-page-fixedPurchaseDetail .m-modalBox .m-userSectCol-typeRadio:not(:first-child) {
  margin-top: 0;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-userSectCol-radioItem,
.p-page-fixedPurchaseDetail .m-modalBox .c-orderSectCol-info,
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item__block-text {
  color: var(--subscription-modal-text);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.p-page-fixedPurchaseDetail .m-modalBox .m-userSectCol-typeRadio__item + .m-userSectCol-typeRadio__item {
  margin-top: 1rem;
}

/* 他の定期購入情報・会員情報を合わせて変更（チェックボックスの枠） */
.p-page-fixedPurchaseDetail .m-modalBox .c-addressUpdateBox-form {
  margin: 0;
  padding: 1.5rem;
  border-color: var(--subscription-modal-line);
  border-radius: 1rem;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-addressUpdateBox-form-content {
  gap: 0.5rem;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-addressUpdateBox-form-content label {
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-addressUpdateBox-form .c-userSectCol-annotation__text {
  margin-top: 1rem;
}

/* ボタンの上の説明（14px・グレー） */
.p-page-fixedPurchaseDetail .m-modalBox .m-modalInSetChange__note,
.p-page-fixedPurchaseDetail .m-modalBox .c-userSectCol-annotation__text {
  color: var(--subscription-modal-sub);
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

/* 項目名が文（「次回配送日を選択してください。」など）の行は、PC でも項目名の下に入力欄。チェックボックスはセレクトの下の行に */
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-itemTitle--headline {
  margin-bottom: 1rem;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item > select + input[type=checkbox] {
  margin: 1.5rem 1rem 0 0;
  vertical-align: middle;
}
.p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item > select + input[type=checkbox] + .c-formInput-item__block-text {
  vertical-align: middle;
}

/* ボタン（ほかのポップアップと同じ。スマホは青いボタンを上・キャンセルを下の 2 段で幅 240px、PC は横並び） */
.p-page-fixedPurchaseDetail .m-modalBoxFooterBtn {
  display: grid;
  grid-template-columns: minmax(0, 24rem);
  justify-content: center;
  gap: 1rem;
  padding: 0;
}
.p-page-fixedPurchaseDetail .m-modalBoxFooterBtn__close,
.p-page-fixedPurchaseDetail .m-modalBoxFooterBtn__next {
  max-width: none;
  margin: 0;
}
.p-page-fixedPurchaseDetail .m-modalBoxFooterBtn .c-btn-progress {
  padding: 0.5rem 1.6rem;
  border-color: var(--mypage-theme);
  border-radius: 5rem;
  background-color: var(--mypage-theme);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.p-page-fixedPurchaseDetail .m-modalBoxFooterBtn .c-btn-progress--white {
  border-color: var(--subscription-modal-sub);
  background-color: #fff;
  color: var(--subscription-modal-sub) !important;
}

@media screen and (min-width: 768px) {
  .p-page-fixedPurchaseDetail .m-modalBox {
    padding: 4rem;
  }
  .p-page-fixedPurchaseDetail .m-modalBox__outer {
    padding: 3rem;
  }
  .p-page-fixedPurchaseDetail .m-modalBox .m-formInputArea-item:not(:has(> .c-formInput-itemTitle--headline)) {
    display: flex;
    align-items: center;
    gap: 2rem;
  }
  .p-page-fixedPurchaseDetail .m-modalBox .m-formInputArea-item > .c-formInput-itemTitle:not(.c-formInput-itemTitle--headline) {
    flex: 0 0 17rem;
    margin-bottom: 0;
  }
  .p-page-fixedPurchaseDetail .m-modalBox .m-formInputArea-item > .c-formInput-item {
    flex: 1 1 auto;
    min-width: 0;
  }
  /* 入力欄の幅（1 つ＝220px、姓・名＝204px・200px、郵便番号＝230px） */
  .p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item > input[type=text],
  .p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item > input[type=tel],
  .p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item > select {
    display: block;
    width: 22rem;
    max-width: 100%;
  }
  .p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item__col2 {
    justify-content: flex-start;
  }
  .p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item__col2 > input {
    width: 20.4rem;
  }
  .p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item__zipcode > input {
    flex: 0 0 23rem;
    width: 23rem;
  }
  .p-page-fixedPurchaseDetail .m-modalBox .c-formInput-item__zipcode .c-btn {
    flex: 1 1 auto;
    width: auto;
  }
  .p-page-fixedPurchaseDetail .m-modalBoxFooterBtn {
    display: flex;
  }
  .p-page-fixedPurchaseDetail .m-modalBoxFooterBtn__close {
    order: 1;
    width: auto;
  }
  .p-page-fixedPurchaseDetail .m-modalBoxFooterBtn__next {
    order: 2;
    width: auto;
  }
  .p-page-fixedPurchaseDetail .m-modalBoxFooterBtn .c-btn-progress {
    min-width: 16.6rem;
    padding: 0.5rem 4rem;
  }
}


/* =============================================================
    マイページのフォーム・一覧（260915 デザインなし＝ほかのページに合わせた）
    会員登録情報の変更・確認／お支払い方法一覧／クレジットカード情報の追加・変更／アドレス帳一覧・入力
    レイアウトはマイページTOP・定期購入情報詳細と同じ l-container-wrap--mypage（PC は左にサイドメニュー）。
    見出し・白いカードは定期購入情報詳細に、入力欄・ボタン・確認の行は会員登録に合わせる
    （入力・確認の 4 ページは l-container-wrap--regist も付けて会員登録の見た目を使い、違うところだけをここで指定する）
    .l-container-wrap--mypageForm を付けたページだけに効く
============================================================= */
.l-container-wrap--mypageForm {
  --mypage-form-text: #333;
  --mypage-form-line: #e2e2e2;
  --mypage-form-button: #7c7c7c;
  --mypage-form-note: #777;
  color: var(--mypage-form-text);
}
/* 会員登録のパーツの外枠（l-container-sm）の幅・余白を外す */
.l-container-wrap--mypageForm .l-container-sm {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

/* 見出し ＋ 説明（定期購入情報詳細と同じ。スマホ 24px・PC 32px、説明 14px） */
.l-container-wrap--mypageForm .s-myPageContent-infoWrap__title {
  padding-bottom: 2rem;
}
.l-container-wrap--mypageForm .m-formHeading-title {
  margin: 0;
  padding: 0;
  border-bottom: none;
}
.l-container-wrap--mypageForm .c-form-title {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypageForm .m-formHeading-title__lead {
  margin-top: 0.5rem;
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
/* 会員登録情報の変更で、変更できない項目を案内する注意文 */
.l-container-wrap--mypageForm .m-formHeading-title__lead--attention {
  color: var(--color-red);
  font-weight: 700;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .s-myPageContent-infoWrap__title {
    padding-bottom: 3rem;
  }
  .l-container-wrap--mypageForm .c-form-title {
    font-size: 3.2rem;
  }
}

/* 区分・1 件の見出し（お客様情報・ログイン情報・配送先情報・カード名など） */
.l-container-wrap--mypageForm .c-userSectHeading__title {
  margin-bottom: 0;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypageForm .m-userSectForm .c-userSectHeading,
.l-container-wrap--mypageForm .m-userSect .c-userSectHeading {
  padding: 0;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .c-userSectHeading__title {
    font-size: 2rem;
  }
}

/* ボタン（会員登録と同じ。スマホ：青 → 戻る の縦並び、PC：戻る｜青。各 330px。
   W2 の .c-btn-progress は文字色に !important があるため、上書きも !important） */
.l-container-wrap--mypageForm .s-myPageContent-progress,
.l-container-wrap--mypageForm .s-formContent-progress {
  padding-top: 3rem;
}
.l-container-wrap--mypageForm .m-progress-button-wrap__group {
  gap: 2rem;
}
.l-container-wrap--mypageForm .m-progress-button-wrap__item {
  max-width: 33rem;
}
.l-container-wrap--mypageForm .c-btn-progress {
  width: 100%;
  padding: 2rem 4rem;
  border-color: var(--mypage-theme);
  border-radius: 5rem;
  background-color: var(--mypage-theme);
  color: var(--color-white) !important;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypageForm .c-btn-progress--white {
  border-color: var(--mypage-form-button);
  background-color: var(--color-white);
  color: var(--mypage-form-button) !important;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .s-myPageContent-progress,
  .l-container-wrap--mypageForm .s-formContent-progress {
    padding-top: 5rem;
  }
}

/* 入力：区分ごとに白いカード（スマホ：余白 20px、PC：余白 30px・項目名 250px ＋ 入力欄。行の下に線） */
.l-container-wrap--mypageForm .p-userinfo__input-area {
  border-radius: 0;
  background-color: transparent;
}
.l-container-wrap--mypageForm .p-userinfo__input-area > div:not(:last-of-type) {
  margin-bottom: 2rem;
}
.l-container-wrap--mypageForm .p-userinfo__input-area-content + .p-userinfo__input-area-content {
  border-top: none;
}
.l-container-wrap--mypageForm .m-userSectForm-wrap,
.l-container-wrap--mypageForm .p-userinfo__input-area-content:first-child .m-userSectForm-wrap,
.l-container-wrap--mypageForm .p-userinfo__input-area-content:last-child .m-userSectForm-wrap {
  padding: 2rem;
  border-radius: var(--mypage-card-radius);
  background-color: var(--color-white);
}
.l-container-wrap--mypageForm .m-userSectForm-body,
.l-container-wrap--mypageForm .m-userSectForm-body--wide {
  margin-top: 0.5rem;
}
.l-container-wrap--mypageForm .m-userSectForm-wrap--noneTitle .m-userSectForm-body {
  margin-top: 0;
}
.l-container-wrap--mypageForm .c-userSect-entry,
.l-container-wrap--mypageForm .m-userSectForm-body--wide .c-userSect-entry {
  border-bottom-color: var(--mypage-form-line);
}
.l-container-wrap--mypageForm .c-userSect-entry:last-child,
.l-container-wrap--mypageForm .m-userSectForm-body--wide .c-userSect-entry:last-child {
  padding-bottom: 0;
}
.l-container-wrap--mypageForm .m-userSectForm-wrap--noneTitle .c-userSect-entry:first-child {
  padding-top: 0;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .p-userinfo__input-area > div:not(:last-of-type) {
    margin-bottom: 3rem;
  }
  .l-container-wrap--mypageForm .m-userSectForm-wrap,
  .l-container-wrap--mypageForm .p-userinfo__input-area-content:first-child .m-userSectForm-wrap,
  .l-container-wrap--mypageForm .p-userinfo__input-area-content:last-child .m-userSectForm-wrap {
    padding: 3rem;
  }
  .l-container-wrap--mypageForm .c-userSect-entry,
  .l-container-wrap--mypageForm .m-userSectForm-body--wide .c-userSect-entry {
    gap: 3rem;
    padding: 2rem 0;
  }
  .l-container-wrap--mypageForm .c-userSect-entry:last-child,
  .l-container-wrap--mypageForm .m-userSectForm-body--wide .c-userSect-entry:last-child {
    padding-bottom: 0;
  }
  .l-container-wrap--mypageForm .c-userSect-entry__title,
  .l-container-wrap--mypageForm .m-userSectForm-body--wide .c-userSect-entry__title {
    width: 25rem;
    padding-left: 0;
  }
  .l-container-wrap--mypageForm .c-userSect-entry__form:first-child,
  .l-container-wrap--mypageForm .m-userSectForm-body--wide .c-userSect-entry__form:first-child {
    padding-left: 0;
  }
}

/* 入力欄の下の注意書き（span のものも 1 行に） */
.l-container-wrap--mypageForm .c-formInput-item__annotation {
  display: block;
  color: var(--mypage-form-note);
}

/* クレジットカード：有効期限（生年月日と同じ。スマホは 2 等分、PC は各 113px） */
.l-container-wrap--mypageForm .c-formInput-item__creditExpire {
  flex-wrap: wrap;
  width: 100%;
  gap: 0.5rem;
}
.l-container-wrap--mypageForm .c-formInput-item__creditExpire-selectbox {
  flex: 1 1 0;
  width: auto;
  max-width: none;
  min-width: 0;
  padding-left: 1rem;
  padding-right: 2.6rem;
  background-position: calc(100% - 0.8rem) center;
}
.l-container-wrap--mypageForm .c-formInput-item__creditExpire-text {
  flex-shrink: 0;
  font-size: 1.6rem;
  line-height: 1.6;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .c-formInput-item__creditExpire-selectbox {
    flex: 0 1 11.3rem;
  }
  .l-container-wrap--mypageForm .c-formInput-item__half {
    width: 23.9rem !important;
  }
}

/* 会員登録情報の変更：定期情報を合わせて変更（白いカード・中央そろえ） */
.l-container-wrap--mypageForm .c-addressUpdateBox-form {
  margin: 2rem 0 0;
  padding: 2rem;
  border: none;
  border-radius: var(--mypage-card-radius);
  background-color: var(--color-white);
}
.l-container-wrap--mypageForm .c-addressUpdateBox-form .c-userSectCol-annotation__text {
  margin-top: 1rem;
  color: var(--mypage-form-note);
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .c-addressUpdateBox-form {
    margin-top: 3rem;
    padding: 3rem;
  }
  .l-container-wrap--mypageForm .c-addressUpdateBox-form .c-userSectCol-annotation__text {
    font-size: 1.4rem;
  }
}

/* 会員登録情報の確認：区分をまとめて 1 枚の白いカード（区分の間に線）、PC は項目名 200px ＋ 内容 */
.l-container-wrap--mypageForm .m-userSect-wrap--confirm {
  padding: 2rem;
  border-radius: var(--mypage-card-radius);
  background-color: var(--color-white);
}
.l-container-wrap--mypageForm .m-userSect-wrap--confirm .c-userSectHeading,
.l-container-wrap--mypageForm .m-userSect-wrap--confirm .m-userSect + .m-userSect .c-userSectHeading {
  padding-top: 0;
}
.l-container-wrap--mypageForm .m-userSect-wrap--confirm .m-userSect + .m-userSect {
  margin-top: 3rem;
  padding-top: 3rem;
  border-top: 1px solid var(--mypage-form-line);
}
.l-container-wrap--mypageForm .m-userSect-wrap--confirm .m-userSect-body {
  margin-top: 0;
}
.l-container-wrap--mypageForm .c-addressUpdateBox-confirm {
  margin-top: 2rem;
  padding: 2rem;
  border: none;
  border-radius: var(--mypage-card-radius);
  background-color: var(--color-white);
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypageForm .c-addressUpdateBox-confirm .m-userSect {
  margin-bottom: 0;
}
.l-container-wrap--mypageForm .c-addressUpdateBox-confirm .c-userSect-info {
  padding: 0;
}
.l-container-wrap--mypageForm .c-addressUpdateList__item {
  margin-top: 1.5rem;
  padding: 1.5rem 0 0;
  border-top-color: var(--mypage-form-line);
}
.l-container-wrap--mypageForm .c-addressUpdateList__title {
  flex-shrink: 0;
  font-weight: 500;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .m-userSect-wrap--confirm,
  .l-container-wrap--mypageForm .c-addressUpdateBox-confirm {
    padding: 3rem;
  }
  .l-container-wrap--mypageForm .m-userSect-wrap--confirm .m-userSect + .m-userSect {
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 1px solid var(--mypage-form-line);
  }
  .l-container-wrap--mypageForm .c-userSect-info,
  .l-container-wrap--mypageForm .c-userSect-info:not(:first-child) {
    gap: 3rem;
    padding: 2rem 0 0;
  }
  .l-container-wrap--mypageForm .c-userSect-info__title,
  .l-container-wrap--mypageForm .c-userSect-info__title.u-hidden-md-down {
    width: 20rem;
    padding-left: 0;
  }
  .l-container-wrap--mypageForm .c-userSect-info__text:first-child {
    padding-left: 0;
  }
  .l-container-wrap--mypageForm .c-addressUpdateList__title {
    width: 20rem;
  }
}

/* 一覧（お支払い方法・アドレス帳）：区分の見出し（線なし） */
.l-container-wrap--mypageForm .p-paymentList-info__heading {
  margin-bottom: 1.5rem;
  padding-bottom: 0;
  border-bottom: none;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .p-paymentList-info__heading {
    font-size: 2.4rem;
  }
}

/* 一覧：1 件ごとに白いカード（スマホ：ボタンは下に横並び、PC：ボタンは右に縦並び 160px） */
.l-container-wrap--mypageForm .p-paymentList-info__body .m-userSect-wrap,
.l-container-wrap--mypageForm .p-shippingList-info__body .m-userSect-wrap {
  padding: 2rem;
  border: none;
  border-radius: var(--mypage-card-radius);
  background-color: var(--color-white);
}
.l-container-wrap--mypageForm .p-paymentList-info__body .m-userSect-wrap + .m-userSect-wrap,
.l-container-wrap--mypageForm .p-shippingList-info__body + .p-shippingList-info__body {
  margin-top: 1.5rem;
}
.l-container-wrap--mypageForm .p-paymentList-info__body .m-userSect--typeSep,
.l-container-wrap--mypageForm .p-shippingList-info__body .m-userSect--typeSep {
  gap: 2rem;
}
.l-container-wrap--mypageForm .p-paymentList-info__body .m-userSect-body,
.l-container-wrap--mypageForm .p-shippingList-info__body .m-userSect-body {
  margin-top: 1.5rem;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .p-paymentList-info__body .m-userSect-wrap,
  .l-container-wrap--mypageForm .p-shippingList-info__body .m-userSect-wrap {
    padding: 3rem;
  }
  .l-container-wrap--mypageForm .p-paymentList-info__body .m-userSect-wrap + .m-userSect-wrap,
  .l-container-wrap--mypageForm .p-shippingList-info__body + .p-shippingList-info__body {
    margin-top: 2rem;
  }
  .l-container-wrap--mypageForm .p-paymentList-info__body .m-userSect--typeSep,
  .l-container-wrap--mypageForm .p-shippingList-info__body .m-userSect--typeSep {
    align-items: center;
    gap: 3rem;
  }
}

/* 一覧：名前 ＋ 既定に設定（小さな丸ボタン。未設定＝青の枠、設定済み＝グレーの枠） */
.l-container-wrap--mypageForm .p-paymentList-info__body .c-userSectHeading__title,
.l-container-wrap--mypageForm .p-shippingList-info__body .c-userSectHeading__title {
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 2rem;
}
.l-container-wrap--mypageForm .p-paymentList-info__body .c-userSectHeading__title .c-btn-fluid,
.l-container-wrap--mypageForm .p-shippingList-info__body .c-userSectHeading__title .c-btn-fluid {
  transform: none;
  height: 3rem;
  padding: 0 1.5rem;
  border-radius: 5rem;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypageForm .c-userSectHeading__title .c-btn-fluid--border {
  border-color: var(--mypage-theme);
  color: var(--mypage-theme) !important;
}
.l-container-wrap--mypageForm .c-userSectHeading__title .c-btn-fluid--gray-border {
  border-color: var(--mypage-form-button);
  color: var(--mypage-form-button) !important;
}
.l-container-wrap--mypageForm .c-userSectHeading__description,
.l-container-wrap--mypageForm .p-paymentList-info__body .c-userSectHeading__description {
  margin: 1rem 0 0;
  color: var(--mypage-form-note);
  font-size: 1.4rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypageForm .c-userSectHeading__description:empty {
  display: none;
}
.l-container-wrap--mypageForm .c-userSectHeading__ownerNotice {
  margin-top: 1rem;
  color: var(--mypage-form-note);
  font-size: 1.2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypageForm .c-userSectHeading__ownerNotice a {
  color: var(--mypage-theme);
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .p-paymentList-info__body .c-userSectHeading__title,
  .l-container-wrap--mypageForm .p-shippingList-info__body .c-userSectHeading__title {
    justify-content: flex-start;
  }
  .l-container-wrap--mypageForm .c-userSectHeading__ownerNotice {
    font-size: 1.4rem;
  }
}

/* 一覧：項目の行（PC：項目名 120px ＋ 内容） */
.l-container-wrap--mypageForm .p-paymentList-info__body .c-userSect-info__title,
.l-container-wrap--mypageForm .p-paymentList-info__body .c-userSect-info__text,
.l-container-wrap--mypageForm .p-shippingList-info__body .c-userSect-info__title,
.l-container-wrap--mypageForm .p-shippingList-info__body .c-userSect-info__text {
  font-size: 1.5rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypageForm .p-paymentList-info__body .c-userSect-info__title,
.l-container-wrap--mypageForm .p-shippingList-info__body .c-userSect-info__title {
  font-weight: 500;
}
.l-container-wrap--mypageForm .p-paymentList-info__body .c-userSect-info:not(:first-child),
.l-container-wrap--mypageForm .p-shippingList-info__body .c-userSect-info:not(:first-child) {
  margin-top: 0.5rem;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .p-paymentList-info__body .c-userSect-info,
  .l-container-wrap--mypageForm .p-shippingList-info__body .c-userSect-info {
    gap: 2rem;
  }
  .l-container-wrap--mypageForm .p-paymentList-info__body .c-userSect-info__title,
  .l-container-wrap--mypageForm .p-shippingList-info__body .c-userSect-info__title {
    width: 12rem;
  }
  .l-container-wrap--mypageForm .p-paymentList-info__body .c-userSect-info__title::after,
  .l-container-wrap--mypageForm .p-shippingList-info__body .c-userSect-info__title::after {
    content: none;
  }
}

/* 一覧：変更する（グレーの丸ボタン）・削除する（白地にグレーの枠） */
.l-container-wrap--mypageForm .m-userSect__button-wrap {
  display: flex;
  gap: 1rem;
}
.l-container-wrap--mypageForm .m-userSect-button,
.l-container-wrap--mypageForm .m-userSect-button:not(:first-child) {
  flex: 1 1 0;
  width: auto;
  margin: 0;
}
.l-container-wrap--mypageForm .m-userSect__button-wrap .c-btn-fluid {
  padding: 1rem;
  border-radius: 5rem;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypageForm .m-userSect__button-wrap .c-btn-fluid--gray {
  border-color: var(--mypage-form-button);
  background-color: var(--mypage-form-button);
}
.l-container-wrap--mypageForm .m-userSect__button-wrap .c-btn-fluid--red {
  border-color: var(--mypage-form-button);
  background-color: var(--color-white);
  color: var(--mypage-form-button) !important;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .m-userSect__button-wrap {
    flex: 0 0 16rem;
    flex-direction: column;
    width: auto;
  }
  .l-container-wrap--mypageForm .m-userSect-button,
  .l-container-wrap--mypageForm .m-userSect-button:not(:first-child) {
    flex: 0 0 auto;
  }
}

/* 一覧：登録がないとき（白いカード） */
.l-container-wrap--mypageForm .c-noItem-message,
.l-container-wrap--mypageForm .p-paymentList-info__body > .c-noItem-message {
  margin: 0;
  padding: 2rem;
  border-radius: var(--mypage-card-radius);
  background-color: var(--color-white);
  font-size: 1.5rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.l-container-wrap--mypageForm .c-noItem-message--addRegist {
  margin-bottom: 1.5rem;
}

@media screen and (min-width: 768px) {
  .l-container-wrap--mypageForm .c-noItem-message,
  .l-container-wrap--mypageForm .p-paymentList-info__body > .c-noItem-message {
    padding: 3rem;
  }
}

/* 一覧：新しく登録する（青い丸ボタン・中央・330px） */
.l-container-wrap--mypageForm .p-paymentList-info__progress {
  max-width: 33rem;
  margin: 3rem auto 0;
}
.l-container-wrap--mypageForm .p-shippingList-info__head {
  display: flex;
  justify-content: center;
  margin-top: 0;
  padding: 3rem 0 0;
}
.l-container-wrap--mypageForm .p-shippingList-info__progress {
  max-width: 33rem;
}
/* 文が長い（新しいクレジットカードを登録する）ため、左右の余白を詰めて 1 行に */
.l-container-wrap--mypageForm .p-paymentList-info__progress .c-btn-progress,
.l-container-wrap--mypageForm .p-shippingList-info__progress .c-btn-progress {
  padding-left: 1rem;
  padding-right: 1rem;
}
/* 申込：配送等に関するご要望（.entry-form .entry-select の1行分の高さを複数行用に上書き） */
.entry-form .entry-shipping-memo {
  height: auto;
  min-height: 10rem;
  padding: 1rem 1.3rem;
  line-height: 1.6;
  resize: vertical;
}