
/* ------------------------------------------------------------------------------------------------------------------ */
/* 全ページ共通 */


.cup-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 100;
}

.cup-modal-content {
    background: #ffffff;
    border-radius: 12px;
    width: 100%;
    max-width: 600px;
    max-height: 100dvh;
    margin: 0 auto;
    box-sizing: border-box;
    font-family: 'Roboto', sans-serif;
    border: solid 1px #333;
    overflow: auto;
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 5px;
}

.cup-modal.active {
    display: block;
    animation: crl-fade-in 0.3s ease-out;
}

@keyframes crl-fade-in {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}

.cup-modal-close {
    position: absolute;
    top: 10px;
    right: 10px;
    cursor: pointer;
    font-size: 1.5rem;
    color: #333;
    z-index: 100;
}

.cup-modal-title {
    margin-bottom: 5px;
    font-size: 1.8rem;
    color: #333;
    text-align: center;
    font-weight: 500;
}

.cup-modal-content-details {
    max-height: 100vh;
    overflow-y: auto;
}

/* swal */
/* 説明 */
.cup-swal-content {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#hideQrcodeExplanationModal {
    display: inline-block;
    width: 16px;
    height: 16px;
    cursor: pointer;
    border: solid 1px #000;
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
    -moz-appearance: checkbox !important;
}

.cup-swal-content label {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 5px;
}

.qr-capture-wrapper {
    display: inline-block;
    background: transparent;
    padding: 0;
    margin: 0;
}

.qr-overlay-card {
    position: relative;
    width: 300px;
    height: 400px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    background-color: #eee;
    margin: 0 auto;
    margin-top: 20px;
}

.qr-overlay-background {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.75);
    z-index: 1;
}

.qr-overlay-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
    color: #fff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
}

.qr-overlay-qr {
    padding: 5px;
    background: white;
    border-radius: 16px;
}

.qr-card-footer {
    display: flex;
    flex-direction: row;
    width: 100%;
    align-items: flex-start;
    justify-content: center;
}

.swal-card-action-button {
    padding: 12px 0px;
    font-size: 10px;
    text-align: center;
    color: #333;
    border-radius: 10px;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    white-space: normal;
    word-wrap: break-word;
    width: 80px;
}

.swal-card-action-button img {
    height: 50px;
    width: 50px;
    margin-bottom: 5px;
    border-radius: 50%;
    background-color: white;
    padding: 10px;
    box-sizing: border-box;
    border: 1px solid #333;
}

.qr-overlay-logo {
    position: absolute;
    bottom: 10px;
    right: 10px;
    width: 100px;
    height: auto;
    z-index: 10;
}

.qr-save-hint {
    text-align: center;
    font-size: 0.75rem;
    color: #666;
    margin-top: 10px;
    margin-bottom: 5px;
}

#qr-message {
    font-size: 0.875rem;
    color: #333;
    margin-top: 5px;
}

.cup-required-badge {
    background-color: #E9518E;
    color: #ffffff;
    font-size: 0.8em;
    padding: 2px 6px;
    margin-left: 5px;
    border-radius: 10px;
}
/* ------------------------------------------------------------------------------------------------------------------ */

/* アカウント設定ページ */
.cup-setting-page {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    background: #fff;
    padding-left: 20px;
    padding-right: 20px;
}

.cup-setting-page-title {
    font-weight: 500;
    color: #E9528E;
    text-align: center;
    font-size: 1.5rem;
    margin-top: 2.5rem !important; 
    margin-bottom: 2.5rem !important;    
}

.cup-setting-content {
    height: 100%;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.cup-setting-sub-section {
    display: flex;
    flex-direction: column;
    margin-top: 0px !important; 
    margin-bottom: 2.5rem !important; 
}

.cup-setting-sub-section label {
    font-size: 1rem;
    color: #535353;
}

.cup-setting-sub-section-label-warning {
    font-size: 0.875rem;
    color: #AAAAAC; 
}

.cup-setting-sub-section input {
    border: none;
    border-radius: 25px;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    padding: 12px;
    margin-top: 10px;
}

.cup-setting-change-password-field input {
    border: none;
    border-radius: 25px;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    padding: 12px;
}

.cup-setting-save-button {
    background-color: #E9528E;
    color: white;
    padding: 8px 15px;
    font-size: 0.875rem;
    text-align: center;
    border-radius: 100px;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    white-space: normal;
    word-wrap: break-word;
    width: 282px;
    height: 40px;
    margin: 20px auto 0;
}

.cup-setting-line-profile {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid #06c755;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
    border-radius: 10px;
    background: #fff;
    margin-top: 0.625rem;
}

.cup-setting-line-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    background: #AAAAAC;
}

.cup-setting-line-texts {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.cup-setting-line-name {
    font-size: 0.875rem;
    color: #535353;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cup-line-link-box{
    border: 1px solid #06C755;
    border-radius: 0.625rem;
    padding: 1.25rem;
    text-align: center;
    margin-top: 0.625rem;
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cup-setting-bsky-profile {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid #1185FE;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
    border-radius: 10px;
    background: #fff;
    margin-top: 0.625rem;
}

.cup-setting-bsky-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    background: #AAAAAC;
}

.cup-setting-bsky-texts {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.cup-setting-bsky-name {
    font-size: 0.875rem;
    color: #535353;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cup-setting-bsky-handle {
    font-size: 0.75rem;
    color: #AAAAAC;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cup-setting-bsky-error {
    color: #535353;
    font-size: 0.8125rem;
    padding: 4px 0;
}

.cup-setting-change-password-text {
    font-size: 1rem;
    text-align: center;
    color: #AAAAAC;
    margin-top: 0.625rem;
}

.cup-bsky-link-box {
    border: 1px solid #1185FE;
    border-radius: 0.625rem;
    padding: 1.25rem;
    text-align: center;
    margin-top: 0.625rem;
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
    align-items: center;    
}

.cup-bsky-link-title {
    font-size: 1.25rem;
    color: #1185FE;
    font-weight: 500;
}

.cup-bsky-link-text {
    font-weight: 500;
    color: #535353;
    font-size: 0.875rem;
    margin: 0.625rem 0 1.25rem;    
}

.cup-bsky-link-button-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 1.25rem;
}

.cup-bsky-link-button {
    display: flex;
    position: relative;
    background-color: #1185FE;
    color: white;
    text-decoration: none;
    font-weight: 500;
    z-index: 1;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    border-radius: 1.875rem;
    font-size: 1rem;
    gap: 0.1875rem;
    padding: 0.75rem 1.25rem;
    width: 18.625rem;    
}

.cur-bsky-link-icon {
    width: 1.5625rem;
    height: auto;
}

.cup-bsky-link-button::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    height: 0.625rem;
    right: 1.625rem;
    width: 0.625rem;
    border-bottom: 1px solid #fff;
    border-left: 1px solid #fff;
    -webkit-transform: translatey(-50%) rotate(-135deg);
    transform: translatey(-50%) rotate(-135deg);
}

.cup-setting-bsky-disconnect-button {
    display: flex;
    position: relative;
    background-color: #fff;
    color: #AAAAAC;
    text-decoration: none;
    font-weight: 500;
    z-index: 1;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    border-radius: 1.875rem;
    border: solid 1px #AAAAAC;
    font-size: 1rem;
    gap: 0.1875rem;
    padding: 0.75rem 1.25rem;
    width: 18.625rem;
    margin: 1.25rem auto 0 auto;  
}

.cup-setting-bsky-disconnect-button::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    height: 0.625rem;
    right: 1.625rem;
    width: 0.625rem;
    border-bottom: 1px solid #AAAAAC;
    border-left: 1px solid #AAAAAC;
    -webkit-transform: translatey(-50%) rotate(-135deg);
    transform: translatey(-50%) rotate(-135deg);
}

.cup-setting-bsky-disconnect-button.is-loading {
    opacity: 0.7;
    cursor: wait;
}

.cup-setting-bsky-form {
    width: 100%;
}

.cup-setting-bsky-account-about-btn,
.cup-setting-bsky-app-password-about-btn {
    color: #AAAAAC;
    display: flex;
    flex-direction: row;
    font-size: 0.875rem;
    align-items: center;
    gap: 3px;
    width: 100%;
    justify-content: flex-end;
}

.cup-setting-bsky-account-about-btn .question-icon,
.cup-setting-bsky-app-password-about-btn .question-icon {
    width: 20px;
    height: auto;
}

.bsky-app-pass-swiper {
    width: 100%;
    margin: 0 auto;
    text-align: center;
    padding-bottom: 20px;
}

.bsky-app-pass-swiper .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

.bsky-app-pass-swiper .swiper-slide img {
    margin-top: 0px;
}

.bsky-app-pass-swiper .swiper-pagination {
    position: relative;
}


/* ------------------------------------------------------------------------------------------------------------------ */
/* マイページ */

.cup-user-share-page {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
}

.cup-user-share-page,
.cup-user-share-page * {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.cup-user-share-page-content {
    height: 100%;
    overflow-y: auto;
}

.cup-user-share-page-top-section {
    padding-left: 20px;
    padding-right: 20px;
    margin-top: 40px;
}

.cup-user-share-page-title {
    font-size: 1.5rem;
    font-weight: 500;
    color: #E9528E;
    text-align: center;
}

.cup-user-share-page-user-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
}

.cup-user-share-page-profile-image {
    height: 80px;
    width: 80px;
    object-fit: cover;
    border-radius: 50%;
}

.cup-user-share-page-profile-name {
    font-size: 1.5rem;
    color: #535353;
}

.cup-user-share-page-qr-code {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
}

.cup-user-share-page-qr-code img {
    height: 196px;
    width: 196px;
}

.cup-user-share-page-bottom-section
 {
    background: #F5F5F5;
    margin-top: 40px;
    padding-top: 40px;
    padding-bottom: 40px;
}

.cup-user-share-page-button-content {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.cup-user-share-page-button {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 0.875rem;
    color: #7D40A0;
    width: 110px;
}

.cup-user-share-page-button img {
    height: 60px;
    width: 60px;
}

/* ------------------------------------------------------------------------------------------------------------------ */
/* マイページ */

.cup-user-my-page {
    width: 100%;
    max-width: none !important;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
}

.cup-user-my-page,
.cup-user-my-page * {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.cup-user-my-page-content {
    height: 100%;
    overflow-y: auto;
}

.cup-user-my-page-top-section {
    background: #fff;
    padding-left: 20px;
    padding-right: 20px;
    max-width: 37.5rem;
    margin: 0 auto;
}

.cup-user-my-page-bottom-section {
    background: #F5F5F5;
    padding-left: 20px;
    padding-right: 20px;
    margin-top: -100px;
    padding-top: 100px;
}

.cup-user-my-page-main-info-content {
    width: 100%;
    display: flex;
    align-items: flex-start;
    padding-right: 20px;
    padding-left: 20px;
    margin-top: 20px;
    gap: 10px;
}

.cup-user-my-page-main-info-content img {
    height: 100px;
    width: 100px;
    object-fit: cover;
    border-radius: 50%;
}

.cup-img-and-id {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cup-id {
    color: #535353;
    font-size: 0.75rem;
}

.cup-user-my-page-name {
    color: #E9528E;
    font-size: 1.5rem;
}

.cup-user-my-page-matching-count {
    font-size: 0.875rem;
    color: #535353;
}


.cup-user-my-page-button-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-items: center;
    margin: 0 auto;
    gap: 0.625rem;
    margin-top: 1.25rem;
    max-width: 390px;    
}

.cup-user-my-page-button {
    text-align: center;
    display: flex;
    flex-direction: column;
    white-space: normal;
    word-wrap: break-word;
    height: 100%;
    width: 100%;
    color: #7D40A0;
    background: #fff;
    align-items: center;
    position: relative;
    border-radius: 0.625rem;
    font-size: 0.875rem;
    justify-content: unset;
    line-height: 1.4;
    max-width: 7.75rem;
    min-height: 6.875rem;
    padding-block: 0.75rem 0.4375rem;    
}

.cup-user-my-page-button img {
    height: 2.75rem;
    margin-bottom: 0.5rem;
    width: auto;
}

.cup-unconfirmed-review-badge,
.cup-waiting-place-badge,
.cup-edit-profile-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 10px;
    height: 10px;
    background-color: #E9528E;
    border-radius: 50%;
    display: inline-block;
}

.cup-user-my-page-mycred-container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    margin: 0 auto;
    margin-top: 20px;
    max-width: 37.5rem;
}

.cup-user-my-page-mycred-label {
    font-size: 1.125rem;
    color: #535353;
    text-align: center;
}

.cup-user-my-page-mycred-amount {
    font-size: 45px;
    color: #E9528E;
    margin-top: -10px;
}

.cup-user-my-page-mycred-amount.is-na {
  position: relative;
}

.cup-user-my-page-mycred-amount.is-na::after {
  content: "";
  display: inline-block;
  width: 0.4em;
  height: 2px;
  background: currentColor;
  vertical-align: middle;
  transform: translateY(0.05em);
}

.cup-user-my-page-mycred-amount-unit {
    font-size: 25px;
}

.cup-user-my-page-mycred-amount-message {
    font-size: 10px;
    color: #AAAAAC;
    white-space: nowrap;
    overflow: hidden;
    margin-top: -8px;
}

.cup-user-my-page-mycred-history-btn {
    position: relative;
    border: solid 1px #7D40A0;
    border-radius: 30px;
    margin-top: 10px;
    font-size: 1rem;
    color: #7D40A0;
    text-align: center;
    width: 18.5rem !important;
    height: 40px;
    padding: 5px;
}

.cup-user-my-page-mycred-history-btn::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    right: 10px;
    width: 7px;
    height: 7px;
    border-bottom: 1px solid #7D40A0;
    border-left: 1px solid #7D40A0;
    -webkit-transform: translatey(-50%) rotate(-135deg);
    transform: translatey(-50%) rotate(-135deg);
}

.cup-user-my-page-reservations-container {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-right: 20px;
    padding-left: 20px;
    margin-top: 20px;
    height: 203px;
}

.cup-user-my-page-reservations-container-title {
    font-size: 1.125rem;
    background: #E9528E;
    color: #FFFFFF;
    text-align: center;
    width: 100%;
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
}


.cup-user-my-page-reservations-card {
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
    cursor: pointer;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    width: 100%;
    border: 1px solid #E9528E;
    align-items: center;
    background: #fff;
    height: 100%;
    justify-content: center;
}

.cup-user-my-page-reservations-card-content {
    width: 100%;
    padding: 20px;
    height: 100%;
    display: flex;
    align-items: center;
}

.cup-user-my-page-reservations-card-content-for-store {
    width: 100%;
    padding: 20px;
    height: 100%;
}

.cup-user-my-page-reservations-card-content-for-store.lite {
    display: flex;
    align-items: center;
}


.cup-user-my-page-reservations-card-therapist-info {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
}

.cup-user-my-page-reservations-card-therapist-info img {
    height: 80px;
    width: 80px;
    object-fit: cover;
    border-radius: 50%;
}

.cup-user-my-page-reservations-card-names {
    display: flex;
    flex-direction: column;
}

.cup-user-my-page-reservations-card-therapist-name {
    font-size: 1rem;
    color: #535353;
}

.cup-user-my-page-reservations-card-store-name {
    font-size: 0.875rem;
    color: #535353;
}

.cup-user-my-page-reservations-card-text {
    font-size: 0.875rem;
    color: #535353;
    margin-top: 10px;
}

.cup-user-my-page-no-reservation-message {
    font-size: 1rem;
    color: #AAAAAC;
    text-align: center;
    margin: 0 auto;
}

.cup-user-my-page-sales-container {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-right: 20px;
    padding-left: 20px;
    margin-top: 20px;
}

.cup-user-my-page-sales-container-title {
    font-size: 1.125rem;
    background: #E9528E;
    color: #FFFFFF;
    text-align: center;
    width: 100%;
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
}


.cup-user-my-page-sales-card {
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
    cursor: pointer;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    width: 100%;
    border: 1px solid #E9528E;
    align-items: center;
    background: #fff;
}

.cup-user-my-page-sales-amount {
    font-size: 45px;
    color: #E9528E;
}

.cup-unconfirmed-matching-budge-content {
    position: relative;
}

.cup-unconfirmed-matching-budge {
    top: 10px;
    right: -15px;
    background: #E9528E;
    color: white;
    font-size: 0.75rem;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    transform: translateY(-50%);
}

.cup-store-my-page-reservations-management-today-title {
    color: #535353;
    font-size: 0.875rem;
    text-align: center;
    margin-bottom: 10px;
}

.cup-store-my-page-reservations-management-today-title span {
    color: #E9528E;
    font-size: 1.5rem;
    margin-left: 10px;
}

.cup-store-my-page-reservations-management-future-title {
    color: #535353;
    margin-bottom: 15px;
    text-align: center;
    font-size: 0.875rem;
}

.cup-store-my-page-reservations-management-future-content {
    display: flex;
    flex-direction: row;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.cup-store-my-page-reservations-management-future-info {
    position: relative;
    width: 100%;
    height: 60px;
    border: 1px solid #AAAAAC;
    border-radius: 8px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1rem;
    background-color: #fff;
    padding-top: 10px;
    color: #535353;
}

.cup-store-my-page-reservations-management-future-info::before {
    content: attr(data-label);
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: #fff;
    padding: 5px 0px;
    font-size: 0.75rem;
    color: #7D40A0;
    border: 1px solid #AAAAAC;
    border-radius: 12px;
    width: 70px;
}

.cup-user-my-page-advertisement-container {
    text-align: center;
    color: #535353;
    font-size: 1rem;
    margin-top: 1.25rem;
}

.cup-user-my-page-advertisement-link {
    color: #E9528E;
    text-decoration: underline;
}


#thera-get-started.tgs {
    position: fixed;
    right: 10px;
    bottom: 6rem;
    z-index: 90;
    width: 300px;
    background: #F5F5F5;
    color: #535353;
    border-radius: 10px;
    border: solid 1px #535353;
}

@media screen and (min-width: 1024px) {
    #thera-get-started.tgs {
        right: calc(13.0208333333% + 1.25rem);
    }
}

.tgs__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 5px 10px;
    cursor: pointer;
    width: 100%;
    color: #535353;
    font-size: 0.875rem;
}

.tgs__chevron { 
    transition:transform .2s ease; 
}

.tgs--collapsed .tgs__chevron { 
    transform:rotate(180deg); 
}

.tgs__panel {
    padding: 10px 10px 10px;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.tgs__progress {
    height:6px;
    border-radius:6px;
    background:#535353;
    overflow:hidden;
    margin:2px 0 10px;
}

.tgs__bar {
    height:100%;
    width:0%;
    background:#E9528E;
    transition:width .2s ease;
}

.tgs__list { 
    list-style:none; 
    margin:0; 
    padding:0; 
}

.tgs__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.tgs__label {
    display: flex;
    align-items: center;
    flex: 1;
    pointer-events: none;
    font-size: 0.875rem;
    color: #535353;
}

.tgs__check {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.tgs__text { 
    flex:1; 
    position: relative;
    padding-left: 26px;
}

.tgs__text::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border: 1px solid #aaa;
    border-radius: 4px;
    background-color: #fff;
    transition: background-color .3s ease, border-color .3s ease;
}

.tgs__text::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg) scale(0);
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transition: transform .2s ease;
}

.tgs__check:checked + .tgs__text::before {
    background-color: #E9528E;
    border-color: #E9528E;
}

.tgs__check:checked + .tgs__text::after {
    transform: translateY(-50%) rotate(45deg) scale(1);
}

.tgs__link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.tgs__go {
    padding:0 10px;
}

.tgs__mute {
    margin-top: 5px;
    color: #AAAAAC;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
    font-size: 0.75rem;
}

.tgs__progressline {
    display:flex;
    align-items:center;
    gap:10px;
    padding: 0 10px 5px;
}

.tgs__progressline .tgs__progress {
    flex:1;
    margin:0;
}

.tgs__count{
    font-size:12px;
}

.tgs__badge {
    display:inline-block;
    margin-left:8px;
    padding:2px 6px;
    font-size:10px;
    border-radius:10px;
    vertical-align:middle;
    white-space: nowrap;
}

.tgs__badge--important {
    background:#fff;
    color:#E9528E;
    border: solid 1px #E9528E;
}





/* ------------------------------------------------------------------------------------------------------------------ */
/* セラピスト個別ページ */

.cup-display-therapist-page {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: 'Noto Sans JP', sans-serif;
    background: #fff;
    font-weight: 500;
}

.cup-display-therapist-page,
.cup-display-therapist-page * {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.cup-display-therapist-page-content {
    height: 100%;
    overflow-y: auto;
}

.cup-display-therapist-page-section {
    background: #fff;
    padding-bottom: 40px;
    padding-left: 20px;
    padding-right: 20px;
}

.cup-display-therapist-store-name {
    margin-top: 20px;
    color: #535353;
    font-size: 1rem;
    text-decoration: underline;
    text-decoration-color: #535353;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    display: inline-block;
}

.cup-display-therapist-page .swiper-container {
    width: 100%;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
}

.cup-display-therapist-page .swiper-wrapper {
    width: 100%;
    display: flex;
}

.cup-display-therapist-page .swiper-slide {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
    overflow: hidden;
    border-radius: 5px;
}

.cup-display-therapist-page .swiper-slide {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 5px;
    overflow: hidden;
}

.cup-display-therapist-page .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cup-display-therapist-page .swiper-pagination {
    position: relative;
    margin-top: 20px;
    text-align: center;
    z-index: 1;
}

.cup-display-therapist-page .swiper-pagination-bullet {
    background: #AAAAAC;
    opacity: 0.6;
    transition: opacity 0.3s;
}

.cup-display-therapist-page .swiper-pagination-bullet-active {
    opacity: 1;
    background: #E9528E;
}

.cup-display-image-placeholder {
    width: 100%;
    aspect-ratio: 3 / 4;
    background-color: #e0e0e0;
    color: #666;
    font-size: 0.875rem;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    text-align: center;
}

.cup-display-therapist-name {
    color: #535353;
    font-size: 1.5rem;
}

.cup-display-therapist-average-rating {
    font-size: 1.25rem;
    display: flex;
    align-items: center;
    gap: 0rem;
    color: #E9528E;
    flex-direction: column;
}

.cup-display-therapist-average-rating .average-star {
    color: #AAAAAC;
    transition: color 0.3s, transform 0.2s ease-in-out;
    position: relative;
}

.cup-display-therapist-average-rating .average-star.selected {
    color: #E9528E;
    transform: scale(1.1);
}

.cup-display-therapist-average-rating .average-star.half-selected::before {
    content: "★";
    position: absolute;
    color: #E9528E;
    width: 50%;
    overflow: hidden;
}

.cup-display-therapist-average-rating .average-score {
    font-size: 1.5rem;
    color: #E9528E;
}

.cup-display-therapist-page-header-five-star {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.cup-display-therapist-review-count {
    font-size: 1rem;
    color: #7D40A0;
    text-decoration: underline;
}

.cup-display-therapist-rating-row {
    display: flex;
    align-items: center;
    gap: 0px;
    flex-wrap: wrap;
    margin-bottom: 0.625rem;
}

.cup-display-therapist-review-bubble-btn {
    position: relative;
    display: inline-block;
    margin-left: 10px;
    padding: 5px 10px;
    border-radius: 10px;
    background-color: #e9528e;
    border: none;
    text-align: center;
    font-size: 0.75rem;
    font-weight: normal;
    line-height: 1.3;
    color: #ffffff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.cup-display-therapist-review-bubble-btn:active {
    transform: translateY(1px);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.10);
}

.cup-display-therapist-review-bubble-btn::before {
    content: "";
    position: absolute;
    top: 45%;
    left: 0;
    border-style: solid;
    border-width: 10px 10px 0 0;
    border-color: transparent #e9528e transparent transparent;
    translate: -100% calc(-40% + 0.2px);
    transform: skew(0, -3deg);
    transform-origin: right;
}

.cup-display-therapist-body {
    color: #535353;
    font-size: 1rem;
    margin-bottom: 0.625rem;
}

.cup-display-therapist-mbti {
    color: #7D40A0;
    font-size: 1rem;
    text-decoration: underline;
}

.cup-display-therapist-support-area {
    color: #535353;
    font-size: 1rem;
}

.cup-display-therapist-search-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}

.cup-display-therapist-search-tags .therapist-tag {
    display: inline-block;
    color: #535353;
    border: solid 1px #535353;
    font-size: 0.875rem;
    padding: 4px 8px;
    border-radius: 100px;
}

.cup-display-therapist-main-info-content,
.cup-display-store-main-info-content {
    position: relative;
}

.cup-display-icons {
    position: absolute;
    top: 0.4375rem;
    right: 0;
    display: flex;
    gap: 0.75rem;
}

.cup-display-std-test-icon {
    position: static;
    color: #7D40A0;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 0.875rem;
}

.cup-display-std-test-icon img {
    margin-left: 0.1875rem;
    width: auto !important;
    height: 1.5rem !important;
}


.cup-display-share-icon {
    position: static;
    color: #7D40A0;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 0.875rem;
}

.cup-display-share-icon img {
    margin-left: 0.1875rem;
    width: auto;
    height: 1.5rem;
}


.cup-display-therapist-matching-btn-content {
    display: flex;
    justify-content: center;
    margin-top: 20px;
    flex-direction: column;
    align-items: center;
    gap: 0px !important;
    position: relative;
}

.cup-display-therapist-matching-toast {
    position: absolute;
    bottom: 120px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #E9528E;
    color: #fff;
    padding: 4px 10px;
    border-radius: 8px;
    font-size: 0.75rem;
    white-space: nowrap;
    z-index: 20;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
    text-align: center;
}

.cup-display-therapist-matching-toast.show {
    opacity: 1;
    transform: translateX(-50%) translateY(-4px);
}

.cup-display-therapist-message-btn {
    background-color: #fff;
    color: #7D40A0;
    border: solid 1px #7D40A0;
    border-radius: 100px;
    font-size: 1rem;
    width: 298px;
    height: 48px;
    position: relative;
    margin-bottom: 1.25rem;
}

.cup-display-therapist-message-btn::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    right: 20px;
    width: 7px;
    height: 7px;
    border-bottom: 1px solid #7D40A0;
    border-left: 1px solid #7D40A0;
    -webkit-transform: translatey(-50%) rotate(-135deg);
    transform: translatey(-50%) rotate(-135deg);
}


#word-of-mouth {
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
}

.cup-display-therapist-matching-btn {
    width: 298px;
    height: 60px;
    border: solid 1px #7D40A0;
    border-radius: 100px;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
}

.cup-display-therapist-matching-btn-char1 {
    font-size: 1.125rem;
    color: #7D40A0;
}

.cup-display-therapist-matching-btn-char2 {
    font-size: 0.875rem;
    color: #535353;
}

.cup-display-therapist-matching-btn::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    right: 20px;
    width: 7px;
    height: 7px;
    border-bottom: 1px solid #7D40A0;
    border-left: 1px solid #7D40A0;
    -webkit-transform: translatey(-50%) rotate(-135deg);
    transform: translatey(-50%) rotate(-135deg);
}

.cup-display-therapist-delete-matching-btn {
    font-size: 0.875rem;
    color: #AAAAAC;
    text-decoration: underline;
    text-decoration-color: #AAAAAC;
    text-underline-offset: 1px;
    text-decoration-thickness: 1px;
}


.cup-display-therapist-tab-section {
    background: #F5F5F5;
    padding-top: 40px;
    padding-left: 0 !important;
    padding-right: 0 !important;
}


.cup-display-therapist-tab-menu {
    display: flex;
    width: 100%;
    justify-content: space-between;
    flex-direction: row;
    gap: 10px;
}


.cup-display-therapist-tab-content-wrapper {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.cup-display-therapist-tab {
    cursor: pointer;
    background-color: #AAAAAC;
    color: white;
    border-radius: 10px 10px 0 0;
    width: 100%;
    text-align: center;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .15s ease, box-shadow .15s ease;
}

.cup-display-therapist-tab.cup-display-therapist-active {
    background-color: #E9528E;
    transform: translateY(-3px);
}

.cup-display-therapist-tab-content {
    display: none;
    background-color: #fff;
    box-sizing: border-box;
    padding: 20px;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}

.cup-display-therapist-tab-content.cup-display-therapist-active {
    display: block;
}

.cup-display-therapist-tab-title {
    color: #E9528E;
    text-align: center;
    font-size: 1.5rem;
    margin-bottom: 20px;
}

.cup-display-therapist-question-block {
    margin-bottom: 20px;
    border-bottom: 1px solid #7D40A0;
    padding-bottom: 20px;
}

.cup-display-therapist-question-title {
    color: #7D40A0;
    font-size: 1rem;
    margin-bottom: 5px;
}

.cup-display-therapist-question-answer {
    color: #535353;
    font-size: 0.875rem;
    box-sizing: border-box;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-y: hidden;
}

#cup-display-therapist-question-self-introduction {
    white-space: normal;
}

#cup-display-therapist-question-self-introduction a {
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    word-break: break-word;
}


.cup-display-therapist-snsurl-block {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.875rem;
    justify-items: center;
    align-items: center;
    margin-top: 2.5rem;
}

.cup-display-sns-icon img {
    width: 50px;
    height: 50px;
}

.cup-display-therapist-surveys-block-title {
    color: #7D40A0;
    font-size: 1rem;
}

.cup-display-therapist-reservation-tab-date {
    color: #535353;
    font-size: 1.125rem;
    margin-bottom: 10px;
}

.cup-display-therapist-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    border-top: solid 1px #7D40A0;
    padding-top: 20px;
    margin-bottom: 40px
}

.cup-display-therapist-tags .cup-display-therapist-tag {
    border: 1px solid #7D40A0;
    background-color: #FFFFFF;
    color: #7D40A0;
    border-radius: 50px;
    cursor: pointer;
    font-size: 0.875rem;
    min-width: 60px;
    transition: all 0.2s ease;
    padding-bottom: 3px;
    padding-top: 3px;
    padding-left: 12px;
    padding-right: 12px;
}


.cup-display-therapist-latest-reviews {
    display: flex;
    flex-direction: column;
    gap: 40px;
    gap: 20px;
}

.cup-display-therapist-review {
    background: #F5F5F5;
    padding: 20px;
    border-radius: 10px;

}

.cup-display-therapist-review-header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
}


.cup-display-therapist-star-rating {
    font-size: 20px;
    cursor: pointer;
    display: flex;
    justify-content: flex-start;
    gap: 0px;
}

.cup-display-therapist-star-rating .star {
    color: #AAAAAC;
    transition: color 0.3s, transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    transform: scale(1);
}

.cup-display-therapist-star-rating .star.selected {
    color: #E9528E;
    transform: scale(1.1); 
}

.cup-display-therapist-review-created_at {
    font-size: 1rem;
    color: #535353;
}

.cup-display-therapist-review-text-wrapper {
    position: relative;
}

.cup-display-therapist-review-text{
    width: 100%;
    padding: 10px;
    font-size: 0.875rem;
    background-color: #FFFFFF;
    box-sizing: border-box;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-y: hidden;
    margin-top: 10px;
    color: #535353;
    max-height: 100px;
    max-height: 100px;
    min-height: 100px;
    height: 100px;
}

.cup-display-therapist-review-hide-content {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cup-display-therapist-review-hide-message {
    color: #AAAAAC;
    font-size: 1rem;
    border: solid 1px #AAAAAC;
    width: 85%;
    height: 56px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cup-display-therapist-view-more-reviews {
    text-align: center;
    margin-top: 20px;
    display: flex;
    justify-content: center;
}

.cup-display-therapist-view-more-reviews-btn {
    width: 298px;
    height: 48px;
    border: solid 1px #7D40A0;
    color: #7D40A0;
    border-radius: 100px;
    position: relative;
    text-decoration: none;
    font-size: 1rem;
    display: inline-block;
    display: flex;
    justify-content: center;
    align-items: center;
}

.cup-display-therapist-view-more-reviews-btn::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    right: 20px;
    width: 7px;
    height: 7px;
    border-bottom: 1px solid #7D40A0;
    border-left: 1px solid #7D40A0;
    -webkit-transform: translatey(-50%) rotate(-135deg);
    transform: translatey(-50%) rotate(-135deg);
}

.cup-display-therapist-no-reviews-message {
    font-size: 1rem;
    color: #AAAAAC;
    text-align: center;
}

.cup-display-therapist-status-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background-color: #E9528E;
    color: white;
    padding: 6px 10px;
    border-radius: 12px;
    font-size: 0.875rem;
    z-index: 10;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.cup-display-therapist-next-badge {
    background-color: #7D40A0;
    bottom: 50px;
    right: 10px;
    top: auto;
    left: auto;    
}

.custom-therapist-reservation-about-btn {
    color: #7D40A0;
    display: flex;
    flex-direction: row;
    font-size: 0.875rem;
    align-items: center;
    gap: 3px;
    margin-bottom: 1.25rem;
    margin-top: 0.25rem;
}

.custom-therapist-reservation-about-btn .question-icon {
    width: 20px;
    height: auto;
}

.cup-display-page .plyr video {
    display: block;
    border-radius: 10px;
    margin-top: 10px;
    width: 100%;
    aspect-ratio: 33 / 25;
    object-fit: cover;
}

.cup-display-page :not(:fullscreen) > .plyr__video-wrapper {
    background: transparent !important;
}

.cup-display-page .plyr__video-wrapper {
    display: flex;
}

.cup-display-page .plyr:fullscreen video {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 0px;
    object-fit: contain;

}

.cup-display-page .plyr--video .plyr__controls {
    background: transparent !important;
}

.cup-display-page .plyr__control--overlaid
{
    background: #E9528E !important;
}

.cup-display-page .plyr__menu {
    display: none;
}

.cup-display-page .plyr--pip-supported [data-plyr=pip] {
    display: none;
}

.cup-display-page .plyr__volume {
    display: none;
}

.cup-display-page .plyr__control[data-plyr="airplay"] {
    display: none !important;
}

.cup-display-page .plyr--full-ui input[type=range] {
    color: #E9528E !important;
}

.cup-display-page .plyr--video .plyr__control:hover, .plyr--video .plyr__control[aria-expanded=true] {
    background: #E9528E !important;
    border-radius: 50%;
    height: 30px;
    width: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cup-display-theralog-card {
    display: flex;
    align-items: flex-start;
    background: white;
    border-bottom: 1px solid #AAAAAC;
    padding-bottom: 20px;
    margin-bottom: 20px;
}

.cup-display-theralog-card-area {
    color: #535353;
    border: 1px solid #535353;
    border-radius: 20px;
    font-size: 0.75rem;
    width: auto;
    text-align: center;
    width: 87px;
    height: 20px;
}

.cup-display-theralog-card-avatar {
    flex: 0 0 50px;
    margin-right: 0px !important;
}

.cup-display-theralog-card-avatar img {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    object-fit: cover;
}

.cup-display-theralog-card-content {
    flex: 1;
    width: calc(100% - 60px);
}


.cup-display-theralog-card-content-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cup-display-theralog-card-username {
    font-weight: bold;
    color: #535353;
    font-size: 1rem;
}

.cup-display-theralog-card-content-header-date-and-btn {
    display: flex;
    flex-direction: row;
    gap: 5px;
    align-items: center;
}

.cup-display-theralog-card-content-header-date-and-btn img {
    width: 14px;
    height: 14px;
}

.cup-display-theralog-card-post-date {
    font-size: 0.875rem;
    color: #535353;
}

.cup-display-theralog-card-main-contents {
    font-size: 1rem;
    color: #535353;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.cup-display-theralog-card-image {
    display: block;
    border-radius: 10px;
    margin-top: 10px;
    width: 100%;
    object-fit: cover;
}

.cup-display-theralog-card-video {

}

.cup-display-theralog-card-buttons {
    display: flex;
    justify-content: flex-start;
    gap: 20px;
    margin-top: 5px;
    align-items: center;
}


.cup-display-theralog-card-like-btn,
.cup-display-theralog-card-comment-btn,
.cup-display-theralog-card-share-btn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
}


.cup-display-theralog-card-like-btn img,
.cup-display-theralog-card-comment-btn img {
    width: 1.15rem !important;
    height: auto;
    margin-right: 5px;
}

.cup-display-theralog-card-share-btn img {
    width: 1.4375rem;
    height: auto;
}

.cup-display-theralog-card-like-count,
.cup-display-theralog-card-comment-count {
    font-size: 0.875rem;
    color: #535353;
}


/* ------------------------------------------------------------------------------------------------------------------ */
/* 店舗個別ページ */

.cup-display-store-page {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: 'Noto Sans JP', sans-serif;
    background: #fff;
    font-weight: 500;
}

.cup-display-store-page,
.cup-display-store-page * {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.cup-display-store-page-content {
    height: 100%;
    overflow-y: auto;
}

.cup-display-store-page-section {
    background: #fff;
    padding-bottom: 40px;
    padding-left: 20px;
    padding-right: 20px;
}

.cup-display-store-page .swiper-container {
    width: 100%;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
}

.cup-display-store-page .swiper-wrapper {
    width: 100%;
    display: flex;
}

.cup-display-store-page .swiper-slide {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
    overflow: hidden;
    border-radius: 5px;
}

.cup-display-store-page .swiper-slide {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 5px;
    overflow: hidden;
}

.cup-display-store-page .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cup-display-store-page .swiper-pagination {
    position: relative;
    margin-top: 20px;
    text-align: center;
    z-index: 1;
}

.cup-display-store-page .swiper-pagination-bullet {
    background: #AAAAAC;
    opacity: 0.6;
    transition: opacity 0.3s;
}

.cup-display-store-page .swiper-pagination-bullet-active {
    opacity: 1;
    background: #E9528E;
}

.cup-display-store-name {
    color: #535353;
    font-size: 1.5rem;
}

.cup-display-store-main-area {
    color: #535353;
    font-size: 1rem;
}

.cup-display-store-average-rating {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.cup-display-store-average-rating .average-score {
    font-size: 1.5rem;
    color: #E9528E;
    margin-right: 5px;
}

.cup-display-store-page-header-five-star {
    display: flex;
    flex-direction: row;
}

.cup-display-store-average-rating .average-star {
    color: #AAAAAC;
    transition: color 0.3s, transform 0.2s ease-in-out;
    position: relative;
    font-size: 1.5rem;
}

.cup-display-store-average-rating .average-star.selected {
    color: #E9528E;
}

.cup-display-store-average-rating .average-star.half-selected::before {
    content: "★";
    position: absolute;
    color: #E9528E;
    width: 50%;
    overflow: hidden;
}

.cup-display-store-review-count {
    font-size: 1rem;
    color: #AAAAAC;
}

.cup-display-store-profile-sentence-content {
    margin-top: 20px;
}

.cup-display-store-profile-sentence {
    color: #535353;
    font-size: 0.875rem;
    box-sizing: border-box;
    white-space: normal;
    word-wrap: break-word;
    overflow-y: hidden;
    padding: 10px;
    background: #F5F5F5;
    border-radius: 10px;
    min-height: 100px;
}

.cup-display-store-profile-sentence a {
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    word-break: break-word;
}

.cup-display-store-matching-btn-content {
    display: flex;
    justify-content: center;
    margin-top: 20px;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    position: relative;
}

.cup-display-store-message-btn {
    background-color: #fff;
    color: #7D40A0;
    border: solid 1px #7D40A0;
    border-radius: 100px;
    font-size: 1rem;
    width: 298px;
    height: 48px;
    position: relative;
}

.cup-display-store-message-btn::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    right: 20px;
    width: 7px;
    height: 7px;
    border-bottom: 1px solid #7D40A0;
    border-left: 1px solid #7D40A0;
    -webkit-transform: translatey(-50%) rotate(-135deg);
    transform: translatey(-50%) rotate(-135deg);
}

.cup-display-store-tab-section {
    background: #F5F5F5;
    padding-top: 40px;
    padding-left: 0 !important;
    padding-right: 0 !important;
}


.cup-display-store-tab-menu {
    display: flex;
    width: 100%;
    justify-content: space-between;
    flex-direction: row;
    gap: 10px;
}


.cup-display-store-tab-content-wrapper {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.cup-display-store-tab {
    cursor: pointer;
    background-color: #AAAAAC;
    color: white;
    border-radius: 10px 10px 0 0;
    width: 100%;
    text-align: center;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .15s ease, box-shadow .15s ease;
}

.cup-display-store-tab.cup-display-store-active {
    background-color: #E9528E;
    transform: translateY(-3px);
}

.cup-display-store-tab-content {
    display: none;
    background-color: #fff;
    box-sizing: border-box;
    padding: 20px;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}

.cup-display-store-tab-content.cup-display-store-active {
    display: block;
}

.cup-display-store-tab-title {
    color: #E9528E;
    text-align: center;
    font-size: 1.5rem;
    margin-bottom: 20px;
}

.cup-display-store-therapist-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.cup-display-store-info-therapist-nothing-message {
    grid-column: 1 / -1;
    text-align: center;
    justify-self: center;
    align-self: center;
    font-size: 1rem;
    color: #AAAAAC;
    text-align: center;
}

.cup-display-store-therapist-card {
    display: block;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
}

.cup-display-store-therapist-card-image-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
}

.cup-display-store-therapist-card-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cup-display-store-therapist-card-name {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 8px 10px;
    color: #fff;
    font-size: 0.875rem;
    text-align: center;
    box-sizing: border-box;
    background: rgba(109, 99, 115, 0.7);
    padding: 8px 12px;
}

.cup-display-store-therapist-status-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background-color: #E9528E;
    color: white;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 0.75rem;
    z-index: 10;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.cup-display-store-therapist-next-status-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background-color: #7D40A0;
    color: white;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 0.75rem;
    z-index: 10;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.cup-display-store-info-section {
    margin-bottom: 20px;
}

.cup-display-store-info-section-title {
    font-size: 1rem;
    color: #7D40A0;
}

.cup-display-store-info-table-nothing-message {
    color: #AAAAAC;
    text-align: center;
    font-size: 0.875rem;
    margin-top: 10px;
}

.cup-display-store-info-table th:nth-child(1),
.cup-display-store-info-table td:nth-child(1) {
    width: 50%;
    overflow-x: auto;
    white-space: nowrap;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.cup-display-store-info-table th:nth-child(1)::-webkit-scrollbar,
.cup-display-store-info-table td:nth-child(1)::-webkit-scrollbar {
    display: none;
}

.cup-display-store-info-table th:nth-child(2),
.cup-display-store-info-table td:nth-child(2) {
    width: 20%;
}

.cup-display-store-info-table th:nth-child(3),
.cup-display-store-info-table td:nth-child(3) {
    width: 30%;
}


.cup-display-store-info-table.naming-fee-table th:nth-child(1),
.cup-display-store-info-table.naming-fee-table td:nth-child(1),
.cup-display-store-info-table.options-table th:nth-child(1),
.cup-display-store-info-table.options-table td:nth-child(1),
.cup-display-store-info-table.transport-table th:nth-child(1),
.cup-display-store-info-table.transport-table td:nth-child(1) {
    width: 70%;
}

.cup-display-store-info-table.naming-fee-table th:nth-child(2),
.cup-display-store-info-table.naming-fee-table td:nth-child(2),
.cup-display-store-info-table.options-table th:nth-child(2),
.cup-display-store-info-table.options-table td:nth-child(2),
.cup-display-store-info-table.transport-table th:nth-child(2),
.cup-display-store-info-table.transport-table td:nth-child(2) {
    width: 30%;
}


.cup-display-store-info-table.store-data-table th:nth-child(1),
.cup-display-store-info-table.store-data-table td:nth-child(1) {
    width: 35%;
}

.cup-display-store-info-table.store-data-table th:nth-child(2),
.cup-display-store-info-table.store-data-table td:nth-child(2) {
    width: 65%;
}

.cup-table-wrapper {
    border-radius: 12px;
    overflow: hidden;
    margin-top: 10px;
}

.cup-display-store-info-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 0.875rem;
    background-color: #fff;
    color: #535353;
}

.cup-display-store-info-table thead {
    background-color: #7D40A0;
    color: #fff;
}

.cup-display-store-info-table th,
.cup-display-store-info-table td {
    padding: 10px;
    border: 1px solid #AAAAAC;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
}

.cup-display-store-cancellation-policy,
.cup-display-store-customer-confirmation {
    color: #535353;
    font-size: 0.875rem;
    box-sizing: border-box;
    white-space: normal;
    word-wrap: break-word;
    overflow-y: hidden;
    padding: 10px;
    background: #F5F5F5;
    border-radius: 10px;
    min-height: 100px;
    margin-top: 10px;
}

.cup-display-store-cancellation-policy a,
.cup-display-store-customer-confirmation a {
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    word-break: break-word;
}

.cup-display-store-info-credit-card-content {
    margin-top: 10px;
}

.cup-display-store-info-credit-card-sentence {
    color: #535353;
    font-size: 0.875rem;
}

.cup-display-store-info-credit-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: flex-end;
    margin-top: 10px;
}

.cup-display-store-info-credit-card-tag {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    text-align: center;
    color: #535353;
    font-size: 0.875rem;
    height: 80px;
}

.cup-display-store-info-credit-card-logo {
    width: 40px;
    height: auto;
    display: block;
}

.cup-display-store-latest-reviews {
    display: flex;
    flex-direction: column;
    gap: 40px;
    gap: 20px;
}

.cup-display-store-review {
    background: #F5F5F5;
    padding: 20px;
    border-radius: 10px;

}

.cup-display-store-review-header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
}


.cup-display-store-star-rating {
    font-size: 20px;
    cursor: pointer;
    display: flex;
    justify-content: flex-start;
    gap: 0px;
}

.cup-display-store-star-rating .star {
    color: #AAAAAC;
    transition: color 0.3s, transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    transform: scale(1);
}

.cup-display-store-star-rating .star.selected {
    color: #E9528E;
    transform: scale(1.1); 
}

.cup-display-store-review-created_at {
    font-size: 1rem;
    color: #535353;
}

.cup-display-store-review-text-wrapper {
    position: relative;
}

.cup-display-store-review-text{
    width: 100%;
    padding: 10px;
    font-size: 0.875rem;
    background-color: #FFFFFF;
    box-sizing: border-box;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-y: hidden;
    margin-top: 10px;
    color: #535353;
    max-height: 100px;
    max-height: 100px;
    min-height: 100px;
    height: 100px;
}

.cup-display-store-review-hide-content {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cup-display-store-review-hide-message {
    color: #AAAAAC;
    font-size: 1rem;
    border: solid 1px #AAAAAC;
    width: 85%;
    height: 56px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cup-display-store-view-more-reviews {
    text-align: center;
    margin-top: 20px;
    display: flex;
    justify-content: center;
}

.cup-display-store-view-more-reviews-btn {
    width: 298px;
    height: 48px;
    border: solid 1px #7D40A0;
    color: #7D40A0;
    border-radius: 100px;
    position: relative;
    text-decoration: none;
    font-size: 1rem;
    display: inline-block;
    display: flex;
    justify-content: center;
    align-items: center;
}

.cup-display-store-view-more-reviews-btn::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    right: 20px;
    width: 7px;
    height: 7px;
    border-bottom: 1px solid #7D40A0;
    border-left: 1px solid #7D40A0;
    -webkit-transform: translatey(-50%) rotate(-135deg);
    transform: translatey(-50%) rotate(-135deg);
}

.cup-display-store-no-reviews-message {
    font-size: 1rem;
    color: #AAAAAC;
    text-align: center;
}

/* ------------------------------------------------------------------------------------------------------------------ */
/* ユーザー個別ページ */

.cup-display-user-page {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: 'Noto Sans JP', sans-serif;
    background: #fff;
    font-weight: 500;
}

.cup-display-user-page,
.cup-display-user-page * {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.cup-display-user-page-content {
    height: 100%;
    overflow-y: auto;
}

.cup-display-user-page-section {
    background: #fff;
    padding-bottom: 40px;
    padding-left: 20px;
    padding-right: 20px;
}

.cup-display-user-image-container {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cup-display-user-image-container img {
    height: 8.5rem;
    width: 8.5rem;
    object-fit: cover;
    border-radius: 50% !important;
    display: flex;

}

.cup-display-user-main-info-content {
    margin-top: 20px;
}

.cup-display-user-name {
    color: #535353;
    font-size: 1.5rem;
    text-align: center;
}

.cup-display-user-region {
    color: #535353;
    font-size: 1rem;
    text-align: center;
}

.cup-display-user-age-range {
    color: #535353;
    font-size: 1rem;
    text-align: center;
}

.cup-display-user-profile-sentence-content {
    margin-top: 20px;
}

.cup-display-user-profile-sentence {
    color: #535353;
    font-size: 0.875rem;
    box-sizing: border-box;
    white-space: pre-wrap;
    white-space: normal;
    overflow-y: hidden;
    padding: 10px;
    background: #F5F5F5;
    border-radius: 10px;
    min-height: 100px;
}

.cup-display-user-profile-sentence a {
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    word-break: break-word;
}

.cup-display-user-matching-btn-content {
    display: flex;
    justify-content: center;
    margin-top: 20px;
    flex-direction: column;
    align-items: center;
    position: relative;
}

.cup-display-user-message-btn {
    background-color: #fff;
    color: #7D40A0;
    border: solid 1px #7D40A0;
    border-radius: 100px;
    font-size: 1rem;
    width: 298px;
    height: 48px;
    position: relative;
}

.cup-display-user-message-btn::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    right: 20px;
    width: 7px;
    height: 7px;
    border-bottom: 1px solid #7D40A0;
    border-left: 1px solid #7D40A0;
    -webkit-transform: translatey(-50%) rotate(-135deg);
    transform: translatey(-50%) rotate(-135deg);
}

.cup-display-user-message-btn:disabled {
    background-color: #AAAAAC;
    color: #fff;
    border: none;
    cursor: not-allowed;
}

.cup-display-user-message-btn:disabled::before {
    border-bottom: 1px solid #fff;
    border-left: 1px solid #fff;
}

.cup-display-user-message-btn-message {
    margin-top: 10px;
    font-size: 0.875rem;
    color: #AAAAAC;
    text-align: center;
}

.cup-display-user-tab-section {
    background: #F5F5F5;
    padding-top: 40px;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.cup-display-user-tab-menu {
    display: flex;
    width: 100%;
    justify-content: space-between;
    flex-direction: row;
    gap: 10px;
}

.cup-display-user-tab-content-wrapper {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.cup-display-user-tab {
    cursor: pointer;
    background-color: #AAAAAC;
    color: white;
    border-radius: 10px 10px 0 0;
    width: 100%;
    text-align: center;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .15s ease, box-shadow .15s ease;
}

.cup-display-user-tab.cup-display-user-active {
    background-color: #E9528E;
    transform: translateY(-3px);
}

.cup-display-user-tab-content {
    display: none;
    background-color: #fff;
    box-sizing: border-box;
    padding: 20px;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}

.cup-display-user-tab-content.cup-display-user-active {
    display: block;
}

.cup-display-user-tab-title {
    color: #E9528E;
    text-align: center;
    font-size: 1.5rem;
    margin-bottom: 20px;
}

.cup-display-user-question-block {
    margin-bottom: 20px;
    border-bottom: 1px solid #7D40A0;
    padding-bottom: 20px;
}

.cup-display-user-question-title {
    color: #7D40A0;
    font-size: 1rem;
    margin-bottom: 5px;
}

.cup-display-user-question-answer {
    color: #535353;
    font-size: 0.875rem;
    box-sizing: border-box;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-y: hidden;
}

.cup-display-user-reservation-badge-with-button {
    background-color: #E9528E;
    color: white;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.875rem;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
    margin-top: 1.25rem;
}

.cup-display-user-reservation-badge-with-button .reservation-label {
    position: relative;
    padding-left: 15px;
}

.cup-display-user-reservation-badge-with-button .reservation-label::before {
    content: "✔";
    position: absolute;
    left: 0;
    top: 0;
    color: white;
    font-size: 0.875rem;
}

.cup-display-user-reservation-badge-with-button .reservation-button {
    background-color: white;
    color: #E9528E;
    padding: 4px 10px;
    border-radius: 12px;
    text-decoration: none;
    font-size: 13px;
    transition: background-color 0.2s, color 0.2s;
}

/* ------------------------------------------------------------------------------------------------------------------ */
/* プロフィールページ */
.cup-profile-page {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    background: #fff;
    padding-left: 20px;
    padding-right: 20px;
}

.cup-profile-page-title {
    font-size: 1.5rem;
    font-weight: 500;
    color: #E9528E;
    text-align: center;
    margin-top: 40px;
}

.cup-profile-content {
    height: 100%;
    overflow-y: auto;
}

.cup-profile-image-section {
    width: 100%;
    margin-top: 40px;
    position: relative;
}

.cup-profile-image-section label {
    font-size: 1rem;
    color: #535353;
}

.cup-profile-section {
    width: 100%;
    margin-top: 40px;
    margin-bottom: 100px;
}

.cup-profile-sub-section {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    position: relative;
}

.cup-profile-sub-section label {
    font-size: 1rem;
    color: #535353;
    display: flex;
    flex-direction: row;
    align-items: center;
}

#cup-profile-upload-progress {
    width: 100%;
    background-color: #e0e0e0;
    border-radius: 10px;
    height: 12px;
    position: absolute;
    bottom: -20px;
}

#cup-profile-progress-bar {
    height: 100%;
    background: linear-gradient(to right, #7D40A0, #9E6CBB);
    width: 0%;
    border-radius: 8px;
    transition: width 0.4s ease-out;
}

.cup-profile-pic-grid {
    display: grid;
    gap: 10px;
    justify-items: center;
    align-items: center;
    width: 100%;
    margin-top: 5px;
}

.cup-profile-pic-item {
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 200px;
    width: 100%;
    aspect-ratio: 3 / 4;
    border: 1px dashed #535353;
    border-radius: 10px;
    padding: 20px;
    box-sizing: border-box;
    text-align: center;
    background-color: #F5F5F5;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cup-profile-pic-item img {
    pointer-events: none;
    width: 30px;
    height: 30px;
}

#cup-profile-name {
    border: none;
    border-radius: 25px;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    padding: 12px;
    margin-top: 5px;
}

#cup-profile-sentence {
    width: 100%;
    padding: 12px;
    border-radius: 25px;
    font-size: 1rem;
    color: #535353;
    background-color: #F5F5F5;
    resize: vertical;
    border: none;
    margin-top: 5px;
    box-sizing: border-box;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-y: hidden;
}

.cup-profile-character-counter,
.cup-profile-name-character-counter {
    font-size: 0.875rem;
    color: #AAAAAC;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    position: absolute;
    bottom: 5px;
    right: 10px;
}

.cup-profile-region-select-section,
.cup-profile-age-range-select-section {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.cup-profile-region-select-section select,
.cup-profile-age-range-select-section select {
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 25px;
    font-size: 1rem;
    color: #535353;
    background-color: #F5F5F5;
    resize: none;
    text-align: center;
    margin-top: 5px;
}


.cup-profile-age-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-top: 10px;
    color: #535353;
    font-size: 1rem;
    gap: 5px;
}

.cup-profile-age-switch {
    position: relative;
    display: inline-block;
    height: 2.125rem;
    width: 5.3125rem;
}

.cup-profile-age-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.cup-profile-age-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #AAAAAC;
    transition: 0.4s;
    border-radius: 3.125rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0rem 0.625rem;
}

.cup-profile-age-slider:before {
    position: absolute;
    content: "";
    background-color: white;
    transition: 0.4s;
    border-radius: 3.125rem;
    bottom: 0.25rem;
    height: 1.625rem;
    left: 0.25rem;
    width: 1.625rem;
}

.cup-profile-age-text-on,
.cup-profile-age-text-off {
    position: absolute;
    font-size: 0.875rem;
    color: white;
    transition: 0.4s;
}

.cup-profile-age-text-off {
    left: 2.0625rem;
    opacity: 1;
}

.cup-profile-age-text-on {
    right: 2.1875rem;
    opacity: 0;
}

.cup-profile-age-switch input:checked + .cup-profile-age-slider {
    background-color: #7D40A0;
}

.cup-profile-age-switch input:checked + .cup-profile-age-slider:before {
    transform: translateX(3.125rem);
}

.cup-profile-age-switch input:checked + .cup-profile-age-slider .cup-profile-age-text-on {
    opacity: 1;
}

.cup-profile-age-switch input:checked + .cup-profile-age-slider .cup-profile-age-text-off {
    opacity: 0;
}

.cup-question {
    border: none;
    border-radius: 25px;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    padding: 12px;
    margin-top: 5px;
    box-sizing: border-box;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-y: hidden;
}

.cup-profile-footer {
    position: fixed;
    bottom: 80px;
    right: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0px;
}

.cup-profile-save-button {
    display: inline-block;
    border-radius: 50%;
    padding: 0px;
    font-size: 0.75rem;
    color: white;
    width: 70px;
    height: 70px;
    text-align: center;
    line-height: 60px;
    background: #E9528E;
    z-index: 100;
}

.cup-dot-loader {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    font-size: 0.75rem;
    color: #E9528E;
}
  
.cup-dot-loader div {
    width: 5px;
    height: 5px;
    background-color: #E9528E;
    border-radius: 50%;
    animation: wave 1.2s infinite ease-in-out;
}
  
.cup-dot-loader div:nth-child(1) {
    animation-delay: -0.4s;
}
  
.cup-dot-loader div:nth-child(2) {
    animation-delay: -0.2s;
}
  
.cup-dot-loader div:nth-child(3) {
    animation-delay: 0s;
}
  
@keyframes wave {
    0%, 100% {
      transform: scale(1);
    }
    50% {
      transform: scale(1.5);
    }
}

.cup-therapist-profile-image-section {
    width: 100%;
    margin-top: 40px;
    position: relative;
}

.cup-therapist-profile-image-section label {
    font-size: 1rem;
    color: #535353;
}

.cup-therapist-profile-section {
    width: 100%;
    margin-top: 40px;
    margin-bottom: 100px;
}

#cup-therapist-profile-upload-progress,
#cup-therapist-std-upload-progress {
    width: 100%;
    background-color: #e0e0e0;
    border-radius: 10px;
    height: 12px;
    position: absolute;
    bottom: -20px;
}

#cup-therapist-profile-progress-bar,
#cup-therapist-std-progress-bar {
    height: 100%;
    background: linear-gradient(to right, #7D40A0, #9E6CBB);
    width: 0%;
    border-radius: 8px;
    transition: width 0.4s ease-out;
}

.cup-therapist-profile-pic-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    justify-items: center;
    align-items: center;
    width: 100%;
    margin-top: 5px;
}

.cup-therapist-std-pic-grid {
    display: grid;
    gap: 10px;
    justify-items: center;
    align-items: center;
    width: 100%;
    margin-top: 5px;
}

.cup-therapist-profile-pic-item,
.cup-therapist-std-pic-item {
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 105px;
    max-width: 200px;
    width: 100%;
    aspect-ratio: 3 / 4;
    border: 1px dashed #535353;
    border-radius: 10px;
    padding: 20px;
    box-sizing: border-box;
    text-align: center;
    background-color: #F5F5F5;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.cup-therapist-profile-pic-item img,
.cup-therapist-std-pic-item img {
    pointer-events: none;
    width: 30px;
    height: 30px;
}

.cup-therapist-profile-first-pic-item {
    border-color: #E9528E;
}

.cup-therapist-profile-sub-section {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    position: relative;
}

.cup-therapist-profile-sub-section label {
    font-size: 1rem;
    color: #535353;
    display: flex;
    flex-direction: row;
    align-items: center;
}

.cup-therapist-profile-sub-section label img {
    width: 40px;
    height: 40px;
}

.cup-therapist-profile-sub-section-twitcas-logo {
    height: 2rem !important;
    width: 2rem !important;
}

#cup-therapist-profile-name {
    border: none;
    border-radius: 25px;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    padding: 12px;
    margin-top: 5px;
}

.cup-therapist-profile-birthdate-select-section,
.cup-therapist-profile-therapist-career-select-section {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    margin-top: 5px;
}

.cup-therapist-profile-birthdate-select-section select,
.cup-therapist-profile-therapist-career-select-section select {
    padding: 8px;
    font-size: 0.875rem;
    width: 100%;
    text-align: center;
    background-color: #F5F5F5;
    border-radius: 25px;
    color: #535353;
}

.cup-select-separator {
    display: block;
    text-align: center;
    margin-top: 10px;
    font-size: 1rem;
    margin-right: 5px;
    margin-left: 5px;
    color: #AAAAAC;
}

#cup-therapist-profile-height,
#cup-therapist-profile-weight {
    border: none;
    border-radius: 25px;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    padding: 12px;
    margin-top: 5px;
}

#cup-therapist-profile-mbti {
    border: none;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    border-radius: 1.5625rem;
    margin-top: 0.3125rem;
    padding: 0.75rem;
}


#cup-therapist-profile-main-area {
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 25px;
    font-size: 1rem;
    color: #535353;
    background-color: #F5F5F5;
    resize: none;
    text-align: center;
    margin-top: 5px;
}

.cup-therapist-profile-service-area-checkboxes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: space-between;
    margin-top: 10px;
}

.cup-therapist-profile-service-area-checkboxes label {
    position: relative;
    padding-left: 30px;
    font-size: 1rem;
    color: #535353;
    cursor: pointer;
    user-select: none;
    transition: color 0.3s ease;
}

.cup-therapist-profile-service-area-checkboxes label::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    border: 2px solid #AAAAAC;
    border-radius: 4px;
    background-color: #F5F5F5;
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

.cup-therapist-profile-service-area-checkboxes input[type="checkbox"]:checked + label::before {
    background-color: #7D40A0;
    border-color: #7D40A0;
}

.cup-therapist-profile-service-area-checkboxes label::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 50%;
    transform: translateY(-50%) rotate(45deg) scale(0);
    width: 6px;
    height: 12px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transition: transform 0.3s ease;
}

.cup-therapist-profile-service-area-checkboxes input[type="checkbox"]:checked + label::after {
    transform: translateY(-50%) rotate(45deg) scale(1);
}

.cup-therapist-profile-service-area-checkboxes input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.cup-therapist-profile-tags {
    margin-top: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.cup-therapist-profile-tags-content {
    margin-top: 20px;
}

.cup-therapist-profile-tags-content-title {
    font-size: 1rem;
    color: #535353;
    text-align: center;
}

.cup-therapist-profile-tags .tag {
    padding: 8px 15px;
    border-radius: 20px;
    cursor: pointer;
    font-size: 0.875rem;
    min-width: 60px;
    transition: all 0.2s ease;
    border: 1px solid #AAAAAC;
    background-color: #ffffff;
    color: #AAAAAC;
}

.cup-therapist-profile-tags .tag.selected {
    background-color: #7D40A0;
    color: white;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    transform: translateY(-2px);
}

#cup-therapist-profile-sentence {
    width: 100%;
    padding: 12px;
    border-radius: 25px;
    font-size: 1rem;
    color: #535353;
    background-color: #F5F5F5;
    resize: vertical;
    border: none;
    margin-top: 5px;
    box-sizing: border-box;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-y: hidden;
}

.cup-therapist-question {
    border: none;
    border-radius: 25px;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    padding: 12px;
    margin-top: 5px;
    box-sizing: border-box;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-y: hidden;
}

.cup-therapist-profile-character-counter,
.cup-therapist-profile-name-character-counter {
    font-size: 0.875rem;
    color: #AAAAAC;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    position: absolute;
    bottom: 5px;
    right: 10px;
}

.cup-note-message {
    font-size: 0.875rem;
    color: #E9518E; 
}

.cup-note-message-for-mbti {
    font-size: 0.875rem;
    color: #AAAAAC; 
}

.cup-note-message-for-mbti-link {
    font-size: 0.875rem;
    color: #AAAAAC; 
    text-decoration: underline;
}

#cup-therapist-profile-instagram-url,
#cup-therapist-profile-x-url,
#cup-therapist-profile-youtube-url,
#cup-therapist-profile-tiktok-url,
#cup-therapist-profile-line-url,
#cup-therapist-profile-twitcas-url {
    border: none;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    border-radius: 1.5625rem;
    margin-top: 0.3125rem;
    padding: 0.75rem; 
}


.cup-therapist-profile-toggle-section {
    display: flex;
    flex-direction: column;
    margin-top: 40px;
}

.cup-therapist-profile-role-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
}

.cup-therapist-profile-switch {
    position: relative;
    display: inline-block;
    width: 85px;
    height: 34px;
}

.cup-therapist-profile-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.cup-therapist-profile-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #AAAAAC;
    transition: 0.4s;
    border-radius: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 10px;
}

.cup-toggle-message img {
    width: 32px;
    height: 32px;
    display: block;
    margin: 0 auto;
}

.cup-toggle-message {
    font-size: 0.875rem;
    color: #E9518E; 
    display: none;
    text-align: center;
    margin-top: 10px;
}

.cup-therapist-profile-slider:before {
    position: absolute;
    content: "";
    height: 26px;
    width: 26px;
    border-radius: 50px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: 0.4s;
}

.cup-therapist-profile-text-on,
.cup-therapist-profile-text-off {
    position: absolute;
    font-size: 0.875rem;
    color: white;
    transition: 0.4s;
}

.cup-therapist-profile-text-off {
    left: 33px;
    opacity: 1;
}

.cup-therapist-profile-text-on {
    right: 35px;
    opacity: 0;
}

.cup-therapist-profile-switch input:checked + .cup-therapist-profile-slider {
    background-color: #7D40A0;
}

.cup-therapist-profile-switch input:checked + .cup-therapist-profile-slider:before {
    transform: translateX(50px); 
}

.cup-therapist-profile-switch input:checked + .cup-therapist-profile-slider .cup-therapist-profile-text-on {
    opacity: 1;
}

.cup-therapist-profile-switch input:checked + .cup-therapist-profile-slider .cup-therapist-profile-text-off {
    opacity: 0;
}

.cup-store-profile-image-section {
    width: 100%;
    margin-top: 40px;
    position: relative;
}

.cup-store-profile-image-section label {
    font-size: 1rem;
    color: #535353;
}

.cup-store-profile-section {
    width: 100%;
    margin-top: 40px;
    margin-bottom: 100px;
}


#cup-store-profile-upload-progress {
    width: 100%;
    background-color: #e0e0e0;
    border-radius: 10px;
    height: 12px;
    position: absolute;
    bottom: -20px;
}

#cup-store-profile-progress-bar {
    height: 100%;
    background: linear-gradient(to right, #7D40A0, #9E6CBB);
    width: 0%;
    border-radius: 8px;
    transition: width 0.4s ease-out;
}

.cup-store-profile-pic-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    justify-items: center;
    align-items: center;
    width: 100%;
    margin-top: 5px;
}

.cup-store-profile-pic-item {
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 105px;
    max-width: 200px;
    width: 100%;
    aspect-ratio: 3 / 4;
    border: 1px dashed #535353;
    border-radius: 10px;
    padding: 20px;
    box-sizing: border-box;
    text-align: center;
    background-color: #F5F5F5;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cup-store-profile-pic-item img {
    pointer-events: none;
    width: 30px;
    height: 30px;
}

.cup-store-profile-first-pic-item {
    border-color: #E9528E;
}

.cup-store-profile-sub-section {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    position: relative;
}

.cup-store-profile-sub-section label {
    font-size: 1rem;
    color: #535353;
    display: flex;
    flex-direction: row;
    align-items: center;
}

#cup-store-profile-name {
    border: none;
    border-radius: 25px;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    padding: 12px;
    margin-top: 5px;
}

#cup-store-profile-sentence {
    width: 100%;
    padding: 12px;
    border-radius: 25px;
    font-size: 1rem;
    color: #535353;
    background-color: #F5F5F5;
    resize: vertical;
    border: none;
    margin-top: 5px;
    box-sizing: border-box;
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-y: hidden;
}

#cup-store-business-hours,
#cup-store-phone-reception-hours,
#cup-store-phone-number,
#cup-store-official-website-url,
#cup-store-closed-days {
    border: none;
    border-radius: 25px;
    background-color: #F5F5F5;
    color: #535353;
    width: 100%;
    padding: 12px;
    margin-top: 5px;
}

.cup-store-profile-character-counter,
.cup-store-profile-name-character-counter {
    font-size: 0.875rem;
    color: #AAAAAC;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    position: absolute;
    bottom: 5px;
    right: 10px;
}

.cup-store-profile-area-select-section {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.cup-store-profile-area-select-section select {
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 25px;
    font-size: 1rem;
    color: #535353;
    background-color: #F5F5F5;
    resize: none;
    text-align: center;
    margin-top: 5px;
}

/* ------------------------------------------------------------------------------------------------------------------ */
/* ユーザー個別ページ(権限なし) */

.cup-display-user-page-without-permission {
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    font-family: 'Noto Sans JP', sans-serif;
    background: #fff;
    font-weight: 500;
}

.cup-display-user-page-without-permission,
.cup-display-user-page-without-permission * {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}

.cup-display-user-page-without-permission-content {
    height: 100%;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cup-without-permission-message {
    margin-top: 40px;
    color: #535353;
    font-size: 1rem;
    text-align: center;
}

.cup-without-permission-login-btn {
    width: 298px;
    height: 48px;
    border: solid 1px #7D40A0;
    color: #7D40A0;
    border-radius: 100px;
    position: relative;
    text-decoration: none;
    font-size: 1rem;
    display: inline-block;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 40px;
}

.cup-without-permission-login-btn::before {
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    right: 20px;
    width: 7px;
    height: 7px;
    border-bottom: 1px solid #7D40A0;
    border-left: 1px solid #7D40A0;
    -webkit-transform: translatey(-50%) rotate(-135deg);
    transform: translatey(-50%) rotate(-135deg);
}

.cup-swal-install-link {
    color: #7D40A0;
    text-decoration: underline;
  }