/* Contact Card Styles */
.contact-card {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    background: var(--background-color);
    border-radius: 12px;
    outline: 1px var(--light-gray) solid;
    outline-offset: -1px;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    display: inline-flex;
}

/* Card Image */
.contact-card__image {
    width: 100%;
    aspect-ratio: 16 / 9;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--primary-on-color);
}

.contact-card__image--qr {
    width: min(100%, 180px);
    height: auto;
    max-width: 180px;
    object-fit: contain;
    max-height: 100%;
    display: block;
}

/* Card Body */
.contact-card__body {
    align-self: stretch;
    padding: 24px;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 16px;
    display: flex;
}

/* Card Content */
.contact-card__content {
    align-self: stretch;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 8px;
    display: flex;
}

/* Info Section */
.contact-card__info {
    align-self: stretch;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 4px;
    display: flex;
}

.contact-card__membership-summary{
    align-self:stretch;
    width:100%;
    min-width:0;
    margin-top:8px;
}

.contact-card__membership-summary p{
    margin:0;
    overflow-wrap:anywhere;
    word-break:break-word;
    line-height:1.3;
}

.contact-card__membership-summary p + p{
    margin-top:8px;
}

.contact-card__info > .contact-card__row{
    align-self:stretch;
    min-height:20px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.contact-card__row h5{
    margin:0;
    white-space:nowrap;
}

.contact-card__row div{
    min-width:0;
}

/* Button Group */
.contact-card__button-group {
    align-self: stretch;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 16px;
    display: flex;
}

@media (max-width: 575.98px){
    .contact-card__image{
        aspect-ratio: 4 / 3;
    }

    .contact-card__body{
        padding: 16px;
        gap: 16px;
    }

    .contact-card__content{
        gap: 6px;
    }

    .contact-card__info{
        gap: 2px;
    }

    .contact-card__button-group{
        gap: 10px;
    }

    .contact-card__button-group .small-btn{
        padding-top: 8px;
        padding-bottom: 8px;
    }
}
