/* All styles are confined to the selector. Customise these variables in site CSS. */
.osow-vpc {
    --osow-vpc-accent: #214d68;
    --osow-vpc-ink: #233f4c;
    --osow-vpc-border: #cdd8dc;
    --osow-vpc-surface: #fff;
    --osow-vpc-selected: #eef5f7;
    --osow-vpc-radius: 10px;
    container-type: inline-size;
    width: 100%;
    min-width: 0;
    text-align: start;
}
.osow-vpc, .osow-vpc *, .osow-vpc *::before, .osow-vpc *::after { box-sizing: border-box; }
.osow-vpc [hidden] { display: none !important; }
.osow-vpc .osow-vpc__fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.osow-vpc .osow-vpc__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.osow-vpc .osow-vpc__card { position: relative; display: block; margin: 0; padding: 0; cursor: pointer; min-width: 0; font: inherit; }
.osow-vpc .osow-vpc__radio {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap;
}
.osow-vpc .osow-vpc__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 4px 12px;
    min-height: 72px;
    height: 100%;
    padding: 15px 15px 15px 39px;
    color: var(--osow-vpc-ink);
    background: var(--osow-vpc-surface);
    border: 1px solid var(--osow-vpc-border);
    border-radius: var(--osow-vpc-radius);
    line-height: 1.3;
    box-shadow: 0 1px 2px rgb(22 51 66 / 3%);
}
.osow-vpc .osow-vpc__body::before {
    content: '';
    position: absolute;
    inset-inline-start: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    border: 1px solid #80949e;
    border-radius: 50%;
    background: #fff;
}
.osow-vpc .osow-vpc__name { font-size: 1em; font-weight: 600; overflow-wrap: anywhere; }
.osow-vpc .osow-vpc__price { text-align: end; font-size: 1.05em; font-weight: 700; line-height: 1.35; }
.osow-vpc .osow-vpc__price .price { color: inherit; font: inherit; margin: 0; }
.osow-vpc .osow-vpc__price .amount { white-space: nowrap; }
.osow-vpc .osow-vpc__price del { display: block; opacity: 0.72; font-size: 0.78em; font-weight: 400; }
.osow-vpc .osow-vpc__price ins { background: transparent; color: inherit; text-decoration: none; }
.osow-vpc .osow-vpc__price .woocommerce-price-suffix { display: block; max-width: 12em; font-size: 0.72em; font-weight: 400; }
.osow-vpc .osow-vpc__status { grid-column: 1 / -1; font-size: 0.78em; font-weight: 400; color: #53646d; }
.osow-vpc .osow-vpc__card:hover .osow-vpc__body { border-color: var(--osow-vpc-accent); }
.osow-vpc .osow-vpc__radio:checked + .osow-vpc__body { border-color: var(--osow-vpc-accent); background: var(--osow-vpc-selected); box-shadow: inset 0 0 0 1px var(--osow-vpc-accent); }
.osow-vpc .osow-vpc__radio:checked + .osow-vpc__body::before { border: 4px solid var(--osow-vpc-accent); }
.osow-vpc .osow-vpc__radio:focus-visible + .osow-vpc__body { outline: 3px solid var(--osow-vpc-accent); outline-offset: 3px; }
.osow-vpc .osow-vpc__card.is-unavailable { cursor: not-allowed; }
.osow-vpc .osow-vpc__card.is-unavailable .osow-vpc__body { color: #627078; background: #f6f7f7; border-color: #d8dfe2; box-shadow: none; }
.osow-vpc .osow-vpc__sr-only, .osow-vpc .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}
@container (min-width: 460px) {
    .osow-vpc .osow-vpc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (forced-colors: active) {
    .osow-vpc .osow-vpc__radio:checked + .osow-vpc__body { outline: 2px solid Highlight; }
    .osow-vpc .osow-vpc__radio:checked + .osow-vpc__body::before { border-color: Highlight; }
}
