.plan-card .price-group {
    column-gap: 10px;
    row-gap: 5px;
}

.plan-card .price-group.has-discount .price {
    color: var(--c-ui-accent);
}

.plan-card .price-group .old-price {
    text-decoration: none;
    font-size: 1.6rem;
    order: 2;
}

.plan-card .price-group .old-price span {
    color: #98a1b8;
    text-decoration: line-through;
    text-decoration-color: rgba(224, 49, 66, 0.75);
    text-decoration-thickness: 2px;
    text-underline-offset: 1px;
}

.plan-card .price-group .discount-badge {
    order: 3;
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 8px;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.01em;
    color: #ffffff;
    background: linear-gradient(135deg, #ff4d5e 0%, #e03142 100%);
    box-shadow: 0 4px 12px rgba(224, 49, 66, 0.28);
    white-space: nowrap;
}

.card-price-group {
    padding: 1rem 0 0.5rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    column-gap: 12px;
    row-gap: 6px;
}

.card-info-block .card-price-group .card-price {
    padding: 0;
    margin: 0;
}

.card-price-group.has-discount .card-price {
    color: var(--c-ui-accent);
}

.card-price-group .card-old-price {
    text-decoration: none;
    font-size: 2.2rem;
    font-weight: 400;
    order: 2;
}

.card-price-group .card-old-price span {
    color: #98a1b8;
    text-decoration: line-through;
    text-decoration-color: rgba(224, 49, 66, 0.75);
    text-decoration-thickness: 2px;
    text-underline-offset: 1px;
}

.card-discount-badge {
    order: 3;
    display: inline-flex;
    align-items: center;
    padding: 4px 11px;
    border-radius: 9px;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.01em;
    color: #ffffff;
    background: linear-gradient(135deg, #ff4d5e 0%, #e03142 100%);
    box-shadow: 0 4px 12px rgba(224, 49, 66, 0.28);
    white-space: nowrap;
}

.plan-card--promo .object-name {
    background: linear-gradient(135deg, #ff4d5e 0%, #e03142 100%);
    color: #ffffff;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(224, 49, 66, 0.30);
}

.olimp-flat-popup {
    position: absolute;
    z-index: 999999;
    width: 250px;
    pointer-events: none;
    opacity: 0;
    transform: translateY(8px) scale(0.97);
    transition: opacity 0.18s ease, transform 0.18s ease;
    border-radius: 16px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 24px 60px rgba(37, 50, 64, 0.28), 0 4px 14px rgba(0, 0, 0, 0.10);
    border: 1px solid rgba(37, 50, 64, 0.08);
}
.olimp-flat-popup.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.olimp-flat-popup__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 13px 18px 11px;
    background: linear-gradient(135deg, var(--c-ui-dark, #253240) 0%, #31404f 100%);
    color: #ffffff;
}
.olimp-flat-popup__title { font-size: 14px; font-weight: 700; line-height: 1.2; }
.olimp-flat-popup__floor {
    flex-shrink: 0; font-size: 11px; font-weight: 500;
    background: rgba(255, 255, 255, 0.14); padding: 3px 9px; border-radius: 20px; white-space: nowrap;
}

.olimp-flat-popup__badge {
    display: block; padding: 5px 18px;
    font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1;
    color: #ffffff;
}
.olimp-flat-popup__badge--free        { background: var(--c-ui-chess-free, #3f9b6f); }
.olimp-flat-popup__badge--booked      { background: var(--c-ui-chess-booked, #7a3f34); }
.olimp-flat-popup__badge--sold,
.olimp-flat-popup__badge--unavailable { background: var(--c-ui-chess-sold, #cabba6); color: rgba(0,0,0,.55); }

.olimp-flat-popup__img {
    background: #f6f1e8; display: flex; align-items: center; justify-content: center;
    padding: 14px 24px 10px; min-height: 96px;
}
.olimp-flat-popup__img img { max-height: 116px; max-width: 100%; object-fit: contain; display: block; }

.olimp-flat-popup__specs { margin: 0; padding: 10px 0 4px; }
.olimp-flat-popup__spec {
    display: flex; justify-content: space-between; align-items: center;
    padding: 5px 18px; font-size: 13px; line-height: 1.3;
}
.olimp-flat-popup__spec dt { font-weight: 400; color: #8c8375; margin: 0; }
.olimp-flat-popup__spec dd { font-weight: 600; color: #2c3846; margin: 0; text-align: right; }

.olimp-flat-popup__spec--price dd {
    display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px;
}
.olimp-price-now { color: var(--c-ui-accent, #ac856d); font-size: 15px; font-weight: 700; }
.olimp-price-old {
    font-size: 12px; font-weight: 400; color: #b0a595;
    text-decoration: line-through; text-decoration-color: rgba(224, 49, 66, 0.7); text-decoration-thickness: 2px;
}
.olimp-price-badge {
    display: inline-flex; align-items: center; padding: 2px 7px; border-radius: 6px;
    font-size: 10px; font-weight: 700; line-height: 1; color: #fff;
    background: linear-gradient(135deg, #ff4d5e, #e03142); white-space: nowrap;
}

.olimp-flat-popup__cta {
    display: block; margin: 10px 18px 16px; padding: 11px; border-radius: 11px;
    text-align: center; font-size: 13px; font-weight: 600; letter-spacing: 0.02em;
    color: #ffffff !important; text-decoration: none !important;
    background: linear-gradient(135deg, var(--c-ui-accent, #ac856d) 0%, var(--c-ui-accent-hover, #a36938) 100%);
    transition: opacity 0.18s ease, transform 0.18s ease;
}
.olimp-flat-popup__cta:hover { opacity: 0.9; transform: translateY(-1px); }
