.epcb {
    --epcb-border: #d9dee7;
    --epcb-ink: #172033;
    --epcb-muted: #697386;
    --epcb-soft: #f5f7fb;
    --epcb-accent: #233a95;
    --epcb-accent-dark: #172866;
    --epcb-accent-soft: #eef2ff;
    border: 1px solid var(--epcb-border);
    border-radius: 8px;
    color: var(--epcb-ink);
    margin: 18px 0;
    padding: 16px;
}

.epcb__head {
    align-items: start;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 12px;
}

.epcb__title {
    font-size: 20px;
    line-height: 1.25;
    margin: 0;
}

.epcb__price {
    display: grid;
    gap: 3px;
    justify-items: end;
    min-width: 150px;
}

.epcb__price span {
    color: var(--epcb-muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.epcb__total {
    color: var(--epcb-accent);
    font-size: 20px;
}

.epcb__summary {
    background: var(--epcb-soft);
    border-radius: 8px;
    color: var(--epcb-muted);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
    padding: 10px;
}

.epcb__summary span {
    background: #ffffff;
    border: 1px solid var(--epcb-border);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    padding: 6px 9px;
}

.epcb__groups {
    display: grid;
    gap: 14px;
}

.epcb__group {
    border: 0;
    margin: 0;
    padding: 0;
}

.epcb__group-title {
    color: var(--epcb-ink);
    font-size: 15px;
    font-weight: 800;
    margin-bottom: 8px;
    padding: 0;
}

.epcb__group-desc {
    color: var(--epcb-muted);
    font-size: 13px;
    margin: -3px 0 9px;
}

.epcb__choice {
    border: 1px solid var(--epcb-border);
    border-radius: 8px;
    cursor: pointer;
    display: block;
    margin: 0 0 8px;
    overflow: hidden;
    transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.epcb__choice:hover,
.epcb__choice:has(input:checked) {
    background: var(--epcb-accent-soft);
    border-color: var(--epcb-accent);
    box-shadow: 0 0 0 1px var(--epcb-accent);
}

.epcb__choice input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.epcb__choice-main {
    align-items: center;
    display: grid;
    gap: 4px 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 11px 12px;
}

.epcb__choice-name {
    font-weight: 800;
    line-height: 1.3;
}

.epcb__choice-desc {
    color: var(--epcb-muted);
    font-size: 13px;
    grid-column: 1 / -1;
    line-height: 1.35;
}

.epcb__choice-price {
    color: var(--epcb-accent-dark);
    font-weight: 800;
    white-space: nowrap;
}

.epcb__choice.is-barebone .epcb__choice-name {
    color: var(--epcb-muted);
}

.epcb-cart-price {
    color: var(--epcb-muted);
}

@media (max-width: 640px) {
    .epcb {
        padding: 12px;
    }

    .epcb__head,
    .epcb__choice-main {
        display: grid;
    }

    .epcb__price {
        justify-items: start;
    }

    .epcb__choice-price {
        white-space: normal;
    }
}
