.guest-profile {
    display: grid;
    gap: 1.5rem;
    max-width: 1500px;
    margin: 0 auto;
}

.guest-profile__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.guest-profile__identity {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.guest-profile__avatar {
    display: grid;
    place-items: center;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    font-family: var(--serif);
    font-size: 1.15rem;
    color: #fff;
    background: #41594a;
    border-radius: 50%;
}

.guest-profile__title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .7rem;
}

.guest-profile__title h1 {
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    font-weight: 400;
    color: #29342d;
}

.guest-profile__identity p {
    margin: .25rem 0 0;
    font-size: .67rem;
    color: #99948c;
}

.guest-profile__loyalty-badge {
    padding: .35rem .65rem;
    font-size: .58rem;
    font-weight: 700;
    color: #42614d;
    background: #edf4ee;
    border: 1px solid #d8e6da;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.guest-profile__kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
}

.guest-kpi {
    display: flex;
    flex-direction: column;
    min-height: 135px;
    padding: 1.1rem;
    background: #fff;
    border: 1px solid #e8e4dc;
    border-radius: 14px;
}

.guest-kpi > span {
    font-size: .63rem;
    font-weight: 700;
    color: #8b877f;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.guest-kpi > strong {
    margin: auto 0 .2rem;
    font-family: var(--serif);
    font-size: 2rem;
    font-weight: 400;
    color: #29342d;
}

.guest-kpi > strong small {
    font-family: inherit;
    font-size: .65rem;
}

.guest-kpi > small {
    font-size: .6rem;
    color: #aaa59d;
}

.guest-kpi--featured {
    background: #41594a;
    border-color: #41594a;
}

.guest-kpi--featured > span,
.guest-kpi--featured > strong,
.guest-kpi--featured > small {
    color: #fff;
}

.guest-profile__layout {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    align-items: start;
    gap: 1rem;
}

.guest-profile__sidebar,
.guest-profile__content {
    display: grid;
    gap: 1rem;
}

.guest-card {
    min-width: 0;
    padding: 1.25rem;
    background: #fff;
    border: 1px solid #e8e4dc;
    border-radius: 16px;
}

.guest-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.guest-card__header h2 {
    margin: .15rem 0 0;
    font-family: var(--serif);
    font-size: 1.25rem;
    font-weight: 500;
    color: #29342d;
}

.guest-card__header > span {
    display: grid;
    place-items: center;
    min-width: 28px;
    height: 28px;
    padding: 0 .5rem;
    font-size: .6rem;
    font-weight: 700;
    color: #52665a;
    background: #edf1ed;
    border-radius: 999px;
}

.guest-details,
.guest-loyalty {
    display: grid;
}

.guest-detail {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .7rem 0;
    border-bottom: 1px solid #efede8;
}

.guest-detail:last-child {
    border-bottom: 0;
}

.guest-detail > span {
    font-size: .62rem;
    color: #969189;
}

.guest-detail strong,
.guest-detail a,
.guest-detail em {
    font-size: .67rem;
    font-style: normal;
    font-weight: 600;
    color: #354039;
    text-align: right;
    text-decoration: none;
}

.guest-detail a:hover {
    color: #55705e;
}

.guest-detail em {
    font-weight: 400;
    color: #aaa59d;
}

.guest-loyalty__status {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    margin-bottom: .7rem;
    padding: .9rem;
    background: #f3f6f2;
    border-radius: 10px;
}

.guest-loyalty__status strong {
    font-family: var(--serif);
    font-size: 1rem;
    font-weight: 500;
    color: #41594a;
}

.guest-loyalty__status span {
    font-size: .6rem;
    color: #8d938e;
}

.guest-bookings {
    display: grid;
}

.guest-booking {
    display: grid;
    grid-template-columns: minmax(230px, 1.4fr) minmax(90px, .6fr) minmax(100px, .6fr) auto 16px;
    align-items: center;
    gap: 1rem;
    padding: .9rem .2rem;
    color: inherit;
    border-bottom: 1px solid #efede8;
    text-decoration: none;
    transition: background .15s ease;
}

.guest-booking:last-child {
    border-bottom: 0;
}

.guest-booking:hover {
    background: #faf9f6;
}

.guest-booking__dates {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.guest-booking__dates > div {
    display: flex;
    flex-direction: column;
    gap: .12rem;
}

.guest-booking__dates span,
.guest-booking__stay span,
.guest-booking__amount span {
    font-size: .56rem;
    color: #aaa59d;
}

.guest-booking__dates strong,
.guest-booking__stay strong {
    font-size: .68rem;
    color: #354039;
}

.guest-booking__arrow {
    color: #c5c0b8 !important;
}

.guest-booking__stay {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.guest-booking__amount {
    display: flex;
    align-items: baseline;
    gap: .25rem;
}

.guest-booking__amount strong {
    font-family: var(--serif);
    font-size: 1rem;
    font-weight: 400;
    color: #29342d;
}

.guest-booking__chevron {
    font-size: 1.2rem;
    color: #c2bdb5;
}

.guest-payments {
    display: grid;
}

.guest-payment {
    display: grid;
    grid-template-columns: minmax(150px, 1fr) minmax(180px, 1fr) auto auto;
    align-items: center;
    gap: 1rem;
    padding: .75rem 0;
    border-bottom: 1px solid #efede8;
}

.guest-payment:last-child {
    border-bottom: 0;
}

.guest-payment > div {
    display: flex;
    flex-direction: column;
    gap: .12rem;
}

.guest-payment > div strong {
    font-size: .67rem;
    color: #354039;
}

.guest-payment > div span {
    font-size: .58rem;
    color: #99948c;
}

.guest-payment > a {
    font-size: .63rem;
    color: #52675a;
    text-decoration: none;
}

.guest-payment__amount {
    font-size: .7rem;
    color: #354039;
}

.guest-payment__legacy {
    padding: .3rem .5rem;
    font-size: .52rem;
    font-weight: 700;
    color: #706b63;
    background: #f1efeb;
    border-radius: 999px;
    text-transform: uppercase;
}

.guest-profile__empty {
    padding: 2rem;
    font-size: .68rem;
    color: #99948c;
    text-align: center;
    background: #f8f7f3;
    border-radius: 10px;
}

@media (max-width: 1100px) {
    .guest-profile__kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .guest-profile__layout {
        grid-template-columns: 1fr;
    }

    .guest-profile__sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .guest-booking {
        grid-template-columns: 1fr auto;
    }

    .guest-booking__stay,
    .guest-booking__amount {
        grid-column: 1;
    }

    .guest-booking .booking-status {
        grid-column: 2;
        grid-row: 1;
    }

    .guest-booking__chevron {
        display: none;
    }

    .guest-payment {
        grid-template-columns: 1fr auto;
    }
}

@media (max-width: 650px) {
    .guest-profile__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .guest-profile__kpis,
    .guest-profile__sidebar {
        grid-template-columns: 1fr;
    }

    .guest-profile__avatar {
        width: 50px;
        height: 50px;
        flex-basis: 50px;
    }
}
